USBストレージデバイスの内部状態設定方法、USBストレージデバイス及びそのコントローラ
【課題】 情報の読み出しのみ可能なCD−ROM領域と情報の読み出し、書き込み、削除のいずれも可能なディスク領域を有するUSBストレージデバイスにおいて、より自由度のあるデバイスを提供すること。
【解決手段】USBストレージデバイスの記憶領域を3つ以上の領域に区分し、OSに設定させるドライブ数、並びに、該ドライブに前記領域のいずれを対応付けするかをユーザが選択可能に構成する。ドライブのうち一つをCD−ROMドライブとする。さらにリムーバブルドライブを設定してもよい。
【解決手段】USBストレージデバイスの記憶領域を3つ以上の領域に区分し、OSに設定させるドライブ数、並びに、該ドライブに前記領域のいずれを対応付けするかをユーザが選択可能に構成する。ドライブのうち一つをCD−ROMドライブとする。さらにリムーバブルドライブを設定してもよい。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体メモリを用いて情報を記憶するUSBストレージデバイスに関する。
【背景技術】
【0002】
本出願人は、先に、フラッシュメモリの領域を2つに分けて定義し、一方を情報の読み出しのみ可能なCD−ROMユニットとして、もう一方を情報の読み出し、書き込み、削除の可能なディスクユニットとして外部装置に認識させるUSBストレージデバイスについて出願している(特開平2004−54896号/以下「先願1」)。
【0003】
先願1の実施例に開示された発明は、区分された領域の数とOSが認識するドライブ(デバイス)の数が同じで、OSからすべての領域が認識されてしまう。従って、OSから認識し得る領域を可変にすること、例えば、ユーザAには領域1に入っているアプリケーションソフトのみ使用可能にし、ユーザBには領域2に入っているアプリケーションソフトのみ使用可能にするなど自由度のある使用ができない(問題点1)。
【0004】
また、USBストレージデバイスを外部装置に装着した際、CD−ROMユニットに格納されているアプリケーションプログラムをオートランさせることができ便利であるが、ディスク領域に即アクセスしたい場合には却って不便でもある(問題点2)。
【0005】
【特許文献1】特開平2004−54896
【発明の開示】
【発明が解決しようとする課題】
【0006】
本発明は、上記問題点に鑑みてなされたものであり、その目的とするところは、より利便性のあるUSBストレージデバイスを提供することにある。
【課題を解決するための手段】
【0007】
上記課題を解決するためになされた請求項1に記載のUSBストレージデバイスは、USBストレージデバイスの記憶領域を3つ以上の領域に区分し、OSに設定させるドライブ数、並びに、該ドライブに前記領域のいずれを対応付けするかをユーザが選択可能に構成した。
【発明を実施するための最良の形態】
【0008】
以下、本発明が適用された実施例について図面を用いて説明する。尚、本発明の実施の形態は、下記の実施例に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態を採りうる。
【0009】
[実施例1]
図1は、実施例1のUSBストレージデバイス17(特許請求の範囲に記載のUSBストレージデバイスに相当する)とホスト11(特許請求の範囲に記載の外部装置に相当する)の概略構成を示すブロック図である。
【0010】
(1)ホスト11
ホスト11は、一般に広く知られたパーソナルコンピュータであり、ソフトウエアとして、オペレーションシステム12、ディスクドライブドライバ13及びUSBマスストレージクラスドライバ14を備え、ハードウェアとしてUSBホストコントローラ15を少なくとも備える。
【0011】
オペレーションシステム12は、ホスト11を統括的に制御するソフトウエアであり、例えばWindows(登録商標)やMac
OS X(登録商標)等ある。ディスクドライブドライバ13は、オペレーションシステム12から受け取った記憶装置へのアクセス指令等をSCSIコマンド変換してUSBマスストレージクラスドライバ14に渡すとともに、USBマスストレージクラスドライバ14から指令等を受け取りオペレーションシステム12に渡す。USBマスストレージクラスドライバ14は、USBホストコントローラ15を制御する。USBホストコントローラ15は、図示しないUSBコネクタを備え、他の装置のUSBコネクタとケーブルによって接続されることによって、USB規格に基づいた通信を行うことができるようになっている。なお、ホスト11は、USB規格に基づいた通信を行うことができる機器であれば、パーソナルコンピュータに限らずPDAや携帯電話等であってもよい。
【0012】
(2)USBストレージデバイス17
USBストレージデバイス17は、USBインターフェース19とコントローラ21とLED23とフラッシュメモリ25とを備える。
【0013】
(2−1)USBインターフェース19
USBインターフェース19は、特許請求の範囲に記載の通信手段に相当し、USBバス16を介してホスト11と通信を行う機能を担う。USBインターフェース19は、パケット送受信部19aとシリアルパラレル変換部19bとパケット生成分解部19cとUSBバスパワー制御部19dとを備える。パケット送受信部19aは、図示しないUSBコネクタと接続され、USB規格に基づいたパケットを送受信する。シリアルパラレル変換部19bは、シリアルデータとパラレルデータとを相互に変換する。パケット生成分解部19cは、ホスト11と通信を行うためのパケットの生成及びパケットを分解してデータの取り出しを行う。USBバスパワー制御部19dは、ホスト11から供給される電力の管理及びUSBストレージデバイス17の各部位への電力の配分を行う。
【0014】
(2−2)フラッシュメモリ25
フラッシュメモリ25は、記憶保持動作が不要な半導体メモリであり、データを記憶することができる。記憶したデータは、後述するメモリ制御部21aによって読み出すことが可能である。また、メモリ制御部21aによって書き込み及び削除をすることもできる。フラッシュメモリ25は、特許請求の範囲に記載の記憶手段に相当する。
【0015】
本USBストレージデバイス17は、潜在的にユーザが使用可能な複数の領域を有する。図2はその領域例を表している。ここでは、CD−ROM用のフォーマット、例えば、ISO9660でフォーマットされて構成されている3つの領域と、FATフォーマットでフォーマットされて構成されている1領域の計4領域に区分されて構成されている様子が示されている。FATフォーマットで構成される領域は2以上でもよい。このフラッシュメモリ25には、さらにこれら領域等に関する情報(アドレスや容量などに関する情報)をシステムが管理するための管理領域を有する。
【0016】
(2−3)コントローラ21
コントローラ21は、特許請求の範囲に記載の制御手段に相当し、メモリ制御部21aとUSBインターフェース制御部21bとメモリ情報記憶部21cとLED制御部21dとを備える。メモリ制御部21aは、フラッシュメモリ25に対してデータの読み出し、書き込み及び削除を実行する。USBインターフェース制御部21bは、前述したUSBインターフェース19の各部を制御する。メモリ情報記憶部21cは、「メディア管理テーブル」と「ドライブ管理テーブル」を記憶する。これについては後述する。LED制御部21dは、フラッシュメモリ25が、ホスト11より書き込み、読み出しや削除されているとき、本デバイスに設けられたLED23を点灯制御するものである。
【0017】
(2−4)LED23
図1に戻り、LED23は、フラッシュメモリ25に対して情報の読み出し、書き込み及び削除が実行されている際に点灯する発光体である。フラッシュメモリ25に対して情報の読み出し、書き込み及び削除が実行中であることを利用者に示し、これらの実行中にホスト11からUSBストレージデバイス17が抜かれないようにするためのものである。
【0018】
(a)初期設定
初期設定は、USBストレージデバイス17の製造者や販売者(「特定ユーザ」)、若しくはエンドユーザ(以下、前記特定ユーザとエンドユーザを併せて単に「ユーザ」と言う)がホスト11上で初期設定ソフトウェアを実行した際に、USBストレージデバイス17のコントローラ21でプログラムに基づいて実行される。
【0019】
以下、初期設定の手順を、ホスト11で実行される初期設定ソフトウエアの操作画面例を用いて説明する。
【0020】
(手順1)
図3(a)は、メディア数を設定する操作画面例である。ここで、「メディア数」とは、フラッシュメモリ25において、複数に区分され、潜在的にユーザが使用可能な領域数をいう。「メディア」と言う表現を用いているが、これは、後述するドライブ設定との関係で各領域が所定のフォーマットで構成され、以降、該領域が、OSから所定の記録媒体即ちメディアとして認識されることになるからである。
【0021】
ここでは、メディア数を4と設定した状態を示している。メディア数を4と設定したことにより、フラッシュメモリ25にはユーザデータ領域として、4つに区分された領域が確保されることになる。そしてフラッシュメモリ25に当該4つの領域の情報をシステムが管理するための管理領域が設定される。図3(b)は、管理領域に設定されるテーブル例(メディア管理テーブル)を表している。以下の本実施例において、メディア1として定義される領域を領域1、メディア2として定義される領域を領域2、メディア3として定義される領域を領域3、メディア4として定義される領域を領域4と呼ぶ。また本明細書において、別段の意味を有しない限り、単に「領域」というときは、上記フラッシュメモリ25の区分された領域をいう。
【0022】
この状態では、メディア数が4という情報のみ記録される。各領域のメディア種別(フォーマット)や、書き込まれるファイルの情報が指定されていないため、それらの情報は書き込まれていない。画面で、「次へ」のボタンをクリックすると、次の手順の操作画面に移行する。
【0023】
(手順2)
次に、前手順で確立した4つの各領域のメディア設定、即ち、各領域をOSからいかなる種類のメディアとして認識させるかの設定(具体的には各領域を構成するフォーマットの設定)、及び各領域に格納すべきファイルのファイル名を選択する。
【0024】
図4(a)は操作画面例であり、「選択」ボタンをクリックするとプルダウン式に、設定されるべきメディア種類リストが表示され、そのうちの一つを選択するようになっている。ここでは、メディア1乃至メディア3はCD−ROMメディアとして構成されるべきこと、即ち情報の読み出しのみ可能なCD−ROM用フォーマットで構成されるべきことが指定されており、メディア4はリムーバブルメディア(リムーバブルハードディスクのメディア)として構成すること、即ち、情報の読み出し、書き込み、削除のいずれも可能なディスク用のフォーマットで構成されるべきことが指定されている。
【0025】
次に、各領域に格納すべきファイル名を選択する。まず「参照」ボタンをクリックすると、ホスト11のドライブごとに格納されているファイル名のリストがプルダウン式に表示され、そのうちの一つを選択するようになっている。画面例では、メディア1(領域1)に対してはホスト11のCドライブに存在するsample.isoという名のファイルを、メディア2(領域2)に対しては同じくホスト11のCドライブのtest.isoという名のファイルを、メディア3(領域3)に対しては、同じくCドライブのtest1.isoという名のファイルを、又、メディア4(領域4)に対しては、同じくDドライブのtest.binという名のファイルをそれぞれ書き込むべきことが指定されている。
【0026】
全領域に対してメディア種別(フォーマット)及び格納すべきファイル名が選択されると、管理領域のメディア管理テーブルには図4(b)に示すように各領域に関する情報がコントローラ21により書き込まれる。図では、メディア1の領域は先頭アドレス(論理ブロックアドレス)が0x0000、Lengthが20480byte、メディア種類がCD−ROM、メディア2の領域は先頭アドレスが0x0500、Lengthが20480byte、メディア種類がCD−ROM、メディア3の領域は先頭アドレスが0x0A00、Lengthが20480byte、メディア種類がCD−ROM、メディア4の領域は先頭アドレスが0x0F00、Lengthが5120byte、メディア種類がリムーバブルディスクとして設定されたことを示している。
【0027】
本例では、各領域の容量(先頭アドレス、Length)は、前記格納指定されたファイルの容量に基づき、コントローラ21が自動的に設定している。この段階で、各領域に指定されたファイルを書き込むこともできるが、各手順において「キャンセル」ボタンで再設定処理がなされるもあるので、後述するように、手順4の終了時に一斉に書き込みすることが好ましい。
画面で、「次へ」のボタンをクリックすると、次の手順の操作画面に移行する。
【0028】
(手順3)
次に、ドライブ数を設定する。ここでドライブ数とは、当該USBストレージデバイス17がOSから認識されるドライブの数を意味する。ここで付言すると、手順1において領域は4つに区分されているため、OSに対しては潜在的には最大4つのドライブとして認識させることができるが、図5(a)の操作画面例では、ドライブ数が3と設定された状態を示している。そして管理領域には、前記メディア管理テーブルの他に、ドライブ管理テーブルが新たに設定される(図5(b)参照)。
【0029】
このとき、ドライブ管理テーブルのドライブ1には、ホスト11のUSBマスストレージクラスドライバのSCSIコマンドセットに定義された論理ユニット番号「00」が、ドライブ2には論理ユニット番号「01」が、ドライブ3には論理ユニット番号「10」がそれぞれ割り当てられている。よって、ドライブ数は、論理ユニット数に等しい。ドライブ数が4と設定された場合は、ドライブ4には論理ユニット番号「11」が割り当てられる。尚、図5(b)において、「LUN」とは論理ユニット番号(Logical Unit Number)をいう。
【0030】
この状態では、ドライブ数が3と指定されているにすぎないため、ドライブ管理テーブルにはドライブ数が3とだけ記録され、その他の具体的な情報は書き込まれない。画面で、「次へ」のボタンをクリックすると、次の手順の操作画面に移行する。
【0031】
(手順4)
次にドライブ設定手順に移行する。ここでいうドライブとは、上記の通り、USBストレージデバイス17がOSから認識されるドライブをいう。これを図6(a)の操作画面例を用いて説明する。ここでは手順3でドライブ数を3と設定していることから、3つの各ドライブをOSにいかなる種類のドライブ(本例ではCD−ROMドライブかリムーバブルドライブ)として認識させるかを先ず設定し、その上で、その設定されたドライブに適合するフォーマットで構成された領域(手順2で既に決定しているメディア即ち領域)のどれを対応付けるかを選択するものである。
【0032】
ここでは、ドライブ1とドライブ2をCD−ROMドライブとして認識させること、ドライブ3をリムバーブルドライブとして設定された様子が示されている。
【0033】
次に、各ドライブにマウントされるべきメディアの選択(即ち、各ドライブの論理ユニット番号に対応付けるフラッシュメモリ25の領域)を、手順2において設定したメディア番号(領域番号)の指定により行う。図6(a)の例では、ドライブ1にはメディア1をマウントすること、即ち、論ユニット番号「00」に領域1を対応付けること、ドライブ2にはメディア2をマウントすること、即ち、論理ユニット番号「01」に領域2を対応付けること、ドライブ3にはメディア4をマウントすること、即ち、論理ユニット番号「01」に領域4をそれぞれ対応付けることが選択されている。
【0034】
そして、「デバイスへ書き込み」ボタンをクリックすると、メディア1乃至4(領域1乃至4)に対し、先の手順2において選択されたファイルが書き込まれる(図7参照)。
【0035】
このとき、管理領域の「ドライブ管理テーブル」に、設定された状態が確定値として書き込まれる(図6(b)参照)。具体的には、各ドライブごとにマウントしているメディア(そのドライブの論理ユニット番号に対応つけられたメモリーの領域)、ドライブの種類(INQUIRY情報)などが書き込まれる。
【0036】
尚、管理領域に書き込まれた「メディア管理テーブル」と「ドライブ管理テーブル」の内容は、コントローラ21のメモリ情報記憶部21cにも同様に書き込まれて保存される。このとき、ドライブ管理テーブルに記録されている情報は、ホスト11のUSBマスストレージクラスドライバのSCSIコマンドセットに定義された論理ユニット番号「00」「01」「10」に対応する領域として、領域1、領域2、領域4をUSBマスストレージクラスドライバにそれぞれ認識させるための情報となる。これにより、USBマスストレージクラスドライバは、本USBストレージデバイス17を3つの論理ユニットを有するSCSIデバイスとして認識し、OSは3つのドライバとして認識する。
【0037】
尚、後述するメディア変更、ドライブ変更等により管理領域の内容が変更されると、メモリ情報記憶部21cの内容も同様に変更され、それによりUSBマスストレージクラスドライバは、該更新された情報に基づき本USBストレージデバイス17を認識し、OSもそれに従ったドライブとして認識する。
【0038】
図8は、前記初期設定後のフラッシュメモリ25内部の各領域とOSの認識状態の対応関係を表したものである。図8において、OSは、メディア1がマウントされたドライブ1をGドライブ、
メディア2をマウントしたドライブ2をEドライブとして、メディア4をマウントしたドライブ3をFドライブとして認定したことを表している。GドライブはCD-ROMドライブ1であり、EドライブはCD−ROMドライブ2であり、Fドライブはリムーバブルドライブ1である。
【0039】
ホスト11のモニターには、ドライブ番号(E:、G:、F:)とドライブの種類を模式的に表したアイコンが表示される。以下、OSが本USBストレージデバイス17を認識するまでの起動処理について説明する。尚初期設定後起動する際は、一旦デバイスをホスト11から外し、再度装着する必要がある。
【0040】
(b)起動処理
前記初期設定されたUSBストレージデバイス17がホスト11に接続された際に、USBストレージデバイス17のコントローラ21でプログラムに基づいて実行される起動処理について図9のフローチャートを用いて説明する。この起動処理は、USBストレージデバイス17がホスト11に接続されることにより、USBバスパワー制御部19dに電力が供給され、さらにホスト11側でエニュメレーション処理が実行されると開始される。
【0041】
起動処理を開始すると、ホスト11からの指令に応じて、ディスクリプタと呼ばれるデバイス情報(デフォルトパイプの最大パケットサイズ等)をホスト11に送信する(S110)。
【0042】
次に、ホスト11から指令に応じて、USBストレージデバイス17のアドレスを設定する(S115)。以降、このアドレス宛のフレームのみを当該USBストレージデバイス17は取得する。
【0043】
次に、より詳細なデバイス情報をホスト11に送信する(S120)。このデバイス情報としては、エンドポイントに関する情報、クラス、サブクラス、プロトコル等である。
【0044】
その結果、ホスト11ではUSBマスストレージクラスドライバ14が起動され、図示しないアプリケーションソフトウェアからディスクドライブドライバ13とUSBマスストレージクラスドライバ14とを介してUSBホストコントローラ15を制御するアクセスパスができる。なお、このディスクドライブドライバ13は、MS−DOS(登録商標)時代から、受け継がれているドライバであるため永年の技術が積み重ねられており、安定的な動作が得られるドライバである。
【0045】
続いて、USBマスストレージクラスドライバ14が、Get Max
Logical Unit Numberコマンドによって論理ユニット番号数を要求するため、USBストレージデバイス17は、メモリ情報記憶部21cから論理ユニット番号数が3であるという情報を読み出して、ホスト11に送信する。
【0046】
そしてさらに、ディスクドライブドライバ13が、論理ユニット番号ごとにINQUIRYコマンドを発行するため、USBストレージデバイス17は、都度、メモリ情報記憶部21cから、当該論理ユニットのデバイスタイプコード、フォーマット(ドライブ1乃至3にマウントされたメディアのフォーマット)、その他の情報を読み出して、ホスト11に送信する。これらの結果ホスト11は、USBストレージデバイス17を、2つのCD−ROMドライブ(より正確にはCD−ROM用フォーマットから構成される論理ユニット番号「00」及び「01」の2領域)と、1つのリムーバブルドライブ(正確にはディスク用フォーマットで構成された論理ユニット番号「10」の領域)とを有するデバイスと認識する。このときホスト11は各ドライブがマウントしているメディア(各論理ユニット番号に対応付けられている領域)の容量に関する情報(先頭アドレスとLengthの情報)を併せて取得する。
【0047】
ホスト11との通信が確立されると、フラッシュメモリ25を動作可能にし(S125)、起動処理を終了する。
【0048】
なお、Windows(登録商標)には、記憶媒体挿入時や記憶媒体接続時にその記憶媒体のルートディレクトリに記憶されたautorun.infという名称のファイル内で指定されたアプリケーションソフトウェアを実行する機能を有しているため、フラッシュメモリ25のCD−ROM領域にそのファイルを記憶させておけば、本USBストレージデバイス17がホスト11に装着された際に特定のソフトウエアを自動実行させることができる。
【0049】
このようになっていれば、利用者がホスト11の操作に不慣れであっても本USBストレージデバイス17を装着するだけで特定のアプリケーションソフトウェアが自動実行される。
【0050】
(c)アクセス処理
ホスト11において動作する種々のソフトウエアが、USBストレージデバイス17に対してデータの書き込み、読み出し、削除の実行指令を送ったときに、USBストレージデバイス17のコントローラ21でプログラムに基づいて実行されるアクセス処理について図10のフローチャートを用いて説明する。
【0051】
まず、S210では、ホスト11から受信した指令の種類によって分岐する。書き込み又は削除の指令であった場合はS215に進み、そうでない場合、すなわち読み出しの指令であった場合はS250に進む。
【0052】
S215では、書き込み又は削除の指令が論理ユニット番号「10」に対する指令であるか否かによって分岐する。つまり、書き込み及び削除が実行可能な論理ユニットに対するものであるか否かによって分岐する。論理ユニット番号「00」若しくは「01」に対するものであればS245に進み、そうでない場合すなわち論理ユニット番号「10」に対する指令であればS220に進む。
【0053】
S220では、LED23を点灯させる。続くS225では、ホスト11から指定されたフラッシュメモリ25のブロックにデータを書き込む。またはホスト11から指定されたフラッシュメモリ25のブロックのデータを削除する。なお書き込み又は削除を実行する際は、メモリ情報記憶部21cに記憶されているフラッシュメモリ25の各メディア(領域)毎の物理ブロック番号論理ブロック番号変換テーブル(図示せず)を用い、ホスト11から指定されたブロック番号を論理ブロック番号37としてその論理ブロック番号37に該当する物理ブロック番号39によって特定されたフラッシュメモリ25のブロックに対してデータの書き込み又は削除を実行する。尚ここでいう番号とはアドレスのことである。
【0054】
続くS230では、LED23を消灯させる。そして、S235ではS225の処理が正常に完了したか否かによって分岐する。正常に完了していればアクセス処理を終了し、正常に完了していなかったらS240に進む。
【0055】
S240では、S225の処理が正常に完了しなかった旨をホスト11に通知してアクセス処理を終了する。
【0056】
一方、S215で、書き込み又は削除の指令が論理ユニット番号「00」若しくは「01」に対する指令であると判定された際に進むS245では、許可されていない指令としてホスト11にエラー発生の旨を通知する。
【0057】
また、S210で読み出しの指令であったと判定されて進むS250では、LED23を点灯させ、続くS255ではホスト11から指定されたフラッシュメモリ25のブロックのデータを読み込み、読み込んだデータをホスト11に送る。なお、データを読み出す際は、メモリ情報記憶部21cに記憶されているフラッシュメモリ25の各メディア(領域)毎の物理ブロック番号論理ブロック番号変換テーブルを用い、ホスト11から指定されたブロック番号を論理ブロック番号37としてその論理ブロック番号37に該当する物理ブロック番号39によって特定されたフラッシュメモリ25のブロックからデータを読み出す。
【0058】
続くS260では、LED23を消灯させる。そして、S265ではS255の処理が正常に完了したか否かによって分岐する。正常に完了していればアクセス処理を終了し、正常に完了していなかったらS270に進む。
【0059】
S270では、S255の処理が正常に完了しなかった旨をホスト11に通知してアクセス処理を終了する。
【0060】
このようにアクセス処理が実行されるため、故意にあるいは誤って消去されると問題のある情報(ソフトウェア、データ)を論理ユニット番号「00」若しくは「01」の領域に記憶させておけば、そのソフトウエアが消去されることを未然に防止できる。尚、上記フローにおいて、書き込み又は削除指令がなされたときに、コントローラ21は、そのコマンドが対象としている論理ユニット番号を根拠に書き込み又は削除指令を実行するか判断している。これはその判断プログラム(サブルーチンプログラム)が、論理ユニット番号に対応付けられている領域のフォーマット(書き込み及び削除が許容されるか)を基に構成されているという事実に基づくものである。
【0061】
本願USBストレージデバイス17は、後述するメディア変更、ドライブ変更が予定されたものであり、これら変更に伴い、論理ユニット番号に対応付けられる領域のフォーマットが変更される場合がある。
【0062】
そのときは、該変更に伴い、前記判断用サブルーチンプログラムが変更される。そして、爾後のアクセス処理においては変更されたプログラムに基づき、書き込み、削除の是非の判断がなされる。これにより、情報の読み出し、書き込み、又は削除が有効に実行されるが、このとき、さらに慎重を期すべく、その論理ユニットに対応する領域のフォーマット情報を確認し(書き込み、削除が許容された領域であるかを確認)、当該処理の判断を実行するようにしてもよい。
【0063】
このようにすれば、消去されると問題のあるソフトウェア、データなどをより安全に保護することができる。なおここでいうフォーマット情報は、その領域が書き込み、削除が許容されたものであるかの判断基準となるものであればよく、その領域を構成する具体的なフォーマットの情報の他、INQUIRY情報中のデバイスタイプコード等、一義的にそのフォーマットを判断できるもの(等価なもの)であればどのような情報でもよく、それらを含む概念として定義される。
【0064】
(d)メディア変更
次に本発明の特徴であるメディア(領域)変更について詳述する。メディア変更とは、各ドライブにマウントするメディアの入れ替えをいう。具体的には、論理ユニット番号に対応付けする領域の変更である。
【0065】
(メディア変更方法1)
次にメディア変更を行う方法例1について説明する。本例は、メディア変更ツール(ソフトウエア)をホスト11側にインストールして行うものである。図13(a)に示すように、ホスト11に本USBストレージデバイス17を装着した状態で、前記変更ツールからデバイスに対して変更情報を送り、これを基にコントローラ21がその設定を変更するものである。
図11はメディア(領域)変更ツールの操作画面例である。
【0066】
図11の左側には、現状の設定内容がユーザの確認のために表示されている。図11の右側は、メディア変更を設定する画面である。画面例では、ドライブ2(CD−ROMドライブ)にマウントするメディアをメディア2からメディア3に変更するとともに、さらに、ドライブ3(リムーバブルドライブ)にマウントしていたメディア4をアンマウントすることが選択されている。図11の「メディア変更」ボタンをクリックすると、該変更が確定する。
【0067】
以下、本方法例1によるメディア変更の手順(デバイス内部でコントローラ21が実行する処理)について、図14のフローチャートを用いて説明する。尚、OSから見たドライブと該ドライブにマウントされているメディアの関係は、変更前は図12(a)の状態である。
【0068】
まずSCSIベンダーコマンドにて、ホスト11よりメディア入れ替えをデバイスに通知する。このコマンドには、メディア変更を表すオペレーションコードとともに、どのドライブに対するものであるか、どのメディアに変更するかの情報が含まれる。デバイスはこのコマンドを受けると、このコマンドを解読しメディア変更コマンドであることを認識する(S310)。
【0069】
そして指示されたメディア変更を実行するために、メディア入れ替えを指示されたドライブにマウントされているメディアをアンマウントする(S320)。即ち、ドライブ2(CD−ROMドライブ2)にマウントしているメディア2をアンマウントするとともに、ドライブ3(リムーバブルディスク1)にマウントされているメディア4をアンマウントする。
【0070】
次にホスト11はデバイスに対し、一定時間ごとに各ドライブにどのメディアがマウントされているか確認するコマンドを発行している(Test Utility Readyコマンド)。デバイスはこれを受けて、ドライブ2(CD−ROMドライブ2)及びドライブ3(リムーバブルディスク1)にはマウントしているメディアがないことをホスト11に通知する(S330)。
【0071】
ホスト11はドライブ2とドライブ3にメディアを入れることをコマンドで要求する(Request Senseコマンド)。デバイスはこのコマンドを受領すると、先のコマンドで指示されたメディアの変更を実行する(S340)。即ち、ドライブ2(CD−ROMドライブ2)にメディア3をマウントする。ドライブ3(リムーバブルディスク1)には何もマウントしない。ドライブ2のマウントが終了したらこれをホスト11に通知する(S350)。
【0072】
これによりホスト11はドライブ3に新たにメディアがマウントされたことを検知し、ドライブ2にRead Capacity/Readコマンドを発行する。デバイスはこのコマンドを受けて、入れ替えたメディアの情報をホスト11に通知する(S360)。そして、メモリ情報記憶部21cにおいて記憶している内容を、変更された内容に基づき更新する(S370)。これでメディア変更処理が完了する。
【0073】
図12(b)は、変更後のフラッシュメモリ25内部の各領域とOSの認識状態の対応関係を表している。図示するように、CD−ROMドライブ2からメディア2がアンマウントされ、代わりにメディア3がマウントされているので、CD−ROMドライブ2はメディア2との対応関係が解除され新たにメディア3との対応関係が形成されている。さらにリムーバブルドライブ1からメディア4がアンマウントされたので、リムーバブルドライブ1とメディア4の対応関係が解除されている。しかし、リムーバブルドライブ1自体の設定は解除されていないので(即ち論理ユニット番号「10」の設定はそのまま維持されている)、OSは以前同様にリムーバブルドライブ1を認識し、これによりモニターには当該リムーバブルドライブ1を表すアイコンが表示される。但し、マウントしていたメディアの関係は解除されたので、アイコンをクリックしても、何のファイル情報も表示されない。即ちメディア変更後のリムーバブルドライブ1は、メディアのマウントされていない空のドライブとして認識される。
【0074】
(メディア変更方法例2)
次にメディア変更を行う方法例2について説明する。本方法例2は、デバイスに設けられた手動式スイッチ(外部スイッチ)によりメディアの入れ替えを行うものである。この変更を実行するための構成を図13(b)に示す。
【0075】
図13(b)に示すように、状態1と状態2に、スライド式スイッチにより切り替え可能になっている。図13(b)において、スイッチが状態1のときは、図12(a)に図示していると同じ設定状態である。これを状態2に変更すると、上記方法例1の場合同様、図12(b)に示す状態に変更されるものとする。図13(b)に示すように、ホスト11に本USBストレージデバイス17を装着した状態で、外部スイッチからデバイスに対してメディア変更を実行すべきことを通知し、これを契機にコントローラ21がその設定を変更するものである。外部スイッチはデバイスのコントローラ21にGPIOなどで接続することができる。
【0076】
以下、本方法例2によるメディア変更の手順(デバイス内部でコントローラ21が実行する処理)について、図15のフローチャートを用いて説明する。
【0077】
スイッチが状態2に変更されると、このスイッチの切り替えに伴ってコントローラ21に切り替えを指示する信号が送信され、コントローラ21はスイッチの状態変更を認識する(S410)。するとコントローラ21は予め内蔵しているプログラムに基づき、ドライブ2(CD−ROMドライブ2)にマウントされているメディア2をアンマウントするとともに、ドライブ3(リムーバブルディスク1)にマウントされているメディア4をアンマウントする(S420)。
【0078】
ホスト11はデバイスに対し、一定時間ごとに各ドライブに、どのメディアがマウントされているか確認するコマンドを発行している(Test Utility Readyコマンド)。デバイスはこれを受けて、ドライブ2とドライブ3にはマウントしているメディアがないことをホスト11に通知する(S430)。
【0079】
続いてホスト11はデバイスに対し、ドライブ2(CD−ROMドライブ2)とドライブ3(リムーバブルディスク1)にメディアをマウントすることをコマンドで要求する(Request Senseコマンド)。これを受けデバイスは、ドライブ2(CD−ROMドライブ2)にメディア3をマウントする(S440)。ドライブ3(リムーバブルディスク1)には何もマウントしない。マウント処理が終了したらこれをホスト11に通知する(S450)。これによりホスト11は、ドライブ2(CD−ROMドライブ2)に新たにメディアがマウントされたことを検知する。
【0080】
そしてホスト11は、ドライブ2(CD−ROMドライブ2)にRead Capacity/Readコマンドを発行する。デバイスはこれを受けて、入れ替えたメディアの情報をホスト11に通知する(S460)。そして、メモリ情報記憶部21cにおいて記憶している内容を、変更された内容に基づき更新する(S470)。以上でメディアの入れ替え処理が完了する。
【0081】
スイッチが状態2から状態1に切り替わったときは、コントローラ21は内蔵している他のプログラムに基づき、スイッチが状態1のときに設定されているメディアマウント状態に復帰する手順を執る。尚、手動式の外部スイッチの変わりに、指紋認証、無線認証、又はFelica認証用の装置をスイッチング手段として用いてもよい。
【0082】
(e)ドライブ変更
次に、本発明のさらに他の特徴であるドライブ変更について説明する。ドライブ変更とは、本USBストレージデバイス17がOSから認識されるドライブ数の変更やドライブの種類を変更することをいう。以下、ドライブ変更について図面を用いて説明する。
【0083】
ドライブ変更は、メディア変更の場合同様、図13(a)、図13(b)のシステム構成で実行できる。但し、図13(a)のシステム構成の場合は、専用のドライブ変更ツール(ソフトウエア)をホスト11にインストールして実行する。
【0084】
(ドライブ変更方法1)
以下、ドライブ変更を行う方法例1について説明する。本例は、ドライブ変更ツール(ソフトウエア)をホスト11にインストールして行うものである。
【0085】
図17はドライブ変更ツール(ソフトウエア)の操作画面例である。図17(a)において、現在設定されているドライブ数が3であることが、ユーザの確認のために表示されている。図17(a)では、このドライブ数を3から1に変更する様子を示している。
【0086】
ドライブ数1を入力して、「次へ」ボタンをクリックすると、ドライブ数を1にすることが確定し、図17(b)の操作画面に移行する。新たに設定されたドライブ数が1であるから、ここではドライブ1のドライブ設定(ドライブの種類の選定)と、該ドライブ1へマウントするメディアの選択が入力項目となっている。
【0087】
ドライブ設定において、「選択」ボタンをクリックすると、プルダウン式に、「CD−ROMドライブ」と「リムーバブルドライブ」という2つのメニューが表示される。画面上では、「CD−ROMドライブ」が選択されている。マウントメディア選択においては、「選択」ボタンをクリックすると、同じくプルダウン式に、「メディア1」、「メディア2」、「メディア3」がメニューとして表示される。「メディア4」がメニュー表示されないのは、メディア4はリムーバブルドライブ用のメディアだからである。
【0088】
画面では、メディア1が選択されている。これは、変更前の状態のCD−ROMドライブ2とリムーバブルドライブ1が削除されたことに等しい。これに対し、CD−ROMドライブ1にマウントするメディアを、メディア2若しくはメディア3に選択してもよい。即ち、ドライブ変更とメディア変更を同時に行うことも可能である。こ本画面例の場合は、メディア変更を行ったCD−ROMドライブが一つだけ存在することになる。ここで、「ドライブ変更」ボタンをクリックすると、先の手順で設定したドライブ変更が確定する。
【0089】
以下、本方法例1によるドライブ変更の手順について説明する。まずSCSIベンダーコマンドにて、ホスト11よりドライブ変更をデバイスに通知する。
【0090】
このコマンドには、ドライブ変更を表すオペレーションコードとともに、当該変更がドライブ数の増加かであるか削減であるか、削減であればどのドライブを削除するかの情報が含まれている。本例の場合は、リムーバブルドライブ1を削除せよという内容のコマンドである。このコマンドを受けた後、これを解釈し、リムーバブルディスク1を削除せよという内容のコマンドであることを認識する。
【0091】
そして、指示されたデバイス変更を実行するために、ドライブ数、即ち論理ユニット数を3から1へ変更する。すると、論理ユニット番号は、「00」のみになり、この論理ユニット番号とメディアの対応関係は変更されていないので、ドライブ2とドライブ3を削除するという内容を、メモリ情報記憶部21cにおいて更新する。これでデバイス内におけるデバイス数の変更処理は終了する。
【0092】
尚、上記デバイス変更をホスト11に反映させるには、本デバイスをホスト11から一旦抜き取る必要がある。爾後ホスト11が本デバイスを再起動する際には、上述した起動処理に係るコマンドが発行されるが、上記更新された内容は、このコマンドに対する応答や、ホスト11がデバイスにアクセス(情報の読み出しや書き込み)するときに反映される。
【0093】
図18は、ドライブ変更前と前記手順で変更した後における、フラッシュメモリ25内部の各領域とOSの認識状態の対応関係を表している。図18(a)は変更前、図18(b)は変更後のものである。変更前は、図12(a)と同一である。図18(b)では、ドライブ変更によってメディア1をマウントしているCD−ROMドライブ1のみがOSから認識されるようになったことを示している。即ち、ドライブ数変更により、CD−ROMドライブ2とリムーバブルドライブ1が解除されたため、CD−ROMドライブ2とリムーバブルドライブ1のアイコンがモニターから消失している。
【0094】
(ドライブ変更方法2)
次にドライブ変更を行う方法例2について説明する。本方法例2は、図13(b)に示すような、デバイスに設けられた手動式スイッチ(外部スイッチ)によりデバイスの変更を行うものである。スイッチが状態1のときは、前述した図18(a)の場合と同じ設定状態であり、スイッチを2の状態に変更すると、図18(b)の状態に変更されるものとする。
【0095】
以下、本方法例2によるデバイス変更の手順について、外部スイッチが、状態1から状態2に変更される場合について説明する。
【0096】
スイッチが状態2に切り替えられると、状態2に切り替えられたことを示す信号がコントローラ21に送信される。するとコントローラ21は、該コントローラ21が予め内蔵しているドライブ設定変更プログラムに基づき、論理ユニット数を3から1に変更する。このプログラムには、メディア2をマウントしたCD−ROMドライブ2(ドライブ2)とメディア4をマウントしたリムーバブルドライブ1(ドライブ3)を削除する手順が含まれている。この処理により、メモリ情報記憶部21cのドライブ管理テーブル中、ドライブ2(論理ユニット番号「01」)とドライブ3(論理ユニット番号「10」)を削除する。
【0097】
これでデバイス内におけるデバイス数の変更処理が終了する。尚、上記デバイス変更をホスト11に反映させるには、本デバイスをホスト11から一旦抜き取る必要がある。爾後ホスト11が本デバイスを再起動する際には、上述した起動処理に係るコマンドが発行されるが、上記更新された内容は、このコマンドに対する応答や、ホスト11がデバイスにアクセス(情報の読み出しや書き込み)するときに反映される。
【0098】
スイッチが状態2から状態1に切り替わったときは、内蔵する他のプログラムにより、元の状態に復帰する手順が執られる。
【0099】
(発明の効果)
上記の通り、本発明では、USBストレージデバイス17の記憶領域を複数の領域に区分し、OSに認識させるドライブ数、並びに、該ドライブに前記領域のいずれを対応付けするかをユーザが選択可能に構成したので、区分された領域の数に対してOSに認識させるライブの数を可変にできる。また、OSに認識させ得る領域を可変にすることができ、例えば、ユーザAには領域1に入っているアプリケーションソフトのみ使用可能にし、ユーザBには領域2に入っているアプリケーションソフトのみ使用可能にするなど、より自由度のあるデバイスを提供できる。
【0100】
また、USBストレージデバイス17を外部装置に装着した際、オートランするCD−ROMドライブの設定を解除し(OSから認識できないようにする)、ディスク領域に即アクセスすることを可能にするなど、より利便性のあるデバイスを提供できる。
【0101】
(変形例)
また、実施例における操作画面51例で各メディア(領域)に設定するCD−ROMフォーマットは、CDイメージデータのフォーマットとしてISO9660又はHFSの何れかで設定できるが、さらに、Audio
CD、CD TEXT、Mixed CD、Enhanced CD、ビデオCD、ブータブルCD等のフォーマットが選択できるようになっていてもよい。また記録方式も、ディスクアットワンス、トラックアットワンス、セッションアットワンス、パケットライトなどの方式が指定できるようになっていてもよい。また、情報の書き込み、削除を不可とする領域のフォーマットは、CD−ROMのフォーマットの他、情報の読み出しのみを予定したものであれば、DVD−ROM用のフォーマット、その他今後出現するフォーマットでもよい。
【0102】
また、ユーザが設定するドライブをUSBマスストレージクラスドライバのSCSIコマンドセットに定義された論理ユニット番号として設定したが、仮想HUB(HUBエミュレーションソフト)のデバイス番号に対応させることができることはいうまでもない。
【図面の簡単な説明】
【0103】
【図1】実施例のUSBストレージデバイスの構成を示すブロック図である。
【図2】メモリ領域の構成例を表す図である。
【図3】(a)はメディア変更の操作画面例(第1ステップ)である。(b)は第1ステップ終了時の管理領域のメディア管理テーブルの内容である。
【図4】(a)はメディア変更の操作画面例(第2ステップ)である。(b)は第2ステップ終了時の管理領域のメディア管理テーブルの内容である。
【図5】(a)はメディア変更の操作画面例(第3ステップ)である。(b)は第3ステップ終了時の管理領域のメディア管理テーブルとドライブ管理テーブルの内容である。
【図6】(a)はメディア変更の操作画面例(第4ステップ)である。(b)は第4ステップ終了時の管理領域のメディア管理テーブルとドライブ管理テーブルの内容である。
【図7】メディア変更終了時にフラッシュメモリの各領域に指定されたファイルが書き込まれる様子を模式的に表した図である。
【図8】メディア変更終了後のフラッシュメモリ内部の各領域とOSの認識状態の対応関係を表した図である。
【図9】本発明USBストレージデバイスの起動処理のフローチャートである。
【図10】本発明USBストレージデバイスのアクセス処理のフローチャートである。
【図11】メディア変更ツールの操作画面例である。
【図12】(a)はメディア変更前のフラッシュメモリ内部の各領域とOSの認識状態の対応関係を表した図である。(b)はメディア変更後のフラッシュメモリ内部の各領域とOSの認識状態の対応関係を表した図である。
【図13】(a)はメディア変更を行うシステムの第1の構成例である。(b)はメディア変更を行うシステムの第2の構成例2である。
【図14】メディア変更方法例1のフローチャートである。
【図15】メディア変更方法例2のフローチャートである。
【図16】ドライブ変更ツールの操作画面例である。
【図17】(a)はドライブ変更前のフラッシュメモリ内部の各領域とOSの認識状態の対応関係を表した図である。(b)はドライブ変更後のフラッシュメモリ内部の各領域とOSの認識状態の対応関係を表した図である。
【符号の説明】
【0104】
11…ホスト、12…オペレーションシステム、13…ディスクドライブドライバ、14…USBマスストレージクラスドライバ、15…USBホストコントローラ、16…USBバス、17…USBストレージデバイス、19a…USBインターフェース、19b…シリアルパラレル変換部、19c…パケット生成分解部、19d…USBバスパワー制御部、21…コントローラ、21a…メモリ制御部、21b…USBインターフェース制御部、21c…メモリ情報記憶部、21d…LED制御部、23…LED、25…フラッシュメモリ
【技術分野】
【0001】
本発明は、半導体メモリを用いて情報を記憶するUSBストレージデバイスに関する。
【背景技術】
【0002】
本出願人は、先に、フラッシュメモリの領域を2つに分けて定義し、一方を情報の読み出しのみ可能なCD−ROMユニットとして、もう一方を情報の読み出し、書き込み、削除の可能なディスクユニットとして外部装置に認識させるUSBストレージデバイスについて出願している(特開平2004−54896号/以下「先願1」)。
【0003】
先願1の実施例に開示された発明は、区分された領域の数とOSが認識するドライブ(デバイス)の数が同じで、OSからすべての領域が認識されてしまう。従って、OSから認識し得る領域を可変にすること、例えば、ユーザAには領域1に入っているアプリケーションソフトのみ使用可能にし、ユーザBには領域2に入っているアプリケーションソフトのみ使用可能にするなど自由度のある使用ができない(問題点1)。
【0004】
また、USBストレージデバイスを外部装置に装着した際、CD−ROMユニットに格納されているアプリケーションプログラムをオートランさせることができ便利であるが、ディスク領域に即アクセスしたい場合には却って不便でもある(問題点2)。
【0005】
【特許文献1】特開平2004−54896
【発明の開示】
【発明が解決しようとする課題】
【0006】
本発明は、上記問題点に鑑みてなされたものであり、その目的とするところは、より利便性のあるUSBストレージデバイスを提供することにある。
【課題を解決するための手段】
【0007】
上記課題を解決するためになされた請求項1に記載のUSBストレージデバイスは、USBストレージデバイスの記憶領域を3つ以上の領域に区分し、OSに設定させるドライブ数、並びに、該ドライブに前記領域のいずれを対応付けするかをユーザが選択可能に構成した。
【発明を実施するための最良の形態】
【0008】
以下、本発明が適用された実施例について図面を用いて説明する。尚、本発明の実施の形態は、下記の実施例に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態を採りうる。
【0009】
[実施例1]
図1は、実施例1のUSBストレージデバイス17(特許請求の範囲に記載のUSBストレージデバイスに相当する)とホスト11(特許請求の範囲に記載の外部装置に相当する)の概略構成を示すブロック図である。
【0010】
(1)ホスト11
ホスト11は、一般に広く知られたパーソナルコンピュータであり、ソフトウエアとして、オペレーションシステム12、ディスクドライブドライバ13及びUSBマスストレージクラスドライバ14を備え、ハードウェアとしてUSBホストコントローラ15を少なくとも備える。
【0011】
オペレーションシステム12は、ホスト11を統括的に制御するソフトウエアであり、例えばWindows(登録商標)やMac
OS X(登録商標)等ある。ディスクドライブドライバ13は、オペレーションシステム12から受け取った記憶装置へのアクセス指令等をSCSIコマンド変換してUSBマスストレージクラスドライバ14に渡すとともに、USBマスストレージクラスドライバ14から指令等を受け取りオペレーションシステム12に渡す。USBマスストレージクラスドライバ14は、USBホストコントローラ15を制御する。USBホストコントローラ15は、図示しないUSBコネクタを備え、他の装置のUSBコネクタとケーブルによって接続されることによって、USB規格に基づいた通信を行うことができるようになっている。なお、ホスト11は、USB規格に基づいた通信を行うことができる機器であれば、パーソナルコンピュータに限らずPDAや携帯電話等であってもよい。
【0012】
(2)USBストレージデバイス17
USBストレージデバイス17は、USBインターフェース19とコントローラ21とLED23とフラッシュメモリ25とを備える。
【0013】
(2−1)USBインターフェース19
USBインターフェース19は、特許請求の範囲に記載の通信手段に相当し、USBバス16を介してホスト11と通信を行う機能を担う。USBインターフェース19は、パケット送受信部19aとシリアルパラレル変換部19bとパケット生成分解部19cとUSBバスパワー制御部19dとを備える。パケット送受信部19aは、図示しないUSBコネクタと接続され、USB規格に基づいたパケットを送受信する。シリアルパラレル変換部19bは、シリアルデータとパラレルデータとを相互に変換する。パケット生成分解部19cは、ホスト11と通信を行うためのパケットの生成及びパケットを分解してデータの取り出しを行う。USBバスパワー制御部19dは、ホスト11から供給される電力の管理及びUSBストレージデバイス17の各部位への電力の配分を行う。
【0014】
(2−2)フラッシュメモリ25
フラッシュメモリ25は、記憶保持動作が不要な半導体メモリであり、データを記憶することができる。記憶したデータは、後述するメモリ制御部21aによって読み出すことが可能である。また、メモリ制御部21aによって書き込み及び削除をすることもできる。フラッシュメモリ25は、特許請求の範囲に記載の記憶手段に相当する。
【0015】
本USBストレージデバイス17は、潜在的にユーザが使用可能な複数の領域を有する。図2はその領域例を表している。ここでは、CD−ROM用のフォーマット、例えば、ISO9660でフォーマットされて構成されている3つの領域と、FATフォーマットでフォーマットされて構成されている1領域の計4領域に区分されて構成されている様子が示されている。FATフォーマットで構成される領域は2以上でもよい。このフラッシュメモリ25には、さらにこれら領域等に関する情報(アドレスや容量などに関する情報)をシステムが管理するための管理領域を有する。
【0016】
(2−3)コントローラ21
コントローラ21は、特許請求の範囲に記載の制御手段に相当し、メモリ制御部21aとUSBインターフェース制御部21bとメモリ情報記憶部21cとLED制御部21dとを備える。メモリ制御部21aは、フラッシュメモリ25に対してデータの読み出し、書き込み及び削除を実行する。USBインターフェース制御部21bは、前述したUSBインターフェース19の各部を制御する。メモリ情報記憶部21cは、「メディア管理テーブル」と「ドライブ管理テーブル」を記憶する。これについては後述する。LED制御部21dは、フラッシュメモリ25が、ホスト11より書き込み、読み出しや削除されているとき、本デバイスに設けられたLED23を点灯制御するものである。
【0017】
(2−4)LED23
図1に戻り、LED23は、フラッシュメモリ25に対して情報の読み出し、書き込み及び削除が実行されている際に点灯する発光体である。フラッシュメモリ25に対して情報の読み出し、書き込み及び削除が実行中であることを利用者に示し、これらの実行中にホスト11からUSBストレージデバイス17が抜かれないようにするためのものである。
【0018】
(a)初期設定
初期設定は、USBストレージデバイス17の製造者や販売者(「特定ユーザ」)、若しくはエンドユーザ(以下、前記特定ユーザとエンドユーザを併せて単に「ユーザ」と言う)がホスト11上で初期設定ソフトウェアを実行した際に、USBストレージデバイス17のコントローラ21でプログラムに基づいて実行される。
【0019】
以下、初期設定の手順を、ホスト11で実行される初期設定ソフトウエアの操作画面例を用いて説明する。
【0020】
(手順1)
図3(a)は、メディア数を設定する操作画面例である。ここで、「メディア数」とは、フラッシュメモリ25において、複数に区分され、潜在的にユーザが使用可能な領域数をいう。「メディア」と言う表現を用いているが、これは、後述するドライブ設定との関係で各領域が所定のフォーマットで構成され、以降、該領域が、OSから所定の記録媒体即ちメディアとして認識されることになるからである。
【0021】
ここでは、メディア数を4と設定した状態を示している。メディア数を4と設定したことにより、フラッシュメモリ25にはユーザデータ領域として、4つに区分された領域が確保されることになる。そしてフラッシュメモリ25に当該4つの領域の情報をシステムが管理するための管理領域が設定される。図3(b)は、管理領域に設定されるテーブル例(メディア管理テーブル)を表している。以下の本実施例において、メディア1として定義される領域を領域1、メディア2として定義される領域を領域2、メディア3として定義される領域を領域3、メディア4として定義される領域を領域4と呼ぶ。また本明細書において、別段の意味を有しない限り、単に「領域」というときは、上記フラッシュメモリ25の区分された領域をいう。
【0022】
この状態では、メディア数が4という情報のみ記録される。各領域のメディア種別(フォーマット)や、書き込まれるファイルの情報が指定されていないため、それらの情報は書き込まれていない。画面で、「次へ」のボタンをクリックすると、次の手順の操作画面に移行する。
【0023】
(手順2)
次に、前手順で確立した4つの各領域のメディア設定、即ち、各領域をOSからいかなる種類のメディアとして認識させるかの設定(具体的には各領域を構成するフォーマットの設定)、及び各領域に格納すべきファイルのファイル名を選択する。
【0024】
図4(a)は操作画面例であり、「選択」ボタンをクリックするとプルダウン式に、設定されるべきメディア種類リストが表示され、そのうちの一つを選択するようになっている。ここでは、メディア1乃至メディア3はCD−ROMメディアとして構成されるべきこと、即ち情報の読み出しのみ可能なCD−ROM用フォーマットで構成されるべきことが指定されており、メディア4はリムーバブルメディア(リムーバブルハードディスクのメディア)として構成すること、即ち、情報の読み出し、書き込み、削除のいずれも可能なディスク用のフォーマットで構成されるべきことが指定されている。
【0025】
次に、各領域に格納すべきファイル名を選択する。まず「参照」ボタンをクリックすると、ホスト11のドライブごとに格納されているファイル名のリストがプルダウン式に表示され、そのうちの一つを選択するようになっている。画面例では、メディア1(領域1)に対してはホスト11のCドライブに存在するsample.isoという名のファイルを、メディア2(領域2)に対しては同じくホスト11のCドライブのtest.isoという名のファイルを、メディア3(領域3)に対しては、同じくCドライブのtest1.isoという名のファイルを、又、メディア4(領域4)に対しては、同じくDドライブのtest.binという名のファイルをそれぞれ書き込むべきことが指定されている。
【0026】
全領域に対してメディア種別(フォーマット)及び格納すべきファイル名が選択されると、管理領域のメディア管理テーブルには図4(b)に示すように各領域に関する情報がコントローラ21により書き込まれる。図では、メディア1の領域は先頭アドレス(論理ブロックアドレス)が0x0000、Lengthが20480byte、メディア種類がCD−ROM、メディア2の領域は先頭アドレスが0x0500、Lengthが20480byte、メディア種類がCD−ROM、メディア3の領域は先頭アドレスが0x0A00、Lengthが20480byte、メディア種類がCD−ROM、メディア4の領域は先頭アドレスが0x0F00、Lengthが5120byte、メディア種類がリムーバブルディスクとして設定されたことを示している。
【0027】
本例では、各領域の容量(先頭アドレス、Length)は、前記格納指定されたファイルの容量に基づき、コントローラ21が自動的に設定している。この段階で、各領域に指定されたファイルを書き込むこともできるが、各手順において「キャンセル」ボタンで再設定処理がなされるもあるので、後述するように、手順4の終了時に一斉に書き込みすることが好ましい。
画面で、「次へ」のボタンをクリックすると、次の手順の操作画面に移行する。
【0028】
(手順3)
次に、ドライブ数を設定する。ここでドライブ数とは、当該USBストレージデバイス17がOSから認識されるドライブの数を意味する。ここで付言すると、手順1において領域は4つに区分されているため、OSに対しては潜在的には最大4つのドライブとして認識させることができるが、図5(a)の操作画面例では、ドライブ数が3と設定された状態を示している。そして管理領域には、前記メディア管理テーブルの他に、ドライブ管理テーブルが新たに設定される(図5(b)参照)。
【0029】
このとき、ドライブ管理テーブルのドライブ1には、ホスト11のUSBマスストレージクラスドライバのSCSIコマンドセットに定義された論理ユニット番号「00」が、ドライブ2には論理ユニット番号「01」が、ドライブ3には論理ユニット番号「10」がそれぞれ割り当てられている。よって、ドライブ数は、論理ユニット数に等しい。ドライブ数が4と設定された場合は、ドライブ4には論理ユニット番号「11」が割り当てられる。尚、図5(b)において、「LUN」とは論理ユニット番号(Logical Unit Number)をいう。
【0030】
この状態では、ドライブ数が3と指定されているにすぎないため、ドライブ管理テーブルにはドライブ数が3とだけ記録され、その他の具体的な情報は書き込まれない。画面で、「次へ」のボタンをクリックすると、次の手順の操作画面に移行する。
【0031】
(手順4)
次にドライブ設定手順に移行する。ここでいうドライブとは、上記の通り、USBストレージデバイス17がOSから認識されるドライブをいう。これを図6(a)の操作画面例を用いて説明する。ここでは手順3でドライブ数を3と設定していることから、3つの各ドライブをOSにいかなる種類のドライブ(本例ではCD−ROMドライブかリムーバブルドライブ)として認識させるかを先ず設定し、その上で、その設定されたドライブに適合するフォーマットで構成された領域(手順2で既に決定しているメディア即ち領域)のどれを対応付けるかを選択するものである。
【0032】
ここでは、ドライブ1とドライブ2をCD−ROMドライブとして認識させること、ドライブ3をリムバーブルドライブとして設定された様子が示されている。
【0033】
次に、各ドライブにマウントされるべきメディアの選択(即ち、各ドライブの論理ユニット番号に対応付けるフラッシュメモリ25の領域)を、手順2において設定したメディア番号(領域番号)の指定により行う。図6(a)の例では、ドライブ1にはメディア1をマウントすること、即ち、論ユニット番号「00」に領域1を対応付けること、ドライブ2にはメディア2をマウントすること、即ち、論理ユニット番号「01」に領域2を対応付けること、ドライブ3にはメディア4をマウントすること、即ち、論理ユニット番号「01」に領域4をそれぞれ対応付けることが選択されている。
【0034】
そして、「デバイスへ書き込み」ボタンをクリックすると、メディア1乃至4(領域1乃至4)に対し、先の手順2において選択されたファイルが書き込まれる(図7参照)。
【0035】
このとき、管理領域の「ドライブ管理テーブル」に、設定された状態が確定値として書き込まれる(図6(b)参照)。具体的には、各ドライブごとにマウントしているメディア(そのドライブの論理ユニット番号に対応つけられたメモリーの領域)、ドライブの種類(INQUIRY情報)などが書き込まれる。
【0036】
尚、管理領域に書き込まれた「メディア管理テーブル」と「ドライブ管理テーブル」の内容は、コントローラ21のメモリ情報記憶部21cにも同様に書き込まれて保存される。このとき、ドライブ管理テーブルに記録されている情報は、ホスト11のUSBマスストレージクラスドライバのSCSIコマンドセットに定義された論理ユニット番号「00」「01」「10」に対応する領域として、領域1、領域2、領域4をUSBマスストレージクラスドライバにそれぞれ認識させるための情報となる。これにより、USBマスストレージクラスドライバは、本USBストレージデバイス17を3つの論理ユニットを有するSCSIデバイスとして認識し、OSは3つのドライバとして認識する。
【0037】
尚、後述するメディア変更、ドライブ変更等により管理領域の内容が変更されると、メモリ情報記憶部21cの内容も同様に変更され、それによりUSBマスストレージクラスドライバは、該更新された情報に基づき本USBストレージデバイス17を認識し、OSもそれに従ったドライブとして認識する。
【0038】
図8は、前記初期設定後のフラッシュメモリ25内部の各領域とOSの認識状態の対応関係を表したものである。図8において、OSは、メディア1がマウントされたドライブ1をGドライブ、
メディア2をマウントしたドライブ2をEドライブとして、メディア4をマウントしたドライブ3をFドライブとして認定したことを表している。GドライブはCD-ROMドライブ1であり、EドライブはCD−ROMドライブ2であり、Fドライブはリムーバブルドライブ1である。
【0039】
ホスト11のモニターには、ドライブ番号(E:、G:、F:)とドライブの種類を模式的に表したアイコンが表示される。以下、OSが本USBストレージデバイス17を認識するまでの起動処理について説明する。尚初期設定後起動する際は、一旦デバイスをホスト11から外し、再度装着する必要がある。
【0040】
(b)起動処理
前記初期設定されたUSBストレージデバイス17がホスト11に接続された際に、USBストレージデバイス17のコントローラ21でプログラムに基づいて実行される起動処理について図9のフローチャートを用いて説明する。この起動処理は、USBストレージデバイス17がホスト11に接続されることにより、USBバスパワー制御部19dに電力が供給され、さらにホスト11側でエニュメレーション処理が実行されると開始される。
【0041】
起動処理を開始すると、ホスト11からの指令に応じて、ディスクリプタと呼ばれるデバイス情報(デフォルトパイプの最大パケットサイズ等)をホスト11に送信する(S110)。
【0042】
次に、ホスト11から指令に応じて、USBストレージデバイス17のアドレスを設定する(S115)。以降、このアドレス宛のフレームのみを当該USBストレージデバイス17は取得する。
【0043】
次に、より詳細なデバイス情報をホスト11に送信する(S120)。このデバイス情報としては、エンドポイントに関する情報、クラス、サブクラス、プロトコル等である。
【0044】
その結果、ホスト11ではUSBマスストレージクラスドライバ14が起動され、図示しないアプリケーションソフトウェアからディスクドライブドライバ13とUSBマスストレージクラスドライバ14とを介してUSBホストコントローラ15を制御するアクセスパスができる。なお、このディスクドライブドライバ13は、MS−DOS(登録商標)時代から、受け継がれているドライバであるため永年の技術が積み重ねられており、安定的な動作が得られるドライバである。
【0045】
続いて、USBマスストレージクラスドライバ14が、Get Max
Logical Unit Numberコマンドによって論理ユニット番号数を要求するため、USBストレージデバイス17は、メモリ情報記憶部21cから論理ユニット番号数が3であるという情報を読み出して、ホスト11に送信する。
【0046】
そしてさらに、ディスクドライブドライバ13が、論理ユニット番号ごとにINQUIRYコマンドを発行するため、USBストレージデバイス17は、都度、メモリ情報記憶部21cから、当該論理ユニットのデバイスタイプコード、フォーマット(ドライブ1乃至3にマウントされたメディアのフォーマット)、その他の情報を読み出して、ホスト11に送信する。これらの結果ホスト11は、USBストレージデバイス17を、2つのCD−ROMドライブ(より正確にはCD−ROM用フォーマットから構成される論理ユニット番号「00」及び「01」の2領域)と、1つのリムーバブルドライブ(正確にはディスク用フォーマットで構成された論理ユニット番号「10」の領域)とを有するデバイスと認識する。このときホスト11は各ドライブがマウントしているメディア(各論理ユニット番号に対応付けられている領域)の容量に関する情報(先頭アドレスとLengthの情報)を併せて取得する。
【0047】
ホスト11との通信が確立されると、フラッシュメモリ25を動作可能にし(S125)、起動処理を終了する。
【0048】
なお、Windows(登録商標)には、記憶媒体挿入時や記憶媒体接続時にその記憶媒体のルートディレクトリに記憶されたautorun.infという名称のファイル内で指定されたアプリケーションソフトウェアを実行する機能を有しているため、フラッシュメモリ25のCD−ROM領域にそのファイルを記憶させておけば、本USBストレージデバイス17がホスト11に装着された際に特定のソフトウエアを自動実行させることができる。
【0049】
このようになっていれば、利用者がホスト11の操作に不慣れであっても本USBストレージデバイス17を装着するだけで特定のアプリケーションソフトウェアが自動実行される。
【0050】
(c)アクセス処理
ホスト11において動作する種々のソフトウエアが、USBストレージデバイス17に対してデータの書き込み、読み出し、削除の実行指令を送ったときに、USBストレージデバイス17のコントローラ21でプログラムに基づいて実行されるアクセス処理について図10のフローチャートを用いて説明する。
【0051】
まず、S210では、ホスト11から受信した指令の種類によって分岐する。書き込み又は削除の指令であった場合はS215に進み、そうでない場合、すなわち読み出しの指令であった場合はS250に進む。
【0052】
S215では、書き込み又は削除の指令が論理ユニット番号「10」に対する指令であるか否かによって分岐する。つまり、書き込み及び削除が実行可能な論理ユニットに対するものであるか否かによって分岐する。論理ユニット番号「00」若しくは「01」に対するものであればS245に進み、そうでない場合すなわち論理ユニット番号「10」に対する指令であればS220に進む。
【0053】
S220では、LED23を点灯させる。続くS225では、ホスト11から指定されたフラッシュメモリ25のブロックにデータを書き込む。またはホスト11から指定されたフラッシュメモリ25のブロックのデータを削除する。なお書き込み又は削除を実行する際は、メモリ情報記憶部21cに記憶されているフラッシュメモリ25の各メディア(領域)毎の物理ブロック番号論理ブロック番号変換テーブル(図示せず)を用い、ホスト11から指定されたブロック番号を論理ブロック番号37としてその論理ブロック番号37に該当する物理ブロック番号39によって特定されたフラッシュメモリ25のブロックに対してデータの書き込み又は削除を実行する。尚ここでいう番号とはアドレスのことである。
【0054】
続くS230では、LED23を消灯させる。そして、S235ではS225の処理が正常に完了したか否かによって分岐する。正常に完了していればアクセス処理を終了し、正常に完了していなかったらS240に進む。
【0055】
S240では、S225の処理が正常に完了しなかった旨をホスト11に通知してアクセス処理を終了する。
【0056】
一方、S215で、書き込み又は削除の指令が論理ユニット番号「00」若しくは「01」に対する指令であると判定された際に進むS245では、許可されていない指令としてホスト11にエラー発生の旨を通知する。
【0057】
また、S210で読み出しの指令であったと判定されて進むS250では、LED23を点灯させ、続くS255ではホスト11から指定されたフラッシュメモリ25のブロックのデータを読み込み、読み込んだデータをホスト11に送る。なお、データを読み出す際は、メモリ情報記憶部21cに記憶されているフラッシュメモリ25の各メディア(領域)毎の物理ブロック番号論理ブロック番号変換テーブルを用い、ホスト11から指定されたブロック番号を論理ブロック番号37としてその論理ブロック番号37に該当する物理ブロック番号39によって特定されたフラッシュメモリ25のブロックからデータを読み出す。
【0058】
続くS260では、LED23を消灯させる。そして、S265ではS255の処理が正常に完了したか否かによって分岐する。正常に完了していればアクセス処理を終了し、正常に完了していなかったらS270に進む。
【0059】
S270では、S255の処理が正常に完了しなかった旨をホスト11に通知してアクセス処理を終了する。
【0060】
このようにアクセス処理が実行されるため、故意にあるいは誤って消去されると問題のある情報(ソフトウェア、データ)を論理ユニット番号「00」若しくは「01」の領域に記憶させておけば、そのソフトウエアが消去されることを未然に防止できる。尚、上記フローにおいて、書き込み又は削除指令がなされたときに、コントローラ21は、そのコマンドが対象としている論理ユニット番号を根拠に書き込み又は削除指令を実行するか判断している。これはその判断プログラム(サブルーチンプログラム)が、論理ユニット番号に対応付けられている領域のフォーマット(書き込み及び削除が許容されるか)を基に構成されているという事実に基づくものである。
【0061】
本願USBストレージデバイス17は、後述するメディア変更、ドライブ変更が予定されたものであり、これら変更に伴い、論理ユニット番号に対応付けられる領域のフォーマットが変更される場合がある。
【0062】
そのときは、該変更に伴い、前記判断用サブルーチンプログラムが変更される。そして、爾後のアクセス処理においては変更されたプログラムに基づき、書き込み、削除の是非の判断がなされる。これにより、情報の読み出し、書き込み、又は削除が有効に実行されるが、このとき、さらに慎重を期すべく、その論理ユニットに対応する領域のフォーマット情報を確認し(書き込み、削除が許容された領域であるかを確認)、当該処理の判断を実行するようにしてもよい。
【0063】
このようにすれば、消去されると問題のあるソフトウェア、データなどをより安全に保護することができる。なおここでいうフォーマット情報は、その領域が書き込み、削除が許容されたものであるかの判断基準となるものであればよく、その領域を構成する具体的なフォーマットの情報の他、INQUIRY情報中のデバイスタイプコード等、一義的にそのフォーマットを判断できるもの(等価なもの)であればどのような情報でもよく、それらを含む概念として定義される。
【0064】
(d)メディア変更
次に本発明の特徴であるメディア(領域)変更について詳述する。メディア変更とは、各ドライブにマウントするメディアの入れ替えをいう。具体的には、論理ユニット番号に対応付けする領域の変更である。
【0065】
(メディア変更方法1)
次にメディア変更を行う方法例1について説明する。本例は、メディア変更ツール(ソフトウエア)をホスト11側にインストールして行うものである。図13(a)に示すように、ホスト11に本USBストレージデバイス17を装着した状態で、前記変更ツールからデバイスに対して変更情報を送り、これを基にコントローラ21がその設定を変更するものである。
図11はメディア(領域)変更ツールの操作画面例である。
【0066】
図11の左側には、現状の設定内容がユーザの確認のために表示されている。図11の右側は、メディア変更を設定する画面である。画面例では、ドライブ2(CD−ROMドライブ)にマウントするメディアをメディア2からメディア3に変更するとともに、さらに、ドライブ3(リムーバブルドライブ)にマウントしていたメディア4をアンマウントすることが選択されている。図11の「メディア変更」ボタンをクリックすると、該変更が確定する。
【0067】
以下、本方法例1によるメディア変更の手順(デバイス内部でコントローラ21が実行する処理)について、図14のフローチャートを用いて説明する。尚、OSから見たドライブと該ドライブにマウントされているメディアの関係は、変更前は図12(a)の状態である。
【0068】
まずSCSIベンダーコマンドにて、ホスト11よりメディア入れ替えをデバイスに通知する。このコマンドには、メディア変更を表すオペレーションコードとともに、どのドライブに対するものであるか、どのメディアに変更するかの情報が含まれる。デバイスはこのコマンドを受けると、このコマンドを解読しメディア変更コマンドであることを認識する(S310)。
【0069】
そして指示されたメディア変更を実行するために、メディア入れ替えを指示されたドライブにマウントされているメディアをアンマウントする(S320)。即ち、ドライブ2(CD−ROMドライブ2)にマウントしているメディア2をアンマウントするとともに、ドライブ3(リムーバブルディスク1)にマウントされているメディア4をアンマウントする。
【0070】
次にホスト11はデバイスに対し、一定時間ごとに各ドライブにどのメディアがマウントされているか確認するコマンドを発行している(Test Utility Readyコマンド)。デバイスはこれを受けて、ドライブ2(CD−ROMドライブ2)及びドライブ3(リムーバブルディスク1)にはマウントしているメディアがないことをホスト11に通知する(S330)。
【0071】
ホスト11はドライブ2とドライブ3にメディアを入れることをコマンドで要求する(Request Senseコマンド)。デバイスはこのコマンドを受領すると、先のコマンドで指示されたメディアの変更を実行する(S340)。即ち、ドライブ2(CD−ROMドライブ2)にメディア3をマウントする。ドライブ3(リムーバブルディスク1)には何もマウントしない。ドライブ2のマウントが終了したらこれをホスト11に通知する(S350)。
【0072】
これによりホスト11はドライブ3に新たにメディアがマウントされたことを検知し、ドライブ2にRead Capacity/Readコマンドを発行する。デバイスはこのコマンドを受けて、入れ替えたメディアの情報をホスト11に通知する(S360)。そして、メモリ情報記憶部21cにおいて記憶している内容を、変更された内容に基づき更新する(S370)。これでメディア変更処理が完了する。
【0073】
図12(b)は、変更後のフラッシュメモリ25内部の各領域とOSの認識状態の対応関係を表している。図示するように、CD−ROMドライブ2からメディア2がアンマウントされ、代わりにメディア3がマウントされているので、CD−ROMドライブ2はメディア2との対応関係が解除され新たにメディア3との対応関係が形成されている。さらにリムーバブルドライブ1からメディア4がアンマウントされたので、リムーバブルドライブ1とメディア4の対応関係が解除されている。しかし、リムーバブルドライブ1自体の設定は解除されていないので(即ち論理ユニット番号「10」の設定はそのまま維持されている)、OSは以前同様にリムーバブルドライブ1を認識し、これによりモニターには当該リムーバブルドライブ1を表すアイコンが表示される。但し、マウントしていたメディアの関係は解除されたので、アイコンをクリックしても、何のファイル情報も表示されない。即ちメディア変更後のリムーバブルドライブ1は、メディアのマウントされていない空のドライブとして認識される。
【0074】
(メディア変更方法例2)
次にメディア変更を行う方法例2について説明する。本方法例2は、デバイスに設けられた手動式スイッチ(外部スイッチ)によりメディアの入れ替えを行うものである。この変更を実行するための構成を図13(b)に示す。
【0075】
図13(b)に示すように、状態1と状態2に、スライド式スイッチにより切り替え可能になっている。図13(b)において、スイッチが状態1のときは、図12(a)に図示していると同じ設定状態である。これを状態2に変更すると、上記方法例1の場合同様、図12(b)に示す状態に変更されるものとする。図13(b)に示すように、ホスト11に本USBストレージデバイス17を装着した状態で、外部スイッチからデバイスに対してメディア変更を実行すべきことを通知し、これを契機にコントローラ21がその設定を変更するものである。外部スイッチはデバイスのコントローラ21にGPIOなどで接続することができる。
【0076】
以下、本方法例2によるメディア変更の手順(デバイス内部でコントローラ21が実行する処理)について、図15のフローチャートを用いて説明する。
【0077】
スイッチが状態2に変更されると、このスイッチの切り替えに伴ってコントローラ21に切り替えを指示する信号が送信され、コントローラ21はスイッチの状態変更を認識する(S410)。するとコントローラ21は予め内蔵しているプログラムに基づき、ドライブ2(CD−ROMドライブ2)にマウントされているメディア2をアンマウントするとともに、ドライブ3(リムーバブルディスク1)にマウントされているメディア4をアンマウントする(S420)。
【0078】
ホスト11はデバイスに対し、一定時間ごとに各ドライブに、どのメディアがマウントされているか確認するコマンドを発行している(Test Utility Readyコマンド)。デバイスはこれを受けて、ドライブ2とドライブ3にはマウントしているメディアがないことをホスト11に通知する(S430)。
【0079】
続いてホスト11はデバイスに対し、ドライブ2(CD−ROMドライブ2)とドライブ3(リムーバブルディスク1)にメディアをマウントすることをコマンドで要求する(Request Senseコマンド)。これを受けデバイスは、ドライブ2(CD−ROMドライブ2)にメディア3をマウントする(S440)。ドライブ3(リムーバブルディスク1)には何もマウントしない。マウント処理が終了したらこれをホスト11に通知する(S450)。これによりホスト11は、ドライブ2(CD−ROMドライブ2)に新たにメディアがマウントされたことを検知する。
【0080】
そしてホスト11は、ドライブ2(CD−ROMドライブ2)にRead Capacity/Readコマンドを発行する。デバイスはこれを受けて、入れ替えたメディアの情報をホスト11に通知する(S460)。そして、メモリ情報記憶部21cにおいて記憶している内容を、変更された内容に基づき更新する(S470)。以上でメディアの入れ替え処理が完了する。
【0081】
スイッチが状態2から状態1に切り替わったときは、コントローラ21は内蔵している他のプログラムに基づき、スイッチが状態1のときに設定されているメディアマウント状態に復帰する手順を執る。尚、手動式の外部スイッチの変わりに、指紋認証、無線認証、又はFelica認証用の装置をスイッチング手段として用いてもよい。
【0082】
(e)ドライブ変更
次に、本発明のさらに他の特徴であるドライブ変更について説明する。ドライブ変更とは、本USBストレージデバイス17がOSから認識されるドライブ数の変更やドライブの種類を変更することをいう。以下、ドライブ変更について図面を用いて説明する。
【0083】
ドライブ変更は、メディア変更の場合同様、図13(a)、図13(b)のシステム構成で実行できる。但し、図13(a)のシステム構成の場合は、専用のドライブ変更ツール(ソフトウエア)をホスト11にインストールして実行する。
【0084】
(ドライブ変更方法1)
以下、ドライブ変更を行う方法例1について説明する。本例は、ドライブ変更ツール(ソフトウエア)をホスト11にインストールして行うものである。
【0085】
図17はドライブ変更ツール(ソフトウエア)の操作画面例である。図17(a)において、現在設定されているドライブ数が3であることが、ユーザの確認のために表示されている。図17(a)では、このドライブ数を3から1に変更する様子を示している。
【0086】
ドライブ数1を入力して、「次へ」ボタンをクリックすると、ドライブ数を1にすることが確定し、図17(b)の操作画面に移行する。新たに設定されたドライブ数が1であるから、ここではドライブ1のドライブ設定(ドライブの種類の選定)と、該ドライブ1へマウントするメディアの選択が入力項目となっている。
【0087】
ドライブ設定において、「選択」ボタンをクリックすると、プルダウン式に、「CD−ROMドライブ」と「リムーバブルドライブ」という2つのメニューが表示される。画面上では、「CD−ROMドライブ」が選択されている。マウントメディア選択においては、「選択」ボタンをクリックすると、同じくプルダウン式に、「メディア1」、「メディア2」、「メディア3」がメニューとして表示される。「メディア4」がメニュー表示されないのは、メディア4はリムーバブルドライブ用のメディアだからである。
【0088】
画面では、メディア1が選択されている。これは、変更前の状態のCD−ROMドライブ2とリムーバブルドライブ1が削除されたことに等しい。これに対し、CD−ROMドライブ1にマウントするメディアを、メディア2若しくはメディア3に選択してもよい。即ち、ドライブ変更とメディア変更を同時に行うことも可能である。こ本画面例の場合は、メディア変更を行ったCD−ROMドライブが一つだけ存在することになる。ここで、「ドライブ変更」ボタンをクリックすると、先の手順で設定したドライブ変更が確定する。
【0089】
以下、本方法例1によるドライブ変更の手順について説明する。まずSCSIベンダーコマンドにて、ホスト11よりドライブ変更をデバイスに通知する。
【0090】
このコマンドには、ドライブ変更を表すオペレーションコードとともに、当該変更がドライブ数の増加かであるか削減であるか、削減であればどのドライブを削除するかの情報が含まれている。本例の場合は、リムーバブルドライブ1を削除せよという内容のコマンドである。このコマンドを受けた後、これを解釈し、リムーバブルディスク1を削除せよという内容のコマンドであることを認識する。
【0091】
そして、指示されたデバイス変更を実行するために、ドライブ数、即ち論理ユニット数を3から1へ変更する。すると、論理ユニット番号は、「00」のみになり、この論理ユニット番号とメディアの対応関係は変更されていないので、ドライブ2とドライブ3を削除するという内容を、メモリ情報記憶部21cにおいて更新する。これでデバイス内におけるデバイス数の変更処理は終了する。
【0092】
尚、上記デバイス変更をホスト11に反映させるには、本デバイスをホスト11から一旦抜き取る必要がある。爾後ホスト11が本デバイスを再起動する際には、上述した起動処理に係るコマンドが発行されるが、上記更新された内容は、このコマンドに対する応答や、ホスト11がデバイスにアクセス(情報の読み出しや書き込み)するときに反映される。
【0093】
図18は、ドライブ変更前と前記手順で変更した後における、フラッシュメモリ25内部の各領域とOSの認識状態の対応関係を表している。図18(a)は変更前、図18(b)は変更後のものである。変更前は、図12(a)と同一である。図18(b)では、ドライブ変更によってメディア1をマウントしているCD−ROMドライブ1のみがOSから認識されるようになったことを示している。即ち、ドライブ数変更により、CD−ROMドライブ2とリムーバブルドライブ1が解除されたため、CD−ROMドライブ2とリムーバブルドライブ1のアイコンがモニターから消失している。
【0094】
(ドライブ変更方法2)
次にドライブ変更を行う方法例2について説明する。本方法例2は、図13(b)に示すような、デバイスに設けられた手動式スイッチ(外部スイッチ)によりデバイスの変更を行うものである。スイッチが状態1のときは、前述した図18(a)の場合と同じ設定状態であり、スイッチを2の状態に変更すると、図18(b)の状態に変更されるものとする。
【0095】
以下、本方法例2によるデバイス変更の手順について、外部スイッチが、状態1から状態2に変更される場合について説明する。
【0096】
スイッチが状態2に切り替えられると、状態2に切り替えられたことを示す信号がコントローラ21に送信される。するとコントローラ21は、該コントローラ21が予め内蔵しているドライブ設定変更プログラムに基づき、論理ユニット数を3から1に変更する。このプログラムには、メディア2をマウントしたCD−ROMドライブ2(ドライブ2)とメディア4をマウントしたリムーバブルドライブ1(ドライブ3)を削除する手順が含まれている。この処理により、メモリ情報記憶部21cのドライブ管理テーブル中、ドライブ2(論理ユニット番号「01」)とドライブ3(論理ユニット番号「10」)を削除する。
【0097】
これでデバイス内におけるデバイス数の変更処理が終了する。尚、上記デバイス変更をホスト11に反映させるには、本デバイスをホスト11から一旦抜き取る必要がある。爾後ホスト11が本デバイスを再起動する際には、上述した起動処理に係るコマンドが発行されるが、上記更新された内容は、このコマンドに対する応答や、ホスト11がデバイスにアクセス(情報の読み出しや書き込み)するときに反映される。
【0098】
スイッチが状態2から状態1に切り替わったときは、内蔵する他のプログラムにより、元の状態に復帰する手順が執られる。
【0099】
(発明の効果)
上記の通り、本発明では、USBストレージデバイス17の記憶領域を複数の領域に区分し、OSに認識させるドライブ数、並びに、該ドライブに前記領域のいずれを対応付けするかをユーザが選択可能に構成したので、区分された領域の数に対してOSに認識させるライブの数を可変にできる。また、OSに認識させ得る領域を可変にすることができ、例えば、ユーザAには領域1に入っているアプリケーションソフトのみ使用可能にし、ユーザBには領域2に入っているアプリケーションソフトのみ使用可能にするなど、より自由度のあるデバイスを提供できる。
【0100】
また、USBストレージデバイス17を外部装置に装着した際、オートランするCD−ROMドライブの設定を解除し(OSから認識できないようにする)、ディスク領域に即アクセスすることを可能にするなど、より利便性のあるデバイスを提供できる。
【0101】
(変形例)
また、実施例における操作画面51例で各メディア(領域)に設定するCD−ROMフォーマットは、CDイメージデータのフォーマットとしてISO9660又はHFSの何れかで設定できるが、さらに、Audio
CD、CD TEXT、Mixed CD、Enhanced CD、ビデオCD、ブータブルCD等のフォーマットが選択できるようになっていてもよい。また記録方式も、ディスクアットワンス、トラックアットワンス、セッションアットワンス、パケットライトなどの方式が指定できるようになっていてもよい。また、情報の書き込み、削除を不可とする領域のフォーマットは、CD−ROMのフォーマットの他、情報の読み出しのみを予定したものであれば、DVD−ROM用のフォーマット、その他今後出現するフォーマットでもよい。
【0102】
また、ユーザが設定するドライブをUSBマスストレージクラスドライバのSCSIコマンドセットに定義された論理ユニット番号として設定したが、仮想HUB(HUBエミュレーションソフト)のデバイス番号に対応させることができることはいうまでもない。
【図面の簡単な説明】
【0103】
【図1】実施例のUSBストレージデバイスの構成を示すブロック図である。
【図2】メモリ領域の構成例を表す図である。
【図3】(a)はメディア変更の操作画面例(第1ステップ)である。(b)は第1ステップ終了時の管理領域のメディア管理テーブルの内容である。
【図4】(a)はメディア変更の操作画面例(第2ステップ)である。(b)は第2ステップ終了時の管理領域のメディア管理テーブルの内容である。
【図5】(a)はメディア変更の操作画面例(第3ステップ)である。(b)は第3ステップ終了時の管理領域のメディア管理テーブルとドライブ管理テーブルの内容である。
【図6】(a)はメディア変更の操作画面例(第4ステップ)である。(b)は第4ステップ終了時の管理領域のメディア管理テーブルとドライブ管理テーブルの内容である。
【図7】メディア変更終了時にフラッシュメモリの各領域に指定されたファイルが書き込まれる様子を模式的に表した図である。
【図8】メディア変更終了後のフラッシュメモリ内部の各領域とOSの認識状態の対応関係を表した図である。
【図9】本発明USBストレージデバイスの起動処理のフローチャートである。
【図10】本発明USBストレージデバイスのアクセス処理のフローチャートである。
【図11】メディア変更ツールの操作画面例である。
【図12】(a)はメディア変更前のフラッシュメモリ内部の各領域とOSの認識状態の対応関係を表した図である。(b)はメディア変更後のフラッシュメモリ内部の各領域とOSの認識状態の対応関係を表した図である。
【図13】(a)はメディア変更を行うシステムの第1の構成例である。(b)はメディア変更を行うシステムの第2の構成例2である。
【図14】メディア変更方法例1のフローチャートである。
【図15】メディア変更方法例2のフローチャートである。
【図16】ドライブ変更ツールの操作画面例である。
【図17】(a)はドライブ変更前のフラッシュメモリ内部の各領域とOSの認識状態の対応関係を表した図である。(b)はドライブ変更後のフラッシュメモリ内部の各領域とOSの認識状態の対応関係を表した図である。
【符号の説明】
【0104】
11…ホスト、12…オペレーションシステム、13…ディスクドライブドライバ、14…USBマスストレージクラスドライバ、15…USBホストコントローラ、16…USBバス、17…USBストレージデバイス、19a…USBインターフェース、19b…シリアルパラレル変換部、19c…パケット生成分解部、19d…USBバスパワー制御部、21…コントローラ、21a…メモリ制御部、21b…USBインターフェース制御部、21c…メモリ情報記憶部、21d…LED制御部、23…LED、25…フラッシュメモリ
【特許請求の範囲】
【請求項1】
USBストレージデバイスの記憶領域を3つ以上の領域に区分し、OSに認識させるドライブ数、並びに、該ドライブに前記領域のいずれを対応付けするかをユーザが選択可能に構成したことを特徴とするUSBストレージデバイス。
【請求項2】
少なくとも一つのドライバはCD−ROMドライブであることを特徴とする請求項1記載のUSBストレージデバイス。
【請求項3】
リムーバブルディスクドライブをさらに有することを特徴とする請求項2記載のUSBストレージデバイス。
【請求項1】
USBストレージデバイスの記憶領域を3つ以上の領域に区分し、OSに認識させるドライブ数、並びに、該ドライブに前記領域のいずれを対応付けするかをユーザが選択可能に構成したことを特徴とするUSBストレージデバイス。
【請求項2】
少なくとも一つのドライバはCD−ROMドライブであることを特徴とする請求項1記載のUSBストレージデバイス。
【請求項3】
リムーバブルディスクドライブをさらに有することを特徴とする請求項2記載のUSBストレージデバイス。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図16】
【図17】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図16】
【図17】
【図14】
【図15】
【公開番号】特開2007−48073(P2007−48073A)
【公開日】平成19年2月22日(2007.2.22)
【国際特許分類】
【出願番号】特願2005−232311(P2005−232311)
【出願日】平成17年8月10日(2005.8.10)
【出願人】(594096966)株式会社ハギワラシスコム (32)
【Fターム(参考)】
【公開日】平成19年2月22日(2007.2.22)
【国際特許分類】
【出願日】平成17年8月10日(2005.8.10)
【出願人】(594096966)株式会社ハギワラシスコム (32)
【Fターム(参考)】
[ Back to top ]