JPH0450621B2 - - Google Patents

Info

Publication number
JPH0450621B2
JPH0450621B2 JP61201904A JP20190486A JPH0450621B2 JP H0450621 B2 JPH0450621 B2 JP H0450621B2 JP 61201904 A JP61201904 A JP 61201904A JP 20190486 A JP20190486 A JP 20190486A JP H0450621 B2 JPH0450621 B2 JP H0450621B2
Authority
JP
Japan
Prior art keywords
exception
storage
address
information
processor
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
JP61201904A
Other languages
English (en)
Other versions
JPS6280743A (ja
Inventor
Deii Hesutaa Fuiritsupu
Emu Jonson Uiriamu
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS6280743A publication Critical patent/JPS6280743A/ja
Publication of JPH0450621B2 publication Critical patent/JPH0450621B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/88Masking faults in memories by using spares or by reconfiguring with partially good memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Retry When Errors Occur (AREA)

Description

【発明の詳細な説明】
A 産業上の利用分野 本発明は仮想記憶システムに関し、さらに詳し
くいえば、要求時ページング手法を用いる仮想記
憶システムにおけるアドレス変換例外の処理に関
する。 B 従来技術及び問題点 高アクセス速度、小容量のメモリを主記憶装
置、低アクセス速度、大容量のメモリを補助記憶
装置として用いる階層記憶システムを構成するこ
とができる。主記憶装置は通常集積回路メモリで
あり、補助記憶装置は通常磁気デイスク記憶装置
である。主記憶装置の目的は処理モジユールとの
間で適切な転送速度を与えることであり、データ
及びその他の情報は要求に応じて補助記憶装置か
ら主記憶装置に転送される。要求された情報がそ
の要求の時点において主記憶装置にないとき、要
求された情報を補助記憶装置から主記憶装置に自
動的に転送する能力を階層記憶システムに付与す
ることにより仮想記憶システムを構成することが
できる。この方法の場合、主記憶装置の大きさに
基く固有の制限はユーザの関知しないところであ
る。 仮想記憶装置の利点は、プログラムであれ、デ
ータであれ、計算の進行上必要とされる記憶情報
の全てを同時に主記憶装置に記憶する必要がな
く、長期間にわたつて、一部の情報を補助記憶装
置に常駐させておけることである。この利点は主
記憶装置はビツト当りにすると補助記憶装置より
も一般に高価であるという事実から明らかであ
る。仮想記憶アプリケーシヨンの場合、情報は幾
つかのセグメントに分割されるので、計算の進行
中、1つのセグメントの情報は主記憶装置に完全
に存在するか、または全く存在しないかのいずれ
かである。全てのセグメントが同じ大きさである
ときは、それらは一般にページと呼ばれ、その場
合主記憶装置は、丁度1ページを含むことができ
る記憶の単位であるいわゆるページ・フレームに
再分割される。 仮想記憶システムでは、不在ページに対するア
クセスが要求されるまで計算が最大レートで進行
できるように、要求時ページング手法が用いられ
る。そのような要求はページ不在と呼ばれる。ペ
ージ不在を引起した計算は必要なページが補助記
憶装置から主記憶装置に供給されるまで停止され
る。新しいページが主記憶装置に供給されると、
ページ不在が生じたとき主記憶装置に既に存在し
ていた他の幾つかのページを、新しいページのた
めの場所をあけるため補助記憶装置に送り返され
ねばならない。所定のプログラムに対して主記憶
装置に設けられたページまたはページ・フレーム
の数はプログラム・ウインドウ・サイズとして定
義される。異なるプログラム、所定のプログラム
内の異なるプロセス、さらには異なるデータ内の
同じプロセスでさえ異なるプログラム・ウインド
ウ・サイズを要求できる。何度も呼び出される少
数の命令を要求するプロセスもあれば、長い命令
ストリングを要求するプロセスもある。又、一時
に比較的少量のデータが要求され、一方で所定の
時点において大量のデータが要求されることもあ
る。 記憶装置のアドレス変換を行うコンピユータ・
システムでは、制御プログラムは大きな仮想アド
レス・スペースにおけるページにどの物理的ペー
ジ・フレームが割当てられるかを決定できなけれ
ばならない。この決定をなす最も効率的な手法は
要求時ページングである。この手法の場合、物理
的なページ・フレームは、プログラム中で生じた
アドレス変換例外で示される如く、プログラム実
行中に要求された場合にだけ仮想ページに割り当
てられる。従つて、これらの例外はプログラム実
行の通常の過程で処理されることが必要であり、
また障害ルーチンに対して完全にトランスペアレ
ントであることが必要である。 アドレス指定例外の発生したプログラムを再始
動させるための基本的手法は2つある。1つは例
外を生ぜしめた命令のところからプログラムを再
開するものである。この方法の場合、記憶装置の
アドレス変換(必要なら)の結果が得られるまで
どの命令も終了しないこと及び(多くの場合)部
分的に実行された命令を再実行できるようこれを
取り消すことが必要である。プロセツサは次の命
令に進む前に変換の結果を待たねばならず、従つ
てこの手法ではオーバラツプが全くないので、性
能はあまり良くない。反面、報告機構は簡単であ
る。制御プログラムに要求されるのは障害の種類
と障害命令のアドレスを指定することだけであ
る。制御プログラムは例外条件を訂正し、障害命
令への「割込みからの復帰」により障害の生じた
ルーチンを再始動する。 アドレス指定例外の発生したプログラムを再始
動するための従来の手法のもう1つは、例外が検
出された点から障害の生じたプログラムを再開す
るものである。これによりプロセツサが次の命令
の実行とアドレス変換とオーバラツプさせること
が可能になるが、障害の生じたプログラムが再始
動されるとき障害オペレーシヨンを再始動できる
ように、プロセツサは障害オペレーシヨンについ
ての十分な情報を制御プログラムに与えることが
必要である。制御プログラムは元のオペレーシヨ
ンに障害が生じたとき存在したのと同じプロセツ
サ状態(例えば問題状態)の下でこれらのオペレ
ーシヨンを再始動しなければならないので、再始
動手順は極めて複雑になることがある。 命令の実行をアドレス変換と効果的にオーバラ
ツプさせるためには、記憶装置オペレーシヨンが
他の命令から分離されるように命令セツトを定義
しなければならない。例えば、所定の記憶装置ロ
ーケーシヨンを増分する命令はアドレス変換の結
果が出なければ完了しない。 障害があつた時点で障害命令をその始まりから
でなく途中から再始動するという手法を採るプロ
セツサもある。このようにすれば、部分的に実行
された命令を取り消す必要性はなく、場合によつ
ては、障害の生じたプログラムを再始動するとき
障害の生じたプログラムを記憶するために割当て
ねばならない仮想ページの数を少なくできる。し
かしながら、命令をある中間点から再始動できる
ようにするにはプロセツサはその内部状態に関す
る大量な情報(100バイト)を保管しなければな
らない。したがつて、例外処理及び再始動シーケ
ンスは複雑で非効果的である。また、命令の実行
とアドレス変換との有効なオーバラツプもほとん
どないが、これは例外処理アルゴリズム及び命令
セツトの定義により影響を受ける。 他のプロセツサ・アーキテクチヤは例外が検出
された点で障害の生じたルーチンが再始動される
ことを可能にするものである。このアーキテクチ
ヤは記憶装置オペレーシヨンのタイプ、アドレス
及びデータを示す一組のレジスタを備える。これ
らのレジスタにおける情報を使つて障害の生じた
オペレーシヨンを再始動するため、幾つかの命令
が定義される。この手法はある程度のオーバラツ
プをもたらすが、レジスタに基くものであるた
め、オーバラツプされる記憶オペレーシヨンの数
は1つに制限される。また、実際には、多重ロー
ド及び多重ストアの方が頻繁に生じるので、これ
らのロード及びストアは最大レートでは実行され
ないことなる。 C 問題点を解決するための手段 したがつて本発明の目的は、プロセツサの性能
及び制御プログラムの簡明さの両方を考慮した効
率的な障害処理方法を提供することにある。 この目的を達成するため、実記憶領域及び複数
のレジスタを具備し要求時ページ手法を用いる仮
想記憶システムにおいてアドレス変換例外を処理
する本発明の方法は、(a)記憶装置オペレーシヨン
ごとに、()この記憶装置オペレーシヨンのア
ドレスと、()この記憶装置オペレーシヨンに
関係していたレジスタならびにこの記憶装置オペ
レーシヨンの長さ及びタイプについての情報と、
()この記憶装置オペレーシヨン中に記憶すべ
きデータと、から成る制御情報を一時的に記憶す
るステツプと、(b)記憶装置オペレーシヨンの障害
を示す例外が発生したとき、例外ステータスブロ
ツクを形成するために上記一時的に記憶された制
御情報を検索するステツプと、(c)前記例外ステー
タスブロツクに含まれる制御情報に基づいて前記
障害のあつた記憶装置オペレーシヨンを再始動す
るステツプと、より成ることを特徴としている。 D 実施例 はじめに本発明の実施例を概説する。 本実施例は、実記憶領域及び複数のレジスタを
具備し要求時ページング手法を用いる仮想記憶シ
ステムにおけるアドレス変換例外の処理に関す
る。 本実施例によるアドレス変換例外処理方法は、
記憶装置オペレーシヨンごとに下記の情報から成
る制御情報を一時的に記憶する。 () その記憶装置オペレーシヨンについての有
効アドレス () その記憶装置オペレーシヨンに関係してい
たレジスタならびにその記憶装置オペレーシヨ
ンの長さ及びタイプについての情報 () その記憶装置オペレーシヨン中に記憶すべ
きデータ そして記憶装置オペレーシヨンごとにそれにつ
いて一時的に記憶された制御情報のうち、例外を
生ぜしめるような障害が発生した記憶装置オペレ
ーシヨンについての制御情報を検索する。こうし
て取り出された各制御情報が実記憶領域にそれぞ
れ例外ステータスブロツクとして、指定された所
定のアドレスのところから順番に保管される。か
くして障害の生じた記憶装置オペレーシヨンの再
始動は、障害の生じた順に行われる。このため、
例外が幾つ生じたかを示すカウント値が記録され
る(このカウント値は再始動すべき記憶装置オペ
レーシヨンの個数を示すのにも使用される)。 以下、本実施例を詳細に説明する。 実施例 本実施例では障害の生じた記憶装置オペレーシ
ヨンについての情報の保管を制御するのにプロセ
ツサ内の32ビツトのレジスタを用いる。このレジ
スタは例外制御レジスタ(ECR)と呼ばれ、プ
ロセツサの他の制御レジスタと同様に扱われるも
のである。障害の生じた記憶装置オペレーシヨン
についての実際の情報はプロセツサの主記憶装置
に保管される。障害の生じたプログラムが再始動
されるとき、ECRは障害の生じたオペレーシヨ
ンの再始動制御のためにも用いられる。 例外制御レジスタは障害を生じた記憶装置オペ
レーシヨンについてプロセツサにより保管される
情報の記憶アドレスと例外カウント値とを含む。
このレジスタの内容は次のように定義される。 ビツト0−3 予約済 ビツト4−7 例外カウント値。この4ビツト
のフイールドが例外カウント値を含む。プロセツ
サが例外を報告する場合は、このフイールドは例
外を生じた記憶装置オペレーシヨンの数を示す。
プロセツサが障害を生じたオペレーシヨンを再始
動する場合は、このフイールドによりオペレーシ
ヨンを幾つ再始動しなければならないかをプロセ
ツサに示す。 ビツト8−31 例外保管アドレス。この24ビツ
トのフイールドは実記憶装置のアドレスを含む。
プロセツサが例外を報告する場合、このフイール
ドは障害を生じた記憶オペレーシヨンについての
情報が保管される主記憶装置のロケーシヨンを示
す。プロセツサが障害を生じたオペレーシヨンを
再始動するときは、このフイールドにより、障害
の生じたオペレーシヨンを再開できるようにそれ
らについて保管された情報をどこから取り出すべ
きかをプロセツサに示す。 通常のオペレーシヨン中は、ECR内の例外カ
ウント値はゼロに設定される。例外保管アドレス
は報告し得るオペレーシヨンの最大数(これは実
施例によつて異なる)で情報を保管するために予
約された実記憶装置の或るブロツクを指定する。 1つの実施例では、各々の例外について16バイ
トまでの情報を保管する。保管される実際の情報
はプロセツサによつて異なる。次の第1表は本発
明をある特定のプロセツサに適用した場合におけ
る例外ステータスブロツクの定義である。
【表】 第1表は障害を生じた特定の記憶装置オペレー
シヨンについての情報を保管するため用いられる
記憶装置における1つのブロツクの定義を示すも
のである。このブロツクのことを、例外ステータ
スブロツクという。1つのブロツクは4つのフル
ワード(1つのフルワードは4バイト幅である)
から成る。この例では、使用されるのは10バイト
だけである。 例外制御ワード 例外ステータスブロツクの最初のワードは例外
制御ワードである。例外制御ワードは下記のフイ
ールドから成る。 ビツト0−15 予約済 ビツト16−18 レジスタ・セツト番号。この3
ビツトのフイールドは例外が発生したとき8個の
レジスタ・セツトのうちのどれがアクテイブであ
つたのかを示す。 ビツト20−23 レジスタ番号。この4ビツトの
フイールドは16個の汎用レジスタ(GPR)のう
ちのどれが例外を生ぜしめた記憶装置オペレーシ
ヨンに係わつていたかを示す。ロードの場合は、
このレジスタ番号はどのGPRがロードされてい
たのかを示す。ストアの場合は、このレジスタ番
号はどのGPRがストア・データを含んでいたの
かを示す。ロード・マルチプル(LM)及びスト
ア・マルチプル(STM)オペレーシヨンの場合
は、このフイールドは例外を生じたロードまたは
ストアの最初のレジスタを示す。 ビツト24−25 オペレーシヨン長。この2ビツ
トのフイールドは下記の如く、記憶装置オペラン
ドの長さを示す。 00 バイト(8ビツト) 01 ハーフワード(16ビツト) 10 フルワード(32ビツト) 11 ハーフワード・テスト・アンド・セツト ビツト26−28 オペレーシヨン。この3ビツト
のフイールドは下記に定義されるような、例外を
生じたオペレーシヨンのタイプを示す。 000 ロード 001 ロード・マルチプル 010 プログラム式入出力(PIO)読取り 011 代数的ロード(符号−拡張) 100 ストア 101 ストア・マルチプル 110 PIO書込み 111 予約済 ビツト29−30 予約済 ビツト31 取り消し。このビツトは例外が検出
されたときオペレーシヨンが取り消されたかどう
かを示す。記憶装置オペレーシヨンは次の命令の
実行とオーバラツプされるので、ロードに続く命
令がロードされたレジスタを変更する場合があ
る。この場合のロードは取り消される。次に、取
り消されたロードについて例外が検出されたとき
は、この例外は報告されるが、ロード・オペレー
シヨンは再始動できない。このビツトが1に設定
されているときは、オペレーシヨンは取り消され
ており、再始動されない。ゼロに設定されている
ときは、オペレーシヨンは取り消されておらず、
再始動される。 例外アドレス・ワード 例外ステータスブロツクの2番目のワードは例
外アドレス・ワードである。例外アドレス・ワー
ドは下記の情報から成る。 ビツト0−31 例外アドレス。このワードは障
害を生じた記憶装置オペレーシヨンおよび入出力
オペレーシヨンについての32ビツトの有効な記憶
アドレスを含む。 例外データ・ワード 例外ステータスブロツクの3番目のワードは例
外データ・ワードである。例外データ・ワードは
下記の情報から成る。 ビツト0−31 例外データ。障害を生じたオペ
レーシヨンが単一のストアまたは入出力書込みで
あつたときは、このワードは障害を生じた記憶装
置オペレーシヨンまたは入出力オペレーシヨンに
ついての32ビツトのデータ量を含む。障害を生じ
たオペレーシヨンがロード、ロード・マルチプ
ル、IOR、またはストア・マルチプルであつたと
きは、このワードは定義されない。 例外ステータスブロツクの4番目のワードは予
約されている。 記憶装置オペレーシヨン例外の保管 プロセツサが例外を検出したときは、命令がそ
の記憶オペレーシヨンの成功不成功に依存しない
なら、その命令を完了する。例えば、一方のレジ
スタ主記憶装置から既にロードされているような
2つのレジスタに関する加算(ADD)は、その
ロードが記憶装置例外を発生していたときには完
了できない。現在の命令が完了できないときは、
それは取り消され、プログラムは後でこの命令の
ところから再始動される。 現在の命令の完了または取り消しにあたつて
は、プロセツサは現在全ての記憶装置オペレーシ
ヨンが完了するのを待たねばならない。これは全
ての保留中の記憶装置オペレーシヨンの結果がわ
かるようにするためである。従つて例外を生じた
全てのオペレーシヨンについて情報を保管しなけ
ればならない。また、それらは適切な順序で保管
されねばならない。検出される最初の例外が最初
に発せられたオペレーシヨンにより生じたもので
なかつたという可能性もある。全ての記憶装置オ
ペレーシヨンが完了したとき、プロセツサは例外
を生じた各オペレーシヨンについて、例外を発生
した最も新しいオペレーシヨンから始まつて例外
を発生した最も古いオペレーシヨンで終わるよう
な順番で情報を保管する。各例外ごとに、その情
報を保管する手順は次の通りである。 1 ECR内の例外保管アドレスが16(4ワード)
だけ減分される。 2 ECR内の例外カウント値が1だけ増加され
る。 3 次のオペレーシヨンに関する例外制御ワード
がECR内の例外保管アドレスにより指定され
た実記憶アドレスのところに保管される。 4 次のオペレーシヨンに関する例外アドレス
が、例外保管アドレスに4を加算したもので指
定される実記憶アドレスのところに保管され
る。ECR内の値は変更されない。 5 次のオペレーシヨンに関する例外データは、
例外保管アドレスに8を加算したもので指定さ
れる実記憶アドレスのところに保管される。
ECR内の値は変更されない。例外データを保
管する必要がない場合は、その量は意味がな
い。しかし、全ての場合を同様に扱う方が容易
である。 全ての例外に関する情報が保管されたとき、例
外カウント値は幾つのオペレーシヨンを再始動す
べきかを示す。例外保管アドレスは再始動すべき
最初のオペレーシヨンについての例外制御ワード
を指定する再始動すべき他のオペレーシヨンはそ
の例外保管アドレス・ロケーシヨンを越えた連続
的な主記憶装置ロケーシヨンのところに、関連情
報を有する。これはオペレーシヨンの再始動の順
番である。 記憶装置オペレーシヨンの再始動 記憶装置オペレーシヨンは「中断からの復帰」
シーケンスの一部として再始動される。それらは
新しいプロセツサ状態がロードされた後、目標命
令ストリームにおける命令が実行される前に再始
動される。これはオペレーシヨンが元のプロセツ
サ状態の下で再始動されることを意味する。障害
を生じたルーチンにとつては、再始動されたオペ
レーシヨンと元の命令により発せられたオペレー
シヨンとの間に相異はない。 「中断からの復帰」命令は記憶装置オペレーシ
ヨンをその命令中にあるビツトに基いて「中断か
らの復帰」の間に条件的に再始動するように定義
される。例外を生じたプログラムに戻る前に、制
御プログラムは例外条件を訂正し、例外が報告さ
れたときECRが含んでいたのと同じ例外カウン
ト値にECRが設定しなければならない。例外ス
テータスブロツクが主記憶装置に転送されたとき
は、例外保管アドレスはこの変化を表わすように
変更されねばならない。しかしながら、例外ステ
ータスブロツクの順番は維持しなければならな
い。そこで、オペレーシヨンは下記のシーケンス
に従つて例外ステータスブロツクのアドレスの増
加する順に再始動される。 1 ECR内の例外カウント値がゼロのときは、
再始動すべきオペレーシヨンは残つていない。
実行は目標命令ストリーム内の最初の命令に進
む。 2 再始動すべき次のオペレーシヨンに関する例
外制御ワードがECR内の例外保管アドレスに
より指定された実記憶アドレスのところから取
り出される。 3 再始動すべき次のオペレーシヨンに関する例
外アドレスが例外保管アドレスに4を加えたも
ので指定される実記憶アドレスのところから取
り出される。 4 再始動すべき次のオペレーシヨンに関する例
外データが例外保管アドレスに8を加えたもの
で指定される実記憶アドレスのところから取り
出される。ECRは変更されない。 5 ECR内の例外カウント値が1だけ減分され
る。例外保管アドレスが16だけ増分される。こ
の時例外保管アドレスは再始動すべき次のオペ
レーシヨン(もしあれば)を指示する。 6 上記ステツプ2、3及び4で取り出された情
報に基づいてオペレーシヨンが再始動される。
このオペレーシヨンが再始動されると、再始動
シーケンスは再びステツプ1から始まる。 再始動中の例外 2つ以上の例外が報告されるときは、制御プロ
グラムは必ずしも各々についての例外条件を訂正
しなければならないわけではない。事実、それら
を全て訂正することが不可能な場合がある。再始
動すべき最初のオペレーシヨンについてだけは、
例外条件は訂正されねばならない。したがつて、
記憶装置オペレーシヨンは再開されるとき再び例
外に出会う可能性がある。しかしながらこれも例
外カウント値の例外保管アドレスが扱われるのと
同じ方法により自動的に処理される。例外ステー
タスブロツクが保管され、例外カウント値が減分
され、さらに例外保管アドレスが増分された後、
再始動に任意の例外が発生する。例外ステータス
ブロツクを含んでいた記憶装置はもはや必要とさ
れない。かくして、再始動中に例外が発生したと
きは、その例外を引起したオペレーシヨンについ
ての情報は前述した手順に従つて保管される。例
外が発生したとき再始動されていないオペレーシ
ヨンについての情報は依然として主記憶装置に保
管されたままである。再始動の順番も保管された
ままである。 直列化 障害を生じた記憶装置オペレーシヨンをそれら
が初めに実行されていたのと同じ環境で再始動す
るためには、幾つかのオペレーシヨンを直列化す
ることが必要である。直列化は次のオペレーシヨ
ンが発生する前にそれよりも論理的に前の全ての
記憶オペレーシヨンを完了することによりなされ
る。これは、環境が変更される前に全ての例外を
確実に報告するためである。プロセツサに全ての
割込みと下記の命令の実行を直列化しなければな
らない。 1 プロセツサ状態を変更し得る全ての制御命
令。 2 スーパバイザ呼出し。 3 割込みからの復帰。 4 入出力書込み。このオペレーシヨンは前のオ
ペレーシヨンについてのアドレス変換の結果を
変えるため用いることができる。この変更が行
われる場合は、オペレーシヨンは再始動できな
い。 直列化の間に下記の事像が生じる。 1 全ての論理的に前の記憶装置オペレーシヨン
が完了する。 2 直列化オペレーシヨンに関連した通常の機能
が実行される。命令実行の場合、命令は論理的
に前の全ての記憶装置オペレーシヨンが完了さ
れた後で実行される。割込みの場合は、PSW
のスワツプは論理的に前の全ての記憶装置オペ
レーシヨンが完了された後で実行される。 3 通常の命令実行が再開される。 直列化は全てのオペレーシヨンが再始動できる
ことを保障する一般的な方法である。これは本発
明の構成要件ではないが、直列化の要件が強制さ
れる場合でも、本発明によればPSWのスワツプ
の場合において大量のオーバラツプが可能とな
る。PSWのスワツプのための記憶装置アクセス
は前の全てのアクセスが完了される前に発生する
ことができる。別な見方をすれば、前のアクセス
の全ての結果がわかるまで完了することができな
いのはプロセツサ状態の変更である。プロセツサ
は、前のアスセスで例外が発生するとき報告され
ない特別な場合としてPSWのスワツプをに認識
できるだけでよい。 本発明を適用したデータ処理システム このデータ処理システムは、一見したところ、
障害を生じた記憶装置オペレーシヨンの保管と再
始動のため相当な量の追加の制御論理を必要とす
るように見えるかもしれないが、記憶装置アクセ
スと次の命令の実行とをオーバラツプさせるため
の既存の論理を最大限に利用するように設計され
たものである。この論理の動作は1984年5月31日
付けの米国特許出願第615984号に記載されてい
る。 図には主として記憶装置アクセスを制御するた
め必要とされる部分を示してある。制御記憶装置
15から供給されたマイクロコードの実行により
記憶装置オペレーシヨンが制御レジスタ11で始
まる。記憶オペレーシヨン・マイクロワードの実
行中、下記の事象が発生する。 1 記憶装置オペレーシヨンの有効アドレスが
ALU12で計算され、記憶装置チヤネル・イ
ンターフエース13に送られる。レジスタ・フ
アイル14の書戻しは実行サイクルでは必要と
されないので、ALU12の出力からアドレス
を受諾するのにレジスタ・フアイル14を使う
ことができる。このアドレスは例外が発生した
とき保管できるよう一時的なロケーシヨンに記
憶される。このロケーシヨンは現記憶装置オペ
レーシヨンが完了するまでは再使用できない。 2 後続のサイクルで記憶装置オペレーシヨンの
実行を制御するため、制御情報を参照番号16
A及び16Bに示す如きタグ・レジスタに設定
しなければならない。タグ・レジスタ内の情報
は例外ステータスブロツク内の例外制御ワード
に対して定義された情報と1対1の対応関係に
ある。タグ・レジスタは現記憶装置オペレーシ
ヨンが完了するまでは再使用できない。 3 記憶装置チヤネル・インターフエース13に
オペレーシヨンの種類、データ長等が通知され
ると、続いて記憶装置チヤネル論理がそれ以上
のプロセツサの介入なしにそのオペレーシヨン
を完了する。 4 オペレーシヨンのため必要とされる記憶デー
タはどんなものでも次のマイクロコード・サイ
クルで送られる。このデータは有効アドレスと
同様にレジスタ・フアイル14内の一時的なロ
ケーシヨンに記憶される。このロケーシヨンは
その記憶装置オペレーシヨンが完了するまでは
再使用できない。 アクセスを制御するためのタグ・レジスタが使
用でき、且つオペレーシヨンのためのアドレス及
びデータを記憶するためのレジスタ・フアイルの
一時的なロケーシヨンがあれば、プロセツサは16
個までのオペレーシヨンを発することができる。
また、図の例では、所与の時間において2個まで
のオペレーシヨンを保留することができる。各タ
グ・レジスタ16A及び16Bを保留中の他のオ
ペレーシヨンに対するそのオペレーシヨンの順番
を指示する。これが必要なのは、複数の例外が発
生したとき例外ステータスブロツクを適正な順番
で保管できるようにするためである。 例外情報の保管 記憶装置チヤネル・インターフエース13が所
与のオペレーシヨンが例外を有していることを示
すときは、そのオペレーシヨンについてのタグ・
レジスタ、一時的アドレス・バツフア、及び一時
的データ・バツフアはロツクされる。すなわち、
それらは例外が報告されるまではそれ以上のいか
なる記憶装置オペレーシヨンに対しても使用でき
ない。所与のオペレーシヨンについての例外ステ
ータスブロツクを保管するために必要なことは、
プロセツサはそれと関連したタグ・レジスタの内
容を例外制御ワードに、一時的アドレス・バツフ
アの内容を例外アドレス・ワードに、さらに一時
的データ・バツフアの内容を例外データ・ワード
にそれぞれ保管するだけである。そのオペレーシ
ヨンについてのタグ・レジスタ、アドレス・バツ
フア、及びデータ・バツフアは例外ステータスブ
ロツクが保管し終われば、後は自由である。 1つにつき1つの例外を有する保留中の記憶オ
ペレーシヨンを最大限にすることもできる。この
ようにするとプロセツサが例外ステータスブロツ
クの保管を開始するとき全てのタグ、全てのアド
レス・バツフア及び全てのデータ・バツフアがロ
ツクされているというような状況が生じ得る。す
なわち、プロセツサは例外ステータスブロツクを
保管するとき、いかなるタグ、アドレス・バツフ
ア及びデータ・バツフアを使うことができないと
いう状況である。しかしながら、例外の発生原因
とはなり得ない非変換式ストアによつて情報が保
管されるのでこのことは問題とならない。しか
も、使用されるのがストアであるため、記憶デー
タのタグ・レジスタ・フアイルへの書戻しを制御
するのにプロセツサはタグ・レジスタを使う必要
は全くない。 オペレーシヨンの再始動 記憶装置オペレーシヨンの再始動は非常に簡単
である。プロセツサは単にECR内の例外アドレ
スを用いて例外ステータスブロツクを適切な順番
で取り出すだけでよいからである。オペレーシヨ
ンは制御レジスタ11から再始動されるので、再
始動の制御は元のオペレーシヨンの制御と同じで
ある。したがつて必要な論理は非常に簡単なもの
でよい。このことは制御レジスタ内のマイクロコ
ード・ビツトと例外制御ワード内のビツトの間に
強力な関係を確立することにより達成される。例
外制御ワード・ビツトは各記憶装置オペレーシヨ
ンの再始動の間に変化しないマイクロコード・ビ
ツトと共に(例えば、有効アドレスが既にわかつ
ているためALUの制御は変化しない)、そのとき
制御レジスタに直接ロードされる。例外制御ワー
ドがオペレーシヨンが取り消されたことを示す
か、または命令によつては発生されるはずのない
オペレーシヨンを指定するときは、制御レジスタ
には記憶装置再始動オペレーシヨンではなく単に
ノー・オペレーシヨンがロードされるだけであ
る。 本実施例は要求時ページング環境においてアド
レス変換例外を報告し及びそれから回復するため
の手法を提供するものである。本実施例では障害
を生じたプログラムを例外を生ぜしめた命令のと
ころから再始動するプロセツサを用いた。ここで
説明した手法を用いた結果、プロセツサの性能は
30%向上した。 以上説明したように本実施例によれば、多数の
記憶装置オペレーシヨンを命令の実行とオーバー
ラツプさせることができ、しかもプロセツサの性
能に制限を与えない。部分的に実行された命令は
割込みハンドラの処理を必要としないので、本実
施例では各記憶オペレーシヨンごとに保管される
情報の量はわずか16バイトでよい。また、本実施
例によれば、制御プログラムの再始動フロシージ
ヤは全く簡単なものでよく、余分の命令を追加す
る必要もない(割込みからの復帰命令の定義を変
更するだけですむ)。 E 発明の効果 以上説明したように本発明によれば、プロセツ
サの性能を最大にし且つ制御プログラムを最も簡
単にできる障害処理方法が提供される。
【図面の簡単な説明】
図は本発明を適用したデータ処理システムの主
要部を示すブロツク図である 11……制御レジスタ、12……ALU、13
……記憶装置チヤネル・インターフエース、14
……レジスタ・フアイル、15……制御記憶装
置、16A,16B……タグ・レジスタ。

Claims (1)

  1. 【特許請求の範囲】 1 実記憶領域及び複数のレジスタを具備し要求
    時ページング手法を用いる仮想記憶システムにお
    いて複数のアドレス変換例外を処理する方法であ
    つて、 (a) 記憶装置オペレーシヨンごとに、 () 該記憶装置オペレーシヨンのアドレス
    と、 () 該記憶装置オペレーシヨンに関係してい
    たレジスタならびに該記憶装置オペレーシヨ
    ンに係るデータの長さ及び該記憶装置オペレ
    ーシヨンのタイプについての情報と、 () 該記憶装置オペレーシヨン中に記憶すべ
    きデータと、 から成る制御情報をレジスタに一時的に記憶す
    るステツプと、 (b) 記憶装置オペレーシヨンの障害を示す例外が
    発生したとき、例外ステータスブロツクを実記
    憶領域に形成するために前記一時的に記憶され
    た制御情報を検索するステツプと、 (c) 発生した例外の数をカウントするステツプ
    と、 (d) 前記例外ステータスブロツクに含まれる制御
    情報に基づいて前記障害のあつた記憶装置オペ
    レーシヨンを順次再始動するステツプと、 より成ることを特徴とするアドレス変換例外処理
    方法。
JP61201904A 1985-10-01 1986-08-29 アドレス変換例外処理方法 Granted JPS6280743A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US78274585A 1985-10-01 1985-10-01
US782745 1985-10-01

Publications (2)

Publication Number Publication Date
JPS6280743A JPS6280743A (ja) 1987-04-14
JPH0450621B2 true JPH0450621B2 (ja) 1992-08-14

Family

ID=25127043

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61201904A Granted JPS6280743A (ja) 1985-10-01 1986-08-29 アドレス変換例外処理方法

Country Status (4)

Country Link
US (1) US4970641A (ja)
EP (1) EP0217168B1 (ja)
JP (1) JPS6280743A (ja)
DE (1) DE3687298T2 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5313601A (en) * 1988-01-30 1994-05-17 Nec Corporation Request control apparatus
JP2591136B2 (ja) * 1988-01-30 1997-03-19 日本電気株式会社 リクエスト制御装置
EP0365322A3 (en) * 1988-10-19 1991-11-27 Hewlett-Packard Company Method and apparatus for exception handling in pipeline processors having mismatched instruction pipeline depths
US5768575A (en) * 1989-02-24 1998-06-16 Advanced Micro Devices, Inc. Semi-Autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for sepculative and out-of-order execution of complex instructions
US5226126A (en) * 1989-02-24 1993-07-06 Nexgen Microsystems Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags
US5781753A (en) * 1989-02-24 1998-07-14 Advanced Micro Devices, Inc. Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions
JPH03156542A (ja) * 1989-08-29 1991-07-04 Hitachi Ltd アドレス変換装置及びそのためのアドレス情報の管理方法
CA2025197C (en) * 1989-10-19 1998-04-21 Michael H. Kelley Method and system for dynamically controlling the operation of a program
JP2581236B2 (ja) * 1989-11-16 1997-02-12 三菱電機株式会社 データ処理装置
DE69228083T2 (de) * 1991-03-14 1999-05-20 Fujitsu Ltd., Kawasaki, Kanagawa Verfahren und Vorrichtung zur Steuerung von Pipelineoperationen
US5386563A (en) * 1992-10-13 1995-01-31 Advanced Risc Machines Limited Register substitution during exception processing
US5761407A (en) * 1993-03-15 1998-06-02 International Business Machines Corporation Message based exception handler
GB2281986B (en) * 1993-09-15 1997-08-06 Advanced Risc Mach Ltd Data processing reset
JP3145545B2 (ja) * 1993-10-18 2001-03-12 松下電器産業株式会社 メモリアクセス装置
US5475822A (en) * 1993-11-15 1995-12-12 Motorola, Inc. Data processing system for resuming instruction execution after an interrupt and method therefor
GB2284493B (en) * 1993-12-01 1998-04-01 Intel Corp Exception handling in a processor that performs speculative out-of-order instruction execution
DE4434895C2 (de) * 1993-12-23 1998-12-24 Hewlett Packard Co Verfahren und Vorrichtung zur Behandlung von Ausnahmebedingungen
JP2752592B2 (ja) * 1994-12-28 1998-05-18 日本ヒューレット・パッカード株式会社 マイクロプロセッサ、マイクロプロセッサ−デバッグツール間信号伝送方法及びトレース方法
US5784607A (en) * 1996-03-29 1998-07-21 Integrated Device Technology, Inc. Apparatus and method for exception handling during micro code string instructions
US5774711A (en) * 1996-03-29 1998-06-30 Integrated Device Technology, Inc. Apparatus and method for processing exceptions during execution of string instructions
US5812813A (en) * 1996-07-29 1998-09-22 Integrated Device Technology, Inc. Apparatus and method for of register changes during execution of a micro instruction tracking sequence
US5987594A (en) * 1997-06-25 1999-11-16 Sun Microsystems, Inc. Apparatus for executing coded dependent instructions having variable latencies
US6360315B1 (en) 1999-02-09 2002-03-19 Intrinsity, Inc. Method and apparatus that supports multiple assignment code
US12020062B2 (en) 2020-10-20 2024-06-25 Micron Technology, Inc. Method of executing programmable atomic unit resources within a multi-process system
US11586439B2 (en) 2020-10-20 2023-02-21 Micron Technology, Inc. Detecting infinite loops in a programmable atomic transaction
US11740929B2 (en) 2020-10-20 2023-08-29 Micron Technology, Inc. Registering a custom atomic operation with the operating system
US11693690B2 (en) 2020-10-20 2023-07-04 Micron Technology, Inc. Method of completing a programmable atomic transaction by ensuring memory locks are cleared
US11436187B2 (en) * 2020-10-20 2022-09-06 Micron Technology, Inc. Method of notifying a process or programmable atomic operation traps

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5718097A (en) * 1980-07-07 1982-01-29 Nippon Telegr & Teleph Corp <Ntt> Failure processing system for storage device
JPS61117635A (ja) * 1984-11-13 1986-06-05 Fujitsu Ltd 仮想記憶制御方式

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3921153A (en) * 1973-08-02 1975-11-18 Ibm System and method for evaluating paging behavior
US3947823A (en) * 1973-12-26 1976-03-30 International Business Machines Corp. Means for coordinating asynchronous main store accesses in a multiprocessing system using virtual storage
CA1059639A (en) * 1975-03-26 1979-07-31 Garvin W. Patterson Instruction look ahead having prefetch concurrency and pipe line features
US4613935A (en) * 1983-02-02 1986-09-23 Couleur John F Method and apparatus for pipe line processing with a single arithmetic logic unit

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5718097A (en) * 1980-07-07 1982-01-29 Nippon Telegr & Teleph Corp <Ntt> Failure processing system for storage device
JPS61117635A (ja) * 1984-11-13 1986-06-05 Fujitsu Ltd 仮想記憶制御方式

Also Published As

Publication number Publication date
EP0217168A3 (en) 1990-01-17
JPS6280743A (ja) 1987-04-14
EP0217168A2 (en) 1987-04-08
US4970641A (en) 1990-11-13
DE3687298T2 (de) 1993-07-01
DE3687298D1 (de) 1993-01-28
EP0217168B1 (en) 1992-12-16

Similar Documents

Publication Publication Date Title
JPH0450621B2 (ja)
US4755966A (en) Bidirectional branch prediction and optimization
US5280593A (en) Computer system permitting switching between architected and interpretation instructions in a pipeline by enabling pipeline drain
US5113521A (en) Method and apparatus for handling faults of vector instructions causing memory management exceptions
US5226164A (en) Millicode register management and pipeline reset
US5161226A (en) Microprocessor inverse processor state usage
US5008812A (en) Context switching method and apparatus for use in a vector processing system
JPS61290570A (ja) ベクトル処理方法
JPS6234242A (ja) デ−タ処理システム
JP3590075B2 (ja) 仮想記憶方式のデータ処理装置及び方法
US5819078A (en) Addressing extended memory using millicode by concatenating a small millicode address and address extension data
JP3170472B2 (ja) レジスタ・リマップ構造を有する情報処理システム及び方法
EP0212132A1 (en) Method and digital computer for recovering from errors
US5673391A (en) Hardware retry trap for millicoded processor
US5784606A (en) Method and system in a superscalar data processing system for the efficient handling of exceptions
EP0510429A2 (en) Millicode register management system
JPS61173358A (ja) データ処理装置
JP2671160B2 (ja) 例外処理方式
US5201052A (en) System for transferring first and second ring information from program status word register and store buffer
JP2562838B2 (ja) プロセッサ及びストアバッファ制御方法
JPH0443301B2 (ja)
JP2000029690A (ja) デ―タ処理の方法および装置
JPH0133856B2 (ja)
JPS59172044A (ja) 命令制御方式
JPH04181331A (ja) 命令リトライ方式