JPH033057A - 入出力制御方法および入出力割込み方法 - Google Patents

入出力制御方法および入出力割込み方法

Info

Publication number
JPH033057A
JPH033057A JP1136042A JP13604289A JPH033057A JP H033057 A JPH033057 A JP H033057A JP 1136042 A JP1136042 A JP 1136042A JP 13604289 A JP13604289 A JP 13604289A JP H033057 A JPH033057 A JP H033057A
Authority
JP
Japan
Prior art keywords
lock
page
frame
real
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.)
Pending
Application number
JP1136042A
Other languages
English (en)
Inventor
Toshiyuki Kinoshita
俊之 木下
Taro Inoue
太郎 井上
Takashi Morikawa
孝 森川
Hiroshi Ichinomiya
弘 一ノ宮
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 Microcomputer System Ltd
Hitachi Ltd
Original Assignee
Hitachi Ltd
Hitachi Microcomputer Engineering 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, Hitachi Microcomputer Engineering Ltd filed Critical Hitachi Ltd
Priority to JP1136042A priority Critical patent/JPH033057A/ja
Publication of JPH033057A publication Critical patent/JPH033057A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、IOPを有する計算機システムに係り、特に
D A ’l’機構を備えたIOPの制御方式に係る。
〔従来の技術〕
汎用計算機における入出力では、入出力媒体上のファイ
ルのフォーマットをユーザプログラムに意識させ、これ
を最大限に有効利用させるために、物理入出力アクセス
法(EXCPマクロ: ExecuteChannel
 Program)が提供されている。このアクセス法
では、入出力においてチャネルに実行させるチャネルプ
ログラムをユーザプログラムが作成し指定することがで
きる。しかし、ユーザプログラムは一般に非特権モード
で動作しかつ領域の実アドレスは認識できないので、ユ
ーザプログラムが作成するチャネルプログラムはチャネ
ルコマンド語(Channel Command Wo
rd : CCW)のアドレス部が仮想アドレスである
仮想チャネルプログラムである。一方、IOPがD A
 ’I’機構を備えていない計算機では、10PはCC
Wのアドレス部が実アドレスである実チヤネルプログラ
ムしが実行できない、従って、ユーザプログラムが作成
した仮想チャネルプログラムによる入出力を行なう際は
、まずIP上の入出力スーパバイザが仮想チャネルプロ
グラムを実チヤネルプログラムに変換(これをCCW変
換と呼ぶ)した後、この実チヤネルプログラムを指定し
て工OPに入出力命令を発行する必要がある。また、I
OPが入出力実行中に入出力バツファの存在するページ
に常の実フレームが割付けられていることを保証しくそ
の実アドレスを実チヤネルプログラムに指定する)、か
つ仮想/実アドレスの対応関係がくずれないように、C
CW変換の際に入出力バツファ領域のページ固定も行な
う必要がある。
特公昭56−10655号記載のチャネル動的アドレス
変換(Channal Dynamlc Addres
s l’ranslation:チャネルDAT)機構
を備えた工OPは、入出力バツファや仮想チャネルプロ
グラムの存在するページに実フレームが割付けられてい
ることを前提に、仮想チャネルプログラムの実行が可能
である。チャネルDAT方式のIOPは、記憶制御装置
(Storage Controlunit : S 
に U)内のL) A T機構を利用して仮想アドレス
を実アドレスに変換し、これを用いて入出力を実行する
。これにより、IP上での入出力スーパバイザによるC
CW変換が不要となり、そのオーバヘッドが削減させる
〔発明が解決しようとする課題〕
従来技術記憶のチャネルD A T方式の工OPにおい
ても、その実行はIOPがアクセスする全てのページ(
入出力バッファや仮想チャネルプログラムの存在するペ
ージ)に実フレームが割付けられていることが前提であ
る。従ってこの場合も、IOPがアクセスする全てのペ
ージをユーザプログラムかオペレーティングシステム(
OperatingSystem : OS )がペー
ジ固定し、実フレームが割付けられていることを保証し
ておかなければならない、このページ固定処理は、IO
Pがアクセスしたページで実フレームが割付けられてい
ないことによる実行の中断を防止することと、IOHの
実行中に実フレームの割当てが変更されて誤ったページ
に入出力することを防止するためである。
仮想記憶方式において、O8により空き実フレームの不
足などの理由で、仮想ページに割当てられていて使用中
の実フレーム中のから割当を解除して空き実フレームを
確保する処理をページスチールと呼ぶ、ところで、十分
に大容盆の主記憶を有する計算機システムでは、いった
ん入出力バツファやチャネルプログラムの存在するペー
ジに割付けられていた実フレームが、空き実フレームの
不足から、IOHの入出力実行までにページスチールさ
れてしまうことは、極めて少ない頻度であると考えられ
る。このようにIOHによる入出力完了までの間当該の
実フレームがページスチールされなければ、上記のペー
ジ固定処理は不要である。従来方式では、すべての入出
力バツファやチャネルプログラムが存在するページを、
入出力発行以前にプログラムによってページ固定してお
かなければならないため、主記憶容景が増加してページ
スチールが減少してもページ固定のオーバヘッドが削減
されないという問題があった0本発明の目的は、このペ
ージ固定処理を不要にするための手段を提供し、そのオ
ーバヘッドを削減させることにある。
ページ固定を行なわずにIOPを実行させると、IOP
がアクセスするページの中に実フレームが割付けられて
いないものが存在し、ページフォールトが発生し得る。
このため、IOPにページフォールト処理を実行させる
方法が考えられるが、この方法には次のような問題点が
ある。
(IP)ページフォールト処理では、フォールトを起こ
したページに割付けるべき空き実フレームを確保し、こ
れを該ページに割付ける処理の一環としてアドレス変換
テーブルを更新する必要があるが、変換テーブルはIP
上で動作するO8の管理下にあり、IOPは勝手に変更
できない。
(2)ページフォールトで割付けるべき空き実フレーム
がない場合には、ページスチールにより新たに空きフレ
ームを確保しなければならない。
その際スチールの対象になったページが更新済みであっ
た場合はページアウト処理を伴なうが、ioPがページ
アウトの入出力を発行することはできない。
(3)IOPによるページフォールト処理では多量のメ
モリ参照を伴ない、処理時間が伸延する。
そのためD A S D (Direct Acces
s StorageDevice)装置への入出力にお
いて、チャネルのCCW実行がDASD装置の機械的動
作に間に合わないチャネルオーバランが発生し得る。
以上の理由から、IOP実行時にアクセスしたページに
実フレームが割付けられていなかった場合、これを解決
するための手段で、上記の10Pペ一ジフオールト実行
方式よりも10Pの処理量が遥かに少なくて済む方法が
必要である。
また、ページ固定を行なわない場合は、仮にIOPによ
る入出力実行開始時にIOFがアクセスするページに実
フレームが割付けられていても、入出力実行中に該実フ
レームがページスチールされて仮想/実アドレスの対応
関係が変更されると、IOFは仮想アドレスで指定され
た入出力バツファやチャネルプログラムを正しくアクセ
スできなくなる。従って、同−実フレームに対する10
Pの入出力動作とオペレーティングシステムによるペー
ジスチール処理とを逐次化する、ページ固定に代わる、
何等かの手段が必要である。
〔課題を解決するための手段〕
上記問題点のうち、同−実フレームに対するO8による
ページスチール処理とIOPの入出力動作とを逐次化す
る問題は、IPとIOHの両者から取得と解放が可能な
ロックを実フレーム毎に設定することにより解決される
。またIOPがアクセスしたページに実フレームが割付
けられていなかった場合には、IOPからIPに対して
入出力割込みを発生し1割込まれたIPが実フレームの
割付けを行なうことにより解決される。
すなわち、O8がページスチールを行なう際は。
スチール候補の実フレームの該ロックを取得してからで
なければスチールしない、実フレームのロックの取得に
失敗した場合は、この実フレームをスチールせずに別フ
レームをスチールの候補とする。一方、IOPが入出力
動作を行なう際は、チャネルプログラムや入出力バッフ
ァの存在する各ページに割付けられている実フレームの
ロックを取得した後、入出力を実行する。こうして同−
実フレームに対するO8によるページスチール処理と、
IOPによる入出力動作とを逐次化することができる。
またIOFが入出力実行においてアクセスした仮想ペー
ジに実フレームが割付けられていないことを検出した場
合には、入出力割込みによりIPにその旨を通知し、割
込まれたO8は実フレームの割付を行なった後に、再び
入出力起動命令を発行し直す、実フレームは割付けられ
ていてもそのロック取得に失敗した場合には、取得でき
るまで待つこととする。こうしてIOPは、仮想アドレ
スで指定された入出力バツファやチャネルプログラムの
存在するページに実フレームが割付けられ、かつその仮
想ページと実フレームの対応関係が入出力実行中に変更
されないことが保証されて、入出力を実行できる。
〔作用〕
上記手段により、l0IJは仮想アドレスで指定された
入出力バッファやチャネルプログラムの存在する各ペー
ジに対してアドレス変換を行ない、実フレームが割付け
られていればそのロックを取得し、実フレームが割付け
ら九でいなければIPに実フレームの割付けを依頼する
入出力割込みを発生する。そしてIOPがロックを取得
済の実フレームは、IPによるページスチールの対象外
となるため、プログラムによるページ固定されていなく
ても入出力実行中にページスチールされて割付けが解除
されることはないに うして、lOPが入出力実行中にアクセスする全ての仮
想ページに実フレームが割付けられ。
かつ該フレームと仮想ページの対応関係も不変であるこ
とが保証される。すなわち、実質的にページ固定された
状態で入出力を実行できる。これにより1入出力発行時
に関係する入出力バツファやチャネルプログラムの存在
するページに予めページ固定処理を行なう必要がなくな
る。
〔実施例〕
本発明によるページ固定不要型の仮想アドレス入出力方
式の特徴は、次のようにまとめられる。
(IP)プログラムが入出力起t)J (Start 
5ub−Channel:5SCH)命令を発行する際
、CaW領域。
入出力バッファ領域など工OPの入出力実行に関係する
仮想ページはページ固定されていなくても良い。
(2)SSCH命令、CCWなどにセットするアドレス
は仮想アドレスとする。(ページ固定されていないのだ
から、実フレームが割付けられていないこともあり、そ
の場合は実アドレスは無意味という言い方もできる。) (3)IO)’は仮想アドレスを実アドレスに変換する
機能を持つ、このため、5SCH命令のパレメータにI
OPがアドレス変換を行なうためのセグメントテーブル
先頭アドレス(Seg+nant−Tble Orig
in Address : S G T OR) を追
加し、IOPによるアドレス変換はこれに基づいて行な
う。
(4)実ページが割付けられていなければ、入出力割込
みによりその旨をO8に通知し、O8が実フレームの割
付けを行なった後に、再び5SCH命令を発行し直す。
(5)入出力動作中は、関連する仮想ページと実フレー
ムの対応関係が保持されることを保g+Eする。
すなわち、10Pがある仮想ページに割付けられた実フ
レームとデータ転送中であるのに。
O8が(これと独立に)この仮想ページからページスチ
ールするといったことが生じないことを保証する。この
ためIPと10Pの間で各実フレーム毎にrフレームロ
ックJを設定する。
10Pは入出力実行はこのフレームロックを取得してか
ら行ない、またO8はフレームロックが取られている実
フレームについてはページスチールなどの仮想アドレス
と実アドレスの対応関係を炭更する処理の対象とはしな
い。
第2図に、本発明の対象とする計算機システムをボすe
命令プロセッサ(instruction Proce
ssor:IP、210)は、主記憶装置(Main 
Srorage:MS、240)に格納された命令を逐
次実行し、必要に応じてMS (240)上のデータを
アクセスする1入出力プロセッサ(Input 0ut
putProcessor : 10 F 、220 
)はtp(210)の入出力命令により起動され、1)
’(210)により用意されたチャネルプログラムに従
って入出力装[(IP10υavice : D E 
V、250)とMS(240)間のデータ転送を行なう
、記憶制御装置(Storage Control U
nit : S CtJ、230)はキャッシュ−メモ
リの制御やMS (240)へのアクセスの調整などを
行なう。
IP(210)上ではページング仮想記憶方式によるオ
ペレーティングシステム(OperatingSyst
em : OS )が動作する。仮想記憶を実現するた
めにMS (240)は実フレームと呼ばれる一定の記
憶単位に分割され、O8の制御のもとで。
必要に応じて仮想記憶装置のページに割付けられる。仮
想アドレスを実アドレスに変換するための機構としてt
p (210)だけでなくto)’(220)もl) 
A ’1’機構(221)を有するものとする。DAT
機構自身はハードウェア機構であるが、l) A T機
構がアドレス変換で参照するセグメントテーブルやペー
ジテーブルなどのアドレス変換テーブルの管理はO8が
行なう、このため、ページフォールトに伴なう実フレー
ムの割付けや、ページスチールにおける実フレームの割
当で解除などのアドレス変換テーブルの変更を伴なう処
理やページ固定処理などはO8の機能として実呪され、
10)’ (220)が直接実行することはできない。
第3図に、l) A T*構(211および221)に
よるアドレス変換手順をボす、仮想アドレス(31υ)
は、セグメント番号(Segment Number:
 SGN、311)、ページ番号(Page Numb
er :PGN、312)、ページ内オフセット(Of
fset: o ト’ s、313)に分割される。セ
グメントテーブル先頭アドレス(Segment−Ta
ble OriginAddress : S G T
OR1340)は、セグメントテーブル(Segmen
t−’l’able : S (j T、 320 )
の先頭アドレスを保持している。1)A1機構は、5U
N(311)でホされる5GT(320)中のセグメン
トテーブルエントリ(Segment−’rabls 
bfntry:5GTE:、321)を参照する。5G
TE(321)の1ビツト(322)が1′のときはS
UN (311)で示されるセグメントが主記憶中に存
在しないことを示し、アドレス変換動作は中止され、5
GTE(321)の1ビツト(322)が0′の場合は
、ページテーブル先頭アドレス(Page−Table
 Origin Address : PGTO132
3)で示されるページテーブル(Page−1’abl
a:l’GT、320)中の1’GN(312)で示さ
れるページテーブルエントリ(Page−Tableビ
ntry:)’GTE、331)の内容が参照される。
paTw (aa r)の1ビツト(332)が11′
ならば5(3N (311)と)’ON (312)で
刀\されるページが主記憶中に存在しない(実フレーム
が割付けられていない)ことをボし、アドレス変換動作
は中止され、PG′rE (331) の1ビツト(3
32)が101ならばページ先頭アドレス(Page 
Origin Address : P (U 0.3
33 )が仮想アドレス(310)に割付けられた実フ
レームの実アドレスを7バす。
第4図(a)に、本発明によって仮想/実アドレスの両
方を随時指定IIIf能な拡張されたCCWのフォーマ
ットをボす、CCW (400)は命令の種別を示すコ
マンドフィールド(410)、各種フラグより構成され
るフラグフィールド(42(,1)。
データ長をポすカウントフィールド(430)。
データ領域(CCH)IRや入出力バッファなど)や分
岐先アドレスを承すデータアドレスフィールド(440
)より構成される。CCWのうち、データアドレス(4
40)が仮想アドレスのものを仮想CCW、実アドレス
のものを実CCWと呼ぶ。
第41!m (b)に1間接データアドレス指定(IP
1)A= ’1’ 、421)のCCWのフォーマット
を示す。この場合は、アドレスフィールド(441)は
間接アドレス&(IL)AW、4 bO)を示し、11
)AW (450)がデータアドレスをボす、この場合
は、CCWのアドレスフィールド(441)と1 t)
AW (450)の値が共に仮想アドレスのものを仮想
CCWと呼び、共に実アドレスのものを実CCWと呼ぶ
チャネルプログラムはCCWの列であり、IO)’(2
2,0)によって実行される。10P(220)にとっ
て、CCWはIP(210)における命令語に相当し、
チャネルプログラムはIP(210)におけるプログラ
ムに相当する。
仮想CCWで構成されたチャネルプログラムを仮想チャ
ネルプログラム、実CCWで構成されたチャネルプログ
ラムを実チヤネルプログラムと呼ぶ。
ひとつのチャネルプログラム中に仮想CCWと実CCW
が混在することは許されない。
第、5図に、入出力起動(Start 5ub−Cha
nnel :5SCH)命令において必要なパラメータ
を、IP(210)からrop (220)に渡すため
の操作要求ブロック(Oparatlon Haqua
st BLock: ORB、500)を示す、ORB
 (500)は、入出力を識別するための割込みパラメ
ータ(5]0)。
チャネルプログラムの属性フラグ部(520)。
チャネルプログラム先頭アドレス(530)、セグメン
トテーブル先頭アドレス(540)、フレーム割付は要
求ブロック(Frame A11ocationReq
uest BLock : F A RB )アドレス
(550)より構成さ埼國゛、、IOP (220)は
I P(210)から発行された5SCH命令により、
0RB(500)に指定されたチャネルプログラムを実
行する。チャネルプログラムが仮想/実チヤネルプログ
ラムの何れであるかは、フラグ部(520)のVビット
(521)により指定される。
(a )  V (Virtual)ビット:仮想CC
V/データアドレス(521) ORHのチャネルプログラム先頭アドレス(530)が
仮想アドレスであり、チャネルプログラムが仮想チャネ
ルプログラム(全てのCCWのデータアドレス、IL)
AWアドレスが仮想アドレス)であることを示す、この
場合、CCWおよびデータの存在するページは、ページ
固定されている必要はない。
(b)  チャネルプログラム先頭アドレス(530)
Vビット(521)が0′ならば実アドレス、Vビット
が1′ならば仮想アドレスである。
(c)  セグメントテーブル先頭アドレス(540)
アドレス変換に用いるセグメントテーブルの先頭実アド
レスを示す。本フィールドはVビット(521)が1′
の時のみ有効である。
(d)  フレーム割付要求ブロックアドレス(550
)IOP (220)がアドレス変換例外を起こして、
実フレーム割付は要求のための入出力割込みを発生され
た時、IP(210)へのパラメータであるフレーム割
付は要求ブロック(ト’RAB、900)の実アドレス
をセットする。l−’RAB (900)の詳細は第9
図にて説明する1本フィールドはvビット(521)が
11′の時のみ有効である。
第6図(a)に、サブチャネル状態i/4 (Sub−
ChannaI 5tatus word : S C
r S W、600)のフォーマットを、第7図に、拡
張状態語(ExtendedStatus Word 
: E S W、700)のフォーマットを示す。入出
力完了時にIOP (220)はIP(210)に入出
力割込みを発生させるが、その際入出力の完了状態を5
C8W/ESWに記述し、IP(210)に報告する。
仮想CCW指定(ORBのVビット= ’1’ 、52
1)において。
もし10P(220)がアクセスした仮想ページに実フ
レームが割付けられていないことを検出した場合は、入
出力割込みを発生させてS CS W/ESWでアドレ
ス変換例外を報告する。
(a )  V (Virtual)ビット(scsw
の16ビツト):仮想CCW指定(611) ORBのvビットが反映される。
(b)  CCWアドレス(630) 終了CCWの次のCCWアドレスを示す。
scswのvビット(521)が0′の時は実アドレス
、 11′の時は仮想アドレスでホされる。
(c )  F G C(Progeam Check
)ビット(S S 13のビット2.641) 従来のプログラムチエツクに加えて、仮想CCW指定時
に、IO)’ (220)が(i)  CCWフェッチ (■)  IDAWフェッチ (tU)  出力データフェッチ (tv)  人力データ格納 によりアクセスした仮想ページに実フレームが割付けら
れていない場合、アドレス変換例外のプログラムチエツ
クを1)’(210)に報告する。この時、ESWのア
ドレス変換チエツク(L) A TC1711)が同時
に報告される。
(d)  DATC(アドレス変換チエツク)ビット(
ESWのビット7.711) プログラムチエツク(PGC1641)と同時に報告さ
れ、CCWフェッチ、IDAWフェッチ、出力データフ
エッチ、入力データ格納のいずれかにおいてアドレス変
換例外が発生したことを示す。第8図に関連するフラグ
の意味を示す、これにより、アドレス変換例外の原因と
発生箇所を知ることができる。
(,3)  ステータス制御フィールド(620)アド
レス変換例外のプログラムチエツク割込みは、アラート
ステータス(AS、5C8Wのビット27,621)か
つ中間ステータス(is、同ビット28,622)割込
みである。
第9図に、フレーム割付は要求ブロック(FrameA
11ocation 1(equest Block 
:  F A RB、900)のフォーマットを示す、
FARB(900)は。
1op(220)が仮想アドレス指定のあるCCW実行
中、実フレームが割付けられておらずアドレス変換例外
を検出したページまたはそのページに割付けられている
実フレームのフレームロックの取得に失敗したページを
O8に指定するためのパラメータであり、これにより複
数ページへの実フレーム割付けやフレームロックの解放
を一括して要求できる。
(a)  領域アドレスフィールド(910)実フレー
ム割付けを要求する領域の仮想アドレスを示す。
(b)  長さフィールド(920) 実フレーム割付けを要求する領域の長さを示す。
(Q)  A(^1locata) ビット(930)
各ビットは、領域アドレスフィールドの示すページから
長さフィールドの示す長さ分のページと、先頭から1ビ
ツトずつ順に対応している。
各ビットは、対応するページに実フレームが割付けられ
ていることを示す、従って本ビットが0′の時、10)
’ (220)はL P(210)に実フレームの割付
けを要求していることを示している。
(d )  L (Lock)ビット(931)各ビッ
トは、領域アドレスフィールドの示すページから長さフ
ィールドの示す長さ分のページと、先頭から1ビツトず
つ順に対応している。
各ビットは、対応するページに割付けられた実フレーム
のフレームロックの取得に成功したことを示す0本ビッ
トは、Aビット=11′(930)の時のみ有効である
。従ってAビット二′1″ かつLビット=゛0″の時
、10P(220)はI)J(210)にフレームロッ
クの解放を要求していることを示している。
仮想CCW指定の5SCH命令発行時には、発行元は予
め所要数のAビット(930)とLビット(931)を
持ったFARB (900)を確保し、そのHRB(9
oO)には実フレームの割付けを保証し、ゼロクリアし
、かっト’ A RB実アドレスをORBのFAR)3
アドレスフイールド(550)にセットしておく、10
)’ <220)がアドレス変換例外の入出力割込みを
発生させるのは、次の2つの場合である。
(IP)ccwフェッチ時またはCCW実行時に、実フ
レームが割付けられていなかった場合。(対応するAビ
ット(930)を0′にする。
)(2)CCWCエフエッチ時はCCW実行時に。
(実フレームが割付けられていたが)フレームロックの
取得に失敗した場合、(対応するAビット(930)を
’1’ 、Lビット(931)を0″にする。) これらの場合、更に領域アドレスフィールド(910)
と長さフィールド(920)をセットして、L)’ (
210)にアドレス変換例外の入出力割込みを発生させ
る。
割込まれたOSは、Aビット= ’O’ (930)の
対応するページに実フレームを割付け、またAビット=
 ’l’  (930) 、Lビット=10′(931
)のページに割付けられた実フレームのフレームロック
を解放した後1割込みを起こしたCCWを指定して再度
5SCH命令を発行する。
この割込みを起こしたCCWアドレスは、アドレス変換
例外入出力割込みの5C8W (600)から求められ
る。ひとつのCCWに対する再度の5SCH命令発行の
場合は、ト’ARB(900)のゼロクリアを行なわな
い。
CCWやデータの存在するページをページ固定せず、仮
想アドレスによって入出力を行なった場合、IOP (
220)がある仮想ページに割付けられた実フレームと
データ転送中であるのに。
O8が(これと独立に)この実フレームをページスチー
ルするといったことが起こり得る。これを防ぐために、
各実フレーム毎にIP(210)と10P (220)
の処理を逐次化するrフレームロック」を設定する。I
OP (220)は入出力実行をこのフレームロックを
取得してから行ない。
またO8はフレームロックが取られている実フレームに
ついてはページスチールなどの仮想アドレスと実アドレ
スの対応関係を変更する処理の対象とはしないこととす
る。
第10図に、O8による実フレーム割付は時のフレーム
ロックの使用手順を示す、O8がページフォールトによ
り新たに空き実フレームを確保する際には、まず空き実
フレームがプールされている空き実フレームチエインを
検索する(IP001)。
もし空き実フレームが無ければ(IP002)、所定の
ページリプレースメントアルゴリズムにより、ページに
割付けられて使用中の実フレームの中からページスチー
ル候補を選択しく1003)、そのフレームロックの取
得を試みる(IP004)、フレームロックの取得に失
敗した場合は(IP001)、別の実フレームをページ
スチール候補として選択する。フレームロックの取得に
成功した場合は(IP005) 、該ページの無効化(
P G ’rE中の1ビット: ’1’   1006
) 、対応するl’ L t3エントリの無効化(IP
007)を行なって該実フレームの割付けを解除した後
、フレームロックを解放する(IP008)、更に該ペ
ージが更新されていれば(IP009)、ページアウト
の入出力を実行する(IP010)、こうして空き実フ
レームを確保した後、新たに割付けるページにページイ
ンが必要であれば(foil)、ページイン処理を行な
い(IP012)、ページテーブルを更新することで実
フレームの割付は行なって(IP013)、ページフォ
ールトを解決する。
この手順中、最後に実フレームを割付けるためのページ
テーブルの更新時(IP013)にフレームロックを取
得しないのは、空き実フレームには入出力が発行されて
いないことを、O8が保証しているためである。
また、ページの無効化(IP006)とl” L Hエ
ントリの無効化(IP007)の処理は、従来からひと
つの命令語(L P ’rE命令: 1nvalida
te PageTable E!ntry)で実行され
ている。そこでこのI I’ i’ t<命令にフレー
ムロックの取得処理も含めることにより、上記の手順を
高速化することができる。
第11図(a)に、I P T E命令にフレームロッ
クの取得処理を含めたIPT)4UF(Invalid
ate PageTable Entry for L
lnlockad Flame)命令の動作の概要を示
す、 IPTI(υト°命令では、まず指定された仮想
ページアドレスにアドレス変換を行ない(IP101)
、該ページに実フレームが割付けられているかを判定す
る(IP102)、実フレームが割付けられていなけれ
ば、命令は実行せずに、結果の条件コードを0′にセッ
トして命令を終了する(IP110)。
実フレームが割付けられていれば、そのフレームロック
を取得を試み(IP103)、フレームロックの取得に
失敗した場合は、結果の条件コードを11′にセットし
て命令を終了する(IP111)。
フレームロックの取得に成功した場合、先のアドレス変
換を行なってからフレームロックを取得するまでの間に
ページテーブルが書き替えられているiJ能性があるの
で、再度アドレス変換を行ない(IP105)、それに
よって得られる実フレームが前回のものと一致した場合
に(IP106)、フレームロックが取得されたものと
する。もし一致しなければ、フレームロックを解放しく
1112)、一致す(までこれを繰り返す、こうしてフ
レームロック取得後、該ページテーブルエントリと対応
する’1’ L Hエントリの無効化を行ない(IP1
07゜1108)、フレームロックを解放した後(IP
109)。
結果の条件コードを0′にセットして命令を終了する(
IP110)。
第11図(b)に、このi P Tt!叶゛命令を用い
たIP (210)による実フレーム割付は手順を示す
、 IPTEUF命令を用いてページスチールを行なう
ためには、第10図の手順中、ページスチール候補の実
フレームを選択した後(IP123)、これにIPTI
4υド命令を発行して(IP124)、命令が実行され
たかどうかを条件コードにて判定すれば良い(IP12
5)、フレームロックの取得/解放などは命令の一部と
してハードウェアによって実行される。
第12図に、IOF (220)による仮想アドレス入
出力動作において、CCWCエフエッチ時レームロック
の使用手順を示す、まず、CCWの仮想アドレスをアド
レス変換しく1202)、該CC<O存在するページに
実フレームが割付られているかを判定する(IP203
)、実フレームが割付けられていなければ、)i’AR
B (900)の先頭のAビット(930)に10′を
セットしく1212)、アドレス変換例外の人出刃側込
みの処理に入る(IP213.1214)、実フレーム
が割付けられていれば(IP203)、そのフレームロ
ックの取得を試み(IP204) 、フレームロックの
取得に失敗した場合は(IP205) FAH13(9
00)の先頭のAビット(930)を11′に、先頭の
Lビット(931)を10′にセットして、アドレス変
換例外の人出刃側込みの処理に入る(IP213.12
14)。フレームロックの取得に成功した場合(IP2
05)、第11図(a)と同様に、先のアドレス変換(
IP202)を行なってからフレームロックの取得する
までの間にページテーブルが書き替えられている可能性
があるので、再度アドレス変換を行ない(IP206)
、それによって得られる実フレームが前回のものと一致
した場合に(IP207)、フレームロックが取得され
たものとする。もし一致しなければ前回の実フレームに
ついて取得したフレームロックを解放しく1221)、
一致するまでこれを繰り返す。
また実フレームが割付けられていない場合(先頭のAビ
ット= ’o’ )、またはフレームロックの取得に失
敗した場合(先頭のAビット=′1′Lビット= ’O
’ )は、fi’ARB (900) の領域アドレス
フィールド(910)に該ページの仮想アドレスを、長
さフィールド(920)に1ページ長をセットして、I
P(210)にアドレス変換例外の入出力割込みを起こ
す。
第1図に、IOP (220)による仮想アドレス入出
力動作において、ccwのデータアドレスによって示さ
れる領域へのアクセス時のフレームロックの使用手順を
、データ転送系のccwを例にして示す、この場合のC
Cwのデータアドレスは入出力バッファを示しているの
で、一般に1ページより大きく、従って複数ページのフ
レームロックを一括して取得しなければならない点が第
12図、へ−合と異なる。
第12図の手順によりCCWをフェッチした後(IP0
1)、そのデータアドレスによって示されるページから
順に(IP02)、対応するAビット(930)が′0
′またはAビット(930)が’1’ 、Lビット(9
31)が’o’ のもノニツいてアドレス変換を施しく
104)、該ページに実フレームが割付けられているか
を判定する(IP05)、実フレームが割付けられてい
なければ、Aビット(930)に′0′をセットする(
IP21)、実フレームが割付けられていれば(IP0
5)Aビットを′1′にしく106)、更にそのフレー
ムロックの取得を試み(IP07)、ロックの取得に失
敗した場合はLビットを′0′に(IP22)、成功し
た場合は′1′にセットする(IP09)、この場合も
再度のアドレス変換を行なって(IP10)、2回のア
ドレス変換の結果が一致した場合のみ(IP11)フレ
ームロックが取得されたものとする。こうして、CCW
のカウントフィールドが示す長さ分のページまで(IP
12)、実フレーム割付けの確認とフレームロックの取
得を繰返す、もし少なくともひとつのページで実フレー
ムが割付けられていない(Aビット= ’0’ )か、
実フレームのフレームロック取得に失敗した(Aビット
= ’1’ 、Lビット= ’o″)場合は(IP13
) 、FARB (900)の領域アドレスフィールド
”(910)にccwのデータアドレスの値を(440
,450) 、長さフィールド(920)にCCWのカ
ウントフィールドの値(430)を−1=ツトして、I
P (210) に7ドレス変換例外の入出力割込みを
発生させる。またこの全ページについて実フレームが割
付けられていてフレームロックの取得に成功した(Aビ
ット=″1′、Lビット= ’1’ )場合は(IP1
3)、データ転送(CCVの実行、114)を開始する
第13図に、フレームロック取得競合時の順序と動作に
ついて示す。
ある1)’(210)がフレームロック取得中に他のI
Pが同−実フレームのフレームロック取得要求を行なっ
た場合は、後からの取得要求は失敗とする。これを失敗
としない方法には、■ 複数のが同時にフレームロック
取得μJ能とする。
■ 後からの取得要求を待たせる。
の、2つが考えられる。IPによるフレームロックの取
得は、ページスチールの際のページテーブルエントリ書
き替え時に発生するが、■の方法によった場合、複数の
IPが同一のページテーブルエントリを書き替えるため
競合が起き矛盾が発生し得るし、また■の方法にのよう
にひとつの実フレームのロック取得を待つより、直ちに
IPに制御を戻して別の実フレームをページスチール候
補とする方が、より高速と考えられるためである。
あるIOP (220)がフレームロック取得中にIP
が取得要求を行なった場合は、上記と同様に、後のIP
からの取得要求を失敗とする。
あるIPがフレームロック取得中にLOPが取得要求を
行なった場合は、後の10)Jがらの取得要求はロック
取得失敗とする。この場合、io)’はIPにフレーム
ロック解放要求の人出刃側込みを衝止ずる。
ある10)Jがフレームロック取得中に更に101Jが
取得要求を行なった場合は、後からの取得要求も取得成
功とする。このようにioPから同時に複数の取得要求
が発行されるのは、同一の実フレーム上で同時に複数の
入出力が実行される場合に起こり得る。これはひとつの
ページの上に複数の異なる用途の領域が確保され、これ
らを異なるタスクまたは空間から独立に異なる入出力パ
ス(チャネル)を使って入出力要求が発行された場合に
発生する。もし同−実フレームのフレームロックをIP
、IOPを通じて同時には1回のみ取得可能ならば、フ
レームロックはロック取得中か否かを表現する1ビツト
の情報で十分であるが、上記のように同一のフレームロ
ックをIOPから同時に複数回取得可能とするためには
、1ビツトでは不足であり、複数回ロック取得されてい
ることや。
それらが全て解放されたことなどを識別できなければな
らない。
第14図(a)に、フレームロックの第1の実施例であ
るIOPロックカウンタ方式において保持するデータの
概要を示す、これらは、ハードウェア専用のメモリ領域
であるハードウェアシステム領域(Hardware 
System Area : HS A 、 1410
)上に保持される。
(a)  IPロックビット(IP411)各実フレー
ム対応に、IPが該実フレームのフレームロック取得中
であるこ・とをボす。
(b)  1oiJロツクカウンタ(IP412)各実
フレー11対応に、+ o p hS該実フレームのフ
レームロックを同時取得している取得数を示す。カウン
タ値が0の時、LOPはロックを取得していない。
第14図(b)〜(a)に、IPならび10Pからのフ
レームロック取得手順を示す。
IPからのフレームロック取得要求時(IP420)に
は、対応するIPロックビットを調べて他IPがロック
取得中ではなく (IP421)、かつ10 Pロック
カウンタを調べて[0)Jがロック取得中でない時(I
P422)のみ、IPロックピットを1本′にしてロッ
ク取得成功とする(IP423)。
IPからのフレームロック解放要求時(IP430)に
は、対応するIPロックビットを′0′にしてロックを
解放する(IP431)。
NOPからのフレームロック取得要求時(IP440)
には、対応するIFロックビットを調べて(IP441
)IPがロック取得中ならば、ロック取得失敗とする。
IPがロック取得中でない時、10Pロツタカウンタを
+1としてロックを取得する(IP442)。
10Pからのフレームロック解放要求時(IP450)
には、対応するIOPロックカウンタ値が正の時(IP
451)これを−1して、ロックを解放する(IP45
2)。
本方式に必要なH8Aメモリ所要量を試算する。
次の記号を用いる。
S:IPロックビット・メモリ量 T:IOPロックカウンタ・メモリ量 ド:実フレーム数 C:入出力パスの本数 M:lページが異なる用途に用いられる場合の、最大用
途数 L:ひとつの用途に割当てられる領域の最小単位サイズ P:1ページサイズ B:1実フレーム当りのカウンタの所要ビット数 まず、IPロックビットは1実フレーム毎に1ビツトで
あるから、 S=↑ド/8↑ (バイト) (但し、↑・・・↑は切り上げを表す、)ひとつの実フ
レームにLOPから同時に発行され得るロック取得要求
数は、 ■ 入出力バスの本数 ■ 1ページが異なる用途に用いられる場合の、最大用
途数 の何れをも越えない、■については、M≦P/Lである
から、IOPロックカウンタはMin(C1)’/L)
まで表せれば良い、故に、 B=↑Logz(Min(C、P / L )+ 1 
)↑(ビット)’1’ = ト’ X f B / 8
↑ (バイト)である0例えば。
C=256(本) L=8 (バイト) P=4096  (バイト) F=512(Kフレーム) とすると5 S=↑512/8↑=64  (Kバイト)B=↑Lo
gs(Min(256、512)+ 1 )↑=9 (
ビット) T=512X↑9/8↑=1024  (Kバイト)と
なり、所要H8Aメモリの総量は、 S+”f’=1096  (Kバイト)第15図(a)
に、フレームロックの第2の実施例であるIOPロック
ビット&カウンタ方式において保持するデータの概要を
示す、これらは、ハードウェア専用のメモリ領域である
ハードウェアシステム領域(Hardware Sys
tem Araa : HS A 。
1510)上に保持される。
(a)  IPロックピット(IP511)各実フレー
ム対応に、IPが該実フレームのフレームロック取得中
であることを示す。
(b)  IOPロックピット(IP512)各実フレ
ーム対応に、IOPが該実フレームのフレームロック取
得中であることを示す。
(Q)  ロック複数回取得ビット(IP513)各実
フレーム対応に、lOPから該実フレームのフレームロ
ックが複数回(2回以上)取得されていることを示す。
(d)  io!’ロックカウンタ(IP514)ロッ
クがIOPから複数回取得されている実フレームについ
て、実フレームアドレスと10Pが該実フレームのフレ
ームロックを同時取得している取得数−1を表す0本カ
ウンタは実フレーム対応に常に設定されているのではな
く、複数回取得されている実フレームについて複数回取
得されている間だけ設定される0本カウンタ用の領域は
、必要数(チャネル数の1/2)分がH8A上に予め確
保されているものとする。
第15図(b) 〜(8)に、IFならびにIOPから
のフレームロック取得手順を示す。
IPからのフレームロック取得要求時(IP520)に
は、対応するIPロックピットを調べて他IPがロック
取得中ではなく (IP521)、がっIOPロックビ
ットを調べてIOPがロック取得中でない時(IP52
2)のみ、IPロックピットを11′にしてロック取得
成功とする(IP523)。
IPからのフレームロック解放要求時(IP530)に
は、対応するIPロックピットをl □ l にしてロ
ックを解放する(IP531)。
lOPからのフレームロック取得要求時(IP540)
には、対応するIPロックピットを調べて(IP541
)IPがロック取得中ならばロック取得失敗とする。
IPがロック取得中でない時、IOPロックビットが1
01ならば(IP542)、これを11′にしてロック
を取得する(IP543)、IOPロックピットが既に
′1′でかつロック複数回取得ビットが′01ならび(
IP544) 、l0PC!ツタカウンタ領域に該実フ
レームのIOPロックカウンタエントリを作成して(I
P545)、カウンタ値をOに(IP546)、ロック
複数回取得ビットを’l’ にする(IP547)、I
OPロックビットカ既に1′でかつロック複数回取得ビ
ットが1′ならば(IP544)、該実フレームのI 
OPロックカウンタエントリ作成済みなので、各エント
リをサーチして(IP548)これを見つけてカウンタ
値を+1する(IP549)。
10Pからのフレームロック解放要求時(IP550)
には、対応するロック複数回取得ビットが10′ならば
(IP551) 、IOPロックビットを10′にして
ロックを解放する(IP552)、ロック複数回取得ビ
ットが1′ならば、該実フレームのi0Pロックカウン
タエントリを探しく1553)。
カウンタ値が正ならば(IP554) −1する(IP
557)、カウンタ値が0ならば(IP554)、この
iOPロックカウンタエントリを削除しく1555)、
ロック複数回取得ビットを0′にする(IP556)。
本方式に必要なH8Aメモリ所要量を試算する。
前項のIOPロックカウンタ方式と同様に。
St:IPロックビット・メモリ社 Sz:IOPロックビット・メモリ量 S8 :ロック複数回取得ビット・メモリ麓’l’eI
OPロックカウンタ・メモリ斌IPロックビット、IO
Pロックビット、ロック複数回取得ビットは1実フレー
ム毎に1ビツトであるから、 51=82=31=↑F/8↑ (バイト)また、ひと
つの実フレームにIOPから同時に発行され得るロック
取得要求数は、前項と同様にMin (C,P/L)で
あり、IOPロックカウンタはこの値−1であるから、 B=↑Logs(Min(C,P/L))↑(ビット)
そして、同時に必要となるIOPロックカウンタエント
リ数は「入出力バス数/2」を超えないから、 l゛=↑C/2↑X t B/8↑ (バイト)である
、そこで、前項と同じ値を代入してみると、S工=Sx
=Ss=↑512/8↑ =64  (Kバイト) B =↑Logz(Min(256、512))↑=8
(ビット) 1゛=↑256/2 ↑X↑8/8↑ =128  (バイト) となり、所要H8Aメモリの総量は、 Ss+Sz+Ss+T弁192 (Kバイト)であり、
前項のIOPロックカウンタ方式に比べて、HASメモ
リ所要量が遥かに少ない。
〔発明の効果〕
一般に、プログラムは入出力発行直前に仮想CCWを作
成し、また出力時には入出力バツファ領域へのデータ格
納を行なっており、十分な主記憶を有する計算機システ
ムでは、入出力実行時に10Pがアクセスするこれらの
全てのページに実フレームが割付けられている可能性は
高い、また人力時においても同じ入出力バツファが何度
も使用されることが多く、2回目以降からはこの入出力
バツファには実フレームが割付けられている可能性が高
い、このように、入出力おいて関係するページの多くは
ページ固定する必要がないと考えられる。しかし従来方
式では、たとえ十分な主記憶を有しページフォールトが
ほとんど発生しない計算機システムにおいても、入出力
中に10Pがアクセスするページに常に実フレームが割
付けられていることが確実に保証されていなければなら
ず、入出力要求発行以前に予めこれらのページを全てペ
ージ固定しておく必要があった1本発明により、このペ
ージ固定のためのオーバヘッドを削減することができ1
入出力を高速化できる。
【図面の簡単な説明】
第1図は、仮想アドレス入出力におけるl OPによる
フレームロックの使用手順、第2図は本発明の対象とす
る計算機システムの概要、第3図は、D A ’1’機
構によるアドレス変換手順、第4図は、仮想/実アドレ
スの両方を指定可能な拡張されたCCWのフォーマット
、第5図は、操作要求ブロック(ORB)のフォーマッ
ト、第6図は、サブチャネル状態語(SC8W)のフォ
ーマット、第7図は、拡張状態語(ESW)のフォーマ
ット、第8図は、IOPからのアドレス変換例外の人出
刃側込みにおける関連するフラグの意味、第9図は、フ
レーム割付は要求ブロック(FARB)のフォーマット
、第10図は、O8による実フレーム割付は時のフレー
ムロックの使用手順、第11図は、IPTBυト′命令
の動作と使用方法の概要、第12図は、IOPによるC
CWCエフエッチ時レームロックの使用手順、第13図
は、フレームロック取得競合時の順序と動作、第14図
は、IOPロックカウンタ方式の概要、第15図は、I
OPロックビット&カウンタ方式の概要をそれぞれ表す
図である。 力 因 不 回 箔 ■ 第 子 (a) カ しD  (bン ス ■ (メ〕 fi掬ビ、より與%’1 第 14図(が〕 ”f) 14回(C) α、71丈叫へ1方 Uフッ取)尋欠臥 策 ノ4 因(d) 遁I4図(ε) ロー1ノx4八工刀 ソファ1交を呼716( 口・7)酢π( 第 (す 75/θ 〆 第 (メ) 島15 (2)(リ ロ・7711各八エカ 口、7オ’t%大徒先

Claims (1)

  1. 【特許請求の範囲】 1、動的アドレス変換(DAT)機構を備えた入出力プ
    ロセッサ(IOP)を有する計算機システムにおいて、
    命令プロセッサ(IP)とIOPの両者から取得と解放
    が可能なロックを主記憶実フレーム毎に備え、 IPは、仮想ページから実フレームの割付けを解除する
    ページスチールを行なう際には、ページスチール候補の
    実フレームのロックの取得を試み、取得できた該実フレ
    ームのみをスチールし、ロックが既に取得済の実フレー
    ムはスチールの対象とせず、 IOPはチャネルプログラムアドレスやチャネルコマン
    ド語(CCW)の示すデータ領域アドレスが仮想アドレ
    スで示されている入出力を実行する場合には、チャネル
    プログラムやデータ領域の存在するページに割付けられ
    た実フレームのアドレスをDAT機構を用いて求め、か
    つ該実フレームのロックを取得した後にCCWを実行し
    、CCW実行完了後に該実フレームのロックを解放する
    ことにより、CCW実行中に該実フレームをページスチ
    ールの対象としないことを特徴とする入出力制御方法。 2、IOPが、仮想アドレスで示されたチャネルプログ
    ラムやデータ領域の存在するページに割付けられた実フ
    レームのアドレスをDAT機構を用いて求め、かつその
    ロックを取得する際、該ページに実フレームが割付けら
    れていない場合または該ロックが既に取得済みで該ロッ
    クの取得に失敗した場合に、IPに入出力割込みを発生
    し、該ページへの実フレームの割付けまたは該ロックの
    解放を、IPに実行させることを特徴とする入出力割込
    み方法。
JP1136042A 1989-05-31 1989-05-31 入出力制御方法および入出力割込み方法 Pending JPH033057A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1136042A JPH033057A (ja) 1989-05-31 1989-05-31 入出力制御方法および入出力割込み方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1136042A JPH033057A (ja) 1989-05-31 1989-05-31 入出力制御方法および入出力割込み方法

Publications (1)

Publication Number Publication Date
JPH033057A true JPH033057A (ja) 1991-01-09

Family

ID=15165819

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1136042A Pending JPH033057A (ja) 1989-05-31 1989-05-31 入出力制御方法および入出力割込み方法

Country Status (1)

Country Link
JP (1) JPH033057A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0652050A (ja) * 1992-05-20 1994-02-25 Internatl Business Mach Corp <Ibm> 実記憶のページをロックするためのシステム
JP2019159713A (ja) * 2018-03-12 2019-09-19 Necプラットフォームズ株式会社 演算処理装置、入出力処理装置、情報処理装置及び入出力処理方法。

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0652050A (ja) * 1992-05-20 1994-02-25 Internatl Business Mach Corp <Ibm> 実記憶のページをロックするためのシステム
JP2019159713A (ja) * 2018-03-12 2019-09-19 Necプラットフォームズ株式会社 演算処理装置、入出力処理装置、情報処理装置及び入出力処理方法。

Similar Documents

Publication Publication Date Title
US7188229B2 (en) Method and apparatus for memory management in a multi-processor computer system
US6370625B1 (en) Method and apparatus for lock synchronization in a microprocessor system
US5574878A (en) Method of parallel purging of translation lookaside buffer in a multilevel virtual machine system
US4598364A (en) Efficient trace method adaptable to multiprocessors
US6233599B1 (en) Apparatus and method for retrofitting multi-threaded operations on a computer by partitioning and overlapping registers
US8572624B2 (en) Providing multiple quiesce state machines in a computing environment
US8255591B2 (en) Method and system for managing cache injection in a multiprocessor system
EP0431467A1 (en) Multiprocessor system having distributed shared resources and dynamic global data replication
US6345351B1 (en) Maintenance of speculative state of parallel executed jobs in an information processing system
MXPA97002265A (en) Method and apparatus for processing memory type information within a microprocess
GB2265734A (en) Free memory cell management system
US6473845B1 (en) System and method for dynamically updating memory address mappings
US5615167A (en) Method for increasing system bandwidth through an on-chip address lock register
US6865651B2 (en) Method and system for optimizing translation buffer recovery after a miss operation within a multi-processor environment
US20060149940A1 (en) Implementation to save and restore processor registers on a context switch
JP2001222468A (ja) マイクロプロセッサのロード/ストア命令制御回路、およびロード/ストア命令制御方法
US6892280B2 (en) Multiprocessor system having distributed shared memory and instruction scheduling method used in the same system
US6892257B2 (en) Exclusive access control to a processing resource
JPH04155465A (ja) ファイル共用方法
JPH033057A (ja) 入出力制御方法および入出力割込み方法
JPS6113261B2 (ja)
JPH0222757A (ja) マルチプロセッサのメモリシステム
JPH09190375A (ja) 共有メモリ管理方法
JP2535584B2 (ja) 実記憶固定処理計算機
JPS6275850A (ja) マイクロ命令実行制御方式