(57)【特許請求の範囲】
【請求項１】
ホストコンピュータとデータを格納するデータ記憶装置との間のデータの入出力制御を行うファイル制御装置であって，
前記ホストコンピュータから送信されるキーデータを保持するバッファと，
データ部，キーデータ部，および前記データ部と前記キーデータ部との長さの情報を持つカウント部から構成されるレコード部と，前記カウント部のデータフォーマットにおける位置を示すオフセット情報を持つ管理データ部とが格納されたデータ記憶装置に読み出すデータあるいは書き込むデータを保持するメインストレージと，
前記メインストレージに読み出すデータの大きさの単位であるデータブロック内の複数の前記管理データ部，前記カウント部，前記データ部および前記キーデータ部をそれぞれにまとめて前記メインストレージの連続した領域に読み出し，
前記管理データ部のオフセットから前記カウント部が格納されたアドレス情報を求め，
前記求められた前記カウント部の前記キーデータ部のキーデータの長さの情報から前記キーデータを特定し，
前記特定された前記キーデータと前記ホストコンピュータから送信された前記キーデータとの一致を判定し，
前記一致するキーデータに対応するデータ部のデータを読み出して前記ホストコンピュータに送信する，あるいは前記ホストコンピュータから受信したデータを前記一致するキーデータに対応するデータ部の領域に書き込むことを特徴とするファイル制御装置。
【請求項２】
処理の対象のデータトラックに対する前記データの先頭アドレスと処理を開始するデータトラック番号とから前記メインストレージに格納する前記データ部および前記キーデータ部の初期アドレスを求め，
前記メインストレージ生成部に前記データ部および前記キーデータ部の初期アドレスとして与えることを特徴とする請求項１に記載のファイル制御装置。
【請求項３】
処理する対象のカウント部のメインストレージアドレス初期値を保持するレジスタと，データ部およびキーデータ部のメインストレージアドレス初期値を保持するレジスタと，カウント部のキーデータ部のデータの大きさの情報を格納する位置とデータ部のデータの大きさの情報を格納する位置を保持し，メインストレージから読み出されるカウント部のデータからキー長を求めるカウント部解析部とを備え，
キーデータの比較において，キーデータ部のデータを順次にメインストレージから読み出して前記キーデータの一致を生じるまで比較し，前記キーデータの一致がない場合には前記キーデータの大きさの情報まで比較する，
ことを特徴とする請求項２に記載のファイル制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は，ダスド（ＤＡＳＤ）等のデータ記憶装置の入出力制御を行うファイル制御装置に関する。
【０００２】
【従来の技術】
図２１は，従来技術の説明図であって，システム構成の例を示す。
図２１において，
３１０はホストコンピュータである。
【０００３】
３１１はファイル制御装置である。
３１２はチャネル装置である。
３１３はチャネルアダプタである（以後ＣＡと称する）。
【０００４】
３１４はバスである。
３１５はメインストレージであって，ダスド３１７から読み出したデータもしくはダスド３１７より書き込むためにホストコンピュータ３１０から転送されるデータを保持するものである（以後ＭＳと称する）。
【０００５】
３１６はデータアダプタである（以後ＤＡと称する）。
図２１の構成において，ホストコンピュータ３１０から転送されるデータをダスド３１７に書き込む場合には，ＣＡは書き込むデータのキーを保持し，ＭＳに保持されるデータのキーを比較し，一致したキーのＭＳのデータを書き込むデータで置き換え，ＭＳに格納する。ＤＡはそのＭＳのデータをダスドに書き込む。
【０００６】
また，ダスドのデータを読み出してホストコンピュータに転送する場合には，ＤＡはダストのデータを１トラック単位に読み出してＭＳに書き込む。ＣＡはホストから送られてきた転送データのキーを保持し，ＭＳに保持されたデータのキーと比較する。そして，キーの一致するデータをＭＳから読み出してホストコンピュータに転送する。
【０００７】
図２２はデータ記憶装置に記憶する従来のデータ構成を示す。
図２２ (a)は１トラック（１６Ｋ）のデータフォーマットであって，１ブロック４Ｋバイトのデータブロック（ＤＢ（００），ＤＢ（０１），・・・，ＤＢ（ｎ），・・・，ＤＢ（１４），ＤＢ（１５））が１６個集まって，全体で１６Ｋバイトで構成される。
【０００８】
図２２ (b)は１データブロック（ＤＢ）の詳細構成であり，第ｎ番目のデータブロック（ＤＢ（ｎ））を示す。
１データブロックは６４セグメントで構成され，１セグメントは６４バイトの大きさを持つ。そして，データブロック（以下，ＤＢと称する）の管理データブロックであるＤＢＩＤを持つ（図はｎ番目のＤＢのＩＤをもつ意味でＤＢＩＤ（ｎ）で表している）。ＤＢのレコード部はカウント部，キー部（ＫＥＹ），データ部（ＤＡＴＡ）により構成され，ＤＢＩＤ部はそのデータブロックにおけるレコードのオフセットを持つ（レコードの先頭はカウント部であるので，オフセットはカウント部（ＣＯＵＮＴ）のある領域のオフセット値である）。図２２は，前のデータブロックの続きのデータである第ｍ−１番目のレコードのデータ（レコード（ｍ−１）／ＤＡＴＡ  （Ｂ））が続き，次に，第ｍ番目のレコード（ｍ）が続く。レコード（ｍ）はカウント部（レコード（ｍ）／ＣＯＵＮＴ），レコード（ｍ）／ＫＥＹ，レコード（ｍ）／ＤＡＴＡにより構成される。図２２ではキー部（ＫＥＹ），データ部（ＤＡＴＡ）が１セグメントで構成されるように図示されているが，キー部，データ部の長さは一定でない（但し，６４バイトの整数倍ではある）。カウント部はレコードのキー部（ＫＥＹ）とデータ（ＤＡＴＡ）の長さを持つ領域である。ＤＢＩＤ（ｎ）はレコードの先頭位置のオフセット値を持つ（図２２では，レコード（ｍ）のオフセット値，レコード（ｍ＋１）のオフセット値を持つ）。
【０００９】
図２３は従来のＭＳ上でのフォーマットであり，１トラックのデータフォーマットである。
ＭＳには，ＤＡにより１トラック単位にデータが読み出される。そして，図２２に示すように，図２２で説明したデータ記憶装置上でのデータフォーマットと同じフォーマットでＭＳ上に展開される。
【００１０】
３５１はＤＢＩＤ（００）の１データブロックである。
３５２はＤＢＩＤ（０１）の１データブロックである。
３５３はＤＢＩＤ（１５）の１データブロックである。
【００１１】
上記のような，システム構成およびデータフォーマットにおいて，ホストコンピュータとダスド間のデータ転送（書き込みおよび読み出し）において，ホストコンピュータから送られてくるＫＥＹとＭＳから読み出したデータのＫＥＹが一致したレコードのみ転送処理される。このＫＥＹ部の一致確認の動作をＳＥＲＣＨ−ＫＥＹと称する。
【００１２】
従来のこのＳＥＲＣＨ−ＫＥＹ動作は次の通りである。
ＤＡがＭＳにデータを展開した後にＣＡはホストコンピュータから受信したＫＥＹとＭＳから読み出したＫＥＹを比較して，一致するＫＥＹを検索する。ホストコンピュータから読み出したＫＥＹとＭＳから読み出したＫＥＹが不一致の場合にはファームウェア（図示せず）が次のレコードのＫＥＹの位置（ＭＳアドレス）を求めるため，直前に読み出したＫＥＹをもつレコードからカウント部（ＣＯＵＮＴ）を読み出して，その中に含まれるＫＥＹ長，ＤＡＴＡ長を調べ，次のレコードのＫＥＹの位置（ＭＳアドレス）を求める。
【００１３】
例えば，図２３の場合，まずＤＢＩＤ（００）のレコード（００）のカウント部のオフセット位置を求める。レコード（００）の位置はＣＯＵＮＴ部の次にあるので，レコード（００）のＫＥＹ部の内容を取り出し，ホストコンピュータから送られてきたＫＥＹと比較する。そして，不一致であるとファームウェアにより，レコード（００）のＣＯＵＮＴ部によりレコード（００）のＫＥＹ長，レコード（００）のＤＡＴＡ長を調べ，次のレコード（０１）のＣＯＵＮＴ部の内容を調べる。そして，そのデータに含まれるＫＥＹ部のアドレスを求め，レコード（０１）のＫＥＹ部の内容を取り出し，ホストコンピュータから送られてきたＫＥＹと比較する。
【００１４】
この処理を繰り返し，ＫＥＹが一致するレコードを検索する。
【００１５】
【発明が解決しようとする課題】
従来のシステムではＳＥＲＣＨ−ＫＥＹの処理は，全てファームウェアによりなされるものであり，しかも，上記のように，ＭＳ上のフォーマットも，ＫＥＹ部が連続するようにフォーマットされていないので，ステップ数も上記のように多いものであり，動作が遅かった。
【００１６】
本発明は，ハードウェアにより高速にＳＥＲＣＨ−ＫＥＹ動作を行うことのできるファイル制御装置を提供することを目的とする。
【００１７】
【課題を解決するための手段】
本発明は，メインストレージに格納するデータフォーマットを変更し，連続的にアドレスできるようにしてハードウェアによりＳＥＲＣＨ−ＫＥＹ動作を行うことができるようにした。
【００１８】
本発明は，ホストコンピュータから送信されるデータのキーを保持するバッファと，データ記憶装置の読み出しもしくは書き込みデータを保持するメインストレージと，メインストレージに保持されたデータのキーとホストコンピュータ側のデータのキーを比較し，キーの一致もしくは不一致を判定するキー比較部とを備え，データ記憶装置のデータ入出力制御を行うファイル制御装置において，
データ記憶装置に保持するデータフォーマットはキー・データ部と，キー・データ部のデータ長の情報をもつカウント部と，カウント部のデータフォーマットにおける位置を示すオフセット情報をもつデータ管理部とにより構成され，
複数の管理データ部と複数のカウント部と複数のキー・データ部をそれぞれにまとめてメインストレージに格納するためのメインストレージアドレスを生成するＭＳアドレス生成部を備え，
複数の管理データ部および複数のカウント部および複数のキー部とカウント部をそれぞれにまとめてメインストレージに格納するようにした。
【００１９】
図１は本発明の基本構成を示す。
図１において，
Ｈはホストコンピュータである。
【００２０】
１はファイル制御装置である。
２はデータ記憶装置である。
３はデータバッファであって，データの書き込みもしくは読み出しにおいてデータ記憶装置２から読み出したデータもしくは記憶装置に書き込むデータを保持するものである。また，ＳＥＲＣＨ−ＫＥＹ動作においてＭＳ（５）から読み出したキー（ＫＥＹ）データを保持するものである。
【００２１】
４は制御回路であって，データ記憶装置２に対するデータの書き込みもしくは読み出し制御を行うものである。
５はメインストレージ（ＭＳ）であって，データ記憶装置２から読み出したデータもしくはデータ記憶装置２に書き込むデータを保持するものである。
【００２２】
６はキー比較部であって，ホストコンピュータから転送されたＫＥＹとＭＳ（５）に保持されているデータのＫＥＹを比較するものである。
７はチャネルデータバッファであって，ホストコンピュータから転送されたＫＥＹを保持するものである。
【００２３】
１１はオフセット値検出部であって，データ記憶装置２から読み出されるデータのレコードのオフセット値を検出し，レコード番号，オフセット値等を保持するものである。
【００２４】
１２はＭＳアドレス生成部であって，オフセット値検出部１１の検出したオフセット値をもとに，メインストレージに格納するデータのＤＢＩＤ部，カウント部，キー部，データ部のアドレスを生成するものである。
【００２５】
１３はカウント部解析部であって，カウント部を解析し，ＳＥＲＣＨ−ＫＥＹの動作において，メインストレージ５から取り出すＫＥＹのアドレスを生成するものである。
【００２６】
１４は解析情報初期値保持部であって，ＭＳアドレス生成部のアドレス生成のために必要な各種情報の初期値，カウント部解析部の解析に必要な情報の初期値等を保持するものである。
【００２７】
１５はＭＳ入出力回路であって，ＭＳ（５）にデータを書き込むかもしくはＭＳ（５）からデータを読み出す回路である。
２０は制御部であって，解析情報初期値保持部１４に保持する解析情報のセット，制御回路４の入出力等の制御を行うものである。
【００２８】
図１の構成の動作は後述する。
図２ (a)は本発明のＭＳに展開するデータフォーマットの例である。
図２ (a)において，３１はメインストレージ（ＭＳ）に展開された１トラックのデータである。格納するレコードのレコード番号がレコード（００）〜レコード（Ｎ）であるとする。各レコードのＤＢＩＤ（ＤＢＩＤ（００），ＤＢＩＤ（０１），・・・・，ＤＢＩＤ（１５）を保持するＤＢＩＤ保持領域，各レコードのカウント部を保持するカウント保持領域（図はレコード（００）のカウント部（レコード（００）ＣＯＵＮＴ），レコード（０１）のカウント部，・・・，レコード（Ｎ）のカウント部により構成される場合を示す），各レコードのキー・データ部（図はレコード番号Ｎのキー・データ部（レコード（Ｎ）ＤＡＴＡ，レコード（Ｎ）ＫＥＹ）），・・・・，レコード（００）ＤＡＴＡ，レコード（００）ＫＥＹにより構成される場合を示す）により構成される。ＤＢＩＤ保持領域は，各データブロックのＤＢＩＤを連続したアドレスで保持し，カウント部保持領域は各レコードのカウント部を連続したアドレスで保持し，キー／データ保持領域は各レコードのキー・データ部を連続したアドレスで保持する。
【００２９】
図２ (b)は，図２ (a)のデータフォーマットでメインストレージにデータを展開するのに必要なアドレスの初期アドレスを示す。
初期アドレスはトラックの先頭アドレス（ＭＳ初期アドレスＴであって，ＤＢＩＤ保持領域の先頭アドレス），カウント部のアドレスの初期値（ＭＳアドレス初期値Ｃであって，カウント部保持領域の先頭アドレス），キ−／データ部の初期値Ｋ（ＭＳアドレスＫであって，キー／データ保持領域の初期値であって，図２ (b)はトラックの最終アドレスの場合を例として示す）を初期値として与えることを示す。
【００３０】
なお，図２のデータフォーマットは例であって，各保持領域をハードウェアにより連続的に読み出せれるように構成されていれば良く，本発明がこのフォーマットの構成に限定されるものではない。
【００３１】
図２のデータフォーマットの例を参照して，図１の本発明の基本構成の動作を説明する。
(1) データ記憶装置からデータを読み出してメインストレージ（ＭＳ）に格納する場合
制御回路４によりデータ記憶装置からデータが，例えば，１６バイトを１ワード単位として１ワードずつ読み出され，データバッファ３に保持される（フォーマットは，図２３の従来のフォーマットである）。その間，オフセット値検出部１１は読み出されたデータのＤＢＩＤ部を検出し，そこに含まれるカウント部のオフセットを求める。一方，解析情報初期値保持部１４には，図２ (b)のＭＳアドレス初期値Ｔ（ＤＢＩＤ保持領域の開始アドレス），ＭＳアドレス初期値Ｃ（カウント部保持領域の開始アドレス），ＭＳアドレス初期値Ｋ（キー・データ部の開始アドレス）を保持する。そして，ＭＳアドレス生成部１２は解析情報初期値保持部１４に保持された各初期値をもとに，データバッファから順次に読み出されるＤＢＩＤ部，カウント部，キー・データ部のアドレスを計算して求める。ＭＳ入出力回路１５は，データバッファ３から順次にとり出されるデータを入力し，ＭＳアドレス生成部１２の計算したアドレスに取り出したデータを格納し，図２のデータフォーマットになるように格納する。このようにして図２３のデータフォーマットを図２のデータフォーマットに変換してＭＳ５に格納する。
【００３２】
(2) メインストレージ（ＭＳ）のデータをデータ記憶装置２に書き込む場合
ＭＳ５からデータを読み出してデータバッファ３に書き込む場合には，データバッファ３に，図２３のデータフォーマットで順次データが格納されるように，ＭＳアドレスを求め，そのアドレスのデータをＭＳ５から取り出してデータバッファ３に格納する。
【００３３】
解析情報初期値保持部１４には，(1) の書き込みの場合と同様に，図２のＭＳアドレス初期値Ｔ，ＭＳアドレス初期値Ｃ，ＭＳアドレス初期値Ｋを保持する。そこで，例えば，ＤＢＩＤ（００）から格納するとすると，まず，ＭＳに対して，ＤＢＩＤ（例えば，ＤＢＩＤ（００））の読み出し要求がなされる。ＭＳアドレス生成機能はＭＳにおけるそのアドレス計算をする。ＭＳ（５）はそのアドレスのＤＢＩＤを取り出して，データバッファ３に格納する。次にカウント部（レコード（００）ＣＯＵＮＴ）のリード要求がなされる。そして，ＭＳアドレス生成部１２はそのアドレスを計算し，ＭＳ入出力回路１５はそのアドレスのカウント部のデータを取り出し，データバッファ３のＤＢＩＤ（００）の次に格納する。同様に，レコード（００）ＫＥＹ，レコード（００）ＤＡＴＡ等のアドレスを順次に求め，ＭＳから取り出し，図２２のデータフォーマットでデータバッファ３に保持する。データバッファ３に格納されたデータは制御回路４によりデータ記憶装置２に書き込まれる。
【００３４】
(3) ＳＥＲＣＨ−ＫＥＹの動作
解析情報初期値保持部１４にＭＳアドレス初期値Ｃ（カウント部のＭＳアドレス初期値），ＭＳアドレス初期値Ｋ（キー・データ部のアドレス初期値）を保持する。ホストコンピュータＨから転送されるＫＥＹはデータバッファ３に保持される。一方，カンウト部解析部１３はカウント部のアドレス初期値Ｃ（ＭＳアドレス初期値Ｃ）のカウント部からキー長／データ長を求める。カウント部解析部１３からキー・データ部のアドレス初期値Ｋ（ＭＳアドレス初期値Ｋ）がＭＳ５にあたえられるので，ＭＳ入出力回路１５によりＭＳ５からそのアドレスのＫＥＹが取り出され，キー比較部６に入力される。
【００３５】
キー比較部６はホストコンピュータから転送されたキーとＭＳ５から取り出されたキーを比較する。キーが一致すれば，一致したキーのレコードに対して続く処理がなされる。キーが一致しなければ，カウント部解析部１３は先に求めたキー・データ部のデータ長を基に次のレコードのキー部のアドレスを求める。このとき，そのレコードのキー長，データ長を求めて保持する。そして，いま求めたキー部のアドレスはＭＳ入出力回路１５に転送され，ＭＳ５からそのアドレスのキーが取り出され，キー比較部６に転送される。キー比較部６において，ホストコンピュータから転送されたキーとＭＳ５から取り出されたキーと比較される。以後の動作は前述した前回のキーの比較と同様である。
【００３６】
本発明によれば，メインストレージ（ＭＳ）に保持されるデータはＤＢＩＤ部，カウント部，キー・データ部がそれぞれに連続した領域に保持され，ＳＥＲＣＨ−ＫＥＹ動作におけるＫＥＹの取り出しと比較をハードウェアにより連続的に高速に行うことができる。そのため，ファイル制御の処理の効率を大幅に向上させることができる。
【００３７】
【発明の実施の形態】
図３，図４，図５，図６は本発明のＤＡの実施例であって，ＤＡからＭＳにデータ展開するための装置構成を示す。
【００３８】
図３，図４はＤＡのモジュール構成である。
図３，図４において，
３２はＤＡＳＤである。
【００３９】
３３はＤＡＳＤ制御回路であって，ＤＡＳＤ３２のデータ入力を制御する汎用制御回路である。
３４はカウンタであって，バイト単位に同期化バッファ３５に転送するデータ数をカウントするものである。
【００４０】
３５は同期化バッファであって，ＤＡＳＤ３２から転送されるデータもしくはＤＡＳＤ３２に転送するデータを保持するものである。
３６はデコーダ（＊Ａ）であって，カウンタ３４の出力をデコードするものである。カウンタ３４が４０９６バイト（６４セグメント）カウントされるとセットされ，ＤＢＩＤバッファ５０のセットタイミングを制御するものである。
【００４１】
３７はアンド回路であって，デコーダ３６の出力とＤＡＳＤ制御回路の制御信号出力を入力して論理積をとり，両者がＨの時，ＳＥＴ信号をＤＢＩＤバッファ５０に入力するものである。
【００４２】
３８はアンド回路であって，デコーダ３６の出力とカウンタ３４の出力を入力して論理積をとり，デコーダ（＊Ａ）３６の出力がＨの時，カウンタ３４のカウント値（アドレス）をＤＢＩＤバッファ５０のＡＤＲ（Ｉ）（アドレス入力）に入力するものである。
【００４３】
３９はＡＬＵであって，カウンタ３４の出力とカウンタ４０の出力の差をとり，その差が６４になった時を求め，それ以後は，カウンタ３４のカウントする１バイト毎に１ずつカウント信号を出力するものである。即ち，カウンタ３４が６４バイトをカウントした後にカウンタ４０のカウントを開始させるものである。
【００４４】
４０はカウンタであって，カウンタ３４が６４バイトをカウントした後に出力されるＡＬＵ３９のバイト数の出力をカウントするものである（カウンタ３４のカウント値より６４少ないカウント値となる）。
【００４５】
４１はパルス回路である（動作は図７を参照）。
４２はデータバッファであって，同期化バッファ３５から出力されるデータを一時保持するものである。
【００４６】
４３はデコーダ（＊Ｂ）であって，カウンタ４０の出力をカウントするものである。カウンタ４０が６４バイト（＝１セグメント）をカウントするとセットされ，同期化バッファ３５に６４バイト（＝１セグメント）分のデータが保持されたことを判定するものである。
【００４７】
４４はセグメントカウンタであって，デコーダ（＊Ｂ）４３の出力をカウントすることによりセグメント数をカウントするものである。
４５はデコーダであって，セグメントカウンタ４４の出力をデコードするものである。
【００４８】
４６は比較回路であって，セグメントカウンタ４４のカウント値とＤＢＩＤバッファ５０のオフセット出力（ＯＦＦＳＥＴ（レコードのオフセット値（図２２参照））を比較し，一致する毎にＭＳ６８にデータ読み出しのコマンドの入力指示をするものである。
【００４９】
５０はＤＢＩＤバッファであって，レコードのオフセット値，レコード番号等を保持するものである。
５１はカウンタ（＊Ｂ）であって，比較回路４６の出力毎にカウント値をインクリメントし，ＭＳアドレス生成機能部５７の入力端子（ｆ）に入力するものである。カウンタ（＊Ｂ）５１は比較回路４６が一致を検出する毎にインクリメントされ，その出力はＤＢＩＤバッファ５０のＡＤＲ（Ｏ）に入力され，レコードオフセット値バッファ７４（図５参照）の出力を切り替えるものである。
【００５０】
５２はＭＳアドレス生成部である。
５４は処理するトラックの先頭ＭＳアドレス（ＭＳアドレス初期値Ｔ）を保持するレジスタである。
【００５１】
５５は処理を開始する開始ＤＢ番号（データブロック番号（ＤＢＩＤ））を保持するレジスタである。
５６はＤＢＩＤ，ＣＯＵＮＴ以外のデータであって，ＭＳアドレスを保持するものであり，処理を開始するキー・データ部のアドレスである（ＭＳアドレス初期値Ｋ）。ＭＳアドレス初期値ＫはＭＳアドレス初期値Ｔと処理を開始するＤＢ番号で決められるものであるが，本実施例ではファームウェアにより予め計算してセットするようにした。
【００５２】
５７はＭＳアドレス生成機能部であって，ＭＳ６８に対するアドレスを生成するものである。
５８はデコーダ（＊Ｃ）であって，デコーダ（＊Ｂ）４３の出力をデコードするものであり，ＭＳ６８に対するデータライトコマンドを生成するものである。
【００５３】
５９はデコーダ（＊Ｄ２）であって，デコーダ（＊Ｃ）５８の出力をデコードするものであり，バス６７’の使用開始を指示するバス・リクエスト信号を生成するものである。
【００５４】
６０はカウンタ（＊Ａ）であって，デコーダ（＊Ｄ２）５９の出力をカウントするものであり，バス・リクエスト６６がセットされている間，データ入力（１バイト）毎にインクリメントされ，バス６７’の出力がデコーダ６５により切り換えられる。
【００５５】
６１はコマンドを保持するレジスタであって，ＭＳ６８に対する書き込み要求等のコマンドを保持するものである。
６２はＭＳ６８に対するアドレスを保持するレジスタである。
【００５６】
６３はデータバッファ４２から転送されるＭＳ６８に書き込むデータを保持するレジスタである。
６４はセレクタ（ＭＰＸ）であって，コマンドを保持するレジスタ６１，アドレスを保持するレジスタ６２，データを保持するレジスタ６３を選択するものである。
【００５７】
６５はデコーダであって，カウンタ６０の出力をデコードし，セレクタ（ＭＰＸ）６４の制御信号を生成するものである。
６６はバス・リクエスト（ＯＵＴ）であって，ＭＳ６８に対するバス要求信号の出力を表す。
【００５８】
６７はバス入出力部であって，ＭＳ６８のバスの入出力回路である。
６８はＭＳ（メインストレージ）である。
図５は本発明の実施例のＤＡのＤＢＩＤバッファの構成の詳細を示す図である。
【００５９】
図５において，
５０はＤＢＩＤバッファである。
７１は比較回路であって，カウンタ３４（図３）のカウント値に基づくアドレス入力（ＡＤＲ（Ｉ））とかつレコードのオフセット値のワード番号（オフセット値のある位置）を比較するものである。ＡＤＲ（Ｉ）がレコードのオフセット値ワード番号と一致した時に信号ＥＱを出力する。
【００６０】
７２はアンド回路であってＤＡＳＤ制御回路３３から出力されるセット信号と比較回路７１の出力ＥＱの論理積をとり，両者が共にＨの時にレコード・オフセット値バッファ７４にセット信号を出力するものである。
【００６１】
７３はオフセット値ワード番号保持部であって，ＤＡＳＤ３２に格納されるレコードのオフセット値の格納されている位置を保持するレジスタである。オフセット値のワード番号は制御部（ＣＰＵ側）から与えられる。
【００６２】
７４はレコード・オフセット値バッファであって，レコードのオフセット値を保持するものである（１ＤＢ（データブロック）に複数のレコードをもつ場合には複数のオフセット値をもつ）。
【００６３】
８１は比較回路であって，カウンタ３４（図３）のカウント値であるアドレス入力（ＡＤＲ（Ｉ））とレコード番号のワード番号（レコード番号のある位置）を比較するものである。ＡＤＲ（Ｉ）がレコード番号格納位置と一致した時に一致を示す信号ＥＱを出力する。
【００６４】
８２はアンド回路であってＤＡＳＤ制御回路３３から出力されるセット信号と比較回路８１の出力ＥＱの論理積をとり，両者がＨの時，レコード番号バッファ８４にセット信号を出力する。
【００６５】
８３はレコード番号ワード番号保持部であって，レコード番号のあるワード番号を保持するレジスタである。レコード番号のワード番号は制御部（ＣＰＵ側）から与えられる。
【００６６】
８４はレコード番号バッファであって，レコード番号を保持するものである（１ＤＢに複数のレコードをもつ場合にも，最初のレコード番号１つだけで良い）。
【００６７】
図６は本発明の実施例のＤＡのＭＳアドレス生成部の構成の詳細を示す。
図６において，
５２はＭＳアドレス生成部である。
【００６８】
５４は処理するトラックの先頭ＭＳアドレス（ＭＳアドレス初期値Ｔ）を保持するものである。
５５は処理を開始するＤＢ番号（ＤＢＩＤ）を保持するものである。
【００６９】
５６はＤＢＩＤ，ＣＯＵＮＴ以外のデータ書き込み開始アドレス（ｍａｒｂ）である。ｍａｒｂは処理を開始するＤＢ番号が０（ＤＢＩＤ（００））のとき，処理するトラックの最終アドレス（ｍａｒｂ０）であり，処理を開始するＤＢ番号がｎ（ｎ≠０）のとき，ｍａｒｂ＝ｍａｒｂ０−６４×ｎである。
【００７０】
５７はＭＳアドレス生成機能部であって，ＭＳアドレスを演算するものである。
９１はＡＬＵであって，処理を開始するトラックの先頭アドレスと処理を開始するＤＢ番号を加算してＤＢＩＤ部処理開始ＭＳアドレスＴを演算するものである（処理を開始するＤＢ番号は処理するトラックの先頭アドレスからのアドレスのオフセット値に等しい）。
【００７１】
９２はＤＢＩＤ部処理開始ＭＳアドレスＴを保持するレジスタである。
９３はＭＳアドレスカウンタであってＤＢＩＤのアドレスカウンタである。
１０１はＡＬＵであって，処理を開始するトラックの先頭アドレスとＤＢＩＤバッファ５０から出力されるレコード番号を入力して加算することにより，カウント部の処理開始アドレスＣを求めるものである。
【００７２】
１０２はカウント部処理開始ＭＳアドレスＣを保持するレジスタである。
１０３はＭＳアドレスカウンタであって求められたカウント部のアドレスカウンタである。
【００７３】
１１１はＡＬＵであって，ｍａｒｂとレコード番号（トラックの最終アドレスからのオフッセット値に等しい）との差を演算することにより，キー・データ部の処理開始アドレスＫを求めるものである。
【００７４】
１１２はキー・データ部の処理開始ＭＳアドレスＫを保持するレジスタである。
１１３はＭＳアドレスカウンタであって求められたキー・データ部のアドレスカウンタである。
【００７５】
１１５はセレクタ（ＭＰＸ）であって，ＭＳアドレスカウンタ（ＣＯＵＮＴ）１０３の出力とＭＳアドレスカウンタ（ＫＥＹ，ＤＡＴＡ）の出力のいずれかを選択するものである。
１１６はセレクタ（ＭＰＸ）であって，ＭＳアドレスカウンタ（ＤＢＩＤ）９３の出力とマルチプレクサ１１５の出力のいずれかを選択するものである。
【００７６】
図３，図４の動作を説明する（必要に応じて図５，図６を参照する）。
，(1) チャネルアダプタ（図示せず，ＣＡモジュールと称する）から「ＳＥＲＣＨ−ＫＥＹ動作開始コマンド」と「ＳＥＲＣＨ−ＫＥＹを開始するトラック番号」を受信したＤＡのファームウェア（図示せず）はレジスタ５４に処理するトラックの先頭ＭＳアドレスをセットする。
【００７７】
(2) ＤＡのファームウェアは，受信した「ＳＥＲＣＨ−ＫＥＹを開始するトラック番号」から「ＳＥＲＣＨ−ＫＥＹを開始するＤＢ番号」を判定してレジスタ５５にセットする。
【００７８】
(3) ＤＡのファームウェアは(2) で判定した「ＳＥＲＣＨ−ＫＥＹ開始ＤＢ番号」と「ＳＥＲＣＨ−ＫＥＹを開始するトラックに割り当てられたＭＳアドレスの最終位置」からｍａｒｂを算出してレジスタ５６にセットした後，ハードウェア（図示の構成）に対してＳＥＲＣＨ対象トラックのＭＳへの展開（書き込み）の開始を指示する。
【００７９】
(4) ＤＡはＤＡＳＤ３２からＳＥＲＣＨ対象トラックデータを読み出して，同期化バッファ３５に格納する。このとき，カウンタ３４はＤＡＳＤ３２から同期化バッファ３５に転送されたデータ数をカウントする。そして，トラック分のデータを処理する間にトラックデータ中のＤＢＩＤ（００〜１５）をＤＢＩＤバッファ５０に順次格納する（例えば，ＤＢＩＤ００を受信したらそのレコードを処理し，次にＤＢＩＤ０１を格納する等により各ＤＢＩＤについて処理をする）。
【００８０】
(5) ＤＡは，ＤＢＩＤバッファ５０に処理を必要とするＤＢＩＤ（ｎ）が格納されると同期化バッファ３５内のデータのＭＳ６８への送信を開始する。
(6) ＤＡはファームウェアから「ＳＥＲＣＨ−ＫＥＹ対象トラックのＭＳ６８への展開（書き込み）指示」を受け取るとＡＬＵ９１（図６）により「ＤＢＩＤ部処理開始ＭＳアドレスＴ」を算出してカウンタ（ＤＢＩＤのアドレスカウンタ）９３（図６）にロードする。
【００８１】
(7) ＤＡは同じタイミングでＡＬＵ１０１（図６参照）により「カウント部処理開始ＭＳアドレスＣ」を算出してカウンタ（カウント部のアドレスカウンタ）１０３（図６）にロードする。
【００８２】
(8) ハードウェアは同じタイミングでＡＬＵ回路１１１（図６参照）により「キー・データ部処理開始ＭＳアドレスＫ」を算出してカウンタ（ＫＥＹ・ＤＡＴＡ部のＭＳアドレスカウンタ）１１３にロードする。
【００８３】
上記(6) 〜(8) でセットされた各ＭＳアドレスの各初期値を図２ (b)に示す。また，ＤＡとＭＳ６８の間のデータ転送単位は１６ワード（１６ワード＝６４バイト＝１セグメント）である（図１０ (a)に１回のデータ転送単位におけるタイムチャートを示す）。
【００８４】
(9) (5) において，ＭＳに対して１回のデータ転送単位（１６ワード＝１セグメント）のデータの送信が完了すると同時にカウンタ４４が１つ加算される。
(10)  セグメントカウンタ４４の値とＤＢＩＤバッファ５０のＯＦＦＳＥＴ出力値が比較回路４６において比較され，一致するとセレクタ（ＭＰＸ１１６）（図６）の出力が切り替わる。
【００８５】
その結果，ＭＳ６８に対する次回のデータ転送ではＭＳアドレスとしてカウンタ１０３（図６）の値（レコードのオフセットアドレスであって，カウント部のＭＳアドレス）が選択される。
【００８６】
この時，カウンタ（＊Ｂ）５１（図４）が１つ加えられ，ＤＢＩＤバッファ５０のカウント部のオフセット値のバッファであるレコードオフセット値バッファ７４の出力アドレスＡＤＲ（Ｏ）が切り替わり，次のレコードのオフセット値が選択される。
【００８７】
(11)  カウント部のＭＳへの転送終了と同時にセレクタ（ＭＰＸ）１１５（図６）の出力が切り替わり，ＭＳに対する次回のデータ転送ではＭＳアドレスとしてカウンタ１１３の値（キー・データ部のＭＳアドレス）が選択される。
【００８８】
(12)    カウンタ３４が４０９６（＝１ＤＢ分のバイト長）まで加算されるとセレクタ（ＭＰＸ）１１６（図６）の出力が切り替わり，ＭＳ６８に対する次回のデータ転送ではＭＳアドレスとしてＤＢＩＤのＭＳアドレスカウンタ９３の値が選択される。
【００８９】
(13)  (9) 〜(12)  の処理を繰り返し，(4) において読み出したＳＥＲＣＨ対象トラックデータに対して繰り返し行うことで対象トラックのデータがＭＳに図２に示すように展開される。
【００９０】
図７はパルス回路，ラッチ回路の動作を示す図である。図７ (a)は本発明のパルス回路（前記のＤＡの構成における図３のパルス回路４１等）の動作を示す。図７ (b)は後述するＭＳからＤＡに書き込むための構成において使用されるラッチ回路（図１１のラッチ回路１４３等）のラッチ回路のタイムチャートである。
【００９１】
図８，図９は本発明のＤＡからＭＳにデータを書き込むためのＤＡのタイムチャートである。
図８ (a)は，ＤＢＩＤバッファのセットタイミングであって，ＤＢＩＤバッファにデータをセットする動作における各部のタイミングの関係を示す。
【００９２】
カウンタ３４は１バイトずつデータをカウント（０から６３まで）する。同期化バッファ／ＤＴ（Ｉ）とＤＢＩＤバッファ／ＤＴ（Ｉ）はクロック信号に同期して１バイトずつデータを入力する。デコーダ３６の出力がＨの間にＳＥＴ信号（クロック）に従ってＤＡＳＤ３２からデータが１バイトずつ同期化データバッファ，ＤＢＩＤバッファに転送される。
【００９３】
図８ (b)は同期化バッファ３５のデータ出力のタイミングを示す。
カウンタ３４のカウント値が６３になった後に，ＡＬＵ３９の出力がＨになり同期化データバッファ／ＤＴ（Ｏ）からデータ出力が開始される。
【００９４】
図８ (c)はセグメントカウンタ４４のインクリメントのタイミングを示す。
カウンタ３４が６４バイトカウントする毎にセグメントカウンタ４４が１ずつインクリメントされ，セグメント数をカウントする。
【００９５】
図９ (a)は，ＭＳライトコマンドの送信タイミングを示す。
カウンタ３４が６４カウントすることによるＡＬＵ３９の出力により，パルス回路４１からパルスが出力され，デコーダ６５によりライトコマンドが生成される。その結果，ＭＳアドレス生成部５２によりＭＳアドレスが生成され，データバッファ４２にデータが出力される。また，バス・リクエスト（ＯＵＴ）６６が生成され，バス入出力部６７にライトコマンド，ＭＳアドレス，１バイトずつのデータ００，データ０１，・・・，データ６３が入力される。
【００９６】
図９ (b)はＭＳアドレスの切り換えタイミングのタイムチャートであって，ＤＢＩＤ部からＣＯＵＮＴ部への切り替えである。
カウンタ３４が６４カウントする毎に図示のようなデコーダ４３の出力があり，セグメントカウンタ４４がインクリメントされる。そして，セグメントカウンタ４４が０１〜６３のカウント部，キー・データ部をカウントしている間はセレクタ（ＭＰＸ）１１６の出力がＬとなり，セレクタ（ＭＰＸ）１１６は，セレクタ（ＭＰＸ）１５３の出力を選択する。
【００９７】
図９ (c)はＭＳアドレスの切り替えのタイミングであり，カウント部からデータ部への切り替えである。
レコードのオフセット値が２セグメントおよび５セグメントの場合の動作である。
【００９８】
セグメントカウンタ４４が２セグメントをカウントする間に，ＤＢＩＤバッファ／ＤＴ（Ｉ）に２セグメントのＤＡＴＡ００が入力され，２セグメントの処理が進んだ時点で比較回路４６が一致ＥＱを出力する。そこで，カウンタ５１のカウント値，ＤＢＩＤバッファ／ＡＤＲ（Ｏ）が替わり，ＤＢＩＤバッファ／ＤＴ（Ｉ）に次のアドレスのＤＡＴＡ０１が入力される。その処理が３セグメント進んだ時点で，比較回路４６から一致を示すＥＱが出力され，ＤＢＩＤバッファに次のアドレスのデータが入力される。
【００９９】
図１０はＤＡもしくはＣＡとＭＳの間のデータ転送のタイムチャートである。図１０ (a)は，ＤＡもしくはＣＡがＭＳに対してリード要求をした時のＭＳからＤＡもしくはＣＡへのデータ転送である。
【０１００】
ＣＯはＭＳに対するデータ転送要求コマンドである。
ＡはアクセスするＭＳアドレスである。
ＡｎｓはＭＳからのアンサワードである。
【０１０１】
Ｄ（０），・・・，Ｄ（１５）はＭＳからのデータである。
図１０ (b)は，ＤＡもしくはＣＡがＭＳに対してライト要求をした時のＤＡもしくはＣＡからＭＳへのデータ転送である。
【０１０２】
ＣＯはＭＳに対するデータ送信コマンドである。
ＡはアクセスするＭＳアドレスである。
ＡｎｓはＭＳからのアンサワードである。
【０１０３】
Ｄ（０），・・・，Ｄ（１５）はＭＳへのデータである。
，図１１は本発明のＤＡの実施例であって，ＭＳからＤＡにデータ転送するためのＤＡの構成である。
【０１０４】
ＭＳからＤＡへの書き込みは，図２に示すＭＳ上でのデータフォーマットを同期化バッファ上で図２２のデータフォーマットに変換して行うものである。
図１１において，
５９はデコーダ（＊Ｄ２）であって，デコーダ（＊Ｄ１）１３５の出力をデコードするものであり，バス６７’に使用開始を指示するリクエスト信号を生成するものである（図４と共通）。
【０１０５】
６１はコマンドを保持するレジスタである（図４と共通）。
６２はアドレスを保持するレジスタである（図４と共通）。
６３はデータを保持するレジスタである（図４と共通）。
【０１０６】
６６はバス・リクエスト（ＯＵＴ）である（図４と共通）。
６７はバス入出力部である（図４と共通）。
６７’はバスである（図４と共通）。
【０１０７】
６８はＭＳである（図４と共通）。
１３１はリード・モード（ＭＳ６８からデータを読み出すモード）がファームウェアにより開始されたことを表す。
【０１０８】
１３２はアンド回路であって，リードモード信号とラッチ回路１４３の論理積をとるものであり，リード・モード１３１とラッチ回路１４３から出力されるバス・リクエストによる信号に基づいてパルス回路１３３からリードコマンドを発生するための信号を出力させるものである。
【０１０９】
１３３はパルス回路であって，アンド回路１３２の出力を入力（動作については図７参照）し，リードコマンドを発生させるための信号を生成して出力するものである。
【０１１０】
１３４はオア回路であって，パルス回路１３３の出力とアンド回路１３９の出力の論理和をとるものであり，いずれの入力も，リードコマンドを発生させるための信号である。
【０１１１】
１３５はデコーダ（＊Ｄ１）であって，オア回路１３４の出力をデコードし，ＭＳに対するリードコマンドを生成するものである。
１３７はカウンタ（＊Ｂ２）であって，パルス回路１４１の出力を入力するものである。カウンタ（＊Ｂ２）１３７はＭＳ６８からの受信データバイト数がファームウェアから初期値として与えられ，他のモジュール（この場合ＭＳ６８）からデータを受信するとデクリメントされる（初期値は４０９６の整数倍であり，ファームウェアによりセットされる）。
【０１１２】
１３８はデコーダ（＊Ｅ１）であって，カウンタ（＊Ｂ２）１３７の出力を入力するものであり，カウンタ（＊Ｂ２）１３７の値が０になるとセットされ，以後データリードコマンドを送出しない。
【０１１３】
１３９はアンド回路であって，パルス回路１４１，デコーダ（＊Ｅ１）１３８の各出力を入力して論理積をとるものであり，デコーダ（＊Ｅ１）１３８の出力がＨ，パルス回路１４１の出力がＨの時に，バス・リクエストをするためのＨの信号を出力するものである。従って，例えば，１トラックを処理するのであれば，１トラックの処理を終了してカウンタ（＊Ｂ２）１３７が０になり，デコーダ（＊Ｅ１）１３８の出力がＨになる毎にバス・リクエスト（ＯＵＴ）６６を発生する。
【０１１４】
１４０はデコーダ（＊Ｅ２）であって，カウンタ（＊Ｂ２）１３７の出力をデコードするものである。デコーダ（＊Ｅ２）１４０はカウンタ１３７の値が４０９６の倍数（１ＤＢの大きさ）になるとセットされＤＢＩＤを受信したことを示す（カウンタ（＊Ｂ２））１３７の初期値は４０９６の整数倍である。
【０１１５】
１４０’はアンド回路であって，デコーダ（＊Ｄ２）５９の出力とデコーダ（＊Ｅ２）１４０の出力を入力として論理積をとり，その出力をラッチ回路１４３に入力するものである。デコーダ（＊Ｅ２）１４０の１データブロックの開始毎にラッチ回路１４３にＨを入力し，ラッチ回路１４３の出力をＬとする。
【０１１６】
１４１はパルス回路であり（動作は図７を参照），バス・リクエスト信号を入力とするものである。
１４２はアンド回路であって，バス・リクエスト（ＩＮ）６９とデコーダ（＊Ｆ）１５２（図１２）の出力を入力して論理積をとり，出力をラッチ回路１４３に入力する。従って，ラッチ回路１４３は，バス・リクエスト（ＩＮ）（１ＤＢの間Ｈ）がある時にＨを出力する。一方，デコーダ（＊Ｅ２）１４０は１ＤＢ毎にＨを出力するので，ラッチ回路１４３はＤＢＩＤを受信する間のみＨを出力する。
【０１１７】
１４３はラッチ回路であって，デコーダ（＊Ｅ２）１４０とアンド回路１４２の出力を入力とするものである（動作は図７参照）。リード・モード１３１が開始されてデコーダ（＊Ｄ２）５９がバス・リクエスト（ＯＵＴ）６６を出力するとＨになり，それ以後，リード・モード１３１からリード要求が発生してもバス・リクエスト（ＯＵＴ）６６を発生しない。また，バス・リクエストの終了（ＨからＬに変化する）がアンド回路１４２を介してラッチ回路１４３に入力され，Ｌを出力する。そして，カウンタ（＊Ｂ２）１３７が０になると，デコーダ（＊Ｅ２）１４０がＨを出力し，アンド回路１４２の出力がＨとなる。従って，ＤＢＩＤをＤＢＩＤバッファに読み込む間だけＨを出力して，その間にバス・リクエスト（ＯＵＴ）６６が発生しないようにしたものである。
【０１１８】
図１２において，
３５は同期化バッファである（図３と共通）。
４６は比較回路であって，カウンタ１５４の出力とＤＢＩＤバッファ５０の出力（ＯＦＦＳＥＴ）を比較し，一致を表す信号ＥＱを出力するものである（図３と共通）。
【０１１９】
５０はＤＢＩＤバッファである（図４と共通）。
５２はＭＳアドレス生成部である（図４と共通）。
５４は処理トラックの先頭ＭＳアドレス（ＭＳアドレス初期値Ｔ）を保持するレジスタである。
【０１２０】
５５は処理する開始ＤＢ番号（ＤＢＩＤ）を保持するレジスタである。
５６はＤＢＩＤ，ＣＯＵＮＴ以外のＭＳアドレス初期値Ｋを保持するものである。
【０１２１】
５７はＭＳアドレス生成機能部である（図４と共通）。
１５１はカウンタ（＊Ｂ３）であって，バス・リクエスト（ＩＮ）６９を入力し，カウントするものである。カウンタ（＊Ｂ３）１５１は，他モジュール（この場合ＭＳ６８）からデータを受信するとインクリメントされる。
【０１２２】
１５２はデコータ（＊Ｆ）であって，カウンタ（＊Ｂ３）１５１の出力を入力するものである。デコータ（＊Ｆ）１５２はカウンタ１５１の値が４０９６の倍数になるとセットされＤＢＩＤを受信したことを示す。
【０１２３】
１５３はデコーダ（＊Ｇ）であって，カウンタ（＊Ｂ３）１５１の出力をデコードするものである。デコーダ（＊Ｇ）１５３はカウンタ（＊Ｂ３）１５１の値が６４インクリメントされる毎にセットされ，カウンタ１５４を１インクリメントする。
【０１２４】
１５４はカウンタであって，デコーダ（＊Ｇ）１５３の出力をカウントするものであり，セグメントをカウントするものである。
１５５はカウンタであって，比較回路４６の一致出力をカウントするものである。
【０１２５】
図１１，図１２の動作を説明する。
(1) 前述のＤＡからＭＳへの書き込みの場合の動作の(1) 〜(3) と同様にＤＡのファームウェアはレジスタ５４，５５，５６にＭＳアドレス初期値をセットする。
【０１２６】
即ち，チャネルアダプタ（図示せず，ＣＡモジュールと称する）から「ＳＥＲＣＨ−ＫＥＹ動作開始コマンド」と「ＳＥＲＣＨ−ＫＥＹを開始するトラック番号」を受信したＤＡのファームウェア（図示せず）はレジスタ５４に「処理するトラックのＭＳ先頭アドレス」をセットする。
【０１２７】
次に，ＤＡのファームウェアは，受信した「ＳＥＲＣＨ−ＫＥＹを開始するトラック番号」から「ＳＥＲＣＨ−ＫＥＹを開始するＤＢ番号を」判定してレジスタ５５にセットする。そして，ＤＡのファームウェアは判定した「ＳＥＲＣＨ−ＫＥＹ開始ＤＢ番号」と「ＳＥＲＣＨ−ＫＥＹを開始するトラックに割り当てられたＭＳアドレスの最終位置」の値からｍａｒｂを算出してレジスタ５６にセットした後，ハードウェア（図示の構成）に対してＳＥＲＣＨ対象トラックのＭＳへの展開（書き込み）の開始を指示する。
【０１２８】
(2) ＤＡからＭＳにデータの送信要求が送出されるとラッチ回路１４３がセットされる。ラッチ回路１４３がセットされている間は新たなデータ送信要求はＭＳに送出されない。
【０１２９】
(3) (2) で送出された「データ送信要求」の「アンサ」としてＭＳからＤＢＩＤを受信するとＤＡのハードウェアはそのＤＢＩＤをＤＢＩＤバッファ５０に格納する。
【０１３０】
(4) 前述のＤＡからＭＳへの書き込みの場合の動作(6) 〜(8) と同様にカウント部，キー・データ部のそれぞれのＭＳアドレスがセットされる。
即ち，ＤＡのハードウェアはファームウェアから「ＳＥＲＣＨ−ＫＥＹ対象トラックのＭＳへの展開（書き込み）指示」を受け取るとＡＬＵ９１（図６参照）により「ＤＢＩＤ部処理開始ＭＳアドレス」を算出してカウンタ９３（図６参照）にロードする。
【０１３１】
そして，ＤＡのハードウェアは同じタイミングでＡＬＵ１０１（図６参照）により「カウント部処理開始ＭＳアドレス」をカウンタ１０３（図６参照）にロードする。さらに，ハードウェアは同じタイミングでＡＬＵ回路１１１（図６参照）により「キー・データ部処理開始ＭＳアドレス」をカウンタ１１３（図６参照）にロードする。
【０１３２】
(5) 前述のＤＡからＭＳへの書き込みの場合の動作(10)〜(11)と同様にカウント部，キー・データ部のそれぞれのＭＳアドレスが切り替えられる。
即ち，カウンタ１５４の値とＤＢＩＤバッファ５０の値（ＯＦＦＳＥＴ）が比較回路４６において比較され，一致するとセレクタ（ＭＰＸ）１１６（図６参照）の出力が切り替わる。
【０１３３】
その結果，ＭＡに対する次回のデータ転送ではＭＳアドレスとして図６のカウンタ１０３の値（カウント部のＭＳアドレス領域）が選択される。
この時，カウンタ１５５（図４のカウンタ（＊Ｂ）５１に同じ）が１インクリメントされ，ＤＢＩＤバッファ５０のバッファ７４の出力アドレスＡＤＲ（Ｏ）が切り替わり，次のカウント部のオフセット値が選択される。
【０１３４】
そして，カウント部のデータの転送終了と同時にセレクタ１１５（図６）の出力が切り替わり，ＭＳに対する次回のデータ転送ではＭＳアドレスとしてカウンタ１１３の値（キー・データ部のＭＳアドレス）が選択される。
【０１３５】
図１３は本発明のＤＡの実施例のタイムチャートであって，図１１，図１２の動作のタイムチャート（ＭＳからＤＡ）である。
ＭＳからＤＡへの転送モードの間，リードモードはＨである。リードモードのＨによりパルス回路１３３の出力を生じ，デコーダ（＊Ｄ２）５９に出力を生じ，その間バス・リエスト（ＯＵＴ）６６が発生する。その結果，バス６７’よりリードコマンド（ＤＢＩＤ要求），ＭＳアドレス要求が出力される。
【０１３６】
デコーダ（＊Ｅ２）１４０によりラッチ回路１４３がＨになる。そして，カウンタ（＊Ｂ２）１３７がバス・リクエスト（ＩＮ）が入力されてパルス出力するパルス回路１４１の出力パルスを入力してデクリメントする毎にバス６７’よりリードアンサ，データ００，・・・，データ６３が出力される。そして，バス・リクエスト（ＩＮ）６９をカウンタ（＊Ｂ３）１５１がカウントし，デコーダ（＊Ｆ）１５２の出力がＨ（ＤＢＩＤバッファ／ＳＥＴがＨ）となり，ＤＢＩＤのデータがＤＢＩＤバッファ／ＤＴ（Ｉ）に入力される。また，バス・リクエスト（ＩＮ）がＨの間に，同期化バッファ３５にも，ＭＳ６８から読み出されたデータがアドレスの順に格納される。
【０１３７】
図１４，図１５は，ＭＳからＣＡ（チャネルアダプター）にデータ展開するためのＣＡの構成である（図１４，図５において，図３，図４と名称が同じものは共通番号で示しているが，ＤＡのものとは異なるものである）。
【０１３８】
図１４において，
３５は同期化バッファであって，ＭＳから転送されるデータを保持するものである。
【０１３９】
１７１はチャネルである。
１７２はチャネル制御回路（汎用）であって，チャネル１７１のデータの入出力制御を行うものである。
【０１４０】
１７３はチャネルデータバッファであって，チャネル１７１から転送されるデータもしくはチャネルに転送するデータを保持するものである。
１７４はカウンタであって，チャネル１７１からチャネルデータバッファ１７３に転送されるデータ数もしくはチャネルデータバッファ１７３からチャネル１７１に転送されるデータ数をカウントするものである。
【０１４１】
１７５はＡＬＵであって，カウンタ１７４の出力とカウンタ１７６の出力の差を求め，ｑ＞ｐであれば，カウンタ１７５をインクリメントするものである（チャネルデータバッファ１７３にデータがあればその出力アドレス（ＡＤＤＲ（Ｏ））をカウントするカウンタ１７６をインクリメントする。
【０１４２】
１７６はカウンタであって，ＡＬＵ１７５の出力によりインクリメントし，チャネルデータバッファ１７３の出力アドレス（ＡＤＤＲ（Ｏ））をカウントするものである。
【０１４３】
１７７はキー比較回路であって，チャネルデータバッファ１７３から取り出されたＫＥＹ値と同期化バッファ３５から取り出されたＫＥＹ値を比較するものである。
【０１４４】
１７８はＡＬＵであって，カウンタ１７９の出力値ｐとカウンタ２１１（図１６参照）の出力値ｑとの差を演算し，ｑ＞ｐであれば，カウンタ１７９をインクリメントするものである（同期化バッファ３５にデータがあればその出力アドレス（ＡＤＤＲ（Ｏ））をカウントするカウンタ１７９をインクリメントする）。
【０１４５】
１７９はカウンタであって，ＡＬＵ１７８の出力によりインクリメントし，同期化バッファ３５の出力アドレス（ＡＤＤＲ（Ｏ））をカウントするものである。
【０１４６】
図１５において，
５９はデコーダ（＊Ｄ２）であって，デコーダ（＊Ｄ１）１３５の出力をデコードするものであり，バス６７’の使用を要求するリクエスト信号（バス・リクエスト（ＯＵＴ）６６）を生成するものである。
【０１４７】
６１はコマンドを保持するレジスタである。
６２はアドレスを保持するレジスタである。
６３は，同期化バッファ３５から出力されるデータを保持するレジスタである。
【０１４８】
６６はバス・リクエスト（ＯＵＴ）である。
６７はバス入出力部である。
６７’はバスである。
【０１４９】
６８はＭＳである。
１８１はサーチ・モード（ＳＥＲＣＨ−ＫＥＹモード）がファームウェアにおいて開始されることを表す。
【０１５０】
１８２はカウント部解析機能部であって，カウント部を解析し，キー部，データ部のデータ長を求めるものである。
１８３はデコーダ（＊Ｄ１）であって，サーチモードの開始およびキー比較回路１７７（図１４）の出力に応動してリードコマンドを生成するものである。
【０１５１】
１８４はカウント部のＭＳアドレス初期値Ｃを保持するレジスタである。
１８５はキー・データ部のＭＳアドレス初期値Ｋを保持するレジスタである。１８６はカウンタであってカウント部解析機能部の出力Ｏ２（キー部のアドレス）をロードし，バス・リクエスト毎に１ずつ減算することによりキー部のデータを出力するアドレスをカウントするものである。
【０１５２】
１８７はカウンタであって，カウント部のＭＳアドレス初期値Ｃをロードし，バス・リクエスト毎に１ずつ減算し，カウント部のアドレスを求めるものである。
【０１５３】
１８８はセレクタ（マルチプレクサ（ＭＰＸ））であって，カウント部解析機能部１８２の出力Ｏ３（バス・リクエスト（ＯＵＴ）６６の出力毎に出力がＨ，Ｌに切り替えられる）を制御信号としてカウンタ１８６もしくはカウンタ１８７の出力を選択するものである。
【０１５４】
図１６はＣＡのカウント部解析機能部の構成の実施例を示すものである。
図１６において，
２１１はカウンタであって，バス・リクエストを入力して，バス・リクエストがＨの間にＭＳから出力されるデータ数をカウントするものである。
【０１５５】
２１２はカウント部におけるＫＥＹ長格納ワード番号を保持するレジスタである（設定値はＣＰＵ側から与えられる）。
２１２’はカウント部におけるＤＡＴＡ長格納ワード番号を保持するレジスタである（設定値はＣＰＵ側から与えられる）。
【０１５６】
２１３は比較回路であって，カウンタ２１１のカウント値とＫＥＹ長格納ワード番号を比較し，一致した時に一致を示す信号（Ｈ）を出力するものである。
２１４は比較回路であって，カウンタ２１１の出力値とＤＡＴＡ長格納ワード番号を比較し，一致を示す信号を出力するものである。
【０１５７】
２１５はＯＲ回路であって，サーチ・モード１８１の信号およびキー比較回路１７７（図１４）の出力を入力しその論理和をとるものである。
２１６はパルス回路であって，ＯＲ回路２１５の出力を入力し，バス・リクエスト（ＯＵＴ）を生成するための信号を出力するものである（パルス回路２１６の動作は図１０参照）。
【０１５８】
２１８はＯＲ回路であって，パルス回路２１６，アンド回路２２１の出力の論理和をとるものである
２１９はラッチ回路であって，サーチ・モード１８１の信号，キー比較回路１７７の出力によりＨを出力し，データ部データサイズ・バッファ２２５のセット信号でＬに変化するものである（ラッチ回路２１９の動作は図１０参照）。
【０１５９】
２２０はアンド回路であって，バス・リクエスト（ＩＮ）とラッチ回路２１９の出力の論理和をとるものである。ラッチ回路の出力がＨの間，バス・リクエスト（ＩＮ）をアンド回路２２２とアンド回路２２３）に出力するものてある。
【０１６０】
２２１はアンド回路であって，カウンタ３３とラッチ回路２１９の出力の論理積をとるものである。
２２２はアンド回路であって，バス・リクエスト（ＩＮ）６９（図１５参照）と比較回路２１３の出力とアンド回路２２０の出力の論理積をとるものであり，バスリクエト（ＩＮ）がＨの間に比較回路２１３が一致出力をした時にキー部データサイズ・バッファ２２４のセット信号を出力するものである。
【０１６１】
２２３は，比較回路２１４の出力とアンド回路２２０の出力の論理積をとるものであり，バスリクエト（ＩＮ）がＨの間に比較回路２１４が一致出力をした時にデータ部データサイズ・バッファ２２５のセット信号を出力するものである。
【０１６２】
２２４はキー部データサイズ・バッファであって，キー部のデータ長を保持するものである。
２２５はデータ部データサイズ・バッファであって，データ部のデータ長を保持するものである。
【０１６３】
２２６はＡＬＵであって，キー部データサイズとデータ部データサイズの和を演算するものである。
２２７はＡＬＵであって，キー部データサイズとデータ部データサイズの和とキー部ＭＳアドレス初期値との差を演算するものである。
【０１６４】
２２８はセレクタ（ＭＰＸ）であって，ＡＬＵ２２７の出力とキー部ＭＳアドレス初期値を選択するものである。
２２９はカウンタであって，キー部データサイズをロードし，アンド回路２２１の出力がＨの間（ラッチ回路２１９の出力がＨ，バス・リクエスト（ＩＮ）がＨ）に，カウント値を減算し，データ数をカウントするものである。
【０１６５】
２３０はデコーダ（＊ｊ）であって，カウンタ２２９の出力をデコードするものである。
２３１はアンド回路であって，Ｉ６の入力信号（デコーダ（＊Ｄ２）５９の出力）とラッチ回路２３３の出力を入力して論理積をとるものであり，ラッチ回路２３３の出力がＬの間にデータコーダ（＊Ｄ２）５９の信号を出力するものである。
【０１６６】
２３２はアンド回路であって，Ｉ６の入力信号（デコーダ（＊Ｄ２）５９（図１５）の出力）とラッチ回路２３３の出力を入力して論理積をとるものであり，ラッチ回路２３３の出力がＨの間にデコーダ（＊Ｄ２）５９の信号を出力するものである。
【０１６７】
２３３はラッチ回路であって，アンド回路２３１とアンド回路２３２の出力を入力し，デコーダ（＊Ｄ２）５９の出力毎にＨのセットとＬのリセットを交互に繰り返すものである（ラッチ回路２３３の動作については図１０参照）。
【０１６８】
２３４はアンド回路であって，キー比較回路１７７（図１４参照）の出力とデコーダ（＊ｊ）２３０の出力値のアンドを入力して論理積をとるものであり，比較回路の一致出力（ＫＥＹが一致）によりレジスタ２３５にＫＥＹの一致を示す信号を出力するものである。
【０１６９】
２３５はレジスタ（＊Ｂ）であって，アンド回路２３４の出力値を保持するものであり，その値はファームウェア（図示せず）の動作に反映される。
図１４，図１５，図１６の動作を説明する。
【０１７０】
(1) ＣＡモジュールはチャネル１７１から「ＳＥＲＣＨ−ＫＥＹコマンド」を受信するとホストコンピュータ（図示せず）に対しＫＥＹの送信要求をする。そして，受信したＫＥＹはチャネルデータバッファ１７３に格納される。
【０１７１】
(2) ＣＡのファームウェア（図示せず）は「カウント部のＭＳアドレス初期値Ｃ」，「キー・データ部のＭＳアドレス初期値Ｋ」（図２参照）をそれぞれレジスタ１８４，１８５にセットした後に，ＣＡのハードウェア（図１４，図１５の構成）に対して，「ＳＥＲＣＨ−ＫＥＹ開始」を指示する。
【０１７２】
(3) ＣＡのハードウェアはファームウェアからＳＥＲＣＨ−ＫＥＹ開始の指示」を受け取るとカウンタ１８７にレジスタ１８４の値（カウント部ＭＳアドレス初期値Ｃ）をロードする。
【０１７３】
(4) ＣＡのハードウェアはＭＳ６８からカウント部の読み出しを開始する（この時，カウント部を読み出すためのＭＳアドレスの初期値はカウンタ１８７の値である）。読み出したデータ（キー部のデータ長，データ部のデータ長）がカウント部解析機能部１８２のバッファ２２４，２２５（図１６参照）に格納される。
【０１７４】
本実施例ではＤＡとＭＳ６８間のデータ転送は１６ワード単位で行われるものとし，ＭＳアドレスは１回のデータ転送単位（１６ワード）毎に割り振られるものとする。１回のデータ転送単位におけるタイムチャートを図１０ (b)に示す。
【０１７５】
(5) ＭＳ６８に対してデータ転送要求を１回送信する毎にカウンタ１５９が１つ加算される。
(6) (4) において，ＭＳ６８からカウント部を読み出した後に，ハードウェアはセレクタ（ＭＰＸ）１８８を切り換えて，ＭＳ６８からＫＥＹ部の読み出しを開始する（ＭＳアドレスはカウンタ１８６の値である）。ＭＳ６８からキー部を読み出す動作において，ハードウェアは１回のデータ転送単位が終了する毎にカウンタ２２９を１つ減算する。キー部の読み出しはカウンタ２２９が０になるまで実行される。
【０１７６】
(7) ＭＳ６８から読み出されたキー部は同期化バッファ３５に格納される。
(8) 同期化バッファ３５に格納されたＭＳ６８からのＫＥＹとチャネルデータバッファ１７３に格納されたＫＥＹとはキー比較回路１７７において一致の有無が検証される。
【０１７７】
(9) (8) において，２つのＫＥＹが不一致であった場合には，カウント部解析機能部１８２のＡＬＵ２２６，２２７（図１６）により次のキー部の「ＭＳアドレスの先頭」が算出され，カウンタ１８６（図１５）にロードされる。
【０１７８】
(10)  キー部データサイズ・バッファ２２４（図１６）にカウント部のキー長が，データ部データサイズ・バッファ２２５にデータ長がそれぞれ格納される。  (11)  (10)において，２つのＫＥＹが一致した場合，ハードウェアはレジスタ（＊Ｂ）２３５に一致を示す情報をセットすることでファームウェアにホストコンピュータから送信されたＫＥＹとＭＳ６８から取り出したＫＥＹとが一致したことを通知する。
【０１７９】
図１７，図１８，図１９は，本発明のＣＡ（図１４，図１５，図１６の構成）のタイムチャートである。
図１７は図１４，図１５，図１６の構成におけるＭＳリードコマンド送信タイミングのタイムチャートである。
【０１８０】
サーチ・モード１８１の開始でサーチ・モード１８１がＨになり，カウント部解析部のＩ１に入力され，パルス回路２１６に入力されて，その出力がＯ１からデコーダ（＊Ｄ１）１８３に伝えられる。さらにデコーダ（＊Ｄ１）１８３に入力され，デコーダ１８３はリードコマンドを出力する。また，その出力によりデコーダ（＊Ｄ２）５９はバス・リクエスト（ＯＵＴ）６６を生成させ，ＭＳ６８に転送する。デコーダ（＊Ｄ１）１８３のリードコマンドはコマンドレジスタ６１に入力され，セレクタ（マルチプレクサ（ＭＰＸ））６４によりコマンド６４が選択され（この制御については詳細説明は省略する），ＭＳ６８にバス６７’よりリードコマンドが入力される。また，デコーダ（＊Ｄ２）５９の出力（バス・リクエスト（ＯＵＴ））は，カウント部のＩ６からラッチ回路２３３に入力され，ラッチ回路２３３の出力をＨにし（バス・リクエスト（ＯＵＴ）がＨになってから１クロック後にＨになる），その信号によりセレクタ（ＭＰＸ）１８８を制御してカウント部ＭＳアドレス初期値１８４を選択し，アドレスレジスタ６２に読み出すカウント部のアドレス初期値を入力する。マルチプレクサ（ＭＰＸ）６４はアドレスを選択し，リード・コマンドがハス入出力部６７からＭＳ６８に出力される。また，リードコマンドに続いて，カウント部のアドレスがバス６７’に出力される。さらに，次のリードコマンドのバス６７’への出力があり，キー・データ部のアドレスが出力される。この間，ラッチ回路２３３の出力は，カウント部アドレス，データ部アドレスの出力毎に出力が変化し，セレクタ（ＭＰＸ）１８８を制御する。
【０１８１】
図１８は，ＭＳリードアンサ送信タイミングのタイムチャートである。
サーチ・モード１８１，パルス回路２１６，ラッチ回路２１９，バス・リクエスト（ＯＵＴ）６６，バス（出力）６７’は，図１７で説明したＭＳリードコマンド送信タイミングのタイムチャートと同じである。
【０１８２】
ＭＳ６８からバス・リクエストが発生し，ＣＡにバス・リクエスト（ＩＮ）６９がＭＳ６８から入力される。バス・リクエスト（ＩＮ）６９はカウント部解析機能部１８２のＩ３に入力される。バス・リクエスト（ＩＮ）がＨの間に，ＭＳ６８からリードアンサがバス６７’に出力され（バス６７’入力），続いてアドレスで指定されるカウント部のデータがＭＳ６８から読み出されて，バス６７’入力となる。そのデータはカウント部解析機能部１８２のＩ６からキー部データサイズ・バッファ２２４，データ部データサイズ・バッファ２２５に入力される。また，同期化バッファ３５にも入力される。
【０１８３】
一方，Ｈのバス・リクエスト（ＩＮ）は，カウント部解析機能部１８２のカウンタ２１１に入力され，その間カウンタ２１１はＭＳ６８から出力されるデータ数（ワード数）をカウントし，比較回路２１３および比較回路２１４に入力する。比較回路２１３はカウンタ２１１のカウント値がキー長格納ワード番号２１２に一致する時に一致を出力し，そのとき，キー部データサイズ・バッファ２２４に入力されたデータ長がキー部データサイズ・バッファ２２４に保持される。同様に，比較回路２１４において，データ長格納ワード番号とカウンタ２１１のカウント値が比較され，一致したワード番号のデータ長がデータ部データサイズ・バッファ２２５に保持される。
【０１８４】
図１８は１５ワード目がキー長，１６ワード目がデータ長である場合のタイムチャートである。バッファ２１２はキー長格納ワード番号１５を保持し，カウンタ２１１のカウント値が１５で比較回路２１３が一致を出力する。また，バッファ２１２’はＤＡＴＡ長格納ワード番号１６を保持し，カウンタ２１１のカウント値が１６で比較回路２１４が一致を出力する。
【０１８５】
そして，求められた，キー長，データ長によりＡＬＵ２２６，ＡＬＵ２２７はキー・データ部のアドレスを，キー・データ部ＭＳアドレス初期値−（ＫＥＹ長＋ＤＡＴＡ長）として求め，カウンタ１８６にロードする。
【０１８６】
図１９はＳＥＲＣＨ−ＫＥＹのサーチ成功時の動作である。ＫＥＹ長が２ワードの場合を示す。
ＭＳ６８においてリードアンサが整うと，バス・リクエスト（ＩＮ）がＨになり，ＭＳ６８はリードアンサをバス６７’に出力する。バス・リクエスト（ＩＮ）がＨにカウント部の読み出しが１区切りしたことにより，ラッチ回路２３３の出力が変化し，ラッチ回路２３３の出力によりセレクタ（ＭＰＸ）１８８が制御されてカウンタ１８６のＭＳアドレスが選択され，アドレスレジスタ６２にセットされる。そして，セレクタ（ＭＰＸ）６４がアドレスを選択し，バス・リクエスト（ＩＮ）６６がＨの間に，そのＭＳアドレスで指定されるキー・データ部のデータがバス入出力部６７に入力される（データバス（入力）６７’）。
【０１８７】
ＭＳ６８から読み出されるデータは，同期化バッファ３５に入力される。バス・リクエスト（ＩＮ）のＨでカウンタ２１１は，カウントを開始し，キー部から読み出されるデータ数をカウントする。そのカウント値は同期化バッファ３５の出力アドレス（ＡＤＤＲ（Ｏ））となり，同期化バッファ３５からキー部のデータが順次キー比較回路１７７に入力される。キー比較回路１７７はチャネルから受け取ったＫＥＹと同期化バッファ３５から受け取ったデータを，データ（ワード）が入力される毎に比較する。キー比較回路１７７はデータが一致しなかった時点で不一致を示す信号を出力するものである。キー長の第２ワード部分（ＫＥＹ長＝０２）で全て一致するとカウンタ２２９が１デクリメントする。そして第１ワード部分（ＫＥＹ長＝０１）において同様の比較を行う。そして，第１ワード部分も一致すると，カウンタ２２９が１デクリメントする。カウンタ２２９はキー部データサイズ・バッファ２２４のデータがロードされているので，今の場合，第１ワード部分の一致でカウント値が０になり，デコーダ（＊ｊ）２３０からＫＥＹ一致を示す信号が出力され，アンド回路２３４からＫＥＹ一致を示す信号が出力され，レジスタ（＊Ｂ）２３５にセットされる（ＫＥＹが一致した時，アンド回路２３４の他方の入力（キー比較回路１７７の比較結果出力）はＬであるので，アンド回路２３４はデコーダ（＊ｊ）２３０の出力を通過させる）。
【０１８８】
レジスタ２３５に格納されたＫＥＹ一致の信号はファームウェアに通知される。
図２０はサーチ失敗時の動作のタイムチャートである。図２０は，キー長が２ワードであって，第１ワード部分（ＫＥＹ＝０１）で不一致があった場合を示したものである。
【０１８９】
バス・リクエスト（ＩＮ）がＨの間にバス（入力）６７’からＫＥＹ部のデータが同期化バッファに入力される。カウンタ２１１がデータ数をカウントし，同期化バッファからキー部のデータが順次キー比較回路１７７に入力される。キー比較回路１７７はチャネルから受け取ったデータと同期化バッファ３５から入力されるデータを比較する。第１ワード部分（ＫＥＹ長＝０１）の第２番目のデータ（０１）でＫＥＹが不一致であったので，キー比較回路１７７は不一致を示す信号を出力する。不一致を示す信号はカウント部解析機能部のＩ２に入力され，パルス回路２１６に入力される。そして，パルス回路２１６の出力はＯ１から出力され，デコーダ（＊Ｄ１）１８３からリードコマンドが生成される。また，デコーダ（＊Ｄ１）１８３の出力はデコーダ（＊Ｄ２）５９に入力され，バス・リクエストアウトが生成される。そして，前述したのと同様の動作で，カウント部のＭＳアドレス，次のリードコマンド，キー・データ部のＭＳアドレスが続いてＭＳ６８に入力される（バス出力６７’）。
【０１９０】
【発明の効果】
本発明は，メインストレージに格納するデータフォーマットを変更し，ハードウェアにより連続的にアドレス指定してＳＥＲＣＨ−ＫＥＹ動作を行うことができるようにした。そして，データフォーマットの変更およびＳＥＲＣＨ−ＫＥＹ動作をハードウェアにより行うようにしたので，データ記憶装置の書き込み，読み出しを高速に行うことができる。そのため，本発明によればデータ記憶装置のファイル制御の能率を大幅に向上させることができる。
【図面の簡単な説明】
【図１】本発明の基本構成を示す図である。
【図２】本発明のＭＳに展開するデータフォーマットの例を示す図である。
【図３】本発明のＤＡの実施例を示す図である。
【図４】本発明のＤＡの実施例を示す図である。
【図５】本発明のＤＡの実施例を示す図である。
【図６】本発明のＤＡの実施例を示す図である。
【図７】本発明のＤＡの実施例パルス回路，ラッチ回路の動作説明図である。
【図８】本発明のＤＡの実施例のタイムチャートを示す図である。
【図９】本発明のＤＡの実施例のタイムチャートを示す図である。
【図１０】ＤＡもしくはＣＡとＭＳ間のデータ転送のタイムチャートを示す図である。
【図１１】本発明のＤＡの実施例を示す図である。
【図１２】本発明のＤＡの実施例を示す図である。
【図１３】本発明のＤＡの実施例のタイムチャートを示す図である。
【図１４】本発明のＣＡの構成の実施例を示す図である。
【図１５】本発明のＣＡの構成の実施例を示す図である。
【図１６】本発明のカウント部解析機能部の実施例を示す図である。
【図１７】ＭＳリードコマンド送信タイミングを示すタイムチャートを示す図である。
【図１８】ＭＳリードアンサ送信タイミングを示すタイムチャートを示す図である。
【図１９】サーチ成功時の動作のタイムチャートを示す図である。
【図２０】サーチ失敗時の動作のタイムチャートを示す図である。
【図２１】従来技術の説明図である。
【図２２】従来のデータ構成を示す図である。
【図２３】従来のＭＳ上でのデータフォーマットを示す図である。
【符号の説明】
Ｈ：ホストコンピュータ
１：ファイル制御装置
２：データ記憶装置
３：データバッファ
４：制御回路
５：メインストレージ（ＭＳ）
６：キー比較部
７：バッファ（チャネルデータバッファ）
１１：オセット値検出部
１２：ＭＳアドレス生成部
１３：カウント部解析部
１４：解析情報初期値保持部
１５：ＭＳ入出力回路
２０：制御部
２１：ファームウェア
２２：ＣＰＵ
【図１】
0003970959.tif 000002
【図２】
0003970959.tif 000003
【図３】
0003970959.tif 000004
【図４】
0003970959.tif 000005
【図５】
0003970959.tif 000006
【図６】
0003970959.tif 000007
【図７】
0003970959.tif 000008
【図８】
0003970959.tif 000009
【図９】
0003970959.tif 000010
【図１０】
0003970959.tif 000011
【図１１】
0003970959.tif 000012
【図１２】
0003970959.tif 000013
【図１３】
0003970959.tif 000014
【図１４】
0003970959.tif 000015
【図１５】
0003970959.tif 000016
【図１６】
0003970959.tif 000017
【図１７】
0003970959.tif 000018
【図１８】
0003970959.tif 000019
【図１９】
0003970959.tif 000020
【図２０】
0003970959.tif 000021
【図２１】
0003970959.tif 000022
【図２２】
0003970959.tif 000023
【図２３】
0003970959.tif 000024