JP4409568B2 - Band control program and multiprocessor system - Google Patents

Band control program and multiprocessor system Download PDF

Info

Publication number
JP4409568B2
JP4409568B2 JP2006344849A JP2006344849A JP4409568B2 JP 4409568 B2 JP4409568 B2 JP 4409568B2 JP 2006344849 A JP2006344849 A JP 2006344849A JP 2006344849 A JP2006344849 A JP 2006344849A JP 4409568 B2 JP4409568 B2 JP 4409568B2
Authority
JP
Japan
Prior art keywords
task
group
memory
processor element
priority value
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
JP2006344849A
Other languages
Japanese (ja)
Other versions
JP2008158687A (en
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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions 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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2006344849A priority Critical patent/JP4409568B2/en
Publication of JP2008158687A publication Critical patent/JP2008158687A/en
Application granted granted Critical
Publication of JP4409568B2 publication Critical patent/JP4409568B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、複数のプロセッサ・エレメントの各々がメモリにアクセスできるメモリ帯域幅を制御する帯域制御プログラム及びマルチプロセッサシステムに関する。   The present invention relates to a bandwidth control program and a multiprocessor system for controlling a memory bandwidth in which each of a plurality of processor elements can access a memory.

昨今、複数のプロセッサ・エレメント(Processor Element:PE)を有し、当該複数のPEが例えば1つのメモリユニット(以下、単にメモリと表記)を共有して利用するコンピュータハードウェア(以下、マルチプロセッサシステムと表記)が存在する。   Recently, computer hardware (hereinafter referred to as a multiprocessor system) that has a plurality of processor elements (PE) and that the PEs share and use, for example, one memory unit (hereinafter simply referred to as memory). Is written).

このようなマルチプロセッサシステム上では、少なくとも1つのPE上でオペレーティングシステム(以下、OSと表記)が動作する。   On such a multiprocessor system, an operating system (hereinafter referred to as OS) operates on at least one PE.

OSには、スケジューラが含まれる。スケジューラは、当該OS自身やユーザアプリケーションによって発生する多数のタスクを各PEに割り当てる処理を実行する。これにより、マルチプロセッサシステム全体が動作する。ここで、タスクは、各PEに実行されるべき処理単位である。   The OS includes a scheduler. The scheduler executes a process of assigning a number of tasks generated by the OS itself or user applications to each PE. As a result, the entire multiprocessor system operates. Here, a task is a processing unit to be executed by each PE.

通常、実行すべきタスクの数はPEの数よりも多いため、例えばPEの実行時間を分割してタスク毎に割り当てるようなスケジューリングを行う必要がある。更に、複数のタスクには、例えば比較的早く実行完了すべきもの、実行完了が遅れてもよいもの、またはそれらの中間的なもの等が存在する。複数のタスクのうち、早く実行完了すべきタスクには多くのPEの実行時間を、実行完了が遅れてもよいタスクには少ないPEの実行時間を、またはそれらの中間的なタスクには中間的なPEの実行時間を与えるようなスケジューリングが望ましい。   Usually, since the number of tasks to be executed is larger than the number of PEs, it is necessary to perform scheduling such that the execution time of PEs is divided and assigned to each task. Further, the plurality of tasks include, for example, a task that should be completed relatively quickly, a task whose execution may be delayed, or an intermediate task between them. Of the multiple tasks, execute many PEs for tasks that should be completed early, use less PEs for tasks that may be delayed in execution, or intermediate for those intermediate tasks Scheduling that gives the PE execution time is desirable.

そこで、複数のタスクの各々には、プライオリティ値(処理優先度)が設定されている。このプライオリティ値は、例えば値が小さい程より多くのPEの実行時間が与えられる。例えばプライオリティ値が0または1のいずれかの場合では、プライオリティ値が1であるタスクよりプライオリティ値が0であるタスクの方が、より多くのPEの実行時間で実行される。以下、より多くのPEの実行時間が与えられるタスク(例えばプライオリティ値が0)を高いプライオリティ値のタスク、より少ないPEの実行時間が与えられるタスク(例えばプライオリティ値が1)を低いプライオリティ値のタスクと称する。   Therefore, a priority value (processing priority) is set for each of the plurality of tasks. For example, the smaller the value of the priority value, the more PE execution time is given. For example, in the case where the priority value is either 0 or 1, a task with a priority value of 0 is executed with more PE execution time than a task with a priority value of 1. Hereinafter, a task with a higher PE execution time (for example, a priority value of 0) is a task with a higher priority value, and a task with a lower PE execution time (for example, a priority value of 1) is a task with a lower priority value. Called.

PEの各々は、自身に割り当てられたタスクのうち、例えば高いプライオリティ値のタスクには多くの実行時間、低いプライオリティ値のタスクには少ない実行時間で動作する。   Each of the PEs operates with a large execution time for a task with a high priority value and with a short execution time for a task with a low priority value, for example, among the tasks assigned to the PE.

例えば予め固定された優先順位を用い、かつ当該優先順位の他には資源要求装置間の関係を関知することなく、各資源要求装置へのサービス品質を管理する技術が開示されている(例えば、特許文献1を参照)。
特開2004−5589号公報
For example, a technique for managing the quality of service to each resource requesting device is disclosed (for example, using a fixed priority order and not knowing the relationship between the resource requesting devices other than the priority order) (for example, (See Patent Document 1).
JP 2004-5589 A

しかしながら、上記したようにタスク毎のプライオリティ値に応じてPEの実行時間を割り当てる場合であっても、現実にはPEの実行時間を多くまたは少なくするだけではシステム全体の効率を向上させることができない要因が存在する。その要因の1つとして、メモリアクセス時の処理遅延がある。   However, even when the PE execution time is assigned according to the priority value for each task as described above, the efficiency of the entire system cannot be improved by simply increasing or decreasing the PE execution time. There are factors. One of the factors is a processing delay during memory access.

上記したような複数のPEが同じメモリにアクセスするハードウェア構成では、当該PE同士のメモリアクセスが競合することによって大幅な処理遅延が発生する場合がある。例えば低いプライオリティ値のタスクを実行しているPEからメモリアクセスが集中することによって、高いプライオリティ値のタスクを実行しているPEのメモリアクセスが低速になる。これにより、各タスクに与えられたPEの実行時間に見合うだけの実質的な処理ができなくなるという非効率的な状態が生じる。   In a hardware configuration in which a plurality of PEs access the same memory as described above, a significant processing delay may occur due to contention between the memory accesses of the PEs. For example, when memory accesses are concentrated from PEs that are executing tasks with low priority values, the memory accesses of PEs that are executing tasks with high priority values are slowed down. As a result, an inefficient state in which substantial processing corresponding to the execution time of the PE given to each task cannot be performed occurs.

そこで、各PEが例えばメモリ(またはバス)にアクセスできる帯域幅の制限値(最大値)または保証値(最小値)を設定可能なハードウェアが存在する。このようなハードウェア上では、PEが低いプライオリティ値のタスクを実行する際には、OSは当該PEがメモリにアクセスできる帯域幅を狭く制限する。逆に、PEが高いプライオリティ値のタスクを実行する際には、OSは当該PEがメモリにアクセスできる帯域幅を広く保証し、制限はしない。これにより、各PEからのメモリアクセスの競合による非効率な状態を回避することができる。   Therefore, there is hardware that can set a limit value (maximum value) or a guaranteed value (minimum value) of the bandwidth at which each PE can access a memory (or bus), for example. On such hardware, when a PE executes a task with a low priority value, the OS narrowly limits the bandwidth with which the PE can access the memory. Conversely, when a PE executes a task with a high priority value, the OS guarantees a wide bandwidth for the PE to access the memory, and does not limit it. Thereby, it is possible to avoid an inefficient state due to competition of memory access from each PE.

しかしながら、タスク実行時に当該タスク(のプライオリティ値)に応じてPE毎にメモリ帯域幅が設定される場合、プライオリティ値が最低ではないタスクが複数あるときに、それぞれのタスクを実行するPE毎に適切な帯域幅を判別することは非常に複雑な処理を要する。すなわち、各PEがタスクの実行を開始するときに、システム全体のPE毎の帯域幅及び各PEによって実行されるタスクのプライオリティ値を把握した上で、各PEがメモリにアクセスできる帯域幅を決定し、必要ならば他のPEの帯域幅の変更を行う必要が生じる。このような複雑な処理を行うこと自体も当然PEの実行時間を消費し、さらに、各PEが実行するタスクのプライオリティ値が変化する度に当該各PEの帯域幅を調整する必要が生じる。このため、システム全体のタスクの実行効率が低下するおそれがある。   However, when the memory bandwidth is set for each PE according to the task (priority value) at the time of task execution, when there are multiple tasks whose priority value is not the lowest, it is appropriate for each PE that executes each task. Discriminating a large bandwidth requires a very complicated process. In other words, when each PE starts executing a task, the bandwidth for each PE in the entire system and the priority value of the task executed by each PE are determined, and the bandwidth that allows each PE to access the memory is determined. However, if necessary, it is necessary to change the bandwidth of another PE. Performing such complicated processing itself naturally consumes the execution time of the PE, and further, the bandwidth of each PE needs to be adjusted each time the priority value of the task executed by each PE changes. For this reason, there is a possibility that the execution efficiency of the task of the entire system is lowered.

一方、複数のPEをグループ化してメモリ帯域幅を管理できるハードウェアが存在する。これは、例えば1つのハードウェアを仮想的に複数のコンピュータに分割して使用する際などに、メモリを仮想的に分割する目的で使用されている。   On the other hand, there is hardware that can manage a memory bandwidth by grouping a plurality of PEs. This is used for the purpose of virtually dividing the memory when, for example, one piece of hardware is virtually divided into a plurality of computers.

本発明の目的は、複数のPEをグループ化することで、高速かつ簡単に各PEのメモリ帯域幅を設定することが可能な帯域制御プログラム及びマルチプロセッサシステムを提供することにある。   An object of the present invention is to provide a bandwidth control program and a multiprocessor system that can set a memory bandwidth of each PE at high speed and easily by grouping a plurality of PEs.

本発明の1つの態様によれば、複数のプロセッサ要素と、当該複数のプロセッサ要素の各々にアクセスされるメモリと、当該複数のプロセッサ要素の各々が前記メモリにアクセス可能なメモリ帯域幅を制限するメモリコントローラとから構成されるマルチプロセッサシステムにおいて、前記複数のプロセッサ要素のうち、少なくとも1つのプロセッサ要素によって実行される帯域制御プログラムが提供される。この帯域制御プログラムは、前記1つのプロセッサ要素に、前記複数のプロセッサ要素の各々が属するプロセッサ要素グループ毎のメモリ帯域幅を、前記メモリコントローラに設定するステップと、実行されるべきタスクが発生した際に、当該発生されたタスクを実行させるために、当該タスクを前記複数のプロセッサ要素のうちの1つに割り当てるステップと、前記割り当てられたプロセッサ要素に前記発生されたタスクを実行させる際に、当該発生されたタスクの動作条件または動作状態に応じて、当該割り当てられたプロセッサ要素が属すべきプロセッサ要素グループを決定するステップと、前記決定されたプロセッサ要素グループに属すべき前記割り当てられたプロセッサ要素に、前記メモリコントローラに設定された当該プロセッサ要素グループのメモリ帯域幅で前記発生されたタスクを実行させるステップとを実行させる。   According to one aspect of the present invention, a plurality of processor elements, a memory accessed to each of the plurality of processor elements, and a memory bandwidth that each of the plurality of processor elements can access the memory are limited. In a multiprocessor system including a memory controller, a bandwidth control program executed by at least one of the plurality of processor elements is provided. The bandwidth control program sets, in the memory controller, a memory bandwidth for each processor element group to which each of the plurality of processor elements belongs, and a task to be executed. Assigning the task to one of the plurality of processor elements to execute the generated task, and causing the assigned processor element to execute the generated task. Determining a processor element group to which the assigned processor element should belong according to an operating condition or an operating state of the generated task; and to the assigned processor element to belong to the determined processor element group, The processor set in the memory controller. In memory bandwidth element group and a step of executing the generation task.

本発明によれば、複数のPEをグループ化することで、高速かつ簡単に各PEのメモリ帯域幅を設定することができる。   According to the present invention, the memory bandwidth of each PE can be set quickly and easily by grouping a plurality of PEs.

以下、図面を参照して、本発明の実施形態について説明する。   Embodiments of the present invention will be described below with reference to the drawings.

図1は、本実施形態に係るマルチプロセッサシステムのハードウェア構成を示すブロック図である。   FIG. 1 is a block diagram showing a hardware configuration of a multiprocessor system according to this embodiment.

図1のマルチプロセッサシステムは、主として、複数のプロセッサ要素(プロセッサ・エレメント:Processor Element)10、メモリコントローラ20、メモリ30、I/Oコントローラ40及び外部記憶装置50から構成される。以下、プロセッサ要素は、単にPEと表記する。   The multiprocessor system of FIG. 1 mainly includes a plurality of processor elements (processor elements) 10, a memory controller 20, a memory 30, an I / O controller 40, and an external storage device 50. Hereinafter, the processor element is simply expressed as PE.

複数のPE10の各々は、マルチプロセッサシステムの動作を制御するために設けられた例えばメインプロセッサまたはサブプロセッサである。複数のPE10は、PE(0)、PE(1)、PE(2)及びPE(3)を含む。複数のPE10は、例えば外部記憶装置50に格納されているオペレーティングシステム(以下、OSと表記)51及びユーザアプリケーションプログラムのような各種アプリケーションプログラムを実行する。また、複数のPE10は、メモリのアクセス制御を行うメモリコントローラ20を介してメモリ30と接続されている。複数のPE10は、例えば1つのメモリ30を共有して利用する。   Each of the plurality of PEs 10 is, for example, a main processor or a sub processor provided for controlling the operation of the multiprocessor system. The plurality of PEs 10 include PE (0), PE (1), PE (2), and PE (3). The plurality of PEs 10 execute various application programs such as an operating system (hereinafter referred to as OS) 51 and a user application program stored in the external storage device 50, for example. The plurality of PEs 10 are connected to the memory 30 via a memory controller 20 that performs memory access control. The plurality of PEs 10 share and use one memory 30, for example.

メモリコントローラ20は、帯域制御部21を含む。帯域制御部21は、各PEがメモリ30にアクセスできる帯域幅の制限値(最大値)または保証値(最小値)を設定する。また、メモリコントローラ20は、複数のPE10の各々をグループ化して、メモリ帯域幅を管理する。   The memory controller 20 includes a bandwidth control unit 21. The bandwidth control unit 21 sets a limit value (maximum value) or guaranteed value (minimum value) of the bandwidth that allows each PE to access the memory 30. In addition, the memory controller 20 groups each of the plurality of PEs 10 and manages the memory bandwidth.

また、複数のPE10は、各種デバイスとのやり取りを制御するI/Oコントローラ40を介して、例えば外部記憶装置50またはその他のデバイスと接続されている。   The plurality of PEs 10 are connected to, for example, the external storage device 50 or other devices via an I / O controller 40 that controls exchanges with various devices.

この外部記憶装置50には、複数のPE10によって実行されるOS51が格納されている。OS51は、例えばマルチプロセッサシステムのハードウェア資源およびソフトウェア資源の割り当て等を統合的に管理するためのプログラムである。また、OS51は、複数のPE10のうち、少なくとも1つのPE、例えばPE(0)上で動作する。   The external storage device 50 stores an OS 51 executed by a plurality of PEs 10. The OS 51 is a program for integrated management of, for example, allocation of hardware resources and software resources of a multiprocessor system. Further, the OS 51 operates on at least one PE, for example, PE (0) among the plurality of PEs 10.

ここで、例えば複数のPE10のうちの少なくとも1つのPE上でOS51が実行されることによって、マルチプロセッサシステムのハードウェア資源およびソフトウェア資源の割り当て等の処理が実行される。しかし、以下の説明では、煩雑さを避けるために、OS51が各種処理を行うものとする。   Here, for example, by executing the OS 51 on at least one of the plurality of PEs 10, processing such as allocation of hardware resources and software resources of the multiprocessor system is executed. However, in the following description, it is assumed that the OS 51 performs various processes in order to avoid complexity.

OS51は、例えば複数のPE10に実行(処理)されるべきタスクを複数のPE10のうちの1つに割り当てる処理を実行する。このタスクは、OS51やユーザアプリケーションによって多数発生する。発生されたタスクの各々は、OS51によって複数のPE10の各々に割り当てられる。タスクの各々には、例えば動作条件が予め定められている。タスクは、動作条件として、例えば予め定められている当該タスクが実行される優先度を示す実行プライオリティ(Priority)値を有する。この実行プライオリティ値は小さいほど、実行プライオリティ値(優先度)が高いと表現する。例えば、実行プライオリティ値が0である場合には、実行プライオリティ値は最高となる。また、OS51は、上記したメモリコントローラ20の帯域制御部21によって設定されるメモリ帯域幅の制御を行う。   For example, the OS 51 executes a process of assigning a task to be executed (processed) to a plurality of PEs 10 to one of the PEs 10. Many of these tasks occur depending on the OS 51 and user applications. Each of the generated tasks is assigned to each of the plurality of PEs 10 by the OS 51. For each task, for example, operating conditions are predetermined. A task has, for example, an execution priority (Priority) value indicating a priority at which the task is executed as a predetermined operation condition. The smaller the execution priority value, the higher the execution priority value (priority). For example, when the execution priority value is 0, the execution priority value is the highest. Further, the OS 51 controls the memory bandwidth set by the bandwidth controller 21 of the memory controller 20 described above.

なお、上記した複数のPE10、メモリコントローラ20、メモリ30、I/Oコントローラ40及び外部記憶装置50等は、それぞれ例えばバスを介して接続されている。   The plurality of PEs 10, the memory controller 20, the memory 30, the I / O controller 40, the external storage device 50, and the like are connected via a bus, for example.

次に、図2は、図1に示すOS51の主として機能構成を示すブロック図である。OS51は、帯域設定部511、スケジューラ512及びグループ設定部513を含む。これらの各部511乃至513は、図1に示される複数のPE10のうち、少なくとも1つのPEが外部記憶装置50に格納されているOS51を実行することにより実現されるものとする。このOS51は、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。   Next, FIG. 2 is a block diagram mainly showing a functional configuration of the OS 51 shown in FIG. The OS 51 includes a bandwidth setting unit 511, a scheduler 512, and a group setting unit 513. These units 511 to 513 are realized by executing the OS 51 in which at least one PE among the plurality of PEs 10 illustrated in FIG. 1 is stored in the external storage device 50. The OS 51 can be stored in advance in a computer-readable storage medium and distributed.

また、図1に示す外部記憶装置50には、グループ・帯域テーブル52、グループ・プライオリティテーブル53及びタスクテーブル54が格納されている。   Further, the external storage device 50 shown in FIG. 1 stores a group / bandwidth table 52, a group / priority table 53, and a task table 54.

帯域設定部511は、例えばユーザによって入力された値に応じて、複数のPE10の各々が属する複数のPEグループの各々を識別するグループ識別情報及び当該グループ識別情報によって示されるPEグループに属するPEがメモリ30にアクセス可能なメモリ帯域幅を示す帯域幅情報を対応付けて、グループ・帯域テーブル52に登録する。帯域設定部511は、グループ・帯域テーブル52を参照して、PEグループ毎のメモリ帯域幅をメモリコントローラ20(の帯域制御部21)に設定する。なお、グループ・帯域テーブル52には、システムの設定として、グループ識別情報及び帯域幅情報が予め登録されている構成であっても良い。   The band setting unit 511, for example, according to a value input by the user, group identification information for identifying each of a plurality of PE groups to which each of the plurality of PEs 10 belongs, and PEs belonging to the PE group indicated by the group identification information. Bandwidth information indicating the memory bandwidth accessible to the memory 30 is associated and registered in the group / bandwidth table 52. The bandwidth setting unit 511 refers to the group / band table 52 and sets the memory bandwidth for each PE group in the memory controller 20 (the bandwidth control unit 21 thereof). The group / bandwidth table 52 may have a configuration in which group identification information and bandwidth information are registered in advance as system settings.

グループ・プライオリティテーブル53には、上記したタスクの各々が実行される優先度を示す実行プライオリティ値及び当該タスクを実行するPEが属するPEグループを示すグループ識別情報が対応付けて予め保持されている。   In the group priority table 53, an execution priority value indicating the priority at which each of the tasks described above is executed and group identification information indicating the PE group to which the PE executing the task belongs are stored in advance.

タスクテーブル54には、例えば発生されたタスク(に係わる情報)が登録される。このタスクテーブル54には、例えばタスク毎に実行プライオリティ値が対応付けて保持される。   In the task table 54, for example, generated tasks (information relating to) are registered. In the task table 54, for example, an execution priority value is stored in association with each task.

スケジューラ512は、例えばOS51の起動時に、タスクテーブル54を作成する処理を実行する。スケジューラ512は、タスクが発生すると、タスクテーブル54に当該タスクを登録する。スケジューラ512は、タスクテーブル54に登録されているタスクを各PEに割り当てる処理を実行する。これにより、スケジューラ512は、複数のPE10を利用して、複数のタスクを実行しようとする。スケジューラ512は、例えばPEの実行時間を分割してタスクに割り当てる。スケジューラ512は、例えば上記した実行プライオリティ値が高いタスクには多くの実行時間を、実行プライオリティ値が低いタスクには少ない実行時間を割り当てる。   For example, the scheduler 512 executes processing for creating the task table 54 when the OS 51 is activated. When a task occurs, the scheduler 512 registers the task in the task table 54. The scheduler 512 executes processing for assigning the task registered in the task table 54 to each PE. As a result, the scheduler 512 attempts to execute a plurality of tasks using a plurality of PEs 10. For example, the scheduler 512 divides the execution time of PEs and assigns them to tasks. For example, the scheduler 512 allocates a large amount of execution time to a task having a high execution priority value, and allocates a small execution time to a task having a low execution priority value.

また、スケジューラ512は、後述するグループ識別情報が設定されたPEに対して、当該グループ識別情報に対応付けてグループ・帯域テーブル52に保持されている帯域幅情報によって示されるメモリ帯域幅でタスクを実行させる。つまり、スケジューラ512は、各PEに対して、メモリコントローラ20に設定されたPEグループ毎のメモリ帯域幅でタスクを実行させる。   In addition, the scheduler 512 performs a task with a memory bandwidth indicated by the bandwidth information held in the group / bandwidth table 52 in association with the group identification information for a PE in which group identification information to be described later is set. Let it run. That is, the scheduler 512 causes each PE to execute a task with the memory bandwidth for each PE group set in the memory controller 20.

スケジューラ512は、タスクテーブル54に登録されているタスクを各PEのタスクキュー(図示しない)に追加することで、タスクを各PEに割り当てる。各PEにタスクが割り当てられると、タスクテーブル54には、当該タスクを実行するPEの識別子が当該タスク毎に対応付けて登録される。スケジューラ512は、例えば実行プライオリティが高い順に各PEのタスクキューにタスクを追加する。このタスクキューは、外部記憶装置50に格納されている。   The scheduler 512 assigns a task to each PE by adding the task registered in the task table 54 to the task queue (not shown) of each PE. When a task is assigned to each PE, the identifier of the PE that executes the task is registered in the task table 54 in association with the task. The scheduler 512 adds tasks to the task queue of each PE in descending order of execution priority, for example. This task queue is stored in the external storage device 50.

複数のPE10の各々は、自身のタスクキューを参照して、例えば実行プライオリティが高いタスクには多くの実行時間を、実行プライオリティが低いタスクには少ない実行時間を与えながら動作(処理)する。   Each of the plurality of PEs 10 operates (processes) with reference to its own task queue, for example, giving a large execution time to a task with a high execution priority and a low execution time to a task with a low execution priority.

スケジューラ512は、グループ決定部514を含む。グループ決定部514は、各PEが実行するタスクの例えば動作条件に応じて、各PEが属すべきPEグループを決定する。グループ決定部514は、グループ・プライオリティテーブル53及びタスクテーブル54を参照して、各PEが実行するタスクの実行プライオリティ値から当該各PEのPEグループを決定する。グループ決定部514は、各PEが実行するタスクに対応付けてタスクテーブル54に保持されている実行プライオリティ値を取得する。また、グループ決定部514は、取得された実行プライオリティ値に対応付けてグループ・プライオリティテーブル53に保持されているグループ識別情報によって示されるPEグループを、各PEが属すべきPEグループとして決定する。   The scheduler 512 includes a group determination unit 514. The group determination unit 514 determines a PE group to which each PE should belong according to, for example, an operation condition of a task executed by each PE. The group determination unit 514 refers to the group / priority table 53 and the task table 54 and determines the PE group of each PE from the execution priority value of the task executed by each PE. The group determination unit 514 acquires the execution priority value held in the task table 54 in association with the task executed by each PE. The group determination unit 514 determines the PE group indicated by the group identification information held in the group / priority table 53 in association with the acquired execution priority value as a PE group to which each PE belongs.

グループ設定部513は、グループ決定部514によって決定された各PEのPEグループを示すグループ識別情報(PEグループ番号)を、各PEのPEグループレジスタに設定する。このPEグループレジスタは、各PEに存在し、当該各PEが属するPEグループのグループ識別情報(識別子)を設定する記憶領域である。   The group setting unit 513 sets group identification information (PE group number) indicating the PE group of each PE determined by the group determination unit 514 in the PE group register of each PE. The PE group register is a storage area that exists in each PE and sets group identification information (identifier) of a PE group to which each PE belongs.

各PEは、グループ識別情報が各PEのPEグループレジスタに設定されることにより、帯域設定部511によってメモリコントローラ30に設定された当該グループ識別情報によって示されるPEグループのメモリ帯域幅でタスクを実行する。   Each PE executes a task with the memory bandwidth of the PE group indicated by the group identification information set in the memory controller 30 by the bandwidth setting unit 511 by setting the group identification information in the PE group register of each PE. To do.

次に、図3のフローチャートを参照して、OS51の帯域設定部511がグループ・帯域テーブル52を作成(登録)する処理手順について説明する。なお、この処理は、例えばシステムの運用開始時または運用形態変更時に実行される。   Next, a processing procedure in which the bandwidth setting unit 511 of the OS 51 creates (registers) the group / bandwidth table 52 will be described with reference to the flowchart of FIG. This process is executed, for example, when the system starts operating or when the operation mode is changed.

まず、帯域設定部511は、例えばユーザによって入力されるPEグループ数の入力を受付ける(ステップS1)。ここで、ユーザによって入力されたPEグループ数は、N(Nは2以上の整数)であるものとする。   First, the bandwidth setting unit 511 receives, for example, an input of the number of PE groups input by the user (step S1). Here, it is assumed that the number of PE groups input by the user is N (N is an integer of 2 or more).

次に、帯域設定部511は、例えばグループn(n=0、1、2、…、N−1)の初期値として「0」を設定する(ステップS2)。   Next, the bandwidth setting unit 511 sets “0” as an initial value of the group n (n = 0, 1, 2,..., N−1), for example (step S2).

帯域設定部511は、例えばユーザによって入力されるPEグループnに属するPEがメモリにアクセスするメモリ帯域幅の入力を受付ける(ステップS3)。ここで、ユーザによって入力されたメモリ帯域幅は、Bn%であるものとする。なお、Bnは、1〜100%であるものとする。   The bandwidth setting unit 511 receives, for example, an input of the memory bandwidth for accessing the memory by the PE belonging to the PE group n input by the user (step S3). Here, it is assumed that the memory bandwidth input by the user is Bn%. Bn is assumed to be 1 to 100%.

帯域設定部511は、PEグループnを示すグループ識別情報及びステップS3で入力されたメモリ帯域幅Bnを示す帯域幅情報を外部記憶装置50上のグループ・帯域テーブル52に登録(設定)する(ステップS4)。ここでは、PEグループ0を示すグループ識別情報及びメモリ帯域幅B0を示す帯域幅情報が対応付けて登録される。   The bandwidth setting unit 511 registers (sets) the group identification information indicating the PE group n and the bandwidth information indicating the memory bandwidth Bn input in step S3 in the group / band table 52 on the external storage device 50 (step). S4). Here, group identification information indicating PE group 0 and bandwidth information indicating memory bandwidth B0 are registered in association with each other.

帯域設定部511は、PEグループnの値に、1を加える(ステップS5)。帯域制御部511は、PEグループnの値がN−1であるか否かを判定する(ステップS6)。帯域制御部511は、PEグループnの値がN−1でないと判定した場合(ステップS6のNO)、ステップS3に戻って、ステップS1で入力された全てのPEグループに対してメモリ帯域幅を登録する(ステップS6においてPEグループn=N−1と判定される)まで処理が繰り返される。この場合、ステップS3に戻って、PEグループ1のメモリ帯域幅B1をグループ・帯域幅テーブル52に登録する処理が実行される。   The bandwidth setting unit 511 adds 1 to the value of the PE group n (step S5). The bandwidth control unit 511 determines whether or not the value of the PE group n is N−1 (step S6). If the bandwidth control unit 511 determines that the value of the PE group n is not N−1 (NO in step S6), the bandwidth control unit 511 returns to step S3 and sets the memory bandwidth for all the PE groups input in step S1. The process is repeated until registration (determination is made as PE group n = N−1 in step S6). In this case, the process returns to step S3, and the process of registering the memory bandwidth B1 of the PE group 1 in the group / bandwidth table 52 is executed.

なお、例えばPEグループ毎に登録されるメモリ帯域幅は、その合計が100%となるように登録される。   For example, the memory bandwidth registered for each PE group is registered such that the total is 100%.

一方、ステップS6において、PEグループnの値がN−1であると判定された場合、グループ・帯域テーブル52の作成処理は終了される。   On the other hand, when it is determined in step S6 that the value of the PE group n is N-1, the process of creating the group / band table 52 is terminated.

なお、上記したようにPEグループの初期値は0としているため、上記したようにPEグループN−1まで処理されると、実際にはグループ・帯域テーブル52に登録されるPEグループ数は、Nとなる。   Since the initial value of the PE group is 0 as described above, when processing up to PE group N-1 as described above, the number of PE groups registered in the group / band table 52 is actually N It becomes.

図4は、帯域設定部511によって作成(登録)されたグループ・帯域テーブル52のデータ構造の一例を示す。   FIG. 4 shows an example of the data structure of the group / band table 52 created (registered) by the band setting unit 511.

図4に示すように、グループ・帯域テーブル52には、PEグループを示すグループ識別情報及び当該PEグループに対して設定されるメモリ帯域幅情報が対応付けて保持されている。図4の例では、PEグループ0を示すグループ識別情報「0」に対応付けて保持されているメモリ帯域幅情報によって示されるメモリ帯域幅B0は、「90%」である。また、PEグループ1を示すグループ識別情報「1」に対応付けて保持されているメモリ帯域幅情報によって示されるメモリ帯域幅B1は、「10%」である。この例では、ユーザによってPEグループ数として2(PEグループ0及びPEグループ1)が入力されている。また、グループ識別情報「0」及び「1」に対応付けられているメモリ帯域幅の合計は100%となっている。   As shown in FIG. 4, the group / bandwidth table 52 holds group identification information indicating a PE group and memory bandwidth information set for the PE group in association with each other. In the example of FIG. 4, the memory bandwidth B0 indicated by the memory bandwidth information held in association with the group identification information “0” indicating the PE group 0 is “90%”. The memory bandwidth B1 indicated by the memory bandwidth information held in association with the group identification information “1” indicating the PE group 1 is “10%”. In this example, 2 (PE group 0 and PE group 1) is input as the number of PE groups by the user. The total memory bandwidth associated with the group identification information “0” and “1” is 100%.

次に、図5のフローチャートを参照して、帯域設定部511がメモリコントローラ20にPEグループ毎のメモリ帯域幅を設定する処理手順について説明する。なお、このPEグループ毎のメモリ帯域幅を設定する処理は、例えばOS51のスケジューラが起動する際に実行される。   Next, a processing procedure in which the bandwidth setting unit 511 sets the memory bandwidth for each PE group in the memory controller 20 will be described with reference to the flowchart of FIG. The processing for setting the memory bandwidth for each PE group is executed when the scheduler of the OS 51 is activated, for example.

まず、帯域設定部511は、外部記憶装置50からグループ・帯域テーブル52を読み込む(ステップS11)。   First, the bandwidth setting unit 511 reads the group / bandwidth table 52 from the external storage device 50 (step S11).

次に、帯域設定部511は、例えばPEグループn(n=0、1、2、…、N)の初期値として「0」を設定する(ステップS2)。   Next, the bandwidth setting unit 511 sets “0” as an initial value of the PE group n (n = 0, 1, 2,..., N), for example (step S2).

帯域設定部511は、グループ・帯域テーブル52を参照して、PEグループ0のメモリ帯域幅B0をメモリコントローラ20に設定する(ステップS13)。帯域設定部511は、PEグループ0を示すグループ識別情報に対応付けてグループ・帯域テーブル52に保持されているメモリ帯域情報によって示されるメモリ帯域幅B0を設定する。   The bandwidth setting unit 511 refers to the group / bandwidth table 52 and sets the memory bandwidth B0 of the PE group 0 in the memory controller 20 (step S13). The bandwidth setting unit 511 sets the memory bandwidth B0 indicated by the memory bandwidth information held in the group / bandwidth table 52 in association with the group identification information indicating the PE group 0.

帯域設定部511は、PEグループnの値に、1を加える(ステップS14)。帯域制御部511は、PEグループnの値がN−1であるか否かを判定する(ステップS15)。帯域制御部511は、PEグループnの値がN−1でないと判定した場合(ステップS15のNO)、ステップS13に戻って、グループ・帯域テーブル52に保持されている全てのPEグループに対してメモリ帯域幅を設定するまで処理が繰り返される。この場合、ステップS3に戻って、グループ1のメモリ帯域幅B1をメモリコントローラ20に設定する処理が実行される。   The bandwidth setting unit 511 adds 1 to the value of the PE group n (step S14). The bandwidth control unit 511 determines whether or not the value of the PE group n is N−1 (step S15). If the bandwidth control unit 511 determines that the value of the PE group n is not N−1 (NO in step S15), the bandwidth control unit 511 returns to step S13 and applies to all the PE groups held in the group / bandwidth table 52. The process is repeated until the memory bandwidth is set. In this case, the process returns to step S3, and the process of setting the memory bandwidth B1 of the group 1 in the memory controller 20 is executed.

一方、ステップS15において、PEグループnの値がN−1であると判定された場合、PEグループのメモリ帯域を設定する処理は終了され、初期タスクテーブル及びタスクキューを作成する処理が実行される。これにより、タスクテーブル54に保持されている複数のタスクを各PEに割り当てる処理(タスクディスパッチ)が実行される。   On the other hand, if it is determined in step S15 that the value of PE group n is N-1, the process of setting the PE group memory bandwidth is terminated, and the process of creating the initial task table and task queue is executed. . As a result, processing (task dispatch) for allocating a plurality of tasks held in the task table 54 to each PE is executed.

図6は、グループ・プライオリティテーブル53のデータ構造の一例を示す。   FIG. 6 shows an example of the data structure of the group / priority table 53.

図6に示すように、グループ・プライオリティテーブル53には、実行プライオリティ値及びグループ識別情報が保持されている。なお、実行プライオリティ値の段階数は2(実行プライオリティ値0または1)、PEグループ数は2(PEグループ0または1)であるものとする。図6の例では、実行プライオリティ値「0」に対応付けて、PEグループ0を示すグループ識別情報「0」が保持されている。また、実行プライオリティ値「1」に対応付けて、PEグループ1を示すグループ識別情報「1」が保持されている。このグループ・プライオリティテーブル53に保持されている実行プライオリティ値及びグループ識別情報は、例えばシステム運用開始時または運用形態変更時等に予め定められている。   As shown in FIG. 6, the group priority table 53 holds execution priority values and group identification information. It is assumed that the number of stages of the execution priority value is 2 (execution priority value 0 or 1) and the number of PE groups is 2 (PE group 0 or 1). In the example of FIG. 6, group identification information “0” indicating PE group 0 is held in association with the execution priority value “0”. Further, group identification information “1” indicating PE group 1 is held in association with the execution priority value “1”. The execution priority value and group identification information held in the group priority table 53 are determined in advance, for example, when the system operation is started or when the operation mode is changed.

図7は、タスクテーブル54及び各PEのタスクキュー(task queue)のデータ構造の一例を示す。図7に示すように、タスクテーブル54には、タスク毎に、当該タスクの実行プライオリティ値が保持されている。また、タスクテーブル54には、タスク毎に、スケジューラ512によって当該タスクが割り当てられたPEを示すPE識別情報が保持されている。   FIG. 7 shows an example of the data structure of the task table 54 and the task queue of each PE. As shown in FIG. 7, the task table 54 holds the execution priority value of the task for each task. The task table 54 holds PE identification information indicating the PE to which the task is assigned by the scheduler 512 for each task.

図7の例では、タスクテーブル54には、タスクA〜C、及びタスク1〜10が保持されている。また、タスクA〜Cの実行プライオリティ値は0であり、タスク1〜10の実行プライオリティ値は1である。なお、実行プライオリティ値は1よりも0の方がプライオリティ(処理優先度)が高いものとする。つまり、各PEは、タスクA〜Cには、多い実行時間で動作し、タスク1〜10には少ない実行時間で動作することになる。   In the example of FIG. 7, tasks A to C and tasks 1 to 10 are held in the task table 54. The execution priority value of tasks A to C is 0, and the execution priority value of tasks 1 to 10 is 1. It is assumed that the execution priority value is higher in priority than 0 (processing priority). That is, each PE operates with a large execution time for tasks A to C and operates with a small execution time for tasks 1 to 10.

また、各PEのタスクキューには、スケジューラ512によって割り当てられたタスクが実行プライオリティ毎に登録されている。各PEのタスクキューに登録されている複数のタスクは、例えば登録されている順に各PEによって処理されることになる。   Further, tasks assigned by the scheduler 512 are registered in the task queue of each PE for each execution priority. A plurality of tasks registered in the task queue of each PE are processed by each PE in the order of registration, for example.

図7に示すように、PE(0)のタスクキューには、実行プライオリティ値「0」のタスクとしてタスクAが割り当てられている。また、PE(0)のタスクキューには、実行プライオリティ値「1」のタスクとしてタスク3及び7が登録されている。   As shown in FIG. 7, task A is assigned to the task queue of PE (0) as a task with an execution priority value “0”. In addition, tasks 3 and 7 are registered in the task queue of PE (0) as tasks having an execution priority value “1”.

同様に、PE(1)のタスクキューには、実行プライオリティ値「0」のタスクとしてタスクBが割り当てられている。また、PE(1)のタスクキューには、実行プライオリティ値「1」のタスクとしてタスク4及び8が登録されている。   Similarly, task B is assigned to the task queue of PE (1) as a task with an execution priority value “0”. In addition, tasks 4 and 8 are registered in the task queue of PE (1) as tasks having an execution priority value “1”.

同様に、PE(2)のタスクキューには、実行プライオリティ値「0」のタスクとしてタスクCが割り当てられている。また、PE(2)のタスクキューには、実行プライオリティ値「1」のタスクとしてタスク5及び9が登録されている。   Similarly, task C is assigned to the task queue of PE (2) as a task with an execution priority value “0”. In addition, tasks 5 and 9 are registered in the task queue of PE (2) as tasks having an execution priority value “1”.

同様に、PE(3)のタスクキューには、実行プライオリティ値「1」のタスクとしてタスク1、2、6及び10が登録されている。   Similarly, tasks 1, 2, 6, and 10 are registered in the task queue of PE (3) as tasks having an execution priority value “1”.

なお、タスクテーブル54に保持されている複数のタスクは、例えば実行プライオリティ値が高い順に各PEに割り当てられる。   A plurality of tasks held in the task table 54 are assigned to each PE in descending order of execution priority value, for example.

また、図7のタスクテーブル54には、タスク毎に上記したように各タスクが割り当てられた各PEを示すPE識別情報が示されている。ここでは、PE(0)を示すPE識別情報を「0」、PE(1)を示すPE識別情報を「1」、PE(2)を示すPE識別情報を「2」及びPE(3)を示すPE識別情報を「3」とする。   Also, the task table 54 of FIG. 7 shows PE identification information indicating each PE to which each task is assigned as described above for each task. Here, the PE identification information indicating PE (0) is “0”, the PE identification information indicating PE (1) is “1”, the PE identification information indicating PE (2) is “2”, and PE (3). The indicated PE identification information is “3”.

次に、図8のフローチャートを参照して、各PEがタスクを実行する際に当該PEが属すべきPEグループを設定する処理手順について説明する。ここでは、PE(0)がタスクAを実行する際の処理について説明する。なお、他のPEについても同様であり、他のタスクを実行する際についても同様である。また、必要に応じて図4、図6及び図7を用いて説明する。   Next, a processing procedure for setting a PE group to which the PE belongs when each PE executes a task will be described with reference to a flowchart of FIG. Here, processing when PE (0) executes task A will be described. The same applies to other PEs, and the same applies to the execution of other tasks. Moreover, it demonstrates using FIG.4, FIG.6 and FIG.7 as needed.

まず、スケジューラ512のグループ決定部514は、PE(0)がタスクAを実行する際、図7に示すタスクテーブル54を参照して、当該タスクAに対応付けて保持されている実行プライオリティ値(ここでは、「0」)を取得する(ステップS21)。   First, when the PE (0) executes the task A, the group determination unit 514 of the scheduler 512 refers to the task table 54 shown in FIG. Here, “0”) is acquired (step S21).

次に、グループ決定部514は、グループ・プライオリティテーブル53を参照して、取得された実行プライオリティ値からPEグループを決定する(ステップS22)。グループ決定部514は、取得された実行プライオリティ値に対応付けてグループ・プライオリティテーブル53に保持されているグループ識別情報によって示されるPEグループを、PE(0)が属すべきPEグループとして決定する。例えば、グループ決定部514は、図6に示すグループ・プライオリティテーブル53には実行プライオリティ値「0」に対応付けてグループ識別情報「0」が保持されているので、PE(0)のPEグループはPEグループ0であると決定する。   Next, the group determination unit 514 refers to the group / priority table 53 and determines a PE group from the acquired execution priority value (step S22). The group determining unit 514 determines the PE group indicated by the group identification information held in the group / priority table 53 in association with the acquired execution priority value as the PE group to which PE (0) should belong. For example, the group determination unit 514 stores the group identification information “0” in association with the execution priority value “0” in the group priority table 53 illustrated in FIG. It is determined that it is PE group 0.

グループ設定部513は、グループ決定部514によって決定されたPEグループのPEグループ番号(グループ識別情報)をPE(0)のPEグループレジスタに設定する(ステップS23)。この場合、PE(0)のPEグループレジスタには、「0」が設定される。   The group setting unit 513 sets the PE group number (group identification information) of the PE group determined by the group determination unit 514 in the PE group register of PE (0) (step S23). In this case, “0” is set in the PE group register of PE (0).

PE(0)のPEグループレジスタに「0」が設定された場合、PE(0)は、グループ識別情報「0」に対応付けてグループ・帯域テーブル52に保持されている帯域情報によって示されるメモリ帯域幅で、タスクAを実行する。図4に示すグループ・帯域テーブル52の例では、PE(0)は、メモリ帯域幅90%でタスクAを処理可能である。   When “0” is set in the PE group register of PE (0), PE (0) is associated with the group identification information “0” and is indicated by the band information held in the group / band table 52. Task A is executed with bandwidth. In the example of the group / bandwidth table 52 shown in FIG. 4, PE (0) can process task A with a memory bandwidth of 90%.

図9は、PE(0)〜PE(3)が、割り当てられた複数のタスクを実時間tで実行する処理の流れを示す。なお、PE(0)〜PE(3)には、上記した図7に示すように複数のタスクが割り当てられている。図9に示すように、PE(0)〜PE(2)は、実行プライオリティ値「1」のタスク(タスク3〜5、タスク7〜9)に比べて、実行プライオリティ値「0」のタスク(タスクA〜C)の実行時間を多くし、かつ、実行回数も多く動作している。また、PE(3)は、実行すべきタスク(タスク1、2、6及び10)が全て実行プライオリティ値「1」であるため、実行時間及び実行回数を均一的に各タスクを実行している。   FIG. 9 shows a flow of processing in which PE (0) to PE (3) execute a plurality of assigned tasks in real time t. A plurality of tasks are assigned to PE (0) to PE (3) as shown in FIG. As shown in FIG. 9, PE (0) to PE (2) have tasks (0-3) with an execution priority value “0” compared to tasks (tasks 3-5, 7-9) with an execution priority value “1”. The execution time of tasks A to C) is increased, and the number of executions is increased. In addition, since all the tasks to be executed (tasks 1, 2, 6, and 10) have the execution priority value “1”, PE (3) executes each task uniformly with the execution time and the number of executions. .

図10は、図9に示す実時間tがt0のときのPE(0)〜PE(3)の各々が属するPEグループ及び当該PE(0)〜PE(3)の各々がメモリ30にアクセスできるメモリ帯域幅の関係を示す。   10 shows that the PE group to which each of PE (0) to PE (3) belongs when the real time t shown in FIG. 9 is t0 and each of the PE (0) to PE (3) can access the memory 30. The memory bandwidth relationship is shown.

図9の例では、実時間t0のとき、PE(0)は、実行プライオリティ値「1」のタスク3を実行している。また、PE(1)は実行プライオリティ値「1」のタスク4を、PE(2)は実行プライオリティ値「1」のタスク5を、PE(3)は実行プライオリティ値「1」のタスク2を実行している。つまり、PE(0)〜PE(3)は、全て実行プライオリティ値「1」のタスクを実行している。   In the example of FIG. 9, at the actual time t0, PE (0) is executing the task 3 with the execution priority value “1”. PE (1) executes task 4 with an execution priority value “1”, PE (2) executes task 5 with an execution priority value “1”, and PE (3) executes task 2 with an execution priority value “1”. is doing. That is, PE (0) to PE (3) are all executing tasks with the execution priority value “1”.

この場合、図10に示すように、PE(0)〜PE(3)の各々が属すべきPEグループは、PEグループ1であると決定されている。よって、PE(0)〜PE(3)のそれぞれのPEグループレジスタには、グループ識別情報(G)「1」が設定されている。これにより、図10の例では、PE(0)〜PE(3)は、グループ識別情報「1」に対応付けてグループ・帯域テーブル52に保持されている帯域幅情報によって示されるメモリ帯域幅でメモリ30にアクセスすることが可能となる。つまり、図4に示すグループ・帯域テーブル52の例では、PE(0)〜PE(3)は、メモリ帯域幅10%でメモリ30にアクセスできる。
ここで、図9に示す実時間tがt0からt1に経過した場合を想定する。この場合、PE(2)で実行されるタスクは、タスク5からタスクCに切り替えられる。また、PE(3)で実行されるタスクは、タスク2からタスク6に切り替えられる。
In this case, as shown in FIG. 10, the PE group to which each of PE (0) to PE (3) should belong is PE group 1. Therefore, group identification information (G) “1” is set in each PE group register of PE (0) to PE (3). Thus, in the example of FIG. 10, PE (0) to PE (3) have the memory bandwidth indicated by the bandwidth information stored in the group / bandwidth table 52 in association with the group identification information “1”. The memory 30 can be accessed. That is, in the example of the group / band table 52 shown in FIG. 4, PE (0) to PE (3) can access the memory 30 with a memory bandwidth of 10%.
Here, it is assumed that the real time t shown in FIG. 9 has elapsed from t0 to t1. In this case, the task executed in PE (2) is switched from task 5 to task C. Also, the task executed in PE (3) is switched from task 2 to task 6.

図11のフローチャートを参照して、例えばPE(2)で実行されるタスクが、タスク5からタスクCに切り替えられる際のPE(2)が属すべきPEグループを設定する処理手順について説明する。なお、必要に応じて、図4、図6及び図7を用いて説明する。   With reference to the flowchart of FIG. 11, for example, a processing procedure for setting a PE group to which PE (2) should belong when a task executed in PE (2) is switched from task 5 to task C will be described. In addition, it demonstrates using FIG.4, FIG6 and FIG.7 as needed.

まず、PE(2)がタスク5を実行中に、タスクCによるタスク切り替え割込が発生したものとする(ステップS31)。   First, it is assumed that a task switching interrupt by task C occurs while PE (2) is executing task 5 (step S31).

タスク切り替え割り込みが発生すると、現在PE(2)が実行中のタスク5(前タスク)の停止(終了)処理が実行される(ステップS32)。   When a task switching interrupt occurs, stop (end) processing of task 5 (previous task) currently being executed by PE (2) is executed (step S32).

次に、グループ決定部514は、PE(2)がタスク5の次に実行されるタスクA(新タスク)に対応付けてタスクテーブル54に保持されている実行プライオリティ値を取得する(ステップS33)。図7に示すタスクテーブル54の場合、グループ決定部514は、実行プライオリティ値「0」を取得する。   Next, the group determining unit 514 obtains an execution priority value held in the task table 54 in association with task A (new task) executed next to task 5 by PE (2) (step S33). . In the case of the task table 54 illustrated in FIG. 7, the group determination unit 514 acquires the execution priority value “0”.

グループ決定部514は、グループ・プライオリティテーブル53を参照して、取得された実行プライオリティ値からPEグループを決定する(ステップS34)。例えば、グループ決定部514は、図6に示すグループ・プライオリティテーブル53には実行プライオリティ値「0」に対応付けてグループ識別情報「0」が保持されているので、PE(2)が属すべきPEグループはPEグループ0であると決定する。   The group determination unit 514 refers to the group priority table 53 and determines a PE group from the acquired execution priority value (step S34). For example, the group determination unit 514 holds the group identification information “0” in association with the execution priority value “0” in the group priority table 53 shown in FIG. The group is determined to be PE group 0.

グループ設定部513は、グループ決定部514によって決定されたPEグループのPEグループ番号(グループ識別情報)をPE(2)のPEグループレジスタに設定する(ステップS35)。この場合、PE(2)のPEグループレジスタには、「0」が設定される。   The group setting unit 513 sets the PE group number (group identification information) of the PE group determined by the group determination unit 514 in the PE group register of PE (2) (step S35). In this case, “0” is set in the PE group register of PE (2).

これにより、PE(2)がタスク5を実行している際には、グループ識別情報「1」が設定されていたPE(2)のPEグループレジスタに、タスクCを実行する際にはグループ識別情報「0」が設定される。このように、各PEが実行するタスクのプライオリティ値に応じて、PEグループレジスタのグループ識別情報を設定する(書き換える)ことができる。   As a result, when PE (2) is executing task 5, the group identification information is set in the PE group register of PE (2) for which group identification information “1” has been set. Information “0” is set. Thus, the group identification information of the PE group register can be set (rewritten) according to the priority value of the task executed by each PE.

PE(2)のPEグループレジスタに「0」が設定された場合、PE(2)はグループ識別情報「0」に対応付けてグループ・帯域テーブル52に保持されている帯域情報によって示されるメモリ帯域幅で、タスクCを実行する。図4に示すグループ・帯域テーブル52の例では、PE(2)は、メモリ帯域幅90%でタスクCを処理可能である。   When “0” is set in the PE group register of PE (2), PE (2) is associated with the group identification information “0” and the memory band indicated by the band information held in the group / band table 52 Task C is executed with the width. In the example of the group / bandwidth table 52 shown in FIG. 4, PE (2) can process task C with a memory bandwidth of 90%.

PE(2)のPEグループレジスタに、グループ識別情報「0」が設定されると、タスクC(新タスク)の実行を再開(起動)する処理が実行される(ステップS36)。ここでは、例えば切替後のタスク(タスクC)のコンテキストリストア処理が実行される。具体的には、例えば主記憶上に保存されたタスクの実行状態(プログラムのアドレス、汎用レジスタの値等)をPEに設定する。これにより、切り替え後のタスクをPEに実行させるための準備を整える。   When group identification information “0” is set in the PE group register of PE (2), a process for resuming (starting up) the execution of task C (new task) is executed (step S36). Here, for example, context restoration processing of the task after switching (task C) is executed. Specifically, for example, the task execution state (program address, general-purpose register value, etc.) stored in the main memory is set in the PE. This prepares for the PE to execute the task after switching.

なお、上記したステップS32からS36の処理がタスク切替処理となる。タスク切替処理が終了すると、割込処理が完了する(ステップS37)。割込処理が完了すると、PE(2)は、与えられた帯域幅(ここでは、メモリ帯域幅90%)で切替後のタスク(ここでは、タスクC)を実行する。   Note that the processing from step S32 to S36 described above is task switching processing. When the task switching process is completed, the interrupt process is completed (step S37). When the interrupt process is completed, PE (2) executes the switched task (here, task C) with the given bandwidth (here, memory bandwidth 90%).

また、図9に示す実時間tがt0からt1に経過した場合、PE(3)で実行されるタスクは、タスク2からタスク6に切り替えられる。この場合においても同様に、PE(3)のPEグループレジスタのグループ識別情報が設定される。なお、この場合では、タスク2及びタスク6の実行プライオリティ値は共に「1」であるため、結果的には、PE(3)のPEグループレジスタに設定されるグループ識別情報は変化しない。   When the real time t shown in FIG. 9 has elapsed from t0 to t1, the task executed in PE (3) is switched from task 2 to task 6. Also in this case, the group identification information of the PE group register of PE (3) is set similarly. In this case, since the execution priority values of task 2 and task 6 are both “1”, the group identification information set in the PE group register of PE (3) does not change as a result.

図12は、図9に示す実時間tがt1のときのPE(0)〜PE(3)の各々が属するPEグループ及び当該PE(0)〜PE(3)の各々がメモリ30にアクセスできるメモリ帯域幅の関係を示す。   12 shows that the PE group to which each of PE (0) to PE (3) when the real time t shown in FIG. 9 is t1 and each of the PE (0) to PE (3) can access the memory 30. The memory bandwidth relationship is shown.

図9の例では、実時間t1のとき、PE(0)は、実行プライオリティ値「1」のタスク3を実行している。また、PE(1)は実行プライオリティ値「1」のタスク4を、PE(2)は実行プライオリティ値「0」のタスクCを、PE(3)は実行プライオリティ値「1」のタスク6を実行している。   In the example of FIG. 9, at the actual time t1, PE (0) is executing the task 3 with the execution priority value “1”. PE (1) executes task 4 with an execution priority value “1”, PE (2) executes task C with an execution priority value “0”, and PE (3) executes task 6 with an execution priority value “1”. is doing.

この場合、図12に示すように、PE(0)、PE(1)及びPE(3)の各々が属すべきPEグループは、PEグループ1であると決定されている。また、PE(2)が属すべきPEグループは、PEグループ0であると決定されている。よって、PE(0)、PE(1)及びPE(3)のそれぞれのPEグループレジスタには、グループ識別情報「1」が設定されている。また、PE(2)のPEグループレジスタには、グループ識別情報「0」が設定されている。これにより、図12の例では、PE(0)、PE(1)及びPE(3)は、グループ識別情報「1」に対応付けてグループ・帯域テーブル52に保持されている帯域幅情報によって示されるメモリ帯域幅でメモリ30にアクセスすることが可能となる。また、PE(2)は、グループ識別情報「0」に対応付けてグループ・帯域テーブル52に保持されている帯域幅情報によって示されるメモリ帯域幅でメモリ30にアクセスすることが可能となる。つまり、図4に示すグループ・帯域テーブル52の例では、PE(0)、PE(1)及びPE(3)はメモリ帯域幅10%、PE(2)はメモリ帯域幅90%でメモリ30にアクセスできる。   In this case, as shown in FIG. 12, the PE group to which each of PE (0), PE (1), and PE (3) belongs is determined to be PE group 1. The PE group to which PE (2) should belong is determined to be PE group 0. Therefore, group identification information “1” is set in each PE group register of PE (0), PE (1), and PE (3). Further, group identification information “0” is set in the PE group register of PE (2). Thus, in the example of FIG. 12, PE (0), PE (1), and PE (3) are indicated by the bandwidth information held in the group / bandwidth table 52 in association with the group identification information “1”. It becomes possible to access the memory 30 with a memory bandwidth to be increased. The PE (2) can access the memory 30 with the memory bandwidth indicated by the bandwidth information stored in the group / bandwidth table 52 in association with the group identification information “0”. That is, in the example of the group / band table 52 shown in FIG. 4, PE (0), PE (1) and PE (3) have a memory bandwidth of 10% and PE (2) has a memory bandwidth of 90%. Accessible.

図13は、図9に示す実時間tがt2のときのPE(0)〜PE(3)の各々が属するPEグループ及び当該PE(0)〜PE(3)の各々がメモリ30にアクセスできるメモリ帯域幅の関係を示す。なお、各PEにおいて、タスク切り替え割込が発生した場合には、上記した図11のような処理で各PEのPEグループレジスタのグループ識別情報は設定される。   13 shows that the PE group to which each of PE (0) to PE (3) when the real time t shown in FIG. 9 is t2 and each of the PE (0) to PE (3) can access the memory 30. The memory bandwidth relationship is shown. When a task switching interrupt occurs in each PE, the group identification information of the PE group register of each PE is set by the processing as shown in FIG.

図9の例では、実時間t2のとき、PE(0)は、実行プライオリティ値「0」のタスクAを実行している。また、PE(1)は実行プライオリティ値「0」のタスクBを、PE(2)は実行プライオリティ値「0」のタスクCを、PE(3)は実行プライオリティ値「1」のタスク10を実行している。   In the example of FIG. 9, at the actual time t2, PE (0) is executing the task A with the execution priority value “0”. PE (1) executes task B with an execution priority value “0”, PE (2) executes task C with an execution priority value “0”, and PE (3) executes task 10 with an execution priority value “1”. is doing.

この場合、図13に示すように、PE(0)〜PE(2)の各々が属すべきPEグループは、PEグループ0であると決定されている。また、PE(3)が属すべきPEグループは、PEグループ1であると決定されている。よって、PE(0)〜PE(2)のそれぞれのPEグループレジスタには、グループ識別情報「0」が設定されている。また、PE(3)のPEグループレジスタには、グループ識別情報「1」が設定されている。これにより、図13の例では、PE(0)〜PE(2)はメモリ帯域幅90%、PE(3)はメモリ帯域幅10%でメモリ30にアクセスできる。   In this case, as shown in FIG. 13, the PE group to which each of PE (0) to PE (2) should belong is determined to be PE group 0. Further, the PE group to which PE (3) should belong is determined to be PE group 1. Therefore, group identification information “0” is set in each PE group register of PE (0) to PE (2). Also, group identification information “1” is set in the PE group register of PE (3). Accordingly, in the example of FIG. 13, PE (0) to PE (2) can access the memory 30 with a memory bandwidth of 90% and PE (3) with a memory bandwidth of 10%.

図14は、図9に示す実時間tがt3のときのPE(0)〜PE(3)の各々が属するPEグループ及び当該PE(0)〜PE(3)の各々がメモリ30にアクセスできるメモリ帯域幅の関係を示す。   FIG. 14 shows that the PE group to which each of PE (0) to PE (3) when the real time t shown in FIG. 9 is t3 and each of the PE (0) to PE (3) can access the memory 30. The memory bandwidth relationship is shown.

図9の例では、実時間t3のとき、PE(0)は、実行プライオリティ値「0」のタスクAを実行している。また、PE(1)は実行プライオリティ値「0」のタスクBを、PE(2)は実行プライオリティ値「1」のタスク9を、PE(3)は実行プライオリティ値「1」のタスク10を実行している。   In the example of FIG. 9, at the actual time t3, PE (0) is executing the task A with the execution priority value “0”. PE (1) executes task B with an execution priority value “0”, PE (2) executes task 9 with an execution priority value “1”, and PE (3) executes task 10 with an execution priority value “1”. is doing.

この場合、図14に示すように、PE(0)及びPE(1)の各々が属すべきPEグループは、PEグループ0であると決定されている。また、PE(2)及びPE(3)が属すべきPEグループは、PEグループ1であると決定されている。よって、PE(0)PE(1)のそれぞれのPEグループレジスタには、グループ識別情報「0」が設定されている。また、PE(2)及びPE(3)のPEグループレジスタには、グループ識別情報「1」が設定されている。これにより、図14の例では、PE(0)及びPE(1)はメモリ帯域幅90%、PE(2)及びPE(3)はメモリ帯域幅10%でメモリ30にアクセスできる。   In this case, as shown in FIG. 14, the PE group to which each of PE (0) and PE (1) should belong is determined to be PE group 0. The PE group to which PE (2) and PE (3) should belong is determined to be PE group 1. Therefore, group identification information “0” is set in each PE group register of PE (0) PE (1). Also, group identification information “1” is set in the PE group registers of PE (2) and PE (3). Thus, in the example of FIG. 14, PE (0) and PE (1) can access the memory 30 with a memory bandwidth of 90%, and PE (2) and PE (3) with a memory bandwidth of 10%.

上記したように本実施形態においては、複数のPE10をグループ化することで、タスクを実行する際に、当該タスクの実行プライオリティ値に応じて、当該タスクを実行するPEのPEグループレジスタにグループ識別情報を設定するという簡単な手順で、各PEのメモリ帯域幅を設定することが可能となる。また、グループ毎にメモリ帯域幅をメモリコントローラに設定しているため、高い実行プライオリティのタスクを実行するPEは、低い実行プライオリティの男タスクを実行するPEとメモリ30へのアクセスが競合することなく、タスクを実行することができる。   As described above, in the present embodiment, when a plurality of PEs 10 are grouped, when a task is executed, group identification is performed in the PE group register of the PE that executes the task according to the execution priority value of the task. The memory bandwidth of each PE can be set with a simple procedure of setting information. In addition, since the memory bandwidth is set in the memory controller for each group, the PE executing a task with a high execution priority does not compete with the PE executing a male task with a low execution priority for access to the memory 30. Can perform tasks.

なお、上記した本実施形態においては、帯域制御部21はメモリコントローラ20に含まれるものとして説明したが、独立したハードウェアモジュールとして設けられる構成であっても構わない。   In the above-described embodiment, the band control unit 21 has been described as being included in the memory controller 20, but may be configured as an independent hardware module.

また、上記した本実施形態においては、帯域制御部21はメモリ帯域幅を制御するものとして説明したが、例えば帯域制御部21がバスコントローラに含まれており、当該帯域制御部21が各PE及びメモリ30間におけるバス帯域幅を制御する構成でも構わない。   In the above-described embodiment, the bandwidth control unit 21 is described as controlling the memory bandwidth. However, for example, the bandwidth control unit 21 is included in the bus controller, and the bandwidth control unit 21 includes each PE and each bandwidth. The bus bandwidth between the memories 30 may be controlled.

[変形例]
次に、本実施形態の変形例について説明する。本変形例では、複数のタスクの各々には、予め動作状態が設定されている。各タスクは、上記した本実施形態で説明した実行プライオリティ値に加えて、当該タスクの動作状態として、メモリ30へのアクセスの頻度を示すアクセスプライオリティ(Access Priority)値を有する。このアクセスプライオリティ値は、小さいほどアクセスプライオリティ値(アクセス頻度)が高いと表現する。例えば、アクセスプライオリティ値が0の場合は、アクセスプライオリティ値は最高である。
[Modification]
Next, a modification of this embodiment will be described. In this modification, an operation state is set in advance for each of the plurality of tasks. In addition to the execution priority value described in the present embodiment, each task has an access priority (Access Priority) value indicating the frequency of access to the memory 30 as the operation state of the task. The smaller the access priority value, the higher the access priority value (access frequency). For example, when the access priority value is 0, the access priority value is the highest.

スケジューラ512のグループ決定部514は、各PEが実行するタスクの実行プライオリティ値及びアクセスプライオリティ値から当該PEが属すべきPEグループを決定する。   The group determination unit 514 of the scheduler 512 determines the PE group to which the PE belongs to from the execution priority value and the access priority value of the task executed by each PE.

なお、本変形例においては、本実施形態と異なり、便宜的にPEグループ数を3として設定されているものとして説明する。また、本変形例においては、実行プライオリティ値及びアクセスプライオリティ値から直接PEグループを決定するため、本実施形態と異なり、グループ・プライオリティテーブル53は存在しない。   In this modification, unlike the present embodiment, it is assumed that the number of PE groups is set to 3 for convenience. Further, in this modification, since the PE group is directly determined from the execution priority value and the access priority value, the group priority table 53 does not exist unlike the present embodiment.

図15は、本変形例のグループ・帯域テーブル52のデータ構造の一例を示す。図15に示すように、グループ・帯域テーブル52には、PEグループを示すグループ識別情報及びメモリ帯域幅情報が対応付けて保持されている。図15の例では、PEグループ0を示すグループ識別情報「0」に対応付けて保持されているメモリ帯域幅情報によって示されるメモリ帯域幅B0は、「60%」である。また、PEグループ1を示すグループ識別情報「1」に対応付けて保持されているメモリ帯域幅情報によって示されるメモリ帯域幅B1は、「30%」である。また、PEグループ2を示すグループ識別情報「2」に対応付けて保持されているメモリ帯域幅情報によって示されるメモリ帯域幅B2は、「10%」である。   FIG. 15 shows an example of the data structure of the group / band table 52 of this modification. As shown in FIG. 15, the group / bandwidth table 52 holds group identification information and memory bandwidth information indicating PE groups in association with each other. In the example of FIG. 15, the memory bandwidth B0 indicated by the memory bandwidth information held in association with the group identification information “0” indicating the PE group 0 is “60%”. The memory bandwidth B1 indicated by the memory bandwidth information held in association with the group identification information “1” indicating the PE group 1 is “30%”. The memory bandwidth B2 indicated by the memory bandwidth information held in association with the group identification information “2” indicating the PE group 2 is “10%”.

図16は、本変形例のタスクテーブル54のデータ構造の一例を示す。図16に示すように、タスクテーブル54には、タスク毎に、当該タスクの実行プライオリティ値が及びアクセスプライオリティ値が保持されている。また、タスクテーブル54には、タスク毎に、スケジューラ512によって当該タスクが割り当てられたPEを示すPE識別情報が保持されている。なお、タスクテーブル54に保持されている各タスク及び当該タスクに対応付けられている実行プライオリティ値は、図7に示すタスクテーブル54と同様であるので、その詳しい説明は省略する。また、各タスクは、図7と同様に、各PEに割り当てられたものとする。   FIG. 16 shows an example of the data structure of the task table 54 of this modification. As shown in FIG. 16, the task table 54 holds an execution priority value and an access priority value for each task. The task table 54 holds PE identification information indicating the PE to which the task is assigned by the scheduler 512 for each task. Since each task held in the task table 54 and the execution priority value associated with the task are the same as those in the task table 54 shown in FIG. 7, detailed description thereof will be omitted. Each task is assigned to each PE as in FIG.

図16の例では、タスクA、B、1〜4のアクセスプライオリティ値は0であり、タスクC、5〜10のアクセスプライオリティ値は1である。なお、アクセスプライオリティ値は、1よりも0の方がメモリ30へのアクセス頻度が高いものとする。   In the example of FIG. 16, the access priority values of tasks A, B, and 1 to 4 are 0, and the access priority values of tasks C and 5 to 10 are 1. It is assumed that the access priority value of 0 is higher than 1 and the access frequency to the memory 30 is higher.

また、タスクテーブル54には、タスクの実行プライオリティ値及びアクセスプライオリティ値からPEグループが決定された場合、当該タスク毎に、当該決定されたPEグループを示すグループ識別情報が保持される。なお、実行プライオリティ値及びアクセスプライオリティ値からPEグループを決定する処理の詳細については、後述する。   Further, when the PE group is determined from the task execution priority value and the access priority value, the task table 54 stores group identification information indicating the determined PE group for each task. Details of processing for determining the PE group from the execution priority value and the access priority value will be described later.

次に、図17を参照して、各PEがタスクを実行する際に当該PEが属すべきPEグループを設定する処理手順について説明する。   Next, a processing procedure for setting a PE group to which the PE belongs when each PE executes a task will be described with reference to FIG.

まず、スケジューラ512のグループ決定部514は、PEがタスクを実行する際、タスクテーブル54を参照して、当該タスクに対応付けて保持されている実行プライオリティ値及びアクセスプライオリティ値を取得する(ステップS41)。   First, when the PE executes a task, the group determination unit 514 of the scheduler 512 refers to the task table 54 and acquires the execution priority value and the access priority value held in association with the task (step S41). ).

次に、グループ決定部514は、取得された実行プライオリティ値及びアクセスプライオリティ値に基づいて、タスクを実行するPEが属すべきPEグループを決定(算出)する(ステップS42)。   Next, the group determination unit 514 determines (calculates) a PE group to which the PE executing the task should belong based on the acquired execution priority value and access priority value (step S42).

ここで、実行プライオリティ値及びアクセスプライオリティ値の組合せからPEグループを決定する処理の具体例について説明する。なお、上記したように、実行プライオリティ値は0が最も優先度が高いものとし、アクセスプライオリティ値は0が最もメモリ30にアクセスする頻度が高いものとする。また、実行プライオリティ値が大きいほど、実行プライオリティ値が低いとし、アクセスプライオリティ値についても同様とする。   Here, a specific example of processing for determining the PE group from the combination of the execution priority value and the access priority value will be described. As described above, it is assumed that the execution priority value is 0 when the priority is highest, and the access priority value is 0 when the frequency of accessing the memory 30 is highest. Further, the larger the execution priority value, the lower the execution priority value, and the same applies to the access priority value.

以下、タスクに対応付けてタスクテーブル54に保持されている実行プライオリティ値をP、アクセスプライオリティ値をA、実行プライオリティ値の最大値(優先度が最低)をPmax、アクセスプライオリティ値の最大値(アクセス頻度が最低)をAmaxとする。また、決定されるPEグループを示すグループ番号(グループ識別情報)をGまたはG(P、A)と表記する。また、PEグループにおいては、PEグループ番号0によって示されるPEグループが最も広いメモリ帯域幅を有し、PEグループ番号の最大値Gmaxによって示されるPEグループが最も狭いメモリ帯域幅を有するものとする。   Hereinafter, the execution priority value held in the task table 54 in association with the task is P, the access priority value is A, the maximum execution priority value (lowest priority) is Pmax, and the maximum access priority value (access) Let Amax be the lowest frequency. A group number (group identification information) indicating the PE group to be determined is denoted as G or G (P, A). In the PE group, the PE group indicated by the PE group number 0 has the widest memory bandwidth, and the PE group indicated by the maximum PE group number Gmax has the narrowest memory bandwidth.

まず、第1の具体例(加算方式)について説明する。第1の具体例では、PとAに予め定めた係数を乗じた上で加算することによってGを決定することを特徴とする。一般式の例としては、G=αP+βA(α、βは予め定めた正の実数)となる。この式を用いた最も簡単な単純加算方式は、G=P+Aである。   First, a first specific example (addition method) will be described. The first specific example is characterized in that G is determined by multiplying P and A after multiplying them by a predetermined coefficient. As an example of the general formula, G = αP + βA (α and β are positive real numbers determined in advance). The simplest simple addition method using this equation is G = P + A.

具体的には、例えばGmax=2、Pmax=Amax=1(グループ数は3、プライオリティ値の段階数はそれぞれ2)である場合、例えば処理優先度が高く、メモリ30へのアクセス頻度が高いタスクにはP=0、A=0を設定することで、当該タスクを実行するPEが属すべきPEグループのPEグループ番号はG(0、0)=0となり、当該PEは、最も広い帯域幅を有するPEグループ0に割り当てられる。   Specifically, for example, when Gmax = 2 and Pmax = Amax = 1 (the number of groups is 3 and the number of priority value stages is 2), for example, a task with a high processing priority and a high access frequency to the memory 30 By setting P = 0 and A = 0, the PE group number of the PE group to which the PE executing the task should belong is G (0, 0) = 0, and the PE has the widest bandwidth. Assigned to PE group 0.

同様にG(0、1)=1、G(1、0)=1、G(1、1)=2となる。このように、G=0のPEグループに属するPEは、他のPまたはAが低いタスクを実行するPEに帯域を奪われることなく、タスクを実行できる。また、G=2のPEグループに属するPEは、決してG=1のPEグループに属するPEの帯域を妨害することなくタスクを実行する。   Similarly, G (0, 1) = 1, G (1, 0) = 1, and G (1, 1) = 2. In this manner, PEs belonging to the PE group with G = 0 can execute the task without depriving the bandwidth of other PEs that execute tasks with low P or A. The PE belonging to the PE group with G = 2 executes the task without disturbing the bandwidth of the PE belonging to the PE group with G = 1.

また、上記したような単純加算方式は、例えばGmax=4、Pmax=Amax=2(グループ数5、プライオリティ値の段階数はそれぞれ3)のような多階層のグループ分けにも適用できる。   The simple addition method as described above can also be applied to multi-level grouping such as Gmax = 4, Pmax = Amax = 2 (5 groups, each having 3 priority levels).

また、実行プライオリティ値及びアクセスプライオリティ値の段階数が異なる場合、またはグループ数に対して実行プライオリティ値及びアクセスプライオリティ値の段階数が大きい場合等には、例えばG=(P/Pmax+A/Amax)×Gmax/2のような正規化加算方式を用いることで対応することができる。   Further, when the number of stages of the execution priority value and the access priority value is different, or when the number of stages of the execution priority value and the access priority value is larger than the number of groups, for example, G = (P / Pmax + A / Amax) × This can be dealt with by using a normalized addition method such as Gmax / 2.

また、特にシステム要件等によって実行プライオリティ値及びアクセスプライオリティ値に更に重みをつけたい場合には、正規化加算方式のPまたはAに更に重み係数を乗ずる等、適宜対応することができる。   Further, in particular, when it is desired to further weight the execution priority value and the access priority value due to system requirements or the like, it is possible to appropriately cope with such as multiplying the normalized addition method P or A by a weighting factor.

なお、上記したような計算式によって例えばG(P、A)が0未満またはGmaxを超えるような場合には、それぞれ0またはGmaxとする。また、計算式によって例えばG(P、A)が小数部分を含む場合は、当該小数部分を切り捨てるか切り上げるかを適宜決定するものとする。   For example, when G (P, A) is less than 0 or exceeds Gmax according to the above-described calculation formula, it is set to 0 or Gmax, respectively. For example, when G (P, A) includes a decimal part according to a calculation formula, it is determined as appropriate whether the decimal part is rounded down or rounded up.

上記したような加算方式によると、最高の実行プライオリティ値(実行プライオリティ値が0)及びアクセスプライオリティ値が最高(アクセスプライオリティ値が0)のタスクは、当該タスクより低い実行プライオリティ値のタスクを実行するPEには決してメモリ帯域を妨害されずに実行される。また、実行プライオリティ値及びアクセスプライオリティ値のどちらかが最高でないタスクについてはバランスよくメモリ帯域が配分できるという利点がある。   According to the addition method as described above, a task having the highest execution priority value (execution priority value is 0) and the highest access priority value (access priority value is 0) executes a task having an execution priority value lower than that task. The PE is executed without disturbing the memory bandwidth. In addition, there is an advantage that the memory bandwidth can be distributed in a well-balanced manner for a task whose execution priority value or access priority value is not the highest.

次に、第2の具体例(実行プライオリティ分離方式)について説明する。第2の具体例では、Pがより高いタスクを実行するPEほど、Pがより低いタスクを実行するPEに対して必ずメモリ帯域のより広い、もしくは同じPEグループに割り当てられるように、G(P、A)が決定されることを特徴とする。   Next, a second specific example (execution priority separation method) will be described. In the second specific example, G (P) is such that a PE that executes a task with a higher P always has a wider memory bandwidth or is assigned to the same PE group for a PE that executes a task with a lower P. , A) is determined.

具体的には、例えばGmax=3、Pmax=Amax=1(グループ数は4、プライオリティ値の段階数はそれぞれ2)である場合には、G(0、0)=0、G(0、1)=1、G(1、0)=2、G(1、1)=3のように配置する。このような線形な配置を行う場合は計算式でも表現可能であるが、実行プライオリティ分離方式は必ずしも線形式に配置する必要はない。例えばGmax=2、Pmax=Amax=1の場合に、G(0、0)=0、G(0、1)=1、G(1、0)=G(1、1)=2等の配置であっても構わない。   Specifically, for example, when Gmax = 3 and Pmax = Amax = 1 (the number of groups is 4 and the number of priority value stages is 2), G (0, 0) = 0, G (0, 1 ) = 1, G (1, 0) = 2, G (1, 1) = 3. Such a linear arrangement can be expressed by a calculation formula, but the execution priority separation method does not necessarily have to be arranged in a linear form. For example, when Gmax = 2 and Pmax = Amax = 1, an arrangement such as G (0, 0) = 0, G (0, 1) = 1, G (1, 0) = G (1, 1) = 2, etc. It does not matter.

このような実行プライオリティ分離方式によれば、Pを持つタスクの実行が、P+1等のより低い実行プライオリティ値のタスクの実行によってメモリ帯域を妨害されることがないことを保証できる。更に、同じPを持つタスク群を異なるAによって細分化できるため、高いPかつ低いAのタスクが実行される際に、無駄なメモリ帯域が独占されることを軽減できる。   According to such an execution priority separation method, it can be ensured that the execution of a task having P is not disturbed by the execution of a task having a lower execution priority value such as P + 1. Furthermore, since a task group having the same P can be subdivided by different A, it is possible to reduce the use of a useless memory bandwidth when a task with a high P and a low A is executed.

なお、PmaxがGmaxより大きい場合等に、連続するPmaxの値をひとまとめとする方法も実行プライオリティ分離方式の拡張として実装可能である。例えばGmax=2、Pmax=3、Amax=1の場合に、G(0、0)=0、G(0、1)=1、G(1、0)=2、G(1、1)=2、G(2、0)=2、G(2、1)=2と配置すること等が考えられる。   It should be noted that when Pmax is larger than Gmax, a method of grouping consecutive Pmax values together can be implemented as an extension of the execution priority separation method. For example, when Gmax = 2, Pmax = 3, and Amax = 1, G (0, 0) = 0, G (0, 1) = 1, G (1, 0) = 2, G (1, 1) = 2, G (2, 0) = 2, G (2, 1) = 2, etc. can be considered.

なお、上記したいずれの方式においても、同一のPEグループに異なる実行プライオリティ値またはアクセスプライオリティ値のタスクが存在する場合には、実行プライオリティ値またはアクセスプライオリティ値が高い方に長いPE実行時間を与えるという方法を同時に適用するとしても良い。   In any of the above-described methods, when tasks with different execution priority values or access priority values exist in the same PE group, a longer PE execution time is given to the higher execution priority value or access priority value. The methods may be applied simultaneously.

グループ決定部514は、上記したような方式に基づいて、タスクを実行するPEが属すべきPEグループを決定する。なお、決定されたPEグループは、タスク毎に対応付けてタスクテーブル54に登録される。   The group determination unit 514 determines the PE group to which the PE executing the task should belong based on the above-described method. The determined PE group is registered in the task table 54 in association with each task.

次に、グループ設定部513は、グループ決定部514によって決定されたPEグループのPEグループ番号(グループ識別情報)をPEグループレジスタに設定する(ステップS43)。   Next, the group setting unit 513 sets the PE group number (group identification information) of the PE group determined by the group determination unit 514 in the PE group register (step S43).

図18は、PE(0)〜PE(3)が割り当てられた複数のタスクを実時間tで実行する処理の流れを示す。なお、PE(0)〜PE(3)には、上記した図16に示すように複数のタスクが割り当てられている。なお、各タスクの実行時間については、例えば実行プライオリティ値に応じて定められており、上記した図9の説明と同様であるのでその説明は省略する。   FIG. 18 shows a flow of processing for executing a plurality of tasks to which PE (0) to PE (3) are assigned in real time t. A plurality of tasks are assigned to PE (0) to PE (3) as shown in FIG. Note that the execution time of each task is determined in accordance with, for example, the execution priority value and is the same as that described above with reference to FIG.

図19は、図18に示す実時間tがt0のときのPE(0)からPE(3)の各々が属するPEグループ及び当該PE(0)〜PE(3)の各々がメモリ30にアクセスできるメモリ帯域幅の関係を示す。   In FIG. 19, the PE group to which each of PE (0) to PE (3) when the real time t shown in FIG. 18 is t0 and each of the PE (0) to PE (3) can access the memory 30. The memory bandwidth relationship is shown.

図18の例では、実時間t0のとき、PE(0)は、タスク3を実行しているので、PEグループ1に属している。なお、このPEグループは、上記した図16に示すタスクテーブル54のタスク毎の実行プライオリティ値及びアクセスプライオリティ値から単純加算方式によって決定されたものとする。また、PE(1)は、タスク4を実行しているので、PEグループ1に属している。また、PE(2)は、タスクCを実行しているので、PEグループ1に属している。また、PE(3)は、タスク6を実行しているので、PEグループ2に属している。また、各PEのPEグループレジスタには、各PEが属するPEグループのグループ番号が設定されている。   In the example of FIG. 18, PE (0) belongs to PE group 1 because it executes task 3 at real time t0. Note that this PE group is determined by the simple addition method from the execution priority value and the access priority value for each task in the task table 54 shown in FIG. Also, PE (1) is executing task 4 and therefore belongs to PE group 1. PE (2) belongs to PE group 1 because task C is executed. PE (3) belongs to PE group 2 because task 6 is being executed. Further, the group number of the PE group to which each PE belongs is set in the PE group register of each PE.

この場合、図19に示すように、PE(0)〜PE(2)は、グループ番号(識別情報)1に対応付けてグループ・帯域テーブル52に保持されている帯域幅情報によって示されるメモリ帯域幅でメモリ30にアクセスすることが可能となる。また、PE(3)は、グループ番号2に対応付けてグループ・帯域テーブル52に保持されている帯域幅情報によって示されるメモリ帯域幅でメモリ30にアクセスすることが可能となる。つまり、図15に示すグループ・帯域テーブル52の例では、PE(0)〜PE(2)は、メモリ帯域幅30%でメモリ30にアクセスできる。また、PE(3)は、メモリ帯域10%でメモリ30にアクセスできる。   In this case, as shown in FIG. 19, PE (0) to PE (2) are memory bandwidths indicated by the bandwidth information held in the group / band table 52 in association with the group number (identification information) 1. The memory 30 can be accessed by the width. Also, PE (3) can access the memory 30 with the memory bandwidth indicated by the bandwidth information held in the group / bandwidth table 52 in association with the group number 2. That is, in the example of the group / band table 52 shown in FIG. 15, PE (0) to PE (2) can access the memory 30 with a memory bandwidth of 30%. PE (3) can access the memory 30 with a memory bandwidth of 10%.

図20は、図18に示す実時間tがt1のときのPE(0)〜PE(3)の各々が属するPEグループ及び当該PE(0)〜PE(3)の各々がメモリ30にアクセスできるメモリ帯域幅の関係を示す。なお、各PEが実行するタスクが切り替えられる場合は、上述した本実施形態と同様にして、新タスクを実行する各PEが属するPEグループのPEグループ番号を、当該PEのPEグループレジスタに設定する処理が実行される。   In FIG. 20, the PE group to which each of PE (0) to PE (3) when the real time t shown in FIG. 18 is t1 and each of the PE (0) to PE (3) can access the memory 30. The memory bandwidth relationship is shown. When the task executed by each PE is switched, the PE group number of the PE group to which each PE executing the new task belongs is set in the PE group register of the PE, as in the above-described embodiment. Processing is executed.

図18の例では、実時間t1のとき、PE(0)は、タスクAを実行しているので、PEグループ0に属している。また、PE(1)は、タスクBを実行しているので、PEグループ0に属している。また、PE(2)は、タスクCを実行しているので、PEグループ1に属している。また、PE(3)は、タスク6を実行しているので、PEグループ2に属している。また、各PEのPEグループレジスタには、各PEが属するPEグループのグループ番号が設定されている。   In the example of FIG. 18, PE (0) belongs to PE group 0 because it executes task A at real time t1. PE (1) is executing task B and therefore belongs to PE group 0. PE (2) belongs to PE group 1 because task C is executed. PE (3) belongs to PE group 2 because task 6 is being executed. Further, the group number of the PE group to which each PE belongs is set in the PE group register of each PE.

この場合、図20に示すように、PE(0)及びPE(1)は、グループ番号0に対応付けてグループ・帯域テーブル52に保持されている帯域幅情報によって示されるメモリ帯域幅でメモリ30にアクセスすることが可能となる。また、PE(2)は、グループ番号1に対応付けてグループ・帯域テーブル52に保持されている帯域幅情報によって示されるメモリ帯域幅でメモリ30にアクセスすることが可能となる。また、PE(3)は、グループ番号2に対応付けてグループ・帯域テーブル52に保持されている帯域幅情報によって示されるメモリ帯域幅でメモリ30にアクセスすることが可能となる。つまり、図15に示すグループ・帯域テーブル52の例では、PE(0)及びPE(1)は、メモリ帯域幅60%でメモリ30にアクセスできる。また、PE(2)は、メモリ帯域幅30%でメモリ30にアクセスできる。また、PE(3)は、メモリ帯域10%でメモリ30にアクセスできる。   In this case, as shown in FIG. 20, PE (0) and PE (1) are stored in the memory 30 with the memory bandwidth indicated by the bandwidth information held in the group / bandwidth table 52 in association with the group number 0. Can be accessed. The PE (2) can access the memory 30 with the memory bandwidth indicated by the bandwidth information stored in the group / bandwidth table 52 in association with the group number 1. Also, PE (3) can access the memory 30 with the memory bandwidth indicated by the bandwidth information held in the group / bandwidth table 52 in association with the group number 2. That is, in the example of the group / band table 52 shown in FIG. 15, PE (0) and PE (1) can access the memory 30 with a memory bandwidth of 60%. PE (2) can access the memory 30 with a memory bandwidth of 30%. PE (3) can access the memory 30 with a memory bandwidth of 10%.

上記したように本変形例においては、複数のPE10をグループ化することで、タスクを実行する際に、当該タスクの実行プライオリティ値及びアクセスプライオリティ値に応じて、当該タスクを実行するPEのPEグループレジスタにグループ識別情報(番号)を設定するという簡単な手順で、各PEのメモリ帯域幅を設定することが可能となる。   As described above, in this modification, when a task is executed by grouping a plurality of PEs 10, the PE group of the PE that executes the task according to the execution priority value and the access priority value of the task The memory bandwidth of each PE can be set with a simple procedure of setting group identification information (number) in the register.

また、前述した本実施形態では、実行プライオリティ値のみに基づいてPEグループを決定するため、実行プライオリティ値が高いがメモリ30にアクセスする頻度があまり高くないタスクを実行するPEと、実行プライオリティ値が高くメモリ30にアクセスする頻度が高いタスクを実行するPEとが同一のPEグループに属することがあるため、かえって実行時間が長くなる場合が考えられる。しかしながら、本変形例では、実行プライオリティ値及びアクセスプライオリティ値に基づいてPEグループを決定するため、実行プライオリティ値及びアクセスプライオリティ値が共に高いタスクを実行するPEは、実行プライオリティ値は他界がアクセスプライオリティ値は低いタスクを実行するPEと異なるPEグループに属する。これにより、上記したような本実施形態において発生し得る非効率な状態を回避することができる。   In the above-described embodiment, since the PE group is determined based on only the execution priority value, the PE that executes a task that has a high execution priority value but does not access the memory 30 very frequently, and the execution priority value is Since a PE that executes a task that is high and frequently accesses the memory 30 may belong to the same PE group, the execution time may be longer. However, in this modification, since the PE group is determined based on the execution priority value and the access priority value, the PE that executes a task having both a high execution priority value and an access priority value has an execution priority value that is the access priority value in the other world. Belongs to a PE group different from the PE that executes the lower task. Thereby, the inefficient state which may generate | occur | produce in this embodiment as mentioned above can be avoided.

なお、前述した本実施形態では、各タスクの実行プライオリティ値のみを用いて当該タスクを実行するPEが属すべきPEグループを決定する構成を説明したが、同様に、本変形例で説明した各タスクのアクセスプライオリティ値のみを用いて当該タスクを実行するPEが属すべきPEグループを決定する構成としても構わない。この場合では、前述したグループ・プライオリティテーブル53にアクセスプライオリティ値及びグループ識別情報が保持される構成とすると良い。   In the above-described embodiment, the configuration for determining the PE group to which the PE executing the task belongs using only the execution priority value of each task has been described. Similarly, each task described in the present modification is described. The PE group to which the PE executing the task should belong may be determined using only the access priority value. In this case, the access priority value and the group identification information may be held in the group priority table 53 described above.

また、本願発明は、上記実施形態または変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態または変形例に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、実施形態または変形例に亘る構成要素を適宜組合せてもよい。   The present invention is not limited to the above-described embodiment or modification as it is, and can be embodied by modifying the constituent elements without departing from the spirit of the invention in the implementation stage. In addition, various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the embodiment or the modification. For example, some components may be deleted from all the components shown in the embodiment. Furthermore, you may combine suitably the component covering embodiment or a modification.

本発明の実施形態に係るマルチプロセッサシステムのハードウェア構成を示すブロック図。1 is a block diagram showing a hardware configuration of a multiprocessor system according to an embodiment of the present invention. 図1に示すOS51の主として機能構成を示すブロック図。The block diagram which mainly shows the function structure of OS51 shown in FIG. OS51の帯域設定部511がグループ・帯域テーブル52を作成する処理手順を示すフローチャート。5 is a flowchart showing a processing procedure for creating a group / bandwidth table 52 by the bandwidth setting unit 511 of the OS 51. 帯域設定部511によって作成されたグループ・帯域テーブル52のデータ構造の一例を示す図。The figure which shows an example of the data structure of the group and the band table 52 produced by the band setting part 511. 帯域設定部511がメモリコントローラ20にPEグループ毎のメモリ帯域幅を設定する処理手順を示すフローチャート。5 is a flowchart showing a processing procedure in which a bandwidth setting unit 511 sets a memory bandwidth for each PE group in the memory controller 20. グループ・プライオリティテーブル53のデータ構造の一例を示す図。6 is a diagram showing an example of a data structure of a group priority table 53. FIG. タスクテーブル54及びタスクキューのデータ構造の一例を示す図。The figure which shows an example of the data structure of the task table 54 and a task queue. 各PEがタスクを実行する際に当該PEが属すべきPEグループを設定する処理手順を示すフローチャート。The flowchart which shows the process sequence which sets PE group which the said PE should belong when each PE performs a task. PE(0)〜PE(3)が割り当てられた複数のタスクを実時間tで実行する処理の流れを示す図。The figure which shows the flow of a process which performs the some task to which PE (0) -PE (3) was allocated in real time t. 図9に示す実時間tがt0のときのPE(0)〜PE(3)の各々が属するPEグループ及び当該PE(0)〜PE(3)の各々がメモリ30にアクセスできるメモリ帯域幅の関係を示す図。The PE group to which each of PE (0) to PE (3) when the real time t shown in FIG. 9 is t0 and the memory bandwidth to which each of the PE (0) to PE (3) can access the memory 30 are shown. The figure which shows a relationship. PE(2)で実行されるタスクが、タスク5からタスクCに切り替えられる際のPE(2)が属すべきPEグループを設定する処理手順を示すフローチャート。The flowchart which shows the process sequence which sets PE group to which PE (2) should belong when the task performed by PE (2) is switched from the task 5 to the task C. 図9に示す実時間tがt1のときのPE(0)〜PE(3)の各々が属するPEグループ及び当該PE(0)〜PE(3)の各々がメモリ30にアクセスできるメモリ帯域幅の関係を示す図。The PE group to which each of PE (0) to PE (3) when the real time t shown in FIG. 9 is t1 and the memory bandwidth to which each of the PE (0) to PE (3) can access the memory 30 are shown. The figure which shows a relationship. 図9に示す実時間tがt2のときのPE(0)〜PE(3)の各々が属するPEグループ及び当該PE(0)〜PE(3)の各々がメモリ30にアクセスできるメモリ帯域幅の関係を示す図。The PE group to which each of PE (0) to PE (3) when the real time t shown in FIG. 9 is t2 and the memory bandwidth to which each of the PE (0) to PE (3) can access the memory 30 are shown. The figure which shows a relationship. 図9に示す実時間tがt2のときのPE(0)〜PE(3)の各々が属するPEグループ及び当該PE(0)〜PE(3)の各々がメモリ30にアクセスできるメモリ帯域幅の関係を示す図。The PE group to which each of PE (0) to PE (3) when the real time t shown in FIG. 9 is t2 and the memory bandwidth to which each of the PE (0) to PE (3) can access the memory 30 are shown. The figure which shows a relationship. 本実施形態の変形例のグループ・帯域テーブル52のデータ構造の一例を示す図。The figure which shows an example of the data structure of the group and the band table 52 of the modification of this embodiment. タスクテーブル54のデータ構造の一例を示す図。The figure which shows an example of the data structure of the task table. 各PEがタスクを実行する際に当該PEが属すべきPEグループを設定する処理手順を示すフローチャート。The flowchart which shows the process sequence which sets PE group which the said PE should belong when each PE performs a task. PE(0)〜PE(3)が割り当てられた複数のタスクを実時間tで実行する処理の流れを示す図。The figure which shows the flow of a process which performs the some task to which PE (0) -PE (3) was allocated in real time t. 図18に示す実時間tがt0のときのPE(0)〜PE(3)の各々が属するPEグループ及び当該PE(0)〜PE(3)の各々がメモリ30にアクセスできるメモリ帯域幅の関係を示す図。The PE group to which each of PE (0) to PE (3) belongs when the real time t shown in FIG. 18 is t0 and the memory bandwidth to which each of the PE (0) to PE (3) can access the memory 30 are shown. The figure which shows a relationship. 図18に示す実時間tがt1のときのPE(0)〜PE(3)の各々が属するPEグループ及び当該PE(0)〜PE(3)の各々がメモリ30にアクセスできるメモリ帯域幅の関係を示す図。The PE group to which each of PE (0) to PE (3) when the real time t shown in FIG. 18 is t1 and the memory bandwidth to which each of the PE (0) to PE (3) can access the memory 30 are shown. The figure which shows a relationship.

符号の説明Explanation of symbols

10…複数のPE(プロセッサ要素)、20…メモリコントローラ、21…帯域制御部、30…メモリ、40…I/Oコントローラ、50…外部記憶装置、51…OS(オペレーティングシステム)、52…グループ・帯域テーブル、53…グループ・プライオリティテーブル、54…タスクテーブル、511…帯域設定部、512…スケジューラ、513…グループ設定部、514…グループ決定部。   DESCRIPTION OF SYMBOLS 10 ... Plural PE (processor element), 20 ... Memory controller, 21 ... Band control part, 30 ... Memory, 40 ... I / O controller, 50 ... External storage device, 51 ... OS (operating system), 52 ... Group Band table 53, group priority table, 54 task table, 511 band setting unit, 512 scheduler, 513 group setting unit, 514 group determining unit.

Claims (5)

複数のプロセッサ要素と、メモリと、当該複数のプロセッサ要素の各々が前記メモリにアクセス可能なメモリ帯域幅を制限するメモリコントローラとから構成されるマルチプロセッサシステムにおいて、前記複数のプロセッサ要素のうち、少なくとも1つのプロセッサ要素によって実行される帯域制御プログラムであって、
前記1つのプロセッサ要素に、
前記複数のプロセッサ要素の各々が属するプロセッサ要素グループ毎のメモリ帯域幅を、前記メモリコントローラに設定するステップと、
実行されるべきタスクが発生した際に、当該発生されたタスクを実行させるために、当該タスクを前記複数のプロセッサ要素のうちの1つに割り当てるステップと、
前記割り当てられたプロセッサ要素に前記発生されたタスクを実行させる際に、当該発生されたタスクの動作条件または動作状態に応じて、当該割り当てられたプロセッサ要素が属すべきプロセッサ要素グループを決定するステップと、
前記決定されたプロセッサ要素グループに属すべき前記割り当てられたプロセッサ要素に、前記メモリコントローラに設定された当該プロセッサ要素グループのメモリ帯域幅で前記発生されたタスクを実行させるステップと
を実行させることを特徴とする帯域制御プログラム。
In a multiprocessor system comprising a plurality of processor elements, a memory, and a memory controller that limits a memory bandwidth in which each of the plurality of processor elements can access the memory, at least of the plurality of processor elements A bandwidth control program executed by one processor element,
In the one processor element,
Setting a memory bandwidth for each processor element group to which each of the plurality of processor elements belongs to the memory controller;
Assigning the task to one of the plurality of processor elements to cause the generated task to be executed when a task to be executed occurs;
Determining a processor element group to which the assigned processor element should belong, in accordance with an operating condition or an operating state of the generated task, when causing the assigned processor element to execute the generated task; ,
Causing the assigned processor element to belong to the determined processor element group to execute the generated task with the memory bandwidth of the processor element group set in the memory controller. Bandwidth control program.
前記マルチプロセッサシステムは、当該マルチプロセッサシステムにおいて発生する複数のタスクの各々が実行される優先度を示す実行プライオリティ値及び当該タスクを実行するプロセッサ要素が属するプロセッサ要素グループを示す前記グループ識別情報を対応付けて予め保持するグループ・プライオリティ保持手段を有し、
前記実行されるべきタスクが発生した際に、予め定められている当該発生されたタスクが実行される優先度を示す実行プライオリティ値を当該タスクの動作条件として当該タスクに対応付けてタスク保持手段に保持するステップを前記1つのプロセッサ要素に更に実行させ、
前記決定するステップは、
前記割り当てられたプロセッサ要素が前記発生されたタスクを実行する際に、当該発生されたタスクに対応付けて前記タスク保持手段に保持されている実行プライオリティ値を取得するステップと、
取得された実行プライオリティ値に対応付けて前記グループ・プライオリティ保持手段に保持されているグループ識別情報によって示されるプロセッサ要素グループを、当該割り当てられたプロセッサ要素が属すべきプロセッサ要素グループとして決定するステップとを含む
ことを特徴とする請求項1記載の帯域制御プログラム。
The multiprocessor system corresponds to an execution priority value indicating a priority at which each of a plurality of tasks generated in the multiprocessor system is executed and the group identification information indicating a processor element group to which the processor element executing the task belongs. Group priority holding means to hold in advance,
When a task to be executed is generated, a predetermined execution priority value indicating the priority of execution of the generated task is associated with the task as an operation condition of the task and stored in the task holding unit. Further causing the one processor element to perform a holding step;
The determining step includes:
Obtaining an execution priority value held in the task holding means in association with the generated task when the assigned processor element executes the generated task;
Determining a processor element group indicated by the group identification information held in the group priority holding means in association with the acquired execution priority value as a processor element group to which the assigned processor element belongs. The bandwidth control program according to claim 1, further comprising:
前記マルチプロセッサシステムは、当該マルチプロセッサシステムにおいて発生する複数のタスクの各々が実行される際の前記メモリへのアクセスの頻度を示すアクセスプライオリティ値及び当該タスクを実行するプロセッサ要素が属するプロセッサ要素グループを示す前記グループ識別情報を対応付けて予め保持するグループ・プライオリティ保持手段を有し、
前記実行されるべきタスクが発生した際に、予め定められている当該発生されたタスクが実行される際の前記メモリへのアクセスの頻度を示すアクセスプライオリティ値を当該タスクの動作状態として当該タスクに対応付けてタスク保持手段に保持するステップを前記1つのプロセッサ要素に更に実行させ、
前記決定するステップは、
前記割り当てられたプロセッサ要素が前記発生されたタスクを実行する際に、当該発生されたタスクに対応付けて前記タスク保持手段に保持されているアクセスプライオリティ値を取得するステップと、
前記取得されたアクセスプライオリティ値に対応付けて前記グループ・プライオリティ保持手段に保持されているグループ識別情報によって示されるプロセッサ要素グループを、当該割り当てられたプロセッサ要素が属すべきプロセッサ要素グループとして決定するステップとを含む
ことを特徴とする請求項1記載の帯域制御プログラム。
The multiprocessor system includes an access priority value indicating a frequency of access to the memory when each of a plurality of tasks generated in the multiprocessor system is executed, and a processor element group to which a processor element executing the task belongs. Group priority holding means for previously holding the group identification information in association with each other,
When the task to be executed occurs, a predetermined access priority value indicating the frequency of access to the memory when the generated task is executed is set as the task operating state in the task. Causing the one processor element to further execute a step of associating and holding the task in the task holding unit;
The determining step includes:
Obtaining an access priority value held in the task holding means in association with the generated task when the assigned processor element executes the generated task;
Determining a processor element group indicated by group identification information held in the group priority holding means in association with the acquired access priority value as a processor element group to which the assigned processor element should belong; The bandwidth control program according to claim 1, comprising:
前記実行すべきタスクが発生した際に、予め定められている当該発生されたタスクが実行される優先度を示す実行プライオリティ値及び予め定められている当該タスクが実行される際の前記メモリへのアクセスの頻度を示すアクセスプライオリティ値を、当該タスクに対応付けてタスク保持手段に保持するステップを前記1つのプロセッサ要素に更に実行させ、
前記決定するステップにおいて、前記割り当てられたプロセッサ要素が前記発生されたタスクを実行する際に、当該発生されたタスクに対応付けて前記タスク保持手段に保持されている実行プライオリティ値及びアクセスプライオリティ値に基づいて、前記割り当てられたプロセッサ要素が属すべきプロセッサ要素グループを決定する
ことを特徴とする請求項1記載の帯域制御プログラム。
When the task to be executed occurs, a predetermined execution priority value indicating the priority of the generated task to be executed and the predetermined memory to the memory when the predetermined task is executed Causing the one processor element to further execute a step of holding an access priority value indicating an access frequency in a task holding unit in association with the task,
In the determining step, when the assigned processor element executes the generated task, the execution priority value and the access priority value held in the task holding unit in association with the generated task are set. The bandwidth control program according to claim 1, wherein a processor element group to which the allocated processor element should belong is determined based on.
複数のプロセッサ要素と、
前記複数のプロセッサ要素の各々によってアクセスされるメモリと、
前記複数のプロセッサ要素の各々が前記メモリにアクセス可能なメモリ帯域幅を制限するメモリコントローラと、
前記複数のプロセッサ要素の各々が属するプロセッサ要素グループ毎のメモリ帯域幅を、前記メモリコントローラに設定する設定手段と、
実行されるべきタスクが発生した際に、当該発生されたタスクを実行させるために、当該タスクを前記複数のプロセッサ要素のうちの1つに割り当てる割当手段と、
前記割当手段によって前記発生されたタスクが割り当てられたプロセッサ要素に前記発生されたタスクを実行させる際に、当該発生されたタスクの動作条件または動作状態に応じて、当該割り当てられたプロセッサ要素が属すべきプロセッサ要素グループを決定する決定手段と、
前記決定手段によって決定されたプロセッサ要素グループに属すべき前記割り当てられたプロセッサ要素に、前記設定手段によって前記メモリコントローラに設定された当該プロセッサ要素グループのメモリ帯域幅で前記発生されたタスクを実行させる実行手段と
を具備することを特徴とするマルチプロセッサシステム。
Multiple processor elements;
Memory accessed by each of the plurality of processor elements;
A memory controller that limits a memory bandwidth at which each of the plurality of processor elements can access the memory;
Setting means for setting, in the memory controller, a memory bandwidth for each processor element group to which each of the plurality of processor elements belongs;
Assigning means for assigning the task to one of the plurality of processor elements in order to cause the generated task to be executed when a task to be executed occurs;
When causing the processor element to which the generated task is assigned by the assigning means to execute the generated task, the assigned processor element belongs according to an operation condition or an operation state of the generated task. A determination means for determining a processor element group to be
Execution for causing the assigned processor element to belong to the processor element group determined by the determining means to execute the generated task with the memory bandwidth of the processor element group set in the memory controller by the setting means. And a multiprocessor system.
JP2006344849A 2006-12-21 2006-12-21 Band control program and multiprocessor system Expired - Fee Related JP4409568B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006344849A JP4409568B2 (en) 2006-12-21 2006-12-21 Band control program and multiprocessor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006344849A JP4409568B2 (en) 2006-12-21 2006-12-21 Band control program and multiprocessor system

Publications (2)

Publication Number Publication Date
JP2008158687A JP2008158687A (en) 2008-07-10
JP4409568B2 true JP4409568B2 (en) 2010-02-03

Family

ID=39659537

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006344849A Expired - Fee Related JP4409568B2 (en) 2006-12-21 2006-12-21 Band control program and multiprocessor system

Country Status (1)

Country Link
JP (1) JP4409568B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011114533A1 (en) * 2010-03-19 2011-09-22 富士通株式会社 Multi-core processor system, control program, and control method
JP5429363B2 (en) * 2010-03-25 2014-02-26 富士通株式会社 Multi-core processor system, control program, and control method
JP5692381B2 (en) * 2011-07-13 2015-04-01 富士通株式会社 Multi-core processor system and control method
JP5713091B2 (en) * 2013-12-05 2015-05-07 富士通株式会社 Multi-core processor system, control method, and control program
CN116414723A (en) * 2021-12-30 2023-07-11 中兴通讯股份有限公司 Memory bandwidth control method and device, electronic equipment and storage medium

Also Published As

Publication number Publication date
JP2008158687A (en) 2008-07-10

Similar Documents

Publication Publication Date Title
US20190324819A1 (en) Distributed-system task assignment method and apparatus
JP5040773B2 (en) Memory buffer allocation device and program
US7467385B2 (en) Interrupt and exception handling for multi-streaming digital processors
JP6246603B2 (en) Task scheduler mechanism, operating system, and multiprocessor system
JP5354108B2 (en) Information processing program, information processing apparatus, and information processing method
JP5841142B2 (en) System and method for allocating parts of a shared stack
JP4185103B2 (en) System and method for scheduling executable programs
US20110320680A1 (en) Method and Apparatus for Efficient Memory Bank Utilization in Multi-Threaded Packet Processors
US10545892B2 (en) Multi-thread processor and its interrupt processing method
US20150121388A1 (en) Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium
US20150121387A1 (en) Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core system and related non-transitory computer readable medium
JP2009110404A (en) Virtual machine system and guest os scheduling method in the same system
JP7109549B2 (en) Scheduling memory bandwidth based on service floor quality
JP4409568B2 (en) Band control program and multiprocessor system
JP2010044784A (en) Scheduling request in system
KR101392584B1 (en) Apparatus for dynamic data processing using resource monitoring and method thereof
US8589942B2 (en) Non-real time thread scheduling
JP2007316710A (en) Multiprocessor system, workload management method
CN110795323A (en) Load statistical method, device, storage medium and electronic equipment
JP2019021185A (en) Information processing device, information processing system, information processing device control method and information processing device control program
JP2012181578A (en) Update control device and program
US9170839B2 (en) Method for job scheduling with prediction of upcoming job combinations
JPWO2011118424A1 (en) Machine operation plan creation device, machine operation plan creation method, and machine operation plan creation program
WO2020213397A1 (en) Processor and register inheritance method
JP2009211649A (en) Cache system, control method thereof, and program

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090708

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090714

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20121120

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131120

Year of fee payment: 4

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees