JP2002175183A - 半導体集積回路 - Google Patents
半導体集積回路Info
- Publication number
- JP2002175183A JP2002175183A JP2000371299A JP2000371299A JP2002175183A JP 2002175183 A JP2002175183 A JP 2002175183A JP 2000371299 A JP2000371299 A JP 2000371299A JP 2000371299 A JP2000371299 A JP 2000371299A JP 2002175183 A JP2002175183 A JP 2002175183A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- configuration data
- reservation
- semiconductor integrated
- integrated circuit
- 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.)
- Granted
Links
- 239000004065 semiconductor Substances 0.000 title claims abstract description 57
- 230000015654 memory Effects 0.000 claims abstract description 109
- 230000007704 transition Effects 0.000 claims description 46
- 238000000034 method Methods 0.000 claims description 26
- 230000008569 process Effects 0.000 claims description 21
- 230000006870 function Effects 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 22
- 230000008859 change Effects 0.000 description 6
- 230000006872 improvement Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 239000013256 coordination polymer Substances 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 238000011437 continuous method Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
-
- 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/30181—Instruction operation extension or modification
-
- 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/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Stored Programmes (AREA)
- Semiconductor Integrated Circuits (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Microcomputers (AREA)
Abstract
積回路の処理効率を向上させる。 【解決手段】 半導体集積回路10は、コンフィギュレ
ーションメモリ11と信号の授受が可能になっている。
半導体集積回路10の内部には、命令メモリ11と、予
約命令をF命令として記憶し、このF命令と同じ処理内
容をCPUで行なうための代替命令として記憶している
命令記憶部12と、プリフェッチ部14と、履歴記憶部
15と、命令の種類を判別するための判別部16と、命
令を書き換えるための書き換え制御部17と、CPU1
8と、FPGA19と、構成データメモリ20と、内蔵
メモリ21と、構成データタグ22とを備えている。F
命令の構成データがFPGA19内に存在しない場合に
は、代替命令を使用することで、CPU18によりFP
GA19と同じ処理が行なわれる。
Description
マブルデバイスとを混載した半導体集積回路に係わり、
特にその処理性能向上対策に関する。
Device)もしくはFPGA(Field Programmable Gate
Array)と呼ばれるプログラマブルデバイスが広く知られ
ている(以下、本明細書ではFPGAと記載する)。F
PGAはユーザーがその回路構成をプログラミングする
ことが可能であるデバイスであって、ユーザーが設計し
た回路を即座に構成し、その動作を実現することができ
るというメリットがある。特に回路構成を繰り返し再構
成することができるFPGAの場合には、その時々に必
要な回路構成に柔軟に変更して処理性能が上げられると
いうメリットもある。
1つの半導体集積回路上に混載したものが提案されてき
ている。このような半導体集積回路においては、従来の
CPUのプログラムの変更に加えて、FPGAで構成さ
れた部分の回路構成が変更可能となったため、システム
の変更により柔軟に対応することができることになる。
集積回路の例として、例えば特開平05-242050 号公報に
開示されるようなものがあり、CPUとFPGAとを備
え、処理すべき演算の一部をFPGA部に構成される回
路によって行う方法が知られている。
来のCPUとFPGAを混載した半導体集積回路におい
ては、FPGAで処理する命令が来た場合にFPGAに
その処理を行う回路が構成されていなければ未実装命令
(undefined operation)として扱われ処理がストップ
するという問題があった。
した半導体集積回路においてはFPGAに構成される回
路を固定した場合には、回路構成がダイナミックに変更
することができるというFPGAの特徴を生かしておら
ず、その時々に必要な回路に柔軟に対応できず、処理性
能向上に限界があった。
ミックに変更するようにした場合にも、回路構成変更の
タイミングはあらかじめユーザーが指定する必要があ
り、自動的に回路構成の変更ができなかった。また、異
なるユーザーが異なる処理を同じ半導体集積回路に行わ
せる場合にはFPGAの回路構成や回路構成を変更する
タイミングを再検討しなくてはならないことになる。
した半導体集積回路においては、FPGAによる処理性
能向上は自動的に行われないという問題があった。
路を自動的にダイナミックに変更でき、処理性能の高い
CPUとFPGAを混載した半導体集積回路を提供する
ことにある。
は、CPUと、回路構成が書き換え可能であるプログラ
マブルデバイスで構成される上記CPUの補助演算装置
と、命令あるいは複数の命令からなる命令列を受けて、
上記命令あるいは命令列が上記補助演算装置で処理が可
能な予約命令か否かを判別する第1の判別手段と、上記
予約命令の処理を行う回路構成データを上記補助演算装
置に書き込むための構成データ書き込み手段とを備えて
いる。
って構成される回路を自動的にダイナミックに変更する
ことができ、処理性能の高いCPUとプログラマブルデ
バイスとを混載した半導体集積回路を提供することが可
能になった。
命令が上記予約命令であるときには、上記予約命令の処
理を行う回路が上記補助演算装置内に存在するか否かを
判断する第2の判別手段と、上記第1の判別手段および
第2の判別手段の判断結果を受けて、上記命令が上記予
約命令であるときには、上記補助演算装置を用いて上記
予約命令の処理を行うか否かを判断する第3の判別手段
とをさらに備えることが好ましい。
上記予約命令の処理を行う回路が上記補助演算装置内に
存在する場合に、上記予約命令の処理を上記補助演算装
置で行わせるように指示し、上記予約命令の処理を行う
回路が上記補助演算装置内に存在しない場合に、上記予
約命令の処理を上記CPUで行うように指示する命令切
り替え手段をさらに備えることにより、プログラマブル
デバイス内に予約命令の構成データがない場合でも、未
実装命令として扱われてCPUが停止するような事態は
発生しない。
令であり、上記予約命令と同等の処理をCPUで行うた
めの代替命令を供給する代替命令供給手段とをさらに備
え、上記命令切り替え手段は、上記代替命令供給手段か
ら上記代替命令を取得する機能を有していることによ
り、予約命令がない場合には、代替命令を送ることによ
り、CPUによって予約命令による処理と同等の処理が
行なわれる。したがって、プログラマブルデバイス内に
予約命令の構成データがない場合でも、未実装命令とし
て扱われてCPUが停止するような事態は発生しない。
令であり、上記命令又は命令列と、上記予約命令と同等
の処理をCPUで行うための代替命令とを供給する機能
を有する命令供給手段をさらに備え、上記命令切り替え
手段は上記命令供給手段から上記予約命令または上記代
替命令を選択して取得する機能を有していることによ
り、予約命令又は代替命令を迅速に実行することが可能
になる。
であり、上記命令切り替え手段は、上記予約命令の処理
を上記補助演算装置で行わせる場合は上記予約命令の処
理を上記補助演算装置で行わせるように上記命令を変更
し、上記予約命令の処理を上記CPUで行わせる場合は
上記予約命令を変更しない機能をさらに有していること
が好ましい。
命令を受けたときに、当該予約命令の処理を行う回路が
上記補助演算装置に存在しない場合に、上記補助演算装
置に上記予約命令の回路構成データを書き込む機能を有
していることにより、プログラムが変更された場合で
も、その変更に応じたプログラマブルデバイスの利用が
可能になる。したがって、プログラマブルデバイスを利
用したHW/SWの切り換えなどのダイナミックな書き
換えにより、処理能率の向上を図ることができる。
憶手段をさらに備え、上記構成データ書き込み手段は、
上記履歴記憶手段を参照して、使用頻度がより高い予約
命令の処理を行う回路構成データを優先的に上記補助演
算装置に書き込むことにより、頻度を指標とするプログ
ラマブルデバイスの使用の最適化を図ることができる。
込み手段は、上記履歴記憶手段を参照して、上記予約命
令の回路構成データを、使用頻度の高い順に、上記補助
演算装置と上記メモリとに書き込むことが好ましい。
込み手段は、上記履歴記憶手段を参照して、上記予約命
令の回路構成データを、上記補助演算装置に上記予約命
令の回路構成データよりも空き容量が多ければ書込み、
空き容量が少なければ上記予約命令の回路構成データよ
りも空き容量が多くなるまで上記予約命令よりも使用頻
度の低い予約命令を上記補助演算装置から解放し、上記
解放された予約命令を、上記メモリの上記メモリに書き
込む第4の判別手段をさらに備えていることがより好ま
しい。
令の遷移パターンを記憶する履歴記憶手段をさらに備
え、上記構成データ書き込み手段は、上記履歴記憶手段
を参照して、現在受けている予約命令から遷移する確率
がより高い予約命令の回路構成データを優先的に上記補
助演算装置に書き込むことにより、特定の遷移パターン
を示す種類のデバイスに特に適合した回路が得られるこ
とになる。
き、第1の予約命令の次に実行される第2の予約命令の
頻度を各予約命令ごとに記憶する履歴記憶手段をさらに
備え、上記構成データ書き込み手段は、上記履歴記憶手
段を参照して、現在受けている第1の予約命令の次に実
行される頻度が高い第2の予約命令の回路構成データを
優先的に上記補助演算装置に書き込むことが好ましい。
約命令の遷移パターンと、上記2つの予約命令を受ける
時間間隔とを記憶する履歴記憶手段をさらに備え、上記
構成データ書き込み手段は、上記履歴記憶手段を参照し
て、現在受けている予約命令から遷移する確率がより高
い予約命令の回路構成データを、上記時間間隔が回路構
成データの書き込みに要する時間よりも長いときに限り
上記補助演算装置に書き込むことにより、処理能力の向
上を図ることができる。
の遷移パターンと、上記2つの予約命令を受ける時間間
隔とを記憶する履歴記憶手段をさらに備え、上記構成デ
ータ書き込み手段は、上記履歴記憶手段を参照して、現
在受けている第1の予約命令の次に実行される頻度が高
い第2の予約命令の回路構成データを、上記時間間隔が
回路構成データの書き込みに要する時間よりも長いとき
に限り上記補助演算装置に書き込むことによっても、処
理能力の向上を図ることができる。
演算装置の空き容量が上記予約命令の構成データの容量
よりも大きければ上記予約命令の構成データの書き込み
を行い、空き容量が少なければ上記予約命令の回路構成
データの容量よりも空き容量が多くなるまで上記予約命
令よりも使用頻度の低い予約命令を上記補助演算装置か
ら解放することにより、処理能力の向上を図ることがで
きる。
り、上記構成データ書き込み手段は、上記補助演算装置
の空きバンクが上記予約命令の構成データの必要バンク
よりも大きければ上記予約命令の構成データの書き込み
を行い、空きバンクが少なければ上記予約命令の回路構
成データの必要バンクよりも空きバンクの方が多くなる
まで上記予約命令よりも使用頻度の低い予約命令を上記
補助演算装置から解放することにより、より確実に処理
能力の向上を図ることができる。
路のブロック回路図である。同図に示すように、本実施
形態の半導体集積回路10は、外付けされたコンフィギ
ュレーションメモリ11と信号の授受が可能になってい
る。そして、半導体集積回路10の内部には、データ等
を処理するためのプログラムを記憶している命令メモリ
12と、FPGAで処理する予約命令(以下“F命
令”)と同じ処理をCPUで行なうための代替命令を記
憶している代替命令記憶部13と、命令メモリ12及び
代替命令記憶部13から命令を取り込むためのプリフェ
ッチ部14と、命令メモリ12から入力されたF命令の
履歴を記憶するための履歴記憶部15と、履歴記憶部1
5の出力を受けてFPGA19に構成する回路を判断す
る判別部16と、判別部16の出力を受けてFPGA1
9に構成する回路を書き換えるための書き換え制御部1
7と、プリフェッチ部14から供給される命令に応じて
動作するCPU18と、FPGA19と、内蔵メモリ2
1と、構成データタグ22とを備えている。FPGA1
9内にはFPGA19に構成する回路の構成データを記
憶するための構成データメモリ20が含まれている。命
令はCPU18内でデータ処理が完結する基本命令とC
PU18外の回路によりデータ処理を行う拡張命令から
なり、F命令は拡張命令に相当し、代替命令は基本命令
に相当する。
内には、CPU18やFPGA19以外の論理回路やア
ナログ回路があってもよく、それらによっても各種の処
理が行われるが、これらの処理については、従来と同様
の制御で行なうことができる。
19、構成データタグ22、コンフィギュレーションメ
モリ11及び履歴記憶部15などの記憶部全般の構成に
ついて説明する。
るプログラムが格納されている。このプログラム内にF
命令が含むことがある。F命令は、各F命令を識別する
ためのIDコードが付される。代替命令記憶部13に
は、各F命令と同じ処理をCPU18で行うための代替
命令が格納されている。
グラムの例を示す図である。符号#よりも左側の「AD
D D1,D2」は命令メモリに格納される命令であ
り、符号#よりも右側に記載されている内容は命令の動
作を説明するコメントで命令メモリには格納されない。
この例では、D1,D2,D3という3つのレジスタが
あり、1行目の命令はD1とD2とを加算してその加算
結果をD2に代入する命令で、2行目の命令は、D2の
データをD3の値だけ右にシフトしてD2に代入する命
令である。
の数だけのレジスタ(又はメモリ)によって構成されて
おり、この各レジスタ(又はメモリ)には、構成データ
のIDコードが格納されている。
ク7)、構成データ数が4(ID=1〜4)の場合の構
成データタグ22のデータ構造を示す図である。ただ
し、同図において、ID=0とは何も入っていないこと
を示している。同図に示すように、この例では、バンク
0〜1にID1のF命令の構成データが入っており、バ
ンク2〜4には、ID4のF命令の構成データが入って
おり、バンク5〜7には構成データが入っていないこと
を示している。構成データタグ22は、プリフェッチ部
14などからの“あるIDで特定される構成データがあ
るか?”という問い合わせに対して回答する機構を有し
ている。たとえば、“ID=4の構成データがあるか
?”という問いに対しては、“バンク2〜4にある”と
回答する。また、“空きがあるか”という問い合わせに
対しても、回答する機構を備えており、図5に示す場合
には、上記問い合わせに対して“バンク5〜7が空いて
いる”と回答することになる。
記憶部13,命令メモリ12に格納されるプログラムの
うちF命令の例を示す図である。図6(b)に示す例で
は、F命令であることを示すFPGAという文字列の後
に、IDコードである1と、この命令で使用される3つ
のレジスタD1、D2、D3が指定されている。そし
て、このF命令で実行される処理は、ここでは図4で示
されるプログラムと同じである。
命令に対する代替命令の例を示している。すなわち、C
PU18で、図6(a)のF命令と同じ処理を行うプロ
グラムが格納されている。
令をFPGA19で処理せずにCPU18で処理する場
合に、F命令と同じ処理を実現するための代替命令が格
納されている。つまり、ここでいう代替命令とは、FP
GA19によって処理する拡張命令がきても、その処理
を行う回路がFPGA19に構成されていない場合に、
CPU18によって同じ処理を行わせるための基本命令
である。
チされ、かつ、代替命令を実行することになると、プリ
フェッチ部14は代替命令記憶部13に対して当該F命
令の代わりとなる代替命令をフェッチするようアクセス
する。このとき、当該F命令のIDコードを代替命令記
憶部13に送ると、代替命令記憶部13は、IDコード
に対応する代替命令を供給する。そして、終了コードF
PGAend を検知すると、代替命令の終了信号プリフェ
ッチ部14に供給する。プリフェッチ部14は、代替命
令の終了信号を受けると、再び命令メモリ12から命令
をフェッチするように動作する。
えられることによって、その回路構成が決定される。回
路構成データは、一般的にチップ外部に備えられた不揮
発性メモリであるコンフィギュレーションメモリに記憶
されており、コンフィギュレーションメモリから回路構
成データがFPGAに与えられる。また、FPGA内で
は、回路構成データがFPGA内に構成された構成デー
タメモリに保持され、回路構成データに基づき回路の最
小単位であるロジックモジュールの論理動作とロジック
モジュール間の接続関係が決まり、これによりFPGA
の回路構成が確定する。
図1に示すように、複数のバンクに区画されており、各
バンクに対応する構成データメモリ20が付設されてい
る。構成データメモリ20へのコンフィギュレーション
(構成データの書き込み)は、このバンク単位で、CP
Uの動作とは独立して行なうことができる。また、CP
U18とFPGA19との間はバスによって接続されて
おり、F命令で必要なだけのデータのやりとりが可能に
構成されている。
ントするものであり、F命令の数と同じ数のレジスタ
と、カウンタとによって構成されている。プリフェッチ
部14がF命令を検知すると、そのF命令のIDコード
が履歴記憶部15に送られ、履歴記憶部15は送られた
IDコードに対応するレジスタの値を1増やす。
ッチする機能と、代替命令記憶部13から代替命令をフ
ェッチする機能と、フェッチしてきた命令がF命令か否
かを判断する機能とを有する。図2は、プリフェッチ部
14の処理の流れを示すフローチャートである。すなわ
ち、ステップST11で、命令を命令メモリ12からフ
ェッチして、ステップST12で、命令がF命令か否か
を判断する。そして、F命令でない場合には、ステップ
16でCPU18にそのまま命令を送る一方、F命令で
ある場合には、ステップST13に進んで、構成データ
タグ22の内容を参照して、F命令のID番号に基づい
てFPGA19にそのIDのF命令の回路が構成されて
いるかどうかを判断する。そして、FPGA19にその
IDのF命令の回路が構成されている場合には、ステッ
プST14に進んで、F命令をそのままCPU18に送
り、FPGA19にそのIDのF命令の回路が構成され
ていない場合には、ステップST15に移行して、代替
命令を代替命令記憶部13からフェッチして、CPU1
8に送る。代替命令列が終了するまでは、プリフェッチ
部14は、命令メモリ12からではなく、代替命令記憶
部13から代替命令をフェッチしてくる。
PGA19に構成されていない場合には、代替命令をC
PU18に送ることにより、F命令による処理と同じ処
理が行なわれる。すなわち、FPGA内にF命令の処理
を行う回路が構成されていない場合でも、従来のように
未実装命令として扱われてCPUが停止するような事態
は発生しない。
リ11、FPGA19内の構成データメモリ20及び内
蔵メモリ21間の構成データの移動を決定するものであ
る。入力として、履歴記憶部15からの履歴情報、構成
データタグ22からの構成データ情報、コンフィギュレ
ーションメモリ11からのバンク数情報などがある。こ
れらの情報を用いて、どのF命令の構成データを構成デ
ータメモリ20のどこのバンクにローディングするかを
決定する。そして、書き換え制御部17により、構成デ
ータのローディングを制御する。
集積回路では、どのF命令の構成データをいつFPGA
のどこにローディングすれば処理性能が高くなるかをあ
らかじめ考える必要があった。これに対して、本実施形
態では、以下のアルゴリズムでFPGA19の構成デー
タの更新を行なうことにより、どのF命令の構成データ
をいつFPGAのどこにローディングすれば処理性能が
高くなるかを自動的に判断し、構成データの更新を自動
的に行うことができる。
7における処理の流れを示すフローチャートである。ま
ず、ステップST21で、当該F命令Aを構成するのに
必要なバンク数をコンフィギュレーションメモリ11か
ら読み出す。次に、ステップST22で、FPGA19
の空きバンク数NN がF命令Aの必要バンク数NA 以上
か否かを判別し、NN ≧NA (YES)であれば、ST
23でFPGA19中の空きバンクの構成データメモリ
にF命令Aの構成データをローディングする。このと
き、構成データが内蔵メモリ21にあればそちらからロ
ーディングし、終了する。
NA (NO)のときには、FPGA19に構成されたF
命令のうちで使用頻度の低いF命令との置き換えを図る
ための処理を行う。そこで、ステップST24に移行し
て、まず、FPGA19に構成されているF命令のうち
使用頻度のもっとも低いものを選択して、これを置換用
のF命令Bとする。
使用頻度UA がF命令Bの使用頻度UB よりも大きい
か否かを判断し、UA ≦UB (NO)のときには、置き
換えるべきでないと判断して、何もせずに終了する。
ステップST27で、内蔵メモリ21にF命令Bの構成
データを記憶することができるだけの空間があるかを調
べる。そして、内蔵メモリ21にF命令Bの構成データ
を記憶することができるだけの空間がある(YES)場
合には、ステップST28で、F命令BをFPGA19
の構成データメモリ20から内蔵メモリ21に移動させ
た後、ステップST29で、FPGA19の構成データ
メモリ20中のF命令Bが格納されているバンクを空き
バンクとして、ステップST22に戻る。このとき、空
きバンク数NNがF命令Bの分だけ増えるので、ステッ
プST22の判別結果がYES(NN ≧NA )になる確
率が高くなるが、NO(NN <NA )のときには、別の
F命令が置換用のF命令Bに指定されて、ステップST
24以降の処理が行われる。
モリ21にF命令Bの構成データを記憶することができ
るだけの空間がない(NO)場合には、ステップST3
0に移行して、内蔵メモリ21に記憶されているF命令
の構成データがあるか否かを判別する。そして、内蔵メ
モリ21に記憶されているF命令の構成データがあれ
ば、ステップST31に進んで、内蔵メモリ21につい
て、FPGA19中の構成データメモリ20について行
なったステップST24、ST25と同様の処理を行な
う。すなわち、ステップST31で、内蔵メモリ21に
格納されているF命令のうち使用頻度がもっとも低い命
令を置換用のF命令Cとする。そして、ステップST3
2で、F命令Bの使用頻度UB がF命令Cの使用頻度U
C よりも大きいか否かを判断し、UB >UC であれば、
ステップST33で、内蔵メモリ21中のF命令Cが格
納されている領域を空き空間として、ステップST27
の処理に戻る。
蔵メモリ21中にF命令が存在していない場合や、ステ
ップST32の判別においてUB ≦UC (NO)のとき
には、ステップST29に移行して、F命令Bの構成情
報が格納されたバンクを空きとしてST22へと戻る。
令の構成データは使用頻度の高い順番に構成データメモ
リ20、内蔵メモリ21に格納される。
は置換用のF命令を意味するもので、特定の1つのF命
令を指すものではない。
構成データメモリ20に対してF命令の構成データの初
期コンフィギュレーションが行なわれる。この初期コン
フィギュレーションは、構成データメモリ20に任意の
F命令の構成データをローディングする方法と、履歴記
憶部15の履歴データからより使用頻度の高いF命令の
構成データを構成データメモリ20に優先的にローディ
ングする方法とがある。後者の場合には、リセットによ
って履歴記憶部15の情報が消去されないようにする必
要がある。パワーオンリセット時も同様の動作が必要な
場合には、履歴記憶部15の記憶情報が不揮発性を有し
ている必要がある。
うパラメータをFPGA19中の構成データメモリ20
の構成データを決定する際に用いることにより、使用頻
度の高いものから順に構成データメモリ20、内蔵メモ
リ21に格納されることになる。
つどこにローディングするかを予め考えることなく、使
用頻度をパラメータとしてFPGAの構成を自動的に変
更させることが可能になる。その結果、より使用頻度の
高いF命令をFPGAに自動的に構成することが可能と
なり、処理性能の向上を図ることができる。
使用頻度Uの数値には上限があるので、上限以上の頻度
の更新結果が正しく反映されないおそれがある。そこ
で、あるIDのF命令の使用頻度Uが上限に達したと
き、適正化が終了したものと見なし以降の更新を停止す
るか、全てのF命令の使用頻度Uを一律に減少させて更
新を継続する方法をとることにより、使用頻度の高いF
命令をFPGAに保持することができる。
令とが併記されたデータ構造を有する命令メモリを有す
る場合の制御方法に関する第2の実施形態について説明
する。本実施形態においては、図1に示す構成におい
て、代替命令記憶部13を備えていないことが前提であ
る。
F命令と代替命令が併記されている場合の具体例を示す
図である。図7においては、図6(a)に示すF命令お
よび図6(b)に示すF命令と、それらの代替命令とが
併記されている場合を例にとっている。
F命令を受けて、F命令をFPGA19で処理する場合
には、プリフェッチ部はF命令をCPU18に送った
後、F命令に記述されているアドレスaddrまでジャ
ンプする。したがって、代替命令は実行されず、次の命
令が実行されることになる。一方、F命令をFPGA1
8で処理せず代替命令を実行する場合には、プリフェッ
チ部14はF命令を無視し、F命令に続いて記述された
代替命令をフェッチし、CPU18に送る。したがっ
て、この場合には代替命令がCPU18で実行されるこ
とになる。
4が命令メモリ12からフェッチした命令がF命令であ
り、かつ、そのF命令の回路がFPGA19内に構成さ
れていない場合には、F命令を行なうことなく代替命令
を行なう。
態に比べて、F命令と代替命令とを切り換えるための切
り換え機構が不要になり、代替命令を記憶するためのハ
ードウェアも必要でないという利点がある。ただし、第
1の実施形態では、F命令と代替命令とを並列にフェッ
チすることができるので、本実施形態のごとく、スキッ
プなどのときに生じる待ち時間が少ないという利点があ
る。
2を利用したF命令の存在の確認や、判別部16、書き
換え制御部17を利用したF命令の構成データのローデ
ィングなどの制御は、第1の実施形態と同様に行なうこ
とができ、第1の実施形態と同じ効果を発揮することが
できる。
形態においては、命令メモリ内のプログラムにF命令が
含まれ、そのF命令を検知することによってF命令の処
理をFPGAで行なうかどうかを判断するように構成さ
れている。したがって、F命令を使用していないプログ
ラムを使用した場合には、混載されたFPGAを使用し
た処理ができないため、FPGAによる処理能力の向上
を図ることができない。そこで、本実施形態において
は、命令メモリには、F命令を使用していないプログラ
ムを格納し、かつFPGAを使用した処理を実現し、こ
のような場合でも処理能力の向上を図りうるようにす
る。
回路のブロック回路図である。同図に示すように、本実
施形態においては、代替命令記憶部が設けられていな
い。そして、本実施形態においては、命令メモリ12内
のプログラムには、F命令が含まれていない。そして、
FPGA19で行う処理として、F命令以外の命令から
成る命令列と同等の処理を行う回路の構成データを用意
して、その命令列、構成データおよびIDコードを、予
めコンフィギュレーションメモリ11に格納しておく。
12から供給される命令列の例を示す図である。この例
では、レジスタに格納されたD1、D2、D3という3
つのデータがあり、1行目の命令でデータD1とデータ
D2とを加算してその加算結果をD2に代入し、2行目
の命令で、データD2の値をデータD3の値だけ右にシ
フトしてデータD2に代入する。
レーションメモリのデータ構造を示す図である。同図に
示すように、コンフィギュレーションメモリのデータ
は、IDコード、命令列、対応する構成データとバンク
数とを含んでいる。
コンフィギュレーションメモリのデータ構造の例を示す
図である。具体的にはIDコードは1で、命令列は「A
DDD1、D2・LSR D3、D2」で、バンク数は
1で対応する構成データ(図では項目のみ)となってい
る。
施形態で説明したとおりである。
ッチ部14が命令メモリ12から命令列をフェッチした
ときに、コンフィギュレーションメモリ11内の命令列
部を参照して、フェッチした命令列と一致するものがコ
ンフィギュレーションメモリ11内の命令列中に存在し
ているか否かを判別部で判別し、一致するものがある場
合には、第1、第2の実施形態のF命令をフェッチした
ときと同様に、以下の動作を行う。本実施形態では、命
令メモリ12からフェッチされた命令列と一致するもの
がコンフィギュレーションメモリ11内の命令列中に存
在しており、かつその処理をFPGA19で行わないと
判定された命令列が第1、第2の実施形態における代替
命令に相当することになる。また、本実施形態では、命
令メモリ12からフェッチされた命令列と一致するもの
がコンフィギュレーションメモリ11内の命令列中に存
在しており、かつ、その処理をFPGA19で行うと判
断した場合には、プリフェッチ部は図8で示す命令列を
図6(a)に示すF命令に書き換えてCPU18に送
る。これにより、その処理はFPGA19で行われるこ
とになる。
に、コンフィギュレーションメモリ11内の命令列デー
タをプリフェッチ部に取り込むことも可能であり、その
場合には、コンフィギュレーションメモリに命令列の参
照を行う必要がないため、処理の迅速化が可能である。
2を利用した構成データの存在の確認や、判別部16、
書き換え制御部17を利用した構成データのローディン
グなどの制御は、第1の実施形態と同様に行なうことが
できる。
プログラムに対しても、FPGAを使用した処理を可能
とし、処理能力の向上を図ることができる。
示す履歴記憶部15に1つのF命令だけでなく複数のF
命令の履歴を記憶する機能を持たせるようにした第4の
実施形態について説明する。
1に示す半導体集積回路を前提とし、履歴記憶部15の
構成が上記第1〜第3の実施形態とは異なっている場合
について説明する。
の主要部の構成を示す図である。同図に示すように、履
歴記憶部15aには、構成データ数の2乗分のレジスタ
と、、前回F命令ID記憶部と、インクリメンタとが設
けられている。本実施形態においては、構成データ数が
5つの場合を例にとっている。履歴記憶部15aには、
前回のF命令から今回のF命令への遷移パターン、つま
りID番号1、2、3、4、5の遷移パターンに対応し
て、5×5=25の頻度のレジスタが設けられており、
各頻度のレジスタには、その遷移パターンが生じた頻度
が登録されている。同図には、一部のレジスタについて
のみ頻度値が例示されている。この遷移頻度の登録方法
は、以下の通りである。
プリフェッチ部14からF命令のIDが入力されると、
次のF命令が入力されるまでの間、前回F命令ID記憶
部にそのID番号が保持される。そして、履歴記憶部1
5aに次のF命令のIDが入力されると、前回のF命令
と次のF命令とのID番号の遷移パターンが分かるの
で、インクリメンタがその遷移パターンに対応するレジ
スタから現在の頻度を取り出して、その値に1を加算し
てレジスタに戻し、次のF命令は前回F命令ID記憶部
に保持される。これにより、各レジスタには、各遷移パ
ターンの頻度が更新されながら登録される。
は、履歴記憶部15aの頻度のレジスタに登録されてい
る頻度を参照して、現在実行されているF命令のID番
号から次にどのF命令の構成データを構成データメモリ
20にローディングしておくかを決定する。例えば、頻
度のレジスタには図12に例示されている頻度値が登録
されている場合、現在実行されているF命令のID番号
が1であるとすると、そのF命令が終了した後に、遷移
する確率がもっとも高いID番号3のF命令の構成デー
タをFPGA19の構成データメモリ20にローディン
グしておく。
の構成データのローディングの制御は、入力される頻度
がもっとも高いF命令の構成データを優先的にFPGA
19の構成データメモリ20に格納したが、本実施形態
においては、現在のF命令から予想される遷移の確率が
もっとも高いF命令の構成データを優先的にFPGA1
9の構成データメモリ20に格納する。言い換えると、
本実施形態では、遷移パターンの発生頻度を指標とし
て、F命令の構成データのローディングの制御を行なう
ことになる。具体的には、図3に示すフローチャートに
おいて、ステップST24、ST31においては遷移す
る確率が低いF命令をF命令B、F命令Cとし、ステッ
プST25、ST32における判別において、使用頻度
Uに代えて遷移頻度Tの大小を比較する。
移する確率がもっとも高いF命令の構成データを予めF
PGAの構成データメモリにローディングしておくこと
により、新F命令が入力されたときに、新F命令の構成
データがFPGA19の構成データメモリ中に存在しな
いために代替命令を使用せざるを得ない,という事態を
できるだけ回避することができる。したがって、特定の
遷移パターンが現れやすいプログラムでは処理能力の向
上が期待できる。
つのF命令間の遷移パターンを履歴記憶部に記憶させる
場合について説明したが、3つ以上のF命令の遷移パタ
ーンを履歴記憶部に記憶させる場合についても適用する
ことができる。
形態に加えて、F命令の遷移に要するインターバルも記
憶するようにした例である第5の実施形態について説明
する。
1に示す半導体集積回路を前提とし、履歴記憶部の構成
が上記第1〜第4の実施形態とは異なっている場合につ
いて説明する。
の主要部の構成を示す図である。同図に示すように、履
歴記憶部15bには、構成データ数の2乗の2倍分のレ
ジスタと、前回F命令ID記憶部と、インクリメンタ
と、インターバル検出部(カウンタ)と、インターバル
更新部とが設けられている。本実施形態においては、構
成データ数が5つの場合を例に採っている。履歴記憶部
15bには、前回のF命令から今回のF命令への遷移パ
ターン、つまりID番号1、2、3、4、5の遷移パタ
ーンに対応して、5×5×2=50のレジスタが設けら
れており、これらのレジスタには、その遷移パターンが
生じた頻度が登録されている頻度のレジスタと、その遷
移に要した時間であるインターバルの平均値が登録され
ているインターバルのレジスタとがある。同図には、一
部のレジスタについてのみ頻度値及びインターバルの平
均値が例示されている。この遷移頻度やインターバルの
平均値の登録方法は、以下の通りである。
らF命令のIDが入力されると、第4の実施形態と同様
の動作によって、頻度のレジスタに各遷移パターンが発
生した頻度が登録される。また、インターバル検出部に
より、前回のF命令が入力されたときからの経過時間が
カウントされており、前回のF命令が入力されたときか
ら次のF命令が入力されるまでのインターバルが検出さ
れる。そこで、インターバル更新部により、インターバ
ルのレジスタから前回までのインターバルの平均値を取
り出して、以下の計算式 新平均値=(前回までの平均値×前回までの遷移頻度+
今回のインターバル値)/(前回までの遷移頻度+1) に基づいて、インターバルの平均値を更新する。
タには、システムの動作中における各遷移パターンの頻
度、インターバルが更新されながら登録される。
は、履歴記憶部15aの頻度のレジスタに登録されてい
る頻度及びインターバルのレジスタに登録されているイ
ンターバルの平均値を参照して、現在実行されているF
命令のID番号から次にどのF命令をFPGAにローデ
ィングするかを決定する。例えば、頻度のレジスタに
は、図13に例示されている頻度値、インターバル値が
登録されている場合、現在ID番号が1であるF命令が
実行されているとすると、そのF命令が終了した後は、
現在遷移する確率がもっとも高いのはID番号が3のF
命令である。しかし、ID番号が1のF命令からID番
号が3のF命令に遷移するインターバルの平均値は30
0(クロックサイクル)しかないが、この時間はID番
号3の構成データをコンフィギュレーションメモリから
FPGAへのローディングに要する時間(例えば500
クロックサイクル)よりも短いので、構成データの書き
換えを行なう時間がない。そこで、図13に示す頻度、
インターバルのレジスタの値を参照すると、ID番号1
→3の次にID番号1→4の遷移確率が高く、かつ、I
D番号1→4へのインターバルの平均値は1100(ク
ロックサイクル)であり、ID番号が4の構成データを
ローディングする時間(例えば500クロックサイク
ル)よりも大きいので、構成データの書き換えを行なう
時間がある。そこで、ID番号が4のF命令の構成デー
タをFPGA19の構成データメモリ20にローディン
グしておく。
の構成データのローディングの制御は、入力される頻度
がもっとも高いF命令の構成データを優先的にFPGA
19の構成データメモリ20に格納したが、本実施形態
においては、現在のF命令から予想される遷移の確率が
もっとも高く、かつ、書き換える時間のあるF命令の構
成データを優先的にFPGA19の構成データメモリ2
0に格納する。言い換えると、本実施形態では、遷移の
インターバルを考慮しつつ遷移パターンの発生頻度を指
標として、F命令の構成データのローディングの制御を
行なうことになる。具体的には、図3に示すフローチャ
ートにおいて、ステップST24、ST31においては
遷移する確率が低くインターバルの平均値がローディン
グに要する時間よりも長いF命令をF命令B、F命令C
とし、ステップST25、ST32における判別におい
て、使用頻度Uに代えてインターバルの平均値がローデ
ィングに要する時間よりも長いという条件下で遷移頻度
Tの大小を比較する。
移する確率がもっとも高いF命令の構成データを予めF
PGAの構成データメモリにローディングしておくこと
により、新F命令が入力されたときに、新F命令の構成
データがFPGA19の構成データメモリ中に存在しな
いために、代替命令を使用せざるを得ないという事態を
インターバルも考慮しながら回避することができる。し
たがって処理能力の向上を期待することができる。
4の実施形態において、命令メモリ12が内蔵されてお
らずに外付けでもよい。また、プリフェッチ部14はC
PU18と一体化されていてもよい。FPGA19はバ
ンク構成になっている必要はない。内蔵メモリ21はな
くてもよい。また、コンフィギュレーションメモリ11
は、外付けでなく内蔵されていてもよい。
て、F命令の使用頻度の代わりに(使用頻度)×(その
F命令をFPGAで処理することによって短縮される処
理時間)を構成データのローディングの制御の指標とす
ることもできる。つまり、当該F命令の使用頻度が大き
くても、そのF命令についてFPGAを使用したことに
よる処理性能の向上が低ければ、当該F命令を優先的に
使用してもトータルとして処理性能の向上が小さくなる
ためである。
載した半導体集積回路において、FPGAに構成される
回路を処理性能が高くなるように自動的に書き換えるこ
とができる。
路のブロック回路図である。
の流れを示すフローチャートである。
御部における処理の流れを示すフローチャートである。
を示す図である。
ータ数が4の場合の構成データタグのデータ構造を示す
図である。
形態におけるF命令,代替命令の具体例を示す図であ
る。
令と代替命令が併記されている場合の具体例を示す図で
ある。
れる命令列の例を示す図である。
ンメモリのデータ構造を示す図である。
レーションメモリのデータ構造の例を示す図である。
ロック回路図である。
の構成を示す図である。
の構成を示す図である。
Claims (16)
- 【請求項1】 CPUと、 回路構成が書き換え可能であるプログラマブルデバイス
で構成される上記CPUの補助演算装置と、 命令あるいは複数の命令からなる命令列を受けて、上記
命令あるいは命令列が上記補助演算装置で処理が可能な
予約命令か否かを判別する第1の判別手段と、 上記予約命令の処理を行う回路構成データを上記補助演
算装置に書き込むための構成データ書き込み手段とを備
えている半導体集積回路。 - 【請求項2】 請求項1記載の半導体集積回路におい
て、 上記第1の判別手段の結果を受けて、上記命令が上記予
約命令であるときには、上記予約命令の処理を行う回路
が上記補助演算装置内に存在するか否かを判断する第2
の判別手段と、 上記第1の判別手段および第2の判別手段の判断結果を
受けて、上記命令が上記予約命令であるときには、上記
補助演算装置を用いて上記予約命令の処理を行うか否か
を判断する第3の判別手段とをさらに備えている半導体
集積回路。 - 【請求項3】 請求項2記載の半導体集積回路におい
て、 上記第2の判別手段の判断結果を受けて、上記予約命令
の処理を行う回路が上記補助演算装置内に存在する場合
に、上記予約命令の処理を上記補助演算装置で行わせる
ように指示し、上記予約命令の処理を行う回路が上記補
助演算装置内に存在しない場合に、上記予約命令の処理
を上記CPUで行うように指示する命令切り替え手段を
さらに備えている半導体集積回路。 - 【請求項4】 請求項3記載の半導体集積回路におい
て、 上記予約命令はCPUで実行され得ない命令であり、 上記予約命令と同等の処理をCPUで行うための代替命
令を供給する代替命令供給手段とをさらに備え、 上記命令切り替え手段は、上記代替命令供給手段から上
記代替命令を取得する機能を有していることを特徴とす
る半導体集積回路。 - 【請求項5】 請求項3記載の半導体集積回路におい
て、 上記予約命令はCPUで実行され得ない命令であり、 上記命令又は命令列と、上記予約命令と同等の処理をC
PUで行うための代替命令とを供給する機能を有する命
令供給手段をさらに備え、 上記命令切り替え手段は上記命令供給手段から上記予約
命令または上記代替命令を選択して取得する機能を有し
ていることを特徴とする半導体集積回路。 - 【請求項6】 請求項3記載の半導体集積回路におい
て、 上記予約命令はCPUで実行され得る命令であり、 上記命令切り替え手段は、上記予約命令の処理を上記補
助演算装置で行わせる場合は上記予約命令の処理を上記
補助演算装置で行わせるように上記命令を変更し、上記
予約命令の処理を上記CPUで行わせる場合は上記予約
命令を変更しない機能をさらに有していることを特徴と
する半導体集積回路。 - 【請求項7】 請求項1〜6のうちいずれか1つに記載
の半導体集積回路において、 上記構成データ書き込み手段は、上記予約命令を受けた
ときに、当該予約命令の処理を行う回路が上記補助演算
装置に存在しない場合に、上記補助演算装置に上記予約
命令の回路構成データを書き込む機能を有していること
を特徴とする半導体集積回路。 - 【請求項8】 請求項1〜7のうちいずれか1つに記載
の半導体集積回路において、 上記予約命令の使用頻度を記憶する履歴記憶手段をさら
に備え、 上記構成データ書き込み手段は、上記履歴記憶手段を参
照して、使用頻度がより高い予約命令の処理を行う回路
構成データを優先的に上記補助演算装置に書き込むこと
を特徴とする半導体集積回路。 - 【請求項9】 請求項8記載の半導体集積回路におい
て、 メモリをさらに備え、 上記構成データ書き込み手段は、上記履歴記憶手段を参
照して、上記予約命令の回路構成データを、使用頻度の
高い順に、上記補助演算装置と上記メモリとに書き込む
ことを特徴とする半導体集積回路。 - 【請求項10】 請求項8記載の半導体集積回路におい
て、 メモリをさらに備え、 上記構成データ書き込み手段は、上記履歴記憶手段を参
照して、上記予約命令の回路構成データを、上記補助演
算装置に上記予約命令の回路構成データよりも空き容量
が多ければ書込み、空き容量が少なければ上記予約命令
の回路構成データよりも空き容量が多くなるまで上記予
約命令よりも使用頻度の低い予約命令を上記補助演算装
置から解放し、上記解放された予約命令を、上記メモリ
の上記メモリに書き込む第4の判別手段をさらに備えて
いることを特徴とする半導体集積回路。 - 【請求項11】 請求項1〜7のうちいずれか1つに記
載の半導体集積回路において、 上記予約命令を複数回受けたときの予約命令の遷移パタ
ーンを記憶する履歴記憶手段をさらに備え、 上記構成データ書き込み手段は、上記履歴記憶手段を参
照して、現在受けている予約命令から遷移する確率がよ
り高い予約命令の回路構成データを優先的に上記補助演
算装置に書き込むことを特徴とする半導体集積回路。 - 【請求項12】 請求項1〜7のうちいずれか1つに記
載の半導体集積回路において、 上記予約命令を複数回受けたとき、第1の予約命令の次
に実行される第2の予約命令の頻度を各予約命令ごとに
記憶する履歴記憶手段をさらに備え、 上記構成データ書き込み手段は、上記履歴記憶手段を参
照して、現在受けている第1の予約命令の次に実行され
る頻度が高い第2の予約命令の回路構成データを優先的
に上記補助演算装置に書き込むことを特徴とする半導体
集積回路。 - 【請求項13】 請求項1〜7のうちいずれか1つに記
載の半導体集積回路において、 上記予約命令を2回受けたときの予約命令の遷移パター
ンと、上記2つの予約命令を受ける時間間隔とを記憶す
る履歴記憶手段をさらに備え、 上記構成データ書き込み手段は、上記履歴記憶手段を参
照して、現在受けている予約命令から遷移する確率がよ
り高い予約命令の回路構成データを、上記時間間隔が回
路構成データの書き込みに要する時間よりも長いときに
限り上記補助演算装置に書き込むことを特徴とする半導
体集積回路。 - 【請求項14】 請求項1〜7のうちいずれか1つに記
載の半導体集積回路において、 上記予約命令を2回受けたときの予約命令の遷移パター
ンと、上記2つの予約命令を受ける時間間隔とを記憶す
る履歴記憶手段をさらに備え、 上記構成データ書き込み手段は、上記履歴記憶手段を参
照して、現在受けている第1の予約命令の次に実行され
る頻度が高い第2の予約命令の回路構成データを、上記
時間間隔が回路構成データの書き込みに要する時間より
も長いときに限り上記補助演算装置に書き込むことを特
徴とする半導体集積回路。 - 【請求項15】 請求項1〜11のうちいずれか1つに
記載の半導体集積回路において、 上記構成データ書き込み手段は、上記補助演算装置の空
き容量が上記予約命令の構成データの容量よりも大きけ
れば上記予約命令の構成データの書き込みを行い、空き
容量が少なければ上記予約命令の回路構成データの容量
よりも空き容量が多くなるまで上記予約命令よりも使用
頻度の低い予約命令を上記補助演算装置から解放するこ
とを特徴とする半導体集積回路。 - 【請求項16】 請求項1〜11のうちいずれか1つに
記載の半導体集積回路において、 上記補助演算装置はバンク構成を有しており、 上記構成データ書き込み手段は、上記補助演算装置の空
きバンクが上記予約命令の構成データの必要バンクより
も大きければ上記予約命令の構成データの書き込みを行
い、 空きバンクが少なければ上記予約命令の回路構成データ
の必要バンクよりも空きバンクの方が多くなるまで上記
予約命令よりも使用頻度の低い予約命令を上記補助演算
装置から解放することを特徴とする半導体集積回路。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000371299A JP3636986B2 (ja) | 2000-12-06 | 2000-12-06 | 半導体集積回路 |
US10/001,967 US6901502B2 (en) | 2000-12-06 | 2001-12-05 | Integrated circuit with CPU and FPGA for reserved instructions execution with configuration diagnosis |
US11/038,024 US20050144515A1 (en) | 2000-12-06 | 2005-01-21 | Semiconductor integrated circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000371299A JP3636986B2 (ja) | 2000-12-06 | 2000-12-06 | 半導体集積回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002175183A true JP2002175183A (ja) | 2002-06-21 |
JP3636986B2 JP3636986B2 (ja) | 2005-04-06 |
Family
ID=18841045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000371299A Expired - Fee Related JP3636986B2 (ja) | 2000-12-06 | 2000-12-06 | 半導体集積回路 |
Country Status (2)
Country | Link |
---|---|
US (2) | US6901502B2 (ja) |
JP (1) | JP3636986B2 (ja) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004025468A1 (ja) * | 2002-09-13 | 2004-03-25 | Hitachi, Ltd. | 半導体装置 |
JP2007183726A (ja) * | 2006-01-05 | 2007-07-19 | Nec Corp | データ処理装置及びデータ処理方法 |
JP2007207136A (ja) * | 2006-02-06 | 2007-08-16 | Nec Corp | データ処理装置、データ処理方法、及びデータ処理プログラム |
JP2008219806A (ja) * | 2007-03-07 | 2008-09-18 | Mitsubishi Electric Corp | 電気機器 |
US7584345B2 (en) | 2003-10-30 | 2009-09-01 | International Business Machines Corporation | System for using FPGA technology with a microprocessor for reconfigurable, instruction level hardware acceleration |
JP2013251889A (ja) * | 2012-04-30 | 2013-12-12 | Semiconductor Energy Lab Co Ltd | 半導体装置 |
JP2014030500A (ja) * | 2012-08-01 | 2014-02-20 | Toshiba Corp | 超音波診断装置 |
JP2014509106A (ja) * | 2011-01-13 | 2014-04-10 | ザイリンクス インコーポレイテッド | 集積回路におけるプロセッサシステムの拡張 |
JP2017107489A (ja) * | 2015-12-11 | 2017-06-15 | 富士通株式会社 | 処理装置及び処理装置の制御方法 |
JP2018101267A (ja) * | 2016-12-20 | 2018-06-28 | 東芝デベロップメントエンジニアリング株式会社 | 管理装置 |
JP2018530025A (ja) * | 2015-06-26 | 2018-10-11 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | 高速で再構成可能な回路及び高帯域幅のメモリインタフェースを用いたコンピュータアーキテクチャ |
WO2019087728A1 (ja) * | 2017-10-30 | 2019-05-09 | 日立オートモティブシステムズ株式会社 | 電子制御装置 |
JP2022524663A (ja) * | 2019-01-17 | 2022-05-10 | インテル・コーポレーション | シナリオプロファイルベースのパーティショニングおよびアプリケーションコードの管理 |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7266725B2 (en) | 2001-09-03 | 2007-09-04 | Pact Xpp Technologies Ag | Method for debugging reconfigurable architectures |
DE19651075A1 (de) | 1996-12-09 | 1998-06-10 | Pact Inf Tech Gmbh | Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen |
DE19654595A1 (de) | 1996-12-20 | 1998-07-02 | Pact Inf Tech Gmbh | I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen |
ATE243390T1 (de) | 1996-12-27 | 2003-07-15 | Pact Inf Tech Gmbh | Verfahren zum selbständigen dynamischen umladen von datenflussprozessoren (dfps) sowie bausteinen mit zwei- oder mehrdimensionalen programmierbaren zellstrukturen (fpgas, dpgas, o.dgl.) |
US6542998B1 (en) | 1997-02-08 | 2003-04-01 | Pact Gmbh | Method of self-synchronization of configurable elements of a programmable module |
US8686549B2 (en) | 2001-09-03 | 2014-04-01 | Martin Vorbach | Reconfigurable elements |
DE19861088A1 (de) | 1997-12-22 | 2000-02-10 | Pact Inf Tech Gmbh | Verfahren zur Reparatur von integrierten Schaltkreisen |
WO2002013000A2 (de) | 2000-06-13 | 2002-02-14 | Pact Informationstechnologie Gmbh | Pipeline ct-protokolle und -kommunikation |
DE10081643D2 (de) | 1999-06-10 | 2002-05-29 | Pact Inf Tech Gmbh | Sequenz-Partitionierung auf Zellstrukturen |
US8058899B2 (en) | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
AU2002220600A1 (en) * | 2000-10-06 | 2002-04-15 | Pact Informationstechnologie Gmbh | Cell system with segmented intermediate cell structure |
US7444531B2 (en) | 2001-03-05 | 2008-10-28 | Pact Xpp Technologies Ag | Methods and devices for treating and processing data |
WO2005045692A2 (en) | 2003-08-28 | 2005-05-19 | Pact Xpp Technologies Ag | Data processing device and method |
US9037807B2 (en) | 2001-03-05 | 2015-05-19 | Pact Xpp Technologies Ag | Processor arrangement on a chip including data processing, memory, and interface elements |
US7844796B2 (en) | 2001-03-05 | 2010-11-30 | Martin Vorbach | Data processing device and method |
EP1402382B1 (de) | 2001-06-20 | 2010-08-18 | Richter, Thomas | Verfahren zur bearbeitung von daten |
US7996827B2 (en) * | 2001-08-16 | 2011-08-09 | Martin Vorbach | Method for the translation of programs for reconfigurable architectures |
US7434191B2 (en) | 2001-09-03 | 2008-10-07 | Pact Xpp Technologies Ag | Router |
US8686475B2 (en) | 2001-09-19 | 2014-04-01 | Pact Xpp Technologies Ag | Reconfigurable elements |
US7394823B2 (en) * | 2001-11-20 | 2008-07-01 | Broadcom Corporation | System having configurable interfaces for flexible system configurations |
US7577822B2 (en) * | 2001-12-14 | 2009-08-18 | Pact Xpp Technologies Ag | Parallel task operation in processor and reconfigurable coprocessor configured based on information in link list including termination information for synchronization |
EP1483682A2 (de) | 2002-01-19 | 2004-12-08 | PACT XPP Technologies AG | Reconfigurierbarer prozessor |
AU2003214003A1 (en) | 2002-02-18 | 2003-09-09 | Pact Xpp Technologies Ag | Bus systems and method for reconfiguration |
US8914590B2 (en) | 2002-08-07 | 2014-12-16 | Pact Xpp Technologies Ag | Data processing method and device |
US8090928B2 (en) * | 2002-06-28 | 2012-01-03 | Intellectual Ventures I Llc | Methods and apparatus for processing scalar and vector instructions |
JP3904493B2 (ja) * | 2002-07-24 | 2007-04-11 | 株式会社ルネサステクノロジ | 半導体装置 |
WO2004021176A2 (de) | 2002-08-07 | 2004-03-11 | Pact Xpp Technologies Ag | Verfahren und vorrichtung zur datenverarbeitung |
US7657861B2 (en) | 2002-08-07 | 2010-02-02 | Pact Xpp Technologies Ag | Method and device for processing data |
AU2003289844A1 (en) | 2002-09-06 | 2004-05-13 | Pact Xpp Technologies Ag | Reconfigurable sequencer structure |
US7340644B2 (en) * | 2002-12-02 | 2008-03-04 | Marvell World Trade Ltd. | Self-reparable semiconductor and method thereof |
US7185225B2 (en) | 2002-12-02 | 2007-02-27 | Marvell World Trade Ltd. | Self-reparable semiconductor and method thereof |
US20060001669A1 (en) * | 2002-12-02 | 2006-01-05 | Sehat Sutardja | Self-reparable semiconductor and method thereof |
EP1443418A1 (en) * | 2003-01-31 | 2004-08-04 | STMicroelectronics S.r.l. | Architecture for reconfigurable digital signal processor |
US7254800B1 (en) * | 2004-02-26 | 2007-08-07 | Xilinx, Inc. | Methods of providing error correction in configuration bitstreams for programmable logic devices |
JP2009524134A (ja) | 2006-01-18 | 2009-06-25 | ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト | ハードウェア定義方法 |
JP2007251329A (ja) * | 2006-03-14 | 2007-09-27 | Matsushita Electric Ind Co Ltd | プログラマブルロジックデバイス |
US20090024839A1 (en) * | 2007-07-21 | 2009-01-22 | Arssov Paul Plamen | Variable instruction set microprocessor |
US8718079B1 (en) | 2010-06-07 | 2014-05-06 | Marvell International Ltd. | Physical layer devices for network switches |
US8516466B2 (en) * | 2010-06-30 | 2013-08-20 | International Business Machines Corporation | Optimization of automated system-managed storage operations |
JP5786434B2 (ja) * | 2011-04-28 | 2015-09-30 | 富士ゼロックス株式会社 | 画像データ処理装置及びプログラム |
CN103150143A (zh) * | 2013-02-06 | 2013-06-12 | 王鸿雁 | 一种基于fpga的五流水线数字信号处理器 |
JP5971214B2 (ja) * | 2013-08-16 | 2016-08-17 | 富士ゼロックス株式会社 | データ処理装置及びデータ処理プログラム |
US11030147B2 (en) | 2019-03-27 | 2021-06-08 | International Business Machines Corporation | Hardware acceleration using a self-programmable coprocessor architecture |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0383136A (ja) | 1989-08-25 | 1991-04-09 | Seiko Epson Corp | 電子計算機 |
JPH05242050A (ja) | 1992-03-02 | 1993-09-21 | Mitsubishi Electric Corp | プロセッサ装置 |
US5361373A (en) * | 1992-12-11 | 1994-11-01 | Gilson Kent L | Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor |
US6067615A (en) * | 1993-11-30 | 2000-05-23 | Trw Inc. | Reconfigurable processor for executing successive function sequences in a processor operation |
JPH07175631A (ja) | 1993-12-16 | 1995-07-14 | Dainippon Printing Co Ltd | 演算処理装置 |
US5748979A (en) * | 1995-04-05 | 1998-05-05 | Xilinx Inc | Reprogrammable instruction set accelerator using a plurality of programmable execution units and an instruction page table |
US5996004A (en) * | 1996-01-02 | 1999-11-30 | Bp Microsystems, Inc. | Concurrent programming apparatus and method for electronic devices |
US6067815A (en) * | 1996-11-05 | 2000-05-30 | Tes Technology, Inc. | Dual evaporator refrigeration unit and thermal energy storage unit therefore |
US6134707A (en) * | 1996-11-14 | 2000-10-17 | Altera Corporation | Apparatus and method for in-system programming of integrated circuits containing programmable elements |
US6112317A (en) * | 1997-03-10 | 2000-08-29 | Digital Equipment Corporation | Processor performance counter for sampling the execution frequency of individual instructions |
WO2000049496A1 (en) | 1999-02-15 | 2000-08-24 | Koninklijke Philips Electronics N.V. | Data processor with a configurable functional unit and method using such a data processor |
JP2000235489A (ja) | 1999-02-15 | 2000-08-29 | Hitachi Ltd | プロセッサ |
WO2001095099A1 (fr) * | 2000-06-06 | 2001-12-13 | Tadahiro Ohmi | Systeme et procede de gestion de circuits de traitement d'informations a fonction variable |
US6912706B1 (en) * | 2001-08-15 | 2005-06-28 | Xilinx, Inc. | Instruction processor and programmable logic device cooperative computing arrangement and method |
-
2000
- 2000-12-06 JP JP2000371299A patent/JP3636986B2/ja not_active Expired - Fee Related
-
2001
- 2001-12-05 US US10/001,967 patent/US6901502B2/en not_active Expired - Fee Related
-
2005
- 2005-01-21 US US11/038,024 patent/US20050144515A1/en not_active Abandoned
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004025468A1 (ja) * | 2002-09-13 | 2004-03-25 | Hitachi, Ltd. | 半導体装置 |
US7584345B2 (en) | 2003-10-30 | 2009-09-01 | International Business Machines Corporation | System for using FPGA technology with a microprocessor for reconfigurable, instruction level hardware acceleration |
US7603540B2 (en) | 2003-10-30 | 2009-10-13 | International Business Machines Corporation | Using field programmable gate array (FPGA) technology with a microprocessor for reconfigurable, instruction level hardware acceleration |
JP2007183726A (ja) * | 2006-01-05 | 2007-07-19 | Nec Corp | データ処理装置及びデータ処理方法 |
JP2007207136A (ja) * | 2006-02-06 | 2007-08-16 | Nec Corp | データ処理装置、データ処理方法、及びデータ処理プログラム |
JP2008219806A (ja) * | 2007-03-07 | 2008-09-18 | Mitsubishi Electric Corp | 電気機器 |
JP4659774B2 (ja) * | 2007-03-07 | 2011-03-30 | 三菱電機株式会社 | 電気機器 |
JP2014509106A (ja) * | 2011-01-13 | 2014-04-10 | ザイリンクス インコーポレイテッド | 集積回路におけるプロセッサシステムの拡張 |
JP2013251889A (ja) * | 2012-04-30 | 2013-12-12 | Semiconductor Energy Lab Co Ltd | 半導体装置 |
JP2014030500A (ja) * | 2012-08-01 | 2014-02-20 | Toshiba Corp | 超音波診断装置 |
JP2018530025A (ja) * | 2015-06-26 | 2018-10-11 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | 高速で再構成可能な回路及び高帯域幅のメモリインタフェースを用いたコンピュータアーキテクチャ |
JP2017107489A (ja) * | 2015-12-11 | 2017-06-15 | 富士通株式会社 | 処理装置及び処理装置の制御方法 |
JP2018101267A (ja) * | 2016-12-20 | 2018-06-28 | 東芝デベロップメントエンジニアリング株式会社 | 管理装置 |
WO2019087728A1 (ja) * | 2017-10-30 | 2019-05-09 | 日立オートモティブシステムズ株式会社 | 電子制御装置 |
JP2019083404A (ja) * | 2017-10-30 | 2019-05-30 | 日立オートモティブシステムズ株式会社 | 電子制御装置 |
JP2022524663A (ja) * | 2019-01-17 | 2022-05-10 | インテル・コーポレーション | シナリオプロファイルベースのパーティショニングおよびアプリケーションコードの管理 |
JP7322345B2 (ja) | 2019-01-17 | 2023-08-08 | インテル・コーポレーション | シナリオプロファイルベースのパーティショニングおよびアプリケーションコードの管理 |
Also Published As
Publication number | Publication date |
---|---|
JP3636986B2 (ja) | 2005-04-06 |
US20050144515A1 (en) | 2005-06-30 |
US20020133690A1 (en) | 2002-09-19 |
US6901502B2 (en) | 2005-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2002175183A (ja) | 半導体集積回路 | |
US6321318B1 (en) | User-configurable on-chip program memory system | |
KR100469569B1 (ko) | 비휘발성 메모리가 데이터 저장/처리 디바이스로서동작하면서 코드를 실행할 수 있게 하는 방법 및 시스템 | |
JPH096633A (ja) | データ処理システムに於ける高性能多重論理経路の動作用の方法とシステム | |
US6408377B2 (en) | Dynamic allocation of resources in multiple microprocessor pipelines | |
US20090271790A1 (en) | Computer architecture | |
JP2003150574A (ja) | マイクロコンピュータ | |
US11704152B2 (en) | Processor zero overhead task scheduling | |
US6898671B2 (en) | Data processor for reducing set-associative cache energy via selective way prediction | |
US6125440A (en) | Storing executing instruction sequence for re-execution upon backward branch to reduce power consuming memory fetch | |
US7596681B2 (en) | Processor and processing method for reusing arbitrary sections of program code | |
JP2003058368A (ja) | データ処理装置内でのコプロセッサ命令の取り扱い | |
US5907693A (en) | Autonomously cycling data processing architecture | |
EP1766510B1 (en) | Microprocessor output ports and control of instructions provided therefrom | |
US8484446B2 (en) | Microprocessor saving data stored in register and register saving method | |
WO2002046887A2 (en) | Concurrent-multitasking processor | |
US20010048619A1 (en) | Control circuit and semiconductor device including same | |
US20040044916A1 (en) | Microcontroller | |
US7117343B2 (en) | Fetching instructions to instruction buffer for simultaneous execution with long instruction sensing or buffer overwrite control | |
EP0307957B1 (en) | Central processing unit having instruction prefetch function | |
JPH1091434A (ja) | クイック・デコード命令を用いるための方法およびデータ処理システム | |
JPH0744401A (ja) | 論理集積回路およびそのデータ処理システム | |
JPH08221270A (ja) | データ処理装置 | |
US20010021973A1 (en) | Processor | |
JP2012173919A (ja) | 情報処理装置、車両用電子制御ユニット、データ記憶方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040629 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040830 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040928 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041129 |
|
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: 20041221 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050106 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |