JP5677393B2 - 情報処理装置および命令のオフローディング方法 - Google Patents

情報処理装置および命令のオフローディング方法 Download PDF

Info

Publication number
JP5677393B2
JP5677393B2 JP2012214578A JP2012214578A JP5677393B2 JP 5677393 B2 JP5677393 B2 JP 5677393B2 JP 2012214578 A JP2012214578 A JP 2012214578A JP 2012214578 A JP2012214578 A JP 2012214578A JP 5677393 B2 JP5677393 B2 JP 5677393B2
Authority
JP
Japan
Prior art keywords
identifier
unit
offload
offload instruction
network processing
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
JP2012214578A
Other languages
English (en)
Other versions
JP2014071478A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2012214578A priority Critical patent/JP5677393B2/ja
Priority to US14/038,118 priority patent/US9477466B2/en
Publication of JP2014071478A publication Critical patent/JP2014071478A/ja
Application granted granted Critical
Publication of JP5677393B2 publication Critical patent/JP5677393B2/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Description

本発明の実施形態は、情報処理装置および命令のオフローディング方法に関する。
近年、ほとんどのコンピュータにはCPUを中心としてメモリなどの記憶装置が接続される、いわゆるノイマン型コンピュータというアーキテクチャが用いられている。CPUがアクセスする全てのものにアドレスが付与されており、CPUが持つアドレス空間の中ですべてのデバイスを操作することができる。
CPU負荷軽減や高速化を期待して、しばしばCPUの処理を外部のCPUに代理処理させるオフローディングと呼ばれる手法が用いられている。特にネットワーク分野では、TCP/IPのチェックサムの計算やIPsecなど暗号化のための通信プロトコルの反復計算処理をCPUで行わず、外部デバイスにオフローディングすることで通信速度を高め、遅延時間を低減することが可能である。
他のCPUの持つリソースに直接アクセスすることは容易ではない。すべてのリソースはアドレスを変換することでアクセス可能であるが、異なるCPUでは異なるアドレス空間を持つため、変換が複雑化する上、アーキテクチャの変化に対応することが困難である。複数のCPUの間でリソースを共有する方法がいくつかある。例えば、バスブリッジ、リモートプロシージャコール(RPC)、メモリマップドI/Oと呼ばれる手法が知られている。
特開2010−225122号公報
リソースを一意に指定可能な識別子の変換機能により命令のオフローディングを実現する。
実施形態によれば、リソースを一意に指定可能な第1識別子を引数に含むシステムコールに応じてオフロード命令を発行する発行部と、前記オフロード命令をオフロード先に送信し、前記オフロード先から前記オフロード命令の実行結果を受信する通信部と、を具備する情報処理装置が提供される。前記オフロード命令は、前記第1識別子が前記オフロード先のリソースを一意に指定可能な第2識別子に変換されて実行され、前記発行部は、前記結果を用いて前記システムコールの実行結果とする。
第1実施形態に係る情報処理装置を示すブロック図 第1実施形態に係る識別子の登録の動作を示すフローチャート 第1実施形態に係る識別子の登録の動作を示すシーケンス図 第1実施形態に係る識別子の検索の動作を示すフローチャート 第1実施形態に係る識別子の検索の動作を示すシーケンス図 第1実施形態に係る識別子の抹消の動作を示すフローチャート 第1実施形態に係る識別子の抹消の動作を示すシーケンス図 第2実施形態に係る情報処理装置を示すブロック図 第2実施形態に係る識別子の登録の動作を示すフローチャート 第2実施形態に係る識別子の登録の動作を示すシーケンス図 第2実施形態に係る識別子の検索の動作を示すフローチャート 第2実施形態に係る識別子の検索の動作を示すシーケンス図 第2実施形態に係る識別子の抹消の動作を示すフローチャート 第2実施形態に係る識別子の抹消の動作を示すシーケンス図 第3実施形態に係る情報処理装置を示すブロック図 第3実施形態に係る情報処理装置の別の構成例を示すブロック図 第4実施形態に係る情報処理装置を示すブロック図 第5実施形態に係る情報処理装置を示すブロック図 第5実施形態に係る識別子の検索の動作を示すフローチャート 第5実施形態に係る識別子の検索の動作を示すシーケンス図 第6実施形態に係る情報処理装置を示すブロック図 第6実施形態に係る情報処理装置の別の構成例を示すブロック図 第6実施形態に係る識別子の登録の動作を示すフローチャート 第6実施形態に係る識別子の検索の動作を示すフローチャート 第6実施形態に係る識別子の抹消の動作を示すフローチャート 第7実施形態に係る情報処理装置を示すブロック図 第7実施形態に係る識別子の登録の動作を示すフローチャート 第7実施形態に係る識別子の登録の動作を示すシーケンス図 第7実施形態に係るオフロードプログラムのロード動作を示すフローチャート 第7実施形態に係る実行結果の受信動作を示すフローチャート 第7実施形態に係るオフロードプログラムのロード動作および結果受信の動作を示すシーケンス図 第7実施形態に係るオフロードタスク管理部からの更新通知を受信する動作を示すフローチャート 第7実施形態に係るオフロードタスク管理部からの更新通知を受信する動作を示すシーケンス図 第7実施形態に係るオフロードタスク終了の動作を示すフローチャート 第7実施形態に係るオフロードタスク終了の動作を示すシーケンス図
以下、実施の形態について、図面を参照して説明する。
本実施形態では、一方のCPUがもつファイル記述子に代表される識別子を、他方のCPUのもつ識別子と変換可能な識別子管理表をもち、アクセスが発生した際には、一方のCPUが識別子を変換することで、リソースの共有を実現する。
通常、ハードウェアや特定のメモリ領域へのアクセスはオペレーティングシステム(OS)によって保護されており、通常のユーザアプリケーションがそのような領域にアクセスするときはOSが提供するシステムコールと呼ばれるアプリケーション・プログラミング・インタフェース(API)を介して行われる。この際、実際のメモリ領域のアドレスを秘匿しながらアクセスを提供するため、ファイル記述子と呼ばれる識別子が用いられる。
本実施形態では、メインCPUに紐付けられる識別子をオフロード先のCPUに紐付けられる識別子に変換するための識別子管理表を用いることにより、メインCPU側のアプリケーションから、オフロード先のCPUに接続されたリソースへのアクセスを可能とする。これにより従来技術では必要であった、メインCPUでのアドレスと、オフロード先のCPUでのアドレスの変換を行うことなく、抽象化された、識別子での変換を行うことで、容易にオフロード先のリソースを利用することが可能となる。
(第1実施形態)
第1実施形態は、識別子管理表をメインボードにもつ場合である。識別子管理表をメインボードではなくネットワーク処理ボード等の他のボードにもつ場合については第2実施形態以後で説明する。本実施形態は、システムの起動当初からのオフロード実行、システム起動後の任意の時点からのオフロード実行の両者に適用可能である。オフロード処理を開始するか否かは、リソースの確保を依頼するシステムコール(例えばsocket)に基づく。
<構成の説明>
図1は、第1実施形態に係る情報処理装置を示すブロック図である。
メインボード10は、オフロード命令発行部1、通信部2、識別子管理部3、識別子情報保持部4で構成される。オフロード命令発行部1は、メインボード10上のタスクをオフロード先で処理可能な形に変換し、ネットワーク処理ボード20に処理の代行を依頼する。通信部2は、ネットワーク処理ボード20との間で通信を行う。識別子情報保持部4は、メインボード10側の識別子(プロセスID、ソケット番号、バッファ番号、キュー番号など)に、ネットワーク処理ボード20側の識別子を関連付ける識別子管理表を保持する。識別子管理部3は、識別子情報保持部4が保持する識別子管理表への識別子の登録、検索、抹消などの入出力を行う。
ネットワーク処理ボード20は、オフロード命令実行部5、ネットワーク処理部7、通信部6で構成される。オフロード命令実行部5は、メインボード10から引き受けたタスクを実行する。通信部6は、メインボード10との間で通信を行う。ネットワーク処理部7は、ネットワーク8を介して外部と通信を行う。
<動作の説明>
識別子管理表を利用したオフロード操作は、識別子管理表への登録、検索、抹消の3手順に分けられる。
・識別子の登録
図2は、第1実施形態に係る識別子の登録の動作を示すフローチャート、図3は、第1実施形態に係る識別子の登録の動作を示すシーケンス図である。
オフロード機能を利用するか否かは、ユーザの設定、装置の電力消費と電力供給の比率、残電池容量、事前に設定された省電力ポリシーを記載したプロファイル、即応性が求められるアプリケーションであるか否か、間欠動作のアプリケーションであるか否か、などによって決定される(ステップS1〜S2)。オフロード機能が有効でない場合には、通常どおりにシステムコールを処理する(ステップS9)。オフロード機能の利用開始直後は識別子管理部3が保持する識別子管理表は空の状態である。メインボード10とネットワーク処理ボード20の識別子の組を識別子管理表に登録する作業は、ユーザアプリケーションがOSの管理しているリソースの用意をOSに依頼するシステムコールに連動して行う。例えばLinux(登録商標)では、ソケットの用意をOSに依頼するシステムコールであるsocketシステムコールが発行されるとソケットが用意される。このシステムコールが発行された際に、メインボード10では実際にはソケットを用意せず、仮想ソケット番号(ネットワーク処理ボード上のソケットを特定するためのソケット番号)を用意する(ステップS6)。仮想ソケット番号は、OSが管理しているファイルディスクリプタに連動してOSが貸出可能なファイル記述子であることがのぞましい。これにより、ユーザアプリケーションは、オフロード機能利用中か否かを意識せずにオフロード機能を利用可能となる。
同時に、オフロード命令発行部1は、該システムコールの引数のうち少なくとも1つ以上を引数とするオフロード命令を生成して発行する(ステップS3,S4)。ネットワーク処理ボード20上のオフロード命令実行部5はオフロード命令を実行し、オフロード命令発行部1は、ネットワーク処理ボード20のソケット番号を返り値として受信する(ステップS5)。メインボード10上で生成された仮想ソケット番号と、ネットワーク処理ボード20上で生成されたソケット番号のペアを識別子管理表に登録する(ステップS7)。この際、メインボード10上でユーザアプリケーションが複数存在する場合には、該ユーザアプリケーションのプロセスIDも登録する。なお、OSの管理するリソースの用意を依頼するシステムコールの返り値は、仮想ソケット番号とする(ステップS8)。
・識別子の検索(通信用システムコール全般の処理)
図4は、第1実施形態に係る識別子の検索の動作を示すフローチャート、図5は、第1実施形態に係る識別子の検索の動作を示すシーケンス図である。
ユーザアプリケーションがOSの管理しているリソースへ入出力を行う際には、必ずシステムコールが発行される(ステップS20)。ネットワーク関連の処理を行うシステムコールの例としては、bind,listen,connect,recvfrom,sendto,close,shutdown,setsockopt,getsockopt,getsockname,getpeernameなどのソケット操作に関するものがある。オフロード機能を利用するか否かはここで判定される。システムコールの引数の一つであるソケット番号(ユーザアプリケーションが複数ある場合はソケット番号に加えてプロセスID)が識別子管理表に存在すれば、該システムコールはオフロード機能に関するものであると判定できる(ステップS21,22)。
該システムコールがオフロード機能に関するものであると判定された場合、オフロード命令発行部1は、システムコール引数のうち、ソケット番号以外の引数のうち少なくとも1つ以上の引数と、識別子管理部3で該ソケット番号をネットワーク処理ボード20のソケット番号に変換した番号を引数とするオフロード命令を生成して発行し(ステップS23)、ネットワーク処理ボード20での実行を依頼する。オフロード命令発行部1は返り値としてデータをオフロード命令実行部5から受け取り(ステップS25)、このデータをシステムコールの返り値としてユーザプログラムに返す(ステップS26)。オフロード命令を実行した結果、付随して通知しなければならない情報も、合わせてメインボードに送信する。たとえば、通信インタフェースに発生した状態の変化であるとか、エラー発生時のエラーコードなどである。
・識別子の抹消
図6は、第1実施形態に係る識別子の抹消の動作を示すフローチャート、図7は、第1実施形態に係る識別子の抹消の動作を示すシーケンス図である。
ユーザアプリケーションがOSの管理しているリソースを解放する際、必ずシステムコールが発行される(ステップS30)。この際、該システムコールの引数の一つである、ソケット番号が識別子管理表に存在すれば、該システムコールがオフロード機能に関するものであることが判定できる。オフロード機能に関するものであると判定された場合には、オフロード命令発行部1は、識別子管理部3から該システムコールの引数の一つである、ソケット番号に対応するネットワーク処理ボード20上のソケット番号を検索する(ステップS31)。オフロード命令発行部1は、該システムコールのソケット番号以外の引数のうち少なくとも1つ以上の引数と、ネットワーク処理ボード20上のソケット番号を引数とし、該ソケットに関するリソースの解放を依頼するオフロード命令を作成し(ステップS32)、ネットワーク処理ボード20上のオフロード命令実行部5に処理を依頼する(ステップS33)。オフロード命令実行部5は、該当するリソースを解放し(ステップS34)、その実行結果データをオフロード命令発行部1に返す。これにより識別子情報保持部4から該当する識別の登録が抹消される(ステップS35)。オフロード命令発行部1は、リソース解放の結果をシステムコールの返り値としてユーザに返す(ステップS36)。
(第2実施形態)
第2実施形態は、識別子管理表をネットワーク処理ボードに設ける場合であって、システムの起動直後からオフロード機能の利用を開始する場合に相当する。本実施形態において、第1実施形態と同様の構成および動作については詳細な説明を省略する。
図8は、第2実施形態に係る情報処理装置を示すブロック図である。
<構成の説明>
メインボード10は、オフロード命令発行部1と通信部2で構成される。オフロード命令発行部1は、メインボード10上のタスクをオフロード先で処理可能な形に変換し、ネットワーク処理ボード20に処理の代行を依頼する。通信部2は、ネットワーク処理ボード20との間で通信を行う。
ネットワーク処理ボード20は、オフロード命令実行部5、ネットワーク処理部7、通信部6、識別子管理部3、識別子情報保持部4で構成される。オフロード命令実行部5は、メインボード10から引き受けたタスクを実行する。通信部6は、メインボード10との間で通信を行う。ネットワーク処理部7は、ネットワーク8を介して外部と通信を行う。識別子情報保持部4は、メインボード10側の識別子(プロセスID、ソケット番号、バッファ番号、キュー番号など)にネットワーク処理ボード20側の識別子を関連付ける識別子管理表を保持する。識別子管理部3は、識別子情報保持部4が保持する識別子管理表への識別子の登録、検索、抹消などの入出力を行う。
<動作の説明>
識別子管理表を利用したオフロード操作は、識別子管理表への登録、検索、抹消の3手順に分けられる。
・識別子の登録
図9は、第2実施形態に係る識別子の登録の動作を示すフローチャート、図10は、第2実施形態に係る識別子の登録の動作を示すシーケンス図である。
オフロード機能を利用するか否かは、ユーザの設定、装置の電力消費と電力供給状況、事前に設定されたプロファイル、ユーザアプリケーションの種類などによって決定される(ステップS40〜S41)。オフロード機能が有効でない場合には、通常どおりにシステムコールを処理する(ステップS48)。オフロード機能の利用開始直後は識別子管理部3が保持する識別子管理表は空の状態である。メインボード10とネットワーク処理ボード20の識別子の組を識別子管理表に登録する作業は、ユーザアプリケーションがOSの管理しているリソースの用意をOSに依頼するシステムコールに連動して行う(ステップS40)。例えばLinuxでは、ソケットの用意をOSに依頼するシステムコールであるsocketシステムコールが発行されるとソケットが用意される。このシステムコールが発行された際に、メインボード10では実際にはソケットを用意せず、OSが他の識別子と連番で貸与する番号(仮想ソケット番号)を用意する(ステップS42)。
同時に、オフロード命令発行部1は、該システムコールの引数のうち少なくとも1つ以上の引数と、仮想ソケット番号とを引数とするオフロード命令を生成して発行する(ステップS43,S44)、ネットワーク処理ボード20上のオフロード命令実行部5はオフロード命令を実行する(ステップS45)。これによりソケット番号が生成される。識別子管理部3はメインボード10上で生成された仮想ソケット番号と、ネットワーク処理ボード20上で生成されたソケット番号のペアを識別子管理表に登録する(ステップS46)。この際、メインボード10上でユーザアプリケーションが複数存在する場合には、該ユーザアプリケーションのプロセスIDも登録する。なお、OSの管理するリソースの用意を依頼するシステムコールの返り値は、仮想ソケット番号とする(ステップS47)。
・識別子の検索(通信用システムコール全般の処理)
図11は、第2実施形態に係る識別子の検索の動作を示すフローチャート、図12は、第2実施形態に係る識別子の検索の動作を示すシーケンス図である。
ユーザアプリケーションがOSの管理しているリソースへ入出力を行う際には、必ずシステムコールが発行される(ステップS50)。ネットワーク関連の処理を行うシステムコールの例としては、bind,listen,connect,recvfrom,sendto,close,shutdown,setsockopt,getsockopt,getsockname,getpeernameなどのソケット操作に関するものがある。オフロード機能を利用するか否かはここで判定される。システムコールの引数としてOSに渡されるソケット番号が、ネットワーク処理ボード20上の識別子管理部3に登録されていればオフロードに関するものであると判定できる(ステップS51)。
該システムコールがオフロード機能に関するものであると判定された場合、オフロード命令発行部1は、システムコール引数のうち、ソケット番号と他の引数のうち少なくとも1つ以上の引数とを用いてオフロード命令を生成し(ステップS52)、ネットワーク処理ボード20での実行を依頼する(ステップS53)。ここでのソケット番号は、上述した仮想ソケット番号である。
ネットワーク処理ボード20の識別子管理部3は、識別子情報保持部4を検索し、仮想ソケット番号(識別子)に対応するネットワーク処理ボード20側の識別子を検索する。オフロード命令実行部5は、検索された識別子を用いてオフロード命令を実行し、その実行結果をメインボード10のオフロード命令発行部1に返す(ステップS55)。オフロード命令発行部1はオフロード命令実行部5から受け取った実行結果をシステムコールの返り値としてユーザプログラムに返す(ステップS56)。
・識別子の抹消
図13は、第2実施形態に係る識別子の抹消の動作を示すフローチャート、図14は、第2実施形態に係る識別子の抹消の動作を示すシーケンス図である。
ユーザアプリケーションがOSの管理しているリソースを解放する際、必ずシステムコールが発行される(ステップS60)。この際、該システムコールの引数の一つである、ソケット番号(ユーザアプリケーションが複数ある場合はソケット番号に加えてプロセスID)が識別子管理表に存在すれば、該システムコールがオフロード機能に関するものであることが判定できる(ステップS61)。オフロード機能に関するものであると判定された場合には、オフロード命令発行部1は、ネットワーク処理ボード20の識別子管理部3を通じて、該システムコールの引数の一つである、ソケット番号に対応するネットワーク処理ボード20上のソケット番号を検索する。該システムコールのソケット番号以外の引数のうち少なくとも1つ以上の引数と、ネットワーク処理ボード20上のソケット番号を引数とし、該ソケットに関するリソースを解放するオフロード命令を作成し(ステップS62)、ネットワーク処理ボード20上のオフロード命令実行部5に処理を依頼する(ステップS63)。オフロード命令実行部5は、該当するリソースを解放し(ステップS64)、その実行結果データをオフロード命令発行部1に返す。また、識別子情報保持部4から該当する識別の登録を抹消する(ステップS65)。オフロード命令発行部1は、リソース解放の結果をシステムコールの返り値としてユーザに返す(ステップS66)。
(第3実施形態)
第3実施形態は、オフロード先をストレージ処理ボードとするものである。本実施形態において、第1実施形態と同様の構成および動作については詳細な説明を省略する。
<構成の説明>
図15は、第3実施形態に係る情報処理装置を示すブロック図である。
メインボード10は、オフロード命令発行部1、識別子管理部3、識別子情報保持部4、通信部2で構成される。オフロード命令発行部1は、メインボード10上のタスクをオフロード先で処理可能な形に変換し、ストレージ処理ボード30に処理の代行を依頼する。通信部2は、ストレージ処理ボード30との間で通信を行う。識別子情報保持部4は、メインボード10側の識別子(プロセスIDとファイル番号など)にストレージ処理ボード30側の識別子を関連付ける識別子管理表を保持する。識別子管理部3は、識別子情報保持部4が保持する識別子管理表への識別子の登録、検索、抹消などの入出力を行う。
ストレージ処理ボード30は、オフロード命令実行部5、ストレージアクセス処理部9、通信部6、記憶領域11で構成される。オフロード命令実行部5は、メインボード10から引き受けたタスクを実行する。通信部6は、メインボード10との間で通信を行う。ストレージアクセス処理部9は、記憶領域11への入出力を担う。記憶領域11は、データを保持することができるストレージ装置である。記憶領域11は、ストレージ処理ボード30上に内蔵されるストレージであってもよいし、NFSやiSCSIなどのネットワークストレージであってもよい。
図15の構成は、識別子管理部3および識別子情報保持部4をメインボード10に設ける構成であるが、第2実施形態と同様に、識別子管理部3および識別子情報保持部4をオフロード先に設けてもよい。この場合、図16に示すように、識別子管理部3および識別子情報保持部4がストレージ処理ボード30に設けられる。
<動作の説明>
識別子管理表を利用したオフロード操作は、識別子管理表への登録、検索、抹消の3手順に分けられる。
・識別子の登録
オフロード機能を利用するか否かは、ユーザの設定、装置の電力消費と電力供給状況、事前に設定されたプロファイル、ユーザアプリケーションの種類などによって決定される。オフロード機能の利用開始直後は識別子管理部3が保持する識別子管理表は空の状態である。メインボード10とストレージ処理ボード30の識別子の組を識別子管理表に登録する作業は、ユーザアプリケーションがOSの管理しているファイルの開閉をOSに依頼するシステムコールに連動して行う。例えばLinuxでは、ファイルにアクセスする際にはOSにファイルを開くことを依頼するシステムコールであるopenシステムコールが発行される。このシステムコールが発行された際に、メインボード10ではOSが他の識別子と連番で貸与する番号(仮想ファイル番号)を用意する。同時に、オフロード命令発行部1は、ファイルの位置を特定する位置情報を含み、該ファイルを開くことを依頼するオフロード命令を発行する。ストレージ処理ボード30のオフロード命令実行部5は、ファイルを開く処理を行った後、返り値としてストレージ処理ボード30上のファイル番号をオフロード命令発行部1に返す。識別子管理部3は、ここで得られたストレージ処理ボード30上のファイル番号と、メインボード10上で生成された仮想ファイル番号のペアを識別子管理表に登録する。この際、メインボード10上でユーザアプリケーションが複数存在する場合には、該ユーザアプリケーションのプロセスIDも登録する。なお、アプリケーションがOSにファイルを開くよう依頼するシステムコールの返り値は、仮想ソケット番号とする。
・識別子の検索 (ストレージアクセス用システムコール全般の処理)
ユーザアプリケーションがOSの管理するファイルへ読み書きを行う際には、必ずシステムコールが発行される。たとえば、Linuxのファイル操作に関するものとしては、read、writeなどがある。オフロード機能を利用するか否かはここで判定される。システムコールの引数としてOSに渡されるファイル番号(ユーザアプリケーションが複数ある場合はファイル番号に加えてプロセスID)が識別子管理部3に登録されていればオフロードに関するものであると判定できる。該システムコールがオフロード機能に関するものであると判定された場合、オフロード命令発行部1は、システムコール引数のうち、ファイル番号以外の引数のうち少なくとも1つ以上の引数と、識別子管理部3で該ファイル番号をストレージ処理ボード30上のファイル番号に変換した番号を引数とするオフロード命令を生成し、ネットワーク処理ボード20での実行を依頼する。オフロード命令発行部1は返り値としてデータをオフロード命令実行部5から受け取り、このデータをシステムコールの返り値としてユーザプログラムに返す。
・識別子の抹消
ユーザアプリケーションがOSの管理しているファイルを閉じる際には必ずシステムコールが発行される。この際、該システムコールの引数の一つである、ファイル番号が識別子管理表に存在すれば、該システムコールがオフロード機能に関するものであることが判定できる。オフロード機能に関するものであると判定された場合には、オフロード命令発行部1は、識別子管理部3から該システムコールの引数の一つである、ファイル番号に対応するストレージ処理ボード30上のファイル番号を検索する。該システムコールのファイル番号以外の引数のうち、少なくとも1つ以上の引数と、ストレージ処理ボード30上のファイル番号を引数とする、ファイルを閉じる操作を依頼するオフロード命令を作成し、オフロード命令実行部5に処理を依頼する。オフロード命令実行部5は、実行結果データをオフロード命令発行部1に返し、オフロード命令発行部1は、そのデータをシステムコールの返り値としてユーザに返す。
(第4実施形態)
第4実施形態は、動作モードに応じてオフロード先をネットワーク処理ボード20とする場合において、有線LAN、無線LANなどの通信インタフェース(I/F)を切り替え可能としたものである。識別子管理部3が保持する識別子は、抽象的なレイヤでリソースを管理するためのものであることから、特定の物理層に限定されない。したがって、ネットワーク処理部7における下位レイヤの通信I/Fを切り替えても、これに応じてアプリケーションプログラム自体を変更する必要はなく、プログラムを単純化することができる。
本実施形態において、第1実施形態と同様の構成および動作については詳細な説明を省略する。
<構成の説明>
図17は、第4実施形態に係る情報処理装置を示すブロック図である。
メインボード10は、オフロード命令発行部1、通信部2、識別子管理部3、識別子情報保持部4で構成される。オフロード命令発行部1は、メインボード10上のタスクをオフロード先で処理可能な形に変換し、ネットワーク処理ボード20に処理の代行を依頼する。通信部2は、ネットワーク処理ボード20との間で通信を行う。識別子情報保持部4は、メインボード10側の識別子(プロセスID、ソケット番号、バッファ番号、キュー番号など)にネットワーク処理ボード20側の識別子を関連付ける識別子管理表を保持する。識別子管理部3は、識別子情報保持部4が保持する識別子管理表への識別子の登録、検索、抹消などの入出力を行う。
ネットワーク処理ボード20は、オフロード命令実行部5、ネットワーク処理部7、通信部6、動作モード記憶部12で構成される。オフロード命令実行部5は、メインボード10から引き受けたタスクを実行する。通信部6は、メインボード10との間で通信を行う。
ネットワーク処理部7は、ネットワーク8を介して外部と通信を行うものであり、内部に複数のインタフェースを持つ。例えば、ネットワーク処理部7は、低消費電力無線I/F13、高速無線I/F14、有線I/F15を有する。
<動作の説明>
オフロード機能を利用する基本的な操作(識別子管理部3への登録・検索・削除)は上述した実施形態と同様であり、変更点は以下の通りである。
オフロード命令実行部5は、ネットワーク処理部7内で発生したインタフェースへの変更、タイマー割込みなどによって、動作状態の確認と変更を行う。動作状態とは、各通信インタフェースのON/OFF状態、リンクアップ/リンクダウン状態、各通信インタフェースの消費電力やデータレート、パケットロス率、応答遅延時間、通信速度などのパラメータである。
動作モードは、事前にユーザにより設定され、後に動的に変更されて動作モード記憶部12に保持される。動作モードとしては、通信時の消費電力を抑制する低消費電力モード、遅延時間を最小化する低遅延モード、スループットを最大化する高スループットモードなどである。例えば、高速無線通信を利用している状態で低消費電力モードが設定された場合に、リンクアップしている通信インタフェースを調べ、可能であればそのインタフェース(例えば低消費電力無線I/F13)への切り替えを行う。
(第5実施形態)
第5実施形態は、オフロード先をネットワーク処理ボード20とする場合において、通信プロトコルの階層(レイヤ)や、ネットワークバッファを切り替え可能としたものである。
ネットワーク8の利用中にソケットのレイヤを変更可能とする場合、オフロード中のソケットのレイヤの変更を設定するための新規システムコールを定義する。例えば、オフロード中のソケットがTCP通信を行っていた場合に、新規システムコールが発行されると、下位レイヤであるイーサネット(登録商標)層での通信が許可される。本実施形態では新規システムコールを発行してレイヤ変更を加え、新規システムコール発行前まで使用していたTCP通信のソケットをそのまま用いて、その下位レイヤで通信を行うことができる。通信プロトコルの階層切替によれば、例えばイーサネットに切り替えることでイーサネットフレームを取得することによりMACアドレスを含めた、下位レイヤの通信内容を容易に取得することができる。
通信プロトコルの階層と同様に、オフロード先のネットワークバッファ(キュー:Queue)を切り替えてもよい。以下、この場合を例に挙げて本実施形態の構成および動作を説明する。ネットワーク8の利用中にキューを変更可能とする場合、オフロード中のキューの変更を設定するための新規システムコールが定義される。
図18は、第5実施形態に係る情報処理装置を示すブロック図である。本実施形態において、第1実施形態と同様の構成および動作については詳細な説明を省略する。
<構成の説明>
メインボード10側の構成は第1実施形態と同様である。ネットワーク処理ボード20の構成はほぼ同じであるが、ネットワーク処理部7内に複数のソケットに対応する複数のキュー(Queue1〜Queue4)を有し、新規システムコールによってこれらを変更できる点が第1実施形態とは相違する。この構成によれば、QoSのキューやプロトコル種別を瞬時に切り替えることができ、遅延時間を低減することができる。
<動作の説明>
図19は、第5実施形態に係る識別子の検索の動作を示すフローチャート、図20は、第5実施形態に係る識別子の検索の動作を示すシーケンス図である。
識別子管理部3での、登録・利用・抹消の基本的な動作は第1実施形態と同じである。変更点は以下の通りである。
オフロード中のキューを変更する新規システムコールを定義する。該システムコールが発行されると(ステップS70)、オフロード命令発行部1は、指定された仮想ソケット番号が識別子管理部3に登録されており、対応するネットワーク処理ボード20上の識別子があるか調べる(ステップS71)。オフロード命令発行部1は調べたネットワーク処理ボード20上の識別子を引数として、オフロード命令実行部5に対し、キューを変更する命令を送信する(ステップS72,S73)。オフロード命令実行部5は、該ソケットが使用されており、かつ指定されたキューに該当するキューがあれば、そのキュー番号をオフロード命令発行部1に返す(ステップS74)。オフロード命令発行部1は、キューの変更が完了した通知を受け(ステップS75)、これをユーザアプリケーションに通知する(ステップS76)。
(第6実施形態)
第6実施形態は、2つのオフロード処理の同時利用に関する。本実施形態は、オフロード先をネットワーク処理ボード20およびストレージ処理ボード30とする場合またはネットワーク処理およびストレージ処理の両方を処理可能なオフロード処理ボードとする場合である。本実施形態において、第1実施形態と同様の構成および動作については詳細な説明を省略する。
<構成の説明>
図21は第6実施形態に係る情報処理装置を示すブロック図、図22は別の構成例を示すブロック図である。メインボード10の構成は第1実施形態のメインボード10と同じである。図21は、オフロード先としてオフロード命令実行部5aおよび通信部6aを有するネットワーク処理ボード20とオフロード命令実行部5bおよび通信部6bを有するストレージ処理ボード30とを同時に利用する構成であり、図22は、オフロード先としてネットワーク処理部7、ストレージアクセス処理部9、記憶領域11を有する単一のオフロード処理ボード40を用いる構成である。ネットワーク処理ボード20のオフロード命令実行部5aおよび通信部6aは、第1実施形態で説明したものと同様であり、ストレージ処理ボード30のオフロード命令実行部5bおよび通信部6bは、第3実施形態で説明したものと同様である。図22のオフロード処理ボード40のオフロード命令実行部5および通信部6は、第1および第3実施形態で説明したそれぞれの機能を併せ持つものである。また、識別子情報保持部4は、識別子管理表においてファイル記述子およびプロセスIDに加え、ボードIDをさらに保持する。識別子管理表にボードIDを保持することで、オフロードするリソースを指定することを特徴とする。
<動作の説明>
識別子管理表を利用したオフロード操作は、識別子管理表への登録、検索、抹消の3手順に分けられる。
・識別子の登録
図23は、第6実施形態に係る識別子の登録の動作を示すフローチャートである。
第1、第3実施形態と同様に、オフロード機能を利用するか否かは、ユーザの設定、装置の電力消費と電力供給状況、事前に設定されたプロファイル、ユーザアプリケーションの種類などによって決定される(ステップS81)。オフロード機能の利用開始直後は識別子管理部3が保持する識別子管理表は空の状態である。メインボード10とネットワーク処理ボード20の識別子の組を識別子管理表に登録する作業は、ユーザアプリケーションがOSの管理しているリソースの用意をOSに依頼するシステムコールに連動して行う(ステップS80)。ネットワーク処理またはストレージ処理のオフロード機能の選択は、システムコールの種別、システムコールの引数として渡される識別子に応じて決定される。たとえば、Linuxではsocketシステムコールが発行された場合には、プロセス間のソケット通信またはネットワーク8の通信を開始すると判断できる。一方、ディレクトリ構造の中の特定の位置やファイル名などを引数としてopenシステムコールが呼び出された場合には、ストレージへのアクセスを開始すると判断できる。プロファイルなどの条件と、システムコールの条件から、ネットワーク処理、オフロード処理のオフロードを利用開始すると判断された場合には、第1、第3実施形態と同様に、オフロード命令発行部1は、仮想識別子を生成すると同時に(ステップS82)、ネットワーク処理部7もしくはストレージアクセス処理部9に対して、リソースを用意するオフロード命令を発行する(ステップS83,S84)。仮想識別子、オフロード命令実行部5で生成されたネットワーク処理ボード20上の識別子、システムコールを呼び出したプロセスのID、オフロード処理種別IDが識別子管理部3に登録される(ステップS86)。ユーザアプリケーションには仮想ソケット番号を返す(ステップS87)。
・識別子の検索
図24は、第6実施形態に係る識別子の検索の動作を示すフローチャートである。ここでは図22の場合の動作例を説明する。
ユーザアプリケーションがOSの管理しているリソースへ入出力を行う際には、必ずシステムコールが発行される(ステップS90)。システムコールの種類は第1、第3実施形態に記載のものと同様である。システムコールの引数の一つであるソケット番号(ユーザアプリケーションが複数ある場合はソケット番号に加えてプロセスID)が識別子管理表に存在すれば、該システムコールはオフロード機能に関するものであると判定でき、かつ、オフロード処理ボード40でリソースがすでに確保されていることがわかる(ステップS91)。オフロード命令発行部1は、システムコールの引数のうち、識別子以外の引数のうち少なくとも1つ以上の引数と、識別子管理部3により該識別子をオフロード処理ボード40上の識別子に変換した識別子を引数とするオフロード命令を生成し(ステップS92)、オフロード処理種別IDから判定されるオフロード処理ボード40へのオフロード命令実行を依頼する(ステップS93)。オフロード処理ボード40のオフロード命令実行部5は、受け取ったオフロード命令をネットワーク処理部7またはストレージアクセス処理部9により実行し、その結果をオフロード命令発行部1に返す。オフロード命令発行部1は返り値としてオフロード命令の実行結果をオフロード命令実行部5から受け取り、このデータをシステムコールの返り値としてユーザプログラムに返す(ステップS96)。
・識別子の抹消
図25は、第6実施形態に係る識別子の抹消の動作を示すフローチャートである。
ユーザアプリケーションがOSの管理しているリソースを解放する際、必ずシステムコールが発行される(ステップS100)。この際、該システムコールの引数の一つである、識別子が識別子管理表に存在すれば、該システムコールがオフロード機能に関するものであることが判定できる(ステップS101)。オフロード機能に関するものであると判定された場合には、オフロード命令発行部1は、識別子管理部3から該システムコールの引数の一つである、識別子に対応するオフロード処理ボード40上の識別子を検索する。この際、オフロード種別も合わせて参照する。オフロード命令発行部1はオフロード種別IDを元に、オフロード処理ボード40上でリソースを確保しているネットワーク処理部7またはストレージアクセス処理部9に対して該識別子に関するリソースの解放を依頼するオフロード命令を作成し(ステップS102)、オフロード処理ボード40上のオフロード命令実行部5に処理を依頼する(ステップS103)。オフロード命令実行部5は、該当するリソースを解放する(ステップS104)。識別子管理部3は、解放されたリソースに対応する識別子の登録を抹消する(ステップS105)。リソース解放命令の実行結果はオフロード命令発行部1に返され、オフロード命令発行部1は、そのデータをシステムコールの返り値としてユーザに返す(ステップS106)。
(第7実施形態)
第7実施形態は、オフロード先においてオフロード命令以外のタスクを実行可能としたものである。このため、本実施形態は、第1実施形態の構成に加え、自律的に動作するタスクを管理するオフロードタスク管理部を備える。本実施形態において、第1実施形態と同様の構成および動作については詳細な説明を省略する。
<構成の説明>
図26は、第7実施形態に係る情報処理装置を示すブロック図である。
メインボード10は第1実施形態と同様に、オフロード命令発行部1、通信部2、識別子管理部3、識別子情報保持部4で構成される。ネットワーク処理ボード20は、第1実施形態のオフロード命令実行部5、ネットワーク処理部7、通信部6に加え、オフロードタスク管理部16を有する。オフロードタスク管理部16は、自律的に動作するタスクの実行を管理する。
前提として、タスクの自律的動作に関するオフロード処理用のシステムコールが新たに定義される。
<動作の説明>
・識別子の登録
図27は、第7実施形態に係る識別子の登録の動作を示すフローチャート、図28は、第7実施形態に係る識別子の登録の動作を示すシーケンス図である。
ユーザプログラムが該新規システムコールを呼びだした際に、OSは仮想識別子を生成する(ステップS112)。同時に、オフロード命令実行部5ではネットワーク処理ボード20上のオフロードタスク管理部16に新たな待ち受けタスクを生成する。生成され仮想識別子と、待ち受けタスクの識別子を識別子管理部3に登録する(ステップS113〜S117)。
・識別子の参照
ユーザプログラムから該仮想識別子を引数とするシステムコールが発行された際には、仮想識別子をキーとして、識別子管理部3にて待ち受けタスクの識別子を検索する。ここでいうシステムコールとは、たとえば、該仮想識別番号を引数として、write(出力)する。これにより、自律的に動作する待ち受けタスク(オフロードプログラム)がオフロード処理ボード40にロードされる。オフロードプログラムのロード動作を示すフローチャートを図29に示す(ステップS120〜S127)。ステップS124において、待ち受けタスクがオフロード処理ボード40にロードされる。
該仮想識別子に対してreadを行うことによって、実行結果を読み取ることができる。実行結果の受信動作を示すフローチャートを図30に示す(ステップS130〜S137)。ステップS135において、オフロードタスク管理部16から、待ち受けタスクの実行結果が返され、オフロード命令発行部1に戻される。
以上のオフロードプログラムのロード動作および結果受信の動作を図31のシーケンス図に示す。
処理の完了通知は、割込み、ポーリング等によって実現することができる。オフロードタスク管理部16からの更新通知を受信する動作を図32のフローチャートおよびシーケンス図に示す(ステップS140〜S145)。ステップS142において、割込み、ポーリング等によりオフロードタスク管理部16から更新通知(待ち受けタスクからの通知)が取得され、該通知は、ステップS144においてユーザアプリケーションに返される。
・識別子の抹消
図34は、第7実施形態に係るオフロードタスク終了の動作を示すフローチャート図35は、第7実施形態に係るオフロードタスク終了の動作を示すシーケンス図である。
第1実施形態と同様、ユーザアプリケーションがリソースを解放する際、システムコールが発行される(ステップS150)。例えば、仮想識別子をcloseするシステムコールが発行される。該システムコールが発行された場合は、オフロードタスク管理部16内のタスクを終了させる(ステップS152〜S154)。識別子管理表からもエントリーを削除し(ステップS155)、リソースの解放が完了したことをユーザアプリケーションに通知する(ステップS156)。
(第8実施形態)
第8実施形態は、第7実施形態におけるオフロードタスクの動作例に関する。本実施形態において、第1実施形態と同様の構成および動作については詳細な説明を省略する。
第8実施形態のオフロードタスクは、ネットワーク8から受信したデータをバッファに一定量蓄積する。メインボード10側のメインCPUは、低消費電力モードに遷移させる。ネットワーク8からのデータの受信が完了した場合またはバッファに蓄積したデータが一定量を超えた場合には、その旨をメインボード10に通知する。これに応じてメインボード10はバッファに蓄積されたデータをネットワーク処理ボード20からまとめて受信する。
(第9実施形態)
第9実施形態は、第7実施形態におけるオフロードタスクの別の動作例に関する。本実施形態において、第1実施形態と同様の構成および動作については詳細な説明を省略する。第9実施形態のオフロードタスクは、第8実施形態と同様に、ネットワーク8から受信したデータをバッファに蓄積する。さらに第9実施形態のオフロードタスクは、バッファに蓄積されたデータを参照し、当該データの受信をメインボード10に通知すべきかを判定する。このとき、メインボード10は低消費電力モード中であり、例えばスリープ動作している。
ネットワーク8から受信したデータは、例えば新着メール、アプリケーションの更新ファイル、スケジュールデータなどである。第9実施形態のオフロードタスクは、例えば新着メールやスケジュールデータなど、即時に通知すべきデータを受信した際にはメインボード10に通知を行う。一方、即時に通知する必要がないデータを受信した際には、これをバッファに蓄積し、メインボード10には通知しない。なお、通知を行うべきデータの種別を設定可能としてもよい。
メインボード10は、ネットワーク処理ボード20のオフロードタスクから通知を受けた際には、スリープから復帰し、すみやかにデータの受信処理を行う。データの受信時に通知されずバッファに蓄積されたデータは、例えばスリープからの復帰時にまとめ受信処理する。
以上説明した実施形態によれば、リソースを一意に指定可能な識別子の変換機能により命令のオフローディングを実現することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…オフロード命令発行部、
2,6…通信部、
3…識別子管理部、
4…識別子情報保持部、
5…オフロード命令実行部、
7…ネットワーク処理部、
8…ネットワーク、
9…ストレージアクセス処理部、
10…メインボード、
11…記憶領域、
12…動作モード記憶部、
13…低消費電力無線I/F、
14…高速無線I/F、
15…有線I/F、
16…オフロードタスク管理部、
20…ネットワーク処理ボード、
30…ストレージ処理ボード
40…オフロード処理ボード

