(57)【特許請求の範囲】
【請求項１】
補助記憶装置に対するデータの入出力を制御する補助記憶装置制御回路において、
所定の連続パターンの配列および前記所定の連続パターンの配列の後に続き演算処理の対象となるデジタルデータの開始位置に関する情報と、前記開始位置からの演算処理の対象となるデジタルデータの範囲に関する情報と、所定の演算値に関する情報と、を含む情報を記憶する記憶手段と、
前記補助記憶装置に記憶するデータの全部または一部であって、連続するディジタルデータを順次読み込む第１の読込手段と、
前記記憶手段に記憶された情報に基づいて、前記第１の読込手段によって読み込まれたディジタルデータが所定の連続パターンの配列であるか否かを判定する第１の判定処理手段と、
前記記憶手段に記憶された情報に基づいて、前記第１の判定処理手段によって判定された結果、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する所定数のディジタルデータの全部または一部に対して、前記所定の演算値を加算／減算する第１の演算処理手段と、
前記第１の演算処理手段によって演算処理されたデータを前記補助記憶装置へ出力する第１の出力手段と、
を備え、
前記演算処理手段は、前記第１の判定処理手段によって前記所定の連続パターンの配列であると判定されるたびに、当該判定されたデジタルデータの後に連続する所定数のデジタルデータの全部または一部に対して、前記所定の演算値の加算または減算を繰り返しおこない、
前記所定の演算値を複数の値から構成されるデータパターンとして用意しておき、前記判定されたデジタルデータの後に連続する所定数のデジタルデータの全部または一部に対して順に、前記データパターンが順次示す値を加算または減算することを特徴とする補助記憶装置制御回路。
【請求項２】
前記補助記憶装置に記憶されたデータの全部または一部であって、前記連続するディジタルデータを順次読み込む第２の読込手段と、
前記記憶手段に記憶された情報に基づいて、前記第２の読込手段によって読み込まれたディジタルデータが前記所定の連続パターンの配列であるか否かを判定する第２の判定処理手段と、
前記記憶手段に記憶された情報に基づいて、前記第２の判定処理手段によって判定された結果、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する前記所定数のディジタルデータの全部または一部に対して、前記所定の演算値を減算／加算する第２の演算処理手段と、
前記第２の演算処理手段によって演算処理されたデータを出力する第２の出力手段と、
を備えたことを特徴とする請求項１に記載の補助記憶装置制御回路。
【請求項３】
前記第１の演算処理手段および前記第２の演算処理手段は、前記所定の演算値として、所定の連続パターンの配列となる値を、加算／減算の対象となるディジタルデータに順次加算／減算することを特徴とする請求項１または２に記載の補助記憶装置制御回路。
【請求項４】
補助記憶装置に対するデータの入出力を制御するＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｅｖｉｃｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）コントローラにおいて、
所定の連続パターンの配列および前記所定の連続パターンの配列の後に続き演算処理の対象となるデジタルデータの開始位置に関する情報と、前記開始位置からの演算処理の対象となるデジタルデータの範囲に関する情報と、所定の演算値に関する情報と、を含む情報を記憶する記憶手段と、
前記補助記憶装置に記憶するデータの全部または一部であって連続するディジタルデータを順次読み込む第１の読込手段と、
前記記憶手段に記憶された情報に基づいて、前記第１の読込手段によって読み込まれたディジタルデータが所定の連続パターンの配列であるか否かを判定する第１の判定処理手段と、
前記記憶手段に記憶された情報に基づいて、前記第１の判定処理手段によって判定された結果、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する所定数のディジタルデータの全部または一部に対して、前記所定の演算値を加算／減算する第１の演算処理手段と、
前記第１の演算処理手段によって演算処理されたデータを前記補助記憶装置へ出力する第１の出力手段と、
を備え、
前記演算処理手段は、前記第１の判定処理手段によって前記所定の連続パターンの配列であると判定されるたびに、当該判定されたデジタルデータの後に連続する所定数のデジタルデータの全部または一部に対して、前記所定の演算値の加算または減算を繰り返しおこない、
前記所定の演算値を複数の値から構成されるデータパターンとして用意しておき、前記判定されたデジタルデータの後に連続する所定数のデジタルデータの全部または一部に対して順に、前記データパターンが順次示す値を加算または減算することを特徴とするＩＤＥコントローラ。
【請求項５】
前記補助記憶装置に記憶されたデータの全部または一部であって前記連続するディジタルデータを順次読み込む第２の読込手段と、
前記記憶手段に記憶された情報に基づいて、前記第２の読込手段によって読み込まれたディジタルデータが前記所定の連続パターンの配列であるか否かを判定する第２の判定処理手段と、
前記記憶手段に記憶された情報に基づいて、前記第２の判定処理手段によって判定された結果、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する前記所定数のディジタルデータの全部または一部に対して、前記所定の演算値を減算／加算する第２の演算処理手段と、
前記第２の演算処理手段によって演算処理されたデータを出力する第２の出力手段と、
を備えたことを特徴とする請求項４に記載のＩＤＥコントローラ。
【請求項６】
前記第１の演算処理手段および前記第２の演算処理手段は、前記所定の演算値として、所定の連続パターンの配列となる値を、加算／減算の対象となるディジタルデータに順次加算／減算することを特徴とする請求項４または５に記載のＩＤＥコントローラ。
【請求項７】
補助記憶装置に対するデータの入出力を制御するＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）コントローラにおいて、
所定の連続パターンの配列および前記所定の連続パターンの配列の後に続き演算処理の対象となるデジタルデータの開始位置に関する情報と、前記開始位置からの演算処理の対象となるデジタルデータの範囲に関する情報と、所定の演算値に関する情報と、を含む情報を記憶する記憶手段と、
前記補助記憶装置に記憶するデータの全部または一部であって連続するディジタルデータを順次読み込む第１の読込手段と、
前記第１の読込手段によって読み込まれたディジタルデータが所定の連続パターンの配列であるか否かを判定する第１の判定処理手段と、
前記第１の判定処理手段によって判定された結果、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する所定数のディジタルデータの全部または一部に対して、前記所定の演算値を加算／減算する第１の演算処理手段と、
前記第１の演算処理手段によって演算処理されたデータを前記補助記憶装置へ出力する第１の出力手段と、
を備え、
前記演算処理手段は、前記第１の判定処理手段によって前記所定の連続パターンの配列であると判定されるたびに、当該判定されたデジタルデータの後に連続する所定数のデジタルデータの全部または一部に対して、前記所定の演算値の加算または減算を繰り返しおこない、
前記所定の演算値を複数の値から構成されるデータパターンとして用意しておき、前記判定されたデジタルデータの後に連続する所定数のデジタルデータの全部または一部に対して順に、前記データパターンが順次示す値を加算または減算することを特徴とするＳＣＳＩコントローラ。
【請求項８】
前記補助記憶装置に記憶されたデータの全部または一部であって前記連続するディジタルデータを順次読み込む第２の読込手段と、
前記第２の読込手段によって読み込まれたディジタルデータが前記所定の連続パターンの配列であるか否かを判定する第２の判定処理手段と、
前記第２の判定処理手段によって判定された結果、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する前記所定数のディジタルデータの全部または一部に対して、前記所定の演算値を減算／加算する第２の演算処理手段と、
前記第２の演算処理手段によって演算処理されたデータを出力する第２の出力手段と、
を備えたことを特徴とする請求項７に記載のＳＣＳＩコントローラ。
【請求項９】
前記第１の演算処理手段および前記第２の演算処理手段は、前記所定の演算値として、所定の連続パターンの配列となる値を、加算／減算の対象となるディジタルデータに順次加算／減算することを特徴とする請求項７または８に記載のＳＣＳＩコントローラ。
【請求項１０】
補助記憶装置に対するデータの入出力を制御するＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）コントローラにおいて、
所定の連続パターンの配列および前記所定の連続パターンの配列の後に続き演算処理の対象となるデジタルデータの開始位置に関する情報と、前記開始位置からの演算処理の対象となるデジタルデータの範囲に関する情報と、所定の演算値に関する情報と、を含む情報を記憶する記憶手段と、
前記補助記憶装置に記憶するデータの全部または一部であって連続するディジタルデータを順次読み込む第１の読込手段と、
前記第１の読込手段によって読み込まれたディジタルデータが所定の連続パターンの配列であるか否かを判定する第１の判定処理手段と、
前記第１の判定処理手段によって判定された結果、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する所定数のディジタルデータの全部または一部に対して、前記所定の演算値を加算／減算する第１の演算処理手段と、
前記第１の演算処理手段によって演算処理されたデータを前記補助記憶装置へ出力する第１の出力手段と、
を備え、
前記演算処理手段は、前記第１の判定処理手段によって前記所定の連続パターンの配列であると判定されるたびに、当該判定されたデジタルデータの後に連続する所定数のデジタルデータの全部または一部に対して、前記所定の演算値の加算または減算を繰り返しおこない、
前記所定の演算値を複数の値から構成されるデータパターンとして用意しておき、前記判定されたデジタルデータの後に連続する所定数のデジタルデータの全部または一部に対して順に、前記データパターンが順次示す値を加算または減算することを特徴とするＵＳＢコントローラ。
【請求項１１】
前記補助記憶装置に記憶されたデータの全部または一部であって前記連続するディジタルデータを順次読み込む第２の読込手段と、
前記第２の読込手段によって読み込まれたディジタルデータが前記所定の連続パターンの配列であるか否かを判定する第２の判定処理手段と、
前記第２の判定処理手段によって判定された結果、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する前記所定数のディジタルデータの全部または一部に対して、前記所定の演算値を減算／加算する第２の演算処理手段と、
前記第２の演算処理手段によって演算処理されたデータを出力する第２の出力手段と、
を備えたことを特徴とする請求項１０に記載のＵＳＢコントローラ。
【請求項１２】
前記第１の演算処理手段および前記第２の演算処理手段は、前記所定の演算値として、所定の連続パターンの配列となる値を、加算／減算の対象となるディジタルデータに順次加算／減算することを特徴とする請求項１０または１１に記載のＵＳＢコントローラ。
【請求項１３】
補助記憶装置に対するデータの入出力を制御するマルチＩ／Ｏコントローラにおいて、
所定の連続パターンの配列および前記所定の連続パターンの配列の後に続き演算処理の対象となるデジタルデータの開始位置に関する情報と、前記開始位置からの演算処理の対象となるデジタルデータの範囲に関する情報と、所定の演算値に関する情報と、を含む情報を記憶する記憶手段と、
前記補助記憶装置に記憶するデータの全部または一部であって連続するディジタルデータを順次読み込む第１の読込手段と、
前記第１の読込手段によって読み込まれたディジタルデータが所定の連続パターンの配列であるか否かを判定する第１の判定処理手段と、
前記第１の判定処理手段によって判定された結果、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する所定数のディジタルデータの全部または一部に対して、前記所定の演算値を加算／減算する第１の演算処理手段と、
前記第１の演算処理手段によって演算処理されたデータを前記補助記憶装置へ出力する第１の出力手段と、
を備え、
前記演算処理手段は、前記第１の判定処理手段によって前記所定の連続パターンの配列であると判定されるたびに、当該判定されたデジタルデータの後に連続する所定数のデジタルデータの全部または一部に対して、前記所定の演算値の加算または減算を繰り返しおこない、
前記所定の演算値を複数の値から構成されるデータパターンとして用意しておき、前記判定されたデジタルデータの後に連続する所定数のデジタルデータの全部または一部に対して順に、前記データパターンが順次示す値を加算または減算することを特徴とするマルチＩ／Ｏコントローラ。
【請求項１４】
前記補助記憶装置に記憶されたデータの全部または一部であって前記連続するディジタルデータを順次読み込む第２の読込手段と、
前記第２の読込手段によって読み込まれたディジタルデータが前記所定の連続パターンの配列であるか否かを判定する第２の判定処理手段と、
前記第２の判定処理手段によって判定された結果、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する前記所定数のディジタルデータの全部または一部に対して、前記所定の演算値を減算／加算する第２の演算処理手段と、
前記第２の演算処理手段によって演算処理されたデータを出力する第２の出力手段と、
を備えたことを特徴とする請求項１３に記載のマルチＩ／Ｏコントローラ。
【請求項１５】
前記第１の演算処理手段および前記第２の演算処理手段は、前記所定の演算値として、所定の連続パターンの配列となる値を、加算／減算の対象となるディジタルデータに順次加算／減算することを特徴とする請求項１３または１４に記載のマルチＩ／Ｏコントローラ。
【請求項１６】
少なくとも、前記請求項１〜３に記載の補助記憶装置制御回路、前記請求項４〜６に記載のＩＤＥコントローラ、前記請求項７〜９に記載のＳＣＳＩコントローラ、前記請求項１０〜１２に記載のＵＳＢコントローラまたは前記請求項１３〜１５に記載のマルチＩ／Ｏコントローラのいずれか一つを備えたことを特徴とする情報処理装置。
【請求項１７】
補助記憶装置に対するデータの入出力を制御する補助記憶装置制御方法において、
前記補助記憶装置に記憶するデータの全部または一部であって連続するディジタルデータを順次読み込む第１の読込工程と、
あらかじめ記憶された所定の連続パターンの配列に関する情報に基づいて、前記第１の読込工程によって読み込まれたディジタルデータが所定の連続パターンの配列であるか否かを判定する第１の判定処理工程と、
あらかじめ記憶された、前記所定の連続パターンの配列の後に続き演算処理の対象となるデジタルデータの開始位置に関する情報と、前記開始位置からの演算処理の対象となるデジタルデータの範囲に関する情報と、所定の演算値に関する情報と、に基づいて、前記第１の判定処理工程によって判定された結果、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する所定数のディジタルデータの全部または一部に対して、前記所定の演算値を加算／減算する第１の演算処理工程と、
前記第１の演算処理工程によって演算処理されたデータを前記補助記憶装置へ出力する第１の出力工程と、
を含み、
前記演算処理工程は、前記第１の判定処理工程によって前記所定の連続パターンの配列であると判定されるたびに、当該判定されたデジタルデータの後に連続する所定数のデジタルデータの全部または一部に対して、前記所定の演算値の加算または減算を繰り返しおこない、
前記所定の演算値を複数の値から構成されるデータパターンとして用意しておき、前記判定されたデジタルデータの後に連続する所定数のデジタルデータの全部または一部に対して順に、前記データパターンが順次示す値を加算または減算することを特徴とする補助記憶装置制御方法。
【請求項１８】
前記補助記憶装置に記憶されたデータの全部または一部であって前記連続するディジタルデータを順次読み込む第２の読込工程と、
前記所定の連続パターンの配列に関する情報に基づいて、前記第２の読込工程によって読み込まれたディジタルデータが前記所定の連続パターンの配列であるか否かを判定する第２の判定処理工程と、
前記所定の連続パターンの配列の後に続き演算処理の対象となるデジタルデータの開始位置に関する情報と、前記開始位置からの演算処理の対象となるデジタルデータの範囲に関する情報と、所定の演算値に関する情報と、に基づいて、前記第２の判定処理工程によって判定された結果、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する前記所定数のディジタルデータの全部または一部に対して、前記所定の演算値を減算／加算する第２の演算処理工程と、
前記第２の演算処理工程によって演算処理されたデータを出力する第２の出力工程と、
を備えたことを特徴とする請求項１７に記載の補助記憶装置制御方法。
【請求項１９】
前記第１の演算処理工程および前記第２の演算処理工程は、前記所定の演算値として、所定の連続パターンの配列となる値を、加算／減算の対象となるディジタルデータに順次加算／減算することを特徴とする請求項１７または１８に記載の補助記憶装置制御方法。
【請求項２０】
前記請求項１７〜１９のいずれか一つに記載された方法をコンピュータに実行させるプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ハードディスクなどの書き換え可能な補助記憶装置の制御をおこなう補助記憶装置制御回路、ＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｅｖｉｃｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）コントローラ、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）コントローラ、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）コントローラ、マルチＩ／Ｏコントローラ、その補助記憶装置制御回路などを備えた情報処理装置、補助記憶装置制御方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【０００２】
【従来の技術】
通常、パーソナルコンピュータなどの情報処理装置においては、補助記憶装置をもちいて、演算処理をおこなったデータなどを記憶する。補助記憶装置として代表的なものにハードディスクがある。近年、ハードディスクに関する技術の向上により、数１０ギガバイトのデータを記憶できるハードディスクも開発され、大量のデータであっても容易に書き込み／読み出しをすることができるようになってきた。
【０００３】
また、通常のハードディスクは、パーソナルコンピュータに内蔵される場合が多かったが、内蔵されたハードディスクのみをパーソナルコンピュータから着脱可能とするものもある。また、内蔵されたハードディスクの代わりにあるいは内蔵されたハードディスクとは別個に接続型の外付けハードディスクなども多数存在する。
【０００４】
【発明が解決しようとする課題】
ここで、記憶されたデータの秘密性を保持するために、パーソナルコンピュータの立ち上げにはパスワードなどを設定することができる。したがって、パスワードを知らない他人は、そのパーソナルコンピュータのハードディスクに記憶されたデータを見たり、コピーしたりすることはできなかった。
【０００５】
しかしながら、ハードディスクのみを脱着することによって、パーソナルコンピュータのパスワードを知らない他人が、パーソナルコンピュータを立ち上げることなく、そのままハードディスクごと持ち出し、そのハードディスクを別のパーソナルコンピュータに接続することによって、ハードディスクに記憶された情報を容易に見ることができたり、そのデータを不正にコピーしたりすることができてしまうという問題点があった。
【０００６】
さらに、パーソナルコンピュータを立ち上げないため、データを無断で見られたあるいは不正にコピーされた事実は、上記パーソナルコンピュータには記録されることがない。したがって、脱着されたハードディスクを再びもとのパーソナルコンピュータに着脱しておけば、データの所有者がデータを見られたりコピーされたりしたという事実を十分感知できないという問題点もあった。
【０００７】
上記問題点を解決するために、データの保安性を考えて、すべてに暗号化／復号化処理を施すことが考えられる。これによって、ハードディスクのみを持ち出されても、秘密性を保持すべきデータを他人が勝手に見たりまたは不正にコピーしたりすることはできない。
【０００８】
しかしながら、このような暗号化／復号化処理をおこなうと、それら処理によって生じる負荷が増大する。特に、保安性を高めようとすると、暗号化／復号化に要する演算が複雑になり、上記負荷はさらに増大する。また、通常、暗号化されたデータは、暗号化前のデータと比較してサイズが大きくなってしまう場合が多いため、大きなサイズのファイルを記憶する場合には、記憶容量を余計に必要とし、かつ記憶処理時間が長くなってしまうという問題点があった。
【０００９】
この発明は、上記に鑑みてなされたものであって、補助記憶装置をもちいてデータを記憶する情報処理装置などにおいて、補助記憶装置に対して書き込み／読み出しをするデータを符号化／復号化することによって、そのデータ・サイズを増大させることなく、安全にデータを記憶させておくことが可能な補助記憶装置制御回路、ＩＤＥコントローラ、ＳＣＳＩコントローラ、ＵＳＢコントローラ、マルチＩ／Ｏコントローラ、その補助記憶装置制御回路などを備えた情報処理装置、補助記憶装置制御方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体を提供することを目的とする。
【００１０】
【課題を解決するための手段】
上記の目的を達成するために、この発明にかかる補助記憶装置制御回路は、補助記憶装置に対するデータの入出力を制御する補助記憶装置制御回路において、前記補助記憶装置に記憶するデータの全部または一部であって連続するディジタルデータを順次読み込む第１の読込手段と、前記第１の読込手段によって読み込まれたディジタルデータが所定の連続パターンの配列であるか否かを判定する第１の判定処理手段と、前記第１の判定処理手段によって判定された結果、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する所定数のディジタルデータの全部または一部に対して、所定の値を加算／減算する第１の演算処理手段と、前記第１の演算処理手段によって演算処理されたデータを前記補助記憶装置へ出力する第１の出力手段と、を備えたことを特徴とする。
【００１１】
また、この発明にかかる補助記憶装置制御回路は、上記の発明において、前記補助記憶装置に記憶されたデータの全部または一部であって前記連続するディジタルデータを順次読み込む第２の読込手段と、前記第２の読込手段によって読み込まれたディジタルデータが前記所定の連続パターンの配列であるか否かを判定する第２の判定処理手段と、前記第２の判定処理手段によって判定された結果、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する前記所定数のディジタルデータの全部または一部に対して、前記所定の値を減算／加算する第２の演算処理手段と、前記第２の演算処理手段によって演算処理されたデータを出力する第２の出力手段と、を備えたことを特徴とする。
【００１２】
また、この発明にかかる補助記憶装置制御回路は、上記の発明において、前記第１の演算処理手段および前記第２の演算処理手段が、前記所定の値として、所定の連続パターンの配列となる値を、加算／減算の対象となるディジタルデータに順次加算／減算することを特徴とする。
【００１３】
また、この発明にかかるＩＤＥコントローラは、補助記憶装置に対するデータの入出力を制御するＩＤＥコントローラにおいて、前記補助記憶装置に記憶するデータの全部または一部であって連続するディジタルデータを順次読み込む第１の読込手段と、前記第１の読込手段によって読み込まれたディジタルデータが所定の連続パターンの配列であるか否かを判定する第１の判定処理手段と、前記第１の判定処理手段によって判定された結果、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する所定数のディジタルデータの全部または一部に対して、所定の値を加算／減算する第１の演算処理手段と、前記第１の演算処理手段によって演算処理されたデータを前記補助記憶装置へ出力する第１の出力手段と、を備えたことを特徴とする。
【００１４】
また、この発明にかかるＩＤＥコントローラは、上記の発明において、前記補助記憶装置に記憶されたデータの全部または一部であって前記連続するディジタルデータを順次読み込む第２の読込手段と、前記第２の読込手段によって読み込まれたディジタルデータが前記所定の連続パターンの配列であるか否かを判定する第２の判定処理手段と、前記第２の判定処理手段によって判定された結果、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する前記所定数のディジタルデータの全部または一部に対して、前記所定の値を減算／加算する第２の演算処理手段と、前記第２の演算処理手段によって演算処理されたデータを出力する第２の出力手段と、を備えたことを特徴とする。
【００１５】
また、この発明にかかるＩＤＥコントローラは、上記の発明において、前記第１の演算処理手段および前記第２の演算処理手段が、前記所定の値として、所定の連続パターンの配列となる値を、加算／減算の対象となるディジタルデータに順次加算／減算することを特徴とする。
【００１６】
また、この発明にかかるＳＣＳＩコントローラは、補助記憶装置に対するデータの入出力を制御するＳＣＳＩコントローラにおいて、前記補助記憶装置に記憶するデータの全部または一部であって連続するディジタルデータを順次読み込む第１の読込手段と、前記第１の読込手段によって読み込まれたディジタルデータが所定の連続パターンの配列であるか否かを判定する第１の判定処理手段と、前記第１の判定処理手段によって判定された結果、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する所定数のディジタルデータの全部または一部に対して、所定の値を加算／減算する第１の演算処理手段と、前記第１の演算処理手段によって演算処理されたデータを前記補助記憶装置へ出力する第１の出力手段と、を備えたことを特徴とする。
【００１７】
また、この発明にかかるＳＣＳＩコントローラは、上記の発明において、前記補助記憶装置に記憶されたデータの全部または一部であって前記連続するディジタルデータを順次読み込む第２の読込手段と、前記第２の読込手段によって読み込まれたディジタルデータが前記所定の連続パターンの配列であるか否かを判定する第２の判定処理手段と、前記第２の判定処理手段によって判定された結果、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する前記所定数のディジタルデータの全部または一部に対して、前記所定の値を減算／加算する第２の演算処理手段と、前記第２の演算処理手段によって演算処理されたデータを出力する第２の出力手段と、を備えたことを特徴とする。
【００１８】
また、この発明にかかるＳＣＳＩコントローラは、上記の発明において、前記第１の演算処理手段および前記第２の演算処理手段が、前記所定の値として、所定の連続パターンの配列となる値を、加算／減算の対象となるディジタルデータに順次加算／減算することを特徴とする。
【００１９】
また、この発明にかかるＵＳＢコントローラは、補助記憶装置に対するデータの入出力を制御するＵＳＢコントローラにおいて、前記補助記憶装置に記憶するデータの全部または一部であって連続するディジタルデータを順次読み込む第１の読込手段と、前記第１の読込手段によって読み込まれたディジタルデータが所定の連続パターンの配列であるか否かを判定する第１の判定処理手段と、前記第１の判定処理手段によって判定された結果、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する所定数のディジタルデータの全部または一部に対して、所定の値を加算／減算する第１の演算処理手段と、前記第１の演算処理手段によって演算処理されたデータを前記補助記憶装置へ出力する第１の出力手段と、を備えたことを特徴とする。
【００２０】
また、この発明にかかるＵＳＢコントローラは、上記のＵＳＢコントローラにおいて、前記補助記憶装置に記憶されたデータの全部または一部であって前記連続するディジタルデータを順次読み込む第２の読込手段と、前記第２の読込手段によって読み込まれたディジタルデータが前記所定の連続パターンの配列であるか否かを判定する第２の判定処理手段と、前記第２の判定処理手段によって判定された結果、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する前記所定数のディジタルデータの全部または一部に対して、前記所定の値を減算／加算する第２の演算処理手段と、前記第２の演算処理手段によって演算処理されたデータを出力する第２の出力手段と、を備えたことを特徴とする。
【００２１】
また、この発明にかかるＵＳＢコントローラは、上記の発明において、前記第１の演算処理手段および前記第２の演算処理手段が、前記所定の値として、所定の連続パターンの配列となる値を、加算／減算の対象となるディジタルデータに順次加算／減算することを特徴とする。
【００２２】
また、この発明にかかるマルチＩ／Ｏコントローラは、補助記憶装置に対するデータの入出力を制御するマルチＩ／Ｏコントローラにおいて、前記補助記憶装置に記憶するデータの全部または一部であって連続するディジタルデータを順次読み込む第１の読込手段と、前記第１の読込手段によって読み込まれたディジタルデータが所定の連続パターンの配列であるか否かを判定する第１の判定処理手段と、前記第１の判定処理手段によって判定された結果、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する所定数のディジタルデータの全部または一部に対して、所定の値を加算／減算する第１の演算処理手段と、前記第１の演算処理手段によって演算処理されたデータを前記補助記憶装置へ出力する第１の出力手段と、を備えたことを特徴とする。
【００２３】
また、この発明にかかるマルチＩ／Ｏコントローラは、上記の発明において、前記補助記憶装置に記憶されたデータの全部または一部であって前記連続するディジタルデータを順次読み込む第２の読込手段と、前記第２の読込手段によって読み込まれたディジタルデータが前記所定の連続パターンの配列であるか否かを判定する第２の判定処理手段と、前記第２の判定処理手段によって判定された結果、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する前記所定数のディジタルデータの全部または一部に対して、前記所定の値を減算／加算する第２の演算処理手段と、前記第２の演算処理手段によって演算処理されたデータを出力する第２の出力手段と、を備えたことを特徴とする。
【００２４】
また、この発明にかかるマルチＩ／Ｏコントローラは、上記の発明において、前記第１の演算処理手段および前記第２の演算処理手段が、前記所定の値として、所定の連続パターンの配列となる値を、加算／減算の対象となるディジタルデータに順次加算／減算することを特徴とする。
【００２５】
また、この発明にかかる情報処理装置は、少なくとも、前記上記の補助記憶装置制御回路、上記のＩＤＥコントローラ、前記上記のＳＣＳＩコントローラ、前記上記のＵＳＢコントローラまたは前記上記のマルチＩ／Ｏコントローラのいずれか一つを備えたことを特徴とする。
【００２６】
また、この発明にかかる補助記憶装置制御方法は、補助記憶装置に対するデータの入出力を制御する補助記憶装置制御方法において、前記補助記憶装置に記憶するデータの全部または一部であって連続するディジタルデータを順次読み込む第１の読込工程と、前記第１の読込工程によって読み込まれたディジタルデータが所定の連続パターンの配列であるか否かを判定する第１の判定処理工程と、前記第１の判定処理工程によって判定された結果、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する所定数のディジタルデータの全部または一部に対して、所定の値を加算／減算する第１の演算処理工程と、前記第１の演算処理工程によって演算処理されたデータを前記補助記憶装置へ出力する第１の出力工程と、を含んだことを特徴とする。
【００２７】
また、この発明にかかる補助記憶装置制御方法は、上記の発明において、前記補助記憶装置に記憶されたデータの全部または一部であって前記連続するディジタルデータを順次読み込む第２の読込工程と、前記第２の読込工程によって読み込まれたディジタルデータが前記所定の連続パターンの配列であるか否かを判定する第２の判定処理工程と、前記第２の判定処理工程によって判定された結果、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する前記所定数のディジタルデータの全部または一部に対して、前記所定の値を減算／加算する第２の演算処理工程と、前記第２の演算処理工程によって演算処理されたデータを出力する第２の出力工程と、を備えたことを特徴とする。
【００２８】
また、この発明にかかる補助記憶装置制御方法は、上記の発明において、前記第１の演算処理工程および前記第２の演算処理工程は、前記所定の値として、所定の連続パターンの配列となる値を、加算／減算の対象となるディジタルデータに順次加算／減算することを特徴とする。
【００２９】
また、この発明にかかる記録媒体は、前記上記の方法をコンピュータに実行させるプログラムを記録したことを特徴とする。これによって、当該プログラムをコンピュータによって読み取ることが可能となり、これによって、上記の動作をコンピュータによって実現することが可能である。
【００３０】
【発明の実施の形態】
以下、この発明にかかる情報処理装置、その情報処理装置が備える補助記憶装置制御回路、ＩＤＥコントローラ、ＳＣＳＩコントローラ、ＵＳＢコントローラ、マルチＩ／Ｏコントローラ、補助記憶装置制御方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体の好適な実施の形態について添付図面を参照し、詳細に説明する。なお、この実施の形態によってこの発明が限定されるものではない。
【００３１】
〔実施の形態１〕
（情報処理装置の内部構成）
まず、この発明の実施の形態１にかかる情報処理装置の内部構成について説明する。図１は、実施の形態１にかかる情報処理装置の内部構成を示す説明図である。
【００３２】
図１において、情報処理装置は、ＣＰＵ１００と、ＣＰＵ１００に接続されたローカルバス１０１と、ローカルバス１０１によってＣＰＵ１００と接続されたメインメモリ１０２と、同様にローカルバス１０１によってＣＰＵ１００と接続されたチップセット１０３を備えている。
【００３３】
チップセット１０３は、情報処理装置の基本システムに必要となる機能をまとめたＬＳＩであり、ＣＰＵ１００と補助記憶装置、各種拡張バスなどを相互に接続し、データの流れを制御するためのものである。チップセット１０３には、ノースブリッジ１０４と、サウスブリッジ１０５とを備えており、両者はＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス１０６で接続されている。
【００３４】
また、２次キャッシュ１０７と、ビデオカード専用に開発されたインタフェースであるＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）拡張スロット１０８とがノースブリッジ１０４に接続されている。また、ＰＣＩバス１０６には、ＳＣＳＩコントローラ１０９が接続されており、ＳＣＳＩコントローラ１０９は、補助記憶装置であるＳＣＳＩハードディスクドライブ１１０へのデータの書き込み／読み出しを制御する。
【００３５】
サウスブリッジ１０５には、ＩＤＥハードディスクドライブ１１１と、ＣＤ−Ｒドライブ１１２と、各種ＵＳＢ機器１１３と、フロッピーディスクドライブ１１４とが接続されている。これらの各ドライブまたは機器は補助記憶装置としての機能を実現する。
【００３６】
ＩＤＥハードディスクドライブ１１１は、ハードディスク（磁気ディスク）１１１ａを高速回転させることで、磁気ヘッドがデータの書き込み／読み込みをおこなう。ＩＤＥのインタフェース規格において、Ｅ−ＩＤＥでは、ディスクの先頭からのブロック番号によって目的とするデータをアクセスすることが可能なＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓｉｎｇ）方式を採用している。
【００３７】
ＣＤ−Ｒドライブ１１２は、ＣＤ−Ｒ１１２ａに書き込まれたデータの読込をおこなう。ＣＤ−Ｒドライブ１１２も、ＩＤＥハードディスクドライブ１１１と同様に、後述するＩＤＥコントローラ３０１によって読み出し／書き込みされるデータが制御される。ここでは、代表例としてＣＤ−Ｒドライブとしたが、着脱可能な大容量補助記憶装置として、ＣＤ−ＲＷドライブ、ＤＶＤ−ＲＡＭドライブ、ＤＶＤ−Ｒドライブなどであってもよい。
【００３８】
各種ＵＳＢ機器（デバイス）１１３は、補助記憶装置を含めシリアルインタフェース規格のＵＳＢで接続される各種機器を示している。また、フロッピーディスクドライブ１１４は、フロッピーディスク１１４ａへのデータの書き込み／読み込みをおこなう。フロッピーディスクドライブ１１４は、ＭＯ（Ｍａｇｎｅｔｏ  Ｏｐｔｉｃａｌ  ｄｉｓｋ）ドライブなどであってもよい。
【００３９】
（ノースブリッジ、サウスブリッジおよびその周辺の構成）
つぎに、ノースブリッジ１０４およびその周辺の構成について説明する。図２は、この発明の実施の形態にかかる情報処理装置のノースブリッジ１０４およびその周辺の構成を示す説明図である。図２において、ノースブリッジ１０４は、ホスト−ＰＣＩブリッジ２０１と、ＡＧＰコントローラ２０２と、ＤＲＡＭコントローラ２０３と、キャッシュコントローラ２０４とを備えている。
【００４０】
ホスト−ＰＣＩブリッジ２０１は、ＣＰＵ１００に対応するローカルバス１０１と、ローカルバス１０１に比して低速の動作クロックのＰＣＩバス１０６との間のデータのやりとりの制御をおこなう。また、ＡＧＰコントローラ２０２は、グラフィック専用バス規格であるＡＧＰに基づくスロットルと、接続される３２ビット幅のバスト接続されることによって、高速なグラフィック制御を実現する。
【００４１】
ＤＲＡＭコントローラ２０３は、ＣＰＵ１００にかわってバスを占有してメインメモリ１０２と、ハードディスクなどのＩ／Ｏデバイス間のデータの転送を専用に制御する。また、キャッシュコントローラ２０４は、２次キャッシュ１０７に対するデータの読み出し／書き込みを制御することによって、２次キャッシュ１０７と、メインメモリ１０２あるいはハードディスクなどのＩ／Ｏデバイス間のデータの転送を専用に制御する。
【００４２】
また、ＰＣＩバス１０６に接続されたＳＣＳＩコントローラ１０９は、接続されたＳＣＳＩハードディスクドライブ１１０に対するデータの読み出し／書き込みを制御する。そして、ＳＣＳＩコントローラ１０９は、後述するデータ防護処理部１０Ａを備える。また、ＳＣＳＩハードディスクドライブ１１０は、ＩＤＥハードディスクドライブ１１１と同様に、ハードディスク（磁気ディスク）１１０ａを高速回転させることで、磁気ヘッドがデータの書き込み／読み込みをおこなう。
【００４３】
つぎに、サウスブリッジ１０５およびその周辺の構成について説明する。図３は、この発明の実施の形態にかかる情報処理装置のサウスブリッジ１０５およびその周辺の構成を示す説明図である。図３において、サウスブリッジ１０５は、ＩＤＥコントローラ３０１と、ＵＳＢコントローラ３０２と、マルチＩ／Ｏコントローラ３０３と、割り込みコントローラ３０４と、ＤＭＡコントローラ３０５とを備えている。
【００４４】
ＩＤＥコントローラ３０１は、接続されたＩＤＥハードディスクドライブ１１１およびＣＤ−Ｒドライブ１１２に対するデータの読み出し／書き込みを制御する。そして、ＩＤＥコントローラ３０１は、後述するデータ防護処理部１０Ｂを備える。
【００４５】
ＵＳＢコントローラ３０２は、接続されたＵＳＢ機器１１３に対するデータの読み出し／書き込みを制御する。そして、ＵＳＢコントローラ３０２は、後述するデータ防護処理部１０Ｃを備える。
【００４６】
マルチＩ／Ｏコントローラ３０３は、接続されたフロッピーディスクドライブ１１４に対するデータの読み出し／書き込みを制御する。そして、マルチＩ／Ｏコントローラ３０３は、後述するデータ防護処理部１０Ｄを備える。
【００４７】
割り込みコントローラ３０４は、各コントローラを含む各デバイスがＣＰＵ１００を利用するために発生する割り込み要求信号であるＩＲＱ（Ｉｎｔｅｒｒｕｐｔ  Ｒｅｑｕｅｓｔ）を管理する。また、ＤＭＡコントローラ３０５は、ＣＰＵ１００に代わってＰＣＩバス１０６などのバスを占有してデータ転送をおこなうＤＭＡを専用に制御する。また、ＤＭＡコントローラ３０５は、各コントローラ間、たとえば、ＩＤＥコントローラ３０１とＵＳＢコントローラ３０２との間のデータ転送もＣＰＵ１００を介することなくおこなうことができる。
【００４８】
以上の構成において、ＣＰＵ１００によって演算処理されたデータは、ローカルバス１０１を経由してメインメモリ１０２に一端格納される。その後、メインメモリ１０２からローカルバスを経由してホスト−ＰＣＩブリッジ２０１・キャッシュコントローラ２０４を介して２次キャッシュ１０７へ格納される。さらに、そのデータは、２次キャッシュ１０７から、キャッシュコントローラ２０４を介して、ＰＣＩバス１０６を経由して、ＳＣＳＩコントローラ１０９あるいはサウスブリッジ１０５へ送出される。
【００４９】
ＳＣＳＩコントローラ１０９へ送出されたデータは、データ防護処理部１０Ａにおいて、後述するデータ防護処理（防護キー付加（防護キー値加算）処理）が施された後、ＳＣＳＩハードディスクドライブ１１０へ送られ、そこで、ハードディスク１１０ａに書き込まれる。ハードディスク１１０ａに書き込まれたデータが読み出される場合には、書き込まれる工程と反対の工程によっておこなわれる。すなわち、ハードディスク１１０ａに書き込まれたデータは、ＳＣＳＩハードディスクドライブ１１０によって読み出され、ＳＣＳＩコントローラ１０９へ送られる。
【００５０】
ＳＣＳＩコントローラ１０９においては、データ防護処理部１０Ａが、書き込まれる場合とは逆のデータ防御処理（防護キー解除（防護キー値減算）処理）を読み出されたデータに施す。そして、そのデータ防御処理が施されることで、防護キー付加処理がされる前のデータに戻る。そのデータがＰＣＩバス１０６を経由して、ホスト−ＰＣＩブリッジ２０１・キャッシュコントローラ２０４を介して２次キャッシュ１０７へ格納され、再度、キャッシュコントローラ２０４・ホスト−ＰＣＩブリッジ２０１を介してローカルバス１０１を経由してメインメモリ１０２へ格納される。
【００５１】
サウスブリッジ１０５へ送出されたデータも同様に、書き込まれる補助記憶装置によって、ＩＤＥコントローラ３０１か、ＵＳＢコントローラ３０２か、マルチＩ／Ｏコントローラ３０３のいずれかに送られる。各コントローラ３０１〜３０３では、送られたデータを各補助記憶装置１１１〜１１４に書き込む前に、データ防護処理部１０Ｂ〜１０Ｄによってデータ防護処理される。その後、各補助記憶装置１１１〜１１４へ送られ、各補助記憶装置１１１〜１１４によってデータが書き込まれる。
【００５２】
各補助記憶装置１１１〜１１４の各メディア（ディスク）１１１ａ〜１１４ａに書き込まれたデータが読み出される場合には、各ドライブ１１１〜１１４によって読み出され、各コントローラ３０１〜３０３へ送られる。そして、各コントローラ３０１〜３０３は、ＰＣＩバスへそのデータを送出する。
【００５３】
このようにすることで、ＣＰＵ１００によって演算処理されるデータにはなんら変化はないが、補助記憶装置１１０〜１１４へＣＰＵ１００によって演算処理されたデータが書き込まれる場合には、データ防御処理が施されていることになる。したがって、補助記憶装置１１０〜１１４のみを持ち出し、他の情報処理装置でその補助記憶装置１１０〜１１４に記憶されたデータを読み出そうとしても、正確にデータの内容を把握できない。あるいは、情報処理装置を正確に動作させることができない。
【００５４】
換言すると、情報処理装置ごとに、後述する防護キーを割り当てると、ある情報処理装置によって補助記憶装置１１０〜１１４に記憶されたデータは、その情報処理装置でなければ、利用することができないことになる。
【００５５】
（データ防護処理部の構成）
つぎに、実施の形態１にかかる情報処理装置に内蔵されあるいは接続される補助記憶装置制御回路、ＳＣＳＩコントローラ１０９、ＩＤＥコントローラ３０１、ＵＳＢコントローラ３０２、マルチＩ／Ｏコントローラ３０３が備えるデータ防護処理部１０（１０Ａ〜１０Ｂ）について説明する。なお、補助記憶装置制御回路は、補助記憶装置を制御する回路であればよく、ＳＣＳＩコントローラ１０９、ＩＤＥコントローラ３０１、ＵＳＢコントローラ３０２、マルチＩ／Ｏコントローラ３０３であってもよく、また、別の回路であってもよい。
【００５６】
実施の形態１にかかるデータ防護処理部１０は、シリアル入力されるビットデータ列に対してバイト変換をおこなうことでバイト列を取得する。そして、取得したバイト列に含まれる所定のバイトデータの存在を条件として、バイトコードから所定範囲にわたるバイトデータに対して所定の防護キー値を加算（減算）することで符号化をおこなうことを特徴としている。また、逆の手順によって復号化をおこなうことも特徴とする。
【００５７】
図４は、実施の形態１にかかるデータ防護処理部１０Ａ〜Ｄの構成を示すブロック図である。図４に示すデータ防護処理部１０は、補助記憶装置へ書き込みしようとする書き込みデータに対して符号化処理を施す符号化処理部と、補助記憶装置から読み出された読み出しデータに対して復号化処理を施す復号化処理部と、付加条件／付加範囲／防護キー記憶部３０と、を備えて構成される。
【００５８】
まず、付加条件／付加範囲／防護キー記憶部３０は、付加条件、付加範囲および防護キー値を記憶するものである。ここで、付加条件とは、バイトデータが、どのバイトコードを示した場合にそのバイトデータからいくつ後のバイトデータに対して防護キー値の加算をおこなうかを示すものである。したがって、この付加条件は、所定のバイトコードと加算開始位置を示す数値とから構成される。
【００５９】
また、付加範囲とは、付加条件によって示される加算開始位置から、いくつのバイトデータにわたって防護キー値を加算するかを示すものであり、その範囲を示す数値によって表わされる。防護キー値とは、上記したように、バイトデータに加算する数値を表わすものである。
【００６０】
符号化処理部は、第１バッファ２２と、防護キー付加位置判定部２４と、防護キー付加処理部２６と、第２バッファ２８と、から構成される。第１バッファ２２は、外部から受け取ったデータ、特にシリアルビットデータを、少なくとも複数のバイトが構成できる容量分のデータを蓄積する記憶部である。また、この第１バッファ２２は、ディジタルデータのシリアル−パラレル変換を可能としたＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）メモリとしての機能を果たす。
【００６１】
防護キー付加位置判定部２４は、第１バッファに蓄積されたバイトデータをその蓄積順に取り出し、取り出したバイトデータが、上記した付加条件によって示されるバイトコードに一致するか否かを判定するものである。防護キー付加位置判定部２４は、第１バッファ２２から取り出したバイトデータが上記付加条件を満たす場合には、たとえば、その旨を示す付加フラグをＯＮ状態にしたり、後述するように付加カウンタをカウントアップする。
【００６２】
防護キー付加処理部２６は、第１バッファ２２から取り出されたバイトデータを、防護キー付加位置判定部２４を介して受け取り、受け取ったバイトデータが上記付加条件を満たす場合に、そのバイトデータに上記防護キー値を加算する。具体的には、防護キー付加処理部２６は、上記付加フラグや付加カウンタの状態に応じて、バイトデータに対して防護キー値を加算するか否かを判定する。
【００６３】
第２バッファ２８は、防護キー付加処理部２６において付加処理が施されたバイトデータおよび付加処理が施されなかったバイトデータを蓄積する記憶部である。また、この第２バッファ２８は、ディジタルデータのパラレル−シリアル変換を可能としたＦＩＦＯメモリとしての機能を果たす。したがって、符号化処理部は、第１バッファ２２が受け取ったデータに対し、所定の条件を満たすデータ部のみを変容させることになる。特に、その変容前後において、データサイズに変化がないことを特徴としている。
【００６４】
一方、復号化処理部は、第３バッファ３８と、防護キー除去位置判定部３６と、防護キー除去処理部３４と、第４バッファ３２と、から構成され、上述した符号化処理部と逆の処理をおこなう。第４バッファ３２は、上記した第１バッファ２２と同様の機能を果たす記憶部である。
【００６５】
防護キー除去位置判定部３６は、第３バッファに蓄積されたバイトデータをその蓄積順に取り出し、取り出したバイトデータが、上記した付加条件によって示されるバイトコードに一致するか否かを判定するものである。防護キー除去位置判定部３６は、第３バッファから取り出したバイトデータが上記付加条件を満たす場合には、たとえば、その旨を示す付加フラグをＯＮ状態にしたり、後述するように付加カウンタをカウントアップする。したがって、この防護キー除去位置判定部３６は、機能としては上記した防護キー付加位置判定部２４と同じであり、復号化処理部において防護キー除去位置判定部３６を設けずに、防護キー付加位置判定部２４を兼用してもよい。
【００６６】
防護キー除去処理部３４は、第３バッファ３８から取り出されたバイトデータを、防護キー除去位置判定部３６を介して受け取り、受け取ったバイトデータが上記付加条件を満たす場合に、そのバイトデータから上記防護キー値を差し引く。具体的には、防護キー除去処理部３４は、上記付加フラグや付加カウンタの状態に応じて、バイトデータに対して防護キー値を差し引くか否かを判定する。
【００６７】
第４バッファ３２は、防護キー除去処理部３４において除去処理が施されたバイトデータおよび除去処理が施されなかったバイトデータを蓄積する記憶部である。また、この第４バッファ３２は、ディジタルデータのパラレル−シリアル変換を可能としたＦＩＦＯメモリとしての機能を果たす。したがって、復号化処理部は、第３バッファ３８が受け取ったデータに対し、所定の条件を満たすデータ部のみを変容させることになる。特に、上記した符号化処理部によって変容されたデータに対しては復号化処理を施すことになる。
【００６８】
したがって、データ防護処理部１０から出力された書き込みデータは、データ防護処理部１０をもちいて出力しなければ、その内容を正しく取得することはできない。すなわち、データ防護処理部１０は、符号化／復号化処理を、付加条件／付加範囲／防護キー記憶部３０に記憶された内容にしたがってデータサイズを増減させることなく実行することができる。
【００６９】
（データ防護処理部の動作）
つぎに、このデータ防護処理部１０の動作について、符号化処理および復号化処理に分けて説明する。ここでは、説明を簡単にするために、上記した付加条件のうち加算開始位置を１とする。これは、付加条件によって示されるバイトコード、すなわち付加処理を実行するきっかけとなるバイトデータのつぎに位置するバイトデータから防護キー値の加算または減算をおこなうことを意味する。
【００７０】
まず、データ防護処理部１０の符号化処理について説明する。図５は、実施の形態１にかかるデータ防護処理部の符号化処理を示すフローチャートである。データ防護処理部１０は、符号化処理を開始するにあたって、まず、符号化の対象となる補助記憶装置への書き込みデータを第１バッファ２２に取りこむ（ステップＳ５０１）。そして、防護キー付加位置判定部２４が、第１バッファ２２から１バイト分のデータを読み出す（ステップＳ５０２）。また、防護キー付加位置判定部２４は、自身が管理する付加カウンタが０より大きい値を示しているか否かを判定する（ステップＳ５０３）。
【００７１】
ステップＳ５０３において付加カウンタが０である場合（ステップＳ５０３：Ｎｏ）には、防護キー付加位置判定部２４は、第１バッファ２２から読み出したバイトデータに対して付加処理を施す必要はないと判断し、現在読み出しているバイトデータが防護キー付加条件、すなわち上記したバイトコードと一致するか否かを判定する（ステップＳ５０８）。
【００７２】
ステップＳ５０８において、バイトデータが防護キー付加条件と一致しない場合（ステップＳ５０８：Ｎｏ）には、防護キー付加位置判定部２４は、現在読み出しているバイトデータをそのまま次段の防護キー付加処理部２６に渡し、防護キー付加処理部２６は付加処理を実行することなく、そのバイトデータを第２バッファ２８に書き込む（ステップＳ５１０）。
【００７３】
ステップＳ５０８において、バイトデータが防護キー付加条件と一致する場合（ステップＳ５０８：Ｙｅｓ）には、防護キー付加位置判定部２４は、上記した付加カウンタを１にセットし（ステップＳ５０９）、その後、ステップＳ５１０の処理をおこなう。
【００７４】
一方、ステップＳ５０３において、付加カウンタが０より大きい場合（ステップＳ５０３：Ｙｅｓ）には、防護キー付加位置判定部２４は、第１バッファ２２から読み出したバイトデータに対して付加処理を施す必要があると判断し、次段の防護キー付加処理部２６に、現在読み出しているバイトデータを渡すとともに、付加処理を依頼する。これによって、防護キー付加処理部２６は、受け取ったバイトデータに、付加条件／付加範囲／防護キー記憶部３０に記憶されている防護キー値を加算する（ステップＳ５０４）。
【００７５】
図６は、防護キー値の加算処理（付加処理）を説明するための説明図である。
ステップＳ５０４における加算処理は、たとえば、図６に示すように、防護キー値がヘキサコード“１Ｅ”で表わされ、第１バッファ２２から読み出したデータがバイナリコードで“１０１１００１０”と表わされたバイトデータ、すなわちヘキサコード“Ｂ２”で表わされる場合、バイトデータ“Ｂ２”に防護キー値“１Ｅ”を加算することによりおこなう。したがって、この場合、加算結果として、バイナリコード“１１０１００００”と表わされたバイトデータ、すなわちヘキサコード“Ｄ０”を得ることができる。
【００７６】
防護キー付加位置判定部２４は、防護キー付加処理部２６による加算処理が終わると、または防護キー付加処理部２６に対して加算処理を依頼すると、付加カウンタが付加条件／付加範囲／防護キー記憶部３０に記憶されている付加範囲を超えているか否かを判定する（ステップＳ５０５）。
【００７７】
ステップＳ５０５において、付加カウンタが付加範囲を超えていない場合（ステップＳ５０５：Ｎｏ）は、防護キー付加位置判定部２４は、付加カウンタの値をインクリメントし（ステップＳ５０７）、その後、ステップＳ５１０の処理をおこなう。一方、ステップＳ５０５において付加カウンタが付加範囲を超えている場合（ステップＳ５０５：Ｙｅｓ）は、防護キー付加位置判定部２４は、付加カウンタの値をリセットし（ステップＳ５０６）、その後、ステップＳ５１０の処理をおこなう。
【００７８】
ステップＳ５１０の処理後、第２バッファ２８のデータを順次、補助記憶装置へ送出する（ステップＳ５１１）。そして、送出されたデータが補助記憶装置に書き込まれる。
【００７９】
以上の処理によって、データ防護処理部１０は、第１バッファ２２に蓄積されたバイトデータに対し、付加条件／付加範囲／防護キー記憶部３０に記憶された諸条件にしたがった符号化を実現する。図７は、符号化処理によって得られるバイトデータ列の例を示す図である。
【００８０】
図７に示すように、付加条件がバイトコード“５Ｄ”のつぎからとし、防護キー値を“１Ｅ”、付加範囲を３とした場合には、データ防護処理部１０の符号化処理によって、“５Ｄ  ９Ｂ  １１  ４０  Ａ９”の部分は、“５Ｄ  Ｂ９  ２Ｆ  ５Ｅ  Ａ９”に変容され、“５Ｄ  ８８  ＦＡ  １Ｂ  ３３”の部分は、“５Ｄ  Ａ６  １９  ３９  ３３”に変容される。ここで、“ＦＡ”から“１９”に変容されているように、防護キー値を加算した結果が、１バイトで表わされる数値範囲を超える場合には、その超えた部分の数値を加算結果とする。
【００８１】
また、上記の例においては、防護キー値を一種類のみ設定していたが、防護キー値を複数の値から構成されるデータパターンとして用意しておき、付加範囲の先頭から順に、そのデータパターンが順次示す値を、加算または減算するようにしてもよい。たとえば、図７に示した例で、付加条件および付加範囲は同じで、防護キー値を“１Ｅ，ＡＢ，７Ｆ”とすると、“５Ｄ”のつぎの“９Ｂ”に対して、“１Ｅ”を加算され、つぎの“１１”に対して“ＡＢ”を加算し、つぎの“４０”に対して“７Ｆ”を加算する。
【００８２】
また、付加条件、付加範囲の設定方法については、以下のような方法であってもよい。たとえば、付加条件を“５Ｄ”つぎとそのつぎをとばして３つ先からとし、付加範囲を一つおきに３バイトとする。それによって、図７に示した例をもちいると、加算の対象となるのは、（“９Ｂ”と“１１”をとばした３つ先の）“４０”と“ＤＤ”と“３８”ということになる。いずれにせよ、所定の数値のバイトデータの後に連続する所定数のバイトデータの全部または一部であれば、その内容についてはどのようなものであってもよい。
【００８３】
プログラムは、基本的には８ビットコードの配列として表現されており、そのソースでコマンド等を構成するアルファベットや数値を表わすのに、８ビットコードのうち７ビットしかもちいておらず、最上位ビットである８ビット目を“１”に置換すると、コンピュータ上で認識できないコードになる。したがって、対象のデータがプログラムである場合は、防護キー値として、８ビット目を“１”に置換するようなヘキサコードとして、“８０”〜”ＦＦ”のいずれかをもちいるとより有効である。
【００８４】
つぎに、データ防護処理部１０の復号化処理について説明する。図８は、実施の形態１にかかるデータ防護処理部の復号化処理を示すフローチャートである。はじめに、対象となるデータがデータ防護処理部１０を経由して補助記憶装置に書き込まれたデータか否かを判断する（ステップＳ８０１）。これは、防護キーが付加されていない正常なデータに対して、防護キー除去処理をおこなってしまい、結果的に、データが正常でなくなるのを防止するためである。
【００８５】
この判断の方法としては、たとえば、ハードディスクなど情報処理装置に内蔵型の書き込み可能な媒体からのデータであると判断した場合は、当然、データ防護処理部１０を経由していると判断することができる。また、ＣＤ−ＲＯＭのように、書き込みができない媒体からのデータであると判断した場合は、データ防護処理部１０を経由していないと判断することができる。そのほか、データ防護処理部１０を経由して書き込まれたデータには、データ（ファイル）の所定の箇所に、データ防護処理部１０を経由して書き込まれたデータである旨のデータを付加するようにしてもよい。
【００８６】
なお、このステップＳ８０１は、スキップさせるようにしてもよい。そうすることによって、情報処理装置に入力されるすべてのデータに対してかならずデータ防護処理部１０を経由することができる。これは、情報処理装置へ不正情報の入力に対しては特に有効である。
【００８７】
ステップＳ８０１において、データ防護処理部１０を経由して書き込まれたデータでない場合（ステップＳ８０１：Ｎｏ）は、何もせずに、処理を終了する。一方、データ防護処理部１０を経由して書き込まれたデータである場合（ステップＳ８０１：Ｙｅｓ）は、つぎに、データ防護処理部１０が、復号化処理を開始するにあたって、まず、復号化の対象となる読み出しデータを第３バッファ３８に取りこむ（ステップＳ８０２）。
【００８８】
そして、防護キー除去位置判定部３６が、第３バッファ３８から１バイト分のデータを読み出す（ステップＳ８０３）。また、防護キー除去位置判定部３６は、自身が管理する付加カウンタが０より大きい値を示しているか否かを判定する（ステップＳ８０４）。
【００８９】
ステップＳ８０４において、付加カウンタが０である場合（ステップＳ８０４：Ｎｏ）には、防護キー除去位置判定部３６は、第３バッファ３８から読み出したバイトデータに対して除去処理を施す必要はないと判断し、現在読み出しているバイトデータが防護キー付加条件、すなわち上記したバイトコードと一致するか否かを判定する（ステップＳ８０９）。
【００９０】
ステップＳ８０９において、バイトデータが防護キー付加条件と一致しない場合（ステップＳ８０９：Ｎｏ）には、防護キー除去位置判定部３６は、現在読み出しているバイトデータをそのまま次段の防護キー除去処理部３４に渡す。そして、防護キー除去処理部３４は除去処理を実行することなく、そのバイトデータを第４バッファ３２に書き込む（ステップＳ８１１）。
【００９１】
ステップＳ８０９において、バイトデータが防護キー付加条件と一致する場合（ステップＳ８０９：Ｙｅｓ）には、防護キー除去位置判定部３６は、上記した付加カウンタを１にセットし（ステップＳ８１０）、ステップＳ８１１の処理をおこなう。
【００９２】
一方、ステップＳ８０４において、付加カウンタが０より大きい場合（ステップＳ８０４：Ｙｅｓ）には、防護キー除去位置判定部３６は、第３バッファ３８から読み出したバイトデータに対して減算処理を施す必要があると判断し、次段の防護キー除去処理部３４に、現在読み出しているバイトデータを渡すとともに、減算処理を依頼する。
【００９３】
これによって、防護キー除去処理部３４は、受け取ったバイトデータから、付加条件／付加範囲／防護キー記憶部３０に記憶されている防護キー値を差し引く（ステップＳ８０５）。なお、この減算処理は、図６に示した加算処理と逆の処理であるので、ここではその説明を省略する。
【００９４】
防護キー除去位置判定部３６は、防護キー除去処理部３４による減算処理が終わると、または防護キー除去処理部３４に対して減算処理を依頼すると、付加カウンタが付加条件／付加範囲／防護キー記憶部３０に記憶されている付加範囲を超えているか否かを判定する（ステップＳ８０６）。
【００９５】
ステップＳ８０６において、付加カウンタが付加範囲を超えていない場合（ステップＳ８０６：Ｎｏ）は、防護キー除去位置判定部３６は、付加カウンタの値をインクリメントし（ステップＳ８０８）、その後、ステップＳ８１１の処理をおこなう。一方、ステップＳ８０６において、付加カウンタが付加範囲を超えている場合（ステップＳ８０６：Ｙｅｓ）は、防護キー除去位置判定部３６は、付加カウンタの値をリセットし（ステップＳ８０７）、その後、ステップＳ８１１の処理をおこなう。
【００９６】
ステップＳ８１１の処理後、第４バッファ３２のデータが、補助記憶装置からの読み出しデータとして順次送出される（ステップＳ８１２）。以上の処理によって、データ防護処理部１０は、第３バッファ３８に蓄積されたバイトデータに対し、付加条件／付加範囲／防護キー記憶部３０に記憶された諸条件にしたがった復号化を実現する。
【００９７】
以上に説明したように、実施の形態１にかかる情報処理装置によれば、補助記憶装置への書き込みデータにかかるシリアルデータをバイトごとに監視して、そのバイトデータが所定のバイトコードに一致しているか否かを判定し、一致している場合には、その一致箇所から所定の個数後に受け取ったバイトデータを開始位置として、その開始位置にあるバイトデータから所定の個数にわたるバイトデータに所定の値を加算することで符号化を実現しているので、データの符号化をデータサイズの変化なく実現することができる。
【００９８】
また、補助記憶装置から読み出された読み出しデータにかかるシリアルデータをバイトごとに監視して、そのバイトデータが所定のバイトコードに一致しているか否かを判定し、一致している場合には、その一致箇所から所定の個数後に受け取ったバイトデータを開始位置として、その開始位置にあるバイトデータから所定の個数にわたるバイトデータから所定の値を差し引くことで、上記した符号化に対応した復号化を実現することができる。
【００９９】
したがって、実施の形態１にかかる情報処理装置は、補助記憶装置へ書き込むデータのすべてを受け取らずとも、実際に受け取った部分から順に符号化／復号化処理を実行することが可能になるので、バッファとして大容量のものを必要とすることなく、装置構成を安価にすることができる。
【０１００】
特に、このデータ防護処理部１０を介して符号化するので、情報処理装置とその情報処理装置に接続された補助記憶装置間においては、データの機密化と高速な読み出し／書き込みを実現することができる。したがって、補助記憶装置のみに対して不正にアクセスして補助記憶装置に記憶されたデータをコピーしても、本来の正確なデータを取得することはできない。
【０１０１】
また、その反対に、補助記憶装置を利用してウイルスなどの不正なデータを情報処理装置へ入力したとしても、そのウイルスデータが復号（符号）化されてしまい、異なる別のデータに置き換えられてしまうので、そのウイルスの機能を十分果たすことはできない。
【０１０２】
なお、以上に説明した実施の形態１では、符号化処理において防護キー値を加算し、復号化処理において防護キー値を減算するとしたが、逆に、符号化処理において防護キー値を減算し、復号化処理において防護キー値を加算するようにしてもよい。
【０１０３】
〔実施の形態２〕
つぎに、実施の形態２にかかる情報処理装置、その情報処理装置が備える補助記憶装置制御回路、ＩＤＥコントローラ、ＳＣＳＩコントローラ、ＵＳＢコントローラ、マルチＩ／Ｏコントローラ、補助記憶装置制御方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体の好適な実施の形態について説明する。
【０１０４】
実施の形態２にかかるデータ防護処理部２０（２０Ａ〜２０Ｄ）では、実施の形態１に示したデータ防護処理部１０（１０Ａ〜１０Ｄ）に加えて、上記したデータフレームを構成するデータのうち符号化／復号化をおこなうデータ部分を指定する機能を付加している。
【０１０５】
図９は、実施の形態２にかかるデータ防護処理部２０の構成を示すブロック図である。なお、図９において、図４と共通する部分については同一符号を付してその説明を省略する。図９に示すデータ防護処理部２０において、図４と異なる点は、符号化処理部にフレームバッファ４２、データフレーム抽出処理部４４およびデータフレーム置換処理部４６が追加され、復号化処理部にフレームバッファ５２、データフレーム抽出処理部５４およびデータフレーム置換処理部５６が追加されたことである。
【０１０６】
フレームバッファ４２は、補助記憶装置へ書き込みしようとするデータのデータフレームを受け取って保持する記憶部である。また、データフレーム抽出処理部４４は、フレームバッファ４２に保持されたデータフレームから、所定のデータを抽出し、抽出したデータを第１バッファ２２に書き込む処理をおこなう。
【０１０７】
そして、データフレーム置換処理部４６は、フレームバッファ４２に保持されたデータフレームのうちデータフレーム抽出処理部４４によって抽出されたデータ部分を、第２バッファ２８から読み出したデータ、すなわち実施の形態１に説明した符号化処理が施されたデータに置換する処理をおこなう。
【０１０８】
一方、フレームバッファ５２は、補助記憶装置から読み出された読み出しデータのデータフレームを受け取って保持する記憶部である。また、データフレーム抽出処理部５４は、フレームバッファ５２に保持されたデータフレームから所定のデータを抽出し、抽出したデータを第３バッファ３８に書き込む処理をおこなう。
【０１０９】
そして、データフレーム置換処理部５６は、フレームバッファ５２に保持されたデータフレームのうちデータフレーム抽出処理部５４によって抽出されたデータ部分を、第４バッファ３２から読み出したデータ、すなわち実施の形態１に説明した復号化処理が施されたデータに置換する処理をおこなう。
【０１１０】
これによって、書き込みされるデータのうち、符号化／復号化が必要な部分のデータ部分のみに対して、実施の形態１に説明した符号化／復号化処理をおこなうことができる。
【０１１１】
以上に説明したように、実施の形態２にかかるデータ防護処理部２０によれば、制御データなどはそのままで、実データのみを符号化／復号化することができる。
【０１１２】
また、以上に説明した実施の形態２にかかるデータ防護処理部２０においては、実施の形態１において説明したのと同様に、一種類だけの防護キー値を設定していたが、複数の値から構成されるデータパターンを用意しておき、付加範囲の先頭から順に、そのデータパターンが順次示す値を、加算または減算してもよい。
【０１１３】
また、以上に説明した実施の形態２にかかるデータ防護処理部２０においては、実施の形態１において説明したのと同様に、付加条件／付加範囲／防護キー記憶部３０に記憶される付加条件、付加範囲および防護キー値は、外部より書き換え可能にすることもできる。
【０１１４】
なお、本実施の形態１または２で説明したデータ防護処理方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーション等の情報処理装置（コンピュータ）で実行することにより実現するようにしてもよい。このプログラムは、ハードディスク、フロッピーディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、伝送媒体として、または上記記録媒体を介して、インターネット等のネットワークを介して配布することができる。
【０１１５】
【発明の効果】
以上説明したように、この発明にかかる補助記憶装置制御回路、ＩＤＥコントローラ、ＳＣＳＩコントローラ、ＵＳＢコントローラ、マルチＩ／Ｏコントローラ、情報処理装置、補助記憶装置制御方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体によれば、受け取ったディジタルデータが所定の数値であるか否かを判定し、所定の数値であると判定された場合には、その判定後に所定の回数のディジタルデータを受け取った際のそのディジタルデータに対して所定の演算値を加算または減算することによって符号化／復号化を実現するので、補助記憶装置へ書き込むすべてを受け取らずとも、実際に受け取った部分から順に符号化／復号化を実行することが可能になり、バッファとして大容量のものを必要とすることなく、装置構成を安価にすることができる。
【０１１６】
また、情報処理装置とその情報処理装置に内蔵されたあるいは接続された補助記憶装置との間においては、高速な書き込み／読み出しを維持しつつ、データの機密化を実現することができる。
【図面の簡単な説明】
【図１】この発明の実施の形態にかかる情報処理装置の内部構成（チップセットおよびその周辺の構成）を示す説明図である。
【図２】この発明の実施の形態にかかる情報処理装置のノースブリッジおよびその周辺の構成を示す説明図である。
【図３】この発明の実施の形態にかかる情報処理装置のサウスブリッジおよびその周辺の構成を示す説明図である。
【図４】実施の形態１にかかるＳＣＳＩコントローラ、ＩＤＥコントローラ、ＵＳＢコントローラ、マルチＩ／Ｏコントローラのデータ防護処理部の構成を示すブロック図である。
【図５】実施の形態１にかかるＳＣＳＩコントローラ、ＩＤＥコントローラ、ＵＳＢコントローラ、マルチＩ／Ｏコントローラのデータ防護処理部の符号化処理を示すフローチャートである。
【図６】実施の形態１にかかるＳＣＳＩコントローラ、ＩＤＥコントローラ、ＵＳＢコントローラ、マルチＩ／Ｏコントローラのデータ防護処理部において、防護キー値の加算処理を説明するための説明図である。
【図７】符号化処理によって得られるバイトデータ列の例を示す図である。
【図８】実施の形態１にかかるＳＣＳＩコントローラ、ＩＤＥコントローラ、ＵＳＢコントローラ、マルチＩ／Ｏコントローラのデータ防護処理部の復号化処理を示すフローチャートである。
【図９】実施の形態２にかかるＳＣＳＩコントローラ、ＩＤＥコントローラ、ＵＳＢコントローラ、マルチＩ／Ｏコントローラのデータ防護処理部の構成を示すブロック図である。
【符号の説明】
１０，２０  データ防護処理部
２２  第１バッファ
２４  防護キー付加位置判定部
２６  防護キー付加処理部
２８  第２バッファ
３０  付加条件／付加範囲／防護キー記憶部
３２  第４バッファ
３４  防護キー除去処理部
３６  防護キー除去位置判定部
３８  第３バッファ
４２，５２  フレームバッファ
４４，５４  データフレーム抽出処理部
４６，５６  データフレーム置換処理部
１００  ＣＰＵ
１０１  ローカルバス
１０２  メインメモリ
１０３  チップセット
１０４  ノースブリッジ
１０５  サウスブリッジ
１０６  ＰＣＩバス
１０９  ＳＣＳＩコントローラ
１１０  ＳＣＳＩハードディスクドライブ
１１１  ＩＤＥハードディスクドライブ
１１２  ＣＤ−ＲＯＭドライブ
１１３  ＵＳＢ機器
１１４  フロッピーディスクドライブ
３０１  ＩＤＥコントローラ
３０２  ＵＳＢコントローラ
３０３  マルチＩ／Ｏコントローラ
【図１】
0004647768.tif 000002
【図２】
0004647768.tif 000003
【図３】
0004647768.tif 000004
【図４】
0004647768.tif 000005
【図５】
0004647768.tif 000006
【図６】
0004647768.tif 000007
【図７】
0004647768.tif 000008
【図８】
0004647768.tif 000009
【図９】
0004647768.tif 000010