JP4609521B2 - 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム - Google Patents

情報処理装置、および情報処理方法、並びにコンピュータ・プログラム Download PDF

Info

Publication number
JP4609521B2
JP4609521B2 JP2008110542A JP2008110542A JP4609521B2 JP 4609521 B2 JP4609521 B2 JP 4609521B2 JP 2008110542 A JP2008110542 A JP 2008110542A JP 2008110542 A JP2008110542 A JP 2008110542A JP 4609521 B2 JP4609521 B2 JP 4609521B2
Authority
JP
Japan
Prior art keywords
memory
processor
system bus
information processing
processing apparatus
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
JP2008110542A
Other languages
English (en)
Other versions
JP2009265687A (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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2008110542A priority Critical patent/JP4609521B2/ja
Priority to US12/401,684 priority patent/US8166339B2/en
Priority to CN200910135232.7A priority patent/CN101566976B/zh
Publication of JP2009265687A publication Critical patent/JP2009265687A/ja
Application granted granted Critical
Publication of JP4609521B2 publication Critical patent/JP4609521B2/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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/254Distributed memory
    • G06F2212/2542Non-uniform memory access [NUMA] architecture

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、情報処理装置、および情報処理方法、並びにコンピュータ・プログラムに関する。さらに詳細には、共有メモリ型マルチプロセッサシステムのアーキテクチャであるNUMA(Non−Uniform Memory Access)に従った構成を持つ情報処理装置、情報処理方法、並びにコンピュータ・プログラムに関する。
近年、複数のプロセッサ(CPU)を搭載し、複数プロセッサの並列処理により効率的なデータ処理を実現するマルチプロセッサ型の情報処理装置が増加する傾向にある。このようなマルチプロセッサシステムは、複数のプロセッサが共有メモリに対してアクセスを行うことになる。このようなシステムにおいて、プロセッサからメモリに対するアクセスコストが均一とならないアーキテクチャとしてNUMA(Non−Uniform Memory Access)が知られている。
NUMAアーキテクチャを持つ情報処理装置の構成例を図1に示す。図1に示すように、複数のチップセット11,21が、ノードとしてクロスバスイッチに相互接続されている。クロスバスイッチには異なるノード間のメモリアクセスに際してアドレスを変換するためのアドレス変換テーブル31が接続されている。
チップセット11には、CPU12,メモリ1,13、デバイス1,14がローカルバスとしてのシステムバス1を介して接続されている。
チップセット21にも、CPU22,メモリ2,23、デバイス2,24がローカルバスとしてのシステムバス2を介して接続されている。
メモリ1,13及びメモリ2,23はCPU1,12及びCPU2,22によって共有される。このようなメモリの共有構成を持つNUMAでは各CPUから各メモリへのアクセスコストが均一とはならない。
例えば、CPU1,12で動作するタスクがメモリ2,23に置かれているデータにアクセスするといった場合、チップセット11のシステムバス1と、クロスバスイッチと、チップセット12のシステムバス2を経由したメモリアクセスが必要となる。このように、タスクが動作するCPUとデータが置かれているメモリとが同じローカルバス(システムバス)上に無い場合、メモリアクセスコストが高くなる。
このNUMAアーキテクチャを持つシステムにおけるメモリアクセスコストの性能改善策については、既に数多く提案されている。例えば、特許文献1(登録特許3832833号公報(IBM))は、あるCPUにおける読み取りリクエストに対して、ローカルバス以外のバスからデータが与えられるときの、コヒーレンシ報告の遅延低減を実現する構成を提案している。
また、特許文献2(登録特許3924206号公報(IBM))は、データに対してライトスルー標識を備えることで、変更内容をキャッシュ可能かどうかを判断することで、不必要なコヒーレンシ報告を回避している。
さらに、特許文献3(特開2006−39822号公報(キャノン))は、マルチプロセッサへのタスク割り当てを投機的に繰り返し、CPU間での通信コストの値を元に最適なタスクとプロセッサの組み合わせを決定する構成を開示している。
しかし、これらの従来手法は、CPUとメモリとの間でのメモリアクセス最適化を実現しようとするに過ぎない。近年は大容量データの入出力を伴うデバイスの登場と共に、デバイスドライバの影響でCPUが高負荷となる場合もあり、デバイスも考慮した最適化を計る必要がある。
例えば、上記の従来例で説明した対応策は、CPUとメモリがローカルバス上に存在するが、デバイスと、デバイスのアクセスするメモリがローカルバス上に存在しない情報処理装置構成では効果が得られない。具体的には、図2に示すような構成では効果が得られない。
図2も図1と同様、複数のチップセット11,21が、ノードとしてクロスバスイッチに相互接続されている。クロスバスイッチには異なるノード間のメモリアクセスに際してアドレスを変換するためのアドレス変換テーブル31が接続されている。
チップセット11には、CPU12,メモリ1,13、デバイス1,14がローカルバスとしてのシステムバス1を介して接続されている。チップセット21にも、CPU22,メモリ2,23、デバイス2,24がローカルバスとしてのシステムバス2を介して接続されている。
チップセット21側のシステムバス2に接続されているCPU2,22には、チップセット11側のシステムバス1に接続されたデバイス1,14のデバイスドライバ41が設定されている。
チップセット21側のCPU2,22の持つデバイスドライバ41の起動により、チップセット11側のデバイス1,14が動作を開始し、デバイス1,14によるデータ処理を行う。例えばデバイス1,14がネットワークカードであれば、ネットワークを介した外部との通信処理を行う。デバイス1,14がビデオカードであれば、画像データの処理を行う。
デバイス1,14の処理するデータ43、例えば通信データやビデオデータなどのデータ43は、クロスバスイッチを経由したDMA(Direct Memory Access)によって、チップセット21側のメモリ2,23に格納される。また、デバイス1,14によるデータ取得の際も、メモリ2,23からクロスバスイッチを経由したDMAアクセスによる処理が行われる。
上述した従来技術の開示構成は、CPUとメモリとの間でのメモリアクセス最適化を実現しようとするに過ぎない。従って、図2に示すように、デバイスとメモリが同一のローカルバス上に存在しない情報処理装置のようにデハイス、メモリ、CPU間のデータ転送が発生する構成では、上述した従来技術の開示構成は十分な効果が得られない。
さらに、特許文献4(登録特許3123425号公報(NEC))は、デバイスからの割り込みを(ニューラルネットワークを利用しながら)その時点で負荷の最も低いCPUに割り振ることで負荷分散を図る構成を開示している。この手法は、CPUの負荷に着目したものである。
しかし、この構成でも、図3に示すように、デバイスがアクセスするメモリがCPUのローカルバス上に無い場合などは、ドライバからのメモリアクセスがクロスバスイッチを経由することになり、ドライバが動作するCPU負荷が高くなってしまうという問題がある。
図3に示す情報処理装置も、図1、図2に示す構成と同様の構成であり、複数のチップセット11,21が、ノードとしてクロスバスイッチに相互接続されている。クロスバスイッチには異なるノード間のメモリアクセスに際してアドレスを変換するためのアドレス変換テーブル31が接続されている。
チップセット11には、CPU12,メモリ1,13、デバイス1,14がローカルバスとしてのシステムバス1を介して接続されている。チップセット21にも、CPU22,メモリ2,23、デバイス2,24がローカルバスとしてのシステムバス2を介して接続されている。
チップセット21側のシステムバス2に接続されているCPU2,22には、チップセット11側のシステムバス1に接続されたデバイス1,14のデバイスドライバ41が設定されている。
チップセット21側のCPU2,22の持つデバイスドライバ41の起動により、チップセット11側のデバイス1,14が動作を開始し、デバイス1,14によるデータ処理を行う。例えばデバイス1,14がネットワークカードであれば、ネットワークを介した外部との通信処理を行う。デバイス1,14がビデオカードであれば、画像データの処理を行う。
本構成例では、図2に示す構成と異なり、デバイス1,14の処理するデータ43は、同一のチップセットに接続されたローカルバスであるシステムバス1に接続されたメモリ1,13に対するDMA(Direct Memory Access)によってデータ44として格納される。また、デバイス1,14によるデータ取得の際も、メモリ1,13からDMAアクセスによる処理が行われる。
この構成では、デバイス1,14とメモリ1,13間のアクセスは、クロスバスイッチを経由することなく行うことが可能となりメモリアクセスコストが低減できる。しかし、本構成においても、チップセット21側のCPU2,22のドライバ41からは、メモリ1,13に対してクロスバスイッチを経由したアクセスが必要となり、ドライバが動作するCPU負荷が高くなってしまうという問題がある。
登録特許3832833号公報 登録特許3924206号公報 特開2006−39822号公報 登録特許3123425号公報
本発明は、例えば上記問題点に鑑みてなされたものであり、NUMA(Non−Uniform Memory Access)アーキテクチャ構成を有する情報処理装置において、デバイスが接続しているバスとデバイスドライバが動作するプロセッサを最適に組み合わせることで、デバイスアクセスに関する遅延を低減し、プロセッサ使用効率の向上を実現する情報処理装置、および情報処理方法、並びにコンピュータ・プログラムを提供することを目的とする。
本発明の第1の側面は、
少なくともメモリとプロセッサをシステムバスに接続した複数のノードと、
前記ノードを相互接続する相互接続バスと、
前記複数のノードのいずれかのノードのシステムバスに接続され、データ処理を実行するデバイスを有し、
前記デバイスが接続されたシステムバスに接続されたメモリを、前記デバイスのアクセスメモリとして選択する処理を実行するメモリ選択部と、
前記デバイスの接続されたシステムバスに接続されたプロセッサを、前記デバイスに対応するデバイスドライバの設定プロセッサとして選択する処理を実行するプロセッサ選択部を有し、
前記メモリ選択部は、
前記デバイスが接続されたシステムバスに接続されたメモリの確保処理に失敗した場合、前記デバイスが接続されたシステムバスに接続されたメモリ以外のメモリを前記デバイスのアクセスメモリとして選択する処理を実行し、
前記プロセッサ選択部は、
前記デバイスの接続されたシステムバスの確認処理を実行して、該システムバスに接続されたプロセッサをデバイス利用アプリケーションの起動プロセッサとするプロセッサ選択処理を実行する情報処理装置にある。
さらに、本発明の情報処理装置の一実施態様において、前記デバイスドライバは、メインのデータ処理を実行するメイン処理実行部と、割り込み処理を実行する割り込み処理実行部とに分割され、前記複数のノードに設定される複数プロセッサの1つの第1プロセッサが前記メイン処理の実行プロセッサであり、他の第2プロセッサが前記割り込み処理の実行プロセッサとして構成される。
さらに、本発明の情報処理装置の一実施態様において、前記割り込み処理の実行プロセッサは、前記デバイスと同一のシステムバスの接続プロセッサを選択、または、プロセッサ選択時点において最も低負荷のプロセッサを選択、または、ラウンドロビン手法による選択、上記いずれかの選択手法によって選択する構成である。
さらに、本発明の情報処理装置の一実施態様において、前記デバイスは通信処理を実行するデバイスであり、前記メイン処理部は、データ送信完了処理、およびデータ受信完了処理、およびエラー処理を実行する処理部である。
さらに、本発明の第2の側面は、
情報処理装置において実行する情報処理方法であり、
前記情報処理装置は、
少なくともメモリとプロセッサをシステムバスに接続した複数のノードと、
前記ノードを相互接続する相互接続バスと、
前記複数のノードのいずれかのノードのシステムバスに接続され、データ処理を実行するデバイスを有し、
前記情報処理装置のメモリ選択部が、前記デバイスが接続されたシステムバスに接続されたメモリを、前記デバイスのアクセスメモリとして選択するメモリ選択処理を実行し、
前記情報処理装置のプロセッサ選択部が、前記デバイスの接続されたシステムバスに接続されたプロセッサを、前記デバイスに対応するデバイスドライバの設定プロセッサとして選択するプロセッサ選択処理を実行し、
前記メモリ選択処理において、前記メモリ選択部は、
前記デバイスが接続されたシステムバスに接続されたメモリの確保処理に失敗した場合、前記デバイスが接続されたシステムバスに接続されたメモリ以外のメモリを前記デバイスのアクセスメモリとして選択する処理を実行し、
前記プロセッサ選択処理において、前記プロセッサ選択部は、
前記デバイスの接続されたシステムバスの確認処理を実行して、該システムバスに接続されたプロセッサをデバイス利用アプリケーションの起動プロセッサとするプロセッサ選択処理を実行する情報処理方法にある。
さらに、本発明の第3の側面は、
情報処理装置において情報処理を実行させるコンピュータ・プログラムであり、
前記情報処理装置は、
少なくともメモリとプロセッサをシステムバスに接続した複数のノードと、
前記ノードを相互接続する相互接続バスと、
前記複数のノードのいずれかのノードのシステムバスに接続され、データ処理を実行するデバイスを有し、
前記情報処理装置のメモリ選択部に、前記デバイスが接続されたシステムバスに接続されたメモリを、前記デバイスのアクセスメモリとして選択するメモリ選択処理を実行させ、
前記情報処理装置のプロセッサ選択部に、前記デバイスの接続されたシステムバスに接続されたプロセッサを、前記デバイスに対応するデバイスドライバの設定プロセッサとして選択するプロセッサ選択処理を実行させ、
前記メモリ選択処理において、前記メモリ選択部に、
前記デバイスが接続されたシステムバスに接続されたメモリの確保処理に失敗した場合、前記デバイスが接続されたシステムバスに接続されたメモリ以外のメモリを前記デバイスのアクセスメモリとして選択する処理を実行させ、
前記プロセッサ選択処理において、前記プロセッサ選択部に、
前記デバイスの接続されたシステムバスの確認処理を実行して、該システムバスに接続されたプロセッサをデバイス利用アプリケーションの起動プロセッサとするプロセッサ選択処理を実行させるコンピュータ・プログラムにある。
なお、本発明のプログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
本発明の一実施例の構成によれば、共有メモリ型マルチプロセッサシステムのアーキテクチャであるNUMA(Non−Uniform Memory Access)に従った構成を持つ情報処理装置において、デバイスの接続されたシステムバス上のメモリを、デバイスのアクセスメモリとして選択する。さらに、デバイス接続バス上のプロセッサを、デバイスドライバの設定プロセッサとする。この構成により、デバイス、プロセッサ、およびデバイスとプロセッサのアクセスメモリが同一のシステムバス上に設定され、デバイスの利用処理におけるメモリアクセスを1つのシステムバスを介して実行可能となり、メモリアクセスコストの削減が実現する。
以下、本発明の情報処理装置、および情報処理方法、並びにコンピュータ・プログラムの詳細について説明する。
本発明の情報処理装置は、複数のプロセッサが共有メモリに対してアクセスを行う構成を持ち、プロセッサからメモリに対するアクセスコストが均一とならないアーキテクチャであるNUMA(Non−Uniform Memory Access)アーキテクチャを持つ情報処理装置である。
本発明の情報処理装置の一構成例であるNUMAアーキテクチャを持つ情報処理装置100の構成例を図4に示す。図4に示すように、複数のチップセット111,121が、ノードとしてクロスバスイッチに接続されている。クロスバスイッチは複数のノードを相互接続する相互接続バスとして機能する。クロスバスイッチには異なるノード間のメモリアクセスに際してアドレスを変換するためのアドレス変換テーブル131が接続されている。
チップセット111には、CPU112,メモリ1,113、デバイス1,114がローカルバスとしてのシステムバス1を介して接続されている。
チップセット121にも、CPU122,メモリ2,123、デバイス2,124がローカルバスとしてのシステムバス2を介して接続されている。
この図4に示す情報処理装置において、CPU及びデバイスからメモリに対してアクセスを実行する際の処理の流れについて図5に示すフローチャートを参照して説明する。
図5に示す処理は、CPUによるメモリアクセス、およびデバイスのDMAによるメモリアクセスにおいて共通するシーケンスである。まず、ステップS11において、CPUまたはデバイスは、アドレス変換テーブルを参照する。ステップS12において、アクセス先のメモリが、自己(CPUまたはデバイス)が接続されたローカルバス(システムバス)と同一のローカルバス上にあるか否かを確認する。
ステップS12の判定処理において、アクセス先のメモリが同一のローカルバス上にあるならば、ステップS13に進み、通常通りのメモリアクセスを行なう。
一方、同一のローカルバス(システムバス)上に無い場合は、ステップS14に進み、クロスバスイッチ経由でアクセスすることになる。この場合は、まず、ステップS15においてキャッシュおよびメモリのコヒーレンシ(一貫性)が保てるかを判定する。すなわち、メモリアクセスに際してキャッシュデータの更新を実行してもコヒーレンシ(一貫性)が保てるかを判定する。
ステップS15においてコヒーレンシが保持されると判定した場合は、ステップS17に進みクロスバスイッチを経由して異なるノードのローカルバス(システムバス)に接続されたメモリのアクセスを実行する。
ステップS15においてコヒーレンシが保持されないと判定した場合は、ステップS16に進み、キャッシュの無効化処理を実行した後、ステップS17に進みクロスバスイッチを経由して異なるノードのローカルバス(システムバス)に接続されたメモリのアクセスを実行する。
ステップS14〜S17の処理ではクロスバスイッチ経由のメモリアクセス処理となり、処理コストが増大することになる。本発明の情報処理装置では、このクロスバスイッチ経由のメモリアクセスを回避する構成を実現する。
図6を参照して、本発明の情報処理装置におけるデータ格納構成、およびメモリアクセス処理例について説明する。本発明の情報処理装置では、図6に示すように、デバイスがアクセスするメモリをローカルバス上に確保することで、クロスバスッチ経由でのメモリアクセスを回避する。
図6に示す情報処理装置も、図4に示す構成と同様の構成であり、ノードとしての複数のチップセット111,121が相互接続バスであるクロスバスイッチに接続されている。クロスバスイッチには異なるノード間のメモリアクセスに際してアドレスを変換するためのアドレス変換テーブル131が接続されている。
チップセット111には、CPU112,メモリ1,113、デバイス1,114がローカルバスとしてのシステムバス1を介して接続されている。チップセット121にも、CPU122,メモリ2,123、デバイス2,124がローカルバスとしてのシステムバス2を介して接続されている。
チップセット111側のシステムバス1に接続されているCPU1,112には、同一のチップセット111側のシステムバス1に接続されたデバイス1,114のデバイスドライバ141が設定されている。
チップセット111側のCPU1,122の持つデバイスドライバ141の起動により、チップセット111側のデバイス1,114が動作を開始し、デバイスによるデータ処理を行う。例えばデバイス1,114がネットワークカードであれば、ネットワークを介した外部との通信処理を行う。デバイス1,114がビデオカードであれば、画像データの処理を行う。
本構成例では、デバイス1,114は、同一ノードのチップセット111側のシステムバス1に接続されたメモリ1,113に対するDMAによるメモリアクセスを実行する。
また、デバイス1,114に対するデバイスドライバ141を設定したCPU1,112も、同一ノードのチップセット111側のシステムバス1に接続されたメモリ1,113に対するアクセスを実行する。
このようなデータアクセス構成とすることにより、CPU1,112、デバイス1,114は、デバイス1,114のデータ処理に関して、メモリアクセスは、同一ノードのローカルバス(システムバス1)上のメモリ1,113に対するアクセスのみで十分となり、クロスバスイッチを経由した他ノードへのアクセスは回避される。結果として、図5に示すフローチャート中のステップS13とS17のメモリアクセスのみが発生して、ステップS14〜S17のクロスバスイッチ経由の処理は発生することがなく、メモリアクセスコストが低減されて処理効率が高まることになる。
本発明の情報処理装置は、情報処理装置に含まれるいずれかのプロセッサが以下の処理を行うことになる。
デバイスのアクセスメモリの選択時に、アクセスメモリをデバイスと同一のシステムバス上のメモリとして選択する処理、
デバイスに対応するデバイスドライバの起動プロセッサを、デバイスと同一のシステムバス上のプロセッサとして選択する処理、
すなわち、プロセッサがメモリ選択部、およびプロセッサ選択部として機能する。
以下、このメモリ選択処理と、プロセッサ選択処理の具体的処理シーケンスについて説明する。
(メモリ選択処理)
例えば、LinuxではNUMA API(アプリケーションインタフェース)が提供されている。このAPIを使用することで、デバイスドライバがメモリを確保する際に、どちらのシステムバス上にあるメモリを確保するかを明示的に指定することができる。
このAPIを利用してアクセスメモリの選択を行なう場合の処理シーケンスについて、図7に示すフローチャートを参照して説明する。
まず、ステップS101において、レジスタ値の設定などデバイスの初期化を行なう。次に、ステップS102において、デバイスが接続しているバスを確認する。例えば、図6に示す構成において、デバイス1,114であればシステムバス1に接続していることが分かる。次に、ステップS103において、バス番号を指定してメモリを確保することで、デバイスがアクセスするメモリをローカルバス上に確保できる。
なお、ステップS103において、同一バス上でのメモリ確保に失敗した場合(ステップS104でNo)には、ステップS105において、バス番号を指定せずにメモリを確保する。
なお、処理フローでは、同一バス上でのメモリ確保に失敗した場合(ステップS104でNo)に、デバイスがアクセスするメモリの確保処理を、バス番号の指定を行うことなく実行することで、メモリ確保を確実に実行させる設定とした。
この設定では、通常は、デバイスが接続しているバスと同一のバスに接続されたメモリが、デバイスのアクセスメモリとして優先的に確保され、このメモリ確保に失敗した場合のみ、例外的にデバイスと同一のローカルバスにないメモリがアクセス先として確保されることになる。
この処理シーケンスに従ったメモリ確保処理をデバイスの起動時に実行させることで、図6を参照して説明した構成、すなわちデバイスとデバイスのアクセスメモリとが同一のローカルバス(システムシバス)上に設定された構成を構築することが可能となる。
なお、図7に示すフローチャートでは、ステップS103において、同一バス上でのメモリ確保に失敗した場合(ステップS104でNo)には、ステップS105において、バス番号を指定せずにメモリを確保する設定としている。このシーケンスは、デバイスにおける処理を停止させることより、メモリの確保を優先したものである。
すなわち、この場合には、デバイスと異なるノード上のメモリがアクセス先として設定される可能性があるがデバイスの処理は実行可能となる。このような設定とせずに、ステップS103において、同一バス上でのメモリ確保に失敗した場合(ステップS104でNo)にはデバイスの使用を中止するといった設定としてもよい。
あるいは、同一バス上でのメモリ確保に失敗した場合(ステップS104でNo)、予め設定した待機時間の後、再度、ステップS103に戻り、同一バス上でのメモリ確保処理を繰り返し実行する設定としてもよい。
このように、本発明の情報処理装置におけるメモリ選択部は、デバイスのアクセスメモリの選択処理に際して、デバイスが接続されたシステムバスに接続されたメモリを優先的にデバイスのアクセスメモリとして選択する処理を実行する。デバイスが接続されたシステムバスに接続されたメモリの確保処理に失敗した場合には、繰り返しシステムバスに接続されたメモリの確保処理を実行するか、他のシステムバスに接続されたメモリをアクセスメモリとして選択する。あるいは、デバイスによる処理を中止する処理を実行する。
(プロセッサ選択処理)
図7を参照して説明した処理は、デバイスのアクセス先をデバイスと同一のローカルバス上に優先的に設定させるための処理シーケンスであるが、さらに、デバイスを制御するデバイスドライバに関しても、デバイスと同一のローカルバス上にあるCPUにおいて動作をさせる設定とすることで、CPUからメモリに対するアクセスコストを低減できる。
例えば、Linuxの実装ではCPUとメモリのアフィニティ(affinity)を優先してプロセスを実行するCPUが決定されるため、前記のように同一のノード内のデバイスが使用するメモリを、同一のシステムバス上に確保すれば、それを扱うデバイスドライバは特別な処理を行なわずとも、デバイスとメモリと同一のシステムバス上のCPUとして選択される。
また、アプリケーション起動の際にNUMAアーキテクチャに対応するコマンドの1つである[numactl]などのコマンドを用いることで、動作CPUを明示的に指定することもできる。コマンド[numactl]はバス番号を指定してアプリケーションを起動させるコマンドであり、特定のローカルバス(システムバス)に接続されたCPUにおいてアプリケーション起動を実行させることができる。すなわち、このコマンドを用いることで、動作CPUを明示的に指定することもできる。
この処理の流れについて、図8に示すフローチャートを参照して説明する。まず、ステップS201において、アプリケーションにおいて利用するデバイスを特定する。次に、ステップS202において、デバイスの接続されたローカルバス(システムバス)を確認する。最後にステップS203において、コマンド[numactl]を実行して、デバイスの接続されたローカルバス(システムバス)を指定して、動作CPUを明示的に指定して、指定したCPUにおいてアプリケーションを起動する。
この処理によって、デバイスとデバイスアクセスメモリと、デバイスドライバの実行CPUを同一のローカルバス(システムバス)上に設定した図6に示すメモリアクセス構成が実現される。結果として、デバイスを利用した処理におけるメモリアクセスに際して、異なるノード間のメモリアクセスを回避することが可能となる。すなわち、図5に示すフローチャート中のステップS13とS17のメモリアクセスのみが発生して、ステップS14〜S17のクロスバスイッチ経由の処理は発生することがなく、メモリアクセスコストが低減されて処理効率が高まることになる。
このように、本発明の情報処理装置におけるプロセッサ選択部は、デバイスの接続されたシステムバスに接続されたプロセッサを、デバイスに対応するデバイスドライバの設定プロセッサとして選択する処理を実行する。具体的には、デバイスの接続されたシステムバスの確認処理を実行して、該システムバスに接続されたプロセッサをデバイス利用アプリケーションの起動プロセッサとする処理を実行する。
[その他の実施例]
マルチプロセッサシステムは複数のCPUを有している。これらの複数のCPUを利用することで処理の効率化を図る実施例について以下、説明する。
CPUの負荷が低く、またデバイスからの割り込み頻度が低いときは、デバイスドライバが動作しているCPUに対して割り込みを通知する方が、データの局所性からも処理効率は上がる。しかし、デバイスが処理可能なデータ量に比べてCPUが処理可能なデータ量が少ない場合や、割り込みが高頻度で発生してCPUの処理効率が下がってしまうような場合もある。
図9を参照して、複数のCPUを利用することで処理の効率化を図る構成例について説明する。図9に示す情報処理装置も、図4、図6と同様の構成を持つ情報処理装置100である。
ノードとしての複数のチップセット111,121が相互接続バスであるクロスバスイッチに接続されている。チップセット111には、CPU112,メモリ1,113、デバイス1,114がローカルバスとしてのシステムバス1を介して接続され、チップセット121には、CPU122,メモリ2,123、デバイス2,124がローカルバスとしてのシステムバス2を介して接続されている。
本構成例では、チップセット111側のシステムバス1に接続されているデバイス1,114に対応するデバイスドライバを、割り込み処理を行なう部分と、メインのデータ処理を行なう部分(ボトムハーフ)に分割し、それぞれを異なるプロセッサ(CPU)上で動作させる構成としている。この構成により、割り込みによるレジスタの退避/復旧やキャッシュが汚れる影響などを回避できるため、デバイスドライバの処理性能は向上する。
具体的には、図9に示すチップセット111側のシステムバス1に接続されているデバイス1,114に対応するデバイスドライバを2分割して、CPU1,112とCPU2,122にそれぞれ処理を分担させる構成としている。
デバイス1,114と同一のローカルバス(システムバス1)に接続されたCPU1,112をメインのデータ処理(ボトムハーフ)を実行するメインドライバ181を備えたCPU、
デバイス1,114と異なるローカルバス(システムバス2)に接続されたCPU2,122を割り込み処理を実行する割り込みドライバ182を備えたCPU、
このような設定とする。
このように、デバイスドライバを割り込み処理を行なう部分と、メインのデータ処理を行なう部分(ボトムハーフ)に分割し、それぞれを異なるCPU上で動かすことで、割り込みによるレジスタの退避/復旧やキャッシュが汚れる影響などを回避できるため、デバイスドライバの処理性能は向上させることができる。
デバイスからの割り込みを処理するCPUの選択処理は、例えばオペレーティングシステムのポリシに基づいて実行する。例えば、
同一のローカルバス上のCPUを選択する。
その時点で最も低負荷のCPUを選択する。
ラウンドロビン手法によって選択する。
例えば上記の選択手法のいずれかによって選択する。
例えば、Linuxでは固定的にローカルバス上のCPUに割り込みが発生するため、前述のようにローカルバス上にメモリを確保しているときは、ローカルバス"以外"のCPUに割り込みが発生するようにカーネルの割り込みハンドラを修正すれば良い。割り込みをローカルバス外のCPUに発生するように設定すれば、結果としてデバイスドライバの割り込みハンドラもローカルバス外のCPUにて実行される。
この場合のデバイスドライバ構成例を図10に示す。図10は、デバイスをネットワークカードとした場合のデバイスドライバの構成例である。
図10に示すように、デバイスドライバ200は、
デバイスがオペレーティングシステムで認識された際に初期化を行なう初期化処理部201、
IPアドレスやMTUなどの設定情報を記憶する状態保持部202、
上位層から呼び出されてパケットの送信処理を行なう送信処理部203、
デバイスから割り込みが発生した際に呼び出される割り込み処理部204、及び、
割り込み処理に際してスケジューラに設定されるボトムハーフ処理部210から成る。
ボトムハーフ処理部210は送信完了処理部211、受信処理部212、エラー処理部213から構成される。割り込みが発生した際の割り込み処理部204の処理の流れについて、図11に示すフローチャートを参照して説明する。
まず、ステップS301において、ボトムハーフ処理部が起動済みかどうかを確認する。例えば、Linuxではボトムハーフは[tasklet]や[poll]関数として実装されており、起動中かどうかはカーネル内の変数値を見ることで確認できる。
起動されている場合はステップS303に進む。起動されていない場合(ステップS301でNo)は、ステップS302に進み、次にタイマ割り込みが入ってカーネルスケジューラが起動される際にボトムハーフ処理部が実行されるよう、ボトムハーフ処理部をカーネルスケジューラに登録する。その後、ステップS303において、(PCIであればINTx のdeassertをするなど)割り込み要因をクリアして終了する。
ボトムハーフ処理部がスケジューリングされた際の処理の流れについて、図12に示すフローチャートを参照して説明する。ステップS401において、送信完了パケットの有無を判定し、送信完了パケットがあれば、ステップS402に進み、メモリ解放などの送信完了処理を行なう。
ステップS403において、受信パケットの有無を判定し、受信パケットがあれば、ステップS404に進み、上位プロトコルに受信パケットを渡す。
ステップS405において、エラー発生の有無を判定し、エラー発生があれば、ステップS406に進み、エラー処理を行なう。
ステップS407では、ステップS402の送信完了処理、ステップS404の受信完了処理、ステップS406のエラー処理、これらの処理のいずれかを行ったか否かを判定し、行っている場合は、ステップS408に進み、自分自身、すなわちボトムハーフ処理部をスケジューラに再登録して終了する。
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、LAN(Local Area Network)、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
以上、説明したように、本発明の一実施例の構成によれば、共有メモリ型マルチプロセッサシステムのアーキテクチャであるNUMA(Non−Uniform Memory Access)に従った構成を持つ情報処理装置において、デバイスの接続されたシステムバス上のメモリを、デバイスのアクセスメモリとして選択する。さらに、デバイス接続バス上のプロセッサを、デバイスドライバの設定プロセッサとする。この構成により、デバイス、プロセッサ、およびデバイスとプロセッサのアクセスメモリが同一のシステムバス上に設定され、デバイスの利用処理におけるメモリアクセスを1つのシステムバスを介して実行可能となり、メモリアクセスコストの削減が実現する。
NUMAアーキテクチャを持つ情報処理装置の構成例を示す図である。 デバイスと、デバイスのアクセスするメモリがローカルバス上に存在しない情報処理装置の構成及びメモリアクセス処理について説明する図である。 デバイスがアクセスするメモリがCPUのローカルバス上に無い場合の情報処理装置の構成及びメモリアクセス処理について説明する図である。 本発明の情報処理装置の一構成例であるNUMAアーキテクチャを持つ情報処理装置の構成例を示す図である。 CPU及びデバイスからメモリに対してアクセスを実行する際の処理シーケンスについて説明するフローチャートを示す図である。 本発明の情報処理装置におけるデータ格納構成、およびメモリアクセス処理例について説明する図である。 デバイスドライバがメモリを確保する際に、バス指定によるメモリ確保を行なう場合の処理シーケンスについて説明するフローチャートを示す図である。 特定のローカルバス(システムバス)に接続されたCPUにおいてアプリケーションを起動させる処理を行う場合のシーケンスについて説明するフローチャートを示す図である。 複数のCPUを利用することで処理の効率化を図る構成例について説明する図である。 デバイスドライバを割り込み処理を行なう部分と、メインのデータ処理を行なう部分(ボトムハーフ)に分割したデバイスドライバの構成例について説明する図である。 割り込みが発生した際の割り込み処理部の処理のシーケンスについて説明するフローチャートを示す図である。 ボトムハーフ処理部がスケジューリングされた際の処理のシーケンスについて説明するフローチャートを示す図である。
符号の説明
10 情報処理装置
11 チップセット
12 CPU1
13 メモリ1
14 デバイス1
21 チップセット
22 CPU2
23 メモリ2
24 デバイス2
31 アドレス変換テーブル
41 ドライバ
42〜44 データ
100 情報処理装置
111 チップセット
112 CPU1
113 メモリ1
114 デバイス1
121 チップセット
122 CPU1
123 メモリ1
124 デバイス1
131 アドレス変換テーブル
141 デバイスドライバ
181 メインドライバ
182 割り込みドライバ
200 デバイスドライバ
201 初期化処理部
202 状態保持部
203 送信処理部
204 割り込み処理部
210 ボトムハーフ処理部
211 送信完了処理部
212 受信処理部
213 エラー処理部

Claims (6)

  1. 少なくともメモリとプロセッサをシステムバスに接続した複数のノードと、
    前記ノードを相互接続する相互接続バスと、
    前記複数のノードのいずれかのノードのシステムバスに接続され、データ処理を実行するデバイスを有し、
    前記デバイスが接続されたシステムバスに接続されたメモリを、前記デバイスのアクセスメモリとして選択する処理を実行するメモリ選択部と、
    前記デバイスの接続されたシステムバスに接続されたプロセッサを、前記デバイスに対応するデバイスドライバの設定プロセッサとして選択する処理を実行するプロセッサ選択部を有し、
    前記メモリ選択部は、
    前記デバイスが接続されたシステムバスに接続されたメモリの確保処理に失敗した場合、前記デバイスが接続されたシステムバスに接続されたメモリ以外のメモリを前記デバイスのアクセスメモリとして選択する処理を実行し、
    前記プロセッサ選択部は、
    前記デバイスの接続されたシステムバスの確認処理を実行して、該システムバスに接続されたプロセッサをデバイス利用アプリケーションの起動プロセッサとするプロセッサ選択処理を実行する情報処理装置。
  2. 前記デバイスドライバは、
    メインのデータ処理を実行するメイン処理実行部と、
    割り込み処理を実行する割り込み処理実行部とに分割され、
    前記複数のノードに設定される複数プロセッサの1つの第1プロセッサが前記メイン処理の実行プロセッサであり、他の第2プロセッサが前記割り込み処理の実行プロセッサとして構成される請求項1に記載の情報処理装置。
  3. 前記割り込み処理の実行プロセッサは、
    前記デバイスと同一のシステムバスの接続プロセッサを選択、または、
    プロセッサ選択時点において最も低負荷のプロセッサを選択、または、
    ラウンドロビン手法による選択、
    上記いずれかの選択手法によって選択する構成である請求項2に記載の情報処理装置。
  4. 前記デバイスは通信処理を実行するデバイスであり、
    前記メイン処理部は、データ送信完了処理、およびデータ受信完了処理、およびエラー処理を実行する処理部である請求項2に記載の情報処理装置。
  5. 情報処理装置において実行する情報処理方法であり、
    前記情報処理装置は、
    少なくともメモリとプロセッサをシステムバスに接続した複数のノードと、
    前記ノードを相互接続する相互接続バスと、
    前記複数のノードのいずれかのノードのシステムバスに接続され、データ処理を実行するデバイスを有し、
    前記情報処理装置のメモリ選択部が、前記デバイスが接続されたシステムバスに接続されたメモリを、前記デバイスのアクセスメモリとして選択するメモリ選択処理を実行し、
    前記情報処理装置のプロセッサ選択部が、前記デバイスの接続されたシステムバスに接続されたプロセッサを、前記デバイスに対応するデバイスドライバの設定プロセッサとして選択するプロセッサ選択処理を実行し、
    前記メモリ選択処理において、前記メモリ選択部は、
    前記デバイスが接続されたシステムバスに接続されたメモリの確保処理に失敗した場合、前記デバイスが接続されたシステムバスに接続されたメモリ以外のメモリを前記デバイスのアクセスメモリとして選択する処理を実行し、
    前記プロセッサ選択処理において、前記プロセッサ選択部は、
    前記デバイスの接続されたシステムバスの確認処理を実行して、該システムバスに接続されたプロセッサをデバイス利用アプリケーションの起動プロセッサとするプロセッサ選択処理を実行する情報処理方法。
  6. 情報処理装置において情報処理を実行させるコンピュータ・プログラムであり、
    前記情報処理装置は、
    少なくともメモリとプロセッサをシステムバスに接続した複数のノードと、
    前記ノードを相互接続する相互接続バスと、
    前記複数のノードのいずれかのノードのシステムバスに接続され、データ処理を実行するデバイスを有し、
    前記情報処理装置のメモリ選択部に、前記デバイスが接続されたシステムバスに接続されたメモリを、前記デバイスのアクセスメモリとして選択するメモリ選択処理を実行させ、
    前記情報処理装置のプロセッサ選択部に、前記デバイスの接続されたシステムバスに接続されたプロセッサを、前記デバイスに対応するデバイスドライバの設定プロセッサとして選択するプロセッサ選択処理を実行させ、
    前記メモリ選択処理において、前記メモリ選択部に、
    前記デバイスが接続されたシステムバスに接続されたメモリの確保処理に失敗した場合、前記デバイスが接続されたシステムバスに接続されたメモリ以外のメモリを前記デバイスのアクセスメモリとして選択する処理を実行させ、
    前記プロセッサ選択処理において、前記プロセッサ選択部に、
    前記デバイスの接続されたシステムバスの確認処理を実行して、該システムバスに接続されたプロセッサをデバイス利用アプリケーションの起動プロセッサとするプロセッサ選択処理を実行させるコンピュータ・プログラム。
JP2008110542A 2008-04-21 2008-04-21 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム Expired - Fee Related JP4609521B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008110542A JP4609521B2 (ja) 2008-04-21 2008-04-21 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US12/401,684 US8166339B2 (en) 2008-04-21 2009-03-11 Information processing apparatus, information processing method, and computer program
CN200910135232.7A CN101566976B (zh) 2008-04-21 2009-04-21 信息处理装置和信息处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008110542A JP4609521B2 (ja) 2008-04-21 2008-04-21 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
JP2009265687A JP2009265687A (ja) 2009-11-12
JP4609521B2 true JP4609521B2 (ja) 2011-01-12

Family

ID=41202074

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008110542A Expired - Fee Related JP4609521B2 (ja) 2008-04-21 2008-04-21 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム

Country Status (3)

Country Link
US (1) US8166339B2 (ja)
JP (1) JP4609521B2 (ja)
CN (1) CN101566976B (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8327358B2 (en) * 2009-12-10 2012-12-04 Empire Technology Development Llc Hypervisor driver management in virtual machine environments
US9218234B2 (en) * 2012-04-27 2015-12-22 Marvell World Trade Ltd. Memory dump and analysis in a computer system
EP3319258B1 (en) * 2015-12-23 2019-11-27 Huawei Technologies Co., Ltd. Service take-over method and storage device, and service take-over apparatus
CN109426553A (zh) 2017-08-21 2019-03-05 上海寒武纪信息科技有限公司 任务切分装置及方法、任务处理装置及方法、多核处理器
WO2019001418A1 (zh) 2017-06-26 2019-01-03 上海寒武纪信息科技有限公司 数据共享系统及其数据共享方法
CN110413551B (zh) 2018-04-28 2021-12-10 上海寒武纪信息科技有限公司 信息处理装置、方法及设备
CN109214616B (zh) 2017-06-29 2023-04-07 上海寒武纪信息科技有限公司 一种信息处理装置、系统和方法
CN111052134B (zh) * 2017-08-31 2024-04-26 快图有限公司 外围处理设备
CN111309529B (zh) * 2018-12-11 2022-04-19 英业达科技有限公司 依处理器信息完整测试处理器内通信链路的系统及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05290001A (ja) * 1992-04-13 1993-11-05 Nec Corp 分散処理システムのメモリ管理方式
JPH1021203A (ja) * 1996-07-05 1998-01-23 Hitachi Ltd I/o装置のアクセス方法およびそのためのマルチプロセッサシステム

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03123425A (ja) 1989-10-05 1991-05-27 Ajinomoto Co Inc ダイズ属に属する植物及びその育種法
US5673413A (en) 1995-12-15 1997-09-30 International Business Machines Corporation Method and apparatus for coherency reporting in a multiprocessing system
JP3123425B2 (ja) 1996-02-27 2001-01-09 日本電気株式会社 割り込み負荷分散装置
US20020016891A1 (en) * 1998-06-10 2002-02-07 Karen L. Noel Method and apparatus for reconfiguring memory in a multiprcessor system with shared memory
US6633916B2 (en) * 1998-06-10 2003-10-14 Hewlett-Packard Development Company, L.P. Method and apparatus for virtual resource handling in a multi-processor computer system
US6647508B2 (en) * 1997-11-04 2003-11-11 Hewlett-Packard Development Company, L.P. Multiprocessor computer architecture with multiple operating system instances and software controlled resource allocation
US6658538B2 (en) 2001-06-21 2003-12-02 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system having a page table including node-specific data storage and coherency control
US6968398B2 (en) * 2001-08-15 2005-11-22 International Business Machines Corporation Method of virtualizing I/O resources in a computer system
US7043666B2 (en) * 2002-01-22 2006-05-09 Dell Products L.P. System and method for recovering from memory errors
US7017074B2 (en) * 2002-03-12 2006-03-21 Sun Microsystems, Inc. System architecture providing redundant components to improve die yields and system reliability
US7529875B2 (en) * 2003-08-20 2009-05-05 International Business Machines Corporation Assigning interrupts for input/output (I/O) devices among nodes of a non-uniform memory access (NUMA) system
US7380039B2 (en) * 2003-12-30 2008-05-27 3Tera, Inc. Apparatus, method and system for aggregrating computing resources
JP2006039822A (ja) 2004-07-26 2006-02-09 Canon Inc マルチプロセッサ搭載システムlsiの制御方法
US20060080514A1 (en) * 2004-10-08 2006-04-13 International Business Machines Corporation Managing shared memory
JP4625675B2 (ja) * 2004-10-20 2011-02-02 株式会社日立製作所 ストレージ装置のリソース割り当て方法及びストレージ装置
US7478268B2 (en) * 2005-09-13 2009-01-13 International Business Machines Corporation Deallocation of memory in a logically-partitioned computer
US20070073993A1 (en) * 2005-09-29 2007-03-29 International Business Machines Corporation Memory allocation in a multi-node computer
US7472234B2 (en) * 2006-02-28 2008-12-30 Red Hat, Inc. Method and system for reducing latency
US7500067B2 (en) * 2006-03-29 2009-03-03 Dell Products L.P. System and method for allocating memory to input-output devices in a multiprocessor computer system
JP4544246B2 (ja) * 2006-12-28 2010-09-15 ソニー株式会社 制御装置および方法、プログラム、並びに記録媒体
US9021506B2 (en) * 2007-01-25 2015-04-28 Hewlett-Packard Development Company, L.P. Resource ejectability in multiprocessor systems
US9185160B2 (en) * 2007-02-12 2015-11-10 Oracle America, Inc. Resource reservation protocol over unreliable packet transport
US8037270B2 (en) * 2007-06-27 2011-10-11 International Business Machines Corporation Structure for memory chip for high capacity memory subsystem supporting replication of command data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05290001A (ja) * 1992-04-13 1993-11-05 Nec Corp 分散処理システムのメモリ管理方式
JPH1021203A (ja) * 1996-07-05 1998-01-23 Hitachi Ltd I/o装置のアクセス方法およびそのためのマルチプロセッサシステム

Also Published As

Publication number Publication date
JP2009265687A (ja) 2009-11-12
US20090265500A1 (en) 2009-10-22
CN101566976A (zh) 2009-10-28
US8166339B2 (en) 2012-04-24
CN101566976B (zh) 2013-03-13

Similar Documents

Publication Publication Date Title
JP4609521B2 (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US10365830B2 (en) Method, device, and system for implementing hardware acceleration processing
US8627040B2 (en) Processor-bus-connected flash storage paging device using a virtual memory mapping table and page faults
EP3796168A1 (en) Information processing apparatus, information processing method, and virtual machine connection management program
KR20150132432A (ko) 네트워크를 통한 메모리 공유
US7231470B2 (en) Dynamically setting routing information to transfer input output data directly into processor caches in a multi processor system
JP2018022345A (ja) 情報処理システム
JPWO2010097925A1 (ja) 情報処理装置
JP5158576B2 (ja) 入出力制御システム、入出力制御方法、及び、入出力制御プログラム
US9448871B2 (en) Information processing device and method for selecting processor for memory dump processing
JPWO2008114415A1 (ja) マルチプロセッシングシステム
JPH1173365A (ja) データ移動操作を最適化する方法
JP5996110B2 (ja) 計算機システム及び制御方法
JP2003271404A (ja) マルチプロセッサシステム
US20160154603A1 (en) Data transfer control device, apparatus including the same, and data transfer control method
JP2010211506A (ja) 不均一メモリアクセス機構を備えるコンピュータ、コントローラ、及びデータ移動方法
US8645668B2 (en) Information processing apparatus, information processing method and computer program
JPH10187646A (ja) スプリット smp コンピュータ・システム
JP5699665B2 (ja) サーバ装置、処理実行方法およびプログラム
JP6551069B2 (ja) 情報処理装置および画像形成装置
JP6358330B2 (ja) 情報処理装置、情報処理システム、メモリ管理方法およびメモリ管理プログラム
CN113176950A (zh) 报文处理方法、装置、设备及计算机可读存储介质
JP2011257973A (ja) メモリ管理方法及びメモリ管理装置
JP2020095446A (ja) 情報処理装置、メモリ初期化制御方法及びプログラム
JP2020008933A (ja) 仮想化環境におけるデバイスへのアクセス方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100420

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100603

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100706

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100830

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

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

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

Free format text: PAYMENT UNTIL: 20131022

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131022

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees