JP2000020305A - カスタマイズ可能な命令セット・プロセッサの方法およびア―キテクチャ - Google Patents

カスタマイズ可能な命令セット・プロセッサの方法およびア―キテクチャ

Info

Publication number
JP2000020305A
JP2000020305A JP11144417A JP14441799A JP2000020305A JP 2000020305 A JP2000020305 A JP 2000020305A JP 11144417 A JP11144417 A JP 11144417A JP 14441799 A JP14441799 A JP 14441799A JP 2000020305 A JP2000020305 A JP 2000020305A
Authority
JP
Japan
Prior art keywords
data
processor
program
control signal
data path
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
Application number
JP11144417A
Other languages
English (en)
Other versions
JP2000020305A5 (ja
Inventor
Kukakkukaa Keihan
ケイハン・クカックカー
Tan Chen Chi
チ・タン・チェン
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.)
Motorola Solutions Inc
Original Assignee
Motorola Inc
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 Motorola Inc filed Critical Motorola Inc
Publication of JP2000020305A publication Critical patent/JP2000020305A/ja
Publication of JP2000020305A5 publication Critical patent/JP2000020305A5/ja
Pending 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • 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/30181Instruction operation extension or modification
    • G06F9/30196Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
    • 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline, 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, 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

Abstract

(57)【要約】 (修正有) 【課題】 カスタマイズ可能な命令セット・プロセッサ
の方法およびアーキテクチャが提供される。 【解決手段】 カスタマイズ可能な命令セット・プロセ
ッサは、ソフトウェア・ルーチンにおいて演算の列を実
行するのではなく、命令実行装置34の一部分を再構成
して、ハードウェアにおいて一群の特有の関数を実施す
ることによって、複雑で時間のかかる演算を実現する。
命令実行装置34は、プログラム固定式部分46と、演
算コードを受け取り、かつデータ経路16を制御する出
力制御信号を受信するプログラム式部分48とを有す
る。データ経路16は、プログラム固定式データ経路1
8と、プログラム式データ経路32とを有する。プログ
ラム式部分48とプログラム式データ経路32は、カス
タマイズ可能な命令セット・プロセッサ10を制御し、
これに機能性を追加するカスタマイズ可能な命令セット
を提供するように、利用者によってプログラムされる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は集積回路に関し、さらに
詳しくはデータ・プロセッサに関する。
【0002】
【従来の技術】従来型アーキテクチャに基づくデータ・
プロセッサの多くは、ソフトウェアの命令を逐次実行す
る。データ・プロセッサ内のパイプライン方式の命令
は、複雑な関数を、最小のクロック・サイクルの間に完
了できるようにする。パイプライン方式の命令を有する
汎用プロセッサは、高レベルのパフォーマンスが可能で
あるが、複雑かつ高水準の関数専用の集積回路とファー
ムウェアのブロックを多数必要とする。汎用プロセッサ
は、複合した命令を実行できるとういう特徴を有するこ
とから、複合命令セット計算機(Complex Instruction
Set Computers)(CISC)という。
【0003】縮小命令セット計算機(RISC)として
知られるもう一つの型のデータ・プロセッサは、単純化
された命令セットを組み込む。RISCプロセッサは、
CISCプロセッサに比べて専用回路の数が少なく、各
命令を単一のクロック・サイクル内で実行するアーキテ
クチャを有する。RISCプロセッサの単純化された命
令セットは、専用ハードウェアを介するのではなく、ソ
フトウェア・ルーチンを介して複雑な関数を実現する。
このため、効率性の高い命令セットを有するRISCプ
ロセッサは、CISCプロセッサよりも高速で命令を実
行できる。
【0004】データ通信に関わる用途は、ディジタル信
号プロセッサ(DSP)として知られるプロセッサが処
理する。DSPプロセッサは、複雑な数学的処理および
ビデオ画像生成などのタスクを処理する回路を有する。
個々の用途における解決策を提供するのに、多岐に渡る
データ・プロセッサが使用できる。一般に、異なるデー
タ・プロセッサはそれぞれ、一定数の命令を共通して持
つ。共通命令に加えて、特定用途向け命令とそれに関わ
るハードウェアが追加されて、所期の用途に適合させる
ようにデータ・プロセッサをカスタマイズする。符号付
き/符号なし数,高精度の整数の加算と減算,および桁
上げ/借り数制御情報は、個々の用途に応じて、「演算
コード」(opcode)に符号化できる少数の整数演算命令
である。そのため、所期の用途に最も適合する命令セッ
トを有するデータ・プロセッサの型を正しく選択するこ
とが、利用者の仕事になる。
【0005】汎用データ・プロセッサは、種々の用途を
対象とするように設計される命令セットを有する。した
がって、汎用データ・プロセッサは、使用しない命令を
有していたり、または実行時間を削減して、いくつかの
用途向けにデータ処理の解決策を提供するような命令が
欠けていたりする場合がある。他方、DSPは、個々の
用途に適合し、それらの用途の要求条件を満たす命令セ
ットを有するように設計されている。
【0006】
【発明が解決しようとする課題】したがって、所期の用
途に適合する命令セットを提供するデータ・プロセッサ
を有すると有利であろう。データ・プロセッサは、利用
者のデータ処理上の必要性のために、製造可能であり、
費用効果の高い解決策を提供すべきである。
【0007】
【課題を解決するための手段】カスタマイズ可能な命令
セット・プロセッサまたはデータ・プロセッサは、ソフ
トウェア・ルーチンにおいて演算の列を実行するのでは
なく、命令実行装置の一部を再構成して、ハードウェア
において一群の特有の関数を実行することによって、複
雑かつ時間のかかる演算を実行する。命令実行装置また
はデータ・プロセッサのコントローラは、演算コードを
受け取るために結合される入力と、制御信号を与えるた
めの出力とを有する。コントローラのプログラム固定式
部分とプログラム式部分は、演算コードを受け取り、デ
ータ経路に制御信号を与える。プログラム式部分は、利
用者によって定義され、プログラムされて、これによ
り、データ経路を制御する構成可能な命令セットを提供
する。
【0008】
【実施例】図1は、カスタマイズ可能な命令セット・プ
ロセッサまたはデータ・プロセッサ10のブロック図で
ある。ランダム・アクセス・メモリ(RAM)12およ
び読み取り専用メモリ(ROM)14は、データ・バス
17を介してデータ経路16と接続される。データ経路
16は、プログラム固定式データ経路18と、プログラ
ム式データ経路32の両方を有する。プログラム固定式
データ経路18は、算術論理演算装置(ALU)20,
累算器レジスタ22,データ・カウンタ24,スタック
・ポインタ26,プログラム・カウンタ28および汎用
レジスタ30など、種々のレジスタを含む。プログラム
固定式データ経路18もプログラム式データ経路32も
ともに、データ・バス17からデータを受け取り、デー
タに対して関数演算を行い、データをデータ・バス17
に転送して返す。そのため、データは、データ・バス1
7を介して、データ経路16内のレジスタに転送され、
ここで、算術演算,データのインクリメント/デクリメ
ント,データの桁送り,および論理データの比較が行わ
れる。
【0009】命令は、命令取り出しサイクルの間に、オ
ンチップ・メモリまたは外部メモリからロードされる。
演算コード値は、コントローラまたは命令実行装置34
によって受け取られる。演算コードは復号され、制御信
号が、命令実行装置34の出力において生成される。制
御信号は、制御バス15を介して、データ経路16の入
力に転送される。制御信号は、クロック回路11によっ
て生成されるクロック信号によってゲートされて、デー
タ・バス17と、データ経路16内のレジスタ間で、デ
ータの同期転送を行う。命令の実行には、複数のクロッ
ク・サイクルが必要とされる場合があり、制御バス15
からの信号は、プログラム固定式部分46およびプログ
ラム式部分48にフィードバックされて、後続の取り出
しサイクルと次の演算コードの復号、または現在命令の
後続部分を管理する。データ・バス17は、データ経路
16内のレジスタの入出力との接続を提供するほかに、
入出力(I/O)ポート36と接続されて、データ・プ
ロセッサ10の外側の装置にデータ信号を転送するため
の電気接続を設ける。バスまたはバス接続の数は本発明
では制限されないことに注意されたい。
【0010】図2は、命令実行装置34およびデータ経
路16の一実施例を示すブロック図である。同一素子を
表すのに、いくつかの図面で同一の参照番号が使用され
ることに注意されたい。命令実行装置34は、「演算コ
ード」信号を入力40において受信し、命令実行装置3
4の出力において制御バス15信号を生成する。命令実
行装置34は、演算コード信号を受信するために結合さ
れる2つの部分を有し、第1の部分は、プログラム固定
式部分46であり、第2の部分はプログラム式部分48
である。プログラム固定式部分46もプログラム式部分
48もともに、通常、命令実行装置34の入力40と接
続される入力を有する。プログラム固定式部分46の出
力41は、制御回路47の入力およびプログラム式部分
48の入力と接続される。プログラム式部分48の出力
42は通常、制御回路47のもう一つの入力、およびプ
ログラム固定式部分46のもう一つの入力と接続され
る。図には示されないが、追加の信号ラインによって、
プログラム固定式部分46を、プログラム式部分48と
接続できる。セレクタ論理回路49の選択入力は、制御
回路47の出力と接続される。セレクタ論理回路49の
出力は、命令実行装置34の出力において、制御バス1
5と接続される。制御バス15の一部分は、プログラム
固定式部分46およびプログラム式部分48のまた別の
入力にフィードバックされて接続される。データ経路1
6内で生成される信号の例には、キャリー・アウト(car
ry-out)信号,オーバフロー信号などが含まれ、これら
の信号は、命令実行装置34にフィードバックされる信
号として、制御バス15に含められる。
【0011】データ経路16は、プログラム固定式デー
タ経路18とプログラム式データ経路32とを含み、こ
れらはともに、命令実行装置34の出力と接続された共
通接続入力を有する。また、データ・バス17は、プロ
グラム固定式データ経路18をプログラム式データ経路
32と接続し、データ・プロセッサ10内の他のブロッ
クとの間の接続を行う信号経路を設ける(図1参照)。
【0012】図3は、図2のカスタマイズ可能な命令セ
ット・プロセッサのもう一つの実施例を示すブロック図
である。この実施例では、命令実行装置34は、入力4
0において演算コード信号を受信し、演算コード信号
を、プログラム固定式部分46の入力とプログラム式部
分48の入力とに与える。プログラム固定式部分46の
出力44は、プログラム式部分48のもう一つの入力と
接続される。プログラム式部分48の出力45は、プロ
グラム固定式部分46のもう一つの入力と接続される。
セレクタ論理回路49の出力は、命令実行装置34の出
力において、制御バス15と接続される。制御バス15
の一部分はデータ経路16によって駆動されて、プログ
ラム固定式部分46およびプログラム式部分48のさら
に別の入力にフィードバックされて接続される。
【0013】動作において、図2を参照して、演算コー
ド信号は、命令実行装置34の入力40において受信さ
れる。プログラム固定式部分46は、復号された演算コ
ード信号に従って、制御信号を生成する。同様に、プロ
グラム式部分48も、復号された演算コード信号に従っ
て、制御信号を生成する。プログラム固定式部分46に
よって復号される演算コードの第1群は、プログラム式
部分48によって復号される演算コードの第2群とは異
なる。セレクタ論理回路49は、プログラム固定式部分
46からの制御信号またはプログラム式部分48からの
制御信号のいずれかを選択して、データ経路16に転送
する。プログラム固定式部分46は、プログラム固定式
部分46において復号された演算コードが有効であるか
どうかを示す信号を、出力41において与える。同様
に、プログラム式部分48は、プログラム式部分48に
おいて復号される演算コードが有効であるかどうかを示
す信号を、出力42において与える。プログラム固定式
部分46は、プログラム固定式部分46もプログラム式
部分48も有効な復号、すなわち、デフォルトの命令ト
ラップを持たない場合に、制御バス15の制御を行う。
【0014】また、図3を参照して、演算コード信号
は、命令実行装置34の入力において受信される。プロ
グラム固定式部分46は、復号された演算コード信号に
従って、制御信号を生成し、制御信号は、セレクタ論理
回路49を介して制御バス15に転送される。また、プ
ログラム固定式部分46によって復号される演算コード
信号の一部分は、プログラム式部分48に転送される開
始信号を生成する。この開始信号は、プログラム固定式
部分46から、プログラム式部分48に制御を転送す
る。プログラム固定式部分46によって生成される信号
33は、セレクタ論理回路49に、プログラム式部分4
8からの制御信号を選択させ、制御バス15に転送させ
る。命令が実行された後、プログラム式部分48の出力
45の信号によって、次の命令の演算コードを与える制
御が、プログラム固定式部分46に渡される。
【0015】制御バス15は、命令実行装置34をデー
タ経路16と接続し、制御バス15はNビット幅であ
り、ここでNは整数である。制御バス15の信号は該当
するクロック信号と結合されて、データ経路16を構成
するレジスタとの間のデータの同期転送を制御する。制
御バス15上の制御信号は、一つの命令を完全に実行す
るのに、複数のクロック・サイクルを必要とする場合
と、必要としない場合とがあることに注意されたい。
【0016】データ・プロセッサ10は、広範な用途に
共通した基本命令であるいくつかの命令を実行できる。
基本命令の演算コードは、プログラム固定式部分46に
よって復号されて、対応する制御信号が、セレクタ論理
回路49を介してデータ経路16に与えられる。そのた
め、基本命令は、利用者の用途において最も広範に使用
される命令である。データ・プロセッサ10は、プログ
ラム固定式部分46内に配線(hardwired)された基本
命令向け復号論理を有する形で製造される。
【0017】基本命令に加え、利用者は、一群の命令を
復号するのに、プログラム式部分48をプログラムまた
は再構成することができる。そのため、データ・プロセ
ッサ10は、プログラム固定式部分46において復号さ
れる基本的な演算コードの一定のプログラム固定式集合
と、利用者が定義し、プログラム式部分48によって復
号されて、データ・プロセッサ10を特定用途向けにで
きるカスタマイズ可能な追加の演算コード群とを有する
汎用プロセッサである。利用者定義の追加の演算コード
は、プログラム式部分48によって復号され、セレクタ
論理回路49を介して、制御バス15に転送されて、デ
ータ経路16を制御する。また、プログラム式データ経
路32内の論理ゲート(図示せず)の関数は、利用者の
制御の下で、プログラム可能か、または再構成可能であ
る。換言すれば、プログラム式データ経路32内の論理
ゲートは、ラッチ,インクリメント/デクリメント・カ
ウンタ,ハードウェア乗算器,算術論理演算装置(AL
U)などとして機能するように構成できる。プログラム
式部分48によって生成される制御信号は、データ・バ
ス17とデータ経路16との間のデータ転送を制御す
る。
【0018】プログラム式部分48とプログラム式デー
タ経路32はともに、利用者の意図する用途に適合する
ようにカスタマイズできる。データ・プロセッサ10を
カスタマイズする一つの方法は、いくつかの論理ゲート
を相互接続する利用者定義のメタライゼーション(meta
llization)層(図示せず)を介するものである。すな
わち、プログラム式部分48および32はそれぞれ、演
算コードの利用者定義の復号を行うために、メタライゼ
ーション層によって構成される一群の論理ゲートを含
む。プログラム式データ経路32内の論理ゲートは、利
用者定義関数を実行できるように相互接続される。プロ
グラム式データ経路32の論理ゲートはまた、データ・
バス17との通信を行い、例を挙げれば、データをラッ
チする,データを桁送りする,データをインクリメント
/デクリメントするなどの働きをするために、相互接続
される。
【0019】データ・プロセッサ10をカスタマイズす
るもう一つの実施例は、データ・プロセッサ10ととも
に組み込まれる利用者書き込み可能ゲート・アレイ(F
PGA)によって、プログラム式部分48とプログラム
式データ経路32とを構成する段階を含む。プログラム
式部分48内にある利用者が構成可能なFPGAは、演
算コードを復号し、制御信号をデータ経路16に与える
ように、利用者によって構成される。プログラム式デー
タ経路32内にある利用者が構成可能なFPGAは、デ
ータ・バス17との間でデータを転送し、例を挙げれ
ば、データをラッチする,データを桁送りする,データ
をインクリメント/デクリメントするなどの働きをする
ために、利用者によって構成される。FPGAを構成す
る方法は、本発明を制限することを意図するものではな
い。また、強誘電トランジスタなどのデバイスは、プロ
グラム式部分48内の利用者定義の演算コードを復号
し、プログラム式データ経路32内の利用者指定論理関
数を提供するように、プログラムし、構成できる。
【0020】データを桁送りさせる命令の一例として、
命令の演算コードが、メモリから命令実行装置34の入
力40に与えられる(図2)。この例では、桁送り命令
の復号は、プログラム固定式部分46において発生す
る。プログラム固定式部分46は、受け取った演算コー
ドの復号を行って、制御信号をセレクタ論理回路49に
与える。また、プログラム固定式部分46は、受け取っ
た演算コードが正しく復号されることを示す信号を制御
回路47向けに生成する。制御回路47によって生成さ
れる選択信号は、プログラム固定式部分46によって生
成される制御信号を、制御バス15に転送できるように
する。制御信号は、クロック回路11(図1)からのク
ロック信号によってゲートされて、プログラム固定式デ
ータ経路18において、データの同期制御を行う。この
制御信号は、汎用レジスタ30内のレジスタなど、一つ
のレジスタ内でデータを桁送りさせる。データの桁送り
命令が実行されると、次の命令を実行できる。分岐命
令,比較命令,ジャンプ命令,移動命令および否定命令
など他の命令は、プログラム固定式部分46と、セレク
タ論理回路49を介してプログラム固定式データ経路1
8に転送される信号とによって復号できる。
【0021】ハードウェアに乗算を行わせる命令の一例
として、利用者は、プログラム式部分48とプログラム
式データ経路32を構成して、乗算命令を受け付ける。
言い換えれば、この例では、乗算命令は、製造時のデー
タ・プロセッサ10の命令セットの一部、すなわち、無
効な命令状態にある乗算命令ではない。しかしながら、
乗算命令は、プログラム式部分48に含まれるFPGA
を構成またはプログラムすることによって、利用者が追
加することができる。そのため、プログラム式部分48
は、命令実行装置34の入力40において受け取られる
演算コードを受け付け、かつデータ経路16によって使
用される有効な制御信号を生成するようにプログラムさ
れる。プログラム式部分48は、乗算演算コードが正し
く復号されたことを、制御回路47に合図する。制御回
路47からの選択信号は、プログラム式部分48に応答
して生成され、乗算のために、受け取られた演算コード
の有効な復号を行う。この選択信号は、プログラム式部
分48によって生成される制御信号を、セレクタ論理回
路49を介して制御バス15に転送させる。
【0022】また、プログラム式データ経路32内のF
PGAの一部分は、乗算器として動作するように、利用
者によって構成される。乗算器は、製造時点にデータ・
プロセッサ10に含められるハードウェアの一部ではな
く、すなわち、データ・プロセッサ10は、「桁送り」
命令と「加算」命令を繰り返すことによってのみ乗算が
できる。構成されたFPGA乗算器は、制御信号を受信
し、プログラム固定式データ経路18のレジスタ内に格
納されたデータ値と、データ・バス17を介して受け取
られたデータ値とを掛け合わせる。乗算命令が実行され
ると、命令実行装置34は次の演算コードを受け付け
る。製造時点でデータ・プロセッサ10に含められる型
の命令、すなわち、プログラム固定式部分46によって
復号される演算コードは本発明を制限しないことに注意
されたい。また、利用者が定義する型の命令、すなわ
ち、プログラム式部分48によって復号される演算コー
ドも、本発明を制限しないことに注意されたい。
【0023】利用者が定義可能な命令(演算コード)
は、利用者にトレードオフ機能を与える。例えば、16
進数から2進数への換算は、モトローラ社の68HC1
1プロセッサを介して実行するには約30から53のク
ロック・サイクルを要し、プログラム・メモリ、すなわ
ち、RAM12またはROM14(図1を参照)におい
て、約39バイトのコードを必要とする。本発明による
16進数から2進数への換算は、実行に約7から13ク
ロック・サイクルを要し、結果として、実行時間が75
パーセントも短縮される。また、本発明により使用され
るプログラム・メモリは、プログラム・メモリ内の1バ
イトのコードを要する。図2および図3に示す実施例
は、利用者に異なるトレードオフを提供することに注意
されたい。図2に示す実施例は、柔軟性があり、カスタ
マイズ段階中に利用者がプロセッサに追加することを選
択する演算コードの数を制限しない。新しい演算コード
の数は、プログラム式部分48のサイズと、命令セット
で利用可能な命令の数とによって制限される。他方、図
3に示される実施例は、利用者が定義可能な演算コード
の数を固定するが、利用者がカスタマイズする段階の前
に、演算コードによって定義される関数は固定しない。
この結果、データ・プロセッサの費用を削減する効率的
な実行が行われる。
【0024】図4は、コントローラ内において利用者定
義命令を構成し、これに関わる論理をデータ経路内で構
成する方法を示す表項目を有する。表項目50は、原プ
ロセッサ仕様であり、これは、データ・プロセッサ10
の完全な関数定義を記述する仕様を提供する段階を言う
が、プログラム式部分48およびプログラム式データ経
路32で得られるプログラム可能論理の定義はない。
【0025】表項目52は、利用者定義命令の追加であ
り、利用者がハードウェアで実行することを所望する追
加命令の仕様に対し、関数の詳細を提供する段階を言
う。
【0026】表項目54は、変更プロセッサ仕様であ
り、これは、表項目50の原プロセッサ仕様の関数記述
と、表項目52の利用者定義命令の追加とを結合するこ
とを言う。この結合された関数記述によって、利用者
は、結合仕様に記述される機能性をモデル化する完全な
ハードウェア記述を書き込むことができる。
【0027】表項目58は、データ・プロセッサのプロ
グラム式部分の仕様の生成であり、これは、プログラム
式部分48内の関数を復号する利用者定義命令と、プロ
グラム式データ経路32内の利用者定義データ経路関数
とを指定する段階を言う。原プロセッサ仕様と変更プロ
セッサ仕様が、命令セット定義として通常知られる形態
をとり、挙動がアルゴリズム的であることは、本発明を
制限することにはならない。原プロセッサ仕様と変更プ
ロセッサ仕様との違いは、プログラム式部分48および
プログラム式データ経路32内に常駐する論理を明確に
定義する。
【0028】表項目58のHDLは、RTLで書き込ま
れる記述を、論理合成ツールに入力することによって、
ゲート・レベル回路の設計データに変換することができ
る。利用者定義命令の追加に必要な追加の論理は、プロ
グラム式部分48において実現されるデコーダの論理
(図2)、およびプログラム式データ経路32において
実現される関数ブロックの論理に換算される。例えば、
利用者は、「加算」命令と「桁送り」命令とを繰り返す
ソフトウェア・ルーチンを用いて2つのディジタル値を
掛け合わせるのではなく、利用者定義の乗算命令を含め
ることによって、アプリケーション・コードと実行時間
を短縮できることを決定できる。追加された命令のHD
L記述は、表項目50に記載されるように、原プロセッ
サ仕様のHDL記述とは分離されていることに注意され
たい。表項目50と58のHDL記述を分離した形で維
持することにより、プログラム式部分48およびプログ
ラム式データ経路32(図2)のFPGAで得られる入
力,出力および論理ゲートと、プログラム固定式部分4
6およびプログラム固定式データ経路18で得られる入
力,出力および論理ゲートとの間に相関関係が存在す
る。
【0029】表項目60は、プログラム可能論理のプロ
グラムであり、これは、ゲートの接続を定義するために
金属マスクを生成するか、またはプログラム式部分48
とプログラム式データ経路32においてFPGAをプロ
グラムする段階を言う。そのため、データ・プロセッサ
は、利用者定義命令によってカスタマイズされて、関数
を、ソフトウェア・ルーチン、または構成可能論理で実
現できるようにして、所望の機能性を実現するトレード
オフを利用者に提供する。
【0030】以上から、プログラム式コントローラを有
するデータ・プロセッサは、プログラム式演算コードと
プログラム固定式演算コードの両方を実行して、データ
・プロセッサのパフォーマンスを高め、コード密度を高
めるように構成できることを理解されたい。プログラム
可能な命令セット・プロセッサは、複雑で時間のかかる
演算を実行するのに、ハードウェアまたはソフトウェア
の選択肢を利用者に提供することによって、多様な用途
向けに、経済的なカスタマイズ機能を提供する。利用者
は、ソフトウェア・ルーチンを介して、演算の列を実行
するのではなく、用途に用いられる関数であって、ハー
ドウェアで実行すべき関数を指定できる。命令実行装置
およびデータ経路の一部分を構成することにより、カス
タマイズ可能な命令セット・プロセッサは、優れたコー
ド・パッキング機能を提供する。カスタマイズ可能な命
令セット・プロセッサのアーキテクチャは、フィールド
構成可能論理を介して、用途のパフォーマンスおよびコ
ードのサイズを改善する。
【図面の簡単な説明】
【図1】カスタマイズ可能な命令セット・プロセッサの
ブロック図である。
【図2】命令実行装置およびデータ経路を示すカスタマ
イズ可能な命令セット・プロセッサの一部を示すブロッ
ク図である。
【図3】図2のカスタマイズ可能な命令セット・プロセ
ッサのもう一つの実施例に関するブロック図である。
【図4】命令実行装置内の利用者定義命令と、データ経
路内のこれに対応する論理を構成する方法を示す表項目
である。
【符号の説明】
10 データ・プロセッサ10 11 クロック回路 12 RAM 14 ROM 15 制御バス 16 データ経路 17 データ・バス 18 プログラム固定式データ経路 20 算術論理演算装置(ALU) 22 累算機レジスタ 24 データ・カウンタ 26 スタック・ポインタ 28 プログラム・カウンタ 30 汎用レジスタ 32 プログラム式データ経路 33 信号 34 命令実行装置 36 入出力ポート 40 入力 41,42,45 出力 46 プログラム固定式部分 47 制御回路 48 プログラム式部分 49 セレクタ論理回路 50 原プロセッサ仕様 52 利用者定義命令の追加 54 変更プロセッサ仕様 58 プロセッサのプログラム式部分の仕様の生成 60 プログラム可能論理のプログラム

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 演算コードを受け取るために結合される
    入力と、制御信号を与えるための出力とを有するデータ
    ・プロセッサ(10)のコントローラ(34)であっ
    て:演算コードの第1群を受け取るために結合される入
    力と、前記演算コードの第1群に応答して、前記制御信
    号の第1部分を与えるための出力とを有する第1部分
    (46)であって、プログラム固定式である前記第1部
    分(46);および演算コードの第2群を受け取るため
    に結合される入力と、前記制御信号の第2部分を与える
    ための出力とを有する第2部分(48)であって、プロ
    グラム式である前記第2部分(48);によって構成さ
    れることを特徴とするコントローラ(34)。
  2. 【請求項2】 構成可能な命令集合を有するプロセッサ
    であって:演算コードを与えるための端子を有するメモ
    リ(12);制御信号を与えるための出力と、前記演算
    コードを受け取るために結合される入力とを有する命令
    実行装置(34)であって、前記命令実行装置はさら
    に、 前記演算コードを受け取るために結合される入力と、前
    記演算コードに応答して、前記制御信号の第1部分を与
    えるための出力とを有するプログラム固定式部分(4
    6)であって、プログラム固定式である前記プログラム
    固定部分(46),および前記演算コードを受け取るた
    めに結合される入力と、前記制御信号の第2部分を与え
    るための出力とを有するプログラム式部分(48)であ
    って、プログラム式である前記プログラム式部分(4
    8),を含む命令実行装置(34);および前記制御信
    号を受信する制御入力と、データ信号を受信するために
    結合されるデータ入力とを有して、データ信号を処理す
    るデータ経路(16);によって構成されることを特徴
    とするプロセッサ。
  3. 【請求項3】 前記データ経路はさらに:前記制御信号
    を受信するために結合される第1入力を有するプログラ
    ム固定式データ経路(18);および前記制御信号を受
    信するために結合される第1入力を有するプログラム式
    データ経路(32);を含むことを特徴とする請求項2
    記載のプロセッサ。
  4. 【請求項4】 カスタマイズ可能な命令セット・プロセ
    ッサであって:入力を有するプログラム固定式データ経
    路(18);入力を有するプログラム式データ経路(3
    2);演算コードの第1部分を復号し、かつ第1制御信
    号を与えるためにプログラム固定式である命令実行装置
    (34)の第1部分(46);および演算コードの残り
    の部分を復号し、かつ第2制御信号を与えるためにプロ
    グラム式である前記命令実行装置(34)の第2部分
    (48):によって構成され、 前記第1および第2制御信号は、前記プログラム固定式
    データ経路の入力と前記プログラム式データ経路の入力
    において受信されることを特徴とするカスタマイズ可能
    な命令セット・プロセッサ。
  5. 【請求項5】 構成可能な命令セットを有するプロセッ
    サであって:データ信号を転送するためのデータ・バ
    ス;演算コードを格納するためのメモリ(12);前記
    演算コードを受け取るために前記メモリの出力と結合さ
    れる入力と、制御信号を与えるための出力とを有する命
    令実行装置(34);前記制御信号に応答して、前記デ
    ータ・バスを介して前記データ信号を処理するために、
    前記データ・バスと結合される入力を有する第1データ
    経路(18)であって、プログラム固定式である第1デ
    ータ経路(18);および前記制御信号に応答して、前
    記データ・バスを介して前記データ信号を処理するため
    に、前記データ・バスと結合される入力を有する第2デ
    ータ経路(32)であって、プログラム式である第2デ
    ータ経路(32);によって構成されることを特徴とす
    るプロセッサ。
JP11144417A 1998-05-29 1999-05-25 カスタマイズ可能な命令セット・プロセッサの方法およびア―キテクチャ Pending JP2000020305A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/086,741 US6138229A (en) 1998-05-29 1998-05-29 Customizable instruction set processor with non-configurable/configurable decoding units and non-configurable/configurable execution units
US086741 1998-05-29

Publications (2)

Publication Number Publication Date
JP2000020305A true JP2000020305A (ja) 2000-01-21
JP2000020305A5 JP2000020305A5 (ja) 2006-07-06

Family

ID=22200594

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11144417A Pending JP2000020305A (ja) 1998-05-29 1999-05-25 カスタマイズ可能な命令セット・プロセッサの方法およびア―キテクチャ

Country Status (2)

Country Link
US (1) US6138229A (ja)
JP (1) JP2000020305A (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6279045B1 (en) * 1997-12-29 2001-08-21 Kawasaki Steel Corporation Multimedia interface having a multimedia processor and a field programmable gate array
US6477683B1 (en) * 1999-02-05 2002-11-05 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US7620832B2 (en) * 2000-09-20 2009-11-17 Mips Technologies, Inc. Method and apparatus for masking a microprocessor execution signature
GB0028079D0 (en) * 2000-11-17 2001-01-03 Imperial College System and method
US7237097B2 (en) 2001-02-21 2007-06-26 Mips Technologies, Inc. Partial bitwise permutations
US7599981B2 (en) * 2001-02-21 2009-10-06 Mips Technologies, Inc. Binary polynomial multiplier
US7711763B2 (en) 2001-02-21 2010-05-04 Mips Technologies, Inc. Microprocessor instructions for performing polynomial arithmetic operations
US7162621B2 (en) 2001-02-21 2007-01-09 Mips Technologies, Inc. Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration
US7181484B2 (en) * 2001-02-21 2007-02-20 Mips Technologies, Inc. Extended-precision accumulation of multiplier output
US7318145B1 (en) 2001-06-01 2008-01-08 Mips Technologies, Inc. Random slip generator
JP2003015897A (ja) * 2001-06-29 2003-01-17 Yamaha Corp 制御装置、メディア記録装置、制御方法、制御プログラム、およびメモリ書換えプログラム
US7043495B1 (en) * 2001-07-27 2006-05-09 Cypress Semiconductor Corp. Techniques for JEDEC file information integrity and preservation of device programming specifications
GB2382175A (en) * 2001-11-20 2003-05-21 Hewlett Packard Co Reconfigurable processor
JP2003316838A (ja) * 2002-04-19 2003-11-07 Nec Electronics Corp システムlsiの設計方法及びこれを記憶した記録媒体
EP1408405A1 (en) * 2002-10-11 2004-04-14 STMicroelectronics S.r.l. "A reconfigurable control structure for CPUs and method of operating same"
US20040139297A1 (en) * 2003-01-10 2004-07-15 Huppenthal Jon M. System and method for scalable interconnection of adaptive processor nodes for clustered computer systems
DE502004009010D1 (de) * 2003-03-05 2009-04-02 Bridgeco Ag Prozessor mit verschiedenartigen steuerwerken für gemeinsam genutzte ressourcen
WO2004092913A2 (en) * 2003-04-14 2004-10-28 Arc International Digital processor apparatus with code compression and method
US20050228966A1 (en) * 2004-03-16 2005-10-13 Kabushiki Kaisha Toshiba Processor system and data processing method
US9860055B2 (en) * 2006-03-22 2018-01-02 Synopsys, Inc. Flexible architecture for processing of large numbers and method therefor
US8463589B2 (en) * 2006-07-28 2013-06-11 Synopsys, Inc. Modifying a virtual processor model for hardware/software simulation
US7529909B2 (en) * 2006-12-28 2009-05-05 Microsoft Corporation Security verified reconfiguration of execution datapath in extensible microcomputer
US8644305B2 (en) 2007-01-22 2014-02-04 Synopsys Inc. Method and system for modeling a bus for a system design incorporating one or more programmable processors
JP2011028543A (ja) * 2009-07-27 2011-02-10 Renesas Electronics Corp 情報処理システム及びその情報処理方法
US9851969B2 (en) * 2010-06-24 2017-12-26 International Business Machines Corporation Function virtualization facility for function query of a processor
US10521231B2 (en) 2010-06-24 2019-12-31 International Business Machines Corporation Function virtualization facility for blocking instruction function of a multi-function instruction of a virtual processor
US20120226890A1 (en) * 2011-02-24 2012-09-06 The University Of Tokyo Accelerator and data processing method
FR3012235B1 (fr) * 2013-10-17 2017-06-16 St Microelectronics Sa Procede de securisation d'un jeu d'instructions executables et/ou d'un schema d'adressage d'un systeme informatique et systeme correspondant
US10642617B2 (en) 2015-12-08 2020-05-05 Via Alliance Semiconductor Co., Ltd. Processor with an expandable instruction set architecture for dynamically configuring execution resources
US10268586B2 (en) 2015-12-08 2019-04-23 Via Alliance Semiconductor Co., Ltd. Processor with programmable prefetcher operable to generate at least one prefetch address based on load requests
US11061853B2 (en) 2015-12-08 2021-07-13 Via Alliance Semiconductor Co., Ltd. Processor with memory controller including dynamically programmable functional unit
US10255462B2 (en) 2016-06-17 2019-04-09 Arm Limited Apparatus and method for obfuscating power consumption of a processor
US10942742B1 (en) * 2018-12-11 2021-03-09 Amazon Technologies, Inc. Hardware engine with configurable instructions

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0476626A (ja) * 1990-07-13 1992-03-11 Toshiba 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
US5426378A (en) * 1994-04-20 1995-06-20 Xilinx, Inc. Programmable logic device which stores more than one configuration and means for switching configurations
US5623684A (en) * 1994-05-17 1997-04-22 Commquest Technologies, Inc. Application specific processor architecture comprising pre-designed reconfigurable application elements interconnected via a bus with high-level statements controlling configuration and data routing
US5600845A (en) * 1994-07-27 1997-02-04 Metalithic Systems Incorporated Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor
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
US5819064A (en) * 1995-11-08 1998-10-06 President And Fellows Of Harvard College Hardware extraction technique for programmable reduced instruction set computers
JPH1011289A (ja) * 1996-06-19 1998-01-16 Mitsubishi Electric Corp 並列処理プロセッサにおける命令数拡張方法および並列処理プロセッサ

Also Published As

Publication number Publication date
US6138229A (en) 2000-10-24

Similar Documents

Publication Publication Date Title
JP2000020305A (ja) カスタマイズ可能な命令セット・プロセッサの方法およびア―キテクチャ
US10469397B2 (en) Processors and methods with configurable network-based dataflow operator circuits
US10564980B2 (en) Apparatus, methods, and systems for conditional queues in a configurable spatial accelerator
US6182206B1 (en) Dynamically reconfigurable computing using a processing unit having changeable internal hardware organization
US10445451B2 (en) Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features
US7895416B2 (en) Reconfigurable integrated circuit
EP1849095B1 (en) Low latency massive parallel data processing device
US6820188B2 (en) Method and apparatus for varying instruction streams provided to a processing device using masks
JP3592230B2 (ja) データ処理装置
JP2001256038A (ja) 柔軟な乗算ユニットを有するデータ・プロセッサ
JP2006079652A (ja) 多重命令セットによるデータ処理
WO1998011483A1 (en) A vector processing system with multi-operation, run-time configurable pipelines
US20060265571A1 (en) Processor with different types of control units for jointly used resources
US7114055B1 (en) Reduced instruction set computer architecture with duplication of bit values from an immediate field of an instruction multiple times in a data word
US20090228686A1 (en) Energy efficient processing device
JP3479385B2 (ja) 情報処理装置
US5649174A (en) Microprocessor with instruction-cycle versus clock-frequency mode selection
JP2004038327A (ja) データ処理装置
JPH11307725A (ja) 半導体集積回路
US20040024992A1 (en) Decoding method for a multi-length-mode instruction set
US20090031117A1 (en) Same instruction different operation (sido) computer with short instruction and provision of sending instruction code through data
US6389528B2 (en) Processor with a control instruction for sending control signals without interpretation for extension of instruction set
Nurmi et al. A new generation of parameterized and extensible DSP cores
WO2001075635A9 (en) Dsp execution unit for efficient alternate modes of operation
Takamaeda-Yamazaki et al. Ultrasmall: a tiny soft processor architecture with multi-bit serial datapaths for FPGAs

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20041217

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20051216

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060519

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060519

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060926

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20061226

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070104

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070529