JP2007018195A - 情報処理方法および情報処理装置 - Google Patents

情報処理方法および情報処理装置 Download PDF

Info

Publication number
JP2007018195A
JP2007018195A JP2005198118A JP2005198118A JP2007018195A JP 2007018195 A JP2007018195 A JP 2007018195A JP 2005198118 A JP2005198118 A JP 2005198118A JP 2005198118 A JP2005198118 A JP 2005198118A JP 2007018195 A JP2007018195 A JP 2007018195A
Authority
JP
Japan
Prior art keywords
task
processing
input
data
output
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.)
Granted
Application number
JP2005198118A
Other languages
English (en)
Other versions
JP4979206B2 (ja
Inventor
Koichi Hayakawa
康一 早川
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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
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 Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Priority to JP2005198118A priority Critical patent/JP4979206B2/ja
Priority to US11/994,513 priority patent/US8234651B2/en
Priority to PCT/JP2006/310906 priority patent/WO2007004374A1/ja
Publication of JP2007018195A publication Critical patent/JP2007018195A/ja
Application granted granted Critical
Publication of JP4979206B2 publication Critical patent/JP4979206B2/ja
Active 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/485Resource constraint
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/656Address space sharing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 マルチタスクシステムにおいてデータの入出力を効率的に行う技術を提供する。
【解決手段】プロセッサ200はアプリケーションを実行しHDDに対して入出力すべきデータを生成するタスクAと、HDDコントローラ650へのデータ入出力要求を制御するタスクBとを順次処理する。タスクAの処理時に、タスク処理部202はタスクの処理途上にHDDへの入出力の必要が生じた際、要求フォーマット生成部204およびアクセス要求発行部208へ通知する。要求フォーマット生成部204はタスクBの保持する貸し出しコードをマッピングによって参照し、要求フォーマットを生成する。データ整形部206は貸し出しコードを参照し、データの分割または接続を行う。アクセス要求発行部208はタスクBのアクセス情報送受部212に対しアクセス要求を発行する。タスクBの処理時に、HDDコントローラ制御部210は複数のアクセス要求を調停し、HDDコントローラ650へ順次要求を設定する。
【選択図】 図3

Description

本発明は、情報処理技術に関し、特に複数のタスクを並列処理する情報処理方法、およびそれを利用した情報処理装置に関する。
近年、情報処理装置の分野では、複数のプログラムを同時にメモリに読み込み、それに対応する複数のタスクを切り替えながら同時進行で処理するマルチタスクの機能が、一般的に用いられるようになってきた。複数のタスクは、情報処理装置の基礎的制御を行うOS(Operation System)によって各タイムスライスに対してスケジューリングされ、それに基づいてプロセッサが処理を行う。
プロセッサによる処理中に、HDD(Hard Disk Drive)などの入出力装置へのアクセスの必要が生じたタスクはプロセッサを開放し、スケジューリングされた別のタスクの処理が開始される。タスクに割り当てられたタイムスライスが満了した場合も、当該タスクから次のタスクへと切り替わる。
一方、HDDへのデータの書き込みや読み出し処理、ネットワークを介したデータの伝送など、外部の入出力装置などとデータのやり取りを行う場合には、入出力装置のそれぞれに適したデータ形式に整形して書き込んだり、そのデータ形式によって読み出されたデータを一般的な形式に戻したりする場合が多い。このようなデータ整形は一般的には入出力装置とともに提供される装置のドライバソフトウェアや、通信プロトコルによって実行される。これにより一般的なアプリケーションソフトウェアのタスクの処理によって、ドライバソフトウェアなどの起動要求がなされ、ドライバソフトウェアはそれに応じてデータの整形などを行い入出力の制御を行う、というように処理の分業が行われていた。
上述のマルチタスク処理において、複数のタスクが同一の入出力装置へのアクセス要求を次々に発生させると、ドライバソフトウェアはそれらに対応したデータ整形処理などを順次行う必要があるため、後にアクセス要求を発生させたタスクはそれ以前のタスクのアクセスが完了するまで待つ必要がある。上述のとおり、入出力装置へのアクセス期間中のタスクはプロセッサによる処理が行われないため、別のタスクのアクセスにかかる時間も含めた期間、動作が停止してしまうことになる。この現象は一度に処理するタスクの数が多いほど顕著となるため、今後の技術的進歩によって同時に処理することのできるタスクの数が増加するほど、顕在化する問題となり得ることを本発明者は認識した。
本発明はこのような課題に鑑みてなされたものであり、その目的はマルチタスクシステムにおいて、効率のよい入出力処理を行うことのできる技術を提供することにある。
本発明のある態様は情報処理方法に関する。この方法は、第一のタスクに割り当てられたメモリ空間に、第二のタスクに割り当てられたメモリ空間の少なくとも一部をマッピングするステップと、第一のタスクに割り当てられたメモリ空間にマッピングされた、第二のタスクに割り当てられたメモリ空間に格納された貸し出しコードに基づき、第一のタスク処理の一部を行うステップと、を含むことを特徴とする。
この方法は、第一のタスク処理時に所定の演算処理の必要が生じた際、または、入出力ユニットへ入出力をすべきデータが発生した際、第一のタスク処理の一部を行うステップが、貸し出しコードに含まれる処理コードに基づき、演算処理を行ったり、入出力ユニットが認識できる形式で入出力要求情報を生成したりしてよい。
「タスク」とは、情報処理装置の制御を行うOSや、アプリケーションソフトウェアなど自体、またはそれらに含まれる、ある単位の機能を達成するための情報処理の内容をいう。「第一のタスク処理」と「第二のタスク処理」は同一のタイムスライスにおいて実行してもよいし、異なるタイムスライスにおいて実行してもよい。またこれらのタスクは一のプロセッサに含まれるサブプロセッサにおいて処理されてもよいし、異なる2以上のプロセッサにおいて処理されてもよい。前述の「入出力ユニット」はHDDやプリンタなどの入出力装置や、ネットワークプロトコルなど、内部で固有のデータ処理体系を有し、実際のデータの入出力を行う装置やユニット、ソフトウェアなどの機能ブロックのいずれでもよい。
本発明の別の態様は情報処理装置に関する。この装置は、複数のタスクを処理する一以上のプロセッサと、各タスクに割り当てられた領域を含むメモリと、を備え、プロセッサは、第一のタスクに割り当てられたメモリ領域に、第二のタスクに割り当てられたメモリ領域の少なくとも一部をマッピングするマッピング処理部を備え、第一のタスクに割り当てられたメモリ領域にマッピングされた、第二のタスクに割り当てられたメモリ領域に格納された貸し出しコードに基づき、第一のタスク処理の一部を行うことを特徴とする。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、情報処理において発生したデータの入出力を効率的に行うことができる。
実施の形態1
図1は、本実施の形態における情報処理装置1000の構成を示すブロック図である。情報処理装置1000は、プロセッサ200、メインメモリ50、HDDコントローラ650、およびHDD600を含み、それらがバス40によって接続されている。図1などにおいて、様々な処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、CPU、メモリ、その他のLSIで構成することができ、ソフトウェア的には、メモリにロードされた予約管理機能のあるプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
この情報処理装置1000では、情報処理装置1000を効率よく使用するための機能、環境を提供し、装置全体を統括的に制御するOSが実行される。そのOS上で複数のアプリケーションソフトウェア(以下、単にアプリケーションという)が実行される。
プロセッサ200は、複数のサブプロセッサ30、管理プロセッサ32およびDMAコントローラ34を含む。管理プロセッサ32は、複数のアプリケーションや入出力制御プログラムに対応するタスクを時分割し、タイムスライスごとにサブプロセッサ30に割り当てて実行させることにより、並列処理を行っている。プロセッサ200が処理するタスクのひとつが、HDD600へのデータの書き込みおよび読み出しのためのHDDコントローラ650の制御である。DMAコントローラ34は例えばメインメモリ50とHDDコントローラ650内のバッファとの間のデータのDMA転送を制御する。
メインメモリ50は、DRAM(Dynamic Random Access Memory)などで構成され、実行されるアプリケーションなどに対応するマシンコードやデータを格納する記憶領域である。プロセッサ200が処理を行う複数のタスクには、それぞれが使用するメインメモリ50内の領域が割り当てられる。本実施の形態では、HDDコントローラ650の制御を行うタスクに割り当てられた領域に格納されたコードの一部を、HDD600へのアクセス要求元であるタスクが参照し、当該タスクがアクセスに係る処理の一部を担うことにより、HDD600へのアクセスを効率的に行う。さらにメインメモリ50には、それらのタスク相互にデータの送受を行うための共有領域、すなわち共有メモリが設けられる。
HDDコントローラ650はアプリケーションに対応するタスク処理において発生した、HDD600に対するデータ入出力要求を受け付け、それに基づきHDD600を動作させる。具体的にはプロセッサ200が処理するタスクから読み出しまたは書き込みのモード、セクタ番号などを含む要求フォーマットを受け付け、HDD600へヘッド選択信号などの信号を適宜送信することにより、適切なセクタにアクセスを行う。
図2は情報処理装置1000において複数のタスクを処理した場合の、メインメモリ50の割り当てについて模式的に示している。情報処理装置1000ではプロセッサ200は時分割、メインメモリ50は空間分割され、複数のタスク、例えばタスクAおよびタスクBが使用できる処理時間、記憶領域が、タスクの発生時などに割り当てられる。メインメモリ50の容量には制約があるため、情報処理装置1000のようなマルチタスク構成の装置においては、全てのタスクの処理に用いるコードやデータをメインメモリ50に格納することができない場合がある。
そこで通常、参照頻度の少ないデータなどをHDD600へ退避させ、参照の必要が生じたときにのみメインメモリ50へ読み出すページングなどの処理が行われる。この際、メインメモリ50を参照するタスクAやタスクBが、そのような動作を意識することなくメインメモリ50へアクセスできるようにするため、HDD600へ退避させたデータなどを含めたデータ全体を格納できる見かけ上のメモリとして、仮想メモリの概念を導入する。タスクAやタスクBがそれぞれに割り当てられた仮想メモリ内のアドレスに対しアクセスを要求すると、メインメモリ50の実態である物理メモリ内に格納されたページテーブルなど、仮想メモリと物理メモリのアドレスを関連付けたテーブルを参照することにより、物理メモリ内のデータへのアクセスが可能となる。この際、タスクが参照したいデータが物理メモリにない場合は、HDD600より読み出しを行う。
今、ユーザが起動させたアプリケーションに対応するタスクをタスクAとする。タスクAがHDD600への書き込みまたは読み出しを必要とする場合、情報処理装置1000は、HDDコントローラ650を制御するタスクを発生させる。これをタスクBとする。タスクBは、従来HDDコントローラ650が担っていたAPI(Application Program Interface)の仕様をHDDコントローラ650から分離し、HDD600を含むハードウェアを抽象化するためのタスクである。タスクBは、抽象化されたHDD600への書き込みおよび読み出しサービスをタスクAへ提供する。具体的には、図2において斜線で示された、タスクBに割り当てられた物理メモリ内に格納されたサービスコードのアドレスと、タスクAに割り当てられた仮想メモリ内のアドレスとを、一点鎖線で示すように関連付けてページテーブルに記録する。これにより、通常のページングなどの処理を利用して、タスクBの保有するサービスコードがタスクAによって参照される。
タスクBを発生させず、タスクAが直接HDDコントローラ650へアクセス要求を行う構成とした場合、HDDコントローラ650およびHDD600からなるハードウェアをバージョンアップした場合などに、タスクAに対応するアプリケーションのプログラム自体を、新たなハードウェアに対応するように変更しなければならない。本実施の形態ではHDD600を含むハードウェアを抽象化し、タスクAが抽象化されたHDD600への書き込みおよび読み出しサービスを利用することにより、ハードウェアが変更してもアプリケーションプログラムの変更を行う必要がなくなる。さらに、サービスコードをタスクAが参照できるようにし、アクセス要求の発行以前に、必要な要求フォーマットの生成やデータの整形処理をタスクAの処理に含ませることにより、アクセスを効率化できる。
タスクBはその他に、タスクA以外に処理されているタスクが存在し、複数のタスクが同時期にHDD600へのアクセスを要求している場合に、それらの要求を管理し、排他制御を行う。これによりアクセスの競合が防止できる。
図3は情報処理装置1000においてタスクAおよびタスクBを処理するプロセッサ200の構成を示すブロック図である。タスクAの処理においてプロセッサ200は、アプリケーションに対応する処理を行い、HDD600に対するアクセス要求を発生させるタスク処理部202、HDDコントローラ650へのアクセス要求フォーマットを作成する要求フォーマット生成部204、HDD600に対して書き込みを行うデータや、HDD600から読み出されたデータの整形を行うデータ整形部206、およびHDD600へのアクセス要求をタスクBに対して発行したり、タスクBから各種情報を受け付けたりするアクセス要求発行部208を含む。
タスクBの処理においてプロセッサ200は、タスクAからのアクセス要求を受け付けたり、タスクAに対し各種情報を発信したりするアクセス情報送受部212、および複数のアクセス要求の調停を行い、タスクAが生成したアクセス要求フォーマットをHDDコントローラ650に順次送信してHDDコントローラ650を制御するHDDコントローラ制御部210を含む。タスクAとタスクBは実際にはプロセッサ200によって異なるタイムスライスで処理が行われるため、その間のデータや通知の授受はメインメモリ50を介して行われる。
タスクAにおけるタスク処理部202は、メインメモリ50に格納されたマシンコードなどに基づいて、アプリケーションの実行のための処理を行い、その途上でHDD600へのデータの書き込み、または読み出しの必要が生じた場合に、要求フォーマット生成部204およびアクセス要求発行部208へ、その旨の情報を渡す。要求フォーマット生成部204は、タスク処理部202から受け付けたアクセス要求の情報から、HDDコントローラ650が認識できる要求フォーマットを生成し、メインメモリ50へ格納する。要求フォーマットの生成に用いられるコードは、タスクBが属するプロセスが保有しているため、タスクAに割り振られたメインメモリ50の記憶領域には実際には格納されない。しかしながら上述のように、マッピングによってタスクAに割り振られた仮想メモリ内の領域に格納されるようにすることで、タスクAによる当該コードの参照を可能にする。タスクBのプロセスが受け持つマシンコードに含まれ、タスクAによって参照されるコードを、以降、「貸し出しコード」と呼ぶ。貸し出しコードには、データ書き込みや読み出しのための要求フォーマットの生成に用いられるコードや、データの整形に用いられるコードが含まれる。
データ整形部206は、HDD600の各セクタに格納できるデータサイズに対応させて、書き込みを行うデータの切り分けを行う。一方、セクタごとに読み出されたデータを接続し、一のデータへと整形する。アクセス要求発行部208は、タスクBが認識できる形で、HDD600へのアクセス要求を発行する。例えば生成した要求フォーマットが格納されているメインメモリ50内の領域のアドレス情報を、タスクAおよびタスクBの共有メモリ領域に書き込むことにより、タスクBがそれを認識できるようにする。
タスクBにおけるアクセス情報送受部212はタスクAのHDD600に対するアクセス要求を認識し、タスクAに対して書き込みや読み出しなどに必要なサービスを提供するために、サービスの初期化を行う。例えばタスクBは、共有メモリの所定の領域を読み出し、要求フォーマットのアドレス情報がタスクAによって書き込まれているかどうかを確認する。書き込まれていれば、適宜サービスの初期化を行う。アクセス情報送受部212はその他に、サービスの終了処理やメインメモリ50のタスクAとの共有化処理なども行う。
HDDコントローラ制御部210はHDDコントローラ650の初期化を行う。また、タスクAなどアクセスの要求元であるタスクが使用できるHDD600内のセクタの範囲をタスクごとに管理する。要求元のタスクは全て、一意に識別される識別情報を有するため、HDDコントローラ制御部210はそれを用いて、HDD600を使用することのできるタスクとその使用可能セクタ範囲を管理する。アクセス情報送受部212において受け付けたアクセス要求が、使用可能範囲外のセクタに対するものであった場合は、アクセスを不許可とする。許可されたアクセス要求は、HDDコントローラ制御部210によってHDDコントローラ650へ設定される。HDDコントローラ制御部210はさらに、HDDコントローラ650の動作開始制御、HDDコントローラ650からの割り込み受け付けを行う。
要求フォーマット生成部204において生成される要求フォーマットは、例えばそれぞれ32ビットの第1から第5までの5つの領域を含む。第1の領域には書き込みおよび読み出しのモード識別情報および、HDDコントローラ650の処理結果が、第2の領域にはHDD600内のセクタ番号が、第3の領域にはメインメモリ50内の書き込みデータの格納アドレスまたは読み出しデータの格納先アドレスが、第4の領域には書き込みまたは読み出しデータのサイズが、第5の領域には次の要求フォーマットのメインメモリ50内のアドレスがそれぞれ登録される。
HDDコントローラ制御部210は、アクセスを許可した要求フォーマットのメインメモリ50内の先頭アドレスをHDDコントローラ650に含まれる要求フォーマットアドレスレジスタに書き込むことにより、HDDコントローラ650の動作を開始させる。この際、HDDコントローラ650に含まれる動作レジスタのスタートビットを"1"にセットする。HDDコントローラ650は処理が完了するまで、自らが有する状態レジスタの動作中ビットを"1"にセットし、認識した要求フォーマットについての処理が完了した際、動作レジスタのスタートビットと、状態レジスタの動作中ビットをともに"0"にセットする。その後、プロセッサ200に対して割り込み信号を発生させる。
次に、上記の構成によってHDD600に書き込みを行う処理手順について説明する。図4はタスクBの起動処理、およびタスクBからタスクAへ提供されるサービスの初期化処理の手順を、図5はそれに引き続きタスクAがサービスを利用する手順を示している。
タスクAのタスク処理部202によってHDD600に対するデータの書き込みの必要が生じた場合、プロセッサ200に含まれる管理プロセッサ32によってタスクBがスケジューリングされ、サブプロセッサ30によってタスクBの処理が実行される。図4に示すように、まずタスクBの起動に際し、HDDコントローラ制御部210は、HDDコントローラ制御プログラムの初期化、HDDコントローラ650の初期化、およびHDD600の初期化を含む初期動作を行う(S10)。HDDコントローラ制御プログラムの初期化には、HDD600を使用することのできるタスクとその使用可能セクタ範囲とを対応づけたテーブルの初期化が含まれる。初期動作は、タスクBを新たに起動したときのみ行われ、既に起動しているタスクBに対してサービスの提供を要求する場合は、以下に述べる処理から行うことができる。
次に、タスクBが提供するサービスをタスクAが利用するための初期化処理を行う。まず、タスクAにおけるアクセス要求発行部208は、タスクBに対してサービスの初期化要求を発行する(S12)。この要求には、タスクAを識別するための識別情報が含まれる。発行された初期化要求はメインメモリ50内の共有メモリ領域に格納されるなどし、プロセッサ200における次のタスクBの処理時に認識できるようにする。初期化要求を認識したタスクBは、識別情報に基づき、要求元であるタスクAのHDD600に対する使用権の有無を確認する(S14)。タスクAに使用権がなければ(S14のN)、エラーメッセージをタスクAに対して発行し(S16)、全シーケンスを終了する。発行されたエラーメッセージはメインメモリ50内の共有メモリ領域に格納されるなどし、プロセッサ200における次のタスクAの処理時に認識できるようにする。
タスクAにHDD600の使用権があれば(S14のY)、タスクBに割り当てられたメインメモリ50内の記憶領域における初期化処理を行う(S20)。具体的には、書き込み要求を受け付けるための領域の確保と、その領域の初期化、およびサービスの提供に用いる変数の初期化などが行われる。
次にHDDコントローラ制御部210は、タスクAが要求フォーマットを生成するために使用する貸し出しコードが格納されたメインメモリ50内の記憶領域を、タスクAの処理時にも参照できるように、当該記憶領域の共有化のための設定変更を行う(S22)。以上の処理により、タスクB側でのサービスの初期化が完了すると、アクセス情報送受部212はタスクAに対してサービス初期化成功メッセージを発行する(S24)。初期化成功メッセージには、貸し出しコードのメインメモリ50におけるアドレス、貸し出しコードを用いてタスクAが要求フォーマットを生成する際などに必要となるメインメモリ50内の記憶領域のサイズ、必要となるスタックのサイズなどの情報が含まれる。
プロセッサ200において次にタスクAの処理が開始されたら、要求フォーマット生成部204は、タスクBが発行したサービス初期化成功メッセージに含まれる情報に基づき、タスクA側でのサービスの初期化を次のとおり行う。まずメインメモリ50において貸し出しコードの格納された記憶領域を、タスクAに割り当てられたメインメモリ50内の記憶領域にマッピングする(S26)。次に貸し出しコードによる処理に際して必要となる記憶領域を、タスクAに割り当てられたメインメモリ50内の記憶領域に確保し、その領域をタスクBがアクセスできるように、共有化のための設定変更を行い、初期化する(S28)。以降、この記憶領域を「グローバル領域」と呼ぶ。
そしてタスクAがHDD600に対する書き込みや、読み出しなど各種サービスを利用できるようにするため、貸し出しコードにおけるそれらのサービスコードのエントリポイントを示すTOC(Table of Contents)の生成処理を行う(S30)。次にS28において確保したグローバル領域のメインメモリ50内のアドレスを、タスクBに対して通知する(S32)。この場合もメインメモリ50内の共有メモリ領域にアドレス情報を格納するなどの処理を行う。必要であれば、タスクBはグローバル領域の初期化を行ってもよい。
次に図5に示すとおり、タスクAはHDD600への書き込みサービスを利用する。まず、貸し出しコードに含まれる書き込みのための関数のエントリポイントをTOCより取得する(S34)。TOCを参照する際のキーとなる各種関数の名称は、例えば、書き込みであれば"DISK−W"、読み出しであれば"DISK−R"などというように一般的なわかりやすいものをあらかじめ定めておき、タスクAに対応したアプリケーションのプログラムを作成する際にはその名称を使用するようにする。これにより、HDD600の仕様を意識することなく、汎用的なアプリケーションプログラムの作成が可能となる。次にタスクAの処理を、取得したエントリポイントへ分岐する(S36)。タスクAの分岐後の処理において使用される記憶領域は、グローバル領域内となるようにあらかじめ設定しておく。
次に要求フォーマット生成部204およびデータ整形部206は、分岐先の書き込みのための関数を用いて、要求フォーマットの生成および書き込みデータの整形をそれぞれ行う(S38、S40)。要求フォーマットは上述のとおり5つの領域に格納された5種類の情報を含み、それぞれの要求フォーマットは、512バイトなど、1セクタが格納できるデータサイズの書き込みデータと対応づけられる。書き込みデータが、ひとつのセクタが格納できるデータサイズより大きい場合に、データ整形部206は当該データをそのデータサイズごとに分割し、要求フォーマット生成部204はそれぞれのデータに対して要求フォーマットを生成する。生成された要求フォーマットおよび整形された書き込みデータは、メインメモリ50内のグローバル領域に格納される。
要求フォーマットの生成およびデータの整形が完了したら、アクセス要求発行部208は、共有メモリ領域内にその旨の情報を書き込み、タスクBが書き込み要求を認識できるようにする(S42)。例えば要求フォーマットの先頭アドレスを所定の領域に書き込む。タスクAはHDD600への書き込み、および読み出しを含む複数のアクセス要求の要求フォーマットの生成およびデータの整形を、タスクBの当該要求の認識の有無に関わらず、必要に応じて順次行っていく。タスクBがそれらの要求を認識し適宜処理を開始するまで、複数の要求がグローバル領域に蓄積される。蓄積した要求は、上述のとおり、直前に生成された要求フォーマットの第5領域に記録されるアドレスによって次の要求フォーマットが特定される、といった具合につなげられ、一連のアクセス要求を構成する。
タスクBのアクセス情報送受部212が、タスクBに割り当てられた処理時間ごとに共有メモリを確認するなどして、タスクAからの書き込み要求を認識する(S44)。同時にタスクAを含む複数のタスクからのアクセス要求を認識した場合は、HDDコントローラ制御部210は、優先度その他の一般的な基準に基づきHDD600へアクセスを行う順序を調停し、スケジューリングを行う(S46)。そして、その結果に基づき、グローバル領域に格納された要求フォーマットの先頭アドレスをHDDコントローラ650に与えることにより、HDDコントローラ650の動作を開始させ、HDD600への書き込みを実現する(S48)。HDD600への書き込み処理が完了したら、HDDコントローラ650は上述のとおりプロセッサ200に対して割り込み信号を発生し、タスクBはそれを受け付ける(S50)。
S34からS50の処理を、タスクAにおいて発生した書き込むべきデータが全てHDD600へ書き込まれるまで繰り返す。そしてアクセス要求発行部208は、書き込みデータが存在しなくなったとき、またはタスクAの処理時間終了直前などに必要に応じて、タスクBに対しサービス利用終了の信号を送信し、要求フォーマット生成部204は、S30において生成したTOCおよび、S26において形成した貸し出しコードのマッピング領域を破棄するなどのサービス利用終了処理を行う(S52)。この際、要求済みの書き込みデータが全てHDD600へ書き込まれていることを確認してから、グローバル領域のタスクBによるアクセスを不許可とするように、メインメモリ50の設定も変更する。以上の処理によって、タスクAで発生したHDD600へのデータ書き込み処理が完了する。
次に、同様の構成によってHDD600からデータを読み出す処理手順について、書き込みを行う場合と異なる点に主眼を置き説明する。タスクBの起動、およびタスクBからタスクAへ提供されるサービスの初期化処理手順は、図4と同様に行われる。図6はタスクAが読み出しサービスを利用する際の処理手順を示している。まず書き込みサービスの利用と同様、タスクAの要求フォーマット生成部204は、TOCより読み出しを行う関数のエントリポイントを取得し、当該エントリポイントへ処理を分岐する(S60、S62)。次に要求フォーマットを生成するが(S64)、この際に指定する読み出しデータのグローバル領域内のアドレスは、HDD600より読み出されたデータを格納するための空の領域である。1セクタが格納できるデータサイズを超えたサイズのデータを読み出す場合は、そのサイズごとに要求フォーマットを生成する。
要求フォーマットの生成が完了したら、アクセス要求発行部208は、書き込み処理同様、タスクBが読み出し要求を認識できるようにする(S66)。タスクBのアクセス情報送受部212は、タスクAからの読み出し要求を認識し、HDDコントローラ制御部210はHDD600へのアクセスについてスケジューリングを行う(S68)。そしてその結果に基づき、グローバル領域内の読み出し要求フォーマットの先頭アドレスをHDDコントローラ650に与えることにより、HDDコントローラ650の動作を開始させ、HDD600からの読み出しを実現させる(S70)。HDDコントローラ650はHDD600より読み出したデータを、HDDコントローラ650に含まれるバッファに格納する。データの読み出し処理が終了したら、HDDコントローラ650はプロセッサ200に対して割り込み信号を発生し、タスクBはそれを受け付ける(S72)。
次にタスクBのアクセス情報送受部212は、HDDコントローラ650のバッファから、読み出し要求フォーマットにてグローバル領域内に設定されたアドレスへ、読み出したデータの転送処理を行うとともに、HDD600からの読み出し処理が終了した旨の通知を、共有メモリに書き込むなどしてタスクAが認識できるようにする(S74)。読み出したデータの転送は、プロセッサ200に備えられたDMAコントローラ34を用いて行うことができる。転送されたデータは、HDD600の1セクタに格納できるサイズごとにグローバル領域に格納されるため、タスクAのデータ整形部206はそれをつなげて一のデータとする(S76)。このときも、タスクAは貸し出しコードのうち、データ整形のための関数へと処理を分岐することにより、データ整形の処理を行う。S60からS76の処理を、読み出すべきデータを全て読み出すまで繰り返す。そして書き込み処理の場合と同様、タスクAによって必要に応じてサービス利用終了処理が行われる。
以上述べた本実施の形態によれば、HDDドライバを使用するためのAPIの仕様をHDDコントローラのハードウェアから切り離し、ハードウェアを抽象化する。このとき、アプリケーションとHDDとの仲裁を行うためのタスクは、アプリケーションとは別のプロセスに属し、アプリケーションはそのプロセスが提供するサービスを利用する。これにより、HDDを含むハードウェアに変更が生じても、それに対応してアプリケーションを更新する必要がなくなる。またアプリケーションプログラムの作成において、装置に接続されるHDDの仕様を考慮する必要がなく、比較的容易な設定で、様々な仕様のHDDへ対応した汎用的なプログラミングが可能となる。また仲裁を行うためのタスクは、アプリケーションのタスクに対してサービスを提供するために一時的にコードを貸し出し、アプリケーションのタスクはそれを利用して、要求フォーマットの生成やデータの整形処理を自らのタイムスライスにおいてあらかじめ行う。これにより、複数のタスクが同時期にアクセス要求を発行した場合、それらのアクセス要求を受け付けてから、要求フォーマットの生成、データの整形、スケジューリングなどの一連の入出力処理を一のタスクが行うのに比べ、効率よくアクセスを行うことが可能となり、入出力待ちによるアプリケーションのタスクの停止時間を削減することができる。このことは、ゲームなどリアルタイム性が重要となるアプリケーションでは特に有効である。また、本実施の形態は従来用いられてきたのと同様のハードウェア構成で実現されるため、導入障壁が低く、低コストでの導入が可能である。
実施の形態2
図7は本実施の形態における情報処理装置1000を含むシステム2000の全体構成を示すブロック図である。本実施の形態では複数の情報処理装置、1000Aおよび1000Bが、異なるLAN(Local Area Network)、800Aおよび800Bに接続され、それぞれのルータ1500Aおよび1500Bによってインターネットなどのネットワークに接続される構成を有する。このようなシステム構成において例えば情報処理装置1000Aから情報処理装置1000Bへデータを転送する場合、2つの情報処理装置1000Aおよび1000Bに共通のプロトコルによってデータ転送のための処理が行われる。プロトコルの物理層において一度に伝送することのできるデータサイズは決まっているため、そのサイズを超える転送データはトランスポート層やネットワーク層などにおい分割され、それぞれのデータに対してシーケンス番号やIPアドレスなどの転送情報を含むヘッダを付加したパケット単位で転送される。本実施の形態ではこのようなデータの整形を、情報処理装置1000Aの転送要求元のタスクが行う。
基本的な動作は実施の形態1で説明したのと同様であるため、ここでは実施の形態1と異なる点にのみ言及する。実施の形態1では、タスクBはHDDコントローラ650の処理の一部を抽象化し、HDD600へのアクセス要求元であるタスクAがその処理を行えるようにタスクBがサービスを提供した。本実施の形態ではタスクBは例えばプロトコルのトランスポート層におけるTCP(Transmission Control Protocol)の一部の処理をタスクAが行えるようにタスクBがサービスを提供する。したがってタスクBは、TCPの処理コードの一部を抽象化して、タスクAが参照することのできる関数としたサービスコードをメインメモリ50に保持する。
実施の形態1の図4で示したのと同様、タスクAはサービスの初期化要求をタスクBに対して行い、タスクBは各種の初期化処理を行う。タスクAは転送データからセグメントを生成するための関数を含むタスクBのサービスコードを、メインメモリ50内の割り当てられた領域にマッピングする。その後は実施の形態1と同様、TOCの生成および、タスクBへのグローバル領域のアドレス通知を行う。さらに図5と同様、タスクAの処理をサービスコードのエントリポイントへ分岐することにより、転送データの分割、および必要なヘッダの付加処理を行い、セグメントを生成する。セグメントが形成されたら、タスクBはその旨の通知を受け取り、アプリケーション層における転送用のアプリケーションを適宜起動させる。その後は通常のプロトコル処理により情報処理装置1000Aから情報処理装置1000Bへのデータ転送が行われるが、すでにセグメントが形成されているため、情報処理装置1000AのTCPでは、コネクションの確立など、セグメント生成以外の処理のみ行えばよい。また、情報処理装置1000BにおけるTCPは、受け取ったセグメントをそのまま、データを受信すべきアプリケーションに対応するタスクに割り当てられたメインメモリ50内の領域にDMAコントローラ34によってDMA転送し、当該タスクがTCPの処理の一部を抽象化したサービスを利用して、一のデータに接続する。
以上述べた本実施の形態によれば、実施の形態1と同様、ネットワーク通信を行うプロトコルの処理の一部を切り離して抽象化し、転送要求元であるアプリケーションのタスクがそのコードを一時借りることによって、データの伝送に即したデータ整形を自らのタイムスライスで行う。これにより、TCPなどのプロトコル処理の負荷が軽減され、一度に複数のタスクからのデータ転送要求が発生した場合などに、効率よくコネクションを確率しデータ転送制御を行うことができる。さらに送信側情報処理装置1000Aでは、一のデータを構成する複数のセグメントをあらかじめ形成してから転送要求を発行するため、それらのセグメントを連続して転送できる。そのため受信側情報処理装置1000Bはそれらの連続したセグメントの転送完了に対して一度だけ応答確認信号であるACK(Acknowledgment)セグメントを送信すればよく、情報処理装置1000間の通信回数を削減することができる。これによりネットワーク通信のための処理による待ち時間が短縮され、ネットワークを介して行うゲームなどリアルタイム性が重要となるアプリケーションでは特に、顕著な効果をもたらす。さらに従来用いられてきたハードウェア構成で実現できるため、低コストでの導入が可能である。
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
例えば、上述の例ではプロセッサを時分割し、サービスを提供するタスクと、サービスを利用するアプリケーション側のタスクとがそれぞれのタイムスライスにおいて順番に処理されたが、それらのタスクを複数のプロセッサが独立に処理するようにしてもよい。この場合も、アプリケーション側の複数のタスクが同時期にHDDへアクセス要求を行ったり、データ転送要求を行ったりした場合に、それぞれのタスクであらかじめ必要なデータを生成しておくことにより、アクセスや転送を制御するタスクの処理にかかる負荷が軽減され、アクセスや転送が効率的に行われるようになる。
また上述の実施の形態では、サービスの授受を行うタスクAおよびタスクBとして、アプリケーションに対応するタスクおよびデータの入出力を制御するタスクの例を示したが、そのどちらも、OSが提供する機能を実現させるためのタスクなど、プロセッサが処理するいずれのタスクであってもよい。例えばタスクBは、アプリケーションにファイルシステムを提供するタスク、またはアプリケーションにネットワーク環境を提供するタスクなどでもよい。この場合も、あるタスクに含まれる処理の一部を別のタスクのタイムスライスにおいて、または別のタスクを処理するプロセッサによって処理することにより、全体的な処理の効率が向上し、場合によっては実施の形態1で示したのと同様に、接続するハードウェアなどの仕様に変更が生じても汎用的な処理が可能となる。
実施の形態1における情報処理装置の構成を示すブロック図である。 実施の形態1における情報処理装置において複数のタスクを処理した場合の、メインメモリの割り当てについて模式的に示す図である。 実施の形態1における情報処理装置のプロセッサの構成を示すブロック図である。 実施の形態1においてデータ書き込みのためのサービスを提供するタスクの起動処理、および当該サービスの初期化処理の手順を示すフローチャートである。 実施の形態1においてタスクがデータ書き込みのためのサービスを利用する手順を示している。 実施の形態1においてタスクがデータ読み出しのためのサービスを利用する手順を示している。 実施の形態2における情報処理装置を含むシステムの全体構成を示すブロック図である。
符号の説明
50 メインメモリ、 200 プロセッサ、 202 タスク処理部、 204 要求フォーマット生成部、 206 データ整形部、 208 アクセス要求発行部、 210 HDDコントローラ制御部、 212 アクセス情報送受部、 600 HDD、 650 HDDコントローラ、 1000 情報処理装置。

Claims (14)

  1. 第一のタスクに割り当てられたメモリ空間に、第二のタスクに割り当てられたメモリ空間の少なくとも一部をマッピングするステップと、
    前記第一のタスクに割り当てられたメモリ空間にマッピングされた、前記第二のタスクに割り当てられたメモリ空間に格納された貸し出しコードに基づき、前記第一のタスクの処理の一部を行うステップと、
    を含むことを特徴とする情報処理方法。
  2. 前記第一のタスクの処理において所定の演算処理の必要が生じた際、前記第一のタスクの処理の一部を行うステップは、前記貸し出しコードに含まれる処理コードに基づき、前記演算処理を行うステップを含むことを特徴とする請求項1に記載の情報処理方法。
  3. 前記第一のタスクの処理において、入出力ユニットへ入出力をすべきデータが発生した際、前記第一のタスクの処理の一部を行うステップは、前記貸し出しコードに含まれる処理コードに基づき、前記入出力ユニットが認識できる形式で入出力要求情報を生成するステップを含み、
    前記入出力要求情報に基づき、前記第二のタスクの処理において、前記入出力ユニットへ入出力要求を発行するステップをさらに含むことを特徴とする請求項1に記載の情報処理方法。
  4. 前記入出力要求情報を生成するステップは、
    前記貸し出しコードに含まれる処理コードに基づき、出力すべきデータを前記入出力ユニットの処理体系に対応した形式に整形するステップと、
    整形されたデータを前記第一のタスクと前記第二のタスクとの共有メモリ空間に格納するステップと、
    を含み、
    前記入出力ユニットへ入出力要求を発行するステップは、前記整形されたデータを前記共有メモリ空間より読み出し、前記入出力ユニット内のバッファへ書き込むステップを含むことを特徴とする請求項3に記載の情報処理方法。
  5. 前記入出力要求に従い前記入出力ユニットから入力されたデータを、前記第二のタスクの処理において前記第一のタスクに割り当てられたメモリ空間へ転送するステップと、
    前記第一のタスクの処理において、前記転送されたデータを前記貸し出しコードに含まれる処理コードに基づき前記第一のタスクの処理体系に対応した形式に整形するステップと、
    をさらに含むことを特徴とする請求項3または4に記載の情報処理方法。
  6. 前記マッピングするステップの後、前記第一のタスクの処理において、あらかじめ定められた処理内容の名称と、前記マッピングされたメモリ空間における前記処理内容に対応する処理コードの位置を示すエントリポイントとを関連づけたテーブルを生成するステップをさらに含み、
    前記第一のタスクの処理において、必要な処理内容の名称に基づき対応する処理コードのエントリポイントへ処理を分岐することを特徴とする請求項1に記載の情報処理方法。
  7. 複数のタスクを処理する一以上のプロセッサと、
    各タスクに割り当てられた領域を含むメモリと、を備え、
    前記プロセッサは、
    第一のタスクに割り当てられたメモリ領域に、第二のタスクに割り当てられたメモリ領域の少なくとも一部をマッピングするマッピング処理部を備え、
    前記第一のタスクに割り当てられたメモリ領域にマッピングされた、前記第二のタスクに割り当てられたメモリ領域に格納された貸し出しコードに基づき、前記第一のタスクの処理の一部を行うことを特徴とする情報処理装置。
  8. 前記プロセッサは、前記第一のタスクの処理において所定の演算処理の必要が生じた際、前記貸し出しコードに含まれる処理コードに基づき、前記演算処理を行うことを特徴とする請求項7に記載の情報処理装置。
  9. 前記プロセッサは、
    前記第一のタスクの処理において入出力ユニットへ入出力をすべきデータが発生した際、前記貸し出しコードに含まれる処理コードに基づき、前記入出力ユニットが認識できる形式で入出力要求情報を生成する入出力要求情報生成部と、
    前記入出力要求情報に基づき、前記第二のタスクの処理時に前記入出力ユニットへ入出力要求を発行する要求発行部と、
    をさらに備えることを特徴とする請求項7に記載の情報処理装置。
  10. 前記プロセッサは、前記第一のタスクの処理時に、前記貸し出しコードに含まれる処理コードに基づき、出力すべきデータを前記入出力ユニットの処理体系に対応した形式に整形し、前記第一のタスクと前記第二のタスクとの共有メモリに格納するデータ整形部をさらに備え、
    前記要求発行部は、前記整形されたデータを前記共有メモリより読み出し、前記入出力ユニット内のバッファへ転送することを特徴とする請求項9に記載の情報処理装置。
  11. 前記プロセッサは、前記入出力要求に従い前記入出力ユニットから入力されたデータを、前記第二のタスクの処理時に前記第一のタスクに割り当てられたメモリ領域へ転送するDMA(Direct Memory Access)コントローラと、
    前記第一のタスクの処理時に、前記転送されたデータを前記貸し出しコードに含まれる処理コードに基づき前記第一のタスクの処理体系に対応した形式に整形するデータ整形部と、
    をさらに備えることを特徴とする請求項9または10に記載の情報処理装置。
  12. 入出力装置を利用して入出力すべきデータを生成するデータ生成部と、
    前記入出力装置を制御する装置制御部と、
    処理コードを格納するメモリと、を備え、
    前記データ生成部は、前記装置制御部に割り当てられた前記メモリ内の領域に格納された処理コードの少なくとも一部をマッピングにより参照し、前記入出力装置を制御するための処理の少なくとも一部を行うことを特徴とする情報処理装置。
  13. 第一のタスクの処理において入出力をすべきデータを発生させる機能と、
    入出力ニットへの入出力要求を制御する第二のタスクに割り当てられたメモリ空間の少なくとも一部を、前記第一のタスクに割り当てられたメモリ空間にマッピングする機能と、
    前記第一のタスクの処理において、前記第一のタスクに割り当てられたメモリ空間にマッピングされた、前記第二のタスクに割り当てられたメモリ空間に格納された貸し出しコードに基づき、前記入出力ユニットが認識できる形式で入出力要求情報を生成する機能と、
    前記第二のタスクの処理において、前記入出力要求情報に基づき前記入出力ユニットへ入出力要求を発行する機能と、
    をコンピュータに実現させることを特徴とするコンピュータプログラム。
  14. 第一のタスクの処理において入出力をすべきデータを発生させる機能と、
    入出力ユニットへの入出力要求を制御する第二のタスクに割り当てられたメモリ空間の少なくとも一部を、前記第一のタスクに割り当てられたメモリ空間にマッピングする機能と、
    前記第一のタスクの処理において、前記第一のタスクに割り当てられたメモリ空間にマッピングされた、前記第二のタスクに割り当てられたメモリ空間に格納された貸し出しコードに基づき、前記入出力ユニットが認識できる形式で入出力要求情報を生成する機能と、
    前記第二のタスクの処理において、前記入出力要求情報に基づき前記入出力ユニットへ入出力要求を発行する機能と、
    をコンピュータに実現させることを特徴とするコンピュータプログラムを記憶した記憶媒体。
JP2005198118A 2005-07-06 2005-07-06 情報処理方法および情報処理装置 Active JP4979206B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2005198118A JP4979206B2 (ja) 2005-07-06 2005-07-06 情報処理方法および情報処理装置
US11/994,513 US8234651B2 (en) 2005-07-06 2006-05-31 Information processing method and apparatus using the same
PCT/JP2006/310906 WO2007004374A1 (ja) 2005-07-06 2006-05-31 情報処理方法および情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005198118A JP4979206B2 (ja) 2005-07-06 2005-07-06 情報処理方法および情報処理装置

Publications (2)

Publication Number Publication Date
JP2007018195A true JP2007018195A (ja) 2007-01-25
JP4979206B2 JP4979206B2 (ja) 2012-07-18

Family

ID=37604250

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005198118A Active JP4979206B2 (ja) 2005-07-06 2005-07-06 情報処理方法および情報処理装置

Country Status (3)

Country Link
US (1) US8234651B2 (ja)
JP (1) JP4979206B2 (ja)
WO (1) WO2007004374A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8843682B2 (en) * 2010-05-18 2014-09-23 Lsi Corporation Hybrid address mutex mechanism for memory accesses in a network processor
US20110104213A1 (en) * 2009-10-30 2011-05-05 University Of Pittsburgh-Of The Commonwealth System Of Higher Education Porous Biomolecule-Containing Metal-Organic Frameworks
EP2510451B1 (en) * 2009-12-10 2019-08-28 Royal Bank Of Canada Synchronized processing of data by networked computing resources

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62108346A (ja) * 1985-11-06 1987-05-19 Ricoh Co Ltd プロセス間通信方式
JPH05233328A (ja) * 1992-02-25 1993-09-10 Hitachi Ltd プロセス間通信処理を行う情報処理システム
US5915124A (en) * 1997-01-03 1999-06-22 Ncr Corporation Method and apparatus for a first device accessing computer memory and a second device detecting the access and responding by performing sequence of actions
JP2001243115A (ja) * 2000-02-29 2001-09-07 Mitsubishi Electric Corp 計算機システム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5596755A (en) * 1992-11-03 1997-01-21 Microsoft Corporation Mechanism for using common code to handle hardware interrupts in multiple processor modes
US6964039B2 (en) * 2000-12-13 2005-11-08 Esmertec Ag Method to create optimized machine code through combined verification and translation of JAVA™ bytecode
JP2006085393A (ja) * 2004-09-15 2006-03-30 National Institute Of Information & Communication Technology デバイスからの高速データ転送方法及びデータ処理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62108346A (ja) * 1985-11-06 1987-05-19 Ricoh Co Ltd プロセス間通信方式
JPH05233328A (ja) * 1992-02-25 1993-09-10 Hitachi Ltd プロセス間通信処理を行う情報処理システム
US5915124A (en) * 1997-01-03 1999-06-22 Ncr Corporation Method and apparatus for a first device accessing computer memory and a second device detecting the access and responding by performing sequence of actions
JP2001243115A (ja) * 2000-02-29 2001-09-07 Mitsubishi Electric Corp 計算機システム

Also Published As

Publication number Publication date
WO2007004374A1 (ja) 2007-01-11
US20090307701A1 (en) 2009-12-10
US8234651B2 (en) 2012-07-31
JP4979206B2 (ja) 2012-07-18

Similar Documents

Publication Publication Date Title
US7707337B2 (en) Object-based storage device with low process load and control method thereof
US7490185B2 (en) Data processing system, access control method, and access control device
JP2011243142A (ja) 通信制御装置、データ通信方法及びプログラム
CN117312201B (zh) 一种数据传输方法、装置及加速器设备、主机和存储介质
WO2024198988A1 (zh) 通信方法、装置、系统及存储介质
JP4979206B2 (ja) 情報処理方法および情報処理装置
US7127530B2 (en) Command issuing apparatus for high-speed serial interface
US7913059B2 (en) Information processing device, data transfer method, and information storage medium
EP1557755A1 (en) Method for transferring data in a multiprocessor system, multiprocessor system and processor carrying out this method.
JP2723022B2 (ja) ディスク装置のインタフェース及びその制御方法
JP4218034B2 (ja) データ通信システムおよびデータ通信方法、データ通信プログラム
JPH11149455A (ja) メモリディスク共有方法及びその実施装置
JP2007241922A (ja) 共有資源利用のための調停方法及びその調停装置
TW200809597A (en) Method and system for device to request and operate an external buffer provided from the host
JP2664827B2 (ja) 実時間情報転送制御方法
KR20050004157A (ko) 다중 코히런시 단위들을 지원하는 데이터 전송 유닛
JP2004164202A (ja) データ送受システム、リングバッファ制御方法、制御プログラム
JP2008299747A (ja) Usbホストシステム及び転送データの転送方法
JP5482302B2 (ja) 情報処理装置、及び、情報処理方法
JP3259095B2 (ja) データ転送方法
JP2004013962A (ja) 映像記録再生装置及びファイルシステム
JP2004295594A (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JPH03217960A (ja) マルチプロセッサシステムにおけるデータ通信方式
JPH09212436A (ja) ネットワークファイルシステムのデータ転送方式
JPH06348637A (ja) クライアントサーバシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080701

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20101125

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110712

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110909

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

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

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

Free format text: PAYMENT UNTIL: 20150427

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4979206

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250