[go: up one dir, main page]

JPH09223009A - Device and method for processing data - Google Patents

Device and method for processing data

Info

Publication number
JPH09223009A
JPH09223009A JP9018308A JP1830897A JPH09223009A JP H09223009 A JPH09223009 A JP H09223009A JP 9018308 A JP9018308 A JP 9018308A JP 1830897 A JP1830897 A JP 1830897A JP H09223009 A JPH09223009 A JP H09223009A
Authority
JP
Japan
Prior art keywords
field
shift
operations
data processing
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.)
Granted
Application number
JP9018308A
Other languages
Japanese (ja)
Other versions
JP3619343B2 (en
Inventor
Allen Baum
バウム アレン
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.)
ARM Ltd
Original Assignee
Advanced Risc Machines Ltd
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 Advanced Risc Machines Ltd filed Critical Advanced Risc Machines Ltd
Publication of JPH09223009A publication Critical patent/JPH09223009A/en
Application granted granted Critical
Publication of JP3619343B2 publication Critical patent/JP3619343B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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 or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions

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)

Abstract

PROBLEM TO BE SOLVED: To optimize the number of processing cycles allowable for executing an instruction at a data processing system. SOLUTION: The data processing system utilizes a data processing instruction word having a 1st field 32 for designating one operation to be executed out of plural arithmetic and logic unit operations and a 2nd field 28 for designating one operation to be executed out of plural shift operations. Both the fields are independent of each other. While depending on the specified combination of both these fields in response to both the fields, an instruction decoder changes the number of processing cycles allowable for each data processing instruction word.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明はデータ処理の分野に
関するものである。特に本発明はデータ処理システム内
で命令の実行に許容される処理サイクルの数を制御する
ことに関するものである。
FIELD 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 permitted to execute instructions within a data processing system.

【0002】[0002]

【従来の技術】異なるデータ処理命令語は、次の命令を
始めることができる前に実行するのに要する処理サイク
ル(クロックサイクル)の数が異なることが、データ処
理システムの分野では知られている。システムが実行す
るのに要する処理量が極めて少ない命令語もあれば(た
とえばスワップレジスタデータ命令)、完了するのに非
常に多くの処理サイクルを要する命令語もある(たとえ
ば多重ロード命令)。
It is known in the field of data processing systems that different data processing instruction words require different numbers of processing cycles (clock cycles) 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 others 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 execute faster than others. For example, a simple shift that moves a small number of bits directly specified by a constant in an instruction performs with less work than a complex arithmetic shift through a large number of bits specified by a value read from a register. be able to.

【0004】コンピュータに関するもうひとつの傾向
は、プログラム命令語に含まれるビット数が増えている
ことである。8ビットまたは16ビットの命令語から3
2ビットまたは64ビットの命令語へと動いてきた。こ
のような大きな命令に関して命令セットのスペースを効
率よく使うために、アドバンストRISCマシーンズ社
(Advanced RISC Machines L
imited)製のARM6のようなマイクロプロセッ
サにおいて、2個以上のフィールドを有するプログラム
命令語を含み、各フィールドは特定の型の演算論理装置
オペレーション、またはシフトオペレーションを指定す
ることが提案された。このようにして、符号化密度を改
良することができる。この技術は特に簡略命令セットコ
ンピュータに適しており、このコンピュータでは、多数
のもっと複雑で特化された命令を提供するために、多く
の命令セットビットスペースを使うという代替案は不適
当なのである。
Another tendency regarding computers is that the number of bits included in program command words is increasing. 3 from 8-bit or 16-bit instruction word
Moved to 2-bit or 64-bit instruction words. In order to efficiently use the space of the instruction set for such a large instruction, Advanced RISC Machines L is used.
It has been proposed in a microprocessor such as ARM6 manufactured by Immited) to include a program instruction word having two or more fields, each field specifying a particular type of arithmetic logic unit operation, or a shift operation. In this way, the coding density can be improved. This technique is particularly well suited for short instruction set computers, where the alternative of using many instruction set bit spaces to provide a large number of more complex and specialized instructions is inadequate.

【0005】2個以上のフィールドを有し、各フィール
ドがひとつの命令タイプを指定するというプログラム命
令語に関しては、異なるタイプの命令が共に、たとえば
シフタとか加算器とかのプロセッサ内の1個しかないハ
ードウエア資源を使いたがるという別の問題が生じる。
そのため、ハードウエア資源に対して衝突する要求をす
べて満足させるために、プログラム命令語を実行するの
に許容されなければならない処理サイクルの数が多くな
る。このことは実行をもっと高速にするという処理シス
テムの絶えざる狙いに逆行することである。
With respect to the program instruction word having two or more fields, each field specifying one instruction type, there is only one instruction of a different type, for example, a shifter or an adder in the processor. Another problem arises in the desire to use hardware resources.
As a result, the number of processing cycles that must be allowed to execute a program instruction word in order to satisfy all conflicting requirements for hardware resources increases. This runs counter to the constant aim of processing systems to make them run faster.

【0006】[0006]

【発明が解決すべき課題】本発明の課題はデータ処理シ
ステムにおいて、命令を実行するのに許容される処理サ
イクルの数を制御することにより、実行の高速化を図る
ことである。
SUMMARY OF THE INVENTION It is an object of the present invention to speed up execution in a data processing system by controlling the number of processing cycles allowed to execute an instruction.

【0007】[0007]

【課題を解決するための手段】一側面から見ると、本発
明は、複数個の演算論理装置オペレーションのうちのひ
とつを指定する第1のフィールドと、該第1のフィール
ドからは独立していて複数個のシフトオペレーションの
うちのひとつを指定する第2のフィールドとを有するデ
ータ処理命令語に応答してデータを処理する装置を提供
する。該データ処理装置は、該複数個の演算論理オペレ
ーションのうちどれが該第1のフィールドにより指定さ
れるかにより決まる処理サイクル数で、該第1のフィー
ルドにより指定された演算論理装置オペレーションを実
行する演算論理装置と、該複数個のシフトオペレーショ
ンのうちどれが該第2のフィールドにより指定されるか
により決まる処理サイクル数で、該第2のフィールドに
より指定されたシフトオペレーションを実行するシフタ
と、次の処理命令語の実行を始める前に、該データ処理
命令語の実行に許される処理サイクルの数を、該第1の
フィールドと該第2のフィールドの両方に依存して変え
る命令デコーダと、を含む。
SUMMARY OF THE INVENTION In one aspect, the present invention comprises a first field that specifies one of a plurality of arithmetic logic unit operations and is independent of the first field. An apparatus is provided for processing data in response to a data processing command having a second field that specifies one of a plurality of shift operations. The data processing device executes the arithmetic logic unit operation designated by the first field in a number of processing cycles determined by which of the plurality of arithmetic logic operations is designated by the first field. An arithmetic logic unit, a shifter for executing the shift operation designated by the second field in a number of processing cycles determined by which of the plurality of shift operations is designated by the second field, and An instruction decoder that changes the number of processing cycles allowed to execute the data processing instruction word before starting execution of the processing instruction word depending on both the first field and the second field. Including.

【0008】本発明では、演算論理装置オペレーション
とシフトオペレーションとを独立に指定する複数のフィ
ールドをデータ処理命令語が有するデータ処理システム
において、たとえこれらのオペレーションが共通のハー
ドウエア資源を共有したとしても、両方のフィールドに
依存して許容される処理サイクル数を選択することがで
きる。このように、演算論理装置オペレーションとシフ
トオペレーションの組合せの最悪の場合のみ多くの処理
数が許されるのを必要とするが、もっと一般的で単純な
組合せの場合には、少ない処理数を使うことが許され
る。
According to the present invention, in a data processing system in which a data processing instruction word has a plurality of fields for independently designating an arithmetic logic unit operation and a shift operation, even if these operations share common hardware resources. The number of processing cycles allowed can be selected depending on both fields. Thus, it is necessary to allow a large number of operations only in the worst case of a combination of arithmetic logic unit operation and shift operation, but in the case of a more general and simple combination, use a smaller number of operations. Is allowed.

【0009】上述の技術は、演算論理オペレーションと
シフトオペレーションとが全く独立しているが、ある組
合せが他の組合せより長い作動時間を要するという環境
で使うことができよう。しかしながら本発明は、演算論
理オペレーションとシフトオペレーションとの1個また
は複数個の組合せに対して、前記演算論理装置と前記シ
フタとが前記演算論理オペレーションと前記シフトオペ
レーションとを順次実行するという実施例において、特
に有用である。
The techniques 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 provides 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 the arithmetic logic operation and the shift operation. , Especially useful.

【0010】そのデータ処理命令語が必要とする処理サ
イクルの合計数を増やす必要があるかどうかを決定する
とき、演算論理オペレーションとシフトオペレーション
を順次実行すると、各々は他方が完了するのに要する時
間に、より敏感になる。
When deciding whether to increase the total number of processing cycles required by the data processing instruction word, the sequential execution of arithmetic logic operations and shift operations each takes the time required for the other to complete. Become more sensitive to

【0011】シフトオペレーションに速いのと遅いのと
の違いがあるのは、シフトオペレーションが以下の一方
であると考えてよい。シフト量があらかじめ決められた
レベル以上であるフルシフトオペレーションと、シフト
量があらかじめ決められたレベル未満である単純シフト
オペレーション。
The difference between the fast and slow shift operations can be considered to be one of the following. Full shift operations where the shift amount is above a predetermined level and simple shift operations where the shift amount is below a predetermined level.

【0012】あらかじめ決められたレベルよりもシフト
量が少いシフトオペレーションは、他のオペレーション
と共有されない自分専用のシフタにより処理することが
できる。このようにしてシフト量の少ないものはもっと
高速で処理することができる。自分専用のシフタにより
処理すべく選択されるシフトオペレーションは、典型的
なデータ処理オペレーションの中で比較的一般的である
が、比較的簡単に解読して実行できるのが選ばれる。
A shift operation with a shift amount smaller than a predetermined level can be processed by a shifter for exclusive use of the shifter which is not shared with other operations. In this way, a small shift amount can be processed at a higher speed. The shift operations selected to be processed by the dedicated shifter are relatively common among typical data processing operations, but are chosen to be relatively easy to read and perform.

【0013】演算論理装置オペレーションには多くの異
なる形式がある。これらのオペレーションを分けるひと
つの方法として、演算論理装置オペレーションは以下の
うちの一方であるとする。1個または複数のオペランド
による論理オペレーションと、1個または複数のオペラ
ンドによる算術オペレーション。典型的には、算術オペ
レーションの方が論理オペレーションよりかなり複雑な
ので、処理に要する時間が長い(たとえば、一連のビッ
ト値に沿って桁上げを処理することが必要な場合)。
There are many different forms of arithmetic logic unit operation. As one way to separate these operations, arithmetic logic unit operations are assumed to be one of the following: Logical operations with one or more operands and arithmetic operations with one or more operands. Typically, arithmetic operations are significantly more complex than logical operations, and therefore take longer to process (eg, when it is necessary to process carry along a series of bit values).

【0014】演算論理装置オペレーションとシフトオペ
レーションとを上述のように分けることが有効な例とし
て、フルシフトオペレーションと論理オペレーション、
または単紙シフトオペレーションと算術オペレーション
を含むデータ処理命令に応答して、次の処理命令語の実
行を始める前に前記命令デコーダはX処理サイクルを許
容する場合と、フルシフトオペレーションと算術オペレ
ーションとを含むデータ処理命令に応答して、次の処理
命令語の実行を始める前に、前記命令デコーダはXより
大きいY処理を許容する場合と、がある。YがXより大
きいという条件で、XとYの値は何種類もの値を取り得
ることが理解されよう。しかしながら、典型的な高度に
最適化された処理装置(たとえばRISCプロセッサ)
では、Y=2でX=1である。
As an effective example of separating the arithmetic logic unit operation and the shift operation as described above, a full shift operation and a logical operation,
Alternatively, in response to a data processing instruction including a single sheet shift operation and an arithmetic operation, the instruction decoder allows X processing cycles before starting execution of the next processing instruction word, and a full shift operation and an arithmetic operation. In some cases, the instruction decoder may allow Y processing greater than X in response to the containing data processing instruction before beginning execution of the next processing instruction word. It will be appreciated that the values of X and Y can take on any number of values, provided that Y is greater than X. However, a typical highly optimized processor (eg RISC processor)
Then, Y = 2 and X = 1.

【0015】もうひとつの側面として本発明は、複数個
の演算論理装置オペレーションのうちのひとつを指定す
る第1のフィールドと、該第1のフィールドからは独立
していて複数個のシフトオペレーションのうちのひとつ
を指定する第2のフィールドとを有するデータ処理命令
語に応答してデータを処理する方法であって、以下のス
テップを含むものを提供する。該複数個の演算論理オペ
レーションのうちどれが該第1のフィールドにより指定
されるかにより決まるサイクル数で、該第1のフィール
ドにより指定された演算論理装置オペレーションを実行
するステップと、該複数個のシフトオペレーションのう
ちどれが該第2のフィールドにより指定されるかにより
決まる処理サイクル数で、該第2のフィールドにより指
定されたシフトオペレーションを実行するステップと、
次の処理命令語の実行を始める前に、該データ処理命令
語の実行に許される処理サイクル数を、該第1のフィー
ルドと該第2のフィールドの両方に依存して変えるステ
ップ。
In another aspect, the present invention provides a first field that specifies one of a plurality of arithmetic logic unit operations and a plurality of shift operations that are independent of the first field. And a second field that specifies one of the following: a method of processing data in response to a data processing instruction word, the method including the following steps. Performing the arithmetic logic unit operation designated by the first field in a number of cycles determined by which of the plurality of arithmetic logic operations is designated by the first field; Performing a shift operation designated by the second field for a number of processing cycles determined by which of the shift operations is designated by the second field;
Changing the number of processing cycles allowed to execute the data processing instruction word before starting execution of the next processing instruction word depending on both the first field and the second field.

【0016】[0016]

【発明の実施の形態】次に、本発明について図面を参照
しながら説明する。図1はマイクロプロセッサ回路2を
示す。マイクロプロセッサ回路2には、アドレスバス
(図示せず)上に現在現われているアドレスを記憶する
ためのアドレスレジスタ4が含まれている。アドレスイ
ンクレメンタ回路6は、アドレスレジスタ4の中に記憶
されるアドレスを高速で増分する役目を果たす。このこ
とはメモリロケーションなどに高速で逐次アクセスを行
うために望ましいことである。命令パイプラインと読出
しデータレジスタのユニット8は、マイクロプロセッサ
回路2に加えるためにメモリから読出したデータ処理命
令語を記憶する役を果たす。命令パイプライン8の上部
にあるデータ処理命令語は、命令デコーダと制御論理装
置のユニット10に加えられ、ここで少なくとも部分的
に解読される。この解読は、そのデータ処理命令語を完
全に処理するために、マイクロプロセッサ回路2の中の
他の要素を命令デコーダと制御論理装置のユニット10
が適切に駆動することができる程度に行われる。レジス
タバンク12は処理すべきデータ語を記憶するために設
けられている。所定の機能を果たすために最適化されて
いる特別の処理ユニットとして、マイクロプロセッサ回
路2の中に、乗算器14、バレルシフタ16および演算
論理装置18が含まれている。これらの機能ユニットは
マイクロプロセッサ回路2の中で必要とされる処理操作
の大部分を扱う。デバッグ回路20は、開発中にマイク
ロプロセッサ回路を組込んだシステムのハードウェアの
デバッグを支援するためのものである。書込みデータレ
ジスタバンク22はマイクロプロセッサ回路2から出力
されるデータ値をバッファする役を果たす。
Next, the present invention will be described with reference to the drawings. FIG. 1 shows a microprocessor circuit 2. The microprocessor circuit 2 includes an address register 4 for storing the address currently appearing on the address bus (not shown). The address incrementer circuit 6 serves to rapidly increment the address stored in the address register 4. This is desirable for high speed sequential access to memory locations and the like. The instruction pipeline and read data register unit 8 serves to store data processing instruction words read from memory for addition to the microprocessor circuit 2. The data processing instruction words at the top of the instruction pipeline 8 are applied to the instruction decoder and control logic unit 10 where they are at least partially decoded. This decoding causes the other elements in the microprocessor circuit 2 to unit 10 the instruction decoder and control logic unit in order to fully process the data processing instruction word.
Can be driven appropriately. Register bank 12 is provided for storing data words to be processed. In the microprocessor circuit 2, a multiplier 14, a barrel shifter 16 and an arithmetic logic unit 18 are included as special processing units that are optimized to perform a given function. These functional units handle most of the processing operations required in the microprocessor circuit 2. The debug circuit 20 is for supporting the debugging of the hardware of the system in which the microprocessor circuit is incorporated during development. The write data register bank 22 serves to buffer the data values output from the microprocessor circuit 2.

【0017】図2は複数個の演算論理装置のオペレーシ
ョンのうちのひとつを指定する第1のフィールド32
と、複数個のシフトオペレーションのうちのひとつを指
定する第2のフィールド28とを有するデータ処理命令
語を示す。この命令の例はアドバンストRISCマシン
ズ社(Advanced RISC Machines
Limited)製のARM6プロセッサの命令セット
から取ったものである。以下、このデータ処理命令語が
解読されて適用されるやり方に修正を加えることによ
り、本発明のオペレーションの一例を説明する。
FIG. 2 illustrates a first field 32 that specifies one of a plurality of arithmetic logic unit operations.
And a second field 28 that specifies one of a plurality of shift operations. An example of this instruction is Advanced RISC Machines.
Limited) ARM6 processor instruction set. An example of the operation of the present invention will be described below by modifying the manner in which the data processing instruction word is decoded and applied.

【0018】データ処理命令語の中で31ビットから2
8ビットまでは条件フィールド24が占めている。この
条件フィールド24はデータ処理命令語全体の条件付実
行を可能にするものであって、それはマイクロプロセッ
サ回路2の中の状態フラグが条件フィールド24の中に
特定されている条件に整合しているか否かに依る。
From 31 bits to 2 in the data processing instruction word
The condition field 24 occupies up to 8 bits. The condition field 24 enables conditional execution of the entire data processing instruction word, whether the status flag in the microprocessor circuit 2 matches the condition specified in the condition field 24. It depends.

【0019】ビット27と26はこの特別のデータ処理
命令語の場合、常に共にゼロである。ビット25はIビ
ットと呼ばれるもので、データ処理命令語の最下位の1
2ビット(すなわちビット11から0)が解読される方
法、すなわち即時の値を使うのか、それともレジスタ内
に記憶されている値を使うのかを指定する。
Bits 27 and 26 are always both zero for this particular data processing instruction word. Bit 25 is called the I bit and is the lowest 1 of the data processing instruction word.
Specifies how the two bits (ie bits 11 to 0) are decoded, that is, whether to use the immediate value or the value stored in the register.

【0020】第1のフィールド32(ビット24から2
1)は、演算論理装置18とマイクロプロセッサ回路2
内の他の要素との組によって実行される複数個の演算論
理装置のオペレーションのうちの1個を選択するオペレ
ーションコード(オペコード)を指定する。可能な演算
論理装置オペレーションは16種類あって、この形式を
図2に示す。16個の演算論理装置オペレーションのう
ち、8個は算術オペレーション(SUB、RSB、AD
D、ADC、SBC、RSC、CMP、CMN)であ
り、8個は論理オペレーション(AND、EOR、TS
T、TEQ、ORR、MOV、BIC、MVN)であ
る。
The first field 32 (bits 24 to 2)
1) is an arithmetic logic unit 18 and a microprocessor circuit 2
Specifies an operation code (opcode) that selects one of the operations of the plurality of arithmetic logic units to be executed by a combination with other elements in the above. There are 16 possible arithmetic logic unit operations, the format of which is shown in FIG. Of the 16 arithmetic logic unit operations, 8 are arithmetic operations (SUB, RSB, AD
D, ADC, SBC, RSC, CMP, CMN), 8 logical operations (AND, EOR, TS
T, TEQ, ORR, MOV, BIC, MVN).

【0021】ビット20はSビット33と呼ばれ、条件
フィールド24が応答する条件フラグが、現在のデータ
処理命令語により変えられるか否かを指示する。次の4
ビット34(ビット19から16まで)は、このデータ
処理命令語の第1のオペランドを提供するレジスタバン
ク12の中のレジスタの数を指定する。次の4ビット3
6(ビット15から12まで)は、データ処理命令語の
結果を書込むためのレジスタバンク12内のレジスタを
指定する。
Bit 20, called the S bit 33, indicates whether the condition flag to which the condition field 24 responds can be changed by the current data processing instruction word. Next 4
Bit 34 (bits 19 through 16) specifies the number of registers in register bank 12 that provide the first operand of this data processing instruction word. Next 4 bits 3
6 (bits 15 to 12) specify the register in register bank 12 for writing the result of the data processing instruction word.

【0022】最後の12ビット28(ビット11から0
まで)は実行すべきシフトオペレーションを指定してい
る。前述のように、最下位の12ビット28の解読方法
はIビット30に依存する。もしI=0ならば、最下位
の4ビット(ビット3から0まで)はレジスタバンク1
2内のどのレジスタから値を取ってきて、それをシフト
して第2のオペランドをつくるかを指定する。最上位の
8ビット40(ビット11から4まで)は実行すべきシ
フトの性質と量とを指定する。シフトにはフィールド4
0の中のビットに依存して、左論理シフト、右論理シフ
ト、算術右シフトまたは右回転シフトがある。フィール
ド40はまた実行すべきシフト量の値を保持するレジス
タバンク12内のレジスタを指定するか、またはこのシ
フト量を即時値として直接明記するかのいずれかを行
う。I=1のとき、最下位の8ビット(ビット7から0
まで)は実行すべきシフト量を表わす即時値を明記す
る。このシフトは残りの4ビット(ビット11から8ま
で)によって指定される。
The last 12 bits 28 (bits 11 to 0)
Up to) specify the shift operation to be performed. As mentioned above, the method of decrypting the least significant 12 bits 28 depends on the I bit 30. If I = 0, the least significant 4 bits (bit 3 to 0) are in register bank 1
Specifies which register in 2 to take the value from and shift it to form the second operand. The most significant 8 bits 40 (bits 11 through 4) specify the nature and amount of shift to be performed. Field 4 for shift
Depending on the bits in 0, there is a left logical shift, a right logical shift, an arithmetic right shift or a right rotation shift. Field 40 also either specifies a register in register bank 12 that holds the value of the shift amount to be performed or directly specifies this shift amount as an immediate value. When I = 1, the least significant 8 bits (bit 7 to 0)
Up to) specifies the immediate value that represents the shift amount to be executed. This shift is specified by the remaining 4 bits (bits 11 through 8).

【0023】この実施例では、0、1、2、3ビットの
いずれかの値だけ位置をシフトする左論理シフトは、専
用のシフタにより敏速に実行される単純シフトとして扱
われる。残りのシフトはすべて実行時間がもっと長くか
かるフルシフトとして扱われる。
In this embodiment, the 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 promptly executed by a dedicated shifter. All remaining shifts are treated as full shifts, which take longer to execute.

【0024】図3は命令デコーダと制御論理装置10
が、演算論理装置オペレーションを指定する第1のフィ
ールド32と、シフトオペレーションを指定する第2の
フィールド28とをどのような方法で解読するかを示
す。これらのフィールドの関連ビットはそれぞれの組合
せ論理ブロック42、44に供給され、これらのブロッ
クは論理オペレーションと算術オペレーションのいずれ
が指定されているのかということを示す出力と、単純シ
フトとフルシフトのいずれが指定されているのかを示す
出力を供給する。これらの2個の出力はアンドゲート4
6に供給され、ゲート46はもしフルシフトと算術オペ
レーションとが共に指定されていれば、1という値を出
力する。その他の組合せの場合はすべてアンドゲート4
6の出力は0である。アンドゲート46の出力は命令パ
イプラインに沿って命令の進行を制御する、すなわち次
の命令が命令デコードと制御論理装置10に加えられる
前に、現在の命令を実行するのに許される時間を制御す
るのに使われる。
FIG. 3 illustrates the instruction decoder and control logic unit 10.
Shows how to decode the first field 32, which specifies the arithmetic logic unit operation, and the second field 28, which specifies the shift operation. The relevant bits of these fields are provided to respective combinatorial logic blocks 42, 44, which output whether these blocks are designated as logical or arithmetic, and whether a simple shift or a full shift. Provides an output indicating if it is specified. These two outputs are AND gate 4
6 and gate 46 outputs a value of 1 if both full shift and arithmetic operations are specified. And gate 4 for all other combinations
The output of 6 is 0. The output of AND gate 46 controls the progress of the instruction along the instruction pipeline, ie, controls the time allowed to execute the current instruction before the next instruction is added to instruction decode and control logic 10. Used to do.

【0025】表1はそれぞれのサイクルカウントを生ず
る演算オペレーションとシフトオペレーションの各種組
合せを示す。
Table 1 shows various combinations of arithmetic and shift operations that produce respective cycle counts.

【0026】[0026]

【表1】 [Table 1]

【0027】簡略命令セット計算回路のような高度に最
適化されたマイクロプロセッサ回路2では、ほとんどす
べての命令が1サイクル内で実行可能である。算術オペ
レーションとフルシフトとが同時に指定される最悪の場
合だけは、マイクロプロセッサが完了するのに2クロッ
クサイクルを許容しなければならない。
In a highly optimized microprocessor circuit 2 such as a simplified instruction set calculation circuit, almost all instructions can be executed within one cycle. Only in the worst case, where arithmetic operations and full shifts are specified at the same time, the microprocessor must allow two clock cycles to complete.

【図面の簡単な説明】[Brief description of drawings]

【図1】マイクロプロセッサ内の機能的要素を示す図。FIG. 1 illustrates functional elements within a microprocessor.

【図2】演算論理装置オペレーションとシフトオペレー
ションとを指定する独立のフィールドを有する、データ
処理命令語の形式と内容を示す図。
FIG. 2 illustrates the format and contents of a data processing instruction word having independent fields for specifying arithmetic logic unit operations and shift operations.

【図3】データ処理命令語の実行を完了するのに許され
る処理サイクル数を決めるために、図2の命令の解読を
示す図。
FIG. 3 is a diagram showing decoding of the instruction of FIG. 2 to determine the number of processing cycles allowed to complete execution of a data processing instruction word.

【符号の説明】[Explanation of symbols]

2 マイクロプロセッサ 18 演算論理装置 28 第2のフィールド 32 第1のフィールド 2 Microprocessor 18 Arithmetic Logic Unit 28 Second Field 32 First Field

Claims (7)

【特許請求の範囲】[Claims] 【請求項1】 複数個の演算論理装置オペレーションの
うちのひとつを指定する第1のフィールドと、該第1の
フィールドからは独立していて複数個のシフトオペレー
ションのうちのひとつを指定する第2のフィールドとを
有するデータ処理命令語に応答してデータを処理する装
置であって、 該複数個の演算論理オペレーションのうちどれか該第1
のフィールドにより指定されるかにより決まる処理サイ
クル数で、該第1のフィールドにより指定された演算論
理装置オペレーションを実行する演算論理装置と、 該複数個のシフトオペレーションのうちどれが該第2の
フィールドにより指定されるかにより決まる処理サイク
ル数で、該第2のフィールドにより指定されたシフトオ
ペレーションを実行するシフタと、 次の処理命令語の実行を始める前に、該データ処理命令
語の実行に許される処理サイクルの数を、該第1のフィ
ールドと該第2のフィールドの両方に依存して変える命
令デコーダと、 を含むデータ処理装置。
1. A first field for specifying one of a plurality of arithmetic logic unit operations and a second field for specifying one of a plurality of shift operations independent of the first field. An apparatus for processing data in response to a data processing instruction word having a field of any one of the plurality of arithmetic logic operations,
An arithmetic logic unit that executes the arithmetic logic unit operation designated by the first field in a number of processing cycles determined by the number of processing cycles designated by the first field, and which of the plurality of shift operations is the second field A shifter that executes the shift operation specified by the second field in a number of processing cycles that is determined depending on whether the data processing instruction word is permitted to be executed before the execution of the next processing instruction word is started. An instruction decoder that changes the number of processing cycles performed depending on both the first field and the second field.
【請求項2】 請求項1記載の装置において、演算論理
オペレーションとシフトオペレーションとの1個または
複数の組合せに対して、前記演算論理装置と前記シフタ
とが前記演算論理オペレーションと前記シフトオペレー
ションとを順次実行する、データ処理装置。
2. The apparatus according to claim 1, wherein the arithmetic logic unit and the shifter perform the arithmetic logic operation and the shift operation for one or a plurality of combinations of the arithmetic logic operation and the shift operation. A data processing device that executes sequentially.
【請求項3】 請求項1、2記載の装置において、前記
シフトオペレーションは、 シフト量があらかじめ決められたレベル以上であるフル
シフトオペレーションと、 シフト量があらかじめ決められたレベル未満である単純
シフトオペレーションと、のうちの一方である、データ
処理装置。
3. The apparatus according to claim 1, wherein the shift operation is a full shift operation in which a shift amount is equal to or more than a predetermined level, and a simple shift operation in which the shift amount is less than a predetermined level. And a data processing device.
【請求項4】 請求項1、2、3記載の装置において、
前記演算論理装置オペレーションは、 1個または複数のオペランドによる論理オペレーション
と、 1個または複数のオペランドによる算術オペレーション
と、のうちの一方である、データ処理装置。
4. The device according to claim 1, 2, or 3,
A data processor wherein the arithmetic logic unit operation is one of a logical operation with one or more operands and an arithmetic operation with one or more operands.
【請求項5】 請求項3、4記載の装置において、 フルシフトオペレーションと論理オペレーション、また
は単純シフトオペレーションと算術オペレーションを含
むデータ処理命令に応答して、次の処理命令語の実行を
始める前に、前記命令デコーダはX処理サイクルを許容
することと、 フルシフトオペレーションと算術オペレーションとを含
むデータ処理命令に応答して、次の処理命令語の実行を
始める前に、前記命令デコーダはXより大きいY処理を
許容することと、を含む、データ処理装置。
5. The apparatus of claim 3 or 4 prior to initiating execution of a next processing instruction word 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 is greater than X before beginning execution of the next processing instruction word in response to the data processing instruction including X processing cycles and full shift operations and arithmetic operations. Allowing Y processing, the data processing apparatus.
【請求項6】 請求項5記載の装置において、Y=2で
X=1である、データ処理装置。
6. The data processing apparatus according to claim 5, wherein Y = 2 and X = 1.
【請求項7】 複数個の演算論理装置オペレーションの
うちのひとつを指定する第1のフィールドと、該第1の
フィールドからは独立していて複数個のシフトオペレー
ションのうちのひとつを指定する第2のフィールドとを
有するデータ処理命令語に応答してデータを処理する方
法であって、 該複数個の演算論理オペレーションのうちどれが該第1
のフィールドにより指定されるかにより決まる処理サイ
クル数で、該第1のフィールドにより指定された演算論
理装置オペレーションを実行するステップと、 該複数個のシフトオペレーションのうちどれが該第2の
フィールドにより指定されるかにより決まる処理サイク
ル数で、該第2のフィールドにより指定されたシフトオ
ペレーションを実行するステップと、 次の処理命令語の実行を始める前に、該データ処理命令
語の実行に許される処理サイクル数を、該第1のフィー
ルドと該第2のフィールドの両方に依存して変えるステ
ップと、を含む、データ処理方法。
7. A first field specifying one of a plurality of arithmetic logic unit operations, and a second field specifying one of a plurality of shift operations independent of the first field. A field for processing the data in response to a data processing instruction word, which of the plurality of arithmetic logic operations is the first logical operation.
A number of processing cycles determined by the number of processing fields specified by the first field, and a step of executing the arithmetic logic unit operation specified by the first field, and which of the plurality of shift operations is specified by the second field. A step of executing the shift operation specified by the second field in a number of processing cycles determined by whether or not to be executed, and processing permitted to execute the data processing instruction word before starting execution of the next processing instruction word. Changing the number of cycles depending on both the first field and the second field.
JP01830897A 1996-02-01 1997-01-31 Data processing apparatus and method Expired - Fee Related JP3619343B2 (en)

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 true JPH09223009A (en) 1997-08-26
JP3619343B2 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)

* Cited by examiner, † Cited by third party
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
WO2000070446A2 (en) * 1999-05-13 2000-11-23 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)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
GB2309803A (en) 1997-08-06
GB9602024D0 (en) 1996-04-03
GB2309803B (en) 2000-01-26
JP3619343B2 (en) 2005-02-09

Similar Documents

Publication Publication Date Title
US7366874B2 (en) Apparatus and method for dispatching very long instruction word having variable length
EP2569694B1 (en) Conditional compare instruction
KR102413832B1 (en) vector multiply add instruction
KR100208889B1 (en) Parallel processing device amd parallel processing method
US7127593B2 (en) Conditional execution with multiple destination stores
US4740893A (en) Method for reducing the time for switching between programs
US5938759A (en) Processor instruction control mechanism capable of decoding register instructions and immediate instructions with simple configuration
KR0138468B1 (en) Micro computer
JPH06230969A (en) Processor
JPH04172533A (en) Electronic computer
EP3329363B1 (en) Vector arithmethic instruction
JPH0895804A (en) Central processor
US4739470A (en) Data processing system
EP0094535A2 (en) Pipe-line data processing system
JPH01137331A (en) Control word branching method
WO2004111834A2 (en) Data access program instruction encoding
US5390306A (en) Pipeline processing system and microprocessor using the system
JP3619343B2 (en) Data processing apparatus and method
US4812970A (en) Microprogram control system
KR102365306B1 (en) Data processing apparatus and method for performing vector scan operation
CA2016145C (en) Control device having a function of modifying a micro instruction
KR100188374B1 (en) Processing unit
WO2002039272A9 (en) Method and apparatus for reducing branch latency
JPH0876996A (en) Programmable controller
JPS6125166B2 (en)

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