Claims (15)

  1. ユーザの設定、装置の電力消費と電力供給の比率、残電池容量、事前に設定された省電力ポリシーを記載したプロファイル、即応性が求められるアプリケーションであるか否か、及び間欠動作のアプリケーションであるか否かの少なくとも1つによって、オフロード命令により指示された処理を実行するか否かを判定する判定部と、
    前記処理を実行すると判定された場合は、第1演算部における第1リソースを一意に指定可能な第1識別子を伴って実行される第1処理に対応するオフロード命令を発行する発行部と、
    前記オフロード命令を第2演算部に送信し、前記第2演算部から前記オフロード命令の実行結果を受信する通信部と、を具備し、
    前記第2演算部においては、前記オフロード命令は、前記第1識別子が前記第2演算部のリソースを一意に指定可能な第2識別子に変換されて、前記オフロード命令により指示された処理が実行されることを特徴とする情報処理装置。
  2. 前記第1識別子は、前記第1演算部のリソースに対応するファイル記述子、またはソケット識別子、またはデバイス識別子を含み、前記第2識別子は、前記第2演算部のリソースに対応する第2のファイル記述子、またはソケット識別子、またはデバイス識別子を含む、請求項1記載の装置。
  3. 前記第2識別子を一意に指定可能な前記第1識別子と、前記第2識別子とを関連付ける識別子変換表を保持する保持部をさらに具備する請求項1または2記載の装置。
  4. 前記発行部、前記通信部、前記保持部を含む第1演算装置と、
    前記オフロード命令によりネットワーク処理を実行し、前記第1演算装置に前記オフロード命令の実行結果を送信するネットワーク処理装置と、をさらに具備する請求項3記載の装置。
  5. 前記発行部および前記通信部を含む第1演算装置と、
    前記第2演算部のリソースの確保を指示する前記オフロード命令により生成される前記第2識別子と、前記第2識別子を一意に指定可能とする前記第1識別子と、を関連付ける識別子変換表を保持し、前記オフロード命令によりネットワーク処理を実行し、前記第1演算部に前記オフロード命令の実行結果を送信する第2演算装置と、をさらに具備する請求項1または2記載の装置。
  6. 前記発行部、前記通信部、前記保持部を含む第1演算装置と、
    前記オフロード命令によりストレージ処理を実行し、前記第1演算部に前記オフロード命令の実行結果を送信するストレージ処理装置と、をさらに具備する請求項3記載の装置。
  7. 前記発行部および前記通信部を含む第1演算装置と、
    前記第2演算部のリソースの確保を指示する前記オフロード命令により生成される前記第2識別子と、前記第2識別子を一意に指定可能とする前記第1識別子と、を関連付ける識別子変換表を保持し、前記オフロード命令によりストレージ処理を実行し、前記第1演算部に前記オフロード命令の実行結果を送信するストレージ処理装置と、をさらに具備する請求項1または2記載の装置。
  8. 前記発行部、前記通信部、前記保持部を含む第1演算装置と、
    前記オフロード命令によりネットワーク処理を実行し、前記第1演算部に前記オフロード命令の実行結果を送信するネットワーク処理装置と、
    前記オフロード命令によりストレージ処理を実行し、前記第1演算部に前記オフロード命令の実行結果を送信するストレージ処理装置と、をさらに具備し、
    前記保持部は、前記ネットワーク処理装置と前記ストレージ処理装置を識別する装置識別子を保持する請求項3記載の装置。
  9. 前記ネットワーク処理装置は、動作モードに応じて前記ネットワーク処理に用いられる通信インタフェース、または通信方式を切り替えるネットワーク処理部を具備する請求項4、8のいずれかに記載の装置。
  10. 前記ネットワーク処理装置は、オフロード命令によって、前記ネットワーク処理に用いられる通信プロトコルまたは、通信プロトコルの階層を切り替えるネットワーク処理部を具備する請求項4、8のいずれかに記載の装置。
  11. 前記ネットワーク処理装置は、前記オフロード命令によって前記ネットワーク処理に用いられる受信バッファ、または送信キューを切り替えるネットワーク処理部を具備する請求項4、8のいずれかに記載の装置。
  12. 前記ネットワーク処理装置は、前記ネットワーク処理によりネットワークから受信したデータを記憶するバッファを具備し、
    前記ネットワーク処理は、前記バッファが記憶するデータをまとめて前記発行部に通知する請求項4、8のいずれかに記載の装置。
  13. 前記第1演算部は、
    前記オフロード命令の実行中に低消費電力状態に遷移し、
    前記第2演算部からの通知に応じて前記低消費電力状態を解除する、
    請求項4乃至12のいずれかに記載の装置。
  14. 前記第2演算部で自律的に動作するタスクを管理するタスク管理部をさらに具備し、
    前記タスク管理部は、前記オフロード命令に従って前記タスクのロードおよび前記タスクの実行結果の通知を行う請求項1または2記載の装置。
  15. ユーザの設定、装置の電力消費と電力供給の比率、残電池容量、事前に設定された省電力ポリシーを記載したプロファイル、即応性が求められるアプリケーションであるか否か、及び間欠動作のアプリケーションであるか否かの少なくとも1つによって、オフロード命令により指示された処理を実行すると判定された場合は、リソースを一意に指定可能な第1識別子を引数に含む第1演算部のシステムコールに応じてオフロード命令を発行すること、
    前記オフロード命令を第2演算部に送信し、第2演算部から前記オフロード命令の実行結果を受信すること、を含み、
    前記オフロード命令は、前記第1識別子が前記第2演算部のリソースを一意に指定可能な第2識別子に変換され、前記オフロード命令により指示された処理が実行され、前記結果を使用して前記システムコールの戻り値が生成される、命令のオフローディング方法。
JP2012214578A 2012-09-27 2012-09-27 情報処理装置および命令のオフローディング方法 Expired - Fee Related JP5677393B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012214578A JP5677393B2 (ja) 2012-09-27 2012-09-27 情報処理装置および命令のオフローディング方法
US14/038,118 US9477466B2 (en) 2012-09-27 2013-09-26 Information processing apparatus and instruction offloading method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012214578A JP5677393B2 (ja) 2012-09-27 2012-09-27 情報処理装置および命令のオフローディング方法

Publications (2)

Publication Number Publication Date
JP2014071478A JP2014071478A (ja) 2014-04-21
JP5677393B2 true JP5677393B2 (ja) 2015-02-25

Family

ID=50340113

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012214578A Expired - Fee Related JP5677393B2 (ja) 2012-09-27 2012-09-27 情報処理装置および命令のオフローディング方法

Country Status (2)

Country Link
US (1) US9477466B2 (ja)
JP (1) JP5677393B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015080764A1 (en) * 2013-11-26 2015-06-04 Siemens Aktiengesellschaft Offloading human-machine-interaction tasks
US10635609B2 (en) 2018-03-02 2020-04-28 Samsung Electronics Co., Ltd. Method for supporting erasure code data protection with embedded PCIE switch inside FPGA+SSD
US11119802B2 (en) 2019-05-01 2021-09-14 EMC IP Holding Company LLC Method and system for offloading parallel processing of multiple write requests
US11294702B2 (en) 2019-05-01 2022-04-05 EMC IP Holding Company LLC Method and system for processing data using a processing pipeline and processing units
US11119803B2 (en) * 2019-05-01 2021-09-14 EMC IP Holding Company LLC Method and system for offloading parity processing
JP7387335B2 (ja) * 2019-08-28 2023-11-28 キヤノン株式会社 通信装置、制御方法およびプログラム
US11204711B2 (en) 2019-10-31 2021-12-21 EMC IP Holding Company LLC Method and system for optimizing a host computing device power down through offload capabilities
CN112269719B (zh) * 2020-09-16 2022-12-02 苏州浪潮智能科技有限公司 基于ai训练平台的文件操作队列控制方法、装置及介质
US20230039450A1 (en) * 2021-08-03 2023-02-09 Samsung Electronics Co., Ltd. Systems, methods, and apparatus to identify functions for computational devices

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7930422B2 (en) * 2004-07-14 2011-04-19 International Business Machines Corporation Apparatus and method for supporting memory management in an offload of network protocol processing
JP5195568B2 (ja) 2009-03-25 2013-05-08 富士通株式会社 システムコール処理のオフロード方法およびこれを適用した疎結合cpu型情報処理装置並びに通信処理装置
JP5381242B2 (ja) * 2009-03-31 2014-01-08 富士通株式会社 マルチプロセッサシステム及び制御プログラム
US10353722B2 (en) * 2010-07-21 2019-07-16 Nec Corporation System and method of offloading cryptography processing from a virtual machine to a management module
WO2012023175A1 (ja) * 2010-08-17 2012-02-23 富士通株式会社 並列処理制御プログラム、情報処理装置、および並列処理制御方法
JP5387714B2 (ja) * 2012-03-28 2014-01-15 株式会社リコー 通信装置,遠隔機器管理システム,およびプログラム

