JPH06110784A - マイクロプロセッサ装置 - Google Patents

マイクロプロセッサ装置

Info

Publication number
JPH06110784A
JPH06110784A JP4279482A JP27948292A JPH06110784A JP H06110784 A JPH06110784 A JP H06110784A JP 4279482 A JP4279482 A JP 4279482A JP 27948292 A JP27948292 A JP 27948292A JP H06110784 A JPH06110784 A JP H06110784A
Authority
JP
Japan
Prior art keywords
instruction
fault
address
register
memory access
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
JP4279482A
Other languages
English (en)
Inventor
Toshiro Shimada
利郎 島田
Hiroaki Tomita
浩明 冨田
Takayoshi Hashimoto
栄利 橋本
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co 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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP4279482A priority Critical patent/JPH06110784A/ja
Publication of JPH06110784A publication Critical patent/JPH06110784A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】 MMUでフォルトが検出される場合でも、無
効化される命令を減少させ、命令パイプラインを効率的
に動作させることのできるマイクロプロセッサ装置を提
供する。 【構成】 メモリアクセスを含む命令は、アドレス生成
命令とメモリアクセス命令により実行される。アドレス
生成命令は、命令デコード回路4で解読され、ALU7
による演算結果をアドレスレジスタ2に格納する。同時
に、演算結果はアドレス信号としてMMUに入力され、
MMUにおいてフォルトの検出を行ない、検出結果がフ
ォルトレジスタ3に格納される。メモリアクセス命令
は、命令デコード回路4で解読される際に、フォルトレ
ジスタ3を参照し、アクセスするアドレスでフォルトが
発生する場合は、パイプラインの命令を無効化し、例外
処理を実行する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータシステム
におけるマイクロプロセッサ装置(MPU)に関するも
のである。
【0002】
【従来の技術】コンピュータシステムにおけるメモリ方
式の1つとして、仮想記憶方式がある。仮想記憶方式で
は、メモリをアクセスする場合、仮想アドレスによるメ
モリアドレスの参照を行なう。実際にメモリをアクセス
する際には、仮想アドレスを実アドレスに変換する処理
を行なわなければならない。現在では、このアドレス変
換は、メモリ管理装置(MMU)において行なわれてい
る。このMMUは、MPU内部の中央処理装置(CP
U)とは独立したハードウェアとして構成されている。
MMUは、CPUからのアドレス信号とアクセス制御信
号等を入力とし、入力される仮想アドレスにより参照さ
れるデータが実メモリ上に存在しない場合には、ページ
フォルトを検出する。また、権限を超えたデータ参照を
行なおうとした場合には、プロテクションフォルトを検
出する。これらのフォルトが検出されると、フォルトが
検出された旨をCPUに通知する。
【0003】例えば、LOAD/STORE命令で、レ
ジスタと、仮想アドレスで参照されるメモリとの間で転
送を行なう際には、上述のようなMMUによる仮想アド
レスから実アドレスへの変換が必要であり、変換の際に
MMUによってフォルトが検出される場合が生じる。M
MUによってフォルトが検出された場合、CPUは、そ
れぞれのフォルトの種類に応じた例外処理を行なう必要
がある。例外処理では、例外処理から復帰したときに継
続して処理を実行するために、プログラムカウンタやレ
ジスタなどの内部状態を保存した後に、例外処理のため
の命令を実行する。
【0004】一方、コンピュータシステムの実行効率を
向上させる方式として、命令パイプライン方式がある。
命令パイプライン方式とは、あるひとつの計算処理を複
数の部分処理に分解し、各部分処理を独立なユニットで
順次実行する方式である。各ユニットが独立して動作で
きるので、あるユニットにおいて、ある部分処理が終了
し、次のユニットに部分処理を移行させた後は、次の計
算処理の部分処理を実行することができ、全体として複
数の計算処理を複数のユニットが同時に処理することに
より、命令の並列処理が可能となる。
【0005】例えば、“SPARC RISC USE
R’S GUIDE”,CYPRESS SEMICO
NDUCTOR社(米国)に開示されているCY7C6
01では、4ステージの命令パイプライン方式を採用し
ている。図2は、4ステージの命令パイプライン方式の
説明図である。図2に示すように、Fステージユニッ
ト、Dステージユニット、Eステージユニット、Wステ
ージユニットの4つのステージユニットがこの順序で接
続されている。各ステージでは、Fステージユニットで
命令呼び出しを行ない、Dステージユニットで命令を解
読し、Eステージユニットで演算を実行し、Wステージ
ユニットで実行結果の書き込みを行なう。
【0006】算術演算を例に、図2のパイプラインの動
作を説明する。Fステージユニットは、メモリから命令
をパイプラインに読み込む。Dステージユニットは、命
令オペコードの解読を行なうと同時に、命令オペランド
で指定されるレジスタに格納されているデータを内部バ
スにロードする。Eステージユニットは、Dステージユ
ニットで解読された命令オペコードに従い、内部バス上
のデータをALUで実行演算し、実行結果を内部バスに
出力する。Wステージユニットは、Eステージユニット
によって内部バスに出力された演算実行結果を、命令オ
ペランドに指定されるレジスタに格納する。これらの4
つのステージユニットは、互いに独立して動作する。1
番目の命令がFステージユニットでパイプラインに読み
込まれると、Dステージユニットにおいて、1番目の命
令のオペコードの解読と、命令オペランドで指定されて
いるレジスタからデータを内部バスにロードする。この
Dステージユニットにおける動作と並行して、Fステー
ジユニットでは、2番目の命令をパイプラインに読み込
む処理を行なう。Dステージユニットにおける1番目の
命令の処理が終了すると、Eステージユニットにおい
て、1番目の命令に関する演算を実行する。それと並行
して、Fステージユニットにおける3番目の命令の読み
込みと、Dステージユニットにおける2番目の命令のデ
コード等が行なわれる。
【0007】図3は、4ステージの命令パイプライン方
式における処理のタイムチャートである。図3は、上述
の処理の過程をタイムチャートに表したものである。例
えば、Wステージユニットで1番目の命令の演算実行結
果をレジスタに格納する処理を行なっているときに、E
ステージユニットでは、2番目の命令が実行され、Dス
テージユニットは、3番目の命令の解読と命令オペラン
ドに指定されるレジスタから内部バスへのデータのロー
ドを行ない、Fステージユニットは、4番目の命令をメ
モリよりパイプラインへ入力する。このように、複数の
命令を並列処理することが可能となっている。
【0008】このようなパイプライン方式のコンピュー
タシステムにおいて、上述の仮想記憶機能を採用した場
合、MMUにおいてフォルトを認識した時点で、すでに
他の命令がパイプラインに入力され、各ステージユニッ
トで処理が実行されている場合がある。MMUからフォ
ルトの発生がCPUに通知され、例外処理を行なう場
合、プログラムカウンタやレジスタなどの値は保存され
るが、各ステージユニットの状態までは保存されないの
で、フォルト発生前と例外処理後で内部状態が変わって
しまっている。そのため、フォルトを発生したメモリア
クセスを含む命令以降の命令で、すでに命令の実行など
が行なわれている命令を無効化し、例外処理から復帰し
た時の動作を保証している。
【0009】例えば、図2に示したような4ステージの
パイプライン方式のコンピュータシステムにおいて、L
OAD/STORE命令を実行し、レジスタと仮想アド
レスで参照されるメモリとの間で転送を行なう際に、フ
ォルトが発生したとする。メモリへの書き込みはWステ
ージユニットで行なわれるので、フォルトが発生した時
点で、他のステージユニットでは、後続の命令の読み出
しや演算等が行なわれている。しかし、フォルトの発生
により、これらの後続の命令に対する処理は無効化さ
れ、例外処理を実行することになる。
【0010】命令パイプラインを効率よく利用するため
には、独立して動作可能な命令をできるだけ連続してパ
イプラインに与えなければならない。しかし、この例外
処理における命令の無効化は、連続した命令の実行を中
止させることになり、パイプラインの効率を低下させて
しまう。パイプラインステージの、より早い段階でフォ
ルトを検出し、無効化する命令を少なくすれば、パイプ
ラインの処理効率は上がる。しかし、従来のCPUのL
OAD/STORE命令ではALUによるアドレス計算
が必要であるため、少なくとも命令実行ステージ以降で
フォルトを検出せざるを得ないという制約があった。
【0011】仮想記憶機能を有するパイプライン方式の
コンピュータシステムにおいて、可変長のオペランド命
令を取り込む際にフォルトのチェックを行なう方式が、
特開昭64−10360号公報に記載されている。この
従来の方式では、命令の取り込みと実行をパイプライン
的に行なっており、命令の取り込み時にプリページ処理
によりフォルトの検出を行なっている。このプリページ
処理は、図2のようなパイプラインにおいては、Fステ
ージユニットにおけるフォルトの検出と同等である。F
ステージにおいてフォルトを検出した場合、以降の処理
は無効化する必要はなく、処理を完了させればよいの
で、それまでの処理は無駄にはならない。しかし、上述
のように、例えば、LOAD/STORE命令などでメ
モリにデータを書き込むときに、パイプラインの終段に
近いステージでフォルトが検出されると、無効化される
処理が発生し、効率が低下する。従来の方式では、この
ような終段に近いステージでフォルトが検出される場合
については考えられていなかった。
【0012】
【発明が解決しようとする課題】本発明は、上述した事
情に鑑みてなされたもので、メモリアクセスを含む命令
を実行したときに、フォルトが検出される場合であって
も、無効化される命令を減少させ、命令パイプラインを
効率的に動作させることのできるマイクロプロセッサ装
置を提供することを目的とするものである。
【0013】
【課題を解決するための手段】本発明は、仮想記憶機能
を有する命令パイプライン方式のマイクロプロセッサ装
置において、仮想アドレスを格納するアドレスレジスタ
手段と、仮想記憶機能により検出されるフォルトの情報
を格納するフォルトレジスタ手段と、命令を解読しMP
Uの各機能装置に制御信号を与える命令デコーダ手段を
有し、該命令デコーダ手段はメモリアクセスを含む命令
をアドレス生成命令とメモリアクセス命令に分けてデコ
ードし、アドレス生成命令実行時に仮想アドレスを上記
アドレスレジスタ手段に格納するとともに、アドレス信
号として出力し、メモリアクセス命令解読時にフォルト
レジスタ手段を参照し、フォルトが発生していないこと
を確認して、上記アドレスレジスタ手段に格納された値
をアドレスとして外部メモリを参照するように構成した
ことを特徴とするものである。
【0014】
【作用】本発明によれば、アドレスレジスタ手段とフォ
ルトレジスタ手段を設け、メモリアクセスを含む命令
を、アドレス計算を行なうためのアドレス生成命令と実
際のメモリアクセスを行なうためのメモリアクセス命令
に分割し、アドレス生成命令の実行時にアドレスの生成
とともに、フォルトの有無を検出し、メモリアクセス命
令の命令解読時にフォルトの有無を確認することができ
るので、演算実行前にフォルトを検出することができ、
無効化する命令を減少させ、命令パイプラインの効率化
を図ることができる。
【0015】
【実施例】図1は、本発明のマイクロプロセッサ装置の
一実施例を示すブロック図である。図中、1はマイクロ
プロセッサ装置(MPU)、2はアドレスレジスタ、3
はフォルトレジスタ、4は命令デコード回路、5は汎用
レジスタ、6は命令バッファ、7は算術論理演算装置
(ALU)、8はプログラムカウンタ、9は内部バスで
ある。
【0016】MPU1は、アドレスレジスタ2、フォル
トレジスタ3、命令デコード回路4、汎用レジスタ5、
命令バッファ6、ALU7、プログラムカウンタ8等か
らなり、アドレスレジスタ2、汎用レジスタ5、ALU
7や、アドレス信号線、データ信号線などが内部バス9
により接続されている。MPU1は、このほか、各部の
タイミング等を制御する図示しないコントロールユニッ
トを有し、また、外部からの信号線の制御を行なうバス
コントローラや、その他種々の回路を有するように構成
することができる。さらに、メモリ管理装置(MMU)
をMPU1内に設けるように構成することもできる。M
MUは、メモリ側に設けることももちろん可能である。
【0017】アドレスレジスタ2は、内部バス9に接続
され、アドレス生成命令実行時に、仮想アドレスを格納
するためのレジスタである。フォルトレジスタ手段3
は、図示しないMMUにより検出されるフォルト信号を
格納するためのレジスタであり、フォルト信号が入力さ
れ、また、命令デコード回路4と接続され、命令デコー
ド回路4へフォルト信号を供給する。命令デコード回路
4は、命令バッファ6に接続され、入力された命令を解
読し、命令に従った演算が行なわれるように、MPU1
内の各機能手段に制御信号を与える。また、フォルトレ
ジスタ3にも接続されており、メモリアクセス命令解読
時にフォルトレジスタ3を参照し、メモリアクセスの可
否を判断する。汎用レジスタ5は、内部バス9およびA
LU7に接続されており、データを一時保存するための
レジスタであり、外部からのデータ信号の一時保存や、
ALU7に演算データを供給し、また、演算結果を保存
する。命令バッファ6には、データ信号が入力されてお
り、MPU1が実行すべき命令を一時保存し、命令デコ
ード回路4に命令を供給する。ALU手段7は汎用レジ
スタ5および内部バス9に接続され、汎用レジスタ5に
格納されているデータおよび内部バス9を介して送られ
てくるデータに対して、算術論理演算を行ない、結果を
内部バス9に出力する。プログラムカウンタ手段8は、
MPU1が実行すべき命令のアドレスを順次指示するカ
ウンタである。
【0018】これらの各構成は、それぞれ独立して動作
することができ、図2に示したような4ステージの命令
パイプラインを構成している。すなわち、命令バッファ
手段6を制御し、メモリから命令の読み込みを行なう機
能が命令パイプラインのFステージユニットに対応し、
命令デコード手段7による命令の解読と汎用レジスタ手
段5から内部バス9へのデータのロード等の機能が命令
パイプラインのDステージユニットに対応し、ALU手
段7による演算が命令パイプラインのEステージユニッ
トに対応し、ALU手段7による演算結果を、汎用レジ
スタ手段5またはメモリへストアする機能が、Wステー
ジユニットに対応する。このように、命令の読み込み、
解読、演算実行、ストアの各機能を並列して動作させる
ことができる。
【0019】本発明の一実施例の一般的な動作を説明す
る。外部メモリからデータ信号線を介して入力される命
令は、命令バッファ6に格納される。命令デコード回路
4は、命令バッファ6から命令を取り出し、解読を実行
し、解読した命令に従い、MPU1内の各機能手段に制
御信号を与える。入力された命令によっては、汎用レジ
スタ手段5より、指定されたレジスタのデータが内部バ
ス9に出力される。ALU手段7では、内部バス9上の
データをもとに、演算を行ない、内部バス9に演算結果
を出力する。内部バス9に出力された演算結果は、汎用
レジスタ5に格納されたり、データ信号線を介して外部
メモリに格納されたり、または、プログラムカウンタ手
段8とともにマルチプレクスされ、アドレス信号線を介
して外部メモリ参照に利用される。
【0020】ある命令が命令バッファ6に格納され、命
令デコード回路4がこの命令を取り出して解読を開始す
ると、次の命令を命令バッファ6に格納する処理を開始
する。また、ある命令の解読が終了し、各機能手段が制
御され、演算が開始されると、命令デコード回路4は、
次の命令を命令バッファ6から取り出し、解読を開始す
るとともに、命令バッファ6へその次の命令を読み込む
処理を開始する。このようにして、多数の命令が並列的
に実行される。
【0021】次に、メモリアクセスを含む命令の動作を
説明する。メモリアクセスを含む命令、例えば、LOA
D/STORE命令においては、アドレス生成命令とメ
モリアクセス命令とに分割されて入力される。
【0022】命令バッファ6に入力されたアドレス生成
命令は、命令デコード回路4によって解読され、ALU
7で演算されたアドレスデータをアドレスレジスタ2に
格納する。それと同時に、演算結果は内部バス9を介し
てアドレス信号として出力される。外部に接続されたM
MUは、出力されたアドレス信号を解読し、各種フォル
トの検出を行ない、検出結果をフォルト信号として出力
する。MMUが出力するフォルト信号は、フォルトレジ
スタ3に格納される。メモリアドレス生成命令と対にな
るメモリアクセス命令は、命令デコード手段4で解読さ
れる際に、フォルトレジスタ3に格納されている値を参
照し、アクセスする仮想アドレスでのフォルトの有無を
確認する。フォルトが発生する場合は、フォルトの種類
に対応する例外処理命令のアドレスをプログラムカウン
タ8にセットするとともに、メモリアクセス命令以降の
命令で、例外処理命令よりも前に命令バッファ6に格納
されている命令を無効化するための制御信号を各機能手
段に送る。このとき、メモリアクセス命令は、命令デコ
ード回路4において処理されているところであるから、
演算ステージより前にフォルトの検出を行なうことがで
き、無効化される命令を、命令バッファ6に読み込んだ
命令程度に抑えることができるから、命令パイプライン
の効率を向上させることができる。
【0023】上述の説明では、メモリアクセスを伴う命
令は、分割されて命令バッファ6に入力される例を示し
たが、アドレス生成命令と、メモリアクセス命令とを命
令デコード時に生成し、アドレス生成命令のデコードを
先に行ない、その後、メモリアクセス命令のデコードを
行なうように構成することもできる。
【0024】
【発明の効果】以上の説明から明らかなように、本発明
によれば、メモリアクセスを含む命令であっても、演算
実行前にフォルトを検出することができるから、フォル
ト検出時に無効化する命令を減少させ、命令パイプライ
ンの効率化を図ることができるという効果がある。
【図面の簡単な説明】
【図1】 本発明のマイクロプロセッサ装置の一実施例
を示すブロック図である。
【図2】 4ステージの命令パイプライン方式の説明図
である。
【図3】 4ステージの命令パイプライン方式における
処理のタイムチャートである。
【符号の説明】
1 マイクロプロセッサ装置(MPU)、2 アドレス
レジスタ、3 フォルトレジスタ、4 命令デコード回
路、5 汎用レジスタ、6 命令バッファ、7算術論理
演算装置(ALU)、8 プログラムカウンタ、9 内
部バス。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 仮想記憶機能を有する命令パイプライン
    方式のマイクロプロセッサ装置において、仮想アドレス
    を格納するアドレスレジスタ手段と、仮想記憶機能によ
    り検出されるフォルトの情報を格納するフォルトレジス
    タ手段と、命令を解読しMPUの各機能装置に制御信号
    を与える命令デコーダ手段を有し、該命令デコーダ手段
    はメモリアクセスを含む命令をアドレス生成命令とメモ
    リアクセス命令に分けてデコードし、アドレス生成命令
    実行時に仮想アドレスを上記アドレスレジスタ手段に格
    納するとともに、アドレス信号として出力し、メモリア
    クセス命令解読時にフォルトレジスタ手段を参照し、フ
    ォルトが発生していないことを確認して、上記アドレス
    レジスタ手段に格納された値をアドレスとして外部メモ
    リを参照するように構成したことを特徴とするマイクロ
    プロセッサ装置。
JP4279482A 1992-09-24 1992-09-24 マイクロプロセッサ装置 Pending JPH06110784A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4279482A JPH06110784A (ja) 1992-09-24 1992-09-24 マイクロプロセッサ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4279482A JPH06110784A (ja) 1992-09-24 1992-09-24 マイクロプロセッサ装置

Publications (1)

Publication Number Publication Date
JPH06110784A true JPH06110784A (ja) 1994-04-22

Family

ID=17611665

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4279482A Pending JPH06110784A (ja) 1992-09-24 1992-09-24 マイクロプロセッサ装置

Country Status (1)

Country Link
JP (1) JPH06110784A (ja)

Similar Documents

Publication Publication Date Title
JPH0242569A (ja) ベクター処理システムに用いる文脈スイッチング方法及び装置
EP0721619B1 (en) Execution of data processing instructions
JP3439033B2 (ja) 割り込み制御装置及びプロセッサ
JPH0250260A (ja) ベクタープロセッサの例外報告機構
JP2620511B2 (ja) データ・プロセッサ
JP3707581B2 (ja) 自己整合スタック・ポインタを有するデータ処理システムおよびその方法
JPS59231652A (ja) メモリアクセス・オ−バラツプ検出方式
US5564030A (en) Circuit and method for detecting segment limit errors for code fetches
JPH06110784A (ja) マイクロプロセッサ装置
KR950000088B1 (ko) 데이터처리시스템
JP3145545B2 (ja) メモリアクセス装置
US5717891A (en) Digital signal processor with caching of instructions that produce a memory conflict
JPH03175548A (ja) マイクロプロセッサ及びアドレス制御方式
JPS59172044A (ja) 命令制御方式
JP2629479B2 (ja) 情報処理装置
JPH0540629A (ja) 情報処理装置
JPS61131047A (ja) パイプライン制御方式
JP3414579B2 (ja) プログラマブルコントローラ
JPH01231126A (ja) 情報処理装置
JP2806690B2 (ja) マイクロプロセッサ
JPH06139071A (ja) 並列計算機
JP2572821B2 (ja) 命令再実行による演算処理方式
JPH0279122A (ja) 浮動小数点演算機構
JP2003271455A (ja) キャッシュメモリ制御装置およびキャッシュメモリシステム
JPH02206836A (ja) データ処理装置