(57)【特許請求の範囲】
【請求項１】
上位のコンピュータであるホストと記録媒体との間で転送されるデータを一時記憶するキャッシュメモリと、前記キャッシュメモリ内の有効なデータを検索するためのビットサーチ回路と、前記キャッシュメモリ、前記ビットサーチ回路、及び前記ホストと記録媒体間のデータ転送を制御するプロセッサとを備え、
前記ビットサーチ回路は、前記プロセッサからの指示に従って前記キャッシュメモリ内のデータを任意の位置から検索する機能を有し、
さらに、前記ビットサーチ回路は、複数ビットで構成されるデータ中の論理が１あるいは０の連続個数を検索するものであり、ビットサーチを開始するビット位置データを格納する指定ビット位置レジスタと、ビットサーチを行う対象のデータを保持するデータ保持用レジスタと、ビットサーチ演算を行うサーチ演算回路と、ビットサーチ演算結果を格納するサーチ演算結果レジスタとを備えて構成され、
前記サーチ演算回路は、前記指定ビット位置レジスタの情報に基づき、前記データ保持用レジスタの任意のビット位置からの論理１あるいは０の連続個数の検索を行うことを特徴とする情報記録再生装置。
【請求項２】
上位のコンピュータであるホストと記録媒体との間で転送されるデータを一時記憶するキャッシュメモリと、前記キャッシュメモリ内の有効なデータを検索するためのビットサーチ回路と、前記キャッシュメモリ、前記ビットサーチ回路、及び前記ホストと記録媒体間のデータ転送を制御するプロセッサとを備え、
前記ビットサーチ回路は、前記プロセッサからの指示に従って前記キャッシュメモリ内のデータを任意の位置から検索する機能を有し、
さらに、前記ビットサーチ回路は、複数ビットで構成されるデータ中の論理が１あるいは０の連続個数を検索するものであり、ビットサーチを開始するビット位置データを格納する指定ビット位置レジスタと、ビットサーチを行う対象のデータを保持するデータ保持用レジスタと、ビットサーチ演算を行うサーチ演算回路と、ビットサーチ演算結果を格納するサーチ演算結果レジスタとを備えて構成され、
前記サーチ演算回路は、前記指定ビット位置レジスタの指し示す任意のビット位置から前記データ保持用レジスタ内のデータの論理１あるいは０の連続個数の検索を実施する任意位置ビットサーチ機能と、この検索で得られた論理１あるいは０の連続個数と前記指定ビット位置レジスタ内の値とに基づいて、前記データ保持用レジスタ内のデータ中の論理１あるいは０が最下位ビット（ＬＳＢ）あるいは最上位ビット（ＭＳＢ）まで連続しているか否かを判断する論理連続性判定機能と、を有することを特徴とする情報記録再生装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報記録再生装置に関し、特に情報記録または再生を高速化するのに好適な情報記録再生装置に関するものである。
【０００２】
【従来の技術】
従来、ホストコンピュータまたはパーソナルコンピュータ（以下、ホストという）とインタフェース（例えば、ＳＣＳＩインタフェースやＩＤＥインタフェース等）を介して接続された情報記録再生装置（例えば、磁気ディスク装置、光ディスク装置等）は、文書データ、プログラムデータ、画像データ等の情報を情報記録媒体（例えば、磁気ディスク、光ディスク等）に記録または再生するのに使用されている。
【０００３】
このような情報記録再生装置において、ホストからのデータアクセス、すなわちデータのリード処理またはライト処理を高速化するために、情報記録再生装置内にキャッシュメモリを設け、ソフトウェアによりこのキャッシュメモリの管理を行い、そのキャッシュメモリにリードデータまたはライトデータを書き込み、ホストと情報記録再生装置との間でデータ転送を行うようにした構成が一般的に用いられている。このようなキャッシュメモリは、磁気ディスク装置や光ディスク装置の他にＣＤ−ＲＯＭ装置等にも搭載され、データアクセスの高速化に貢献している。
【０００４】
前述のようなキャッシュメモリを用いたシステムとしては、例えば、特開昭６２−５８３５１号公報に開示されている構成などが挙げられる。
【０００５】
【発明が解決しようとする課題】
しかしながら、最近では、ホスト側の処理速度がかなり高速化されてきたのに対し、情報記録再生装置のアクセス速度は十分ではなく、単にキャッシュメモリを設けただけではホスト側の処理速度に応じた速度向上が得られない場合がある。このため、情報記録再生装置への更なる高速化の要求が高まってきている。
【０００６】
本発明は、これらの事情に鑑みてなされたもので、キャッシュメモリへのアクセス速度の更なる高速化を可能とし、ホストと記録媒体間のデータ転送を高速に実施することが可能で、ひいては情報の記録または再生処理をより高速化することが可能な情報記録再生装置を提供することを目的としている。
【０００７】
【課題を解決するための手段】
本発明による第１の情報記録再生装置は、上位のコンピュータであるホストと記録媒体との間で転送されるデータを一時記憶するキャッシュメモリと、前記キャッシュメモリ内の有効なデータを検索するためのビットサーチ回路と、前記キャッシュメモリ、前記ビットサーチ回路、及び前記ホストと記録媒体間のデータ転送を制御するプロセッサとを備え、前記ビットサーチ回路は、前記プロセッサからの指示に従って前記キャッシュメモリ内のデータを任意の位置から検索する機能を有し、さらに、前記ビットサーチ回路は、複数ビットで構成されるデータ中の論理が１あるいは０の連続個数を検索するものであり、ビットサーチを開始するビット位置データを格納する指定ビット位置レジスタと、ビットサーチを行う対象のデータを保持するデータ保持用レジスタと、ビットサーチ演算を行うサーチ演算回路と、ビットサーチ演算結果を格納するサーチ演算結果レジスタとを備えて構成され、前記サーチ演算回路は、前記指定ビット位置レジスタの情報に基づき、前記データ保持用レジスタの任意のビット位置からの論理１あるいは０の連続個数の検索を行うことを特徴とする。
また、本発明による第２の情報記録再生装置は、上位のコンピュータであるホストと記録媒体との間で転送されるデータを一時記憶するキャッシュメモリと、前記キャッシュメモリ内の有効なデータを検索するためのビットサーチ回路と、前記キャッシュメモリ、前記ビットサーチ回路、及び前記ホストと記録媒体間のデータ転送を制御するプロセッサとを備え、前記ビットサーチ回路は、前記プロセッサからの指示に従って前記キャッシュメモリ内のデータを任意の位置から検索する機能を有し、さらに、前記ビットサーチ回路は、複数ビットで構成されるデータ中の論理が１あるいは０の連続個数を検索するものであり、ビットサーチを開始するビット位置データを格納する指定ビット位置レジスタと、ビットサーチを行う対象のデータを保持するデータ保持用レジスタと、ビットサーチ演算を行うサーチ演算回路と、ビットサーチ演算結果を格納するサーチ演算結果レジスタとを備えて構成され、前記サーチ演算回路は、前記指定ビット位置レジスタの指し示す任意のビット位置から前記データ保持用レジスタ内のデータの論理１あるいは０の連続個数の検索を実施する任意位置ビットサーチ機能と、この検索で得られた論理１あるいは０の連続個数と前記指定ビット位置レジスタ内の値とに基づいて、前記データ保持用レジスタ内のデータ中の論理１あるいは０が最下位ビット（ＬＳＢ）あるいは最上位ビット（ＭＳＢ）まで連続しているか否かを判断する論理連続性判定機能と、を有することを特徴とする。
【０００８】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
図１ないし図１４は本発明の一実施形態に係り、図１は情報記録再生装置の概略構成を示すブロック図、図２はキャッシュメモリとフラグレジスタの対応関係を模式的に示した説明図、図３はビットサーチ回路の全体構成を示すブロック図、図４はＦＬＡＧモジュールの各レジスタのビットの順位付けを示す説明図、図５はＦＬＡＧモジュールの各ビットの回路構成を示す回路図、図６はＳＥＴレジスタの各ビットの割り付けを示す説明図、図７はＳＥＴレジスタとＭＡＳＫモジュールの出力の真理値テーブルを示す動作説明図、図８はＳＥＲＣＨ演算モジュールの回路構成を回路図、図９はＳＥＲＣＨ演算モジュールの結果に対するＥＮＣＯＤＥモジュールの出力の真理値テーブルを示す動作説明図、図１０はＣＯＭＰモジュールの回路構成を示す回路図、図１１はＳＴＡＴＵＳレジスタの各ビットの割り付けを示す説明図、図１２はＳＴＡＴＵＳレジスタの各ビットの回路構成を示す回路図、図１３はビットサーチ回路の動作を示すタイミングチャート、図１４は本実施形態におけるビットサーチ動作を示すフローチャートである。
【０００９】
本実施形態では、情報記録再生装置の一例としてディスク状媒体にデータの記録再生を行うディスク記録再生装置の構成例を示す。ディスク状媒体としては、ハードディスクなどの磁気記録媒体、光磁気ディスクなどの光磁気記録媒体、光ディスク、ＣＤ−ＲＯＭなどの光記録媒体等が挙げられる。
【００１０】
情報記録再生装置は、ホストコンピュータまたはパーソナルコンピュータ等のホスト１と接続され、媒体に対して記録再生を行うディスク装置３の各種制御を行うディスク制御装置２を有して構成されている。ディスク制御装置２は、該装置の制御シーケンスを担うプロセッサ５と、このプロセッサ５を動作させるためのマイクロコードが予め格納されているＲＯＭ４と、書き込みデータ及び読み出しデータを一時格納するキャッシュメモリ９と、ＳＣＳＩバス等のインタフェースを介してホスト１との間でデータの受け渡しを行うホストインタフェース制御部６と、キャッシュメモリ９へのアクセスを実施するデータ転送制御部７と、ディスク装置３へのデータの書き込み，読み出しに伴うデータの変調，復調、及びディスク装置３内のディスクの位置決めを実施するドライブインタフェース制御部８と、データ書き込み時や読み出し時にキャッシュメモリ９内の有効なデータのアドレスに対応して論理“１”が格納されるプロセッサ５内などに設けられたフラグレジスタのビットをサーチするビットサーチ回路１０と、を備えて構成されている。
【００１１】
このような構成の情報記録再生装置において、ホスト１とディスク装置３の記録媒体との間のデータ転送は、キャッシュメモリ９を介して行われる。このキャッシュメモリ９の管理は、ディスク制御装置２内のプロセッサ５が実施している。即ち、この情報記録再生装置において、ディスク装置３へのデータ書き込み動作、もしくは、ディスク装置３からのデータ読み出し動作は、ホスト１が直接実施しておらず、ディスク制御装置２においてプロセッサ５が制御するようになっている。
【００１２】
ディスク装置３へデータを書き込むライト動作時は、ディスク制御装置２内のプロセッサ５がホスト１から送られてくるデータを一旦キャッシュメモリ９の空きエリアに書き込む。そして、キャッシュメモリ９内のデータは、プロセッサ５がディスク装置３の制御シーケンスの空き時間を利用して、記録媒体内に書き込まれる。
【００１３】
さらに、プロセッサ５は、キャッシュメモリ９への書き込み時において、データを書き込むと同時に書き込んだキャッシュメモリ９のアドレスと１対１の関係にあるフラグレジスタに論理の“１”をセットする。こうすることで、プロセッサ５は、キャッシュメモリ９にデータを書き込んだ時間からある程度の時間経過した場合でも、前記フラグレジスタの論理の“１”をサーチすることによって、キャッシュメモリ９内の書き込み完了していないデータを検索することができ、記録媒体に対してキャッシュメモリ９内の有効なデータのみを書き込むことが可能となる。なお、このフラグレジスタは、プロセッサ５内のメモリエリアなどに設けられている。
【００１４】
ディスク装置３からデータを読み出すリード動作時は、ディスク制御装置２内のプロセッサ５がキャッシュメモリ９を検索してキャッシュヒットしたデータをキャッシュメモリ９から読み出してホスト１へ渡す。この検索時において、プロセッサ５はホスト１から要求されたデータのキャッシュメモリ９上のアドレスに対する前記フラグレジスタの論理の“１”を調べることによって、ホスト１が所望するデータがキャッシュヒットしているか否かを判断することができ、要求されたデータを迅速に転送することが可能となる。
【００１５】
前記キャッシュメモリ９のアドレスとフラグレジスタとの対応関係を図２に示す。フラグレジスタは、キャッシュメモリのアドレス区間毎にキャッシュセグメントが分かれており、複数ワードとしてプロセッサ５等のメモリエリアに割り当てられている。図２の例では、８ビットずつのキャッシュセグメントがフラグＡ，フラグＢ，フラグＣ，…のように分割されて割り当てられている。
【００１６】
例えば、キャッシュメモリ９内の図２において斜線で示すアドレスに有効なデータが格納されている場合は、対応するフラグレジスタのビットに論理の“１”がセットされている。
【００１７】
このようなキャッシュメモリ９のアドレス検索は、前記フラグレジスタの各ビットの論理検索（以下、ビットサーチと称する）に頼らざるを得ない。本実施形態では、このビットサーチをビットサーチ回路１０によって実現している。すなわち、書き込み動作時にキャッシュメモリ９の空きエリアの検索やキャッシュメモリ９上のデータが書き込み済みか否かの判断を実施したり、読み出し動作時にキャッシュメモリ９上のデータがヒットしたか否かの判断を実施する際に、ビットサーチ回路１０によってビットサーチを行い、キャッシュメモリ９のアドレス検索を実行する。
【００１８】
本実施形態におけるビットサーチ回路１０の構成及び動作を以下に説明する。図３はビットサーチ回路１０の全体構成を示したものである。ビットサーチ回路１０は、ＦＬＡＧモジュール１１、ＳＥＲＣＨ演算モジュール１２、ＳＥＴレジスタ１３、ＭＡＳＫモジュール１４、ＥＮＣＯＤＥモジュール１５、ＳＵＢモジュール１６、ＣＯＭＰモジュール１７、ＳＴＡＴＵＳレジスタ１８、ＭＯＤＥモジュール１９、ＳＥＱモジュール２０の１０個の機能モジュールにより構成されている。このビットサーチ回路１０は、プロセッサ５の内部または外部においてハードウェアによって構成されている。
【００１９】
ＦＬＡＧモジュール１１は、ビットサーチの対象となるデータを保持するデータ保持用レジスタであり、本例では３２ビットのレジスタで構成されている。なお、ビット数については３２ビットに限らず、システムの構成やユーザの所望するビット幅（すなわちフラグレジスタのビット幅）に応じてこれ以外に設定しても良い。
【００２０】
このＦＬＡＧモジュール１１は、例えば上位プロセッサ（プロセッサ５等）のデータバス２１に接続される。ＦＬＡＧモジュール１１は、ＦＬＡＧレジスタａ〜ｄからなる４個の８ビットのレジスタとして構成され、１６ビットのデータバス２１を介してデータを取り込める構造となっている。また、ＦＬＡＧレジスタａ〜ｄの各出力も前記データバス２１に接続されており、ＦＬＡＧモジュール１１の出力値を上位プロセッサが読み出せるようにアドレッシングされている。
【００２１】
また、図４に示すように、ＦＬＡＧモジュール１１の各レジスタａ〜ｄは、ビットの順位付けがなされている。すなわち、ＦＬＡＧレジスタａのＭＳＢビット（最上位ビット）がＦＬＡＧモジュール１１全体のＭＳＢビットとして位置付けられ、以下順番にＦＬＡＧレジスタｄのＬＳＢビット（最下位ビット）まで順位が割り振られているものとする。
【００２２】
前記ＦＬＡＧモジュール１１の各ビットの回路構成を図５に示す。ここで、図４中のＦＬＡＧレジスタａのＭＳＢビットである３１が図５中の一点鎖線で囲んだフラグ３１に相当する。ＦＬＡＧモジュール１１の各ビットは、以下の３つの機能を有している。
【００２３】
［１］プロセッサ５のライトストローブ信号（図５中の“ＷＥ”）に同期して、該プロセッサのデータバス２１上の値を各ビットにロードする機能。
【００２４】
［２］ビットサーチ演算終了パルス（図５中の“ＥＮＤ”）と後述するＳＥＲＣＨ演算モジュール１２から出力されるサーチ結果信号ＳＥＲ［３１：０］（なお、明細書や図面においてＸ［３１：０］は、Ｘ３１，Ｘ３０，…，Ｘ０を表している）とのＡＮＤ（論理積）ゲート出力、及び後述するＭＯＤＥモジュール１９のＳＥＬ１出力が“１”になった場合の各出力に同期して、各ビットのフリップフロップをクリアする機能。
例えばフラグ３１の場合、ビットサーチ演算終了パルスＥＮＤとサーチ結果信号ＳＥＲ３１のＡＮＤ結果により、フリップフロップをクリアする。
【００２５】
［３］後述するＭＯＤＥモジュール１９のＳＥＬ２出力の状態に応じて、各ビットのフリップフロップ出力を正論理で出力させるか、負論理で出力させるかを選択する機能。
【００２６】
このＦＬＡＧモジュール１１の各ビットの出力は、ＤＡＴＡ３１〜ＤＡＴＡ０として後述するＳＥＲＣＨ演算モジュール１２へ入力される。
【００２７】
図６はビットサーチを開始するビット位置データを格納する指定ビット位置レジスタであるＳＥＴレジスタ１３の構成を示したものである。ＳＥＴレジスタ１３は、上位プロセッサのデータバス２１に接続され、データバス２１上の値をロードできるよう構成されている。このＳＥＴレジスタ１３は、ＬＳＢビットから順にＤ０〜Ｄ４のビットが割り付けられた５ビットのもので構成されている。なお、ＳＥＴレジスタ１３が５ビットとなっているのは、本実施形態のＦＬＡＧモジュール１１が３２ビットで構成されているからであり、必ずしも５ビットである必要はなく、ＦＬＡＧモジュール１１のビット数に応じて適当なビット数で構成すればよい。
【００２８】
図７はＳＥＴレジスタ１３とこのＳＥＴレジスタ１３の出力ＳＥＴ４〜ＳＥＴ０を受けてＳＥＲＣＨ演算モジュール１２に入力するマスク信号を生成するＭＡＳＫモジュール１４のそれぞれの出力に対応する真理値テーブルを示したものである。
【００２９】
例えば、ＦＬＡＧモジュール１１の２０ビット目からのビットサーチを実施したい場合、ＳＥＴレジスタ１３には予め１０進数の２０を１６進数で表した“１４Ｈ”（ｘｘＨは１６進数であることを表す）の値を書き込んでおけば良い。こうすると、ＭＡＳＫモジュール１４の出力ＭＡＳＫ３１〜ＭＡＳＫ０は、図７より“ＦＦＥ０００００Ｈ”となり、このマスク信号が後述するＳＥＲＣＨ演算モジュール１２に反映される。なお、ＭＡＳＫモジュール１４は、図７の真理値テーブルに基づく組み合わせ回路にて実現されるが、ここでは回路の具体的な構成説明は省略する。
【００３０】
図８はＳＥＲＣＨ演算モジュール１２の回路構成を示したものである。図中のＤＡＴＡ３１〜ＤＡＴＡ０は、ＦＬＡＧモジュール１１の各ビットの出力であり、ＭＡＳＫ３１〜ＭＡＳＫ０は前述したＭＡＳＫモジュール１４の出力である。
【００３１】
例えば、ＦＬＡＧモジュール１１の２０ビット目からのビットサーチを実施したい場合、ＭＡＳＫモジュール１４の出力は前述したように“ＦＦＥ０００００Ｈ”となり、ＳＥＲＣＨ演算モジュール１２内のＯＲ（論理和）ゲートによって、ＤＡＴＡ３１〜ＤＡＴＡ２１は“１”にマスクされてＳＥＲＣＨ演算モジュール１２の出力ＳＥＲ３１〜ＳＥＲ２１は強制的に“１”になる。
【００３２】
また、ＦＬＡＧモジュール１１の２０ビット目以下のＳＥＲＣＨ演算モジュール１２の出力ＳＥＲ３０〜ＳＥＲ０については、ＦＬＡＧレジスタの値が“０”となったビット以下全て“０”になる。この演算はＳＥＲＣＨ演算モジュール１２内のＡＮＤゲートによって実施される。なお、本実施形態では、サーチ方向をＦＬＡＧモジュール１１のＭＳＢ方向からとしているが、回路構成次第ではＬＳＢ方向からとしても良い。
【００３３】
図９はＳＥＲＣＨ演算モジュール１２の出力を受けてＦＬＡＧモジュール１１に論理の“１”がいくつあったかを求める組合わせ回路であるＥＮＣＯＤＥモジュール１５の真理値テーブルを示したものである。
【００３４】
例えば、ＳＥＲＣＨ演算モジュール１２の出力ＳＥＲ３１〜ＳＥＲ０が、
1111 1111 1111 1111 0000 0000 0000 0000
である場合、ＥＮＣＯＤＥモジュール１５の出力は“１０Ｈ”となる。なお、ＥＮＣＯＤＥモジュール１５は、図９の真理値テーブルに基づく組み合わせ回路にて実現されるが、ここでは回路の具体的な構成説明は省略する。
【００３５】
ＥＮＣＯＤＥモジュール１５の出力側に設けられるＳＵＢモジュール１６は、前記ＥＮＣＯＤＥモジュール１５の出力と前記ＳＥＴレジスタ１３の反転出力の減算、もしくは前記ＥＮＣＯＤＥモジュール１５の出力と固定値“１ＦＨ”の減算を実施する回路である。これらの減算の切り換えは、ＭＯＤＥモジュール１９のＳＥＬ１出力に基づいて実施される。ＭＯＤＥモジュール１９は、３ビットのレジスタで構成され、データバス２１に接続されており、上位プロセッサからの値の書き込みが可能となっている。
【００３６】
ＭＯＤＥモジュール１９のＳＥＬ１出力が“１”のとき、前記ＥＮＣＯＤＥモジュール１５の出力から前記ＳＥＴレジスタ１３の反転出力の減算を実施する。これは、ＦＬＡＧモジュール１１の指定ビット位置からの論理の“１”がいくつ連続しているかを求める演算である。
【００３７】
ＭＯＤＥモジュール１９のＳＥＬ１出力が“０”のとき、固定値“１ＦＨ”から前記ＥＮＣＯＤＥモジュール１５の出力値の減算を実施する。これは、ＦＬＡＧモジュール１１のＭＳＢビットからビットサーチを実施したとき、どのビット位置で初めて論理の“１”がセットされているのかを検出する演算である。
【００３８】
図１０は前記ＳＵＢモジュール１６の出力ＡＮＳ５〜ＡＮＳ０を受けて、ビットサーチ演算の結果よりＦＬＡＧモジュール１１の指定ビット位置からＬＳＢビットまで論理の“１”が連続していることを検出する回路であるＣＯＭＰモジュール１７の構成を示したものである。
【００３９】
図中のＤ２入力には、ＳＥＴレジスタ１３の出力値が入力されており、Ｄ１入力には前記ＳＵＢモジュール１６の出力が入力されている。ＦＬＡＧモジュール１１の指定ビット位置からＦＬＡＧモジュール１１のＬＳＢビットまで論理の“１”が連続していることを検出すると、ＣＯＭＰモジュール１７の出力ＣＭＰは“１”になる。
【００４０】
図１１及び図１２は前記ＣＯＭＰモジュール１７の出力ＣＭＰ、ビットサーチ演算終了パルスＥＮＤ、ＳＵＢモジュール１６の出力ＡＮＳ５〜ＡＮＳ０を取り込むためのサーチ演算結果格納用レジスタであるＳＴＡＴＵＳレジスタ１８の構成を示したものである。図１１はＳＴＡＴＵＳレジスタ１８の各ビットの割り付けを、図１２はＳＴＡＴＵＳレジスタ１８の各ビットの回路構成をそれぞれ示している。
【００４１】
ＳＴＡＴＵＳレジスタ１８は、８ビットのレジスタにより構成されている。ＳＴＡＴＵＳレジスタ１８において、Ｓ７ビットはサーチ演算が終了したことを示すサーチ演算終了ビット、Ｓ６はＦＬＡＧモジュール１１の指定ビット位置からＬＳＢビットまで論理の“１”が連続していることを検出されたことを示す“１”連続検出ビットである。また、Ｓ５〜Ｓ０は前記ＳＵＢモジュール１６の出力ＡＮＳ５〜ＡＮＳ０であり、これはＦＬＡＧモジュール１１の指定ビット位置からの論理の“１”の連続個数、もしくはＦＬＡＧモジュール１１のＭＳＢビットからの論理の“１”の開始ビット位置に相当する。上位プロセッサは、前記サーチ演算終了ビットをモニタすることによって、ビットサーチ演算結果を知ることができる。
【００４２】
ＭＯＤＥモジュール１９は、ビットサーチ演算のサーチモードおよび開始命令をストアする３ビットのレジスタである。ＭＯＤＥモジュール１９の出力Ｑ１（ＳＴＡＲＴ）は、サーチ演算の開始を指示するサーチ演算開始ビットであり、上位プロセッサがこのビットに“１”を書き込むことで演算が開始される。ＭＯＤＥモジュール１９の出力Ｑ２（ＳＥＬ１）は、前記ＳＵＢモジュール１６の減算を切り換える減算切り換えビットである。ＭＯＤＥモジュール１９の出力Ｑ３（ＳＥＬ２）は、前記ＦＬＡＧモジュール１１中の論理の“１”のサーチもしくは論理“０”のサーチの切り換えを行うサーチ切り換えビットである。ＳＥＬ２の値が“１”のときには、ＦＬＡＧモジュール１１中の論理の“１”のビットサーチを実施し、ＳＥＬ２の値が“０”のときには、ＦＬＡＧモジュール１１中の論理“０”のビットサーチを実施する。
【００４３】
ＳＥＱモジュール２０は、ビットサーチ演算専用のシーケンサである。前記ＭＯＤＥモジュール１９の出力のＳＴＡＲＴが“１”になったとき、まずＳＴＡＴＵＳレジスタ１８をオールクリアするパルスＣＬＲを出力する。そして、ある期間経過した後、ビットサーチ演算終了パルスＥＮＤを前記ＳＴＡＴＵＳレジスタ１８及びＦＬＡＧモジュール１１に対して出力する。また、ビットサーチ演算終了パルスＥＮＤによって、前記ＭＯＤＥモジュール１９のＳＴＡＲＴビットはクリアされる。
【００４４】
前記ビットサーチ回路１０において、ＳＥＲＣＨ演算モジュール１２、ＳＥＴレジスタ１３、ＭＡＳＫモジュール１４、ＥＮＣＯＤＥモジュール１５、ＳＵＢモジュール１６の各モジュールにより、ＦＬＡＧモジュール１１の任意のビット位置からのビットサーチを実行する任意位置ビットサーチ機能ブロック３１が構成される。また、ＣＯＭＰモジュール１７、ＳＴＡＴＵＳレジスタ１８により、ビットサーチを行ったＦＬＡＧモジュール１１内の論理“１”あるいは“０”がＬＳＢまで連続しているか否かを判断する論理連続性判定機能ブロック３２が構成される。また、ＦＬＡＧモジュール１１は、前述したようにビットサーチを行ったＦＬＡＧモジュール１１内の論理“１”あるいは“０”が連続していたビット位置のみをクリアするビットクリア機能を有している。
【００４５】
次に、ビットサーチ回路１０の動作として、ビットサーチの演算例を詳細に説明する。図１３に以降説明するビットサーチのタイミングチャートを示す。
【００４６】
ビットサーチの一例としてＦＬＡＧモジュール１１に次の値がセットされた場合のビットサーチ演算について順次説明する。
ＦＬＡＧ：  0000 1111 1111 0000 0000 1111 0000 0000  （0FF00F00Ｈ）
ＭＳＢ側                            ＬＳＢ側
【００４７】
（１）まず、第１の演算例として、ＦＬＡＧモジュール１１のＭＳＢからビットサーチして最初の論理“１”のビット位置を知る場合の動作を説明する。
【００４８】
ＳＥＴレジスタ１３は、“１ＦＨ”即ち３１ビット目からのビットサーチを行う設定にしておく。また、ＭＯＤＥモジュール１９のＳＥＬ２ビットを“０”に、ＳＥＬ１ビットを“０”にそれぞれ設定しておく。
【００４９】
以上の状態で、ビットサーチを開始した際のビットサーチ回路１０の各モジュールの出力を逐次示す。
【００５０】
ＦＬＡＧモジュール１１の出力は、ＳＥＬ２＝０より論理“０”の検出であるため以下のように反転出力となる。
ＦＬＡＧ出力：1111 0000 0000 1111 1111 0000 1111 1111  （F00FF0FFＨ）
【００５１】
また、ＳＥＲＣＨ演算モジュール１２の出力ＳＥＲ３１〜ＳＥＲ０、ＥＮＣＯＤＥモジュール１５の出力、及びＳＵＢモジュール１６の出力ＡＮＳ５〜ＡＮＳ０は、以下のようになる。このとき、ＳＵＢモジュール１６では、ＳＥＬ１＝０より固定値“１ＦＨ”からＥＮＣＯＤＥモジュール１５の出力値の減算が行われる。
ＳＥＲＣＨ出力：1111 0000 0000 0000 0000 0000 0000 0000  （F0000000Ｈ）
ＥＮＣＯＤＥ出力：  000100  （０４Ｈ，“１”が４つ連続）
ＳＵＢ出力：        011011
（１ＢＨ，ＦＬＡＧモジュール１１の２７ビット目に最初の“１”を検出）
【００５２】
これらのＳＵＢモジュール１６の出力ＡＮＳ５〜ＡＮＳ０、ＣＯＭＰモジュール１７の出力ＣＭＰは、ＳＴＡＴＵＳレジスタ１８に取り込まれ、ＦＬＡＧモジュール１１内の論理“１”の開始ビット位置のデータが保持される。
【００５３】
ビットサーチ演算終了後、ＦＬＡＧモジュール１１は、ビットサーチ演算終了パルスＥＮＤとＳＥＲＣＨ演算モジュール１２の出力ＳＥＲ３１〜ＳＥＲ０のＡＮＤ結果により、各ビットのフリップフロップがクリアされる。しかしこの場合、以上のビットサーチ演算が終了しても、ＦＬＡＧモジュール１１は３１ビットから２８ビットはクリアされない。これは、ＳＥＬ１を“０”に設定しているためである。よって、上記ビットサーチ演算終了後のＦＬＡＧモジュール１１の出力は以下のようになる。
ＦＬＡＧ出力：1111 0000 0000 1111 1111 0000 1111 1111  （F00FF0FFＨ）
【００５４】
（２）次に、第２の演算例として、ＦＬＡＧモジュール１１の任意のビット位置からビットサーチして論理“１”の連続ビット個数を知る場合の動作を説明する。
【００５５】
ＳＥＴレジスタ１３は、“１ＢＨ”即ち２７ビット目からのビットサーチを行う設定にしておく。これは、上記ＭＳＢからのビットサーチにて検出された最初の論理“１”のビット位置である。また、ＭＯＤＥモジュール１９のＳＥＬ２ビットを“１”に、ＳＥＬ１ビットを“１”にそれぞれ設定しておく。
【００５６】
以上の状態で、ビットサーチを開始した際のビットサーチ回路１０の各モジュールの出力を逐次示す。
【００５７】
ＦＬＡＧモジュール１１の出力は、ＳＥＬ２＝１より論理“１”の検出であるため以下のようになる。
ＦＬＡＧ出力：0000 1111 1111 0000 0000 1111 0000 0000  （0FF00F00Ｈ）
【００５８】
また、ＳＥＲＣＨ演算モジュール１２の入力は、Ｄ１，Ｄ２がそれぞれ以下のようになる。
ＳＥＲＣＨＤ１入力：
0000 1111 1111 0000 0000 1111 0000 0000  （0FF00F00Ｈ）
ＳＥＲＣＨＤ２入力：
1111 0000 0000 0000 0000 0000 0000 0000  （F0000000Ｈ）
【００５９】
ここで、Ｄ２入力はＭＡＳＫモジュール１４の出力であり、ＳＥＴレジスタ１３は、“１ＢＨ”にセットされているため、ＭＡＳＫモジュール１４の出力ＭＡＳＫ３１〜ＭＡＳＫ２８は全て“１”となり、図８のＳＥＲＣＨ演算モジュール１２における３１ビット目から２８ビット目までのＯＲ回路出力は全て“１”となる。
【００６０】
従って、ＳＥＲＣＨ演算モジュール１２の出力ＳＥＲ３１〜ＳＥＲ０、及びＥＮＣＯＤＥモジュール１５の出力は、以下のようになる。
ＳＥＲＣＨ出力：1111 1111 1111 0000 0000 0000 0000 0000  （FFF00000Ｈ）
ＥＮＣＯＤＥ出力：  001100  （０ＣＨ，“１”が１２個連続）
【００６１】
そして、ＳＵＢモジュール１６では、ＳＥＬ１＝１よりＥＮＣＯＤＥモジュール１５の出力値からＳＥＴレジスタ１３の反転出力の減算が行われる。即ち、
001100−00100（“１ＢＨ”の反転）＝001000
となり、ＳＵＢモジュール１６の出力ＡＮＳ５〜ＡＮＳ０は以下のようになる。
ＳＵＢ出力：        001000  （０８Ｈ，“１”が８個連続）
【００６２】
また、ＣＯＭＰモジュール１７では、ＳＥＴレジスタ１３の出力とＳＵＢモジュール１６の出力とが比較される。この場合、ＳＵＢモジュール１６の出力値は、ＳＥＴレジスタ１３の出力値＋１の値である１ＣＨ（２８）と等しくない、つまりＦＬＡＧモジュール１１の２７ビット目から“１”が２８個連続していないため、ＣＯＭＰモジュール１７の出力ＣＭＰは“０”となる。
ＣＯＭＰ出力：  ０
【００６３】
これらのＳＵＢモジュール１６の出力ＡＮＳ５〜ＡＮＳ０、ＣＯＭＰモジュール１７の出力ＣＭＰは、ＳＴＡＴＵＳレジスタ１８に取り込まれ、ＦＬＡＧモジュール１１内の論理“１”の連続個数のデータが保持される。
【００６４】
ビットサーチ演算終了後、ＦＬＡＧモジュール１１は、ビットサーチ演算終了パルスＥＮＤとＳＥＲＣＨ演算モジュール１２の出力ＳＥＲ３１〜ＳＥＲ０のＡＮＤ結果により、各ビットのフリップフロップがクリアされる。即ち、以上のビットサーチ演算が終了すると、ＦＬＡＧモジュール１１は３１ビットから２０ビットまでがクリアされて出力は以下のようになる。これは、ＳＥＬ１を“１”に設定しているためである。
ＦＬＡＧ出力：0000 0000 0000 0000 0000 1111 0000 0000  （00000F00Ｈ）
【００６５】
その後、再びＭＳＢからビットサーチを行って最初の論理“１”のビット位置を求める演算を実行し、以降はＦＬＡＧモジュール１１の論理“１”のビットが無くなるまで、ビットサーチ演算を繰り返す。
【００６６】
上述したようなビットサーチ演算を行うビットサーチ回路１０の動作について図１４を参照しながら説明する。なお、ビットサーチ回路１０の各部の制御は上位プロセッサであるプロセッサ５により行われる。
【００６７】
まず、ステップＳ１で、プロセッサ５は該プロセッサ５等のメモリエリアに割り当てられているフラグレジスタに格納されているデータのうち、３２ビット分のセグメントのデータをデータバス２１を介してＦＬＡＧモジュール１１にセットする。
【００６８】
そして、ステップＳ２で、前記（１）において述べたものと同様のビットサーチ演算によりＦＬＡＧモジュール１１のビットサーチを行う。即ち、ＳＥＲＣＨ演算モジュール１２，ＥＮＣＯＤＥモジュール１５，ＳＵＢモジュール１６により、ＦＬＡＧモジュール１１のＭＳＢからビットサーチして最初の論理“１”のビット位置を検出する演算を行う。
【００６９】
この第１のビットサーチ演算の終了後、ステップＳ３で、ＦＬＡＧモジュール１１において論理“１”が検出されたか否かを判断し、検出された場合はＳ４に進み、ＳＥＴレジスタ１３に検出された論理“１”のビット位置のデータをセットする。なお、ステップＳ３でＦＬＡＧモジュール１１において論理“１”が検出されなかった場合は、処理を終了する。
【００７０】
次いで、ステップＳ５で、前記（２）において述べたものと同様のビットサーチ演算によりＦＬＡＧモジュール１１のビットサーチを行う。即ち、ＳＥＲＣＨ演算モジュール１２，ＥＮＣＯＤＥモジュール１５，ＳＵＢモジュール１６により、ＦＬＡＧモジュール１１の前記検出された論理“１”のビット位置からビットサーチして論理“１”の連続ビット個数を検出する演算を実行開始する。
【００７１】
この第２のビットサーチ演算の終了後、ステップＳ６で、ＦＬＡＧモジュール１１において検出された論理“１”が連続していたビット位置のみがクリアされる。またこのとき、該クリアされたＦＬＡＧモジュール１１のデータを前記フラグレジスタの対応するセグメントに上書きする。
【００７２】
そして、ステップＳ７で、ＣＯＭＰモジュール１７，ＳＴＡＴＵＳレジスタ１８により、前記検出されたＦＬＡＧモジュール１１の論理“１”のビットがＬＳＢまで連続しているか否かを判断し、ＬＳＢまで連続している場合は、現在のＦＬＡＧモジュール１１内の論理“１”の開始ビット位置と論理“１”の連続個数のデータをＳＴＡＴＵＳレジスタ１８からプロセッサ５内のメモリエリアへ退避させた後、ステップＳ８に進んで、ＦＬＡＧモジュール１１にフラグレジスタの次の３２ビット分のセグメントのデータをデータバス２１を介してセットする。これと共に、ＳＥＴレジスタ１３にＦＬＡＧモジュール１１のＭＳＢのビット位置データをセットする。
【００７３】
その後、ステップＳ５に戻り、ステップＳ５ないしＳ７において前記第２のビットサーチ演算を実行し、検出されたＦＬＡＧモジュール１１の論理“１”のビットがＬＳＢまで連続しなくなるまでステップＳ５ないしＳ８の動作を繰り返す。
【００７４】
ステップＳ７で前記検出されたＦＬＡＧモジュール１１の論理“１”のビットがＬＳＢまで連続していない場合は、ステップＳ９に進み、論理“１”が検出されたフラグレジスタのビットに対応するキャッシュメモリ９内の該当アドレスのデータをホスト１またはディスク装置３へ転送する。その後、ステップＳ１に戻ってＦＬＡＧモジュール１１において論理“１”が検出されなくなるまで上記動作を繰り返す。
【００７５】
本実施形態では、図１４のフローチャートに示すようなビットサーチを行うことにより、以下に挙げるような点が改善されている。
【００７６】
まず第１に、任意のビット位置からビットサーチを可能としたことにより、ＦＬＡＧモジュール１１の前記第２のビットサーチ演算（図１４のステップＳ５）においてＭＳＢからのサーチの必要性は無くなり、処理時間が短縮される。従来の構成では、ビットサーチの開始位置はＭＳＢ等の固定位置に決められており、サーチ時間に無駄が生じ、プロセッサとキャッシュメモリ間のアクセスに時間を要することがあった。
【００７７】
第２に、ＦＬＡＧモジュール１１の論理“１”のビットがＬＳＢまで連続しているか否かの判断（図１４のステップＳ７）により、ＦＬＡＧモジュール１１の複数回にまたがるビットサーチ演算において、即ちフラグレジスタの複数のセグメント間において論理“１”の連続性を判定することが可能となったため、フラグレジスタの複数のセグメント間にまたがっているビットに対応するキャッシュメモリ９のデータを連続して読み出して、ディスク装置３の記録媒体に書き込んだり、ホスト１へ転送することが可能となる。従来の構成では、キャッシュメモリ内の有効なデータがフラグレジスタの複数のセグメント間にまたがっている場合は、複数回に分けて読み出す必要があり、ディスク状記録媒体の場合は一周するのを待ってから継続する処理を行うことになるため、処理時間を増加させることがあった。
【００７８】
第３に、ＦＬＡＧモジュール１１の前記第２のビットサーチ演算（図１４のステップＳ５）の実行後、ステップＳ６においてＦＬＡＧモジュール１１内の論理“１”が連続していたビット位置のみをクリアすることができるため、フラグレジスタのクリアをプロセッサがソフトウェア的に実行する必要性は無くなり、より処理時間が短縮される。従来の構成では、プロセッサがソフトウェアによりビットクリアコマンド等で１ビットずつフラグレジスタをクリアするようになっていたため、処理に時間を要していた。
【００７９】
以上説明したように、上記構成のビットサーチ回路１０を光磁気ディスク装置等の情報記録再生装置に設けることにより、ビットサーチ動作をより迅速に実施させることが可能となり、以下のような効果を装置にもたらすことができる。即ち、任意の位置からビットサーチが可能となったことで、サーチ時間の無駄をなくすことができ、キャッシュメモリへのアクセス時間を短縮することができる。また、フラグレジスタの複数のセグメント間の論理の“１”の連続性の検出、つまりフラグレジスタの複数のセグメント間の有効なデータの連続性の検出を可能とすることで、記録媒体へのデータ書き込み時間やキャッシュメモリからのデータ読み出し時間を短縮することができる。また、ビットサーチ回路がフラグレジスタのビットクリアをソフトウェアに代わりハードウェア的に実施することで、キャッシュメモリへのアクセス時間を短縮することができる。
【００８０】
以上の点からシステムの処理時間をより短縮することが可能となる。
【００８１】
［付記］
（１）  前記ビットサーチ回路は、複数ビットで構成されるデータ中の論理が１あるいは０の連続個数を検索するものであり、ビットサーチを開始するビット位置データを格納する指定ビット位置レジスタと、ビットサーチを行う対象のデータを保持するデータ保持用レジスタと、ビットサーチ演算を行うサーチ演算回路と、ビットサーチ演算結果を格納するサーチ演算結果レジスタとを備えて構成され、
前記データ保持用レジスタは、前記サーチ演算回路によるサーチ演算が終了した際に、該データ保持用レジスタの論理の１あるいは０が連続していたビット位置のみをリセットあるいはプリセットするビットクリア機能を有することを特徴とする請求項１に記載の情報記録再生装置。
【００８２】
【発明の効果】
以上説明したように本発明によれば、キャッシュメモリへのアクセス速度の更なる高速化を可能とし、ホストと記録媒体間のデータ転送を高速に実施することが可能で、ひいては情報の記録または再生処理をより高速化することが可能となる効果がある。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る情報記録再生装置の概略構成を示すブロック図
【図２】キャッシュメモリとフラグレジスタの対応関係を模式的に示した説明図
【図３】本実施形態のビットサーチ回路の全体構成を示すブロック図
【図４】ＦＬＡＧモジュールの各レジスタのビットの順位付けを示す説明図
【図５】ＦＬＡＧモジュールの各ビットの回路構成を示す回路図
【図６】ＳＥＴレジスタの各ビットの割り付けを示す説明図
【図７】ＳＥＴレジスタとＭＡＳＫモジュールの出力の真理値テーブルを示す動作説明図
【図８】ＳＥＲＣＨ演算モジュールの回路構成を回路図
【図９】ＳＥＲＣＨ演算モジュールの結果に対するＥＮＣＯＤＥモジュールの出力の真理値テーブルを示す動作説明図
【図１０】ＣＯＭＰモジュールの回路構成を示す回路図
【図１１】ＳＴＡＴＵＳレジスタの各ビットの割り付けを示す説明図
【図１２】ＳＴＡＴＵＳレジスタの各ビットの回路構成を示す回路図
【図１３】本実施形態のビットサーチ回路の動作を示すタイミングチャート
【図１４】本実施形態におけるビットサーチ動作を示すフローチャート
【符号の説明】
１…ホスト
２…ディスク制御装置
３…ディスク装置
５…プロセッサ
７…データ転送制御部
９…キャッシュメモリ
１０…ビットサーチ回路
１１…ＦＬＡＧモジュール
１２…ＳＥＲＣＨ演算モジュール
１３…ＳＥＴレジスタ
１４…ＭＡＳＫモジュール
１５…ＥＮＣＯＤＥモジュール
１６…ＳＵＢモジュール
１７…ＣＯＭＰモジュール
１８…ＳＴＡＴＵＳレジスタ
１９…ＭＯＤＥモジュール
２０…ＳＥＱモジュール
２１…データバス
３１…任意位置ビットサーチ機能ブロック
３２…論理連続性判定機能ブロック
【図１】
0003808935.tif 000002
【図２】
0003808935.tif 000003
【図３】
0003808935.tif 000004
【図４】
0003808935.tif 000005
【図５】
0003808935.tif 000006
【図６】
0003808935.tif 000007
【図７】
0003808935.tif 000008
【図８】
0003808935.tif 000009
【図９】
0003808935.tif 000010
【図１０】
0003808935.tif 000011
【図１１】
0003808935.tif 000012
【図１２】
0003808935.tif 000013
【図１３】
0003808935.tif 000014
【図１４】
0003808935.tif 000015