Also Published As

Publication number Publication date
US9477466B2 (en) 2016-10-25
US20140089643A1 (en) 2014-03-27
JP2014071478A (ja) 2014-04-21

Similar Documents

Publication Publication Date Title
JP5677393B2 (ja) 情報処理装置および命令のオフローディング方法
RU2630414C2 (ru) Устройство и способ глубокой проверки пакетов и сопроцессор
CA2935114C (en) Computer, control device, and data processing method
JP4834566B2 (ja) 入出力作業によってブロッキングされたスレッドを強制終了する装置および方法
JP2020530722A (ja) Pduタイプ設定方法、ueポリシー設定方法、および関連エンティティ
JP5516398B2 (ja) マルチプロセッサシステム、マルチプロセッサシステムのos間デバイス共有方法
KR20170015314A (ko) 네트워크 업데이트의 동적 스케줄링 기법
CN108028833A (zh) 一种nas数据访问的方法、系统及相关设备
JP2009199395A (ja) 仮想サーバ管理装置および仮想サーバ管理方法
JP2010272076A (ja) マルチプロセッサシステム
JP4410608B2 (ja) Webサービス提供方法
WO2021043124A1 (zh) 一种kbroker分布式操作系统、存储介质和电子设备
JP2009037353A (ja) 情報処理端末装置及びプログラム
US20040049531A1 (en) Job network setup method, job network execution method, job management system, management terminal and program
JP5818824B2 (ja) デュアル・モード・リーダ・ライタ・ロック
JP6801776B2 (ja) 仮想ネットワーク機能管理装置、仮想インフラストラクチャ管理装置、及び仮想ネットワーク機能構築方法
US20240086236A1 (en) Computing node management method and system
JP2001290665A (ja) プロセッサシステム
JP2013186765A (ja) バッチ処理システム、進捗状況確認装置、進捗状況確認方法、及びプログラム
JP2017184195A (ja) 通信管理装置、通信管理方法及びプログラム
JP2000259591A (ja) 分散処理ジョブ実行方法およびネットワークシステム
WO2013065151A1 (ja) 計算機システム、データ転送方法、および、データ転送プログラム
Pan et al. Opensched: Programmable packet queuing and scheduling for centralized qos control
JP6413817B2 (ja) 会話管理システム、会話管理方法及び会話管理プログラム
EP2979428B1 (en) Efficient socket transfer

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140325

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140805

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140806

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141006

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: 20141202

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141226

LAPS Cancellation because of no payment of annual fees