JP3805314B2 - プロセッサ - Google Patents
プロセッサ Download PDFInfo
- Publication number
- JP3805314B2 JP3805314B2 JP2003051201A JP2003051201A JP3805314B2 JP 3805314 B2 JP3805314 B2 JP 3805314B2 JP 2003051201 A JP2003051201 A JP 2003051201A JP 2003051201 A JP2003051201 A JP 2003051201A JP 3805314 B2 JP3805314 B2 JP 3805314B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- instruction set
- processor
- decoder
- control unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 230000004044 response Effects 0.000 claims description 9
- 238000012545 processing Methods 0.000 description 96
- 238000013461 design Methods 0.000 description 40
- 238000000034 method Methods 0.000 description 36
- 230000006870 function Effects 0.000 description 29
- 230000015572 biosynthetic process Effects 0.000 description 16
- 238000003786 synthesis reaction Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 12
- 230000003542 behavioural effect Effects 0.000 description 11
- 238000004088 simulation Methods 0.000 description 9
- 238000012795 verification Methods 0.000 description 8
- 238000012546 transfer Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 4
- 230000006837 decompression Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30196—Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Description
【発明の属する技術分野】
本発明は、プロセッサ、システムLSI、システムLSIの設計方法、及び、それを記録した記録媒体に関し、特に、複数の動作モードを切り替え可能なプロセッサ、このようなプロセッサを備えるシステムLSI、システムLSIの設計方法、及び、その設計方法を記録した記録媒体に関する。
【0002】
【従来の技術】
システムLSIは、画像処理や暗号化処理、フィルタ処理、復号処理など多彩な処理に使用され、その入出力信号の種類、処理のアルゴリズム、或いは、要求される時間的性能なども様々である。システムLSIには、演算処理装置(プロセッサ)が組み込まれ、そのプロセッサは、一般に、要求される処理に適した性能指向の命令で構成される単一の命令セット備える。この場合、システムLSIが行なう処理内容が、例えば、制御性能指向の命令セットに適した処理と、信号処理性能指向の命令セットに適した処理との双方を含む場合には、単一のプロセッサでは、全体として処理を高速化することができない。
【0003】
実行する処理の内容に応じて、最適なプログラミング、処理、及び、処理速度を選択できる技術として、特開平8−106383号公報(特許文献1)には、速度切替命令により、縮小命令セットと高機能命令セットとを切り替えて使用できるプロセッサが記載されている。図12は、特許文献1に記載のプロセッサの構成を示している。主メモリ201には、アプリケーションプログラムとして、RISC命令(縮小命令セット)で記述された高速プログラムと、CISC命令(高機能命令セット)で記述された低速プログラムとが、速度切替命令を境として共存して記憶されている。R/Cレジスタ209は、低速モード、又は、高速モードをR/Cフラグに格納する。
【0004】
デコーダ選択回路206は、R/Cレジスタ209に格納されたR/Cフラグが高速モードであるときには、主メモリ201から命令レジスタ205にフェッチされた高速プログラム(RISC命令)を、RISC用デコーダ207に供給する。いま、RISC命令である速度切替命令(低速切替命令)がRISC用デコーダ207で解読されて実行されると、R/Cフラグに低速モードが格納される。R/Cフラグに低速モードが格納されると、クロック選択回路218は、選択状態を切り替え、実行クロックφ’を、マスタークロックφから、マスタークロックφをn分周器219でn分周した分周クロックに変更する。また、デコーダ選択回路206は、選択状態を切り替え、主メモリ201から命令レジスタ205にフェッチされた低速プログラム(CISC命令)を、マッピング部208及びアドレス選択部210を介してCISC用デコーダ211に供給する。
【0005】
CISC命令である速度切替命令(高速切替命令)がCISC用デコーダ211で解読されて実行されると、R/Cフラグに高速モードが格納される。R/Cフラグに高速モードが格納されると、クロック選択回路218は、選択状態を切り替え、実行クロックφ’を、マスタークロックφからn分周器218でn分周したクロックから、マスタークロックφに変更する。また、選択回路206は、選択状態を切り替え、主メモリ201から命令レジスタ205にフェッチされたRISC命令を、RISC用デコーダ207に供給する。このように、プロセッサ200は、低速プログラムと高速プログラムとの境界に挿入される速度切替命令により、高速命令セットと、低速命令セットとを動的に切り替える。
【0006】
アプリケーションプログラムに含まれる切替命令によって、使用する命令セットを動的に切り替える別の技術として、特開2002−328804号公報(特許文献2)には、複数の命令セットを有し、プログラムカウンタ(PC)レジスタの通常使用されない所定ビットを使用して、複数の命令セットの何れを使用するかを選択する技術が記載されている。この技術では、特許文献1に記載の技術とは異なり、命令セットを切り替えるための専用のレジスタ209(図12)を不要としている。
【0007】
【特許文献1】
特開平8−106383号公報
【特許文献2】
特開2002−328804号公報
【0008】
【発明が解決しようとする課題】
しかし、上記特許文献1及び特許文献2に記載の技術では、使用する命令セットを切り替えるための命令は、各命令セットのデコーダが解読して実行するため、例えば2つ以上の命令セットを含むプロセッサでは、各命令セットのデコーダが、別の命令セットへの切替命令をデコードするための回路資源を備える必要があり、回路規模が増大するという問題がある。また、命令セットの切り替えに際しては、現在選択されている命令セットに対応する切替命令を、異なる命令セットのプログラム間に挿入する必要があり、切り替え後の命令セットに加えて、切り替え前の命令セットを認識する必要があるという問題もある。
【0009】
本発明は、従来技術における上記問題点を解消し、切り替えるべき命令セット数が増えた場合であっても、命令セットの切替命令をデコードするデコーダの回路規模が増大しないこと、切り替え前の命令セットを認識する必要がないために切替命令の挿入を簡易に行なうことができるプロセッサを提供することを目的とする。
【0010】
また、本発明は、上記プロセッサを1以上含むシステムLSI、システムLSIの設計方法、及び、それを記録した記録媒体を提供することを目的とする。
【0011】
【課題を解決するための手段】
上記目的を達成するために、本発明のプロセッサは、複数の命令セットのそれぞれを実行するための複数のプロセッサ機能を備えるプロセッサであって、前記複数のプロセッサ機能とは別に設けられ、前記複数のプロセッサ機能の何れによっても実行されないシステム命令をデコードするシステム命令デコーダと、前記システム命令デコーダでデコードされたシステム命令に応答して、前記複数のプロセッサ機能の内の1つを選択するシステム命令実行部とを備えることを特徴とする。
【0012】
本発明のプロセッサでは、アプリケーションプログラム中に含まれる、使用する命令セットを指定する所定のシステム命令が、システム命令デコーダでデコードされ、システム命令実行部によって実行制御されると、プロセッサは、使用する命令セットに対応するプロセッサ機能を使用して、読み込んだ命令を実行する。使用する命令セットを指定するシステム命令を、システム命令に専用のシステムデコーダ及びシステム命令実行部を使用して実行するため、使用する命令を切り替える場合であっても、現在使用している命令セットを認識する必要がなく、使用する命令セットの切り替えを簡易に行なえる。また、プロセッサに、処理性能指向が異なる命令セットを含ませた場合には、プロセッサが対象とする処理に応じて、処理に適した性能指向の命令セットに動的に切り替えて使用することで、処理全体の処理速度を向上することができる。
【0013】
本発明のプロセッサでは、前記システム命令実行部が、更に、所定の割り込み信号に応答して、前記複数のプロセッサ機能の内の1つを選択することが好ましい。この場合、プロセッサは、使用する命令セットを指定する所定の割り込み信号によっても、指定された命令セットに対応するプロセッサ機能を使用して、読み込んだ命令を実行することができる。
【0014】
また、本発明のプロセッサでは、前記複数のプロセッサ機能の少なくとも2つが、ハードウェア資源を共有することが好ましい。
複数のプロセッサ機能を、それぞれ独立したハードウェア部分で構成すると、加算器や乗算器などのハードウェア資源を共有することができないが、1つのプロセッサ中に複数のプロセッサ機能(命令セット)を含めることで、汎用的なハードウェア資源の共有が可能となり、個別のハードウェア部分で構成する場合に比して、ハードウェア資源を有効活用できる。
【0015】
本発明のプロセッサでは、前記複数の命令セットの少なくとも2つは、共通の命令を含み、該少なくとも2つの命令セットに対応する複数のプロセッサ機能が、前記共通の命令をデコードする命令セットデコーダを共有する構成を採用することができる。この場合、共通の命令は、共通のデコーダでデコードされて実行されることになり、共通の命令のデコード及び実行を各プロセッサ機能で行なう場合に比して、回路資源の無駄を省くことができる。
【0016】
本発明のプロセッサでは、前記システム命令は、プロセッサが動作する電源電圧及び動作速度を設定する命令の少なくとも1つを含むことが好ましい。プロセッサの動作モードを指定するシステム命令には、使用する命令セットを指定する命令だけでなく、プロセッサの動作電源電圧や、動作速度(使用クロック周波数)を設定する命令を含めることができる。
【0017】
本発明のプロセッサでは、前記複数の命令セットに含まれる各命令に対応する処理制御データを記憶する記憶部を備え、入力される命令と選択されたプロセッサ機能の情報とに基づいて、該入力される命令に対応するアドレスを生成して、前記入力される命令に対応する処理制御データを前記記憶部から読み出す構成を採用することができる。この場合、記憶部は、例えば一般的なプロセッサにおけるデコーダ又は実行制御部が出力すべき水平マイクロコード(水平命令)を、処理制御データとして記憶し、プロセッサは、入力される命令(命令コード)と、選択されている命令セットの情報とに基づいて、記憶部から処理制御データを読み出し、命令を実行する。例えば記憶部のメモリ容量が一定であっても、外部から、記憶部が記憶する処理制御データをプログラマブルに変更可能に構成することで、プロセッサに含ませる命令数や命令セット数を増やすことができる。
【0018】
本発明のプロセッサでは、前記複数のプロセッサ機能の内の少なくとも2つを、共通の命令セットとして構成することができる。この場合、プロセッサには、命令セット自体は同じであるが、ハードウェア資源の使用形態等が異なる複数のプロセッサ機能が含まれる。
一般に、高速動作に対応するハードウェア資源は、低速動作のハードウェア資源よりも回路規模が大きくなる。このため、高速動作に対応するプロセッサ機能を、消費電力を抑えるために低速で動作させた場合であっても、低速動作に対してハードウェア資源が冗長な構成となるため、電力が無駄に消費される。例えば、プロセッサに、高速命令セットと、低速命令セットとを共通の命令セットとして含ませ、高速命令セット及び低速命令セットのそれぞれに対応するプロセッサ機能を切り替えて使用することで、同じ命令を実行するプロセッサを、必要最小限の資源で動作させることができ、更なる低消費電力化が可能となる。
【0019】
本発明のプロセッサでは、前記複数のプロセッサ機能の少なくとも1つは、段数が可変に設定されてパイプライン制御され、該パイプライン制御における段数が特定のシステム命令に応答して設定されることが好ましい。この場合、システム命令には、パイプライン段数を指定する命令が含まれ、プロセッサでは、パイプライン段数を指定するシステム命令の実行によって、プロセッサ機能のパイプライン段数が任意に設定される。
【0020】
本発明のパイプライン制御のプロセッサは、パイプライン制御における段数が可変としてあり、プロセッサに入力された段数設定命令に応答して、前記段数が設定されることを特徴とする。
【0021】
本発明のパイプライン制御のプロセッサでは、プログラムに含まれる、パイプラインの段数を設定する段数設定命令を実行することで、プロセッサのパイプライン段数を変更することができる。このプロセッサでは、プログラム実行中に、動的にパイプライン段数が切り替え可能なため、高速化が要求される処理ではパイプライン段数を増加させて、処理の高速化を図ることができる。
【0022】
本発明のシステムLSIは、本発明のプロセッサを備えることを特徴とする。
【0023】
本発明の別の視点のシステムLSIは、複数のプロセッサ機能を有する本発明のプロセッサを、複数有することを特徴とする。
【0024】
本発明の別の視点のシステムLSIでは、各プロセッサに含まれる複数の命令セット間で、ハードウェア資源を共有可能であるため、命令セット毎に別々に独立したプロセッサを持つよりもハードウェア資源を有効活用できる。また、プロセッサ毎に、使用する命令セットを動的に切り替えることができるため、システムLSIに要求される処理に応じて命令セットを選択することで、システムLSIの処理能力の向上を図ることができる。
【0025】
本発明のシステムLSIは、前記複数のプロセッサは、全てのプロセッサが同じ命令セットで動作する第1のパターンと、少なくとも1つのプロセッサが、他のプロセッサとは異なる命令セットで動作する第2のパターンの何れかで動作することが好ましい。
例えば、単一の処理を行なうときには、システムLSIを第1のパターンで、つまり、全てのプロセッサを同じ命令セットで動作させ、各プロセッサを並列に動作させることで、処理速度を上げることができる。また、例えば制御系の処理と信号処理系の処理とを平行して実行する複合処理を行なうときには、システムLSIを第2のパターンで、つまり、全てのプロセッサを同じ命令セットで動作させずに、あるプロセッサを制御系の処理に適した命令セットで動作させ、他のプロセッサを信号処理系の処理に適した命令セットで動作させることで、処理速度を上げることができる。
【0026】
本発明のシステムLSIの設計方法は、複数のプロセッサ機能を有するプロセッサを複数有するシステムLSIを設計するLSI設計方法であって、システムLSI設計仕様から、機能設計段階でハードウェア設計及びソフトウェア設計に分割するステップと、ハードウェア設計において、前記複数のプロセッサのそれぞれに対応するハードウェア構成と、アルゴリズムレベルで記述された前記システム命令及び前記複数の命令セットとを、ハードウェア情報として入力するステップと、前記ハードウェア情報を動作合成するステップとを備えることを特徴とする。
【0027】
本発明のシステムLSIの設計方法では、プロセッサに組み込むべき複数の命令セット及びシステム命令を含むハードウェア情報を動作合成してシステムLSIの回路構成を得るため、複数の命令セット間で、演算資源等のハードウェア資源を共有するプロセッサを含むシステムLSIを得ることができる。このため、限られたハードウェア回路規模の中で、より効率が高く、高い処理能力を有するシステムLSIを得ることができる。
【0028】
本発明のシステムLSIの設計方法では、前記動作合成ステップによって、ハードウェア化するのに適した論理合成用HDL記述と、シミュレーションに使用するのに適したシミュレーション記述と、ハードウェア規模を示す合成情報とを生成することが好ましい。
【0029】
本発明のシステムLSIの設計方法では、前記動作合成ステップに後続して、前記シミュレーション記述と、前記複数のプロセッサを作動させるソフトウェアの機械語命令とに基づいて、設計されるシステムLSIの動作検証を行なうステップとを有することが好ましい。
命令セットシミュレータ等のシミュレーション技術により、システムLSIの回路構成に、ソフトウェアを実装し、システムLSIの処理能力の検証や設計誤りの検証をクロックサイクルレベルで行なう動作検証に際して、動作合成により得られるシミュレーション用記述を使用することで、システムLSIの回路構成を人手でモデリングする必要がなくなり、検証作業を簡素化することができる。また、シミュレーション記述を動作合成により得ることで、システムLSIの回路構成に変更が生じた場合であっても、動作検証のやり直しが容易となる。
【0030】
本発明のシステムLSIの設計方法では、前記合成情報と、前記動作検証ステップにおける検証結果とに基づいて、前記分割ステップに戻るか否かを判定することが好ましい。
動作合成により得られる合成情報によってシステムLSIの回路規模を見積もり、その回路規模が、システムLSIに要求される回路規模を超えると判定されるときには、システムLSIの設計をハードウェア設計とソフトウェア設計との分割から設計をやり直すことができる。また、動作検証により、正常に動作しない、或いは、システムLSIが要求される時間性能を満たさない場合には、システムLSIの設計をハードウェア設計とソフトウェア設計との分割から設計をやり直すことができる。
【0031】
本発明のシステムLSIの設計方法は、前記ソフトウェアの設計では、前記複数のプロセッサ毎に前記複数の命令セットの命令及びシステム命令を含むソースプログラムを作成するステップと、前記プロセッサ毎のソースプログラムを、前記ハードウェア情報を参照して一括して機械語に翻訳するステップとを有することが好ましい。
1つのプロセッサが複数の命令セットを有するとき、そのプロセッサ用のソースプログラムには、複数の命令セットに対応する命令が混在することとなる。このようなソースプログラムを、プロセッサに含めた複数の命令セット及びシステム命令に対応する、マルチターゲットのアセンブラ・コンパイラ・リンカを使用して、一括でプロセッサが直接理解できる機械語に翻訳する。このとき、マルチターゲットのアセンブラ・コンパイラ・リンカには、プロセッサの設計段階で入力したハードウェア情報を参照して、ソースプログラム中の命令が何れの命令セットに含まれる命令であるかを識別して、機械語を生成する。なお、一括で機械語に翻訳するということは、ソースプログラムを、1つのプログラムコードとして生成することを意味する。
【0032】
本発明の記録媒体は、上記本発明のシステムLSIの設計方法を実現するプログラムを記録したことを特徴とする。
【0033】
【発明の実施の形態】
以下、図面を参照し、本発明の実施形態例に基づいて、本発明を更に詳細に説明する。図1は、本発明の第1実施形態例のシステムLSIの構成を示している。このシステムLSIは、N個(Nは自然数)のプロセッサ100(1)〜(N)と、各プロセッサ100に共通な命令メモリ101a、データメモリ101b、I/O(入出力部)102、電源バス103a、クロックバス103b、割り込みバス103c、命令データバス103d、及び、データバス103eとを備える。なお、以下の説明では、プロセッサの符号を、特定のプロセッサを表示する以外のときには100と表記する。
【0034】
電源バス103aは、複数の電源に接続され、クロックバス103bは、複数の周波数のクロック源に接続される。プロセッサ100及びI/O102には、電源バス103aから任意の電圧値の電源が供給され、クロックバス103bから任意の周波数のクロック信号が供給される。割り込みバス103cは、複数の割り込み信号を伝達し、プロセッサ100には、割り込みバス103cから任意の割り込み信号が供給される。
【0035】
命令メモリ101aは、各プロセッサ100のアプリケーションプログラムを記憶する。命令バス103dは、命令部アドレスバスと、命令部データバスとを含み、各プロセッサ100は、命令部アドレスバスを介して命令メモリ101aのアドレスを指定し、そのアドレスのデータ(命令)に命令部データバスを介してアクセスする。データメモリ102は、プロセッサ100が使用するデータを記憶する。データバス103eは、データ部アドレスバスと、データ部データバスとを含み、各プロセッサ100は、データ部アドレスバスを介してデータメモリ102のアドレスを指定し、そのアドレスにデータ部データバスを介してアクセスする。
【0036】
各プロセッサ100は、任意の組合せの複数の命令セットを有する。例えば、プロセッサ100(1)は、命令セットA及び命令セットBの2つの命令セットを有し、プロセッサ100(2)は、命令セットA、命令セットB、及び、命令セットCの3つの命令セットを有する。各プロセッサ100は、使用する命令セット、システムクロックの周波数、或いは、電源電圧が異なる複数の動作モードを有し、命令メモリ101aから読み取った特定の命令によって動作モードを切り替え可能であり、また、割り込みバス103cからの特定の割り込み信号によって動作モードを切り替え可能である。
【0037】
図2は、図1のプロセッサ100(1)の詳細構成を示している。各プロセッサ100は、図2に示すプロセッサ100(1)と同様に、プロセッサ制御部110、プロセッサ処理部130、命令メモリ制御部140、及び、データメモリ制御部150を備える。以下では、各プロセッサ100の各構成要素について、命令セットAと命令セットBとを有するプロセッサ100(1)を例に挙げて説明する。
【0038】
プロセッサ制御部110は、命令フェッチレジスタ111、命令セット切替部112、システム命令デコーダ113、システム命令実行制御部114、命令モードレジスタ115、命令セットAデコーダ116、命令セットA実行制御部117、命令セットBデコーダ118、命令セットB実行制御部119、及び、命令実行切替部120を備える。命令セットAデコーダ116及び命令セットA実行制御部117は、命令セットAを実行するプロセッサ機能を実現するハードウェア部分を構成する。同様に、命令セットBデコーダ118及び命令セットA実行制御部119は、命令セットBを実行するプロセッサ機能を実現するハードウェア部分を構成する。プロセッサ処理部130は、命令セットAに固有のハードウェア資源として、演算ユニットA131及びレジスタファイルA134を備え、命令セットBに固有のハードウェア資源として、演算ユニットB132及びレジスタファイルB135を備える。また、双方の命令セットに共通のハードウェア資源として、共有演算ユニット133及び共有レジスタファイル136を備える。
【0039】
命令フェッチレジスタ111には、プロセッサ100が次に実行すべき命令が、命令部データバスを介して命令メモリ101aから読み込まれる。命令メモリ101aには、他のプロセッサのためのプログラムと共に、プロセッサ100(1)のシステム命令、命令セットAの命令、及び、命令セットBの命令が含まれるプログラムが記憶されている。システム命令は、プロセッサ100の動作モードを指定する命令として構成される。命令セットAと命令セットBとは、互いに異なる命令セットとして構成され、例えば、命令セットAは一般的なCPUが有する制御性能指向の命令セットとして構成され、命令セットBは一般的なDSPが有する信号処理性能指向の命令セットとして構成される。
【0040】
システム命令デコーダ113は、命令セットA及び命令セットBを実行するプロセッサ機能を実現するハードウェア部分とは独立に構成され、命令セット切替部112を介さずに受信したシステム命令をデコードし、そのデコード結果をシステム命令実行制御部114に送信する。システム命令実行制御部114は、プロセッサ100(1)の動作モードを指定するための情報を保持する命令モードレジスタ115の値を、受信したデコード結果に基づいて設定する。システム命令には、動作モードを指定する命令の1つとして、命令セット切替部112の選択を指定する命令、つまり、プロセッサ100が使用する命令セット(使用命令セット)を指定する命令が含まれる。命令セット切替部112は、命令モードレジスタ115の値に基づいて、選択状態を切り替え、命令フェッチレジスタ111に読み込まれた命令を、命令セットAデコーダ116、又は、命令セットBデコーダ118に選択的に供給する。
【0041】
命令セット切替部112が、命令セットAデコーダ側を選択しているときには、命令フェッチレジスタ111に読み込まれた命令は、命令セットAデコーダ116でデコードされ、そのデコード結果は、命令セットA実行制御部117に送信される。命令セットA実行制御部117は、演算ユニットA131、及び、レジスタファイルA134に直接に制御信号を送信する。また、このとき命令実行切替部120は、命令セット切替部112の選択に対応して、命令セットA実行制御部117を選択しており、命令セットA実行制御部117は、PC制御部142、DP制御部152、共有演算ユニット133、及び、共有レジスタファイル136に、命令実行切替部120を介して制御信号を送信する。言い換えると、命令セットA実行制御部117は、命令セットAに固有のハードウェア資源と、命令セットA/Bに共有のハードウェア資源との双方を使用して、命令セットAの命令を実行する。このとき、命令セットAの実行で使用されないハードウェア資源、つまり命令セットBデコーダ118、命令セットB実行制御部119、演算ユニットB132、及び、レジスタファイルB135は、非活性化状態とされ、消費電力が低減される。
【0042】
上記とは逆に、命令セット切替部112が、命令セットBデコーダ側を選択しているときには、命令フェッチレジスタ111に読み込まれた命令は、命令セットBデコーダ118でデコードされ、そのデコード結果は、命令セットB実行制御部119に送信される。命令セットB実行制御部119は、演算ユニットB134、及び、レジスタファイルB135に直接に制御信号を送信する。また、このとき命令実行切替部120は、命令セット切替部112の選択に対応して、命令セットB実行制御部119側を選択しており、命令セットB実行制御部119は、PC制御部142、DP制御部152、共有演算ユニット133、及び、共有レジスタファイル136に、命令実行切替部120を介して制御信号を送信する。言い換えると、命令セットB実行制御部119は、命令セットBに固有のハードウェア資源と、命令セットA/Bに共有のハードウェア資源との双方を使用して、命令セットBの命令を実行する。このとき、命令セットBの実行で使用されないハードウェア資源、つまり命令セットAデコーダ116、命令セットA実行制御部117、演算ユニットA131、及び、レジスタファイルA134は、非活性化状態とされ、消費電力が低減される。
【0043】
システム命令デコーダ113は、デコードすべき命令がシステム命令でないときには、その命令をNOP(No OPeration)命令としてデコードする。また、命令セットAデコーダ116は、デコードすべき命令が命令セットAに含まれる命令でないときには、その命令をNOP命令としてデコードし、命令セットBデコーダ118は、デコードすべき命令が命令セットBに含まれる命令でないときには、その命令をNOP命令としてデコードする。
【0044】
命令メモリ制御部140は、プログラムカウンタ(PC)141、PC制御部142、及び、割り込み制御部143を備える。プログラムカウンタ141には、命令フェッチレジスタ111に読み込むべき命令メモリ101aのアドレスが格納される。PC制御部142は、プログラムカウンタ141の値を制御する。割り込み制御部143は、外部からの割り込み信号を受信して、PC制御部142と命令モードレジスタ115とをそれぞれ制御する。
【0045】
PC制御部142は、通常時には、プログラムカウンタ141をインクリメントして、命令メモリ101a内の命令を順次に実行させる。PC制御部142は、命令メモリ101a内の分岐命令等が実行されると、命令セットA実行制御部117又は命令セットB実行制御部119からの信号に基づいて、プログラムカウンタ141の値を分岐先のアドレスに変更する。また、PC制御部142は、所定の割り込み信号を受信した割り込み制御部143からの指令に基づいて、プログラムカウンタ141の値を、割り込み信号に対応して定められた所定のアドレスに変更する。割り込み制御部143は、使用命令セットの強制的設定を要求する特定の割り込み信号を受信すると、命令モードレジスタ115の値を変更して、プロセッサ100の動作モードを変更する。
【0046】
データメモリ制御部150は、データポインタ(DP)151と、DP制御部152とを備える。データポインタ151は、プロセッサ制御部130との間でデータの送受信が行なわれるべきデータメモリ102のアドレスを格納する。DP制御部152は、データポインタ151の値を制御する。プロセッサ100が、データの転送命令等を実行すると、DP制御部152は、命令セットA実行制御部117又は命令セットB実行制御部119からの信号に基づいて、データポインタ151の値を、データ転送先、又は、データ転送元のアドレスに変更する。プロセッサ100の動作は、命令セットの種類及び数を除いて、プロセッサ100(1)の動作と同様である。
【0047】
図3は、図2のプロセッサ100(1)の動作例をタイミングチャートとして示している。プロセッサ100(1)は、プログラムカウンタ141が初期値に設定されて、命令メモリ101aから、使用命令セットが命令セットA、使用クロック周波数が50MHzの動作モードが指定されるシステム命令を読み込んでこれを実行する。命令セットAモードに設定されたプロセッサ100(1)では、命令セット切替部112が命令セットA側を選択し、命令セットAデコーダ116によって命令メモリ101aから命令フェッチレジスタ111を介して読み出された命令がデコードされて処理が実行される。
【0048】
時刻t1で、使用命令セットが命令セットBで、使用クロック周波数が100MHzの動作モードが指定されるシステム命令が実行されると、命令セット切替部112は命令セットB側を選択し、プロセッサ100(1)は、システムクロックとして、クロックバス103bから周波数が100MHzのクロック信号を入力する。このとき、プロセッサ100(1)には、クロック周波数が高くなることに対応して、時刻t1以前よりも高い電圧値の電源が、電源バス103aから入力される。使用する命令セットを切り替えることで、プロセッサ100(1)は、制御性能指向のプロセッサモードから信号処理性能指向のプロセッサモードに変化し、プロセッサ100(1)での信号処理の実行が高速になる。
【0049】
時刻t2では、命令メモリ101aから読み出された命令によって、使用命令セットを命令セットAに、使用クロック周波数を25MHzにするシステム命令が実行される。プロセッサ100(1)は、制御性能指向のプロセッサとして動作し、動作クロック周波数を時刻t1以前に比して低速にすることで、時刻t1以前よりも低速かつ低消費電力で処理を実行する。時刻t3で、プロセッサ100(1)に信号処理を要求する特定の割り込み信号が割り込み制御部143に入力されると、プロセッサ100(1)は、再び使用命令セットを命令セットBに切り替え、使用クロック周波数を100MHzにして、高速な信号処理を実行する。
【0050】
図4は、図2のプロセッサを含むシステムLSIの設計を処理するCADシステムを、その設計方法のフローチャートと共に機能ブロック図として示している。システムLSIの設計では、設計対象のシステムLSIの全機能を、システムLSI要求仕様D1として定義し、そのシステムLSI要求仕様D1を、機能仕様の変更容易性、回路規模、処理時間、及び、消費電力などの制約条件を考慮して、ハードウェア部分とソフトウェア部分とに分割する(ステップS1)。ハードウェア部分の設計では、プロセッサの機能を高級言語を用いて設計し、ソフトウェア部分の設計では、新たなハードウェアとして設計するプロセッサ上で動作するアプリケーションプログラムを設計する。
【0051】
ハードウェア部分の設計では、プロセッサに組み込むべき複数の命令セット、プロセッサの機能(動作モード)を切り替えるためのシステム命令、及び、外部バス条件や動作クロック周波数などの構成情報を含むプロセッサ設計情報D2を入力して、プロセッサ全体の機能構成を定義する(ステップS2)。ステップS2では、プロセッサ全体の機能構成の定義から、複数の命令セットの命令を含むアプリケーションプログラムを、命令セットに応じて正しく機械語に翻訳する際に使用されるマルチ命令セット構成定義D11が得られる。プロセッサ設計情報2は、資源制約が加えられて、それと共に動作合成される(ステップS3)。
【0052】
ステップS3の動作合成により、合成情報D3と、ハードウェア化するのに適した論理合成用HDL(Hardware Description Language)記述D4、及び、クロックサイクルレベルで動作検証するためのシミュレーション用C言語記述D5とから成るプロセッサ設計構成D6が得られる。得られた合成情報D3によって、回路規模がチェックされ(ステップS4)、回路規模がシステムLSIの制約条件を満たさないときにはステップS1に戻り、ハードウェア部分とソフトウェア部分の分割から設計をやり直す。ステップS4で、回路規模チェックの結果が良好である場合には、サイズ設計が完了し、ハードウェア部分(プロセッサ)の構成が定まる。
【0053】
ソフトウェア部分の設計では、ステップS2でプロセッサ設計情報D2に含めた各命令セットのそれぞれで動作すべきプログラム、図4の例では、命令セットAで動作すべきプログラムA(D7)及び命令セットBで動作すべきプログラムB(D8)と、システム命令で動作すべきシステムプログラムD9とを含むアプリケーションプログラムD10を高級言語等で作成し、プロセッサの動作を決定する。アプリケーションプログラムD10は、ステップS2でプロセッサ設計情報D2から得られるマルチ命令セット構成定義D11と共に、マルチターゲットのアセンブラによるアセンブルや、コンパイラによるコンパイル、リンカによるリンクがされ、デバッグ情報D12、及び、設定対象のプロセッサが直接理解できる機械語命令D13が得られる(ステップS5)。
【0054】
ステップS3で得られたシミュレーション用C言語記述D5と、ステップS5で得られたデバッグ情報D12及び機械語命令D13と、プロセッサのテスト用入出力信号を含む周辺環境を定義するテストベンチD14とが、命令セットシミュレータに掛けられ、プロセッサの設計に誤りがあるか否かが確認される(ステップS6)。命令セットシミュレータでは、プロセッサの構成、及び、アプリケーションプログラムD10のデバッグ作業が行なわれると共に、プロセッサの処理能力である時間性能特性及び消費電力特性が見積もられ、時間性能特性及び消費電力特性を性能情報D15として出力する。
【0055】
ステップS6により得られる性能情報D15によって、システムLSIが、求められる性能条件を満たすか否かが確認され(ステップS7)、要求される性能条件を満たさない場合には、ステップS1へ戻り、ハードウェア部分とソフトウェア部分の分割からシステムLSIの設計をやり直す。システムLSIの性能が、要求される性能条件を満たす場合には、システムLSIの設計は完了し、プロセッサと、プロセッサ上で動作するアプリケーションプログラムとが確定する。
【0056】
本実施形態例では、各命令セットのデコーダから独立したシステム命令デコーダ113が、使用命令セットの選択を含むプロセッサの動作モードを指定するシステム命令をデコードするため、各命令セットのデコーダに、命令セットの切り替えを要求する命令をデコードするための回路資源を配置する必要がなく、プロセッサ100の回路規模が増大しない。システム命令を、各命令セットから独立した命令として構成することで、プロセッサ100では、切り替え前の命令セットを認識することなく、使用命令セットを切り替えることができる。また、プロセッサ100は、命令メモリ101aから読み込んだシステム命令以外にも、使用命令セットの強制的設定を要求する特定の外部割り込み信号に応答して、使用命令セットが切替可能である。
【0057】
上記本実施形態例のプロセッサを含むシステムLSIの設計では、複数の命令セットを有するプロセッサを、RT(レジスタ転送)レベルよりも抽象度が高い動作記述から動作合成して得る。これにより、汎用性が高い演算資源等のハードウェア資源を、異なる命令セット間で共有するシステムLSI(プロセッサ)を得ることができ、限られたハードウェア回路規模の中で、より効率がよく、高い処理能力を有するシステムLSIを得ることができる。また、動作合成により得られたシミュレーション用C言語記述D5を、アプリケーションプログラムと共に、命令セットシミュレータでクロックサイクルレベルで動作検証することにより、システムLSIの動作検証が容易となる。
【0058】
なお、上記本実施形態例の説明では、プロセッサ100が、相互に異なる複数の命令セットを有する例について説明したが、プロセッサ100に含まれる複数の命令セットは、命令セット自体は同一であるが、ハードウェア資源の使用形態が異なる命令セットとして構成されていてもよい。例えば、図2において、命令セットAと命令セットBとを、同一の命令コードにより同一の実行結果をもたらす同一の命令セットとして構成し、命令セットAは、命令セットAに固有のハードウェア資源(例えば回路規模大)を使用して命令を実行し、命令セットBは、命令セットBに固有のハードウェア資源(例えば回路規模小)を使用して命令を実行するように構成することもできる。この場合、命令メモリ101aは、単一の命令セットで構成されるアプリケーションプログラムを記憶する。
【0059】
例えば低消費電力モードを有するプロセッサでは、動作クロックを低速にして消費電力を低減している。一般に、高速動作に対応するハードウェア資源は、低速動作のハードウェア資源よりも回路規模が大きくなるため、高速動作に対応するプロセッサを低消費電力モードで動作させているときには、ハードウェア資源が冗長な構成となる。このような事態を回避するために、プロセッサに、高速命令セットと、低速命令セットとを同一の命令セットとして含ませ、高速命令セットを選択するときには高速動作時用のハードウェア資源を使用して命令を実行し、低速命令セットを選択するときには低速動作時用のハードウェア資源を使用して命令を実行するようにプロセッサを構成する。このプロセッサが低消費電力モードで動作し、低速命令セットを選択するときには、高速命令セット用のハードウェア資源の電源供給を遮断することで、冗長なハードウェア構成に供給される電力を削減し、更なる低消費電力を実現することができる。
【0060】
図5(a)〜(c)は、プロセッサ100を4つ有するシステムLSIの構成例を示している。システムLSIは、4つのプロセッサ100と、命令メモリ及びデータメモリを含むメモリ101、I/O102と、各種のバス103とを備える。このシステムLSIは、4つのプロセッサ100(1)〜(4)が全て命令セットAで動作するパターン1(同図(a))、第1〜第3のプロセッサ100(1)〜(3)が命令セットAで動作し、第4のプロセッサ100(4)が命令セットBで動作するパターン2(同図(b))、及び、第1のプロセッサ100(1)が命令セットAで動作し、第2及び第3のプロセッサ100(2)、(3)が命令セットBで動作し、第4のプロセッサ100(4)が命令セットCで動作するパターン3(同図(c))の3つの動作パターンを有する。
【0061】
上記3つの動作パターンを実現するために、最低限、第1のプロセッサ100(1)は命令セットAを備え、第2及び第3のプロセッサ100(2)、(3)は命令セットA及び命令セットBを備え、第4のプロセッサ100(4)は命令セットAと命令セットBと命令セットCとを備える必要がある。例えば、命令セットAは、制御性能指向の命令セット、具体的には、C言語で記述されたプロトコルソフトウェア等に適した命令セットとして構成され、命令セットBは、一般的信号処理性能指向の命令セット、具体的には、一般的なAV系メディアアプリケーション等に適した命令セットとして構成され、命令セットCは、専用信号処理性能指向の命令セット、具体的には、通信データパスの信号処理等に適した命令セットとして構成される。
【0062】
図6は、図5のシステムLSIの処理性能をベクトルとして示している。システムLSIがパターン1(図5(a))で動作する場合には、全てのプロセッサが命令セットAで動作するため、ベクトルaとして示すように、制御性能が高く、信号処理性能が低いシステムLSIとして動作する。システムLSIがパターン2(図5(b))で動作する場合には、4つのうちの1つのプロセッサが命令セットBで動作するため、ベクトルbとして示すように、パターン1に比して制御性能が低く、信号処理性能が高いシステムLSIとして動作する。システムLSIがパターン3(図5(b))で動作する場合には、ベクトルcに示すように、パターン2に比して制御性能が更に低く、信号処理性能が更に高いシステムLSIとして動作する。
【0063】
図7は、図5のシステムLSIの処理例をブロック図として示し、図8は、そのシステムLSIの処理と動作パターンとの対応関係を示している。システムLSIは、アプリケーションとして、図7に示すように、受信したデータをフィルタリングする受信フィルタ処理、フィルタリングしたデータの誤り訂正を行なう受信誤り訂正処理、及び、誤り訂正されたデータの伸長を行なう受信データ伸長処理を順次に有し、また、これらの処理の制御と並列に行なわれる通信制御処理を有する。
【0064】
図8において、システムLSIが通信制御処理のみを行なう期間では、通信制御処理には制御性能指向の処理能力が要求されるため、システムLSIは、全てのプロセッサの使用命令セットを命令セットAにして、図5(a)に示すパターン1で動作する。受信フィルタ処理及び受信データ伸長処理を行なう期間では、それらの処理には一般的な信号処理性能指向の処理能力が要求されるため、システムLSIは、パターン1から、4つのプロセッサのうちの一のプロセッサの使用命令セットを命令セットBに切り替え、図5(b)に示すパターン2で動作する。また、受信誤り訂正処理を行なう期間では、受信誤り訂正処理には、一般的な信号処理性能指向の処理能力と、専用的な信号処理性能指向の処理能力とが要求されため、システムLSIは、4つのプロセッサのうちの2つの使用命令セットを命令セットBにし、残りの2つのプロセッサのうちの一方の使用命令セットを命令セットAにし、他方の使用命令セットを命令セットCにして、図5(c)に示すパターン3で動作する。
【0065】
上記のように、システムLSIでは、アプリケーションプログラム上のシステム命令、又は、特定の割り込み信号により、複数のプロセッサの使用命令セットを、図8に示すように、全てのプロセッサ100を同じ命令セットとすること、又は、所定数のプロセッサ100の使用命令セットを、他のプロセッサ100の使用命令セットと異なる命令セットにすることができる。このように、使用命令セットをダイナミックに変更することで、時々刻々と変化するシステムLSIが行なうべき処理に要求される処理能力指向に応じて、システムLSIの処理性能指向を、時間軸上で任意に設定することができ、システムLSIの各処理での処理能力の向上を図ることができる。
【0066】
図9は、本発明の第2実施形態例のプロセッサのプロセッサ制御部の構成を示している。本実施形態例では、図2のプロセッサ制御部110が、プロセッサ制御部110bに置き換わる点で第1実施形態例と相違する。プロセッサ制御部110bは、命令フェッチレジスタ111、命令セット切替部112、システム命令デコーダ113、システム命令実行制御部114、命令モードレジスタ115、命令セットAデコーダ116、命令セットA実行制御部117、命令セットBデコーダ118、命令セットB実行制御部119、命令実行切替部120、共有命令セットでコーダ121、及び、共有命令セット実行制御部122を備える。
【0067】
共有命令セットデコーダ121は、命令フェッチレジスタ111が読み込んだ命令セットA及び命令セットBに共通の共有命令を、命令セットAデコーダ116又は命令セットBデコーダ118と、命令実行切替部120とを介して入力し、そのデコード結果を出力する。共有命令セット実行制御部122は、共有命令セットデコーダ121からのデコード結果に基づいて、プロセッサ処理部130、PC制御部142、及び、DP制御部152に制御信号を送信し、共有命令を実行する。
【0068】
本実施形態例では、複数の命令セットが共有する1つ以上の命令を、共有命令セットデコーダ121でデコードして実行する。第1実施形態例では、ハードウェア資源である命令セットAデコーダ116及び命令セットBデコーダ117のそれぞれが、共有命令に対応するデコード結果を出力するための回路資源を必要としていたが、本実施形態例では、命令セットAデコーダ116と命令セットBデコーダ117回路資源の重複部分を削減できる。共有命令としては、例えばプロセッサに共通の四則演算等が含まれる。
【0069】
図10は、本発明の第3実施形態例のプロセッサのプロセッサ制御部の構成を示している。本実施形態例では、図2のプロセッサ制御部110が、プロセッサ制御部110cに置き換わる点で、第1実施形態例と相違する。プロセッサ制御部110cは、命令フェッチレジスタ111、命令セット切替部112、システム命令デコーダ113、システム命令実行制御部114、命令モードレジスタ115、参照アドレスレジスタ123、参照テーブルメモリ124、及び、処理制御データレジスタ125を備える。
【0070】
参照テーブルメモリ124は、命令セットAデコーダ116及び命令セットBデコーダ118(図2)の出力信号に対応するデコード結果データと、命令セットA実行制御部117及び命令セットB実行制御部119(図2)の出力信号に対応する実行制御データとを、水平マイクロコード(水平命令)として記憶する。参照テーブルメモリ124では、実行すべき命令と、選択されている命令セットの情報とに基づく参照アドレスによって、選択されている命令セットの実行すべき命令に対応するデコード結果データ及び実行制御データが抽出されるように、デコード結果データ及び実行制御データのアドレスが設定される。
【0071】
命令メモリ101aから、命令フェッチレジスタ111に命令(命令コード)が読み込まれると、その命令コードと、命令モードレジスタ115によって選択されている命令セットの情報とに基づいて定まる参照アドレスが、参照アドレスレジスタ123に入力される。参照データテーブル124は、参照アドレスをキーとしてテーブル検索を行ない、デコード結果データ及び実行制御データを抽出して、その抽出結果を処理制御データレジスタ125に入力する。プロセッサ処理部130(図1)は、処理制御データレジスタ125が保持する水平マイクロコードに基づいて、プロセッサ100(1)に与えられた命令を実行する。
【0072】
本実施形態例では、命令セット毎に回路資源としてのデコーダ及び実行制御部を配置するのに代えて、メモリ資源である参照テーブルメモリ124上に、命令フェッチレジスタ111に読み込まれた命令をデコード或いは実行するための情報を格納する。参照テーブルメモリ124上のデコード結果データ及び実行制御データは、プログラマブルに変更できるため、システムLSIのハードウェア構成が決定した後であっても、アプリケーションプログラムの実行中に、デコード結果データ及び実行制御データをダイナミックに変更することもできる。例えば、システムLSI内部のハードウェア資源である参照テーブルメモリ124のメモリ容量が一定である場合であっても、参照テーブルメモリ124上のデコード結果データ及び実行制御データを外部から書き換えることで、命令セットに含まれる命令数を増やす、或いは、命令セット数を増やすことができる。
【0073】
図11は、本発明の第4実施形態例のプロセッサのプロセッサ制御部の構成を示している。本実施形態例では、図2のプロセッサ制御部110が、プロセッサ制御部110dに置き換わり、プロセッサ100(1)は、命令セットと、命令セット毎のパイプラインの段数との双方を切り替え可能である。プロセッサ制御部110dは、命令フェッチレジスタ111、命令セット切替部112、システム命令デコーダ113、システム命令実行制御部114、命令モードレジスタ115、命令セットAデコーダ116、Aデコードレジスタ126、命令セットA段数切替部128、命令セットA実行制御部117、命令セットBデコーダ118、B1デコードレジスタ127a、命令セットB1実行制御部119a、B2デコードレジスタ127b、命令セットB段数切替部129a、129b、及び、命令セットB2実行制御部119bを備える。
【0074】
システム命令には、命令セット切替部112の選択を指定する命令、つまり使用する命令セットを指定する命令と、命令セットA段数切替部128、及び、第1及び第2の命令セットB段数切替部129a、129bの選択状態を指定する命令、つまり命令セット毎のパイプラインの段数を指定する命令とが含まれる。命令モードレジスタ115は、命令セット切替部112の選択を指定する情報と、命令セットA段数切替部128、及び、第1及び第2の命令セットB段数切替部129a、129bの選択を指定する情報とを保持する。
【0075】
命令セットA段数切替部128は、命令セットAデコーダ116でのデコード結果を、Aデコードレジスタ126を介して、或いは、直接に、命令セットA実行制御部117に供給する。命令セットA段数切替部128が、Aデコードレジスタ126を介して命令セットA実行制御部117にデコード結果を供給するときには、命令セットAは、命令フェッチステージ、デコードステージ、実行ステージの3段でパイプライン動作し、直接に命令セットA実行制御部117にデコード結果を供給するときには、命令セットAは、命令フェッチステージ、デコード&実行ステージの2段でパイプライン動作する。
【0076】
第1の命令セットB段数切替部129aは、命令セットBデコーダ118でのデコード結果を、B1デコードレジスタ127を介して、或いは、直接に、命令セットB1実行制御部119aに供給する。命令セットB1実行制御部119aでは、供給されるデコード結果に基づいた命令の実行と、2サイクル命令の後半の命令デコードとが行なわれる。第2の命令セット段数切替部129bは、命令セットB実行制御部119aでの後半の命令デコード結果を、B2デコードレジスタ127bを介して、或いは、直接に、命令セットB2実行制御部119bに供給する。
【0077】
第1の命令セットB段数切替部129aがB1デコードレジスタ127aを介して命令セットB1実行制御部119aにデコード結果を供給し、第2の命令セットB段数切替部129bが、B2デコードレジスタ127bを介して命令セットB2実行制御部119bにデコード結果を供給するときには、パイプライン段数は最大の4段となり、第1及び第2の命令セットB段数切替部129a、129bが共に直接にデコード結果を命令セットB1実行制御部119a又は命令セットB2実行制御部119bに供給するときには、パイプライン段数は最小の2段となる。
【0078】
本実施形態例では、使用命令セットの切り替えに加えて、命令セット毎のパイプライン段数を、システム命令に基づいてダイナミックに切り替えて使用することができる。このため、システムLSIの処理に要求される処理能力に応じて、プロセッサ100の処理速度を、アプリケーションプログラムによって任意に設定することができる。このように、パイプライン段数を変化させることによって、高速処理時にはパイプラインを使って処理を行ない、低速処理時(低消費電力時)にはパイプライン段数を減らして処理を行なうことができるため、処理の形態に対応して、適切にプロセッサ環境を設定することができる。
【0079】
なお、上記実施形態例では、命令セットAと命令セットBとが、異なる処理性能指向の命令セットとして構成される例について説明したが、プロセッサに含まれる複数の命令セットには、同種の処理性能指向の命令セットが含まれていてもよい。また、プロセッサの動作モードを設定するシステム命令として、使用命令セットの設定、動作クロック周波数の設定、電源電圧の設定、及び、パイプライン段数の設定を例に挙げたが、システム命令は、これらの他に、スタンバイモードの設定、電源のオン・オフの設定、活用演算器ユニットプラグインの設定、活用レジスタプラグインの設定、割り込み条件の設定、及び、バッグモードの設定の何れかの命令を含んでいてもよい。
【0080】
以上、本発明をその好適な実施形態例に基づいて説明したが、本発明のプロセッサ、システムLSI、システムLSIの設計方法、及び、それを記録した記録媒体は、上記実施形態例にのみ限定されるものではなく、上記実施形態例の構成から種々の修正及び変更を施したプロセッサ、システムLSI、システムLSIの設計方法、及び、それを記録した記録媒体も、本発明の範囲に含まれる。
【0081】
【発明の効果】
以上説明したように、本発明のプロセッサ、及び、これを備えるシステムLSIは、複数の命令セットの何れにも属しないシステム命令によって選択された命令セットに対応するプロセッサ機能で動作するため、命令セットを切り替える際に、切り替え前の命令セットを認識する必要がなく、切り替えが簡易に行なえる。また、入力された命令以外にも、所定の割り込み信号に応答して命令セットを切り替えるように構成することもできる。
本発明のシステムLSIの設計方法、及び、それを記録した記録媒体では、複数の命令セットを有するプロセッサの回路構成を、動作合成により得ることで、ハードウェア資源の共有が容易となり、限られた回路規模の中で、処理性能が高いシステムLSIを、簡易に設計することができる。
【図面の簡単な説明】
【図1】本発明の第1実施形態例のシステムLSIの構成例を示すブロック図。
【図2】図1のプロセッサ100(1)の詳細構成例を示すブロック図。
【図3】図2のプロセッサ100(1)の動作例を示すタイミングチャート。
【図4】図2のプロセッサを含むシステムLSIの設計方法を実施するシステムを、その設計方法のフローチャート共に示す機能ブロック図。
【図5】4つのプロセッサを有するシステムLSIの構成例を示すブロック図。
【図6】図5のシステムLSIの各動作パターンの処理性能を示すベクトル図。
【図7】図5のシステムLSIの処理内容を示す機能ブロック図。
【図8】図5のシステムLSIの動作例を示すタイムチャート。
【図9】本発明の第2実施形態例のプロセッサのプロセッサ制御部の構成例を示すブロック図。
【図10】本発明の第3実施形態例のプロセッサのプロセッサ制御部の構成例を示すブロック図。
【図11】本発明の第4実施形態例のプロセッサのプロセッサ制御部の構成例を示すブロック図。
【図12】従来のプロセッサの構成を示すブロック図。
【符号の説明】
100:プロセッサ
101:メモリ
102:I/O
103:バス
110:プロセッサ制御部
111:命令フェッチレジスタ
112:命令セット切替部
113:システム命令デコーダ
114:システム命令実行制御部
115:命令モードレジスタ
116:命令セットAデコーダ
117:命令セットA実行制御部
118:命令セットBデコーダ
119:命令セットB実行制御部
120:命令実行切替部
124:参照テーブルメモリ
130:プロセッサ処理部
140:命令メモリ制御部
150:データメモリ制御部
Claims (15)
- 第1命令セットと第2命令セットとを実行するプロセッサであって、
前記第1命令セットに含まれる命令のデコード結果である第1デコード結果と前記第2命令セットに含まれる命令のデコード結果である第2デコード結果とのうちで、前記第1デコード結果のみに基づき演算を行なう第1演算ユニットと、
前記第1デコード結果と前記第2デコード結果の双方に基づいて演算を行なう共通演算ユニットと、
を有することを特徴とするプロセッサ。 - 前記第1命令セットに含まれる命令をデコードして前記第1デコード結果を生成する第1デコーダと、
前記第2命令セットに含まれる命令をデコードして前記第2デコード結果を生成する第2デコーダとを有することを特徴とする、請求項1に記載のプロセッサ。 - 前記第1デコード結果と前記第2デコード結果のうちで、前記第2デコード結果にのみに基づいて演算を行なう第2演算ユニットを有することを特徴とする、請求項2に記載のプロセッサ。
- 前記第1命令セットと前記第2命令セットとに共通に含まれる命令をデコードする共通命令セットデコーダを有することを特徴とする、請求項1に記載のプロセッサ。
- 前記第1デコーダと前記第1演算ユニットとの間に構成されるパイプラインを有することを特徴とする、請求項2に記載のプロセッサ。
- 前記第1デコーダと前記第1演算ユニットとの間に構成される第1パイプラインと、前記第2デコーダと前記第2演算ユニットとの間に構成される第2パイプラインとを有することを特徴とする、請求項3に記載のプロセッサ。
- 前記第1パイプラインの段数と前記第2パイプラインの段数が異なることを特徴とする、請求項6に記載のプロセッサ。
- 前記パイプラインの段数が可変であることを特徴とする、請求項5に記載のプロセッサ。
- 前記第1及び第2パイプラインの段数が可変であることを特徴とする、請求項6に記載のプロセッサ。
- 前記第1及び第2デコーダのうちの何れを使用するかを選択するシステム命令をデコードするシステム命令デコーダを有することを特徴とする、請求項2に記載のプロセッサ。
- 前記システム命令デコーダは、前記第1及び第2デコーダとは別に設けられていることを特徴とする、請求項10に記載のプロセッサ。
- 割り込み信号に応答して、前記第1および第2デコーダのいずれか一方が選択されて使用されることを特徴とする、請求項2に記載のプロセッサ。
- 前記システム命令は、プロセッサが動作する電源電圧及び動作速度を設定する命令の少なくとも1つを含むことを特徴とする、請求項10に記載のプロセッサ。
- 第1デコード結果と第2デコード結果とを共に格納するメモリを有することを特徴とする、請求項1に記載のプロセッサ。
- 前記第1デコード結果と前記第2デコード結果のうちで、前記第2デコード結果にのみに基づいて演算を行なう第2演算ユニットを有することを特徴とする、請求項14に記載のプロセッサ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003051201A JP3805314B2 (ja) | 2003-02-27 | 2003-02-27 | プロセッサ |
US10/785,671 US7536534B2 (en) | 2003-02-27 | 2004-02-24 | Processor capable of being switched among a plurality of operating modes, and method of designing said processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003051201A JP3805314B2 (ja) | 2003-02-27 | 2003-02-27 | プロセッサ |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006000260A Division JP2006146953A (ja) | 2006-01-04 | 2006-01-04 | プロセッサ、システムlsi、システムlsiの設計方法、及び、それを記録した記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004259143A JP2004259143A (ja) | 2004-09-16 |
JP3805314B2 true JP3805314B2 (ja) | 2006-08-02 |
Family
ID=32905679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003051201A Expired - Lifetime JP3805314B2 (ja) | 2003-02-27 | 2003-02-27 | プロセッサ |
Country Status (2)
Country | Link |
---|---|
US (1) | US7536534B2 (ja) |
JP (1) | JP3805314B2 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7249331B2 (en) * | 2004-10-07 | 2007-07-24 | International Business Machines Corporation | Architectural level throughput based power modeling methodology and apparatus for pervasively clock-gated processor cores |
EP1839104A2 (en) * | 2005-01-12 | 2007-10-03 | Nxp B.V. | Method and apparatus for tuning a digital system |
US7958335B2 (en) * | 2005-08-05 | 2011-06-07 | Arm Limited | Multiple instruction set decoding |
US7886131B1 (en) * | 2006-08-14 | 2011-02-08 | Marvell International Ltd. | Multithread processor with thread based throttling |
US8510488B2 (en) * | 2007-08-08 | 2013-08-13 | Ricoh Company, Limited | Function control apparatus and function control method |
GB2484489A (en) * | 2010-10-12 | 2012-04-18 | Advanced Risc Mach Ltd | Instruction decoder using an instruction set identifier to determine the decode rules to use. |
JP5922353B2 (ja) * | 2011-08-22 | 2016-05-24 | サイプレス セミコンダクター コーポレーション | プロセッサ |
US8914615B2 (en) | 2011-12-02 | 2014-12-16 | Arm Limited | Mapping same logical register specifier for different instruction sets with divergent association to architectural register file using common address format |
JP5850732B2 (ja) * | 2011-12-14 | 2016-02-03 | ルネサスエレクトロニクス株式会社 | 半導体装置及びその制御方法 |
WO2013132767A1 (ja) * | 2012-03-09 | 2013-09-12 | パナソニック株式会社 | プロセッサ、マルチプロセッサシステム、コンパイラ、ソフトウェアシステム、メモリ制御システムおよびコンピュータシステム |
US10437596B2 (en) * | 2014-11-26 | 2019-10-08 | Texas Instruments Incorporated | Processor with a full instruction set decoder and a partial instruction set decoder |
US9690680B1 (en) * | 2016-09-23 | 2017-06-27 | International Business Machines Corporation | Testing hybrid instruction architecture |
KR102235803B1 (ko) | 2017-03-31 | 2021-04-06 | 삼성전자주식회사 | 반도체 장치 |
GB2563580B (en) * | 2017-06-15 | 2019-09-25 | Advanced Risc Mach Ltd | An apparatus and method for controlling a change in instruction set |
US11042370B2 (en) * | 2018-04-19 | 2021-06-22 | Intel Corporation | Instruction and logic for systolic dot product with accumulate |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62123552A (ja) | 1985-11-22 | 1987-06-04 | Nec Corp | 中央処理装置割当て方式 |
JPH01147722A (ja) | 1987-12-04 | 1989-06-09 | Nec Corp | 情報処理装置のパイプライン処理方式 |
JP2641765B2 (ja) | 1989-06-30 | 1997-08-20 | 三菱電機株式会社 | 命令処理方式 |
GB2290395B (en) | 1994-06-10 | 1997-05-28 | Advanced Risc Mach Ltd | Interoperability with multiple instruction sets |
JP3511691B2 (ja) | 1994-10-04 | 2004-03-29 | ヤマハ株式会社 | 演算処理装置 |
US5774686A (en) * | 1995-06-07 | 1998-06-30 | Intel Corporation | Method and apparatus for providing two system architectures in a processor |
JP3623840B2 (ja) | 1996-01-31 | 2005-02-23 | 株式会社ルネサステクノロジ | データ処理装置及びマイクロプロセッサ |
JPH09282159A (ja) | 1996-04-09 | 1997-10-31 | Fujitsu Ltd | プロセッサ回路 |
JPH09330219A (ja) | 1996-06-12 | 1997-12-22 | Matsushita Electric Ind Co Ltd | 命令解読器切替型プロセッサ及び翻訳装置 |
US5784602A (en) * | 1996-10-08 | 1998-07-21 | Advanced Risc Machines Limited | Method and apparatus for digital signal processing for integrated circuit architecture |
JP3541623B2 (ja) | 1997-06-27 | 2004-07-14 | 松下電器産業株式会社 | データ処理装置 |
US6167529A (en) * | 1997-12-30 | 2000-12-26 | Intel Corporation | Instruction dependent clock scheme |
US6081884A (en) * | 1998-01-05 | 2000-06-27 | Advanced Micro Devices, Inc. | Embedding two different instruction sets within a single long instruction word using predecode bits |
JP2000137619A (ja) | 1998-11-02 | 2000-05-16 | Hitachi Ltd | マイクロコンピュータ |
US6430674B1 (en) * | 1998-12-30 | 2002-08-06 | Intel Corporation | Processor executing plural instruction sets (ISA's) with ability to have plural ISA's in different pipeline stages at same time |
US6725354B1 (en) * | 2000-06-15 | 2004-04-20 | International Business Machines Corporation | Shared execution unit in a dual core processor |
JP2002230065A (ja) | 2001-02-02 | 2002-08-16 | Toshiba Corp | システムlsi開発装置およびシステムlsi開発方法 |
EP1324191A1 (en) | 2001-12-27 | 2003-07-02 | STMicroelectronics S.r.l. | Processor architecture, related system and method of operation |
-
2003
- 2003-02-27 JP JP2003051201A patent/JP3805314B2/ja not_active Expired - Lifetime
-
2004
- 2004-02-24 US US10/785,671 patent/US7536534B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20040172519A1 (en) | 2004-09-02 |
US7536534B2 (en) | 2009-05-19 |
JP2004259143A (ja) | 2004-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2006146953A (ja) | プロセッサ、システムlsi、システムlsiの設計方法、及び、それを記録した記録媒体 | |
JP3805314B2 (ja) | プロセッサ | |
JP4234925B2 (ja) | データ処理装置、制御方法およびその記録媒体 | |
EP1028382B1 (en) | Microcomputer | |
JP3559046B2 (ja) | データ処理マネージメントシステム | |
JP4130654B2 (ja) | 拡張可能なプロセッサアーキテクチャ中にアドバンスド命令を追加するための方法および装置 | |
JPH09231070A (ja) | 情報処理回路、半導体集積回路装置、マイクロコンピュータ、電子機器 | |
JPH08106375A (ja) | 信号処理演算器 | |
US20020198606A1 (en) | Data processing system and control method | |
KR100499720B1 (ko) | 시스템 엘에스아이 설계 방법 | |
JP4800582B2 (ja) | 演算処理装置 | |
EP1122688A1 (en) | Data processing apparatus and method | |
JP3727395B2 (ja) | マイクロコンピュータ | |
JP3841820B2 (ja) | マイクロコンピュータ | |
JP2003005954A (ja) | データ処理装置およびその制御方法 | |
JP3958239B2 (ja) | マイクロコントローラ | |
Saghir | Application-specific instruction-set architectures for embedded DSP applications | |
JPH09305401A (ja) | コンピュータ及びコンパイラ | |
KR100737802B1 (ko) | 모듈형 디지털 신호 프로세서 블록 및 이를 이용한시스템-온-칩 | |
JP3729142B2 (ja) | 並列演算処理装置 | |
JP2004102988A (ja) | データ処理装置 | |
JP2006202329A (ja) | システムlsiの設計方法及びこれを記憶した記録媒体 | |
JPH1020959A (ja) | 低消費電力マイクロプロセッサ | |
JP3765782B2 (ja) | マイクロコンピュータ | |
JP3733137B2 (ja) | マイクロコンピュータ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041105 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051031 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060126 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060324 |
|
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: 20060413 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060509 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3805314 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090519 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100519 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100519 Year of fee payment: 4 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100519 Year of fee payment: 4 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100519 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110519 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120519 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120519 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130519 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140519 Year of fee payment: 8 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
EXPY | Cancellation because of completion of term |