米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 計算機;電気通信 -> 日本電気株式会社

発明の名称 データ転送装置
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開平9−6704
公開日 平成9年(1997)1月10日
出願番号 特願平7−175508
出願日 平成7年(1995)6月19日
代理人 【弁理士】
【氏名又は名称】河原 純一
発明者 山本 禎則
要約 目的
主記憶装置とバス接続装置内のデータバッファとの間の無効な転送サイクルを削減する。

構成
I/Oバッファテーブル33は、各チャネル制御装置41〜43のメモリリードデータ数を格納する。中央処理装置10は、メモリリードデータ数読込み命令の応答に基づき、I/Oバッファテーブル33にメモリリードデータ数を格納する。チャネル制御回路411は、中央処理装置10から発行される入出力装置51〜53に関するメモリデータリード命令に応じて、バス接続装置30にメモリデータリード要求を発行する。I/Oバッファ制御部31は、メモリデータリード要求の発行元のチャネル制御装置41〜43のメモリリードデータ数をI/Oバッファテーブル33から取得し、その数値に基づくI/Oバッファ部32の割当ておよび主記憶装置20のデータの先読みの制御を行う。
特許請求の範囲
【請求項1】 複数の入出力装置と、前記入出力装置を配下に持つ複数のチャネル制御装置と、中央処理装置と、主記憶装置と、前記チャネル制御装置を接続しているI/Oバスと前記中央処理装置および前記主記憶装置を接続しているシステムバスとを接続し前記主記憶装置と前記チャネル制御装置との間のデータ転送を制御するバス接続装置とを備えるデータ転送装置において、複数の前記チャネル制御装置の各々のメモリリードデータ数を格納する前記バス接続装置内のI/Oバッファテーブルと、前記I/Oバッファテーブルの設定時にメモリリードデータ数読込み命令を発行してその応答に基づいて前記I/Oバッファテーブルにメモリリードデータ数を格納し、前記入出力装置による前記主記憶装置内のデータのリード時にメモリデータリード命令を発行する前記中央処理装置と、前記中央処理装置から発行されるメモリリードデータ数読込み命令に対して自装置のメモリリードデータ数を示す応答を通知し、前記中央処理装置から発行される自装置の配下の入出力装置に関するメモリデータリード命令に応じて前記バス接続装置にメモリデータリード要求を発行する前記チャネル制御装置内のチャネル制御回路と、当該メモリデータリード要求の発行元の前記チャネル制御回路を有する前記チャネル制御装置のメモリリードデータ数を前記I/Oバッファテーブルから取得し、そのメモリリードデータ数の大きさのI/Oバッファ部を割り当て、当該I/Oバッファ部に前記主記憶装置のデータを先読みし、当該I/Oバッファ部内のデータをI/Oバス上に出力する前記バス接続装置内のI/Oバッファ制御部と、前記I/Oバッファ制御部によってI/Oバス上に出力されたデータを入力してリード主体入出力装置に送出する前記チャネル制御装置内のデータ制御回路とを有することを特徴とするデータ転送装置。
【請求項2】 メモリリードデータ数読込み命令が「当該メモリリードデータ数読込み命令の発行元の中央処理装置の識別情報」,「メモリリードデータ数読込みを指示するコマンド」,および「当該メモリリードデータ数読込み命令の発行先のチャネル制御装置の識別情報」からなることを特徴とする請求項1記載のデータ転送装置。
【請求項3】 各チャネル制御装置のメモリリードデータ数が4バイト,64バイト,および256バイトのいずれかであることを特徴とする請求項1または請求項2記載のデータ転送装置。
発明の詳細な説明
【0001】
【産業上の利用分野】本発明は、情報処理システムにおけるデータ転送装置に関し、特に入出力装置が主記憶装置からリードするデータを先読みするためのデータバッファを備えるデータ転送装置に関する。
【0002】
【従来の技術】従来より、この種のデータ転送装置は、入出力装置が主記憶装置からデータをリードする際に、主記憶装置のデータを先読みすることにより、主記憶装置と入出力装置との間のデータ転送性能の向上を図ってきた。
【0003】また、現在のデータ転送装置では、中央処理装置および主記憶装置を接続しているシステムバスと、複数のチャネル制御装置(配下に1以上の入出力装置を有するチャネル制御装置)を接続しているI/O(Input/Output)バスとの間に、相互のバスを接続するバス接続装置が設けられている場合が多い。これは、中央処理装置,主記憶装置およびチャネル制御装置が複数存在するような大規模なシステム(当該データ転送装置に係るシステム。以下同様な意味で「システム」という用語を用いる)においては、チャネル制御装置が中央処理装置および主記憶装置と1対1接続となる構成を有しているのでは、システム性能が低下するからである。
【0004】本発明は、上述のような「データの先読み」が行われ、上述のようなバス接続装置が設けられているデータ転送装置を対象としている。
【0005】従来、この種のデータ転送装置では、先読みの対象となるデータ数は、どのデータ入出力装置が主記憶装置のデータをリードするかにかかわらず、システム固有の一定数となっていた。
【0006】すなわち、従来のデータ転送装置では、主記憶装置のデータをリードする主体である入出力装置(以下、リード主体入出力装置という)を配下に持つチャネル制御装置からのメモリデータリード要求に応じて、バス接続装置内のデータバッファに当該一定数分のデータの先読みが行われていた。
【0007】
【発明が解決しようとする課題】上述した従来のデータ転送装置では、どのデータ入出力装置がリード主体入出力装置であるかにかかわらず先読みの対象となるデータ数がシステム固有の一定数となっているので、チャネル制御装置からのメモリデータリード要求に対してバス接続装置は主記憶装置から当該一定数分のデータを先読みするしかなかった。すなわち、リード主体入出力装置の性能(メモリリードデータ数。入出力装置が主記憶装置からデータをリードする際に連続してリードできるデータ数)がバス接続装置によるデータの先読みで考慮されることはなかった。
【0008】ここで、通常、当該一定数(システム固有の先読みデータ数)は当該データ転送装置に係るシステムに存在する複数の入出力装置のメモリリードデータ数の中で最大のものに合わせて設定される。
【0009】したがって、チャネル制御装置(リード主体入出力装置を配下に持つチャネル制御装置)がデータバッファ内に先読みされたデータの数より少ないデータ数を主記憶装置からリードする場合(リード主体入出力装置のメモリリードデータ数が当該一定数よりも少ない場合)には、主記憶装置とバス接続装置内のデータバッファとの間に無効な転送サイクル(無駄なデータ転送を包含する転送サイクル)が発生するという問題点があった。
【0010】本発明の目的は、上述の点に鑑み、先読みすべきデータ数をチャネル制御装置毎に個別に判断して主記憶装置からバス接続装置内のデータバッファ(I/Oバッファ部)へのデータ転送の制御を行うことにより、主記憶装置とバス接続装置内のデータバッファとの間の無効な転送サイクルを削減することができ、システム性能を向上させることができるデータ転送装置を提供することにある。
【0011】なお、データ転送装置における先読みの制御に関する技術としては、特開平5−151138号公報(データ転送装置)に係る技術が開示されている。しかし、この従来技術は、バス接続装置が存在しない構成のデータ転送装置における先読みの制御に関する技術であり、本願発明とはその構成を異にしている。また、本願発明は、具体的な数値である「メモリリードデータ数」に基づく先読みの制御を行っている点でも、当該公報に係る技術と相違している(当該公報に係る技術では、先読みの制御の基準となる情報として「データ転送性能」という漠然とした情報が用いられている)。
【0012】
【課題を解決するための手段】本発明のデータ転送装置は、複数の入出力装置と、前記入出力装置を配下に持つ複数のチャネル制御装置と、中央処理装置と、主記憶装置と、前記チャネル制御装置を接続しているI/Oバスと前記中央処理装置および前記主記憶装置を接続しているシステムバスとを接続し前記主記憶装置と前記チャネル制御装置との間のデータ転送を制御するバス接続装置とを備えるデータ転送装置において、複数の前記チャネル制御装置の各々のメモリリードデータ数を格納する前記バス接続装置内のI/Oバッファテーブルと、前記I/Oバッファテーブルの設定時にメモリリードデータ数読込み命令を発行してその応答に基づいて前記I/Oバッファテーブルにメモリリードデータ数を格納し、前記入出力装置による前記主記憶装置内のデータのリード時にメモリデータリード命令を発行する前記中央処理装置と、前記中央処理装置から発行されるメモリリードデータ数読込み命令に対して自装置のメモリリードデータ数を示す応答を通知し、前記中央処理装置から発行される自装置の配下の入出力装置に関するメモリデータリード命令に応じて前記バス接続装置にメモリデータリード要求を発行する前記チャネル制御装置内のチャネル制御回路と、当該メモリデータリード要求の発行元の前記チャネル制御回路を有する前記チャネル制御装置のメモリリードデータ数を前記I/Oバッファテーブルから取得し、そのメモリリードデータ数の大きさのI/Oバッファ部を割り当て、当該I/Oバッファ部に前記主記憶装置のデータを先読みし、当該I/Oバッファ部内のデータをI/Oバス上に出力する前記バス接続装置内のI/Oバッファ制御部と、前記I/Oバッファ制御部によってI/Oバス上に出力されたデータを入力してリード主体入出力装置に送出する前記チャネル制御装置内のデータ制御回路とを有する。
【0013】
【作用】本発明のデータ転送装置では、バス接続装置内のI/Oバッファテーブルが複数のチャネル制御装置の各々のメモリリードデータ数を格納し、中央処理装置が以下のA■およびA■の処理を行い、チャネル制御装置内のチャネル制御回路が以下のB■およびB■の処理を行い、バス接続装置内のI/Oバッファ制御部が以下のC■〜C■の処理を行い、チャネル制御装置内のデータ制御回路がI/Oバッファ制御部によってI/Oバス上に出力されたデータを入力してリード主体入出力装置に送出する。
■ I/Oバッファテーブルの設定時に、メモリリードデータ数読込み命令を発行してその応答に基づいてI/Oバッファテーブルにメモリリードデータ数を格納する。
■ 入出力装置による主記憶装置内のデータのリード時に、メモリデータリード命令を発行する。
■ 中央処理装置から発行されるメモリリードデータ数読込み命令に対して、自装置のメモリリードデータ数を示す応答を通知する。
■ 中央処理装置から発行される自装置の配下の入出力装置に関するメモリデータリード命令に応じて、バス接続装置にメモリデータリード要求を発行する。
■ 当該メモリデータリード要求の発行元のチャネル制御回路を有するチャネル制御装置のメモリリードデータ数を、I/Oバッファテーブルから取得する。
■ そのメモリリードデータ数の大きさのI/Oバッファ部を割り当てる。
■ 当該I/Oバッファ部に主記憶装置のデータを先読みする。
■ 当該I/Oバッファ部内のデータをI/Oバス上に出力する。
【0014】
【実施例】次に、本発明について図面を参照して詳細に説明する。
【0015】図1は、本発明のデータ転送装置の一実施例の構成を示すブロック図である。
【0016】本実施例のデータ転送装置は、中央処理装置10と、主記憶装置20と、バス接続装置30と、複数(ここでは、3)のチャネル制御装置41〜43と、各チャネル制御装置41〜43の配下にそれぞれ1以上(ここでは、3)接続されている入出力装置51〜59と、システムバス100と、I/Oバス200とを含んで構成されている。なお、複数のチャネル制御装置および複数の入出力装置の数が、図1に示す数(3および9)に限られるものでないことはいうまでもない。また、中央処理装置10および主記憶装置20の数は複数であってもかまわない。
【0017】中央処理装置10は、演算処理を行う装置であり、ある入出力装置(入出力装置51〜59のいずれか)に関する入出力処理(本発明で対象とするメモリデータリード処理もその1つである)を行う際にバス接続装置30を介して当該入出力装置に対応したチャネル制御装置(入出力装置51〜53を配下に持つチャネル制御装置41,入出力装置54〜56を配下に持つチャネル制御装置42,および入出力装置57〜59を配下に持つチャネル制御装置43のいずれか)に対して入出力命令(本発明で対象とするメモリデータリード命令もその1つである)を発行する。
【0018】主記憶装置20は、システムバス100を介して中央処理装置10およびバス接続装置30とバス接続されており、バス接続装置30からの要求に従いバス接続装置30に対してデータを送出する。
【0019】バス接続装置30は、中央処理装置10および主記憶装置20を接続しているシステムバス100と、チャネル制御装置41〜43を接続しているI/Oバス200とを接続する装置である。
【0020】このバス接続装置30は、主記憶装置20からリード主体入出力装置にリードされるデータの先読みを制御するI/Oバッファ制御部31と、先読みされたデータを格納するためのデータバッファであるI/Oバッファ部32と、中央処理装置10からの指示(メモリリードデータ数読込み命令)に基づいて各チャネル制御装置41〜43のメモリリードデータ数(当該チャネル制御装置の配下の入出力装置のメモリリードデータ数の中の最大数)を格納するI/Oバッファテーブル33とを含んで構成されている。
【0021】I/Oバッファ制御部31は、あるチャネル制御装置(チャネル制御装置41〜43のいずれか)からのメモリデータリード要求が発生した場合に、当該チャネル制御装置のメモリリードデータ数をI/Oバッファテーブル33の参照により取得し、そのメモリリードデータ数に応じたデータを主記憶装置20から先読みしてI/Oバッファ部32に格納する。
【0022】I/Oバッファテーブル33は、チャネル制御装置41のメモリリードデータ数を格納するI/Oテーブル331と、チャネル制御装置42のメモリリードデータ数を格納するI/Oテーブル332と、チャネル制御装置43のメモリリードデータ数を格納するI/Oテーブル333とから構成されている。なお、I/Oテーブルの数は、I/Oバス200に接続されているチャネル制御装置の数と同数であり、図1における3に限られるものでないことはいうまでもない。
【0023】チャネル制御装置41,42および43は、中央処理装置10からの入出力命令に従って、自装置の配下に接続されている入出力装置51〜53,54〜56,および57〜59に関するデータの入出力の制御を行う装置である。
【0024】チャネル制御装置41〜43は、中央処理装置10からのメモリデータリード命令(入出力命令の1つ)に基づくデータ転送が行われる際に、メモリデータリード命令で指示されるデータ数がリード主体入出力装置の転送性能(メモリリードデータ数)を越えている場合に、転送サイクルをいくつかに分割し、1回の転送サイクル毎にI/Oバス200の使用権を要求し、当該1回の転送サイクルが終了するとI/Oバス200の使用権を放棄する(1回のバス使用要求で連続して複数の転送サイクルを発生させるのではない)。
【0025】各チャネル制御装置(ここでは、チャネル制御装置41で代表して説明する)は、チャネル制御回路411と、データ制御回路412とを含んで構成されている(他のチャネル制御装置42および43も同様の回路を有している)。
【0026】チャネル制御回路411は、中央処理装置10からのメモリリードデータ数読込み命令に対して、自装置(自己を有するチャネル制御装置41)の配下に接続されている入出力装置51〜53のメモリリードデータ数の中の最大数を自装置のメモリリードデータ数として応答する機能を有している。
【0027】データ制御回路412は、I/Oバス200上に出力されるデータ(自装置の配下に接続されている入出力装置51〜53のいずれかがリード主体入出力装置である場合の主記憶装置20からのデータ)を入力し、そのデータをリード主体入出力装置に送出する機能を有している。
【0028】図2は、中央処理装置10からチャネル制御装置41〜43に発行されるメモリリードデータ数読込み命令の構成と、その応答の構成とを示す図である。
【0029】メモリリードデータ数読込み命令は、EPU CH#(当該メモリリードデータ数読込み命令の発行元の中央処理装置(ここでは、中央処理装置10)の識別情報。中央処理装置が複数存在するシステムでも対応できるようにするため等の情報である)と、CMD(メモリリードデータ数読込みを指示するコマンド)と、PCU CH#(当該メモリリードデータ数読込み命令の発行先のチャネル制御装置の識別情報)とを含んでいる。
【0030】メモリリードデータ数読込み命令の応答は、当該メモリリードデータ数読込み命令の発行先のチャネル制御装置(チャネル制御装置41〜43のいずれか)のメモリリードデータ数を示す制御データを含んでいる。なお、ここでは、制御データは、当該応答の最下位1バイトによって表され(他の3バイトはRFU(Reserve For Use)とされる)、当該1バイト中の下位2ビットによってメモリリードデータ数が表されるものとする。
【0031】中央処理装置10は、各チャネル制御装置41〜43に、図2に示すメモリリードデータ数読込み命令を発行し、図2に示す応答中の制御データが“00h”のときには4バイトを当該応答の発行元(当該メモリリードデータ数読込み命令の発行先)のチャネル制御装置のメモリリードデータ数と判断し、当該制御データが“01h”のときには64バイトを当該メモリリードデータ数と判断し、当該制御データが“10h”のときには256バイトを当該メモリリードデータ数と判断する(図2参照)。その上で、バス接続装置30内のI/Oバッファテーブル33中の該当するI/Oテーブル(I/Oテーブル331〜333のいずれか)に当該メモリリードデータ数を格納する。
【0032】なお、本実施例では、メモリリードデータ数は4バイト,64バイトおよび256バイトのいずれかであるものとしたが、本発明のデータ転送装置で設定可能なメモリリードデータ数の数値および種類がこれらに限られるものでないことはいうまでもない(ただし、本実施例における3種類の数値は実際の運用上からも妥当なものである)。
【0033】図3は、本実施例のデータ転送装置の処理を示す流れ図である。
【0034】図3(a)は、メモリリードデータ数読込み命令発行時(I/Oバッファテーブル32を設定する時)における本実施例のデータ転送装置の処理を示す流れ図である。この処理は、メモリリードデータ数読込み命令発行ステップ301と、応答通知ステップ302と、メモリリードデータ数格納ステップ303とからなる。
【0035】図3(b)は、メモリデータリード命令発行時(入出力装置51〜59のいずれかが主記憶装置20からデータをリードする時)における本実施例のデータ転送装置の処理を示す流れ図である。この処理は、メモリデータリード命令発行ステップ304と、メモリデータリード要求発行ステップ305と、I/Oテーブル参照ステップ306と、データ転送制御ステップ307と、I/Oバス上データ送出ステップ308と、終了報告通知ステップ309とからなる。
【0036】次に、このように構成された本実施例のデータ転送装置の動作について説明する。
【0037】第1に、メモリリードデータ数読込み命令発行時(システム立上げ時等においてI/Oバッファテーブル32を設定する時)の動作について説明する(図3(a)参照)。
【0038】中央処理装置10は、システムバス100,バス接続装置30およびI/Oバス200を介して、各チャネル制御装置41〜43に対して(ここでは、「チャネル制御装置41に対して」の場合で代表して説明する)、図2に示すようなメモリリードデータ数読込み命令を発行する(ステップ301)。
【0039】チャネル制御装置41内のチャネル制御回路411は、このメモリリードデータ数読込み命令に応じて、自装置(自己を含むチャネル制御装置41)のメモリリードデータ数(自装置の配下に接続されている入出力装置51〜53のメモリリードデータ数の中の最大数)を示す応答(図2参照)を、I/Oバス200,バス接続装置30およびシステムバス100を介して中央処理装置10に通知する(ステップ302)。
【0040】中央処理装置10は、その応答中のメモリリードデータ数をバス接続装置30内のI/Oバッファテーブル33中のI/Oテーブル331(チャネル制御装置41に対応するI/Oテーブル)に格納する(ステップ303)。
【0041】このような処理が、I/Oバス200に接続されている全てのチャネル制御装置について行われる。すなわち、チャネル制御装置42のメモリリードデータ数はI/Oテーブル332(チャネル制御装置42に対応するI/Oテーブル)に格納され、チャネル制御装置43のメモリリードデータ数はI/Oテーブル333(チャネル制御装置43に対応するI/Oテーブル)に格納される。
【0042】第2に、メモリデータリード命令発行時(入出力装置(入出力装置51〜59のいずれか)が主記憶装置20のデータをリードする時)の動作について説明する(図3(b)参照)。なお、ここでは、入出力装置51がリード主体入出力装置である場合の動作について説明する。
【0043】中央処理装置10は、システムバス100,バス接続装置30およびI/Oバス200を介して、チャネル制御装置41(リード主体入出力装置である入出力装置51を配下に持つチャネル制御装置)に対して、リード主体入出力装置を特定したメモリデータリード命令を発行する(ステップ304)。
【0044】チャネル制御装置41内のチャネル制御回路411は、当該メモリデータリード命令を解読し、当該メモリデータリード命令が入出力装置51をリード主体入出力装置とするものであることを認識すると、I/Oバス200を介してバス接続装置30に対してメモリデータリード要求(主記憶装置20から入出力装置51にデータを転送するためのメモリデータリード要求)を発行する(ステップ305)。
【0045】バス接続装置30内のI/Oバッファ制御部31は、チャネル制御装置41からの当該メモリデータリード要求を受け取ると、当該メモリデータリード要求がチャネル制御装置41からのものであることに基づき、チャネル制御装置41に対応するI/Oテーブル331を参照する(ステップ306)。
【0046】さらに、I/Oバッファ制御部31は、ステップ306で参照したI/Oテーブル331に格納されているメモリリードデータ数に基づき、当該メモリデータリード命令の対象となる主記憶装置20内のデータ(メモリデータ)に関するデータ転送の制御を以下の■〜■に示すように行う(ステップ307)。
【0047】■ 当該メモリリードデータ数分のデータを格納するためのデータバッファであるI/Oバッファ部32をバス接続装置30内に割り当てる。
【0048】■ システムバス100を介して、当該メモリリードデータ数分のデータを主記憶装置20から■で割り当てたI/Oバッファ部32に先読みする。
【0049】■ 同時に、I/Oバス200上にI/Oバッファ部32内のデータを出力する。
【0050】チャネル制御装置41内のデータ制御回路412は、I/Oバス200上に出力されているデータを入力し、そのデータをリード主体入出力装置である入出力装置51に送出する(ステップ308)。
【0051】チャネル制御装置41内のチャネル制御回路411は、以上のようにして当該メモリデータリード命令によって指示されるデータ転送が終了すると(データ転送の対象のデータ量が大きくて複数の転送サイクルによって当該データ転送が実現される場合には全ての転送サイクルが終了した後に)、I/Oバス200,バス接続装置30およびシステムバス100を介して、その旨を示す終了報告を中央処理装置10に対して通知する(ステップ309)。
【0052】中央処理装置10は、この終了報告を受け取ると、当該メモリデータリード処理に後続する処理の実行に制御を移す。
【0053】
【発明の効果】以上説明したように、本発明のデータ転送装置では、各チャネル制御装置のメモリリードデータ数をI/Oバッファテーブルに設定するためのメモリリードデータ数読込み命令をサポートし、メモリデータリード命令発行時に当該I/Oバッファテーブルを参照することにより、どの入出力装置がリード主体入出力装置であるかということを考慮して先読みすべき適切なデータ数をバス接続装置が判断できるようになる。したがって、本発明によると、主記憶装置とバス接続装置内のデータバッファ(I/Oバッファ部)との間の無効な転送サイクルを削減することができ、システム性能を向上させることができるという効果が生じる。




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013