JP4544188B2 - ドライブ構成設定プログラム - Google Patents

ドライブ構成設定プログラム Download PDF

Info

Publication number
JP4544188B2
JP4544188B2 JP2006095511A JP2006095511A JP4544188B2 JP 4544188 B2 JP4544188 B2 JP 4544188B2 JP 2006095511 A JP2006095511 A JP 2006095511A JP 2006095511 A JP2006095511 A JP 2006095511A JP 4544188 B2 JP4544188 B2 JP 4544188B2
Authority
JP
Japan
Prior art keywords
storage unit
lun
command
writer
reader
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006095511A
Other languages
English (en)
Other versions
JP2007272430A (ja
Inventor
文敏 宇野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2006095511A priority Critical patent/JP4544188B2/ja
Priority to US11/689,057 priority patent/US7975101B2/en
Publication of JP2007272430A publication Critical patent/JP2007272430A/ja
Application granted granted Critical
Publication of JP4544188B2 publication Critical patent/JP4544188B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/409Mechanical coupling

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

本発明はドライブ構成設定プログラムに関し、特に、周辺装置側における特別な変更を要さずに、情報処理装置に接続された周辺装置がユーザにとって認識し易く、ユーザの使い勝手を良好にすることができるドライブ構成設定プログラムを提供することに関するものである。
近年、フラッシュメモリ等を搭載したカード型の記憶メディア(以下単に「メディア」という)が普及している。この種のメディアとしては、例えばコンパクトフラッシュ(登録商標。以下同様。以下「CF」という。)、スマートメディア(登録商標。以下同様。以下「SM」という。)、メモリースティック(登録商標。以下同様。以下「MS」という。)、SDメモリーカード(登録商標。以下同様。以下「SD」という。)、マイクロドライブ(登録商標。以下同様。)、マルチメディアカード(登録商標。以下同様。)、XDピクチャカード(登録商標。以下同様。)、メモリースティックDUO、ミニSD(登録商標。以下同様。)など、様々な種類のものがある。このようなメディアは、駆動装置が必要ないこと等の利点から、消費電力や携帯性が重視されるデジタルカメラ、ノートPC、携帯電話などを中心に利用されている。
そして、PC等からこれらのメディアに対してデータのリード/ライトを行うための周辺装置であるメモリカードリーダ/ライタも種々のものが知られており、メディアを装着するスロットを一つ備えたシングルスロットタイプ、複数のスロットを備えて複数のメディアに対するデータのリード/ライトが可能なマルチスロットタイプ、更には、スロットに加えて内部にフラッシュメモリを備えたフラッシュメモリ内蔵タイプなどがある。
図16は、従来のマルチスロットタイプの一例であるマルチリーダ/ライタ200の斜視図である。図16(a)に示すように、マルチリーダ/ライタ200は、その前面に、CF挿入用の第1スロット211と、SM挿入用の第2スロット212と、MS挿入用の第3スロット213と、SD挿入用の第4スロット214とを備えている。そして背面には、図16(b)に示すように、USBケーブルを接続するためのUSB端子が設けられている。
一方、こうしたマルチリーダ/ライタ200を例えばPCに接続して、PCからそのメモリカードリーダ/ライタが備えるスロットにアクセス(換言すれば、そのスロットに装着されるメディアにアクセス)するためには、そのアクセスするためのソフトウェア(いわゆるドライバソフト)をPCが備えている必要があるが、PCが備えるOS(Operating
System)の種類によって、アクセス可能なスロットの数の制限を受ける。
例えばWindows98SE(Windowsは登録商標。以下同様。)やWindows2000などの比較的古いバージョンのOS(以下「下位OS」という)では、シングルスロットタイプのメモリカードリーダ/ライタに対応可能なドライバソフトのみ標準でインストールされているのに対し、例えばWindowsMeやWindowsXPなどのOS(以下「上位OS」という)では、シングルスロットタイプに加え、マルチスロットタイプにも対応可能なドライバソフトが標準でインストールされている。
そのため、下位OSを備えたPCにマルチリーダ/ライタ200を接続しても、下位OSにインストールされたドライバソフトでは、複数のスロットを同時に認識することができないので、各スロットにアクセスするために、2つのスロット、及び各スロット相互間における優先度を設定する優先度選択スイッチを備え、この優先度選択スイッチによって選択されたいずれか一方のスロットにのみアクセス可能となるよう構成されたマルチリーダ/ライタが知られている。
このマルチリーダ/ライタは、PCのUSB(Universal Serial
Bus)端子に接続されると、PCのOSが備えるPLUG AND PLAY機能によって必要な設定が自動的に行われる。このとき、マルチリーダ/ライタ内のファームウェアは、優先度選択スイッチの設定に基づいて、PCのOSに対してスロットの優先順位を報知する。
このとき、PCに下位OSがインストールされている場合は、シングルスロットタイプのメモリカードリーダ/ライタ(以下「シングルスロットリーダ/ライタ」という)に対応するドライバソフトが標準でインストールされている。そのため、その場合は、優先度選択スイッチにおいて優先度が高く設定されているスロットのみが認識され、そのスロットに装着されているメディアに対してのみ、PCからリード/ライトが可能となる。
一方、PCに上位OSがインストールされている場合は、マルチリーダ/ライタに対応するドライバソフトが標準でインストールされている。このドライバソフトは、複数のスロットに対してそれぞれドライブの割り当てを行い、各スロットに装着されている各メディアに対してそれぞれ個別(独立)にリード/ライトを可能とするためのドライバソフトであり、これが標準でインストールされている上位OSの場合は、優先度選択スイッチにより設定した優先順位に従い、複数のスロットに各々ドライブの割り当てを行う。
例えば、SM用のスロットとCF用のスロットとがあり、優先度選択スイッチにおいてSM用のスロットを優先とすると、OSにおいて、AドライブがFDD(フロッピー(登録商標)ディスクドライブ)に、CドライブがHDD(ハードディスクドライブ)にそれぞれ既に割り当てられている場合には、SM用のスロットにDドライブが割り当てられ、CF用のスロットにEドライブが割り当てられる。逆に、優先度選択スイッチにおいてCF用のスロットを優先とすると、そのCF用のスロットにDドライブが割り当てられ、SM用のスロットにEドライブが割り当てられる。
そして、下位OSの場合、優先度選択スイッチを切り替えてからPLUG
AND PLAY機能を再度動作させることにより、ドライブ割り当てを変更することができる。ここで、PLUG AND PLAY機能を再度動作させるとは、具体的にはPCのOSの再起動又はUSBケーブルをPCのUSB端子から一旦抜き取った後、再度PCのUSB端子に装着して装着するという再度の挿抜を意味する。
また、上位OSの場合も、優先度選択スイッチを切り替えてからPLUG
AND PLAY機能を再度動作させることにより、各スロットに対するドライブ割り当て(ドライブレター)を変更することができる。
尚、上記のドライバソフト(マルチリーダ/ライタに対応)は、複数のスロットに加えてフラッシュメモリが内蔵されたマルチリーダ/ライタ、更には、シングルスロットタイプではあるものの内部にフラッシュメモリが内蔵されたメモリカードリーダ/ライタ、などを使用する際も、各スロット及び内蔵フラッシュメモリに対してそれぞれドライブを割り当て、各スロットに装着されている各メディア及び内蔵フラッシュメモリに対してそれぞれ個別(独立)にリード/ライトを可能とするためるために必要となるものである。
そのため、以下の説明では、上記のように内蔵フラッシュメモリを備えたものを含む、マルチリーダ/ライタに対応したドライバソフトが必要なメモリカードリーダ/ライタを総称して「マルチリーダ/ライタ」ともいうこととし、また、そのドライバソフトを「マルチ対応ドライバ」という。
昨今、上述した多種多様のメモリ(メディア)が製品化されており、これらのメディアをアダプタ無しで直接スロットに装着してデータを読み書きできるマルチリーダ/ライタを製品化しようとすると、例えば下位OSに対応するために、優先度選択スイッチも更に多段切り替え可能なものが必要となり、装置構成が非常に複雑になる。
また、上位OSを備えたPCに接続して使用する場合は、全てのスロットに対して個々にドライブの割り当てが行われる。そして、優先度選択スイッチを備えた上記マルチスロットリーダ/ライタを含め、従来から知られている一般的なマルチリーダ/ライタでは、上記のように各スロットそれぞれにドライブが割り当てられることに起因して、種々の問題が生じる。
具体的には、例えばCF用、SM用、MS用、SD用の各スロット、及び内蔵フラッシュメモリを備えたマルチリーダ/ライタと、上位OSを備えたPCとをUSB接続すると、PCのOSにおいて、例えば、AドライブがFDDに、CドライブがHDDに、DドライブがCDD(CD−ROM用ドライブ)に、Eドライブが内蔵フラッシュメモリに、FドライブがCF用のスロットに、GドライブがSM用のスロットに、HドライブがMS用のスロットに、IドライブがSD用のスロットに、それぞれ割り当てられる。
図17は、従来のマルチリーダ/ライタがUSB接続されたPCに表示される、ドライブ構成を表示する画面の一例を示す図である。マルチリーダ/ライタの内蔵フラッシュメモリ及び各スロットに対応した各ドライブE,F,G,H,Iは、一般に、PCでは全て個別のリムーバブルディスクとして認識される。そして、ドライブ構成を表示する画面(Windowsでは「マイコンピュータ」)で全て「リムーバブルディスク」として表示される。
これにより、以下の(1)〜(4)のような問題が生じてユーザの使い勝手を悪化させるおそれがある。
(1)多数のリムーバブルディスクがディスプレイ上に表示されると、スロットにメディアを装着したとき、今入れたメディアがどのドライブなのか判らず対応に苦慮する。
(2)例えば企業内における規則等でネットワークドライブのアサインを多数要求されている場合、リムーバブルディスク用のドライブレター(上記例ではE,F,G,H,I)を確保するのが困難な場合がある。
(3)HDDを多数搭載している場合、或いは多数のパーティションを切って使用している場合などは、それだけでも既に多くのドライブレターが割り振られるため、それに加えて更にリムーバブルディスク用のドライブレターを多数確保するのは困難となる場合がある。Windowsでは、AからZまでの26ドライブしかドライブレターを割り振ることができないためである。
(4)「マイコンピュータ」内にリムーバブルディスク用のドライブが多数表示されること自体、邪魔に感じられる場合がある。
そして、例えば、上記例示した8種類のメディア及びPCカードをアダプタ無しで装着可能なスロットを備えると共にフラッシュメモリも内蔵したマルチリーダ/ライタ(即ち合計10種類のメディアに対するデータ読み書きが可能)の場合、PCでは8つの独立したリムーバブルディスクが設定(表示)されることになり、メディアの種類が多いほど上記問題は顕著となる。なお、合計10種類のメディアに対してPCで設定されるリムーバブルディスクが8つになるのは、CFとマイクロドライブ、及び、SDとマルチメディアカードは、夫々互換性のある規格であって共通のスロットで対応できるからである。
そこで、このような問題点を解決するための1つの方法として、例えば使用頻度が高いメディアについてはPCから独立ドライブとして認識させ、使用頻度の低いメディアについては例えば1つのドライブレターを共有させる(或いはPCから認識すらさせない)ように構成されたマルチリーダ/ライタとパーソナルコンピュータ(以下、PCという)とからなる情報処理システムが提案されている(例えば、特許文献1参照)。
図18は、特許文献1に記載の発明が適用されたマルチリーダ/ライタが接続されたPCにおいて表示される、ドライブ構成を表示する画面の一例を示す図である。図18に示すように、例えば、CFとSDとで1つのドライブレター(F)を共有させ、SMとMSとで1つのドライブレター(G)を供給させる。
さらに、メディアの種類に対するドライブレターの割り当てを、ユーザの好みに応じて任意に設定するためのアプリケーションソフトをPCに設け、一方、マルチリーダ/ライタは、PCにおいてされた設定を読み込み、その設定に従って動作する。このようにすれば、ユーザは、例えば、使用頻度の低いメディアを1つのドライブにまとめてドライブレターを節約することにより、「マイコンピュータ」の表示をすっきりさせたり、頻繁に使うメディアについては独立して1つのドライブレターを割り当てるようにするといったことが可能になり、ユーザの使い勝手の良好な情報処理システムの提供が可能となる。
特開2005−216141号公報
しかしながら、上述した情報処理システムでは、PCにおいて設定されたドライブレターの割り当てに従って動作するために、マルチリーダ/ライタ側のハードウェアまたはファームウェアに変更が必要である。その結果、ハードウェアやファームウェアの変更はソフトウェアの変更に比べて困難であるため製品のコストが高くなるという問題点、また、既に販売済みであり現在ユーザにより使用中のマルチリーダ/ライタには適用できないという問題点があった。
本発明は上記課題に鑑みなされたものであり、周辺装置側における特別な変更を要さずに、情報処理装置に接続された周辺装置がユーザにとって認識し易く、ユーザの使い勝手を良好にすることができるドライブ構成設定プログラムを提供することを目的とする。
請求項1記載のドライブ構成設定プログラムは、周辺装置と接続する接続手段と、その接続手段により接続された周辺装置の記憶ユニットを管理するためのOS(オペレーティングシステム)とを備えた情報処理装置において実行されるプログラムであって、前記周辺装置は、データを記憶可能なメディアを複数種類装着可能であって、前記複数種類のメディアのいずれかがそれぞれ割り当てられた複数の記憶ユニットと、前記複数の記憶ユニットのいずれかを指定したコマンドを受信するコマンド受信手段と、そのコマンド受信手段により受信したコマンドで指定される記憶ユニットに割り当てられたメディアとコマンド送信元装置との間のデータ通信を可能にするアクセス手段とを備えるものであって、前記ドライブ構成設定プログラムは、前記OSから、前記周辺装置における記憶ユニットの総数の問い合わせを受けた場合、前記記憶ユニットの少なくとも1以上が対応付けられると共に前記周辺装置の記憶ユニットの総数よりも少ない数に設定された仮想ユニットの総数を、前記OSに返却する返却ステップと、前記返却ステップにより返却した前記仮想ユニットの総数に基づいて、前記OSから前記仮想ユニットのいずれかを指定したコマンドが発行されると、そのコマンドで指定された仮想ユニットに対応付けられる記憶ユニットのうち、割り当てられたメディアが前記周辺装置に装着中である記憶ユニットをアクセス可能記憶ユニットとして登録するアクセス可能記憶ユニット登録ステップと、前記OSから発行されたコマンドにおける仮想ユニットの指定を、前記アクセス可能記憶ユニット登録ステップにより登録されたアクセス可能記憶ユニットの指定に変更して前記周辺装置に出力するコマンド変更ステップとを前記情報処理装置に実行させる。
請求項2記載のドライブ構成設定プログラムは、請求項1記載のドライブ構成設定プログラムにおいて、前記OSからコマンドが発行されると、そのコマンドで指定された仮想ユニットに対応付けられるアクセス可能記憶ユニットが、前記アクセス可能記憶ユニット登録ステップにより既に登録されているかを判断する登録判断ステップと、その登録判断ステップにより前記アクセス可能記憶ユニットが登録されていないと判断された場合、前記コマンドで指定された仮想ユニットに対応付けられる記憶ユニットのうち、割り当てられたメディアが前記周辺装置に装着中である記憶ユニットを検出する記憶ユニット検出ステップとを備え、前記アクセス可能記憶ユニット登録ステップは、前記記憶ユニット検出ステップにより検出された記憶ユニットを、アクセス可能記憶ユニットとして登録することを特徴とする。
請求項3記載のドライブ構成設定プログラムは、請求項2記載のドライブ構成設定プログラムにおいて、前記アクセス手段は前記コマンド受信手段により受信したコマンドで指定される記憶ユニットに割り当てられたメディアと前記コマンド送信元装置との間でデータ通信を可能にするものであって、前記記憶ユニット検出ステップは、前記コマンドで指定された仮想ユニットに対応付けられる記憶ユニットのうち、割り当てられたメディアが前記周辺装置に装着中である記憶ユニットを、実際に前記情報処理装置との間でデータ通信可能な記憶ユニットとして検出するものである。
請求項4記載のドライブ構成設定プログラムは、請求項3記載のドライブ構成設定プログラムにおいて、前記周辺装置は、取り外し不可能に装着される内蔵メディアと、メディアが着脱可能に装着されるスロットとを備えるものであって、前記記憶ユニット検出ステップは、前記記憶ユニットのうち、スロットに着脱可能に装着されるメディアが割り当てられた記憶ユニットを優先的に検出するものである。
請求項5記載のドライブ構成設定プログラムは、請求項4記載のドライブ構成設定プログラムにおいて、前記アクセス可能記憶ユニット登録ステップにより、前記内蔵メディアが割り当てられた記憶ユニットがアクセス可能記憶ユニットとして登録された後、所定時間以上経過することに基づいて、前記記憶ユニット検出ステップは、実際に前記情報処理装置との間でデータ通信可能な記憶ユニットを検出するものであり、前記アクセス可能記憶ユニット登録ステップは、前記記憶ユニット検出ステップにより、スロットに装着中のメディアが割り当てられた記憶ユニットが検出された場合、その検出された記憶ユニットを、アクセス可能記憶ユニットとして登録することを特徴とする。
請求項6記載のドライブ構成設定プログラムは、請求項4または5に記載のドライブ構成設定プログラムにおいて、前記アクセス可能記憶ユニットとして登録された記憶ユニットに割り当てられたメディアが前記スロットから取り外されると、その記憶ユニットを前記アクセス可能記憶ユニットとしての登録から解除する解除ステップを備えることを特徴とする。
請求項7記載のドライブ構成設定プログラムは、請求項1から6のいずれかに記載のドライブ構成設定プログラムにおいて、前記情報処理装置は、ユーザが所望する仮想ユニットの数を入力するための操作手段を備え、前記OSから前記周辺装置における記憶ユニットの総数の問い合わせを受けた場合、前記操作手段により入力された数を、前記問い合わせに対する応答として出力するユニット数応答ステップとを備える。
請求項8記載のドライブ構成設定プログラムは、請求項1から7のいずれかに記載のドライブ構成設定プログラムにおいて、前記OSは、前記仮想ユニットを表示する仮想ユニット表示手段として前記情報処理装置を機能させるものであり、前記OSは、前記仮想ユニット表示手段により表示された仮想ユニットのいずれかがユーザにより指定されると、その仮想ユニットを指定したコマンドを発行するものである。
請求項1記載のドライブ構成プログラムによれば、OSにより、仮想ユニットのいずれかを指定したコマンドが発行されると、情報処理装置は、アクセス可能記憶ユニット登録ステップにより、そのコマンドで指定された仮想ユニットに対応付けられる記憶ユニットのうち、実際に情報処理装置との間でデータ通信が可能な記憶ユニットをアクセス可能記憶ユニットとして登録し、コマンド変更ステップにより、コマンドにおける仮想ユニットの指定を、アクセス可能記憶ユニットの指定に変更して周辺装置に出力する。一方、このコマンドを受信した周辺装置では、コマンドにおいて指定された記憶ユニットと情報処理装置との間のデータ通信を可能とする。よって、情報処理装置を操作するユーザは、情報処理装置に接続された周辺装置を、実際の記憶ユニットの数よりも少ない数に設定された仮想ユニットとして認識することができ、周辺装置の認識が容易であるという効果がある。また、仮想ユニットのそれぞれにドライブレターを付与する場合であっても、周辺装置の記憶ユニットのそれぞれにドライブレターを付与する場合に比較して、ドライブレターの使用数を節約することができるという効果がある。
さらに、これらの処理がドライブ構成プログラムにより情報処理装置で実行されるので、周辺装置側の変更が不要である。よって、ユーザから見ると、情報処理装置にドライブ構成プログラムをインストールするだけで、手持ちの周辺装置をそのまま使用することができるという効果がある。
請求項2記載のドライブ構成設定プログラムによれば、請求項1記載のドライブ構成設定プログラムの奏する効果に加え、コマンドで指定された仮想ユニットに対応付けられるアクセス可能記憶ユニットが登録されていない場合、情報処理装置は、実際の情報処理装置との間でデータ通信可能な記憶ユニットを検出し、アクセス可能記憶ユニットとして登録するので、データ通信可能な記憶ユニットが存在すれば、確実にアクセス可能記憶ユニットとして登録されるという効果がある。
請求項3記載のドライブ構成設定プログラムによれば、請求項2記載のドライブ構成設定プログラムの奏する効果に加え、割り当てられたメディアが周辺装置において装着中である記憶ユニットが実際に情報処理装置との間でデータ通信可能な記憶ユニットとして検出されるので、実際に装着中のメディアが割り当て有られた記憶ユニットと情報処理装置との間のデータ通信が可能とされるという効果がある。
請求項4記載のドライブ構成設定プログラムによれば、請求項3記載のドライブ構成設定プログラムの奏する効果に加え、記憶ユニット検出ステップは、記憶ユニットのうち、スロットに着脱可能に装着されるメディアが割り当てられた記憶ユニットを優先的に検出するので、着脱可能に装着されるメディアが割り当てられた記憶ユニットと情報処理装置との間のデータ通信も、確実に可能とすることができるという効果がある。すなわち、内蔵メディアは、常に装着中の状態であるため、内蔵メディアが割り当てられた記憶ユニットを優先的に検出することとすると、常に、その記憶ユニットがアクセス可能記憶ユニットとして登録されてしまい、他のメディアが割り当てられた記憶ユニットが、アクセス可能記憶ユニットとして登録される場合がなくなってしまうのである。
請求項5記載のドライブ構成設定プログラムによれば、請求項4記載のドライブ構成設定プログラムの奏する効果に加え、内蔵メディアが割り当てられた記憶ユニットがアクセス可能記憶ユニットとして登録された後、所定時間以上経過することに基づいて、記憶ユニット検出ステップは、情報処理装置との間でデータ通信可能な記憶ユニットを検出するものであるので、スロットに新たにメディアが装着された場合には、その新たに装着されたメディアが割り当てられた記憶ユニットをアクセス可能記憶ユニットとして登録し、情報処理装置との間でデータ通信可能とすることができるという効果がある。
請求項6記載のドライブ構成設定プログラムによれば、請求項4または5に記載のドライブ構成設定プログラムの奏する効果に加え、アクセス可能記憶ユニットとして登録された記憶ユニットに割り当てられたメディアがスロットから取り外されると、その記憶ユニットがアクセス可能ユニットとしての登録から解除されるので、メディアが取り外されたにも拘わらず、その記憶ユニットがアクセス可能記憶ユニットとして継続して登録されることを抑制し、実際にデータ通信が可能な記憶ユニットがアクセス可能記憶ユニットとして登録されるという効果がある。
請求項7記載のドライブ構成設定プログラムによれば、請求項1から6のいずれかに記載のドライブ構成設定プログラムの奏する効果に加え、周辺装置の記憶ユニットの数に拘わらず、ユーザの好みに応じた数の仮想ユニットを設定することができるという効果がある。
請求項8記載のドライブ構成設定プログラムによれば、請求項1から7のいずれかに記載のドライブ構成設定プログラムの奏する効果に加え、前記OSは、仮想ユニットを表示し、その表示された仮想ユニットのいずれかがユーザにより指定されると、その仮想ユニットを指定したコマンドを発行するものであるので、情報処理装置のユーザは、その情報処理装置に接続された周辺装置を、1以上の仮想ユニットとして視覚的に認識することができると共に、仮想ユニットの数を少なく設定することにより、その認識がより容易となるという効果がある。また、少なく設定された仮想ユニットのいずれかを指定すればよいので、周辺装置との間のデータ通信のための操作がユーザにとってより容易なものとなるという効果がある。
以下、本発明の好ましい実施例について、添付図面を参照して説明する。図1は、本発明のドライブ構成設定プログラムの第1実施例であるフィルタドライバを実行するPC30と、PC30との間でデータ送受信可能に接続されるマルチリーダ/ライタ1(マルチスロットタイプのメモリカードリーダ/ライタ)とを模式的に示す図である。図1に示すように、周辺装置としてのマルチリーダ/ライタ1は、第1外部メモリ(本実施例ではCF)21装着用の第1スロット11と、第2外部メモリ(本実施例ではSM)22装着用の第2スロット12と、第3外部メモリ(本実施例ではMS)23装着用の第3スロット13と、第4外部メモリ(本実施例ではSD)24装着用の第4スロット14とを備えている。
このように、マルチリーダ/ライタ1は、4種類の外部メモリ21,22,23,24を装着可能に4つのスロット11,12,13,14を備えるため、物理的には1台の装置でありながら、各々互いに異なる種類のメモリとの間でデータの読み込み又は書き込みを行う4つの論理ユニットとして機能する。なお、本明細書では、この論理ユニットを、実論理ユニットPUと称する。マルチリーダ/ライタ1では、これら4つの実論理ユニットPUの各々を識別するために、各々の実論理ユニットPUに、論理ユニット番号を付与する。本明細書では、実論理ユニットPUの各々に付与される論理ユニット番号を、実論理ユニット番号(P−LUN)と称する。
本実施例では、外部メモリ21との間でデータの書き込みまたは読み込みを行う実論理ユニットPUにはP−LUN0が付与される。そして、外部メモリ22との間でデータの書き込みまたは読み込みを行う実論理ユニットPUにはP−LUN1が付与される。そして、外部メモリ23との間でデータの書き込みまたは読み込みを行う実論理ユニットPUにはP−LUN2が付与される。そして、外部メモリ24との間でデータの書き込みまたは読み込みを行う実論理ユニットPUにはP−LUN3が付与される。
そして、PC30から、例えば、P−LUN0を記述したSCSIコマンド、すなわち実論理ユニット(P−LUN0)を指定したコマンドを送信することにより、その指定した実論理ユニット(P−LUN0)とPC30との間でデータ通信が可能となるように処理が実行される。このようにして、PC30からマルチリーダ/ライタ1の各スロット11,12,13,14に装着された各外部メモリ21,22,23,24にアクセス可能な情報処理システムが構築されている。
図2を参照して、情報処理装置としてのPC30について説明する。図2は、PC30の電気的構成を示すブロック図である。図2に示すように、CPU31、ROM32、RAM33、ハードディスクドライブ(HDD)34、フレキシブルディスクドライブ(FDD)35、CD−ROMドライブ36、キーボード37、マウス38、ディスプレイ39等を備え、これらがバス30aを介して相互に接続された一般的な構成となっている。さらに、USBI/F40を備え、このUSBI/F40及びUSBケーブル26を介してマルチリーダ/ライタ1に接続されている。
CPU31は、ROM32内の各種プログラム、HDD34にインストールされたOSや各種アプリケーションソフトなどに従って各種処理を実行するが、本実施形態では特に、HDD34にインストールされているOSにより、OSカーネル60(図6参照)としての機能とファイルシステム61(図6参照)としての機能が実現され、さらに、HDD34にインストールされているアプリケーションソフトであるフィルタドライバ62(図6参照)により図8にフローチャートで示す処理を実行するものである。
RAM33は、P−LUN最大値メモリ33aと、OS種類メモリ33bとを備えている。P−LUN最大値メモリ33aは、マルチリーダ/ライタ1から取得したP−LUN(実論理ユニット番号)の最大値(MAX−P−LUN)が格納されるメモリである。OS種類メモリ33bは、OSメモリ34aに格納されたOSが、上位OSであるか下位OSであるかを示す情報を格納するメモリである。ここで、上位OSとは、USB接続された1台の周辺装置(例えば、マルチリーダ/ライタ1)を複数の論理ユニットとして同時に認識し、各々の論理ユニットに独立にアクセスすることが可能なドライバソフトが標準でインストールされているOSのことをいう。一方、下位OSとは、USB接続された1台の周辺装置については1つの論理ユニットのみ認識可能なドライバソフトが標準でインストールされているOSである。
HDD34は、OSメモリ34aと、フィルタドライバメモリ34bと、LUNレイアウトツールメモリ34cと、レジストリ34dとを備えている。本第1実施例では、OSメモリ34aに上位OSが格納されているものとして説明する。なお、OSメモリ34aに下位OSが格納されている場合については、第2実施例において説明する。
フィルタドライバメモリ34bは、フィルタドライバ62(図5参照)が格納されるメモリである。ここで、本実施例のフィルタドライバ62は、OSの下層において動作するものであり、OSとマルチリーダ/ライタ1との間において送受信されるデータは、全てフィルタドライバ62を通過する。
LUNレイアウトツールメモリ34cは、LUNレイアウトツール64(図6参照)が格納されるメモリである。LUNレイアウトツール64は、マルチリーダ/ライタ1をどのようなドライブ(論理ユニット)構成で認識するかを示す「LUNレイアウト」を任意に設定するためのアプリケーションである。LUNレイアウトについては後述する。
レジストリ34dは、OSやアプリケーションの設定情報を一元管理するためのファイルである。レジストリ34dには、LUNレイアウトを管理するための情報であるLUNマップ63(図5参照)も記述される。なお、LUNマップ63については後述する。LUNレイアウトツール64により、LUNマップ63が変更されると、レジストリ34dに記述されたLUNマップ63も自動的に更新される。
図3は、マルチリーダ/ライタ1の電気的構成を示すブロック図である。図3に示すように、マルチリーダ/ライタ1は、その内部に、各構成部を制御するためのマイクロコンピュータ(以下「マイコン」という)2と、各スロット11,12,13,14にそれぞれ装着される各外部メモリ21,22,23,24に対するデータの入出力を制御するための入出力制御LSI6と、USB規格に基づくデータ通信の制御用コントローラであるUSBチップ8とを備え、これらがバス7を介して相互に接続されている。
マイコン2は、CPU3と、ROM4と、RAM5とを備えた一般的な構成となっており、CPU3は、ROM4に格納された各種プログラムや各種データに従って各種処理を行う。このROM4には、PC30からの各種コマンド(USBコマンドやSCSIコマンドなど)に対して応答するためのプログラムも格納されているが、これら各コマンドについては後述する。
第1スロット11、第2スロット12、第3スロット13、及び第4スロット14は、それぞれ、外部メモリ21,22,23,24が装着されると物理的にONとなるメモリ検出スイッチ(図示略)を備えており、メモリ検出スイッチがONとなると、その検出信号は、入出力制御LSI6を介してCPU3に割り込みを行う。従って、第1スロット11、第2スロット12、第3スロット13、第4スロット14に外部メモリ21,22,23,24が装着されると、CPU3はどのスロットに外部メモリが装着されたかを認識することができる。なお、本実施例のマルチリーダ/ライタ1は、PC30からUSBケーブル26を介して供給される電源(バスパワー)によって動作するよう構成されている。
USBケーブル26によりマルチリーダ/ライタ1が接続されると、PC30のOSがマルチリーダ/ライタ1を認識する。PC30にインストールされているOSが上位OSである場合、マルチリーダ/ライタ1の実論理ユニットPUを個別に認識することが可能であるので、従来のPC30であれば、例えば、マルチリーダ/ライタ1を、4つの論理ユニットとして認識していた。またPC30において、接続中の装置または論理ユニットをアイコンで一覧表示するドライブ構成画面(例えば、Windowsでは、「マイコンピュータ」の画面)では、例えば、接続された1台のマルチリーダ/ライタ1が、4つの論理ユニットとして表示されていた(図17参照)。しかしながら、このように、マルチリーダ/ライタ1における実論理ユニットPUの全てを個別に認識させることとすると、実論理ユニットPUの数と等しい数のドライブレターが必要となり、ドライブレターの確保が困難となる場合が生じる。また、ドライブ構成画面に数多くの論理ユニットが表示されると、その画面自体がユーザにとって煩わしいものとなるおそれがある。
よって、本実施例では、マルチリーダ/ライタ1を、実論理ユニットPUの数よりも少ない数の論理ユニットとして、ユーザに認識させることとした。PC30においてユーザに認識させる論理ユニットを、本明細書では、仮想論理ユニットVUと称する。また、各仮想論理ユニットVUには、互いを識別するための仮想論理ユニット番号(V−LUN)が付与される。
図4を参照して、PC30において設定される仮想論理ユニットVUについて説明する。図4(a)は、LUNレイアウト設定画面の一例を示す図である。LUNレイアウト設定画面は、仮想論理ユニットVUと実論理ユニットPUとの対応関係(以下、LUNレイアウトという)をユーザの操作に従って任意に設定するための画面である。
図4(a)に示すように、マルチリーダ/ライタ1の4つの実論理ユニット(P−LUN0,P−LUN1,P−LUN2,P−LUN3)は、仮想論理ユニットVUのいずれかに対応付けられる。本実施例では、4つの実論理ユニット(P−LUN0,P−LUN1,P−LUN2,P−LUN3)の全てが1つの仮想論理ユニット(V−LUN0)に対応付けられているものとして説明する。
図4(b)は、図4(a)に示すLUNレイアウトに従って表示されるドライブ構成画面の一例を示す図である。このドライブ構成画面は、PC30から、それぞれ独立にアクセス可能な装置または論理ユニットをアイコンで一覧表示する画面である。図4(a)を参照して説明したLUNレイアウトでは、1つの仮想論理ユニット(V−LUN0)に全ての実論理ユニット(P−LUN0,P−LUN1,P−LUN2,P−LUN3)が対応付けられていた。よって、ディスプレイ39にドライブ構成画面を表示させると、図4(b)に例示するように、マルチリーダ/ライタ1は、リムーバブルディスクを示す1つのアイコン(ドライブレターEが付されている)で表示される。このようにすれば、使用するドライブレターの数を節約することができると共に、マルチリーダ/ライタ1をユーザが認識しやすいように表示することができる。
図4(a)に戻り説明する。図4(a)に示すLUNレイアウト設定画面は、LUNレイアウトツール64を起動すると、PC30のディスプレイ39に表示される画面であり、現在設定されているLUNレイアウトが表示される。
図4(a)に示すように、LUNレイアウト設定画面は、仮想論理ユニットVUと、その仮想論理ユニットVUに対応付けられた実論理ユニットPUが表示されると共に、設定ボタン51、設定中止ボタン52、前詰め確認ボタン53、ヘルプボタン54を表示する構成である。
LUNレイアウト設定画面においてユーザは、例えばマウス38を操作して各実論理ユニットPUを示すアイコンをそれぞれドラッグ&ドロップすることにより、各実論理ユニットPUを各仮想論理ユニットVUのいずれかに自由に移動させることができる。従って、ユーザの所望するレイアウトを自由に設定することができる。
そして、ユーザが好みに応じて各アイコンの配置を行ったときに、ユーザが設定ボタン51をクリックすると、現在配置されているLUNレイアウトが確定される。但し、一つのアイコンも配置されていない枠が前方に存在した場合に設定ボタン51をクリックすると、自動的に各アイコンが前詰めされた状態に再配置された後、LUNレイアウトが確定される。設定ボタン51をクリックしてLUNレイアウトが確定すると、LUNレイアウトツール64は、後述するLUNマップ63を書き換えるのである。
一方、ユーザが設定中止ボタン52をクリックすると、どこまで設定準備が進んでいようとも、このLUNレイアウトツール64は強制的に終了される。また、LUNレイアウト設定画面において、一つのアイコンも配置されていない枠が前方(V−LUN番号が小さい側)に存在した場合、前詰め確認ボタン53をクリックすると、自動的に各アイコンが前詰めされ、前方に空白の枠が無くなる。なお、後方(LUN番号が大きい側)に空白の枠があること(例えば図4(a)の場合は仮想論理ユニット(V−LUN0)の枠の後方は全て空白である)については問題ない。また、ヘルプボタン54をクリックすると、このLUNレイアウトツール64の使用方法などが表示される。
LUNレイアウトツールを起動すると、LUNレイアウト設定画面にはまず現在設定されているレイアウトが表示されるため、ユーザは、既に設定されているレイアウトを確認した上で、必要に応じてそのレイアウト内容を変更することができ、しかもアイコンをドラッグ&ドロップするだけの簡単な操作によって視覚的に確認しながら設定を行うよう構成されているため、確実かつ効率的にLUNレイアウトの設定を行うことができる。
図5は、レジストリ34d(図2参照)に記述されるLUNマップ63を模式的に示す図である。図5に示すようにLUNマップ63は、V−LUNと、P−LUNとの対応関係とを記述する。また、LUNマップ63には、同一のV−LUNに対応付けられたP−LUN間の優先順位が併せて記述される。この優先順位は、LUNレイアウト設定画面における表示位置が高い順に付された順位である。
図5に示すLUNマップ63において、対応するP−LUNがない場合、そのV−LUNに対応するP−LUNの欄は空欄とされる。ここで、少なくとも1つのP−LUNが対応付けられているV−LUNのうち、最大値を仮想論理ユニット番号最大値(MAX−V−LUN)と称する。仮想論理ユニット番号最大値(MAX−V−LUN)は、LUNマップ63と共にレジストリ34d(図2参照)に記述される。なお、図5に示すLUNマップ63では、全てのP−LUNがV−LUN0に対応付けられているので、仮想論理ユニット番号最大値(MAX−V−LUN)は、「0」である。
図6を参照して、上述したPC30とマルチリーダ/ライタ1との間の各種データのやりとりについて説明する。図6は、PC30とマルチリーダ/ライタ1との間におけるデータ送受信を模式的に示す図である。図6に示すように、まず、OSカーネル60は、マルチリーダ/ライタ1の接続の有無を定期的にチェックする[1]。そして、USBケーブル26がPC30に装着されることでマルチリーダ/ライタ1とPC30が接続され、PC30からマルチリーダ/ライタ1へバスパワーが供給されると、マルチリーダ/ライタ1は電源ONとなってその動作を開始する[2]。
マルチリーダ/ライタ1は、動作開始時に、まず、初期化処理を実行する。この初期化処理は、マルチリーダ/ライタ1の起動時にROM4内のプログラムに従ってCPU3が実行するものであり、起動後、必要なパラメータを、実働作用のRAM5にコピーする。なお、マルチリーダ/ライタ1における初期化処理が終了するまでは準備中であるので、PC30からの定期チェックに対して応答しない。
そして、RAM5へのコピーが行われ、動作準備が完了すると、PC30からの定期チェックに対して準備OKである旨を返答する[3]。これを受けたPC30では、OSカーネル60がマルチリーダ/ライタ1に対してクラス取得を行い[4]、マルチリーダ/ライタ1は「ストレージクラス」である旨を返答する[5]。これにより、PC30は、マルチリーダ/ライタ1が大容量記憶装置デバイスであることを認識することになる。
次に、OSカーネル60がマルチリーダ/ライタ1に対して、ベンダー名、製品名、シリアル番号の取得を行い[6]、マルチリーダ/ライタ1は、ベンダー名と製品名とシリアル番号とを返答する[7]。
次に、OSカーネル60は、フィルタドライバ62をロードする[8]。フィルタドライバ62は、レジストリ34dからLUNマップ63(図5参照)、仮想論理ユニット番号最大値(MAX−V−LUN)等の必要なパラメータをリードする[9]。
そして、OSカーネル60は、マルチリーダ/ライタ1に対してUSBコマンド「GET_MAX_LUN」を発行し、マルチリーダ/ライタ1における論理ユニットの数を問い合わせる[10]。この「GET_MAX_LUN」コマンドは、OSが認識すべき論理ユニットの総数を尋ねるコマンドであり、換言すれば、PC30が備えるOSに、マルチ対応ドライバがインストールされている上位OSであることを示すコマンドである。
フィルタドライバ62は、このUSBコマンド「GET_MAX_LUN」を受信すると、GET_MAX_LUN受信処理を実行する。GET_MAX_LUN受信処理については、図8を参照して後に詳述するため、ここでは簡単に説明する。まず、USBコマンド「GET_MAX_LUN」を発行する[11]。マルチリーダ/ライタ1は、このUSBコマンド「GET_MAX_LUN」を受けると、GET_MAX_LUN応答処理を実行する。この処理は、USBコマンド「GET_MAX_LUN」の受信時にROM4内のプログラムに従ってCPU3が実行するものであり、受信後、P−LUNの最大値(MAX−P−LUN)を返答する[12]。ここでは、マルチリーダ/ライタ1においては、図1に示すようにP−LUNの最大値は「3」であるので、「3」を返答する。
フィルタドライバ62は、USBコマンド「GET_MAX_LUN」に対する返答を受け取ると、その受け取った値をP−LUN最大値メモリ33a(図2参照)に格納する。これにより、P−LUNが「0」から「3」までである(すなわち、実論理ユニットPUが4つある)ことを認識できるので、次に、各実論理ユニットPUを順番に指定して、SCSIコマンド「Inquiry」を発行し、その返答を受信する[13]。このSCSIコマンド「Inquiry」は、各実論理ユニット(ここではP−LUN0,P−LUN1,P−LUN2,P−LUN3)について、SCSIレベルでデバイスの種類を問い合わせるコマンドである。
マルチリーダ/ライタ1は、このSCSIコマンド「Inquiry」を受信すると、Inquiryコマンド応答処理を実行する。このInquiryコマンド応答処理は、Inquiryコマンドの受信時にROM4内のプログラムに従ってCPU3が実行するものであり、「ダイレクトアクセスデバイス」であること、「リムーバブル」であること、そして「製品名」及び「プロダクト名」など、デバイスの種類を示すデータを、各実論理ユニットPUについて返答する。
この返答を受けると、フィルタドライバ62は、受信したデータをRAM33に格納する。そして、レジストリ34dから読み込んだ仮想論理ユニット番号最大値(MAX−V−LUN)をOSカーネル60に返却する[14]。ここで、仮想論理ユニット番号最大値(MAX−V−LUN)として、「0」を返却したものとして説明する。
次に、OSカーネル60は、SCSIコマンド「Inquiry(V−LUN=0)」を発行する[15]。すなわち、OSカーネル60が認識する論理ユニット(仮想論理ユニット(V−LUN0))について、デバイスの種類を問い合わせる。これに対し、フィルタドライバ62はInquiry情報を返却する[16]。
本実施例では、フィルタドライバ62は、フィルタドライバ62自身のベンダーIDとプロダクト名、マルチリーダ/ライタ1から受信したP−LUN最大値(MAX−P−LUN)、およびOSが上位OSであることなどを記述したInquiry情報を返却する。なお、本実施例において、フィルタドライバ62からOSに返却されるInquiry情報は、常に同一の情報である。
次に、OSカーネル60はファイルシステム61に対してドライブレターを確定する[17]。これにより仮想論理ユニット(V−LUN0)についてのドライブレターが割り当てられる。ここでは、全ての実論理ユニットPUが1つの仮想論理ユニット(V−LUN0)に対応付けられている。よって、マルチリーダ/ライタ1は、ドライブレターEが付された1つの論理ユニットとして、ドライブ構成画面(図4(b)参照)に表示され、ユーザに認識されることとなる。
次に、ドライブレターが割り当てられた仮想論理ユニット(V−LUN0)を指定したSCSIコマンドがファイルシステム61から発行される[18]。ここでは、ファイルシステム61からSCSIコマンド「Read/Write(V−LUN=0)」が発行されたものとして説明する。
フィルタドライバ62は、ファイルシステム61からのSCSIコマンド「Read/Write(V−LUN=0)」を受信すると、LUNマップ63においてV−LUN0に対応するP−LUNのそれぞれについて、SCSIコマンド「TestUnitReady」を順番に発行する。このSCSIコマンド「TestUnitReady」の発行の順序は、LUNマップ63において、各P−LUNに付された優先順位に従う。そして、このコマンド「TestUnitReady」に対し、「Ready」との応答が得られるまで、V−LUN0に対応するP−LUNに順番に発行される。
図4(b)にて図示したように、LUNマップ63において、V−LUN0に対応付けられたP−LUNは、「0」,「1」,「2」,「3」であり、優先順位もこの順番であるから、まずSCSIコマンド「TestUnitReady(P−LUN=0)」をマルチリーダ/ライタ1に発行する[19]。このSCSコマンド「TestUnitReady(P−LUN=0)」は、実論理ユニット(P−LUN0)に対応するメモリ(本実施例では、第1外部メモリ(CF)21)がスロット11に装着中であるか否かを問い合わせるコマンドである。マルチリーダ/ライタ1は、第1外部メモリ21がスロット11に装着中である場合は、その旨を示すコマンド「Ready」を返答するが、ここでは、第1外部メモリ21がスロット11に装着中でなく、その旨を示すコマンド「Not Ready」を返答したものとして説明する[20]。
次に、フィルタドライバ62は、SCSIコマンド「TestUnitReady(P−LUN=1)」をマルチリーダ/ライタ1に発行する[21]。これにより、実論理ユニット(P−LUN1)に対応付けられたメモリ(本実施例では、第2外部メモリ(SM)22)がスロット12に装着中であるか否かを問い合わせる。ここでは、第2外部メモリ22がスロット12に装着中でなく、その旨を示すコマンド「Not Ready」を返答したものとして説明する[22]。
次に、フィルタドライバ62は、SCSIコマンド「TestUnitReady(P−LUN=2)」をマルチリーダ/ライタ1に発行する[23]。これにより、実論理ユニット(P−LUN2)に対応付けられたメモリ(本実施例では、第3外部メモリ(MS)23)がスロット13に装着中であるか否かを問い合わせる。ここでは、第3外部メモリ23がスロット13に装着中でなく、その旨を示すコマンド「Not Ready」を返答したものとして説明する[24]。
次に、フィルタドライバ62は、SCSIコマンド「TestUnitReady(P−LUN=3)」をマルチリーダ/ライタ1に発行する[25]。これにより、実論理ユニット(P−LUN3)に対応付けられたメモリ(本実施例では、第4外部メモリ(SD)24)がスロット14に装着中であるか否かを問い合わせる。ここでは、第4外部メモリ24がスロット14に装着中であるものとして、その旨を示すコマンド「Ready」を返答したものとして説明する[26]。これにより、仮想論理ユニット(V−LUN0)に対応する実論理ユニットPUのうち、仮想論理ユニット(V−LUN0)の指定によりアクセス可能な実論理ユニットPUとして、実論理ユニット(P−LUN3)を決定し、登録することができる。
なお、優先順位の高い実論理ユニットPUから順に問い合わせると共に、「Ready」の返答がいずれかの実論理ユニットPUについて得られた場合、そこで問い合わせを終了するので、スロットに装着中の外部メモリが2以上あった場合であっても、LUNマップ63(図5参照)において最も高い優先順位が付されている実論理ユニットPUが、アクセス可能な実論理ユニットPUとして登録される。
その後、ファイルシステム61から、データが出力された場合[27]、その出力データはフィルタドライバ62により読み捨てられ、マルチリーダ/ライタ1には送信されない。また、フィルタドライバ62からファイルシステム61へは、データ通信がNGである旨を示すステータスが発行される[28]。このステータスを受信すると、ファイルシステム61は、センスデータを要求するSCSIコマンド「RequestSense」を発行する[28a]。これに応じて、フィルタドライバ62により、メモリ交換発生を示すセンスデータが発行される[28b]。
メモリ交換発生を示すセンスデータを受信したファイルシステム61では、前回使用されたメモリ管理情報を破棄する。また、ファイルシステム61は、再度、SCSIコマンド「Read/Write(V−LUN=0)」を発行する[29]。今度は、仮想論理ユニット(V−LUN0)に対応するアクセス可能実論理ユニットとして、実論理ユニット(P−LUN3)が登録済みである。
よって、SCSIコマンド「Read/Write(V−LUN=0)」を受信したフィルタドライバ62は、受信したSCSIコマンドを、SCSIコマンド「Read/Write(P−LUN3)」に変更する。すなわち、アクセス可能な実論理ユニットPUとして登録された実論理ユニット(P−LUN3)を指定するコマンドに変更し、マルチリーダ/ライタ1に発行する[30]。
これにより、ファイルシステム61とマルチリーダ/ライタ1との間でデータの読み書きが行えるようになる。具体的には、ファイルシステム61からのSCSIコマンド「Read/Write」に対してマルチリーダ/ライタ1がデータ及びステータスを送信する、というやりとりになる[31],[32]。
次に、このような処理を繰り返すうちに、実論理ユニット(P−LUN3)に対応付けられたメモリ(ここでは、第4外部メモリ24)がスロット14から取り外された場合について説明する。
ファイルシステム61からSCSIコマンド「Read/Write(V−LUN=0)」が発行されると[33]、上述したように、そのSCSIコマンドは、フィルタドライバ62により、SCSIコマンド「Read/Write(P−LUN3)」に変更して発行される[34]。
しかし、実論理ユニット(P−LUN3)に対応付けられたメモリ24はスロット14から取り外されると、マルチリーダ/ライタ1は、データ通信がNGであった旨を示すステータス、およびスロット内にメモリが無い旨を示すステータスを発行する[35]。このステータスを受信するとフィルタドライバ62により、仮想論理ユニット(V−LUN0)のアクセス可能論理ユニットとして登録されていた実論理ユニット(P−LUN3)の登録が解除される。すなわち、仮想論理ユニット(V−LUN0)を再び未登録状態に戻す。
また、フィルタドライバ62からファイルシステム61へは、データ通信がNGである旨を示すステータスが発行される[36]。このステータスを受信すると、ファイルシステム61は、センスデータを要求するコマンド「RequestSense」を発行する[36a]。これに応じて、フィルタドライバ62により、メモリ無しを示すセンスデータが発行される[36b]。
よって、次回以降にSCSIコマンド「Read/Write(V−LUN=0)」が発行されたときには、仮想論理ユニット(V−LUN0)の指定によりアクセス可能な実論理ユニットPUは未登録の状態であるから、[19]に戻り、アクセス可能な実論理ユニットPUを決定する。これにより、仮想論理ユニット(V−LUN0)に対応付けられた実論理ユニットPUのうち、次に新たに装着された外部メモリに対応する実論理ユニットPUが、新たなアクセス可能実論理ユニットとして登録される。
図7を参照して、ユーザにより、LUNレイアウトの変更操作が行われる場合について説明する。図7は、ユーザによりLUNレイアウトツール64が起動された場合における、PC30とマルチリーダ/ライタ1との間のデータ送受信を模式的に示す図である。
まず、LUNレイアウトツール64は起動後、まず、SCSIコマンド「Inquiry」を発行する[40]。フィルタドライバ62は、図6における[16]の処理において説明したものと同一のInquiry情報をLUNレイアウトツール64に返却する[41]。
次に、LUNレイアウトツール64は、LUNマップ63(図5参照)を読み込む[42]。そして、読み込んだLUNマップ63に従って、LUNレイアウト設定画面(図4(a)参照)をPC30のディスプレイ39に表示し、現在設定されているLUNレイアウトをユーザに対し示す。
そして、図4(a)を参照して説明したレイアウト作業がユーザにより行われ、ユーザが好みに応じて各アイコンの配置を行い、LUNレイアウトが確定すると[43]、LUNレイアウトツール64は、LUNマップ63を書き換え[44]、処理を終了する。
LUNレイアウトツール64によりLUNレイアウトを変更したユーザは、取扱説明書やディスプレイ39における表示に従って、USBケーブル26を抜くか、またはマルチリーダ/ライタ1の電源をオフする[45]。
よって、その後、OSカーネル60から定期チェックが送信された場合[46]、マルチリーダ/ライタ1は応答しない[47]。これに基づいて、PC30において、マルチリーダ/ライタ1のUSBケーブル26が抜かれたことを検出することができるので、OSカーネル60は、フィルタドライバ62をアンロードする[48]。
そして、その後、USBケーブル26によりPC30とマルチリーダ/ライタ1とが接続され、マルチリーダ/ライタ1に電源が供給されて電源オンとなると[2]、図6を参照して説明した[1]から[9]の処理が繰り返される。ここで、LUNマップ63からLUNマップ63から必要なパラメータをリードする[9]が、これは変更後のLUNマップ63から読み込まれるパラメータであるため、以降の処理は、変更後のLUNマップ63に基づいて行われる。
図8を参照して、GET_MAX_LUN受信処理について説明する。図8は、GET_MAX_LUN受信処理を示すフローチャートである。このGET_MAX_LUN受信処理は、USBコマンド「GET_MAX_LUN」がOSカーネル60により発行されると開始する処理であり、図6に示す[10]から[14]に対応する処理である。
まず、USBコマンド「GET_MAX_LUN」が発行されると、OSメモリ34aに格納されたOSが上位OSで有ることがOS種類メモリ33bに記憶されているか否かを判断する(S2)。未だ記憶されていない場合(S2:No)、OSメモリ34aに格納されたOSが上位OSで有ることをOS種類メモリ33bに格納する(S4)。上述したように、OSによりUSBコマンド「GET_MAX_LUN」が発行される場合、そのOSは上位OSだからである。
次に、マルチリーダ/ライタ1に対し、USBコマンド「GET_MAX_LUN」を発行し、そのUSBコマンド「GET_MAX_LUN」に応じて、マルチリーダ/ライタ1から返答されるP−LUNの最大値(MAX−P−LUN)を、P−LUN最大値メモリ33aに記憶する(S6)。そして、変数「P−LUN」を「0」とする(S8)。
次に、変数「P−LUN」で示される現P−LUNを記述したSCSIコマンド「Inquiry」を発行し、その返答としてマルチリーダ/ライタ1から返却されるInquiry情報を取得し、RAM33に記憶する(S10)。最初は、変数「P−LUN」が「0」であるから、実論理ユニット(P−LUN0)についてのInquiry情報がRAM33に格納される。
次に、変数「P−LUN」に「1」を加算する(S12)。そして、変数「P−LUN」の値が、MAX−P−LUN(P−LUNの最大値)以下であるか否かを判断する(S14)。
変数「P−LUN」の値がMAX−P−LUN以下である間は(S14:Yes)、S10に戻り処理を繰り返す。そして処理を繰り返すうちに、変数「P−LUN」の値がMAX−P−LUNより大となると(S14:No)、全ての実論理ユニットPUについて、Inquiry情報を取得したこととなるので、次に、レジストリ34dから読み込んだMAX−V−LUNをOSカーネル60に返す(S16)。これにより、OSカーネル60から見ると、USBコマンド「GET_MAX_LUN」(接続した装置の論理ユニット数を問い合わせるコマンド)の返答として、MAX−V−LUN(すなわち、仮想論理ユニット番号V−LUNの最大値)を受けることとなる。
なお、OSメモリ34aに格納されたOSが上位OSであることがOS種類メモリ33bに既に記憶されている場合(S2:Yes)、S4からS14の処理をスキップし、LUNマップ63内のMAX−V−LUNを返す(S16)。
以上説明したように、第1実施例のフィルタドライバ62により、PC30において、マルチリーダ/ライタ1の実論理ユニットPUの数よりも少ない数に設定された仮想論理ユニットVUに、マルチリーダ/ライタ1の実論理ユニットPUを対応付けるので、ユーザが認識する論理ユニット数を少なくすることができ、ドライブ構成画面における表示を単純明快にできると共に、使用するドライブレター数を節約することができる。また、同一の仮想論理ユニットVUに複数の実論理ユニットPUが対応付けられていても、その実論理ユニットPUのうち、実際にスロットに装着中の外部メモリが存在する実論理ユニットPUが、アクセス可能論理ユニットとして決定され、そのアクセス可能論理ユニットに対応付けられた外部メモリにアクセスできる。また、途中で外部メモリの入れ替えが行われた場合には、実際に外部メモリが装着中の実論理ユニットPUが自動的に検出され、アクセス可能論理ユニットとして登録されるので、使用する実論理ユニットPUの切換のために、PC30を再起動したり、USBケーブル26を一旦抜くなどの面倒な作業をしなくてもよい。
また、仮想論理ユニットVUに対し実論理ユニットPUを対応付けるための処理がフィルタドライバ62により実行されるので、マルチリーダ/ライタ1側の変更が不要である。よって、ユーザから見ると、PC30にフィルタドライバ62をインストールするだけでよく、手持ちのマルチリーダ/ライタ1をそのまま使用することができる。
さらに、LUNレイアウトツール64により、各仮想論理ユニットVU対する各実論理ユニットPUの対応付けをユーザの好みに応じて自由に設定できる。そのため、例えば使用頻度の低いメモリを一つのドライブ(仮想論理ユニットVU)にまとめてドライブレターを節約することによりドライブ構成画面の表示をすっきりさせたり、頻繁に使う実論理ユニットPUについては独立して一つのドライブレターを割り当てるようにするといったことが可能となり、ユーザの使い勝手の良好な情報処理システムの提供が可能となる。
次に、図9を参照して、フィルタドライバ62によりPC30において実行される処理の第2実施例について説明する。上記した第1実施例では、OSメモリ34aに格納されたOSが、上位OSであったが、第2実施例では、PC30のOSメモリ34aに下位OSが格納されているものとして説明する。なお、この第2実施例において、上記した第1実施例と同一の部分には同一の符号を付して、その説明を省略する。
図9は、第2実施例におけるPC30とマルチリーダ/ライタ1との間の各種データのやりとりを示す図である。上述したように、第2実施例では、PC30のOSメモリ34aに下位OSが格納されているため、OSカーネル65の動作は、第1実施例のOSカーネル61とは異なる。なお、図9に示すデータの送受信のうち、図6を参照して説明したデータ送受信と同一のものについては、同一の番号を付して説明を省略する。
OSメモリ34aに下位OSが格納されている場合、OSカーネル65は、SCSIコマンド「Inquiry(V−LUN=0)」を発行する[60]。すなわち、上記第1実施例では、OSメモリ34aに上位OSが格納されていたため、1の周辺装置について複数の論理ユニットを取り扱うこと可能であった。そのためOSカーネル60(図6参照)からは、設定された論理ユニットの総数(ここでは、論理ユニット番号の最大値)を問い合わせるためのUSBコマンド「GET_MAX_LUN」が発行されていた。これに対し、第2実施例において、OSメモリ34aに格納されている下位OSに標準でインストールされているドライバソフトは、1の周辺装置は、1の論理ユニットとして取り扱うため、論理ユニットの総数を問い合わせることなく、デバイスの種類を問い合わせるSCSIコマンド「Inquiry(V−LUN=0)」を発行するのである。
フィルタドライバ62は、このSCSIコマンド「Inquiry(V−LUN=0)」を受信すると、Inquiry受信処理を実行する。Inquiry受信処理については、図10を参照して後に詳述するため、ここでは簡単に説明する。まず、USBコマンド「GET_MAX_LUN」を発行する[61」。マルチリーダ/ライタ1は、このUSBコマンド「GET_MAX_LUN」を受けると、P−LUNの最大値(MAX−P−LUN)を返答する[62]。
フィルタドライバ62は、USBコマンド「GET_MAX_LUN」に対する返答を受け取ると、その受け取った値をP−LUN最大値メモリ33a(図2参照)に格納する。そして、マルチリーダ/ライタ1に対し、SCSIコマンド「Inquiry」を発行し、その返答を受信する[63]。
この返答を受けると、フィルタドライバ62は、P−LUN毎に受信したデータをRAM33に格納する。そして、フィルタドライバ62は、Inquiry情報を返却する[64]。本実施例では、フィルタドライバ62は、フィルタドライバ62自身のベンダーIDとプロダクト名、マルチリーダ/ライタ1から受信したP−LUN最大値(MAX−P−LUN)、およびOSが下位OSであることなどを記述したInquiry情報を返却する。なお、本実施例において、フィルタドライバ62からOSに返却されるInquiry情報は、常に同一の情報である。
次に、OSカーネル65はファイルシステム61に対してドライブレターを確定する[17]。本実施例では、マルチリーダ/ライタ1に対応したドライブレターとして「E」が割り当てられる。
次に、第2実施例におけるLUNレイアウトの変更操作について説明する。上述した第1実施例は、上位OSがインストールされている場合であったため、複数の仮想論理ユニットVUを設定可能であり、且つ仮想論理ユニットVUと実論理ユニットPUとの対応関係をLUNレイアウトツール64により任意に変更可能であった。これに対し、第2実施例は、下位OSがインストールされている場合についてであるため、1つの仮想論理ユニットVUのみしか設定できず、全ての実論理ユニットPUは、1つの仮想論理ユニット(V−LUN0)に対応付けられる。よって、第2実施例におけるLUNレイアウトの変更では、仮想論理ユニット(V−LUN0)内における各実論理ユニットPU優先順位を変更することのみが可能である。
LUNレイアウトツール64は起動後、まず、SCSIコマンド「Inquiry」を発行する[40]。フィルタドライバ62は、仮想論理ユニット(V−LUN0)のInquiry情報をLUNレイアウトツール64に返却する[41]。
次に、LUNレイアウトツール64は、LUNマップ63(図5参照)を読み込む[42]。そして、読み込んだLUNマップ63に従って、LUNレイアウト設定画面(図4(a)参照)をPC30のディスプレイ39に表示し、現在設定されているLUNレイアウトをユーザに対し示す。
そして、図4(a)を参照して説明したレイアウト作業がユーザにより行われ、ユーザが好みに応じて各アイコンの配置を行うレイアウト作業をする[43]。なお、ここで、LUNレイアウトツール64は、下位OSであることを示すInquiry情報に基づいて、仮想論理ユニット(V−LUN0)以外の仮想論理ユニットVUに対し、実論理ユニットPUを対応付ける操作を無効とする。そして、LUNレイアウトが確定すると、LUNレイアウトツール64は、LUNマップ63を書き換え[44]、処理を終了する。
図10を参照して、Inquiry受信処理について説明する。図10は、Inquiry受信処理を示すフローチャートである。このInquiry受信処理は、SCSIコマンド「Inquiry」がOSカーネル65により発行されると開始する処理である。
まず、SCSIコマンド「Inquiry」が発行されると、OSメモリ34aに格納されたOSが下位OSで有ることがOS種類メモリ33bに記憶されているか否かを判断する(S22)。未だ記憶されていない場合(S22:No)、OSメモリ34aに格納されたOSが下位OSで有ることをOS種類メモリ33bに格納する(S24)。上述したように、最初にUSBコマンド「GET_MAX_LUN」が発行されることなく、Inquiryコマンドが発行される場合、そのOSは下位OSだからである。
次に、マルチリーダ/ライタ1に対し、USBコマンド「GET_MAX_LUN」を発行し、そのUSBコマンド「GET_MAX_LUN」に応じて、マルチリーダ/ライタ1から返答されるP−LUNの最大値(MAX−P−LUN)を、P−LUN最大値メモリ33aに記憶する(S26)。そして、変数「P−LUN」を「0」とする(S28)。
次に、変数「P−LUN」で示される現P−LUNを記述したSCSIコマンド「Inquiry」を発行し、その返答としてマルチリーダ/ライタ1から返却されるInquiry情報を取得し、RAM33に記憶する(S30)。最初は、変数「P−LUN」が「0」であるから、実論理ユニット(P−LUN0)についてのInquiry情報がRAM33に格納される。
次に、変数「P−LUN」に「1」を加算する(S32)。そして、変数「P−LUN」の値が、MAX−P−LUN(P−LUNの最大値)以下であるか否かを判断する(S34)。
変数「P−LUN」の値がMAX−P−LUN以下である間は(S34:Yes)、S10に戻り処理を繰り返す。そして、変数「P−LUN」の値がMAX−P−LUNより大となると(S34:No)、全ての実論理ユニットについて、Inquiry情報を取得したこととなるので、次に、Inquiry情報をOSカーネル65に返す(S36)。これにより、OSカーネル60から見ると、SCSIコマンド「Inquiry」の返答として、Inquiry情報を受けることとなる。
一方、OSメモリ34aに格納されたOSが下位OSであることがOS種類メモリ33bに既に記憶されている場合(S32:Yes)、S24からS34の処理をスキップし、Inquiry情報を返す(S36)。
以上説明したように、第2実施例によれば、1つの仮想論理ユニットVUに複数の実論理ユニットPUが対応付けられるが、その実論理ユニットPUのうち、実際にスロットに装着中の外部メモリが存在する実論理ユニットPUが、アクセス可能論理ユニットとして決定され、そのアクセス可能論理ユニットとの間でデータ通信が可能となる。また、途中で外部メモリの入れ替えが行われた場合には、実際に外部メモリが装着中の実論理ユニットPUが自動的に検出され、アクセス可能論理ユニットとして登録されるので、PCにインストールされているOSが下位OSであっても、異なる実論理ユニットPUを認識させるために、PC30を再起動したり、USBケーブル26をPC30側の端子から一旦抜き取り再度挿入するなどの面倒な作業が不要である。
次に、図11を参照して、第3実施例のフィルタドライバ66について説明する。上記した第1実施例および第2実施例では、PC30に接続されたマルチリーダ/ライタ1が内蔵メモリを備えないものであった。これに対し、第3実施例は、PC30に接続されたマルチリーダ/ライタ100が、外部メモリ21,22,23を脱着可能な第1スロット11、第2スロット12、第3スロット13を備えると共に、脱着不可能な内蔵フラッシュメモリ15を備えている点が、上述した第1実施例および第2実施例と異なる。なお、この第3実施例において、上記した第1実施例と同一の部分には同一の符号を付して、その説明を省略する。
図11は、第3実施例において用いられるマルチリーダ/ライタ100の電気的構成を示すブロック図である。図11に示すように、マルチリーダ/ライタ100は、PC30からのファイル操作によってデータの読み書きが可能な内蔵フラッシュメモリ15を備え、この内蔵フラッシュメモリ15はバス7に接続されている。
すなわち、第3実施例において用いられるマルチリーダ/ライタ100は、PC30からアクセス可能なメモリとして、外部メモリ21,22,23に加えて、内蔵フラッシュメモリ15の合計4種類を備えているので、合計で、4つの実論理ユニットPUとして機能可能である。そして、マルチリーダ/ライタ100をUSBケーブル26にてPC30と接続することにより、PC30からマルチリーダ/ライタ100の各外部メモリ21,22,23及び内蔵フラッシュメモリ15にアクセス可能な情報処理システムが構築される。
なお、PC30のフィルタドライバメモリ34bには、第1実施例および第2実施例において説明したフィルタドライバ62に替えて、フィルタドライバ66(図13参照)がインストールされている。このフィルタドライバ66は、第1実施例および第2実施例において説明したフィルタドライバ62と同様に、OSの下層において動作するものであり、OSとマルチリーダ/ライタ100との間において送受信されるデータを制御するためのものであるが、内蔵フラッシュメモリ15を備えたマルチリーダ/ライタ100用のフィルタドライバ66である点において、第1実施例および第2実施例のフィルタドライバ66と異なる。
図12は、マルチリーダ/ライタ100とPC30とを模式的に示した図である。図12に示すように、マルチリーダ/ライタ1は、3種類の外部メモリ21,22,23を挿入可能なスロット11,12,13と内蔵フラッシュメモリ15とを備えているから、マルチリーダ/ライタ100は、物理的には1台の装置でありながら、互いに異なる種類のメモリにアクセス可能な4つの実論理ユニットPUとして機能する。
図12に示すように、本実施例では、内蔵フラッシュメモリ15との間でデータの書き込みまたは読み込みを行う実論理ユニットPUにはP−LUN0が付与される。また、外部メモリ21との間でデータの書き込みまたは読み込みを行う実論理ユニットPUにはP−LUN1が付与される。そして、外部メモリ22との間でデータの書き込みまたは読み込みを行う実論理ユニットPUにはP−LUN2が付与される。そして、外部メモリ23との間でデータの書き込みまたは読み込みを行う実論理ユニットPUにはP−LUN3が付与される。
そして、PC30から例えば、P−LUN0が記述されたコマンドを受信すると、P−LUN0で指定される実論理ユニットPUとPC30との間でデータ通信が実行される。このようにして、PC30からマルチリーダ/ライタ100の内蔵フラッシュメモリ15または各スロット11,12,13に装着された各外部メモリ21,22,23にアクセス可能な情報処理システムが構築されている。
図13を参照して、上述したPC30とマルチリーダ/ライタ100との間の各種データのやりとりについて説明する。図13は、PC30とマルチリーダ/ライタ100との間におけるデータ送受信を模式的に示す図である。なお、ドライブレター決定までの処理は、図6を参照して説明した第1実施例と同様であるため説明を省略し、ここでは、ドライブレター決定後におけるデータの送受信について説明する。また、仮想論理ユニットVUと実論理ユニットPUとの対応関係については、第1実施例と同様に、全ての実論理ユニットPUが仮想論理ユニットVUに対応付けられているものとして説明する。
まず、仮想論理ユニット(V−LUN0)を指定したSCSIコマンド「Read/Write(V−LUN=0)」が、ファイルシステム61から発行される[70]。ここでは、V−LUN0に対応するアクセス可能な実論理ユニットPUが未登録であるものとして説明する。
フィルタドライバ66は、アクセス可能な実論理ユニットPUが未登録である場合、LUNマップ63(図5参照)において、そのSCSIコマンドに記述されたV−LUN(ここでは0)に対応付けられたP−LUNを取得し、そのP−LUNについて、SCSIコマンド「TestUnitReady」を順番に発行する。ここでは、V−LUN0には、P−LUN0、P−LUN1、P−LUN2、P−LUN3、P−LUN4が対応付けられているものとして説明する。
SCSIコマンド「TestUnitReady」を各実論理ユニット(P−LUN0,P−LUN1,P−LUN2,P−LUN3)について発行する場合、上述した第1実施例では、フィルタドライバ66は、LUNマップ63における優先順位に従って、SCSIコマンド「TestUnitReady」を順番に発行していた(図6[13]参照)。
これに対し、本実施例では、基本的には、LUNマップ63における優先順位に従って、SCSIコマンド「TestUnitReady」を発行するが、内蔵フラッシュメモリ15が割り当てられた実論理ユニット(P−LUN0)については、最後にSCSIコマンド「TestUnitReady」を発行する点が第1実施例と異なる。すなわち、外部メモリ21,22,23が割り当てられた実論理ユニット(P−LUN1,P−LUN2,P−LUN3)について優先的に上記コマンドを発行することにより、外部メモリ21,22,23が装着されていればその実論理ユニットPUを優先的に検出する。
まず「TestUnitReady(P−LUN=1)」をマルチリーダ/ライタ100に発行する[71]。マルチリーダ/ライタ100は、第1外部メモリ21がスロットに装着中である場合は、その旨を示すコマンド「Ready」を返答するが、ここでは、第1外部メモリ21がスロットに装着中でないものとして、その旨を示すコマンド「Not Ready」を返答したものとして説明する[72]。
次に、フィルタドライバ66は、SCSIコマンド「TestUnitReady(P−LUN=2)」をマルチリーダ/ライタ100に発行する[73]。ここでは、第2外部メモリ22がスロットに挿入中でないものとして、その旨を示すコマンド「Not Ready」を返答したものとして説明する[74]。
次に、フィルタドライバ66は、SCSIコマンド「TestUnitReady(P−LUN=3)」をマルチリーダ/ライタ1に発行する[75]。ここでは、第3外部メモリ23がスロットに挿入中でないものとして、その旨を示すコマンド「Not Ready」を返答したものとして説明する[76]。
このように、内蔵フラッシュメモリ15が対応付けられた実論理ユニット(P−LUN0)以外の実論理ユニットについてSCSIコマンド「TestUnitReady」を発行し、そのいずれもが「Not Ready」を返答した場合、最後に、内蔵フラッシュメモリ15が対応付けられた実論理ユニット(P−LUN0)について、SCSIコマンド「TestUnitReady」を発行する[77]。内蔵フラッシュメモリ15は、常に装着中であるので、「Ready」が返答される[78]。
その後、SCSIコマンド「Read/Write(V−LUN=0)」に続いて、ファイルシステム61から、データが出力された場合であっても[79]、その出力データはフィルタドライバ66により読み捨てられ、マルチリーダ/ライタ100には送信されない。また、フィルタドライバ66からファイルシステム61へは、ファイルシステム61からマルチリーダ/ライタ100へのデータの出力がNGである旨を示すステータスが発行される[80]。このステータスが発行されると、ファイルシステム61によりSCSIコマンド「RequestSense」が発行される[80a]。このSCSIコマンド「RequestSense」が発行されると、フィルタドライバ66は、メモリ交換発生を示すセンスデータを転送する[80b]。
このメモリ交換発生を示すセンスデータを受信したファイルシステム61では、前回使用されたメモリ管理情報を破棄する。そして、ファイルシステム61は、再度、SCSIコマンド「Read/Write(V−LUN=0)」を発行する[81]。なお、今度は、仮想論理ユニット(V−LUN0)に対応するアクセス可能実論理ユニットとして、実論理ユニット(P−LUN0)が登録済みである。
よって、SCSIコマンド「Read/Write(V−LUN=0)」を受信したフィルタドライバ66は、受信したSCSIコマンドを、SCSIコマンド「Read/Write(P−LUN0)」に変更する。すなわち、実論理ユニット(P−LUN0)を指定するコマンドに変更し、マルチリーダ/ライタ100に発行する[82]。
これにより、ファイルシステム61とマルチリーダ/ライタ100との間でデータの読み書きが行えるようになる。具体的には、ファイルシステム61からのSCSIコマンド「Read/Write」に対してマルチリーダ/ライタ1がデータ及びステータスを送信する、というやりとりになる[83],[84]。すなわち、スロットのいずれかに、外部メモリ21,22,23が装着されている間は、仮想論理ユニット(V−LUN0)の指定により、その外部メモリ21,22,23にアクセスできる一方、いずれの外部メモリ21,22,23も装着されていない場合には、仮想論理ユニット(V−LUN0)の指定により、内蔵フラッシュメモリ15にアクセスすることができる。
次に、仮想論理ユニットに対応するアクセス可能実論理ユニットとして、内蔵フラッシュメモリ15に対応する実論理ユニット(P−LUN0)が登録されている間における処理について説明する。
まず、フィルタドライバ66は、ファイルシステム61からSCSIコマンド「Read/Write(V−LUN=0)」が発行されると[85]、まず、仮想論理ユニット(V−LUN0)のアクセス可能実論理ユニットPUとして登録されているのが、内蔵フラッシュメモリ15に対応する実論理ユニット(P−LUN0)であることを確認する。そして、OSによる前回のSCSIコマンド(さらに詳細には、「TestUnitReady」以外のSCSIコマンド)の発行から所定期間(本実施例では20秒)以上経過しているか否かを判断し、20秒以上経過している場合には、LUNマップ63(図5参照)において、V−LUN0に対応付けられたP−LUNのうち、現在登録中の実論理ユニット(P−LUN0)以外のP−LUNを指定して、順番に、SCSIコマンド「TestUnitReady」を発行し、その返答を受け取る[86]。この処理を定期的に実行することにより、スロットに外部メモリ21,22,23のいずれかが新たに装着されたか否かを検出することができる。
ここでは、まず、スロット11,12,13のいずれにも新たな外部メモリ21,22,23が装着されなかったものとして説明する。その場合、発行したSCSIコマンド「TestUnitReady」に対する返答は、全て「Not Ready」であるので、ファイルシステム61から受信したSCSIコマンド「Read/Write(V−LUN=0)」を、SCSIコマンド「Read/Write(P−LUN0)」に変更する。すなわち、実論理ユニット(P−LUN0)を指定するコマンドに変更し、マルチリーダ/ライタ1に発行する[87]。
これにより、ファイルシステム61とマルチリーダ/ライタ100の実論理ユニット(P−LUN0)との間でデータの読み書きが引き続き行なわれる。[88],[89]。
次に、内蔵フラッシュメモリ15が対応付けられた実論理ユニット(P−LUN0)がアクセス可能な実論理ユニットPUとして登録されている間に、スロット11,12,13のいずれかに新たな外部メモリ21,22,23が装着された場合について説明する。まず、フィルタドライバ66は、ファイルシステム61からSCSIコマンド「Read/Write(V−LUN=0)」が発行され[90]、前回のSCSIコマンドの発行から20秒以上経過している場合には、上述したように、V−LUN0に対応付けられたP−LUNのうち、現在登録中の実論理ユニット(P−LUN0)以外の実論理ユニットPUを指定して、順番に、SCSIコマンド「TestUnitReady」を発行し、その返答を受け取る[91]。ここでは、実論理ユニットP−LUN2について「Ready」の返答が得られたものとして説明する。
実論理ユニットP−LUN2について「Ready」の返答が得られた場合、すなわち、実論理ユニット(P−LUN2)に対応付けられたメモリ(本実施例では、第2外部メモリ(SM)22)が新たにスロット12に挿入された場合、仮想論理ユニット(V−LUN0)に対応する実論理ユニットPUとして、内蔵フラッシュメモリ15に対応付けられた実論理ユニット(P−LUN0)をアクセス可能な実論理ユニットとしての登録から解除する。
次に、SCSIコマンド「Read/Write(V−LUN=0)」に続いて、ファイルシステム61から、データが出力された場合であっても[94]、アクセス可能な実論理ユニットが未登録であるため、その出力データはフィルタドライバ66により読み捨てられ、マルチリーダ/ライタ1には送信されない。
そして、フィルタドライバ66からファイルシステム61へは、ファイルシステム61からマルチリーダ/ライタ1へのデータの出力がNGである旨を示すステータスが発行される[95]。
このステータスが発行されると、ファイルシステム61によりSCSIコマンド「RequestSense」が発行される[95a]。このSCSIコマンド「RequestSense」が発行されると、ファイルドライバ62は、メモリ無しを示すセンスデータを転送する[95b]。
そのセンスデータを受信したファイルシステム61は、再度SCSIコマンド「Read/Write(V−LUN=0)」を発行する[96]。これを受信したフィルタドライバ66は、V−LUN0に対応するP−LUNを指定して、順番に、SCSIコマンド「TestUnitReady」を発行し、その返答を受け取る[97]。ここでは、第2外部メモリ22がスロット12に挿入されたままであって、実論理ユニット(P−LUN2)について「Ready」の返答が得られたものとして説明する。
実論理ユニット(P−LUN2)について「Ready」の返答が得られた場合、実論理ユニット(P−LUN2)を、仮想論理ユニット(V−LUN0)に対応する実論理ユニットPUとして新たに登録する。
次に、SCSIコマンド「Read/Write(V−LUN=0)」に続いて、ファイルシステム61から、データが出力された場合であっても[101]、その出力データはフィルタドライバ66により読み捨てられ、マルチリーダ/ライタ1には送信されない。
そして、フィルタドライバ66からファイルシステム61へは、ファイルシステム61からマルチリーダ/ライタ1へのデータの出力がNGである旨を示すステータスが発行される[102]。
このステータスが発行されると、ファイルシステム61によりSCSIコマンド「RequestSense」が発行される[102a]。このSCSIコマンド「RequestSense」が発行されると、ファイルシステム61は、メモリ交換発生を示すセンスデータを転送する[102b]。
このセンスデータを受信したファイルシステム61では、前回使用されたメモリ管理情報を破棄する。また、ファイルシステム61は、再度、SCSIコマンド「Read/Write(V−LUN=0)」を発行する[103]。なお、今度は、仮想論理ユニット(V−LUN0)に対応するアクセス可能実論理ユニットとして、新たに装着された外部メモリ22に対応する実論理ユニット(P−LUN2)が登録済みである。
よって、ファイルシステム61からSCSIコマンド「Read/Write(V−LUN=0)」が発行されると、フィルタドライバ66は、発行されたSCSIコマンドを、SCSIコマンド「Read/Write(P−LUN2)」に変更し、マルチリーダ/ライタ100に発行する[104]。
これにより、ファイルシステム61とマルチリーダ/ライタ1との間でデータの読み書きが行えるようになる。[105],[106]。
図14を参照して、フィルタドライバ66によりPC30で実行されるSCSIコマンド受信処理について説明する。図14は、フィルタドライバ66によりPC30で実行されるSCSIコマンド受信処理を示すフローチャートである。このSCSIコマンド受信処理は、OSからSCSIコマンドが発行される場合に実行される。
まず、OSが発行したSCSIコマンドが、「Inquiry」であるか否かを判断する(S40)。SCSIコマンドが「Inquiry」である場合(S40:Yes)、Inquiry処理を実行する(S42)。このInquiry処理により、フィルタドライバ66は、所定のInquiry情報をOSに返却し、本処理を終了する。
一方、OSが発行したSCSIコマンドが「Inquiry」ではない場合(S40:No)、次に、そのSCSIコマンドが、「RequestSense」であるか否かを判断する(S44)。ここではまず、OSが発行したSCSIコマンドが「RequestSense」ではなく(S44:No)、また、センスデータが無い(S46:No)ものとして説明する。
次にOSが発行したSCSIコマンドに記述されたV−LUNについて、アクセス可能な実論理ユニットPUが登録済みであるか否かを判断する(S48)。アクセス可能な実論理ユニットPUが未登録の場合(S48:No)、SCSIコマンドに記述されたV−LUNに対応するP−LUNを記述したSCSIコマンド「TestUnitReady」をマルチリーダ/ライタ100に発行し、Readyの返答が得られる実論理ユニットを検出する(S52)。なお、この処理については、図13における[71]から[78]を参照して説明したので、これ以上の詳細な説明は省略する。そして、Readyの返答が得られたP−LUNがあった場合(S52:Yes)、そのP−LUNの実論理ユニットPUをアクセス可能な実論理ユニットとして登録する(S54)。そして、タイマーをリセットし(S56)、「メモリ交換」をセンスデータに格納し(S58)、処理を終了する。
一方、Readyの返答が得られる実論理ユニットPUが存在しなかった場合(S52:No)、すなわち、外部メモリのいずれも装着されておらず、また、「メモリ無し」をセンスデータに格納し(S60)、処理を終了する。
なお、センスデータ有りの状態でこのSCSIコマンド受信処理を終了した場合、フィルタドライバ66からOSへは、データ通信がNGであることを示すステータスが発行される。そして、データ通信がNGであることを示すステータスがフィルタドライバ66から発行されると、OSからは、センスデータを要求するSCSIコマンド「RequestSense」が発行される。OSからSCSIコマンド「RequestSense」が発行されると(S44:Yes)、フィルタドライバ66は、センスデータを転送すると共に、転送後はそのセンスデータをクリアし(S62)、SCSIコマンド受信処理を正常に終了する。なお、図14に示すフローチャートに示すように、センスデータが有る間は(S46:Yes)、もし、OSからSCSIコマンド「Inquiry」、または「RequestSense」以外のコマンドが発行された場合は全てエラー終了し、フィルタドライバ66からOSへは、データ通信がNGであることを示すステータスが再発行される。
一方、OSが発行したSCSIコマンドに記述されたV−LUNについてのアクセス可能な実論理ユニットPUが登録済みであり(S48:Yes)、且つ、その登録済みの実論理ユニットPUに対応付けられたメモリが外部メモリであって、内蔵フラッシュメモリ15ではない場合(S64:No)、SCSIコマンドに記述されたV−LUNをアクセス可能実論理ユニットとして登録されたP−LUNに変更してマルチリーダ/ライタ100に発行する(S66)。そして、マルチリーダ/ライタ100からエラー(NG)の返答を受信しない場合(S68:No)はS74の処理に進む。
一方、マルチリーダ/ライタ100からエラーの返答を受信した場合(S68:Yes)、SCSIコマンド「RequestSense」を、マルチリーダ/ライタ100に発行し、その結果をV−LUNのセンスデータに格納する(S70)。次に、スロットに外部メモリが入っていないかを判断する(S72)。スロットに外部メモリが入っていない場合(S72:Yes)、これは、前回アクセスした外部メモリがスロットから抜き取られたことを意味しているから、S78の処理に進み、アクセス可能な実論理ユニットとして登録されていたP−LUNを解除する処理を行う。一方、スロットに外部メモリが入っている場合(S72:No)、S74の処理に進む。
次に、OSから発行されたSCSIコマンドが、「TestUnitReady」であるか否かを判断する(S74)。OSから発行されたSCSIコマンドが「TestUnitReady」以外であった場合(S74:No)、タイマーをリセットし(S76)、処理を終了する。一方、OSから発行されたSCSIコマンドが、「TestUnitReadyである場合(S74)、タイマーをリセットせずに処理を終了する。
アクセス可能実論理ユニットとして登録されている実論理ユニットPUが、内蔵フラッシュメモリ15が対応付けられたものであり(S64:Yes)、かつ、タイマーの値が20秒以上となると(S80)、次に、SCSIコマンドに記述されたV−LUNに対応付けられるP−LUNであって、内蔵フラッシュメモリ15が対応付けられたP−LUN以外のものを記述したSCSIコマンド「TestUnitReady」を発行する(S82)。そして、Readyの返答が得られるP−LUNが有るか否かを判断する(S84)。Readyの返答が得られるP−LUNが無かった場合(S84)、すなわちスロットに新たに装着された外部メモリが存在しなかった場合、S66の処理に移行する。
一方、Readyの返答が得られるP−LUNが有った場合(S84:Yes)、それまでアクセス可能な実論理ユニットPUとして登録されていた実論理ユニットを登録から解除し、V−LUNを未登録状態に戻す(S78)。そして、「メモリ無し」をセンスデータに格納し(S60)、処理を終了する。
図15を参照して、第3実施例におけるLUNレイアウト設定画面について説明する。図15は、第3実施例のLUNレイアウト設定画面の一例を示す図である。なお、図15に示すLUNレイアウト設定画面において、第1実施例で説明したLUNレイアウト設定画面と同一の構成については同一の符号を付して説明を省略する。
図15に示すように、第3実施例のLUNレイアウトツール64では、3種類のレイアウトが予め登録されており、LUNレイアウト設定画面において「1ドライブのみで自動切替」ボタン55、「内蔵フラッシュのみ独立」ボタン56、「全ドライブ独立」ボタン57をクリックすることで、そのクリックしたボタンに対応したレイアウトが自動的に設定される。そのため、ユーザの操作負担を軽減することが可能となる。
具体的には、「1ドライブのみで自動切替」ボタン55をクリックすると、図15(a)に示すように、全てのアイコンが仮想論理ユニット(V−LUN0)の枠に自動的に配置される。また、「内蔵フラッシュのみ独立」ボタン56をクリックすると、図15(b)に示すように、内蔵フラッシュメモリ15に対応する実論理ユニット(P−LUN0)のアイコンが仮想論理ユニット(V−LUN0)の枠に自動的に配置されると共に、その他のアイコンが全て仮想論理ユニット(V−LUN1)の枠に自動的に配置される。また、「全ドライブ独立」ボタン57をクリックすると、図15(c)に示すように、各アイコンが各仮想論理ユニット(V−LUN0,V−LUN1,V−LUN2,V−LUN3)の枠に自動的に一つずつ配置される。
しかしながら、ユーザが各自動設定ボタン55〜57をクリックすることで自動的にレイアウトが行われた後でも、ユーザが設定ボタン51をクリックするまでは、ユーザはレイアウトを自由に変更することができる。このため、既定のレイアウトを一部だけ変更したい場合等、ユーザは自由にレイアウトを設定することができる。
なお、内蔵フラッシュメモリ15に対応する実論理ユニット番号が、P−LUN0であることは、例えば、以下のような方法で自動判断することができる。まず、全てのスロットのメモリカードを抜いてPC30を再起動(もしくはUSBケーブル抜き差し)する。このときフィルタドライバロード時に1つだけReadyの実論理ユニットが有れば、それが内蔵フラッシュ15に対応する実論理ユニットであると判断できる。
以上、実施例に基づき本発明を説明したが、本発明は上述した実施例に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変更が可能であることは容易に推察できるものである。
例えば、本実施例では、マルチリーダ/ライタ1の実論理ユニットPUを全ていずれかの仮想論理ユニットVUに対応付けていたが、必ずしも、全ての実論理ユニットPUを、仮想論理ユニットVUに対応付けなくてもよい。特に使用頻度の低い実論理ユニットPUについては、LUNレイアウト設定画面(図4(a)、図15参照)において、いずれの仮想論理ユニットVUにも対応付けないようにLUNレイアウトを設定することにより、PC30からアクセスできないように設定することができる。このようにすれば、例えば「絶対に使用しないメディアについてはPCからも認識されないようにしたい」と厳格に決めておきたいという場合などに有効となる。
また、上記5種類のメディア(CF,SM,MS,SD,内蔵フラッシュメモリ15)に限らず、マイクロドライブ、マルチメディアカード、XDピクチャカード、メモリースティックDUO、さらにはPCカード等の種々のメディアを挿入可能なマルチリーダ/ライタに対しても、上記各実施例で説明したように、本発明を適用できることはいうまでもない。
本発明の第1実施例であるフィルタドライバを実行するPCとマルチリーダ/ライタとPCとを模式的に示した図である。 PCの電気的構成を示すブロック図である。 マルチリーダ/ライタの電気的構成を示すブロック図である。 (a)は、LUNレイアウト設定画面の一例を示す図であり、(b)は、(a)に示すLUNレイアウトに従って表示されるドライブ構成画面の一例を示す図である。 LUNマップを模式的に示す図である。 PCとマルチリーダ/ライタとの間におけるデータ送受信を模式的に示す図である。 ユーザによりLUNレイアウトツールが起動された場合における、PCとマルチリーダ/ライタとの間のデータ送受信を模式的に示す図である。 GET_MAX_LUN受信処理を示すフローチャートである。 第2実施例におけるPCとマルチリーダ/ライタとの間の各種データのやりとりを示す図である。 Inquiry受信処理を示すフローチャートである。 第3実施例において用いられるマルチリーダ/ライタの電気的構成を示すブロック図である。 マルチリーダ/ライタとPCとを模式的に示した図である。 PCとマルチリーダ/ライタとの間におけるデータ送受信を模式的に示す図である。 フィルタドライバによりPCで実行されるSCSIコマンド受信処理を示すフローチャートである。 LUNレイアウト設定画面の一例を示す図である。 従来のマルチリーダ/ライタの斜視図である。 従来のマルチリーダ/ライタがUSB接続されたPCに表示される、ドライブ構成を表示する画面の一例を示す図である。 従来のマルチリーダ/ライタが接続されたPCにおいて表示される、ドライブ構成を表示する画面の一例を示す図である。
1,100 マルチリーダ/ライタ(周辺装置)
2 マイコン(アクセス手段)
9 USB端子(コマンド受信手段)
11 第1スロット(スロット)
12 第2スロット(スロット)
13 第3スロット(スロット)
14 第4スロット(スロット)
15 内蔵フラッシュメモリ(内蔵メディア、メディア)
21 第1外部メモリ(メディア)
22 第2外部メモリ(メディア)
23 第3外部メモリ(メディア)
24 第4外部メモリ(メディア)
30 情報処理装置(PC)
37 キーボード(操作手段の一部)
38 マウス(操作手段の一部)
39 ディスプレイ(仮想ユニット表示手段)
40 USBI/F(接続手段)
60 OSカーネ
61 ファイルシステ
62,66 フィルタドライバ(ドライブ構成設定プログラム)
PU 実論理ユニット(記憶ユニット)
VU 仮想論理ユニット(仮想ユニット)
S48 登録判断ステップ
S50 記憶ユニット検出ステップ
S54 アクセス可能記憶ユニット登録ステップ
S66 コマンド変更ステップ
S78 解除ステップ
S82 記憶ユニット検出ステップ

Claims (8)

  1. 周辺装置と接続する接続手段と、その接続手段により接続された周辺装置の記憶ユニットを管理するためのOS(オペレーティングシステム)とを備えた情報処理装置において実行されるドライブ構成設定プログラムであって、
    前記周辺装置は、データを記憶可能なメディアを複数種類装着可能であって、前記複数種類のメディアのいずれかがそれぞれ割り当てられた複数の記憶ユニットと、前記複数の記憶ユニットのいずれかを指定したコマンドを受信するコマンド受信手段と、そのコマンド受信手段により受信したコマンドで指定される記憶ユニットに割り当てられたメディアとコマンド送信元装置との間のデータ通信を可能にするアクセス手段とを備えるものであって、
    前記ドライブ構成設定プログラムは、
    前記OSから、前記周辺装置における記憶ユニットの総数の問い合わせを受けた場合、前記記憶ユニットの少なくとも1以上が対応付けられると共に前記周辺装置の記憶ユニットの総数よりも少ない数に設定された仮想ユニットの総数を、前記OSに返却する返却ステップと、
    前記返却ステップにより返却した前記仮想ユニットの総数に基づいて、前記OSから前記仮想ユニットのいずれかを指定したコマンドが発行されると、そのコマンドで指定された仮想ユニットに対応付けられる記憶ユニットのうち、割り当てられたメディアが前記周辺装置に装着中である記憶ユニットをアクセス可能記憶ユニットとして登録するアクセス可能記憶ユニット登録ステップと、
    前記OSから発行されたコマンドにおける仮想ユニットの指定を、前記アクセス可能記憶ユニット登録ステップにより登録されたアクセス可能記憶ユニットの指定に変更して前記周辺装置に出力するコマンド変更ステップとを前記情報処理装置に実行させることを特徴とするドライブ構成設定プログラム。
  2. 前記OSからコマンドが発行されると、そのコマンドで指定された仮想ユニットに対応付けられるアクセス可能記憶ユニットが、前記アクセス可能記憶ユニット登録ステップにより既に登録されているかを判断する登録判断ステップと、
    その登録判断ステップにより前記アクセス可能記憶ユニットが登録されていないと判断された場合、前記コマンドで指定された仮想ユニットに対応付けられる記憶ユニットのうち、割り当てられたメディアが前記周辺装置に装着中である記憶ユニットを検出する記憶ユニット検出ステップとを備え、
    前記アクセス可能記憶ユニット登録ステップは、前記記憶ユニット検出ステップにより検出された記憶ユニットを、アクセス可能記憶ユニットとして登録することを特徴とする請求項1記載のドライブ構成設定プログラム。
  3. 記アクセス手段は前記コマンド受信手段により受信したコマンドで指定される記憶ユニットに割り当てられたメディアと前記コマンド送信元装置との間でデータ通信を可能にするものであって、
    前記記憶ユニット検出ステップは、前記コマンドで指定された仮想ユニットに対応付けられる記憶ユニットのうち、割り当てられたメディアが前記周辺装置に装着中である記憶ユニットを、実際に前記情報処理装置との間でデータ通信可能な記憶ユニットとして検出するものであることを特徴とする請求項2記載のドライブ構成設定プログラム。
  4. 前記周辺装置は、取り外し不可能に装着される内蔵メディアと、メディアが着脱可能に装着されるスロットとを備えるものであって、
    前記記憶ユニット検出ステップは、前記記憶ユニットのうち、スロットに着脱可能に装着されるメディアが割り当てられた記憶ユニットを優先的に検出するものであることを特徴とする請求項3記載のドライブ構成設定プログラム。
  5. 前記アクセス可能記憶ユニット登録ステップにより、前記内蔵メディアが割り当てられた記憶ユニットがアクセス可能記憶ユニットとして登録された後、所定時間以上経過することに基づいて、前記記憶ユニット検出ステップは、実際に前記情報処理装置との間でデータ通信可能な記憶ユニットを検出するものであり、
    前記アクセス可能記憶ユニット登録ステップは、前記記憶ユニット検出ステップにより、スロットに装着中のメディアが割り当てられた記憶ユニットが検出された場合、その検出された記憶ユニットを、アクセス可能記憶ユニットとして登録することを特徴とする請求項4記載のドライブ構成設定プログラム。
  6. 前記アクセス可能記憶ユニットとして登録された記憶ユニットに割り当てられたメディアが前記スロットから取り外されると、その記憶ユニットを前記アクセス可能記憶ユニットとしての登録から解除する解除ステップを備えることを特徴とする請求項4または5に記載のドライブ構成設定プログラム。
  7. 前記情報処理装置は、ユーザが所望する仮想ユニットの数を入力するための操作手段を備え、
    前記OSから前記周辺装置における記憶ユニットの総数の問い合わせを受けた場合、前記操作手段により入力された数を、前記問い合わせに対する応答として出力するユニット数応答ステップとを備えることを特徴とする請求項1から6のいずれかに記載のドライブ構成設定プログラム。
  8. 前記OSは、前記仮想ユニットを表示する仮想ユニット表示手段として前記情報処理装置を機能させるものであり、
    前記OSは、前記仮想ユニット表示手段により表示された仮想ユニットのいずれかがユーザにより指定されると、その仮想ユニットを指定したコマンドを発行するものであることを特徴とする請求項1から7のいずれかに記載のドライブ構成設定プログラム。
JP2006095511A 2006-03-30 2006-03-30 ドライブ構成設定プログラム Expired - Fee Related JP4544188B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006095511A JP4544188B2 (ja) 2006-03-30 2006-03-30 ドライブ構成設定プログラム
US11/689,057 US7975101B2 (en) 2006-03-30 2007-03-21 Storage medium storing drive configuration setting program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006095511A JP4544188B2 (ja) 2006-03-30 2006-03-30 ドライブ構成設定プログラム

Publications (2)

Publication Number Publication Date
JP2007272430A JP2007272430A (ja) 2007-10-18
JP4544188B2 true JP4544188B2 (ja) 2010-09-15

Family

ID=38560815

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006095511A Expired - Fee Related JP4544188B2 (ja) 2006-03-30 2006-03-30 ドライブ構成設定プログラム

Country Status (2)

Country Link
US (1) US7975101B2 (ja)
JP (1) JP4544188B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009087124A (ja) * 2007-10-01 2009-04-23 Buffalo Inc 記憶デバイス及び記憶デバイスアクセス制御方法
US20090103404A1 (en) * 2007-10-22 2009-04-23 Chai-Chang Chiu Optic disk drive power management method for computer system
JP2009223400A (ja) * 2008-03-13 2009-10-01 Toshiba Corp コンピュータシステム
US20090259771A1 (en) * 2008-04-09 2009-10-15 Tanik Haluk K Identification of memory cards by host
JP2010079626A (ja) * 2008-09-26 2010-04-08 Hitachi Ltd 計算機システムの負荷分散方法及びシステム
US8214550B2 (en) * 2009-03-22 2012-07-03 Silicon Motion Inc. Method for controlling icon display corresponding to a USB mass storage, associated personal computer, and storage medium storing an associated USB mass storage driver
JP5279626B2 (ja) * 2009-06-12 2013-09-04 株式会社日立製作所 記憶装置制御プログラム
US20120066453A1 (en) * 2010-09-10 2012-03-15 Action Star Enterprise Co., Ltd. Card-reading device for multi cards
CN102402699A (zh) * 2010-09-13 2012-04-04 同星实业股份有限公司 多卡支持的读卡装置
EP2521039B1 (en) * 2011-05-06 2013-10-16 Harman Becker Automotive Systems GmbH Optical disc drive with USB interface
JP6364705B2 (ja) * 2013-05-09 2018-08-01 株式会社リコー 映像出力装置、映像入力判定方法
US10019203B1 (en) * 2013-05-30 2018-07-10 Cavium, Inc. Method and system for processing write requests
CN105893282B (zh) * 2015-01-04 2019-11-12 伊姆西公司 硬盘移动识别方法和系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004503015A (ja) * 2000-07-06 2004-01-29 オンスペック エレクトロニック インコーポレイテッド Pcの有無によらずに数種類のフラッシュメモリカードを読み取るためのフラッシュトースタ
JP2004272457A (ja) * 2003-03-06 2004-09-30 Canon Inc 画像処理装置、画像処理装置の制御方法およびプログラム
JP2005018645A (ja) * 2003-06-27 2005-01-20 Brother Ind Ltd 周辺装置
JP2005107875A (ja) * 2003-09-30 2005-04-21 Brother Ind Ltd 周辺装置及び画像形成装置
JP2005216141A (ja) * 2004-01-30 2005-08-11 Brother Ind Ltd 情報処理システム、ドライブ構成設定プログラム、ドライブ構成設定方法、及び周辺装置
JP2006011955A (ja) * 2004-06-28 2006-01-12 Canon Inc 画像表示システム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2606098B2 (ja) * 1993-09-16 1997-04-30 日本電気株式会社 スタンバイ機能を持つフロッピィディスクコントローラ
JPH0898123A (ja) * 1994-09-22 1996-04-12 Konica Corp デジタルスチルカメラ
JP2002324040A (ja) 2002-06-28 2002-11-08 I-O Data Device Inc 外部入出力部優先度選択スイッチを有する周辺装置
US7724390B2 (en) * 2003-02-14 2010-05-25 Canon Kabushiki Kaisha Selective access to memory cards
US7526580B2 (en) * 2003-06-27 2009-04-28 Brother Kogyo Kabushiki Kaisha Peripheral device
JP4437650B2 (ja) * 2003-08-25 2010-03-24 株式会社日立製作所 ストレージシステム
US7373472B2 (en) * 2004-08-31 2008-05-13 Emc Corporation Storage switch asynchronous replication

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004503015A (ja) * 2000-07-06 2004-01-29 オンスペック エレクトロニック インコーポレイテッド Pcの有無によらずに数種類のフラッシュメモリカードを読み取るためのフラッシュトースタ
JP2004272457A (ja) * 2003-03-06 2004-09-30 Canon Inc 画像処理装置、画像処理装置の制御方法およびプログラム
JP2005018645A (ja) * 2003-06-27 2005-01-20 Brother Ind Ltd 周辺装置
JP2005107875A (ja) * 2003-09-30 2005-04-21 Brother Ind Ltd 周辺装置及び画像形成装置
JP2005216141A (ja) * 2004-01-30 2005-08-11 Brother Ind Ltd 情報処理システム、ドライブ構成設定プログラム、ドライブ構成設定方法、及び周辺装置
JP2006011955A (ja) * 2004-06-28 2006-01-12 Canon Inc 画像表示システム

Also Published As

Publication number Publication date
US7975101B2 (en) 2011-07-05
JP2007272430A (ja) 2007-10-18
US20070233973A1 (en) 2007-10-04

Similar Documents

Publication Publication Date Title
JP4544188B2 (ja) ドライブ構成設定プログラム
JP4553279B2 (ja) データ転送システム、データ転送端末、コントローラ、およびインターフェイス方法
US6105130A (en) Method for selectively booting from a desired peripheral device
US7882287B2 (en) Peripheral device
TW299424B (en) Methods and apparatus for booting a computer having a removable media disk drive
US5768542A (en) Method and apparatus for automatically configuring circuit cards in a computer system
JP4900760B2 (ja) Osイメージのデプロイメントマシン及び方法
JP2007514217A (ja) データ処理装置とコンピュータとの間のデータ交換方法
JP4527348B2 (ja) インタフェース装置、インタフェース装置におけるファームウェアの更新方法、及びそのプログラム
US20130007289A1 (en) Remote control system and remote control method of the same
JP2010044579A (ja) 周辺装置、プログラム、およびドライバインストールシステム
WO2016058427A1 (zh) Usb无线网卡配置方法、主机、usb无线网卡及通信系统
CN106528226B (zh) 操作系统的安装方法及装置
US7590767B2 (en) Electronic apparatus, information processing system and method of controlling said apparatus
JP4622770B2 (ja) 通信システム、情報処理装置、周辺装置、及び通信方法
JP2004213604A (ja) 記憶モジュールを周辺装置に内蔵させるプラグアンドプレイ接続構造及びその方法
JP2006178704A (ja) 複数の機能を有する装置、及び当該装置と接続可能な上位装置
KR100496506B1 (ko) 표준 ums 통신을 이용한 usb 장치의 확장기능제공방법
JP4276219B2 (ja) Usbストレージデバイスの内部状態設定方法
KR101473633B1 (ko) 제어장치
JP4900805B2 (ja) Osイメージのデプロイメントマシン及び方法
US20080077712A1 (en) Peripheral device, peripheral-device recognizing method, and computer product
US11968469B2 (en) Computing apparatus, image capturing apparatus, control method, and storage medium
JPH1153175A (ja) データ処理装置およびデータ処理装置のデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
WO2001097025A1 (en) Device-related software installation

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20091105

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100325

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100325

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100608

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100621

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130709

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4544188

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees