JP4102425B2 - プロセッサ - Google Patents
プロセッサ Download PDFInfo
- Publication number
- JP4102425B2 JP4102425B2 JP2007513029A JP2007513029A JP4102425B2 JP 4102425 B2 JP4102425 B2 JP 4102425B2 JP 2007513029 A JP2007513029 A JP 2007513029A JP 2007513029 A JP2007513029 A JP 2007513029A JP 4102425 B2 JP4102425 B2 JP 4102425B2
- Authority
- JP
- Japan
- Prior art keywords
- thread
- configuration information
- instruction
- unit
- reconfiguration
- 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
- 238000000034 method Methods 0.000 claims description 26
- 230000006870 function Effects 0.000 description 46
- 230000008569 process Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 11
- 230000004048 modification Effects 0.000 description 9
- 238000012986 modification Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000007616 round robin method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3893—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
- G06F9/3895—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
- G06F9/3897—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Logic Circuits (AREA)
- Advance Control (AREA)
- Microcomputers (AREA)
Description
映像を圧縮する場合を見てみると、その圧縮方法としてMPEG(Moving Picture Experts Group)2、MPEG4、H.263、H.264など、多数の規格が実用化されている。
この要求に答える為には、一つの処理を行うハードウェアを複数搭載することで複数の処理を実現するか、又は、ハードウェアは一つ搭載して、ソフトウェアで複数の処理を実行するかの方法が考えられる。
一方、後者の方法は、ソフトウェアの追加、変更等により、複数の機能の実現、追加などを柔軟に行うことができるという利点があるが、性能を上げることが困難であるという欠点がある。
そこで、本発明は、回路規模を抑えつつ、柔軟且つ高性能なプロセッサの提供を目的とする。
また、前記制御手段は、更に、スレッドを実行させている間に、実行させているスレッドが使用している前記集積回路の部分以外の部分について、前記再構成手段に前記選択手段で選択されたスレッドに対応する回路構成情報に基づいた再構成をさせることとしてもよい。
また、前記プロセッサは、更に、演算器を含み、前記制御手段は、前記演算器と前記再構成された集積回路とを用いて、当該スレッドを実行させることとしてもよい。
また、複数の命令から成るプログラムを実行するプロセッサであって、再構成可能な集積回路と、回路構成情報に基づいて、前記集積回路の一部分を再構成する再構成手段と、複数の命令各々に対応する回路構成情報を記憶する構成情報記憶手段と、前記回路構成情報に基づいて前記集積回路を同時に再構成可能な2以上の命令を選択する選択手段と、前記選択手段で選択された2以上の命令に対応する回路構成情報に基づき再構成された集積回路を用いて、当該2以上の命令を並列実行する実行手段とを備えることを特徴とする。
<概要>
本発明に係るプロセッサは、通常のプロセッサが備えている演算器のほかに、再構成可能なハードウェアを備え、処理を分担することで、回路規模を抑えつつ、高性能な処理を実現するものである。
各スレッドは、それぞれに固有の回路の方が適していたり、固有の回路を必要とする処理は、再構成可能なハードウェアで再構成した回路を使用して実行する。
但し、再構成には時間を要するため、その時間を削減することがポイントとなる。
以下、本発明の実施形態のマルチスレッドプロセッサについて説明する。
<構成>
以下、図1を用いて、本発明にかかるプロセッサ1000の構成を説明する。
プロセッサ1000は、マルチスレッドプロセッサ1100、再構成可能演算器1200、構成情報記憶部1300及び再構成制御部1400で構成される。
マルチスレッドプロセッサ1100は、通常のプロセッサであり、複数の異なる処理を時分割で実行することができる、いわゆるマルチスレッドプロセッサである。
このスレッドスケジュール部1110は、次に実行するスレッドを決定して、レジスタの退避・復帰などの準備を行う他、本発明に特有の処理も行う。
このマルチスレッドプロセッサ1100は、内部の固定機能演算器1120と外部の再構成可能演算器1200の双方と、必要に応じて演算データのやり取りを行いながら処理を実行していく。
また、再構成可能演算器1200は、同一な構成の10個のエリアに分割されているものとする。これらエリアはそれぞれ独立して再構成が可能であり、エリア間は組み替え可能な配線が引かれ、複数エリアで一つの回路を実現できるものとする。
この構成情報は、論理ブロックのルックアップテーブルの設定値や、配線経路を設定する為の各トランジスタスイッチへの制御信号の情報を含むものである。
また、構成情報記憶部1300は、構成情報以外に、後で説明するスレッド情報テーブル1410を記憶しておく機能を有する。このテーブルは、スレッドとそのスレッドで使用する構成情報を対応付けているものである。
また、再構成ができない場合には、その旨をスレッドスケジュール部1110に返す機能を有する。再構成ができない場合とは、再構成可能演算器1200に、再構成できるエリアが無い場合である。
次に、図2〜図4を用いて、本発明に係るプロセッサの動作を説明する。
図2を用いて、実行順通りにスレッドを実行する場合の例を説明し、図3を用いて、スレッドの実行順を変える場合の例を説明する。
最後に、図4を用いて、スレッドの制御処理をフローチャートを用いて説明する。
図2(a)は、スレッド情報テーブル1410の構成例及び内容例を示す図であり、図2(b)は、スレッドの実行例を示すタイムチャートである。
図2(a)で示すスレッド情報テーブル1410のスレッドを実行した場合のタイムチャートが、図2(b)で示すタイムチャートである。
このスレッド情報テーブル1410は、再構成情報記憶部1300に記憶されているものである。
スレッド情報テーブル1410は、スレッド名1411、構成情報1412及び使用エリア数1413で構成される。
構成情報1412は、スレッド名1411で表されるスレッドが、再構成可能演算器1200を使用する場合の再構成の為の構成情報を示している。
使用エリア数1413は、再構成可能演算器1200を使用する場合に必要なエリア数を表す。
ここでは、スレッドが固定機能演算器1120を使用しているタイムチャート10と、そのスレッドが、再構成可能演算器1200を使用している場合の構成情報を表すタイムチャート20、及び、そのスレッドが実行中に、再構成可能演算器1200を再構成している構成情報を表すタイムチャート30を示している。また、時間を示す矢印の上方には構成情報を、下方には構成情報が必要とするエリア数を示す。尚、本図2(b)では、全てのスレッドは固定機能演算器1120を使用する場合を示しているが、使用しない期間があってももちろん良い。
このように事前に準備することで、再構成に要する時間を取る必要がなくなり、実質的にスレッドの実行時間のみとなる。
この間に、次に実行予定のスレッド名1411「TH2」のスレッド110が使用する構成情報1412「構成C」で再構成可能演算器1200を再構成する。
この場合、再構成可能演算器1200は全部で10個のエリアを備えていることから、使用している再構成可能演算器1200のエリア数は、「構成C」に必要な「3/10」エリア101となる。
この間に、次に実行予定のスレッド名1411「TH3」のスレッドが使用する構成情報1412「構成D」で再構成可能演算器1200を再構成する。
この場合、使用している再構成可能演算器1200のエリア数は、「構成C」が使用している「3/10」エリアと「構成D」が必要とする「4/10」エリアを加えた「7/10」エリア111となる。
<スレッドの実行順を変える場合>
次に、図3を用いて、スレッドの実行順を変えることにより、スレッド実行中に、次のスレッドの為の再構成が可能となる例を説明する。
図3(a)は、スレッド情報テーブル1420の構成例及び内容例を示す図であり、図3(b)及び(c)は、スレッドの実行例を示すタイムチャートである。
まず、図3(a)のスレッド情報テーブル1420を説明する。
この図3(a)のスレッド情報テーブル1420は、図2(a)のスレッド情報テーブル1410とほとんど同じである為、差異のみを説明する。
次に、図3(b)を用いて、スレッドの実行例を示すタイムチャートを説明する。タイムチャートの意味するところは、図2(b)と同様である。
この間に、次に実行予定のスレッド名1411「TH1」のスレッドが使用する構成情報1412「構成B」で再構成可能演算器1200を再構成しようとする。
この場合、使用している再構成可能演算器1200のエリア数は、「構成A」が使用している「6/10」エリアと「構成B」が必要とする「5/10」エリアを加えた「11/10」エリア201となり、スレッド名「TH0」のスレッドの実行中に「構成B」の再構成は出来ない。
とすると、スレッド名「TH0」のスレッド実行中に、再構成するのはスレッド名「TH2」のスレッド220が使用する「構成B」であり、「構成A」が使用している「6/10」エリアと「構成C」が必要とする「3/10」エリアを加えた「9/10」エリア211となり、事前に再構成を行うことが出来るようになる。
この場合、使用している再構成可能演算器1200のエリア数は、「構成C」が使用している「3/10」エリアと「構成B」が必要とする「5/10」エリアを加えた「8/10」エリア222となる。
したがって、周期が崩れないことが、処理をスレッドに割り当てる際の前提条件となる。
次に、図4を用いて、本プロセッサのスレッド制御の処理について説明する。
図4は、本プロセッサのスレッド制御の処理を示すフローチャートである。
スレッドスケジュール部1110が、次に実行するスレッドを選択する(ステップS100)。制御処理を開始直後の場合は、最初のスレッドである。
選択されたスレッドである次スレッドを実行する場合は、そのスレッド名1411を再構成制御部1400に渡し、再構成を依頼する。
依頼を受けた再構成制御部1400は、受取ったスレッド名1411が、再構成可能演算器1200を使用するか否かを構成情報記憶部1300に記憶されているスレッド情報テーブル1410を参照し、判断する。具体的には、受取ったスレッド名1411に対応する構成情報1412に構成が指定されている場合は、再構成可能演算器1200を使用すると判断する。
一方、使用すると判断した場合は(ステップS120:Y)、再構成するエリアが空いているか否かを判断する。具体的には、受取ったスレッド名1411に対応する使用エリア数1413に示されている数分のエリアが空いているかを判断する。
エリアが空いていないと判断した場合は(ステップS130:N)、再構成制御部1400は、スレッドスケジュール部1110にその旨通知する。スレッドスケジュール部1110は、異なるスレッドを選択する(ステップS100)。スレッドスケジュール部1110は、各スレッドの実行回数を記憶しておき、適切な時に優先的に選択して、全スレッドの実行回数をあわせるものとする。
再構成が完了した旨の通知を受けた再構成制御部1400は、その旨スレッドスケジュール部1110に返し、スレッドスケジュール部1110は、現在実行中のスレッド終了後、すぐに次スレッド実行を開始する(ステップS150)。
<実施形態2>
<概要>
実施形態1が、スレッド毎に、再構成した再構成可能演算器を使用したのに対して、本実施形態では、命令毎に、再構成した再構成可能演算器を使用するものである。
<構成>
図5は、実施形態2のプロセッサ5000の構成例を表す図である。
プロセッサ5000は、命令フェッチ部5100、命令デコード部5200、演算制御部5300、アドレステーブル記憶部5400、再構成情報記憶部5500、再構成可能演算器5600及び固定機能演算器5700を備え、外部に命令記憶部5010を備える。
命令フェッチ部5100は、命令記憶部5010から、命令コードを読み込み、命令デコード部5200に渡す機能を有する。
命令デコード部5200は、命令フェッチ部5100から命令コードを受け取り、解析する通常の機能のほか、本発明に独自の機能を有する。
アドレステーブル記憶部5400は、命令種別とその構成情報のアドレスとを対応付けて記憶している機能を有している。
再構成情報記憶部5500は、複数の各命令に対応して、構成情報を記憶する機能を有する。ここで記憶されている各構成情報の先頭アドレスが、アドレステーブル記憶部5400で、命令種別と対応付けて記憶されている。この構成情報は、実施形態1の構成情報記憶部1300に記憶されている構成情報と同様である。
再構成可能演算器5600は、再構成が可能な演算器であって、実施形態1の再構成可能演算器1200と同様である。但し本実施形態では、4つのエリアに分割されているものとする。
以下、命令と構成情報との対応関係を簡単に説明し、動作を説明する。
<命令コードと構成情報との対応関係>
本発明で使用する命令コードから、その命令の実行に必要な再構成を行う為の構成情報の求め方を、図6及び図7を用いて説明する。
まず、図6の命令コードの構成例から説明する。
本発明で使用する命令コード5110は、命令の種別を示すオペコード5111と、この命令で扱う値などを示すオペランド5112で構成される。
プロセッサによって、命令の実行には再構成可能演算器5600は不要であると、判断された場合には、固定機能演算器5700を用いて、実行がなされる。
この命令情報テーブル5410は、アドレステーブル記憶部5400に記憶されているものとする。
命令情報テーブル5410は、オペコード種別5411、アドレス5412及び使用エリア数5413とで構成される。
従って、ここに記載されていない命令は、固定機能演算器5700で実行することになる。
使用エリア数5413は、再構成可能演算器5600を使用する場合のエリア数を表す。例えば、オペコード種別5411「Sub」の命令は、アドレス5412「addr1」で示されるアドレスに記憶されている構成情報で再構成された再構成可能演算器1200を使用し、再構成可能演算器1200を再構成するには、使用エリア数5413「3」個のエリアが必要である。
次に、図8〜図10とを用いて、どのように命令が実行されるかを説明する。
図8は、本発明に係る命令セットを用いたプログラム例であり、図9は、プログラムを動作させたプロセッサのパイプライン動作の例である。
また、図10は、本実施形態のプロセッサの命令実行処理を示すフローチャートである。
オペコード5111「Add」、オペランド5112「r0,r1,r2」の命令コードは、レジスタ1の内容とレジスタ2の内容を加算し、結果をレジスタ0に代入することを意味し、オペコード5111「Sub」、オペランド5112「r3,r1,r3」の命令コードは、レジスタ1の内容からレジスタ3の内容を減算し、結果をレジスタ3に代入することを意味する。
図8に示すプログラムが命令記憶部5010に記憶されているものとする。
まず、命令フェッチ部5100は、命令コード「Add r0,r1,r2」をフェッチし(図10:ステップS800、図9:ステップS500)、命令デコード部5200に渡す。
受取った命令コードが終了を示す旨のコードである場合には(図10:ステップS810:Y)、命令デコード部5200は、処理を終了する。
また、命令コードが終了を示す旨のコードでない場合には(図10:ステップS810:N)、命令デコード部5200は、オペコード5111「Add」をアドレステーブル記憶部5400に渡して、構成情報のアドレスを要求する。
再構成可能演算器5600を使用しない旨を受取った命令デコード部5200は、「Add r0,r1,r2」のデコード済みの命令を演算制御部5300に渡す。
命令フェッチ部5100は、命令コード「Add r0,r1,r2」をフェッチ後、次の命令コード「Sub r3,r1,r3」をフェッチし(図10:ステップS800、図9:ステップS520)、命令デコード部5200に渡す。
アドレステーブル記憶部5400は、命令情報テーブル5410を参照し、オペコード種別5411に、渡されたオペコード5111「Sub」が在るかを検索し、結果、あることから、アドレス5412「addr1」を命令デコード部5200に返す(図10:ステップS820:Y、図9:ステップS600)。
指示を行った命令デコード部5200は、「Sub r3,r1,r3」のデコード済みの命令を演算制御部5300に渡す。
この再構成は、再構成可能演算器5600の4エリアのうち、3エリアを再構成する(図7参照)。
その後、実行結果をレジスタ3に書き出す(図9:ステップS630)。
このように、命令を順次同時に行っていく。
従って、「Sub r3,r1,r3」を実行中(図9:ステップS620)に、再構成を行うことになる(図9:ステップS700)。
次の命令コード「Reconf1 r3,r1,r3」を実行する場合も同様である。
このように、再構成可能な演算器を持つプロセッサにおいて、命令単位で再構成可能な演算器を制御することが可能となり、柔軟且つ高性能な演算処理を、高い面積効率で実現することができる。
次に、実施形態2の変形例について説明する。
実施形態2では、1命令ごとに再構成可能演算器を再構成したが、本変形例では、複数の命令を一度に再構成する例を説明する。同時に複数の命令を実行できることから、処理速度の向上を図ることができる。
図11は、本変形例の命令セットを用いたプログラム例であり、図12は、プログラムを動作させたプロセッサのパイプライン動作の例である。
また、図13は、本変形例のプロセッサの命令実行処理を示すフローチャートである。
まず、図11のプログラムの、各命令の内容については、図8と同様である。
図12及び図13を用いて、プログラムを実行するプロセッサの動作を簡単に説明する。図13のフローチャートに沿って、図12のタイムチャートを参照しながら説明する。
「Reconf0 r2,r0,0xfe」と「Reconf1 r3,r1,r3」は、再構成可能演算器を使用し、且つ、同時に実行することを解析した命令デコード部5200は、オペコード5111「Reconf0」と「Reconf1」とをアドレステーブル記憶部5400に渡して、構成情報のアドレスを要求する。
アドレスを受取った命令デコード部5200は、再構成情報記憶部5500に受取ったアドレス5412「addr4」と「addr5」を渡し、そのアドレスの構成情報を再構成可能演算器5600に送出して再構成を行う旨を指示する。
一方指示を受取った再構成情報記憶部5500は、受取ったアドレスの構成情報を再構成可能演算器5600に送信して再構成を行う(図13:ステップS910、図12:ステップS700)。
命令コードを受取った命令デコード部5200は、再構成可能演算器を使用しない場合(図13:ステップS820:N)と、使用したとしても1つの命令の場合(図13:ステップS900:N)とには、それぞれ図10と同様の処理を行う(図13:ステップS840〜ステップS870)。
<補足>
以上、本発明に係るプロセッサについて実施形態に基づいて説明したが、このプロセッサを部分的に変形することもでき、本発明は上述の実施形態に限られないことは勿論である。即ち、
(1)実施形態2では、命令コードのオペコードと構成情報とを対応付けていたが、これに限られない。
(2)実施形態2では、説明の便宜上、複数の固定機能演算器の実行については詳細な説明はしていないが、これらの固定機能演算器と再構成可能演算器とが同時に実行できるものである場合には、同時に複数の命令を発行することとしても良い。
すなわち、再構成可能なハードウェアによって構成された演算器においては、複数種類の演算機能が選択的に実行可能である。従って、任意の命令を実行することでき、本発明による命令セットを用いることにより、命令の並列度を向上させた最適な機能を実現するプログラムを作成することが可能となるからである。
(3)実施形態では、再構成可能演算器は、均質な複数のエリアに分かれていることとしているが、エリア毎に異なる論理ブロックを有していてもよく、また、そのエリアの大きさが異なっていても良い。
(4)実施形態では、再構成可能演算器を構成する論理ブロックは、ルックアップテーブルとフリップフロップを含む回路ユニットであることとしているが、論理ブロックは、ALU(Arithmeticand Logical Unit)、シフトやデータ制御、論理演算を行なうユニット、フリップフロップなどから構成されるもの、すなわち、一般の論理回路の組合せで構成されるものであってもよい。
1100 マルチスレッドプロセッサ
1110 スレッドスケジュール部
1110 旨スレッドスケジュール部
1120 固定機能演算器
1200 再構成可能演算器
1300 構成情報記憶部
1300 再構成情報記憶部
1400 再構成制御部
1410 1420 スレッド情報テーブル
5010 命令記憶部
5100 命令フェッチ部
5110 5150 命令コード
5111 オペコード
5112 オペランド
5200 命令デコード部
5300 演算制御部
5400 アドレステーブル記憶部
5410 命令情報テーブル
5413 使用エリア数
5500 再構成情報記憶部
5600 再構成可能演算器
5700 固定機能演算器
Claims (3)
- 複数のスレッドを巡回的に、そのスレッドに割当てられた時間ずつ実行するプロセッサであって、
再構成可能な集積回路と、
回路構成情報に基づいて、前記集積回路の一部分を再構成する再構成手段と、
複数のスレッド各々に対応する回路構成情報を記憶する構成情報記憶手段と、
順次、スレッドに対応する回路構成情報に基づき再構成された集積回路を用いて、当該スレッドを実行させる制御手段と、
前記制御手段があるスレッドを実行させている間に、実行されているスレッドが使用している前記集積回路の部分以外の部分の領域量とスレッド各々に対応する回路構成情報に基づいた再構成に必要な集積回路の領域量とに基づいて、次に実行するスレッドを選択する選択手段とを備え、
前記制御手段は、更に、スレッドを実行させている間に、実行させているスレッドが使用している前記集積回路の部分以外の部分について、前記再構成手段に前記選択手段で選択されたスレッドに対応する回路構成情報に基づいた再構成をさせる
ことを特徴とするプロセッサ。 - 前記プロセッサは、更に、演算器を含み、
前記制御手段は、前記演算器と前記再構成された集積回路とを用いて、当該スレッドを実行させる
ことを特徴とする請求項1に記載のプロセッサ。 - 再構成可能な集積回路を有し、複数のスレッドを巡回的に、そのスレッドに割当てられた時間ずつ実行するプロセッサにおいて用いられるスレッド実行方法あって、
回路構成情報に基づいて、前記集積回路の一部分を再構成する再構成ステップと、
複数のスレッド各々に対応する回路構成情報をメモリに記憶する構成情報記憶ステップと、
順次、スレッドに対応する回路構成情報に基づき再構成された集積回路を用いて、当該スレッドを実行させる制御ステップと、
前記制御ステップがあるスレッドを実行させている間に、実行されているスレッドが使用している前記集積回路の部分以外の部分の領域量とスレッド各々に対応する回路構成情報に基づいた再構成に必要な集積回路の領域量とに基づいて、次に実行するスレッドを選択する選択ステップと
を備え
前記制御ステップは、更に、スレッドを実行させている間に、実行させているスレッドが使用している前記集積回路の部分以外の部分について、前記再構成ステップに前記選択ステップで選択されたスレッドに対応する回路構成情報に基づいた再構成をさせる
ことを特徴とするスレッド実行方法。
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 | ||
PCT/JP2006/307775 WO2006109835A1 (ja) | 2005-04-12 | 2006-04-12 | プロセッサ |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007263941A Division JP5175517B2 (ja) | 2005-04-12 | 2007-10-10 | プロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP4102425B2 true JP4102425B2 (ja) | 2008-06-18 |
JPWO2006109835A1 JPWO2006109835A1 (ja) | 2008-11-20 |
Family
ID=37087101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007513029A Expired - Fee Related JP4102425B2 (ja) | 2005-04-12 | 2006-04-12 | プロセッサ |
Country Status (4)
Country | Link |
---|---|
US (1) | US7926055B2 (ja) |
JP (1) | JP4102425B2 (ja) |
KR (1) | KR20070114690A (ja) |
WO (1) | WO2006109835A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7707136B2 (en) * | 2006-03-31 | 2010-04-27 | Amazon Technologies, Inc. | System and method for providing high availability data |
JP5379122B2 (ja) | 2008-06-19 | 2013-12-25 | パナソニック株式会社 | マルチプロセッサ |
JP5617282B2 (ja) * | 2010-03-09 | 2014-11-05 | 富士通セミコンダクター株式会社 | データ処理システム |
US10019260B2 (en) | 2013-09-20 | 2018-07-10 | Via Alliance Semiconductor Co., Ltd | Fingerprint units comparing stored static fingerprints with dynamically generated fingerprints and reconfiguring processor settings upon a fingerprint match |
GB2519813B (en) | 2013-10-31 | 2016-03-30 | Silicon Tailor Ltd | Pipelined configurable processor |
GB2563588B (en) * | 2017-06-16 | 2019-06-26 | Imagination Tech Ltd | Scheduling tasks |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6567840B1 (en) | 1999-05-14 | 2003-05-20 | Honeywell Inc. | Task scheduling and message passing |
GB0019341D0 (en) * | 2000-08-08 | 2000-09-27 | Easics Nv | System-on-chip solutions |
TWI234737B (en) | 2001-05-24 | 2005-06-21 | Ip Flex Inc | Integrated circuit device |
AU2003254126A1 (en) * | 2002-07-23 | 2004-02-09 | Gatechance Technologies Inc | Pipelined reconfigurable dynamic instruciton set processor |
US7716668B2 (en) * | 2002-12-16 | 2010-05-11 | Brooktree Broadband Holding, Inc. | System and method for scheduling thread execution |
US7308571B2 (en) * | 2004-10-06 | 2007-12-11 | Intel Corporation | Overriding processor configuration settings |
-
2006
- 2006-04-12 WO PCT/JP2006/307775 patent/WO2006109835A1/ja active Application Filing
- 2006-04-12 JP JP2007513029A patent/JP4102425B2/ja not_active Expired - Fee Related
- 2006-04-12 KR KR1020077005625A patent/KR20070114690A/ko active IP Right Grant
- 2006-04-12 US US11/574,359 patent/US7926055B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US7926055B2 (en) | 2011-04-12 |
US20090037916A1 (en) | 2009-02-05 |
JPWO2006109835A1 (ja) | 2008-11-20 |
KR20070114690A (ko) | 2007-12-04 |
WO2006109835A1 (ja) | 2006-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5175517B2 (ja) | プロセッサ | |
US7366874B2 (en) | Apparatus and method for dispatching very long instruction word having variable length | |
US7577826B2 (en) | Stall prediction thread management | |
JP4102425B2 (ja) | プロセッサ | |
KR100649107B1 (ko) | 실시간 동작 수행방법 및 시스템 | |
US8869147B2 (en) | Multi-threaded processor with deferred thread output control | |
JP2008123045A (ja) | プロセッサ | |
KR20050016170A (ko) | 실시간 동작 수행방법 및 시스템 | |
KR20050030871A (ko) | 실시간 동작 수행방법 및 시스템 | |
JP3777541B2 (ja) | マルチスレッドvliwプロセッサにおけるパケット分割の方法および装置 | |
KR20010080366A (ko) | 프로그램 제품 및 데이터 처리장치 | |
JP2010086131A (ja) | マルチスレッドプロセッサ及びその割り込み処理方法 | |
KR20150019349A (ko) | 다중 쓰레드 실행 프로세서 및 이의 동작 방법 | |
JP5825261B2 (ja) | 情報処理装置、その方法及びそのプログラム | |
CN100492296C (zh) | 处理器 | |
JPWO2007074583A1 (ja) | 再構成可能な演算器を持つプロセッサ | |
JP5576605B2 (ja) | プログラム変換装置およびプログラム変換方法 | |
JP5096923B2 (ja) | 動的再構成論理回路を有するマルチスレッドプロセッサ | |
US7577762B1 (en) | Cooperative scheduling for multiple consumers | |
JPH11203145A (ja) | 命令スケジューリング方法 | |
US20180088954A1 (en) | Electronic apparatus, processor and control method thereof | |
JP2008009473A (ja) | データ処理装置及びプログラム実行方式 | |
JP4151497B2 (ja) | パイプライン処理装置 | |
Iqbal et al. | RISP design with most optimal configuration overhead for VLIW based architectures | |
JP5013966B2 (ja) | 演算処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20080226 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080321 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110328 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4102425 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110328 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120328 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130328 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130328 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140328 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
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 |