JP5387770B2 - データ転送制御装置、データ転送制御方法、およびデータ転送制御プログラム - Google Patents

データ転送制御装置、データ転送制御方法、およびデータ転送制御プログラム Download PDF

Info

Publication number
JP5387770B2
JP5387770B2 JP2012521204A JP2012521204A JP5387770B2 JP 5387770 B2 JP5387770 B2 JP 5387770B2 JP 2012521204 A JP2012521204 A JP 2012521204A JP 2012521204 A JP2012521204 A JP 2012521204A JP 5387770 B2 JP5387770 B2 JP 5387770B2
Authority
JP
Japan
Prior art keywords
transfer
data
processor
data transfer
cpu
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
JP2012521204A
Other languages
English (en)
Other versions
JPWO2011161768A1 (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2011161768A1 publication Critical patent/JPWO2011161768A1/ja
Application granted granted Critical
Publication of JP5387770B2 publication Critical patent/JP5387770B2/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
    • 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
    • G06F13/30Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、データ転送を制御するデータ転送制御装置、データ転送制御方法、およびデータ転送制御プログラムに関する。
従来から、メモリ間のデータ転送を高速に行う技術として、DMA(Direct Memory Access)転送を行う技術が開示されていた。DMA転送を行う専用のコントローラとして、DMAC(Direct Memory Access Controller)が存在する。DMACは、メモリからメモリへ、またはメモリから周辺機器へのデータ転送を、CPUを介さずに行う機能を有する。
たとえば、マルチコアプロセッサシステムのうち、各コアに対応したメモリが搭載された分散メモリ型のマルチコアプロセッサシステムでは、各コアで計算された結果は各コアに対応したメモリに一度格納される。格納後、マルチコアプロセッサシステムは、マスターコアのメモリに対してDMACによるDMA転送を行う。または、異なるコアに割り当てられたプロセスが計算結果を利用する場合、マルチコアプロセッサシステムは、異なるコアに対応するメモリに対してDMA転送を行う。
DMACを制御する技術として、小量のデータ、または離散したデータの転送をCPUが行い、連続した大量のデータの転送をDMACが行うことで、データ転送の高速化を実現するという技術が開示されている(たとえば、下記特許文献1を参照。)。
また、DMACを制御する他の技術として、分散された共有メモリを用い、DMACによるデータ転送処理とCPUによる画像処理とを効率的にパイプライン処理を行うという技術が開示されている(たとえば、下記特許文献2を参照。)。
特開2007−58276号公報 特開2008−90455号公報
しかしながら、上述した従来技術において、特許文献1、2にかかる技術では、DMACによるバースト転送によってバスが占有されてしまい、CPUがDMACの転送の完了待ちを行うため、CPUのスループットが低下するという問題があった。また、割り込み処理が発生した場合に、CPUは、メモリ上にある割り込みハンドラを読み込もうとするが、DMACによるDMA転送が完了してから割り込みハンドラを読み込むため、リアルタイム処理に対する応答性が低下するという問題があった。
本発明は、上述した従来技術による問題点を解消するため、転送待ちによるスループットの低下を防止し、リアルタイム処理に対する応答性を向上できるデータ転送制御装置、データ転送制御方法、およびデータ転送制御プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するため、開示のデータ転送制御装置は、プロセッサの指示によって転送元メモリから転送先メモリへ転送対象データを転送する転送部を含み、プロセッサによって実行されたプロセスを検出し、検出されたプロセスの種類に基づいて、転送部による転送対象データの転送に緊急性があるか否かを判断し、判断された結果に基づいて、転送部またはプロセッサによって転送対象データを転送するように制御する。
本データ転送制御装置、データ転送制御方法、およびデータ転送制御プログラムによれば、CPUの転送待ちによるスループットの低下を防止し、リアルタイム処理に対する応答性を向上できるという効果を奏する。
実施の形態にかかるデータ転送制御装置100のハードウェアを示すブロック図である。 データ転送制御装置100の機能を示すブロック図である。 データ転送制御装置100とデータ転送テーブル201の記憶内容の一例を示す説明図である。 データ転送制御装置100とCPUが3つ以上存在する場合におけるデータ転送テーブル201の記憶内容の一例を示す説明図である。 データ転送方式Aを示す説明図である。 データ転送方式Bを示す説明図である。 データ転送方式Cを示す説明図である。 ストリーミング再生中におけるストリーミングデータのデータ転送状態を示す説明図である。 ゲームアプリケーション実行中におけるストリーミングデータのデータ転送状態を示す説明図である。 ゲームアプリケーション中断状態におけるストリーミングデータのデータ転送状態を示す説明図である。 データ転送方式移行処理を示すフローチャート(その1)である。 データ転送方式移行処理を示すフローチャート(その2)である。 データ転送方式設定処理を示すフローチャートである。
以下に添付図面を参照して、本発明にかかるデータ転送制御装置、データ転送制御方法、およびデータ転送制御プログラムの好適な実施の形態を詳細に説明する。
(データ転送制御装置のハードウェア)
図1は、実施の形態にかかるデータ転送制御装置のハードウェアを示すブロック図である。図1において、データ転送制御装置100は、CPU(Central Processing Unit)#0と、CPU#1と、MEM(MEMory)#0と、MEM#1と、DMAC#0と、DMAC#1と、ROM(Read‐Only Memory)101と、フラッシュROM102と、を備えている。また、ユーザやその他の機器との入出力装置としてデータ転送制御装置100は、キーボード103と、ディスプレイ104と、I/F(Interface)105と、を備えている。また、各部はバス107によってそれぞれ接続されている。
ここで、CPU#0、CPU#1は、データ転送制御装置100の全体の制御を司る。ROM101は、ブートプログラムなどのプログラムを記憶している。MEM#0、MEM#1は、それぞれCPU#0、CPU#1のワークエリアとして使用されるRAM(Random Access Memory)等の記憶装置である。DMAC#0、DMAC#1は、MEM#0とMEM#1間にてデータを転送する。また、CPU#0は、主にDMAC#0を制御し、CPU#1はDMAC#1を制御する。本実施の形態にかかるデータ転送制御装置100は、コアが複数搭載されたプロセッサを含むコンピュータのシステムである。また、本実施の形態にかかるデータ転送制御装置100では、CPUが2つ搭載されているが、3つ以上搭載されていてもよい。CPUが3つ以上搭載されている場合の詳細は、図4にて後述する。
キーボード103は、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、キーボード103は、タッチパネル式の入力パッドやテンキーなどであってもよい。ディスプレイ104は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ104は、たとえば、TFT液晶ディスプレイなどを採用することができる。
I/F105は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク106に接続され、このネットワーク106を介して他の装置に接続される。そして、I/F105は、ネットワーク106と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F105には、たとえばモデムやLANアダプタなどを採用することができる。
従来例にかかるデータ転送制御装置100も、本実施の形態にかかるデータ転送制御装置100と等しいハードウェアを搭載する。従来例にかかるデータ転送制御装置100では、DMAC#0にて、MEM#1からMEM#0に転送対象データを転送している間、CPU#1はMEM#1にアクセスを行うことができず、データアクセス待ちが発生していた。
(データ転送制御装置100の機能)
次に、データ転送制御装置100の機能について説明する。図2は、データ転送制御装置100の機能を示すブロック図である。データ転送制御装置100は、転送部203と、転送指示部204と、検出部205と、判断部206と、制御部207と、を含む。この制御部となる機能(転送指示部204〜制御部207)は、記憶装置に記憶されたプログラムをCPU#0が実行することにより、その機能を実現する。記憶装置とは、具体的には、たとえば、図1に示したROM101、フラッシュROM102、MEM#0、MEM#1などである。また、転送部203はDMAC#0によってその機能を実現する。
また、データ転送制御装置100は、データ転送制御装置100で実行されるプロセスの状態変化に応じたデータ転送方式を格納するデータ転送テーブル201にアクセス可能である。データ転送テーブル201の詳細は図3と図4にて後述する。また、転送指示部204と、検出部205と、判断部206と、制御部207と、はスケジューラ202に含まれる機能である。
スケジューラ202は、OSに含まれるソフトウェアであり、CPUに割り当てるプロセスを決定する機能を有する。たとえば、スケジューラ202は、プロセスに設定されている優先度等に基づいて、次にCPUに割り当てるプロセスを決定する。定められた時刻になった場合、スケジューラ202はディスパッチャが決定されたプロセスをCPUに割り当てる。スケジューラの機能の1つとしてディスパッチャを含む形態も存在する。本実施の形態では、スケジューラ202内にディスパッチャの機能が存在する。
また、図2では、CPU#0に転送指示部204〜制御部207が含まれるように図示しているが、他のCPUのスケジューラにも転送指示部204〜制御部207が含まれる。同様に、DMAC#0以外のDMACにも、転送部203が含まれる。
転送部203は、プロセッサの指示によって転送元メモリから転送先メモリへ転送対象データを転送する機能を有する。たとえば、DMAC#0は、CPU#0の指示によって転送元メモリとなるMEM#1から転送先メモリとなるMEM#0へ、転送対象データとなるストリーミングデータを転送する。
転送指示部204は、転送部203に転送対象データを転送するように指示する機能を有する。たとえば、転送指示部204は、DMAC#0に転送元メモリとなるMEM#1のアドレスと、転送対象データのデータサイズと、転送先メモリとなるMEM#0のアドレスを通知し、データ転送を指示する。なお、指示内容となる転送元メモリおよび転送先メモリのアドレス、転送対象データのデータサイズは、転送指示部204を実行したCPUのレジスタやローカルメモリなどの記憶領域に記憶されてもよい。
検出部205は、プロセッサによって実行されたプロセスを検出する機能を有する。プロセスとはプログラムの実行単位である。また、本実施の形態におけるアプリケーションは、1つのプロセスを保持し、また1つのプロセス内には1つ以上のスレッドを保持する。また、検出部205は、プロセスの状態変化を検出してもよい。また、検出部205は、プロセスの状態変化の1つである、プロセスの状態がアクティブからインアクティブに、または、インアクティブからアクティブに変化したことを検出してもよい。プロセスの状態がアクティブである場合は、該当のプロセスが利用者の入力や操作の対象となっている状態である。また、プロセスの状態がインアクティブである場合は、該当のプロセスが利用者の入力や操作の対象となっていない状態である。
状態変化とは、プロセスの起動、終了したというイベントを検出した場合である。また、ディスパッチによる切り替えによってプロセスがアクティブまたはインアクティブに変化した場合も状態変化に含めてもよい。また、状態変化はプロセスに転送される転送対象データの使用状態の変化であってもよい。たとえば、転送対象データがストリーミング動画である場合に、動画再生が再生中から停止、または巻き戻し再生になったという変化が発生した場合、検出部205は状態変化として検出してもよい。
たとえば、検出部205は、CPU#0によって実行されたアプリケーションを検出する。また、検出部205は、アプリケーションの起動、終了、切り替えが起こったことを検出する。なお、検出結果は、検出部205を実行したCPUのレジスタやローカルメモリなどの記憶領域に記憶される。
判断部206は、検出部205によって検出されたプロセスの種類に基づいて、転送部203による転送対象データの転送に緊急性があるか否かを判断する機能を有する。また、判断部206は、検出部205によってプロセスの状態変化が検出された場合、プロセスの種類と状態変化に基づいて、転送対象データの転送の緊急性を判断してもよい。また、判断部206は、さらに、他のプロセッサによる転送元メモリへの転送対象データの格納に緊急性があるか否かを判断してもよい。他のプロセッサとは、転送元メモリへ転送対象データを格納するプロセッサであり、検出部205によってプロセスを検出したプロセッサとは異なるプロセッサではあるが、プロセスを検出したプロセッサと一致していてもよい。
また、緊急性とは、時間制約のことであり、緊急性があるデータ転送とは、時間制約が存在するリアルタイム処理のデータ転送である。また、判断部206は、リアルタイム処理の中でも、処理量が多く優先度が高いデータ転送を緊急性があるデータ転送と判断し、時間制約が存在しても、処理完了までの時間に余裕があるデータ転送については緊急性がないとして判断してもよい。また、リアルタイム処理のデータ転送でなくても、利用者によって可能な限り早く転送するように設定された場合、判断部206は、緊急性があるとして判断してもよい。
また、転送対象データの転送に緊急性がある場合は、たとえば、ネットワーク106経由によるストリーミング動画の再生などが挙げられる。転送対象データの転送に緊急性がある場合には、転送前に行われる転送元メモリへの転送対象データの格納も高速で行うことが求められる。ストリーミング動画の例では、ストリーミング動画のビットレート以上で転送対象データを転送することが求められるため、データ転送制御装置100は、高速に通信処理を行って転送対象データを格納することが要求される。さらに、データ転送制御装置100は、ストリーミング動画を再生するCPUのワーキング領域に高速に転送することが要求される。
また、転送対象データの転送には緊急性がないが、転送対象データの格納に緊急性がある場合は、たとえば、ネットワーク106経由による通信処理が挙げられる。通信処理は、ある一定時間以内に処理を行わないとタイムアウトとなり、通信処理の相手側端末によって通信終了させられる場合がある。したがって、データ転送制御装置100は、高速に転送対象データを格納し、通信処理を処理することが要求される。
具体的には、判断部206は、データ転送テーブル201のレコードのうち、アプリケーションの種類と、アプリケーションの状態がアクティブかインアクティブかと、が一致するレコードを取得する。取得されたレコードに記載されたデータ転送方式によって、判断部206は、転送対象データの転送に緊急性があるか否か、また、転送元メモリへの転送対象データの格納に緊急性があるか否かを判断する。
たとえば、取得されたレコードに“方式A”と記載されていた場合、判断部206は、転送対象データの転送に緊急性があると判断する。また、取得されたレコードに“方式B”と記載されていた場合、判断部206は、転送対象データの転送に緊急性がないと判断する。また、取得されたレコードに“方式B”と記載されていた場合、判断部206は、転送対象データの格納に緊急性がなく、かつ、転送対象データの転送に緊急性がないと判断する。また、取得されたレコードに“方式C”と記載されていた場合、判断部206は、転送対象データの格納に緊急性がなく、かつ、転送対象データの転送に緊急性があると判断する。なお、判断結果は、判断部206を実行したCPUのレジスタやローカルメモリなどの記憶領域に記憶される。
制御部207は、判断部206によって判断された結果に基づいて、転送部203またはプロセッサによって転送対象データを転送するように制御する機能を有する。また、判断部206によって転送対象データの転送に緊急性があると判断された場合、制御部207は、転送部203によって転送対象データを転送するように制御してもよい。
また、判断部206によって転送対象データの格納と転送に緊急性がないと判断された場合、制御部207は、転送元メモリへ転送対象データを格納した他のプロセッサによって転送対象データを転送するように制御してもよい。また、判断部206によって転送対象データの格納に緊急性があり、かつ、転送対象データの転送に緊急性がないと判断された場合、制御部207は、プロセスを検出したプロセッサによって転送対象データを転送するように制御してもよい。
たとえば、データ転送方式が“方式A”である場合、制御部207は、CPU#0に対応するDMAC#0によって転送対象データを転送するように制御する。また、データ転送方式が“方式B”である場合、制御部207は、転送元メモリとなるMEM#1に転送対象データを格納するCPU#1によって、転送対象データを転送するように制御する。このとき、CPU#1は、MEM#1に転送対象データを格納せずに、直接転送先メモリとなるMEM#0に書き込む。
また、データ転送方式が“方式C”である場合、制御部207は、CPU#0によって転送元メモリとなるMEM#1から、転送対象データを転送するように制御する。このとき、CPU#0は、MEM#1から転送対象データを読み込んだ後、MEM#0に転送対象データを格納せず、CPU#0のレジスタ等に格納して直接転送対象データにアクセスするプログラム等に転送対象データを転送する。
図3は、データ転送制御装置100とデータ転送テーブル201の記憶内容の一例を示す説明図である。データ転送テーブル201は、スケジューラ202がデータ転送を行うアプリケーションと、前述のアプリケーションの状態がアクティブかインアクティブかと、に基づいてデータ転送方式を判断するテーブルである。データ転送テーブル201では、転送するデータごとに、src属性に設定されたスレッドを実行するCPUと転送対象データの書き込み先と、dest属性に設定されたスレッドを実行するCPUと転送対象データの読み込み先を記述する。さらに、データ転送テーブル201では、src属性にて書き込まれた転送対象データをdest属性の読み込み先に転送する実行主体をtransfer属性で設定する。
たとえば、レコード301において、アプリケーション#0属性が“アクティブ”より、スケジューラ202は、アプリケーション#0が起動されアクティブになったか否かを判断する。アクティブとなった場合、スケジューラ202は、データ#0属性が“方式A”より、データ転送方式を方式Aに設定する。
また、スケジューラ202は、レコード301の3行目〜5行目より、src属性に設定されたスレッド#0をexec属性に設定されたCPU#1にて実行し、転送対象データとなるデータ#0の書き込み先をmem属性に設定されたMEM#1に設定する。また、スケジューラ202は、レコード301の6行目〜8行目より、dest属性に設定されたスレッド#1をCPU#0にて実行し、データ#0の読み込み先をMEM#0に設定する。
また、スケジューラ202は、transfer属性に設定されたDMAC#0に、MEM#1に書きこまれたデータ#0を、MEM#0に転送するように制御する。データ転送方式Aの具体例については、図5にて後述する。このように設定された内容をCPUに通知し、CPUはMMU(Memory Management Unit)などの設定を行い、CPUは該当のアプリケーションを実行する。
レコード302〜レコード304についても、スケジューラ202は、レコード301と同様の設定方法を行う。具体的には、レコード302に基づいて、スケジューラ202は、アプリケーション#0がインアクティブとなった場合に、データ転送方式を方式Bに設定する。
また、スケジューラ202は、src属性に設定されたスレッド#0をCPU#1にて実行させ、転送対象データとなるデータ#0の書き込み先を、読み込み先と等しいMEM#0として、CPU#1に直接書き込むように制御する。そして、スケジューラ202は、dest属性に設定されたスレッド#0をCPU#0にて実行させ、CPU#1が書き込んだデータ#0をCPU#0に読み込むように制御する。transfer属性には、dest属性の読み込み先に直接書き込むCPU#1が設定される。データ転送方式Bの具体例については、図6にて後述する。また、レコード303に基づいて、スケジューラ202は、アプリケーション#1がアクティブまたはインアクティブとなった場合に、データ転送方式を方式Bに設定する。
また、レコード304に基づいて、スケジューラ202は、アプリケーション#2がアクティブまたはインアクティブとなった場合に、データ転送方式を方式Cに設定する。また、スケジューラ202は、src属性に設定されたスレッド#4をCPU#1にて実行し、転送対象データとなるデータ#2の書き込み先をMEM#1に設定する。また、スケジューラ202は、dest属性に設定されたスレッド#5をCPU#0にて実行し、CPU#1が書き込んだデータ#2をMEM#1へCPU#0に直接読み込むように制御する。transfer属性には、src属性の書き込み先に直接読み込むCPU#0が設定される。データ転送方式Cの具体例については、図7にて後述する。
アプリケーションの実行終了後、スケジューラ202は、各CPUの設定を初期値に戻す。その後、再びデータ転送方式を変更するアプリケーションが起動されると、スケジューラ202は、データ転送テーブル201を読み込んでデータ転送方式を変更する。また、src属性に設定されたスレッドと、dest属性に設定されたスレッドが属するアプリケーションは、同一であってもよいし、異なっていてもよい。
図4は、データ転送制御装置100とCPUが3つ以上存在する場合におけるデータ転送テーブル201の記憶内容の一例を示す説明図である。CPUタイプテーブル401は、CPUの種類を分けるテーブルである。図4の例において、各CPUは、汎用の制御用プロセッサとしてCPU Aと、信号処理用のDSPとしてCPU Bに分類される。CPU AはCPU#0、CPU#1、CPU#2が含まれる。また、CPU BはCPU#3が含まれる。たとえば、データ転送テーブル201に、CPU Aが記述されていた場合、スケジューラは、CPU Aのうちのいずれか一つのCPUにスレッド#0を割り当てる。
たとえば、レコード402に基づいて、スケジューラ202は、アプリケーション#0がアクティブとなった場合に、データ転送方式を方式Aに設定する。また、スケジューラ202は、src属性に設定されたスレッド#0をexec属性に設定されたCPU Bに属するいずれかのCPUにて実行し、転送対象データの書き込み先をmem属性に設定されたMEM#1に設定する。
また、スケジューラ202は、dest属性に設定されたスレッド#1をCPU Aに属するいずれかのCPUにて実行し、データ#0の読み込み先をMEM#0に設定する。図4の例では、スレッド#0をCPU#3が実行し、スレッド#1をCPU#0が実行する。また、スケジューラ202は、transfer属性に設定されたDMAC#0に、MEM#1に書きこまれたデータ#0を、MEM#0へ転送するように制御する。
レコード403〜レコード405についても、スケジューラ202は、レコード301と同様の設定方法を行う。たとえば、レコード403に基づいて、スケジューラ202は、アプリケーション#0がインアクティブとなった場合に、データ転送方式を方式Bに設定する。また、スケジューラ202は、src属性に設定されたスレッド#0をCPU BのいずれかのCPUにて実行し、転送対象データとなるデータ#0の書き込み先をMEM#0として、スレッド#0を実行したCPUに書き込むように制御する。そして、スケジューラ202は、dest属性に設定されたスレッド#1をCPU AのいずれかのCPUにて実行し、CPU BのいずれかのCPUが書き込んだデータ#0をスレッド#1を実行したCPUに読み込むように制御する。transfer属性には、dest属性の読み込み先に直接書き込んだCPU Bが設定される。
図5は、データ転送方式Aを示す説明図である。方式Aは、転送対象データの格納および転送対象データの転送に緊急性がある場合のデータ転送方式である。具体的に図5では、通信を行うスレッドと通信で得た転送対象データを用いたスレッドとが共に緊急性があり、高速に処理を行う場合にて説明を行う。たとえば、図5に示す例では、アプリケーション#0にて通信を行うスレッド#0と、通信で得たデータを用いてディスプレイ104に表示するスレッド#1と、が共に緊急性がある。
レコード301に基づいて、スケジューラ202は、スレッド#0では通信を高速に行うために、実行しているCPU#1に対応するMEM#1に転送対象データとなるデータ#0をCPU#1に書き込むように制御する。また、スケジューラ202は、スレッド#1にてその結果を高速に読み出すため、DMAC#0によってデータ#0をMEM#1からMEM#0へ転送するように制御する。方式Aが適用できる場合として、動画のストリーミング再生などが挙げられる。方式Aによるデータ転送は、DMACによるバースト転送により、転送対象データを高速に転送することができる。また、転送対象データの転送中は、バス107を占有する。
図6は、データ転送方式Bを示す説明図である。方式Bは、転送対象データの格納および転送対象データの転送に緊急性がない場合のデータ転送方式である。具体的に図6では、通信を行うスレッドと通信で得た転送対象データを用いたスレッドとが共に緊急性がない場合として説明を行う。たとえば、図6に示す例では、図5の状態から、アプリケーション#1が起動されアクティブとなり、アプリケーション#0がインアクティブとなった結果、通信を行うスレッド#0と動画を表示するスレッド#1とに緊急性がなくなった状態である。緊急性がなくなった理由としては、アプリケーション#0がインアクティブとなり、スレッド#1によって動画を再生する画面領域がアプリケーション#1によって隠れたためなどがある。
このとき、レコード302に基づいて、スケジューラ202は、スレッド#0では通信を高速で行わなくてよいため、CPU#0専用のメモリでない、MEM#0へデータ#0をCPU#1に書き込むように制御する。また、スケジューラ202は、スレッド#1にMEM#0からデータ#0をCPU#0に読み込むように制御する。方式Bが適用できる場合として、バックグラウンドで行うファイルのダウンロード処理などが挙げられる。
図7は、データ転送方式Cを示す説明図である。方式Cは、転送対象データの格納に緊急性があり、転送対象データの転送には緊急性がない場合のデータ転送方式である。具体的に図7では、通信を行うスレッドには緊急性があるが、通信で得た転送対象データを用いたスレッドには緊急性がない場合として説明を行う。たとえば、図7に示す例では、アプリケーション#2のスレッド#4では通信処理を高速に実行するため、緊急性がある。しかし、スレッド#4と連携して動作するスレッド#5には緊急性がない状態である。
レコード304に基づいて、スケジューラ202は、スレッド#4では通信を高速に行うために、実行しているCPU#1専用のMEM#1に転送対象データとなるデータ#2をCPU#1に書き込むように制御する。また、スケジューラ202は、スレッド#5ではその結果を高速で読み出さなくてよいため、DMAC#0の使用を禁じ、データ#2をCPU#0に読み込むように制御する。方式Cが適用できる場合として、メールの受信などが挙げられる。
たとえば、アプリケーション#2をメールソフトウェアとし、スレッド#4をダウンロードスレッドとし、スレッド#5をメール取得スレッドとする。CPU#1は、ダウンロードスレッドによってI/F105を通じ、ネットワーク106からメールデータを受信し、MEM#1に書き込む。CPU#0は、メール取得スレッドによってMEM#1から読み込む。
方式B、方式Cによるデータ転送方式は、CPUによるデータ転送により、データの転送速度はDMACの転送に比べ低速ではあるが、バス107を占有しないため、CPUの転送待ちによるスループットの低下を防ぐことができる。また、割り込みが発生した場合、コンテキストスイッチを行う反応時間が短縮され、応答性を向上させることができる。
図8は、ストリーミング再生中におけるストリーミングデータのデータ転送状態を示す説明図である。図8におけるデータ転送制御装置100は、動画再生アプリケーションを実行している状態である。動画再生アプリケーションは、動画再生スレッド801と、ダウンロードスレッド802を含む。また、GUIスレッド803が実行されており、GUIスレッド803は動画再生アプリケーション以外のアプリケーションに属する。また、ダウンロードスレッド802は、動画再生アプリケーション以外のアプリケーションに属していてもよい。
図8の状態では、動画再生アプリケーションの状態がアクティブであるため、スケジューラ202は、データ転送テーブル201からレコード804を選択する。レコード804に基づいて、スケジューラ202は、データ転送方式を方式Aに設定する。設定された内容に従って、ダウンロードスレッド802はI/F105から取得したストリーミングデータをMEM#1に書き込む。
ストリーミングデータの書き込み後、DMAC#0は、ストリーミングデータをMEM#1からMEM#0に転送し、動画再生スレッド801は、MEM#0からストリーミングデータを読み込み、ディスプレイ104に動画を表示する。
ストリーミングデータを再生する場合、ストリーミングデータのビットレート以上でデータを転送しないと動画が正常に表示できなくなるため、データ転送方式は、高速にデータを転送できる方式Aが適している。
図9は、ゲームアプリケーション実行中におけるストリーミングデータのデータ転送状態を示す説明図である。図9におけるデータ転送制御装置100は、動画再生アプリケーションを実行している状態であったのが、他のアプリケーションがアクティブとなり、動画再生アプリケーションがインアクティブとなり、動画再生が待機中になった状態である。図9では、動画再生アプリケーションとは異なるゲームアプリケーションがアクティブ状態であり、ゲームアプリケーションに属するゲームスレッド901がCPU#0によって実行されている。
図9の状態では、動画再生アプリケーションの状態がインアクティブであるため、スケジューラ202は、データ転送テーブル201からレコード805を選択する。レコード805に基づいて、スケジューラ202は、データ転送方式を方式Bに設定する。設定された内容に従って、ダウンロードスレッド802はI/F105から取得したストリーミングデータをMEM#0に直接書き込む。ストリーミングデータの書き込み後、動画再生スレッド801は、MEM#0からストリーミングデータを読み込む。
このとき、ディスプレイ104には、ゲームスレッド901による描画が行われており、動画再生スレッド801は待機中であるため描画をしない。このとき、ダウンロードスレッド802は、動画再生アプリケーションの待機中にストリーミングデータをMEM#0に転送する。転送中に動画再生アプリケーションがアクティブ状態になった場合、動画再生スレッド801は、蓄積されたストリーミングデータを再生することで、スムーズな動画再生を行うことができる。動画再生アプリケーションが待機中のデータ転送には、時間制約がなく緊急でないため、データ転送方式は、バス107を占有しない方式Bが適している。
図10は、ゲームアプリケーション中断状態におけるストリーミングデータのデータ転送状態を示す説明図である。図10におけるデータ転送制御装置100は、ゲームアプリケーションがアクティブの状態から、動画再生アプリケーションがアクティブとなった状態である。
図10の状態では、動画再生アプリケーションの状態がアクティブであるため、スケジューラ202は、データ転送テーブル201からレコード804を選択する。レコード804に基づいて、スケジューラ202は、データ転送方式を再び方式Aに設定する。このように、本実施の形態にかかるデータ転送制御装置100は、アプリケーションがアクティブかインアクティブかという状態変化に基づいて転送方式を動的に切り替えることができる。
また、データ転送制御装置100はアクティブかインアクティブか、以外の状態変化に基づいて転送方式を切り替えてもよい。たとえば、動画再生アプリケーションがアクティブであるが、利用者などによって動画再生が停止、または巻き戻し再生になったという状態変化が発生した場合である。この場合、蓄積されたストリーミングデータにて再生が行えるため高速でデータを転送しなくてもよいので、データ転送制御装置100はデータ転送方式を方式Bに設定してもよい。
図11A、図11Bは、データ転送方式移行処理を示すフローチャートである。データ転送方式移行処理は、スケジューラ202の機能の一部として実行される。スケジューラ202は、各CPUで実行されるアプリケーションのスケジュールを、それぞれのCPUのスケジューラで管理する。また、スケジューラ202は、データ転送制御装置100で実行中のアプリケーションの管理や、利用者からのアプリケーションの起動要求の対応を、各CPUのうち、特定のCPUのスケジューラが代表して行う。本実施の形態では、特定のCPUをCPU#0として説明を行う。
各CPUは、状態変化が発生したかを判断する(ステップS1101)。状態変化とは、アプリケーションの起動、終了、アプリケーションのスイッチである。状態変化が発生していない場合(ステップS1101:No)、各CPUは、再びステップS1101の処理を実行する。状態変化が発生した場合(ステップS1101:Yes)、各CPUは、アプリケーションの実行が終了した状態変化かを判断する(ステップS1102)。
アプリケーションの実行が終了した状態変化である場合(ステップS1102:Yes)、各CPUは、データ転送方式Cのアプリケーションが終了したかを判断する(ステップS1103)。データ転送方式Cのアプリケーションが終了した場合(ステップS1103:Yes)、各CPUは、各CPUに対応するDMACの使用禁止を解除し(ステップS1104)、ステップS1101の処理に移行する。データ転送方式C以外のアプリケーションが終了した場合(ステップS1103:No)、各CPUは、ステップS1101の処理に移行する。なお、アプリケーションが終了すると、実行中のアプリケーションにスイッチするため、ステップS1101:Yesの処理に移行する。
アプリケーションの実行が終了した状態変化でない場合(ステップS1102:No)、各CPUは、未解析のアプリケーションが存在するかを判断する(ステップS1105)。未解析のアプリケーションが存在する場合(ステップS1105:Yes)、各CPUは、実行中のアプリケーションのうち、未解析のアプリケーションを選択する(ステップS1106)。選択後、各CPUは、CPU#0に選択されたアプリケーションの情報を通知する。
通知を受けたCPU#0は、選択されたアプリケーションがデータ転送テーブル201に存在するかを判断する(ステップS1107)。データ転送テーブル201に登録されている場合(ステップS1107:Yes)、CPU#0は、データ転送テーブル201から、選択されたアプリケーションのレコードを選択し(ステップS1108)、通知元のCPUに送信する。なお、選択されたアプリケーションのレコードが複数存在する場合、CPU#0は、選択されたアプリケーションがアクティブ状態かインアクティブ状態かと、条件に当てはまるレコードのうち記載された状態と、が一致するレコードを選択してもよい。
レコードを受信した各CPUは、新たなアプリケーションの起動による状態変化によって、選択されたアプリケーションのデータ転送方式が変更されるかを判断する(ステップS1109)。データ転送方式が変更される場合(ステップS1109:Yes)、各CPUは、データ転送方式設定処理を実行する(ステップS1110)。データ転送方式設定処理の詳細は、図12にて後述する。
データ転送方式の実行後、または、データ転送方式が変更されない場合(ステップS1109:No)、各CPUは、選択されたアプリケーションを解析済みに設定し(ステップS1111)、ステップS1105の処理に移行する。
選択されたアプリケーションがデータ転送テーブル201に登録されていない場合(ステップS1107:No)、CPU#0は、登録されていないという結果を通知元のCPUに送信する。登録されていないという結果を受信した各CPUは、ステップS1111の処理に移行する。
未解析のアプリケーションが存在しない場合(ステップS1105:No)、各CPUは、CPU#0に対して、新たなアプリケーションが起動した状態変化かを判断するよう依頼する(ステップS1112)。新たなアプリケーションが起動した状態変化である場合(ステップS1112:Yes)、CPU#0は、新たなアプリケーションがデータ転送テーブル201に登録されているかを判断する(ステップS1113)。なお、選択されたアプリケーションのレコードが複数存在する場合、CPU#0は、選択されたアプリケーションがアクティブ状態かインアクティブ状態かと、条件に当てはまるレコードのうち記載された状態と、が一致するレコードを選択してもよい。
データ転送テーブル201に登録されている場合(ステップS1113:Yes)、CPU#0は、データ転送テーブル201から新たなアプリケーションのレコードを選択する(ステップS1114)。レコードを選択後、CPU#0は、データ転送方式設定処理を実行する(ステップS1115)。データ転送方式設定処理の詳細は、図12にて後述する。
データ転送方式設定処理の実行終了後、CPU#0は、スケジューラ202によって新たなアプリケーションをディスパッチする(ステップS1116)。新たなアプリケーションがデータ転送テーブル201に登録されていない場合(ステップS1113:No)、CPU#0は、ステップS1116の処理に移行する。新たなアプリケーションが起動した状態変化でない場合(ステップS1112:No)、CPU#0は、スケジューラ202によって、通常のスケジューリングを実行する(ステップS1117)。なお、データ転送テーブル201に登録されていないアプリケーションとしては、たとえば、利用者がダウンロードしたアプリケーションなどが挙げられる。
ステップS1116の処理終了後、または、ステップS1117の処理終了後、CPU#0は、ステップS1101の処理に移行する。具体的には、処理移行後CPU#0は、各CPUに対して状態変化が発生したかを判断するように指示をする。
図12は、データ転送方式設定処理を示すフローチャートである。データ転送方式設定処理はすべてのCPUにて実行される。ここでは説明の簡略化のため、CPU#0が実行する場合について説明を行う。また、データ転送方式設定処理が実行される場合には、引数としてデータ転送テーブル201の選択されたレコードを取得できる状態である。
CPU#0は、選択されたレコードからデータ転送方式を判断する(ステップS1201)。選択されたレコードのデータ転送方式が方式Aである場合(ステップS1201:方式A)、転送対象データの転送に緊急性があると判断されるため、CPU#0は、DMACの設定をし(ステップS1202)、データ転送方式設定処理を終了する。なお、データ転送方式が方式Cのアプリケーションから方式Aのアプリケーションにディスパッチされた場合、CPU#0は、DMAC#0の使用禁止の解除を行い、DMACの設定を行う。
選択されたレコードのデータ転送方式が方式Bである場合(ステップS1201:方式B)、CPU#0は、転送対象データの格納と転送に緊急性がないと判断されるため、転送先アドレスの設定をし(ステップS1203)、データ転送方式設定処理を終了する。より詳細には、転送元メモリに転送対象データを格納するCPUに対し、転送先アドレスの設定をする。たとえば図6の場合では、CPU#0は、CPU#1に対してMEM#0内の転送先アドレスの設定をする。
選択されたレコードのデータ転送方式が方式Cである場合(ステップS1201:方式C)、転送対象データの格納に緊急性があり、転送に緊急性がないと判断されるため、CPU#0は、DMACの使用禁止を設定する(ステップS1204)。設定後、CPU#0は、データ転送方式設定処理を終了する。具体的には、CPU#0は、CPU#0に対応するDMAC#0の使用禁止を設定する。
図11、図12では、データ転送制御装置100は、データ転送方式が方式Cの際に、DMACの使用を禁止することで、CPUに転送させるようにしていたが、DMACを禁止せずにCPUに直接転送するように設定してもよい。また、データ転送制御装置100は、DMACの使用を禁止する代わりに、DMACの転送方法のうち、バスを占有するバースト転送を禁止してもよい。DMACの中には、バースト転送以外にも1バイト、または、コンピュータでデータ量の単位である1ワード単位で転送するシングル転送が行えるDMACも存在する(下記参考文献1参照。)。
(参考文献1:DMCを使いこなす : 富士通、[online]、[平成22年05月06日検索]、インターネット<URL:http://jp.fujitsu.com/microelectronics/products/micom/support/knowhow/fr−hard05.html>)
バースト転送を禁止し、シングル転送でデータを転送する場合、DMACがバスを占有しないため、データ転送制御装置100は、CPUの転送待ちによるスループットを低下させることなく、スループットを維持することができる。また、割り込みが発生した場合にも、データ転送制御装置100は、コンテキストスイッチを行う反応時間が短縮され、応答性を向上させることができる。
また、本実施の形態におけるデータ転送制御装置100は、マルチコアの形態となっていたが、シングルコアの形態となっていてもよい。たとえば、図5にて前述したアプリケーション#0にて、通信を行うスレッド#0が転送対象データをスレッド#0のワーキング領域に格納し、通信で得た転送対象データを用いるスレッド#1のワーキング領域に転送する状態を想定する。
この場合、アプリケーション#0の状態がアクティブである場合は、データ転送方式を方式Aとして、DMACによってスレッド#1のワーキング領域からスレッド#0のワーキング領域に転送対象データを転送してもよい。また、アプリケーション#0の状態がインアクティブである場合は、データ転送方式を方式Bとして、スレッド#1が直接スレッド#0のワーキング領域に転送対象データを書き込みしてもよい。
また、シングルコアによるデータ転送方式が方式Cの場合においても、図7にて前述したアプリケーション#2の例が適用できる。具体的には、アプリケーション#2のスレッド#4が転送対象データをスレッド#4のワーキング領域に格納し、スレッド#5がスレッド#4のワーキング領域から直接転送対象データを読み込んでもよい。
以上説明したように、データ転送制御装置、データ転送制御方法、およびデータ転送制御プログラムによれば、実行中のアプリケーションの種類に基づいて、緊急のデータ転送か否かを判断し、緊急でない場合にDMACの使用を禁止する。これにより、データ転送制御装置は、頻繁なDMA転送を削減するため、プロセッサの転送待ちによるスループットの低下を防ぐことができる。さらに、データ転送制御装置は、頻繁なDMA転送を削減するため、コンテキストスイッチが要求される割り込み処理への反応時間が短くなり、リアルタイム処理に対する応答性を向上できる。
また、データ転送制御装置は、アプリケーションの種類と状態変化とに基づいて、緊急のデータ転送か否かを判断してもよい。これにより、データ転送制御装置は、プロセッサの転送待ちによるスループットの低下を防ぐことができ、さらに、リアルタイム処理に対する応答性を向上できる。また、データ転送制御装置は、アプリケーションの状態変化に基づいて判断することで、アプリケーションの種類による判断よりさらに動的にデータ転送方式を変更することができる。したがって、データ転送制御装置は、スループットの低下の防止やリアルタイム処理に対する応答性の向上を行える状態をより増やすことができる。
また、データ転送制御装置は、アプリケーションの状態がアクティブからインアクティブに、または、インアクティブからアクティブに変化した場合に、アプリケーションの種類と状態変化とに基づいて、緊急のデータ転送か否かを判断してもよい。これにより、データ転送制御装置は、プロセッサの転送待ちによるスループットの低下を防ぐことができ、さらに、リアルタイム処理に対する応答性を向上できる。
また、データ転送制御装置が携帯端末の形態をとる場合、携帯端末で採用されるディスプレイの表示領域は表示領域が狭く、たとえば、320×240ピクセルであるQVGA(Quarter Video Graphics Array)が採用される場合もある。このような表示領域の狭いディスプレイの場合、インアクティブとなったアプリケーションは、アクティブとなったアプリケーションによってすべて隠される可能性が高い。すべて隠れてしまったアプリケーションは利用者から見えなくなるため、データの転送速度を遅くしても利用者からは問題とならない場合が存在する。このような場合、データ転送制御装置は、データの転送速度が遅くなる代わりに、プロセッサのスループットの低下防止や、リアルタイムの応答性の向上を図ることができる。
また、データ転送制御装置は、転送対象データの転送に緊急性があると判断された場合、DMACによって転送対象データを転送してもよい。これにより、データ転送制御装置は、緊急性があるときに限り高速で転送対象データを転送することができる。たとえば、アプリケーションがアクティブとなり緊急性が高まったときに、データ転送制御装置は、DMACによって転送対象データを高速に転送することができる。
また、データ転送制御装置は、他のプロセッサによる転送元メモリへの転送対象データの格納に緊急性があるかを判断し、転送対象データの格納に緊急性がなく、かつ、転送対象データの転送に緊急性がないと判断された場合、他のプロセッサに転送させてもよい。これにより、データ転送制御装置は、緊急性がない場合に、プロセッサのスループットの低下防止や、リアルタイムの応答性の向上を図ることができる。
また、データ転送制御装置は、転送対象データの格納に緊急性があり、かつ、転送対象データの転送に緊急性がないと判断された場合、プロセスを検出したプロセッサに転送させてもよい。これにより、データ転送制御装置は、転送対象データの格納を高速で行いつつ、プロセッサのスループットの低下防止や、リアルタイムの応答性の向上を図ることができる。
なお、本実施の形態で説明したデータ転送制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本データ転送制御プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本データ転送制御プログラムは、インターネット等のネットワークを介して配布してもよい。
#0、#1 CPU、MEM、DMAC
107 バス
100 データ転送制御装置
201 データ転送テーブル
202 スケジューラ
203 転送部
204 転送指示部
205 検出部
206 判断部
207 制御部

Claims (9)

  1. プロセッサの指示によって転送元メモリから転送先メモリへ転送対象データを転送する転送手段と、
    前記プロセッサによって実行されたプロセスを検出する検出手段と、
    前記検出手段によって検出された前記プロセスの種類に基づいて、前記転送手段による前記転送対象データの転送に緊急性があるか否かを判断する判断手段と、
    前記判断手段によって判断された結果に基づいて、前記転送手段によって前記転送対象データを転送するか、または、前記プロセッサによって前記転送対象データとなる書込データを前記転送元メモリまたは前記転送先メモリから読み込むように制御する制御手段と、
    を備えることを特徴とするデータ転送制御装置。
  2. 前記検出手段は、
    さらに、前記プロセスの状態変化を検出し、
    前記判断手段は、
    前記検出手段によって検出された前記プロセスの種類および前記プロセスの状態変化に基づいて、前記転送手段による前記転送対象データの転送に緊急性があるか否かを判断することを特徴とする請求項1に記載のデータ転送制御装置。
  3. 前記検出手段は、
    さらに、前記プロセスの状態がアクティブからインアクティブに、または、インアクティブからアクティブに変化したことを検出し、
    前記判断手段は、
    前記検出手段によって検出された前記プロセスの種類および前記プロセスの状態がアクティブかインアクティブかに基づいて、前記転送手段による前記転送対象データの転送の緊急性を判断することを特徴とする請求項1に記載のデータ転送制御装置。
  4. 前記制御手段は、
    前記判断手段によって緊急性があると判断された場合、前記転送手段によって前記転送対象データを転送するように制御することを特徴とする請求項1〜3のいずれか1つに記載のデータ転送制御装置。
  5. 前記判断手段は、
    さらに、前記プロセッサとは異なる他のプロセッサにより書き込まれるデータであって、前記転送対象データとなる前記書込データの前記転送元メモリへ格納に緊急性があるか否かを判断し、
    前記制御手段は、
    前記判断手段によって前記書込データの格納に緊急性がなく、かつ、前記転送対象データの転送に緊急性がないと判断された場合、前記他のプロセッサによって前記転送先メモリへ前記書込データを書き込むように制御した後、前記プロセッサによって前記転送先メモリから前記書込データを読み込むように制御することを特徴とする請求項1〜3のいずれか1つに記載のデータ転送制御装置。
  6. 前記判断手段は、
    さらに、前記プロセッサとは異なる他のプロセッサにより書き込まれるデータであって、前記転送対象データとなる前記書込データの前記転送元メモリへ格納に緊急性があるか否かを判断し、
    前記制御手段は、
    前記判断手段によって前記書込データの格納に緊急性があり、かつ、前記転送対象データの転送に緊急性がないと判断された場合、前記他のプロセッサによって前記転送元メモリへ前記書込データを書き込むように制御した後、前記プロセッサによって前記転送元メモリから前記書込データを読み込むように制御することを特徴とする請求項1〜3のいずれか1つに記載のデータ転送制御装置。
  7. 前記転送元メモリは、前記プロセッサとは異なる他のプロセッサに対応しており、
    前記転送先メモリは、前記プロセッサに対応することを特徴とする請求項1〜6のいずれか1つに記載のデータ転送制御装置。
  8. 転送元メモリから転送先メモリへ転送対象データを転送する転送装置を制御可能なプロセッサが、
    前記プロセッサによって実行されたプロセスを検出する検出工程と、
    前記検出工程によって検出された前記プロセスの種類に基づいて、前記転送装置による前記転送対象データの転送に緊急性があるか否かを判断する判断工程と、
    前記判断工程によって緊急性があると判断された場合、前記転送対象データの転送を前記転送装置に指示する転送指示工程と、
    前記判断工程によって緊急性がないと判断された場合、前記プロセッサによって前記転送対象データとなる書込データを前記転送元メモリまたは前記転送先メモリから読み込むように制御する制御工程と、
    を実行することを特徴とするデータ転送制御方法。
  9. 転送元メモリから転送先メモリへ転送対象データを転送する転送装置を制御可能なプロセッサに、
    前記プロセッサによって実行されたプロセスを検出する検出工程と、
    前記検出工程によって検出された前記プロセスの種類に基づいて、前記転送装置による前記転送対象データの転送に緊急性があるか否かを判断する判断工程と、
    前記判断工程によって緊急性があると判断された場合、前記転送対象データの転送を前記転送装置に指示する転送指示工程と、
    前記判断工程によって緊急性がないと判断された場合、前記プロセッサによって前記転送対象データとなる書込データを前記転送元メモリまたは前記転送先メモリから読み込むように制御する制御工程と、
    を実行させることを特徴とするデータ転送制御プログラム。
JP2012521204A 2010-06-22 2010-06-22 データ転送制御装置、データ転送制御方法、およびデータ転送制御プログラム Expired - Fee Related JP5387770B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/060560 WO2011161768A1 (ja) 2010-06-22 2010-06-22 データ転送制御装置、データ転送制御方法、およびデータ転送制御プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2013212677A Division JP5729445B2 (ja) 2013-10-10 2013-10-10 マルチプロセッサシステム、制御方法、および制御プログラム

Publications (2)

Publication Number Publication Date
JPWO2011161768A1 JPWO2011161768A1 (ja) 2013-08-19
JP5387770B2 true JP5387770B2 (ja) 2014-01-15

Family

ID=45370981

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012521204A Expired - Fee Related JP5387770B2 (ja) 2010-06-22 2010-06-22 データ転送制御装置、データ転送制御方法、およびデータ転送制御プログラム

Country Status (4)

Country Link
US (2) US9110886B2 (ja)
JP (1) JP5387770B2 (ja)
CN (1) CN103119574B (ja)
WO (1) WO2011161768A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6171881B2 (ja) * 2013-11-19 2017-08-02 株式会社デンソー 電子制御装置
US10362109B2 (en) 2016-03-30 2019-07-23 Task Performance Group, Inc. Cloud operating system and method

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01305461A (ja) * 1988-06-03 1989-12-08 Hitachi Ltd バス使用権制御方式
JPH03262071A (ja) * 1990-03-13 1991-11-21 Agency Of Ind Science & Technol 並列計算機
JPH11237960A (ja) * 1998-02-20 1999-08-31 Fuji Xerox Co Ltd 画像出力制御装置およびその処理実行制御方法
JP2002217920A (ja) * 2001-01-12 2002-08-02 Minolta Co Ltd アービトレーション制御装置およびその方法ならびにアービトレーション制御プログラム
JP2004345260A (ja) * 2003-05-23 2004-12-09 Canon Inc 画像出力装置
JP2005165439A (ja) * 2003-11-28 2005-06-23 Hitachi Ltd データ転送装置、記憶デバイス制御装置、記憶デバイス制御装置の制御方法
JP2006195705A (ja) * 2005-01-13 2006-07-27 Seiko Epson Corp プロセッサ
JP2006285341A (ja) * 2005-03-31 2006-10-19 Fujitsu Ltd データ入出力プログラム,装置,および方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6148381A (en) 1997-04-08 2000-11-14 Advanced Micro Devices, Inc. Single-port trace buffer architecture with overflow reduction
US7849463B2 (en) * 2000-06-02 2010-12-07 Microsoft Corporation Dynamically variable idle time thread scheduling
US7284077B2 (en) * 2003-09-12 2007-10-16 International Business Machines Corporation Peripheral interface system having dedicated communication channels
US7614053B2 (en) * 2004-02-20 2009-11-03 Sony Computer Entertainment Inc. Methods and apparatus for task management in a multi-processor system
US7487503B2 (en) * 2004-08-12 2009-02-03 International Business Machines Corporation Scheduling threads in a multiprocessor computer
US7360035B2 (en) * 2004-09-01 2008-04-15 International Business Machines Corporation Atomic read/write support in a multi-module memory configuration
US8387052B2 (en) * 2005-03-14 2013-02-26 Qnx Software Systems Limited Adaptive partitioning for operating system
JP5086527B2 (ja) * 2005-04-07 2012-11-28 富士通株式会社 トラッキング装置、トラッキング方法、およびトラッキングプログラム
JP4841861B2 (ja) * 2005-05-06 2011-12-21 ルネサスエレクトロニクス株式会社 演算処理装置及びデータ転送処理の実行方法
US20090259789A1 (en) * 2005-08-22 2009-10-15 Shuhei Kato Multi-processor, direct memory access controller, and serial data transmitting/receiving apparatus
JP4848562B2 (ja) 2005-08-22 2011-12-28 新世代株式会社 マルチプロセッサ
JP2008090455A (ja) 2006-09-29 2008-04-17 Olympus Digital System Design Corp マルチプロセッサ信号処理装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01305461A (ja) * 1988-06-03 1989-12-08 Hitachi Ltd バス使用権制御方式
JPH03262071A (ja) * 1990-03-13 1991-11-21 Agency Of Ind Science & Technol 並列計算機
JPH11237960A (ja) * 1998-02-20 1999-08-31 Fuji Xerox Co Ltd 画像出力制御装置およびその処理実行制御方法
JP2002217920A (ja) * 2001-01-12 2002-08-02 Minolta Co Ltd アービトレーション制御装置およびその方法ならびにアービトレーション制御プログラム
JP2004345260A (ja) * 2003-05-23 2004-12-09 Canon Inc 画像出力装置
JP2005165439A (ja) * 2003-11-28 2005-06-23 Hitachi Ltd データ転送装置、記憶デバイス制御装置、記憶デバイス制御装置の制御方法
JP2006195705A (ja) * 2005-01-13 2006-07-27 Seiko Epson Corp プロセッサ
JP2006285341A (ja) * 2005-03-31 2006-10-19 Fujitsu Ltd データ入出力プログラム,装置,および方法

Also Published As

Publication number Publication date
JPWO2011161768A1 (ja) 2013-08-19
CN103119574A (zh) 2013-05-22
US20130111078A1 (en) 2013-05-02
US20150169480A1 (en) 2015-06-18
WO2011161768A1 (ja) 2011-12-29
CN103119574B (zh) 2016-01-20
US9734104B2 (en) 2017-08-15
US9110886B2 (en) 2015-08-18

Similar Documents

Publication Publication Date Title
WO2018082570A1 (zh) I/o请求的调度方法及装置
JP5723968B2 (ja) 便宜的マルチタスキング
KR101901587B1 (ko) 연성 실시간 운영체제의 실시간성을 확보하는 방법 및 장치
JP5725162B2 (ja) 排他制御方法、および排他制御プログラム
US20100302283A1 (en) Graphic display device
JP5729445B2 (ja) マルチプロセッサシステム、制御方法、および制御プログラム
JP2007026094A (ja) 実行装置およびアプリケーションプログラム
JP2012022616A (ja) 共有メモリシステム及びその制御方法
JP2015520425A (ja) 計算機システム及びその制御方法
WO2013035246A1 (ja) 仮想計算機制御装置、仮想計算機制御方法、仮想計算機制御プログラム、及び集積回路
JP5387770B2 (ja) データ転送制御装置、データ転送制御方法、およびデータ転送制御プログラム
JP5590114B2 (ja) ソフトウェア制御装置、ソフトウェア制御方法、およびソフトウェア制御プログラム
US20100318707A1 (en) External device access apparatus, control method thereof, and system lsi
JP5862722B2 (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム
JP5776776B2 (ja) データ処理システム、およびデータ処理方法
JP2007141155A (ja) マルチコアプロセッサにおけるマルチコア制御方法
JP5505195B2 (ja) メモリの制御装置、及び制御方法
JP6584655B2 (ja) フリップキューの管理に基づくグラフィックスコンテキストのスケジューリング
TWI516982B (zh) 計算裝置及計算裝置之處理安全服務之方法
JP2010044703A (ja) マルチタスクosにおけるタスク切り替え方法及びプログラム
EP3977272B1 (en) Multimedia system with optimized performance
JP2006331008A (ja) メモリインタフェース
JP2000353146A (ja) 入出力制御装置及びそのデータの先取り方法
JP2745681B2 (ja) 表示データ処理装置
JP2000105708A (ja) タスク管理方法およびマルチタスクos

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130521

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130722

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130923

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees