JPS595359A - 入出力命令のキユ−イング方法 - Google Patents
入出力命令のキユ−イング方法Info
- Publication number
- JPS595359A JPS595359A JP57114246A JP11424682A JPS595359A JP S595359 A JPS595359 A JP S595359A JP 57114246 A JP57114246 A JP 57114246A JP 11424682 A JP11424682 A JP 11424682A JP S595359 A JPS595359 A JP S595359A
- Authority
- JP
- Japan
- Prior art keywords
- input
- queue
- channel
- output
- output 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/122—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
発明の技術分野
本発明は、中央処理装置が入出力機器に対して発する入
出力命令のキューイング方法に関する。
出力命令のキューイング方法に関する。
技術の背景
CPU (中央処理装置)と10(入出力機器)との間
のデータ授受に使用される入出力命令はCPUから発行
されるが、この命令はチャ永ルまたはその下位の指定し
たioが使用できる場合に限って受は付けられるので、
チャネルやlbの使用頻度が高くなるにつれ命令受付確
率は低下する。入出力命令が受は付けられずにCPUに
はね返されると、CPUはチャネルや16が空いて要求
を受は付けるまで何度も入出力命令を再スケジュールし
て出し直す必要がある。しかし、これはCPU本来の演
算能力を低下させるので、一般にはチャネルやlbが使
用中なら該命令をスタックし、該当するioがフリーに
なった時点で該命令を実行するというキューイング方法
を採る。
のデータ授受に使用される入出力命令はCPUから発行
されるが、この命令はチャ永ルまたはその下位の指定し
たioが使用できる場合に限って受は付けられるので、
チャネルやlbの使用頻度が高くなるにつれ命令受付確
率は低下する。入出力命令が受は付けられずにCPUに
はね返されると、CPUはチャネルや16が空いて要求
を受は付けるまで何度も入出力命令を再スケジュールし
て出し直す必要がある。しかし、これはCPU本来の演
算能力を低下させるので、一般にはチャネルやlbが使
用中なら該命令をスタックし、該当するioがフリーに
なった時点で該命令を実行するというキューイング方法
を採る。
従来技術と問題点 、
従来の入出力命令のキュースタックは、メインメモリに
デバイスに相当してサブチャネルがあるがそのサブチャ
ネル内に置き、そして咳サブチャネル内にポインタを持
たせるという方法をとるのが普通である。しかし、この
方法では毎回メインメモリをアクセスする必要があるの
で、チャネル側で処理するにしても時間がかかる欠点が
ある。
デバイスに相当してサブチャネルがあるがそのサブチャ
ネル内に置き、そして咳サブチャネル内にポインタを持
たせるという方法をとるのが普通である。しかし、この
方法では毎回メインメモリをアクセスする必要があるの
で、チャネル側で処理するにしても時間がかかる欠点が
ある。
発明の目的
本発明は、キューイングに必要なスタックをチャネル側
に置くことでキュー処理の時間を短縮しようとするもの
である。
に置くことでキュー処理の時間を短縮しようとするもの
である。
発明の構成
本発明は、複数のチャネルを管理するチャネルプロセッ
サを通して各チャネルの下位に接続された入出力機器に
中央処理装置から入出力命令を与えるシステムで、指定
したチャネルまたは入出力機器が使用中であるときに該
入出力命令を一時スタックするキューイング方法におい
て、複数の入出力命令をスタック可能なキュー管理用テ
ーブルを該チャネルプロセッサ側に設け、そして中央処
理装置から入出力命令が出される度に所要事項を該テー
ブルに取り込み、そしてデキュー要求があるとき該テー
ブルをアクセスして処理持ち入出力命令を先頭から実行
開始させることを特徴とするが、以下図示の実施例を参
照しながらこれを詳細に説明する。
サを通して各チャネルの下位に接続された入出力機器に
中央処理装置から入出力命令を与えるシステムで、指定
したチャネルまたは入出力機器が使用中であるときに該
入出力命令を一時スタックするキューイング方法におい
て、複数の入出力命令をスタック可能なキュー管理用テ
ーブルを該チャネルプロセッサ側に設け、そして中央処
理装置から入出力命令が出される度に所要事項を該テー
ブルに取り込み、そしてデキュー要求があるとき該テー
ブルをアクセスして処理持ち入出力命令を先頭から実行
開始させることを特徴とするが、以下図示の実施例を参
照しながらこれを詳細に説明する。
発明の実施例
第1図以下は本発明の実施例を示す図で、第1図はチャ
ネル側でCPUからの入出力命令を何個、どのような順
序でスタックしているか等を示すテーブルQCB (Q
ueue control block )の説明図
である。このテーブルQCBはキューが多ければ複数個
設けられることもあり、また不要時は消滅させることが
できる。1つのQCBは16のエレメント#0〜#15
を備える。このうちのエレメント#l〜#15は15個
の入出力命令に関するキュー情報をスタックする部分、
エレメント#0はそれらのエレメントを管理する部分で
ある。
ネル側でCPUからの入出力命令を何個、どのような順
序でスタックしているか等を示すテーブルQCB (Q
ueue control block )の説明図
である。このテーブルQCBはキューが多ければ複数個
設けられることもあり、また不要時は消滅させることが
できる。1つのQCBは16のエレメント#0〜#15
を備える。このうちのエレメント#l〜#15は15個
の入出力命令に関するキュー情報をスタックする部分、
エレメント#0はそれらのエレメントを管理する部分で
ある。
QCBが複数個ある場合は、最初のQCBの#0エレメ
ントがQCB全体の制御に関する情報を含む、エレメン
ト#0は図示のようにQB、QC。
ントがQCB全体の制御に関する情報を含む、エレメン
ト#0は図示のようにQB、QC。
NQP、BQP、DQP、およびQPからなり、そのキ
ューイングビットQBは16ビツト構成で、第1〜第1
5ビツトが、エレメント#1〜#15のそれぞれがデキ
ュー(dequeue )待ちであるか否かをビット対
応で表示する0例えば第五ビットに11″を立ててエレ
メント#量がデキエー待ちであることを示す、第0ビツ
トは#0エレメントに対応するが、このエレメントはQ
CB制御用でキューが立つことはないので不使用、具体
的には0とする。待機していた入出力命令が実行される
と当咳エレメント内のマスクデータM A、 S Kの
逆データとキューイングビットQBの論理積をとってそ
のエレメントをデキューする(QBの該当ビットを0″
にする)、キューカウントQCは現にキューされている
命令の総数(QCBが複数個ならその全QCBのキュー
数)を示し、新たにキューされると+1、逆にデキュー
されると−1される。ネクストQCBポインタNQPは
、エレメント#l〜#15の全てにキューがあり更に1
6個目以降のキューがあると次のテーブルQCBが作ら
れるが、そのQCBのアドレスを示す。このようにして
複数のQCBがチェインされる。バックQCBポインタ
BQPはこの場合に1つ前のQCBアドレスを示す、こ
れらのQCBチェインポインタNQP、BQPは複数の
QCBが作られる場所が後述するローカルストレージし
s内のように予め固定的に設定される場合には必ずしも
必要ない、QPはどのエレメントまでキューされている
かを示すキューポインタで、カレントQCBナンバー(
TJA在、命令実行順番にあるQCBの番号)とQCB
内キューカウントQCがら構成される。
ューイングビットQBは16ビツト構成で、第1〜第1
5ビツトが、エレメント#1〜#15のそれぞれがデキ
ュー(dequeue )待ちであるか否かをビット対
応で表示する0例えば第五ビットに11″を立ててエレ
メント#量がデキエー待ちであることを示す、第0ビツ
トは#0エレメントに対応するが、このエレメントはQ
CB制御用でキューが立つことはないので不使用、具体
的には0とする。待機していた入出力命令が実行される
と当咳エレメント内のマスクデータM A、 S Kの
逆データとキューイングビットQBの論理積をとってそ
のエレメントをデキューする(QBの該当ビットを0″
にする)、キューカウントQCは現にキューされている
命令の総数(QCBが複数個ならその全QCBのキュー
数)を示し、新たにキューされると+1、逆にデキュー
されると−1される。ネクストQCBポインタNQPは
、エレメント#l〜#15の全てにキューがあり更に1
6個目以降のキューがあると次のテーブルQCBが作ら
れるが、そのQCBのアドレスを示す。このようにして
複数のQCBがチェインされる。バックQCBポインタ
BQPはこの場合に1つ前のQCBアドレスを示す、こ
れらのQCBチェインポインタNQP、BQPは複数の
QCBが作られる場所が後述するローカルストレージし
s内のように予め固定的に設定される場合には必ずしも
必要ない、QPはどのエレメントまでキューされている
かを示すキューポインタで、カレントQCBナンバー(
TJA在、命令実行順番にあるQCBの番号)とQCB
内キューカウントQCがら構成される。
このキューポインタQPは新たにキューされた場合、キ
ューイングビットQBの対応するエレメントビットがオ
ン(“1″)になり、この結果キューカウントQCが+
1されることでQP+1となる。DQPは逆にどのエレ
メントまでデキューされているかを示すデキューポイン
タで、同様に当該QCBナンバーとQCB内キューカウ
ントQCから構成される。このデキューポインタは新た
にデキューされた場合、キューイングビットQBの対応
するエレメントビットがオフ10″)になり、この結果
キューカウントQCが−1されることでDQP−1とな
る0以上は管理用のエレメント#0についてである。
ューイングビットQBの対応するエレメントビットがオ
ン(“1″)になり、この結果キューカウントQCが+
1されることでQP+1となる。DQPは逆にどのエレ
メントまでデキューされているかを示すデキューポイン
タで、同様に当該QCBナンバーとQCB内キューカウ
ントQCから構成される。このデキューポインタは新た
にデキューされた場合、キューイングビットQBの対応
するエレメントビットがオフ10″)になり、この結果
キューカウントQCが−1されることでDQP−1とな
る0以上は管理用のエレメント#0についてである。
QCBのエレメント#1〜#15の構成は起動情報、1
6機番、CAW、CHPパス情報、ucWアドレス、及
びマスクデータからなる。起動情報はCPUから起動さ
れた時の情報であり、ここにはCPU側のコントロール
レジスタCROのビット0 (Block multl
plexlng bit )のコピー或いはプログラ
ム ステータスワードPSW内のECモードビット等が
入る。10機番は起動時に指定されたデバイス機番で、
CHP (チャネルプロセッサ)パス情報を用いて別パ
スへのりトライ時にも使用される。UCWアドレスは1
0機番に対応したUCWの先頭アドレスを示す。これは
16ビツトで、チャネルアドレスCIA、コントロール
ユニットアドレスCUA、デバイスアドレスDVAから
なる。
6機番、CAW、CHPパス情報、ucWアドレス、及
びマスクデータからなる。起動情報はCPUから起動さ
れた時の情報であり、ここにはCPU側のコントロール
レジスタCROのビット0 (Block multl
plexlng bit )のコピー或いはプログラ
ム ステータスワードPSW内のECモードビット等が
入る。10機番は起動時に指定されたデバイス機番で、
CHP (チャネルプロセッサ)パス情報を用いて別パ
スへのりトライ時にも使用される。UCWアドレスは1
0機番に対応したUCWの先頭アドレスを示す。これは
16ビツトで、チャネルアドレスCIA、コントロール
ユニットアドレスCUA、デバイスアドレスDVAから
なる。
第2図はチャネルプロセッサCHPのアイドルループの
説明図である。CHPは第5図に示すように複数のチャ
ネルCHの上位に位置する管理、制御用のプロセッサで
、それ自身独立したマイクロプログラムで動作する。各
チャネルCHの下位にはコントロールユニットCUが接
続され、更にその下位に個々のデバイス(i/δ)DV
が接続される。MSはメインストレッジである。第6図
はチャネルプロセッサCHPの詳細で、LSはテーブル
QCBなどを格納するローカルストレンジ、C8は第2
図のアイドルループおよび後述するキュー処理、デキュ
ー処理等のプログラムを内蔵するコントロールストレッ
ジ、REG+は要求レジスタ、A/Sはアダー/シフタ
ーである。
説明図である。CHPは第5図に示すように複数のチャ
ネルCHの上位に位置する管理、制御用のプロセッサで
、それ自身独立したマイクロプログラムで動作する。各
チャネルCHの下位にはコントロールユニットCUが接
続され、更にその下位に個々のデバイス(i/δ)DV
が接続される。MSはメインストレッジである。第6図
はチャネルプロセッサCHPの詳細で、LSはテーブル
QCBなどを格納するローカルストレンジ、C8は第2
図のアイドルループおよび後述するキュー処理、デキュ
ー処理等のプログラムを内蔵するコントロールストレッ
ジ、REG+は要求レジスタ、A/Sはアダー/シフタ
ーである。
チャネルプロセッサCHPでプログラムは常時C8内の
アイドルループを回っており、各々の要求があるか否か
を常に監視している。アイドルループには第2図に示す
ように、cpuo起動有無、デキュー要求有無、チャネ
ル割込要求有無各判定機能が含まれ、要求がなければプ
ログラムは単純にこれらを素通りして循環している。C
PUから入出力命令5iOPが発行されると要求レジス
タREG+中のCPU0起動のビットがオンになり、C
8のプログラムはこれを監視しているので直ちにその処
理に入る。またこのときCPUよりPswのECモード
ピット、コントロールレジスタOROのビット0 (
block multlplexing bit )
、16機番(起動機番)などが送られて来て、これが
X、Yレジスタに取り込まれる。レジスタREG1の起
動ビットがオンになったことによりCHPはメインスト
レッジMSからチャネルアドレスワードCAWをフェッ
チし、フォーマットをチェック後、空キューを調ぺCC
−0応答(この意味は後述する)でcpuとの結合を解
除する。この後テーブルQCBを調べてそのキューイン
グビットQBが示す空エレメントに上記起動情報をセッ
トする。このときキューカウントQCおよびキューポイ
ンタQPを共に+1し、またキューイングビットQBの
該当するエレメントビットをオンにしてキュー処理を終
る。このQCB作成はX、Yレジスタ、アダーシフタA
/S、LSのワークエリアを利用して行なう。5sop
命令でない場合は、当該命令の処理に入る。10処理が
終った、コンド・ロールユニットCUがフリーになった
、またはチャネルCHがフリーになったときはデキュー
処理が上り、その処理が行われると共に処理待ち16の
起動が行なわれる。チャネル割込み処理ルーチンは要求
があればそれを処理し、なければ素通りする。
アイドルループを回っており、各々の要求があるか否か
を常に監視している。アイドルループには第2図に示す
ように、cpuo起動有無、デキュー要求有無、チャネ
ル割込要求有無各判定機能が含まれ、要求がなければプ
ログラムは単純にこれらを素通りして循環している。C
PUから入出力命令5iOPが発行されると要求レジス
タREG+中のCPU0起動のビットがオンになり、C
8のプログラムはこれを監視しているので直ちにその処
理に入る。またこのときCPUよりPswのECモード
ピット、コントロールレジスタOROのビット0 (
block multlplexing bit )
、16機番(起動機番)などが送られて来て、これが
X、Yレジスタに取り込まれる。レジスタREG1の起
動ビットがオンになったことによりCHPはメインスト
レッジMSからチャネルアドレスワードCAWをフェッ
チし、フォーマットをチェック後、空キューを調ぺCC
−0応答(この意味は後述する)でcpuとの結合を解
除する。この後テーブルQCBを調べてそのキューイン
グビットQBが示す空エレメントに上記起動情報をセッ
トする。このときキューカウントQCおよびキューポイ
ンタQPを共に+1し、またキューイングビットQBの
該当するエレメントビットをオンにしてキュー処理を終
る。このQCB作成はX、Yレジスタ、アダーシフタA
/S、LSのワークエリアを利用して行なう。5sop
命令でない場合は、当該命令の処理に入る。10処理が
終った、コンド・ロールユニットCUがフリーになった
、またはチャネルCHがフリーになったときはデキュー
処理が上り、その処理が行われると共に処理待ち16の
起動が行なわれる。チャネル割込み処理ルーチンは要求
があればそれを処理し、なければ素通りする。
第3図はチャネルプロセッサCHPによるキュー処理の
動作フローである。但し説明を簡単にするためテーブル
QCBは1組だけ設定しであるものとする。このためキ
ューカウントQCがキュー用のエレメント#1〜#15
の個数15に達している場合(QC>15)は新たな入
出力命令を受付けることができないのでコンディション
コードをCC=2にセットする。これはチャネルがビジ
ーであることを示し、CPUに命令の再発行を指示する
。セット後はCHPとCPUとの結合が解かれる(CP
Uリリース)。QC≦14であればメインストレッジM
Sからチャネルプログラムの先頭を指示するCAW (
チャネル・アドレス・ワード)をフェッチする。そして
CAWのフォーマットチェックの結果が不良(NG)で
あればCC−1(これはプログラムチェック結果不良を
示す)にセットし、プログラムチェックを報告して終了
する。良(OK)であればCG−0(これは正常に受付
けたを示す)にセットしてCPUをレリーズする。次い
でキューポインタQPが0であるか判断する。QP−0
は管理用のエレメント#0を指しているのでキューに用
いることはできない5このときはキューポインタQPに
1をセットし、エレメント#1からキューの作成を開始
する。QP≠0であればそのポインタ値が示すエレメン
トに第1図に示す起動情報、CAW等をセットする。
動作フローである。但し説明を簡単にするためテーブル
QCBは1組だけ設定しであるものとする。このためキ
ューカウントQCがキュー用のエレメント#1〜#15
の個数15に達している場合(QC>15)は新たな入
出力命令を受付けることができないのでコンディション
コードをCC=2にセットする。これはチャネルがビジ
ーであることを示し、CPUに命令の再発行を指示する
。セット後はCHPとCPUとの結合が解かれる(CP
Uリリース)。QC≦14であればメインストレッジM
Sからチャネルプログラムの先頭を指示するCAW (
チャネル・アドレス・ワード)をフェッチする。そして
CAWのフォーマットチェックの結果が不良(NG)で
あればCC−1(これはプログラムチェック結果不良を
示す)にセットし、プログラムチェックを報告して終了
する。良(OK)であればCG−0(これは正常に受付
けたを示す)にセットしてCPUをレリーズする。次い
でキューポインタQPが0であるか判断する。QP−0
は管理用のエレメント#0を指しているのでキューに用
いることはできない5このときはキューポインタQPに
1をセットし、エレメント#1からキューの作成を開始
する。QP≠0であればそのポインタ値が示すエレメン
トに第1図に示す起動情報、CAW等をセットする。
次いで該エレメント、例えば第1図の#4が使用された
ことを示すために、そのマスクデータMASK(本例で
は第0から数えて第4ビツトだけが1となった16ビツ
トのデータ)とキューイングビットQB (このときは
第0ビツトも含めて16ビツトとして扱う)の論理和を
とり、その結果をQBヘセットする。QB−QBVMA
SK (QP)はこれを示す処理ステップである。この
後キューが1つ増えたことを示すためにキューカウント
QCを+1し、またキューポインタQPO値を1つ進め
る。
ことを示すために、そのマスクデータMASK(本例で
は第0から数えて第4ビツトだけが1となった16ビツ
トのデータ)とキューイングビットQB (このときは
第0ビツトも含めて16ビツトとして扱う)の論理和を
とり、その結果をQBヘセットする。QB−QBVMA
SK (QP)はこれを示す処理ステップである。この
後キューが1つ増えたことを示すためにキューカウント
QCを+1し、またキューポインタQPO値を1つ進め
る。
第4図はチャネルプロセッサCHPによるデキュー処理
の動作フローである。この場合は常にキューカウントQ
Cの値を監視していて、QC=0であれば終了(end
) 、QC#0であればデキュー処理へ移る様に単純に
表現しているが、実際にはデキュー要求で起動を受けて
スタートし、キューがたまっていなければ(QC=O)
バイパスするという意味である。デキュー要求を受けた
ときにデキューポインタDQPが0である場合にはそれ
を1にセットするが、これは第3図のQP=0ならlに
セットするのと同じ理由である。このデキューポインタ
DQPの内容をテーブルQCB内で変化させていると内
容が破壊することがあるので、その内容はワークエリア
WORK (第6図参照)ヘコピーしてそこで変化させ
る。DQPWはワークエリアWORK上にコピーされた
デキューポインタを指す。そしてこのワークエリア上の
デキューポインタDQPWをもとにキューイングビット
QBとマスクデータMASK (DQPW)を1ビツト
ずつチェックする。即ちDQPWはこ−では次の処理対
象のみ1で残り(5ビツトは0の16ビツト構成をとっ
ており、これがQBと1ビツトずつアンドをとられる。
の動作フローである。この場合は常にキューカウントQ
Cの値を監視していて、QC=0であれば終了(end
) 、QC#0であればデキュー処理へ移る様に単純に
表現しているが、実際にはデキュー要求で起動を受けて
スタートし、キューがたまっていなければ(QC=O)
バイパスするという意味である。デキュー要求を受けた
ときにデキューポインタDQPが0である場合にはそれ
を1にセットするが、これは第3図のQP=0ならlに
セットするのと同じ理由である。このデキューポインタ
DQPの内容をテーブルQCB内で変化させていると内
容が破壊することがあるので、その内容はワークエリア
WORK (第6図参照)ヘコピーしてそこで変化させ
る。DQPWはワークエリアWORK上にコピーされた
デキューポインタを指す。そしてこのワークエリア上の
デキューポインタDQPWをもとにキューイングビット
QBとマスクデータMASK (DQPW)を1ビツト
ずつチェックする。即ちDQPWはこ−では次の処理対
象のみ1で残り(5ビツトは0の16ビツト構成をとっ
ており、これがQBと1ビツトずつアンドをとられる。
チェック結果がオフ(OF F)で売れば該当するエレ
メントにはキューはないのでDQPWを+1しておく。
メントにはキューはないのでDQPWを+1しておく。
この結果のDQP7り(QP<DQPであれば正常であ
るが、QP2:DQP従ってキューポインタQPの値が
デキューポインタDQPの値以上になるときは誤りであ
るからエラー処理する。一方、キューイングビットQB
とマスクデータMASK (DQPW)ビットとのチェ
ック結果がオン(ON)であればそのビットに対応する
エレメント情報をテーブルQCBから取り出して対応す
るioを起動する。
るが、QP2:DQP従ってキューポインタQPの値が
デキューポインタDQPの値以上になるときは誤りであ
るからエラー処理する。一方、キューイングビットQB
とマスクデータMASK (DQPW)ビットとのチェ
ック結果がオン(ON)であればそのビットに対応する
エレメント情報をテーブルQCBから取り出して対応す
るioを起動する。
そして起動が正常に完了したらワークWORKのデキュ
ーポインタDQPWとテーブルQCB上のデキューポイ
ンタDQPが一致しているか判断する。起動が正常に終
了しないときはポインタDQpwを+1し、QP<DQ
PWを判定し、Yesなら終了、NoならoB−MAs
K(DQPW)の判定ブロックへ戻って次のキュー処理
に入る。
ーポインタDQPWとテーブルQCB上のデキューポイ
ンタDQPが一致しているか判断する。起動が正常に終
了しないときはポインタDQpwを+1し、QP<DQ
PWを判定し、Yesなら終了、NoならoB−MAs
K(DQPW)の判定ブロックへ戻って次のキュー処理
に入る。
つまりこの場合は次の処理対象の起動がうまく行かない
ので、1つとばしてその次の対象の処理に入り、これも
駄目なら更にその次を起動し、最後まで駄目なら対象な
し、終了とする。起動が正常に完了し、且つDQPW=
DQPであるときはテーブルQCB上のポインタDQP
のマスクデータMASK (DQP)を反転し、それと
キューインクヒツトQBの論理積をとってその結果を再
度QBに書込む。これでキューイングビットQBでデキ
ュー処理されたエレメントビットが0になる。
ので、1つとばしてその次の対象の処理に入り、これも
駄目なら更にその次を起動し、最後まで駄目なら対象な
し、終了とする。起動が正常に完了し、且つDQPW=
DQPであるときはテーブルQCB上のポインタDQP
のマスクデータMASK (DQP)を反転し、それと
キューインクヒツトQBの論理積をとってその結果を再
度QBに書込む。これでキューイングビットQBでデキ
ュー処理されたエレメントビットが0になる。
DQPW≠DQPであればDQPW内のマスクデータM
ASK (DQPW)を用いて同様の処理をする。この
後キューカウントQCを−1して終了する。なお本例で
はデキュー要求があると次のキューを1つ処理してエン
ドとしているが、残りの全てのキューを処理してエンド
としてもよい。
ASK (DQPW)を用いて同様の処理をする。この
後キューカウントQCを−1して終了する。なお本例で
はデキュー要求があると次のキューを1つ処理してエン
ドとしているが、残りの全てのキューを処理してエンド
としてもよい。
このようなキューコントロールブロックと呼ばれるテー
ブルQCBをチャネルプロセッサCHP側(第6図の例
ではローカルストレンジLS内)に設けると、毎回メイ
ンストレッジMSにアクセスする必要がないので処理時
間が短縮される。例えば1台のCHPがMSに1回アク
セスする時間がlμsかかるとすれば、伯のCHP或い
はCPUがあるシステムではこれらの共合を考慮せねば
ならず、これを考慮すると1.1 、u Sなどになり
、しかも毎回アクセスせねばならないのでそのn倍にな
る。これに対し本発明のようにすればCHPは自己のL
S内をアクセスするだけでよいので1回のアクセスタイ
ムは80nS程度に短縮される。
ブルQCBをチャネルプロセッサCHP側(第6図の例
ではローカルストレンジLS内)に設けると、毎回メイ
ンストレッジMSにアクセスする必要がないので処理時
間が短縮される。例えば1台のCHPがMSに1回アク
セスする時間がlμsかかるとすれば、伯のCHP或い
はCPUがあるシステムではこれらの共合を考慮せねば
ならず、これを考慮すると1.1 、u Sなどになり
、しかも毎回アクセスせねばならないのでそのn倍にな
る。これに対し本発明のようにすればCHPは自己のL
S内をアクセスするだけでよいので1回のアクセスタイ
ムは80nS程度に短縮される。
発明の効果
以上述べたように本発明によれば、チャネルプロセッサ
側に入出力命令のキューを管理するテーブルを設けたの
で、キュー処理時間が短縮され、CPUの負担が軽減す
る利点が得られる。そしてチャネルプロセッサもマイク
ロコードイビされ、インテリジェンスが与えられるのが
最近の傾向なので、チャネルプロセッサによるキュー処
理は容易である。更に本発明のように入出力命令はキュ
ーテーブルに組込んでCPUとの接続を速やかに解除す
ると、CPU負担を可及的に減少してCPUにその高性
能を充分発揮させることができる。
側に入出力命令のキューを管理するテーブルを設けたの
で、キュー処理時間が短縮され、CPUの負担が軽減す
る利点が得られる。そしてチャネルプロセッサもマイク
ロコードイビされ、インテリジェンスが与えられるのが
最近の傾向なので、チャネルプロセッサによるキュー処
理は容易である。更に本発明のように入出力命令はキュ
ーテーブルに組込んでCPUとの接続を速やかに解除す
ると、CPU負担を可及的に減少してCPUにその高性
能を充分発揮させることができる。
第1図〜第6図は本発明の一実施例を示す図で、第1図
はキュー管理用テーブル(キューコントロールブロック
)の説明図、第2図はチャネルプロセッサのアイドルル
ープを示すフローチャート、第3図はキュー処理の詳細
フローチャート、第4図はデキュー処理の詳細フローチ
ャート、第5図はシステム全体の概略ブロック図、第6
図はチャネルプロセッサの構成図である。 図中、CPUは中央処理装置、MSはメインストレッジ
、CHPはチャネルプロセッサ、CHはチャネル、DV
はデバイス(入出力機器)、C8はコントロールストレ
ッジ、LSはローカルストレンジ、QCBはキューコン
トロールブロック(キュー管理用テーブル)である。 出願人 富士通株式会社 代理人弁理士 青 柳 稔 篤3図
はキュー管理用テーブル(キューコントロールブロック
)の説明図、第2図はチャネルプロセッサのアイドルル
ープを示すフローチャート、第3図はキュー処理の詳細
フローチャート、第4図はデキュー処理の詳細フローチ
ャート、第5図はシステム全体の概略ブロック図、第6
図はチャネルプロセッサの構成図である。 図中、CPUは中央処理装置、MSはメインストレッジ
、CHPはチャネルプロセッサ、CHはチャネル、DV
はデバイス(入出力機器)、C8はコントロールストレ
ッジ、LSはローカルストレンジ、QCBはキューコン
トロールブロック(キュー管理用テーブル)である。 出願人 富士通株式会社 代理人弁理士 青 柳 稔 篤3図
Claims (1)
- 複数のチャネルを管理するチャネルプロセッサを通して
各チャネルの下位に接続された入出力機器に中央処理装
置から入出力命令を与えるシステムで、指定したチャネ
ルまたは入出力機器が使用中であるときに該入出力命令
を一時スタックするキューイング方法において、複数の
入出力命令をスタック可能なキュー管理用テーブルを該
チャネルプロセッサ側に設け、そして中央処理装置から
入出力命令が出される度に所要事項を該テーブルに取り
込み、そしてデキュー要求があるとき該テーブルをアク
セスして処理待ち入出力命令を先頭から実行開始させる
ことを特徴とする入出力命令のキューイング方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP57114246A JPS595359A (ja) | 1982-07-01 | 1982-07-01 | 入出力命令のキユ−イング方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP57114246A JPS595359A (ja) | 1982-07-01 | 1982-07-01 | 入出力命令のキユ−イング方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS595359A true JPS595359A (ja) | 1984-01-12 |
Family
ID=14632945
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP57114246A Pending JPS595359A (ja) | 1982-07-01 | 1982-07-01 | 入出力命令のキユ−イング方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS595359A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02158839A (ja) * | 1988-12-12 | 1990-06-19 | Fujitsu Ltd | データ転送方法 |
| WO2001001262A1 (en) * | 1999-06-24 | 2001-01-04 | Fujitsu Limited | Device controller and input/output system |
-
1982
- 1982-07-01 JP JP57114246A patent/JPS595359A/ja active Pending
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02158839A (ja) * | 1988-12-12 | 1990-06-19 | Fujitsu Ltd | データ転送方法 |
| WO2001001262A1 (en) * | 1999-06-24 | 2001-01-04 | Fujitsu Limited | Device controller and input/output system |
| US6792482B2 (en) | 1999-06-24 | 2004-09-14 | Fujitsu Limited | Device controller and input/output system |
| US7409472B2 (en) | 1999-06-24 | 2008-08-05 | Fujitsu Limited | Device controller and input/output system |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7925864B2 (en) | Method and apparatus for binding shadow registers to vectored interrupts | |
| US4410939A (en) | System for program interrupt processing with quasi-stack of register-sets | |
| US5812868A (en) | Method and apparatus for selecting a register file in a data processing system | |
| US4272819A (en) | Inter-subsystem direct transfer system | |
| US6553487B1 (en) | Device and method for performing high-speed low overhead context switch | |
| US4274138A (en) | Stored program control system with switching between instruction word systems | |
| CN106569891B (zh) | 一种存储系统中任务调度执行的方法和装置 | |
| JPS5841538B2 (ja) | マルチプロセツサシステム ノ ユウセンセイギヨホウシキ | |
| US20070074214A1 (en) | Event processing method in a computer system | |
| JP3284311B2 (ja) | データ処理システムにおける通信バス制御装置およびバス制御方法 | |
| CN115981893A (zh) | 消息队列任务处理方法、装置、服务器及存储介质 | |
| JPS595359A (ja) | 入出力命令のキユ−イング方法 | |
| US6810523B2 (en) | Efficient thread programming using a single callback function | |
| US6084943A (en) | Diagnostic device for a telephone system | |
| US5671424A (en) | Immediate system management interrupt source with associated reason register | |
| US7689991B2 (en) | Bus management techniques | |
| US7434223B2 (en) | System and method for allowing a current context to change an event sensitivity of a future context | |
| JP3008895B2 (ja) | マルチプロセッサの負荷の均一化装置 | |
| US3504347A (en) | Interrupt monitor apparatus in a computer system | |
| JPS6223904B2 (ja) | ||
| JPH04232559A (ja) | システムのプロセッサ間対話方法及び該方法を実施するためのシステム | |
| JPS59225429A (ja) | チヤネル処理装置 | |
| JPH0752393B2 (ja) | データ処理装置 | |
| JPS6186857A (ja) | 入出力制御方式 | |
| JPH01184546A (ja) | シングルチップマイクロコンピュータ |