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
Application number
JP2000371299A
Other languages
English (en)
Other versions
JP3636986B2 (ja
Inventor
Junichi Yano
純一 矢野
Hisato Yoshida
久人 吉田
Kimihiko Aeba
侯彦 饗庭
Katsuyuki Imamura
勝幸 今村
Junichi Mori
淳一 森
Junya Yamamoto
淳也 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2000371299A priority Critical patent/JP3636986B2/ja
Priority to US10/001,967 priority patent/US6901502B2/en
Publication of JP2002175183A publication Critical patent/JP2002175183A/ja
Priority to US11/038,024 priority patent/US20050144515A1/en
Application granted granted Critical
Publication of JP3636986B2 publication Critical patent/JP3636986B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent 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/3897Concurrent 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

(57)【要約】 【課題】 プログラマブルデバイスを配置した半導体集
積回路の処理効率を向上させる。 【解決手段】 半導体集積回路10は、コンフィギュレ
ーションメモリ11と信号の授受が可能になっている。
半導体集積回路10の内部には、命令メモリ11と、予
約命令をF命令として記憶し、このF命令と同じ処理内
容をCPUで行なうための代替命令として記憶している
命令記憶部12と、プリフェッチ部14と、履歴記憶部
15と、命令の種類を判別するための判別部16と、命
令を書き換えるための書き換え制御部17と、CPU1
8と、FPGA19と、構成データメモリ20と、内蔵
メモリ21と、構成データタグ22とを備えている。F
命令の構成データがFPGA19内に存在しない場合に
は、代替命令を使用することで、CPU18によりFP
GA19と同じ処理が行なわれる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、CPUとプログラ
マブルデバイスとを混載した半導体集積回路に係わり、
特にその処理性能向上対策に関する。
【0002】
【従来の技術】従来より、PLD(Programmable Logic
Device)もしくはFPGA(Field Programmable Gate
Array)と呼ばれるプログラマブルデバイスが広く知られ
ている(以下、本明細書ではFPGAと記載する)。F
PGAはユーザーがその回路構成をプログラミングする
ことが可能であるデバイスであって、ユーザーが設計し
た回路を即座に構成し、その動作を実現することができ
るというメリットがある。特に回路構成を繰り返し再構
成することができるFPGAの場合には、その時々に必
要な回路構成に柔軟に変更して処理性能が上げられると
いうメリットもある。
【0003】さらに、近年、このFPGAとCPUとを
1つの半導体集積回路上に混載したものが提案されてき
ている。このような半導体集積回路においては、従来の
CPUのプログラムの変更に加えて、FPGAで構成さ
れた部分の回路構成が変更可能となったため、システム
の変更により柔軟に対応することができることになる。
【0004】従来のCPUとFPGAを混載した半導体
集積回路の例として、例えば特開平05-242050 号公報に
開示されるようなものがあり、CPUとFPGAとを備
え、処理すべき演算の一部をFPGA部に構成される回
路によって行う方法が知られている。
【0005】
【発明が解決しようとする課題】しかしながら、上記従
来のCPUとFPGAを混載した半導体集積回路におい
ては、FPGAで処理する命令が来た場合にFPGAに
その処理を行う回路が構成されていなければ未実装命令
(undefined operation)として扱われ処理がストップ
するという問題があった。
【0006】また、上記従来のCPUとFPGAを混載
した半導体集積回路においてはFPGAに構成される回
路を固定した場合には、回路構成がダイナミックに変更
することができるというFPGAの特徴を生かしておら
ず、その時々に必要な回路に柔軟に対応できず、処理性
能向上に限界があった。
【0007】また、FPGAに構成される回路をダイナ
ミックに変更するようにした場合にも、回路構成変更の
タイミングはあらかじめユーザーが指定する必要があ
り、自動的に回路構成の変更ができなかった。また、異
なるユーザーが異なる処理を同じ半導体集積回路に行わ
せる場合にはFPGAの回路構成や回路構成を変更する
タイミングを再検討しなくてはならないことになる。
【0008】すなわち、従来のCPUとFPGAを混載
した半導体集積回路においては、FPGAによる処理性
能向上は自動的に行われないという問題があった。
【0009】本発明の目的は、FPGAに構成される回
路を自動的にダイナミックに変更でき、処理性能の高い
CPUとFPGAを混載した半導体集積回路を提供する
ことにある。
【0010】
【課題を解決するための手段】本発明の半導体集積回路
は、CPUと、回路構成が書き換え可能であるプログラ
マブルデバイスで構成される上記CPUの補助演算装置
と、命令あるいは複数の命令からなる命令列を受けて、
上記命令あるいは命令列が上記補助演算装置で処理が可
能な予約命令か否かを判別する第1の判別手段と、上記
予約命令の処理を行う回路構成データを上記補助演算装
置に書き込むための構成データ書き込み手段とを備えて
いる。
【0011】これにより、プログラマブルデバイスによ
って構成される回路を自動的にダイナミックに変更する
ことができ、処理性能の高いCPUとプログラマブルデ
バイスとを混載した半導体集積回路を提供することが可
能になった。
【0012】上記第1の判別手段の結果を受けて、上記
命令が上記予約命令であるときには、上記予約命令の処
理を行う回路が上記補助演算装置内に存在するか否かを
判断する第2の判別手段と、上記第1の判別手段および
第2の判別手段の判断結果を受けて、上記命令が上記予
約命令であるときには、上記補助演算装置を用いて上記
予約命令の処理を行うか否かを判断する第3の判別手段
とをさらに備えることが好ましい。
【0013】上記第2の判別手段の判断結果を受けて、
上記予約命令の処理を行う回路が上記補助演算装置内に
存在する場合に、上記予約命令の処理を上記補助演算装
置で行わせるように指示し、上記予約命令の処理を行う
回路が上記補助演算装置内に存在しない場合に、上記予
約命令の処理を上記CPUで行うように指示する命令切
り替え手段をさらに備えることにより、プログラマブル
デバイス内に予約命令の構成データがない場合でも、未
実装命令として扱われてCPUが停止するような事態は
発生しない。
【0014】上記予約命令はCPUで実行され得ない命
令であり、上記予約命令と同等の処理をCPUで行うた
めの代替命令を供給する代替命令供給手段とをさらに備
え、上記命令切り替え手段は、上記代替命令供給手段か
ら上記代替命令を取得する機能を有していることによ
り、予約命令がない場合には、代替命令を送ることによ
り、CPUによって予約命令による処理と同等の処理が
行なわれる。したがって、プログラマブルデバイス内に
予約命令の構成データがない場合でも、未実装命令とし
て扱われてCPUが停止するような事態は発生しない。
【0015】上記予約命令はCPUで実行され得ない命
令であり、上記命令又は命令列と、上記予約命令と同等
の処理をCPUで行うための代替命令とを供給する機能
を有する命令供給手段をさらに備え、上記命令切り替え
手段は上記命令供給手段から上記予約命令または上記代
替命令を選択して取得する機能を有していることによ
り、予約命令又は代替命令を迅速に実行することが可能
になる。
【0016】上記予約命令はCPUで実行され得る命令
であり、上記命令切り替え手段は、上記予約命令の処理
を上記補助演算装置で行わせる場合は上記予約命令の処
理を上記補助演算装置で行わせるように上記命令を変更
し、上記予約命令の処理を上記CPUで行わせる場合は
上記予約命令を変更しない機能をさらに有していること
が好ましい。
【0017】上記構成データ書き込み手段は、上記予約
命令を受けたときに、当該予約命令の処理を行う回路が
上記補助演算装置に存在しない場合に、上記補助演算装
置に上記予約命令の回路構成データを書き込む機能を有
していることにより、プログラムが変更された場合で
も、その変更に応じたプログラマブルデバイスの利用が
可能になる。したがって、プログラマブルデバイスを利
用したHW/SWの切り換えなどのダイナミックな書き
換えにより、処理能率の向上を図ることができる。
【0018】上記予約命令の使用頻度を記憶する履歴記
憶手段をさらに備え、上記構成データ書き込み手段は、
上記履歴記憶手段を参照して、使用頻度がより高い予約
命令の処理を行う回路構成データを優先的に上記補助演
算装置に書き込むことにより、頻度を指標とするプログ
ラマブルデバイスの使用の最適化を図ることができる。
【0019】メモリをさらに備え、上記構成データ書き
込み手段は、上記履歴記憶手段を参照して、上記予約命
令の回路構成データを、使用頻度の高い順に、上記補助
演算装置と上記メモリとに書き込むことが好ましい。
【0020】メモリをさらに備え、上記構成データ書き
込み手段は、上記履歴記憶手段を参照して、上記予約命
令の回路構成データを、上記補助演算装置に上記予約命
令の回路構成データよりも空き容量が多ければ書込み、
空き容量が少なければ上記予約命令の回路構成データよ
りも空き容量が多くなるまで上記予約命令よりも使用頻
度の低い予約命令を上記補助演算装置から解放し、上記
解放された予約命令を、上記メモリの上記メモリに書き
込む第4の判別手段をさらに備えていることがより好ま
しい。
【0021】上記予約命令を複数回受けたときの予約命
令の遷移パターンを記憶する履歴記憶手段をさらに備
え、上記構成データ書き込み手段は、上記履歴記憶手段
を参照して、現在受けている予約命令から遷移する確率
がより高い予約命令の回路構成データを優先的に上記補
助演算装置に書き込むことにより、特定の遷移パターン
を示す種類のデバイスに特に適合した回路が得られるこ
とになる。
【0022】その場合、上記予約命令を複数回受けたと
き、第1の予約命令の次に実行される第2の予約命令の
頻度を各予約命令ごとに記憶する履歴記憶手段をさらに
備え、上記構成データ書き込み手段は、上記履歴記憶手
段を参照して、現在受けている第1の予約命令の次に実
行される頻度が高い第2の予約命令の回路構成データを
優先的に上記補助演算装置に書き込むことが好ましい。
【0023】また、上記予約命令を2回受けたときの予
約命令の遷移パターンと、上記2つの予約命令を受ける
時間間隔とを記憶する履歴記憶手段をさらに備え、上記
構成データ書き込み手段は、上記履歴記憶手段を参照し
て、現在受けている予約命令から遷移する確率がより高
い予約命令の回路構成データを、上記時間間隔が回路構
成データの書き込みに要する時間よりも長いときに限り
上記補助演算装置に書き込むことにより、処理能力の向
上を図ることができる。
【0024】上記予約命令を2回受けたときの予約命令
の遷移パターンと、上記2つの予約命令を受ける時間間
隔とを記憶する履歴記憶手段をさらに備え、上記構成デ
ータ書き込み手段は、上記履歴記憶手段を参照して、現
在受けている第1の予約命令の次に実行される頻度が高
い第2の予約命令の回路構成データを、上記時間間隔が
回路構成データの書き込みに要する時間よりも長いとき
に限り上記補助演算装置に書き込むことによっても、処
理能力の向上を図ることができる。
【0025】上記構成データ書き込み手段は、上記補助
演算装置の空き容量が上記予約命令の構成データの容量
よりも大きければ上記予約命令の構成データの書き込み
を行い、空き容量が少なければ上記予約命令の回路構成
データの容量よりも空き容量が多くなるまで上記予約命
令よりも使用頻度の低い予約命令を上記補助演算装置か
ら解放することにより、処理能力の向上を図ることがで
きる。
【0026】上記補助演算装置はバンク構成を有してお
り、上記構成データ書き込み手段は、上記補助演算装置
の空きバンクが上記予約命令の構成データの必要バンク
よりも大きければ上記予約命令の構成データの書き込み
を行い、空きバンクが少なければ上記予約命令の回路構
成データの必要バンクよりも空きバンクの方が多くなる
まで上記予約命令よりも使用頻度の低い予約命令を上記
補助演算装置から解放することにより、より確実に処理
能力の向上を図ることができる。
【0027】
【発明の実施の形態】(第1の実施形態) −システムの概略構成− 図1は、本発明の第1の実施形態における半導体集積回
路のブロック回路図である。同図に示すように、本実施
形態の半導体集積回路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命令は拡張命令に相当し、代替命令は基本命令
に相当する。
【0028】なお、図示しないが、半導体集積回路10
内には、CPU18やFPGA19以外の論理回路やア
ナログ回路があってもよく、それらによっても各種の処
理が行われるが、これらの処理については、従来と同様
の制御で行なうことができる。
【0029】−記憶部全般の構成− まず、命令メモリ12、代替命令記憶部13、FPGA
19、構成データタグ22、コンフィギュレーションメ
モリ11及び履歴記憶部15などの記憶部全般の構成に
ついて説明する。
【0030】命令メモリ12には、CPU18で実行す
るプログラムが格納されている。このプログラム内にF
命令が含むことがある。F命令は、各F命令を識別する
ためのIDコードが付される。代替命令記憶部13に
は、各F命令と同じ処理をCPU18で行うための代替
命令が格納されている。
【0031】図4は、命令メモリ12に格納されるプロ
グラムの例を示す図である。符号#よりも左側の「AD
D D1,D2」は命令メモリに格納される命令であ
り、符号#よりも右側に記載されている内容は命令の動
作を説明するコメントで命令メモリには格納されない。
この例では、D1,D2,D3という3つのレジスタが
あり、1行目の命令はD1とD2とを加算してその加算
結果をD2に代入する命令で、2行目の命令は、D2の
データをD3の値だけ右にシフトしてD2に代入する命
令である。
【0032】構成データタグ22は、FPGAのバンク
の数だけのレジスタ(又はメモリ)によって構成されて
おり、この各レジスタ(又はメモリ)には、構成データ
のIDコードが格納されている。
【0033】図5は、バンク数が8で(バンク0〜バン
ク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が空いて
いる”と回答することになる。
【0034】図6(a),(b)は、それぞれ代替命令
記憶部13,命令メモリ12に格納されるプログラムの
うちF命令の例を示す図である。図6(b)に示す例で
は、F命令であることを示すFPGAという文字列の後
に、IDコードである1と、この命令で使用される3つ
のレジスタD1、D2、D3が指定されている。そし
て、このF命令で実行される処理は、ここでは図4で示
されるプログラムと同じである。
【0035】図6(b)に示す例では、図6(a)のF
命令に対する代替命令の例を示している。すなわち、C
PU18で、図6(a)のF命令と同じ処理を行うプロ
グラムが格納されている。
【0036】すなわち、代替命令記憶部13には、F命
令をFPGA19で処理せずにCPU18で処理する場
合に、F命令と同じ処理を実現するための代替命令が格
納されている。つまり、ここでいう代替命令とは、FP
GA19によって処理する拡張命令がきても、その処理
を行う回路がFPGA19に構成されていない場合に、
CPU18によって同じ処理を行わせるための基本命令
である。
【0037】F命令がプリフェッチ部14によりフェッ
チされ、かつ、代替命令を実行することになると、プリ
フェッチ部14は代替命令記憶部13に対して当該F命
令の代わりとなる代替命令をフェッチするようアクセス
する。このとき、当該F命令のIDコードを代替命令記
憶部13に送ると、代替命令記憶部13は、IDコード
に対応する代替命令を供給する。そして、終了コードF
PGAend を検知すると、代替命令の終了信号プリフェ
ッチ部14に供給する。プリフェッチ部14は、代替命
令の終了信号を受けると、再び命令メモリ12から命令
をフェッチするように動作する。
【0038】一般的に、FPGAは回路構成データが与
えられることによって、その回路構成が決定される。回
路構成データは、一般的にチップ外部に備えられた不揮
発性メモリであるコンフィギュレーションメモリに記憶
されており、コンフィギュレーションメモリから回路構
成データがFPGAに与えられる。また、FPGA内で
は、回路構成データがFPGA内に構成された構成デー
タメモリに保持され、回路構成データに基づき回路の最
小単位であるロジックモジュールの論理動作とロジック
モジュール間の接続関係が決まり、これによりFPGA
の回路構成が確定する。
【0039】本実施形態においては、FPGA19は、
図1に示すように、複数のバンクに区画されており、各
バンクに対応する構成データメモリ20が付設されてい
る。構成データメモリ20へのコンフィギュレーション
(構成データの書き込み)は、このバンク単位で、CP
Uの動作とは独立して行なうことができる。また、CP
U18とFPGA19との間はバスによって接続されて
おり、F命令で必要なだけのデータのやりとりが可能に
構成されている。
【0040】履歴記憶部15は、各F命令の頻度をカウ
ントするものであり、F命令の数と同じ数のレジスタ
と、カウンタとによって構成されている。プリフェッチ
部14がF命令を検知すると、そのF命令のIDコード
が履歴記憶部15に送られ、履歴記憶部15は送られた
IDコードに対応するレジスタの値を1増やす。
【0041】−プリフェッチ部の処理− プリフェッチ部14は、命令メモリ12から命令をフェ
ッチする機能と、代替命令記憶部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から代替命令をフェッチしてくる。
【0042】このように、F命令の処理を行う回路がF
PGA19に構成されていない場合には、代替命令をC
PU18に送ることにより、F命令による処理と同じ処
理が行なわれる。すなわち、FPGA内にF命令の処理
を行う回路が構成されていない場合でも、従来のように
未実装命令として扱われてCPUが停止するような事態
は発生しない。
【0043】−判別部及び書き換え制御部の処理− 判別部16は、主として、コンフィギュレーションメモ
リ11、FPGA19内の構成データメモリ20及び内
蔵メモリ21間の構成データの移動を決定するものであ
る。入力として、履歴記憶部15からの履歴情報、構成
データタグ22からの構成データ情報、コンフィギュレ
ーションメモリ11からのバンク数情報などがある。こ
れらの情報を用いて、どのF命令の構成データを構成デ
ータメモリ20のどこのバンクにローディングするかを
決定する。そして、書き換え制御部17により、構成デ
ータのローディングを制御する。
【0044】従来のCPUとFPGAを混載した半導体
集積回路では、どのF命令の構成データをいつFPGA
のどこにローディングすれば処理性能が高くなるかをあ
らかじめ考える必要があった。これに対して、本実施形
態では、以下のアルゴリズムでFPGA19の構成デー
タの更新を行なうことにより、どのF命令の構成データ
をいつFPGAのどこにローディングすれば処理性能が
高くなるかを自動的に判断し、構成データの更新を自動
的に行うことができる。
【0045】図3は、判別部16及び書き換え制御部1
7における処理の流れを示すフローチャートである。ま
ず、ステップST21で、当該F命令Aを構成するのに
必要なバンク数をコンフィギュレーションメモリ11か
ら読み出す。次に、ステップST22で、FPGA19
の空きバンク数NN がF命令Aの必要バンク数NA 以上
か否かを判別し、NN ≧NA (YES)であれば、ST
23でFPGA19中の空きバンクの構成データメモリ
にF命令Aの構成データをローディングする。このと
き、構成データが内蔵メモリ21にあればそちらからロ
ーディングし、終了する。
【0046】一方、ステップST22の判別で、NN
A (NO)のときには、FPGA19に構成されたF
命令のうちで使用頻度の低いF命令との置き換えを図る
ための処理を行う。そこで、ステップST24に移行し
て、まず、FPGA19に構成されているF命令のうち
使用頻度のもっとも低いものを選択して、これを置換用
のF命令Bとする。
【0047】そして、ステップST25で、F命令Aの
使用頻度UA がF命令Bの使用頻度UB よりも大きい
か否かを判断し、UA ≦UB (NO)のときには、置き
換えるべきでないと判断して、何もせずに終了する。
【0048】一方、UA >UB (YES)のときには、
ステップ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以降の処理が行われる。
【0049】また、ステップST27の判別で、内蔵メ
モリ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
の処理に戻る。
【0050】一方、ステップST30の判別において内
蔵メモリ21中にF命令が存在していない場合や、ステ
ップST32の判別においてUB ≦UC (NO)のとき
には、ステップST29に移行して、F命令Bの構成情
報が格納されたバンクを空きとしてST22へと戻る。
【0051】以上のような処理の結果、最終的に、F命
令の構成データは使用頻度の高い順番に構成データメモ
リ20、内蔵メモリ21に格納される。
【0052】以上の処理において、F命令B、F命令C
は置換用のF命令を意味するもので、特定の1つのF命
令を指すものではない。
【0053】なお、リセット時には、FPGA19内の
構成データメモリ20に対してF命令の構成データの初
期コンフィギュレーションが行なわれる。この初期コン
フィギュレーションは、構成データメモリ20に任意の
F命令の構成データをローディングする方法と、履歴記
憶部15の履歴データからより使用頻度の高いF命令の
構成データを構成データメモリ20に優先的にローディ
ングする方法とがある。後者の場合には、リセットによ
って履歴記憶部15の情報が消去されないようにする必
要がある。パワーオンリセット時も同様の動作が必要な
場合には、履歴記憶部15の記憶情報が不揮発性を有し
ている必要がある。
【0054】本実施形態によると、“使用頻度U”とい
うパラメータをFPGA19中の構成データメモリ20
の構成データを決定する際に用いることにより、使用頻
度の高いものから順に構成データメモリ20、内蔵メモ
リ21に格納されることになる。
【0055】したがって、どのF命令の構成データをい
つどこにローディングするかを予め考えることなく、使
用頻度をパラメータとしてFPGAの構成を自動的に変
更させることが可能になる。その結果、より使用頻度の
高いF命令をFPGAに自動的に構成することが可能と
なり、処理性能の向上を図ることができる。
【0056】なお、履歴記憶部で記憶することができる
使用頻度Uの数値には上限があるので、上限以上の頻度
の更新結果が正しく反映されないおそれがある。そこ
で、あるIDのF命令の使用頻度Uが上限に達したと
き、適正化が終了したものと見なし以降の更新を停止す
るか、全てのF命令の使用頻度Uを一律に減少させて更
新を継続する方法をとることにより、使用頻度の高いF
命令をFPGAに保持することができる。
【0057】(第2の実施形態)次に、F命令と代替命
令とが併記されたデータ構造を有する命令メモリを有す
る場合の制御方法に関する第2の実施形態について説明
する。本実施形態においては、図1に示す構成におい
て、代替命令記憶部13を備えていないことが前提であ
る。
【0058】図7は、命令メモリ12中のプログラムに
F命令と代替命令が併記されている場合の具体例を示す
図である。図7においては、図6(a)に示すF命令お
よび図6(b)に示すF命令と、それらの代替命令とが
併記されている場合を例にとっている。
【0059】図7に示すように、プリフェッチ部14が
F命令を受けて、F命令をFPGA19で処理する場合
には、プリフェッチ部はF命令をCPU18に送った
後、F命令に記述されているアドレスaddrまでジャ
ンプする。したがって、代替命令は実行されず、次の命
令が実行されることになる。一方、F命令をFPGA1
8で処理せず代替命令を実行する場合には、プリフェッ
チ部14はF命令を無視し、F命令に続いて記述された
代替命令をフェッチし、CPU18に送る。したがっ
て、この場合には代替命令がCPU18で実行されるこ
とになる。
【0060】本実施形態においては、プリフェッチ部1
4が命令メモリ12からフェッチした命令がF命令であ
り、かつ、そのF命令の回路がFPGA19内に構成さ
れていない場合には、F命令を行なうことなく代替命令
を行なう。
【0061】本実施形態においては、上記第1の実施形
態に比べて、F命令と代替命令とを切り換えるための切
り換え機構が不要になり、代替命令を記憶するためのハ
ードウェアも必要でないという利点がある。ただし、第
1の実施形態では、F命令と代替命令とを並列にフェッ
チすることができるので、本実施形態のごとく、スキッ
プなどのときに生じる待ち時間が少ないという利点があ
る。
【0062】本実施形態においても、構成データタグ2
2を利用したF命令の存在の確認や、判別部16、書き
換え制御部17を利用したF命令の構成データのローデ
ィングなどの制御は、第1の実施形態と同様に行なうこ
とができ、第1の実施形態と同じ効果を発揮することが
できる。
【0063】(第3の実施形態)上記第1、第2の実施
形態においては、命令メモリ内のプログラムにF命令が
含まれ、そのF命令を検知することによってF命令の処
理をFPGAで行なうかどうかを判断するように構成さ
れている。したがって、F命令を使用していないプログ
ラムを使用した場合には、混載されたFPGAを使用し
た処理ができないため、FPGAによる処理能力の向上
を図ることができない。そこで、本実施形態において
は、命令メモリには、F命令を使用していないプログラ
ムを格納し、かつFPGAを使用した処理を実現し、こ
のような場合でも処理能力の向上を図りうるようにす
る。
【0064】図11は、本実施形態における半導体集積
回路のブロック回路図である。同図に示すように、本実
施形態においては、代替命令記憶部が設けられていな
い。そして、本実施形態においては、命令メモリ12内
のプログラムには、F命令が含まれていない。そして、
FPGA19で行う処理として、F命令以外の命令から
成る命令列と同等の処理を行う回路の構成データを用意
して、その命令列、構成データおよびIDコードを、予
めコンフィギュレーションメモリ11に格納しておく。
【0065】図8は、本実施形態において、命令メモリ
12から供給される命令列の例を示す図である。この例
では、レジスタに格納されたD1、D2、D3という3
つのデータがあり、1行目の命令でデータD1とデータ
D2とを加算してその加算結果をD2に代入し、2行目
の命令で、データD2の値をデータD3の値だけ右にシ
フトしてデータD2に代入する。
【0066】図9は、本実施形態におけるコンフィギュ
レーションメモリのデータ構造を示す図である。同図に
示すように、コンフィギュレーションメモリのデータ
は、IDコード、命令列、対応する構成データとバンク
数とを含んでいる。
【0067】図10は、図8に示す命令列の例に対する
コンフィギュレーションメモリのデータ構造の例を示す
図である。具体的にはIDコードは1で、命令列は「A
DDD1、D2・LSR D3、D2」で、バンク数は
1で対応する構成データ(図では項目のみ)となってい
る。
【0068】構成データタグ22の構造は上記第1の実
施形態で説明したとおりである。
【0069】そして、本実施形態においては、プリフェ
ッチ部14が命令メモリ12から命令列をフェッチした
ときに、コンフィギュレーションメモリ11内の命令列
部を参照して、フェッチした命令列と一致するものがコ
ンフィギュレーションメモリ11内の命令列中に存在し
ているか否かを判別部で判別し、一致するものがある場
合には、第1、第2の実施形態のF命令をフェッチした
ときと同様に、以下の動作を行う。本実施形態では、命
令メモリ12からフェッチされた命令列と一致するもの
がコンフィギュレーションメモリ11内の命令列中に存
在しており、かつその処理をFPGA19で行わないと
判定された命令列が第1、第2の実施形態における代替
命令に相当することになる。また、本実施形態では、命
令メモリ12からフェッチされた命令列と一致するもの
がコンフィギュレーションメモリ11内の命令列中に存
在しており、かつ、その処理をFPGA19で行うと判
断した場合には、プリフェッチ部は図8で示す命令列を
図6(a)に示すF命令に書き換えてCPU18に送
る。これにより、その処理はFPGA19で行われるこ
とになる。
【0070】なお、リセット時やパワーオンリセット時
に、コンフィギュレーションメモリ11内の命令列デー
タをプリフェッチ部に取り込むことも可能であり、その
場合には、コンフィギュレーションメモリに命令列の参
照を行う必要がないため、処理の迅速化が可能である。
【0071】本実施形態においても、構成データタグ2
2を利用した構成データの存在の確認や、判別部16、
書き換え制御部17を利用した構成データのローディン
グなどの制御は、第1の実施形態と同様に行なうことが
できる。
【0072】本実施形態によると、F命令が含まれない
プログラムに対しても、FPGAを使用した処理を可能
とし、処理能力の向上を図ることができる。
【0073】(第4の実施形態)次に、図1、図11に
示す履歴記憶部15に1つのF命令だけでなく複数のF
命令の履歴を記憶する機能を持たせるようにした第4の
実施形態について説明する。
【0074】本実施形態においては、上記図1又は図1
1に示す半導体集積回路を前提とし、履歴記憶部15の
構成が上記第1〜第3の実施形態とは異なっている場合
について説明する。
【0075】図12は、本実施形態における履歴記憶部
の主要部の構成を示す図である。同図に示すように、履
歴記憶部15aには、構成データ数の2乗分のレジスタ
と、、前回F命令ID記憶部と、インクリメンタとが設
けられている。本実施形態においては、構成データ数が
5つの場合を例にとっている。履歴記憶部15aには、
前回のF命令から今回のF命令への遷移パターン、つま
りID番号1、2、3、4、5の遷移パターンに対応し
て、5×5=25の頻度のレジスタが設けられており、
各頻度のレジスタには、その遷移パターンが生じた頻度
が登録されている。同図には、一部のレジスタについて
のみ頻度値が例示されている。この遷移頻度の登録方法
は、以下の通りである。
【0076】履歴記憶部15aに、図1,図11に示す
プリフェッチ部14からF命令のIDが入力されると、
次のF命令が入力されるまでの間、前回F命令ID記憶
部にそのID番号が保持される。そして、履歴記憶部1
5aに次のF命令のIDが入力されると、前回のF命令
と次のF命令とのID番号の遷移パターンが分かるの
で、インクリメンタがその遷移パターンに対応するレジ
スタから現在の頻度を取り出して、その値に1を加算し
てレジスタに戻し、次のF命令は前回F命令ID記憶部
に保持される。これにより、各レジスタには、各遷移パ
ターンの頻度が更新されながら登録される。
【0077】一方、図1又は図11に示す判別部16で
は、履歴記憶部15aの頻度のレジスタに登録されてい
る頻度を参照して、現在実行されているF命令のID番
号から次にどのF命令の構成データを構成データメモリ
20にローディングしておくかを決定する。例えば、頻
度のレジスタには図12に例示されている頻度値が登録
されている場合、現在実行されているF命令のID番号
が1であるとすると、そのF命令が終了した後に、遷移
する確率がもっとも高いID番号3のF命令の構成デー
タをFPGA19の構成データメモリ20にローディン
グしておく。
【0078】上記第1、第2の実施形態におけるF命令
の構成データのローディングの制御は、入力される頻度
がもっとも高いF命令の構成データを優先的にFPGA
19の構成データメモリ20に格納したが、本実施形態
においては、現在のF命令から予想される遷移の確率が
もっとも高いF命令の構成データを優先的にFPGA1
9の構成データメモリ20に格納する。言い換えると、
本実施形態では、遷移パターンの発生頻度を指標とし
て、F命令の構成データのローディングの制御を行なう
ことになる。具体的には、図3に示すフローチャートに
おいて、ステップST24、ST31においては遷移す
る確率が低いF命令をF命令B、F命令Cとし、ステッ
プST25、ST32における判別において、使用頻度
Uに代えて遷移頻度Tの大小を比較する。
【0079】本実施形態によると、現在のF命令から遷
移する確率がもっとも高いF命令の構成データを予めF
PGAの構成データメモリにローディングしておくこと
により、新F命令が入力されたときに、新F命令の構成
データがFPGA19の構成データメモリ中に存在しな
いために代替命令を使用せざるを得ない,という事態を
できるだけ回避することができる。したがって、特定の
遷移パターンが現れやすいプログラムでは処理能力の向
上が期待できる。
【0080】なお、上記第4の実施形態においては、2
つのF命令間の遷移パターンを履歴記憶部に記憶させる
場合について説明したが、3つ以上のF命令の遷移パタ
ーンを履歴記憶部に記憶させる場合についても適用する
ことができる。
【0081】(第5の実施形態)次に、上記第4の実施
形態に加えて、F命令の遷移に要するインターバルも記
憶するようにした例である第5の実施形態について説明
する。
【0082】本実施形態においても、上記図1又は図1
1に示す半導体集積回路を前提とし、履歴記憶部の構成
が上記第1〜第4の実施形態とは異なっている場合につ
いて説明する。
【0083】図13は、本実施形態における履歴記憶部
の主要部の構成を示す図である。同図に示すように、履
歴記憶部15bには、構成データ数の2乗の2倍分のレ
ジスタと、前回F命令ID記憶部と、インクリメンタ
と、インターバル検出部(カウンタ)と、インターバル
更新部とが設けられている。本実施形態においては、構
成データ数が5つの場合を例に採っている。履歴記憶部
15bには、前回のF命令から今回のF命令への遷移パ
ターン、つまりID番号1、2、3、4、5の遷移パタ
ーンに対応して、5×5×2=50のレジスタが設けら
れており、これらのレジスタには、その遷移パターンが
生じた頻度が登録されている頻度のレジスタと、その遷
移に要した時間であるインターバルの平均値が登録され
ているインターバルのレジスタとがある。同図には、一
部のレジスタについてのみ頻度値及びインターバルの平
均値が例示されている。この遷移頻度やインターバルの
平均値の登録方法は、以下の通りである。
【0084】履歴記憶部15bにプリフェッチ部14か
らF命令のIDが入力されると、第4の実施形態と同様
の動作によって、頻度のレジスタに各遷移パターンが発
生した頻度が登録される。また、インターバル検出部に
より、前回のF命令が入力されたときからの経過時間が
カウントされており、前回のF命令が入力されたときか
ら次のF命令が入力されるまでのインターバルが検出さ
れる。そこで、インターバル更新部により、インターバ
ルのレジスタから前回までのインターバルの平均値を取
り出して、以下の計算式 新平均値=(前回までの平均値×前回までの遷移頻度+
今回のインターバル値)/(前回までの遷移頻度+1) に基づいて、インターバルの平均値を更新する。
【0085】これにより、頻度、インターバルのレジス
タには、システムの動作中における各遷移パターンの頻
度、インターバルが更新されながら登録される。
【0086】一方、図1又は図11に示す判別部16で
は、履歴記憶部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にローディン
グしておく。
【0087】上記第1、第2の実施形態におけるF命令
の構成データのローディングの制御は、入力される頻度
がもっとも高いF命令の構成データを優先的にFPGA
19の構成データメモリ20に格納したが、本実施形態
においては、現在のF命令から予想される遷移の確率が
もっとも高く、かつ、書き換える時間のあるF命令の構
成データを優先的にFPGA19の構成データメモリ2
0に格納する。言い換えると、本実施形態では、遷移の
インターバルを考慮しつつ遷移パターンの発生頻度を指
標として、F命令の構成データのローディングの制御を
行なうことになる。具体的には、図3に示すフローチャ
ートにおいて、ステップST24、ST31においては
遷移する確率が低くインターバルの平均値がローディン
グに要する時間よりも長いF命令をF命令B、F命令C
とし、ステップST25、ST32における判別におい
て、使用頻度Uに代えてインターバルの平均値がローデ
ィングに要する時間よりも長いという条件下で遷移頻度
Tの大小を比較する。
【0088】本実施形態によると、現在のF命令から遷
移する確率がもっとも高いF命令の構成データを予めF
PGAの構成データメモリにローディングしておくこと
により、新F命令が入力されたときに、新F命令の構成
データがFPGA19の構成データメモリ中に存在しな
いために、代替命令を使用せざるを得ないという事態を
インターバルも考慮しながら回避することができる。し
たがって処理能力の向上を期待することができる。
【0089】(その他の実施形態)なお、上記第1〜第
4の実施形態において、命令メモリ12が内蔵されてお
らずに外付けでもよい。また、プリフェッチ部14はC
PU18と一体化されていてもよい。FPGA19はバ
ンク構成になっている必要はない。内蔵メモリ21はな
くてもよい。また、コンフィギュレーションメモリ11
は、外付けでなく内蔵されていてもよい。
【0090】また、上記第1〜第3の実施形態におい
て、F命令の使用頻度の代わりに(使用頻度)×(その
F命令をFPGAで処理することによって短縮される処
理時間)を構成データのローディングの制御の指標とす
ることもできる。つまり、当該F命令の使用頻度が大き
くても、そのF命令についてFPGAを使用したことに
よる処理性能の向上が低ければ、当該F命令を優先的に
使用してもトータルとして処理性能の向上が小さくなる
ためである。
【0091】
【発明の効果】本発明によると、CPUとFPGAを混
載した半導体集積回路において、FPGAに構成される
回路を処理性能が高くなるように自動的に書き換えるこ
とができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態における半導体集積回
路のブロック回路図である。
【図2】第1の実施形態におけるプリフェッチ部の処理
の流れを示すフローチャートである。
【図3】第1の実施形態における判別部及び書き換え制
御部における処理の流れを示すフローチャートである。
【図4】第1の実施形態において用いるプログラムの例
を示す図である。
【図5】第1の実施形態におけるバンク数が8で構成デ
ータ数が4の場合の構成データタグのデータ構造を示す
図である。
【図6】(a),(b)は、それぞれ順に、第1の実施
形態におけるF命令,代替命令の具体例を示す図であ
る。
【図7】第2の実施形態における、プログラム中にF命
令と代替命令が併記されている場合の具体例を示す図で
ある。
【図8】第3の実施形態において命令メモリから供給さ
れる命令列の例を示す図である。
【図9】第3の実施形態におけるコンフィギュレーショ
ンメモリのデータ構造を示す図である。
【図10】図8に示す命令列の例に対するコンフィギュ
レーションメモリのデータ構造の例を示す図である。
【図11】第3の実施形態における半導体集積回路のブ
ロック回路図である。
【図12】第4の実施形態における履歴記憶部の主要部
の構成を示す図である。
【図13】第5の実施形態における履歴記憶部の主要部
の構成を示す図である。
【符号の説明】
10 半導体集積回路 11 コンフィギュレーションメモリ 12 命令メモリ 13 代替命令記憶部 14 プリフェッチ部 15 履歴記憶部 16 判別部 17 書き換え制御部 18 CPU 19 FPGA 20 構成データメモリ 21 内蔵メモリ 22 構成データタグ
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) H01L 21/822 (72)発明者 饗庭 侯彦 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 (72)発明者 今村 勝幸 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 (72)発明者 森 淳一 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 (72)発明者 山本 淳也 大阪府門真市大字門真1006番地 松下シス テムテクノ株式会社内 Fターム(参考) 5B013 DD03 5B062 AA03 CC01 DD03 DD09 5B076 BA10 EA17 EB02 5F038 DF04 DF05 DF06 DF11 EZ20

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】 CPUと、 回路構成が書き換え可能であるプログラマブルデバイス
    で構成される上記CPUの補助演算装置と、 命令あるいは複数の命令からなる命令列を受けて、上記
    命令あるいは命令列が上記補助演算装置で処理が可能な
    予約命令か否かを判別する第1の判別手段と、 上記予約命令の処理を行う回路構成データを上記補助演
    算装置に書き込むための構成データ書き込み手段とを備
    えている半導体集積回路。
  2. 【請求項2】 請求項1記載の半導体集積回路におい
    て、 上記第1の判別手段の結果を受けて、上記命令が上記予
    約命令であるときには、上記予約命令の処理を行う回路
    が上記補助演算装置内に存在するか否かを判断する第2
    の判別手段と、 上記第1の判別手段および第2の判別手段の判断結果を
    受けて、上記命令が上記予約命令であるときには、上記
    補助演算装置を用いて上記予約命令の処理を行うか否か
    を判断する第3の判別手段とをさらに備えている半導体
    集積回路。
  3. 【請求項3】 請求項2記載の半導体集積回路におい
    て、 上記第2の判別手段の判断結果を受けて、上記予約命令
    の処理を行う回路が上記補助演算装置内に存在する場合
    に、上記予約命令の処理を上記補助演算装置で行わせる
    ように指示し、上記予約命令の処理を行う回路が上記補
    助演算装置内に存在しない場合に、上記予約命令の処理
    を上記CPUで行うように指示する命令切り替え手段を
    さらに備えている半導体集積回路。
  4. 【請求項4】 請求項3記載の半導体集積回路におい
    て、 上記予約命令はCPUで実行され得ない命令であり、 上記予約命令と同等の処理をCPUで行うための代替命
    令を供給する代替命令供給手段とをさらに備え、 上記命令切り替え手段は、上記代替命令供給手段から上
    記代替命令を取得する機能を有していることを特徴とす
    る半導体集積回路。
  5. 【請求項5】 請求項3記載の半導体集積回路におい
    て、 上記予約命令はCPUで実行され得ない命令であり、 上記命令又は命令列と、上記予約命令と同等の処理をC
    PUで行うための代替命令とを供給する機能を有する命
    令供給手段をさらに備え、 上記命令切り替え手段は上記命令供給手段から上記予約
    命令または上記代替命令を選択して取得する機能を有し
    ていることを特徴とする半導体集積回路。
  6. 【請求項6】 請求項3記載の半導体集積回路におい
    て、 上記予約命令はCPUで実行され得る命令であり、 上記命令切り替え手段は、上記予約命令の処理を上記補
    助演算装置で行わせる場合は上記予約命令の処理を上記
    補助演算装置で行わせるように上記命令を変更し、上記
    予約命令の処理を上記CPUで行わせる場合は上記予約
    命令を変更しない機能をさらに有していることを特徴と
    する半導体集積回路。
  7. 【請求項7】 請求項1〜6のうちいずれか1つに記載
    の半導体集積回路において、 上記構成データ書き込み手段は、上記予約命令を受けた
    ときに、当該予約命令の処理を行う回路が上記補助演算
    装置に存在しない場合に、上記補助演算装置に上記予約
    命令の回路構成データを書き込む機能を有していること
    を特徴とする半導体集積回路。
  8. 【請求項8】 請求項1〜7のうちいずれか1つに記載
    の半導体集積回路において、 上記予約命令の使用頻度を記憶する履歴記憶手段をさら
    に備え、 上記構成データ書き込み手段は、上記履歴記憶手段を参
    照して、使用頻度がより高い予約命令の処理を行う回路
    構成データを優先的に上記補助演算装置に書き込むこと
    を特徴とする半導体集積回路。
  9. 【請求項9】 請求項8記載の半導体集積回路におい
    て、 メモリをさらに備え、 上記構成データ書き込み手段は、上記履歴記憶手段を参
    照して、上記予約命令の回路構成データを、使用頻度の
    高い順に、上記補助演算装置と上記メモリとに書き込む
    ことを特徴とする半導体集積回路。
  10. 【請求項10】 請求項8記載の半導体集積回路におい
    て、 メモリをさらに備え、 上記構成データ書き込み手段は、上記履歴記憶手段を参
    照して、上記予約命令の回路構成データを、上記補助演
    算装置に上記予約命令の回路構成データよりも空き容量
    が多ければ書込み、空き容量が少なければ上記予約命令
    の回路構成データよりも空き容量が多くなるまで上記予
    約命令よりも使用頻度の低い予約命令を上記補助演算装
    置から解放し、上記解放された予約命令を、上記メモリ
    の上記メモリに書き込む第4の判別手段をさらに備えて
    いることを特徴とする半導体集積回路。
  11. 【請求項11】 請求項1〜7のうちいずれか1つに記
    載の半導体集積回路において、 上記予約命令を複数回受けたときの予約命令の遷移パタ
    ーンを記憶する履歴記憶手段をさらに備え、 上記構成データ書き込み手段は、上記履歴記憶手段を参
    照して、現在受けている予約命令から遷移する確率がよ
    り高い予約命令の回路構成データを優先的に上記補助演
    算装置に書き込むことを特徴とする半導体集積回路。
  12. 【請求項12】 請求項1〜7のうちいずれか1つに記
    載の半導体集積回路において、 上記予約命令を複数回受けたとき、第1の予約命令の次
    に実行される第2の予約命令の頻度を各予約命令ごとに
    記憶する履歴記憶手段をさらに備え、 上記構成データ書き込み手段は、上記履歴記憶手段を参
    照して、現在受けている第1の予約命令の次に実行され
    る頻度が高い第2の予約命令の回路構成データを優先的
    に上記補助演算装置に書き込むことを特徴とする半導体
    集積回路。
  13. 【請求項13】 請求項1〜7のうちいずれか1つに記
    載の半導体集積回路において、 上記予約命令を2回受けたときの予約命令の遷移パター
    ンと、上記2つの予約命令を受ける時間間隔とを記憶す
    る履歴記憶手段をさらに備え、 上記構成データ書き込み手段は、上記履歴記憶手段を参
    照して、現在受けている予約命令から遷移する確率がよ
    り高い予約命令の回路構成データを、上記時間間隔が回
    路構成データの書き込みに要する時間よりも長いときに
    限り上記補助演算装置に書き込むことを特徴とする半導
    体集積回路。
  14. 【請求項14】 請求項1〜7のうちいずれか1つに記
    載の半導体集積回路において、 上記予約命令を2回受けたときの予約命令の遷移パター
    ンと、上記2つの予約命令を受ける時間間隔とを記憶す
    る履歴記憶手段をさらに備え、 上記構成データ書き込み手段は、上記履歴記憶手段を参
    照して、現在受けている第1の予約命令の次に実行され
    る頻度が高い第2の予約命令の回路構成データを、上記
    時間間隔が回路構成データの書き込みに要する時間より
    も長いときに限り上記補助演算装置に書き込むことを特
    徴とする半導体集積回路。
  15. 【請求項15】 請求項1〜11のうちいずれか1つに
    記載の半導体集積回路において、 上記構成データ書き込み手段は、上記補助演算装置の空
    き容量が上記予約命令の構成データの容量よりも大きけ
    れば上記予約命令の構成データの書き込みを行い、空き
    容量が少なければ上記予約命令の回路構成データの容量
    よりも空き容量が多くなるまで上記予約命令よりも使用
    頻度の低い予約命令を上記補助演算装置から解放するこ
    とを特徴とする半導体集積回路。
  16. 【請求項16】 請求項1〜11のうちいずれか1つに
    記載の半導体集積回路において、 上記補助演算装置はバンク構成を有しており、 上記構成データ書き込み手段は、上記補助演算装置の空
    きバンクが上記予約命令の構成データの必要バンクより
    も大きければ上記予約命令の構成データの書き込みを行
    い、 空きバンクが少なければ上記予約命令の回路構成データ
    の必要バンクよりも空きバンクの方が多くなるまで上記
    予約命令よりも使用頻度の低い予約命令を上記補助演算
    装置から解放することを特徴とする半導体集積回路。
JP2000371299A 2000-12-06 2000-12-06 半導体集積回路 Expired - Fee Related JP3636986B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (17)

* Cited by examiner, † Cited by third party
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