JP2568708B2 - ダブルリンクキュー更新方法 - Google Patents

ダブルリンクキュー更新方法

Info

Publication number
JP2568708B2
JP2568708B2 JP1314637A JP31463789A JP2568708B2 JP 2568708 B2 JP2568708 B2 JP 2568708B2 JP 1314637 A JP1314637 A JP 1314637A JP 31463789 A JP31463789 A JP 31463789A JP 2568708 B2 JP2568708 B2 JP 2568708B2
Authority
JP
Japan
Prior art keywords
entry
link
start address
queue
instruction
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
JP1314637A
Other languages
English (en)
Other versions
JPH03175542A (ja
Inventor
毅 北原
雄彦 山田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP1314637A priority Critical patent/JP2568708B2/ja
Publication of JPH03175542A publication Critical patent/JPH03175542A/ja
Application granted granted Critical
Publication of JP2568708B2 publication Critical patent/JP2568708B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、ダブルリンクキューを用いてキュー操作命
令の処理を行う情報処理装置におけるダブルリンクキュ
ーの更新方法に関する。
複数のエントリから構成されるダブルリンクキューに
おいて、連続する3つのエントリから中間エントリを削
除する命令の場合には、オペランドアクセスを所定の順
序で行っている。このとき、オペランドアクセスの実行
中にページフォルトが発生すると、命令の再実行ができ
なくなる場合がある。そこで、命令の最後のオペランド
書込み以外のオペランドアクセスの実行中に、ページフ
ォルトが発生したとしても、命令の再実行が可能な命令
実行処理方法が望まれている。
〔従来の技術〕
第2図には、一般的なキュー操作命令の処理を行う情
報処理装置の概略が示されている。
第2図において、符号10は、共通バスを示し、該共通
バス10は、CPU12に接続されている。また、共通バス10
は、バス14を介して、RAM16に接続されている。更に、
共通バス10は、バス18及びバス20を介して、I/Oユニッ
ト22に接続されている。
上記I/Oユニット22には、ダブルリンクキューQが入
力されるようになっている。ここで、ダブルリンクキュ
ーQは、複数のエントリE1〜Enをこの順序で有してい
る。そして、I/Qユニット22に入力されたダブルリンク
キューQは、一旦、RAM16に格納され、その後、必要に
応じて、RAM16からCPU12に読み出され、該CPU12で処理
される。
次に、第3図には、上述したダブルリンクキューの構
成が示されている。
上述したように、ダブルリンクキューQは、複数のエ
ントリーE1〜Ei-1,Ei,Ei+1〜Enから構成され、各エン
トリEは、同様の構成である。そこで、エントリEiを例
にとって説明する。
エントリEiは、データが格納されているデータ領域と
してのエントリ本体EBiと、後方エントリEi-1の先頭ア
ドレスAi-1を有する後方リンクBiと、及び、前方エント
リEi+1の先頭アドレスAi+1を有する前方リンクFiと、を
備えている。このように、エントリEiが後方リンクBi
び前方リンクFiを備えており、同様にして、エントリE
i-1、並びに、Ei+1は、それぞれ、後方リンクBi-1及び
前方リンクFi-1、並び後方リンクBi+1及び前方リンクF
i+1を備えているので、ダブルリンクキューQ内で、エ
ントリEiは、後方エントリEi-1及び前方エントリEi+1
対して、正確な位置に配置される。
〔発明が解決しようとする課題〕
上記ダブルリンクキューQ内で1つのエントリ、例え
ばエントリEiを削除したい場合がある。この場合には、
エントリEi-1とエントリEi+1との間のエントリEiが削除
されるので、エントリEi-1の前方リンクFi-1の内容及び
エントリEi+1の後方リンクBi+1の内容が書き替えられる
ことに注目されたい。そして、第4図には、このように
エントリを削除するQDELのフォーマット例が示され、第
5図には、従来の削除命令実行処理のオペランドアクセ
スの順序が示されている。
第4図において、OP1,OP2は、オペコードを示し、Sr
c.は、エントリEi-1の先頭アドレスAi-1を示し、Dest.
(Destination)は、エントリEiの先頭アドレスAiを格
納するオペランド領域ORのアドレスを示す(第5図も参
照)。
次に、第5図を参照しながら、オペランドアクセスの
実行について説明する。
エントリEi-1の前方リンクFi-1を読み取り、これによ
り削除されるべきエントリEiの先頭アドレスAiを知る。
エントリEiの前方リンクFiを読み取り、これにより、
エントリEi+1の先頭アドレスAi+1を知る。
エントリEi-1の前方リンクFi-1をエントリEi+1の先頭
アドレスAi+1に書き替える。
エントリEi+1の後方リンクBi+1をエントリEi-1の先頭
アドレスAi-1に書き替える。
エントリEiの先頭アドレスAiを削除命令QDELで指定さ
れたオペランド領域ORに書き込む。
上記〜のオペランドアクセスのうち、のオペラ
ンドアクセスの実行中、すなわち、エントリEi+1の後方
リンクBi+1の書き替え中に、ページフォルトが発生した
場合について考える。この場合には、命令の最後のオペ
ランド書込みではないので、ページフォルトの処理が終
了後、命令を再実行することになる。ところが、命令の
再実行前ののオペランドアクセスの実行中に、エント
リEi-1の前方リンクFi-1が既に書き換えられているの
で、命令の再実行においての先頭アドレスAi取得処理
が正しく行われず、よって、のオペランドアクセスを
実行することができず(の前方リンクFi-1の書き換え
が正しく行われず)、このため、命令を再実行すること
ができないという問題がある。
本発明の目的は、命令の最後のオペランド書込み以外
のオペランドアクセスの実行中に、ページフォルトが発
生したとして命令の再実行が可能なダブルリンクキュー
の更新方法を提供することにある。
〔課題を解決するための手段〕
上記の課題を解決するために、本発明は、ダブルリン
クキュー(Q)を用いてキュー操作命令の処理を行う情
報処理装置におけるダブルリンクキュー更新方法である
と共に、直前に配列されるエントリ(Ei-1)の先頭アド
レス(Ai-1)が記述された後方リンク(Bi)及び直後に
配列されるエントリ(Ei+1)の先頭アドレス(Ai+1)が
記述された前方リンク(Fi)を夫々に備える3以上のエ
ントリ(Ei-1、Ei、Ei+1)を少なくとも含んで構成され
る前記ダブルリンクキュー(Q)から、3以上の連続し
た前記エントリ(Ei-1、Ei、Ei+1)のうちの第2番目の
前記エントリである第2エントリ(Ei)を削除して前記
ダブルリンクキュー(Q)を更新するダブルリンクキュ
ー更新方法であって、前記第2エントリ(Ei)に対して
直前に配列される前記エントリである第1エントリ(E
i-1)における前記前方リンク(Fi-1)に基づいて、前
記第2エントリ(Ei)の先頭アドレス(Ai)を取得する
第1アドレス取得工程と、前記第2エントリ(Ei)にお
ける前記前方リンク(Fi)に基づいて、当該第2エント
リ(Ei)に対して直後に配列される前記エントリである
第3エントリ(Ei+1)の先頭アドレス(Ai+1)を取得す
る第2アドレス取得工程と、前記第3エントリ(Ei+1
における前記後方リンク(Bi+1)の内容を前記第1エン
トリ(Ei-1)の先頭アドレス(Ai-1)に書き換える第1
リンク書き換え工程と、前記第1エントリ(Ei-1)にお
ける前記前方リンク(Fi-1)の内容を前記取得した第3
エントリ(Ei+1)の先頭アドレス(Ai+1)に書き換える
第2リンク書き換え工程と、前記第2エントリ(Ei)の
先頭アドレス(Ai)を記憶する記憶工程と、前記第2エ
ントリ(Ei)を削除する削除工程と、を備えて構成され
る。
〔作用〕
本発明によれば、第1アドレス取得工程において、第
1エントリ(Ei-1)における前方リンク(Fi-1)に基づ
いて、第2エントリ(Ei)の先頭アドレス(Ai)を取得
する。
次に、第2アドレス取得工程において、第2エントリ
(Ei)における前方リンク(Fi)に基づいて、第3エン
トリ(Ei+1)の先頭アドレス(Ai+1)を取得する。
そして、第1リンク書き換え工程において、第3エン
トリ(Ei+1)における後方リンク(Bi+1)の内容を第1
エントリ(Ei-1)の先頭アドレス(Ai-1)に書き換え
る。
更に、第2リンク書き換え工程において、第1エント
リ(Ei-1)における前方リンク(Fi-1)の内容を、取得
した第3エントリ(Ei+1)の先頭アドレス(Ai+1)に書
き換える。
その後、記憶工程において、第2エントリ(Ei)の先
頭アドレス(Ai)を記憶する。
最後に、削除工程において、第2エントリ(Ei)を削
除する。
よって、第2エントリ(Ei)の削除処理において、第
3エントリ(Ei+1)の後方リンク(Bi+1)を書き換えた
後に第1エントリ(Ei-1)の前方リンク(Fi-1)の書き
換えを行うので、第3エントリ(Ei+1)の後方リンク
(Bi+1)を書き換え中にページフォルトが発生したとし
ても当該ページフォルトを解決した後に削除処理を再開
し、第3エントリ(Ei+1)の後方リンク(Bi+1)を書き
換え、その後、第1エントリ(Ei-1)の前方リンク(F
i-1)の書き換えるように処理することができる。
従って、ページフォルト発生時点では第1エントリ
(Ei-1)の前方リンク(Fi-1)は書き換えられていない
ので、削除処置の再開時に第1エントリ(Ei-1)の前方
リンク(Fi-1)の書き換えが可能となり、その後に第2
エントリ(Ei)の削除を行っても、第1エントリ
(Ei-1)及び第3エントリ(Ei+1)の夫々の前方リンク
(Fi-1、Fi+1)及び後方リンク(Bi-1、Bi+1)が第2エ
ントリ(Ei)削除後に記述されるべき値に確実に書き換
えられているので、上記ページフォルトが発生しても第
2エントリ(Ei)削除によるダブルリンクキューの更新
を正確に行うことができ、従って、命令の再実行を行う
ことができる。
〔実施例〕
以下、図面に基づいて本発明の好適な実施例を説明す
る。
第1図には、本発明の実施例による削除命令実行処理
のオペランドアクセスの順序が示されている。
第1図において、オペランドアクセスの実行は、次の
ようになされる。
エントリEi-1の前方リンクFi-1を読み取り、これによ
り削除されるべきエントリEiの先頭アドレスAiを知る。
エントリEiの前方リンクFiを読み取り、これにより、
エントリEi+1の先頭アドレスAi+1を知る。
エントリEi+1の後方リンクBi+1をエントリEi-1の先頭
アドレスAi-1に書き替える。
エントリEi-1の前方リンクFi-1をエントリEi+1の先頭
アドレスAi+1に書き替える。
エントリEiの先頭アドレスAiを削除命令QDELで指定さ
れたオペランド領域ORに書き込む。
なお、上記〜のオペランドアクセスのうち、及
びのオペランドアクセスの実行は、従来のものと相違
していることに注目されたい。
そして、のオペランドアクセスの実行中、すなわ
ち、エントリEi+1の後方リンクBi+1の書き替え中に、ペ
ージフォルトが発生した場合について考える。この場合
には、命令の最後のオペランド書込みではないので、命
令を再実行することになる。この場合、実施例において
は、のオペランドアクセスは、未だ実行されておら
ず、すなわち、エントリEi-1の前方リンクFi-1は、命令
の再実行時に、未だ書き替えられていないことに注目さ
れたい。
従って、ページフォルトを解決した後、命令を再実行
して、エントリEi+1の後方リンクBi+1を書き替え、そ
の後、エントリEi-1の前方リンクFi-1を書き替えるこ
とができる。
なお、命令の最後のオペランド書込み時に、ページフ
ォルトが発生した場合には、ページフォルトを解決した
後に、オペランドの書込みのみを再実行し、命令を再実
行しない。これは、他の手段(例えばCPU内のOS)によ
り処理されるからである。
〔発明の効果〕
以上説明したように、本発明によれば、命令の最後の
オペランド書込み以外のオペランドアクセスの実行中
に、ページフォルトが発生したとしても、命令の再実行
が可能である。
【図面の簡単な説明】
第1図は、本発明の実施例による削除命令実行処理のオ
ペランドアクセスの順序を示す説明図、 第2図は、一般的なキュー操作命令の処理を行う情報処
理装置の概略説明図、 第3図は、複数のエントリから構成されるダブルリンク
キューの構成説明図、 第4図は、エントリ削除命令のフォーマット例を示す
図、 第5図は、従来の削除命令実行処理のオペランドアクセ
スの順序を示す図である。 Q…ダブルリンクキュー E1〜Ei-1,Ei,Ei+1〜En…エントリ EBi…エントリ本体 Bi…後方リンク Fi…前方リンク Ai…先頭アドレス

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】ダブルリンクキュー(Q)を用いてキュー
    操作命令の処理を行う情報処理装置におけるダブルリン
    クキュー更新方法であると共に、直前に配列されるエン
    トリ(Ei-1)の先頭アドレス(Ai-1)が記述された後方
    リンク(Bi)及び直後に配列されるエントリ(Ei+1)の
    先頭アドレス(Ai+1)が記述された前方リンク(Fi)を
    夫々に備える3以上のエントリ(Ei-1、Ei、Ei+1)を少
    なくとも含んで構成される前記ダブルリンクキュー
    (Q)から、3以上の連続した前記エントリ(Ei-1
    Ei、Ei+1)のうちの第2番目の前記エントリである第2
    エントリ(Ei)を削除して前記ダブルリンクキュー
    (Q)を更新するダブルリンクキュー更新方法であっ
    て、 前記第2エントリ(Ei)に対して直前に配列される前記
    エントリである第1エントリ(Ei-1)における前記前方
    リンク(Fi-1)に基づいて、前記第2エントリ(Ei)の
    先頭アドレス(Ai)を取得する第1アドレス取得工程
    と、 前記第2エントリ(Ei)における前記前方リンク(Fi
    に基づいて、当該第2エントリ(Ei)に対して直後に配
    列される前記エントリである第3エントリ(Ei+1)の先
    頭アドレス(Ai+1)を取得する第2アドレス取得工程
    と、 前記第3エントリ(Ei+1)における前記後方リンク(B
    i+1)の内容を前記第1エントリ(Ei-1)の先頭アドレ
    ス(Ai-1)に書き換える第1リンク書き換え工程と、 前記第1エントリ(Ei-1)における前記前方リンク(F
    i-1)の内容を前記取得した第3エントリ(Ei+1)の先
    頭アドレス(Ai+1)に書き換える第2リンク書き換え工
    程と、 前記第2エントリ(Ei)の先頭アドレス(Ai)を記憶す
    る記憶工程と、 前記第2エントリ(Ei)を削除する削除工程と、 を備えたことを特徴とするダブルリンクキュー更新方
    法。
JP1314637A 1989-12-04 1989-12-04 ダブルリンクキュー更新方法 Expired - Lifetime JP2568708B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1314637A JP2568708B2 (ja) 1989-12-04 1989-12-04 ダブルリンクキュー更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1314637A JP2568708B2 (ja) 1989-12-04 1989-12-04 ダブルリンクキュー更新方法

Publications (2)

Publication Number Publication Date
JPH03175542A JPH03175542A (ja) 1991-07-30
JP2568708B2 true JP2568708B2 (ja) 1997-01-08

Family

ID=18055720

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1314637A Expired - Lifetime JP2568708B2 (ja) 1989-12-04 1989-12-04 ダブルリンクキュー更新方法

Country Status (1)

Country Link
JP (1) JP2568708B2 (ja)

Also Published As

Publication number Publication date
JPH03175542A (ja) 1991-07-30

Similar Documents

Publication Publication Date Title
JP2568708B2 (ja) ダブルリンクキュー更新方法
US4985826A (en) Method and device to execute two instruction sequences in an order determined in advance
IE61306B1 (en) Method and device to execute two instruction sequences in an order determined in advance
CA2025197C (en) Method and system for dynamically controlling the operation of a program
JPH01303529A (ja) データ処理装置
JP3130798B2 (ja) バス転送装置
JP3988740B2 (ja) 並列処理装置、命令再試行方法、およびプログラム
JPH0594356A (ja) メモリ上テーブルデータ障害時復旧方式
JP2671160B2 (ja) 例外処理方式
US11150940B2 (en) System and method for recording transaction associated with a page-oriented non-volatile memory
JPH03216743A (ja) データベースの並列退避方式
JP3022011B2 (ja) データバックアップシステム
JP3667703B2 (ja) エラー訂正制御回路
JP3067408B2 (ja) メモリアクセス制御装置の診断方式
JP3299361B2 (ja) 共有メモリを持つマルチプロセッサシステム
JPS58154043A (ja) 情報処理装置
JP2842110B2 (ja) プリンタ装置の文字パターン保存方法
JPH04181331A (ja) 命令リトライ方式
JPH0652049A (ja) メモリ内容回復装置
JPH03255547A (ja) メモリダンプ出力方式
JPS622335A (ja) フアイル装置のバツクアツプ処理方式
JP2796162B2 (ja) 命令処理方法
JPH10247157A (ja) トランザクション処理システムおよびそのリカバリ方法
JPS6149695B2 (ja)
JPS62196745A (ja) レジスタ書込み方式