JP2011158930A - Microprocessor - Google Patents
Microprocessor Download PDFInfo
- Publication number
- JP2011158930A JP2011158930A JP2010017621A JP2010017621A JP2011158930A JP 2011158930 A JP2011158930 A JP 2011158930A JP 2010017621 A JP2010017621 A JP 2010017621A JP 2010017621 A JP2010017621 A JP 2010017621A JP 2011158930 A JP2011158930 A JP 2011158930A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- unit
- decode
- decoding
- microprocessor
- 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
Landscapes
- Executing Machine-Instructions (AREA)
- Microcomputers (AREA)
Abstract
Description
本発明は、マイクロプロセッサに関する。例えば、命令または命令セットの一部を無効化または低速化させることにより、最大動作周波数を可変にすることが出来るマイクロプロセッサに関するものである。 The present invention relates to a microprocessor. For example, the present invention relates to a microprocessor that can change the maximum operating frequency by invalidating or slowing down a part of an instruction or an instruction set.
本技術分野の背景技術として、例えば、特開2007−172285号公報(特許文献1)がある。該公報には、「[課題]回路規模の縮小化と処理時間の短縮化等に貢献するリコンフィギュラブル回路を提供する。[解決手段]それぞれが複数の算術論理演算機能を選択的に実行可能な複数の論理回路2から構成される演算部と、複数の論理回路2の間の接続関係を保持する接続部と、を備えるリコンフィギュラブル回路において、少なくとも1つの論理回路2は、その論理回路2の演算で使用する入力4bを、その論理回路2の演算の次の演算を実行する論理回路2に入力する専用の入力伝播線6を有する入力伝播回路5を備える。さらに、入力伝播回路5は、入力伝播回路5を備える第1の論理回路2で使用するデータを、第1の論理回路2の演算の次の演算を実行する第2の論理回路2に入力する際、第1の論理回路2での演算実行時間の間、データを保持し、第2の論理回路2で演算を実行するときに、第2の論理回路2に入力できるようにするデータ保持機構7を備える。」と記載されている(要約参照)。
As background art in this technical field, for example, there is JP-A-2007-172285 (Patent Document 1). In this publication, “[Problem] To provide a reconfigurable circuit that contributes to a reduction in circuit scale, a reduction in processing time, etc. [Solution] Each can selectively execute a plurality of arithmetic logic operation functions. In a reconfigurable circuit comprising an arithmetic unit composed of a plurality of
一般的なマイクロプロセッサは、メモリから命令を読み出し、一度フェッチした後、命令デコードを行い、デコード結果に従い、処理を実行する。 A general microprocessor reads an instruction from a memory, fetches it once, performs instruction decoding, and executes processing according to the decoding result.
マイクロプロセッサの最大動作周波数は、対応する命令と、処理内容によるハードウェアの遅延制約によって決まるため、基本構成が同一であっても、対応する命令と、処理内容の違いにより、個別のマイクロプロセッサを設計する必要がある。これらのマイクロプロセッサを様々な用途に適用する場合、その用途に応じて、例えば、動作周波数、必要な命令、必要な処理や処理パフォーマンスなどの条件が異なるため、異なるマイクロプロセッサとして設計する必要があった。 Since the maximum operating frequency of a microprocessor is determined by the hardware delay constraint depending on the corresponding instruction and processing contents, even if the basic configuration is the same, individual microprocessors can be changed depending on the difference between the corresponding instruction and processing contents. Need to design. When these microprocessors are applied to various applications, it is necessary to design them as different microprocessors because the conditions such as operating frequency, required instructions, required processing and processing performance differ depending on the application. It was.
この改善策として、例えば、動作周波数、必要な命令、必要な処理や処理パフォーマンスなどをパラメータとして定義し、パラメータに応じてマイクロプロセッサを自動的に生成する方法がある。 As an improvement measure, for example, there is a method in which an operating frequency, necessary instructions, necessary processing and processing performance are defined as parameters, and a microprocessor is automatically generated according to the parameters.
また、同一のマイクロプロセッサを異なる用途で使用する場合、最も論理回路遅延時間の長い処理で決められる動作周波数が、動作周波数の上限、すなわち最大動作周波数となるため、最も論理回路遅延時間の長い処理が不要である用途に対しても、最大動作周波数の制約上、マイクロプロセッサの処理パフォーマンスが制限されるという課題がある。 When the same microprocessor is used in different applications, the operation frequency determined by the processing with the longest logic circuit delay time is the upper limit of the operation frequency, that is, the maximum operation frequency. However, there is a problem that the processing performance of the microprocessor is limited due to the restriction on the maximum operating frequency even for applications where the above is unnecessary.
前記マイクロプロセッサの自動生成の方法では、生成されるマイクロプロセッサはパラメータに応じて決められた性能のみ満足するものであり、このように用途に応じて同一マイクロプロセッサを使い分ける場合に、最大動作周波数など動作上の制約が発生するという課題が残る。 In the method of automatically generating the microprocessor, the generated microprocessor satisfies only the performance determined according to the parameters. Thus, when the same microprocessor is used depending on the application, the maximum operating frequency, etc. The problem that operation restrictions occur will remain.
解決しようとする問題点は、用途に応じて同一マイクロプロセッサを使い分ける場合に、命令デコード、命令実行などにより規定される最大動作周波数の制約が発生する点である。 The problem to be solved is that when the same microprocessor is used depending on the application, there is a restriction on the maximum operating frequency defined by instruction decoding, instruction execution, and the like.
本発明は、一例として、用途に応じて、最大動作周波数を可変にするために、命令または命令セットの一部を無効化させることを特徴とする。 As an example, the present invention is characterized in that a part of an instruction or an instruction set is invalidated in order to make the maximum operating frequency variable according to the application.
本発明のマイクロプロセッサは、例えば、用途に応じて動作周波数を可変に出来るため、用途に応じて複数のマイクロプロセッサを実装したり、最大動作周波数で動作することの出来る必要以上に処理パフォーマンスの高いマイクロプロセッサを実装したりすることなく、単一のマイクロプロセッサを様々な用途で使い分けられるという利点がある。 The microprocessor according to the present invention, for example, can change the operating frequency according to the application, so that a plurality of microprocessors can be mounted according to the application, or the microprocessor can operate at the maximum operating frequency. There is an advantage that a single microprocessor can be used for various purposes without mounting a microprocessor.
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。 Problems, configurations, and effects other than those described above will be clarified by the following description of embodiments.
図1に一般的なマイクロプロセッサの構成を示す。 FIG. 1 shows a configuration of a general microprocessor.
メモリ部1は、機械語100を格納するメモリである。
The
命令フェッチ部2は、前記メモリ部1から読み出した機械語100をフェッチするブロックである。
The
命令デコード部4は、前記命令フェッチ部2から読み出した機械語101の命令デコード処理を行うブロックである。命令の種類が多いほど、デコード処理に伴うセレクタが多段になり、回路遅延が大きくなる。これは、マイクロプロセッサの最大動作周波数を抑える方向に働く。
The instruction decode unit 4 is a block that performs an instruction decode process of the
命令実行部3は、前記命令デコード部10でデコードされた命令103に対応する処理を行うブロックである。
The
図2は、本実施例によるマイクロプロセッサの命令デコード方法の典型的な一例である。以下、図2を用いて説明する。 FIG. 2 is a typical example of a microprocessor instruction decoding method according to this embodiment. Hereinafter, a description will be given with reference to FIG.
図2で示すマイクロプロセッサの命令デコード方式は、N種類の命令、すなわち命令Ni(i=1、2、・・・、n)に対応するものとする。 The microprocessor instruction decoding method shown in FIG. 2 corresponds to N types of instructions, that is, instructions Ni (i = 1, 2,..., N).
命令デコード部5は、機械語101を入力とし、命令群選択信号105で指定される命令群に対して、機械語101のデコード処理を行い、デコードして得られた命令103を命令実行部3に供給するブロックである。ここで、命令群とは、機械語101に対してデコード処理する命令のセットである。
The instruction decoding unit 5 receives the
例えば、2種類の命令群A及び命令群Bについて考える。命令群Aは命令Ni(i=1、2・・・、m ただしm<n)、命令群Bは命令Ni(i=m+1、m+2・・・、n)で構成されるものとする。命令群選択信号105は、命令群Aまたは、全ての命令群(命令群A及び命令群B)の選択をすることが出きる値をとるものとする。命令群選択信号105の値が、命令群Aを選択している場合、命令デコード部5は、機械語101に対して、命令群Aのいずれであるかでコード処理をし、命令群Aに含まれる命令であった場合、命令実行部3に命令103を供給する。一方、機械語101のデコード処理した結果、命令群Aに含まれる命令でない場合、命令実行部3に対して、命令103を発行しない。従って、命令群選択信号105の値が、命令群Aを選択している場合、命令デコード部5におけるデコード処理において、命令群Bに対するデコード処理を省くことが出来、論理回路の遅延量も削減することが出来きるため、命令デコード部5における最大動作周波数を上げることが可能となる。
For example, consider two types of instruction group A and instruction group B. It is assumed that the instruction group A is composed of instructions Ni (i = 1, 2,..., M where m <n), and the instruction group B is composed of instructions Ni (i = m + 1, m + 2..., N). The instruction
図3は、図2で示す命令デコード部5の典型的な一例である。以下、図3を用いて説明する。 FIG. 3 is a typical example of the instruction decoding unit 5 shown in FIG. Hereinafter, a description will be given with reference to FIG.
この例では、命令デコード部5は、命令デコード選択部11と、命令デコード実行部A12と、命令デコード実行部B13とで構成される。 In this example, the instruction decode unit 5 includes an instruction decode selection unit 11, an instruction decode execution unit A12, and an instruction decode execution unit B13.
また、命令群選択信号105は、命令群Aまたは、全ての命令群(命令群A及び命令群B)の選択をすることが出きる値をとるものとする。
The instruction
命令デコード実行部A12は、全ての命令群に対するデコード処理を行うブロックである。また、命令デコード実行部B13は、命令群Aに対するデコード処理を行うブロックである。従って、デコード処理に対する論理回路の遅延量は、命令デコード実行部A12に比べて、命令デコード実行部B13の方が少なくなる。 The instruction decode execution unit A12 is a block that performs decoding processing for all instruction groups. The instruction decode execution unit B13 is a block that performs a decoding process on the instruction group A. Therefore, the delay amount of the logic circuit for the decoding process is smaller in the instruction decode execution unit B13 than in the instruction decode execution unit A12.
命令デコード選択部11は、命令群選択信号105を入力とし、命令群選択信号105の値に従い、機械語101を命令デコード実行部A12と、命令デコード実行部B13のいずれか片方に出力するブロックである。
The instruction decode selection unit 11 is a block that receives the instruction
命令群選択信号105が、命令群Aに対するデコード処理を選択している場合、入力される機械語101は、命令デコード実行部B13でデコード処理される。デコードした結果得られる命令103が、命令群Aに含まれる場合、命令103を命令実行部3に供給する。
When the instruction
以上より、マイクロプロセッサの命令群Aのみを使用したい場合に、命令群選択信号105によって、命令群Aに対するデコード処理を選択することによって、命令デコード処理の回路遅延量を短くし、最大動作周波数を向上させることが出来る。
As described above, when only the instruction group A of the microprocessor is to be used, by selecting the decoding process for the instruction group A by the instruction
図4は、図2で示す命令デコード部5の典型的な別の一例である。以下、図4を用いて説明する。 FIG. 4 shows another typical example of the instruction decoding unit 5 shown in FIG. Hereinafter, a description will be given with reference to FIG.
この例では、命令デコード部5は、命令デコード選択部23と、命令デコード実行部A21と、命令デコード実行部B22とで構成される。
In this example, the instruction decode unit 5 includes an instruction
また、命令群選択信号105は、命令群Aまたは、全ての命令群(命令群A及び命令群B)の選択をすることが出きる値をとるものとする。
The instruction
命令デコード実行部A21は、入力される機械語101に対して、全ての命令群に対するデコード処理を行うブロックである。また、命令デコード実行部B22は、入力される機械語101に対して、命令群Aに対するデコード処理を行うブロックである。従って、入力される機械語101に対するデコード処理に対する論理回路の遅延量は、命令デコード実行部A21に比べて、命令デコード実行部B22の方が少なくなる。
The instruction decode execution unit A21 is a block that performs a decoding process on all instruction groups with respect to the
命令デコード選択部23は、命令群選択信号105と、命令デコード実行部A21がデコードした結果得られる命令120と、命令デコード実行部B22がデコードした結果得られる命令121を入力とし、命令群選択信号105の値に従い、命令120と命令121のいずれか片方を、命令実行部3に供給するブロックである。
The instruction
以上より、マイクロプロセッサの命令群Aのみを使用したい場合に、命令群選択信号105によって、命令群Aに対するデコード処理を選択することによって、命令デコード処理の回路遅延量を短くし、最大動作周波数を向上させることが出来る。
As described above, when only the instruction group A of the microprocessor is to be used, by selecting the decoding process for the instruction group A by the instruction
図5は、図2で示す命令デコード部5の典型的な一例である。以下、図5を用いて説明する。 FIG. 5 is a typical example of the instruction decoding unit 5 shown in FIG. Hereinafter, a description will be given with reference to FIG.
この例では、命令デコード部5は、プリ命令デコード部41と、サブ命令デコード部A42と、サブ命令デコード部B43とで構成される。 In this example, the instruction decoding unit 5 includes a pre-instruction decoding unit 41, a sub-instruction decoding unit A42, and a sub-instruction decoding unit B43.
また、命令群選択信号105は、命令群Aまたは、全ての命令群(命令群A及び命令群B)の選択をすることが出来る値をとるものとする。
The instruction
プリ命令デコード部41は、機械語101の一部領域に対してデコード処理を行い、その結果得られる命令が命令群Aに含まれる場合には、機械語または機械語の一部(例えば、機械語101からプリでコード処理で使用した領域を削除したもの)140を、サブ命令デコード部A42に供給し、それ以外の場合には、前記機械語または機械語の一部140を、サブ命令デコード部A43に供給するブロックである。
The pre-instruction decoding unit 41 performs a decoding process on a partial region of the
サブ命令デコード部A42は、命令群選択信号105が全ての命令群(命令群A及び命令群B)を選択している場合、前記機械語または機械語の一部140を入力とし、全ての命令群(命令群A及び命令群B)に対する命令デコード処理を行い、命令実行部3に対して、命令103を供給するブロックである。
When the instruction
サブ命令デコード部B43は、命令群選択信号105が命令群Aを選択している場合、前記機械語または機械語の一部140を入力とし、命令群Aに対する命令デコード処理を行い、命令実行部3に対して、命令103を供給するブロックである。
When the instruction
図3、図4、及び図5で示す実施例では、命令群Aと、全ての命令群のいずれか、すなわち、2種類の命令群に対する選択をしたが、N種類(nは正の数)の命令群に対する選択が出来る構成としても良い。 In the embodiment shown in FIG. 3, FIG. 4, and FIG. 5, the instruction group A and one of all instruction groups, that is, two types of instruction groups are selected, but N types (n is a positive number). It is good also as a structure which can select with respect to these instruction groups.
また、各命令群が有する命令の一部または全ては重複しても良い。 Further, some or all of the instructions included in each instruction group may overlap.
例えば、対応する命令を命令Ni(i=1、2、3・・・9)とし、命令群Aは命令Ni(i=1、2、3、4、5)、命令群Bは命令Ni(i=3、5、6、7、8、9)、命令群Cは命令Ni(i=5、6)で構成される場合を例に上げることが出来る。この場合、選択できる命令群の一例として、命令群Aまたは、命令群Bまたは、命令群Cがある。選択できる命令群の別の一例として、命令群Aまたは、命令群B及び命令郡Cがある。選択できる命令群の別の一例として、命令群A及び命令群Bまたは、命令群B及び命令郡Cがある。選択できる命令群の別の一例として、全ての命令群または、命令群Aまたは、命令群Cがある。 For example, the corresponding instruction is an instruction Ni (i = 1, 2, 3,... 9), the instruction group A is an instruction Ni (i = 1, 2, 3, 4, 5), and the instruction group B is an instruction Ni ( For example, i = 3, 5, 6, 7, 8, 9) and the instruction group C may be composed of instructions Ni (i = 5, 6). In this case, as an example of an instruction group that can be selected, there is an instruction group A, an instruction group B, or an instruction group C. Another example of the instruction group that can be selected is the instruction group A or the instruction group B and the instruction group C. As another example of the instruction group that can be selected, there are an instruction group A and an instruction group B, or an instruction group B and an instruction group C. As another example of the instruction group that can be selected, there are all the instruction groups, the instruction group A, and the instruction group C.
以上,添付図面を参照しながら本発明にかかる好適な実施形態について説明したが,本発明はかかる例に限定されないことは言うまでもない。当業者であれば,特許請求の範囲に記載された技術的思想の範疇内において,各種の変更例または修正例に想到し得ることは明らかであり,それらについても当然に本発明の技術的範囲に属するものと了解される。 As mentioned above, although preferred embodiment concerning this invention was described referring an accompanying drawing, it cannot be overemphasized that this invention is not limited to this example. It is obvious for those skilled in the art that various changes or modifications can be conceived within the scope of the technical idea described in the claims. It is understood that it belongs to.
例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、2つ以上の実施例を、その全部または一部において同時に採用する構成も可能である。 For example, the above-described embodiments have been described in detail for easy understanding of the present invention, and are not necessarily limited to those having all the configurations described. In addition, a configuration in which two or more embodiments are employed in whole or in part is also possible.
1 メモリ
2 命令フェッチ部
3 命令実行部
5 命令デコード部
105 命令群選択信号
DESCRIPTION OF
Claims (4)
前記命令デコード部が、外部設定値を入力とし、外部設定値によって、一部の命令をデコード対象から除外すること、または低速化させることを特徴とするマイクロプロセッサ。 An instruction fetch unit that reads an instruction from a memory and fetches the instruction, an instruction decode unit that decodes an instruction fetched by the instruction fetch unit, and an instruction execution unit that executes a process on the decoded instruction In the microprocessor
The microprocessor, wherein the instruction decoding unit receives an external set value and excludes some instructions from the decoding target or reduces the speed according to the external set value.
請求項1に記載のマイクロプロセッサ。 The instruction decode unit includes two or more instruction decode selection units that select an instruction group to be decoded according to the external setting value, and two or more instruction decode execution units that decode an instruction for the selected instruction group. The microprocessor according to claim 1.
請求項2に記載のマイクロプロセッサ。 The instruction decode unit has two or more instruction decode execution units that perform instruction decode for a predetermined instruction group, selects one of the instruction decode results of the instruction decode execution unit according to the external setting value, and the instruction The microprocessor according to claim 2, further comprising an instruction decode selection unit that outputs to the execution unit.
前記プリ命令デコード実行部が、前記外部設定値によって、前記サブ命令デコード実行部の一つにプリ命令デコードの結果を出力することを特徴とする
請求項2に記載のマイクロプロセッサ。 The instruction decode unit includes a pre-instruction decode execution unit that performs a decoding process on a part of an input instruction, and two or more sub-instruction decode execution units that perform a decoding process on the remaining instructions. ,
The microprocessor according to claim 2, wherein the pre-instruction decode execution unit outputs a pre-instruction decode result to one of the sub-instruction decode execution units according to the external setting value.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010017621A JP2011158930A (en) | 2010-01-29 | 2010-01-29 | Microprocessor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010017621A JP2011158930A (en) | 2010-01-29 | 2010-01-29 | Microprocessor |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011158930A true JP2011158930A (en) | 2011-08-18 |
Family
ID=44590858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010017621A Pending JP2011158930A (en) | 2010-01-29 | 2010-01-29 | Microprocessor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011158930A (en) |
-
2010
- 2010-01-29 JP JP2010017621A patent/JP2011158930A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101703743B1 (en) | Accelerated interlane vector reduction instructions | |
US10664281B2 (en) | Apparatuses and methods for dynamic asymmetric scaling of branch predictor tables | |
US10089075B2 (en) | Method and apparatus of instruction that merges and sorts smaller sorted vectors into larger sorted vector | |
KR20190115408A (en) | Hardware accelerators and methods for high-performance authenticated encryption | |
US20160179542A1 (en) | Instruction and logic to perform a fused single cycle increment-compare-jump | |
KR20170097018A (en) | Apparatus and method for vector broadcast and xorand logical instruction | |
KR101817459B1 (en) | Instruction for shifting bits left with pulling ones into less significant bits | |
CN106681695B (en) | Fetching branch target buffer in advance | |
US20230409732A1 (en) | Instruction execution that broadcasts and masks data values at different levels of granularity | |
KR102310793B1 (en) | Vector instruction to compute coordinate of next point in a z-order curve | |
US20180181398A1 (en) | Apparatus and methods of decomposing loops to improve performance and power efficiency | |
KR20170099873A (en) | Method and apparatus for performing a vector bit shuffle | |
KR20170097011A (en) | Method and apparatus for performing a vector bit reversal and crossing | |
KR20170099869A (en) | Method and apparatus for performing a vector permute with an index and an immediate | |
KR20170099855A (en) | Method and apparatus for variably expanding between mask and vector registers | |
KR20130064797A (en) | Method and apparatus for universal logical operations | |
US20190138305A1 (en) | Hardware apparatuses and methods relating to elemental register accesses | |
KR20170097618A (en) | Method and apparatus for performing big-integer arithmetic operations | |
KR20170097621A (en) | Method and apparatus for performing conflict detection | |
KR20170097015A (en) | Method and apparatus for expanding a mask to a vector of mask values | |
CN106775587B (en) | Method for executing computer instructions and device using same | |
KR20170059478A (en) | Machine level instructions to compute a 4d z-curve index from 4d coordinates | |
KR20170059477A (en) | Machine level instructions to compute a 3d z-curve index from 3d coordinates | |
JP2007200180A (en) | Processor system | |
EP4020114A1 (en) | Time and frequency domain side-channel leakage suppression using integrated voltage regulator cascaded with runtime crypto arithmetic transformations |