JP2004362215A - プロセッサ及び半導体集積回路 - Google Patents
プロセッサ及び半導体集積回路 Download PDFInfo
- Publication number
- JP2004362215A JP2004362215A JP2003159174A JP2003159174A JP2004362215A JP 2004362215 A JP2004362215 A JP 2004362215A JP 2003159174 A JP2003159174 A JP 2003159174A JP 2003159174 A JP2003159174 A JP 2003159174A JP 2004362215 A JP2004362215 A JP 2004362215A
- Authority
- JP
- Japan
- Prior art keywords
- processor core
- processor
- extension unit
- unit
- instruction
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microcomputers (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
【解決手段】汎用レジスタ16と命令デコーダ18と第2の実行ユニット24を備えるプロセッサコア10と、プロセッサコア10に接続され、第1の実行ユニット36を備える拡張部32と、プロセッサコア10と拡張部32の双方に接続されるダイレクトメモリアクセスコントローラ30と、プロセッサコア10及びダイレクトメモリアクセスコントローラ30に対してバス接続されるバスブリッジ54と、プロセッサコア10と拡張部32との間に接続される制御バスと、バスブリッジ54に接続されるグローバルバスとを備え、プロセッサコアのクロックを停止させるかパイプラインを停止させる機能を有するプロセッサ及び半導体集積回路。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、プロセッサに関し、特に拡張可能なプロセッサ或いは再構成可能な演算器を有するプロセッサ及び半導体集積回路に関する。
【0002】
【従来の技術】
拡張可能なプロセッサコアとは、プロセッサコアの外部にアプリケーションに適した再構成可能な演算回路等の論理回路からなる拡張部を付加し、高性能化を図るプロセッサである(例えば、非特許文献1)。
【0003】
或いはまた、従来、プロセッサコアの外部に、ユーザー設計或いはベンダ提供の拡張回路を接続することにより、プロセッサとしての性能を向上させるカスタムプロセッサがある。外部に接続する回路は、単サイクル用の演算器であったり、複数サイクルにわたる複雑な演算器であったり、コプロセッサであったりする(例えば、非特許文献2)。
【0004】
【非特許文献1】
ミッシェル・ボルガッティー他,“ダイナミックに拡張可能な埋め込み型マイクロプロセッサー、フィールドプログラマブルゲートアレイ及び顧客用途別可能化入出力装置”、米国電気電子学会2002年カスタム集積回路国際会議論文集,2−3−1,p.13−16(M.Borgatti et.al.,“A Reconfigurable System featuring Dynamically Extensible Embedded Microprocessor, FPGA and Customisable I/O”,IEEE 2002 CUSTOM INTEGRATED CIRCUITS CONFERENCE,2−3−1,p.13−16)
【0005】
【非特許文献2】
フランチェスコ・レルトーラ他,“顔相識別用カスタム化プロセッサ”、埋め込み化プロセッサフォーラム、2002年5月1日、(www.MDRonline.com) (F. Lertora,“A Customized Processor for Face Recognition”,Embedded Processor Forum,May 1,2002)
【0006】
【発明が解決しようとする課題】
拡張可能なプロセッサコアにおいては、拡張部に再構成可能なフィールドプログラマブルゲートアレイ等の論理回路を用いることで、一つの大規模集積回路(LSI)上において、複数のアプリケーションを実行させることや、或いはアプリケーション内で拡張部の機能を変更することで効率の良い演算器を構成することができる。しかし、再構成可能な論理回路は、一般的な特定用途向け集積回路(ASIC)よりも低速である。つまりASICのセルを用いるプロセッサコアよりも、拡張部の方が遅いという欠点がある。そのため、プロセッサコアと拡張部とを同期させる必要がある。
【0007】
また、上記カスタムプロセッサでは、アプリケーションに応じた拡張部を設計して、プロセッサコアに接続することにより、高性能を得ることができるが、アプリケーションごとに拡張部を設計する必要があり、開発期間やコストが大きくなってしまうという問題がある。
【0008】
本発明の目的は、拡張部に対する命令コードにより、プロセッサコアのクロック若しくはパイプラインを停止させることでプロセッサコアと拡張部との同期をとることができる、拡張可能なプロセッサ或いは再構成可能な演算器を有するプロセッサ及び半導体集積回路を提供することにある。
【0009】
【課題を解決するための手段】
本発明の第1の特徴は、(イ)汎用レジスタと命令デコーダと第2の実効ユニットとを備えるプロセッサコアと、(ロ)プロセッサコアに接続される第1の実行ユニットを備える拡張部と、(ハ)プロセッサコアと拡張部の双方に接続されるダイレクトメモリアクセスコントローラとを備える拡張可能なプロセッサであることを要旨とする。
【0010】
本発明の第2の特徴は、(イ)半導体チップと、(ロ)半導体チップ上に集積化され、汎用レジスタと命令デコーダと第2の実効ユニットとを備えるプロセッサコアと、(ハ)半導体チップ上に集積化され、プロセッサコアに接続された第1の実行ユニットを備える拡張部と、(二)半導体チップ上に集積化され、プロセッサコアと拡張部の双方に接続されるダイレクトメモリアクセスコントローラとを備える半導体集積回路であることを要旨とする。
【0011】
【発明の実施の形態】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面において、同一又は類似の部分には同一又は類似の符号を付している。又、以下に示す実施の形態は、この発明の技術思想を具体化するための装置や方法を例示するものであって、この発明の技術思想を下記のものに特定するものではない。この発明の技術思想は、特許請求の範囲において、種々の変更を加えることができる。
【0012】
(比較例1)
本発明の比較例としての拡張可能なプロセッサは、図11に示すように、プロセッサコア10と拡張部32とから構成される。プロセッサコア10と拡張部32間には共通のクロックCLKが与えられる。更にプロセッサコア10と拡張部32間にはソースデータ1を転送するソースデータラインSD1L、ソースデータ2を転送するソースデータラインSD2L、命令コードICODを転送する命令コード転送ライン、演算結果ALRを転送する演算結果転送ラインが配置されている。更に拡張部32に対しては、コンフィグレーションインタフェースラインCONI/Fが接続されている。
【0013】
プロセッサコア10は、命令キャッシュ12と、命令RAM14と、汎用レジスタ16と、命令デコーダ18と、第2の実行ユニット20と、データキャッシュ26と、データRAM28とから構成されている。また、拡張部32には第1の実行ユニット36が含まれている。命令キャッシュ12と命令RAM14は汎用レジスタ16及び命令デコーダ18に接続されている。命令デコーダ18は、更に第2の実行ユニット20及び第1の実行ユニット36に接続されている。汎用レジスタ(GPR)16は第2の実行ユニット20に対して、ソースデータ1及びソースデータ2を転送すると共に、ソースデータ1を転送するソースデータラインSD1L、ソースデータ2を転送するソースデータラインSD2Lを介して、第1の実行ユニット36に接続されている。第2の実行ユニット20には算術論理演算装置(ALU)22及びシフトレジスタ24が含まれており、更に第2の実行ユニット20からはデータキャッシュ26及びデータRAM28に対してバスラインが延長している。更にまた、第1の実行ユニット36からの演算結果ALRを転送するラインは、第2の実行ユニット20の出力ライン、データキャッシュ26及びデータRAM28の出力ラインに共通に接続されている。更にこの共通に接続された出力ラインは汎用レジスタ16にフィードバックされている。
【0014】
上記プロセッサコア10は拡張可能なプロセッサコアである。プロセッサコア10の外部にアプリケーションに適した演算回路などの拡張部32を付加し、高性能化を図るものである。この拡張部32にフィールドプログラマブルゲートアレイ(FPGA)などからなる再構成可能な論理回路を用いることで、ひとつのLSIで複数のアプリケーションに対応させることや、あるいはアプリケーション内で拡張部32の機能を変更することで効率のよい演算器とすることができる。
【0015】
本発明の実施の形態に係る「拡張可能なプロセッサ」とは、プロセッサコアの外部に拡張部を備えるプロセッサである。その一例として、拡張部が「再構成可能な」論理回路等の演算器の構成を有する場合には、再構成可能な演算器を有するプロセッサも本発明の実施の形態に係る「拡張可能なプロセッサ」に含まれるものとする。本発明の第1の実施の形態においては、基本構成の説明と共に、プロセッサコアのクロックを停止させる動作モードに特徴を有する拡張可能なプロセッサについて説明する。本発明の第2の実施の形態においては、プロセッサコアのパイプラインを停止させる動作モードに特徴を有する拡張可能なプロセッサについて説明する。本発明の第3及び第4の実施の形態においては、拡張部において再構成可能な論理回路を有する拡張可能なプロセッサについて説明する。
【0016】
(第1の実施の形態)
まず、本発明の実施の形態に係る拡張可能なプロセッサの基本構成について説明し、次に実施の形態の構成について説明する。
【0017】
(基本構成)
本発明の第1の実施の形態に係る拡張可能なプロセッサの基本構成は、図1に示すように、プロセッサコア10と、ダイレクトメモリアクセスコントローラ(DMAC)30と、拡張部32と、バスブリッジ54と、グローバルバスGBと制御バスCBから構成される。プロセッサコア10と拡張部32間には拡張演算インタフェースラインEALI/Fが与えられる。更にプロセッサコア10と拡張部32間にはソースデータ1を転送するソースデータラインSD1L、ソースデータ2を転送するソースデータラインSD2L、拡張命令コードEICを転送するライン、制御信号CSを転送するライン、演算結果ALRを転送するラインが配置されている。更にプロセッサコア10と拡張部32との間には、制御バスCBが接続されている。また拡張部32とDMAC30との間には、ローカルデータバスLDBが接続されている。またプロセッサコア10とバスブリッジ54との間にはプロセッサバスインタフェースラインPBI/Fが接続されている。更に、バスブリッジ54に対しては、グローバルバスGBが接続されている。
【0018】
プロセッサコア10は、命令キャッシュ12と、命令RAM14と、汎用レジスタ16と、命令デコーダ18と、第2の実行ユニット20と、データキャッシュ26と、データRAM28とから構成されている。また、拡張部32は、命令デコーダ34と、第1の実行ユニット36と、制御レジスタ38と、ローカルメモリ40とから構成されている。命令キャッシュ12と命令RAM14は汎用レジスタ16及び命令デコーダ18に接続されている。命令デコーダ18は、更に第2の実行ユニット20及び命令デコーダ34に接続されている。汎用レジスタ16は第2の実行ユニット20に対して、ソースデータ1及びソースデータ2を転送すると共に、ソースデータラインSD1L、ソースデータラインSD2Lを介して、第1の実行ユニット36に接続されている。第2の実行ユニット20にはALU22及びシフトレジスタ24が含まれており、更に第2の実行ユニット20からはデータキャッシュ26及びデータRAM28に対してバスラインが延長している。更にまた、演算結果ALRを転送するラインは、第2の実行ユニット20の出力ライン、データキャッシュ26及びデータRAM28の出力ラインに共通に接続されている。更にこの共通に接続された出力ラインは汎用レジスタ16にフィードバックされている。更に、第1の実行ユニット36とデータRAM28との間にはデータRAMインタフェースラインDRI/Fが接続されている。更に、DMAC30とデータRAM28との間にもローカルデータバスLDBが接続されている。
【0019】
拡張部32においては、命令デコーダ34からの信号は第1の実行ユニット36に転送され、また第1の実行ユニット36と制御レジスタ38及びローカルメモリ40との間において相互に信号が転送されて連絡している。制御レジスタ38は制御バスCBを介してプロセッサコア10と連絡している。
【0020】
図1に示すブロック構成図の全体が、システムオンチップ(SoC)構成の半導体集積回路を構成しており、同時に一機能ブロックとして、「カスタムプロセッサ」と呼ばれるプロセッサを構成している。ここでグローバルバスGBがいわゆるオンチップバスであり、SoC内の各ブロックを結んでいる。以下に各部の機能を説明する。
【0021】
第1の実行ユニット36はプロセッサコア10からデータ受け取り演算を行い、演算結果ALRをプロセッサコア10に返す。拡張部32は制御レジスタ38を備える。制御レジスタ38に記憶されるデータは、プロセッサコア10から制御バスCBを介して、読み出され、或いは書き込まれる。拡張部32はローカルメモリ40を備え、第1の実行ユニット36がこのローカルメモリ40のデータを使って演算を行ない、或いは、実行結果をこのローカルメモリ40に書き込む。また、第1の実行ユニット36から、プロセッサコア10内部のメモリを構成するデータRAM28にアクセスしてもよい。
【0022】
DMAC30はカスタムプロセッサ内部のメモリ(例えば、プロセッサコア10内のデータRAM28)とカスタムプロセッサ外部との間のデータ転送や、カスタムプロセッサ内部同士のデータ転送を行う。拡張部32がローカルメモリ40を内蔵することもあり、そのローカルメモリ40もDMAC30によるデータ転送対象になり得る。
【0023】
拡張部32の第1の実行ユニット36は、プロセッサコア10内部のデータRAM28を使用することにより高性能を実現することができる。また、拡張部32自身が持つローカルメモリ40を使用する場合には最適なメモリ構成をとることができるため、さらに高性能を得ることができる。
【0024】
なお、図1の例で示している、拡張部32内部の制御レジスタ38、拡張部32内部のローカルメモリ40、プロセッサコア10内部のデータRAM28は必ずしも必要ない。
【0025】
プロセッサコア10は、上記機能ブロックの中心となるプロセッサであって、拡張部32のための拡張演算インタフェースラインEALI/Fを備えている。
【0026】
拡張部32は、プロセッサコア10からの指示或いは命令で演算を行う。プロセッサコア10から送られた拡張命令コードEICは、命令デコーダ34において解釈される。第1の実行ユニット36においては、演算を行う。ローカルメモリ40は、第1の実行ユニット36における演算の入力或いは出力用として機能する。制御レジスタ38は、拡張部32の動作を制御バスCBから行うためのレジスタとして機能する。
【0027】
DMAC30は、上記機能ブロック内のデータ転送や、機能ブロック内と機能ブロック外との間のデータ転送を行う。転送情報の設定等はプロセッサコア10から制御バスCBを介して行われる。
【0028】
バスブリッジ54は、上記機能ブロック内部と外部(グローバルバスGB)とを接続する。
【0029】
制御バスCBは、拡張部32やDMAC30内の制御レジスタ38への書き込みや、制御レジスタ38からの読み出しを行うためのバス配線である。
【0030】
拡張演算インタフェースラインEALI/Fは、プロセッサコア10と拡張部32とが協調して動作するためのインタフェースを構成する。拡張演算インタフェースラインEALI/Fには、上述の通り、プロセッサコア10が拡張部32に対して命令コードを送る拡張命令コードEIC、プロセッサコア10内の汎用レジスタ16の値を拡張部32に送るソースデータ1及びソースデータ2、拡張部32が演算結果をプロセッサコア10に送る演算結果ALR、及びその他の制御信号CSが含まれている。制御信号CSには、拡張部32に対する命令が有効であることを示す「有効信号」、あるいは逆に実行を無効化する「無効化信号」等が含まれている。
【0031】
ローカルデータバスLDBは、上述の通り、DMAC30とローカルメモリ40との間、及びDMAC30とデータRAM28との間に配置されて、上記機能ブロック内部のデータバスとして機能する。
【0032】
データRAMインタフェースラインDRI/Fは、拡張部32内部の第1の実行ユニット36から、プロセッサコア10内部のデータRAM28にアクセスするためのインタフェースであって、具体的には、データの読み出し及び書き込み機能を有する。
【0033】
プロセッサバスインタフェースラインPBI/Fは、プロセッサコア10がグローバルバスGBにアクセスためのインタフェースとして機能する。
【0034】
本発明の第1の実施の形態に係る拡張可能なプロセッサは、図2に示すように、図1に示す基本構成において、プロセッサコア10と拡張部32との間に更に、プロセッサコア10に対するクロックCLKを停止させるためのクロックディセーブル信号生成回路42とクロックゲーティング回路44を備える点に特徴を有する。クロックディセーブル信号生成回路42に対しては命令デコーダ18からの分岐された拡張命令コードEICが与えられている。クロックゲーティング回路44はANDゲート48とラッチ46とから構成されている。クロックCLKは拡張部32とクロックディセーブル信号生成回路42とクロックゲーティング回路44に対して共通に与えられている。クロックディセーブル信号生成回路42の出力はクロックゲーティング回路44内のラッチ46に転送され、ANDゲート48の出力はプロセッサコア10に与えられている。
【0035】
図2においては、拡張部32に対する拡張命令コードEICは命令デコーダ18から出力されているが、命令デコーダ18の手前から分岐する構成を有していても良い。その場合は、命令デコーダ18から図2に示すように拡張命令有効信号EIVSが拡張部32に対して出力される。尚、命令デコーダ18より出力される拡張命令コードEICを使用する場合も、拡張命令有効信号EIVSが拡張部32に対して入力されている方が実施形態としては通常の構成である。
【0036】
又、拡張部32に対するクロックCLKEは、図2に示すように、クロックCLKと拡張命令有効信号EIVSとのANDゲート57の出力信号として得ることができる。尚、図2において、プロセッサコア10の内部構成及び拡張部32の内部構成については、図1に示した基本構成と同様であるため詳細な説明は省略する。また、図2に示す拡張部32の内部構成については第1の実行ユニット36が表示され、図1の拡張部32内に含まれる制御レジスタ38及びローカルメモリ40については表示が省略されている。また、制御レジスタ38及びローカルメモリ40については、拡張部32の外部に配置しても良い。
【0037】
また、プロセッサコア10と拡張部32との間を接続するバス配線等についても、図1に示した基本構成と同様であるため詳細な説明は省略する。
【0038】
本発明の第1の実施の形態に係る拡張可能なプロセッサの特徴は、図2に示すように、拡張部32に対する拡張命令コードEICによりプロセッサコア10を停止させることでプロセッサコア10と拡張部32との同期をとる点にある。例えば、拡張部32を再構成可能な論理回路を含む構成によって、形成する場合、再構成可能な論理回路が低速であるため、拡張部32ではひとつの演算を行うために複数クロックを使うことになる。このときプロセッサコア10のパイプラインは拡張部32の演算が終了するまで停止(ストール)する必要がある。
【0039】
本発明の第1の実施の形態に係る拡張可能なプロセッサにおいては、拡張部32に対する拡張命令コードEICの一部に停止サイクル数を示すフィールドを設け、その値によってプロセッサコア10を停止させる。プロセッサコア10を停止させるために、プロセッサコア10に供給するクロックCLKCを停止する。
【0040】
プロセッサコア10のクロックCLKCを停止させるクロックディセーブル信号CDSを生成するクロックディセーブル信号生成回路42は、図3に示すように、停止サイクル数SCYNが入力されるORゲート50と、ORゲート50の出力を一方の入力とする2段から構成されたORゲート501,502と、ORゲート50の出力を1段目に接続され、2段のカスケード接続構成からなるフリップフロップ回路521,522と、ORゲート50の出力及び2段から構成されたORゲート501,502の各出力を入力とするマルチプレクサ(MUX)53と、マルチプレクサ53の出力と拡張命令有効信号EIVSとを入力信号とし、クロックディセーブル信号CDSを出力するANDゲート55から構成されている。又図2から明らかなように、また、クロックCLKは、2段のカスケード接続構成からなるフリップフロップ回路521,522の一方の入力信号となっている。ORゲート501,502の他方の入力は各2段のカスケード接続構成からなるフリップフロップ回路521,522の出力に接続されている。また、MUX53に対しては停止サイクル数SCYNがゲート信号として与えられている。
【0041】
例えば、停止サイクル数SCYNを示すフィールドが2ビットで構成され、その値が直接、停止サイクル数SCYNを示すこととすると、“00”は「停止せず」、“01”は「1サイクル停止」、“10”は「2サイクル停止」、“11”は「3サイクル停止」となる。この回路により生成された信号(クロックディセーブル信号)をクロックゲーティング回路に与えることで、所望の期間クロックを停止させることができる。クロックが停止することで消費電力が低下するという利点もある。
【0042】
本発明の第1の実施の形態に係る拡張可能なプロセッサでは、拡張命令コードEICからのみ、停止サイクル数SCYNを得ているが、その他の入力信号を用いることもできる。例えば、拡張部32を再構成した際に基本停止サイクル数を定義し、その値を拡張部32からクロックディセーブル信号生成回路42に与えることで、停止サイクル数SCYNが決定するという方法である。基本停止サイクル数が2であれば、拡張命令コードEIC中の停止サイクル数SCYNフィールドが“00”のときには2サイクル間停止することになる。
【0043】
また、本発明の第1の実施の形態に係る拡張可能なプロセッサでは、クロックディセーブル信号生成回路42をプロセッサコア10の外部でかつ拡張部32の外部に配置しているが、クロックディセーブル信号生成回路42をプロセッサコア10の内部に配置してもよく、或いはまた、拡張部32の内部に配置しても実現可能である。
【0044】
本発明の第1の実施の形態に係る拡張可能なプロセッサにおけるクロックディセーブル信号生成回路42は、プロセッサコア10のクロックCLKCと拡張部32のクロックCLKEとが同一位相・同一周波数の場合の回路を想定しているが、拡張部32のクロックCLKEがプロセッサコア10のクロックCLKCを分周したものである場合においても、クロックCLKの位相を考慮した回路として構成することができる。
【0045】
(動作モード)
本発明の第1の実施の形態に係る拡張可能なプロセッサにおいて、拡張部32の命令もプロセッサコア10と同じクロック数で動作する場合において、クロックCLKに対して、プロセッサコア10と拡張部32の命令は、図4に示すように、構成される。プロセッサコア10のパイプラインは元々は、例えば、命令フェッチ(F)、命令デコード(D)、実行(E)、メモリアクセス(M)、ライトバック(W)の5つのステージから構成されていて、それぞれのステージに1クロックずつかかり、オーバーラップして動作する。拡張部32の命令もプロセッサコア10と同じクロック数で動作する場合、図4に示すように、クロックCLKに対して、プロセッサコア10の命令1はINS1C、拡張部32の命令2はINS2E、プロセッサコア10の命令3はINS3Cに示すようにそれぞれ表される。
【0046】
これに対して、本発明の第1の実施の形態に係る拡張可能なプロセッサにおいて、プロセッサコア10のクロックCLKCを止める場合の、プロセッサコア10と拡張部32の命令は、図5に示すように構成される。拡張部32の演算に4クロックかかるとすると、3クロックの間、プロセッサコア10を停止させることになる。このため、図5に示すように、プロセッサコア10のクロックCLKC及び拡張部32のクロックCLKEに対して、プロセッサコア10の命令1はINS1C、拡張部32の命令2はINS2E、プロセッサコア10の命令3はINS3Cに示すようにそれぞれ表される。つまり、拡張部32のINS2EのEステージが終わるまで先行するINS1CのMステージの動作も停止する。同様に、拡張部32のINS2EのEステージが終わるまで先行するINS3CのDステージの動作も停止する。
【0047】
本発明の第1の実施の形態に係る拡張可能なプロセッサによれば、プロセッサコア10と、拡張部32とを同期させることができ、速度の遅い論理回路を簡単に使用できるようになる。
【0048】
(第2の実施の形態)
本発明の第2の実施の形態に係る拡張可能なプロセッサは、図6に示すように、図1に示す基本構成において、プロセッサコア10と拡張部32との間に更に、停止要求信号生成回路56を備える点に特徴を有する。停止要求信号生成回路56に対しては命令デコーダ18からの分岐された拡張命令コードEICが与えられている。停止要求信号生成回路56の出力は、プロセッサコア10に与えられている。尚、プロセッサコア10の内部構成及び拡張部32の内部構成については、図1に示した基本構成と実質的に同様であるため詳細な説明は省略する。また、図6に示す拡張部32の内部構成については第1の実行ユニット36が表示され、図1の拡張部32内に含まれる制御レジスタ38及びローカルメモリ40については表示されていない。この点は、表示が省略されている。また、制御レジスタ38及びローカルメモリ40については、拡張部32の外部に配置しても良い。
【0049】
また、プロセッサコア10と拡張部32との間を接続するバス配線等についても、図1に示した基本構成と同様であるため詳細な説明は省略する
本発明の第2の実施の形態に係る拡張可能なプロセッサは、図6に示すように、図1に示す基本構成において、プロセッサコア10と拡張部32との間に更に、停止要求信号生成回路56を備えることから、プロセッサコア10のクロックCLKCを止めるのではなくて、プロセッサコア10のパイプラインを止める点に特徴を有する。
【0050】
図6においては、拡張部32に対する拡張命令コードEICは命令デコーダ18から出力されているが、命令デコーダ18の手前から分岐する構成を有していても良いことは図2に示す第1の実施の形態と同様である。その場合は、命令デコーダ18から図6に示すように拡張命令有効信号EIVSが拡張部32に対して出力される。尚、命令デコーダ18より出力される拡張命令コードEICを使用する場合も、拡張命令有効信号EIVSが拡張部32に対して入力されている方が実施形態としては通常の構成である。
【0051】
又、拡張部32に対するクロックCLKEは、図6に示すように、クロックCLKと拡張命令有効信号EIVSとのANDゲート57の出力信号として得ることができることも図2に示す第1の実施の形態と同様である。
【0052】
(動作モード)
前述の如く、プロセッサコア10のパイプラインは元々は、例えば、命令フェッチ(F)、命令デコード(D)、実行(E)、メモリアクセス(M)、ライトバック(W)の5つのステージから構成されていて、それぞれのステージに1クロックずつかかり、オーバーラップして動作する。拡張部32の命令もプロセッサコア10と同じクロック数で動作する場合、図4に示すように、クロックCLKに対して、プロセッサコア10の命令1はINS1C、拡張部32の命令2はINS2E、プロセッサコア10の命令3はINS3Cに示すようにそれぞれ表される。
【0053】
これに対して、本発明の第2の実施の形態に係る拡張可能なプロセッサにおいて、プロセッサコア10のパイプラインを止める場合の、プロセッサコア10と拡張部32の命令は、図7に示すように構成される。
【0054】
即ち、クロックCLKを受信した停止要求信号生成回路56から発生する停止要求信号SRSがプロセッサコア10に伝達されると、プロセッサコア10の命令1はINS1C、拡張部32の命令2はINS2E、プロセッサコア10の命令3はINS3Cに示すようにそれぞれ表される。クロックCLKに対して、停止要求信号SRSが存在する場合には、図7に示すように、クロックCLKと異なり、対象とする部分だけを停止させることが容易であるため、先行するプロセッサコア10の命令1を止める必要はなく、この先行するプロセッサコア10の命令1は先にWステージまで処理をすませることができる。これに対して、後続するプロセッサコア10の命令3は、図5に示したプロセッサコアのクロックを停止する動作モードと同様に、Dステージにおいて停止され、拡張部32の命令2のEステージの終了を待って、Eステージが実行される。
【0055】
(停止要求生成回路)
本発明の第2の実施の形態に係る拡張可能なプロセッサにおける停止要求信号生成回路56の構成は、図3に示すクロックディセーブル信号生成回路42と実質的に同様の回路として構成することができる。また、本発明の第2の実施の形態に係る拡張可能なプロセッサにおける停止要求信号生成回路56は、プロセッサコア10のクロックCLKと拡張部32のクロックCLKとが同一位相・同一周波数の場合の回路を想定しているが、拡張部32のクロックCLKEがプロセッサコア10のクロックCLKCを分周したものである場合においても、クロックCLKの位相を考慮した回路として構成することができ、充分に対応可能である。
【0056】
(第2の実施の形態の変形例)
本発明の第2の実施の形態の変形例に係る拡張可能なプロセッサは、図6中に示す停止要求信号生成回路56を再構成可能な論理回路により構成する点に特徴を有する。停止要求信号生成回路56を再構成可能な論理回路で構成することにより、命令コードのOP部をデコードすることで停止サイクル数SCYNを容易に得ることができる。即ち、わざわざ停止サイクル数SCYN用のフィールドを命令コードに持たせる必要がなくなり、ビットパターンの有効活用ができる。
【0057】
なお、停止サイクル数SCYN用フィールドを持った命令コードとは図8に示すような構成を有する。拡張部32の命令長が16ビットで、その内、プロセッサコア10の汎用レジスタ番号GPRN用に4ビット(16本分)×2、停止サイクル数SCYN用に2ビットを使うと、OPコードに使えるのは6ビットとなり、命令の種類は最大でも64個である。図8において、GPRN S1とはソース1の汎用レジスタ番号を示し、GPRN S2とはソース2の汎用レジスタ番号を示す。実際には即値を使う命令等があるため、更に種類は少なくなる。ここで、停止サイクル数SCYN用の2ビットが不要となると、OPコードには8ビット使えることになり、最大256個の命令を定義できることになる。
【0058】
また、本発明の第1の実施の形態に係る拡張可能なプロセッサでは、プロセッサコア10のクロックCLKCを停止することでプロセッサコア10を停止させる方法を示したが、同じクロックディセーブル信号CDSをパイプラインのストールを要求する信号として利用することで、本発明の第2の実施の形態に係る拡張可能なプロセッサと同様に、プロセッサコア10のパイプラインを停止させることも可能である。
【0059】
(第3の実施の形態)
本発明の第3の実施の形態に係る拡張可能なプロセッサの基本構成は、図9に示すように、プロセッサコア10と、DMAC30と、拡張部32とから構成される。プロセッサコア10と拡張部32間には拡張演算インタフェースラインEALI/Fが与えられる。更にプロセッサコア10と拡張部32間にはソースデータ1を転送するソースデータラインSD1L、ソースデータ2を転送するソースデータラインSD2L、拡張命令コードEICを転送するライン、制御信号CSを転送するライン、演算結果ALRを転送するラインが配置されている。更にプロセッサコア10と拡張部32との間には、制御バスCBが接続されている。また拡張部32とDMAC30との間には、ローカルデータバスLDBが接続されている。またプロセッサコア10にはプロセッサバスインタフェースラインPBI/Fが接続されている。
【0060】
プロセッサコア10は、命令キャッシュ12と、命令RAM14と、汎用レジスタ16と、命令デコーダ18と、第2の実行ユニット20と、データキャッシュ26と、データRAM28とから構成されている。また、拡張部32は、命令デコーダ34と、再構成可能な第1の実行ユニット37と、制御レジスタ38と、ローカルメモリ40とから構成されている。命令キャッシュ12と命令RAM14は汎用レジスタ16及び命令デコーダ18に接続されている。命令デコーダ18は、更に第2の実行ユニット20及び命令デコーダ34に接続されている。汎用レジスタ16は第2の実行ユニット20に対して、ソースデータ1及びソースデータ2を転送すると共に、ソースデータ1を転送するソースデータラインSD1L、ソースデータ2を転送するソースデータラインSD2Lを介して、再構成可能な第1の実行ユニット37に接続されている。第2の実行ユニット20にはALU22及びシフトレジスタ24が含まれており、更に第2の実行ユニット20からはデータキャッシュ26及びデータRAM28に対してバスラインが延長している。更にまた、再構成可能な第1の実行ユニット37からの演算結果ALRを転送するラインは、第2の実行ユニット20の出力ライン、データキャッシュ26及びデータRAM28の出力ラインに共通に接続されている。更にこの共通に接続された出力ラインは汎用レジスタ16にフィードバックされている。更に、再構成可能な第1の実行ユニット37とデータRAM28との間にはデータRAMインタフェースラインDRI/Fが接続されている。更に、DMAC30とデータRAM28との間にはローカルデータバスLDBが接続されている。更に、DMAC30と再構成可能な第1の実行ユニット37との間にはコンフィグレーションインタフェースラインCONI/Fが接続されている。拡張部32においては、命令デコーダ34からの信号は再構成可能な第1の実行ユニット37に転送され、また再構成可能な第1の実行ユニット37と制御レジスタ38及びローカルメモリ40との間において相互に信号が転送されて連絡している。制御レジスタ38は制御バスCBを介してプロセッサコア10と連絡している。上記拡張演算インタフェースラインEALI/Fの中には、拡張命令コードEIC、ソースデータ1ラインSD1L、ソースデータ2ラインSD2L、制御信号CS、演算結果ALRが含まれている。
【0061】
図9に示すブロック構成図の全体が、システムオンチップ(SoC)構成の半導体集積回路を構成しており、同時に一機能ブロックとして、「カスタムプロセッサ」と呼ばれるプロセッサを構成している。ここでグローバルバスGB(図9上では省略)がいわゆるオンチップバスであり、SoC内の各ブロックを結んでいる。以下に各部の機能を説明する。
【0062】
プロセッサコア10は、上記機能ブロックの中心となるプロセッサであって、拡張部32のための拡張演算インタフェースラインEALI/Fを備えている。
【0063】
拡張部32は、プロセッサコア10からの指示或いは命令で演算を行う。プロセッサコア10から送られた拡張命令コードEICは、命令デコーダ34において解釈する。再構成可能な第1の実行ユニット37においては、演算を行う。ローカルメモリ40は、再構成可能な第1の実行ユニット37における演算の入力或いは出力用として機能する。制御レジスタ38は、拡張部32の動作を制御バスCBから行うためのレジスタとして機能する。
【0064】
拡張演算インタフェースラインEALI/Fは、プロセッサコア10と拡張部32とが協調して動作するためのインタフェースを構成する。拡張演算インタフェースラインEALI/Fには、上述の通り、プロセッサコア10が拡張部32に対して命令コードを送る拡張命令コードEIC、プロセッサコア10内の汎用レジスタ16の値を拡張部32に送るソースデータ1及びソースデータ2、拡張部32が演算結果をプロセッサコア10に送る演算結果ALR、及びその他の制御信号CSが含まれている。制御信号CSには、拡張部32に対する命令が有効であることを示す「有効信号」、あるいは逆に実行を無効化する「無効化信号」等が含まれている。
【0065】
ローカルデータバスLDBは、上述の通り、DMAC30とローカルメモリ40との間、及びDMAC30とデータRAM28との間に配置されて、上記機能ブロック内部のデータバスとして機能する。
【0066】
データRAMインタフェースラインDRI/Fは、拡張部32内部の再構成可能な第1の実行ユニット37から、プロセッサコア10内部のデータRAM28にアクセスするためのインタフェースであって、具体的には、データの読み出し及び書き込み機能を有する。
【0067】
プロセッサバスインタフェースラインPBI/Fは、プロセッサコア10がグローバルバスGB(図示省略)にアクセスためのインタフェースとして機能する。
【0068】
再構成可能な第1の実行ユニット37は、具体的には再構成可能な論理回路から構成されている。再構成可能な論理回路とは、例えばフィールドプログラマブルゲートアレイ(FPGA)等の回路である。
【0069】
DMAC30は、上記機能ブロック内のデータ処理用のデータ転送や、機能ブロック内と機能ブロック外との間のデータ転送及び再構成可能な第1の実行ユニット37のコンフィグレーション用データ転送に使用する。転送情報の設定等はプロセッサコア10から制御バスCBを介して行われる。
【0070】
制御バスCBは、拡張部32やDMAC30内の制御レジスタ38への書き込みや、制御レジスタ38からの読み出しを行うためのバス配線である。再構成可能な第1の実行ユニット37のデータ処理モードとコンフィグレーションモードとの切り替えを指示する信号が制御バスCBを介して転送されている。
【0071】
本発明の第3の実施の形態に係る拡張可能なプロセッサは、例えばFPGAからなる再構成可能な論理回路を拡張部32内の再構成可能な第1の実行ユニット37として用いるカスタムプロセッサに相当する。再構成可能な第1の実行ユニット37とは、具体的には再構成可能な演算器を構成するものである。再構成可能な論理回路を、拡張部32の演算器として用いることで、アプリケーションに応じて拡張部32の機能を変更できるようになる。このことにより、同一のカスタムプロセッサで異なるアプリケーション/機能に対応することができる。即ち、当初とは異なる機能に変更したりすることができる。また、ダイナミックに再構成することにより、アプリケーション内で、機能を時間ごとに切り替えて実行することもできる。この場合には、異なる複数の機能を同一の拡張部32で実行するので、従来複数の演算器が必要であったものが、1つの演算器で構成できることになる。
【0072】
再構成可能な論理回路には一般的に構成変更用のコンフィグレーションインタフェースラインCONI/Fがついており、このCONI/Fから構成情報を与えることで論理が組み変わる。構成情報はDMAC30によるデータ転送で与えることができる。たとえばカスタムプロセッサ外部のメモリから拡張部32へ構成情報を転送することに再構成を行なうことができる。
【0073】
拡張部32が内部に例えば、データRAM28を有する場合には、DMAC30はこのデータRAM28に対するデータ転送も行う。このとき、DMAC30と拡張部32とのインタフェースは通常データ転送用と再構成用との2系統に分ける実装構成としても良いし、1系統にしておいて拡張部32内部で分岐する実装構成としてもよい。
【0074】
一般に再構成可能な論理回路は速度面において遅いため、不利であるので、並列動作させることで高性能を得ようとする。この場合、データの供給能力に問題を生じることがあるが、本発明の第3の実施の形態に係る拡張可能なプロセッサの構成においては、至近のメモリを利用できるため効率よくデータを提供できる。拡張部32内部のメモリを使用する場合には最適な構成をとることができるためさらに効率がよくなり、高性能を得ることができる。
【0075】
(第3の実施の形態の変形例1)
本発明の第4の実施の形態に係る拡張可能なプロセッサにおいては、図9に示すように、拡張部32内の命令デコーダ34が再構成可能な第1の実行ユニット37の外部に配置されている構成例が示されているが、この構成に限られるものではない。命令デコーダ34そのものを再構成可能な第1の実行ユニット37と同一の論理回路で構成することもできる。この場合には、命令デコーダ34は再構成可能な第1の実行ユニット37内に構成されることになる。
【0076】
(第3の実施の形態の変形例2)
本発明の第3の実施の形態に係る拡張可能なプロセッサにおいては、上述のごとく再構成可能な第1の実行ユニット37のデータ処理モードとコンフィグレーションモードとの切り替えを指示する信号が制御バスCBを介して転送されている。しかしながら、モード切替は必ずしも制御バスCBを介して行う必要はない。図9内に示されるコンフィグレーション用のデータ転送用のCONI/Fを使用しても良い。
【0077】
(第4の実施の形態)
再構成可能な論理回路には、コンフィグレーション用のデータを与える必要がある。本発明の第4の実施の形態に係る拡張可能なプロセッサにおいては、このコンフィグレーション用のデータを拡張部32内部のローカルメモリ40に蓄えておく点に特徴を有する。ローカルメモリ40に供給されるデータは、DMAC30からローカルデータバスLDBを介して伝達される。DMAC30は、外部メモリに蓄積されているデータをローカルメモリ40に転送する。外部メモリからのデータは、バスブリッジ(図示省略)及びグローバルバスGB(図示省略)を介してDMAC30に転送される。或いは又、プロセッサコア10の内部のデータRAM28を外部メモリとして利用することもできる。この場合には、データRAM28に接続されたローカルデータバスLDBを通してDMAC30へデータが転送され、更にDMAC30を介してローカルメモリ40にデータが書き込まれる。
【0078】
本発明の第4の実施の形態に係る拡張可能なプロセッサの基本構成は、図10に示すように、プロセッサコア10と、DMAC30と、拡張部32とから構成される。プロセッサコア10と拡張部32の内部構成は実質的に図9と同様であるため説明を省略する。また、プロセッサコア10と拡張部32との間のバス配線等についても、実質的に図9と同様であるため、説明を省略する。
【0079】
再構成可能な第1の実行ユニット37においては、演算を行う。ローカルメモリ40は、再構成可能な第1の実行ユニット37における演算の入力或いは出力用として機能する。特に、本発明の第4の実施の形態に係る拡張可能なプロセッサにおいては、再構成可能な論理回路には、コンフィグレーション用のデータを与える必要があり、このコンフィグレーション用のデータを上述の通り、拡張部32内部のローカルメモリ40に蓄積している。
【0080】
ローカルデータバスLDBは、上述の通り、DMAC30とローカルメモリ40との間、及びDMAC30とデータRAM28との間に配置されて、上記機能ブロック内部のデータバスとして機能する。
【0081】
データRAMインタフェースラインDRI/Fは、拡張部32内部の再構成可能な第1の実行ユニット37から、プロセッサコア10内部のデータRAM28にアクセスするためのインタフェースであって、具体的には、データの読み出し及び書き込み機能を有する。
【0082】
プロセッサバスインタフェースラインPBI/Fは、プロセッサコア10がグローバルバスGB(図示省略)にアクセスためのインタフェースとして機能する。
【0083】
再構成可能な第1の実行ユニット37は、具体的には再構成可能な論理回路から構成されている。再構成可能な論理回路とは、例えばフィールドプログラマブルゲートアレイ(FPGA)等の回路である。
【0084】
DMAC30は、上記機能ブロック内のデータ処理用のデータ転送や、機能ブロック内と機能ブロック外との間のデータ転送及び再構成可能な第1の実行ユニット37のコンフィグレーション用データ転送に使用する。転送情報の設定等はプロセッサコア10から制御バスCBを介して行われる。
【0085】
制御バスCBは、拡張部32やDMAC30内の制御レジスタ38への書き込みや、状態レジスタからの読み出しを行うためのバス配線である。再構成可能な第1の実行ユニット37のデータ処理モードとコンフィグレーションモードとの切り替えを指示する信号が制御バスCBを介して転送されている。
【0086】
本発明の第4の実施の形態に係る拡張可能なプロセッサは、例えばFPGAからなる再構成可能な論理回路を拡張部32内の再構成可能な第1の実行ユニット37として用いるカスタムプロセッサに相当する。再構成可能な第1の実行ユニット37とは、具体的には再構成可能な演算器を構成するものである。再構成可能な論理回路を、拡張部32の演算器として用いることで、アプリケーションに応じて拡張部32の機能を変更できるようになる。このことにより、同一のカスタムプロセッサで異なるアプリケーション/機能に対応することができる。即ち、当初とは異なる機能に変更したりすることができる。また、ダイナミックに再構成することにより、アプリケーション内で、機能を時間ごとに切り替えて実行することもできる。この場合には、異なる複数の機能を同一の拡張部32で実行するので、従来複数の演算器が必要であったものが、1つの演算器で構成できることになる。
【0087】
拡張部32が内部に、例えばデータRAMのような、メモリを有する場合には、DMAC30はこのメモリに対するデータ転送も行う。このとき、DMAC30と拡張部32とのインタフェースは通常データ転送用と再構成用との2系統に分ける実装構成としても良いし、1系統にしておいて拡張部内部で分岐する実装構成としてもよい。
【0088】
一般に再構成可能な論理回路は速度面において遅いため、不利であるので、並列動作させることで高性能を得ようとする。この場合、データの供給能力に問題を生じることがあるが、本発明の第4の実施の形態に係る拡張可能なプロセッサの構成では、至近のメモリを利用できるため効率よくデータを提供できる。拡張部32内部のメモリを使用する場合には最適な構成をとることができるためさらに効率がよくなり、高性能を得ることができる。
【0089】
(第4の実施の形態の変形例1)
本発明の第4の実施の形態に係る拡張可能なプロセッサにおいては、図10に示すように、拡張部32内の命令デコーダ34が再構成可能な第1の実行ユニット37の外部に配置されている構成例が示されているが、この構成に限られるものではない。命令デコーダ34そのものを再構成可能な第1の実行ユニット37と同一の論理回路で構成することもできる。この場合には、命令デコーダ34は再構成可能な第1の実行ユニット37内に構成されることになる。
【0090】
(第4の実施の形態の変形例2)
本発明の第4の実施の形態に係る拡張可能なプロセッサにおいては、上述のごとく再構成可能な第1の実行ユニット37のデータ処理モードとコンフィグレーションモードとの切り替えを指示する信号が制御バスCBを介して転送されている。しかしながら、モード切替は必ずしも制御バスCBを介して行う必要はない。
【0091】
図10において、たとえば、コンフィグレーション用データをDMAC30で拡張部32のローカルメモリ40に転送し、そのとき同時に再構成可能な第1の実行ユニット37がプロセッサコア10のデータRAM28にアクセスしてデータ処理を実行することでき、コンフィグレーション用データ転送のオーバーヘッドを隠蔽することが可能となる。
【0092】
本発明はここでは記載していない様々な実施例等を含むことは勿論である。したがって、本発明の技術的範囲は上記の説明から妥当な以下のクレイムによってのみ定められるものである。
【0093】
(その他の実施の形態)
上記のように、本発明は実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。したがって、本発明の技術範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【0094】
【発明の効果】
本発明の拡張可能なプロセッサ及び半導体集積回路によれば、拡張部に対する命令コードにより、プロセッサコアのクロック若しくはパイプラインを停止させることでプロセッサコアと拡張部との同期をとることができ、高効率で高性能な拡張可能なプロセッサ及びシステムオンチップの半導体集積回路を提供することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係る拡張可能なプロセッサの基本構成図。
【図2】本発明の第1の実施の形態に係る拡張可能なプロセッサの模式的ブロック構成図。
【図3】本発明の第1の実施の形態に係る拡張可能なプロセッサにおいて使用するクロックディセーブル信号生成回路の模式的構成例。
【図4】本発明の第1の実施の形態に係る拡張可能なプロセッサにおいて、拡張部32の命令もプロセッサコア10と同じクロック数で動作する場合において、クロックCLKに対して、プロセッサコア10と拡張部32の命令構成例を示す図。
【図5】本発明の第1の実施の形態に係る拡張可能なプロセッサにおいて、プロセッサコア10のクロックCLKCを止める場合の、プロセッサコア10と拡張部32の命令構成例を示す図。
【図6】本発明の第2の実施の形態に係る拡張可能なプロセッサの模式的ブロック構成図。
【図7】本発明の第2の実施の形態に係る拡張可能なプロセッサにおいて、プロセッサコア10のパイプラインを止める場合の、プロセッサコア10と拡張部32の命令構成例を示す図。
【図8】停止サイクル数SCYN用フィールドを持った命令コードの構成図。
【図9】本発明の第3の実施の形態に係る拡張可能なプロセッサの模式的ブロック構成図。
【図10】本発明の第4の実施の形態に係る拡張可能なプロセッサの模式的ブロック構成図。
【図11】本発明の比較例としての拡張可能なプロセッサの模式的ブロック構成図。
【符号の説明】
10・・・プロセッサコア
12・・・命令キャッシュ
14・・・命令RAM
16・・・汎用レジスタ
18,34・・・命令デコーダ
20…第2の実行ユニット
22・・・算術論理演算装置(ALU)
24・・・シフトレジスタ
26・・・データキャッシュ
28・・・データRAM
30・・・ダイレクトメモリアクセスコントローラ(DMAC)
32・・・拡張部
36・・・第1の実行ユニット
37・・・再構成可能な第1の実行ユニット
38・・・制御レジスタ
40・・・ローカルメモリ
42・・・クロックディセーブル信号生成回路
44・・・クロックゲーティング回路
46…ラッチ
521,522・・・フリップフロップ回路
48,51・・・ANDゲート
50,501,502・・・ORゲート
53・・・マルチプレクサ(MUX)
54・・・バスブリッジ
55,57…ANDゲート
56・・・停止要求信号生成回路
CB・・・制御バス
EALI/F・・・拡張演算インタフェースライン
SD1L, SD2L・・・ソースデータライン
CS・・・制御信号
ALR・・・演算結果
DRI/F・・・データRAMインタフェースライン
LDB・・・ローカルデータバス
PBI/F・・・プロセッサバスインタフェースライン
EIC・・・拡張命令コード
EIVS…拡張命令有効信号
CLK, CLKC, CLKE・・・クロック
CONI/F・・・コンフィグレーションインタフェースライン
SRS・・・停止要求信号
INS1C・・・命令1コア
INS2E・・・命令2拡張
INS3C・・・命令3コア
GPRN・・・汎用レジスタ番号
GB・・・グローバルバス
SCYN・・・停止サイクル数
CDS・・・クロックディセーブル信号
Claims (30)
- 汎用レジスタと命令デコーダと第2の実効ユニットとを備えるプロセッサコアと、
前記プロセッサコアに接続される第1の実行ユニットを備える拡張部と、
前記プロセッサコアと前記拡張部の双方に接続されるダイレクトメモリアクセスコントローラ
とを備えることを特徴とするプロセッサ。 - 前記プロセッサコアと前記拡張部との間に接続される制御バスを更に備えることを特徴とする請求項1記載のプロセッサ。
- 前記命令デコーダからの拡張命令コードを受信して、クロックディセーブル信号を出力するクロックディセーブル信号生成回路を更に備えることを特徴とする請求項1又は2記載のプロセッサ。
- 前記クロックディセーブル信号を受信して前記プロセッサコアのクロック停止する信号を前記プロセッサコアに伝達するクロックゲーティング回路を更に備えることを特徴とする請求項3記載のプロセッサ。
- 前記クロックディセーブル信号は前記プロセッサコアのクロック信号を 停止させることを特徴とする請求項3又は請求項4に記載のプロセッサ。
- 前記命令デコーダからの拡張命令コードを受信して、停止要求信号を前記プロセッサコアに対して伝達する停止要求信号生成回路を更に備えることを特徴とする請求項1又は2記載のプロセッサ。
- 前記停止要求信号は前記プロセッサコアのパイプラインを停止させることを特徴とする請求項6記載のプロセッサ。
- 前記プロセッサコアは、命令キャッシュを更に備えることを特徴とする請求項1又は2記載のプロセッサ。
- 前記プロセッサコアは、命令RAMを更に備えることを特徴とする請求項1又は請求項2又は請求項8記載のプロセッサ。
- 前記拡張部は命令デコーダと、制御レジスタと、ローカルメモリとを更に備えることを特徴とする請求項1又は2記載のプロセッサ。
- 前記第1の実行ユニットは再構成可能な第1の実行ユニットであることを特徴とする請求項1又は2記載のプロセッサ。
- 前記再構成可能な第1の実行ユニットは、再構成可能な論理回路から構成されることを特徴とする請求項10記載のプロセッサ。
- 前記拡張部は命令デコーダと、制御レジスタと、ローカルメモリとを更に備えることを特徴とする請求項11記載のプロセッサ。
- 前記拡張部内の前記命令デコーダは、前記再構成可能な第1の実行ユニットと同一の前記再構成可能な論理回路で構成されることを特徴とする請求項11記載のプロセッサ。
- 前記再構成可能な論理回路に提供するコンフィグレーション用のデータは、前記拡張部内の前記再生可能な第1の実行ユニットと前記ダイレクトメモリアクセスコントローラとの間を接続するコンフィグレーションインタフェースを介して、前記ダイレクトメモリアクセスコントローラからのデータ転送によって提供することを特徴とする請求項12記載のプロセッサ。
- 前記再構成可能な論理回路に提供するコンフィグレーション用のデータを前記拡張部内部の前記ローカルメモリに記憶することを特徴とする請求項13記載のプロセッサ。
- 半導体チップと、
該半導体チップ上に集積化され、汎用レジスタと命令デコーダと第2の実効ユニットとを備えるプロセッサコアと、
該半導体チップ上に集積化され、前記プロセッサコアに接続される第1の実行ユニットを備える拡張部と、
該半導体チップ上に集積化され、前記プロセッサコアと前記拡張部の双方に接続されるダイレクトメモリアクセスコントローラ
とを備えることを特徴とする半導体集積回路。 - 前記半導体チップ上に集積化され、前記プロセッサコアと前記拡張部との間に接続される制御バスを更に備えることを特徴とする請求項17記載の半導体集積回路。
- 前記半導体チップ上に集積化され、前記命令デコーダからの拡張命令コードを受信して、クロックディセーブル信号を出力するクロックディセーブル信号生成回路を更に備えることを特徴とする請求項17又は請求項18記載の半導体集積回路。
- 前記半導体チップ上に集積化され、前記クロックディセーブル信号を受信して前記プロセッサコアのクロック停止する信号を前記プロセッサコアに伝達するクロックゲーティング回路を更に備えることを特徴とする請求項19記載の半導体集積回路。
- 前記半導体チップ上に集積化され、前記命令デコーダからの拡張命令コードを受信して、停止要求信号を前記プロセッサコアに対して伝達する停止要求信号生成回路を更に備えることを特徴とする請求項17又は18記載の半導体集積回路。
- 前記プロセッサコアは、命令キャッシュを更に備えることを特徴とする請求項17又は請求項18記載の半導体集積回路。
- 前記プロセッサコアは、命令RAMを更に備えることを特徴とする請求項17又は請求項18又は請求項22記載の半導体集積回路。
- 前記拡張部は、命令デコーダと、制御レジスタと、ローカルメモリとを更に備えることを特徴とする請求項17又は請求項18記載の半導体集積回路。
- 前記第1の実行ユニットは再構成可能な第1の実行ユニットであることを特徴とする請求項17又は18記載の半導体集積回路。
- 前記再構成可能な第1の実行ユニットは、再構成可能な論理回路から構成されることを特徴とする請求項25記載の半導体集積回路。
- 前記拡張部は命令デコーダと、制御レジスタと、ローカルメモリとを更に備えることを特徴とする請求項25記載の半導体集積回路。
- 前記拡張部内の前記命令デコーダは、前記再構成可能な第1の実行ユニットと同一の前記再構成可能な論理回路で構成されることを特徴とする請求項25記載の半導体集積回路。
- 前記再構成可能な論理回路に提供するコンフィグレーション用のデータは、前記拡張部内の前記再生可能な第1の実行ユニットと前記ダイレクトメモリアクセスコントローラとの間を接続するコンフィグレーションインタフェースを介して、前記ダイレクトメモリアクセスコントローラからのデータ転送によって提供することを特徴とする請求項26記載の半導体集積回路。
- 前記再構成可能な論理回路に提供するコンフィグレーション用のデータを前記拡張部内部の前記ローカルメモリに記憶することを特徴とする請求項27記載の半導体集積回路。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003159174A JP2004362215A (ja) | 2003-06-04 | 2003-06-04 | プロセッサ及び半導体集積回路 |
| US10/687,629 US20040248353A1 (en) | 2003-06-04 | 2003-10-20 | Processor and semiconductor integrated circuit |
| CNA2004100488651A CN1573683A (zh) | 2003-06-04 | 2004-06-04 | 处理器和半导体集成电路 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003159174A JP2004362215A (ja) | 2003-06-04 | 2003-06-04 | プロセッサ及び半導体集積回路 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2004362215A true JP2004362215A (ja) | 2004-12-24 |
Family
ID=33487460
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2003159174A Pending JP2004362215A (ja) | 2003-06-04 | 2003-06-04 | プロセッサ及び半導体集積回路 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20040248353A1 (ja) |
| JP (1) | JP2004362215A (ja) |
| CN (1) | CN1573683A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007200180A (ja) * | 2006-01-30 | 2007-08-09 | Nec Electronics Corp | プロセッサシステム |
| US7742349B2 (en) | 2007-06-29 | 2010-06-22 | Hynix Semiconductor, Inc. | Semiconductor memory device |
| WO2011000082A1 (en) * | 2009-06-29 | 2011-01-06 | Mosaid Technologies Incorporated | A bridging device having a frequency configurable clock domain |
| KR101225071B1 (ko) * | 2008-05-21 | 2013-01-22 | 콸콤 인코포레이티드 | 단일 집적 회로 다이 상에 상이한 게이트 산화막 두께를 이용하는 다수의 집적 회로들을 포함하는 장치 |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8745279B2 (en) * | 2011-10-31 | 2014-06-03 | International Business Machines Corporation | Self-healing and reconfiguration in an integrated circuit |
| CN103207852B (zh) * | 2013-04-03 | 2016-03-02 | 北京华清瑞达科技有限公司 | 多总线嵌入式处理装置 |
| WO2017081591A1 (en) * | 2015-11-13 | 2017-05-18 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device, electronic component, and electronic device |
| CN106371807B (zh) * | 2016-08-30 | 2019-03-19 | 华为技术有限公司 | 一种扩展处理器指令集的方法及装置 |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3976979A (en) * | 1974-01-02 | 1976-08-24 | Honeywell Information Systems, Inc. | Coupler for providing data transfer between host and remote data processing units |
| US4145739A (en) * | 1977-06-20 | 1979-03-20 | Wang Laboratories, Inc. | Distributed data processing system |
| EP0601715A1 (en) * | 1992-12-11 | 1994-06-15 | National Semiconductor Corporation | Bus of CPU core optimized for accessing on-chip memory devices |
| US5734924A (en) * | 1993-08-27 | 1998-03-31 | Advanced System Products, Inc. | System for host accessing local memory by asserting address signal corresponding to host adapter and data signal indicating address of location in local memory |
| US5784532A (en) * | 1994-02-16 | 1998-07-21 | Qualcomm Incorporated | Application specific integrated circuit (ASIC) for performing rapid speech compression in a mobile telephone system |
| US6594711B1 (en) * | 1999-07-15 | 2003-07-15 | Texas Instruments Incorporated | Method and apparatus for operating one or more caches in conjunction with direct memory access controller |
| US6401156B1 (en) * | 1999-08-23 | 2002-06-04 | Advanced Micro Devices, Inc. | Flexible PC/AT-compatible microcontroller |
-
2003
- 2003-06-04 JP JP2003159174A patent/JP2004362215A/ja active Pending
- 2003-10-20 US US10/687,629 patent/US20040248353A1/en not_active Abandoned
-
2004
- 2004-06-04 CN CNA2004100488651A patent/CN1573683A/zh active Pending
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007200180A (ja) * | 2006-01-30 | 2007-08-09 | Nec Electronics Corp | プロセッサシステム |
| US7742349B2 (en) | 2007-06-29 | 2010-06-22 | Hynix Semiconductor, Inc. | Semiconductor memory device |
| KR101225071B1 (ko) * | 2008-05-21 | 2013-01-22 | 콸콤 인코포레이티드 | 단일 집적 회로 다이 상에 상이한 게이트 산화막 두께를 이용하는 다수의 집적 회로들을 포함하는 장치 |
| WO2011000082A1 (en) * | 2009-06-29 | 2011-01-06 | Mosaid Technologies Incorporated | A bridging device having a frequency configurable clock domain |
| US8504789B2 (en) | 2009-06-29 | 2013-08-06 | Mosaid Technologies Incorporated | Bridging device having a frequency configurable clock domain |
Also Published As
| Publication number | Publication date |
|---|---|
| CN1573683A (zh) | 2005-02-02 |
| US20040248353A1 (en) | 2004-12-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10942737B2 (en) | Method, device and system for control signalling in a data path module of a data stream processing engine | |
| US6845445B2 (en) | Methods and apparatus for power control in a scalable array of processor elements | |
| US6653859B2 (en) | Heterogeneous integrated circuit with reconfigurable logic cores | |
| US9405552B2 (en) | Method, device and system for controlling execution of an instruction sequence in a data stream accelerator | |
| EP1443417A1 (en) | A reconfigurable signal processor with embedded flash memory device | |
| US6965991B1 (en) | Methods and apparatus for power control in a scalable array of processor elements | |
| CN105512088B (zh) | 一种可重构的处理器架构及其重构方法 | |
| US20080120494A1 (en) | Methods and Apparatus for a Bit Rake Instruction | |
| JPH11312122A (ja) | 使用者が構築可能なオンチッププログラムメモリシステム | |
| US8018784B2 (en) | Semiconductor device and data processor | |
| US6694385B1 (en) | Configuration bus reconfigurable/reprogrammable interface for expanded direct memory access processor | |
| JP2004362215A (ja) | プロセッサ及び半導体集積回路 | |
| JP2009032257A (ja) | 有限状態機械制御コードを選択的に用いるプロセッサアーキテクチャ | |
| US5442775A (en) | Two clock microprocessor design with stall | |
| JP2001022582A (ja) | 低消費電力マイクロプロセッサおよびマイクロプロセッサシステム | |
| JP2001516926A (ja) | デジタル信号プロセッサ・システムのためのクロッキング方式 | |
| JP2003196246A (ja) | データ処理システム、アレイ型プロセッサ、データ処理装置、コンピュータプログラム、情報記憶媒体 | |
| JP2001118387A (ja) | 同期型半導体記憶装置 | |
| Gray et al. | Viper: A vliw integer microprocessor | |
| US20050210219A1 (en) | Vliw processsor | |
| US7376777B2 (en) | Performing an N-bit write access to an M×N-bit-only peripheral | |
| JP2008542949A (ja) | パイプライン型マイクロプロセッサの節電システムおよび節電方法 | |
| US20020046356A1 (en) | Integrated circuit with multiprocessor architecture | |
| US6505294B2 (en) | Direct control of operation blocks using operand signal of control instruction as extension to instruction set in a hardwired control processor | |
| CN118733122A (zh) | 基于risc-v的动态重构芯片及其risc-v指令扩展及实现方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050412 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050610 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050802 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051003 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20051025 |