(57)【要約】【課題】上位からの転送量に応じてキャッシュメモリのセグメント数を切り替える媒体記憶装置に関し、上位の最大転送量に応じて、高速にセグメント数を切り替える。【解決手段】媒体記憶装置（１）が、上位装置（２）からのＯＳの種類の通知により、ＯＳの種類に依存する１コマンドの最大転送量に合わせて、キャッシュメモリ（１８）のセグメント数を変更する。これにより、そのＯＳのライト処理に適したセグメント数で、高速に書き込み処理する。【選択図】図７
2006039756.tif 000002
【特許請求の範囲】
【請求項１】
上位装置に接続され、上位装置からのライトデータを記憶する媒体記憶装置において、
媒体にデータを記録する媒体ドライブユニットと、
前記上位装置からのライトデータを格納するキャッシュメモリと、
前記キャッシュメモリのセグメント数を管理するとともに、前記キャッシュメモリに格納されたライトデータを前記媒体ドライブユニットに記録するためのコントローラとを有し、
前記コントローラは、前記上位装置から前記ライトデータの転送に先立って通知された前記上位装置のＯＳの種類に応じて、前記キャッシュメモリのセグメント数を設定する
ことを特徴とする媒体記憶装置。
【請求項２】
前記コントローラは、前記上位装置から前記ライトデータの転送に先立ってＣＤＢフォーマットで通知された前記上位装置のＯＳの種類に応じて、前記キャッシュメモリのセグメント数を設定する
ことを特徴とする請求項１の媒体記憶装置。
【請求項３】
上位装置に接続され、上位装置からのライトデータを記憶する媒体記憶装置のキャッシュセグメント切り替え方法において、
前記上位装置から前記ライトデータの転送に先立って通知された前記上位装置のＯＳの種類に応じて、キャッシュメモリのセグメント数を設定するステップと、
前記上位装置からのライトデータを前記キャッシュメモリの設定されたセグメント単位に格納するステップと、
前記キャッシュメモリに格納されたライトデータを媒体ドライブユニットに記録するステップとを有する
ことを特徴とする媒体記憶装置のキャッシュセグメント切り替え方法。
【請求項４】
前記設定ステップは、前記上位装置から前記ライトデータの転送に先立ってＣＤＢフォーマットで通知された前記上位装置のＯＳの種類に応じて、前記キャッシュメモリのセグメント数を設定するステップからなる
ことを特徴とする請求項３の媒体記憶装置のキャッシュセグメント切り替え方法。
【請求項５】
ライトコマンドとライトデータを発行する上位装置と、
前記上位装置に接続され、前記上位装置からのライトデータを記憶する媒体記憶装置とを有し、
前記媒体記憶装置は、
媒体にデータを記録する媒体ドライブユニットと、
前記上位装置からのライトデータを格納するキャッシュメモリと、
前記キャッシュメモリのセグメント数を管理するとともに、前記キャッシュメモリに格納されたライトデータを前記媒体ドライブユニットに記録するためのコントローラとを有し、
前記上位装置は、前記ライトデータの転送に先立って前記上位装置のＯＳの種類を、前記媒体記憶装置にドライバーにより通知し、
前記コントローラは、前記ＯＳの種類に応じて、前記キャッシュメモリのセグメント数を設定する
ことを特徴とする媒体記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリを有する媒体記憶装置、媒体記憶装置のキャッシュセグメント切り替え方法、及び媒体記憶システムに関し、特に、キャッシュメモリの分割セグメント数を動的に変更する媒体記憶装置、媒体記憶装置のキャッシュセグメント切り替え方法、及び媒体記憶システムに関する。
【背景技術】
【０００２】
近年のアクセス速度の向上に伴い、磁気デイスク装置、光デイスク装置、光磁気デイスク装置等の媒体記憶装置では、上位からのライトデータや媒体からのリードデータを一時格納するキャッシュメモリが設けられている。このキャッシュメモリにより、データライト時は、上位からのライトデータをキャッシュメモリに格納し、その後媒体にライトする（ライトバックという）ことができ、媒体ライト速度を吸収できる。又、データリード時には、アクセスされたデータの近傍のデータも、媒体からリードし、キャッシュメモリに格納しておくことにより、次のリード／ライトアクセスに対しては、キャッシュメモリに対象データが存在する場合に、キャッシュメモリのデータを上位へ転送又はキャッシュメモリのデータを更新することにより、応答速度を向上できる。
【０００３】
このようなキャッシュメモリには、多数のデータが格納できるため、キャッシュメモリ領域を複数のセグメントに分割することが、対象データを検索する点で有効である。１つのセグメントの容量が一定であるため、この分割セグメント数を固定にすると、上位装置からの要求転送量は可変であるため、キャッシュメモリを有効利用できない。又、セグメント単位にリード、ライトする媒体記憶装置では、リード／ライト回数が増加し、充分な性能を得られない。
【０００４】
このため、上位装置からの転送量に応じて、動的にセグメント数を変更する方法が種々提案されている。第１の従来の方法は、転送データ量やリード／ライトのアクセスの種別（単一かシーケンシャルか等）を学習する機能を媒体記憶装置に設け、転送データ量やアクセス種別に対し、分割セグメント数が適切でない時には、分割セグメント数を変更するものである（例えば、特許文献１、２参照）。
【０００５】
第２の従来の方法は、媒体の論理フォーマットの種類（クラスタサイズ等）により、分割セグメント数を変更するものである（例えば、特許文献３参照）。
【特許文献１】特開平７−３１９７７１号公報（図３、図４）
【特許文献２】特開平７−３１９７７１号公報（図２、段落番号［００１３］）
【特許文献３】特開２０００−２２７８６５号公報（図４）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、第１の従来の方法は、所定数のデータ転送量やアクセス種別の履歴をとっておき、その履歴から分割セグメント数を変更するため、学習するまで、セグメント数は変更されない。このため、それぞれの環境で、高速に最適セグメント数に設定することが困難である。即ち、学習するまで、媒体記憶装置の高速性を発揮できないという問題がある。
【０００７】
又、第２の従来の方法は、媒体のフォーマットのみに依存するため、上位装置のＯＳ（オペレーテイングシステム）の様々なコマンドシーケンスに対し、適応できず、ＯＳのコマンドシーケンスが異なる場合に、セグメント分割の効果が期待できないおそれがある。
【０００８】
従って、本発明の目的は、ＯＳのコマンドシーケンスが異なる場合でも、高速に最適なセグメント数に分割し、キャッシュメモリによる処理の高速性を向上するための媒体記憶装置、媒体記憶装置のキャッシュセグメント切り替え方法、及び媒体記憶システムを提供することにある。
【０００９】
又、本発明の他の目的は、各種のＯＳへ接続されても、高速に最適なセグメント数に分割し、キャッシュメモリによる処理の高速性を向上するための媒体記憶装置、媒体記憶装置のキャッシュセグメント切り替え方法、及び媒体記憶システムを提供することにある。
【００１０】
更に、本発明の他の目的は、ＯＳの最大転送量に応じて、高速に最適なセグメント数に分割し、キャッシュメモリによる処理の高速性を向上するための媒体記憶装置、媒体記憶装置のキャッシュセグメント切り替え方法、及び媒体記憶システムを提供することにある。
【００１１】
更に、本発明の他の目的は、各種ＯＳへの接続を可能とするＵＳＢ装置に、高速な最適セグメント数分割機能を付与するための媒体記憶装置、媒体記憶装置のキャッシュセグメント切り替え方法、及び媒体記憶システムを提供することにある。
【課題を解決するための手段】
【００１２】
この目的の達成のため、本発明の媒体記憶装置は、上位装置に接続され、上位装置からのライトデータを記憶する媒体記憶装置において、媒体にデータを記録する媒体ドライブユニットと、前記上位装置からのライトデータを格納するキャッシュメモリと、前記キャッシュメモリのセグメント数を管理するとともに、前記キャッシュメモリに格納されたライトデータを前記媒体ドライブユニットに記録するためのコントローラとを有し、前記コントローラは、前記上位装置から前記ライトデータの転送に先立って通知された前記上位装置のＯＳの種類に応じて、前記キャッシュメモリのセグメント数を設定する。
【００１３】
本発明のキャッシュセグメント切り替え方法は、上位装置に接続され、上位装置からのライトデータを記憶する媒体記憶装置のキャッシュセグメント切り替え方法において、前記上位装置から前記ライトデータの転送に先立って通知された前記上位装置のＯＳの種類に応じて、キャッシュメモリのセグメント数を設定するステップと、前記上位装置からのライトデータを前記キャッシュメモリの設定されたセグメント単位に格納するステップと、前記キャッシュメモリに格納されたライトデータを媒体ドライブユニットに記録するステップとを有する。
【００１４】
本発明の媒体記憶システムは、ライトコマンドとライトデータを発行する上位装置と、前記上位装置に接続され、前記上位装置からのライトデータを記憶する媒体記憶装置とを有し、前記媒体記憶装置は、媒体にデータを記録する媒体ドライブユニットと、前記上位装置からのライトデータを格納するキャッシュメモリと、前記キャッシュメモリのセグメント数を管理するとともに、前記キャッシュメモリに格納されたライトデータを前記媒体ドライブユニットに記録するためのコントローラとを有し、前記上位装置は、前記ライトデータの転送に先立って前記上位装置のＯＳの種類を、前記媒体記憶装置にドライバーにより通知し、前記コントローラは、前記ＯＳの種類に応じて、前記キャッシュメモリのセグメント数を設定する。
【００１５】
又、本発明では、好ましくは、前記コントローラは、前記上位装置から前記ライトデータの転送に先立ってＣＤＢフォーマットで通知された前記上位装置のＯＳの種類に応じて、前記キャッシュメモリのセグメント数を設定する。
【００１６】
又、本発明では、好ましくは、前記コントローラは、前記上位装置から前記ライトデータの転送に先立って通知された前記上位装置のＯＳの種類及びフォーマットの種類に応じて、前記キャッシュメモリのセグメント数を設定する。
【００１７】
又、本発明では、好ましくは、前記コントローラは、前記上位装置からの前記上位装置のＯＳの種類に応じた、前記キャッシュメモリのセグメント数を格納するテーブルを有し、前記テーブルを参照して、前記キャッシュメモリのセグメント数を設定する。
【００１８】
又、本発明では、好ましくは、前記コントローラは、前記上位装置から前記ライトデータの転送に先立ってＣＤＢフォーマットで通知されたライトコマンドに設定された前記上位装置のＯＳの種類に応じて、前記キャッシュメモリのセグメント数を設定する。
【００１９】
又、本発明では、好ましくは、前記コントローラは、前記上位装置から前記ライトデータの転送に先立ってＣＤＢフォーマットで通知されたベンダーコマンドに設定された前記上位装置のＯＳの種類に応じて、前記キャッシュメモリのセグメント数を設定する。
【００２０】
又、本発明では、好ましくは、前記コントローラは、前記媒体ドライブ部に、前記キャッシュメモリのセグメント単位で、書き込み動作を実行させる。
【００２１】
又、本発明では、好ましくは、前記媒体ドライブ部は、前記媒体に、ヘッドにより書き込みを行うドライブ機構で構成された。
【発明の効果】
【００２２】
本発明では、上位装置からの通知により、ＯＳの種類に依存する１コマンドの最大転送量に合わせて、キャッシュメモリのセグメント数を変更することにより、そのＯＳのライト処理に適したセグメント数で、高速に書き込み処理できる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施の形態を、媒体記憶システム、第１の実施の形態、第２の実施の形態、他の実施の形態の順で説明する。
【００２４】
［媒体記憶システム］
図１は、本発明の一実施の形態の媒体記憶システムの構成図、図２は、図１の媒体記憶装置のブロック図、図３は、図２のセグメント分割テーブルの構成図、図４は、キャッシュメモリのセグメント管理テーブルの構成図、図５は、本発明のＯＳによるセグメント分割例の説明図である。図１乃至図５は、媒体記憶装置として、光磁気デイスク装置を示す。
【００２５】
図１に示すように、パーソナルコンピュータ（ＰＣ）等の上位装置２に、ＵＳＢケーブル４により、媒体記憶装置（光磁気デイスク装置：ＭＯ装置という）１が接続される。
【００２６】
上位装置２は、プログラム構成として、ＷＯＲＤ（Ｍｉｃｒｏｓｏｆｔ社商品名）等のアプリケーション２０と、ＮＴＦＳ(NT File System)／ＦＡＴ(File Allocation Table)／ＦＡＴ２等のファイルシステムの管理を行うファイルシステムドライバー２１と、キャッシュセグメント、ＨＤＤ(Hard Disk Device)タイプ、ＳＦＤ（Super Flexible Disk）タイプのフォーマット管理を行うＭＯ（デバイス）ドライバー２２、メデイアＩＤドライバー２３、ＳＣＳＩ(Small Computer Serial Interface)／ＡＴＡＰＩ(AT Attached Parallel Interface)／ＵＳＢ(Universal Serial Bus)等のコマンドフォーマット管理を行うコマンドドライバー２４と、ＵＳＢの場合に、設定情報を格納するインフォーメーションファイル２５と、プラグイン／アウトの検出ためのプラグイン／アウトドライバー２６とを有する。又、ハードウェアとして、各種コントローラ（チップセット）のドライバー回路２７と、インターフェース用ＬＳＩ回路２８とを有する。
【００２７】
一方、ＭＯ装置１は、図２に示すように、上位装置２と接続するためのインターフェース回路１０と、デイスクコントローラ１２と、リード／ライトコントローラ１３と、デイスクドライブ１４と、デイスクドライブ１４の動作制御を行うＣＰＵ（プロセッサ）１６と、ＣＰＵ１６の処理のためのＲＡＭ（Random Access Memory）１５と、ＣＰＵ１６の処理プログラムを格納するＲＯＭ（Read Only Memory）１７と、キャッシュメモリ（バッファメモリともいう）１８と、ＣＰＵ１６、ＲＡＭ１５、ＲＯＭ１７，デイスクコントローラ１２、リード／ライトコントローラ１３を接続するバス１９とを有する。
【００２８】
デイスクドライブ１４は、周知のＭＯドライブで構成され、例えば、ＭＯデイスクを回転するスピンドルモータ、ＭＯデイスクのデータのリード／ライトを行う光学ヘッド、光学ヘッドをＭＯデイスクの所望のトラック位置に移動するアクチュエータを有する。
【００２９】
Ｒ／Ｗコントローラ１３は、データフォーマット制御回路、リードアンプ、２値化回路、ライトドライバ、アクチュエータドライバ、光学ヘッドのフォーカス／トラックサーボ制御回路、それらの制御回路等を有する。デイスクコントローラ１２は、上位装置２やＣＰＵ１からのコマンドを解析するコマンド解析部３０と、図３で説明するセグメント分割テーブル３２と、図４で説明するキャッシュメモリ１８のセグメントの管理を行うセグメント管理（デイレクトリ）テーブル３４とを有する。
【００３０】
キャッシュメモリ１８は、セグメント管理テーブル３４により、セグメント管理され、セグメント単位で、ライトデータやリードデータを格納する。キャッシュメモリ１８は、例えば、２Ｍｂｙｔｅの容量を持つメモリで構成され、セグメント数が「８」であれば、１セグメントの容量は、２５０Ｋｂｙｔｅとなり、セグメント数が「１６」であれば、１セグメントの容量は、１２５Ｋｂｙｔｅとなる。
【００３１】
ＣＰＵ１６は、デイスクコントローラ１２からの解析されたコマンドを受け、コマンドに応じて、リード／ライトコントローラ１３を制御し、デイスクドライブ１４をコマンドに応じたトラックにリード／ライトできる状態にし、且つデイスクコントローラット１２に応答を返す。
【００３２】
デイスクコントローラ１２は、リード時は、キャッシュメモリ１８を参照し、要求データが存在すれば、キャッシュメモリ１８からリードデータを上位装置１に転送し、要求データが存在しない場合には、Ｒ／Ｗコントローラ１３からリードデータを受け、キャッシュメモリ１８に格納した後、上位装置１へ転送する。又、デイスクコントローラ１２は、ライト時は、上位装置１からのライトデータを、キャッシュメモリ１８に格納した後、Ｒ／Ｗコントローラ１３を介しデイスクドライブ１４のデイスクにライトバックする。
【００３３】
図３及び図５により、セグメント分割テーブル３２を説明する。図５に示すように、ＷＩＮＤＯＷＳ（登録商標）  ＯＳは、１コマンドで転送する最大量が、３２Ｋｂｙｔｅ（０ｘ８０ｂｌｏｃｋｓ（×５１２Ｂｙｔｅ））で制限される。一方、Ｍａｃ（登録商標）  ＯＳでは、５００Ｍｂｙｔｅの１ファイル（＝１０００ｂｌｏｃｋｓ（×５１２Ｂｙｔｅ／ｓｅｃｔｏｒ））をドラッグ＆ドロップでコピーできる。このように、ＯＳにより、最大転送量が異なる。
【００３４】
本発明は、このＯＳの最大転送量に注目し、第１に、ＯＳの種類に最適なセグメント分割を行うものである。即ち、ＯＳからＯＳの種類をＭＯ装置に通知し、ＭＯ装置で、ＯＳの最大転送量に適したセグメント分割を行う。
【００３５】
更に、ファイルフォーマットの種類によっても、分割セグメント数を変更することが有効な場合がある。例えば、Ｗｉｎｄｏｗｓ（登録商標）  ＯＳでは、ＦＡＴ(File Allocation Table)１６，３２や、ＵＤＦ（Universal Disk Format）、ＮＴＦＳ(NT File System)等が使用される。
【００３６】
ＦＡＴ１６，３２は、主に、ＨＤＤのクラスタ単位の記録フォーマットであり、クラスタの使用状況を管理する。ＦＡＴ１６は、クラスタ長が３２Ｋｂｙｔｅ、ＦＡＴ３２は、クラスタ長が４Ｋｂｙｔｅである。
【００３７】
又、ＵＤＦは、光磁気デイスク装置のフォーマットであり、最大転送量が異なる。ＮＴＦＳは、Windows  ＮＴのファイルシステムであり、ファイル圧縮をサポートする。このようなファイルフォーマットによっても、最大転送量が異なる。
【００３８】
更に、Ｍａｃ  ＯＳでは、ＨＦＳ（Hierarchical File System）を使用する。例えば、図３及び図５に示すように、Ｗｉｎｄｏｗｓ  ＸＰでは、ＦＡＴ１６／３２では、小セグメント（セグメント数大）、ＵＤＦでは、中セグメント（セグメント数中）、ＮＴＦＳでは、中セグメント（セグメント数中），Ｍａｃ  １０．Ｘでは、大セグメント（セグメント数小）にセグメント分割する。
【００３９】
図３のセグメント分割テーブル３２は、このＯＳ、フォーマットの種類に対する、分割セグメント数を格納し、同様に、初期値（デフォルト値）として、分割セグメント数が大を格納する。この例では、分割セグメント数は、「８」、「４」、「１」を例示しているが、この数に限られない。
【００４０】
図４に示すように、同様に、セグメント管理テーブル３４は、キャッシュメモリ１８の各セグメントの有効／無効（リンク）と、開始アドレス、終了アドレスとを格納する。デイスクコントローラ１２は、セグメント分割テーブル３２を参照して、決定された分割セグメント数に応じて、セグメント管理テーブル３４を更新する。
【００４１】
[第１の実施の形態]
図６は、本発明の第１の実施の形態のＣＤＢ（Control Data Block）の説明図、図７は、本発明の第１の実施の形態のセグメント数制御のシーケンス図、図８及び図９は、図７の処理フロー図、図１０及び図１１は、図７乃至図９の動作説明図、図１２は、本発明のドライブ動作の説明図である。
【００４２】
図６に示すように、上位から発行されるパケット（ＣＤＢ）は、１２バイトで構成され、０バイト目が、オペレーションコード（ライト／リード等）、２−５バイト目が、論理ブロックアドレス、７−８バイト目が、転送長で、後は、リザーブであり、ベンダーやユーザーが任意に使用できる。
【００４３】
本発明では、このＣＤＢのリザーブバイトに、ＯＳの種類やフォーマットの種類を設定する。例えば、図６の下段に示すように、ＣＤＢでライトコマンドを発行する場合に、１０バイト目に、フォーマットの種類の有効フラグａ，ＯＳの種類の有効フラグｂ，フォーマット種類を記載する。又、１１バイト目に、ＯＳの種類を記載する。
【００４４】
図７及び図８により、上位とセグメント数変更シーケンスを含むライト処理を説明する。図７に示すように、上位装置２は、図６で示したＣＤＢによりライトコマンドを発行する。この時、図６で示したように、ＣＤＢの１０バイト目に、フォーマット種類の有効フラグａ，ＯＳの種類の有効フラグｂ，フォーマット種類（フォーマットフラグという）を、１１バイト目に、ＯＳの種類（ＯＳフラグという）を記載する。この記載を含むＣＤＢの作成は、図１のＭＯドライバー２２が、ファイルシステムドライバー２１を認識し、区画管理により、コマンドドライバー２４に通知し、コマンドドライバー２４で、実行される。
【００４５】
ＭＯ装置１では、このＣＤＢ内のＯＳの種類とフォーマットの種類により、セグメント数を設定する。図８に示すように、ＭＯ装置１では、ホストから電源オン（ＵＳＢでは、電流を受ける）と、初期化により、セグメントを小ブロック（セグメント数大）のデフォルト値を使用し、セグメント管理テーブル３４を作成する。そして、上位からライトコマンドが到来すると、ＭＯ装置１のデイスクコントローラ１２のコマンド解析部３０が、セグメント数変更処理を実行する。
【００４６】
図８及び図９の例では、ＯＳフラグにより、ＯＳがWindows  ９８であると認識して、図３のテーブル３２を参照して、中ブロック（セグメント数中「４」）と決定する。そして、決定された分割セグメント数に応じて、セグメント管理テーブル３４を更新する。図９は、キャッシュメモリ１８の分割されたセグメントを示す。
【００４７】
図１０及び図１１の例では、ＯＳフラグにより、ＯＳがＭａｃであると認識して、図３のテーブル３２を参照して、大ブロック（セグメント数中「１」）と決定する。そして、決定された分割セグメント数に応じて、セグメント管理テーブル３４を更新する。図１１は、キャッシュメモリ１８の分割されたセグメントを示す。
【００４８】
次に、図７に戻り、上位装置２からライトデータが転送され、ＭＯ装置１のデイスクコントローラ１２は、セグメント管理テーブル３４で決定されたキャッシュメモリ１８のセグメント単位に、ライトデータを格納し、その後、デイスクコントローラ１２は、キャッシュメモリ１８のライトデータをセグメント単位で、ドライブ１４に送り、媒体（ＭＯデイスク）に書き込む。そして、書き込み完了を上位装置２に通知する。
【００４９】
図１２（Ａ）及び図１２（Ｂ）は、デイスクドライブの書き込み動作の説明図である。図１２（Ａ）は、１セグメントが、３２ＫＢｙｔｅである場合のＭＯドライブの動作説明図、図１２（Ｂ）は、1セグメントが、６４ＫＢｙｔｅである場合のＭＯドライブの動作説明図である。
【００５０】
図１２（Ａ）及び図１２（Ｂ）に示すように、ＭＯ装置１では、ライトバッファ（キャッシュメモリ１８）にデータが入力されると、シーク動作（Ｓ）を行い、指令されたトラックに光学ヘッドを位置付け、指令されたセクター（単数又は複数）のイレーズ（Ｅ），ライト（Ｒ），ベリファイ（Ｖ）を行う。尚、Ｌ（Latency）は、回転待ち等の時間である。
【００５１】
従って、１コマンドで３２ＫＢｙｔｅを越えるライトデータが到来した場合に、図１２（Ａ）のような１セグメントを、３２ＫＢｙｔｅに設定している時は、シーク、イレーズ、ライト、ベリファイの一連のシーケンスを２回行う。一方、図１２（Ｂ）のように、1セグメントを、６４ＫＢｙｔｅに設定している時は、シーク、イレーズ、ライト、ベリファイの一連のシーケンスは、１回で済む。
【００５２】
このため、ライトコマンド完了までに要する時間は、図１２（Ａ）の１セグメントが、３２ＫＢｙｔｅである場合に比し、図１２（Ｂ）の1セグメントが、６４ＫＢｙｔｅである場合には、約２／３の時間（１３０／１９５ｍｓ）で済み、オーバヘッド時間を短縮できる。特に、Ｍａｃ  ＯＳのような転送最大量が、６００Ｍｂｙｔｅである時は、更に有効である。
【００５３】
一方、Ｗｉｎｄｏｗｓ  ＯＳのように、１コマンドの最大転送量が、３２ＫＢｙｔｅである場合には、図１２（Ａ）のような１セグメントを、３２ＫＢｙｔｅとした方が、キャッシュメモリ１８の有効利用の点で好ましい。
【００５４】
尚、図１０に示すように、ＣＤＢ内のＯＳフラグやフォーマットフラグが有効を示していない場合には、セグメント数を初期値に戻す。例えば、図１０の例では、図１１のように、ＣＤＢ内のＯＳフラグやフォーマットフラグが有効を示している場合には、セグメント数を最大に設定するため、キャッシュメモリ１８は、セグメント数が「１」となり、そのライトコマンドの完了後は、他のライトデータが存在しないため、次のライトコマンドでセグメント数を変更しても、何ら問題はない。
【００５５】
このように、ＯＳからの通知により、ＯＳに依存する１コマンドの最大転送量に合わせて、キャッシュメモリ１８のセグメント数を変更することにより、そのＯＳのライト処理に適したセグメント数で、高速に書き込み処理できる。又、図５に示したように、ＯＳが同一でも、ファイルシステムのフォーマット種類により、１コマンドの最大転送量が相違する場合もあるため、ＯＳの種類とフォーマットの種類に応じて、セグメント数を変更することは、更に有効である。
【００５６】
又、ＣＤＢの形式で、ＯＳから通知するため、コマンドフォーマットを変更せずに、実現でき、簡単に実行できる。更に、ライトコマンドに設定するため、ＯＳ側の発行するコマンド数を変更せず、実現できる。
【００５７】
特に、媒体記憶装置の中の光デイスクドライブでは、ＭＯドライブでは、図１２のように、ライト時に、イレーズ／ライト／ライトベリファイを行っており、又、ＭＤドライブやＤＶＤドライブでは、オーバーライト／ベリファイリードを行っており、ＨＤＤドライブでも同様である。このベリファイリードが終了するまでは、ライト失敗時に備えて、キャッシュメモリのデータは残しておく必要があるため、セグメント数の変更により、上位装置（ホスト）からのＯＳに依存する受信量を最適化することで、上位装置の転送待ちを減らし、上位装置に対する書き込み処理の高速応答が可能となる。
【００５８】
[第２の実施の形態]
図１３は、本発明の第２の実施の形態のベンダーコマンドのＣＤＢ（Control Data Block）の説明図、図１４は、本発明の第２の実施の形態のライトコマンドのＣＤＢの説明図、図１５は、本発明の第２の実施の形態のセグメント数制御のシーケンス図、図１６は、図１５の処理フロー図、図１７は、図１５乃至図１６の動作説明図である。
【００５９】
図１３及び図１４に示すように、上位から発行されるパケット（ＣＤＢ）は、１２バイトで構成され、０バイト目が、オペレーションコード（ライト／リード等）、２−５バイト目が、論理ブロックアドレス、７−８バイト目が、転送長で、後は、リザーブであり、ベンダーやユーザーが任意に使用できる。
【００６０】
この実施の形態でも、このＣＤＢのリザーブバイトに、ＯＳの種類やフォーマットの種類を設定する。図１３に示すように、ベンダーコマンドをＣＤＢで設定し、オペレーションコードにベンダーコマンド（Ｆ１ｈ）を設定し、２−９バイト目をリザーブとし、１０バイト目に、フォーマット種類の有効フラグａ，ＯＳの種類の有効フラグｂ，フォーマット種類を記載する。又、１１バイト目に、ＯＳの種類を記載する。
【００６１】
そして、この実施の形態は、図１３に示すように、ライトコマンドのＣＤＢで設定し、２−５バイト目が、論理ブロックアドレス、７−８バイト目が、転送長で、後は、リザーブとする。
【００６２】
図１５及び図１６により、上位とセグメント数変更シーケンスを含むライト処理を説明する。図１５に示すように、上位装置２は、図１３で示したＣＤＢによりベンダーコマンドを発行する。この時、図１３で示したように、ＣＤＢの１０バイト目に、フォーマット種類の有効フラグａ，ＯＳの種類の有効フラグｂ，フォーマット種類（フォーマットフラグという）を、１１バイト目に、ＯＳの種類（ＯＳフラグという）を記載する。この記載を含むＣＤＢの作成は、図１のＭＯドライバー２２が、ファイルシステムドライバー２１を認識し、区画管理により、コマンドドライバー２４に通知し、コマンドドライバー２４で、実行される。
【００６３】
ＭＯ装置１では、このＣＤＢ内のＯＳの種類とフォーマットの種類により、セグメント数を設定する。図１６に示すように、ＭＯ装置１では、ホストから電源オン（ＵＳＢでは、電流を受ける）と、初期化により、セグメントを小ブロック（セグメント数大）のデフォルト値を使用し、セグメント管理テーブル３４を作成する。そして、上位からベンダーコマンドが到来すると、ＭＯ装置１のデイスクコントローラ１２のコマンド解析部３０が、セグメント数変更処理を実行する。
【００６４】
図１５及び図１６の例では、ＯＳフラグにより、ＯＳがWindows  ９８であると認識して、図３のテーブル３２を参照して、中ブロック（セグメント数中「４」）と決定する。そして、決定された分割セグメント数に応じて、セグメント管理テーブル３４を更新する。図１６は、キャッシュメモリ１８の分割されたセグメントを示す。
【００６５】
次に、図１５に戻り、上位装置２から一般ライトコマンド（図１４）とライトデータが転送され、ＭＯ装置１のデイスクコントローラ１２は、セグメント管理テーブル３４で決定されたキャッシュメモリ１８のセグメント単位に、ライトデータを格納し、その後、デイスクコントローラ１２は、キャッシュメモリ１８のライトデータをセグメント単位で、ドライブ１４に送り、媒体（ＭＯデイスク）に書き込む。そして、書き込み完了を上位装置２に通知する。
【００６６】
このように、ＯＳからの通知により、ＯＳに依存する１コマンドの最大転送量に合わせて、キャッシュメモリ１８のセグメント数を変更することにより、そのＯＳのライト処理に適したセグメント数で、高速に書き込み処理できる。又、図５に示したように、ＯＳが同一でも、ファイルシステムのフォーマット種類により、１コマンドの最大転送量が相違する場合もあるため、ＯＳの種類とフォーマットの種類に応じて、セグメント数を変更することは、更に有効である。
【００６７】
又、ＣＤＢの形式で、ＯＳから通知するため、コマンドフォーマットを変更せずに、実現でき、簡単に実行できる。更に、ベンダーコマンドを設けたため、ＯＳ側の認識するコマンド体系を変更せず、ベンダー自体の設定で変更できる。
【００６８】
［他の実施の形態］
前述の実施の形態では、媒体記憶装置を、光磁気デイスク装置で説明したが、磁気デイスク装置、光デイスク装置等他の媒体記憶装置にも、適用できる。又、ＵＳＢ接続の例で説明したが、ＡＴＡＰＩ等他のインターフェースにも適用できる。更に、キャッシュメモリの容量や、セグメント数も実施の形態に限られない。
【００６９】
しかも、上位装置をパーソナルコンピュータで説明したが、サーバー、ビデオレコーダー、テレビ、デジタルカメラ等のＯＳで動作する情報家電機器にも適用できる。
【００７０】
以上、本発明を実施の形態により説明したが、本発明の趣旨の範囲内において、本発明は、種々の変形が可能であり、本発明の範囲からこれらを排除するものではない。
【００７１】
（付記１）上位装置に接続され、上位装置からのライトデータを記憶する媒体記憶装置において、媒体にデータを記録する媒体ドライブユニットと、前記上位装置からのライトデータを格納するキャッシュメモリと、前記キャッシュメモリのセグメント数を管理するとともに、前記キャッシュメモリに格納されたライトデータを前記媒体ドライブユニットに記録するためのコントローラとを有し、前記コントローラは、前記上位装置から前記ライトデータの転送に先立って通知された前記上位装置のＯＳの種類に応じて、前記キャッシュメモリのセグメント数を設定することを特徴とする媒体記憶装置。
【００７２】
（付記２）前記コントローラは、前記上位装置から前記ライトデータの転送に先立ってＣＤＢフォーマットで通知された前記上位装置のＯＳの種類に応じて、前記キャッシュメモリのセグメント数を設定することを特徴とする付記１の媒体記憶装置。
【００７３】
（付記３）前記コントローラは、前記上位装置から前記ライトデータの転送に先立って通知された前記上位装置のＯＳの種類及びフォーマットの種類に応じて、前記キャッシュメモリのセグメント数を設定することを特徴とする付記１の媒体記憶装置。
【００７４】
（付記４）前記コントローラは、前記上位装置からの前記上位装置のＯＳの種類に応じた、前記キャッシュメモリのセグメント数を格納するテーブルを有し、前記テーブルを参照して、前記キャッシュメモリのセグメント数を設定することを特徴とする付記１の媒体記憶装置。
【００７５】
（付記５）前記コントローラは、前記上位装置から前記ライトデータの転送に先立ってＣＤＢフォーマットで通知されたライトコマンドに設定された前記上位装置のＯＳの種類に応じて、前記キャッシュメモリのセグメント数を設定することを特徴とする付記１の媒体記憶装置。
【００７６】
（付記６）前記コントローラは、前記上位装置から前記ライトデータの転送に先立ってＣＤＢフォーマットで通知されたベンダーコマンドに設定された前記上位装置のＯＳの種類に応じて、前記キャッシュメモリのセグメント数を設定することを特徴とする付記１の媒体記憶装置。
【００７７】
（付記７）前記コントローラは、前記媒体ドライブ部に、前記キャッシュメモリのセグメント単位で、書き込み動作を実行させることを特徴とする付記１の媒体記憶装置。
【００７８】
（付記８）前記媒体ドライブ部は、前記媒体に、ヘッドにより書き込みを行うドライブ機構で構成されたことを特徴とする付記１の媒体記憶装置。
【００７９】
（付記９）上位装置に接続され、上位装置からのライトデータを記憶する媒体記憶装置のキャッシュセグメント切り替え方法において、前記上位装置から前記ライトデータの転送に先立って通知された前記上位装置のＯＳの種類に応じて、キャッシュメモリのセグメント数を設定するステップと、前記上位装置からのライトデータを前記キャッシュメモリの設定されたセグメント単位に格納するステップと、前記キャッシュメモリに格納されたライトデータを媒体ドライブユニットに記録するステップとを有することを特徴とする媒体記憶装置のキャッシュセグメント切り替え方法。
【００８０】
（付記１０）前記設定ステップは、前記上位装置から前記ライトデータの転送に先立ってＣＤＢフォーマットで通知された前記上位装置のＯＳの種類に応じて、前記キャッシュメモリのセグメント数を設定するステップからなることを特徴とする付記９の媒体記憶装置のキャッシュセグメント切り替え方法。
【００８１】
（付記１１）前記設定ステップは、前記上位装置から前記ライトデータの転送に先立って通知された前記上位装置のＯＳの種類及びフォーマットの種類に応じて、前記キャッシュメモリのセグメント数を設定するステップからなることを特徴とする付記９の媒体記憶装置のキャッシュセグメント切り替え方法。
【００８２】
（付記１２）前記設定ステップは、前記上位装置からの前記上位装置のＯＳの種類に応じた、前記キャッシュメモリのセグメント数を格納するテーブルを参照して、前記キャッシュメモリのセグメント数を設定するステップからなることを特徴とする付記９の媒体記憶装置のキャッシュセグメント切り替え方法。
【００８３】
（付記１３）前記設定ステップは、前記上位装置から前記ライトデータの転送に先立ってＣＤＢフォーマットで通知された所定のコマンドに設定された前記上位装置のＯＳの種類に応じて、前記キャッシュメモリのセグメント数を設定するステップからなることを特徴とする付記９の媒体記憶装置のキャッシュセグメント切り替え方法。
【００８４】
（付記１４）前記記録ステップは、媒体ドライブ部に、前記キャッシュメモリのセグメント単位で、書き込み動作を実行させるステップからなることを特徴とする付記９の媒体記憶装置のキャッシュセグメント切り替え方法。
【００８５】
（付記１５）ライトコマンドとライトデータを発行する上位装置と、前記上位装置に接続され、前記上位装置からのライトデータを記憶する媒体記憶装置とを有し、前記媒体記憶装置は、媒体にデータを記録する媒体ドライブユニットと、前記上位装置からのライトデータを格納するキャッシュメモリと、前記キャッシュメモリのセグメント数を管理するとともに、前記キャッシュメモリに格納されたライトデータを前記媒体ドライブユニットに記録するためのコントローラとを有し、前記上位装置は、前記ライトデータの転送に先立って前記上位装置のＯＳの種類を、前記媒体記憶装置にドライバーにより通知し、前記コントローラは、前記ＯＳの種類に応じて、前記キャッシュメモリのセグメント数を設定することを特徴とする媒体記憶システム。
【００８６】
（付記１６）前記上位装置は、前記ライトデータの転送に先立ってＣＤＢフォーマットで前記上位装置のＯＳの種類を、前記媒体記憶装置に通知することを特徴とする付記１５の媒体記憶システム。
【００８７】
（付記１７）前記上位装置は、前記ライトデータの転送に先立って前記上位装置のＯＳの種類及びフォーマットの種類を前記媒体記憶装置に通知し、前記コントローラは、前記通知されたＯＳの種類及びフォーマットの種類に応じて、前記キャッシュメモリのセグメント数を設定することを特徴とする付記１５の媒体記憶システム。
【００８８】
（付記１８）前記コントローラは、前記上位装置からの前記上位装置のＯＳの種類に応じた、前記キャッシュメモリのセグメント数を格納するテーブルを有し、前記テーブルを参照して、前記キャッシュメモリのセグメント数を設定することを特徴とする付記１５の媒体記憶システム。
【００８９】
（付記１９）前記上位装置は、前記ライトデータの転送に先立ってＣＤＢフォーマットの所定のコマンドに前記上位装置のＯＳの種類を設定することを特徴とする付記１５の媒体記憶システム。
【００９０】
（付記２０）前記コントローラは、前記媒体ドライブ部に、前記キャッシュメモリのセグメント単位で、書き込み動作を実行させることを特徴とする付記１５の媒体記憶システム。
【産業上の利用可能性】
【００９１】
このように、ライトデータの転送の前に、予め上位装置からのセグメント変更の通知を行って、ＯＳの種類に依存する１コマンドの最大転送量に合わせて、キャッシュメモリのセグメント数を変更することにより、ライトデータを媒体記憶装置で処理する最初の段階から既にセグメント数を所望のものに設定することができるため、そのＯＳのライト処理に適したセグメント数で、高速に書き込み処理できる。このため、媒体記憶装置のオーバヘッドを減少でき、書き込み速度の高速化に寄与する。
【図面の簡単な説明】
【００９２】
【図１】本発明の一実施の形態の媒体記憶システムのブロック図である。
【図２】図１の媒体記憶装置のブロック図である。
【図３】図２のセグメント分割テーブルの構成図である。
【図４】図２のセグメント管理テーブルの構成図である。
【図５】図３のＯＳ種類とフォーマット種類とセグメント容量の関係図である。
【図６】本発明の第１の実施の形態のＣＤＢ（Control Data Block）の説明図である。
【図７】本発明の第１の実施の形態のセグメント数制御のシーケンス図である。
【図８】図７の処理フロー図
【図９】図８の動作説明図である。
【図１０】図７の他の処理フロー図である。
【図１１】図１０の動作説明図である。
【図１２】本発明のドライブ動作の説明図である。
【図１３】本発明の第２の実施の形態のベンダーコマンドのＣＤＢ（Control Data Block）の説明図である。
【図１４】本発明の第２の実施の形態のライトコマンドのＣＤＢの説明図である。
【図１５】本発明の第２の実施の形態のセグメント数制御のシーケンス図である。
【図１６】図１５の処理フロー図である。
【図１７】図１５乃至図１６の動作説明図である。
【符号の説明】
【００９３】
１  媒体記憶装置（ＭＯ装置）
２  上位装置（ＰＣ）
１０  インターフェース回路
１２  デイスクコントローラ
１３  リード／ライトコントローラ
１４  媒体記憶ドライブ
１８  キャッシュメモリ
２２  ＭＯドライバー
２４  コマンドドライバー
３０  コマンド解析部
３２  セグメント分割テーブル
３４  セグメント管理テーブル
【図１】
2006039756.tif 000003
【図２】
2006039756.tif 000004
【図３】
2006039756.tif 000005
【図４】
2006039756.tif 000006
【図５】
2006039756.tif 000007
【図６】
2006039756.tif 000008
【図７】
2006039756.tif 000009
【図８】
2006039756.tif 000010
【図９】
2006039756.tif 000011
【図１０】
2006039756.tif 000012
【図１１】
2006039756.tif 000013
【図１２】
2006039756.tif 000014
【図１３】
2006039756.tif 000015
【図１４】
2006039756.tif 000016
【図１５】
2006039756.tif 000017
【図１６】
2006039756.tif 000018
【図１７】
2006039756.tif 000019