(57)【特許請求の範囲】
【請求項１】
コンピュータシステムに予め存在するデータ記憶装置に記憶されたデータの変更を防止するとともに当該データを保護するための装置であって、装置は、そのような存在するデータ記憶装置でのデータが変更またはコピーされることができるという錯覚または誤った印象を与えるという方式で、当該データの変更を防止するとともに当該データを保護し、前記装置は、
ローカルメモリと、
存在するデータ記憶装置を接続するための手段と、
二次データ記憶装置を接続するための手段と、
前記コンピュータシステムにデータ記憶装置バスを経由して接続して、あたかも前記装置が、存在するデータ記憶装置であるかのように、前記コンピュータシステムに見せるためのロジック手段と、を備え、
前記ローカルメモリは、前記コンピュータシステムの読出し要求されるデータは、前記存在するデータ記憶装置または前記二次データ記憶装置から検索されるべきかを指示するフラグを有し、
前記ロジック手段は、
コンピュータシステムから書き込み要求されたデータを前記二次データ記憶装置に記憶する手段と、
前記コンピュータシステムによって読出し要求されたときに、前記ローカルメモリに記憶されたフラグに従い、前記存在するデータ記憶装置または前記二次データ記憶装置のうちから検索するための記憶装置を判定する判定手段と、
判定された記憶装置が前記二次データ記憶装置を示す時、検索されたデータは許可されないパターンを含むかを検査し、検査の結果を前記データ記憶装置バスを経由して転送するための検査転送手段と、
判定された記憶装置が前記存在するデータ記憶装置を示す時、検索されたデータを、検査すること無く前記データ記憶装置バスを経由して転送するための手段と、を含む装置。
【請求項２】
切替え可能なポジションとしてオンポジションまたはオフポジションを有するスイッチと、
前記スイッチが前記オンポジションであるとき、前記ロジック手段を動作させるように有効にし、前記オフポジションであるとき、前記ロジック手段を動作させないよう無効にする手段を、さらに備え、
前記ロジック手段が無効にされたとき、前記コンピュータシステムからの要求データに基づき前記存在するデータ記憶装置を読み書きする、請求項１に記載の装置。
【請求項３】
前記存在するデータ記憶装置および前記二次データ記憶装置への前記接続には、データ記憶装置インターフェイスが用いられる、請求項１または２に記載の装置。
【請求項４】
それに接続される前記データ記憶装置のみが、前記存在するデータ記憶装置である、請求項３に記載の装置。
【請求項５】
前記ローカルメモリの内容を消去するための手段を備える、請求項１から４のいずれか１項に記載の装置。
【請求項６】
前記検査転送手段は、
検索されたデータに許可されないパターンが含まれるとき、当該データを任意のパターンデータに変更する手段を有し、
前記検査の結果は、変更後の前記任意のパターンデータを含む、請求項１から５のいずれか１項に記載の装置。
【請求項７】
前記検査転送手段は、
検索されたデータに許可されないパターンが含まれるとき、データ転送を放棄する手段を有する、請求項１から５のいずれか１項に記載の装置。
【請求項８】
コンピュータシステムに存在するデータ記憶装置の変更を、そのような存在するデータ記憶装置が変更されることができるという錯覚または誤った印象を与えるという方式で、防止するための方法であって、データ記憶装置は、ローカルメモリを有し、
前記方法は、
前記コンピュータシステムから、データ記憶装置の検索または記憶のための要求を受信するステップと、
存在するデータ記憶装置から区別できない方式で、前記コンピュータシステムからの要求に応答する処理を実施する応答ステップと、を備え、
前記ローカルメモリは、前記コンピュータシステムの読出し要求されるデータは、前記存在するデータ記憶装置または二次データ記憶装置から検索されるべきかを指示するフラグを有し、
前記応答ステップは、
コンピュータシステムから書き込み要求されたデータを前記二次データ記憶装置に記憶するステップと、
前記コンピュータシステムによって読出し要求されたときに、前記ローカルメモリに記憶されたフラグに従い、前記存在するデータ記憶装置または前記二次データ記憶装置のうちから検索するための記憶装置を判定するステップと、
判定された記憶装置が前記二次データ記憶装置を示す時、検索されたデータに許可されないパターンが含まれるかを検査し、検査の結果を前記コンピュータシステムに転送するステップと、
判定された記憶装置が前記存在するデータ記憶装置を示す時、検索されたデータを、前記検査すること無く前記コンピュータシステムに転送するステップと、を含む方法。
【請求項９】
スイッチのポジションに従って、前記応答ステップによる処理を有効または無効に切替えるステップを、さらに備え、
前記スイッチは、切替え可能なポジションとしてオンポジションまたはオフポジションを有し、
前記切替えるステップでは、
前記スイッチが前記オンポジションであるとき、処理が行われるように前記応答ステップを有効化し、前記オフポジションであるとき、処理が行われないよう前記応答ステップを無効化するステップを有し、
前記応答ステップが無効化されたとき、前記コンピュータシステムからの要求データに基づき前記存在するデータ記憶装置を読み書きする、請求項８に記載の方法。
【請求項１０】
前記方法は、
受信したデータを、存在するデータ記憶装置の第２の半分に書き込み、要求されたアドレスがローカルメモリにない場合には第１の半分からデータを読み出し、そうでない場合には、第２の半分からデータを読み出すステップ
をさらに備える、請求項８または９に記載の方法。
【請求項１１】
前記方法は、
ローカルメモリの内容を消去するステップ
をさらに備える、請求項８から１０のいずれか１項に記載の方法。
【請求項１２】
前記検査の結果を前記コンピュータシステムに転送するステップは、
検索されたデータに許可されないパターンが含まれるとき、当該データを任意のパターンデータに変更するステップを有し、
前記検査の結果は、変更後の前記任意のパターンデータを含む、請求項８から１１のいずれか１項に記載の方法。
【請求項１３】
前記検査の結果を前記コンピュータシステムに転送するステップは、
検索されたデータに許可されないパターンが含まれるとき、データ転送を放棄するステップを有する、請求項８から１１のいずれか１項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の背景／概要部
１．発明の分野
本発明はデータ保護装置、データ変更防止装置、データ変更防止方法およびオペレーティングシステムに独立なデータ保護方法に関する。
【背景技術】
【０００２】
２．関連技術の記載
本発明は、データ記憶装置保護の必要性に向けられたものである。データ記憶装置保護とは、偶然の方法または権限のない方法では変更されることが不可能なデータ記憶装置があるということ、および、コンピューティングシステムの権限のあるオペレータ以外によってはアクセス不可能なデータ記憶装置があるということを意味する。データ記憶装置保護のこの定義は、保護の２つの要求：データ記憶装置の変更の防止と、外部からのコードの実行の防止とに分割されることができる。本発明は、両方の方法を、１つのデータ記憶保護装置において、および／またはインストールされたオペレーティングシステムの必要性に関することなく実現する。まず、第１の要求での現在の状態について説明する。通常、コンピューティングシステムに、偶然の変更または権限のない変更から保護される必要性を有するデータ記憶装置がある場合、前記データ保護装置は「読み出し専用」と登録されて、それの上での動作は、この特性により制限される。しかし、この「登録（marking）」は、ソフトウェアによって取り消されうるか、あるいは単純に無視されうる。そのソフトウェアは、オペレーティングシステムのきまりには従わないか、あるいは前記コンピューティングシステムによって用いられるデータ記憶装置でのこのデータ記憶装置へのアクセスの異なる方法を用いる。これに対する解決策は、フロッピー（登録商標）ディスクの動作と同様の方法でデータ記憶装置を「読み出し専用」にすることだろう。その方法とは、ケースのレバーが、データ記憶装置の磁気表面でのデータ記憶装置の変更を、許可または禁止するというものである。しかし、この解決策は、分離されたデータ記憶装置に対してのみ作用するものではなく、そのデータ記憶装置が、また、たとえばコンピューティングシステムのオペレーティングシステムによって維持されるディレクトリインデックスのように、規則的に変更されることが必要なデータ記憶装置を保持する場合には使用できない。第２の要求、すなわち、外部からのコードの実行の防止は、現在では、コンピューティングシステムのオペレーティングシステムの一部として動作するソフトウェアのレイヤで対応され、その部分は、通常、その動作および機能の特徴から、通常「アンチウィルス」および「ファイヤーウォール」ソフトウェアと呼ばれる。ソフトウェアのこのレイヤは、コードの実行を防止することによって、コンピューティングシステムでのデータ記憶装置を保護するものであり、そのコードとは、前記コンピューティングシステムのユーザが、データ記憶装置とともに使用することを意図するコードの特定されない部分である。第２の要求に対応するためのこのアプローチでの問題は、第１の要求に対して特定されたものと同様であり、すなわち：オペレーティングシステムのルールに適合せずに動作するソフトウェアによって、あるいは、オペレーティングシステムによって特定された、異なるアクセスルールを用いて動作するソフトウェアによって、ソフトウェアの動作が回避されうるというものである。これの周知の例は「ルートキット（rootkit）」、すなわちオペレーティングシステムよりも低位レベルで動作するソフトウェアの部品である。ソフトウェアのレイヤは、���部からのコードの実行の防止を実現するが、ルートキットは、ソフトウェアのレイヤによる検出を防止するという方法で動作する。通常のユーザは、コンピューティングシステムに対するこの種の侵入に対して無防備である。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
発明の概要
上記のように示された状況に鑑み、本発明の目的は、コンピューティングシステム中のデータ記憶装置を変更から保護し、前記システムにおいて悪意のあるコードが動作を行なうことを防止することを保証するということである。本発明は、オペレーティングシステムおよびユーザにとっては透過的かつ目に見えない方法で実行し、オペレーティングシステムとは独立したものである。さらに本発明は、データ記憶装置に存在するデータが決して変更されないように、データ記憶装置と、データ記憶装置を制御する制御装置との間に接続されたデータ記憶保護装置を提供する。
【課題を解決するための手段】
【０００４】
コンピューティングシステムの正しい動作を維持するために、データ記憶保護装置は、データ記憶装置のすべての変更を記憶する補助記憶領域を使用する。データ記憶保護装置は、記憶装置内の変更されたデータの位置のトラックを維持するために用いられる内部テーブルを実装する。ホストシステムが１以上のセクタを記憶装置から要求するたびに、データ記憶保護装置は、そのセクタに対応するフラグが設定またはクリアされたならば、その内部テーブルをロックするであろう。もし対応のフラグがクリアされるならば、装置は、単数または複数のセクタを記憶装置から検索するだろう。もし対応のフラグが設定されるならば、装置は、単数または複数のセクタを補助記憶領域から検索するだろう。さらに、コンピューティングシステムが１以上のセクタを記憶装置に転送するたびに、データ記憶保護装置は、その単数または複数のセクタを補助記憶領域へとリダイレクトして、その内部テーブルを更新し、補助記憶領域に書き込まれていたセクタ数に対応するフラグを設定するだろう。
【０００５】
さらに、データ記憶保護装置は、悪意のあるコードの実行を禁止することで、そのコードに対する保護を提供する。データ記憶保護装置は、コードが補助記憶領域から読み出されるとき、およびバイオス（BIOS）から読み出されるときに、コードの実行を防止する。もしコードが安全なデータ記憶装置から読み出されるならば、それは正常に実行される。データ記憶保護装置は、スキャンユニットを有し、そのスキャンユニットは、補助記憶領域から読み出されたデータをスキャンして、所定のマイクロ処理アーキテクチャによってデータが実行されることが可能であるということを決定するバイトのパターンを見つける。マイクロ処理アーキテクチャの選択およびそれに関連するパターンは、工場においてデータ記憶保護装置にロードされる。もし、スキャンユニットが、そのバイトのパターンを見つけたならば、データ記憶保護装置は、読みだされるデータを所定値に置き換えるか、データ転送を放棄したことをコンピューティングシステムの制御装置に信号で示すかのいずれかが可能である。本発明のデータ記憶保護装置の実行防止能力の有用性は、外部のコードを実行することにあり、本発明のデータ記憶保護装置を備えるコンピューティングシステムに入力される任意の新しいデータのように、このコードは補助記憶領域に記憶されなければならないだろう。
【０００６】
データ記憶保護装置の内部テーブルは、コンピューティングシステムの停電の場合、あるいはコンピューティングシステムの電源オフの場合に正しい動作を維持するために、不揮発性である。データ記憶保護装置は、全てのフラグをクリアして内部テーブルの内容を消去できる。これは、コンピューティングシステムを初期状態に戻すことと等価である。その理由は、コンピュータシステムによって読み出されようにも、データ記憶装置のすべての変更がもはや存在しないためである。
【０００７】
データ記憶保護装置は、機械的または電気的もしくは電子的スイッチによって有効または無効とすることができる。もしスイッチが「オン（ＯＮ）」ポジションにあるならば、前記装置は有効であり、先行の段落に従って動作する。もしスイッチが「オフ（ＯＦＦ）」ポジジョンにあるならば、前記装置は無効であり、読み出しまたは書き込みを妨害せず、したがって記憶装置の読み出しあるいは書き込みを可能にする。このモードでは、補助記憶領域はホストコンピューティングシステムには見えない。
【０００８】
添付の図は、明細書に取り入れられるとともに明細書の一部を構成するものであり、本発明の多数の実施形態、特徴および局面を示し、記述とともに本発明の原理の説明に供するものである。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態に係るデータ記憶保護装置の使用が可能なシステムを示すブロック図である。
【図２】コンピューティングシステムがデータをデータ記憶装置へ転送（データ記憶装置への書き込み）、またはデータをデータ記憶装置から転送（データ記憶装置からの読み出し）することに依存した、データ記憶装置のフローを説明する図である。
【図３】別の実施形態での本発明のデータ記憶保護装置を示すブロック図である。
【図４】記憶装置の制御装置によって要求されるデータトランザクションの特性に従うデータ記憶装置のフローの例を示すフローチャートである。
【図５】カスタムロジックユニット１１１のブロック図である。
【図６】別の実施形態での本発明のデータ記憶保護システムを示すブロック図である。
【図７】ＰＩＯ  ＯＵＴタイプのデータ記憶装置コマンドを受けた時の決定ユニット３０１の状態に対応するステートマシン図である。
【図８】ＰＩＯ  ＩＮタイプのデータ記憶装置コマンドを受けた時の決定ユニット３０１の状態に対応するステートマシン図である。
【図９】データ記憶装置バス１０８からソフトリセット（Soft Reset）信号を受けた時の決定ユニット３０１の状態に対応するステートマシン図である。
【発明を実施するための形態】
【００１０】
実施の形態の説明／詳細部
以後、本発明が、そのさまざまな実施形態を示す図を参照して詳細に説明される。図において、全体を通じて同一の要素および部分には同一の参照符号を付し、重複する説明は省略する。
【００１１】
以後、本発明の１つの実施形態が図を参照して詳細に説明される。
図１は、本発明の実施の形態に従って機能するデータ記憶保護装置を含むシステムの例を示すブロック図である。
【００１２】
以下の説明は、まず、実施の形態に従うデータ記憶保護装置の使用環境に向けられており、次に、コンピューティングシステム中のデータ記憶装置に存在するデータを保護するため、および悪意のあるコードの実行を防止するための動作に向けられている。
【００１３】
データ記憶保護装置の使用環境
図１は、データ記憶保護装置の可能性のある実施形態を提示している。この実施形態において、データ記憶保護装置１１４は、データ記憶装置バス１０５を介して、コンピューティングシステム１００のデータ記憶装置（DATA STORAGE DEVICE）コントローラ１０１と接続される。データ記憶保護装置１１４は、コンピューティングシステム１００およびそのデータ記憶装置コントローラ１０１に対するＩ／Ｆを実現するブリッジ１０４を有する。ブリッジ１０４は、この特許でクレームされた機能を実現するカスタムロジック１１１と、標準データ記憶装置バス１０８を介して通信する。カスタムロジック１１１は、不揮発性ＲＡＭ１１３を用いて、フラグを有するテーブルを記憶するが、そのフラグは、所定のセクタがデータ記憶装置１０２または補助記憶領域から検索されるならば、図１に提示された実施の形態におけるセクタが、データ記憶装置１０２と等しいサイズの別のデータ記憶装置１０３によって成立するということを示すものである。この実施の形態において、両方の記憶装置はデータ記憶装置インターフェイスを使用し、それら記憶装置は、データ記憶装置バス１０６，１０７を介してデータ記憶保護装置１１４に接続される。データ記憶保護装置１１４は、両方の記憶装置とのＩ／Ｆを実現するためのデータ記憶装置コントローラ１１０を有する。カスタムロジック１１１は、データ記憶装置コントローラ１１０と、バス１０９を介して通信する。
【００１４】
データ記憶保護装置１１４は、図２では明確さのために示されているが、リードスイッチ（read switch）のように動作する。リードスイッチは、コンピューティングシステム１００によって書き込まれたデータをデータ記憶装置１０３へと転送して、不揮発性ＲＡＭ１１３上の対応するフラグを設定して、不揮発性ＲＡＭ１１３に記憶された、その対応のフラグに従って、コンピューティングシステム１００によって要求されたデータのソースを選択する。フラグがクリアされたならば、データのソースはデータ記憶装置１０２となり、フラグが設定されたならば、データのソースはデータ記憶装置１０３となるであろう。
【００１５】
さらに、データ記憶保護装置１１４は、データがデータ記憶装置１０３から読み出されたならば、このデータの実行を防止することにより、悪意のあるコードに対する保護を与える。この機能を実行するために、カスタムロジック１１１は、データ記憶装置１０３から読み出されたデータをスキャンして、特定のマイクロプロセッサに対して実行可能なコードに対応するバイトのパターンを見つける。カスタムロジック１１１は、バイトパターンを有する内部テーブルを実装し、そのバイトパターンは、データ記憶装置１０３から読み出されたデータと比較される。もし一致することが見出されたならば、カスタムロジック１１１は、任意のデータを記憶する装置で読み出されたセクタを含んだバッファの内容を置き換え、バッファの内容は、この任意のデータまたはランダムデータまたは同じ値（たとえば０ｘ０）のバイト列である。カスタムロジック１１１は、データがデータ記憶装置１０２から読み出されたときには、この方式で動作しない。この場合、カスタムロジックユニット１１１のリードバッファに含まれるデータは、変更されていないコンピューティングシステムへと転送される。
【００１６】
先行の段落のよりよい理解のため、データ記憶保護装置１１４の動作のフローチャートが図４に示される。
【００１７】
詳細な説明
本発明において説明されるデータ記憶保護装置の動作は、カスタムロジックユニット１１１によって定義され、実施の形態での変形例は、コンピューティングシステムおよびその記憶ユニットが使用可能な、異なるインターフェイスタイプの機能のみである。図１および図３に示された実施の形態は、データ記憶保護装置の可能性のある使用を示し、データ記憶保護装置は、コンピューティングシステム１００の制御装置１０１をともなうデータ記憶装置（DATA STORAGE DEVICE）Ｉ／Ｆ（１１４）を有するよう構成され、あるいは、コンピューティングシステム１００の制御装置２０１をともなうデータ記憶装置Ｉ／Ｆ（２１４）を有するように構成されたデータ記憶保護装置を有するように構成される。カスタムロジックユニット１１１は、この発明のすべての異なる実施形態に対するインターフェイスとして、コンピューティングシステム１００と通信するための標準データ記憶装置インターフェイス１０８を有するであろう。また、カスタムロジックユニット１１１は、この発明のすべての異なる実施形態に対するインターフェイスとして、データを記憶ユニット１０２，１０３とやり取りするためのデータ記憶装置コントローラユニット１１０に対する標準バス（BUS）インターフェイス１０９を有するであろう。
【００１８】
さらに、図６に示されたような実施形態が用いられる場合がありうる。この実施形態では、本発明の動作のために必要とされるデータ記憶装置および補助記憶領域は、同じ物理装置２０２の中にある。この場合、データ記憶保護装置は、記憶ユニット２０２の全体の記憶領域を２つの部分に分けるであろう。一方は、これまでに記載された実施形態のデータ記憶装置となるべきものの使用のためのものであり、他方の部分は、記憶領域として用いられるためのものである。
【００１９】
カスタムロジックユニット１１１は、内部に３つのユニット、すなわち決定ユニット３０１と、スキャンユニット３０２と、バス（BUS）Ｉ／Ｆユニット３０３とを有する。スキャンユニット３０２は、同じバス３０４に接続され、そのバスは、決定ユニット３０１とバスＩ／Ｆユニット３０３との間でデータを互いに転送する。このことは、スキャンユニットが、補助データ記憶装置から読み出されたデータと、その予め構成されたバイトパターンとの間の一致を検索することを可能にする。決定ユニット３０１は、複合ステートマシン３０８を実現する。このステートマシン３０８は、データ記憶装置バス１０８を介して受けたデータ記憶装置コマンドに従って、その状態を周期的に繰り返すであろう。以下は、データ記憶装置バス１０８を介して受けたデータ記憶装置コマンドに従う、決定ユニット３０１の動作の場合である。
【００２０】
ケース１：データ記憶装置  ＰＩＯ  ＩＮ／ＤＭＡ  ＩＮコマンド：図８に示されるように、決定ユニット３０１は、データ記憶装置を介してコマンドが受信されるまで、状態Ｓ０で待機する。もし、このコマンドが以下に示す「READ DMA」、「READ SECTOR(S)」、「IDENTIFY DEVICE」、「READ BUFFER」、「READ MULTIPLE」、「SMART READ DATA STORAGE DEVICE」「SMART READ LOG SECTOR」のうちの１つであるならば、決定ユニットは、状態Ｓ９に入る。状態Ｓ９では、決定ユニットは、制御装置２０１（図３）またはデータ記憶装置−データ記憶装置ブリッジ１０４（図１）に、当該ユニットがビジー状態に入ったことを信号で伝えるとともに、ＲＡＭ  Ｉ／Ｆ３０９を用いて、受信したデータ記憶装置コマンドによるパラメータとして要求されるセクタに対応するアドレスにおいて、不揮発性ＲＡＭ１１３を読み込む。本発明で用いられるセクタナンバリング方式はＬＢＡであるが、ＬＢＡでは、データ記憶装置の物理セクタは、０から最大セクタ数まで連続的に番号が付けられ、最大セクタ数は、記憶ユニットのサイズを５１２で割ることで割り当てられる。本発明で用いられる不揮発性ＲＡＭメモリの配置は、異なる実施の形態におけるデータ記憶保護装置を構築するために用いられるデバイスの特性に特有なものとなる。そして、受信されたデータ記憶装置コマンドによって要求されたデータが、どの記憶領域から検索されるのかを決定するために、ＲＡＭから読み出される値が評価される。データ記憶装置からのデータブロックを読み出すプロセスは、バスＩ／Ｆ３０３を介してアクセスされた、データ記憶装置コントローラ１１０でのポート０またはポート１を選択すること、すなわち、データ記憶装置１０２または補助データ記憶装置１０３を選択することを結果的にもたらすであろう。図６に提示された実施形態では、ただ１つのデータ記憶装置２０２であるので、データ記憶装置コントローラ１１０のためポートは常に０であるが、セクタ数は、受信されたデータ記憶装置コマンドとデータ記憶装置２０２が保持できるセクタの半数とにより当初に要求されたセクタ数に等しい値へと変化するだろう。スキャンユニット３０２が動作するこの段階において、データは、もし潜在的に実行可能なコードをデータが含むならば検出すべき特定のビットのパターンと比較される。スキャンユニット３０２は、以下のいずれかを実行するであろう。すなわち、スキャンユニット３０２は、ａ）バッファ上のデータが補助記憶領域からもたらされるものでなければ、そのデータを変更しないままとする、ｂ）バッファ上のデータが補助記憶領域からのものであるが前記バイトのパターンに一致しない場合には、このデータを変更しないままとする、ｃ）ランダムデータまたは、事前に選ばれた任意の値である、任意のデータでバッファを満たす、のいずれかを実行するだろう。この動作は、決定ユニット３０１において独立に起こるものである。決定ユニット３０１は、状態Ｓ１０におけるデータ読み出しプロセスの完了を待つ。データ読み出しが完了したとき、決定ユニット３０１は、その内部バッファの全てのデータが、コンピューティングシステム１００の制御装置２０１あるいはデータ記憶装置−データ記憶装置ブリッジ１０４（データ記憶保護装置のために選択された実施の形態に依存する）へと転送されるまで、決定ユニット３０１は、状態Ｓ１１，Ｓ１２およびＳ１３へと順に進むであろう。決定ユニット３０１は、状態Ｓ１４において、データ転送が終了したことを外部Ｉ／Ｆに信号で示すことができる。最終ステップは、状態Ｓ８に入ることであり、それは、すべての係属中のデータ記憶装置フラグをクリアして、制御装置２０１またはデータ記憶装置−データ記憶装置ブリッジ１０４が、ステータスレジスタを読み出してトランザクションを終了することを待機することである。
【００２１】
ケース２：データ記憶装置  ＰＩＯ  ＯＵＴコマンド：図７に示されるように、決定ユニット３０１は、データ記憶装置バス１０８を介してコマンドが受信されるまで状態Ｓ０で待機する。もしこのコマンドが以下に示す「WRITE BUFFER」、「WRITE DMA」、「WRITE SECTOR(S)」、「WRITE MULTIPLE」のうちの１つであるならば、決定ユニットは、状態Ｓ１に入る。状態Ｓ１では、決定ユニットは、制御装置２０１（図３）またはデータ記憶装置−データ記憶装置ブリッジ１０４（図１）に、当該ユニットがビジー状態に入ったことを信号で示す。直ちに決定ユニット３０１は、ステップＳ２に入り、決定ユニット３０１がデータ記憶装置バス１０８を介してデータを受け入れ可能であることを信号で示す。その後、決定ユニット３０１はセクタが転送される（５１２バイト）まで、状態Ｓ３およびＳ４を順に進む。次の状態（Ｓ５）は、データ記憶装置コントローラ１１０との通信のために、バスＩ／Ｆ３０３を用いて補助記憶領域へのデータ転送を開始するだろう。先行の段落で述べられたように、データは、補助データ記憶装置１０３または、元のデータ記憶装置である、同じデータ記憶装置２０２へと転送されることができる。決定ユニット３０１は、データ記憶装置が書き込みプロセスを完了するまで状態Ｓ６で待機する。決定ユニット３０１は、状態Ｓ７において、外部Ｉ／Ｆに、データ転送が終了したことを信号で示す。最終ステップは、状態Ｓ８に入ることであり、それは、すべての係属中のデータ記憶装置フラグをクリアして、制御装置２０１またはデータ記憶装置−データ記憶装置ブリッジ１０４が、そのステータスレジスタを読み出してトランザクションを終了することを待機することである。
【００２２】
ケース３：データ記憶装置ソフトリセット：図９に示されるように、決定ユニット３０１は、データ記憶装置バス１０８を通じて受信したソフトリセットシグナルの場合、状態Ｓ２７に入るだろう。そのソフトリセットシグナルは、データ記憶装置レジスタバンクに存在する装置コントロールレジスタのフラグからなる。ステートＳ２７では、決定ユニットは、カスタムロジック１１１がビジーであることを制御装置２０１あるいはデータ記憶装置−データ記憶装置ブリッジ１０４に信号で示すであろう。そして決定ユニットは、状態Ｓ２８に入る。この状態は、カスタムロジック１１１の内部動作レジスタのほかにデータ記憶装置コントローラ１１０も構成するプロセスを開始する。データ記憶装置コントローラ１１０を構成するプロセスが開始した後に、決定ユニット３０１は、状態Ｓ３０に入るであろう。状態Ｓ３０では、設定可能な遅延（通常２ミリ秒）が実現され、そして決定ユニット３０１は、状態Ｓ０に進み、データ記憶装置コマンドを待つ。
【００２３】
ケース４：データ記憶装置の非データ記憶装置（Non Data storage device）コマンド：決定ユニット３０１は、コマンドがデータ記憶装置バス１０８を介して受信されるまで、状態Ｓ０において待機する。もしこのコマンドが以下に示す「CHECK POWER MODE」、「FLUSH CACHE」、「IDLE」、「IDLE IMDATA」、「IDLE IMDATA STORAGE DEVICE TE」、「INITIALIZE DEVICE PARAMETERS」、「READ VERIFY SECTOR(S)」、「SEEK」、「SET FEATURES」、「SET MULTIPLE MODE」、「SLEEP」、「STANDBY」、「STANDBY IMDATA STORAGE DEVICE TE」のうちの１つであるならば、決定ユニットは、状態Ｓ２３に入る。状態Ｓ２３では、決定ユニットは、制御装置２０１あるいはデータ記憶装置−データ記憶装置ブリッジ１０４に、当該ユニットがビジー状態に入ったことを信号で示すであろう。次の状態が、受信された特定のコマンドに従って選択されるであろう。「READ VERIFY SECTOR(S)」および「SEEK」の場合、決定ユニットは、状態Ｓ２４に入るであろうし、「INITIALIZE DEVICE PARAMETERS」、「SET FEATURES」および「SET MULTIPLE MODE」の場合、決定ユニットは、状態Ｓ２５に入るであろう。この段落で与えられたコマンドのリストを備えるすべての他のケースの場合、決定ユニットはＳ２６に入るであろう。状態Ｓ２６において、これは、この発明で提示される実施形態を用いるときに、動作から安全に省略されることが可能なコマンドであるが、カスタムロジックユニット１１１は、制御装置に、カスタムロジックユニットがコマンドを正しく実行したことを信号で示すともに、状態Ｓ８を通じて状態Ｓ０に戻るであろう。なお、ケース４に対応する図面は省略されている。
【図２】
0005619732.tif 000002
【図３】
0005619732.tif 000003
【図４】
0005619732.tif 000004
【図５】
0005619732.tif 000005
【図６】
0005619732.tif 000006
【図７】
0005619732.tif 000007
【図８】
0005619732.tif 000008
【図１】
0005619732.tif 000009
【図９】
0005619732.tif 000010