JP2010176212A - ネットワーク機器、端末装置、アクセス制御方法およびデバイス共有システム - Google Patents

ネットワーク機器、端末装置、アクセス制御方法およびデバイス共有システム Download PDF

Info

Publication number
JP2010176212A
JP2010176212A JP2009015785A JP2009015785A JP2010176212A JP 2010176212 A JP2010176212 A JP 2010176212A JP 2009015785 A JP2009015785 A JP 2009015785A JP 2009015785 A JP2009015785 A JP 2009015785A JP 2010176212 A JP2010176212 A JP 2010176212A
Authority
JP
Japan
Prior art keywords
address
network
information
access
terminal device
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.)
Pending
Application number
JP2009015785A
Other languages
English (en)
Inventor
Yoichi Nakamoto
与一 中本
Shigeki Taira
重喜 平
Kazuyuki Nakagawa
和志 仲川
Nobuhiro Yokoi
伸浩 横井
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2009015785A priority Critical patent/JP2010176212A/ja
Publication of JP2010176212A publication Critical patent/JP2010176212A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】PC間のデバイス共有を容易にする。
【解決手段】PC101の備えるネットワークカード108について、自身のPC101に接続されたデバイス106のIDごとに、そのデバイス106のアドレス情報を示したデバイス管理情報208を備える構成とした。そして、このネットワークカード108は、他のPC111から、デバイス106のデバイス制御メッセージを受信したとき、このデバイス制御メッセージに示されるデバイスのIDと、デバイス管理情報208とを参照して、どのデバイスのどのアドレスへのアクセス要求かを判断する。そして、その判断結果に基づき、CPU102を経由せず、直接そのデバイス106へ処理を実行する。
【選択図】図1

Description

本発明は、ネットワーク経由でのデバイス共有技術に関する。
近年、ネットワーク技術の発展により、様々な機器がネットワークで接続されるようになっている。例えば、Windows(登録商標)OS(Operating System)の場合、SMB(Server Message Block)プロトコルが標準搭載されており、このプロトコルを用いることで、他のPC(Personal Computer)に接続されているプリンタや、他のPCの記憶部内のファイルやフォルダを利用することが可能である。また、特許文献1には、専用ソフトウェアをインストールすることで、他のPCに接続されたUSBデバイスを自身のPCに接続されたUSBデバイスのように利用する技術が開示されている。
特開2007−219711号公報
このWindows(登録商標)OSのファイル共有技術や、特許文献1に開示される技術の場合、他のPCに接続されたデバイスを利用する際に、必ず、そのPCのCPU(Central Processing Unit)が仲介しなければならない。このため、PC間で大量のデータの送受信を行う場合、CPUの処理負荷が大きくなり、デバイスが接続されているPCの備えるシステムに悪影響を与える可能性がある。このような問題は、PC同士を接続するネットワークの高速化が進むと、より顕著な問題となる。また、デバイス共有のためには専用のソフトウェアが必要となるため、PCに用いるOSが制限されてしまうという問題もある。そこで、本発明は、このような問題を解決し、デバイス共有システムにおけるPCのCPUの負荷を削減し、デバイスの共有を行いやすくすることを目的とする。
前記した課題を解決するため、本発明のネットワーク機器は、端末装置に接続されたネットワーク機器であって、端末装置に接続されたデバイスの識別情報およびデバイスの端末装置上のアドレスを示すデバイス管理情報を記憶する記憶部と、他の端末装置からネットワークを介して送信されたデバイス制御情報を受信する通信処理部と、受信したデバイス制御情報に示されるデバイスの識別情報を読み出し、デバイス管理情報を用いて読み出した識別情報に対応するデバイスのアドレスを特定し、端末装置のCPUを経由せずに、デバイス制御情報に従って特定したアドレスのデバイスへアクセスする通信部と、を備える構成とした。このような構成のネットワーク機器によれば、他の端末装置から、自身の端末装置に接続されるデバイスへのアクセスを受け付けたとき、デバイス管理情報を参照して、そのアクセス先アドレス(物理アドレス)を特定し、その特定したアドレス宛に直接アクセス(データの書き込みや読み出し)を行う。つまり、このようなネットワーク機器を備える端末装置は、CPUを経由せずに、直接デバイスへアクセスを行うことができ、デバイス共有システムにおける各端末装置のCPUの負荷を削減できる。その他の構成については、後記する。
本発明によれば、デバイス共有システムにおけるPCのCPUの負荷を削減し、デバイスの共有を行いやすくなる。
本実施の形態のデバイス共有システムの構成を例示した図である。 図1のネットワークカードの構成を示した図である。 図2のデバイス管理情報を例示した図である。 図1のOSの構成を示した図である。 本実施の形態のデバイス共有システムにおけるデバイス情報登録処理の流れを示したシーケンス図である。 本実施の形態のデバイス共有システムにおけるデバイス情報登録処理の流れを示したシーケンス図である。 本実施の形態のデバイス共有システムにおけるPCが、他のPCのデバイスやメインメモリに対し、書き込み処理を行うときの処理手順を示したシーケンス図である。 本実施の形態のデバイス共有システムにおけるPCが、他のPCのデバイスやメインメモリに対し、読み出し処理を行うときの処理手順を示したシーケンス図である。 本実施の形態のデバイス共有システムにおけるPCが、DMA転送の設定を行うときの処理手順を示したシーケンス図である。
以下、本発明を実施するための形態(以下、実施の形態という)について説明する。まず、図1を用いて、本実施の形態のデバイス共有システムの構成を説明する。図1は、本実施の形態のデバイス共有システムの構成を例示した図である。
ここでは、デバイス共有システムが、PC(Personal Computer、第1の端末装置)101と、ネットワーク121経由で接続されるPC(第2の端末装置)111とを備え、PC111が、ネットワーク121経由で、PC101に接続されるデバイス106にアクセスする場合を例に説明する。このネットワーク121は電波、光、音、電気信号等を用いてメッセージやパケットを交換するためのネットワークであり、ルータやケーブル等を備える。
PC101は、このPC101において各種処理の実行を行うCPU(Central Processing Unit)102と、デバイス106と、メインメモリ107と、ネットワークカード(ネットワーク機器)108と、不揮発性記憶装置105とを備える。これらは、バス110により接続される。
このデバイス106は、例えば、プリンタや、USB(Universal Serial Bus)メモリ等である。メインメモリ107は、このPC101の備えるプログラムの実行におけるワーキングエリアや、一時バッファとして用いられる記憶領域である。このメインメモリ107上に、PC101の基本システムであるOS(Operating System)1071、デバイスデバイス106を動作させるためのデバイスドライバ1072、その他アプリケーションプログラム(図示省略)がロードされる。OS1071は、PC101を動作させるだめの基本システムとなるプログラムである。また、このOS1071によりCPU102は、デバイス106、メインメモリ107、ネットワークカード108等の各種デバイスにアドレスを割り当てる。さらに、デバイスドライバ1072は、このPC101の備えるアプリケーションプログラムにより、各種デバイスにアクセスするためのインタフェースを提供するためのプログラムである。なお、OS1071に基づき、CPU102がデバイス106等に割り当てたアドレスは、アドレス情報(後記)として、メインメモリ107の所定領域に記憶される。ネットワークカード108は、ネットワーク121経由でデータの送受信を行うためのインタフェースであり、仮想バススイッチ109(後記)を備える。不揮発性記憶装置105は、磁気ディスク装置、フラッシュメモリ等から構成され、OS1071、デバイスドライバ1072、各種アプリケーションプログラム等、様々なデータが格納される。
また、PC111も、このPC111の各種処理の実行を行うCPU112と、デバイス116と、メインメモリ117と、ネットワークカード118、不揮発性記憶装置115とを備える。これらは、バス120により接続される。メインメモリ117には、OS1171と、デバイスドライバ1172とがロードされる。ネットワークカード118は、仮想バススイッチ119を備える。これらの機能は、前記したPC101の各構成(CPU102、デバイス106、メインメモリ107、ネットワークカード108、不揮発性記憶装置105)の機能と同じなので説明を省略する。
なお、図1における、OS1071,1171およびデバイスドライバ1072,1172は、CPU102,112により実行可能な状態としてメインメモリ107,117上にロードされた状態を示している。また、ここで、PC101,111における、バスの規格は、例えば、PCIe(PCI Express)や、USB(Universal Serial Bus)等である。さらに、このPC101,111には、キーボードやマウス等の入力デバイス、液晶モニタ等の表示デバイス等が接続されていてもよい。
ここでデバイス共有システムの各構成の動作を簡単に説明しておく。デバイス共有システムのPC101,111が起動されると、PC101,111は互いにネットワーク121経由で、自身のPCに接続されるデバイスのデバイス情報(デバイスのベンダID、デバイスID、デバイスが接続されるPCのネットワークアドレス等)を交換する。PC101,111は、他のPCからデバイス情報を受信すると、このデバイス情報をデバイス管理情報208,218に記録しておく。
なお、各PC101,111は、他のPCから受信したデバイス情報をもとに、自身のPCにおけるアドレス情報(後記)を作成する。例えば、PC111は、作成したアドレス情報に基づき、自身のPCからみたデバイス構成を図1の吹き出し部分に示すような構成として把握する。つまり、PC111は、自身のPCのRoot Complex(ルート)配下に、デバイス116と、仮想バススイッチ119とがあり、その仮想バススイッチ119配下に、仮想バススイッチ109と、デバイス118とがあるという構成を把握する。さらに、その仮想バススイッチ109配下に、ネットワーク108と、デバイス106とがあるという構成を把握する。PC111は、外部のデバイス(例えば、PC101のデバイス106)について、このようなデバイス構成により把握するので、この外部のデバイスへのアクセスについて、あたかも自身のPCに接続されるデバイスのようにアクセス要求を行うことができる。
例えば、PC111が、仮想バススイッチ119およびネットワーク121経由で、PC(例えば、PC101)に接続されるデバイス106へデバイス制御メッセージを送信する場合を考える。この場合、PC101の仮想バススイッチ109は、PC111からデバイス106へのデバイス制御メッセージを受信すると、デバイス管理情報208を参照して、そのデバイス制御メッセージがどのデバイスのメッセージかを特定する。そして、仮想バススイッチ109は、そのメッセージの宛先となるデバイス(例えば、デバイス106)へ直接アクセスする。つまり、仮想バススイッチ109は、CPU102を経由せず、直接デバイス106へアクセスし、そのデバイス制御メッセージに基づくデータの書き込みや読み出しを行う。そして、仮想バススイッチ109は、その処理結果をネットワークパケットにカプセル化して、他のPCへ返信する。
ここで、このPC111の仮想バススイッチ119は、CPU112から他のPC(例えば、PC101)に接続されるデバイス(例えば、デバイス106)へのデバイス制御メッセージをネットワーク121経由で送信するとき、そのデバイス制御メッセージをネットワークパケットにカプセル化して、他のPCへ送信する。また、他のPCからデバイス制御メッセージによる処理結果を受信すると、この処理結果をデカプセル化して、CPU112に受け渡す。このようにすることで、PC111のOS1071は、自身が備えるデバイス116へアクセスするのと同様に、他のPCのデバイス(デバイス106)へアクセスすることができる。
次に、このようなネットワークカード108,118について、詳細に説明する。図2は、図1のネットワークカードの構成を示した図である。ネットワークカード108,118は互いに同じ構成であるので、ここでは、代表してネットワークカード108の構成を説明する。
ネットワークカード108は、バスI/F(インタフェース)部202、仮想バススイッチ109、通信処理部204およびデバイス管理情報208を含んで構成されている。このデバイス管理情報208は、このネットワークカード108の記憶部に記憶される。
バスI/F部202は、ネットワークカード108がPC内のバス(図1のバス110)と通信するためのインタフェースである。このバスI/F部202は、バスに流れる各種電気信号をデコードして仮想バススイッチ109に送る。また、このバスI/F部202は、仮想バススイッチ109から渡されたデータをバスに流す。
仮想バススイッチ109は、ネットワーク121経由で他のPCから、自身のPC(PC101)のデバイスへのデバイス制御メッセージを受信したとき、CPU(CPU102)を経由せず、直接、このデバイスへアクセスする。この仮想バススイッチ109は、デバイス管理部205、リモート通信部206およびローカル通信部207を含んで構成される。
デバイス管理部205は、同じPCに接続されるデバイスのデバイス情報およびネットワーク121により接続された他のPCのデバイス情報を示したデバイス管理情報208(詳細は後記)のデータの追加、削除および更新を行う。具体的には、自身のOS1071により作成されたアドレス情報に示される自身のPCのデバイスのIDと、そのデバイスに割り当てられたアドレスをコピーして、デバイス管理情報208を作成しておく。そして、リモート通信部206(詳細は後記)経由で受信した、他のPCのデバイスのデバイス情報と、OS1071によりそのデバイスに割り当てられたアドレスとを対応付けてデバイス管理情報208に記録する。
リモート通信部206は、通信処理部204およびネットワーク121経由で他のPCのネットワークカード(例えば、図1のPC111のネットワークカード118)と通信を行う。例えば、CPU102から出力された、他のPCのデバイスに対するデバイス制御メッセージをカプセル化し、通信処理部204およびネットワーク121経由で、他のPCのネットワークカードへ送信する。また、リモート通信部206は、他のPCのネットワークカードから送信されてきたデバイス制御メッセージを、通信処理部204およびネットワーク121経由で受信すると、このデバイス制御メッセージをデカプセル化し、このデバイス制御メッセージに含まれるアクセス先のデバイスID等を読み出す。
デバイス管理情報208は、自身のPCのメインメモリ(図1のPC101のメインメモリ107)や各種デバイス、ネットワーク121を介して接続されている他のPC(例えば、図1のPC111)のメインメモリ117や各種デバイスの識別情報や、自身のPC上でのアドレスを示した情報である。
図3は、図2のデバイス管理情報を例示した図である。例えば、デバイス管理情報208は、図3に示すように、デバイス(図1のデバイス106,116)の識別情報であるベンダIDおよびデバイスIDと、メインメモリフラグと、そのデバイスのアドレスであるI/O(Input/Output)アドレスおよびメモリアドレスと、ネットワークアドレスとが格納される。
図3に示すデバイス管理情報208のベンダID304の行は、デバイスの製造ベンダを一意に識別するための識別子であるベンダIDが格納される領域である。このデバイスID305の行は、ベンダごとにデバイスを一意に識別するための識別子であるデバイスIDが格納される領域である。各デバイスは、ベンダIDとデバイスIDと組み合わせることで一意に特定することができ、逆に一意に特定可能であれば、ベンダID304とデバイスID305との組み合わせに限定されない。
図3に示すデバイス管理情報208のメインメモリフラグ306の行は、当該デバイスが自身のPCのメインメモリ(図1のPC101のメインメモリ107)であるか、それ以外のデバイスであるか否かを示す情報が格納される領域である。ここでは、メインメモリフラグの値が「0」以外(例えば「1」)であれば、このデバイスは自身のPCのメインメモリであることを示し、「0」であればそれ以外のデバイスであることを示す。また、I/Oアドレス307の行は、当該デバイスの、自身のPCにおいて割り当てられているI/Oアドレスが格納される領域である。さらに、メモリアドレス308の行は、当該デバイスの、自身のPCにおいて割り当てられているメモリアドレスが格納される領域である。また、ネットワークアドレス309の行は、当該デバイスの接続されているPCのネットワークアドレスが格納される領域である。
例えば、図3に示すデバイス管理情報208において、列301に示す情報は、ベンダIDが「0x01」、デバイスIDが「0x23」のデバイスのI/Oアドレスは「0x00fe」、メモリアドレスは「0x4567」であり、このデバイスは、ネットワークアドレスが「192.168.0.1」のPCに存在することを意味する。また、図3に示すデバイス管理情報208において、列302に示す情報は、ネットワークアドレスが「127.0.0.1」のPC、すなわち自身のPCのメインメモリ(図1のPC101のメインメモリ107)の情報であり、そのメモリアドレスが「0x89ac」であることを意味する。なお、図3のデバイス管理情報208の各項目はあくまで一例であり、必要に応じて項目数が増減してもよい。このようなデバイス管理情報208は、PC(図1のPC101)が、自身のPC、または、他のPC(図1のPC111)のデバイスにアクセスするときや、他のPCから、自身のPCのデバイスへのアクセスを受け付けたとき、そのアクセス先アドレスを特定するときに参照される。
図2の通信処理部204は、仮想バススイッチ109から出力されたデータを、ネットワーク121に流すために、規定のデータ長への分割、各種ヘッダの付与等のパケット化処理を行う。また、通信処理部204は、ネットワーク121を介して他のPCから送られてきたパケットのデータ再構築を行い、仮想バススイッチ109へ入力する。
次に、図4を用いて、図1のOS1071,1171を詳細に説明する。図4は、図1のOSの構成を示した図である。OS1071,1171は互いに同じ構成を持つので、ここでは、代表してOS1071を説明する。
OS1071は、受信処理部1073と、アクセス処理部1074と、アドレス管理部1075と、アドレス情報1076とを備える。
この受信処理部1073は、図3のネットワークカード108経由で、他のPCからのデバイス情報を受信し、アドレス管理部1075へ出力する。
アクセス処理部1074は、図1のCPU102から、メインメモリやデバイス(図1のメインメモリ107やデバイス106)へのアクセス要求(デバイス制御メッセージ)を受け付けたとき、アドレス情報1076と、このアクセス要求に示されるデバイスのアドレスとを参照して、当該デバイスへのアクセス処理を実行する。ここで、アクセス処理部1074が、このアドレス情報1076を参照して、アクセス先アドレスは自身のPCのメインメモリ107やデバイス106のアドレスであると判断したとき、そのアドレスをもとに、そのメインメモリ107や、デバイス106へアクセスする。一方、アクセス処理部1074が、このアクセス先アドレスはネットワークカード108配下のアドレスであると判断したとき、このネットワークカード108に対し、アクセス要求を依頼する。
アドレス管理部1075は、受信処理部1073からデバイス情報(例えば、このデバイスの接続されるPCのネットワークアドレス、ベンダID、デバイスID)を受信すると、このデバイス情報に示されるデバイスに対し、アドレス(例えば、I/Oアドレス、メモリアドレス)の割り当てを行う。そして、この割り当てたアドレスを、デバイス情報に含まれるデバイスの識別情報(ベンダIDおよびデバイスID)、ネットワークアドレスと対応付けて、アドレス情報1076に記録する。
アドレス情報1076は、PCに接続されたデバイスの識別情報(ベンダIDおよびデバイスID)ごとに、そのデバイスの、自身のPCにおけるアドレスと、そのネットワークアドレスとを示した情報である。このアドレス情報1076は、OS1071がアクセス先のデバイスのアドレスを特定するときに参照される。このアドレス情報1076の構成は、デバイス管理情報208(図3参照)と同じであるので説明を省略する。
次に、図1のデバイス共有システムにおいて、PC101,111がネットワーク121を介してデバイスを利用する一連の処理の流れを、図5〜図8を用いて説明する。
図1のPC101,111のネットワークカード108,118が起動すると、PC101,111は互いにそれぞれのPCの備えるデバイスに関するデバイス情報を交換し、受信したデバイス情報をそれぞれのデバイス管理情報に登録する。このときの処理手順について、図5および図6を用いて説明する。図5および図6は、本実施の形態のデバイス共有システムにおけるデバイス情報登録処理の流れを示したシーケンス図である。
ここでは、要求元PC(デバイス情報登録の要求元PC)のネットワークカードが、要求先PC(デバイス情報登録の要求先PC)のネットワークカードへ、この要求元PCに接続されるデバイスのデバイス情報を送信し、要求先PCのネットワークカードがこのデバイス情報をデバイス管理情報に登録する手順について説明する。なお、以下の説明において、要求元PCは、図1のPC101であり、要求先PCは、図1のPC111である場合を例に説明するが、これに限定されるものではない。
最初に、要求元PC(図1のPC101)のネットワークカード108が起動すると、このネットワークカード108のデバイス管理部205(図2参照)は、リモート通信部206経由で、デバイス106のデバイス情報を、ネットワーク121を介して要求先PC(デバイス登録の要求先PC、図1のPC111)のネットワークカード118へ送信する(S404)。このデバイス情報は、デバイスのベンダID、デバイスID等を含み、PCが各デバイスにアドレスを割り当てるために必要なデータである。
続いて、要求先PC(PC111)のネットワークカード118は、S404で送信されたデバイス情報を、この要求先PCのOS1171へ出力する(S405)。
この要求先PC(PC111)のOS1171は、デバイス情報を受信すると、この受信したデバイス情報に示されるデバイスに対して、アドレスの割り当てを行う(S406)。そして、OS1171は、割り当てたアドレスを要求先PCのネットワークカード118へ出力する(S407)。また、このOS1171は、デバイス情報と、そのデバイスに割り当てたアドレスとを自身のアドレス情報1076(図4参照)にも登録する。
続いて、要求先PC(PC111)のネットワークカード118は、デバイス管理部205(図2参照)により、自身のデバイス管理情報208に、デバイス情報と、OS1171により割り当てられたアドレスとを登録する(S408)。登録が完了したら、ネットワークカード118のデバイス管理部205は、ネットワークカード登録OKのメッセージを要求元PCのネットワークカード108へ送信する(S409)。このようにして、要求元PCのデバイスのデバイス情報およびそのデバイスのアドレスが、要求先PCのネットワークカードのデバイス管理情報に登録される。なお、要求元PCに複数のデバイスが接続される場合、要求元PCおよび要求先PCは、S404〜S409に示す処理を、デバイスの数だけ繰り返す。
次に、要求元PC(デバイス情報登録の要求元PC、PC101)のネットワークカード108が、要求先PC(デバイス情報登録の要求先PC、PC111)に接続されるデバイスのデバイス情報を取得し、このデバイス情報を要求元PC(PC101)のネットワークカード108のデバイス管理情報208に登録する手順について説明する。
最初に、要求元PC(PC101)のネットワークカード108は、要求先PC(PC111)のネットワークカード118に対して、デバイス情報取得要求を送信する(S504)。
次に、要求先PC(PC111)のネットワークカード108は、自身のデバイス管理情報208を参照し、自身のPCの全デバイスのデバイス情報を要求元PC(PC101)のネットワークカード108へ送信する(S505)。
続いて、要求元PC(PC101)のネットワークカード108は、受信したデバイス情報を要求元PCのOS1071へ出力する(S506)。
次に、要求元PC(PC101)のOS1071は、デバイス情報に示されるデバイスに対してアドレスを割り当て(S507)、割り当てたアドレスを要求元PC(PC101)のネットワークカード108へ出力する(S508)。また、このOS1071は、割り当てたアドレスを、自身のアドレス情報1076(図4参照)にも登録する。
続いて、要求元PC(PC101)のネットワークカード108は、自身のデバイス管理情報208にデバイス情報とアドレスとを登録する(S509)。ここでも、要求元PC(PC101)のネットワークカード108が、S505にて複数のデバイスのデバイス情報を受信した場合は、S506〜S509をデバイスの数だけ繰り返す。このようにして、要求元PCに、要求先PCのデバイスのデバイス情報が登録される。
次に、図1のデバイス共有システムのPCが、他のPCのデバイスやメインメモリに対しアクセスし、データの書き込みや読み出しを行う場合の処理手順について、図7および図8を用いて説明する。図7は、本実施の形態のデバイス共有システムにおけるPCが、他のPCのデバイスやメインメモリに対し、書き込み処理を行うときの処理手順を示したシーケンス図である。また、図8は、本実施の形態のデバイス共有システムにおけるPCが、他のPCのデバイスやメインメモリに対し、読み出し処理を行うときの処理手順を示したシーケンス図である。
まず、図7を用いて、デバイス共有システムのアクセス元のPCから、アクセス先のPCに対し、書き込み処理を行う場合の処理手順を説明する。なお、以下の説明において、ここでのアクセス元PCは、図1のPC101であり、アクセス先PCは、図1のPC111である場合を例に説明するが、これに限定されるものではない。また、アクセス元およびアクセス先は、それぞれPCのCPU、メインメモリ、デバイス等であるものとして説明する。
最初に、アクセス元は、アクセス先アドレスとそのアクセス先アドレスへの書き込みデータとを含むデバイス制御メッセージに基づき、そのアクセス先アドレスへの書き込みデータを送信する(S605)。ここで、もし、このアクセス先アドレスが、自身のPCに存在するデバイスのアドレスである場合、CPU102は、そのデバイスにデータを書き込む。一方、このアクセス先アドレスが自身のPCに存在するデバイスのアドレスではなかった場合、アクセス元PC(PC101)のネットワークカード108が受信する。なお、ここで、このアクセス先アドレスが、自身のPCに存在するデバイスのアドレスか否かは、図4のOS1071のアクセス処理部1074が、アドレス情報1076を参照して判断する。具体的には、このアクセス先アドレスが、アドレス情報1076において、ネットワークカード108に割り当てられたアドレスであった場合、CPU102は、そのアクセス先アドレスは、他のPCに存在するデバイスのアドレスと判断する。一方、このアクセス先アドレスが、アドレス情報1076において、ネットワークカード108に割り当てられたアドレスではないとき、CPU102は、そのアクセス先アドレスは、自身のPCに存在するデバイスのアドレスと判断する。
続いて、アクセス元PC(PC101)のネットワークカード108は、デバイス管理情報208と、アクセス元から受信したアクセス先アドレスをもとに、アクセス先のデバイスを特定し(S606)、そのデバイスが存在するPCのネットワークアドレスを特定する。また、ネットワークカード108は、デバイス管理情報208から、このアクセス先アドレスのデバイスのデバイス情報を読み出す。
次に、ネットワークカード108は、S605で送信されたデバイスのアクセス先アドレスがメモリアドレスの場合は、デバイス管理情報208に示される当該デバイスのメモリアドレスを参照して、そのアクセス先アドレスのベースアドレスからのオフセット値(アドレスオフセット値)を取得する。そして、ネットワークカード118は、アクセス先のデバイスのデバイス情報と、取得したアドレスオフセット値と、このデバイスへ書き込むデータ(転送データ)とをアクセス先のPCのネットワークカード118へ送信する(S607)。なお、このとき、ネットワークカード108は、アクセス先のデバイスのデバイス情報と、取得したアドレスオフセット値と、このデバイスへ書き込むデータ(転送データ)とを、ネットワークパケットにカプセル化して送信する。
続いて、アクセス先PCのネットワークカード118は、アクセス元PCから、ネットワークパケットを受信すると、このパケットをデカプセル化して、アクセス先のデバイスのデバイス情報と、アドレスオフセット値と、デバイスへ書き込むデータ(転送データ)とを読み出す。そして、ネットワークカード118は、自身のデバイス管理情報208を参照し、読み出したデバイス情報およびアドレスオフセット値から、自身のPCでのアクセス先アドレスを取得する(S608)。そして、ネットワークカード118は、取得したアドレス宛に書き込みデータを出力する(S609)。この書き込みデータを受け取ったアクセス先は、書き込みデータをアクセス先アドレスで指定される領域に書き込み(S610)、アクセス元に、その書き込みの結果(書き込みが成功すればOK)を返す(S611,S612,S613)。
このようにして、アクセス元PCからの書き込み要求を受け付けたアクセス先PCのネットワークカード118は、アクセス先PCのCPU112を経由せずに、直接アクセス先へデータを書き込むことができる。
次に、図8を用いて、デバイス共有システムのアクセス元のPCから、アクセス先のPCに対し、読み出し処理を行う場合の処理手順を説明する。
最初に、アクセス元は、アクセス先アドレスと読み出しサイズ(読み出し対象のデータのデータサイズ)とを含むデバイス制御メッセージを受け取ると、自身のPC内でのアクセス先の場所を表すアドレスに対し、アクセス先アドレスと読み出しサイズとを送信する(S705)。ここで、もし、このアクセス先アドレスが、自身のPCに存在するデバイスのアドレスである場合は、CPU102は、そのデバイスからデータを読み出す。一方、このアクセス先アドレスが自身のPCに存在するデバイスのアドレスではなかった場合は、アクセス元PC(PC101)のネットワークカード108がデバイス制御メッセージ(デバイス制御情報)を受信する。なお、ここでも、このアクセス先アドレスが、自身のPCに存在するデバイスのアドレスか否かは、OS1071のアクセス処理部1074が、アドレス情報1076を参照して判断する。
続いて、アクセス元PC(PC101)のネットワークカード108は、デバイス管理情報208と、アクセス元から受信したアクセス先アドレスをもとに、アクセス先PCのネットワークカードを特定する(S706)。また、ネットワークカード108は、デバイス管理情報208から、このアクセス先アドレスのデバイスのデバイス情報を読み出す。
次に、ネットワークカード108は、前記したS607と同様に、S705で送信されたアドレスがメモリアドレスの場合は、デバイス管理情報208に示される当該デバイスのメモリアドレスを参照して、そのアクセス先アドレスのベースアドレスからのオフセット値(アドレスオフセット値)を取得する。そして、ネットワークカード118は、アクセス先のデバイスのデバイス情報と、取得したアドレスオフセット値と、このデバイスから読み出すデータサイズとをアクセス先のPCのネットワークカード118へ送信する(S707)。なお、ここでも、ネットワークカード108は、アクセス先のデバイスのデバイス情報と、取得したアドレスオフセット値と、読み出しデータサイズとをネットワークパケットにカプセル化して送信する。
続いて、アクセス先PCのネットワークカード118は、アクセス元PCから、ネットワークパケットを受信すると、このパケットをデカプセル化して、アクセス先のデバイスのデバイス情報と、取得したアドレスオフセット値とを読み出す。そして、ネットワークカード118は、自身のデバイス管理情報208を参照し、読み出したデバイス情報およびアドレスオフセット値から、自身のPCでのアクセス先アドレスを取得する(S708)。そして、ネットワークカード118は、この取得したアドレスに対して読み出しデータサイズを渡す(S709)。
次に、アクセス先は、受け取った読み出しデータサイズ分のデータをアクセス先アドレスで指定される領域から読み出して(S710)、アクセス元に、その読み出したデータを送信する(S711,S712,S713)。
このようにして、アクセス元PCからの読み出し要求を受け付けたアクセス先PCのネットワークカード118は、アクセス先PCのCPU112を経由せずに、直接アクセス先からデータを読み出し、その読み出しデータをアクセス元へ返すことができる。
次に、本実施形態のデバイス共有システムにおいて、PCのデバイスやメインメモリ間でのDMA転送(Direct Memory Access転送、CPUを介さずに直接データ転送を行うこと)の設定を行ってもよい。この場合の一連の処理の流れを、図9を用いて説明する。図9は、本実施の形態のデバイス共有システムにおけるPCが、DMA転送の設定を行うときの処理手順を示したシーケンス図である。
以下の説明において、アクセス元は、DMA転送の設定を行う主体であり、例えば、アクセス元PC(PC101)のCPU102等である。また、アクセス先は、DMA転送の設定を指示されるアクセス先PC(PC111)のデバイス116またはメインメモリ117に設置されるコントローラ(図示省略)である。
最初に、アクセス元は、自身のPC内でのアクセス先の場所を表すアドレスに対し、アクセス先アドレス(つまり、DMA転送の設定先のコントローラのあるデバイスまたはメインメモリのアドレス)と、このDMA転送における転送元アドレスおよび転送先アドレスと、転送データサイズとを送信する(S805)。すなわち、アクセス元は、どのアドレスのデータを、どの程度、どのアドレスに転送するかを示したDMA転送の設定情報を、そのDMA転送を行うデバイスに対し送信する。
ここで、このアクセス先アドレスが、自身のPCに存在するデバイスのアドレスである場合は、そのデバイスのコントローラにDMA転送の設定を行う。一方、このアクセス先アドレスが自身のPCに存在するデバイスのアドレスではなかった場合は、アクセス元PC(PC101)のネットワークカード108が、設定情報(アクセス先アドレスと、DMA転送の転送元アドレスおよび転送先アドレスと、転送データサイズ)を受信する。なお、ここでも、このアクセス先アドレスが、自身のPCに存在するデバイスのアドレスか否かは、OS1071のアクセス処理部1074が、アドレス情報1076を参照して判断する。
続いて、アクセス元PC(PC101)のネットワークカード108は、デバイス管理情報208と、アクセス元から受信した設定情報に含まれるアクセス先アドレスとを参照して、アクセス先のデバイス、つまりDMA転送の設定先のデバイスのあるアクセス先PCのネットワークカードを特定する(S806)。
また、アクセス元PC(PC101)のネットワークカード108は、受信した設定情報に含まれるDMA転送の転送元アドレスおよび転送先アドレスから、その転送元アドレスおよび転送先アドレスに対応するデバイス情報と、アドレスオフセット値を取得する(S807)。
そして、アクセス元PCのネットワークカード108は、アクセス先アドレス、DMA設定の転送先アドレス、転送元アドレスそれぞれに対応するデバイスのデバイス情報およびアドレスオフセット値と、転送サイズとをアクセス先PCのネットワークカード118へ送信する(S808)。
続いて、アクセス先PCのネットワークカード118は、自身のデバイス管理情報208を参照し、受信したデバイス情報およびアドレスオフセット値から、アクセス先アドレスと、DMA転送の転送先アドレスおよび転送元アドレスとを取得する(S809)。
そして、ネットワークカード118は、アクセス先アドレスに対し、DMA設定の転送元アドレス、転送先アドレス、転送サイズを送信する(S810)。
続いて、アクセス先は、受信した転送元アドレス、転送先アドレス、転送サイズをもとに、DMA転送設定を行い(S811)、アクセス元にその応答(設定成功であればOK)を返す(S812,S813,S814)。
この後、DMA転送設定が行われたPC101,111は、そのDMA転送の設定に基づき、転送元アドレスのデバイスから、転送先アドレスのデバイスへのデータ転送を行う。このときのデータ転送処理は、データの書き込み処理であれば、図7に示した処理手順に従って行い、またデータの読み出し処理であれば、図8に示した処理手順により行う。
102,112 CPU
106,116 デバイス
105,115 不揮発性記憶装置
107,117 メインメモリ
108,118 ネットワークカード
109,119 仮想バススイッチ
110,120 バス
121 ネットワーク
202 バスI/F部
204 通信処理部
205 デバイス管理部
206 リモート通信部
207 ローカル通信部
208,218 デバイス管理情報
1071,1171 OS
1072,1172 デバイスドライバ
1073 受信処理部
1074 アクセス処理部
1075 アドレス管理部
1076 アドレス情報

Claims (8)

  1. 端末装置に接続されたネットワーク機器であって、
    前記端末装置に接続されたデバイスの識別情報および前記デバイスの前記端末装置上のアドレスを示すデバイス管理情報を記憶する記憶部と、
    他の端末装置からネットワークを介して送信されたデバイス制御情報を受信する通信処理部と、
    前記受信したデバイス制御情報に示されるデバイスの識別情報を読み出し、前記デバイス管理情報を用いて前記読み出した識別情報に対応するデバイスのアドレスを特定し、前記端末装置のCPUを経由せずに、前記デバイス制御情報に従って前記特定したアドレスのデバイスへアクセスする通信部と、
    を備えることを特徴とするネットワーク機器。
  2. 前記通信処理部は、
    他の端末装置からカプセル化されたデバイス制御情報を受信し、
    前記通信部は、
    前記受信したデバイス制御情報をデカプセル化し、前記デカプセル化したデバイス制御情報に示されるアクセス先のデバイスの識別情報を読み出すリモート通信部と、
    前記読み出したアクセス先のデバイスの識別情報と、前記デバイス管理情報とを参照して、前記アクセス先のデバイスのアドレスを特定し、前記デバイス制御情報に従い、前記特定したアドレスのデバイスからのデータの読み出し、または、データの書き込みを実行するローカル通信部とを備えることを特徴とする請求項1に記載のネットワーク機器。
  3. 前記リモート通信部は、
    前記デバイスから読み出されたデータ、または、データの書き込み結果をカプセル化し、前記他の端末装置へ送信することを特徴とする請求項2に記載のネットワーク機器。
  4. 請求項2または請求項3に記載のネットワーク機器を備える端末装置であって、
    前記ネットワーク機器のデバイス管理情報は、
    前記他の端末装置に接続されたデバイスの識別情報ごとに、前記デバイスの接続される端末装置のネットワークアドレスを示した情報をさらに含み、
    前記端末装置は、
    前記端末装置に接続されたデバイスおよび他の端末装置に接続されたデバイスの識別情報ごとに、前記デバイスのアドレスを示したアドレス情報を記憶する記憶部と、
    前記デバイスへのアクセス要求を受け付けたとき、前記アドレス情報と、前記アクセス要求に示されるアクセス先のデバイスのアドレスとを参照して、前記アクセス先のデバイスのアドレスが、前記ネットワーク機器配下のアドレスであるとき、前記ネットワーク機器に対し、前記デバイスへのアクセス要求を依頼するアクセス処理部とを備え、
    前記アクセス処理部から、前記デバイスへのアクセス要求の依頼を受け付けたとき、前記デバイス管理情報を参照して、前記デバイスの接続される端末装置のネットワークアドレスを特定し、ネットワーク経由で、前記アクセス要求をカプセル化したデバイス制御情報を、前記特定したネットワークアドレスに該当する他の端末装置のデバイス宛に送信することを特徴とする端末装置。
  5. 前記端末装置は、
    ネットワーク経由で、他の端末装置から、当該他の端末装置が備えるデバイスの識別情報を示したデバイス情報および当該他の端末装置のネットワークアドレスを受信する受信処理部と、
    前記受信したデバイス情報に含まれるデバイスの識別情報に対し、自身の端末装置におけるネットワーク機器配下のアドレスを割り当て、前記デバイスの識別情報と、前記割り当てたアドレスとを対応付けた情報を、前記ネットワーク機器へ出力し、前記対応付けた情報を前記アドレス情報に記録するアドレス管理部とをさらに備え、
    前記ネットワーク機器は、
    前記アドレス管理部から出力された前記デバイスの識別情報およびネットワークアドレスを前記デバイス管理情報に記録することを特徴とする請求項4に記載の端末装置。
  6. 前記ネットワーク機器は、
    自身の端末装置に接続されたデバイスのデバイス情報を、ネットワーク経由で、他の端末装置へ送信することを特徴とする請求項4または請求項5に記載の端末装置。
  7. 端末装置の備えるネットワーク機器が、
    他の端末装置からデバイス制御情報を受信し、
    自身の端末装置に接続されたデバイスの識別情報ごとに、前記デバイスのアドレス情報を示したデバイス管理情報と、前記受信したデバイス制御情報に示されるアクセス先のデバイスの識別情報とを参照して、前記デバイスの前記自身の端末装置におけるアドレスを特定し、
    前記デバイス制御情報に従い、前記特定したアドレスのデバイスからのデータの読み出し、または、データの書き込みを実行するアクセス制御方法。
  8. デバイスが接続された第1の端末装置と、ネットワーク経由で、前記デバイスへアクセスする第2の端末装置とを含んでなるデバイス共有システムであって、
    前記第2の端末装置は、
    前記端末装置に接続されたデバイスおよび他の端末装置に接続されたデバイスの識別情報ごとに、前記デバイスのアドレスを示したアドレス情報を記憶する記憶部と、
    前記デバイスへのアクセス要求を受け付けたとき、前記アドレス情報と、前記アクセス要求に示されるアクセス先のデバイスのアドレスとを参照して、前記アクセス先のデバイスのアドレスが、前記ネットワーク機器配下のアドレスであるとき、前記ネットワーク機器に対し、前記デバイスへのアクセス要求を依頼するアクセス処理部と、
    前記アクセス処理部から、前記デバイスへのアクセス要求の依頼を受け付けたとき、前記第1の端末装置に接続されたデバイスの識別情報ごとに、前記デバイスの接続される端末装置のネットワークアドレスを示した第2のデバイス管理情報を参照して、前記デバイスの接続される端末装置のネットワークアドレスを特定し、ネットワーク経由で、前記アクセス要求をカプセル化したデバイス制御情報を、前記特定したネットワークアドレスに該当する第1の端末装置のデバイス宛に送信する第2のネットワーク機器とを備え、
    前記第1の端末装置は、
    当該第1の端末装置に接続されたデバイスの識別情報ごとに、前記デバイスの前記端末装置上のアドレスを示した第1のデバイス管理情報と、
    前記第2の端末装置からカプセル化されたデバイス制御情報を受信する通信処理部と、
    前記受信したデバイス制御情報をデカプセル化し、前記デカプセル化したデバイス制御情報に示されるアクセス先のデバイスの識別情報を読み出すリモート通信部と、
    前記読み出したアクセス先のデバイスの識別情報と、前記第1のデバイス管理情報とを参照して、前記アクセス先のデバイスのアドレスを特定し、前記デバイス制御情報に従い、前記特定したアドレスのデバイスからのデータの読み出し、または、データの書き込みを実行するローカル通信部とを有する第1のネットワーク機器を備えることを特徴とするデバイス共有システム。
JP2009015785A 2009-01-27 2009-01-27 ネットワーク機器、端末装置、アクセス制御方法およびデバイス共有システム Pending JP2010176212A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009015785A JP2010176212A (ja) 2009-01-27 2009-01-27 ネットワーク機器、端末装置、アクセス制御方法およびデバイス共有システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009015785A JP2010176212A (ja) 2009-01-27 2009-01-27 ネットワーク機器、端末装置、アクセス制御方法およびデバイス共有システム

Publications (1)

Publication Number Publication Date
JP2010176212A true JP2010176212A (ja) 2010-08-12

Family

ID=42707163

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009015785A Pending JP2010176212A (ja) 2009-01-27 2009-01-27 ネットワーク機器、端末装置、アクセス制御方法およびデバイス共有システム

Country Status (1)

Country Link
JP (1) JP2010176212A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015033384A1 (ja) * 2013-09-03 2015-03-12 株式会社アキブシステムズ I/oデバイスの仮想化のためのコンピュータシステム及びその運用方法並びにhub装置
JP2015060569A (ja) * 2013-09-20 2015-03-30 株式会社東芝 情報処理装置、およびプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015033384A1 (ja) * 2013-09-03 2015-03-12 株式会社アキブシステムズ I/oデバイスの仮想化のためのコンピュータシステム及びその運用方法並びにhub装置
JPWO2015033384A1 (ja) * 2013-09-03 2017-03-02 株式会社アキブシステムズ I/oデバイスの仮想化のためのコンピュータシステム及びその運用方法並びにhub装置
US10585842B2 (en) 2013-09-03 2020-03-10 Akib Systems Inc. Computer system for virtualizing I/O device and method of operating the same and hub device
JP2015060569A (ja) * 2013-09-20 2015-03-30 株式会社東芝 情報処理装置、およびプログラム

