JP5175517B2 - Processor - Google Patents
Processor Download PDFInfo
- Publication number
- JP5175517B2 JP5175517B2 JP2007263941A JP2007263941A JP5175517B2 JP 5175517 B2 JP5175517 B2 JP 5175517B2 JP 2007263941 A JP2007263941 A JP 2007263941A JP 2007263941 A JP2007263941 A JP 2007263941A JP 5175517 B2 JP5175517 B2 JP 5175517B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- unit
- thread
- configuration information
- instructions
- 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
- Advance Control (AREA)
Description
本発明はプロセッサに関するものであり、特に、再構成可能な集積回路を有するプロセッサに関する。 The present invention relates to a processor, and more particularly to a processor having a reconfigurable integrated circuit.
近年のプロセッサ、例えば、デジタル信号を用いた映像、音響機器に搭載されるプロセッサは、複数の処理に対応する必要がある。
映像を圧縮する場合を見てみると、その圧縮方法としてMPEG(Moving Picture Experts Group)2、MPEG4、H.263、H.264など、多数の規格が実用化されている。
A recent processor, for example, a video signal using a digital signal, or a processor mounted on an audio device needs to support a plurality of processes.
Looking at the case of compressing video, MPEG (Moving Picture Experts Group) 2, MPEG4, H.264, etc. are used as compression methods. 263, H.M. Many standards such as H.264 have been put into practical use.
従って、ユーザの利便性などを考慮し、近年の映像、音響機器は、1機器で、これら複数の規格への対応など、複数の機能の実現が求められる。
この要求に答える為には、一つの処理を行うハードウェアを複数搭載することで複数の処理を実現するか、又は、ハードウェアは一つ搭載して、ソフトウェアで複数の処理を実行するかの方法が考えられる。
Therefore, in consideration of user convenience and the like, recent video and audio equipment is one device, and it is required to realize a plurality of functions such as correspondence to the plurality of standards.
In order to respond to this requirement, whether multiple processes are implemented by installing multiple hardware that performs one process, or whether multiple processes are executed by software by installing one hardware. A method is conceivable.
前者の方法は、高性能を実現できるという利点があるものの、実現すべき機能が多数になった場合、回路規模が大きくなるという欠点がある。更に、新しい機能を追加する場合などには、ハードウェアの追加が必要となる。
一方、後者の方法は、ソフトウェアの追加、変更等により、複数の機能の実現、追加などを柔軟に行うことができるという利点があるが、性能を上げることが困難であるという欠点がある。
The former method has an advantage that high performance can be realized, but has a disadvantage that the circuit scale becomes large when a large number of functions are to be realized. Further, when adding a new function, it is necessary to add hardware.
On the other hand, the latter method has an advantage that a plurality of functions can be flexibly realized and added by adding or changing software, but has a drawback that it is difficult to improve performance.
そこで、均質な回路構成の一部に特定の処理に適した回路を組み込み、動的にハードウェア構成を変更することにより、特定の処理に関して、柔軟且つ高性能な処理を実現する再構成可能なハードウェアが提案されている(特許文献1参照)。
しかし、このような再構成可能なハードウェアは、回路機能を実装する部分のほかに、配線部分やスイッチなども必要であり、回路規模が大きくならざるを得ず、また、再構成のためには時間を必要とする。
そこで、本発明は、回路規模を抑えつつ、柔軟且つ高性能なプロセッサの提供を目的とする。
However, such reconfigurable hardware requires a wiring part and a switch in addition to the part that implements the circuit function, and the circuit scale must be increased. Need time.
Accordingly, an object of the present invention is to provide a flexible and high-performance processor while suppressing the circuit scale.
上記課題を解決する為に、複数のスレッドを巡回的に、そのスレッドに割当てられた時間ずつ実行するプロセッサであって、再構成可能な集積回路と、回路構成情報に基づいて、前記集積回路の一部分を再構成する再構成手段と、複数のスレッド各々に対応する回路構成情報を記憶する構成情報記憶手段と、順次、スレッドに対応する回路構成情報に基づき再構成された集積回路を用いて、当該スレッドを実行させる制御手段と、前記制御手段があるスレッドを実行させている間に、次に実行するスレッドを選択する選択手段とを備えることを特徴とする。 In order to solve the above-mentioned problem, a processor that executes a plurality of threads cyclically for each time allotted to the thread, the reconfigurable integrated circuit, and based on the circuit configuration information, Using reconfiguration means for reconfiguring a part, configuration information storage means for storing circuit configuration information corresponding to each of a plurality of threads, and an integrated circuit reconfigured sequentially based on circuit configuration information corresponding to a thread, Control means for executing the thread, and selection means for selecting a thread to be executed next while the control means is executing a thread.
本発明に係るプロセッサは、上述の構成を備えることにより、スレッドごとに回路を再構成できるので、そのスレッドに適した回路を用いて実行することができるようになる。
また、前記制御手段は、更に、スレッドを実行させている間に、実行させているスレッドが使用している前記集積回路の部分以外の部分について、前記再構成手段に前記選択手段で選択されたスレッドに対応する回路構成情報に基づいた再構成をさせることとしてもよい。
Since the processor according to the present invention has the above-described configuration, the circuit can be reconfigured for each thread, so that the processor can be executed using a circuit suitable for the thread.
Further, the control means is further selected by the selection means by the reconfiguration means for a part other than the part of the integrated circuit used by the executing thread while executing the thread. Reconfiguration based on the circuit configuration information corresponding to the thread may be performed.
これにより、スレッドを実行中に、次のスレッドの為の再構成を行うことできるようになるので、再構成に要する時間が不要となり、柔軟且つ高性能なプロセッサを実現できるようになる。
また、前記プロセッサは、更に、演算器を含み、前記制御手段は、前記演算器と前記再構成された集積回路とを用いて、当該スレッドを実行させることとしてもよい。
This makes it possible to perform reconfiguration for the next thread during execution of a thread, thereby eliminating the time required for reconfiguration and realizing a flexible and high-performance processor.
The processor may further include an arithmetic unit, and the control means may execute the thread using the arithmetic unit and the reconfigured integrated circuit.
これにより、通常の演算器と、再構成した集積回路を使用してスレッドを実行することができ、処理に応じて通常の演算器を使用したり、再構成した演算器を使用したり、又は、双方使用したりできるので、回路規模を抑えつつ、柔軟且つ高性能な処理が出来るようになる。例えば、再構成した集積回路を、特定処理用の演算器として使用するなどである。 As a result, a thread can be executed using a normal arithmetic unit and a reconfigured integrated circuit. Depending on the processing, a normal arithmetic unit can be used, a reconfigured arithmetic unit can be used, or Since both can be used, flexible and high-performance processing can be performed while suppressing the circuit scale. For example, the reconfigured integrated circuit is used as a computing unit for specific processing.
すなわち、全ての処理のために集積回路を再構成するのではないので、再構成可能な回路の規模を抑え、プロセッサ全体の規模を小さくすることが可能となり、且つ、処理に必要な回路は再構成できるので柔軟且つ高性能な処理が可能となる。
また、複数の命令から成るプログラムを実行するプロセッサであって、再構成可能な集積回路と、回路構成情報に基づいて、前記集積回路の一部分を再構成する再構成手段と、複数の命令各々に対応する回路構成情報を記憶する構成情報記憶手段と、前記回路構成情報に基づいて前記集積回路を同時に再構成可能な2以上の命令を選択する選択手段と、前記選択手段で選択された2以上の命令に対応する回路構成情報に基づき再構成された集積回路を用いて、当該2以上の命令を並列実行する実行手段とを備えることを特徴とする。
In other words, since the integrated circuit is not reconfigured for all processes, the scale of reconfigurable circuits can be reduced, the scale of the entire processor can be reduced, and the circuits necessary for processing can be reconfigured. Since it can be configured, flexible and high-performance processing is possible.
A processor for executing a program comprising a plurality of instructions, a reconfigurable integrated circuit; reconfiguration means for reconfiguring a portion of the integrated circuit based on circuit configuration information; and a plurality of instructions Configuration information storage means for storing corresponding circuit configuration information, selection means for selecting two or more instructions capable of simultaneously reconfiguring the integrated circuit based on the circuit configuration information, and two or more selected by the selection means And executing means for executing the two or more instructions in parallel using an integrated circuit reconfigured based on circuit configuration information corresponding to the instructions.
本発明に係るプロセッサは、上述の構成を備えることにより、命令毎に集積回路を再構成でき、再構成する回路の規模などに応じて、複数の命令用の再構成を同時に行えるので、回路規模を抑えつつ、柔軟且つ高性能な処理が出来るようになる。再構成を同時に行うためには、命令の順序を考慮するだけでなく、ある命令に必要な集積回路の回路規模と、別の命令に必要な集積回路の回路規模とを合わせても、再構成可能な論理回路の回路規模を越えない必要がある。 Since the processor according to the present invention has the above-described configuration, the integrated circuit can be reconfigured for each instruction, and the reconfiguration for a plurality of instructions can be performed simultaneously according to the scale of the circuit to be reconfigured. It becomes possible to perform flexible and high-performance processing while suppressing the above. In order to perform reconfiguration at the same time, not only the order of instructions is taken into account, but also the reconfiguration can be achieved by combining the circuit scale of an integrated circuit required for one instruction with the circuit scale of an integrated circuit required for another instruction. It is necessary not to exceed the circuit scale of possible logic circuits.
<実施形態1>
<概要>
本発明に係るプロセッサは、通常のプロセッサが備えている演算器のほかに、再構成可能なハードウェアを備え、処理を分担することで、回路規模を抑えつつ、高性能な処理を実現するものである。
<
<Overview>
The processor according to the present invention includes reconfigurable hardware in addition to the arithmetic unit provided in a normal processor, and realizes high-performance processing while suppressing the circuit scale by sharing the processing. It is.
すなわち、複数の処理であっても、処理の全てが異なっているわけではなく、共通する処理や命令、頻繁に使用される処理や命令があることに着目し、共通するものは通常の演算装置で行い、各処理に特有の処理は再構成可能なハードウェアによって構成された演算装置で行わせることで、プロセッサ全体としての回路規模を押さえつつ、高性能を維持するものである。 That is, even if it is a plurality of processes, not all of the processes are different, but paying attention to common processes and instructions, frequently used processes and instructions, and common ones are ordinary arithmetic devices The processing specific to each processing is performed by an arithmetic unit configured by reconfigurable hardware, thereby maintaining high performance while suppressing the circuit scale of the entire processor.
本実施形態のプロセッサは、マルチスレッドプロセッサであり、マルチスレッドを実現するための方法として、各タスクを一定時間ずつ順番に実行していくラウンドロビン方式を取るものとする。
各スレッドは、それぞれに固有の回路の方が適していたり、固有の回路を必要とする処理は、再構成可能なハードウェアで再構成した回路を使用して実行する。
The processor of the present embodiment is a multi-thread processor, and as a method for realizing multi-thread, a round robin method in which each task is executed in order for a certain time is assumed.
For each thread, a unique circuit is more suitable, or processing that requires a unique circuit is executed using a circuit reconfigured with reconfigurable hardware.
すなわち、本プロセッサは、スレッドそれぞれに固有の回路を備える必要が無いため、全体の回路規模を抑えることが可能となる。
但し、再構成には時間を要するため、その時間を削減することがポイントとなる。
以下、本発明の実施形態のマルチスレッドプロセッサについて説明する。
<構成>
以下、図1を用いて、本発明にかかるプロセッサ1000の構成を説明する。
In other words, the processor does not need to have a circuit unique to each thread, and thus the overall circuit scale can be suppressed.
However, since reconfiguration takes time, it is important to reduce the time.
The multithread processor according to the embodiment of the present invention will be described below.
<Configuration>
Hereinafter, the configuration of the
図1は、プロセッサ1000の構成例を表す図である。
プロセッサ1000は、マルチスレッドプロセッサ1100、再構成可能演算器1200、構成情報記憶部1300及び再構成制御部1400で構成される。
マルチスレッドプロセッサ1100は、通常のプロセッサであり、複数の異なる処理を時分割で実行することができる、いわゆるマルチスレッドプロセッサである。
FIG. 1 is a diagram illustrating a configuration example of the
The
The
マルチスレッドプロセッサ1100は、通常の演算器である固定機能演算器1120とスレッドスケジュール部1110とを有し、スレッドスケジュール部1110は、次に実行するスレッドを決定するなど、スレッドのスケジューリング機能を有する。
このスレッドスケジュール部1110は、次に実行するスレッドを決定して、レジスタの退避・復帰などの準備を行う他、本発明に特有の処理も行う。
The
The
具体的には、スレッド実行中に、次に実行するスレッドを選択し、そのスレッドを再構成制御部1400に通知するなどである。
このマルチスレッドプロセッサ1100は、内部の固定機能演算器1120と外部の再構成可能演算器1200の双方と、必要に応じて演算データのやり取りを行いながら処理を実行していく。
Specifically, during thread execution, a thread to be executed next is selected, and the thread is notified to the
The
次に、再構成可能演算器1200は、組合せ回路や順序回路を実現できる論理ブロックと、論理ブロック間の配線部分から成る。論理ブロックは、ルックアップテーブルとフリップフロップを含む回路ユニットであり、ルックアップテーブルの設定値を変えることで、所望の論理回路を実現する。また、配線部分には、トランジスタスイッチなどが配され、配線経路が自由に設定可能となっている。
Next, the
本実施形態では、論理ブロックはすべて同一の構成であるとし、個々に機能を変更でき、それらを組み替え可能な配線群で接続することで、各種機能の回路を実現する。
また、再構成可能演算器1200は、同一な構成の10個のエリアに分割されているものとする。これらエリアはそれぞれ独立して再構成が可能であり、エリア間は組み替え可能な配線が引かれ、複数エリアで一つの回路を実現できるものとする。
In the present embodiment, all the logic blocks have the same configuration, and the functions can be individually changed. By connecting them with a group of wires that can be rearranged, circuits having various functions are realized.
Further, it is assumed that the
構成情報記憶部1300は、再構成可能演算器1200を所望の回路に再構成する為の構成情報を記憶する機能を有する。構成情報は、所望の回路の個数分あるものとする。
この構成情報は、論理ブロックのルックアップテーブルの設定値や、配線経路を設定する為の各トランジスタスイッチへの制御信号の情報を含むものである。
また、構成情報記憶部1300は、構成情報以外に、後で説明するスレッド情報テーブル1410を記憶しておく機能を有する。このテーブルは、スレッドとそのスレッドで使用する構成情報を対応付けているものである。
The configuration
This configuration information includes the set value of the lookup table of the logic block and the information of the control signal to each transistor switch for setting the wiring path.
In addition to the configuration information, the configuration
再構成制御部1400は、スレッド実行中にスレッドスケジュール部1110から次のスレッドの通知を受けて、通常の固定機能演算器1120のみで実行可能なのか、再構成可能演算器1200を必要とするのかを判断し、再構成可能演算器1200を再構成する場合には、再構成可能演算器1200と構成情報記憶部1300に指示を出す機能を有する。
Whether the
再構成可能演算器1200に対して再構成を行う旨と再構成を行うエリアとを通知し、構成情報記憶部1300には、構成情報を指定して、その構成情報を再構成可能演算器1200に供給するよう指示する。
また、再構成ができない場合には、その旨をスレッドスケジュール部1110に返す機能を有する。再構成ができない場合とは、再構成可能演算器1200に、再構成できるエリアが無い場合である。
The
Further, when reconfiguration is not possible, it has a function of returning the fact to the
<動作>
次に、図2〜図4を用いて、本発明に係るプロセッサの動作を説明する。
図2を用いて、実行順通りにスレッドを実行する場合の例を説明し、図3を用いて、スレッドの実行順を変える場合の例を説明する。
最後に、図4を用いて、スレッドの制御処理をフローチャートを用いて説明する。
<Operation>
Next, the operation of the processor according to the present invention will be described with reference to FIGS.
An example in which threads are executed in the order of execution will be described with reference to FIG. 2, and an example in which the execution order of threads will be changed will be described with reference to FIG.
Finally, the thread control process will be described with reference to the flowchart of FIG.
<実行順通りにスレッドを実行する場合>
図2(a)は、スレッド情報テーブル1410の構成例及び内容例を示す図であり、図2(b)は、スレッドの実行例を示すタイムチャートである。
図2(a)で示すスレッド情報テーブル1410のスレッドを実行した場合のタイムチャートが、図2(b)で示すタイムチャートである。
<When threads are executed in the order of execution>
FIG. 2A is a diagram illustrating a configuration example and content example of the thread information table 1410, and FIG. 2B is a time chart illustrating a thread execution example.
The time chart when the thread of the thread information table 1410 shown in FIG. 2A is executed is the time chart shown in FIG.
まず、図2(a)のスレッド情報テーブル1410を説明する。
このスレッド情報テーブル1410は、構成情報記憶部1300に記憶されているものである。
スレッド情報テーブル1410は、スレッド名1411、構成情報1412及び使用エリア数1413で構成される。
First, the thread information table 1410 shown in FIG.
The thread information table 1410 is stored in the configuration
The thread information table 1410 includes a
スレッド名1411は、スレッドの識別子である。以下、「TH0」〜「TH3」で表される4つのスレッドが順に実行されるものとして説明する。
構成情報1412は、スレッド名1411で表されるスレッドが、再構成可能演算器1200を使用する場合の再構成の為の構成情報を示している。
使用エリア数1413は、再構成可能演算器1200を使用する場合に必要なエリア数を表す。
The
The
The
例えば、スレッド名1411「TH0」のスレッドは、構成情報1412「構成A」の構成で再構成された再構成可能演算器1200を使用し、構成情報1412「構成A」で再構成可能演算器1200を再構成するには、使用エリア数1413「6」個のエリアが必要となる。また、スレッド名1411「TH1」に対応する構成情報1412「―」は、再構成可能演算器1200を使用しない旨を示し、当然に使用エリア数1413「0」個である。
For example, the thread having the
次に、図2(b)を用いて、スレッドの実行例を説明する。
ここでは、スレッドが固定機能演算器1120を使用しているタイムチャート10と、そのスレッドが、再構成可能演算器1200を使用している場合の構成情報を表すタイムチャート20、及び、そのスレッドが実行中に、再構成可能演算器1200を再構成している構成情報を表すタイムチャート30を示している。また、時間を示す矢印の上方には構成情報を、下方には構成情報が必要とするエリア数を示す。尚、本図2(b)では、全てのスレッドは固定機能演算器1120を使用する場合を示しているが、使用しない期間があってももちろん良い。
Next, an example of thread execution will be described with reference to FIG.
Here, the
まず、スレッド名「TH0」、「TH1」、「TH2」、「TH3」の順で、スレッドが実行され、それぞれのスレッドが実行中に、次のスレッドが使用する再構成可能演算器1200を再構成しておくものとする。
このように事前に準備することで、再構成に要する時間を取る必要がなくなり、実質的にスレッドの実行時間のみとなる。
First, the threads are executed in the order of the thread names “TH0”, “TH1”, “TH2”, and “TH3”. While each thread is executing, the
By preparing in advance in this way, it is not necessary to take the time required for reconfiguration, and substantially only the execution time of the thread.
例えば、スレッド名「TH1」のスレッド100が、固定機能演算器1120のみを使用して、スレッドを実行している。
この間に、次に実行予定のスレッド名1411「TH2」のスレッド110が使用する構成情報1412「構成C」で再構成可能演算器1200を再構成する。
この場合、再構成可能演算器1200は全部で10個のエリアを備えていることから、使用している再構成可能演算器1200のエリア数は、「構成C」に必要な「3/10」エリア101となる。
For example, the
During this time, the
In this case, since the
同様に、スレッド名「TH2」のスレッド110が、固定機能演算器1120と、再構成可能演算器の「構成C」を使用して、スレッドを実行している。
この間に、次に実行予定のスレッド名1411「TH3」のスレッドが使用する構成情報1412「構成D」で再構成可能演算器1200を再構成する。
この場合、使用している再構成可能演算器1200のエリア数は、「構成C」が使用している「3/10」エリアと「構成D」が必要とする「4/10」エリアを加えた「7/10」エリア111となる。
Similarly, the
During this time, the
In this case, the number of areas of the
このように、順繰りにスレッド実行前に、必要な再構成を事前に行う。
<スレッドの実行順を変える場合>
次に、図3を用いて、スレッドの実行順を変えることにより、スレッド実行中に、次のスレッドの為の再構成が可能となる例を説明する。
図3(a)は、スレッド情報テーブル1420の構成例及び内容例を示す図であり、図3(b)及び(c)は、スレッドの実行例を示すタイムチャートである。
In this way, necessary reconfiguration is performed in advance before executing the thread in order.
<To change the thread execution order>
Next, an example in which reconfiguration for the next thread can be performed during thread execution by changing the execution order of the threads will be described with reference to FIG.
FIG. 3A is a diagram illustrating a configuration example and content example of the thread information table 1420, and FIGS. 3B and 3C are time charts illustrating thread execution examples.
図3(a)で示すスレッド情報テーブル1420のスレッドを実行した場合のタイムチャートが、図3(b)及び(c)で示すタイムチャートである。
まず、図3(a)のスレッド情報テーブル1420を説明する。
この図3(a)のスレッド情報テーブル1420は、図2(a)のスレッド情報テーブル1410とほとんど同じである為、差異のみを説明する。
The time chart when the thread of the thread information table 1420 shown in FIG. 3A is executed is the time chart shown in FIGS. 3B and 3C.
First, the thread information table 1420 in FIG.
Since the thread information table 1420 in FIG. 3A is almost the same as the thread information table 1410 in FIG. 2A, only the differences will be described.
異なる点は、スレッド名1411「TH1」のスレッド1421が、再構成可能演算器1200を使用する点である。構成情報1412「構成B」、使用エリア数1413「5」個である。
次に、図3(b)を用いて、スレッドの実行例を示すタイムチャートを説明する。タイムチャートの意味するところは、図2(b)と同様である。
The difference is that the
Next, a time chart showing an example of thread execution will be described with reference to FIG. The meaning of the time chart is the same as in FIG.
スレッド名「TH0」のスレッド200が、固定機能演算器と、再構成可能演算器の「構成A」を使用して、スレッドを実行している。
この間に、次に実行予定のスレッド名1411「TH1」のスレッドが使用する構成情報1412「構成B」で再構成可能演算器1200を再構成しようとする。
この場合、使用している再構成可能演算器1200のエリア数は、「構成A」が使用している「6/10」エリアと「構成B」が必要とする「5/10」エリアを加えた「11/10」エリア201となり、スレッド名「TH0」のスレッドの実行中に「構成B」の再構成は出来ない。
The
During this time, the
In this case, the number of areas of the
そこで、図3(c)に示すように、スレッド名「TH1」のスレッド230の前に、スレッド名「TH2」のスレッド220を実行する。すなわち、実行順序を入れ替えて、スレッドを実行する。
とすると、スレッド名「TH0」のスレッド実行中に、再構成するのはスレッド名「TH2」のスレッド220が使用する「構成C」であり、「構成A」が使用している「6/10」エリアと「構成C」が必要とする「3/10」エリアを加えた「9/10」エリア211となり、事前に再構成を行うことが出来るようになる。
Therefore, as shown in FIG. 3C, the
Then, during execution of the thread with the thread name “TH0”, what is reconfigured is the “configuration C” used by the
同様に、スレッド名「TH2」のスレッド220が、固定機能演算器1120と、再構成可能演算器1200の「構成C」を使用して、スレッドを実行している間に、次に実行予定のスレッド名1411「TH1」のスレッドが使用する構成情報1412「構成B」で再構成可能演算器1200を再構成する。
この場合、使用している再構成可能演算器1200のエリア数は、「構成C」が使用している「3/10」エリアと「構成B」が必要とする「5/10」エリアを加えた「8/10」エリア222となる。
Similarly, while the
In this case, the number of areas of the
通常、ラウンドロビン方式では、各スレッドで実行すべき処理に応じて、スレッドに割り当てられるタイムスライスの長さが考慮される。すなわち、処理時間を保障しなければいけない場合などには、タイムスライスの長いスレッドを割り当てるなどである。
したがって、周期が崩れないことが、処理をスレッドに割り当てる際の前提条件となる。
Usually, in the round robin method, the length of a time slice allocated to a thread is considered according to the processing to be executed by each thread. That is, when it is necessary to guarantee the processing time, a thread having a long time slice is allocated.
Therefore, it is a precondition for assigning a process to a thread that the cycle does not collapse.
しかし、一つのタイムスライスの時間は、処理全体の実行時間に比べれば、非常に小さいものであるので、本プロセッサでは、所定時間内で、各スレッドの実行時間が予定通りになるようにスレッドスケジュール部1110で調整を行うこととする。例えば、全スレッドが10回実行することを一区切りとし、各スレッドの実行回数をカウントしておいて、最初のスレッドが11回目の実行を開始する前に、他のスレッドで10回に足りないものは、優先的に実行する。全スレッドが10回実行後、最初のスレッドの11回目の実行を開始するなどである。
However, since the time of one time slice is very small compared to the execution time of the entire process, the thread schedule is set so that the execution time of each thread is as planned within a predetermined time. The adjustment is performed by the
<スレッドの制御処理>
次に、図4を用いて、本プロセッサのスレッド制御の処理について説明する。
図4は、本プロセッサのスレッド制御の処理を示すフローチャートである。
スレッドスケジュール部1110が、次に実行するスレッドを選択する(ステップS100)。制御処理を開始直後の場合は、最初のスレッドである。
<Thread control processing>
Next, the thread control processing of this processor will be described with reference to FIG.
FIG. 4 is a flowchart showing thread control processing of the processor.
The
各スレッドに割り当てられている処理がすべて終了している場合は(ステップS110:Y)、スレッドの制御処理を終了する。
選択されたスレッドである次スレッドを実行する場合は、そのスレッド名1411を再構成制御部1400に渡し、再構成を依頼する。
依頼を受けた再構成制御部1400は、受取ったスレッド名1411が、再構成可能演算器1200を使用するか否かを構成情報記憶部1300に記憶されているスレッド情報テーブル1410を参照し、判断する。具体的には、受取ったスレッド名1411に対応する構成情報1412に構成が指定されている場合は、再構成可能演算器1200を使用すると判断する。
If all the processes assigned to each thread have been completed (step S110: Y), the thread control process is terminated.
When executing the next thread which is the selected thread, the
Upon receiving the request, the
使用しないと判断した場合(ステップS120:N)、再構成制御部1400は、その旨スレッドスケジュール部1110に返し、スレッドスケジュール部1110は、現在実行中のスレッドが終了次第、次スレッドの実行を開始する(ステップS150)。
一方、使用すると判断した場合は(ステップS120:Y)、再構成するエリアが空いているか否かを判断する(ステップS130)。具体的には、受取ったスレッド名1411に対応する使用エリア数1413に示されている数分のエリアが空いているかを判断する。
When it is determined not to use (N in step S120), the
On the other hand, if it is determined that the area is to be used (step S120: Y), it is determined whether or not an area to be reconfigured is free (step S130). Specifically, it is determined whether or not the number of areas shown in the number of used
再構成制御部1400は、内部に、現在使用されているエリアの番号を記憶しているものとし、使用しているスレッドのタイムスライスが終了した場合は、使用していたエリアは空いたものとされ、記憶しているエリア番号から消去する。
エリアが空いていないと判断した場合は(ステップS130:N)、再構成制御部1400は、スレッドスケジュール部1110にその旨通知する。スレッドスケジュール部1110は、異なるスレッドを選択する(ステップS100)。スレッドスケジュール部1110は、各スレッドの実行回数を記憶しておき、適切な時に優先的に選択して、全スレッドの実行回数をあわせるものとする。
The
If it is determined that the area is not free (step S130: N), the
一方、エリアが空いていると判断した場合には(ステップS130:Y)、再構成制御部1400は、再構成可能演算器1200に再構成する旨通知し、構成情報記憶部1300には、受取ったスレッド名1411に対応する構成情報1412を、エリアを指定して送信させる。送信後、再構成制御部1400は、内部に記憶している使用中のエリア番号を更新する。
On the other hand, when it is determined that the area is empty (step S130: Y), the
再構成可能演算器1200は、構成情報記憶部1300から送られた構成情報で、再構成を行い(ステップS140)、完了したら再構成制御部1400に通知する。
再構成が完了した旨の通知を受けた再構成制御部1400は、その旨スレッドスケジュール部1110に返し、スレッドスケジュール部1110は、現在実行中のスレッド終了後、すぐに次スレッド実行を開始する(ステップS150)。
The
The
スレッドを開始させたスレッドスケジュール部1110は、次のスレッドを選択する(ステップS100)。
<実施形態2>
<概要>
実施形態1が、スレッド毎に、再構成した再構成可能演算器を使用したのに対して、本実施形態では、命令毎に、再構成した再構成可能演算器を使用するものである。
The
<
<Overview>
In the first embodiment, a reconfigurable arithmetic unit that is reconfigured for each thread is used. In this embodiment, a reconfigurable arithmetic unit that is reconfigured is used for each instruction.
以下、本実施形態2の構成等を説明する。
<構成>
図5は、実施形態2のプロセッサ5000の構成例を表す図である。
プロセッサ5000は、命令フェッチ部5100、命令デコード部5200、演算制御部5300、アドレステーブル記憶部5400、再構成情報記憶部5500、再構成可能演算器5600及び固定機能演算器5700を備え、外部に命令記憶部5010を備える。
Hereinafter, the configuration of the second embodiment will be described.
<Configuration>
FIG. 5 is a diagram illustrating a configuration example of the
The
命令記憶部5010は、プロセッサ5000で実行する命令コードを記憶しておく機能を有する。
命令フェッチ部5100は、命令記憶部5010から、命令コードを読み込み、命令デコード部5200に渡す機能を有する。
命令デコード部5200は、命令フェッチ部5100から命令コードを受け取り、解析する通常の機能のほか、本発明に独自の機能を有する。
The
The instruction fetch
The
具体的には、デコードの結果、再構成可能演算器5600を用いる命令の場合は、命令種別から構成情報の記憶されているアドレスをアドレステーブル記憶部5400から取得し、再構成情報記憶部5500にアドレスを渡して再構成可能演算器5600に構成情報を送信させる機能である。
アドレステーブル記憶部5400は、命令種別とその構成情報のアドレスとを対応付けて記憶している機能を有している。
Specifically, in the case of an instruction using the reconfigurable computing unit 5600 as a result of decoding, the address where the configuration information is stored is obtained from the instruction type from the address
The address
演算制御部5300は、命令デコード部5200がデコードした結果に従って、演算動作を制御する機能を有する。固定機能演算器5700と再構成可能演算器5600とに対して、タイミングをとりながら命令を発行していく。
再構成情報記憶部5500は、複数の各命令に対応して、構成情報を記憶する機能を有する。ここで記憶されている各構成情報の先頭アドレスが、アドレステーブル記憶部5400で、命令種別と対応付けて記憶されている。この構成情報は、実施形態1の構成情報記憶部1300に記憶されている構成情報と同様である。
The
The reconfiguration
また、再構成情報記憶部5500は、命令デコード部5200からの指示で、指定されたアドレスの構成情報を、再構成可能演算器5600に送信する機能も有している。
再構成可能演算器5600は、再構成が可能な演算器であって、実施形態1の再構成可能演算器1200と同様である。但し本実施形態では、4つのエリアに分割されているものとする。
The reconfiguration
The reconfigurable computing unit 5600 is a reconfigurable computing unit, and is the same as the
固定機能演算器5700は、複数の固定機能演算器で構成され、本実施形態では3つの固定機能演算器(5701、5702、5703)で構成されるものとする。
以下、命令と構成情報との対応関係を簡単に説明し、動作を説明する。
<命令コードと構成情報との対応関係>
本発明で使用する命令コードから、その命令の実行に必要な再構成を行う為の構成情報の求め方を、図6及び図7を用いて説明する。
The fixed
Hereinafter, the correspondence between the instructions and the configuration information will be briefly described and the operation will be described.
<Correspondence between instruction code and configuration information>
A description will be given of how to obtain configuration information for reconfiguration necessary for execution of an instruction from the instruction code used in the present invention, with reference to FIGS.
図6は、本発明で使用する命令コードの構成例を示す図であり、図7は、命令情報テーブル5410の構成例及び内容例を示す図である。
まず、図6の命令コードの構成例から説明する。
本発明で使用する命令コード5110は、命令の種別を示すオペコード5111と、この命令で扱う値などを示すオペランド5112で構成される。
FIG. 6 is a diagram illustrating a configuration example of an instruction code used in the present invention, and FIG. 7 is a diagram illustrating a configuration example and content example of the instruction information table 5410.
First, the configuration example of the instruction code in FIG. 6 will be described.
The
本発明では、このオペコード5111と構成情報が対応付けられており(矢印参照)、命令の実行には再構成可能演算器5600が必要であると、プロセッサによって判断された場合には、対応付けられている構成情報によって再構成された再構成可能演算器5600で命令が実行される。
プロセッサによって、命令の実行には再構成可能演算器5600は不要であると、判断された場合には、固定機能演算器5700を用いて、実行がなされる。
In the present invention, the
If the processor determines that the reconfigurable computing unit 5600 is not required for execution of the instruction, the fixed
次に、図7の命令情報テーブル5410について説明する。
この命令情報テーブル5410は、アドレステーブル記憶部5400に記憶されているものとする。
命令情報テーブル5410は、オペコード種別5411、アドレス5412及び使用エリア数5413とで構成される。
Next, the instruction information table 5410 in FIG. 7 will be described.
This command information table 5410 is stored in the address
The instruction information table 5410 includes an
オペコード種別5411は、命令コードのオペコード、すなわち、命令を示すものである。ここでは、再構成可能演算器5600を用いる命令のみが記載されているものとする。
従って、ここに記載されていない命令は、固定機能演算器5700で実行することになる。
The
Therefore, instructions not described here are executed by the fixed
次に、アドレス5412は、オペコード種別5411で表されるオペコードに対応付けられている構成情報の、再構成情報記憶部5500内でのアドレスを示す。尚、本実施形態ではアドレスとしているが、ID等、再構成情報を特定できるものであればよい。
使用エリア数5413は、再構成可能演算器5600を使用する場合のエリア数を表す。例えば、オペコード種別5411「Sub」の命令は、アドレス5412「addr1」で示されるアドレスに記憶されている構成情報で再構成された再構成可能演算器5600を使用し、再構成可能演算器5600を再構成するには、使用エリア数5413「3」個のエリアが必要である。
Next, an
The used
本実施形態の場合、命令の使用する再構成可能演算器5600のエリア数を考慮し、プログラムを機械語に変換するコンパイル時に、本実施形態では命令コード5110に変換する時に、命令の順序及び命令で再構成するエリアの番号を決めておくものとする。すなわち、コンパイル時に、実行する命令の順序を考慮した上で、前の命令の実行中に再構成できるような命令順に構成し、それぞれの再構成を行うエリアを決めておくものとする。また、使用するエリア番号は、例えば、オペランドでエリア番号を指定したり、命令毎にエリア番号を決めておくなどして、命令デコード部が知ることができるようにしてあるものとする。
In the case of the present embodiment, taking into account the number of areas of the reconfigurable computing unit 5600 used by instructions, the order of instructions and instructions when compiling to convert the program into machine language, and when converting to the
<動作>
次に、図8〜図10とを用いて、どのように命令が実行されるかを説明する。
図8は、本発明に係る命令セットを用いたプログラム例であり、図9は、プログラムを動作させたプロセッサのパイプライン動作の例である。
また、図10は、本実施形態のプロセッサの命令実行処理を示すフローチャートである。
<Operation>
Next, how the instruction is executed will be described with reference to FIGS.
FIG. 8 shows an example of a program using the instruction set according to the present invention, and FIG. 9 shows an example of a pipeline operation of a processor that operates the program.
FIG. 10 is a flowchart showing instruction execution processing of the processor of this embodiment.
まず、図8のプログラムについて簡単に説明する。
オペコード5111「Add」、オペランド5112「r0,r1,r2」の命令コードは、レジスタ1の内容とレジスタ2の内容を加算し、結果をレジスタ0に代入することを意味し、オペコード5111「Sub」、オペランド5112「r3,r1,r3」の命令コードは、レジスタ1の内容からレジスタ3の内容を減算し、結果をレジスタ3に代入することを意味する。
First, the program of FIG. 8 will be briefly described.
The instruction code of the
また、オペコード5111「Reconf0」、オペランド5112「r2,r0,0xfe」の命令コードは、レジスタ0の内容と即値「0xfe」を用いて、演算「Reconf0」を行い、結果をレジスタ2に代入することを意味し、オペコード5111「Reconf1」、オペランド5112「r3,r1,r3」の命令コードは、レジスタ1の内容とレジスタ3の内容とを用いて、演算「Reconf1」を行い、結果をレジスタ3に代入することを意味する。
The instruction code of
次に、図9及び図10を用いて、プログラムを実行するプロセッサの動作を説明する。図10のフローチャートに沿って、図9のタイムチャートを参照しながら説明する。
図8に示すプログラムが命令記憶部5010に記憶されているものとする。
まず、命令フェッチ部5100は、命令コード「Add r0,r1,r2」をフェッチし(図10:ステップS800、図9:ステップS500)、命令デコード部5200に渡す。
Next, the operation of the processor that executes the program will be described with reference to FIGS. Description will be made along the flowchart of FIG. 10 with reference to the time chart of FIG.
Assume that the program shown in FIG. 8 is stored in the
First, the instruction fetch
命令コードを受取った命令デコード部5200は、受取った命令コードを解析する。
受取った命令コードが終了を示す旨のコードである場合には(図10:ステップS810:Y)、命令デコード部5200は、処理を終了する。
また、命令コードが終了を示す旨のコードでない場合には(図10:ステップS810:N)、命令デコード部5200は、オペコード5111「Add」をアドレステーブル記憶部5400に渡して、構成情報のアドレスを要求する。
The
If the received instruction code is a code indicating completion (FIG. 10: step S810: Y), the
If the instruction code is not a code indicating completion (FIG. 10: Step S810: N), the
アドレステーブル記憶部5400は、命令情報テーブル5410を参照し、オペコード種別5411に、渡されたオペコード5111「Add」が在るかを検索し、結果、ないことから、再構成可能演算器5600は使用しない旨を命令デコード部5200に返す(図10:ステップS820:N、図9:ステップS510)。
再構成可能演算器5600を使用しない旨を受取った命令デコード部5200は、「Add r0,r1,r2」のデコード済みの命令を演算制御部5300に渡す。
The address
The
デコード結果を渡された演算制御部5300は、固定機能演算器5700に命令を発行し、命令コード「Add r0,r1,r2」を実行する(図10:ステップS830、840)。
命令フェッチ部5100は、命令コード「Add r0,r1,r2」をフェッチ後、次の命令コード「Sub r3,r1,r3」をフェッチし(図10:ステップS800、図9:ステップS520)、命令デコード部5200に渡す。
The
The instruction fetch
命令コードを受取った命令デコード部5200は、オペコード5111「Sub」をアドレステーブル記憶部5400に渡して、構成情報のアドレスを要求する。
アドレステーブル記憶部5400は、命令情報テーブル5410を参照し、オペコード種別5411に、渡されたオペコード5111「Sub」が在るかを検索し、結果、あることから、アドレス5412「addr1」を命令デコード部5200に返す(図10:ステップS820:Y、図9:ステップS600)。
Receiving the instruction code, the
The address
アドレスを受取った命令デコード部5200は、再構成情報記憶部5500に受取ったアドレス5412「addr1」を渡し、そのアドレスの構成情報を再構成可能演算器5600に送信して再構成を行う旨を指示する。
指示を行った命令デコード部5200は、「Sub r3,r1,r3」のデコード済みの命令を演算制御部5300に渡す。
The
The
一方指示を受取った再構成情報記憶部5500は、受取ったアドレスの構成情報を再構成可能演算器5600に送信して再構成を行う(図10:ステップS850、図9:ステップS610)。
この再構成は、再構成可能演算器5600の4エリアのうち、3エリアを再構成する(図7参照)。
On the other hand, the reconfiguration
This reconfiguration reconfigures three areas of the four areas of the reconfigurable computing unit 5600 (see FIG. 7).
デコード結果を渡された演算制御部5300は、再構成可能演算器5600に命令を発行し、命令コード「Sub r3,r1,r3」を実行する(図10:ステップS860、図9:ステップS620)。
その後、実行結果をレジスタ3に書き出す(図9:ステップS630)。
このように、命令を順次同時に行っていく。
The
Thereafter, the execution result is written to the register 3 (FIG. 9: Step S630).
In this way, instructions are sequentially executed simultaneously.
ここで、命令コード「Sub r3,r1,r3」の次の命令コード「Reconf0 r2,r0,0xfe」を実行する場合を見ると、このオペコード「Reconf0」は再構成可能演算器5600を使用する。
従って、「Sub r3,r1,r3」を実行中(図9:ステップS620)に、再構成を行うことになる(図9:ステップS700)。
Here, when the case where the instruction code “Reconf0 r2, r0,0xfe” next to the instruction code “Sub r3, r1, r3” is executed is executed, this opcode “Reconf0” uses the reconfigurable computing unit 5600.
Therefore, reconfiguration is performed while “Sub r3, r1, r3” is being executed (FIG. 9: Step S620) (FIG. 9: Step S700).
このオペコード種別5411「Reconf0」は、使用エリア数5413「1」個であることから、「Sub r3,r1,r3」がエリアを3個使用して実行中であっても、再構成が可能となる。
次の命令コード「Reconf1 r3,r1,r3」を実行する場合も同様である。
このように、再構成可能な演算器を持つプロセッサにおいて、命令単位で再構成可能な演算器を制御することが可能となり、柔軟且つ高性能な演算処理を、高い面積効率で実現することができる。
Since this
The same applies when the next instruction code “Reconf1 r3, r1, r3” is executed.
Thus, in a processor having a reconfigurable arithmetic unit, it becomes possible to control the reconfigurable arithmetic unit in units of instructions, and flexible and high-performance arithmetic processing can be realized with high area efficiency. .
<変形例>
次に、実施形態2の変形例について説明する。
実施形態2では、1命令ごとに再構成可能演算器を再構成したが、本変形例では、複数の命令を一度に再構成する例を説明する。同時に複数の命令を実行できることから、処理速度の向上を図ることができる。
<Modification>
Next, a modification of the second embodiment will be described.
In the second embodiment, the reconfigurable computing unit is reconfigured for each instruction. However, in this modification, an example in which a plurality of instructions are reconfigured at once will be described. Since a plurality of instructions can be executed at the same time, the processing speed can be improved.
図11〜図13とを用いて、どのように命令が実行されるかを説明する。
図11は、本変形例の命令セットを用いたプログラム例であり、図12は、プログラムを動作させたプロセッサのパイプライン動作の例である。
また、図13は、本変形例のプロセッサの命令実行処理を示すフローチャートである。
まず、図11のプログラムの、各命令の内容については、図8と同様である。
How an instruction is executed will be described with reference to FIGS.
FIG. 11 shows an example of a program using the instruction set of the present modification, and FIG. 12 shows an example of a pipeline operation of a processor that operates the program.
FIG. 13 is a flowchart showing instruction execution processing of the processor according to this modification.
First, the contents of each command in the program of FIG. 11 are the same as those of FIG.
但し、「Reconf0 r2,r0,0xfe」と「Reconf1 r3,r1,r3」とを同じステージで行う点が異なる。図11では、説明の便宜上、「Reconf0 r2,r0,0xfe」と「Reconf1 r3,r1,r3」とを横に並べて記載することで、同時に実行されることを示しているが、2命令を同時に実行することを命令デコード部5200が解釈できるように、コンパイラが出力しておくこととする。
However, “Reconf0 r2, r0,0xfe” and “Reconf1 r3, r1, r3” are different in the same stage. In FIG. 11, for convenience of explanation, “Reconf0 r2, r0,0xfe” and “Reconf1 r3, r1, r3” are shown side by side to indicate that they are executed at the same time. It is assumed that the compiler outputs the instruction so that the
例えば、命令の使用する再構成可能演算器5600のエリア数を考慮し、コンパイル時に、命令の順序及び命令で再構成するエリアの番号を決める。すなわち、コンパイル時に、命令実行の順序を考慮して、同時に実行可能で、且つ、同時に再構成できる命令を選択し、それぞれの再構成を行うエリアを決める。この並列に実行する命令と使用するエリア番号とは、例えば、並列実行を示す命令コードを設けて、そのオペランドにこれら命令とエリア番号などを記載する。 For example, considering the number of areas of the reconfigurable computing unit 5600 used by instructions, the order of instructions and the number of areas to be reconfigured by instructions are determined at the time of compilation. That is, at the time of compiling, in consideration of the order of instruction execution, instructions that can be executed at the same time and that can be reconfigured at the same time are selected, and the areas to be reconfigured are determined. For the instructions to be executed in parallel and the area number to be used, for example, an instruction code indicating parallel execution is provided, and these instructions and the area number are described in the operand.
具体的には、コンパイルにおいて、使用エリア数5413が考慮されて、「Sub」と「Reconf0」とは同時に再構成可能であるが、「Sub」と「Reconf1」とは同時に再構成は出来ないことになる。「Sub」と「Reconf0」とは合わせて4つのエリアを使用するが、「Sub」と「Reconf1」とは合わせて5つのエリアを必要とするからである(図7参照)。
図12及び図13を用いて、プログラムを実行するプロセッサの動作を簡単に説明する。図13のフローチャートに沿って、図12のタイムチャートを参照しながら説明する。
Specifically, in compilation, “Sub” and “Reconf0” can be reconfigured at the same time, considering the number of used
The operation of the processor that executes the program will be briefly described with reference to FIGS. Description will be made along the flowchart of FIG. 13 with reference to the time chart of FIG.
図13のフローチャートは、図10のフローチャートとの差異のみを説明する。具体的には、ステップS900〜ステップS920までである。
「Reconf0 r2,r0,0xfe」と「Reconf1 r3,r1,r3」は、再構成可能演算器を使用し、且つ、同時に実行することを解析した命令デコード部5200は、オペコード5111「Reconf0」と「Reconf1」とをアドレステーブル記憶部5400に渡して、構成情報のアドレスを要求する。
The flowchart of FIG. 13 describes only the differences from the flowchart of FIG. Specifically, it is from step S900 to step S920.
“Reconf0 r2, r0,0xfe” and “Reconf1 r3, r1, r3” use a reconfigurable computing unit, and the
アドレステーブル記憶部5400は、命令情報テーブル5410を参照し、アドレス5412「addr4」と「addr5」とを命令デコード部5200に返す(図13:ステップS820:Y、ステップS900:Y)。
アドレスを受取った命令デコード部5200は、再構成情報記憶部5500に受取ったアドレス5412「addr4」と「addr5」を渡し、そのアドレスの構成情報を再構成可能演算器5600に送出して再構成を行う旨を指示する。
The address
The
指示を行った命令デコード部5200は、「Reconf0 r2,r0,0xfe」と「Reconf1 r3,r1,r3」のデコード済みの命令を演算制御部5300に渡す。
一方指示を受取った再構成情報記憶部5500は、受取ったアドレスの構成情報を再構成可能演算器5600に送信して再構成を行う(図13:ステップS910、図12:ステップS700)。
The
On the other hand, the reconfiguration
デコード結果を渡された演算制御部5300は、再構成可能演算器5600に命令を発行し、命令コード「Reconf0 r2,r0,0xfe」と「Reconf1 r3,r1,r3」を実行する(図13:ステップS920、図12:ステップS710)。
命令コードを受取った命令デコード部5200は、再構成可能演算器を使用しない場合(図13:ステップS820:N)と、使用したとしても1つの命令の場合(図13:ステップS900:N)とには、それぞれ図10と同様の処理を行う(図13:ステップS830〜ステップS870)。
The
The
尚、ここでは、再構成可能な演算器を用いる二つの命令を同時に処理する場合を説明したが、同時に発行できる命令数は二つに限るものではない。また、固定機能演算器5700を使用する命令と同時に処理してもよい。
<補足>
以上、本発明に係るプロセッサについて実施形態に基づいて説明したが、このプロセッサを部分的に変形することもでき、本発明は上述の実施形態に限られないことは勿論である。即ち、
(1)実施形態2では、命令コードのオペコードと構成情報とを対応付けていたが、これに限られない。
Although the case where two instructions using a reconfigurable computing unit are processed simultaneously has been described here, the number of instructions that can be issued simultaneously is not limited to two. Further, it may be processed simultaneously with an instruction using the fixed
<Supplement>
The processor according to the present invention has been described above based on the embodiment. However, the processor may be partially modified, and the present invention is not limited to the above-described embodiment. That is,
(1) In the second embodiment, the operation code of the instruction code is associated with the configuration information, but the present invention is not limited to this.
例えば、オペランドの一部に構成情報を示すコードを入れておいても良い。図14に示すように、命令コード5150のオペランドのフィールド5160に、構成情報のIDなどを入れておき、実行時にIDに応じて構成情報を特定する。
(2)実施形態2では、説明の便宜上、複数の固定機能演算器の実行については詳細な説明はしていないが、これらの固定機能演算器と再構成可能演算器とが同時に実行できるものである場合には、同時に複数の命令を発行することとしても良い。
For example, a code indicating configuration information may be inserted in a part of the operand. As shown in FIG. 14, the ID of the configuration information or the like is entered in the
(2) In the second embodiment, for the convenience of explanation, the execution of a plurality of fixed function computing units is not described in detail, but these fixed function computing units and reconfigurable computing units can be executed simultaneously. In some cases, a plurality of instructions may be issued simultaneously.
同時に発行すべき命令の決定如何によっては、演算効率を大幅に向上させることが可能となる。
すなわち、再構成可能なハードウェアによって構成された演算器においては、複数種類の演算機能が選択的に実行可能である。従って、任意の命令を実行することでき、本発明による命令セットを用いることにより、命令の並列度を向上させた最適な機能を実現するプログラムを作成することが可能となるからである。
Depending on the determination of the instructions to be issued at the same time, the calculation efficiency can be greatly improved.
That is, in an arithmetic unit configured by reconfigurable hardware, a plurality of types of arithmetic functions can be selectively executed. Therefore, an arbitrary instruction can be executed, and by using the instruction set according to the present invention, it is possible to create a program that realizes an optimum function with improved instruction parallelism.
同時に発行すべき命令を決定する動作は、例えば、プロセッサの内部で命令解釈時に行われるものでも、プロセッサに対して与えられるプログラムの時点で、予め行われているものでもよい。
(3)実施形態では、再構成可能演算器は、均質な複数のエリアに分かれていることとしているが、エリア毎に異なる論理ブロックを有していてもよく、また、そのエリアの大きさが異なっていても良い。
(4)実施形態では、再構成可能演算器を構成する論理ブロックは、ルックアップテーブルとフリップフロップを含む回路ユニットであることとしているが、論理ブロックは、ALU(Arithmetic and Logical Unit)、シフトやデータ制御、論理演算を行なうユニット、フリップフロップなどから構成されるもの、すなわち、一般の論理回路の組合せで構成されるものであってもよい。
The operation for determining instructions to be issued at the same time may be performed in the processor at the time of instruction interpretation, or may be performed in advance at the time of a program given to the processor.
(3) In the embodiment, the reconfigurable computing unit is divided into a plurality of homogeneous areas, but each area may have a different logical block, and the size of the area is It may be different.
(4) In the embodiment, the logical block constituting the reconfigurable arithmetic unit is a circuit unit including a look-up table and a flip-flop, but the logical block is an ALU (Arithmetic and Logical Unit), shift or It may be configured by a unit that performs data control, logical operation, a flip-flop, or the like, that is, by a combination of general logic circuits.
本発明にかかるプロセッサは、回路規模を抑えつつ柔軟かつ高性能な処理を実現することが可能であるため、画像処理LSIの演算器等として特に有用である。 Since the processor according to the present invention can realize flexible and high-performance processing while suppressing the circuit scale, it is particularly useful as an arithmetic unit of an image processing LSI.
1000 5000 プロセッサ
1100 マルチスレッドプロセッサ
1110 スレッドスケジュール部
1110 旨スレッドスケジュール部
1120 固定機能演算器
1200 再構成可能演算器
1300 構成情報記憶部
1300 再構成情報記憶部
1400 再構成制御部
1410 1420 スレッド情報テーブル
5010 命令記憶部
5100 命令フェッチ部
5110 5150 命令コード
5111 オペコード
5112 オペランド
5200 命令デコード部
5300 演算制御部
5400 アドレステーブル記憶部
5410 命令情報テーブル
5413 使用エリア数
5500 再構成情報記憶部
5600 再構成可能演算器
5700 固定機能演算器
1000 5000
Claims (5)
再構成可能な集積回路と、
回路構成情報に基づいて、前記集積回路の一部分を再構成する再構成手段と、
複数の命令各々に対応する回路構成情報を記憶する構成情報記憶手段と、
前記回路構成情報に基づいて前記集積回路を同時に再構成可能な2以上の命令を選択する選択手段と、
前記選択手段で選択された2以上の命令に対応する回路構成情報に基づき再構成された集積回路を用いて、当該2以上の命令を並列実行する実行手段と
を備えることを特徴とするプロセッサ。 A processor for executing a program comprising a plurality of instructions,
A reconfigurable integrated circuit; and
Reconfiguration means for reconfiguring a portion of the integrated circuit based on circuit configuration information;
Configuration information storage means for storing circuit configuration information corresponding to each of a plurality of instructions;
Selection means for selecting two or more instructions capable of simultaneously reconfiguring the integrated circuit based on the circuit configuration information;
And a processor for executing the two or more instructions in parallel using an integrated circuit reconfigured based on circuit configuration information corresponding to the two or more instructions selected by the selection means.
読み込んだ命令コードをデコードする命令デコード部と、
再構成可能演算器を含む命令実行部と、
前記命令デコード部のデコード結果に従って、前記命令実行部の動作を制御する制御部と、
オペコードの種別毎に、当該オペコードが示す処理の実行に必要な回路を構成するための回路構成情報を記憶した構成情報記憶部と、
を備え、
前記命令デコード部は、デコード結果に従って再構成を行うように前記再構成可能演算器に指示し、
前記再構成可能演算器は、前記命令デコード部からの指示に従って、デコードしたオペコードに対応する回路構成情報を用いて再構成を行い、
前記制御部は、デコードした命令コードを再構成済みの再構成可能演算器に発行することで、オペランドが示すデータに対して、オペコードが示す処理を実行するよう制御する
ことを特徴とするプロセッサ。 An instruction fetch unit that reads an instruction code including an operation code and an operand from the instruction storage unit;
An instruction decode unit for decoding the read instruction code;
An instruction execution unit including a reconfigurable computing unit;
A control unit for controlling the operation of the instruction execution unit according to the decoding result of the instruction decoding unit;
For each type of opcode, a configuration information storage unit that stores circuit configuration information for configuring a circuit necessary for executing the process indicated by the opcode,
With
The instruction decoding unit instructs the reconfigurable computing unit to perform reconfiguration according to a decoding result,
The reconfigurable computing unit performs reconfiguration using circuit configuration information corresponding to the decoded opcode in accordance with an instruction from the instruction decoding unit,
The control unit is configured to issue a decoded instruction code to a reconfigurable computing unit that has been reconfigured, thereby controlling the data indicated by the operand to execute the process indicated by the opcode.
前記再構成可能演算器は、選択された2以上の命令に対応する回路構成情報を用いて再構成を行い、
前記制御部は、再構成済みの2以上の回路を用いて、当該2以上の命令を実行するよう制御する
請求項2記載のプロセッサ。 The instruction decoding unit selects two or more instructions that can be simultaneously reconfigured in the reconfigurable computing unit based on the circuit configuration information,
The reconfigurable computing unit performs reconfiguration using circuit configuration information corresponding to two or more selected instructions,
The processor according to claim 2, wherein the control unit controls to execute the two or more instructions using two or more reconfigured circuits.
前記制御部は、デコードしたオペコードに対応する回路構成情報が前記構成情報記憶部に存在しない場合には、前記固定機能演算器を用いて命令を実行するよう制御する
請求項2記載のプロセッサ。 The instruction execution unit further includes a fixed function computing unit,
Wherein, when the circuit configuration information corresponding to the operation code which is decoded is not present in the configuration information storage unit, a processor according to claim 2, wherein the controls to execute instructions using the fixed function calculator.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007263941A JP5175517B2 (en) | 2005-04-12 | 2007-10-10 | Processor |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005114133 | 2005-04-12 | ||
JP2005114133 | 2005-04-12 | ||
JP2005309352 | 2005-10-25 | ||
JP2005309352 | 2005-10-25 | ||
JP2007263941A JP5175517B2 (en) | 2005-04-12 | 2007-10-10 | Processor |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007513029A Division JP4102425B2 (en) | 2005-04-12 | 2006-04-12 | Processor |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2008052750A JP2008052750A (en) | 2008-03-06 |
JP2008052750A5 JP2008052750A5 (en) | 2009-05-14 |
JP5175517B2 true JP5175517B2 (en) | 2013-04-03 |
Family
ID=39236684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007263941A Expired - Fee Related JP5175517B2 (en) | 2005-04-12 | 2007-10-10 | Processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5175517B2 (en) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102067088A (en) * | 2008-06-19 | 2011-05-18 | 松下电器产业株式会社 | Multiprocessor |
JP5173711B2 (en) | 2008-09-30 | 2013-04-03 | ルネサスエレクトロニクス株式会社 | Multi-thread processor and hardware thread scheduling method |
JP5173713B2 (en) | 2008-09-30 | 2013-04-03 | ルネサスエレクトロニクス株式会社 | Multi-thread processor and hardware thread scheduling method |
JP5173712B2 (en) | 2008-09-30 | 2013-04-03 | ルネサスエレクトロニクス株式会社 | Multithreaded processor |
JP2010287159A (en) * | 2009-06-15 | 2010-12-24 | Fujitsu Ltd | Signal processing system, signal processing module, and method of operating them |
US9698790B2 (en) * | 2015-06-26 | 2017-07-04 | Advanced Micro Devices, Inc. | Computer architecture using rapidly reconfigurable circuits and high-bandwidth memory interfaces |
JP2017135698A (en) * | 2015-12-29 | 2017-08-03 | 株式会社半導体エネルギー研究所 | Semiconductor device, computer, and electronic device |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2719926B1 (en) * | 1994-05-10 | 1996-06-07 | Sgs Thomson Microelectronics | Electronic circuit and method of using a coprocessor. |
US5933642A (en) * | 1995-04-17 | 1999-08-03 | Ricoh Corporation | Compiling system and method for reconfigurable computing |
US5794062A (en) * | 1995-04-17 | 1998-08-11 | Ricoh Company Ltd. | System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization |
JP4285877B2 (en) * | 1999-02-23 | 2009-06-24 | 株式会社リコー | Metaaddressing architecture for dynamic reconfiguration computation and metaaddressing method for dynamic reconfiguration computation |
JP3587095B2 (en) * | 1999-08-25 | 2004-11-10 | 富士ゼロックス株式会社 | Information processing equipment |
JP2004070869A (en) * | 2002-08-09 | 2004-03-04 | Sony Corp | Calculating system |
JP4905660B2 (en) * | 2006-06-14 | 2012-03-28 | 富士ゼロックス株式会社 | PROGRAMMABLE DEVICE CONTROL DEVICE, PROGRAMMABLE LOGIC CIRCUIT DEVICE, AND PROGRAMMABLE DEVICE CONTROL METHOD |
-
2007
- 2007-10-10 JP JP2007263941A patent/JP5175517B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2008052750A (en) | 2008-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5175517B2 (en) | Processor | |
US7366874B2 (en) | Apparatus and method for dispatching very long instruction word having variable length | |
US7577826B2 (en) | Stall prediction thread management | |
JP3797471B2 (en) | Method and apparatus for identifying divisible packets in a multi-threaded VLIW processor | |
JP4102425B2 (en) | Processor | |
JP3832623B2 (en) | Method and apparatus for assigning functional units in a multithreaded VLIW processor | |
US20070283356A1 (en) | Multi-threaded processor with deferred thread output control | |
KR20010080366A (en) | Program product and data processor | |
JP3777541B2 (en) | Method and apparatus for packet division in a multi-threaded VLIW processor | |
KR20050016170A (en) | Method and system for performing real-time operation | |
JP2008123045A (en) | Processor | |
KR20050011689A (en) | Method and system for performing real-time operation | |
US7313671B2 (en) | Processing apparatus, processing method and compiler | |
JP2010086131A (en) | Multi-thread processor and its interrupt processing method | |
KR20150019349A (en) | Multiple threads execution processor and its operating method | |
CN100492296C (en) | Processor | |
JPWO2007074583A1 (en) | Processor with reconfigurable computing unit | |
US20130024488A1 (en) | Semiconductor device | |
WO2010073463A1 (en) | Program conversion device and program conversion method | |
JP5096923B2 (en) | Multi-thread processor with dynamically reconfigurable logic | |
JPH11203145A (en) | Instruction scheduling method | |
Iqbal et al. | RISP design with most optimal configuration overhead for VLIW based architectures | |
JP5013966B2 (en) | Arithmetic processing unit | |
JP2008009473A (en) | Data processor and program execution method | |
JP4151497B2 (en) | Pipeline processing equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090331 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090331 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120403 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120525 |
|
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: 20121211 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130107 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5175517 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |