JP2000076068A - 計算機システム - Google Patents

計算機システム

Info

Publication number
JP2000076068A
JP2000076068A JP10242869A JP24286998A JP2000076068A JP 2000076068 A JP2000076068 A JP 2000076068A JP 10242869 A JP10242869 A JP 10242869A JP 24286998 A JP24286998 A JP 24286998A JP 2000076068 A JP2000076068 A JP 2000076068A
Authority
JP
Japan
Prior art keywords
address
instruction
scd
field
computer system
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
JP10242869A
Other languages
English (en)
Inventor
Masahiro Kiyoi
雅広 清井
Hirofumi Nagasuga
弘文 長須賀
Hideki Masuda
秀樹 益田
Futoshi Ochi
太 越智
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 JP10242869A priority Critical patent/JP2000076068A/ja
Publication of JP2000076068A publication Critical patent/JP2000076068A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【課題】仮想アドレスで表現される範囲よりも実アドレ
スで表現される範囲が大きい実記憶装置を有する計算機
システムで、分岐命令自身が格納されているセクション
(仮想アドレス範囲と同じ大きさからなる実アドレスの
分割単位)とは異なるセクションへの分岐を可能とする
こと。 【解決手段】分岐命令を処理するとき、CPUはセクシ
ョン識別子フィールドの値を、分岐先の仮想アドレスに
実アドレスを割り当てたときに記録しておいた実アドレ
スのセクション識別子の値で更新する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、仮想記憶管理方式
を採用し、一つの仮想記憶上で表現できるアドレスサイ
ズよりも大きな主記憶装置を実装した計算機システム上
で、分岐命令を実行する技術に関する。
【0002】
【従来の技術】計算機システムで処理を実行するには、
プログラムやデータを仮想記憶装置、実記憶装置(また
は主記憶装置)に配置する。仮想記憶装置とは、複数個
のプログラムを容易に同時実行するため、各プログラム
や処理ごとに与える論理的、仮想的な記憶装置であり、
仮想記憶装置上の配置場所を仮想アドレスと呼ぶ。これ
に対し、物理的な記憶装置を実記憶装置、その上での配
置場所を実アドレスと呼ぶ。仮想アドレスから実アドレ
スへ変換する処理は動的アドレス変換(DAT)と呼ば
れ、その詳細は例えば公報特公平8−31060号公報
に示されている。動的アドレス変換過程を経ずに実アド
レスを求める状態はDAT−OFF状態と呼ばれ、動的
アドレス変換が有効な状態であるDAT−ON状態と区
別する。
【0003】従来、仮想アドレス、実アドレスは、32
ビット以下のサイズ、例えば16ビット、24ビット、
31ビットなどのサイズで表現されていた。最近では、
システムで扱うデータ量の増加に伴い、必要とされる記
憶領域も増加し、アドレスを表現するサイズを64ビッ
トや63ビットに拡張する計算機も増えてきた。このと
き、まず実記憶装置だけを拡張すると、実アドレスの範
囲を仮想アドレスの範囲よりも増やさなければならな
い。
【0004】このように、仮想アドレスで表現できる範
囲が実アドレスで表現できる範囲より大きい計算機シス
テムにおいて、仮想アドレスで表現できる範囲(例えば
31ビット長で表現できる範囲)を小アドレス、実アド
レスで表現できる範囲(例えば63ビット長で表現でき
る範囲)を大アドレスと呼び、以下の説明を続ける。
【0005】特公平8−31060号公報では、小アド
レスで表現された仮想アドレスを、大アドレスで表現さ
れた実アドレスと1対1に対応付けする計算機システム
が示されている。同公報で示されたシステムでは、大ア
ドレスで表現される実アドレスは、それぞれが小アドレ
ス範囲と等しい複数のセクションに分割されている。そ
こでは、従来のアドレス変換で求めた小アドレスの実ア
ドレス上位に、アドレスエクステンダ(EXR)と呼ば
れる32ビットを連結することにより、大アドレスを表
現する。言い換えれば、EXR値はアドレス変換後の実
アドレスが属するセクションを特定するために利用され
る。
【0006】次に、計算機システムにおける分岐命令に
ついて説明する。「HITAC Mシリーズ処理装置
(M/ASAモード)」(株式会社日立製作所刊、19
91年)などによれば、計算機システムが実行すべき命
令の仮想アドレスは、PSW(プログラム状態語)内の
命令アドレスフィールドに保持されている。通常の命令
を読み出して実行を開始するときは、その命令の長さを
加えた値を、次の命令アドレスとして同命令アドレスフ
ィールドに格納する。
【0007】これに対し、分岐命令を実行するときは、
計算機システムが次に実行すべき命令が格納されたアド
レスとして、同分岐命令のオペランドとして指定された
場所に記された分岐先アドレスをPSW内の命令アドレ
スフィールドに格納する。PSWのそれ以外のフィール
ドや制御レジスタ、ASTE(アドレススペーステーブ
ル項目)の内容は、分岐命令の前後で変化しない。
【0008】
【発明が解決しようとする課題】大アドレス実記憶装置
を有する計算機システムで、分岐命令を実行したとき、
同分岐命令自身が格納されているセクションとは異なる
セクションにも分岐可能とすることが、本発明で解決し
ようとする課題である。上記特公平8−31060号公
報では、DAT−ON状態のとき、命令アドレスに対す
るEXRは、制御レジスタまたはPSWまたはプログラ
ムが呼び出したASTEに格納されていると説明してい
る。
【0009】しかし、従来の計算機システムは、分岐命
令に伴い制御レジスタ、PSW、ASTEなどに格納さ
れたEXRを更新する手段を備えていないため、分岐命
令により分岐できるのは分岐命令自身が格納されている
のと同一セクション内に限られる。この場合、分岐命令
によって処理が引き継がれる可能性があるプログラム領
域群は、すべて同一セクション内に配置しなければなら
ず、記憶装置を効率良く利用できない。
【0010】
【課題を解決するための手段】上記課題を解決するため
の代表的な手段は、次の通りである。
【0011】本明細書記載の計算機システムは、仮想記
憶管理方式を採用し、一つの仮想記憶上で表現できるア
ドレスサイズよりも大きな主記憶装置を実装した計算機
システムにおいて、当該主記憶装置上で、任意のアドレ
スから任意のアドレスへ、仮想記憶のアドレス(仮想ア
ドレス)を指定して分岐する手段を有する。
【0012】また、本明細書記載の計算機システムは、
命令が配置された仮想アドレスに対応する主記憶のアド
レス(実アドレス)を、上位命令実アドレスと、下位命
令実アドレスに分割して保持する手段を有する計算機シ
ステムにおいて、上記分岐命令の上記上位命令実アドレ
スの値を、PSW(プログラム状態語)内に保持する手
段を有する。
【0013】また、本明細書記載の計算機システムは、
命令が配置された仮想アドレスに対応する実アドレス
を、上位命令実アドレスと、下位命令実アドレスに分割
して保持する手段を有する計算機システムにおいて、上
記分岐命令の上記上位命令実アドレスの値を、制御レジ
スタ内に保持する手段を有する。
【0014】また、本明細書記載の計算機システムは、
上記分岐命令により分岐する時に、保持されている上記
上位命令実アドレスの値を、当該分岐命令で指定された
分岐先の仮想アドレスに対応する実アドレスの上位部分
の値に置換する手段を有する。
【0015】また、本明細書記載の計算機システムは、
保持されている上記上位命令実アドレスの値と、当該分
岐命令で指定された分岐先の仮想アドレスに対応する実
アドレスの上位部分の値とを比較する手段と、両者の値
が異なるときのみ、保持されている上記上位命令実アド
レスの値を、上記分岐命令で指定された分岐先の仮想ア
ドレスに対応する実アドレスの上位部分の値に置換する
手段を有する。
【0016】
【発明の実施の形態】以下、本発明の実施の形態を、図
を用いて詳細に説明する。
【0017】図1は、第1の実施の形態を示す原理図で
あり、分岐命令が実行されたときの動作を示している。
図1において、101はPSW(プログラム状態語)で
あり、CPUの動作を制御する基本的な制御情報を格納
する。102は汎用レジスタ0番である。汎用レジスタ
はCPU内に複数個(例えば16個)存在し、命令やデ
ータの格納場所を示すアドレスを格納したり、演算のオ
ペランドの格納などに利用される。103は制御レジス
タ1番である。制御レジスタはCPU内に複数個(例え
ば16個)存在し、計算機の機能、動作の指定や各種の
情報を提供する目的で利用される。そのうち制御レジス
タ1番103には、アドレス変換に利用するセグメント
テーブルの起点アドレスが格納されている。
【0018】104はSGT(セグメントテーブル)で
あり、仮想記憶をセグメントと呼ばれる単位に分け、そ
のセグメントごとの管理情報を格納したテーブルであ
り、仮想アドレスから実アドレスを求めるアドレス変換
で利用される。105はSGTエントリであり、SGT
104のうち、各セグメントに対応したフィールドのか
たまりである。SGTエントリ105は、対応するセグ
メントが割り当てられた実記憶装置上のセクション識別
子を格納するSCDフィールドを含む。106、107
は、それぞれ乗算器、加算器であり、ある仮想アドレス
が与えられたとき、その仮想アドレスに対するSGTエ
ントリのアドレスを求めるために利用される。
【0019】PSW101内の命令アドレスフィールド
には、計算機システムで次に実行する命令の格納場所を
示す仮想アドレスが格納される。本実施の形態では、仮
想アドレス長は31ビットであり、命令アドレスフィー
ルドの長さも31ビットである。分岐命令以外の命令を
実行するときは、同命令の長さを元の値に加えた値を、
次の命令アドレスとしてPSW101内命令アドレスフ
ィールドに格納する。
【0020】これに対し、分岐命令を実行するときは、
分岐命令のオペランドとして指定された場所に格納され
た値(分岐先アドレス)を、PSW101内命令アドレ
スフィールドに格納する。図1では、分岐先アドレス格
納場所として、汎用レジスタ0番102が指定された場
合を示している。
【0021】大アドレス実記憶装置を有する計算機で
は、与えられた命令アドレス(仮想アドレス)から実ア
ドレスを求める際、従来のアドレス変換過程を用いて求
めた31ビットの上位に、32ビットからなるセクショ
ン識別子(SCD)を連結して、63ビットアドレスを
表現する。ここでいうSCDとは、特公平8−3106
0号公報でのEXRに相当し、プログラムやデータを配
置する実アドレスのセクションを特定するために利用す
る。以下、従来のアドレス変換により求めた小アドレス
の上位にSCDを連結して、大アドレス実アドレスを求
める処理を、従来のアドレス変換と区別する意味で拡張
アドレス変換と呼ぶ。
【0022】本実施の形態では、PSW101内に命令
アドレスの拡張アドレス変換に用いるSCDを格納する
フィールドを設ける。ただし、SCDの格納場所は、制
御レジスタやASTEであってもよい。
【0023】本実施の形態では、分岐命令の実行時に
は、CPUはPSW101内の命令アドレスフィールド
が分岐先の仮想アドレスに更新されるほかに、PSW1
01内のSCDフィールドも更新する。分岐命令の前後
でSCDフィールドの値が切り替わるため、実記憶装置
上、異なるセクションに配置された場所へも分岐するこ
とが可能となる。分岐命令実行に伴いPSW内のSCD
フィールドに格納する値は、SGTエントリ105内に
設けられたSCDフィールドの値を複写する。ここで、
汎用レジスタ0番102に格納された分岐先アドレスの
うち、セグメント番号に相当する先頭11ビットの値
を、乗算器106を使って8倍(各エントリのバイト
長)し、その結果と、制御レジスタ1番103に格納さ
れたセグメントテーブル起点アドレスとを、加算器10
7を使って加算することにより、SCDフィールド更新
に利用するSGTエントリ105のアドレスを求める。
なおSGTエントリ105を利用したアドレス変換につ
いては、のちほど図3を用いても詳しく説明する。
【0024】図2は、分岐命令を実行するときの、分岐
命令自身と分岐先命令との仮想記憶装置201上での位
置関係を示している。CPUは次に実行する命令とし
て、PSW101の命令アドレスフィールドの値が指し
示す仮想アドレスに格納されている命令を選択する。図
2では、このようにして選択された命令が、分岐命令で
あることを示している。各命令は、計算機の記憶装置内
ではコードとして格納されており、例えば分岐命令を表
わすコードは16進数の「07F0」であるとする。こ
のうち、先頭「07」が分岐命令を表わすコードであ
り、中間「F」は分岐条件、終端「0」は分岐先アドレ
ス格納場所を示す。更に、分岐条件「F」は無条件分岐
を表わし、分岐先アドレス格納場所「0」は汎用レジス
タ0番を表わすものとする。
【0025】すなわち本実施の形態では、汎用レジスタ
0番102に格納されている値が、分岐先アドレスを表
わしている。なお、命令アドレスフィールドや汎用レジ
スタ0番102で指定されているのは、いずれも仮想ア
ドレスであり、それらの実記憶装置上での位置関係まで
は特定していない。
【0026】図3は、命令アドレスを示す仮想アドレス
から実アドレスを求める拡張アドレス変換過程の動作を
示している。記憶装置の管理は、セグメント、ページと
呼ばれる単位の二段階で行われる。それぞれの単位の管
理情報を格納しているのが、SGT(セグメントテーブ
ル)、PGT(ページテーブル)であり、それらテーブ
ル内から特定のエントリを選択することにより、仮想ア
ドレスに対する実アドレスを求めることができる。具体
的には、仮想アドレス31ビットのうち、先頭11ビッ
トはセグメント番号であり、SGT内のエントリ番号を
示す。これにエントリ長を掛けて制御レジスタ1番10
3で示されたセグメントテーブル起点アドレスと加算す
ることにより、所定のSGTエントリ105のアドレス
を求めることができる。
【0027】本実施の形態では、SGTエントリ長は8
バイトなので、入力信号を8倍して出力する乗算器30
3と、加算器304を利用してSGTエントリ105の
アドレスを求める。なお、場合によっては、制御レジス
タ1番ではなく制御レジスタ13番の内容をセグメント
テーブル起点アドレスとして利用することもある。その
場合には、制御レジスタ13番を用いて同様の処理を実
行する。
【0028】各SGTエントリ105には、ページテー
ブル起点アドレスが含まれる。仮想アドレスの第12ビ
ットから第19ビットまでの8ビットはページ番号であ
り、PGT内のエントリ番号を示す。これにエントリ長
を掛けて、先に求めたSGTエントリ内のページテーブ
ル起点アドレスと加算することにより、所定のPGTエ
ントリ301のアドレスを求めることができる。本実施
の形態では、PGTエントリ長は4バイトなので、4倍
乗算器305と加算器306とを利用して、所定のPG
Tエントリ301のアドレスを求める。
【0029】各PGTエントリ301には、ページフレ
ーム番号が含まれる。同ページフレーム番号は、本ペー
ジを配置した実記憶装置内での番地を示している。仮想
アドレスの下位12ビットはバイト変位であり、ページ
先頭からの変位を示す。先に求めたページフレーム番号
とこのバイト変位とを連結することにより、実アドレス
の下位31ビットを求めることができる。
【0030】ここまでのアドレス変換は公知の技術であ
り、それにより求められる実アドレスは、小アドレスで
ある。拡張アドレス変換では更に、PSW101内に用
意されたSCDフィールドの値を利用して63ビット大
アドレスを求める。具体的には、PSW101内の命令
アドレスフィールドの値から、従来のアドレス変換によ
り実アドレス下位31ビットを求め、その上位にPSW
101内SCDフィールドに格納された32ビットを連
結することにより、実行すべき命令が配置されている実
アドレス302を求めることができる。
【0031】上記の拡張アドレス変換を利用すると、P
SW101内SCDフィールドの値が切り替わらない限
り、同一セクションに含まれる命令列を実行し続けるこ
とになる。そのため本実施の形態においては、既に図1
を用いて説明した通り、指定された分岐先アドレスに対
応するSGTエントリ105内SCDフィールドの値
で、PSW101内SCDフィールドの値を更新するこ
とで、分岐命令自身とは別の実アドレスセクションへの
分岐を実現している。
【0032】実際に計算機を利用する際は、こうしたセ
クション間の分岐命令が頻繁に発生することが予想され
る。そのことを、以下図4を用いて説明する。既に示し
た通り、仮想記憶装置201とは、例えば複数個のプロ
グラムを同時に実行する場合、各プログラムごとに割り
当てられた仮想的な記憶領域である。これらの仮想的な
記憶領域は、アドレス空間とも呼ばれる。仮想記憶装置
201は共通領域401と固有領域402とに分類さ
れ、このうち共通領域401は、すべてのアドレス空間
で共通の内容を持っており、OSなどの制御プログラム
が格納される。また固有領域402には、各プログラム
やそれが扱う固有のデータが格納される。
【0033】図4で示す通り、本実施の形態では、共通
領域401は第1セクション404に配置し、固有領域
402は第2セクション405以降の任意のセクション
(図4では第3セクション406)に配置している。個
有領域402に格納された各利用者のプログラムがデー
タ入出力などOSが提供する機能を利用するときは、同
プログラムから共通領域401内のOSプログラムへ分
岐しなければならない。すなわち、異なるセクションに
格納された領域への分岐命令を実行する必要がある。
【0034】引き続き、第2の実施の形態について説明
する。第2の実施の形態を示す原理図を、図5に示す。
【0035】第1の実施の形態では、分岐命令実行時、
PSW101内のSCDフィールドに格納する値は、S
GTエントリ105内に設けたSCDフィールドから求
めていた。このようにSGTエントリ105ごとにSC
Dフィールドを設けた構成は、仮想アドレスの各セグメ
ントは必ず同一の実記憶セクションに配置されることを
意味している。これに対し、第2の実施の形態では、セ
グメント単位ではなくページ単位で、仮想アドレスを割
り当てる実記憶装置のセクションを決定する。割り当て
た実記憶装置のセクション識別子はページごとに異なる
ため、各ページごとの実記憶装置割り当て情報を格納す
るPGTエントリ301内にSCDフィールドを設け
る。
【0036】図5で示す通り、分岐命令実行の際は、上
記PGTエントリ301内SCDフィールドの値で、P
SW101内SCDフィールドを更新する。これによ
り、異なるページに属するアドレスへ分岐する場合で
も、元の命令アドレスと同じ実記憶装置セクションに配
置されているか、それとも別の実記憶装置セクションに
配置されているかを区別することなく、分岐命令を正常
に実行できる。
【0037】なお、SCDフィールドをSGTエントリ
103ではなくPGTエントリ301に設けた結果、両
エントリの長さは第1の実施の形態とは異なる。従っ
て、SGTエントリ105のアドレスを求めるには、分
岐先アドレスのセグメント番号を4倍する乗算器501
と、その結果と制御レジスタ1番103に格納されたセ
グメントテーブル起点アドレスとを加える加算器502
を利用しなければならないし、またPGTエントリ30
1のアドレスを求めるには、分岐先アドレスのページ番
号を8倍する乗算器503と、その結果とSGTエント
リ105内ページテーブル起点アドレスとを加える加算
器504とを利用しなければならない。
【0038】引き続き、第3の実施の形態について説明
する。第3の実施の形態を示す原理図を、図6に示す。
本第3の実施の形態は、命令アドレスに対する拡張アド
レス変換において小アドレスの上位に連結するSCD
を、PSW101ではなく、制御レジスタ内に設ける。
このとき、制御レジスタの具体的な構成としては、既に
別の目的で利用している既存の制御レジスタのいずれか
をそのままSCD格納目的にも利用する構成、あるい
は、既に別の目的で利用している既存の制御レジスタの
長さを拡張し、そこにSCDフィールドを設ける構成、
あるいは、制御レジスタの数を増やし、新規制御レジス
タをSCD格納に利用する構成などが考えられる。この
うち図6では、既存の制御レジスタ1番103の長さを
32ビット拡張し、拡張した部分をSCD格納フィール
ドとして利用する構成を示している。
【0039】図6で示す通り、分岐命令実行の際は、P
SW101内命令アドレスフィールドの内容を更新する
とともに、上記制御レジスタ1番103のSCDフィー
ルドの内容を更新する。なお、本実施の形態では、命令
アドレス用SCDの更新は、第1の実施の形態と同じく
SGTエントリ105に設けたSCDフィールドに格納
されている値を利用する。
【0040】これまで説明した実施の形態では、分岐命
令の実行に伴い、PSWもしくは制御レジスタに設けた
命令アドレス用SCDフィールドの内容を必ず更新して
いた。これに対し、以下に示す実施の形態では、特定の
条件を満たすときのみ命令アドレス用SCDフィールド
の内容を更新する。
【0041】図7は、第4の実施の形態を示す原理図で
ある。第4の実施の形態では、分岐命令を実行する仮想
アドレスと分岐先の仮想アドレスが異なるセグメントに
属する場合に限り、命令アドレス用SCDフィールドの
値を更新する。なお図7では、命令アドレス用SCDフ
ィールドはPSW101内に設けるものとし、分岐先ア
ドレス格納場所としては汎用レジスタ0番102が指定
されているものとする。
【0042】分岐命令を実行するとき、その命令アドレ
スと分岐先として指定されたアドレスのセグメント番号
に相当する部分、すなわち先頭11ビット同士を比較す
る。ここで利用する比較器701は、両者が一致したと
き0を出力し、不一致のとき1を出力する。その出力結
果と、分岐先アドレスのセグメント番号とを、AND器
702に入力する。本AND器702は、比較結果が1
のときのみ、もう一方の入力情報である分岐先アドレス
セグメント番号を出力するよう動作する。
【0043】以下の動作は、第1の実施の形態と同様で
あり、AND器702の出力情報である分岐先アドレス
セグメント番号を利用して求めたSGTエントリ105
内SCDフィールドの値で、命令アドレス用SCDフィ
ールドの値を更新する。比較器701の出力結果が0、
すなわちセグメント番号が一致した場合は、AND器7
02は何も出力せず、従って命令アドレス用SCDフィ
ールドは更新されない。
【0044】このような比較器701、AND器702
を利用することにより、分岐命令と分岐先のアドレスの
セグメントが同一の場合に限り、命令アドレス用SCD
フィールドの更新動作を伴う分岐命令を実現している。
なお、この動作は、同一セグメントに属する仮想アドレ
スは同一実記憶装置セクションに配置されることを前提
としている。
【0045】引き続き、第5の実施の形態について説明
する。図8は、第5の実施の形態を示す原理図である。
ここでは、同一ページに属する仮想アドレスは同一実記
憶装置セクションに配置されることを前提とする。分岐
命令のアドレスと分岐先アドレスは、セグメント番号だ
けではなく、更にページ番号までを含めて比較される。
比較の結果、両者の値が一致しなかった場合に限り、別
のセクションへ分岐する可能性があるものと見なし、命
令アドレス用SCDフィールドの内容を更新する。セグ
メント番号およびページ番号の比較、また、その比較結
果をもとにSCDフィールドを更新するか否かの信号出
力に利用する比較器801、AND器802は、それぞ
れ第4の実施の形態で利用した比較器701、AND器
702と同様に動作する。
【0046】また、本実施の形態では、ページ単位でい
ずれかのセクションに割り当てられることを前提として
いるため、PGTエントリ301に設けたSCDフィー
ルドの値を使って命令アドレス用SCDフィールドを更
新する。その部分の構成は、第2の実施の形態と同じで
ある。
【0047】引き続き、第6の実施の形態について説明
する。図9は、第6の実施の形態を示す原理図である。
第6の実施の形態では、分岐命令実行時、以下の条件を
満たす場合のみ命令アドレス用SCDフィールドの値を
更新する。すなわち、分岐先アドレスに対応するSGT
エントリ105内SCDフィールドの値と、分岐命令実
行前のPSW101内SCDフィールドの値とを比較
し、その両者が一致しないことが、命令アドレス用SC
Dフィールド更新の条件である。言い換えれば、別のセ
クションへに配置されたアドレスへの分岐が指定された
場合のみ、命令アドレス用SCDフィールドの値を更新
する。
【0048】この処理は、SGTエントリ105内SC
Dフィールドの値とPSW101内の命令アドレス用S
CDフィールドの値を比較器901に入力し、その出力
結果とSGTエントリ内SCDフィールドの値をAND
器902への入力とし、その結果をPSW内SCDフィ
ールドへの出力とする構成により実現する。ここで、比
較器901、AND器902は、それぞれ第4の実施の
形態で利用した比較器701、AND器702と同様に
動作する。なお第1の実施の形態と同様、各仮想アドレ
スを割り当てたSCDの値は、SGTエントリ内に設け
たSCDフィールドに格納されているものとする。
【0049】引き続き、第7の実施の形態について説明
する。図10は、第7の実施の形態を示す原理図であ
る。図7において、1001は、特定の仮想アドレス
と、それと関連付けられた特定のSCDを記録したSC
Dテーブルエントリである。本SCDテーブルエントリ
1001は、分岐命令を実行するとき、分岐先アドレス
として指定されたアドレスが特定の範囲に含まれている
か否かを判定し、その範囲に含まれていた場合には、命
令アドレス用SCDフィールドを特定のSCD値で更新
する目的に利用する。
【0050】既に図4を用いて説明したように、仮想記
憶装置201は共通領域401と固有領域402とに分
割されることがある。このとき、すべての空間から共通
してアクセスされる共通領域401は、あらかじめ特定
のアドレス範囲内に収まるよう設計されるとする。更に
共通領域401を割り当てる実記憶装置セクションも、
あらかじめ特定のセクションに決めておくことが可能で
あるとする。そうした設計のもとでは、特定アドレス範
囲への分岐が指定されたとき、命令アドレス用SCDフ
ィールドを更新する値を前もって指定しておくことがで
きる。そのような状況を考慮したのが、本第7の実施の
形態である。
【0051】第7の実施の形態では、分岐命令の分岐先
アドレスとして指定されたアドレスと、SCDテーブル
エントリ1001内で指定した特定アドレスとが同一の
セグメント番号を有する場合のみ、SCDテーブルエン
トリ1001内の特定SCDフィールドの値を用いてP
SW101内の命令アドレス用SCDフィールドを更新
する。
【0052】まず、分岐先として指定されたアドレスと
SCDテーブルエントリ内特定アドレスのセグメント番
号を比較する。このとき利用する比較器1002は、二
つの入力が一致した場合には、0を出力する。そこで、
比較器からの出力結果をINV器1003すなわち入力
信号を反転して出力する装置を経由し、SCDテーブル
エントリ内特定SCDとともにAND器1004への入
力とする。これにより、同AND器1004は、比較し
た二つのアドレスセグメント番号が一致する場合のみ、
特定SCDフィールドの値を出力することになる。
【0053】一方、二つのセグメント番号が一致しない
場合も考慮する。この場合は、第1の実施の形態と同
様、SGTエントリ105内のSCDフィールドの値
で、命令アドレス用SCDフィールドを更新する。ま
ず、分岐先として指定されたアドレスとSCDテーブル
エントリ1001内特定アドレスのセグメント番号とを
入力とする比較器1002の出力結果と、分岐先アドレ
スのセグメント番号とを、AND器702へ入力する。
同AND器702は、図7で説明した通り、二つのセグ
メント番号が一致しない場合のみ、分岐先アドレスのセ
グメント番号を出力する。その出力結果を入力として、
以下SGTエントリ105を求める処理については、第
1の実施の形態で示した処理と同様であり、ここでは説
明を省略する。
【0054】以上の処理により、二つのセグメント番号
が一致した場合と一致しなかった場合の、二つの出力結
果が得られる。この二つをOR器1005への入力と
し、その出力を用いてPSW101内SCDフィールド
を更新する。ただし、本実施の形態の構成においては、
OR器1005には、SCDテーブルエントリ1001
内特定SCDフィールドの値か、SGTエントリ105
内SCDフィールドの値か、いずれか一つの入力信号の
みが到達することになる。ここでOR器1005は、入
力された側の信号を出力する動作を行なう。
【0055】以上の実施の形態は、いずれも分岐命令に
対する動作を示したものであるが、ロードPSW命令、
SVC命令を実行する際にも、類似の装置を用いて命令
アドレス用SCDを更新する計算機システムが容易に類
推できる。
【0056】
【発明の効果】本発明によれば、仮想アドレスで表現さ
れる範囲よりも実アドレスで表現される範囲が大きい実
記憶装置を有する計算機システムで、分岐命令自身が格
納されているセクション(仮想アドレス範囲と同じ大き
さからなる実アドレスの分割単位)とは異なるセクショ
ンへの分岐を可能とすることにより、プログラム領域を
任意の実アドレスに配置でき、記憶装置を有効に利用で
きる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態である計算機システ
ムを示す原理図。
【図2】図1の分岐命令アドレスの指定例を示す図。
【図3】図1の拡張アドレス変換過程を示す図。
【図4】図1の仮想記憶装置と実記憶装置の対応図。
【図5】本発明の第2の実施の形態である計算機システ
ムを示す原理図。
【図6】本発明の第3の実施の形態である計算機システ
ムを示す原理図。
【図7】本発明の第4の実施の形態である計算機システ
ムを示す原理図。
【図8】本発明の第5の実施の形態である計算機システ
ムを示す原理図。
【図9】本発明の第6の実施の形態である計算機システ
ムを示す原理図。
【図10】本発明の第7の実施の形態である計算機シス
テムを示す原理図。
【符号の説明】
101…PSW(プログラム状態語)、 10
2…汎用レジスタ0番、103…制御レジスタ1番、
104…SGT(セグメントテーブル)、105…SG
Tエントリ、 106…乗算器、 107…加算器。
フロントページの続き (72)発明者 益田 秀樹 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア開発本部内 (72)発明者 越智 太 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア開発本部内 Fターム(参考) 5B033 CA03 DA04

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】仮想記憶管理方式を採用し、一つの仮想記
    憶上で表現できるアドレスサイズよりも大きな主記憶装
    置を実装した計算機システムにおいて、当該主記憶装置
    上で、任意のアドレスから任意のアドレスへ、仮想記憶
    のアドレス(仮想アドレス)を指定して分岐する手段を
    有することを特徴とする計算機システム。
  2. 【請求項2】請求項1記載の計算機システムであって、
    命令が配置された仮想アドレスに対応する主記憶のアド
    レス(実アドレス)を、上位命令実アドレスと、下位命
    令実アドレスに分割して保持する手段を有する計算機シ
    ステムにおいて、上記分岐命令の上記上位命令実アドレ
    スの値を、PSW(プログラム状態語)内に保持する手
    段を有することを特徴とする計算機システム。
  3. 【請求項3】請求項1記載の計算機システムであって、
    命令が配置された仮想アドレスに対応する実アドレス
    を、上位命令実アドレスと、下位命令実アドレスに分割
    して保持する手段を有する計算機システムにおいて、上
    記分岐命令の上記上位命令実アドレスの値を、制御レジ
    スタ内に保持する手段を有することを特徴とする計算機
    システム。
  4. 【請求項4】請求項1から3のいずれか1項記載の計算
    機システムにおいて、上記分岐命令により分岐する時
    に、保持されている上記上位命令実アドレスの値を、当
    該分岐命令で指定された分岐先の仮想アドレスに対応す
    る実アドレスの上位部分の値に置換する手段を有するこ
    とを特徴とする計算機システム。
  5. 【請求項5】請求項1から4のいずれか1項記載の計算
    機システムにおいて、保持されている上記上位命令実ア
    ドレスの値と、当該分岐命令で指定された分岐先の仮想
    アドレスに対応する実アドレスの上位部分の値とを比較
    する手段と、両者の値が異なるときのみ、保持されてい
    る上記上位命令実アドレスの値を、上記分岐命令で指定
    された分岐先の仮想アドレスに対応する実アドレスの上
    位部分の値に置換する手段を有することを特徴とする計
    算機システム。
JP10242869A 1998-08-28 1998-08-28 計算機システム Pending JP2000076068A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10242869A JP2000076068A (ja) 1998-08-28 1998-08-28 計算機システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10242869A JP2000076068A (ja) 1998-08-28 1998-08-28 計算機システム

Publications (1)

Publication Number Publication Date
JP2000076068A true JP2000076068A (ja) 2000-03-14

Family

ID=17095462

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10242869A Pending JP2000076068A (ja) 1998-08-28 1998-08-28 計算機システム

Country Status (1)

Country Link
JP (1) JP2000076068A (ja)

Similar Documents

Publication Publication Date Title
US5095526A (en) Microprocessor with improved interrupt response with interrupt data saving dependent upon processor status
US8386750B2 (en) Multiprocessor system having processors with different address widths and method for operating the same
US4240139A (en) Address generating system
JPH0371337A (ja) マイクロプロセツサ回路
JPH08179947A (ja) バイナリ・アプリケーション・プログラムとディジタル・コンピュータのインタフェースをとるためのアプリケーション・バイナリ・インタフェースおよび方法
JPH04172533A (ja) 電子計算機
US5187791A (en) Microprocessor with improved interrupt response with data saving dependent upon processor status using status flag
JPH07210381A (ja) プロセッサ及びコンピュータ・システム
JPH06195266A (ja) コンピュータ・キャッシュ・システム用の加算器/ハッシュ回路
EP0908812B1 (en) Processor architecture scheme for implementing various addressing modes and method therefor
KR19990037572A (ko) 뱅크 어드레스 값을 공급하는 다중 소스를 구비하는 프로세서구조 설계 및 그 설계방법
JP3983482B2 (ja) 高速ディスプレースメント付きpc相対分岐方式
JP3220714B2 (ja) データramを用いたマイクロコントローラ用の強制ページゼロページング方法
JP3618868B2 (ja) 二重モード変換索引バッファを利用したデータ処理システムにおける効率的メモリ管理の方法およびシステム
KR19990037573A (ko) 사용가능한 연산코드를 최대화하고 다양한 어드레싱 모드를 실행하는 프로세서 구조 및 명령 세트
US6098160A (en) Data pointer for outputting indirect addressing mode addresses within a single cycle and method therefor
JPH07239780A (ja) 1クロック可変長命令実行処理型命令読み込み電子計 算機
JP2551167B2 (ja) マイクロコンピュータ
JPH0683615A (ja) 命令セットエミュレーションを行う計算機
US7702881B2 (en) Method and system for data transfers across different address spaces
JP2000076068A (ja) 計算機システム
US4853889A (en) Arrangement and method for speeding the operation of branch instructions
US6321319B2 (en) Computer system for allowing a two word jump instruction to be executed in the same number of cycles as a single word jump instruction
JPS62107339A (ja) マイクロコンピユ−タの命令構成方法
KR960016401B1 (ko) 레지스터 페이지 포인터를 이용한 레지스터 페이지간의 페이지 선택회로