Similar Documents

Publication Publication Date Title
US20200236191A1 (en) Memory system allowing host to easily transmit and receive data
EP3204862B1 (en) Emulated endpoint configuration
WO2015139470A1 (zh) Rdma下数据读写的方法、装置和网络系统
CN108984465B (zh) 一种消息传输方法及设备
WO2015194534A1 (ja) スイッチ装置とコンピュータシステムと方法並びにプログラム
US20140310536A1 (en) Storage device assisted inline encryption and decryption
JP6882943B2 (ja) 半導体装置
WO2015061971A1 (zh) 数据处理系统和数据处理的方法
US20200050551A1 (en) Data Access Method and Apparatus
CN101751371A (zh) 在不同种类处理单元中对非统一存储器访问的芯片组支持
CN102646025B (zh) 可向从网络得到的数据附加时间信息的存储卡
CN101751352B (zh) 不同种类处理单元中对绑定和迁移硬件设备的芯片组支持
JP2021515318A (ja) NVMeベースのデータ読み取り方法、装置及びシステム
CN112579311A (zh) 访问固态硬盘的方法及存储设备
US20100257302A1 (en) I/o connection system and i/o connection method
CN114201268A (zh) 一种数据处理方法、装置、设备及可读存储介质
TWI280483B (en) Method, system, and computer readable recording medium for memory based data transfer
WO2018040622A1 (zh) 信息处理方法和装置
CN105991679A (zh) 一种网络分享的实现方法和装置
JP2010176212A (ja) ネットワーク機器、端末装置、アクセス制御方法およびデバイス共有システム
US10853255B2 (en) Apparatus and method of optimizing memory transactions to persistent memory using an architectural data mover
JP2014179066A (ja) ストレージ制御装置、ストレージシステム、およびストレージ制御方法
CN116483259A (zh) 一种数据处理方法以及相关装置
CN105022707B (zh) 接口单元装置
JP5911943B2 (ja) データの少なくとも一部が処理に利用可能であることの少なくとも1つのインジケーションの少なくとも部分的な提供