JPS5940387A - 仮想記憶制御方式 - Google Patents
仮想記憶制御方式Info
- Publication number
- JPS5940387A JPS5940387A JP57150982A JP15098282A JPS5940387A JP S5940387 A JPS5940387 A JP S5940387A JP 57150982 A JP57150982 A JP 57150982A JP 15098282 A JP15098282 A JP 15098282A JP S5940387 A JPS5940387 A JP S5940387A
- Authority
- JP
- Japan
- Prior art keywords
- address
- branch
- instruction
- virtual
- physical 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔発明の技術分野〕
本発明は仮想アドレスを物理アドレスに商運に変換する
ためにアドレス変換バッファを有する情報処理装置に係
り、特に分岐命令の分岐先アドレスのアドレス変換にお
ける仮想記憶制御方式に関する。
ためにアドレス変換バッファを有する情報処理装置に係
り、特に分岐命令の分岐先アドレスのアドレス変換にお
ける仮想記憶制御方式に関する。
この種の情報処理装置では、一般に分岐命令の分岐先ア
ドレスの仮想アドレスから物理アドレスへの変換は、通
常のオペランドのアドレス変換と同様に扱われていた。
ドレスの仮想アドレスから物理アドレスへの変換は、通
常のオペランドのアドレス変換と同様に扱われていた。
すなわち、アドレス変換を高速に行なうためにアドレス
変換バッファ(Translation Look a
sid@Buff@t;以下、TLBと称する)を有す
る情報処理装置では、まずTLBによりアドレス変換が
行なわれ、TLBに対応するアドレス変換対が無い場合
には、ファームウェアによるアドレス変換が行なわれそ
の結果がTLBに取り込まれる。
変換バッファ(Translation Look a
sid@Buff@t;以下、TLBと称する)を有す
る情報処理装置では、まずTLBによりアドレス変換が
行なわれ、TLBに対応するアドレス変換対が無い場合
には、ファームウェアによるアドレス変換が行なわれそ
の結果がTLBに取り込まれる。
しかし、分岐先アドレスの変換を上述のように通常のオ
ペランドのアドレス変換と同様に扱うと、その分岐先(
物理)アドレスが使用されない(分岐条件不成立の)場
合でもTLBにヒツトしなければファームウェアによる
計算(アドレス変換)が行なわれ、かつTLBの内容も
書き換えられてしまうことを本発明者は認識するに至っ
た。そして、このような場合にはTLBのヒツト率も低
下するため処理効率が低下することをも本発明者は認識
するに至った。
ペランドのアドレス変換と同様に扱うと、その分岐先(
物理)アドレスが使用されない(分岐条件不成立の)場
合でもTLBにヒツトしなければファームウェアによる
計算(アドレス変換)が行なわれ、かつTLBの内容も
書き換えられてしまうことを本発明者は認識するに至っ
た。そして、このような場合にはTLBのヒツト率も低
下するため処理効率が低下することをも本発明者は認識
するに至った。
本発明は上記事情に鑑みてなされたものでその目的は、
分岐命令の分岐先仮想アドレスを物理アドレスに変換す
る場合に、無駄な計算を減少すると共にTLB(アドレ
ス変換バッファ)のヒツト率の低下を防止でき、もって
処理効率の向上が図れる仮想記憶制御方式を提供するこ
とにある。
分岐命令の分岐先仮想アドレスを物理アドレスに変換す
る場合に、無駄な計算を減少すると共にTLB(アドレ
ス変換バッファ)のヒツト率の低下を防止でき、もって
処理効率の向上が図れる仮想記憶制御方式を提供するこ
とにある。
本発明は分岐命令の分岐先アドレスの仮想アドレスから
物理アドレスへの変換時において、TLB (アドレス
変換バッファ)に対応するアドレス変換対が無い場合に
セットされるフラグを設け、当該フラグがセットされて
いる状態では上記分岐命令の分岐条件成立が確定するま
で主記憶にあるページテーブルなどの情報をもとにアド
レス変換を行なうことを保留すると共に、パイプライン
制御方式が適用されるものにあっては分岐先命令列の先
読みも保留するようにしている。
物理アドレスへの変換時において、TLB (アドレス
変換バッファ)に対応するアドレス変換対が無い場合に
セットされるフラグを設け、当該フラグがセットされて
いる状態では上記分岐命令の分岐条件成立が確定するま
で主記憶にあるページテーブルなどの情報をもとにアド
レス変換を行なうことを保留すると共に、パイプライン
制御方式が適用されるものにあっては分岐先命令列の先
読みも保留するようにしている。
以下、本発明の一実施例を図面を参照して説明する。図
面は本発明が適用される情報処理装置の要部構成を示す
もので、1ノは命令列やデータが格納される主記憶、1
2は主記憶1ノをアクセスするだめのアドレス(物理ア
ドレス)が保持されるメモリアドレスレジスタ(以下、
MARと称する)である。13は主記憶11に格納され
ている命令列の一部のコピーが保持されるバッファ(以
下、I−Cacheと称する)、14はI−Cache
1.3をアクセスするためのアドレスが保持されるキ
ャッシュアドレスレジスタ(以下、CARと称する)、
15はI−Cache13のディレクトリをチェックす
るディレクトリチェック制御部(以下、ディレクトリ制
御部と称する)である。
面は本発明が適用される情報処理装置の要部構成を示す
もので、1ノは命令列やデータが格納される主記憶、1
2は主記憶1ノをアクセスするだめのアドレス(物理ア
ドレス)が保持されるメモリアドレスレジスタ(以下、
MARと称する)である。13は主記憶11に格納され
ている命令列の一部のコピーが保持されるバッファ(以
下、I−Cacheと称する)、14はI−Cache
1.3をアクセスするためのアドレスが保持されるキ
ャッシュアドレスレジスタ(以下、CARと称する)、
15はI−Cache13のディレクトリをチェックす
るディレクトリチェック制御部(以下、ディレクトリ制
御部と称する)である。
16は命令先読みのために現在実行中の命令列に関する
物理アドレスと、分岐命令の分岐先の物理アドレスを保
持する2つのカウンタ(図示せず)を備えたカランタ部
(以下、MLOCと称する)、17はMLOCJ6を監
視して命令先読み中にアクセスすべきページが次のペー
ジに移ることを検出するページ切換検出部である。18
はI−Cache 13または主記憶1ノから先読みさ
れた命令列が格納される命令バッファ(以下、lBと称
する)である。19はlB18から収り出される命令が
保持される命令レジスタ(以下、IRと称する)、20
はアドレス計算部である。アドレス計算部20では、l
R19に保持されている命令が示すオペランドの仮想ア
ドレス、または当該命令が分岐命令の場合にはその分岐
先の仮想アドレスが計算される。21はアドレス計算部
20で計算された仮想アドレスが保持される仮想アドレ
スレジスタ(以下、VARと称する)、22はVAR2
Jに保持されている仮想アドレスを物理アドレスに変換
するアドレス変換部である。アドレス変換部22は仮想
アドレスを物理アドレスに高速に変換するために図示せ
ぬTLB(アドレス変換バッファ)を有している。23
はアドレス変換部22でアドレス変換されたオペランド
の物理アドレス(実アドレス)が保持される実アドレス
レジスタ(以下、RARと称する)である。
物理アドレスと、分岐命令の分岐先の物理アドレスを保
持する2つのカウンタ(図示せず)を備えたカランタ部
(以下、MLOCと称する)、17はMLOCJ6を監
視して命令先読み中にアクセスすべきページが次のペー
ジに移ることを検出するページ切換検出部である。18
はI−Cache 13または主記憶1ノから先読みさ
れた命令列が格納される命令バッファ(以下、lBと称
する)である。19はlB18から収り出される命令が
保持される命令レジスタ(以下、IRと称する)、20
はアドレス計算部である。アドレス計算部20では、l
R19に保持されている命令が示すオペランドの仮想ア
ドレス、または当該命令が分岐命令の場合にはその分岐
先の仮想アドレスが計算される。21はアドレス計算部
20で計算された仮想アドレスが保持される仮想アドレ
スレジスタ(以下、VARと称する)、22はVAR2
Jに保持されている仮想アドレスを物理アドレスに変換
するアドレス変換部である。アドレス変換部22は仮想
アドレスを物理アドレスに高速に変換するために図示せ
ぬTLB(アドレス変換バッファ)を有している。23
はアドレス変換部22でアドレス変換されたオペランド
の物理アドレス(実アドレス)が保持される実アドレス
レジスタ(以下、RARと称する)である。
なお、アドレス変換部22でアドレス変換された分岐命
令の分岐先物理アドレスはMLOC16の該当するカウ
ンタにロードされる。
令の分岐先物理アドレスはMLOC16の該当するカウ
ンタにロードされる。
24はアドレス変換部22において分岐命令の分岐先ア
ドレスを仮想アドレスから物理アドレスに変換する際、
TLBに対応するアドレス変換対が無い場合にセットさ
れるフラグである。
ドレスを仮想アドレスから物理アドレスに変換する際、
TLBに対応するアドレス変換対が無い場合にセットさ
れるフラグである。
25はMLOC16に対応した現在実行中の命令列に関
する仮想アドレス、または分岐命令の分岐先の仮想アド
レスを保持する2つのレジスタ(図示せず)を備えたレ
ジスタ部(以下、LOCBと称fる)、26はアダーで
ある。アダー26は、ページ切換検出部17のページ切
換検出時に、LOCB25に保持されている現在実行中
の命令列に関する仮想アドレスのページ番号フィールド
の内容を+1してアドレス変換部22に出力するように
なっている。また、アダー26は、フラグ24がセット
されている状態で分岐命令の分岐条件が確定した場合に
、LOCB25に保持されている分岐先仮想アドレスを
そのままアドレス変換部22に出力するようになってい
る。なお、アドレス変換部22内のTLBに対応するア
ドレス変換対が無い場合に主記憶11にあるページテー
ブル等の情報をもとにアドレス変換を行なうファームウ
ェアなど各種制御を行なうファームウェアを有するマイ
クロプログラム制御部は省略されている。
する仮想アドレス、または分岐命令の分岐先の仮想アド
レスを保持する2つのレジスタ(図示せず)を備えたレ
ジスタ部(以下、LOCBと称fる)、26はアダーで
ある。アダー26は、ページ切換検出部17のページ切
換検出時に、LOCB25に保持されている現在実行中
の命令列に関する仮想アドレスのページ番号フィールド
の内容を+1してアドレス変換部22に出力するように
なっている。また、アダー26は、フラグ24がセット
されている状態で分岐命令の分岐条件が確定した場合に
、LOCB25に保持されている分岐先仮想アドレスを
そのままアドレス変換部22に出力するようになってい
る。なお、アドレス変換部22内のTLBに対応するア
ドレス変換対が無い場合に主記憶11にあるページテー
ブル等の情報をもとにアドレス変換を行なうファームウ
ェアなど各種制御を行なうファームウェアを有するマイ
クロプログラム制御部は省略されている。
次に本発明の一実施例の動作を説明する。本実施例では
、処理効率を良くするため命令の先読みが行なわれてい
る。この命令先読みのための命令格納アドレスはMLO
C16(のいずれか一方のカウンタ)に物理アドレス(
実アドレス)の形で保持され、当該物理アドレスを用い
て必要に応じてI−CacheJ 3 (または主記憶
11)がアクセスされる。そして、このアクセスによっ
て先読みされた命令はlB11jに格納される。
、処理効率を良くするため命令の先読みが行なわれてい
る。この命令先読みのための命令格納アドレスはMLO
C16(のいずれか一方のカウンタ)に物理アドレス(
実アドレス)の形で保持され、当該物理アドレスを用い
て必要に応じてI−CacheJ 3 (または主記憶
11)がアクセスされる。そして、このアクセスによっ
て先読みされた命令はlB11jに格納される。
IBlBに格納された命令は必要に応じてlR19に取
り出され、命令のデコード、アドレス計算部20におけ
るオペランドアドレスの計算等が行なわれる。オペラン
ドアドレス(または分岐命令の分岐先アドレス)は、ま
ずアドレス計算部20において仮想アドレスで求められ
、VAR21に保持される。
り出され、命令のデコード、アドレス計算部20におけ
るオペランドアドレスの計算等が行なわれる。オペラン
ドアドレス(または分岐命令の分岐先アドレス)は、ま
ずアドレス計算部20において仮想アドレスで求められ
、VAR21に保持される。
VAR2Jに保持された仮想アドレスはアドレス変換部
22に出力される。アドレス変換部22では、まずTL
Bが参照される。そして、TLBK対応するアドレス変
換対(仮想アドレスと実記憶のページ枠番号との対)が
存在する場合、該当仮想アドレスがオペランドアドレス
であれば変換により求められた物理アドレスはRAR2
3に保持される。同じく該当仮想アドレスが分岐先アド
レスであれば、変換により求められた物理アドレスは現
在実行中の命令列に関する物理アドレス(すなわち命令
先読みのために用いられている物理アドレス)が保持さ
れているMLOC16の対応するカウンタ(一方のカウ
ンタ)と対をなすカウンタ(他方のカウンタ)に保持さ
れる。これは、分岐命令の分岐条件が不成立となった場
合に、MLOC16の上記一方のカウンタの出力を用い
て分岐命令に続く命令列が正常に読み出されて実行され
るようにするためである。なお、分岐命令の分岐条件が
成立した場合には、MLOC16の上記他方のカウンタ
の出力を用いて分岐先命令列が続み出され、当該他方の
カウンタが現在実行中の命令列に関する物理アドレスを
保持するカウンタとして扱われる。したがって、次に分
岐命令がlR19に収り出され、その分岐先仮想アドレ
スがアドレス計算部20で求められ、アドレス変換部2
2で対応する分岐先物理アドレスが求められた場合、当
該分岐先物理アドレスは前回と異なってMLOCleの
上記一方のカウンタに保持される。
22に出力される。アドレス変換部22では、まずTL
Bが参照される。そして、TLBK対応するアドレス変
換対(仮想アドレスと実記憶のページ枠番号との対)が
存在する場合、該当仮想アドレスがオペランドアドレス
であれば変換により求められた物理アドレスはRAR2
3に保持される。同じく該当仮想アドレスが分岐先アド
レスであれば、変換により求められた物理アドレスは現
在実行中の命令列に関する物理アドレス(すなわち命令
先読みのために用いられている物理アドレス)が保持さ
れているMLOC16の対応するカウンタ(一方のカウ
ンタ)と対をなすカウンタ(他方のカウンタ)に保持さ
れる。これは、分岐命令の分岐条件が不成立となった場
合に、MLOC16の上記一方のカウンタの出力を用い
て分岐命令に続く命令列が正常に読み出されて実行され
るようにするためである。なお、分岐命令の分岐条件が
成立した場合には、MLOC16の上記他方のカウンタ
の出力を用いて分岐先命令列が続み出され、当該他方の
カウンタが現在実行中の命令列に関する物理アドレスを
保持するカウンタとして扱われる。したがって、次に分
岐命令がlR19に収り出され、その分岐先仮想アドレ
スがアドレス計算部20で求められ、アドレス変換部2
2で対応する分岐先物理アドレスが求められた場合、当
該分岐先物理アドレスは前回と異なってMLOCleの
上記一方のカウンタに保持される。
一方、アドレス父風′部22においてTLBが参照され
た場合に、当該TLBに対応するアドレス変換対が無い
ときには、オペランドアドレスのアドレス変換であれば
ファームウェアにより主記憶11に置かれた各棹テーブ
ル(例えばセグメントテーブルやページテーブル)が参
照され、実記憶(主記憶11)のベージ枠番号(ページ
ラフレームーナンバー、ページ拳フレーム・アドレス)
が求められる。そして、ページ枠番号と仮想アドレス中
の反位(べ−i)内相対アドレス)とを加算または連結
することにより物理アドレスが得られる。このようにし
て得られた物理アドレスはRAR,?、9に保持される
。
た場合に、当該TLBに対応するアドレス変換対が無い
ときには、オペランドアドレスのアドレス変換であれば
ファームウェアにより主記憶11に置かれた各棹テーブ
ル(例えばセグメントテーブルやページテーブル)が参
照され、実記憶(主記憶11)のベージ枠番号(ページ
ラフレームーナンバー、ページ拳フレーム・アドレス)
が求められる。そして、ページ枠番号と仮想アドレス中
の反位(べ−i)内相対アドレス)とを加算または連結
することにより物理アドレスが得られる。このようにし
て得られた物理アドレスはRAR,?、9に保持される
。
また、仮想アドレス(の変位を除く部分)とページ枠番
号とのアドレス変換対はTLBに格納される。これに対
し、分岐命令の分岐先アドレスのアドレス変換であれば
、上述のようにTLBに対応するアドレス変換対が無い
場合、フラグ24がセットされる。また、該当する仮想
アドレス(分岐先仮想アドレス)は、LOCB25のM
LOCleに対応した現在実行中の命令列に関する仮想
アドレスが保持されているレジスタ(一方のレジスタ)
と対をなすレジスタ(他方のレジスタ)に保持される。
号とのアドレス変換対はTLBに格納される。これに対
し、分岐命令の分岐先アドレスのアドレス変換であれば
、上述のようにTLBに対応するアドレス変換対が無い
場合、フラグ24がセットされる。また、該当する仮想
アドレス(分岐先仮想アドレス)は、LOCB25のM
LOCleに対応した現在実行中の命令列に関する仮想
アドレスが保持されているレジスタ(一方のレジスタ)
と対をなすレジスタ(他方のレジスタ)に保持される。
そして、フラグ24がセットされている場合、上記分岐
命令の分岐条件成立が確定するまで(上述したオペラン
ドアドレスの場合のような)主記憶1ノにある情報をも
とに行なわれるファームウェアによるアドレス変換は保
留される。
命令の分岐条件成立が確定するまで(上述したオペラン
ドアドレスの場合のような)主記憶1ノにある情報をも
とに行なわれるファームウェアによるアドレス変換は保
留される。
ところでMLOCleには前述したように現在実行中の
命令列に関する物理アドレスと、分岐命令の分岐条件が
成立した場合の分岐先物理アドレスが保持される。本実
施例では、分岐のない命令列を実行中には、MLOC1
6の対応するカウンタをカウント更新させ、そのカウン
ト出力を命令先読みのための物理アドレスとしている。
命令列に関する物理アドレスと、分岐命令の分岐条件が
成立した場合の分岐先物理アドレスが保持される。本実
施例では、分岐のない命令列を実行中には、MLOC1
6の対応するカウンタをカウント更新させ、そのカウン
ト出力を命令先読みのための物理アドレスとしている。
こうすることにより、その都度アドレス反換部(アドレ
ス変換機構)を用いて仮想アドレスを物理アドレスに変
換して命令先読みを行なう従来方式に比べ処理効率が向
上する。
ス変換機構)を用いて仮想アドレスを物理アドレスに変
換して命令先読みを行なう従来方式に比べ処理効率が向
上する。
しかし、MLOCle内のカウンタを動作させて命令先
読みをする本方式では、先読み対象となっていた命令列
が置かれている実記憶上のページが次のページに移った
場合、誤ったページの命令列が先読みされる不都合が生
じる。これは、仮想アドレス空間上ではページ(ページ
番号)は連続しているが、実記憶上では連続していない
ことによる。そこで本実施例では、ページが次のページ
に切り換わる場合に、物理アドレスのページ内相対アド
レスを示す下位アドレスがオール@1″からオール″′
0″となり、上位アドレス部分が+1されることを利用
してアクセスページ先を次のページに切り換えることを
検出するようにしている。これを行なうのがページ切換
検出部17である。すなわち、ページ切換検出部17は
MLOC16の現在実行中の命令列に関する物理アドレ
スが保持されているカウンタの出力(物理アドレス)を
監視し、当該カウンタがカウントアツプした際にそれま
で実行していたページから次のページに移るか否かの検
出を行なう。これは、例えば物理アドレスのアドレス長
が32ビツトで、ページサイズが2KB(2048バイ
ト)の場合であれば、ピット21からビット20へのキ
ャリー・イン(Carry in)を検出することに
よって可能となる。
読みをする本方式では、先読み対象となっていた命令列
が置かれている実記憶上のページが次のページに移った
場合、誤ったページの命令列が先読みされる不都合が生
じる。これは、仮想アドレス空間上ではページ(ページ
番号)は連続しているが、実記憶上では連続していない
ことによる。そこで本実施例では、ページが次のページ
に切り換わる場合に、物理アドレスのページ内相対アド
レスを示す下位アドレスがオール@1″からオール″′
0″となり、上位アドレス部分が+1されることを利用
してアクセスページ先を次のページに切り換えることを
検出するようにしている。これを行なうのがページ切換
検出部17である。すなわち、ページ切換検出部17は
MLOC16の現在実行中の命令列に関する物理アドレ
スが保持されているカウンタの出力(物理アドレス)を
監視し、当該カウンタがカウントアツプした際にそれま
で実行していたページから次のページに移るか否かの検
出を行なう。これは、例えば物理アドレスのアドレス長
が32ビツトで、ページサイズが2KB(2048バイ
ト)の場合であれば、ピット21からビット20へのキ
ャリー・イン(Carry in)を検出することに
よって可能となる。
ページ切換検出部17によってアクセスすべきページが
次のページに移ることが検出されると、LOCB 25
O(MLOCleに保持されている現在実行中の命令
列に関する物理アドレスに)対応する仮想アドレスのペ
ージ番号フィールドの内容がアダー26によって+1さ
れ、アドレス寂換部22に出力される。これによりMi
J述したように仮想アドレスから物理アドレスへの変換
が行なわれる。なお、このときの仮想アドレスの変位(
ページ内相対アドレス)は、必ずしも該当するページの
正しい変位を示しているとは限らないが、アドレス変換
対を求める場合には当該変位は不要であり、何ら間融と
ならない。また、MLOC16の前記カウントアツプ後
の物理アドレスの変位(ページ内相対アドレス)は該当
するページの正しい変位を示しているため、物理アドレ
スを求める場合にはアドレス変換対を求めるときに得ら
れるページ砕番号と、MLOC16の前記カウントアツ
プ後の物理アドレスの変位とを加算もしくは連結すれば
よい。そして、このようにして求められた実記憶(主記
憶1))上の新しいページの先頭位置を示す物理アドレ
スは、MLOC16の対応するカウンタに保持される。
次のページに移ることが検出されると、LOCB 25
O(MLOCleに保持されている現在実行中の命令
列に関する物理アドレスに)対応する仮想アドレスのペ
ージ番号フィールドの内容がアダー26によって+1さ
れ、アドレス寂換部22に出力される。これによりMi
J述したように仮想アドレスから物理アドレスへの変換
が行なわれる。なお、このときの仮想アドレスの変位(
ページ内相対アドレス)は、必ずしも該当するページの
正しい変位を示しているとは限らないが、アドレス変換
対を求める場合には当該変位は不要であり、何ら間融と
ならない。また、MLOC16の前記カウントアツプ後
の物理アドレスの変位(ページ内相対アドレス)は該当
するページの正しい変位を示しているため、物理アドレ
スを求める場合にはアドレス変換対を求めるときに得ら
れるページ砕番号と、MLOC16の前記カウントアツ
プ後の物理アドレスの変位とを加算もしくは連結すれば
よい。そして、このようにして求められた実記憶(主記
憶1))上の新しいページの先頭位置を示す物理アドレ
スは、MLOC16の対応するカウンタに保持される。
すなわら当該カウンタの内容が、誤った物理アドレスか
ら正しい物理アドレスに変更される。しかして、MLO
C16の対応するカウンタがカウント更新されて命令先
読みが行なわれる。
ら正しい物理アドレスに変更される。しかして、MLO
C16の対応するカウンタがカウント更新されて命令先
読みが行なわれる。
一方、MLOC16の分岐先物理アドレスが保持される
カウンタは次のように用いられる。
カウンタは次のように用いられる。
前述したように分岐先仮想アドレスのアドレス変換時に
、TLBに対応するアドレス変換対が存在して分岐先物
理アドレスが求められ、当該分岐先物理アドレスがML
OCJ6の対応するカウンタに保持されている状態で、
分岐命令の分岐条件成立が確定したものとする。この場
合、MLOCJ6のカウンタは、分岐先物理アドレスが
保持されているカウンタに切り換えられる。
、TLBに対応するアドレス変換対が存在して分岐先物
理アドレスが求められ、当該分岐先物理アドレスがML
OCJ6の対応するカウンタに保持されている状態で、
分岐命令の分岐条件成立が確定したものとする。この場
合、MLOCJ6のカウンタは、分岐先物理アドレスが
保持されているカウンタに切り換えられる。
そして、このカウンタの出力を用いてI −Cacho
I 3または主記憶1ノから分岐先命令列が読み出さ
れ、IBlBに格納される。これに対し、分岐先仮想ア
ドレスのアドレス変換時にTLBに対応するアドレス変
換対が無くフラグ24がセットされた場合、前述したよ
うにファームウェアによるアドレス変換が保留されて分
岐先物理アドレスが求められていないので分岐先命令列
の読み出しは次の手順で行なわれる。
I 3または主記憶1ノから分岐先命令列が読み出さ
れ、IBlBに格納される。これに対し、分岐先仮想ア
ドレスのアドレス変換時にTLBに対応するアドレス変
換対が無くフラグ24がセットされた場合、前述したよ
うにファームウェアによるアドレス変換が保留されて分
岐先物理アドレスが求められていないので分岐先命令列
の読み出しは次の手順で行なわれる。
すなわち、分岐命令の分岐条件成立が確定した場合にフ
ラグ24がセットされていると、LOCB、?5に保持
されている分岐先仮想アドレスがアダー26を介してそ
のままアドレス変換部22に出力され、ファームウェア
により前述したオペランドアドレスのアドレス変換と同
様にアドレス変換が行なわれる。このとき求められたア
ドレス変換対はTLBに格納され、分岐先物理アドレス
はMLOCJ15の対応するカウンタに保持される。そ
して、このカウンタの出力を用いて分岐先命令列が読み
出される。
ラグ24がセットされていると、LOCB、?5に保持
されている分岐先仮想アドレスがアダー26を介してそ
のままアドレス変換部22に出力され、ファームウェア
により前述したオペランドアドレスのアドレス変換と同
様にアドレス変換が行なわれる。このとき求められたア
ドレス変換対はTLBに格納され、分岐先物理アドレス
はMLOCJ15の対応するカウンタに保持される。そ
して、このカウンタの出力を用いて分岐先命令列が読み
出される。
次に本発明の他の実施例を説明する。なお、当該実施例
は本発明をパイプライン制御方式の情報処理装置に適用
した場合であり、その構成は基本的に前記実施例と同様
であるため、前記実施例で用いた図面を参照して説明す
る。本実施例の前記実施例と特に異なる点は、パイプラ
インのステージを制御するパイプライン制御機構(図示
せず)を有している点、このパイプライン制御機構の制
御による分岐先命令列の先読みを、フラグ24がセット
されている場合には分岐条件成立が確定するまで保留す
る点である。
は本発明をパイプライン制御方式の情報処理装置に適用
した場合であり、その構成は基本的に前記実施例と同様
であるため、前記実施例で用いた図面を参照して説明す
る。本実施例の前記実施例と特に異なる点は、パイプラ
インのステージを制御するパイプライン制御機構(図示
せず)を有している点、このパイプライン制御機構の制
御による分岐先命令列の先読みを、フラグ24がセット
されている場合には分岐条件成立が確定するまで保留す
る点である。
また、本実施例では、IBlBは前記実施例と異なって
2つのバッファ(図示せず)を有している。これは分岐
のない命令列の実行中における命令先読みと、分岐先命
令列の先読みとの両先読みが行なわれる本実施例におい
て、分岐条件成立/不成立のいずれの場合にも正しく対
処できるようにするためである。
2つのバッファ(図示せず)を有している。これは分岐
のない命令列の実行中における命令先読みと、分岐先命
令列の先読みとの両先読みが行なわれる本実施例におい
て、分岐条件成立/不成立のいずれの場合にも正しく対
処できるようにするためである。
本実施例において、パイプラインのステージは、命令の
取り出しが行なわれる第0ステージ、オペランドまたは
分岐命令の分岐先アドレスの仮想アドレス計算が行なわ
れる第1ステージ、仮想アドレスの物理アドレスへの変
換が行なわれる第2ステージ、オペランドキャッシュの
ディレクトリチェックが行なわれる第3ステージ、オペ
ランドキャッシュの読み出しが行なわれる第4ステージ
、および演算や演算結果の格納が行なわれる第5ステー
ジの6ステージからなっている。本実施例におけるオペ
ランドアドレスの計算や、分岐のない命令列を実行中の
場合の処理に関しては、前記実施例のそれと同様である
。これに対し、分岐命令に関する処理については一部異
なっている。
取り出しが行なわれる第0ステージ、オペランドまたは
分岐命令の分岐先アドレスの仮想アドレス計算が行なわ
れる第1ステージ、仮想アドレスの物理アドレスへの変
換が行なわれる第2ステージ、オペランドキャッシュの
ディレクトリチェックが行なわれる第3ステージ、オペ
ランドキャッシュの読み出しが行なわれる第4ステージ
、および演算や演算結果の格納が行なわれる第5ステー
ジの6ステージからなっている。本実施例におけるオペ
ランドアドレスの計算や、分岐のない命令列を実行中の
場合の処理に関しては、前記実施例のそれと同様である
。これに対し、分岐命令に関する処理については一部異
なっている。
分岐命令の場合、分岐先アドレスが第1ステージで仮想
アドレスとして求められ、第2ステージで物理アドレス
に置換される。ただし、当該第2ステージで物理アドレ
スが得られるのは、アドレス変換部22内のTLBに対
応するアドレス髪換対が存在する場合である。この対応
するアドレス変換対が存在するために分岐先仮想アドレ
スに対するアドレス変換が行なわれることにより得られ
る分岐先物理アドレスは、NU記実施例と同様にMLO
CJ6内の対応するカウンタに保持される。そして、前
記実施例と異なり、命令の処理効率を上げるために、分
岐条件成立/不成立の確驚前に上記MLOC16内の対
応するカウンタをカウント更新させて分岐先命令列の先
読みが行なわれる。この先読みされた分岐先命令列は、
上記分岐先物理アドレスが保持されたMLOC16内の
カウンタに対応するIBl&内のバッファ、すなわち分
岐命令を含む命令列が格納されていたバッファ(一方の
バッファ)と対をなすバッファ(他方のバッファ)に格
納される。しかして分岐命令の分岐条件成立/不成立が
確定すると、条件成立であればIB1&内の上記他方の
バッファから命令がlR19に取り出され、条件不成立
であればIB1B内の上記一方のバッファから命令がl
R19に取り出される。
アドレスとして求められ、第2ステージで物理アドレス
に置換される。ただし、当該第2ステージで物理アドレ
スが得られるのは、アドレス変換部22内のTLBに対
応するアドレス髪換対が存在する場合である。この対応
するアドレス変換対が存在するために分岐先仮想アドレ
スに対するアドレス変換が行なわれることにより得られ
る分岐先物理アドレスは、NU記実施例と同様にMLO
CJ6内の対応するカウンタに保持される。そして、前
記実施例と異なり、命令の処理効率を上げるために、分
岐条件成立/不成立の確驚前に上記MLOC16内の対
応するカウンタをカウント更新させて分岐先命令列の先
読みが行なわれる。この先読みされた分岐先命令列は、
上記分岐先物理アドレスが保持されたMLOC16内の
カウンタに対応するIBl&内のバッファ、すなわち分
岐命令を含む命令列が格納されていたバッファ(一方の
バッファ)と対をなすバッファ(他方のバッファ)に格
納される。しかして分岐命令の分岐条件成立/不成立が
確定すると、条件成立であればIB1&内の上記他方の
バッファから命令がlR19に取り出され、条件不成立
であればIB1B内の上記一方のバッファから命令がl
R19に取り出される。
これに対し、第2ステージにおけるアドレス変換時にT
LBに対応するアドレス変換対が無い場合には、前記実
施例と同様にフラグ24がセットされ、分岐命令の分岐
条件成立が確定するまでファームウェアによるアドレス
変換は保留される。このとき、該当する分岐先仮想アド
レスは前記実施例と同様にLOCB25の対応するレジ
スタに保持される。この状態で分岐命令の分岐条件成立
が確定すると、前記実施例と同様にLOCB 25に保
持されている分岐先仮想アドレスがアダー26を介して
そのままアドレス敦換部22に出力され、ファームウェ
アによるアドレス変換が行なわれる。これにより求めら
れた分岐先物理アドレスはMLOC16の対応するカウ
ンタに保持される。そして、このカウンタをカウント更
新させることにより分岐先命令群、更にはこれらの命令
群に後続する命令列が先読みされるようになる。このよ
うにして読み出された命令列はIB1B内の前記他方の
バッファに格納される。そして、当該バッファから、ま
ず分岐先命令がlR19に収り出され、第1ステージ以
降の各ステージがパイプライン制御で行なわれる。
LBに対応するアドレス変換対が無い場合には、前記実
施例と同様にフラグ24がセットされ、分岐命令の分岐
条件成立が確定するまでファームウェアによるアドレス
変換は保留される。このとき、該当する分岐先仮想アド
レスは前記実施例と同様にLOCB25の対応するレジ
スタに保持される。この状態で分岐命令の分岐条件成立
が確定すると、前記実施例と同様にLOCB 25に保
持されている分岐先仮想アドレスがアダー26を介して
そのままアドレス敦換部22に出力され、ファームウェ
アによるアドレス変換が行なわれる。これにより求めら
れた分岐先物理アドレスはMLOC16の対応するカウ
ンタに保持される。そして、このカウンタをカウント更
新させることにより分岐先命令群、更にはこれらの命令
群に後続する命令列が先読みされるようになる。このよ
うにして読み出された命令列はIB1B内の前記他方の
バッファに格納される。そして、当該バッファから、ま
ず分岐先命令がlR19に収り出され、第1ステージ以
降の各ステージがパイプライン制御で行なわれる。
なお、前記実施例では、MLOC16を用いた命令先読
み機能勿備えた情報処理装置に実施した場合について説
明したが、本発明の要旨によればこの4亀の機能は必ず
しも必要でない。
み機能勿備えた情報処理装置に実施した場合について説
明したが、本発明の要旨によればこの4亀の機能は必ず
しも必要でない。
以上詳述したように本発明によれば、分岐命令の分岐先
アドレスの仮想アドレスから物理アドレ、、、1.−へ
の置換時においてTLBに対応するアドレス変換対が無
い場合、該当分岐命令の分岐条件成立が確定するまで主
記憶にある情報にアドレス変換を行なうことを保留し、
更に分岐先命令列の先読みも禁止するようにしているの
で、無駄な計算が無くなり、またTLBのヒツト率の低
下が防止でき、かつ誤ったメモリアクセスが行なわれず
にすみ、処理効率を向上することができる。
アドレスの仮想アドレスから物理アドレ、、、1.−へ
の置換時においてTLBに対応するアドレス変換対が無
い場合、該当分岐命令の分岐条件成立が確定するまで主
記憶にある情報にアドレス変換を行なうことを保留し、
更に分岐先命令列の先読みも禁止するようにしているの
で、無駄な計算が無くなり、またTLBのヒツト率の低
下が防止でき、かつ誤ったメモリアクセスが行なわれず
にすみ、処理効率を向上することができる。
図面は本発明の一実施例を示すブロック図である。
11・・・主記憶、16・・・カウンタ部(MLOC)
、17・・・ページ切換検出部、18・・・命令バッフ
ァ(■B)、22・・・アドレス変換部、24・・・フ
ラグ、25・・・レジスタ郡(LOCB)1.?6・・
・アダー〇 出願人代理人 弁理士 鈴 圧式 彦特許庁長官
若 杉 和 夫 殿 1.事件の表示 特願昭57−150982号 2 発明の名称 仮想記憶制御方式 3、補正をする者 事件との関係 特許出願人 (307) 東京芝浦電気株式会社 4、代理人 5、自発補正 7、補正の内容 明細書の第13頁第17行目乃至同頁箱19行目に「下
位アドレスが・・・・・・利用して」とあるを「下位ア
ドレスが所定数だけ増やされ、上位アドレス部分が+1
されることを検出して]と訂正する。
、17・・・ページ切換検出部、18・・・命令バッフ
ァ(■B)、22・・・アドレス変換部、24・・・フ
ラグ、25・・・レジスタ郡(LOCB)1.?6・・
・アダー〇 出願人代理人 弁理士 鈴 圧式 彦特許庁長官
若 杉 和 夫 殿 1.事件の表示 特願昭57−150982号 2 発明の名称 仮想記憶制御方式 3、補正をする者 事件との関係 特許出願人 (307) 東京芝浦電気株式会社 4、代理人 5、自発補正 7、補正の内容 明細書の第13頁第17行目乃至同頁箱19行目に「下
位アドレスが・・・・・・利用して」とあるを「下位ア
ドレスが所定数だけ増やされ、上位アドレス部分が+1
されることを検出して]と訂正する。
Claims (2)
- (1) 仮想アドレスを物理アドレスに高速に皺換す
るためにアドレス変換バッファを有する情報処理装置に
おいて、分岐命令の分岐先アドレスを仮想アドレスから
物理アドレスに変換する際、対応するアドレス変換対が
上記アドレス変換バッファに無いときにセットされるフ
ラグと、そのときの上記仮想アドレスが保持されるレジ
スタと、上記フラグがセットされている場合、上記分岐
命令の分岐条件成立が確定するまで主記憶にある情報を
もとにアドレス変換対を求めることを保留する手段とを
具備し、上記フラグがセットされている状態で上記分岐
命令の分岐条件成立が確定した場合に上記レジスタに保
持されている仮想アドレスを用い上記主記憶にある情報
をもとにアドレス毅換対を求めることを特徴とする仮想
記憶制御方式。 - (2)仮想アドレスを物理アドレスに高速に変換するた
めにアドレス変換バッファを有する情段と、上記分岐命
令の分岐先アドレスを仮想アドレスから物理アドレスに
変換する際、対応するアドレス変換対が上記アドレス変
換バッファに無いときにセットされるフラグと、そのと
きの仮想アドレスが保持されるレジスタと、上記フラグ
がセットされている場合、上記分岐命令の分岐条件成立
が確定するまで主記憶にある情報をもとにアドレス変換
対を求めることを保留すると共に上記先読み手段による
分岐先命令列の先読みを保留する手段とを具備し、上記
フラグがセットされている状態で上記分岐命令の分岐条
件が確定した場合に上記レジスタに保持されている仮想
アドレスを用い上記主記憶にある情報をもとにアドレス
変換対を求めると共に分岐先命令列の先読みを行なうこ
とを特徴とする仮想記憶制御方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP57150982A JPS5940387A (ja) | 1982-08-31 | 1982-08-31 | 仮想記憶制御方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP57150982A JPS5940387A (ja) | 1982-08-31 | 1982-08-31 | 仮想記憶制御方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS5940387A true JPS5940387A (ja) | 1984-03-06 |
JPS6150343B2 JPS6150343B2 (ja) | 1986-11-04 |
Family
ID=15508696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP57150982A Granted JPS5940387A (ja) | 1982-08-31 | 1982-08-31 | 仮想記憶制御方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS5940387A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62242255A (ja) * | 1986-04-15 | 1987-10-22 | Nec Corp | 情報処理装置 |
JPH02230348A (ja) * | 1989-03-02 | 1990-09-12 | Nec Corp | 情報処理装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0225878U (ja) * | 1988-08-05 | 1990-02-20 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS56134383A (en) * | 1980-03-24 | 1981-10-21 | Fujitsu Ltd | Data processor |
-
1982
- 1982-08-31 JP JP57150982A patent/JPS5940387A/ja active Granted
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS56134383A (en) * | 1980-03-24 | 1981-10-21 | Fujitsu Ltd | Data processor |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62242255A (ja) * | 1986-04-15 | 1987-10-22 | Nec Corp | 情報処理装置 |
JPH02230348A (ja) * | 1989-03-02 | 1990-09-12 | Nec Corp | 情報処理装置 |
Also Published As
Publication number | Publication date |
---|---|
JPS6150343B2 (ja) | 1986-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2722523B2 (ja) | 命令先取り装置 | |
JP3618385B2 (ja) | データをバッファリングする方法およびそのシステム | |
KR101014395B1 (ko) | 프로세서 전력 감소를 위한 마이크로 tlb 및 마이크로태그 | |
JP3666689B2 (ja) | 仮想アドレス変換方法 | |
EP0381447A2 (en) | Method and apparatus for controlling the conversion of virtual to physical memory addresses in a digital computer system | |
EP0817061A2 (en) | Method for increasing the data storage rate of a computer system | |
JPH07160580A (ja) | プロセッサ、キャッシュ、およびエイリアシングが発生するのを防ぐための方法 | |
EP0458305A2 (en) | Microprocessor having branch prediction function | |
JP3045952B2 (ja) | フルアソシアティブ・アドレス変換器 | |
JP3662619B2 (ja) | 入力/出力アダプタにより使用されるコヒーレンス・インデックス生成 | |
JP2575598B2 (ja) | マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム | |
JPH08221324A (ja) | キャッシュメモリへのアクセス | |
JPS62164148A (ja) | デ−タ処理システム | |
US5991848A (en) | Computing system accessible to a split line on border of two pages within one cycle | |
EP0173909B1 (en) | Look-aside buffer least recently used marker controller | |
JPS5940387A (ja) | 仮想記憶制御方式 | |
JP3618868B2 (ja) | 二重モード変換索引バッファを利用したデータ処理システムにおける効率的メモリ管理の方法およびシステム | |
JPS5940386A (ja) | 仮想記憶制御方式 | |
JPH0235331B2 (ja) | ||
JPH04245334A (ja) | 情報処理装置の命令先読み制御方式 | |
JPH01255933A (ja) | 掃出し制御方式 | |
JP2687765B2 (ja) | 分岐予測方式 | |
JPH04106645A (ja) | キャッシュメモリのアドレス処理方法 | |
JPH01193938A (ja) | 命令先読み装置 | |
JPH07334422A (ja) | キャッシュメモリ装置 |