(57)【要約】【課題】ＡＴＡＰＩシステムにおいて、ＡＴＡＰＩコマンドの集中発行に起因する処理効率の低下を回避する。【解決手段】光学ドライブのＣＰＵ１６０は、ホストコンピュータ１１０からのＡＴＡＰＩコマンドに対応するコマンド処理を含む種々の処理を実行する。ＣＰＵ１６０によるコマンド処理の完了を示す完了通知をホストコンピュータ１１０に出力する完了通知部は、完了通知の出力タイミングを、コマンド処理の完了時点より遅延させ得る。【選択図】図２
2010191863.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータからのＡＴＡＰＩ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ  Ｐａｃｋｅｔ  Ｉｎｔｅｒｆａｃｅ）コマンドに対応するコマンド処理を含む種々の処理を実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、
前記ＣＰＵによる前記コマンド処理の完了を示す完了通知を前記ホストコンピュータに出力する完了通知部とを備え、
前記完了通知部は、前記完了通知の出力タイミングを、前記コマンド処理の完了時点より遅延させ得ることを特徴とするＡＴＡＰＩデバイス。
【請求項２】
前記完了通知部は、前記ＣＰＵの負荷状況に応じて、前記完了通知の出力タイミングを遅延させるか否かを決定することを特徴とする請求項１に記載のＡＴＡＰＩデバイス。
【請求項３】
前記負荷状況は、コマンド処理以外の、前記ＣＰＵによる実行中の処理の種類を含むことを特徴とする請求項２に記載のＡＴＡＰＩデバイス。
【請求項４】
前記完了通知部は、前記ホストコンピュータからのＡＴＡＰＩコマンドの発行時点から、該ＡＴＡＰＩコマンドに対応する前記完了通知を前記ホストコンピュータに出力する時点までの時間が、前記ＡＴＡＰＩコマンドに対して定められた最大応答時間内に収まるように、前記完了通知の出力タイミングの遅延量を決定することを特徴とする請求項１から３のいずれか１項に記載のＡＴＡＰＩデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＡＴＡＰＩ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ  Ｐａｃｋｅｔ  Ｉｎｔｅｒｆａｃｅ）デバイスやＡＴＡＰＩシステムに関する。
【背景技術】
【０００２】
ＡＴＡＰＩは、ＣＤ／ＤＶＤドライブといった光学ドライブや、ハードディスクなどのデバイスをホストコンピュータに接続するために定められたデータ転送規格である（非特許文献１）。ＡＴＡＰＩに準拠したデバイス（ＡＴＡＰＩデバイス）とホストコンピュータが接続されたシステム（ＡＴＡＰＩシステム）において、図３のタイミングチャートが示すＡＴＡＰＩコマンドシーケンスが実行される。
【０００３】
（１）ホストコンピュータは、ＡＴＡＰＩのパケットコマンドを発行するために、ＡＴＡＰＩデバイスのコマンドレジスタに「Ａ０」を書き込む。
【０００４】
（２）ＡＴＡＰＩデバイスに備えられた、ホストコンピュータとの通信を担うＬＳＩは、コマンドレジスタに「Ａ０」が書き込まれると、ＩＮＴＲＱ信号をアサートする。
【０００５】
（３）ホストコンピュータは、ＡＴＡＰＩデバイスのデータレジスタにコマンドパケットを書き込む。
【０００６】
（４）ＡＴＡＰＩデバイスのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）は、データレジスタからコマンドパケットを読み出して解析し、コマンドの種類を判定する。
【０００７】
（５）ＣＰＵは、コマンドの種類に応じて、コマンド処理を行う。
ＡＴＡＰＩシステムにおけるコマンド処理は、ＡＴＡＰＩコマンドに応答するための処理を意味する。例えば、ＣＤ／ＤＶＤドライブに装着された光ディスクに記録された情報のリードやライト処理中に、ホストコンピュータから処理の進捗状況を問い合わせるＡＴＡＰＩコマンドが発行される場合がある。このＡＴＡＰＩコマンドに対して、ＣＤ／ＤＶＤドライブは、どこまでリード／ライトしたかなどの進捗状況を調べてホストコンピュータに返答する。この進捗状況を調べる処理は、上記ＡＴＡＰＩコマンドに対応するコマンド処理である。
【０００８】
（６）ＣＰＵは、コマンド処理を完了すると、コマンド終了処理を行う。具体的には、ＡＴＡＰＩデバイスに備えられた完了レジスタに、コマンド処理の完了を示す情報を書き込む。
【０００９】
（７）ＡＴＡＰＩデバイスに備えられた、ホストコンピュータとの通信を担うＬＳＩは、ＣＰＵがコマンド終了処理を行うと、直ちにホストコンピュータに完了通知を出力する。具体的には、ＩＮＴＲＱ信号をアサートする。
【００１０】
（８）ホストコンピュータは、完了通知を受信したことでコマンド処理の完了を認識し、次のＡＴＡＰＩコマンドを発行する。これにより、（１）からの処理が繰り返される。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】ＡＴＡ  Ｐａｃｋｅｔ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  ＣＤ−ＲＯＭｓ  ＳＦＦ−８０２０ｉ  Ｒｅｖｉｓｉｏｎ２．６，５．０  ＡＴＡＰＩ  Ｐｒｏｔｏｃｏｌ
【発明の概要】
【発明が解決しようとする課題】
【００１２】
ここで、ＡＴＡＰＩデバイスがＣＤ／ＤＶＤドライブであり、光ディスクが該ＣＤ／ＤＶＤドライブに装着された直後を例に挙げて説明する。
【００１３】
ＣＤ／ＤＶＤドライブに光ディスクが装着されると、ＣＤ／ＤＶＤドライブ、具体的にはＣＤ／ＤＶＤドライブのＣＰＵは、該光ディスクの種類を判別する処理を実行する。判別処理の実行中に、ホストコンピュータからドライブに、挿入された光ディスクの種類の判別が完了したか否かを含む、ディスクのＲｅａｄ／Ｗｒｉｔｅをする準備が完了したかを確認するＡＴＡＰＩコマンド（Ｔｅｓｔ  Ｕｎｉｔ  Ｒｅａｄｙ）が発行される。
【００１４】
ＣＤ／ＤＶＤドライブのＣＰＵは、まだ光ディスクの種類を判別できていないときに、上記ＡＴＡＰＩコマンドに対応するコマンド処理としてエラー応答をする。また、エラー応答の完了に伴って、ＣＤ／ＤＶＤドライブからホストコンピュータに完了通知が出力される。
【００１５】
この完了通知を受けて、ホストコンピュータは、次のＡＴＡＰＩコマンド例えば「Ｔｅｓｔ  Ｕｎｉｔ  Ｒｅａｄｙ」コマンドを再度発行する。
【００１６】
そのため、光ディスクの種類を判別する処理の実行中に、ホストコンピュータからＡＴＡＰＩコマンドが集中して発行されると、ＣＤ／ＤＶＤドライブのＣＰＵは、コマンド処理をしなければならず、光ディスクの種類を判別するためのメカやピックアップの制御などの処理が遅くなってしまい、システムの処理効率が低下するという問題が生じうる。
最悪の場合、光ディスクの種類を判別できなくなってしまう恐れがある。
以下の説明において、ホストコンピュータからＡＴコマンドが集中して発行されることをＡＴコマンドの「集中発行」という。
【００１７】
この問題は、ＣＤ／ＤＶＤドライブによる光ディスクの種類判別中に限らず、種々のＡＴＡＰＩデバイスによる、コマンド処理以外の処理の実行中にも発生しうる。
【００１８】
本発明は、上記事情を鑑みてなされたものであり、ＡＴＡＰＩシステムにおいて、ＡＴＡＰＩコマンドの集中発行に起因する処理効率の低下を回避する技術を提供する。
【課題を解決するための手段】
【００１９】
本発明の一つの態様は、ＡＴＡＰＩデバイスである。このＡＴＡＰＩデバイスは、ホストコンピュータからのＡＴＡＰＩ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ  Ｐａｃｋｅｔ  Ｉｎｔｅｒｆａｃｅ）コマンドに対応するコマンド処理を含む種々の処理を実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、ＣＰＵによるコマンド処理の完了を示す完了通知をホストコンピュータに出力する完了通知部を備える。完了通知部は、完了通知の出力タイミングを、コマンド処理の完了時点より遅延させ得る。
【００２０】
なお、上記態様のデバイスを装置や、方法、システムなどに置き換えて表現したもの、該デバイスの一部の処理をコンピュータに実行せしめるプログラムも、本発明の態様としては有効である。
【発明の効果】
【００２１】
本発明にかかる技術によれば、ＡＴＡＰＩシステムにおいて、ＡＴＡＰＩコマンドの集中発行に起因する処理効率の低下を回避できる。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施の形態にかかるＡＴＡＰＩシステムを示す図である。
【図２】図１に示すＡＴＡＰＩシステムにおけるＡＴＡＰＩコマンドシーケンスを示すタイミングチャートである。
【図３】従来のＡＴＡＰＩコマンドシーケンスを示すタイミングチャートである。
【発明を実施するための形態】
【００２３】
以下、図面を参照して本発明の実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、ＣＰＵ、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００２４】
図１は、本発明の実施の形態にかかるＡＴＡＰＩシステム１００を示す図である。ＡＴＡＰＩシステム１００は、パーソナルコンピュータなどのホストコンピュータ１１０と、ＡＴＡＰＩデバイスである光学ドライブ１３０を備え、ホストコンピュータ１１０と光学ドライブ１３０は、ＡＴＡケーブル１２０を介して接続されている。本実施の形態において、光学ドライブ１３０は、例えばＣＤ／ＤＶＤドライブである。また、図１は、光学ドライブ１３０に光ディスク１９０が装着された状態を示している。
【００２５】
光学ドライブ１３０は、ドライブＬＳＩ１４０と、ＣＰＵ１６０を有する。ドライブＬＳＩ１４０は、ホストコンピュータ１１０との通信や、ＣＰＵ１６０が行う各処理の補助をする。ＣＰＵ１６０は、ホストコンピュータ１１０からのＡＴＡＰＩコマンドに対応したコマンド処理、メカやピックアップの制御などの種々の処理を行う。なお、図１において、光学ドライブ１３０に対して、本発明の技術を説明するために必要な機能ブロックのみを示しており、通常の光学ドライブに備えられ、本発明の技術を説明する上で必要ではないものについては省略している。
【００２６】
ドライブＬＳＩ１４０は、複数のレジスタ（コマンドＲＥＧ１４２、データＲＥＧ１４４、完了ＲＥＧ１４６、負荷状況ＲＥＧ１４８）と、完了通知部１５０を有する。
【００２７】
コマンドＲＥＧ１４２は、ホストコンピュータ１１０がコマンドパケットを発行する際に「Ａ０」を書き込むためのものである。
【００２８】
データＲＥＧ１４４は、ホストコンピュータ１１０がパケットパケットを書き込むためのものである。
【００２９】
完了ＲＥＧ１４６は、ＣＰＵ１６０がコマンド処理を完了したときに、その旨を示す完了情報を書込むためのものである。
【００３０】
負荷状況ＲＥＧ１４８は、ＣＰＵ１６０が自身の現在の負荷状況を示す負荷情報を書き込むためのものである。この負荷情報の詳細については、後述する。
【００３１】
完了通知部１５０は、完了ＲＥＧ１４６に書き込まれた完了情報に応じてホストコンピュータ１１０に完了通知を出力するものであり、出力のタイミングについては、負荷状況ＲＥＧ１４８に書き込まれた負荷情報を参照して決定する。
【００３２】
本実施の形態において、完了通知部１５０は、負荷状況ＲＥＧ１４８に書き込まれた負荷情報を参照して、完了通知の出力を遅延させるか否かを決定する。「遅延させない」とは、従来通りに、完了ＲＥＧ１４６に完了情報が書き込まれれば直ちにホストコンピュータ１１０に完了通知を出力することを意味し、「遅延させる」とは、完了ＲＥＧ１４６に完了情報が書き込まれてから所定時間が経過した後に完了通知をホストコンピュータ１１０に出力することを意味する。この所定時間は、以下遅延時間という。
【００３３】
ホストコンピュータ１１０は、完了通知を受信しないと次のＡＴＡＰＩコマンドを発行しないので、完了通知を遅延させることによって、ＣＰＵ１６０は、現在実行中の処理に専念することができる。従い、ＣＰＵ１６０をＡＴＡＰＩコマンドの対応より現在実行中の処理に専念させたほうが、システムの処理効率が良い場合には、完了通知を遅延させることにより、ＣＰＵ１６０を現在実行中の処理に専念させることができる。
【００３４】
負荷状況ＲＥＧ１４８に書き込まれる負荷情報は、完了通知部１５０が完了通知を遅延させるか否かを判断するためのものであり、ＣＰＵ１６０の負荷状況を直接的に示す情報であってもよいし、間接的に示すものであってもよい。
【００３５】
ＣＰＵ１６０の負荷状況を直接的に示す情報として、例えば、ＣＰＵ１６０のＣＰＵ使用率を用いることができる。この場合、完了通知部１５０は、負荷情報（上記使用率）が所定の閾値以下であれば完了通知を遅延させず、負荷情報が上記閾値を超えていれば完了通知を遅延させる。
【００３６】
ＣＰＵ１６０の負荷状況を間接的に示す情報として、例えば、ＣＰＵ１６０による実行中の処理に応じた分類を用いることができる。例えば、光ディスクの種類の判別処理は、ＣＰＵ１６０へ与える負荷が大きく、ＣＰＵ１６０が専念する必要のある処理である。そのため、光ディスクの種類の判別処理は、該処理の実行中に、完了通知を遅延させるべき処理である。一方、光ディスクに記録された情報の再生処理は、ＣＰＵ１６０へ与える負荷が比較的小さく、再生処理中にＣＰＵ１６０がＡＴＡＰＩコマンドの対応をしてもシステムの処理効率に影響を与えることが少ない。そのため、再生処理は、該処理の実行中に、完了通知を遅延させなくてもよい処理である。
【００３７】
負荷情報として、ＣＰＵ１６０による実行中の処理に応じた分類を用いた場合、完了通知部１５０は、負荷情報が予め設定された分類を示すときには完了通知を遅延させ、負荷情報が予め設定された分類以外を示すときには完了通知を遅延させない。
【００３８】
ＣＰＵ１６０の負荷状況を間接的に示す情報の別の例として、ＡＴＡＰＩコマンドを受け付けてもよいか否かを示す情報を用いることができる。この場合、ＣＰＵ１６０は、負荷が所定の閾値を超えたときや、予め設定された分類の処理を実行しているときに「ＡＴＡＰＩコマンドを受け付けない」ことを示す情報（例えば「１」）を負荷状況ＲＥＧ１４８に書き込み、他の場合には「ＡＴＡＰＩコマンドを受け付けてもよい」ことを示す情報（例えば「０」）を負荷状況ＲＥＧ１４８に書き込む。完了通知部１５０は、負荷状況ＲＥＧ１４８に書き込まれた負荷情報が「ＡＴＡＰＩコマンドを受け付けない」ことを示すときに完了通知を遅延させ、負荷情報が「ＡＴＡＰＩコマンド受け付けてもよい」ことを示すときには完了通知を遅延させない。
【００３９】
なお、ホストコンピュータに実装されたシステムによって、ＡＴＡＰＩコマンドに対して最大応答時間が定められている場合がある。このようなシステムに対応して、本実施の形態において、完了通知部１５０は、完了通知を遅延させる際に、ホストコンピュータ１１０によるＡＴＡＰＩコマンドの発行時点から、完了通知の出力時点までの時間が、上記最大応答時間内に収まるように遅延時間を決定する。
【００４０】
図２に示すタイミングチャートを参照して、本実施の形態のＡＴＡＰＩシステム１００におけるＡＴＡＰＩコマンドシーケンスを説明する。なお、図２は、完了通知部１５０が完了通知を遅延させた場合のタイミングチャートの例である。
【００４１】
（１）ホストコンピュータ１１０は、ＡＴＡＰＩのパケットコマンドを発行するために、コマンドＲＥＧ１４２に「Ａ０」を書き込む。
【００４２】
（２）ドライブＬＳＩ１４０は、コマンドＲＥＧ１４２に「Ａ０」が書き込まれると、ＩＮＴＲＱ信号をアサートする。
【００４３】
（３）ホストコンピュータ１１０は、データＲＥＧ１４４にコマンドパケットを書き込む。ＡＴＡＰＩシステムにおいて、このコマンドパケットは、１２Ｂｙｔｅである。
【００４４】
（４）ドライブＬＳＩ１４０は、ホストコンピュータ１１０からＡＴＡＰＩコマンドが発行されたことをＣＰＵ１６０に通知する。ＣＰＵ１６０は、この通知に応じて、データＲＥＧ１４４からコマンドパケットを読み出して、コマンドパケットの１Ｂｙｔｅ目を解析することにより、コマンドの種類を判定する。
【００４５】
（５）ＣＰＵ１６０は、コマンドの種類に応じて、コマンド処理を行う。
【００４６】
（６）ＣＰＵ１６０は、コマンド処理を完了すると、完了情報を完了ＲＥＧ１４６に書き込む。
【００４７】
（７）ドライブＬＳＩ１４０の完了通知部１５０は、完了ＲＥＧ１４６に完了情報が書き込まれると、負荷状況ＲＥＧ１４８を参照して、該完了通知の出力を遅延させるか否かを判定する。図２の例の場合、完了通知部１５０は、完了通知の出力を遅延させると判定している。
【００４８】
（８）完了通知部１５０は、完了通知を遅延時間Ｔｄ分遅延させてホストコンピュータ１１０に出力する。具体的には、完了ＲＥＧ１４６に完了情報が書き込まれた後に遅延時間Ｔｄの経過後にＩＮＴＲＱ信号をアサートする。なお、遅延時間Ｔｄは、ホストコンピュータ１１０が発行した時点から、完了通知がホストコンピュータ１１０に出力する時点までの時間が、最大応答時間Ｔｍａｘ内に収まるように決定される。
【００４９】
（９）ホストコンピュータ１１０は、完了通知を受信したことでコマンド処理の完了を認識し、次のＡＴＡＰＩコマンドを発行する。これにより、（１）からの処理が繰り返される。
【００５０】
なお、完了通知部１５０が、完了通知を遅延させないと判断した場合には、ＡＴＡＰＩコマンドシーケンスは、図３と同様になる。
【００５１】
このように、本実施の形態のＡＴＡＰＩシステム１００において、完了通知部１５０は、ＣＰＵ１６０の負荷状況に応じて完了通知の出力を遅延させるか否かの判断をし、遅延させると判断した場合には、完了通知を遅延させてホストコンピュータ１１０に出力する。従って、集中発行されるＡＴＡＰＩコマンドへの対応に起因してシステムの処理効率が低下しかねない場合、例えば、ＣＰＵ１６０の負荷が大きい場合や、ＣＰＵ１６０が現在の処理に専念すべき場合において、遅延時間の分、コマンド処理以外のメカ制御やピックアップ制御などにＣＰＵ１６０の処理能力を割り振ることができる。
【００５２】
また、完了通知部１５０が、完了通知の出力を遅延させる際に、応答時間がＡＴＡＰＩコマンドに対して定められた最大応答時間Ｔｍａｘ内に収まるように遅延時間Ｔｄを決定しているので、完了通知の過度遅延に起因するシステムの破綻を防ぐことができる。
【００５３】
なお、以上において、分かりやすいように、データの転送を伴わないＡＴＡＰＩコマンドを例にして説明したが、完了通知部１５０がデータの転送を伴うＡＴＡＰＩコマンドについても同様に動作できることは勿論である。
【００５４】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、上述した各実施の形態に対してさまざまな変更、増減、組合せを行ってもよい。これらの変更、増減、組合せが行われた変形例も本発明の範囲にあることは当業者に理解されるところである。
【００５５】
例えば、本実施の形態のＡＴＡＰＩシステムにおけるＡＴＡＰＩデバイスは、光学ドライブである。本発明の技術は、光学ドライブに限らず、いかなるＡＴＡＰＩデバイスにも適用することができる。
【符号の説明】
【００５６】
１００  ＡＴＡＰＩシステム
１１０  ホストコンピュータ
１２０  ＡＴＡケーブル
１３０  光学ドライブ
１４０  ドライブＬＳＩ
１４２  コマンドＲＥＧ
１４４  データＲＥＧ
１４６  完了ＲＥＧ
１４８  負荷状況ＲＥＧ
１５０  完了通知部
１６０  ＣＰＵ
１９０  光ディスク
【図１】
2010191863.tif 000003
【図２】
2010191863.tif 000004
【図３】
2010191863.tif 000005