JP5729445B2 - Multiprocessor system, control method, and control program - Google Patents
Multiprocessor system, control method, and control program Download PDFInfo
- Publication number
- JP5729445B2 JP5729445B2 JP2013212677A JP2013212677A JP5729445B2 JP 5729445 B2 JP5729445 B2 JP 5729445B2 JP 2013212677 A JP2013212677 A JP 2013212677A JP 2013212677 A JP2013212677 A JP 2013212677A JP 5729445 B2 JP5729445 B2 JP 5729445B2
- Authority
- JP
- Japan
- Prior art keywords
- transfer
- data
- cpu
- data transfer
- application
- 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
Links
Images
Landscapes
- Bus Control (AREA)
Description
本発明は、データ転送を制御するマルチプロセッサシステム、制御方法、および制御プログラムに関する。 The present invention relates to a multiprocessor system, a control method, and a control program for controlling data transfer.
従来から、メモリ間のデータ転送を高速に行う技術として、DMA(Direct Memory Access)転送を行う技術が開示されていた。DMA転送を行う専用のコントローラとして、DMAC(Direct Memory Access Controller)が存在する。DMACは、メモリからメモリへ、またはメモリから周辺機器へのデータ転送を、CPUを介さずに行う機能を有する。 Conventionally, a technique for performing DMA (Direct Memory Access) transfer has been disclosed as a technique for performing high-speed data transfer between memories. A DMAC (Direct Memory Access Controller) exists as a dedicated controller for performing DMA transfer. The DMAC has a function of performing data transfer from a memory to a memory or from a memory to a peripheral device without using a CPU.
たとえば、マルチコアプロセッサシステムのうち、各コアに対応したメモリが搭載された分散メモリ型のマルチコアプロセッサシステムでは、各コアで計算された結果は各コアに対応したメモリに一度格納される。格納後、マルチコアプロセッサシステムは、マスターコアのメモリに対してDMACによるDMA転送を行う。または、異なるコアに割り当てられたプロセスが計算結果を利用する場合、マルチコアプロセッサシステムは、異なるコアに対応するメモリに対してDMA転送を行う。 For example, among multi-core processor systems, in a distributed memory type multi-core processor system in which a memory corresponding to each core is mounted, a result calculated in each core is stored once in a memory corresponding to each core. After the storage, the multi-core processor system performs DMA transfer by DMAC to the memory of the master core. Alternatively, when a process assigned to a different core uses a calculation result, the multi-core processor system performs a DMA transfer to a memory corresponding to the different core.
DMACを制御する技術として、小量のデータ、または離散したデータの転送をCPUが行い、連続した大量のデータの転送をDMACが行うことで、データ転送の高速化を実現するという技術が開示されている(たとえば、下記特許文献1を参照。)。
As a technique for controlling the DMAC, a technique is disclosed in which a CPU transfers a small amount of data or discrete data, and a DMAC transfers a large amount of continuous data, thereby realizing high-speed data transfer. (For example, refer to
また、DMACを制御する他の技術として、分散された共有メモリを用い、DMACによるデータ転送処理とCPUによる画像処理とを効率的にパイプライン処理を行うという技術が開示されている(たとえば、下記特許文献2を参照。)。 In addition, as another technique for controlling the DMAC, a technique is disclosed in which a distributed shared memory is used to efficiently perform pipeline processing between data transfer processing by the DMAC and image processing by the CPU (for example, the following). (See Patent Document 2).
しかしながら、上述した従来技術において、特許文献1、2にかかる技術では、DMACによるバースト転送によってバスが占有されてしまい、CPUがDMACの転送の完了待ちを行うため、CPUのスループットが低下するという問題があった。また、割り込み処理が発生した場合に、CPUは、メモリ上にある割り込みハンドラを読み込もうとするが、DMACによるDMA転送が完了してから割り込みハンドラを読み込むため、リアルタイム処理に対する応答性が低下するという問題があった。
However, in the prior art described above, in the techniques according to
本発明は、上述した従来技術による問題点を解消するため、転送待ちによるスループットの低下を防止し、リアルタイム処理に対する応答性を向上できるマルチプロセッサシステム、制御方法、および制御プログラムを提供することを目的とする。 An object of the present invention is to provide a multiprocessor system, a control method, and a control program capable of preventing a decrease in throughput due to transfer waiting and improving responsiveness to real-time processing in order to solve the above-described problems caused by the prior art. And
上述した課題を解決し、目的を達成するため、開示のマルチプロセッサシステムは、複数のコアと、複数のコアで処理された処理データを記録する複数の記憶部と、複数の記憶部の間のデータ転送を実行する転送部とを有し、複数のコアのいずれかは、複数のコアで実行されたプロセスの種類に基づいて転送部に実行させる複数の記憶部の間のデータ転送処理の優先度を判定し、優先度に基づいて複数のコアから複数の記憶部への処理データの書込み処理と転送部によるデータ転送処理とを切り替える。 In order to solve the above-described problems and achieve the object, a disclosed multiprocessor system includes a plurality of cores, a plurality of storage units that record processing data processed by the plurality of cores, and a plurality of storage units. A transfer unit that executes data transfer, and any one of the plurality of cores prioritizes data transfer processing between the plurality of storage units that is executed by the transfer unit based on the type of process executed by the plurality of cores. The degree is determined, and the processing data writing processing from the plurality of cores to the plurality of storage units and the data transfer processing by the transfer unit are switched based on the priority.
本マルチプロセッサシステム、制御方法、および制御プログラムによれば、CPUの転送待ちによるスループットの低下を防止し、リアルタイム処理に対する応答性を向上できるという効果を奏する。 According to the multiprocessor system, the control method, and the control program, it is possible to prevent the throughput from being lowered due to the transfer waiting of the CPU and to improve the responsiveness to the real-time processing.
以下に添付図面を参照して、本発明にかかるマルチプロセッサシステム、制御方法、および制御プログラムの好適な実施の形態を詳細に説明する。 Exemplary embodiments of a multiprocessor system, a control method, and a control program according to the present invention will be explained below in detail with reference to the accompanying drawings.
(データ転送制御装置のハードウェア)
図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によってそれぞれ接続されている。
(Hardware of data transfer control device)
FIG. 1 is a block diagram of hardware of the data transfer control device according to the embodiment. In FIG. 1, a data
ここで、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にて後述する。
Here, the
キーボード103は、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、キーボード103は、タッチパネル式の入力パッドやテンキーなどであってもよい。ディスプレイ104は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ104は、たとえば、TFT液晶ディスプレイなどを採用することができる。
The
I/F105は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク106に接続され、このネットワーク106を介して他の装置に接続される。そして、I/F105は、ネットワーク106と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F105には、たとえばモデムやLANアダプタなどを採用することができる。
The I / F 105 is connected to a
従来例にかかるデータ転送制御装置100も、本実施の形態にかかるデータ転送制御装置100と等しいハードウェアを搭載する。従来例にかかるデータ転送制御装置100では、DMAC#0にて、MEM#1からMEM#0に転送対象データを転送している間、CPU#1はMEM#1にアクセスを行うことができず、データアクセス待ちが発生していた。
The data
(データ転送制御装置100の機能)
次に、データ転送制御装置100の機能について説明する。図2は、データ転送制御装置100の機能を示すブロック図である。データ転送制御装置100は、転送部203と、転送指示部204と、検出部205と、判断部206と、制御部207と、を含む。この制御部となる機能(転送指示部204〜制御部207)は、記憶装置に記憶されたプログラムをCPU#0が実行することにより、その機能を実現する。記憶装置とは、具体的には、たとえば、図1に示したROM101、フラッシュROM102、MEM#0、MEM#1などである。また、転送部203はDMAC#0によってその機能を実現する。
(Function of data transfer control device 100)
Next, functions of the data
また、データ転送制御装置100は、データ転送制御装置100で実行されるプロセスの状態変化に応じたデータ転送方式を格納するデータ転送テーブル201にアクセス可能である。データ転送テーブル201の詳細は図3と図4にて後述する。また、転送指示部204と、検出部205と、判断部206と、制御部207と、はスケジューラ202に含まれる機能である。
Further, the data
スケジューラ202は、OSに含まれるソフトウェアであり、CPUに割り当てるプロセスを決定する機能を有する。たとえば、スケジューラ202は、プロセスに設定されている優先度等に基づいて、次にCPUに割り当てるプロセスを決定する。定められた時刻になった場合、スケジューラ202はディスパッチャが決定されたプロセスをCPUに割り当てる。スケジューラの機能の1つとしてディスパッチャを含む形態も存在する。本実施の形態では、スケジューラ202内にディスパッチャの機能が存在する。
The
また、図2では、CPU#0に転送指示部204〜制御部207が含まれるように図示しているが、他のCPUのスケジューラにも転送指示部204〜制御部207が含まれる。同様に、DMAC#0以外のDMACにも、転送部203が含まれる。
In FIG. 2, the
転送部203は、プロセッサの指示によって転送元メモリから転送先メモリへ転送対象データを転送する機能を有する。たとえば、DMAC#0は、CPU#0の指示によって転送元メモリとなるMEM#1から転送先メモリとなるMEM#0へ、転送対象データとなるストリーミングデータを転送する。
The transfer unit 203 has a function of transferring the transfer target data from the transfer source memory to the transfer destination memory in accordance with an instruction from the processor. For example,
転送指示部204は、転送部203に転送対象データを転送するように指示する機能を有する。たとえば、転送指示部204は、DMAC#0に転送元メモリとなるMEM#1のアドレスと、転送対象データのデータサイズと、転送先メモリとなるMEM#0のアドレスを通知し、データ転送を指示する。なお、指示内容となる転送元メモリおよび転送先メモリのアドレス、転送対象データのデータサイズは、転送指示部204を実行したCPUのレジスタやローカルメモリなどの記憶領域に記憶されてもよい。
The
検出部205は、プロセッサによって実行されたプロセスを検出する機能を有する。プロセスとはプログラムの実行単位である。また、本実施の形態におけるアプリケーションは、1つのプロセスを保持し、また1つのプロセス内には1つ以上のスレッドを保持する。また、検出部205は、プロセスの状態変化を検出してもよい。また、検出部205は、プロセスの状態変化の1つである、プロセスの状態がアクティブからインアクティブに、または、インアクティブからアクティブに変化したことを検出してもよい。プロセスの状態がアクティブである場合は、該当のプロセスが利用者の入力や操作の対象となっている状態である。また、プロセスの状態がインアクティブである場合は、該当のプロセスが利用者の入力や操作の対象となっていない状態である。
The
状態変化とは、プロセスの起動、終了したというイベントを検出した場合である。また、ディスパッチによる切り替えによってプロセスがアクティブまたはインアクティブに変化した場合も状態変化に含めてもよい。また、状態変化はプロセスに転送される転送対象データの使用状態の変化であってもよい。たとえば、転送対象データがストリーミング動画である場合に、動画再生が再生中から停止、または巻き戻し再生になったという変化が発生した場合、検出部205は状態変化として検出してもよい。
A state change is a case where an event that a process has started or ended is detected. A state change may also be included when the process changes to active or inactive due to switching by dispatch. The state change may be a change in the usage state of the transfer target data transferred to the process. For example, when the transfer target data is a streaming moving image, the
たとえば、検出部205は、CPU#0によって実行されたアプリケーションを検出する。また、検出部205は、アプリケーションの起動、終了、切り替えが起こったことを検出する。なお、検出結果は、検出部205を実行したCPUのレジスタやローカルメモリなどの記憶領域に記憶される。
For example, the
判断部206は、検出部205によって検出されたプロセスの種類に基づいて、転送部203による転送対象データの転送に緊急性があるか否かを判断する機能を有する。また、判断部206は、検出部205によってプロセスの状態変化が検出された場合、プロセスの種類と状態変化に基づいて、転送対象データの転送の緊急性を判断してもよい。また、判断部206は、さらに、他のプロセッサによる転送元メモリへの転送対象データの格納に緊急性があるか否かを判断してもよい。他のプロセッサとは、転送元メモリへ転送対象データを格納するプロセッサであり、検出部205によってプロセスを検出したプロセッサとは異なるプロセッサではあるが、プロセスを検出したプロセッサと一致していてもよい。
The
また、緊急性とは、時間制約のことであり、緊急性があるデータ転送とは、時間制約が存在するリアルタイム処理のデータ転送である。また、判断部206は、リアルタイム処理の中でも、処理量が多く優先度が高いデータ転送を緊急性があるデータ転送と判断し、時間制約が存在しても、処理完了までの時間に余裕があるデータ転送については緊急性がないとして判断してもよい。また、リアルタイム処理のデータ転送でなくても、利用者によって可能な限り早く転送するように設定された場合、判断部206は、緊急性があるとして判断してもよい。
Further, urgency is a time constraint, and urgent data transfer is data transfer of real-time processing in which a time constraint exists. In addition, the
また、転送対象データの転送に緊急性がある場合は、たとえば、ネットワーク106経由によるストリーミング動画の再生などが挙げられる。転送対象データの転送に緊急性がある場合には、転送前に行われる転送元メモリへの転送対象データの格納も高速で行うことが求められる。ストリーミング動画の例では、ストリーミング動画のビットレート以上で転送対象データを転送することが求められるため、データ転送制御装置100は、高速に通信処理を行って転送対象データを格納することが要求される。さらに、データ転送制御装置100は、ストリーミング動画を再生するCPUのワーキング領域に高速に転送することが要求される。
In addition, when there is urgency in transferring the transfer target data, for example, reproduction of a streaming moving image via the
また、転送対象データの転送には緊急性がないが、転送対象データの格納に緊急性がある場合は、たとえば、ネットワーク106経由による通信処理が挙げられる。通信処理は、ある一定時間以内に処理を行わないとタイムアウトとなり、通信処理の相手側端末によって通信終了させられる場合がある。したがって、データ転送制御装置100は、高速に転送対象データを格納し、通信処理を処理することが要求される。
In addition, there is no urgency in transferring the transfer target data, but when there is urgency in storing the transfer target data, for example, a communication process via the
具体的には、判断部206は、データ転送テーブル201のレコードのうち、アプリケーションの種類と、アプリケーションの状態がアクティブかインアクティブかと、が一致するレコードを取得する。取得されたレコードに記載されたデータ転送方式によって、判断部206は、転送対象データの転送に緊急性があるか否か、また、転送元メモリへの転送対象データの格納に緊急性があるか否かを判断する。
Specifically, the
たとえば、取得されたレコードに“方式A”と記載されていた場合、判断部206は、転送対象データの転送に緊急性があると判断する。また、取得されたレコードに“方式B”と記載されていた場合、判断部206は、転送対象データの転送に緊急性がないと判断する。また、取得されたレコードに“方式B”と記載されていた場合、判断部206は、転送対象データの格納に緊急性がなく、かつ、転送対象データの転送に緊急性がないと判断する。また、取得されたレコードに“方式C”と記載されていた場合、判断部206は、転送対象データの格納に緊急性がなく、かつ、転送対象データの転送に緊急性があると判断する。なお、判断結果は、判断部206を実行したCPUのレジスタやローカルメモリなどの記憶領域に記憶される。
For example, when “Scheme A” is described in the acquired record, the
制御部207は、判断部206によって判断された結果に基づいて、転送部203またはプロセッサによって転送対象データを転送するように制御する機能を有する。また、判断部206によって転送対象データの転送に緊急性があると判断された場合、制御部207は、転送部203によって転送対象データを転送するように制御してもよい。
The control unit 207 has a function of controlling the transfer target data to be transferred by the transfer unit 203 or the processor based on the result determined by the
また、判断部206によって転送対象データの格納と転送に緊急性がないと判断された場合、制御部207は、転送元メモリへ転送対象データを格納した他のプロセッサによって転送対象データを転送するように制御してもよい。また、判断部206によって転送対象データの格納に緊急性があり、かつ、転送対象データの転送に緊急性がないと判断された場合、制御部207は、プロセスを検出したプロセッサによって転送対象データを転送するように制御してもよい。
If the
たとえば、データ転送方式が“方式A”である場合、制御部207は、CPU#0に対応するDMAC#0によって転送対象データを転送するように制御する。また、データ転送方式が“方式B”である場合、制御部207は、転送元メモリとなるMEM#1に転送対象データを格納するCPU#1によって、転送対象データを転送するように制御する。このとき、CPU#1は、MEM#1に転送対象データを格納せずに、直接転送先メモリとなるMEM#0に書き込む。
For example, when the data transfer method is “method A”, the control unit 207 performs control so that the transfer target data is transferred by the
また、データ転送方式が“方式C”である場合、制御部207は、CPU#0によって転送元メモリとなるMEM#1から、転送対象データを転送するように制御する。このとき、CPU#0は、MEM#1から転送対象データを読み込んだ後、MEM#0に転送対象データを格納せず、CPU#0のレジスタ等に格納して直接転送対象データにアクセスするプログラム等に転送対象データを転送する。
When the data transfer method is “method C”, the control unit 207 controls the
図3は、データ転送制御装置100とデータ転送テーブル201の記憶内容の一例を示す説明図である。データ転送テーブル201は、スケジューラ202がデータ転送を行うアプリケーションと、前述のアプリケーションの状態がアクティブかインアクティブかと、に基づいてデータ転送方式を判断するテーブルである。データ転送テーブル201では、転送するデータごとに、src属性に設定されたスレッドを実行するCPUと転送対象データの書き込み先と、dest属性に設定されたスレッドを実行するCPUと転送対象データの読み込み先を記述する。さらに、データ転送テーブル201では、src属性にて書き込まれた転送対象データをdest属性の読み込み先に転送する実行主体をtransfer属性で設定する。
FIG. 3 is an explanatory diagram showing an example of the contents stored in the data
たとえば、レコード301において、アプリケーション#0属性が“アクティブ”より、スケジューラ202は、アプリケーション#0が起動されアクティブになったか否かを判断する。アクティブとなった場合、スケジューラ202は、データ#0属性が“方式A”より、データ転送方式を方式Aに設定する。
For example, in the
また、スケジューラ202は、レコード301の3行目〜5行目より、src属性に設定されたスレッド#0をexec属性に設定されたCPU#1にて実行し、転送対象データとなるデータ#0の書き込み先をmem属性に設定されたMEM#1に設定する。また、スケジューラ202は、レコード301の6行目〜8行目より、dest属性に設定されたスレッド#1をCPU#0にて実行し、データ#0の読み込み先をMEM#0に設定する。
Further, the
また、スケジューラ202は、transfer属性に設定されたDMAC#0に、MEM#1に書きこまれたデータ#0を、MEM#0に転送するように制御する。データ転送方式Aの具体例については、図5にて後述する。このように設定された内容をCPUに通知し、CPUはMMU(Memory Management Unit)などの設定を行い、CPUは該当のアプリケーションを実行する。
Further, the
レコード302〜レコード304についても、スケジューラ202は、レコード301と同様の設定方法を行う。具体的には、レコード302に基づいて、スケジューラ202は、アプリケーション#0がインアクティブとなった場合に、データ転送方式を方式Bに設定する。
For the
また、スケジューラ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に設定する。
Further, the
また、レコード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にて後述する。
Also, based on the
アプリケーションの実行終了後、スケジューラ202は、各CPUの設定を初期値に戻す。その後、再びデータ転送方式を変更するアプリケーションが起動されると、スケジューラ202は、データ転送テーブル201を読み込んでデータ転送方式を変更する。また、src属性に設定されたスレッドと、dest属性に設定されたスレッドが属するアプリケーションは、同一であってもよいし、異なっていてもよい。
After executing the application, the
図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を割り当てる。
FIG. 4 is an explanatory diagram showing an example of the contents stored in the data transfer table 201 when there are three or more data
たとえば、レコード402に基づいて、スケジューラ202は、アプリケーション#0がアクティブとなった場合に、データ転送方式を方式Aに設定する。また、スケジューラ202は、src属性に設定されたスレッド#0をexec属性に設定されたCPU Bに属するいずれかのCPUにて実行し、転送対象データの書き込み先をmem属性に設定されたMEM#1に設定する。
For example, based on the
また、スケジューラ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へ転送するように制御する。
Further, the
レコード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が設定される。
For the
図5は、データ転送方式Aを示す説明図である。方式Aは、転送対象データの格納および転送対象データの転送に緊急性がある場合のデータ転送方式である。具体的に図5では、通信を行うスレッドと通信で得た転送対象データを用いたスレッドとが共に緊急性があり、高速に処理を行う場合にて説明を行う。たとえば、図5に示す例では、アプリケーション#0にて通信を行うスレッド#0と、通信で得たデータを用いてディスプレイ104に表示するスレッド#1と、が共に緊急性がある。
FIG. 5 is an explanatory diagram showing the data transfer method A. Method A is a data transfer method when there is urgency in storing transfer target data and transferring the transfer target data. Specifically, FIG. 5 will be described in the case where the thread that performs communication and the thread that uses the transfer target data obtained by communication are both urgent and perform processing at high speed. For example, in the example illustrated in FIG. 5, both
レコード301に基づいて、スケジューラ202は、スレッド#0では通信を高速に行うために、実行しているCPU#1に対応するMEM#1に転送対象データとなるデータ#0をCPU#1に書き込むように制御する。また、スケジューラ202は、スレッド#1にてその結果を高速に読み出すため、DMAC#0によってデータ#0をMEM#1からMEM#0へ転送するように制御する。方式Aが適用できる場合として、動画のストリーミング再生などが挙げられる。方式Aによるデータ転送は、DMACによるバースト転送により、転送対象データを高速に転送することができる。また、転送対象データの転送中は、バス107を占有する。
Based on the
図6は、データ転送方式Bを示す説明図である。方式Bは、転送対象データの格納および転送対象データの転送に緊急性がない場合のデータ転送方式である。具体的に図6では、通信を行うスレッドと通信で得た転送対象データを用いたスレッドとが共に緊急性がない場合として説明を行う。たとえば、図6に示す例では、図5の状態から、アプリケーション#1が起動されアクティブとなり、アプリケーション#0がインアクティブとなった結果、通信を行うスレッド#0と動画を表示するスレッド#1とに緊急性がなくなった状態である。緊急性がなくなった理由としては、アプリケーション#0がインアクティブとなり、スレッド#1によって動画を再生する画面領域がアプリケーション#1によって隠れたためなどがある。
FIG. 6 is an explanatory diagram showing the data transfer method B. The system B is a data transfer system when there is no urgency in storing the transfer target data and transferring the transfer target data. Specifically, FIG. 6 will be described assuming that both the thread that performs communication and the thread that uses the transfer target data obtained by communication are not urgent. For example, in the example shown in FIG. 6, from the state of FIG. 5, the
このとき、レコード302に基づいて、スケジューラ202は、スレッド#0では通信を高速で行わなくてよいため、CPU#0専用のメモリでない、MEM#0へデータ#0をCPU#1に書き込むように制御する。また、スケジューラ202は、スレッド#1にMEM#0からデータ#0をCPU#0に読み込むように制御する。方式Bが適用できる場合として、バックグラウンドで行うファイルのダウンロード処理などが挙げられる。
At this time, based on the
図7は、データ転送方式Cを示す説明図である。方式Cは、転送対象データの格納に緊急性があり、転送対象データの転送には緊急性がない場合のデータ転送方式である。具体的に図7では、通信を行うスレッドには緊急性があるが、通信で得た転送対象データを用いたスレッドには緊急性がない場合として説明を行う。たとえば、図7に示す例では、アプリケーション#2のスレッド#4では通信処理を高速に実行するため、緊急性がある。しかし、スレッド#4と連携して動作するスレッド#5には緊急性がない状態である。
FIG. 7 is an explanatory diagram showing the data transfer method C. Method C is a data transfer method in which there is urgency in storing transfer target data and there is no urgency in transferring transfer target data. Specifically, in FIG. 7, a description will be given on the assumption that a thread that performs communication has urgency but a thread that uses data to be transferred obtained by communication has no urgency. For example, in the example shown in FIG. 7, the thread # 4 of the
レコード304に基づいて、スケジューラ202は、スレッド#4では通信を高速に行うために、実行しているCPU#1専用のMEM#1に転送対象データとなるデータ#2をCPU#1に書き込むように制御する。また、スケジューラ202は、スレッド#5ではその結果を高速で読み出さなくてよいため、DMAC#0の使用を禁じ、データ#2をCPU#0に読み込むように制御する。方式Cが適用できる場合として、メールの受信などが挙げられる。
Based on the
たとえば、アプリケーション#2をメールソフトウェアとし、スレッド#4をダウンロードスレッドとし、スレッド#5をメール取得スレッドとする。CPU#1は、ダウンロードスレッドによってI/F105を通じ、ネットワーク106からメールデータを受信し、MEM#1に書き込む。CPU#0は、メール取得スレッドによってMEM#1から読み込む。
For example,
方式B、方式Cによるデータ転送方式は、CPUによるデータ転送により、データの転送速度はDMACの転送に比べ低速ではあるが、バス107を占有しないため、CPUの転送待ちによるスループットの低下を防ぐことができる。また、割り込みが発生した場合、コンテキストスイッチを行う反応時間が短縮され、応答性を向上させることができる。
The data transfer method using method B or method C is lower in data transfer speed than the DMAC transfer due to the data transfer by the CPU, but does not occupy the
図8は、ストリーミング再生中におけるストリーミングデータのデータ転送状態を示す説明図である。図8におけるデータ転送制御装置100は、動画再生アプリケーションを実行している状態である。動画再生アプリケーションは、動画再生スレッド801と、ダウンロードスレッド802を含む。また、GUIスレッド803が実行されており、GUIスレッド803は動画再生アプリケーション以外のアプリケーションに属する。また、ダウンロードスレッド802は、動画再生アプリケーション以外のアプリケーションに属していてもよい。
FIG. 8 is an explanatory diagram showing a data transfer state of streaming data during streaming playback. The data
図8の状態では、動画再生アプリケーションの状態がアクティブであるため、スケジューラ202は、データ転送テーブル201からレコード804を選択する。レコード804に基づいて、スケジューラ202は、データ転送方式を方式Aに設定する。設定された内容に従って、ダウンロードスレッド802はI/F105から取得したストリーミングデータをMEM#1に書き込む。
In the state of FIG. 8, since the state of the video playback application is active, the
ストリーミングデータの書き込み後、DMAC#0は、ストリーミングデータをMEM#1からMEM#0に転送し、動画再生スレッド801は、MEM#0からストリーミングデータを読み込み、ディスプレイ104に動画を表示する。
After the streaming data is written, the
ストリーミングデータを再生する場合、ストリーミングデータのビットレート以上でデータを転送しないと動画が正常に表示できなくなるため、データ転送方式は、高速にデータを転送できる方式Aが適している。 When reproducing streaming data, a moving image cannot be normally displayed unless the data is transferred at a bit rate higher than that of the streaming data. Therefore, a method A that can transfer data at high speed is suitable.
図9は、ゲームアプリケーション実行中におけるストリーミングデータのデータ転送状態を示す説明図である。図9におけるデータ転送制御装置100は、動画再生アプリケーションを実行している状態であったのが、他のアプリケーションがアクティブとなり、動画再生アプリケーションがインアクティブとなり、動画再生が待機中になった状態である。図9では、動画再生アプリケーションとは異なるゲームアプリケーションがアクティブ状態であり、ゲームアプリケーションに属するゲームスレッド901がCPU#0によって実行されている。
FIG. 9 is an explanatory diagram showing a data transfer state of streaming data during execution of the game application. The data
図9の状態では、動画再生アプリケーションの状態がインアクティブであるため、スケジューラ202は、データ転送テーブル201からレコード805を選択する。レコード805に基づいて、スケジューラ202は、データ転送方式を方式Bに設定する。設定された内容に従って、ダウンロードスレッド802はI/F105から取得したストリーミングデータをMEM#0に直接書き込む。ストリーミングデータの書き込み後、動画再生スレッド801は、MEM#0からストリーミングデータを読み込む。
In the state of FIG. 9, since the state of the video playback application is inactive, the
このとき、ディスプレイ104には、ゲームスレッド901による描画が行われており、動画再生スレッド801は待機中であるため描画をしない。このとき、ダウンロードスレッド802は、動画再生アプリケーションの待機中にストリーミングデータをMEM#0に転送する。転送中に動画再生アプリケーションがアクティブ状態になった場合、動画再生スレッド801は、蓄積されたストリーミングデータを再生することで、スムーズな動画再生を行うことができる。動画再生アプリケーションが待機中のデータ転送には、時間制約がなく緊急でないため、データ転送方式は、バス107を占有しない方式Bが適している。
At this time, drawing by the
図10は、ゲームアプリケーション中断状態におけるストリーミングデータのデータ転送状態を示す説明図である。図10におけるデータ転送制御装置100は、ゲームアプリケーションがアクティブの状態から、動画再生アプリケーションがアクティブとなった状態である。
FIG. 10 is an explanatory diagram showing a data transfer state of streaming data in a game application interruption state. The data
図10の状態では、動画再生アプリケーションの状態がアクティブであるため、スケジューラ202は、データ転送テーブル201からレコード804を選択する。レコード804に基づいて、スケジューラ202は、データ転送方式を再び方式Aに設定する。このように、本実施の形態にかかるデータ転送制御装置100は、アプリケーションがアクティブかインアクティブかという状態変化に基づいて転送方式を動的に切り替えることができる。
In the state of FIG. 10, since the state of the moving image playback application is active, the
また、データ転送制御装置100はアクティブかインアクティブか、以外の状態変化に基づいて転送方式を切り替えてもよい。たとえば、動画再生アプリケーションがアクティブであるが、利用者などによって動画再生が停止、または巻き戻し再生になったという状態変化が発生した場合である。この場合、蓄積されたストリーミングデータにて再生が行えるため高速でデータを転送しなくてもよいので、データ転送制御装置100はデータ転送方式を方式Bに設定してもよい。
Further, the data
図11A、図11Bは、データ転送方式移行処理を示すフローチャートである。データ転送方式移行処理は、スケジューラ202の機能の一部として実行される。スケジューラ202は、各CPUで実行されるアプリケーションのスケジュールを、それぞれのCPUのスケジューラで管理する。また、スケジューラ202は、データ転送制御装置100で実行中のアプリケーションの管理や、利用者からのアプリケーションの起動要求の対応を、各CPUのうち、特定のCPUのスケジューラが代表して行う。本実施の形態では、特定のCPUをCPU#0として説明を行う。
11A and 11B are flowcharts showing the data transfer method transition processing. The data transfer method transition process is executed as a part of the function of the
各CPUは、状態変化が発生したかを判断する(ステップS1101)。状態変化とは、アプリケーションの起動、終了、アプリケーションのスイッチである。状態変化が発生していない場合(ステップS1101:No)、各CPUは、再びステップS1101の処理を実行する。状態変化が発生した場合(ステップS1101:Yes)、各CPUは、アプリケーションの実行が終了した状態変化かを判断する(ステップS1102)。 Each CPU determines whether or not a state change has occurred (step S1101). State changes are application activation, termination, and application switching. When the state change has not occurred (step S1101: No), each CPU executes the process of step S1101 again. When a state change has occurred (step S1101: Yes), each CPU determines whether or not the application has been executed (step S1102).
アプリケーションの実行が終了した状態変化である場合(ステップS1102:Yes)、各CPUは、データ転送方式Cのアプリケーションが終了したかを判断する(ステップS1103)。データ転送方式Cのアプリケーションが終了した場合(ステップS1103:Yes)、各CPUは、各CPUに対応するDMACの使用禁止を解除し(ステップS1104)、ステップS1101の処理に移行する。データ転送方式C以外のアプリケーションが終了した場合(ステップS1103:No)、各CPUは、ステップS1101の処理に移行する。なお、アプリケーションが終了すると、実行中のアプリケーションにスイッチするため、ステップS1101:Yesの処理に移行する。 If it is a state change in which the execution of the application is finished (step S1102: Yes), each CPU determines whether the application of the data transfer method C is finished (step S1103). When the application of the data transfer method C ends (step S1103: Yes), each CPU cancels the prohibition of use of the DMAC corresponding to each CPU (step S1104), and proceeds to the processing of step S1101. When the application other than the data transfer method C is finished (step S1103: No), each CPU proceeds to the process of step S1101. When the application ends, the process proceeds to step S1101: Yes in order to switch to the application being executed.
アプリケーションの実行が終了した状態変化でない場合(ステップS1102:No)、各CPUは、未解析のアプリケーションが存在するかを判断する(ステップS1105)。未解析のアプリケーションが存在する場合(ステップS1105:Yes)、各CPUは、実行中のアプリケーションのうち、未解析のアプリケーションを選択する(ステップS1106)。選択後、各CPUは、CPU#0に選択されたアプリケーションの情報を通知する。
If it is not the state change after the execution of the application is completed (step S1102: No), each CPU determines whether there is an unanalyzed application (step S1105). When an unanalyzed application exists (step S1105: Yes), each CPU selects an unanalyzed application among the applications being executed (step S1106). After the selection, each CPU notifies
通知を受けたCPU#0は、選択されたアプリケーションがデータ転送テーブル201に存在するかを判断する(ステップS1107)。データ転送テーブル201に登録されている場合(ステップS1107:Yes)、CPU#0は、データ転送テーブル201から、選択されたアプリケーションのレコードを選択し(ステップS1108)、通知元のCPUに送信する。なお、選択されたアプリケーションのレコードが複数存在する場合、CPU#0は、選択されたアプリケーションがアクティブ状態かインアクティブ状態かと、条件に当てはまるレコードのうち記載された状態と、が一致するレコードを選択してもよい。
Receiving the notification, the
レコードを受信した各CPUは、新たなアプリケーションの起動による状態変化によって、選択されたアプリケーションのデータ転送方式が変更されるかを判断する(ステップS1109)。データ転送方式が変更される場合(ステップS1109:Yes)、各CPUは、データ転送方式設定処理を実行する(ステップS1110)。データ転送方式設定処理の詳細は、図12にて後述する。 Each CPU that has received the record determines whether or not the data transfer method of the selected application is changed due to a state change caused by activation of a new application (step S1109). When the data transfer method is changed (step S1109: Yes), each CPU executes a data transfer method setting process (step S1110). Details of the data transfer method setting process will be described later with reference to FIG.
データ転送方式の実行後、または、データ転送方式が変更されない場合(ステップS1109:No)、各CPUは、選択されたアプリケーションを解析済みに設定し(ステップS1111)、ステップS1105の処理に移行する。 After execution of the data transfer method or when the data transfer method is not changed (step S1109: No), each CPU sets the selected application to be analyzed (step S1111), and proceeds to the processing of step S1105.
選択されたアプリケーションがデータ転送テーブル201に登録されていない場合(ステップS1107:No)、CPU#0は、登録されていないという結果を通知元のCPUに送信する。登録されていないという結果を受信した各CPUは、ステップS1111の処理に移行する。
If the selected application is not registered in the data transfer table 201 (step S1107: No), the
未解析のアプリケーションが存在しない場合(ステップS1105:No)、各CPUは、CPU#0に対して、新たなアプリケーションが起動した状態変化かを判断するよう依頼する(ステップS1112)。新たなアプリケーションが起動した状態変化である場合(ステップS1112:Yes)、CPU#0は、新たなアプリケーションがデータ転送テーブル201に登録されているかを判断する(ステップS1113)。なお、選択されたアプリケーションのレコードが複数存在する場合、CPU#0は、選択されたアプリケーションがアクティブ状態かインアクティブ状態かと、条件に当てはまるレコードのうち記載された状態と、が一致するレコードを選択してもよい。
When there is no unanalyzed application (step S1105: No), each CPU requests
データ転送テーブル201に登録されている場合(ステップS1113:Yes)、CPU#0は、データ転送テーブル201から新たなアプリケーションのレコードを選択する(ステップS1114)。レコードを選択後、CPU#0は、データ転送方式設定処理を実行する(ステップS1115)。データ転送方式設定処理の詳細は、図12にて後述する。
When registered in the data transfer table 201 (step S1113: Yes), the
データ転送方式設定処理の実行終了後、CPU#0は、スケジューラ202によって新たなアプリケーションをディスパッチする(ステップS1116)。新たなアプリケーションがデータ転送テーブル201に登録されていない場合(ステップS1113:No)、CPU#0は、ステップS1116の処理に移行する。新たなアプリケーションが起動した状態変化でない場合(ステップS1112:No)、CPU#0は、スケジューラ202によって、通常のスケジューリングを実行する(ステップS1117)。なお、データ転送テーブル201に登録されていないアプリケーションとしては、たとえば、利用者がダウンロードしたアプリケーションなどが挙げられる。
After completing the execution of the data transfer method setting process, the
ステップS1116の処理終了後、または、ステップS1117の処理終了後、CPU#0は、ステップS1101の処理に移行する。具体的には、処理移行後CPU#0は、各CPUに対して状態変化が発生したかを判断するように指示をする。
After the process of step S1116 or the process of step S1117 ends,
図12は、データ転送方式設定処理を示すフローチャートである。データ転送方式設定処理はすべてのCPUにて実行される。ここでは説明の簡略化のため、CPU#0が実行する場合について説明を行う。また、データ転送方式設定処理が実行される場合には、引数としてデータ転送テーブル201の選択されたレコードを取得できる状態である。
FIG. 12 is a flowchart showing data transfer method setting processing. The data transfer method setting process is executed by all CPUs. Here, for the sake of simplification of description, a case where
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内の転送先アドレスの設定をする。
When the data transfer method of the selected record is method B (step S1201: method B),
選択されたレコードのデータ転送方式が方式Cである場合(ステップS1201:方式C)、転送対象データの格納に緊急性があり、転送に緊急性がないと判断されるため、CPU#0は、DMACの使用禁止を設定する(ステップS1204)。設定後、CPU#0は、データ転送方式設定処理を終了する。具体的には、CPU#0は、CPU#0に対応するDMAC#0の使用禁止を設定する。
When the data transfer method of the selected record is method C (step S1201: method C), it is determined that there is urgency in storing the transfer target data and there is no urgency in the transfer. The use prohibition of the DMAC is set (step S1204). After the setting, the
図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>)
In FIG. 11 and FIG. 12, the data
(Reference 1: Mastering DMC: Fujitsu, [online], [May 06, 2010 search], Internet <URL: http://jp.fujitsu.com/microelectronics/products/micom/support/knowhow/ fr-hard05.html>)
バースト転送を禁止し、シングル転送でデータを転送する場合、DMACがバスを占有しないため、データ転送制御装置100は、CPUの転送待ちによるスループットを低下させることなく、スループットを維持することができる。また、割り込みが発生した場合にも、データ転送制御装置100は、コンテキストスイッチを行う反応時間が短縮され、応答性を向上させることができる。
When the burst transfer is prohibited and the data is transferred by the single transfer, the DMAC does not occupy the bus. Therefore, the data
また、本実施の形態におけるデータ転送制御装置100は、マルチコアの形態となっていたが、シングルコアの形態となっていてもよい。たとえば、図5にて前述したアプリケーション#0にて、通信を行うスレッド#0が転送対象データをスレッド#0のワーキング領域に格納し、通信で得た転送対象データを用いるスレッド#1のワーキング領域に転送する状態を想定する。
In addition, the data
この場合、アプリケーション#0の状態がアクティブである場合は、データ転送方式を方式Aとして、DMACによってスレッド#1のワーキング領域からスレッド#0のワーキング領域に転送対象データを転送してもよい。また、アプリケーション#0の状態がインアクティブである場合は、データ転送方式を方式Bとして、スレッド#1が直接スレッド#0のワーキング領域に転送対象データを書き込みしてもよい。
In this case, when the state of the
また、シングルコアによるデータ転送方式が方式Cの場合においても、図7にて前述したアプリケーション#2の例が適用できる。具体的には、アプリケーション#2のスレッド#4が転送対象データをスレッド#4のワーキング領域に格納し、スレッド#5がスレッド#4のワーキング領域から直接転送対象データを読み込んでもよい。
Further, even when the data transfer method using the single core is the method C, the example of the
以上説明したように、マルチプロセッサシステム、制御方法、および制御プログラムによれば、実行中のアプリケーションの種類に基づいて、緊急のデータ転送か否かを判断し、緊急でない場合にDMACの使用を禁止する。これにより、マルチプロセッサシステムは、頻繁なDMA転送を削減するため、プロセッサの転送待ちによるスループットの低下を防ぐことができる。さらに、マルチプロセッサシステムは、頻繁なDMA転送を削減するため、コンテキストスイッチが要求される割り込み処理への反応時間が短くなり、リアルタイム処理に対する応答性を向上できる。 As described above, according to the multiprocessor system, the control method, and the control program, it is determined whether or not it is an urgent data transfer based on the type of the application being executed, and the use of the DMAC is prohibited when it is not urgent. To do. Thereby, since the multiprocessor system reduces frequent DMA transfers, it is possible to prevent a decrease in throughput due to processor transfer waiting. Furthermore, since the multiprocessor system reduces frequent DMA transfers, the reaction time for interrupt processing requiring a context switch is shortened, and the responsiveness to real-time processing can be improved.
また、マルチプロセッサシステムは、アプリケーションの種類と状態変化とに基づいて、緊急のデータ転送か否かを判断してもよい。これにより、マルチプロセッサシステムは、プロセッサの転送待ちによるスループットの低下を防ぐことができ、さらに、リアルタイム処理に対する応答性を向上できる。また、マルチプロセッサシステムは、アプリケーションの状態変化に基づいて判断することで、アプリケーションの種類による判断よりさらに動的にデータ転送方式を変更することができる。したがって、マルチプロセッサシステムは、スループットの低下の防止やリアルタイム処理に対する応答性の向上を行える状態をより増やすことができる。 Further, the multiprocessor system may determine whether or not it is an urgent data transfer based on the type of application and the state change. As a result, the multiprocessor system can prevent a decrease in throughput due to waiting for processor transfer, and can further improve the responsiveness to real-time processing. Also, the multiprocessor system can change the data transfer method more dynamically than the determination based on the type of application by making a determination based on the change in the state of the application. Therefore, the multiprocessor system can further increase the number of states that can prevent a decrease in throughput and improve the responsiveness to real-time processing.
また、マルチプロセッサシステムは、アプリケーションの状態がアクティブからインアクティブに、または、インアクティブからアクティブに変化した場合に、アプリケーションの種類と状態変化とに基づいて、緊急のデータ転送か否かを判断してもよい。これにより、マルチプロセッサシステムは、プロセッサの転送待ちによるスループットの低下を防ぐことができ、さらに、リアルタイム処理に対する応答性を向上できる。 In addition, when the application state changes from active to inactive or changes from inactive to active, the multiprocessor system determines whether or not it is an urgent data transfer based on the application type and state change. May be. As a result, the multiprocessor system can prevent a decrease in throughput due to waiting for processor transfer, and can further improve the responsiveness to real-time processing.
また、マルチプロセッサシステムが携帯端末の形態をとる場合、携帯端末で採用されるディスプレイの表示領域は表示領域が狭く、たとえば、320×240ピクセルであるQVGA(Quarter Video Graphics Array)が採用される場合もある。このような表示領域の狭いディスプレイの場合、インアクティブとなったアプリケーションは、アクティブとなったアプリケーションによってすべて隠される可能性が高い。すべて隠れてしまったアプリケーションは利用者から見えなくなるため、データの転送速度を遅くしても利用者からは問題とならない場合が存在する。このような場合、マルチプロセッサシステムは、データの転送速度が遅くなる代わりに、プロセッサのスループットの低下防止や、リアルタイムの応答性の向上を図ることができる。 When the multiprocessor system takes the form of a mobile terminal, the display area of the display adopted by the mobile terminal is narrow, for example, when a QVGA (Quarter Video Graphics Array) of 320 × 240 pixels is used. There is also. In the case of such a display with a narrow display area, there is a high possibility that all inactive applications are hidden by the active application. Since all hidden applications are not visible to the user, there are cases where the user does not have a problem even if the data transfer rate is reduced. In such a case, the multiprocessor system can prevent a decrease in the throughput of the processor and improve real-time responsiveness instead of slowing down the data transfer rate.
また、マルチプロセッサシステムは、転送対象データの転送に緊急性があると判断された場合、DMACによって転送対象データを転送してもよい。これにより、マルチプロセッサシステムは、緊急性があるときに限り高速で転送対象データを転送することができる。たとえば、アプリケーションがアクティブとなり緊急性が高まったときに、マルチプロセッサシステムは、DMACによって転送対象データを高速に転送することができる。 The multiprocessor system may transfer the transfer target data using the DMAC when it is determined that the transfer of the transfer target data is urgent. Thereby, the multiprocessor system can transfer the transfer target data at high speed only when there is urgency. For example, when an application becomes active and urgency increases, the multiprocessor system can transfer data to be transferred at high speed by the DMAC.
また、マルチプロセッサシステムは、他のプロセッサによる転送元メモリへの転送対象データの格納に緊急性があるかを判断し、転送対象データの格納に緊急性がなく、かつ、転送対象データの転送に緊急性がないと判断された場合、他のプロセッサに転送させてもよい。これにより、マルチプロセッサシステムは、緊急性がない場合に、プロセッサのスループットの低下防止や、リアルタイムの応答性の向上を図ることができる。 In addition, the multiprocessor system determines whether there is an urgent need to store the transfer target data in the transfer source memory by another processor, and there is no urgency in storing the transfer target data. If it is determined that there is no urgency, it may be transferred to another processor. As a result, the multiprocessor system can prevent a decrease in the throughput of the processor and improve real-time responsiveness when there is no urgency.
また、マルチプロセッサシステムは、転送対象データの格納に緊急性があり、かつ、転送対象データの転送に緊急性がないと判断された場合、プロセスを検出したプロセッサに転送させてもよい。これにより、マルチプロセッサシステムは、転送対象データの格納を高速で行いつつ、プロセッサのスループットの低下防止や、リアルタイムの応答性の向上を図ることができる。 In addition, when it is determined that there is urgency in storing the transfer target data and there is no urgency in transferring the transfer target data, the multiprocessor system may transfer the process to the processor that detected the process. As a result, the multiprocessor system can prevent the processor throughput from decreasing and improve the real-time responsiveness while storing the transfer target data at high speed.
なお、本実施の形態で説明した制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本制御プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本制御プログラムは、インターネット等のネットワークを介して配布してもよい。 The control method described in this embodiment can be realized by executing a program prepared in advance on a computer such as a personal computer or a workstation. This control program is recorded on a computer-readable recording medium such as a hard disk, a flexible disk, a CD-ROM, an MO, and a DVD, and is executed by being read from the recording medium by the computer. The control program may be distributed via a network such as the Internet.
#0、#1 CPU、MEM、DMAC
107 バス
100 データ転送制御装置
201 データ転送テーブル
202 スケジューラ
203 転送部
204 転送指示部
205 検出部
206 判断部
207 制御部
# 0, # 1 CPU, MEM, DMAC
DESCRIPTION OF
Claims (3)
前記複数のコアで処理された処理データを記録する複数の記憶部と、
前記複数の記憶部の間のデータ転送を実行する転送部と
を有するマルチプロセッサシステムであって、前記複数のコアのいずれかは、
前記複数のコアで実行されたプロセスの種類に基づいて前記転送部に実行させる前記複数の記憶部の間のデータ転送処理の優先度を判定し、前記優先度に基づいて前記複数のコアのうちの転送元コアが前記複数の記憶部に前記処理データを書込む処理と前記転送部による前記データ転送処理とを切り替える
マルチプロセッサシステム。 With multiple cores,
A plurality of storage units for recording processing data processed by the plurality of cores;
And a transfer unit that executes data transfer between the plurality of storage units, wherein any of the plurality of cores is:
A priority of data transfer processing between the plurality of storage units to be executed by the transfer unit is determined based on a type of process executed by the plurality of cores, and the priority among the plurality of cores is determined based on the priority. multiprocessor system for switching between the data transfer process by the transfer source core of said processed data write untreated to the plurality of memory unit the transfer unit.
前記複数のコアで実行されたプロセスの種類に基づいて前記複数の記憶部の間のデータ転送処理の優先度を判定する処理と、
前記優先度に基づいて前記複数のコアのうちの転送元コアが前記複数の記憶部に前記処理データを書込む処理と前記データ転送処理とを切り替える処理と
を実行するマルチプロセッサシステムの制御方法。 A control method of a multiprocessor system having a plurality of cores and a plurality of storage units that record processing data processed by the plurality of cores, wherein any of the plurality of cores is
Processing for determining the priority of data transfer processing between the plurality of storage units based on the types of processes executed by the plurality of cores;
Control method for a multiprocessor system for executing a process of switching between the data transfer process the source core and the processed data write untreated to the plurality of storage portions of the plurality of cores based on the priority .
前記複数のコアで実行されたプロセスの種類に基づいて前記複数の記憶部の間のデータ転送処理の優先度を判定する処理と、
前記優先度に基づいて前記複数のコアのうちの転送元コアが前記複数の記憶部に前記処理データを書込む処理と前記データ転送処理とを切り替える処理と
を実行させるマルチプロセッサシステムの制御プログラム。 A control program for a multiprocessor system having a plurality of cores and a plurality of storage units for recording processing data processed by the plurality of cores, and any one of the plurality of cores,
Processing for determining the priority of data transfer processing between the plurality of storage units based on the types of processes executed by the plurality of cores;
The control program of the multiprocessor system to execute a process of switching between the data transfer process and the writing untreated transfer source core of the processed data to the plurality of storage portions of the plurality of cores based on the priority .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013212677A JP5729445B2 (en) | 2013-10-10 | 2013-10-10 | Multiprocessor system, control method, and control program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013212677A JP5729445B2 (en) | 2013-10-10 | 2013-10-10 | Multiprocessor system, control method, and control program |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012521204A Division JP5387770B2 (en) | 2010-06-22 | 2010-06-22 | Data transfer control device, data transfer control method, and data transfer control program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014038651A JP2014038651A (en) | 2014-02-27 |
JP5729445B2 true JP5729445B2 (en) | 2015-06-03 |
Family
ID=50286672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013212677A Expired - Fee Related JP5729445B2 (en) | 2013-10-10 | 2013-10-10 | Multiprocessor system, control method, and control program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5729445B2 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6904697B2 (en) * | 2016-12-22 | 2021-07-21 | キヤノン株式会社 | Information processing device and communication control method |
JP6833644B2 (en) * | 2017-09-13 | 2021-02-24 | 株式会社東芝 | Transfer device, transfer method and program |
JP6891159B2 (en) * | 2018-11-28 | 2021-06-18 | 株式会社藤商事 | Pachinko machine |
JP7250971B2 (en) * | 2019-01-16 | 2023-04-03 | 株式会社藤商事 | game machine |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01305461A (en) * | 1988-06-03 | 1989-12-08 | Hitachi Ltd | Right of using bus control system |
JPH03262071A (en) * | 1990-03-13 | 1991-11-21 | Agency Of Ind Science & Technol | Parallel computers |
JPH05233525A (en) * | 1991-06-28 | 1993-09-10 | Matsushita Electric Works Ltd | Input/otuput processor |
JP3724536B2 (en) * | 1998-02-20 | 2005-12-07 | 富士ゼロックス株式会社 | Image output control device and process execution control method thereof |
JP2001117862A (en) * | 1999-10-21 | 2001-04-27 | Nec Corp | Microcomputer |
JP2002217920A (en) * | 2001-01-12 | 2002-08-02 | Minolta Co Ltd | System and method of arbitration control, and arbitration control program |
JP4536361B2 (en) * | 2003-11-28 | 2010-09-01 | 株式会社日立製作所 | Data transfer apparatus, storage device control apparatus, and storage device control apparatus control method |
JP4387970B2 (en) * | 2005-03-31 | 2009-12-24 | 富士通株式会社 | Data I / O program, device, and method |
JP2007264751A (en) * | 2006-03-27 | 2007-10-11 | Canon Inc | Data transfer controller |
JP4881140B2 (en) * | 2006-12-07 | 2012-02-22 | キヤノン株式会社 | Data transfer device, data transfer control method, and data transfer control program |
-
2013
- 2013-10-10 JP JP2013212677A patent/JP5729445B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2014038651A (en) | 2014-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI335512B (en) | Technique for using memory attributes | |
JP5243711B2 (en) | Processor | |
KR101552079B1 (en) | Execution of graphics and non-graphics applications on a graphics processing unit | |
KR101901587B1 (en) | Method and apparatus to guarantee real time processing of soft real-time operating system | |
JP5725162B2 (en) | Exclusive control method and exclusive control program | |
JP5729445B2 (en) | Multiprocessor system, control method, and control program | |
US20100302283A1 (en) | Graphic display device | |
EP2927779B1 (en) | Disk writing method for disk arrays and disk writing device for disk arrays | |
JP2007026094A (en) | Execution device and application program | |
WO2011011154A2 (en) | Batch scheduling with segregation | |
JP2012022616A (en) | Shared memory system and control method thereof | |
JP2015520425A (en) | Computer system and control method thereof | |
WO2013035246A1 (en) | Virtual computer control apparatus, virtual computer control method, virtual computer control program, and integrated circuit | |
JP2012043031A (en) | Shared cache memory device | |
JP5387770B2 (en) | Data transfer control device, data transfer control method, and data transfer control program | |
US20100318707A1 (en) | External device access apparatus, control method thereof, and system lsi | |
JP5590114B2 (en) | Software control apparatus, software control method, and software control program | |
JP5862722B2 (en) | Multi-core processor system, multi-core processor system control method, and multi-core processor system control program | |
JP2007141155A (en) | Multi-core control method in multi-core processor | |
JP6584655B2 (en) | Graphics context scheduling based on flip-queue management | |
JP4727480B2 (en) | Information processing method, information processing system, information processing apparatus, multiprocessor, information processing program, and computer-readable storage medium storing information processing program | |
EP3977272B1 (en) | Multimedia system with optimized performance | |
TWI516982B (en) | Computing device and method of processing secure services for computing device | |
JP2010044703A (en) | Method and program for switching task in multi task os | |
JP2006331008A (en) | Memory interface |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140806 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140812 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141010 |
|
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: 20150310 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150323 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5729445 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |