JP3619343B2 - Data processing apparatus and method - Google Patents
Data processing apparatus and method Download PDFInfo
- Publication number
- JP3619343B2 JP3619343B2 JP01830897A JP1830897A JP3619343B2 JP 3619343 B2 JP3619343 B2 JP 3619343B2 JP 01830897 A JP01830897 A JP 01830897A JP 1830897 A JP1830897 A JP 1830897A JP 3619343 B2 JP3619343 B2 JP 3619343B2
- Authority
- JP
- Japan
- Prior art keywords
- field
- shift
- data processing
- operations
- arithmetic logic
- 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 - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 10
- 238000010977 unit operation Methods 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 8
- 238000003672 processing method Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- 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/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- 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/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
Description
【0001】
【発明の属する技術分野】
本発明はデータ処理の分野に関するものである。特に本発明はデータ処理システム内で命令の実行に許容される処理サイクルの数を制御することに関するものである。
【0002】
【従来の技術】
異なるデータ処理命令語は、次の命令を始めることができる前に実行するのに要する処理サイクル(クロックサイクル)の数が異なることが、データ処理システムの分野では知られている。システムが実行するのに要する処理量が極めて少ない命令語もあれば(たとえばスワップレジスタデータ命令)、完了するのに非常に多くの処理サイクルを要する命令語もある(たとえば多重ロード命令)。
【0003】
シングルタイプの命令の場合、いくつかの特定の命令は他の命令よりも高速で実行することが可能であることも知られている。たとえば、命令の中の定数により直接指定される少ないビット数を動く単純なシフトは、レジスタから読出された値により指定される多くのビット数を通る複雑な演算シフトよりも少ない処理数で実行することができる。
【0004】
コンピュータに関するもうひとつの傾向は、プログラム命令語に含まれるビット数が増えていることである。8ビットまたは16ビットの命令語から32ビットまたは64ビットの命令語へと動いてきた。このような大きな命令に関して命令セットのスペースを効率よく使うために、アドバンストRISCマシーンズ社(Advanced RISC Machines Limited)製のARM6のようなマイクロプロセッサにおいて、2個以上のフィールドを有するプログラム命令語を含み、各フィールドは特定の型の演算論理装置オペレーション、またはシフトオペレーションを指定することが提案された。このようにして、符号化密度を改良することができる。この技術は特に簡略命令セットコンピュータに適しており、このコンピュータでは、多数のもっと複雑で特化された命令を提供するために、多くの命令セットビットスペースを使うという代替案は不適当なのである。
【0005】
2個以上のフィールドを有し、各フィールドがひとつの命令タイプを指定するというプログラム命令語に関しては、異なるタイプの命令が共に、たとえばシフタとか加算器とかのプロセッサ内の1個しかないハードウエア資源を使いたがるという別の問題が生じる。そのため、ハードウエア資源に対して衝突する要求をすべて満足させるために、プログラム命令語を実行するのに許容されなければならない処理サイクルの数が多くなる。このことは実行をもっと高速にするという処理システムの絶えざる狙いに逆行することである。
【0006】
【発明が解決すべき課題】
本発明の課題はデータ処理システムにおいて、命令を実行するのに許容される処理サイクルの数を制御することにより、実行の高速化を図ることである。
【0007】
【課題を解決するための手段】
一側面から見ると、本発明は、複数個の演算論理装置オペレーションのうちのひとつを指定する第1のフィールドと、該第1のフィールドからは独立していて複数個のシフトオペレーションのうちのひとつを指定する第2のフィールドとを有するデータ処理命令語に応答してデータを処理する装置を提供する。
該データ処理装置は、
該複数個の演算論理オペレーションのうちどれが該第1のフィールドにより指定されるかにより決まる処理サイクル数で、該第1のフィールドにより指定された演算論理装置オペレーションを実行する演算論理装置と、
該複数個のシフトオペレーションのうちどれが該第2のフィールドにより指定されるかにより決まる処理サイクル数で、該第2のフィールドにより指定されたシフトオペレーションを実行するシフタと、
次の処理命令語の実行を始める前に、該データ処理命令語の実行に許される処理サイクルの数を、該第1のフィールドと該第2のフィールドの両方に依存して変える命令デコーダと、
を含む。
【0008】
本発明では、演算論理装置オペレーションとシフトオペレーションとを独立に指定する複数のフィールドをデータ処理命令語が有するデータ処理システムにおいて、たとえこれらのオペレーションが共通のハードウエア資源を共有したとしても、両方のフィールドに依存して許容される処理サイクル数を選択することができる。このように、演算論理装置オペレーションとシフトオペレーションの組合せの最悪の場合のみ多くの処理数が許されるのを必要とするが、もっと一般的で単純な組合せの場合には、少ない処理数を使うことが許される。
【0009】
上述の技術は、演算論理オペレーションとシフトオペレーションとが全く独立しているが、ある組合せが他の組合せより長い作動時間を要するという環境で使うことができよう。しかしながら本発明は、演算論理オペレーションとシフトオペレーションとの1個または複数個の組合せに対して、前記演算論理装置と前記シフタとが前記演算論理オペレーションと前記シフトオペレーションとを順次実行するという実施例において、特に有用である。
【0010】
そのデータ処理命令語が必要とする処理サイクルの合計数を増やす必要があるかどうかを決定するとき、演算論理オペレーションとシフトオペレーションを順次実行すると、各々は他方が完了するのに要する時間に、より敏感になる。
【0011】
シフトオペレーションに速いのと遅いのとの違いがあるのは、シフトオペレーションが以下の一方であると考えてよい。
シフト量があらかじめ決められたレベル以上であるフルシフトオペレーションと、
シフト量があらかじめ決められたレベル未満である単純シフトオペレーション。
【0012】
あらかじめ決められたレベルよりもシフト量が少いシフトオペレーションは、他のオペレーションと共有されない自分専用のシフタにより処理することができる。このようにしてシフト量の少ないものはもっと高速で処理することができる。自分専用のシフタにより処理すべく選択されるシフトオペレーションは、典型的なデータ処理オペレーションの中で比較的一般的であるが、比較的簡単に解読して実行できるのが選ばれる。
【0013】
演算論理装置オペレーションには多くの異なる形式がある。これらのオペレーションを分けるひとつの方法として、演算論理装置オペレーションは以下のうちの一方であるとする。
1個または複数のオペランドによる論理オペレーションと、
1個または複数のオペランドによる算術オペレーション。
典型的には、算術オペレーションの方が論理オペレーションよりかなり複雑なので、処理に要する時間が長い(たとえば、一連のビット値に沿って桁上げを処理することが必要な場合)。
【0014】
演算論理装置オペレーションとシフトオペレーションとを上述のように分けることが有効な例として、
フルシフトオペレーションと論理オペレーション、または単紙シフトオペレーションと算術オペレーションを含むデータ処理命令に応答して、次の処理命令語の実行を始める前に前記命令デコーダはX処理サイクルを許容する場合と、
フルシフトオペレーションと算術オペレーションとを含むデータ処理命令に応答して、次の処理命令語の実行を始める前に、前記命令デコーダはXより大きいY処理を許容する場合と、
がある。
YがXより大きいという条件で、XとYの値は何種類もの値を取り得ることが理解されよう。しかしながら、典型的な高度に最適化された処理装置(たとえばRISCプロセッサ)では、Y=2でX=1である。
【0015】
もうひとつの側面として本発明は、複数個の演算論理装置オペレーションのうちのひとつを指定する第1のフィールドと、該第1のフィールドからは独立していて複数個のシフトオペレーションのうちのひとつを指定する第2のフィールドとを有するデータ処理命令語に応答してデータを処理する方法であって、以下のステップを含むものを提供する。
該複数個の演算論理オペレーションのうちどれが該第1のフィールドにより指定されるかにより決まるサイクル数で、該第1のフィールドにより指定された演算論理装置オペレーションを実行するステップと、
該複数個のシフトオペレーションのうちどれが該第2のフィールドにより指定されるかにより決まる処理サイクル数で、該第2のフィールドにより指定されたシフトオペレーションを実行するステップと、
次の処理命令語の実行を始める前に、該データ処理命令語の実行に許される処理サイクル数を、該第1のフィールドと該第2のフィールドの両方に依存して変えるステップ。
【0016】
【発明の実施の形態】
次に、本発明について図面を参照しながら説明する。
図1はマイクロプロセッサ回路2を示す。マイクロプロセッサ回路2には、アドレスバス(図示せず)上に現在現われているアドレスを記憶するためのアドレスレジスタ4が含まれている。アドレスインクレメンタ回路6は、アドレスレジスタ4の中に記憶されるアドレスを高速で増分する役目を果たす。このことはメモリロケーションなどに高速で逐次アクセスを行うために望ましいことである。命令パイプラインと読出しデータレジスタのユニット8は、マイクロプロセッサ回路2に加えるためにメモリから読出したデータ処理命令語を記憶する役を果たす。命令パイプライン8の上部にあるデータ処理命令語は、命令デコーダと制御論理装置のユニット10に加えられ、ここで少なくとも部分的に解読される。この解読は、そのデータ処理命令語を完全に処理するために、マイクロプロセッサ回路2の中の他の要素を命令デコーダと制御論理装置のユニット10が適切に駆動することができる程度に行われる。レジスタバンク12は処理すべきデータ語を記憶するために設けられている。所定の機能を果たすために最適化されている特別の処理ユニットとして、マイクロプロセッサ回路2の中に、乗算器14、バレルシフタ16および演算論理装置18が含まれている。これらの機能ユニットはマイクロプロセッサ回路2の中で必要とされる処理操作の大部分を扱う。デバッグ回路20は、開発中にマイクロプロセッサ回路を組込んだシステムのハードウェアのデバッグを支援するためのものである。書込みデータレジスタバンク22はマイクロプロセッサ回路2から出力されるデータ値をバッファする役を果たす。
【0017】
図2は複数個の演算論理装置のオペレーションのうちのひとつを指定する第1のフィールド32と、複数個のシフトオペレーションのうちのひとつを指定する第2のフィールド28とを有するデータ処理命令語を示す。この命令の例はアドバンストRISCマシンズ社(Advanced RISC MachinesLimited)製のARM6プロセッサの命令セットから取ったものである。以下、このデータ処理命令語が解読されて適用されるやり方に修正を加えることにより、本発明のオペレーションの一例を説明する。
【0018】
データ処理命令語の中で31ビットから28ビットまでは条件フィールド24が占めている。この条件フィールド24はデータ処理命令語全体の条件付実行を可能にするものであって、それはマイクロプロセッサ回路2の中の状態フラグが条件フィールド24の中に特定されている条件に整合しているか否かに依る。
【0019】
ビット27と26はこの特別のデータ処理命令語の場合、常に共にゼロである。
ビット25はIビットと呼ばれるもので、データ処理命令語の最下位の12ビット(すなわちビット11から0)が解読される方法、すなわち即時の値を使うのか、それともレジスタ内に記憶されている値を使うのかを指定する。
【0020】
第1のフィールド32(ビット24から21)は、演算論理装置18とマイクロプロセッサ回路2内の他の要素との組によって実行される複数個の演算論理装置のオペレーションのうちの1個を選択するオペレーションコード(オペコード)を指定する。可能な演算論理装置オペレーションは16種類あって、この形式を図2に示す。16個の演算論理装置オペレーションのうち、8個は算術オペレーション(SUB、RSB、ADD、ADC、SBC、RSC、CMP、CMN)であり、8個は論理オペレーション(AND、EOR、TST、TEQ、ORR、MOV、BIC、MVN)である。
【0021】
ビット20はSビット33と呼ばれ、条件フィールド24が応答する条件フラグが、現在のデータ処理命令語により変えられるか否かを指示する。
次の4ビット34(ビット19から16まで)は、このデータ処理命令語の第1のオペランドを提供するレジスタバンク12の中のレジスタの数を指定する。
次の4ビット36(ビット15から12まで)は、データ処理命令語の結果を書込むためのレジスタバンク12内のレジスタを指定する。
【0022】
最後の12ビット28(ビット11から0まで)は実行すべきシフトオペレーションを指定している。前述のように、最下位の12ビット28の解読方法はIビット30に依存する。もしI=0ならば、最下位の4ビット(ビット3から0まで)はレジスタバンク12内のどのレジスタから値を取ってきて、それをシフトして第2のオペランドをつくるかを指定する。最上位の8ビット40(ビット11から4まで)は実行すべきシフトの性質と量とを指定する。シフトにはフィールド40の中のビットに依存して、左論理シフト、右論理シフト、算術右シフトまたは右回転シフトがある。フィールド40はまた実行すべきシフト量の値を保持するレジスタバンク12内のレジスタを指定するか、またはこのシフト量を即時値として直接明記するかのいずれかを行う。I=1のとき、最下位の8ビット(ビット7から0まで)は実行すべきシフト量を表わす即時値を明記する。このシフトは残りの4ビット(ビット11から8まで)によって指定される。
【0023】
この実施例では、0、1、2、3ビットのいずれかの値だけ位置をシフトする左論理シフトは、専用のシフタにより敏速に実行される単純シフトとして扱われる。残りのシフトはすべて実行時間がもっと長くかかるフルシフトとして扱われる。
【0024】
図3は命令デコーダと制御論理装置10が、演算論理装置オペレーションを指定する第1のフィールド32と、シフトオペレーションを指定する第2のフィールド28とをどのような方法で解読するかを示す。これらのフィールドの関連ビットはそれぞれの組合せ論理ブロック42、44に供給され、これらのブロックは論理オペレーションと算術オペレーションのいずれが指定されているのかということを示す出力と、単純シフトとフルシフトのいずれが指定されているのかを示す出力を供給する。これらの2個の出力はアンドゲート46に供給され、ゲート46はもしフルシフトと算術オペレーションとが共に指定されていれば、1という値を出力する。その他の組合せの場合はすべてアンドゲート46の出力は0である。アンドゲート46の出力は命令パイプラインに沿って命令の進行を制御する、すなわち次の命令が命令デコードと制御論理装置10に加えられる前に、現在の命令を実行するのに許される時間を制御するのに使われる。
【0025】
表1はそれぞれのサイクルカウントを生ずる演算オペレーションとシフトオペレーションの各種組合せを示す。
【0026】
【表1】
【0027】
簡略命令セット計算回路のような高度に最適化されたマイクロプロセッサ回路2では、ほとんどすべての命令が1サイクル内で実行可能である。算術オペレーションとフルシフトとが同時に指定される最悪の場合だけは、マイクロプロセッサが完了するのに2クロックサイクルを許容しなければならない。
【図面の簡単な説明】
【図1】マイクロプロセッサ内の機能的要素を示す図。
【図2】演算論理装置オペレーションとシフトオペレーションとを指定する独立のフィールドを有する、データ処理命令語の形式と内容を示す図。
【図3】データ処理命令語の実行を完了するのに許される処理サイクル数を決めるために、図2の命令の解読を示す図。
【符号の説明】
2 マイクロプロセッサ
18 演算論理装置
28 第2のフィールド
32 第1のフィールド[0001]
BACKGROUND OF THE INVENTION
The present invention relates to the field of data processing. In particular, the present invention relates to controlling the number of processing cycles allowed for instruction execution within a data processing system.
[0002]
[Prior art]
It is known in the field of data processing systems that different data processing instruction words differ in the number of processing cycles (clock cycles) required to execute before the next instruction can begin. Some instruction words require very little processing to be executed by the system (eg, swap register data instructions), while other instruction words require very many processing cycles to complete (eg, multiple load instructions).
[0003]
In the case of single type instructions, it is also known that some specific instructions can be executed faster than other instructions. For example, a simple shift that moves a small number of bits specified directly by a constant in an instruction performs less processing than a complex arithmetic shift through many bits specified by a value read from a register be able to.
[0004]
Another trend for computers is that the number of bits contained in program instructions is increasing. It has moved from 8-bit or 16-bit instruction words to 32-bit or 64-bit instruction words. In order to efficiently use the instruction set space for such large instructions, a microprocessor such as ARM6 from Advanced RISC Machines Limited includes a program instruction word having two or more fields, Each field has been proposed to specify a particular type of arithmetic logic unit operation, or shift operation. In this way, the coding density can be improved. This technique is particularly suitable for a simplified instruction set computer, where an alternative of using a large instruction set bit space to provide a large number of more complex and specialized instructions is inappropriate.
[0005]
With respect to program instruction words having two or more fields, each field specifying one instruction type, both different types of instructions, for example, only one hardware resource in a processor such as a shifter or an adder. Another problem is that you want to use. This increases the number of processing cycles that must be allowed to execute a program instruction word in order to satisfy all conflicting requests for hardware resources. This goes against the constant aim of processing systems to make execution faster.
[0006]
[Problems to be Solved by the Invention]
An object of the present invention is to speed up execution in a data processing system by controlling the number of processing cycles allowed to execute an instruction.
[0007]
[Means for Solving the Problems]
Viewed from one aspect, the present invention provides a first field designating one of a plurality of arithmetic logic unit operations and one of a plurality of shift operations independent of the first field. And an apparatus for processing data in response to a data processing instruction having a second field designating.
The data processing device
An arithmetic logic unit that performs the arithmetic logic unit operation specified by the first field at a number of processing cycles determined by which of the plurality of arithmetic logic operations is specified by the first field;
A shifter that performs the shift operation specified by the second field at a number of processing cycles determined by which of the plurality of shift operations is specified by the second field;
An instruction decoder that changes the number of processing cycles allowed to execute the data processing instruction word depending on both the first field and the second field before starting execution of the next processing instruction word;
including.
[0008]
In the present invention, in a data processing system in which a data processing instruction word has a plurality of fields that independently designate an arithmetic logic unit operation and a shift operation, even if these operations share a common hardware resource, Depending on the field, the number of processing cycles allowed can be selected. Thus, only the worst case of the combination of arithmetic logic unit operation and shift operation needs to allow a large number of processes, but for a more general and simple combination, use a small number of processes. Is allowed.
[0009]
The technique described above could be used in an environment where arithmetic logic operations and shift operations are completely independent, but some combinations require longer operating times than others. However, the present invention is an embodiment in which the arithmetic logic unit and the shifter sequentially execute the arithmetic logic operation and the shift operation for one or a plurality of combinations of arithmetic logic operations and shift operations. Is particularly useful.
[0010]
When deciding whether the total number of processing cycles required by the data processing instruction needs to be increased, performing arithmetic logic operations and shift operations sequentially, each increases the time it takes for the other to complete. Become sensitive.
[0011]
The difference between fast and slow shift operations can be considered that the shift operation is one of the following:
A full shift operation in which the shift amount is equal to or higher than a predetermined level;
A simple shift operation where the shift amount is less than a predetermined level.
[0012]
A shift operation with a shift amount smaller than a predetermined level can be processed by its own shifter that is not shared with other operations. In this way, a small shift amount can be processed at a higher speed. The shift operation selected for processing by its own shifter is relatively common among typical data processing operations, but is chosen to be relatively easy to decode and execute.
[0013]
There are many different forms of arithmetic logic unit operations. As one way of separating these operations, the arithmetic logic unit operation is one of the following:
Logical operation with one or more operands;
Arithmetic operations with one or more operands.
Typically, arithmetic operations are much more complex than logical operations, so processing takes longer (eg, when it is necessary to process carry along a series of bit values).
[0014]
As an effective example of dividing arithmetic logic unit operations and shift operations as described above,
In response to a data processing instruction including a full shift operation and a logical operation, or a single paper shift operation and an arithmetic operation, the instruction decoder allows X processing cycles before starting execution of the next processing instruction word;
In response to a data processing instruction including a full shift operation and an arithmetic operation, the instruction decoder allows Y processing greater than X before beginning execution of the next processing instruction word;
There is.
It will be understood that the values of X and Y can take a number of values, provided that Y is greater than X. However, in a typical highly optimized processor (eg, a RISC processor), Y = 2 and X = 1.
[0015]
In another aspect, the present invention provides a first field designating one of a plurality of arithmetic logic unit operations, and one of a plurality of shift operations independent of the first field. A method of processing data in response to a data processing instruction having a second field to specify, comprising the following steps:
Performing the arithmetic logic unit operation specified by the first field with a number of cycles determined by which of the plurality of arithmetic logic operations is specified by the first field;
Performing the shift operation specified by the second field with a number of processing cycles determined by which of the plurality of shift operations is specified by the second field;
Changing the number of processing cycles allowed to execute the data processing instruction depending on both the first field and the second field before starting execution of the next processing instruction.
[0016]
DETAILED DESCRIPTION OF THE INVENTION
Next, the present invention will be described with reference to the drawings.
FIG. 1 shows a
[0017]
FIG. 2 shows a data processing instruction word having a
[0018]
The
[0019]
[0020]
The first field 32 (
[0021]
Bit 20 is called
The next 4 bits 34 (bits 19 to 16) specify the number of registers in the
The next 4 bits 36 (
[0022]
The last 12 bits 28 (bits 11 to 0) specify the shift operation to be performed. As described above, the method of decoding the least significant 12
[0023]
In this embodiment, a left logical shift that shifts the position by any one of 0, 1, 2, and 3 bits is treated as a simple shift that is quickly executed by a dedicated shifter. All remaining shifts are treated as full shifts that take longer to execute.
[0024]
FIG. 3 shows how the instruction decoder and control
[0025]
Table 1 shows the various combinations of arithmetic and shift operations that produce each cycle count.
[0026]
[Table 1]
[0027]
In a highly optimized
[Brief description of the drawings]
FIG. 1 illustrates functional elements within a microprocessor.
FIG. 2 is a diagram showing the format and contents of a data processing instruction word having independent fields that specify an arithmetic logic unit operation and a shift operation.
FIG. 3 is a diagram illustrating the decoding of the instruction of FIG. 2 to determine the number of processing cycles allowed to complete execution of the data processing instruction word.
[Explanation of symbols]
2
Claims (7)
該複数個の演算論理オペレーションのうちどれか該第1のフィールドにより指定されるかにより決まる処理サイクル数で、該第1のフィールドにより指定された演算論理装置オペレーションを実行する演算論理装置と、
該複数個のシフトオペレーションのうちどれが該第2のフィールドにより指定されるかにより決まる処理サイクル数で、該第2のフィールドにより指定されたシフトオペレーションを実行するシフタと、
次の処理命令語の実行を始める前に、該データ処理命令語の実行に許される処理サイクルの数を、該第1のフィールドと該第2のフィールドの両方に依存して変える命令デコーダと、
を含むデータ処理装置。A first field designating one of the plurality of arithmetic logic unit operations; and a second field designating one of the plurality of shift operations independent of the first field. A device for processing data in response to a data processing command,
An arithmetic logic unit that performs the arithmetic logic unit operation specified by the first field at a number of processing cycles determined by which of the plurality of arithmetic logic operations is specified by the first field;
A shifter that performs the shift operation specified by the second field at a number of processing cycles determined by which of the plurality of shift operations is specified by the second field;
An instruction decoder that changes the number of processing cycles allowed to execute the data processing instruction word depending on both the first field and the second field before starting execution of the next processing instruction word;
Including a data processing apparatus.
シフト量があらかじめ決められたレベル以上であるフルシフトオペレーションと、
シフト量があらかじめ決められたレベル未満である単純シフトオペレーションと、
のうちの一方である、データ処理装置。The apparatus according to claim 1 or 2, wherein the shift operation includes:
A full shift operation in which the shift amount is equal to or higher than a predetermined level;
A simple shift operation in which the shift amount is less than a predetermined level;
A data processing device which is one of the above.
1個または複数のオペランドによる論理オペレーションと、
1個または複数のオペランドによる算術オペレーションと、
のうちの一方である、データ処理装置。4. The apparatus of claim 1, 2, 3 wherein the arithmetic logic unit operation is:
Logical operation with one or more operands;
An arithmetic operation with one or more operands;
A data processing device which is one of the above.
フルシフトオペレーションと論理オペレーション、または単純シフトオペレーションと算術オペレーションを含むデータ処理命令に応答して、次の処理命令語の実行を始める前に、前記命令デコーダはX処理サイクルを許容することと、
フルシフトオペレーションと算術オペレーションとを含むデータ処理命令に応答して、次の処理命令語の実行を始める前に、前記命令デコーダはXより大きいY処理を許容することと、
を含む、データ処理装置。The apparatus according to claims 3 and 4,
In response to a data processing instruction including a full shift operation and a logical operation, or a simple shift operation and an arithmetic operation, the instruction decoder allows X processing cycles before beginning execution of the next processing instruction word;
In response to a data processing instruction including a full shift operation and an arithmetic operation, the instruction decoder allows Y processing greater than X before starting execution of the next processing instruction word;
Including a data processing apparatus.
該複数個の演算論理オペレーションのうちどれが該第1のフィールドにより指定されるかにより決まる処理サイクル数で、該第1のフィールドにより指定された演算論理装置オペレーションを実行するステップと、
該複数個のシフトオペレーションのうちどれが該第2のフィールドにより指定されるかにより決まる処理サイクル数で、該第2のフィールドにより指定されたシフトオペレーションを実行するステップと、
次の処理命令語の実行を始める前に、該データ処理命令語の実行に許される処理サイクル数を、該第1のフィールドと該第2のフィールドの両方に依存して変えるステップと、を含む、データ処理方法。A first field designating one of the plurality of arithmetic logic unit operations; and a second field designating one of the plurality of shift operations independent of the first field. A method of processing data in response to a data processing instruction,
Performing the arithmetic logic unit operation specified by the first field with a number of processing cycles determined by which of the plurality of arithmetic logic operations is specified by the first field;
Performing the shift operation specified by the second field with a number of processing cycles determined by which of the plurality of shift operations is specified by the second field;
Changing the number of processing cycles allowed to execute the data processing instruction depending on both the first field and the second field before starting execution of the next processing instruction. , Data processing method.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9602024A GB2309803B (en) | 1996-02-01 | 1996-02-01 | Processing cycle control in a data processing apparatus |
GB96020243 | 1996-02-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09223009A JPH09223009A (en) | 1997-08-26 |
JP3619343B2 true JP3619343B2 (en) | 2005-02-09 |
Family
ID=10787933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP01830897A Expired - Fee Related JP3619343B2 (en) | 1996-02-01 | 1997-01-31 | Data processing apparatus and method |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP3619343B2 (en) |
GB (1) | GB2309803B (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6862563B1 (en) | 1998-10-14 | 2005-03-01 | Arc International | Method and apparatus for managing the configuration and functionality of a semiconductor design |
AU4848100A (en) * | 1999-05-13 | 2000-12-05 | Arc International U.S. Holdings Inc. | Method and apparatus for loose register encoding within a pipelined processor |
AU2001243463A1 (en) | 2000-03-10 | 2001-09-24 | Arc International Plc | Memory interface and method of interfacing between functional entities |
US8127113B1 (en) | 2006-12-01 | 2012-02-28 | Synopsys, Inc. | Generating hardware accelerators and processor offloads |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3036849C1 (en) * | 1980-09-30 | 1981-11-26 | Computer Gesellschaft Konstanz Mbh, 7750 Konstanz | Circuit arrangement for controlling microinstructions with different execution times |
-
1996
- 1996-02-01 GB GB9602024A patent/GB2309803B/en not_active Expired - Fee Related
-
1997
- 1997-01-31 JP JP01830897A patent/JP3619343B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
GB2309803B (en) | 2000-01-26 |
GB2309803A (en) | 1997-08-06 |
JPH09223009A (en) | 1997-08-26 |
GB9602024D0 (en) | 1996-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7366874B2 (en) | Apparatus and method for dispatching very long instruction word having variable length | |
EP1629375B1 (en) | Apparatus for instructions predication within a data processing system and method thereof | |
US4740893A (en) | Method for reducing the time for switching between programs | |
US7127593B2 (en) | Conditional execution with multiple destination stores | |
KR102413832B1 (en) | vector multiply add instruction | |
KR100208889B1 (en) | Parallel processing device amd parallel processing method | |
US20080082800A1 (en) | Data processor for modifying and executing operation of instruction code | |
JP2006079652A (en) | Data processing by multiple instruction sets | |
US6611909B1 (en) | Method and apparatus for dynamically translating program instructions to microcode instructions | |
JPH06230969A (en) | Processor | |
US7546442B1 (en) | Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions | |
JPS62197830A (en) | Data processing system | |
JPH0895804A (en) | Central processor | |
US5761467A (en) | System for committing execution results when branch conditions coincide with predetermined commit conditions specified in the instruction field | |
US5938759A (en) | Processor instruction control mechanism capable of decoding register instructions and immediate instructions with simple configuration | |
JPH01137331A (en) | Control word branching | |
EP3329363B1 (en) | Vector arithmethic instruction | |
US20040255095A1 (en) | Data access program instruction encoding | |
JP3619343B2 (en) | Data processing apparatus and method | |
US4812970A (en) | Microprogram control system | |
KR100188374B1 (en) | Central processing unit and an arithmetic operation processing unit | |
JP7377208B2 (en) | Data processing | |
JPS6125166B2 (en) | ||
JP2006302324A (en) | Data processor | |
JPH0876996A (en) | Programmable controller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041018 |
|
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: 20041105 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041112 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081119 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081119 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091119 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091119 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101119 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111119 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111119 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121119 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121119 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131119 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |