JP4599438B2 - Pipeline processing apparatus, pipeline processing method, and pipeline control program - Google Patents
Pipeline processing apparatus, pipeline processing method, and pipeline control program Download PDFInfo
- Publication number
- JP4599438B2 JP4599438B2 JP2008198078A JP2008198078A JP4599438B2 JP 4599438 B2 JP4599438 B2 JP 4599438B2 JP 2008198078 A JP2008198078 A JP 2008198078A JP 2008198078 A JP2008198078 A JP 2008198078A JP 4599438 B2 JP4599438 B2 JP 4599438B2
- Authority
- JP
- Japan
- Prior art keywords
- execution code
- processing
- processor element
- path information
- target data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Multi Processors (AREA)
- Advance Control (AREA)
Description
本発明は、マルチプロセッサを用いてパイプライン処理するパイプライン処理装置等に関し、特に、リアルタイム要求に適したパイプライン処理の特性を残しつつ、プロセッサ要素間のデータ転送の総量を削減し、且つアプリケーション開発の負荷を軽減し得るパイプライン処理装置等に関する。 The present invention relates to a pipeline processing apparatus and the like that performs pipeline processing using a multiprocessor, and in particular, reduces the total amount of data transfer between processor elements while retaining the characteristics of pipeline processing suitable for real-time requirements, and applications. The present invention relates to a pipeline processing apparatus that can reduce the development load.
従前より、例えば動画像を再生するときには、一定時間内に一定量のデータ処理がリアルタイム要求される場合がある。 For example, when playing back a moving image, a certain amount of data processing may be requested in real time within a certain time.
リアルタイム要求を実現する方法としては、DSP(digital signal processor)などの専用のハードウェアを組み込んだ組み込みシステムが挙げられる。近年では、プロセッサ技術の進歩により、マルチプロセッサを用いてプログラム並列処理を行う組み込みシステムが増えている。 As a method for realizing the real-time request, there is an embedded system in which dedicated hardware such as a DSP (digital signal processor) is incorporated. In recent years, due to advances in processor technology, an increasing number of embedded systems perform program parallel processing using a multiprocessor.
例えば、各々のプロセッサ要素(以下、PEとも表記する)が比較的小容量のローカルメモリを有し、実行コードと処理対象のデータ(以下、対象データともいう)とをローカルメモリに取り込んでから処理する構成のシステムがある。この構成のシステムでは、ローカルメモリに取り込まれるデータを処理している間は共有メモリなどの外部資源にアクセスする必要がない。そのため、他のプロセッサとの資源の競合が生じにくく、リアルタイム要求を実現するのに適している。 For example, each processor element (hereinafter also referred to as PE) has a relatively small local memory, and processing is performed after fetching execution code and data to be processed (hereinafter also referred to as target data) into the local memory. There is a system configured to do so. In the system having this configuration, it is not necessary to access an external resource such as a shared memory while processing data fetched into the local memory. Therefore, resource competition with other processors hardly occurs, and it is suitable for realizing a real-time request.
しかしながら、マルチプロセッサを使用する場合、どのようにスケジューリングするかが問題となる。すなわち、複数のプロセッサとプログラムとをどのような手順で割り当てればリアルタイム要求を満たせるのかが問題となる。この問題の解決策のひとつとして、ソフトウェアをパイプライン処理(以下、単にパイプライン処理という)する方法がある。 However, when using a multiprocessor, how to schedule becomes a problem. That is, the problem is how to allocate a plurality of processors and programs in order to satisfy the real-time request. As a solution to this problem, there is a method of pipeline processing of software (hereinafter simply referred to as pipeline processing).
従来のパイプライン処理では、アプリケーションソフトウェアをあらかじめ複数のプログラムまたは機能モジュールなどのステージに分割する。そして、分割したステージのそれぞれを1つのPEに割り付ける(ロードする)。なお、多くの場合は、プログラムの分割数を使用可能なPE数に対応させる。 In conventional pipeline processing, application software is divided in advance into stages such as a plurality of programs or functional modules. Then, each of the divided stages is assigned (loaded) to one PE. In many cases, the number of program divisions corresponds to the number of usable PEs.
パイプライン処理するためのマルチプロセッサでは、対象データが入力されると、例えばローカルメモリの空き領域の大きさから決定される処理単位分のデータが最前段のPE1にロードされる。PE1での処理が終了すると、処理結果のデータが次の段のPE2に転送される。PE2で2段目の処理が開始されると同時に、最前段のPE1に新しいデータがロードされる。それから、最初のデータがパイプラインの最終段であるPE3に転送され、処理が定常状態になる。この後は、PE1〜PE3の全てにおいて、データが同時に処理されている状態になる。これにより、所望の要求性能が満たされるようになる。 In the multiprocessor for pipeline processing, when target data is input, data for a processing unit determined from, for example, the size of the free area in the local memory is loaded into the first PE1. When the processing at PE1 is completed, the processing result data is transferred to PE2 at the next stage. At the same time as the second stage processing is started in PE2, new data is loaded into PE1 in the forefront stage. Then, the first data is transferred to PE3 which is the final stage of the pipeline, and the processing becomes a steady state. Thereafter, in all of PE1 to PE3, data is processed at the same time. As a result, desired required performance is satisfied.
パイプライン処理のメリットとしては、メモリやI/O等の外部資源にアクセスするPEが限定されるため資源競合が起こりにくく、処理時間を見積もり易いためリアルタイム設計がしやすいということが挙げられる。また、データの処理順序が逆転することがないため出力段の同期処理の必要がないことや、データが必ず逐次処理となるためあらかじめ分割できないデータでも問題なく処理できることが挙げられる。
しかしながら、上述したパイプライン処理には次の課題がある。第1の課題は、パイプライン段数分のPE間でデータを転送しなければならない、ということである。データ転送はDMA(direct memory access)により行われることが多いが、転送すべきデータが大きい場合やパイプライン段数を多くしたい場合には、DMAのオーバヘッドがシステム全体に影響にすることがある。特に、転送用のバスを共有しているハードウェアであれば、バスの使用率が上昇してくると、バスが使用できるまでの待ちの時間を見積もるのが困難になる。結果として、リアルタイム性を実現できなくなることがある。 However, the pipeline processing described above has the following problems. The first problem is that data must be transferred between PEs corresponding to the number of pipeline stages. Data transfer is often performed by DMA (direct memory access). However, when there is a large amount of data to be transferred or when it is desired to increase the number of pipeline stages, DMA overhead may affect the entire system. In particular, in the case of hardware sharing a transfer bus, when the bus usage rate increases, it becomes difficult to estimate the waiting time until the bus can be used. As a result, real-time performance may not be realized.
第2の課題は、処理の重い段が1つでもあると、その段がボトルネックとなり、システム全体としての要求性能を達成できない、ということである。例えば図17に示すように、単位データ当たり5msの要求性能が求められる前提において、ソフトウェア全体の処理性能が単位データ当たり14msかかるとする。そこで、アプリケーション設計者がプログラムを3ステージに分割し、各ステージをPE1〜PE3で実行するとする。ここでは、PE1〜PE3は、それぞれ単位データ当たり4ms,6ms,4msの処理時間を要するので、PE2において要求性能を満たしていないことになる。要するに、PE1,PE3が要求性能を満たしていてもPE2が要求性能を満たしていなければ、システム全体として要求性能を達成できないことになる。なお、PE数に余裕がある場合でも同様である。 The second problem is that if there is even one stage with heavy processing, that stage becomes a bottleneck and the required performance of the entire system cannot be achieved. For example, as shown in FIG. 17, it is assumed that the processing performance of the entire software takes 14 ms per unit data on the assumption that the required performance of 5 ms per unit data is required. Therefore, it is assumed that the application designer divides the program into three stages and executes each stage with PE1 to PE3. Here, since PE1 to PE3 require processing times of 4 ms, 6 ms, and 4 ms, respectively, the PE2 does not satisfy the required performance. In short, even if PE1 and PE3 satisfy the required performance, if the PE2 does not satisfy the required performance, the system as a whole cannot achieve the required performance. The same applies when there is a margin in the number of PEs.
そこで、アプリケーション設計者は、所望の要求性能を実現できるようにプログラムをさらに分割し、あまっているPEに割り付ける作業を行う。PE数に余裕がない場合は、アプリケーション設計者は、プログラムの分割を見直す作業を行う。 Therefore, the application designer further divides the program so as to realize the desired required performance, and performs the work of assigning to the remaining PE. If the number of PEs is not sufficient, the application designer performs a review of program division.
しかしながら、一般的には、プログラムを分割する作業は非常な労力を伴う。プログラムを分割する作業を行うとした場合、アプリケーション設計者は、プログラムの分割可能点を正確に把握しなければならない。また、分割した場合にボトルネックが生じないように、各ステージにおける処理性能を把握しなければならない。 However, generally, the work of dividing a program is very labor intensive. When the work of dividing the program is performed, the application designer must accurately grasp the division point of the program. In addition, it is necessary to grasp the processing performance at each stage so that a bottleneck does not occur when divided.
また、原理的あるいは現実的に分割不可能な機能モジュールがボトルネックになってしまう。この問題は、性能を上げるために多段化しようとすればするほど現れやすくなる。 In addition, functional modules that cannot be divided in principle or practically become bottlenecks. This problem becomes more apparent as the number of stages increases to improve performance.
なお、このような問題はパイプライン処理の潜在的欠点と認識されている。これに対し、例えば、スケジューラがプログラムの実行時間と入出力関係とを認識し、処理内容がパイプライン状になるように周期的にスケジュールすることによって所望の時間を達成できる枠組みをアプリケーション設計者に提供する方法などもある(例えば特許文献1参照)。 Such a problem is recognized as a potential drawback of pipeline processing. On the other hand, for example, the scheduler recognizes the execution time of the program and the input / output relationship, and provides a framework for the application designer that can achieve the desired time by periodically scheduling the processing contents into a pipeline. There is also a method to provide (for example, see Patent Document 1).
本発明は、上記実情に鑑みてなされたものであり、リアルタイム要求に適したパイプライン処理の特性を残しつつ、プロセッサ要素間のデータ転送の総量を削減し得るパイプライン処理装置、パイプライン処理方法及びパイプライン制御プログラムを提供することを目的とする。 The present invention has been made in view of the above circumstances, and a pipeline processing apparatus and a pipeline processing method capable of reducing the total amount of data transfer between processor elements while retaining the characteristics of pipeline processing suitable for real-time requirements. And it aims at providing a pipeline control program.
本発明は上記課題を解決するために以下の手段を講じる。
第1の発明は、対象データをパイプライン処理するためのプログラムを複数のステージに分割したときの実行コードと前記対象データとを記憶する局所記憶手段と、経路情報を記憶する経路情報記憶手段とを有する複数のプロセッサ要素を備えたパイプライン処理装置であって、前記複数のプロセッサ要素のうちの1つのプロセッサ要素は、アプリケーションの初期化時に、分割されたステージの各実行コードを前記各プロセッサ要素の局所記憶手段に個別に割り当てる手段と、前記各プロセッサ要素の使用順序を決定し、該使用順序に従った経路情報を前記各プロセッサ要素の経路情報記憶手段に書き込む経路情報書込手段と、を備え、前記複数のプロセッサ要素のそれぞれは、前記対象データを前記実行コードにより処理するデータ処理手段と、前記実行コードが前記対象データの単位データ量の処理を終了したことを検知する検知手段と、前記実行コードが単位データ量の処理を終了したことが前記検知手段により検知された場合、前記経路情報に従って他のプロセッサ要素に前記実行コードを転送する実行コード転送手段とを備えたパイプライン処理装置である。
The present invention takes the following means in order to solve the above problems.
According to a first aspect of the present invention, there is provided a local storage unit for storing an execution code and the target data when a program for pipeline processing of target data is divided into a plurality of stages, a path information storage unit for storing path information, A pipeline processing apparatus having a plurality of processor elements, wherein one processor element of the plurality of processor elements transmits each execution code of a divided stage when the application is initialized. Means for individually allocating to the local storage means, and path information writing means for determining the order of use of the processor elements and writing the path information according to the order of use in the path information storage means of the processor elements. provided, each of the plurality of processors elements, data processing for processing the target data by the execution code If the detection means detects that the execution code has finished processing the unit data amount of the target data, and the detection means detects that the execution code has finished processing the unit data amount, A pipeline processing apparatus comprising execution code transfer means for transferring the execution code to another processor element according to the path information.
第1の発明は、アプリケーションの初期化時に、分割されたステージの各実行コードを前記各プロセッサ要素の局所記憶手段に個別に割り当てる手段と、各プロセッサ要素の使用順序を決定し、該使用順序に従った経路情報を各プロセッサ要素の経路情報記憶手段に書き込む経路情報書込手段とを備え、各プロセッサ要素において、実行コードにより単位データ量の処理を終了したことが検知された場合、経路情報に従って他のプロセッサ要素に実行コードを転送するので、対象データを転送するのに比してバスの使用率を抑えることができ、リアルタイム要求に適したパイプライン処理の特性を残しつつ、プロセッサ要素間のデータ転送の総量を削減し得るパイプライン処理装置を提供することができる。 According to a first aspect of the present invention, at the time of initialization of an application, means for individually allocating each execution code of the divided stage to local storage means of each processor element, and determining the use order of each processor element, Path information writing means for writing the path information in accordance with the path information storage means of each processor element. When it is detected in each processor element that the processing of the unit data amount is completed by the execution code, the path information is Since the execution code is transferred to other processor elements, the bus usage rate can be reduced compared to transferring the target data, and the characteristics of pipeline processing suitable for real-time requirements can be maintained, and A pipeline processing apparatus capable of reducing the total amount of data transfer can be provided.
第2の発明は、対象データをパイプライン処理するためのプログラムを複数のステージに分割したときの実行コードと前記対象データとを記憶する局所記憶手段と、経路情報を記憶する経路情報記憶手段と、前記各ステージに対応するステータス情報を記憶するステータス情報記憶手段とを有する複数のプロセッサ要素を備えたパイプライン処理装置であって、前記複数のプロセッサ要素のうちの1つのプロセッサ要素は、アプリケーションの初期化時に、一のプロセッサ要素の局所記憶手段に、複数のステージに分割された該アプリケーションプログラムの最初のステージの実行コードを割り当てる手段を備え、前記複数のプロセッサ要素のそれぞれは、前記対象データを前記実行コードにより処理するデータ処理手段と、前記局所記憶手段に実行コードを書き込み可能であるときは、前記ステータス情報を空き状態と設定する手段と、前記データ処理手段による処理が終了した場合、他のプロセッサ要素に前記実行コードの転送要求を送出する手段と、他のプロセッサ要素から該実行コードの転送要求を受けたときに、前記ステータス情報が空き状態と設定されている場合、該他のプロセッサ要素に許可応答を送出する手段と、前記転送要求を送出する手段からの転送要求に応じて他のプロセッサ要素から許可応答を受けた場合、該許可応答元のプロセッサ要素を次の転送先とする経路情報を前記経路情報記憶手段に書き込む経路情報書込手段と、前記経路情報書込手段により書き込まれた経路情報に従って他のプロセッサ要素に前記実行コードを転送する手段とを備えたパイプライン処理装置である。 According to a second aspect of the present invention, there is provided local storage means for storing an execution code and the target data when a program for subjecting target data to pipeline processing is divided into a plurality of stages, and path information storage means for storing path information. A pipeline processing apparatus comprising a plurality of processor elements having status information storage means for storing status information corresponding to each stage, wherein one of the plurality of processor elements is an application Means for allocating the execution code of the first stage of the application program divided into a plurality of stages to the local storage means of one processor element at the time of initialization, and each of the plurality of processor elements stores the target data Data processing means for processing by the execution code and the local memory Means for setting the status information as empty, and means for sending a transfer request for the execution code to another processor element when the processing by the data processing means is completed. And when the status information is set to an empty state when the execution code transfer request is received from another processor element, a means for sending a permission response to the other processor element, and sending the transfer request Path information writing means for writing, in the path information storage means, path information having the permission response source processor element as the next transfer destination when a permission response is received from another processor element in response to a transfer request from the performing means And a means for transferring the execution code to another processor element according to the path information written by the path information writing means. It is a line processing equipment.
第2の発明は、各プロセッサ要素が、他のプロセッサ要素から実行コードの転送要求を受けたときに、ステータス情報が空き状態と設定されている場合、許可応答を送出するとともに、転送要求に応じて他のプロセッサ要素から許可応答を受けた場合、許可応答元のプロセッサ要素を次の転送先とし、その経路情報に従って他のプロセッサ要素に実行コードを転送するので、対象データを転送するのに比してバスの使用率を抑えることができ、リアルタイム要求に適したパイプライン処理の特性を残しつつ、プロセッサ要素間のデータ転送の総量を削減し得るパイプライン処理装置を提供することができる。 In the second invention, when each processor element receives an execution code transfer request from another processor element, if the status information is set to an empty state, it sends a permission response and responds to the transfer request. If the authorization response is received from another processor element, the authorization response source processor element is set as the next transfer destination, and the execution code is transferred to the other processor element according to the path information. Thus, it is possible to provide a pipeline processing apparatus that can reduce the bus usage rate and reduce the total amount of data transfer between processor elements while retaining the characteristics of pipeline processing suitable for real-time requests.
本発明によれば、リアルタイム要求に適したパイプライン処理の特性を残しつつ、プロセッサ要素間のデータ転送の総量を削減し、且つアプリケーション開発の負担を軽減することができる。 According to the present invention, it is possible to reduce the total amount of data transfer between processor elements and reduce the burden of application development while retaining the characteristics of pipeline processing suitable for real-time requirements.
以下、図面を参照して本発明の実施形態を説明する。なお、本発明において、「アプリケーション」は、プログラムのみならず、ミドルウェアやデバイスドライバなどを含むものとする。
<第1の実施形態>
図1は本発明の第1の実施形態に係るパイプライン処理装置10の構成を示す模式図である。このパイプライン処理装置10は、複数のプロセッサ要素PE1〜PE8、共有メモリ11、バス12、入出力ポート(I/O)13,14を備えている。なお、図1に示すプロセッサ要素の個数は例示であり、これに限るものではない。
Hereinafter, embodiments of the present invention will be described with reference to the drawings. In the present invention, the “application” includes not only a program but also middleware, a device driver, and the like.
<First Embodiment>
FIG. 1 is a schematic diagram showing the configuration of a
共有メモリ11は、「スケジューラ」のプログラムを記憶する記憶装置である。スケジューラは、アプリケーションの初期化時に、そのアプリケーションのプログラムを複数のステージに分割し、分割した各ステージに対応する実行コードを各プロセッサ要素PE1〜PE8のローカルメモリ21に個別に割り当てる機能を有している。また、スケジューラは、各プロセッサ要素PE1〜PE8の使用順序を決定し、この使用順序に従った「経路情報」を各プロセッサ要素PE1〜PE8のパイプライン制御プログラムに設定する機能を有している。
なお、ここではスケジューラが共有メモリ11に記憶されるとしているが、これに限らず、プロセッサ要素のローカルメモリ21に記憶される構成であってもよい。
The shared
Although the scheduler is stored in the shared
各プロセッサ要素PE1〜PE8は、図2に示すように、ローカルメモリ21、演算ユニット22、DMAC(direct memory access controller)23を有している。
As shown in FIG. 2, each of the processor elements PE <b> 1 to PE <b> 8 includes a
ローカルメモリ21は、各プロセッサ要素PE1〜PE8に個別に設けられた記憶装置であり、対象データをパイプライン処理するための「実行コード」と、「対象データ」とを記憶する。また、ローカルメモリ21は、「パイプライン制御プログラム」も記憶している。パイプライン制御プログラムは、経路情報や、ステージの実行コードが格納されるステージバッファの状態を示す「ステータス情報」を管理情報として保持しており、これらの情報に基づいて各プロセッサ要素PE1〜PE8を制御する。パイプライン制御プログラムの詳細については後述する。
The
なお、ローカルメモリ21は、図3に示すように、各ステージの実行コードを格納するステージバッファ(stage buffer)をステージバッファA及びステージバッファBとして2重化している。これにより、DMAC23が実行コードの転送中に(図3(A))、次のステージの処理を実行できる(図3(B))。この結果、DMAの処理時間に要するタイムラグをなくすことが可能となる。従来のデータパイプライン方式でもよく用いられる構成である。
As shown in FIG. 3, the
演算ユニット22は、対象データを実行コードにより処理するものである。演算ユニット22にパイプライン制御プログラムが組み込まれることにより各種機能が発揮される。具体的には、演算ユニット22は、実行コードが対象データの単位データ量の処理を終了したことを検知する検知機能を有する。また、演算ユニット22は、検知機能により実行コードが単位データ量の処理を終了したことを検知した場合、DMAC23にDMA起動をかける機能を有する。
The
DMAC23は、演算ユニット22からDMA起動がかかると、ローカルメモリ21に記憶された経路情報に従って他のプロセッサ要素に実行コードを転送する。
When the
図4は本実施形態に係るパイプライン制御プログラムの機能構成を示した模式図である。パイプライン制御プログラムは、管理情報とパイプライン制御プログラム実行コードとを保持する。 FIG. 4 is a schematic diagram showing a functional configuration of the pipeline control program according to the present embodiment. The pipeline control program holds management information and a pipeline control program execution code.
管理情報は、パイプライン制御プログラムがプロセッサ要素PEの制御を行う上で必要な情報である。管理情報として、例えば、経路情報や、データバッファ状態を示す情報、ステージバッファ状態を示す情報(ステータス情報含む)が保持される。なお、管理情報はキャッシュメモリなどに記憶される。 The management information is information necessary for the pipeline control program to control the processor element PE. As management information, for example, path information, information indicating a data buffer state, and information (including status information) indicating a stage buffer state are held. The management information is stored in a cache memory or the like.
経路情報は、パイプラインがどのようにつながっているかを示すデータであり、例えば図4に示す「転送先のPE番号」が該当する。なお、本実施形態においては、経路情報はアプリケーションの初期化時にスケジューラにより固定値が与えられるものとする。ただし、これに限るものではなく、アプリケーション実行中に動的に変更されるとしてもよい。 The path information is data indicating how the pipelines are connected, and corresponds to, for example, the “transfer destination PE number” shown in FIG. In the present embodiment, it is assumed that the route information is given a fixed value by the scheduler when the application is initialized. However, the present invention is not limited to this, and it may be changed dynamically during application execution.
他の管理情報は、アプリケーション実行時に動的に変更されるものであり、現在の実行状態を保持するものである。例えば、データバッファの状態を示す情報としては、最終ステージ番号、入力データを保持するバッファのアドレス、出力データを保持するバッファのアドレス、有効データサイズがある。また、ステージバッファの状態を示す情報としては、ステータス情報、ステージ番号がある。 Other management information is dynamically changed when the application is executed, and holds the current execution state. For example, the information indicating the state of the data buffer includes the final stage number, the address of the buffer that holds the input data, the address of the buffer that holds the output data, and the effective data size. Information indicating the state of the stage buffer includes status information and a stage number.
ステージバッファは、ローカルメモリ21における各ステージの実行コードを保持する記憶領域のことであり、各ステージを識別するためのステージ番号やステージバッファの状態を示すステータス情報により管理される。ステージバッファは、図5に示すように、“空き状態(IDLE)”,“準備状態(STANDBY)”,“実行状態(ACTIVE)”,“転送状態(TRANSFER)”の順に状態遷移する。ここでは、ステータス情報の設定を変えることにより、ステージバッファを状態遷移させて、パイプラインの逐次処理を実現する。
The stage buffer is a storage area for holding the execution code of each stage in the
なお、“ACTIVE”は、「現在この実行コードを実行している」状態であるので、1個のPE内でACTIVEであるステージバッファは高々1つである。“STANDBY”は、実行コードはすでに存在するが、まだそれを実行するときではない状態である。現在ACTIVE状態のステージの処理が終了すると、STANDBY状態のステージがACTIVE状態となる。 Since “ACTIVE” is in the state “currently executing this execution code”, there is at most one stage buffer that is ACTIVE in one PE. “STANDBY” is a state in which the execution code already exists but is not yet the time to execute it. When the processing of the stage currently in the ACTIVE state is completed, the stage in the STANDBY state is changed to the ACTIVE state.
また、パイプライン制御プログラム実行コードが演算ユニット22に組み込まれると、演算ユニット22が次のように機能する。まず、演算ユニット22は、そのPEが保持する実行コードの処理が全体の処理のうち最初のステージか否かを認識する。そして、演算ユニット22に、最初のステージの実行コードが処理すべきデータが到着すると、その実行コードを実行する。演算ユニット22は、単位データ量の処理が終了すると、DMA起動をかける。また、演算ユニット22は、実行した実行コードを消去する。実行コードのDMA転送がされると、次ステージの実行コードが到着する(あるいは到着している)ので、演算ユニット22は、次ステージの実行コードを実行する。次ステージの実行が完了したら、経路情報に従って実行コードを転送し、今実行した実行コードを消去する。これを繰り返すと、最終ステージの処理とその実行コードの転送とが終了したときに、最初のステージの処理が到着していることになる。
When the pipeline control program execution code is incorporated into the
なお、ローカルメモリの容量に余裕がある場合、全てのPEのローカルメモリに全ての段の実行コードを収容できる場合がある。このような場合は、実行コードの実体の転送を省略することができる。パイプライン制御プログラムは前段に対して、次ステージの実行コードの準備ができたこと(次ステージの実行コードの実行許可)を通知するだけでよい。そのため、PE間のデータ転送をほとんど無くす、または全く無し(割り込みだけなど)にすることができる。また、処理単位ごとに実行コードを消去する必要もなくなる。 図6はパイプライン処理装置10における初期化処理を説明するための図である。パイプライン処理装置10における初期化処理は、例えばアプリケーションの開始時などにスケジューラにより実行される。ただし、この初期化処理を行う主体は、共有メモリ11に記憶されたスケジューラに限るものではなく、各パイプライン制御プログラム内に設けた別個の初期化プログラムが実行するとしてもよい。なお、以下の説明において、パイプライン処理するためのアプリケーションプログラムは、ステージ1〜ステージ3に分割されるものとする。
In addition, when there is a margin in the capacity of the local memory, there are cases where the execution code of all stages can be accommodated in the local memory of all PEs. In such a case, the transfer of the execution code entity can be omitted. The pipeline control program only needs to notify the preceding stage that the execution code for the next stage is ready (permission to execute the execution code for the next stage). For this reason, data transfer between PEs can be eliminated almost completely or not (only an interrupt or the like). Further, it is not necessary to delete the execution code for each processing unit. FIG. 6 is a diagram for explaining an initialization process in the
始めに、アプリケーションの開始時などにおいて、スケジューラに初期化命令が送出される。これに応じて、スケジューラは、各PEの経路情報を設定し、対応する経路情報を各PEに送出する(S1)。ここでは、PE3,PE2,PE1の転送先としてそれぞれPE2,PE1,PE3が設定される。 First, an initialization command is sent to the scheduler at the start of an application. In response to this, the scheduler sets the route information of each PE and sends the corresponding route information to each PE (S1). Here, PE2, PE1, and PE3 are set as transfer destinations of PE3, PE2, and PE1, respectively.
続いて、スケジューラは、全PEの有効データバッファサイズを0にセットする(S2)。それから、スケジューラは、全PEの2重化した2番目のステージバッファBのステータス状態を“IDLE”にセットする(S3)。 Subsequently, the scheduler sets the effective data buffer size of all PEs to 0 (S2). Then, the scheduler sets the status state of the duplicated second stage buffer B of all PEs to “IDLE” (S3).
次に、スケジューラは、全PEの最終ステージ番号と、1番目のステージバッファAのステージ番号をセットする(S4)。ここでは、PE3,PE2,PE1のそれぞれに対して、最終ステージ番号及びステージバッファAのステージ番号を(3,1),(1,2),(2,3)と設定する。 Next, the scheduler sets the final stage number of all PEs and the stage number of the first stage buffer A (S4). Here, the final stage number and the stage number of the stage buffer A are set to (3, 1), (1, 2), (2, 3) for PE3, PE2, and PE1, respectively.
続いて、スケジューラは、各PEの1番目のステージバッファAに対応するステージの実行コードをロードする(S5)。ここでは、PE3,PE2,PE1に対してそれぞれステージ1,ステージ2,ステージ3をロードする。
Subsequently, the scheduler loads the execution code of the stage corresponding to the first stage buffer A of each PE (S5). Here,
次に、スケジューラは、全PEのステージバッファAのステータス状態を“STANDBY”にセットする(S6)。そして、スケジューラは、全PEに「STANDBY通知」を送出する(S7)。 Next, the scheduler sets the status state of the stage buffer A of all PEs to “STANDBY” (S6). Then, the scheduler sends “STANDBY notification” to all PEs (S7).
以上の手順で初期化処理が行われると、パイプライン処理装置10においてパイプライン処理を実行できるようになる。
パイプライン処理装置10の初期化後は、各PEにおいて、STANDBY通知の受取処理、ステージの終了処理、DMA完了通知の受取処理、が随時実行される。
When the initialization process is performed in the above procedure, the
After the initialization of the
図7はSTANDBY通知の受取処理の手順を示す図である。各PEは、「STANDBY通知」を受け取ると、あるステージバッファxのステータス情報を“IDLE”から“STANDBY”に変更する(T1)。STANDBY通知時に2重化した一方のステージバッファが“ACTIVE”であれば、その処理が継続される(T2−Yes)。 FIG. 7 is a diagram showing a procedure for receiving a STANDBY notification. When each PE receives the “STANDBY notification”, the status information of a certain stage buffer x is changed from “IDLE” to “STANDBY” (T1). If one of the stage buffers duplicated at the time of STANDBY notification is “ACTIVE”, the processing is continued (T2-Yes).
一方、ACTIVE状態のステージバッファがなければ、ステージ番号と最終ステージ番号とから次のステージバッファを検索する(T2−No,T3)。 On the other hand, if there is no stage buffer in the ACTIVE state, the next stage buffer is searched from the stage number and the final stage number (T2-No, T3).
ステージバッファを検索した場合、該当するステージバッファのステータス情報を“STANDBY”から“ACTIVE”に変更する(T4)。ステータス情報をACTIVEに変更するときには、パイプライン制御プログラムが、バッファの最初と最後のアドレス及びバッファの大きさを、該当するステージの実行コードに渡す処理を行う(T5)。これにより、該当するステージの実行コードの処理が開始される。 When the stage buffer is searched, the status information of the corresponding stage buffer is changed from “STANDBY” to “ACTIVE” (T4). When the status information is changed to ACTIVE, the pipeline control program performs processing for passing the first and last addresses of the buffer and the size of the buffer to the execution code of the corresponding stage (T5). Thereby, processing of the execution code of the corresponding stage is started.
図8はステージの終了処理の手順を示す図である。各PEでは、実行コード完了通知が送出されると、処理したステージバッファxのステータス情報を“ACTIVE”から“TRANSFER”に変更する(U1)。 FIG. 8 is a diagram showing a procedure of stage end processing. In each PE, when an execution code completion notification is sent, the status information of the processed stage buffer x is changed from “ACTIVE” to “TRANSFER” (U1).
ステップU1の処理をしたPEは、入力データバッファのアドレスと出力データバッファのアドレスとを入れ替える(U2)。そして、実行コード完了通知に含まれる出力サイズを有効データサイズにする(U3)。また、最終ステージ番号を更新する(U4)。 The PE that has processed step U1 swaps the address of the input data buffer and the address of the output data buffer (U2). Then, the output size included in the execution code completion notification is set to an effective data size (U3). Also, the final stage number is updated (U4).
それから、PEは、転送先PEから“空き状態(IDLE)”のステージバッファ(stage buff)を検索する(U5)。空き状態のステージバッファが検索された場合、PEでは、転送先PEへ実行コードのDMA転送を開始する(U6−Yes,U7)。また、PEは、DMA転送を開始したときに、後述するSTANDBY通知を他のプロセッサ要素から既に受けている場合、ステージ番号と最終ステージ番号とから次ステージのステージバッファを検索する(U8−Yes,U9)。 Then, the PE searches the stage buffer (stage buff) of “idle state (IDLE)” from the transfer destination PE (U5). When an empty stage buffer is searched, the PE starts DMA transfer of the execution code to the transfer destination PE (U6-Yes, U7). Further, when the PE starts the DMA transfer, if the STANDBY notification described later is already received from another processor element, the PE searches the stage buffer of the next stage from the stage number and the final stage number (U8-Yes, U9).
そして、PEは、次ステージのステージバッファが検索された場合、該当するステージバッファのステータス情報を“STANDBY”から“ACTIVE”に変更する(U10)。 Then, when the stage buffer of the next stage is searched, the PE changes the status information of the corresponding stage buffer from “STANDBY” to “ACTIVE” (U10).
この後、PEは、該当するステージの実行コードの処理を開始する(U11)。具体的には、データバッファの最初と最後のアドレス及びバッファの大きさを実行コードに引き渡すことにより処理を実行する。 Thereafter, the PE starts processing the execution code of the corresponding stage (U11). Specifically, the process is executed by passing the first and last addresses of the data buffer and the size of the buffer to the execution code.
図9はDMA完了処理の手順を示す図である。各PEでは、実行コードのDMA転送が完了した場合、転送先PEに「STANDBY通知」を送信する(V1)。STANDBY通知を送信したPEは、ステージバッファのステータス情報を“TRANSFER”から“IDLE”に変更する。これにより実行コードが無効化される(V2)。 FIG. 9 is a diagram showing a procedure of DMA completion processing. In each PE, when the DMA transfer of the execution code is completed, a “STANDBY notification” is transmitted to the transfer destination PE (V1). The PE that has transmitted the STANDBY notification changes the status information of the stage buffer from “TRANSFER” to “IDLE”. As a result, the execution code is invalidated (V2).
従来のパイプライン処理の方式では、図10(A)に示すように、実行コードが各プロセッサ要素に固定され、対象データが紙面の左から右へ順次転送される。これに対し、本実施形態の方式では、図10(B)に示すように、対象データが各プロセッサ要素に固定され、実行コードが紙面の右から左へと逆方向に順次転送される。 In the conventional pipeline processing method, as shown in FIG. 10A, the execution code is fixed to each processor element, and the target data is sequentially transferred from the left to the right of the page. On the other hand, in the method of this embodiment, as shown in FIG. 10B, the target data is fixed to each processor element, and the execution code is sequentially transferred in the reverse direction from right to left on the page.
つまり、ステージに着目すると、例えばステージ1の実行コードが入力データをローカルメモリ21のデータバッファにロードする機能を有する場合、ステージ1の実行コードは対象データをロードし終えたら次のプロセッサ要素PE3に移って次の対象データをロードすることになる。そして、ステージの実行コードはプロセッサ要素P2,P1,P3・・・を順次移り、上述の処理を繰り返すようになる。
In other words, focusing on the stage, for example, when the execution code of
また、データに着目すると、まず、処理単位の対象データが最初のステージ1によってデータバッファにロードされ、対象データは最終ステージ3が終了して出力I/Oなどに渡される。この間、対象データは同一のプロセッサ要素に存在し続けていることになる。
Focusing on the data, first, the target data of the processing unit is loaded into the data buffer by the
また、プロセッサ要素(PE)に着目すると、次の動作が行われていることになる。すなわち、対象データのひとつの処理単位に対して順々に実行コードが到着し、データが処理されていく。データの処理が一巡すると、また最初のステージ1の実行コードと対象データとがデータバッファにロードされる。そして、これを繰り返す動作が行われる。
When attention is paid to the processor element (PE), the following operation is performed. That is, the execution code arrives sequentially for one processing unit of the target data, and the data is processed. When the data processing is completed, the
上述した構成により、本実施形態に係るパイプライン処理装置10では、次の処理が行われることになる。すなわち、スケジューラが、アプリケーションの初期化時に、複数のステージに分割されたアプリケーションプログラムの各実行コードを各プロセッサ要素PE1〜PE8のローカルメモリ21に個別に割り当てる。そして、スケジューラが、各プロセッサ要素PE1〜PE8の使用順序を決定し、この使用順序に従った経路情報を各プロセッサ要素PE1〜PE8のローカルメモリ21に書き込む。そして、アプリケーションの実行中は、各プロセッサ要素PE1〜PE8が、対象データを実行コードにより処理する。各プロセッサ要素PE1〜PE8では、実行コードが対象データの単位データ量の処理を終了したことを検知すると、経路情報に従って他のプロセッサ要素に実行コードを転送する。
With the configuration described above, the following processing is performed in the
それゆえ、本実施形態に係るパイプライン処理装置10では、対象データを他のプロセッサ要素に転送するのではなく実行コードを転送するので、リアルタイム処理に適したパイプライン処理の特性を残しつつ、プロセッサ要素間のデータ転送の総量を削減することができる。
Therefore, in the
すなわち、データの総量に比べて実行コードの総量が少ない場合、PE間の転送の総量がその差分だけ小さく済むので、転送オーバヘッドとバス競合を削減することができる。また結果として、データの処理時間も見積もりやすくなるので、アプリケーション設計者に複雑詳細なプログラム分割をする手間を省くことが可能となる。 That is, when the total amount of execution code is smaller than the total amount of data, the total amount of transfer between PEs can be reduced by the difference, so that transfer overhead and bus contention can be reduced. As a result, the data processing time can be easily estimated, so that it is possible to save the application designer from having to divide a complicated and detailed program.
なお、可変長符合の処理などにより生じる小さなデータ片が残る場合はデータ片も実行コードとともに前段のPEに転送する構成としてもよい。 When a small data piece generated by variable length code processing or the like remains, the data piece may be transferred to the preceding PE together with the execution code.
また、本実施形態に係るパイプライン処理装置10において、最前段のデータの入力と最終段のデータの出力とはアプリケーションが行う実装でもよいし、パイプライン制御プログラムが行う実装でも良い。本発明の本質に関係するものではない。
Further, in the
<第2の実施形態>
図11は本発明の第2の実施形態に係るパイプライン処理装置10Sの構成を示す模式図である。なお、既に説明した部分と同一部分には同一符号を付し、特に説明がない限りは重複した説明を省略する。本実施形態に係るパイプライン処理装置10Sでは、スケジューラが経路情報を決定するのではなく、各プロセッサ要素が自ら決定する。
<Second Embodiment>
FIG. 11 is a schematic diagram showing the configuration of a
各プロセッサ要素PE1〜PE8の演算ユニット22Sは、パイプライン制御プログラムが組み込まれることにより、図12に示すように、データ処理部31、ステータス情報設定部32、転送要求部33、許可応答部34、経路情報書込部35、実行コード転送制御部36を有する。
As shown in FIG. 12, the arithmetic unit 22S of each of the processor elements PE1 to PE8 incorporates a pipeline control program so that the
データ処理部31は、各プロセッサ要素において、対象データを実行コードにより処理するものである。ステータス情報設定部32は、ローカルメモリ21Sに記憶されたステージバッファのステータス情報を随時更新するものであり、データ処理部31が対象データを処理していないときは、ステータス情報を“空き状態(IDLE)”と設定する。
The
転送要求部33は、各プロセッサ要素PE1〜PE8において、データ処理部31による処理が終了した場合、他のプロセッサ要素に実行コードの転送要求を送出するものである。許可応答部34は、他のプロセッサ要素から該実行コードの転送要求を受けたときに、ステータス情報が“空き状態(IDLE)”と設定されている場合、該他のプロセッサ要素に許可応答を送出するものである。経路情報書込部35は、転送要求に応じて他のプロセッサ要素から許可応答を受けた場合、該許可応答元のプロセッサ要素を次の転送先とする経路情報をローカルメモリ21Sに書き込むものである。
The
実行コード転送制御部36は、DMAC23にDMA起動をかけるものである。具体的には、実行コード転送制御部36は、データ処理部31において実行コードの処理が完了した場合、実行コード完了通知をDMAC23に送出することによりDMAを起動させる。ここでは、実行コード転送制御部36は、経路情報書込部35により書き込まれた経路情報に従って他のプロセッサ要素に実行コードをDMA転送させる。
The execution code
次に本実施形態に係るパイプライン処理装置10Sの動作を説明する。始めに、対象データを処理するアプリケーションが実行されると、その初期化が行われ、スケジューラなどにより、アプリケーションプログラムが複数のステージに分割される。そして、一のプロセッサ要素PE1のローカルメモリに最初のステージの実行コードが割り当てられる。なお、各プロセッサ要素PE1〜PE8は、対象データを処理していないときは、ステータス情報設定部42により、ステータス情報が“IDLE”に設定される。
Next, the operation of the
続いて、プロセッサ要素PE1では、実行コードによる処理が終了すると、他のプロセッサ要素PE2にその実行コードの転送要求を送出する。転送要求を受けたプロセッサ要素PE2は、ステータス情報が空き状態と設定されている場合、転送要求元のプロセッサ要素PE1に許可応答を送出する。 Subsequently, when the processing by the execution code is completed, the processor element PE1 sends a transfer request for the execution code to the other processor element PE2. The processor element PE2 that has received the transfer request sends a permission response to the processor element PE1 that is the transfer request source when the status information is set to the empty state.
プロセッサ要素PE1は、転送要求に応じて他のプロセッサ要素PE2から許可応答を受けた場合、許可応答元のプロセッサ要素PE2を次の転送先とする経路情報を設定する。そして、プロセッサ要素PE1は、設定された経路情報に従って他のプロセッサ要素PE2に実行コードを転送する。 When the processor element PE1 receives a permission response from another processor element PE2 in response to the transfer request, the processor element PE1 sets path information with the processor element PE2 that is the permission response source as the next transfer destination. Then, the processor element PE1 transfers the execution code to the other processor element PE2 according to the set path information.
以上説明したように、本実施形態に係るパイプライン処理装置10Sは、各プロセッサ要素が、転送要求に応じて他のプロセッサ要素から許可応答を受けた場合、該許可応答元のプロセッサ要素を次の転送先とする経路情報をローカルメモリ21Sに書き込み、その経路情報に従って他のプロセッサ要素に実行コードを転送するので、対象データを転送するのに比してバスの使用率を抑えることができ、リアルタイム要求に適したパイプライン処理の特性を残しつつ、プロセッサ要素間のデータ転送の総量を削減することができる。
As described above, in the
<第3の実施形態>
本発明の第3の実施形態に係るパイプライン処理装置10Tは、第2の実施形態に係るパイプライン処理装置10Sの変形例であり、実行コードを複製することでパイプライン段数を動的に決定するものである。
<Third Embodiment>
The pipeline processing apparatus 10T according to the third embodiment of the present invention is a modification of the
本実施形態に係るローカルメモリ21Tは、各ステージの状態をサブステージに区分けし、これらのサブステージが先頭状態か継続状態かを示す「サブステータス情報」をサブステージ番号とともに記憶している。つまり、後述する実行コード複製部40により実行コードが複製されると、ACTIVE状態は、複製された実行コードの先頭であることを示す先頭状態か、先頭ではないことを示す継続状態かの2つの状態に区別されることになる。そして、サブステータス情報がこれらの2つの状態に対応して設定される。
The
本実施形態に係る演算ユニット22Tは、図13に示すように、実行コード複製部40をさらに備えている。本実施形態に係る演算ユニット22Tは、第2の実施形態に係るデータ処理部31、転送要求部33、実行コード転送制御部36に代えて、データ処理部41、転送要求部43、実行コード転送制御部46を備えている。
The
実行コード複製部40は、実行コードによる処理が予め設定された要求時間を超える場合、実行コードの複製を生成する。要求時間に近づいたことの検知は、「タイマ割込」などで実装される。また、実行コード複製部40は、実行コードが複製された場合、複製元の実行コード及び複製により得られた実行コードに対応する各ステージのサブステータス情報をサブステージ番号と関連付けて設定する。
The execution
データ処理部41は、第2の実施形態に係るデータ処理部31の機能に加え、サブステータス情報が設定されたときのステージの状態から対象データの処理を再開する。転送要求部43は、第2の実施形態に係る転送要求部33の機能に加え、実行コード複製部40により実行コードが複製された場合、他のプロセッサ要素に複製された実行コードの転送要求を送出する。
In addition to the function of the
具体的には、転送要求部43は、実行コードによる処理が予め設定された要求時間を超えることをタイマ割込により検知する。転送要求部43は、タイマ割込が生じると、サブステータス情報が先頭状態であるか否かを判定する。転送要求部43は、サブステータス情報が先頭状態である場合、転送先PEが経路情報として設定されているか否かを判定する。転送先PEが設定されていない場合、空き状態のプロセッサ要素(空きPE)を検索し、検索したプロセッサ要素に転送要求を送出する。
Specifically, the
一方、転送要求部43は、タイマ割込の通知時にサブステータス情報が継続状態である場合、既に転送先PEが経路情報として設定されているはずなので、空きPEの検索は行わない。また、転送先PEには、複製した実行コードが既に存在するはずなので、実行コードの転送は行わない。この場合、プロセッサ要素のコンテキストを移動する必要がないので、バス使用率の上昇を回避することができる。
On the other hand, the
実行コード転送制御部46は、第2の実施形態に係る実行コード転送制御部36の機能に加え、サブステータス情報に基づいて、複製された実行コードを他のプロセッサ要素にDMA転送させる。実行コード転送制御部46は、継続状態の実行コードに対しては、各プロセッサ要素でコンテキストを移動する必要がない。このような場合、実行コード転送制御部46は、サブステージ番号のみを通知するようにする。これにより、同一の実行コードを複数回転送することによる処理時間の増加を回避できる。また、実行コード転送制御部46は、最後のサブステージにおいて対象データの処理が終了した場合、実行コードを削除する機能を有する。なお、ローカルメモリ21Tが全てのステージの実行コードを収容できるほどの記憶領域を有している場合は、実行コードを転送する必要がないので、サブステータス番号のみが通知されることになる。
The execution code
次に、本実施形態に係るパイプライン処理装置10Tの動作を図14を用いて説明する。前提として、対象データをパイプライン処理するためのアプリケーションプログラムはステージ1〜3の3ステージに分割され、それぞれプロセッサ要素PE1〜PE3に割り付けられるものとする(図14(A))。
Next, the operation of the pipeline processing apparatus 10T according to the present embodiment will be described with reference to FIG. As a premise, it is assumed that an application program for subjecting target data to pipeline processing is divided into three
かかる前提のもと、要求時間が経過してタイマ割込が生じたときにプロセッサ要素PE2の処理が終了していない場合、プロセッサ要素PE2における実行コード複製部40により実行コードが複製される。実行コードが複製されると、プロセッサ要素PE2の実行コード転送制御部46により、複製された実行コードのDMA起動がかけられる。これにより、プロセッサ要素PE1にも同一の実行コードが記憶されることになる(図14(B))。要するに、実行コードを複製して同一の実行コードを持つPEが1つ増加することになる。なお、実行コードが複製された場合、実行コード複製部40により、サブステータス情報がサブステージ番号とともに設定される。ここでは、プロセッサ要素PE1の実行コードには先頭状態が設定され、プロセッサ要素PE2の実行コードには継続状態が設定される。
Under such a premise, when the processing of the processor element PE2 is not completed when the request time elapses and a timer interrupt occurs, the execution code is duplicated by the execution
そして、このような動作が、最初のデータ単位の処理が全て終了する時点(パイプライン処理が一巡する時点)まで繰り返されると(図14(C),(D))、パイプライン段数が決まり、経路情報が決定された状態になる。図14の例では5段に決定された状態となっている。 Then, when such an operation is repeated until the time when all the processing of the first data unit is completed (the time when the pipeline processing is completed) (FIGS. 14C and 14D), the number of pipeline stages is determined, The route information is determined. In the example of FIG. 14, the state is determined in five stages.
この後は、各プロセッサ要素に対象データがロードされ、実行コードが順次実行される。この状態では、全てのプロセッサ要素において、各ステージ及びサブステージが要求時間内に終了するので、所望の要求性能を達成することができる。 Thereafter, the target data is loaded into each processor element, and the execution code is sequentially executed. In this state, since all stages and sub-stages are completed within the required time in all the processor elements, the desired required performance can be achieved.
図15はタイマ割込が生じたときの処理の手順を示す図である。各PEでは、要求時間が経過してタイマ割込が生じたときに、サブステータス情報が先頭状態である場合、転送先PEには現在のステージの情報がないので、実行コードを転送する(W1−Yes)。実行コードの転送に際しては、経路情報が設定されているか否かを検索し、経路情報が設定されていなければ、空きPEを検索して転送先PEとして設定する(W2〜W4)。 FIG. 15 is a diagram showing a processing procedure when a timer interrupt occurs. In each PE, when the request time elapses and a timer interrupt occurs, if the sub-status information is in the leading state, the transfer destination PE does not have information on the current stage, so the execution code is transferred (W1). -Yes). When transferring the execution code, it is searched whether route information is set. If the route information is not set, a free PE is searched and set as a transfer destination PE (W2 to W4).
各PEは、転送先PEに実行コードを転送する際には、まず、転送先PEから空き状態のステージバッファを検索する(W5)。各PEは、空き状態のステージバッファが検索された場合、転送先PEへ実行コードのDMA転送を開始する(W6−Yes,W7)。そして、各PEは、DMA転送を終了すると、サブステータス情報を先頭状態から継続状態に変更する(W8)。 When transferring execution codes to the transfer destination PE, each PE first searches the transfer destination PE for an empty stage buffer (W5). Each PE starts DMA transfer of an execution code to a transfer destination PE when a free stage buffer is searched (W6-Yes, W7). Then, when completing the DMA transfer, each PE changes the sub status information from the head state to the continuation state (W8).
一方、ステップW1において、サブステータス情報が継続状態である場合、転送先PEに複製した実行コードがあるので、各PEは実行コードを転送しない(W1−No)。 On the other hand, when the sub status information is in the continuation state in step W1, each PE does not transfer the execution code because there is an execution code copied to the transfer destination PE (W1-No).
なお、実行コード完了通知を受けたときに、サブステータス情報が継続状態である場合は、タイマ割込と同じ理由でDMAの実行が省略される。ステータス情報が“IDLE”に変更されるだけである。 If the sub-status information is in the continuous state when the execution code completion notification is received, the execution of DMA is omitted for the same reason as the timer interrupt. The status information is only changed to “IDLE”.
図16はDMA完了処理の手順を示す図である。各PEでは、実行コードのDMA転送が完了した場合、転送先PEに「STANDBY通知」を送信する(X1)。ここで、STANDBY通知を送信したPEに複製された実行コードが存在しない場合、既に処理が終了しており、ステータス情報は“TRANSFER”となっている。そこで、ステータス情報を“TRANSFER”から“IDLE”に変更する(X2−Yes,X3)。 FIG. 16 is a diagram showing a procedure of DMA completion processing. In each PE, when the DMA transfer of the execution code is completed, a “STANDBY notification” is transmitted to the transfer destination PE (X1). Here, when the execution code copied to the PE that has transmitted the STANDBY notification does not exist, the processing has already been completed, and the status information is “TRANSFER”. Therefore, the status information is changed from “TRANSFER” to “IDLE” (X2-Yes, X3).
一方、STANDBY通知を送信したPEが、タイマ割込によってDMAを起動していた場合、ステータス情報の変更はしない(X2−No)。DMAがタイマ割込によって起動された場合、実行コードによる処理が終了しておらず、ステータス情報は“ACTIVE”のまま維持する。 On the other hand, when the PE that has transmitted the STANDBY notification has started DMA by a timer interrupt, the status information is not changed (X2-No). When the DMA is activated by a timer interrupt, the processing by the execution code is not completed, and the status information is maintained as “ACTIVE”.
以上説明したように、本実施形態に係るパイプライン処理装置10Tでは、各プロセッサ要素が、ステージの状態を区分けするためのサブステータス情報を記憶しており、実行コードによる処理が予め設定された要求時間を超える場合、実行コードの処理を停止するとともに複製し、実行コードが複製された場合、先頭状態か継続状態かを示すサブステータス情報を設定し、複製された実行コードを転送した後、このサブステータス情報に基づいて対象データの処理を再開するので、各プロセッサ要素における処理を要求時間内に終了させることができ、所望の要求性能を満たすことができる。 As described above, in the pipeline processing apparatus 10T according to the present embodiment, each processor element stores the sub-status information for classifying the state of the stage, and the request based on the execution code is set in advance. If the time is exceeded, the execution code processing is stopped and duplicated. If the execution code is duplicated, set the sub-status information indicating whether it is in the head or continuation state, transfer the duplicated execution code, and then Since the processing of the target data is resumed based on the sub status information, the processing in each processor element can be completed within the required time, and the desired required performance can be satisfied.
例えば、第2に実施形態に係るパイプライン処理装置10Sでは、ステージ1,2,3の処理にそれぞれ4ms,12ms,4msを要するとすると、単位データ量当り5msの要求性能が求められたときには、ステージ2がボトルネックとなって要求性能を満たすことができない。これに対し、本実施形態係るパイプライン処理装置10Tであれば、ステージ2の処理を3つのプロセッサ要素で処理させることにより、5ms以内の処理を実現することができる。
For example, in the
また、本実施形態に係るパイプライン処理装置10Tでは、アプリケーションの設計者は各ステージの処理時間を正確に把握する必要がなくなるので、アプリケーションの設計者の負荷を軽減することができる。具体的には、アプリケーションの設計者は、例えばデータロード、暗号解読、圧縮解凍、データ出力などの機能単位に分割するだけの作業で済むようになる。また、アプリケーション設計者は、実行コードを細分化させる必要もなくなる。 Further, in the pipeline processing apparatus 10T according to the present embodiment, it is not necessary for the application designer to accurately grasp the processing time of each stage, so that the load on the application designer can be reduced. Specifically, the application designer only needs to divide into functional units such as data loading, decryption, compression / decompression, and data output. In addition, the application designer does not need to subdivide the execution code.
なお、本実施形態に係るパイプライン処理装置10Tは、動作概念としては前記の通りサブステージを順繰りに送っていくパイプライン処理であるが、継続状態の実行コードは移動する必要がなく、複製した実行コードでの処理が非常に簡素になる。 The pipeline processing apparatus 10T according to the present embodiment is a pipeline process in which substages are sent in order as described above as an operation concept, but the execution code in the continuous state does not need to be moved and copied. Processing in the execution code becomes very simple.
1個のPEに着目した場合、要求時間の到来によって概念上のサブステージが変更されても、実行コードの内容自体は変更していない。また処理対象のデータはローカルメモリ21Tに記憶されたまま転送されていない。したがって、ローカルメモリ21T上では、実行コードもデータも同じままであるため、実行コードをあらゆるタイミングで一時停止したり、再開したりすることができる。さらに、データの中途半端なところを処理中でも、一時変数などに重要な情報を保持しているタイミングでも一時停止したり、再開したりすることができる。
When focusing on one PE, even if the conceptual substage is changed due to the arrival of the required time, the content of the execution code itself is not changed. The data to be processed is not transferred while being stored in the
要するに、割り込みがかかって戻っていくだけなので、実行コードがそれを認識する必要がなく、非常に精度の高いタイミングでパイプライン動作を行うことができる。 In short, since an interrupt is just taken and the process returns, the execution code does not need to recognize it, and a pipeline operation can be performed with very high accuracy.
また、本実施形態に係るパイプライン処理装置10Tは、サブステージ変更のための一時停止と再開とが同一PE上で行われるため、アプリケーション処理のどのタイミングでも転送可能である。アプリケーションに対しては、例えば一時タイマ割り込みがかかって、そこから復帰しただけのように認識させることができるので、処理対象のデータ、実行コードともどこを実行中でもサブステージの変更が可能である。したがって、実際に1個のステージまたはサブステージの処理が行われる時間はアプリケーションの中身によらず非常に高い精度(例えばタイマ割り込みの精度)で実現できる。 Further, the pipeline processing apparatus 10T according to the present embodiment can perform transfer at any timing of application processing because the suspension and resumption for changing the substage are performed on the same PE. The application can be recognized as if, for example, a temporary timer interrupt has occurred and returned from there, so that the substage can be changed regardless of where the data to be processed and the execution code are being executed. Therefore, the time for actually processing one stage or sub-stage can be realized with very high accuracy (eg, timer interrupt accuracy) regardless of the contents of the application.
<他の変形例>
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
<Other variations>
Note that the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage. In addition, various inventions can be formed by appropriately combining a plurality of components disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment. Furthermore, you may combine a component suitably in different embodiment.
なお、上記実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。 Note that the method described in the above embodiment is a program that can be executed by a computer, such as a magnetic disk (floppy (registered trademark) disk, hard disk, etc.), an optical disk (CD-ROM, DVD, etc.), a magneto-optical disk (MO). ), And can be distributed in a storage medium such as a semiconductor memory.
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。 In addition, as long as the storage medium can store a program and can be read by a computer, the storage format may be any form.
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施形態を実現するための各処理の一部を実行しても良い。 In addition, an OS (operating system) operating on the computer based on an instruction of a program installed in the computer from the storage medium, MW (middleware) such as database management software, network software, and the like implement the above-described embodiment. A part of each process may be executed.
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。 Furthermore, the storage medium in the present invention is not limited to a medium independent of a computer, but also includes a storage medium in which a program transmitted via a LAN, the Internet, or the like is downloaded and stored or temporarily stored.
また、記憶媒体は1つに限らず、複数の媒体から上記実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。 Further, the number of storage media is not limited to one, and the case where the processing in the above embodiment is executed from a plurality of media is also included in the storage media in the present invention, and the media configuration may be any configuration.
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。 The computer according to the present invention executes each process in the above-described embodiment based on a program stored in a storage medium, and is a single device such as a personal computer or a system in which a plurality of devices are connected to a network. Any configuration may be used.
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。 In addition, the computer in the present invention is not limited to a personal computer, but includes an arithmetic processing device, a microcomputer, and the like included in an information processing device, and is a generic term for devices and devices that can realize the functions of the present invention by a program. .
10・・・パイプライン処理装置、11・・・共有メモリ、12・・・バス、13,14・・・入出力ポート、21・・・ローカルメモリ、22・・・演算ユニット、23・・・DMAC、31・・・データ処理部、32・・・ステータス情報設定部、33・・・転送要求部、34・・・許可応答部、35・・・経路情報書込部、36・・・実行コード転送制御部、40・・・実行コード複製部、41・・・データ処理部、43・・・転送要求部、46・・・実行コード転送制御部、PE1〜PE8・・・プロセッサ要素。
DESCRIPTION OF
Claims (6)
前記複数のプロセッサ要素のうちの1つのプロセッサ要素は、
アプリケーションの初期化時に、分割されたステージの各実行コードを前記各プロセッサ要素の局所記憶手段に個別に割り当てる手段と、
前記各プロセッサ要素の使用順序を決定し、該使用順序に従った経路情報を前記各プロセッサ要素の経路情報記憶手段に書き込む経路情報書込手段と、
を備え、
前記複数のプロセッサ要素のそれぞれは、
前記対象データを前記実行コードにより処理するデータ処理手段と、
前記実行コードが前記対象データの単位データ量の処理を終了したことを検知する検知手段と、
前記実行コードが単位データ量の処理を終了したことが前記検知手段により検知された場合、前記経路情報に従って他のプロセッサ要素に前記実行コードを転送する実行コード転送手段と
を備えたことを特徴とするパイプライン処理装置。 A plurality of processor elements having local storage means for storing an execution code and target data when a program for subjecting target data to pipeline processing is divided into a plurality of stages, and path information storage means for storing path information A pipeline processing apparatus comprising:
One processor element of the plurality of processor elements is:
Means for individually allocating each execution code of the divided stage to the local storage means of each processor element at the time of initialization of the application;
Path information writing means for determining the use order of the processor elements, and writing path information according to the use order in the path information storage means of the processor elements;
With
Each of the plurality of processor elements is
Data processing means for processing the target data with the execution code;
Detection means for detecting that the execution code has finished processing the unit data amount of the target data;
And an execution code transfer means for transferring the execution code to another processor element according to the path information when the detection means detects that the execution code has finished processing the unit data amount. Pipeline processing device.
手段とを有する複数のプロセッサ要素を備えたパイプライン処理装置であって、
前記複数のプロセッサ要素のうちの1つのプロセッサ要素は、
アプリケーションの初期化時に、一のプロセッサ要素の局所記憶手段に、複数のステージに分割された該アプリケーションプログラムの最初のステージの実行コードを割り当てる手段を備え、
前記複数のプロセッサ要素のそれぞれは、
前記対象データを前記実行コードにより処理するデータ処理手段と、
前記局所記憶手段に実行コードを書き込み可能であるときは、前記ステータス情報を空き状態と設定する手段と、
前記データ処理手段による処理が終了した場合、他のプロセッサ要素に前記実行コードの転送要求を送出する手段と、
他のプロセッサ要素から該実行コードの転送要求を受けたときに、前記ステータス情報が空き状態と設定されている場合、該他のプロセッサ要素に許可応答を送出する手段と、
前記転送要求を送出する手段からの転送要求に応じて他のプロセッサ要素から許可応答を受けた場合、該許可応答元のプロセッサ要素を次の転送先とする経路情報を前記経路情報記憶手段に書き込む経路情報書込手段と、
前記経路情報書込手段により書き込まれた経路情報に従って他のプロセッサ要素に前記実行コードを転送する手段と
を備えたことを特徴とするパイプライン処理装置。 Corresponding to each stage, local storage means for storing the execution code and the target data when the program for pipeline processing of the target data is divided into a plurality of stages, path information storage means for storing path information, and A pipeline processing apparatus comprising a plurality of processor elements having status information storage means for storing status information
One processor element of the plurality of processor elements is:
Means for allocating the execution code of the first stage of the application program divided into a plurality of stages to the local storage means of one processor element at the time of initialization of the application;
Each of the plurality of processor elements is
Data processing means for processing the target data with the execution code;
When the execution code can be written in the local storage means, the means for setting the status information as an empty state;
Means for sending the execution code transfer request to another processor element when the processing by the data processing means is completed;
Means for sending an authorization response to the other processor element when the status information is set to an empty state when the execution code transfer request is received from the other processor element;
When a permission response is received from another processor element in response to a transfer request from the means for sending the transfer request, the path information with the processor element that is the permission response source as the next transfer destination is written in the path information storage means. Route information writing means;
A pipeline processing apparatus comprising: means for transferring the execution code to another processor element according to the path information written by the path information writing means.
アプリケーションの初期化時に、分割されたステージの各実行コードを前記各プロセッサ要素の局所記憶手段に個別に割り当てる工程と、
前記各プロセッサ要素の使用順序を決定し、該使用順序に従った経路情報を前記各プロセッサ要素の経路情報記憶手段に書き込む経路情報書込工程と、
前記各プロセッサ要素において、前記対象データを前記実行コードにより処理するデータ処理工程と、
前記実行コードが前記対象データの単位データ量の処理を終了したことを検知する検知工程と、
前記実行コードが単位データ量の処理を終了したことが前記検知工程により検知された場合、前記経路情報に従って他のプロセッサ要素に前記実行コードを転送する実行コード転送工程と
を具備したことを特徴とするパイプライン処理方法。 A plurality of processor elements having a local storage unit that stores an execution code and the target data when a program for pipeline processing of the target data is divided into a plurality of stages, and a path information storage unit that stores path information A pipeline processing method used in a pipeline processing apparatus comprising:
Individually assigning each execution code of the divided stage to the local storage means of each processor element when initializing the application;
A path information writing step of determining a use order of each processor element and writing path information according to the use order in a path information storage unit of each processor element;
In each processor element, a data processing step of processing the target data with the execution code;
A detection step of detecting that the execution code has finished processing the unit data amount of the target data;
An execution code transfer step of transferring the execution code to another processor element according to the path information when the detection step detects that the execution code has finished processing the unit data amount. Pipeline processing method.
アプリケーションの初期化時に、該プログラムを複数のステージの実行コードに分割し、一のプロセッサ要素の局所記憶手段に最初のステージの実行コードを割り当てる工程と、
前記各プロセッサ要素において、対象データを前記実行コードにより処理するデータ処理工程と、
前記局所記憶手段に実行コードを書き込み可能であるときは、前記ステータス情報を空き状態と設定する工程と、
前記各プロセッサ要素において、前記データ処理工程による処理が終了した場合、他のプロセッサ要素に前記実行コードの転送要求を送出する工程と、
前記転送要求を受けた他のプロセッサ要素において、ステータス情報が空き状態と設定されている場合、転送要求元のプロセッサ要素に許可応答を送出する手段と、
前記転送要求に応じて許可応答を受けた場合、該許可応答元のプロセッサ要素を次の転送先とする経路情報を前記経路情報記憶手段に書き込む経路情報書込工程と、
前記経路情報書込工程により書き込まれた経路情報に従って他のプロセッサ要素に前記実行コードを転送する工程と
を具備したことを特徴とするパイプライン処理方法。 Corresponding to each stage, local storage means for storing the execution code and the target data when the program for pipeline processing of the target data is divided into a plurality of stages, path information storage means for storing path information, and A pipeline processing method used in a pipeline processing apparatus having a plurality of processor elements having status information storage means for storing status information
Dividing the program into a plurality of stages of execution code at the time of initialization of the application, and assigning the execution code of the first stage to the local storage means of one processor element;
In each processor element, a data processing step of processing target data with the execution code;
When the execution code can be written in the local storage means, the step of setting the status information as an empty state;
In each of the processor elements, when the processing by the data processing step is completed, a step of sending a transfer request for the execution code to another processor element;
In another processor element that has received the transfer request, if status information is set to an empty state, means for sending a permission response to the processor element that is the transfer request source,
A path information writing step of writing, in the path information storage means, path information having the permission response source processor element as the next transfer destination when receiving a permission response in response to the transfer request;
And a step of transferring the execution code to another processor element according to the path information written by the path information writing step.
前記パイプライン処理するためのプログラムを複数のステージに分割したときの実行コードと前記対象データとを前記記憶手段に書き込む手段、
アプリケーションの初期化時に、予め設定された各プロセッサ要素の使用順序に従った経路情報を前記各プロセッサ要素の記憶手段に書き込む手段、
として実現させ、
前記複数のプロセッサ要素のそれぞれを、
前記対象データを前記実行コードにより処理するデータ処理手段、
前記実行コードが前記対象データの単位データ量の処理を終了したことを検知する検知手段、
前記実行コードが単位データ量の処理を終了したことが前記検知手段により検知された場合、前記経路情報に従って他のプロセッサ要素に前記実行コードを転送する実行コード
転送手段として実現させるためのパイプライン処理プログラム。 A pipeline processing program which is individually provided with storage means and is used in a pipeline processing apparatus having a plurality of processor elements for pipeline processing of target data, wherein one processor element of the plurality of processor elements The
Means for writing the execution code and the target data into the storage means when the program for pipeline processing is divided into a plurality of stages;
Means for writing path information in the storage means of each processor element according to a preset use order of each processor element at the time of initialization of the application;
Realized as
Each of the plurality of processor elements is
Data processing means for processing the target data with the execution code;
Detection means for detecting that the execution code has finished processing the unit data amount of the target data;
Pipeline processing for realizing execution code transfer means for transferring the execution code to another processor element according to the path information when the detection means detects that the execution code has finished processing the unit data amount program.
前記複数のプロセッサ要素のうちの1つのプロセッサ要素を、
前記パイプライン処理するためのプログラムを複数のステージに分割したときの実行コードと前記対象データとを前記記憶手段に書き込む手段、
として実現させ、
前記複数のプロセッサ要素のそれぞれを、
前記対象データを前記実行コードにより処理するデータ処理手段、
前記記憶手段に実行コードを書き込み可能であるときは、前記ステータス情報を空き状態と設定する手段、
前記データ処理手段による処理が終了した場合、他のプロセッサ要素に前記実行コードの転送要求を送出する手段、
他のプロセッサ要素から該実行コードの転送要求を受けたときに、前記ステータス情報が空き状態と設定されている場合、該他のプロセッサ要素に許可応答を送出する手段、
前記転送要求に応じて他のプロセッサ要素から許可応答を受けた場合、該許可応答元のプロセッサ要素を次の転送先とする経路情報を前記記憶手段に書き込む手段、
前記記憶手段に書き込まれた経路情報に従って他のプロセッサ要素に前記実行コードを転送する手段
として実現させるためのパイプライン処理プログラム。 A pipeline processing program used in a pipeline processing apparatus having a plurality of processor elements for individually processing storage data and subjecting target data to pipeline processing,
One processor element of the plurality of processor elements;
Means for writing the execution code and the target data into the storage means when the program for pipeline processing is divided into a plurality of stages;
Realized as
Each of the plurality of processor elements is
Data processing means for processing the target data with the execution code;
Means for setting the status information as empty when an execution code can be written in the storage means;
Means for sending the execution code transfer request to another processor element when the processing by the data processing means is completed;
Means for sending a permission response to the other processor element when the status information is set to an empty state when the execution code transfer request is received from the other processor element;
Means for writing, in the storage means, path information having the permission response source processor element as the next transfer destination when receiving a permission response from another processor element in response to the transfer request;
A pipeline processing program for realizing as means for transferring the execution code to another processor element according to the path information written in the storage means .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008198078A JP4599438B2 (en) | 2008-07-31 | 2008-07-31 | Pipeline processing apparatus, pipeline processing method, and pipeline control program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008198078A JP4599438B2 (en) | 2008-07-31 | 2008-07-31 | Pipeline processing apparatus, pipeline processing method, and pipeline control program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010039511A JP2010039511A (en) | 2010-02-18 |
JP4599438B2 true JP4599438B2 (en) | 2010-12-15 |
Family
ID=42012037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008198078A Expired - Fee Related JP4599438B2 (en) | 2008-07-31 | 2008-07-31 | Pipeline processing apparatus, pipeline processing method, and pipeline control program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4599438B2 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004062686A (en) * | 2002-07-30 | 2004-02-26 | Dainippon Printing Co Ltd | Parallel processing system, server, parallel processing method, program and recording medium |
JP2006221638A (en) * | 2005-02-07 | 2006-08-24 | Sony Computer Entertainment Inc | Method and device for providing task change application programming interface |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0844678A (en) * | 1994-07-29 | 1996-02-16 | Canon Inc | Device and system for processing image |
JPH08263306A (en) * | 1995-03-10 | 1996-10-11 | Xerox Corp | Data-processing system for pipeline data processing and pipeline data-processing method |
-
2008
- 2008-07-31 JP JP2008198078A patent/JP4599438B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004062686A (en) * | 2002-07-30 | 2004-02-26 | Dainippon Printing Co Ltd | Parallel processing system, server, parallel processing method, program and recording medium |
JP2006221638A (en) * | 2005-02-07 | 2006-08-24 | Sony Computer Entertainment Inc | Method and device for providing task change application programming interface |
Also Published As
Publication number | Publication date |
---|---|
JP2010039511A (en) | 2010-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9928109B2 (en) | Method and system for processing nested stream events | |
JP3139392B2 (en) | Parallel processing system | |
US8149854B2 (en) | Multi-threaded transmit transport engine for storage devices | |
TWI426452B (en) | Work processing device | |
US20160019067A1 (en) | Mechanism for instruction set based thread execution on a plurality of instruction sequencers | |
TWI416413B (en) | Work processing device | |
US8949549B2 (en) | Management of ownership control and data movement in shared-memory systems | |
US20060253649A1 (en) | Software defined FIFO memory for storing a set of data from a stream of source data | |
JP2003030050A (en) | Method for executing multi-thread and parallel processor system | |
KR20090066765A (en) | Method and apparatus for migrating task in multicore platform | |
JP6296678B2 (en) | Method and apparatus for ensuring real-time performance of soft real-time operating system | |
JP2012104140A (en) | Sharing processor execution resources in waiting state | |
WO2007020740A1 (en) | Buffer management method and buffer management device | |
KR20200014378A (en) | Job management | |
US10095542B2 (en) | Cooperative thread array granularity context switch during trap handling | |
US20190236017A1 (en) | Method and system for efficient communication and command system for deferred operation | |
KR100895536B1 (en) | Data transfer mechanism | |
JP2000047887A (en) | Speculative multi-thread processing method and its device | |
US20140082624A1 (en) | Execution control method and multi-processor system | |
US9779044B2 (en) | Access extent monitoring for data transfer reduction | |
JP4599438B2 (en) | Pipeline processing apparatus, pipeline processing method, and pipeline control program | |
KR101203157B1 (en) | Data Transfer System, Apparatus and Method | |
US11860785B2 (en) | Method and system for efficient communication and command system for deferred operation | |
KR102170966B1 (en) | Apparatus and method for managing reorder buffer of high-performance out-of-order superscalar cores | |
JP2010026575A (en) | Scheduling method, scheduling device, and multiprocessor system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100519 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100525 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100726 |
|
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: 20100831 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100927 |
|
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: 20131001 Year of fee payment: 3 |
|
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 |