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

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

Info

Publication number
JP4548505B2
JP4548505B2 JP2008106354A JP2008106354A JP4548505B2 JP 4548505 B2 JP4548505 B2 JP 4548505B2 JP 2008106354 A JP2008106354 A JP 2008106354A JP 2008106354 A JP2008106354 A JP 2008106354A JP 4548505 B2 JP4548505 B2 JP 4548505B2
Authority
JP
Japan
Prior art keywords
memory
data
processing
dma
processor
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
JP2008106354A
Other languages
English (en)
Other versions
JP2009258936A (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 JP2008106354A priority Critical patent/JP4548505B2/ja
Priority to US12/419,817 priority patent/US20090265515A1/en
Publication of JP2009258936A publication Critical patent/JP2009258936A/ja
Application granted granted Critical
Publication of JP4548505B2 publication Critical patent/JP4548505B2/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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)

Description

本発明は、情報処理装置、および情報処理方法、並びにコンピュータ・プログラムに関する。さらに詳細には、装置内のデータ転送処理あるいはコピー処理を行う情報処理装置、情報処理方法、並びにコンピュータ・プログラムに関する。
様々なデータ処理を行う情報処理装置において、例えば通信処理や様々なデータ処理を実行するデバイスが保持するデータを情報処理装置が実行するアプリケーションによって処理するためには、アプリケーションのアクセス可能なメモリ空間(ユーザ空間)にデータを移動またはコピーすることが必要となる。
デバイス上にあるデータをアプリケーションに渡す際の一般的な処理の流れについて図1を参照して説明する。図1に示す情報処理装置100は、CPU110、通信デバイスやデータ処理デバイスなどのデバイス120、メモリ130がシステムバス102に接続されている。システムバス102に接続された各構成部位にはシステムバス102を介してデータ転送がなされる。
メモリ130は、OS(Operating System)が管理するカーネル空間132と、CPU110の制御の下で実行される様々なアプリケーションがアクセス可能なユーザ空間131を有する。
デバイス120上にあるデータ121は、まず、DMA(Direct Memory Access)を用いて、メモリ130上のカーネル空間131へ転送される。次に、カーネル空間131に転送されたデータがCPU(Central Processing Unit)の実行するOSの制御の下、ユーザ空間131へコピーされる。
このようなステップ、すなわち、デバイス→カーネル空間→ユーザ空間のデータ転送およびコピー処理を実行することで、アプリケーションがアクセス可能なユーザ空間131へデータを移動することができる。
この処理の流れについて図2に示すフローチャートを参照して説明する。
まず、ステップS101においてデバイスがデータを取得する。
次にステップS102において、デバイスがデータをメモリのカーネル空間へDMA(Direct Memory Access)を用いて転送する。
次に、ステップS103において、CPU(Central Processing Unit)の実行するOSの制御の下、ユーザ空間へコピーされる。
最後に、ステップS104において、アプリケーションがユーザ空間からデータを取得する。
このようにデバイスの保持するデータをアプリケーションの利用可能なユーザ空間へ格納するためには、複数の処理ステップが必要となる。すなわち多くの処理サイクルが必要となり、転送コストの増加やデータ処理効率の低下を招くことになる。このような問題を解決するため、DMAのトランザクションを分割したり、あるいは統合したり、さらには条件次第でDMAを利用しない設定とするなどにより、デバイスとメモリとの間の転送コストを低減するための手法が提案されている。
例えば特許文献1(特許2664838(IBM))には、パケットの構成情報をデータと同時に送信し、パケットの構成要素ごとにDMA先を変更することで、受信端末におけるデータの分割及びコピーを回避して、処理効率の向上を図る構成を開示している。
また、特許文献2(特開2000−112849(日立製作所))は、実メモリ空間で非連続なデータに対して、アドレス変換テーブルを用いることで連続領域として扱うことを可能とし、複数回のDMA処理を1回にまとめることでDMA処理回数の低減による処理の高速化を実現する構成を開示している。
さらに、特許文献3(特開平9−288631(日立製作所))は、デバイスからホストに対するデータコピーを行う際に、コピーするデータ長に応じてコピー方式を変更する構成を提案している。具体的には、DMA、またはPIO(Programed I/O)を、データ長に応じて選択的に利用する構成とすることで、コピー性能の最適化を実現する構成を開示している。
また、近年、PCI−Expressのような高速シリアルバスの登場と共に、デバイスからメモリへのDMA自体は高速処理が可能となっている。しかしながら、デバイスからDMAによりカーネル空間に転送されたデータを、アプリケーションが扱えるようにユーザ空間へコピーする処理、すなわちカーネル空間からユーザ空間へのデータコピー処理はCPUの処理能力に依存することになる。結果として、この従来の転送シーケンス、すなわち、デバイス→カーネル空間→ユーザ空間のデータ転送を実行する構成では、CPUの処理能力を高めない限り処理効率を高めることはできない。
このような問題を解決すべく、DMAをカーネル空間に対してではなく、ユーザ空間に対して直接行なうゼロコピーによって処理コストを低減する手法が提案されている。
特許文献4(特開平9−294132(日立電線))は、フレーム中継装置において受信フレームをメモリコピーすること無く送信フレームとして扱うことが可能なメモリ管理方法を利用した構成を提案している。この構成により、メモリコピー性能に依存しないフレーム中継を実現している。
また、特許文献5(特開2006−302246(富士通))は、デバイスにて受信されたデータをDMAする際の宛先を制御することで、ユーザ空間(アプリケーション)に直接データを渡す仕組みを実現している。
ゼロコピー方式について、図3を参照して説明する。図3も、図1と同様の構成を持つ情報処理装置140を示している。情報処理装置140は、CPU150、通信デバイスやデータ処理デバイスなどのデバイス160、メモリ170がシステムバス142に接続された構成を持つ。システムバス142に接続された各構成部位にはシステムバス142を介してデータ転送がなされる。
メモリ170は、OS(Operating System)が管理するカーネル空間172と、CPU150の制御の下で実行される様々なアプリケーションがアクセス可能なユーザ空間171を有する。
ゼロコピー方式を適用した構成では、デバイス160上にあるデータ161は、DMA(Direct Memory Access)を用いて、メモリ170上のユーザ空間171へコピーされる。すなわち、カーネル空間172ではなく、ユーザ空間171へコピーされる。このように、ユーザ空間に対して直接行なうゼロコピーによって処理コストの低減が可能となる。
しかし、このようなゼロコピーを行なうためには、デバイスドライバやアプリケーションなどシステム全体の変更が必要となる。加えて、カーネル空間とユーザ空間との切り分けが曖昧となることから、該部分がセキュリティホールとなってシステムの堅牢性が損なわれる可能性が懸念される。すなわち、OSの関与しない任意のアプリケーションやデバイスによって情報処理装置内のセキュアなデータのアクセス可能性が発生し、セキュアなデータの漏洩の可能性が懸念される。
本発明は、上記問題点に鑑みてなされたものであり、情報処理装置内のデータ転送あるいはコピー処理を効率的に実行しデータ処理の効率化、高速化を実現する情報処理装置、および情報処理方法、並びにコンピュータ・プログラムを提供することを目的とする。
本発明の第1の側面は、
複数のプロセッサを含むマルチプロセッサユニットを有し、
前記マルチプロセッサユニットは、
メインプロセッサを含むメインプロセッサエレメントと、
サブプロセッサと、プロセッサ対応のローカルメモリと、該ローカルメモリに対するデータ入出力をDMA(ダイレクトメモリアクセス)によって実行するメモリフローコントローラ(MFC)とを有するサブプロセッサエレメントを1つ以上有する構成であり、
前記メモリフローコントローラ(MFC)は、
前記マルチプロセッサユニットの外部からデータをDMA処理により前記ローカルメモリに入力して格納し、さらに、前記ローカルメモリに格納したデータをDMA処理により前記マルチプロセッサユニットの外部のメモリまたはデバイスに出力する処理を実行する構成であり、
前記DMA処理によるデータ転送を実行するサブプロセッサエレメントは、
オペレーションシステム(OS)の少なくとも一部の処理として前記DMA処理を実行する構成である情報処理装置にある。
さらに、本発明の情報処理装置の一実施態様において、前記情報処理装置は、前記マルチプロセッサユニットとバス接続されたシステムメモリを有し、前記システムメモリは、オペレーションシステム(OS)によって管理されるカーネル空間と、アプリケーションの利用可能なユーザ空間が定義されたメモリであり、前記メモリフローコントローラ(MFC)は、前記システムメモリのカーネル空間からデータをDMA処理により前記ローカルメモリに入力して格納し、さらに、前記ローカルメモリに格納したデータをDMA処理により前記システムメモリのユーザ空間に出力する処理を実行する構成である。
さらに、本発明の情報処理装置の一実施態様において、前記情報処理装置は、前記マルチプロセッサユニットとバス接続された第1デバイスおよび第2デバイスを有し、前記メモリフローコントローラ(MFC)は、前記第1デバイスからデータをDMA処理により前記ローカルメモリに入力して格納し、さらに、前記ローカルメモリに格納したデータをDMA処理により前記第2デバイスに出力する処理を実行する構成である。
さらに、本発明の情報処理装置の一実施態様において、前記DMA処理によるデータ転送によって、前記ユーザ空間に出力されたデータは、前記マルチプロセッサユニット内の複数のサブプロセッサエレメントのいずれかのサブブロセッサエレメントが実行するアプリケーションによって取得され利用される構成である。
さらに、本発明の第2の側面は、
情報処理装置においてデータ転送処理を行う情報処理方法であり、
前記情報処理装置は、複数のプロセッサを含むマルチプロセッサユニットを有し、
前記マルチプロセッサユニットは、
メインプロセッサを含むメインプロセッサエレメントと、
サブプロセッサと、プロセッサ対応のローカルメモリと、該ローカルメモリに対するデータ入出力をDMA(ダイレクトメモリアクセス)によって実行するメモリフローコントローラ(MFC)とを有するサブプロセッサエレメントを1つ以上有する構成であり、
前記メモリフローコントローラ(MFC)が、前記マルチプロセッサユニットの外部からデータをDMA処理により前記ローカルメモリに入力して格納するステップと、
前記メモリフローコントローラ(MFC)が、前記ローカルメモリに格納したデータをDMA処理により前記マルチプロセッサユニットの外部のメモリまたはデバイスに出力する処理を実行するステップを有し、
前記DMA処理によるデータ転送を実行するサブプロセッサエレメントは、
オペレーションシステム(OS)の少なくとも一部の処理として前記DMA処理を実行する情報処理方法にある。
さらに、本発明の第3の側面は、
情報処理装置においてデータ転送処理を実行させるコンピュータ・プログラムであり、
前記情報処理装置は、複数のプロセッサを含むマルチプロセッサユニットを有し、
前記マルチプロセッサユニットは、
メインプロセッサを含むメインプロセッサエレメントと、
サブプロセッサと、プロセッサ対応のローカルメモリと、該ローカルメモリに対するデータ入出力をDMA(ダイレクトメモリアクセス)によって実行するメモリフローコントローラ(MFC)とを有するサブプロセッサエレメントを1つ以上有し、サブプロセッサエレメントの1つは、オペレーションシステム(OS)の少なくとも一部の処理としてDMA処理を実行するOS実行エレメントであり、
前記OS実行エレメントのメモリフローコントローラ(MFC)に、前記マルチプロセッサユニットの外部からデータをDMA処理により前記ローカルメモリに入力して格納させるステップと、
前記OS実行エレメントの前記メモリフローコントローラ(MFC)に、前記ローカルメモリに格納したデータをDMA処理により前記マルチプロセッサユニットの外部のメモリまたはデバイスに出力する処理を実行させるステップを有するコンピュータ・プログラムにある。
なお、本発明のプログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
本発明の一実施例の構成によれば、情報処理装置内のシステムメモリのカーネル空間とユーザ空間の間のデータコピー処理や、デバイス間のデータ転送処理に際して、マルチプロセッサユニット内のサブプロセッサユニットに設けられたメモリフローコントローラ(MFC)がDMAによって外部から自己のローカルメモリにデータを転送し、さらに自己のローカルメモリから、外部のメモリまたはデバイスにデータをDMA転送することで、データ転送やコピーを行う。本構成により、メインプロセッサに対する負荷を発生させることのないデータ転送やコピー処理が実現される。
以下、本発明の情報処理装置、および情報処理方法、並びにコンピュータ・プログラムの詳細について説明する。
[実施例1]
まず、図4を参照して、本発明の一実施例に係る情報処理装置の構成および処理例について説明する。図4に示す本実施例に係る情報処理装置200は、マルチプロセッサユニット210と、ネットワークカードなどの通信デバイスやビデオカードなどのデータ処理デバイスなどから構成されるデバイス220、さらにシステムメモリとしてのメモリ230がシステムバス202に接続された構成を持つ。システムバス202に接続された各構成部位にはシステムバス202を介してデータ転送がなされる。
メモリ230は、OS(Operating System)が管理するカーネル空間232と、マルチプロセッサユニット210のプロセッサエレメントの制御の下で実行される様々なアプリケーションがアクセス可能なユーザ空間231を有する。
マルチプロセッサユニット210は、メインプロセッサ(PPU)を含むエレメントであるPPE(Power Processor Element)211と、サブプロセッサ(SPU)を含むエレメントであるSPE(Synergistic Processor Element)212とを有する。
マルチプロセッサユニット210は、1つのメインプロセッサエレメント(PPE)211と、複数、例えば8つのサブプロセッサエレメント(SPE)212によって構成される。マルチプロセッサユニット210に含まれる複数のプロセッサエレメントは、並列にデータ処理を実行可能である。なお、図4のマルチプロセッサユニット210内には、サブプロセッサエレメント(SPE)212を1つのみ示しているが、同様の構成を持つサブプロセッサエレメント(SPE)が複数、存在する。
メインプロセッサエレメント(PPE)211は、メインプロセッサ本体としてのPPU(Power Processor Unit)と、L1キャッシュ(Level1 cache)、L2キャッシュ(Level2 cache)を持つ。
サブプロセッサエレメント(SPE)212は、汎用SIMD(Single Instruction stream Multiple Data stream)演算ユニットであるSPU(Synergistic Processor Unit)と、256kBのローカルストア[LS(Local Store)]と呼ばれる各SPU対応のローカルメモリ、およびDMAコントローラであるメモリフローコントローラ[MFC(Memory Flow Controller)]を有する。
SPE212のMFCは、情報処理装置の構成部位とSPE212内のローカルストア(LS)間においてデータをDMA転送する機能を持つ。例えば、システムのメモリ230と、SPE212内のローカルストア(LS)間においてデータをDMA転送する。
本実施例において、デバイス220の保持するデータ221をメモリ230のユーザ空間231に格納する処理シーケンスについて、図5に示すフローチャートを参照して説明する。
まず、ステップS201において、図4に示すデバイス220がデータ221を取得する。
次にステップS202において、デバイス220がデータをメモリ230のカーネル空間232へDMA(Direct Memory Access)を用いて転送する。
次に、ステップS203において、マルチプロセッサユニット210内の1つのサブプロセッサエレメント(SPE)212の実行するOSの制御の下、カーネル空間232にあるデータ251を、サブプロセッサエレメント(SPE)212のローカルストア(LS)にコピーする。図4に示すデータ251のコピーデータがデータ252となる。なお、マルチプロセッサユニット210内に設定された複数のサブプロセッサエレメント(SPE)の1つのSPEが、オペレーションシステム(OS)の少なくとも一部の処理としてDMA処理を実行するプロセッサとなり、本例では、そのOS実行プロセッサがサブプロセッサエレメント(SPE)212である。サブプロセッサエレメント(SPE)212が実行するデータコピー処理は、サブプロセッサエレメント(SPE)212のMFCによるデータコピー処理(MFC GET)として実行される。
次に、ステップS204においてMFC処理が終了したか否かが判定される。すなわち、カーネル空間232にあるデータ251が、全てサブプロセッサエレメント(SPE)212のローカルストア(LS)にコピーされたか否かが判定される。なお、MFCによる1回のデータコピー処理では、コピー可能なデータ量に上限(例えば16Kb)があり、コピー対象のデータサイズに応じて、繰り返しコピー処理が行われることになる。
カーネル空間232のデータ251全体が、サブプロセッサエレメント(SPE)212のローカルストア(LS)にコピーされると、ステップS204において、MFCが完了したと判定される。図4に示すように、データ252がサブプロセッサエレメント(SPE)212のローカルストア(LS)に格納される。
次に、ステップS205に進み、サブプロセッサエレメント(SPE)212の実行するOSの制御の下、ローカルストア(LS)に格納されたデータ252が、メモリ230のユーザ空間231にコピーされる。図4に示すデータ253である。このコピー処理は、サブプロセッサエレメント(SPE)212のMFCによるデータコピー処理(MFC PUT)として行われる。
このMFCによるデータコピー処理も、1回の処理によってコピー可能なデータ量に上限(例えば16Kb)があるため、コピー対象のデータサイズに応じて繰り返し行われることになる。
ローカルストア(LS)に格納されたデータ252全体が、メモリ230のユーザ空間231にコピーされると、ステップS206において、MFCが完了したと判定される。図4に示すように、データ253がメモリ230のユーザ空間231に格納される。
最後に、ステップS207において、アプリケーションがメモリ230のユーザ空間231からデータ253を取得する。なお、アプリケーションは、例えばマルチプロセッサユニット210に構成された複数のサブプロセッサエレメント(SPE)のいずれかにおいて実行される。
このように、本実施例では、デバイスの保持するデータをアプリケーションの利用可能なユーザ空間へ格納する処理に際して、
(1)サブプロセッサエレメント(SPE)のMFCによるダイレクトメモリアクセス(DMA)、すなわち、[MFC GET]の実行。
この処理により、メモリのカーネル空間にあるデータをサブプロセッサエレメント(SPE)のローカルストア(LS)上にコピーする。
(2)サブプロセッサエレメント(SPE)のMFCによるダイレクトメモリアクセス(DMA)、すなわち、[MFC GET]の実行。
この処理により、サブプロセッサエレメント(SPE)のローカルストア(LS)上にあるデータをメモリのユーザ空間にコピーする。
これらの処理シーケンスとすることで、メインのプロセッサであるPPE211に対する処理負荷を発生させることなく、カーネル空間からユーザ空間へのデータコピーを実現している。
なお、図4、図5を参照して説明した処理例は、データコピーをカーネル空間とユーザ空間との間で実行した処理例であるが、本発明に従った処理は、このような処理に限るものではなく、カーネル空間内、ユーザ空間内でのメモリコピーに適用することも可能である。すなわち、これらの同一空間内のデータコピーを、サブプロセッサエレメントのローカルストア(LS)を介したデータコピー処理を介在させて実行することも可能である。
[実施例2]
サブプロセッサエレメントのMFCによるデータコピー処理は、図4に示すメモリ230のようなメインメモリとのコピー処理に限らず、例えばデバイス間でのデータコピーに適用することもできる。
図6を参照してデバイス間のデータ転送処理例について説明する。図6に示す情報処理装置300は、マルチプロセッサユニット310、通信デバイスやデータ処理デバイスなどのデバイスA320、デバイスB330、メモリ340がシステムバス302に接続された構成を持つ。システムバス302に接続された各構成部位にはシステムバス302を介してデータ転送がなされる。
マルチプロセッサユニット310は、先に図4を参照して説明したと同様の構成である。すなわち、メインのプロセッサ(PPU)を含むエレメントであるPPE(Power Processor Element)311と、サブプロセッサ(SPU)を含むエレメントであるSPE(Synergistic Processor Element)312とを有する。
マルチプロセッサユニット310は、1つのメインプロセッサエレメント(PPE)311と、複数、例えば8つのサブプロセッサエレメント(SPE)312によって構成される。なお、図6のマルチプロセッサユニット310内には、サブプロセッサエレメント(SPE)312を1つのみ示しているが、同様の構成を持つサブプロセッサエレメント(SPE)が複数、存在する。
メインプロセッサエレメント(PPE)311は、メインプロセッサ本体としてのPPU(Power Processor Unit)と、L1キャッシュ(Level1 cache)、L2キャッシュ(Level2 cache)を持つ。
サブプロセッサエレメント(SPE)312は、汎用SIMD(Single Instruction stream Multiple Data stream)演算ユニットであるSPU(Synergistic Processor Unit)と、256kBのローカルストア[LS(Local Store)]と呼ばれる各SPU対応のローカルメモリ、DMAコントローラであるメモリフローコントローラ[MFC(Memory Flow Controller)]から構成される。
SPE312のMFCは、情報処理装置の構成部位とSPE312内のローカルストア(LS)間においてデータをDMA転送する機能を持つ。例えば、システムのデバイスA320,デバイスB330と、SPE212内のローカルストア(LS)間においてデータをDMA転送する機能を持つ。
本実施例において、デバイスA320の保持するデータ321を、デバイスB330に転送する処理シーケンスについて、図7に示すフローチャートを参照して説明する。
まず、ステップS301において、図6に示すデバイスA320がデータ321を取得する。
次にステップS302において、マルチプロセッサユニット310内の1つのサブプロセッサエレメント(SPE)312の実行するOSの制御の下、デバイスA320にあるデータ321を、サブプロセッサエレメント(SPE)312のローカルストア(LS)にコピーする。図6に示すデータ321のコピーデータがデータ315となる。なお、マルチプロセッサユニット310内に設定された複数のサブプロセッサエレメント(SPE)の1つのSPEが、オペレーションシステム(OS)の少なくとも一部の処理としてDMA処理を実行するプロセッサとなり、本例では、そのOS実行プロセッサがサブプロセッサエレメント(SPE)312である。サブプロセッサエレメント(SPE)312が実行するデータコピー処理は、サブプロセッサエレメント(SPE)312のMFCによるデータコピー処理(MFC GET)として実行される。
次に、ステップS303においてMFC処理が終了したか否かが判定される。すなわち、デバイスA320のデータ321が、全てサブプロセッサエレメント(SPE)312のローカルストア(LS)にコピーされたか否かが判定される。なお、MFCによる1回のデータコピー処理では、コピー可能なデータ量に上限(例えば16Kb)があり、コピー対象のデータサイズに応じて、繰り返しコピー処理が行われることになる。
デバイスA320のデータ321全体が、サブプロセッサエレメント(SPE)312のローカルストア(LS)にコピーされると、ステップS303において、MFCが完了したと判定される。図6に示すように、データ315がサブプロセッサエレメント(SPE)312のローカルストア(LS)に格納される。次に、ステップS304に進み、サブプロセッサエレメント(SPE)312が、ローカルストア(LS)にコピーされたデータ315を、デバイスB330のローカルメモリ領域にコピーする。図6に示すデータ331である。このコピー処理は、サブプロセッサエレメント(SPE)312のMFCによるデータコピー処理(MFC PUT)として行われる。
このMFCによるデータコピー処理も、1回の処理によってコピー可能なデータ量に上限(例えば16Kb)があるため、コピー対象のデータサイズに応じて繰り返し行われることになる。
ローカルストア(LS)に格納されたデータ315全体が、デバイスB330のローカルメモリ領域にコピーされると、ステップS305において、MFCが完了したと判定される。図6に示すように、データ331がデバイスB330に格納される。
最後に、ステップS306において、デバイスB330がデータ331を取得してデータ処理、例えばデバイスB330が通信デバイスであれば、データ送信などの処理を実行する。
このように、本実施例では、デバイスの保持するデータを、他のデバイスへ転送する処理に際して、
(1)サブプロセッサエレメント(SPE)のMFCによるダイレクトメモリアクセス(DMA)、すなわち、[MFC GET]の実行。
この処理により、第1のデバイスにあるデータをサブプロセッサエレメント(SPE)のローカルストア(LS)上にコピーする。
(2)サブプロセッサエレメント(SPE)のMFCによるダイレクトメモリアクセス(DMA)、すなわち、[MFC PUT]の実行。
この処理により、サブプロセッサエレメント(SPE)のローカルストア(LS)上にあるデータを第2デバイスに提供する。
これらの処理シーケンスとすることで、メインのプロセッサであるPPEに対する処理負荷を発生させることなく、デバイス間のデータコピーを実現している。
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、LAN(Local Area Network)、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
以上、説明したように、本発明の一実施例の構成によれば、情報処理装置内のシステムメモリのカーネル空間とユーザ空間の間のデータコピー処理や、デバイス間のデータ転送処理に際して、マルチプロセッサユニット内のサブプロセッサユニットに設けられたメモリフローコントローラ(MFC)がDMAによって外部から自己のローカルメモリにデータを転送し、さらに自己のローカルメモリから、外部のメモリまたはデバイスにデータをDMA転送することで、データ転送やコピーを行う。本構成により、メインプロセッサに対する負荷を発生させることのないデータ転送やコピー処理が実現される。
情報処理装置におけるデータ転送処理例について説明する図である。 情報処理装置におけるデータ転送処理のシーケンスについて説明するフローチャートを示す図である。 情報処理装置におけるデータ転送処理例としてゼロコピーを適用した処理例について説明する図である。 本発明の一実施例に係る情報処理装置におけるデータ転送処理例について説明する図である。 本発明の一実施例に係る情報処理装置におけるデータ転送処理のシーケンスについて説明するフローチャートを示す図である。 本発明の一実施例に係る情報処理装置におけるデータ転送処理例について説明する図である。 本発明の一実施例に係る情報処理装置におけるデータ転送処理のシーケンスについて説明するフローチャートを示す図である。
符号の説明
100 情報処理装置
102 システムバス
110 CPU(Central Processor Unit)
120 デバイス
121 データ
130 メモリ
131 ユーザ空間
132 カーネル空間
140 情報処理装置
142 システムバス
150 CPU(Central Processor Unit)
160 デバイス
161 データ
170 メモリ
171 ユーザ空間
172 カーネル空間
200 情報処理装置
202 システムバス
210 マルチプロセッサユニット
211 メインプロセッサエレメント(PPE)
212 サブプロセッサエレメント(SPE)
221 データ
230 メモリ
231 ユーザ空間
232 カーネル空間
251〜253 データ
300 情報処理装置
302 システムバス
310 マルチプロセッサユニット
311 メインプロセッサエレメント(PPE)
312 サブプロセッサエレメント(SPE)
320 デバイスA
321 データ
330 デバイスB
331 データ
340 メモリ

Claims (6)

  1. 複数のプロセッサを含むマルチプロセッサユニットを有し、
    前記マルチプロセッサユニットは、
    メインプロセッサを含むメインプロセッサエレメントと、
    サブプロセッサと、プロセッサ対応のローカルメモリと、該ローカルメモリに対するデータ入出力をDMA(ダイレクトメモリアクセス)によって実行するメモリフローコントローラ(MFC)とを有するサブプロセッサエレメントを1つ以上有する構成であり、
    前記メモリフローコントローラ(MFC)は、
    前記マルチプロセッサユニットの外部からデータをDMA処理により前記ローカルメモリに入力して格納し、さらに、前記ローカルメモリに格納したデータをDMA処理により前記マルチプロセッサユニットの外部のメモリまたはデバイスに出力する処理を実行する構成であり、
    前記DMA処理によるデータ転送を実行するサブプロセッサエレメントは、
    オペレーションシステム(OS)の少なくとも一部の処理として前記DMA処理を実行する構成である情報処理装置。
  2. 前記情報処理装置は、
    前記マルチプロセッサユニットとバス接続されたシステムメモリを有し、
    前記システムメモリは、オペレーションシステム(OS)によって管理されるカーネル空間と、アプリケーションの利用可能なユーザ空間が定義されたメモリであり、
    前記メモリフローコントローラ(MFC)は、
    前記システムメモリのカーネル空間からデータをDMA処理により前記ローカルメモリに入力して格納し、さらに、前記ローカルメモリに格納したデータをDMA処理により前記システムメモリのユーザ空間に出力する処理を実行する構成である請求項1に記載の情報処理装置。
  3. 前記情報処理装置は、
    前記マルチプロセッサユニットとバス接続された第1デバイスおよび第2デバイスを有し、
    前記メモリフローコントローラ(MFC)は、
    前記第1デバイスからデータをDMA処理により前記ローカルメモリに入力して格納し、さらに、前記ローカルメモリに格納したデータをDMA処理により前記第2デバイスに出力する処理を実行する構成である請求項1に記載の情報処理装置。
  4. 前記DMA処理によるデータ転送によって、前記ユーザ空間に出力されたデータは、前記マルチプロセッサユニット内の複数のサブプロセッサエレメントのいずれかのサブブロセッサエレメントが実行するアプリケーションによって取得され利用される構成である請求項1に記載の情報処理装置。
  5. 情報処理装置においてデータ転送処理を行う情報処理方法であり、
    前記情報処理装置は、複数のプロセッサを含むマルチプロセッサユニットを有し、
    前記マルチプロセッサユニットは、
    メインプロセッサを含むメインプロセッサエレメントと、
    サブプロセッサと、プロセッサ対応のローカルメモリと、該ローカルメモリに対するデータ入出力をDMA(ダイレクトメモリアクセス)によって実行するメモリフローコントローラ(MFC)とを有するサブプロセッサエレメントを1つ以上有する構成であり、
    前記メモリフローコントローラ(MFC)が、前記マルチプロセッサユニットの外部からデータをDMA処理により前記ローカルメモリに入力して格納するステップと、
    前記メモリフローコントローラ(MFC)が、前記ローカルメモリに格納したデータをDMA処理により前記マルチプロセッサユニットの外部のメモリまたはデバイスに出力する処理を実行するステップを有し、
    前記DMA処理によるデータ転送を実行するサブプロセッサエレメントは、
    オペレーションシステム(OS)の少なくとも一部の処理として前記DMA処理を実行する情報処理方法。
  6. 情報処理装置においてデータ転送処理を実行させるコンピュータ・プログラムであり、
    前記情報処理装置は、複数のプロセッサを含むマルチプロセッサユニットを有し、
    前記マルチプロセッサユニットは、
    メインプロセッサを含むメインプロセッサエレメントと、
    サブプロセッサと、プロセッサ対応のローカルメモリと、該ローカルメモリに対するデータ入出力をDMA(ダイレクトメモリアクセス)によって実行するメモリフローコントローラ(MFC)とを有するサブプロセッサエレメントを1つ以上有し、サブプロセッサエレメントの1つは、オペレーションシステム(OS)の少なくとも一部の処理としてDMA処理を実行するOS実行エレメントであり、
    前記OS実行エレメントのメモリフローコントローラ(MFC)に、前記マルチプロセッサユニットの外部からデータをDMA処理により前記ローカルメモリに入力して格納させるステップと、
    前記OS実行エレメントの前記メモリフローコントローラ(MFC)に、前記ローカルメモリに格納したデータをDMA処理により前記マルチプロセッサユニットの外部のメモリまたはデバイスに出力する処理を実行させるステップを有するコンピュータ・プログラム。
JP2008106354A 2008-04-16 2008-04-16 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム Expired - Fee Related JP4548505B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008106354A JP4548505B2 (ja) 2008-04-16 2008-04-16 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US12/419,817 US20090265515A1 (en) 2008-04-16 2009-04-07 Information Processing Apparatus, Information Processing Method, and Computer Program

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2009258936A JP2009258936A (ja) 2009-11-05
JP4548505B2 true JP4548505B2 (ja) 2010-09-22

Family

ID=41202083

Family Applications (1)

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

Country Status (2)

Country Link
US (1) US20090265515A1 (ja)
JP (1) JP4548505B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9507951B2 (en) * 2014-10-20 2016-11-29 Intel Corporation Technologies for secure input and display of virtual touch user interfaces
DE112016007538T5 (de) * 2016-12-23 2019-09-26 Intel Corporation Technologie zur realisierung eines binärverzweigten non-volatile-memory-express-treibers

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007028364A (ja) * 2005-07-20 2007-02-01 Matsushita Electric Ind Co Ltd 通信制御装置、受信装置、集積回路、及び通信制御方法
JP2008077640A (ja) * 2006-09-22 2008-04-03 Sony Computer Entertainment Inc マルチプロセッサシステムにおける消費電力削減方法および装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080126599A1 (en) * 2006-08-28 2008-05-29 Chung-Yu Wei Iscsi target apparatus that does not require creating a buffer in the user space and related method thereof
US7865631B2 (en) * 2007-12-06 2011-01-04 International Business Machines Corporation Dynamic logical data channel assignment using time-grouped allocations

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007028364A (ja) * 2005-07-20 2007-02-01 Matsushita Electric Ind Co Ltd 通信制御装置、受信装置、集積回路、及び通信制御方法
JP2008077640A (ja) * 2006-09-22 2008-04-03 Sony Computer Entertainment Inc マルチプロセッサシステムにおける消費電力削減方法および装置

Also Published As

Publication number Publication date
JP2009258936A (ja) 2009-11-05
US20090265515A1 (en) 2009-10-22

Similar Documents

Publication Publication Date Title
CN100555257C (zh) 处理页面复制期间的dma操作的存储控制器和方法
KR101602991B1 (ko) 비가상화 시스템에서의 메모리 확장을 지원하기 위한 상호 운영 시스템 메모리 핫스왑
EP2798461B1 (en) Low latency cluster computing
WO2002088935A1 (en) System and method for efficiently performing a data transfer operation
JP2012508938A (ja) セキュアなアプリケーション実行方法および装置
TW201741867A (zh) 記憶體複製指令、處理器、方法及系統
CN113157290A (zh) 一种多系统安装方法、计算设备及存储介质
US20100169069A1 (en) Composite device emulation
US20160224325A1 (en) Hiding compilation latency
TWI507991B (zh) 多核心處理器及其相關控制方法與電腦系統
JP4548505B2 (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP2008269094A (ja) 情報処理装置、情報処理装置の最適化方法、プログラム
US20160378686A1 (en) Memory encryption exclusion method and apparatus
JP7225904B2 (ja) ベクトル演算処理装置、ベクトル演算処理装置による配列変数初期化方法、及び、ベクトル演算処理装置による配列変数初期化プログラム
JP4444305B2 (ja) 半導体装置
JP2011059787A (ja) ディジタルシグナルプロセッサシステムおよびディジタルシグナルプロセッサの立ち上げ方法
JP2008210280A (ja) 半導体装置及びdmaコントローラ
EP1235139B1 (en) System and method for supporting precise exceptions in a data processor having a clustered architecture
TWI847670B (zh) 使用矩陣乘法指令的設備
JP2906958B2 (ja) ユーザプログラムロード方式
JP6940283B2 (ja) Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム
KR100490438B1 (ko) 연산/저장을 병행하여 처리하는 장치 및 방법
Chakravarthi et al. Application-specific SOCs
JP2022080368A (ja) 計算ノード制御装置、計算ノード制御方法、及び、計算ノード制御プログラム
JP2011150636A (ja) マイクロプロセッサ及びその制御方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100202

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100326

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

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

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

Free format text: PAYMENT UNTIL: 20130716

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees