JP4889235B2 - Program control processor - Google Patents

Program control processor Download PDF

Info

Publication number
JP4889235B2
JP4889235B2 JP2005130382A JP2005130382A JP4889235B2 JP 4889235 B2 JP4889235 B2 JP 4889235B2 JP 2005130382 A JP2005130382 A JP 2005130382A JP 2005130382 A JP2005130382 A JP 2005130382A JP 4889235 B2 JP4889235 B2 JP 4889235B2
Authority
JP
Japan
Prior art keywords
skip
instruction
address
flag
destination address
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
Application number
JP2005130382A
Other languages
Japanese (ja)
Other versions
JP2006309454A (en
Inventor
章雅 丹羽
高幸 松田
秀昭 石原
政裕 神谷
俊彦 松岡
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.)
Denso Corp
Original Assignee
Denso Corp
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 Denso Corp filed Critical Denso Corp
Priority to JP2005130382A priority Critical patent/JP4889235B2/en
Priority to US11/312,830 priority patent/US7725694B2/en
Publication of JP2006309454A publication Critical patent/JP2006309454A/en
Application granted granted Critical
Publication of JP4889235B2 publication Critical patent/JP4889235B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

本発明は、条件判定により条件が成立した場合にそれ以降の命令を無効化するスキップ処理のためのプログラム制御に用いられコンピュータのプロセッサに関するものである。 The present invention relates to a program system processor control to use is that the computer for skip processing to invalidate subsequent instructions if the conditions by condition determination is satisfied.

CPU(プロセッサ)において、プログラムの条件分岐を制御する方式として、従来、
(i)命令セットに条件付き分岐命令などを有し、条件が成立した場合、指定のアドレスまでジャンプする方式や、
(ii)命令セットにスキップ命令を有し、直後の一ないし連続する複数の命令を無効とする方式
がある。例えば特許文献1には、スキップ時に命令をNOP化(ノー・オペレーション化)する技術が開示されている。
特開昭61−221939号公報
As a method for controlling conditional branching of a program in a CPU (processor),
(I) The instruction set has a conditional branch instruction or the like, and when the condition is satisfied, a method of jumping to a specified address,
(Ii) There is a method in which a skip instruction is included in the instruction set, and the immediately following one or a plurality of consecutive instructions are invalidated. For example, Patent Document 1 discloses a technique for converting a command into a NOP (no operation) when skipping.
JP-A 61-221939

(i),(ii)のいずれの場合も、条件成立時と非成立時では実行サイクル数が異なるため、命令の実行タイミングが重要なプログラム及びそのシステムにおいて、分岐処理後(命令のNOP化を伴うスキップ処理の後)の命令を同じサイクルタイミングにて実行できないという問題がある。   In both cases (i) and (ii), the number of execution cycles differs between when the condition is satisfied and when the condition is not satisfied. Therefore, in a program and its system in which the instruction execution timing is important, after branch processing (instruction NOP conversion) There is a problem that the instruction (after the skip processing) cannot be executed at the same cycle timing.

(ii)の方式においては、例えば、バス幅を超えるデータサイズのロードストア命令など、命令の実行に複数サイクルを要すものがそれに該当する。
本発明は上記問題点に着目してなされたものであり、その目的は、命令の有効無効に関わらず、実行サイクルを一定にすることができるプログラム制御方法およびプロセッサを提供することにある。
In the method (ii), for example, a load / store instruction having a data size exceeding the bus width requires a plurality of cycles to execute the instruction.
The present invention has been made paying attention to the above problems, and an object of the present invention is to provide a program control method and a processor capable of making an execution cycle constant regardless of the validity / invalidity of instructions.

請求項1に記載の発明は、条件判定に基づき条件が成立した場合に、それ以降の一ないし連続する複数の命令を無効化するスキップ処理制御手段を備えたプロセッサであって、前記スキップ処理制御手段は、スキップ処理中は命令の種類に関わらず、プロセッサ内外に対するデータの書き込みを禁止し続けるプロセッサをその要旨とする。
また、前記スキップ処理制御手段は、命令によるデータの書き込みを制御するスキップ状態フラグを備え、このスキップ状態フラグは、前方のみに分岐することを許可された条件付き分岐命令における条件が成立した場合にスキップ状態にセットされる。
さらに、前記スキップ処理制御手段は、前記条件付き分岐命令によって指定される分岐先アドレスを保持するための分岐先アドレスレジスタと、分岐先アドレスレジスタの分岐先アドレスとプログラムカウンタの現在のアドレスを比較するアドレス比較手段と、割り込み発生時に前記スキップ状態フラグのフラグデータをレジスタないしメモリへ退避するフラグデータ退避手段と、復帰命令によって、退避した前記フラグデータをスキップ状態フラグに復帰するフラグデータ復帰手段とを備え、このアドレス比較手段は、
分岐先アドレス≦現在のアドレス
となったことをトリガにして、前記スキップ状態フラグを通常状態にリセットする。
そして、前記スキップ処理制御手段は、前記スキップ状態フラグがスキップ状態にセットされているスキップ処理中は命令の種類に関わらず、プロセッサ内外に対するデータの書き込みを禁止し続ける。
The invention according to claim 1 is a processor comprising skip processing control means for invalidating one or a plurality of consecutive instructions after a condition is established based on a condition determination, wherein the skip processing control The gist of the means is a processor that keeps prohibiting data writing to the inside and outside of the processor regardless of the type of instruction during the skip processing.
The skip processing control means includes a skip state flag for controlling writing of data by the instruction, and the skip state flag is set when a condition is satisfied in a conditional branch instruction permitted to branch forward only. Set to skip state.
Further, the skip processing control means compares the branch destination address register for holding the branch destination address specified by the conditional branch instruction, the branch destination address of the branch destination address register and the current address of the program counter. Address comparison means, flag data saving means for saving flag data of the skip state flag to a register or memory when an interrupt occurs, and flag data return means for returning the saved flag data to a skip state flag by a return instruction This address comparison means
The skip state flag is reset to the normal state with a branch destination address ≦ the current address as a trigger.
The skip processing control means continues to prohibit the writing of data to / from the processor regardless of the type of instruction during the skip processing in which the skip state flag is set to the skip state.

請求項1に記載の発明によれば、スキップ処理制御手段が、スキップ処理中は命令の種類に関わらず、プロセッサ内外に対するデータの書き込みを禁止し続けることにより、命令無効時にも命令有効時と同じサイクル数を消費させて、命令の有効無効に関わらず、実行サイクルを一定にすることができる。
さらに、割り込み発生時に前記スキップ状態フラグのフラグデータをレジスタ
ないしメモリへ退避するフラグデータ退避手段と、復帰命令により、退避した前記フラグデータをスキップ状態フラグに復帰するフラグデータ復帰手段と、を備えることにより、割り込み時のスキップ処理を継続することができる。
According to the first aspect of the present invention, the skip processing control means keeps prohibiting the writing of data to the inside and outside of the processor regardless of the type of instruction during the skip process, so that the instruction is invalid even when the instruction is invalid. By consuming the number of cycles, the execution cycle can be made constant regardless of whether the instruction is valid or invalid.
Furthermore, the flag data of the skip state flag is registered when an interrupt occurs.
Alternatively, it is possible to continue the skip processing at the time of interruption by providing flag data saving means for saving to the memory and flag data return means for returning the saved flag data to the skip state flag by a return instruction.

請求項に記載のように、請求項に記載のプロセッサにおいて、前記アドレス比較手段は、データパスの内部の算術論理演算ユニットで構成され、スキップ状態フラグがスキップ状態にセットされている場合には、前記算術論理演算ユニットに、分岐先アドレスレジスタの分岐先アドレスとプログラムカウンタの現在のアドレスを入力し、前記算術論理演算ユニットより出力されるコンディションコードが
分岐先アドレス≦現在のアドレス
となったことをトリガにして、スキップ状態フラグを通常状態にリセットすると、分岐先アドレスレジスタの分岐先アドレスとプログラムカウンタの現在のアドレスの比較を実行する構成として、データパスの内部の算術論理演算ユニットを用いることによってリソースの活用による小型化を図ることができる。
As described in claim 2, the processor of claim 1, wherein the address comparison means is constituted by the interior of the arithmetic logic unit of the data path, if the skip state flag is set to skip state Inputs the branch destination address of the branch destination address register and the current address of the program counter to the arithmetic logic unit, and the condition code output from the arithmetic logic unit becomes branch destination address ≦ current address When the skip state flag is reset to the normal state with this as a trigger, an arithmetic logic unit inside the data path is used as a configuration for comparing the branch destination address of the branch destination address register with the current address of the program counter. To reduce the size by utilizing resources It can be.

(第1の比較例
以下、第1の比較例を図面に従って説明する。
図1は、本比較例のマイクロコンピュータにおけるCPU(プロセッサ)の内部構成を示すブロック図である。図2には、CPUの命令実行動作、特にパイプライン動作の一例を示す。
(First comparative example )
Hereinafter , a first comparative example will be described with reference to the drawings.
FIG. 1 is a block diagram showing an internal configuration of a CPU (processor) in the microcomputer of this comparative example . FIG. 2 shows an example of CPU instruction execution operation, particularly pipeline operation.

図1において、CPU10は制御ユニット20とデータパス30で構成されている。データパス30は、データの格納や、算術・論理演算を実行する。制御ユニット20は、メモリから取り込んだ命令に応じ、データパス30を制御する。   In FIG. 1, the CPU 10 includes a control unit 20 and a data path 30. The data path 30 stores data and performs arithmetic / logical operations. The control unit 20 controls the data path 30 according to the instruction fetched from the memory.

制御ユニット20は命令デコーダ21とスキップ処理制御ユニット22で構成されている。命令デコーダ21は、メモリより取り込んだ命令を格納し、取り込んだ命令を解読する。スキップ処理制御手段としてのスキップ処理制御ユニット22は、条件分岐における条件判定の際、条件が成立した場合に、それ以降の一ないし連続する複数の命令を無効化するスキップ処理を行うためのものである。スキップ処理制御ユニット22は、命令デコーダ21より出力される、スキップ処理開始信号とスキップ処理終了信号から、スキップ状態か否かを判断し、CPU10の内外部に対し、データの書き込みを制御する。   The control unit 20 includes an instruction decoder 21 and a skip processing control unit 22. The instruction decoder 21 stores the instruction fetched from the memory and decodes the fetched instruction. The skip processing control unit 22 as the skip processing control means is for performing a skip processing for invalidating one or a plurality of consecutive instructions after the condition is satisfied when the condition is determined in the conditional branch. is there. The skip processing control unit 22 determines from the skip processing start signal and the skip processing end signal output from the instruction decoder 21 whether or not it is in the skip state, and controls data writing to the inside and outside of the CPU 10.

データパス30は、ロードストアユニット31と実行ユニット32とレジスタファイル33とプログラム状態レジスタ34とプログラムカウンタ35で構成されている。ロードストアユニット31は、CPU10の外部からのデータ読み込み及び、外部へのデータ書き込みを制御する。実行ユニット32は、命令デコーダ21で解読された命令に従い、制御ユニット20より出力される、制御信号に応じて、所定の算術・論理演算を実行する。レジスタファイル33は、実行ユニット32により実行された結果のデータもしくはメモリ等のCPU10の外部より取り込まれたデータを格納する。プログラム状態レジスタ34は、CPU10の処理状態を保持する。プログラムカウンタ35はフェッチする命令のアドレスを示す。   The data path 30 includes a load / store unit 31, an execution unit 32, a register file 33, a program status register 34, and a program counter 35. The load / store unit 31 controls data reading from the outside of the CPU 10 and data writing to the outside. The execution unit 32 executes predetermined arithmetic / logical operations in accordance with the control signal output from the control unit 20 in accordance with the instruction decoded by the instruction decoder 21. The register file 33 stores data obtained as a result of execution by the execution unit 32 or data taken from outside the CPU 10 such as a memory. The program status register 34 holds the processing status of the CPU 10. The program counter 35 indicates the address of the instruction to be fetched.

ここで、CPU10と、CPU10の外部の周辺回路を接続するバスが、データバス40とアドレスバス41の2種類のバスで構成されており、図1のCPU10のバスアーキテクチャはノイマンバス構成となっている。   Here, the bus connecting the CPU 10 and peripheral circuits outside the CPU 10 is composed of two types of buses, a data bus 40 and an address bus 41, and the bus architecture of the CPU 10 in FIG. 1 is a Neumann bus configuration. Yes.

CPU10は、図2に示すように、5種類のステージからなるパイプライン処理にて、プログラムを実行するものである。
5種類のステージとは、IF(命令フェッチ)ステージと、DEC(デコード)ステージと、EXE(実行)ステージと、MA(メモリアクセス)ステージと、WB(ライトバック)ステージである。IF(命令フェッチ)ステージは、メモリから命令を読み込むステージである。DEC(デコード)ステージは、IFステージで読み込んだ命令を解読するステージである。EXE(実行)ステージは、DECステージで解読された命令の内容に応じて、算術・論理演算やIFステージで読み込むべき命令のアドレスやメモリへアクセスする際のアドレス等を演算するステージである。MA(メモリアクセス)ステージは、DECステージで解読された命令の内容に応じて、EXE(実行)ステージでの演算結果をアドレスとしてメモリへのアクセスを行うステージである。WB(ライトバック)ステージは、DECステージで解読された命令の内容に応じて、演算データもしくはメモリから取り込んだデータを内部レジスタに書き込むステージである。
As shown in FIG. 2, the CPU 10 executes the program by pipeline processing including five types of stages.
The five types of stages are an IF (instruction fetch) stage, a DEC (decode) stage, an EXE (execution) stage, an MA (memory access) stage, and a WB (write back) stage. The IF (instruction fetch) stage is a stage for reading an instruction from a memory. The DEC (decode) stage is a stage for decoding the instruction read in the IF stage. The EXE (execution) stage is a stage that calculates an address of an instruction to be read in an arithmetic / logical operation or IF stage, an address when accessing a memory, and the like according to the contents of the instruction decoded in the DEC stage. The MA (memory access) stage is a stage for accessing the memory using the operation result in the EXE (execution) stage as an address in accordance with the contents of the instruction decoded in the DEC stage. The WB (write back) stage is a stage in which operation data or data taken from a memory is written to an internal register in accordance with the contents of the instruction decoded in the DEC stage.

ノイマンバス構成下のパイプライン処理においては、先に述べた5種類のステージによる、5段のパイプラインを構築した場合、メモリより命令を取り込むIFステージと、メモリに対し、データの書き込みもしくは読み出しを行う、MAステージが競合する。   In pipeline processing under the Neumann bus configuration, when a five-stage pipeline is constructed using the five types of stages described above, an IF stage for fetching instructions from the memory, and data writing or reading to the memory are performed. Do the MA stage to compete.

そこで、IFステージとMAステージの競合を避けるために種々の方策が存在するが、競合回避の一例としての図2のパイプライン動作について説明する。
図2において、メモリへのアクセスを必要としない命令A,B,D及びスキップ命令は、IF、DEC、EXE、WBの4つのステージでパイプラインが構成されており、命令実行後(EXEステージ)、次のステージにて結果がレジスタに書き込まれる(WBステージ)。一方、ストア命令などメモリアクセスを必要とする命令Cは、EXEステージとWBステージの間にMAステージが挿入され、5種類のステージにてパイプラインが構成される。ただし、命令CのMAステージ実行中は、他命令のパイプラインをストールさせる。こうすることで、メモリアクセスが必要な命令のみ、2サイクル必要となるが、IFステージとMAステージの競合を避けることができる。
Therefore, there are various measures for avoiding the conflict between the IF stage and the MA stage. The pipeline operation of FIG. 2 as an example of conflict avoidance will be described.
In FIG. 2, the instructions A, B, D and skip instructions that do not require access to the memory are configured by four stages of IF, DEC, EXE, and WB, and after the instruction is executed (EXE stage) In the next stage, the result is written to the register (WB stage). On the other hand, for the instruction C that requires memory access, such as a store instruction, an MA stage is inserted between the EXE stage and the WB stage, and a pipeline is configured with five types of stages. However, the pipeline of other instructions is stalled during execution of the MA stage of instruction C. In this way, only two cycles are required for instructions that require memory access, but conflict between the IF stage and the MA stage can be avoided.

以上、述べたようなCPU構成による、スキップ処理の手順を説明する。
図1において、プログラムカウンタ35の値(アドレス)がアドレスバス41から出力され、バス41に接続されたROMより該当する命令がデータバス40に出力される。CPU10においてロードストアユニット31を介してデータバス40上のデータを取り込み、命令デコーダ21に格納する。命令デコーダ21は、フェッチした命令の内容を解読し、解読した命令の内容に応じて、データパス30及び、CPU10の外部に対して所定の制御を行う。
The skip processing procedure using the CPU configuration as described above will be described.
In FIG. 1, the value (address) of the program counter 35 is output from the address bus 41, and the corresponding instruction is output to the data bus 40 from the ROM connected to the bus 41. The CPU 10 takes in data on the data bus 40 via the load / store unit 31 and stores it in the instruction decoder 21. The instruction decoder 21 decodes the content of the fetched instruction, and performs predetermined control on the data path 30 and the outside of the CPU 10 according to the content of the decoded instruction.

例えば、フェッチした命令が、レジスタR10とレジスタR11のデータを加算し、レジスタR11に書き込むという命令の場合、制御ユニット20は、実行ユニット32に対し、レジスタR10とレジスタR11のデータを入力し、加算オペレーションを指示する他、レジスタファイル33に対し、実行結果を入力し、レジスタR11に書き込み許可を指示する。   For example, when the fetched instruction is an instruction to add the data of the register R10 and the register R11 and write to the register R11, the control unit 20 inputs the data of the register R10 and the register R11 to the execution unit 32 and adds the data. In addition to instructing the operation, the execution result is input to the register file 33, and write permission is instructed to the register R11.

ここで、条件付き分岐命令であった場合には次のようにする。つまり、前処理の実行結果に基づいて条件判定を行い、次命令以下をジャンプする場合には次のようにする。
フェッチした命令がスキップ処理開始命令の場合は、命令デコーダ21よりスキップ処理制御ユニット22に対しスキップ処理開始信号が出力される。また、フェッチした命令がスキップ処理終了命令の場合は、命令デコーダ21よりスキップ処理制御ユニット22に対しスキップ処理終了信号が出力される。
Here, if it is a conditional branch instruction, the following is performed. That is, the condition determination is performed based on the execution result of the preprocessing, and when jumping to the next instruction or less, the following is performed.
When the fetched instruction is a skip process start instruction, the instruction decoder 21 outputs a skip process start signal to the skip process control unit 22. If the fetched instruction is a skip process end instruction, the instruction decoder 21 outputs a skip process end signal to the skip process control unit 22.

スキップ処理制御ユニット22は、スキップ状態か通常状態かを示すスキップ状態フラグ22aを備えており、スキップ状態フラグ22aは、命令によるデータの書き込みを制御するためのものである。このスキップ状態フラグ22aは、スキップ処理開始信号を受けてスキップ状態にセットされ、スキップ処理終了信号を受けて通常状態にリセットされる。   The skip processing control unit 22 includes a skip state flag 22a indicating whether it is a skip state or a normal state, and the skip state flag 22a is for controlling data writing by an instruction. The skip state flag 22a is set to the skip state upon receipt of the skip process start signal, and is reset to the normal state upon receipt of the skip process end signal.

スキップ状態フラグ22aがセットされスキップ状態を示している場合には、命令デコーダ21から出力される書き込み制御信号の状態に関わらず、メモリを含む周辺回路への書き込みを制御する、外部書き込み制御信号、及び、レジスタファイル33など内部レジスタへの書き込みを制御する、内部書き込み制御信号として、書き込み禁止を出力する。これにより、スキップ処理にてそれ以降の命令を無効とする場合には、命令のシーケンス制御は継続して実行され、データの書き込みのみ禁止される。   When the skip state flag 22a is set to indicate a skip state, an external write control signal that controls writing to the peripheral circuit including the memory regardless of the state of the write control signal output from the instruction decoder 21; In addition, write prohibition is output as an internal write control signal for controlling writing to an internal register such as the register file 33. As a result, when the subsequent instructions are invalidated in the skip processing, the instruction sequence control is continuously executed, and only data writing is prohibited.

以上に示した、スキップ処理制御手段としてのスキップ処理制御ユニット22について、スキップ処理中のパイプライン動作を用い(図2,3,4)、一般例と比較しながらより詳細に説明する。   The skip processing control unit 22 as the skip processing control means described above will be described in more detail using the pipeline operation during the skip processing (FIGS. 2, 3, and 4) while comparing with a general example.

図2においては、スキップ処理開始命令とスキップ処理終了命令の間である、命令A〜命令Dをスキップする例を示している。
図3は、一般的なスキップ処理中のパイプライン動作を、図4は、本比較例におけるスキップ処理中のパイプライン動作を示している。
FIG. 2 shows an example in which the instruction A to the instruction D between the skip process start instruction and the skip process end instruction are skipped.
FIG. 3 shows a pipeline operation during general skip processing, and FIG. 4 shows a pipeline operation during skip processing in this comparative example .

まず、図3の一般例の動作図について説明する。
一般的なスキップ処理制御手法では、スキップ処理開始命令が実行された後、以降の命令をNOP(ノー・オペレーション命令)化する。このとき、図2における命令Cが、実行に2サイクルを要するストア命令だった場合、NOP化によって、MAステージがなくなる。従って、スキップ処理しない場合に比べて、1サイクル短くなり、命令A〜命令Dに係るサイクル数(実行サイクル数)は「4」となる。
First, the operation diagram of the general example of FIG. 3 will be described.
In a general skip process control method, after a skip process start instruction is executed, subsequent instructions are converted into NOP (no operation instructions). At this time, if the instruction C in FIG. 2 is a store instruction that requires two cycles to execute, there is no MA stage due to NOP conversion. Therefore, compared with the case where skip processing is not performed, the cycle is shortened, and the number of cycles (the number of execution cycles) related to the instructions A to D is “4”.

一方、図4の本比較例によれば、スキップ処理開始命令が実行された後も、命令がNOP化されるわけではなく、データの書き込みのみ禁止される。
図4中の命令C(ストア命令)を例に説明すると、スキップ状態フラグは、スキップ処理開始命令を実行することでスキップ状態にセットされ、スキップ処理終了命令を実行することで通常状態にリセットされる。スキップ処理制御ユニット22は、スキップ状態フラグがスキップ状態の間も、命令のシーケンス制御はそのまま継続して実行し、書き込み制御信号を書き込み禁止にする。即ち、スキップ処理中は命令の種類に関わらず、CPU内外に対するデータの書き込みを禁止し続ける。そのため、MAステージでは、データの書き込みが禁止される。よって、ストア命令は実質的に無効となるが、消費サイクルは命令有効時と同じ2サイクルとなる。従って、スキップ処理区間である、命令A〜命令Dに係るサイクル数(実行サイクル数)は、命令の種類に関わらず、命令有効時と同じ「5」となる。つまり、命令の実行サイクルを命令の有効無効に関わらず、一定とすることができ、命令A〜Dの命令群をスキップした場合としない場合とで、処理にかかるサイクル数を同じとすることができる。
On the other hand, according to this comparative example of FIG. 4, even after the skip processing start instruction is executed, the instruction is not changed to NOP, and only data writing is prohibited.
The instruction C (store instruction) in FIG. 4 will be described as an example. The skip state flag is set to the skip state by executing the skip process start instruction, and is reset to the normal state by executing the skip process end instruction. The Even when the skip state flag is in the skip state, the skip processing control unit 22 continues to execute the sequence control of the instruction as it is, and disables writing of the write control signal. That is, during the skip process, data writing to and from the CPU continues to be prohibited regardless of the type of instruction. Therefore, data writing is prohibited at the MA stage. Therefore, the store instruction is substantially invalid, but the consumption cycle is the same two cycles as when the instruction is valid. Accordingly, the number of cycles (the number of execution cycles) related to the instructions A to D, which is the skip processing section, is “5”, which is the same as when the instruction is valid, regardless of the type of instruction. That is, the instruction execution cycle can be made constant regardless of the validity of the instruction, and the number of cycles for processing can be made the same when the instruction group of the instructions A to D is skipped or not. it can.

このように、本方式は、条件判定の結果、条件が成立し、スキップ処理にてそれ以降の命令を無効化する場合においても、命令のシーケンス制御は継続して行い、データの書き込みのみ禁止することで、条件判定の成立、不成立に関わらず、一定のインストラクションサイクル数を消費させる(スキップ処理制御による命令の有効無効に関わらず、常に同じインストラクションサイクルを消費することができる)。つまり、スキップ処理を実行した場合と実行しなかった場合、いずれの場合においても、スキップ処理終了後の命令の実行タイミングを同じにすることができる。例えば、命令1から命令2の間がスキップ処理区間であり(命令1から命令2の間が条件分岐区間であり)、命令2の命令1に対する実行タイミングを常に一定としたいプログラムにおいて非常に効果的である(命令の実行タイミングが重要な場合において、プログラムの条件分岐による実行サイクルのずれを防ぐことができる)。   As described above, in this method, even when the condition is satisfied as a result of the condition determination and the subsequent instructions are invalidated by the skip processing, the instruction sequence control is continued and only data writing is prohibited. Thus, a constant number of instruction cycles is consumed regardless of whether the condition determination is satisfied or not (the same instruction cycle can always be consumed regardless of the validity / invalidity of the instruction by skip processing control). That is, the execution timing of the instruction after completion of the skip processing can be made the same in both cases where the skip processing is executed and when it is not executed. For example, the skip processing section is between instruction 1 and instruction 2 (between instruction 1 and instruction 2 is a conditional branch section), which is very effective in a program in which the execution timing of instruction 2 with respect to instruction 1 is always constant. (When the instruction execution timing is important, it is possible to prevent deviations in the execution cycle due to conditional branching of the program).

以上のごとく、本比較例は下記の特徴を有する。
プログラム制御方法として、条件成立時に、それ以降の一ないし連続する複数の命令を無効化するスキップ処理を行う際に、スキップ処理にてそれ以降の命令を無効とする場合にも、命令のシーケンス制御は継続して実行し、データの書き込みのみ禁止するようにした。これにより、命令無効時にも命令有効時と同じサイクル数を消費させて、命令の有効無効に関わらず、実行サイクルを一定にすることができる。
As described above, this comparative example has the following features.
As a program control method, when performing a skip process that invalidates one or more consecutive instructions after the condition is satisfied, even if the subsequent instructions are invalidated by the skip process, instruction sequence control Was continuously executed, and only data writing was prohibited. As a result, even when the instruction is invalid, the same number of cycles as when the instruction is valid is consumed, and the execution cycle can be made constant regardless of the validity of the instruction.

CPU(プロセッサ)として、条件判定に基づき条件が成立した場合に、それ以降の一ないし連続する複数の命令を無効化するスキップ処理制御ユニット22を備えたCPU(プロセッサ)であって、スキップ処理制御ユニット22は、スキップ処理中は、1サイクル命令や2サイクル命令といった命令の種類に関わらず、プロセッサ内外(プロセッサ内外部)に対するデータの書き込みを禁止し続ける。よって、命令無効時にも命令有効時と同じサイクル数を消費させて、命令の有効無効に関わらず、実行サイクルを一定にすることができる。このようにして、スキップ中にデータの書き込みを禁止するための基本構成を構築することができる。   The CPU (processor) includes a skip processing control unit 22 that invalidates one or a plurality of successive instructions when a condition is established based on the condition determination, and skip processing control. During the skip process, the unit 22 keeps prohibiting data writing to the inside and outside of the processor (inside and outside the processor) regardless of the type of instruction such as a 1-cycle instruction or a 2-cycle instruction. Therefore, even when the instruction is invalid, the same number of cycles as when the instruction is valid is consumed, and the execution cycle can be made constant regardless of the validity of the instruction. In this way, a basic configuration for prohibiting data writing during skipping can be constructed.

ここで、スキップ処理制御ユニット22は、命令によるデータの書き込みを制御するスキップ状態フラグ(22a)を備え、スキップ状態フラグ(22a)は、スキップ処理開始命令を実行することでスキップ状態にセットされ、スキップ処理終了命令を実行することで通常状態にリセットされるので、スキップ状態フラグをセット/リセットすることができる。
(第2の比較例
次に、第2の比較例を、第1の比較例との相違点を中心に説明する。
Here, the skip processing control unit 22 includes a skip state flag (22a) for controlling writing of data by an instruction, and the skip state flag (22a) is set to a skip state by executing a skip processing start instruction. Since the normal state is reset by executing the skip processing end instruction, the skip state flag can be set / reset.
(Second comparative example )
Next, the second comparative example will be described focusing on the differences from the first comparative example .

図5には、図4に代わる本比較例におけるスキップ処理中のパイプライン動作図を示す。
第1の比較例に比べ本比較例においては、図4中のスキップ状態フラグをスキップ状態にセットする手段として、条件付き分岐命令を使用している。
FIG. 5 shows a pipeline operation diagram during the skip processing in this comparative example instead of FIG.
Compared to the first comparative example , in this comparative example , a conditional branch instruction is used as means for setting the skip state flag in FIG. 4 to the skip state.

図5において、命令セットに、前方のみに分岐することを許可された条件付き分岐命令を有している。前方のみに分岐することを許可された条件付き分岐命令の条件が成立した場合に、命令デコーダ21よりスキップ処理制御ユニット22に対しスキップ処理開始信号が出力される。これにより、スキップ状態フラグがスキップ状態にセットされ、以降の命令が無効化される。また一方で、条件が不成立の場合にはスキップ状態フラグは通常状態のままとなり、以降の命令は実行される。このように、プログラム制御方法として、条件付き分岐命令を実行した際、条件が成立した場合に、それ以降の命令を無効化するスキップ処理を開始する。   In FIG. 5, the instruction set has conditional branch instructions that are permitted to branch forward only. When the condition of the conditional branch instruction permitted to branch forward only is satisfied, a skip process start signal is output from the instruction decoder 21 to the skip process control unit 22. As a result, the skip state flag is set to the skip state, and subsequent instructions are invalidated. On the other hand, if the condition is not satisfied, the skip state flag remains in the normal state, and the subsequent instructions are executed. As described above, as a program control method, when a conditional branch instruction is executed, if the condition is satisfied, skip processing for invalidating subsequent instructions is started.

スキップ処理制御手段としてのスキップ処理制御ユニット22の制御方法は、第1の比較例における手順と同様であり、分岐しなかった場合(命令を実行)と分岐した場合(命令を無効化)とで、サイクル数は同じとなる。 The control method of the skip processing control unit 22 as the skip processing control means is the same as the procedure in the first comparative example . When the branch does not branch (execute the instruction) and when the branch branches (invalidate the instruction) The number of cycles is the same.

また、本比較例でのプログラム制御方法によれば、スキップ処理を開始するための命令が不要となり、命令数が削減できる。即ち、条件付き分岐命令によりスキップ処理を開始することによって、スキップ命令に比べ、命令数が少なくて済む。また、スキップ処理用の命令を実装しなくてよい。 Further, according to the program control method in this comparative example , an instruction for starting the skip process is not necessary, and the number of instructions can be reduced. That is, by starting skip processing with a conditional branch instruction, the number of instructions can be reduced compared to skip instructions. Also, skip processing instructions need not be implemented.

一方、CPU(プロセッサ)として、スキップ処理制御ユニット22は、命令によるデータの書き込みを制御するスキップ状態フラグ(22a)を備え、スキップ状態フラグ(22a)は、条件付き分岐命令における条件が成立した場合にスキップ状態にセットされる。これにより、スキップ状態フラグをセットする別構成として好ましいものとなる。
(第の実施の形態)
次に、本発明のの実施形態を、第2の比較例との相違点を中心に説明する。
On the other hand, as a CPU (processor), the skip processing control unit 22 includes a skip state flag (22a) for controlling writing of data by an instruction, and the skip state flag (22a) is used when a condition in a conditional branch instruction is satisfied. Set to the skip state. This is preferable as another configuration for setting the skip state flag.
(First Embodiment)
Next, the first embodiment of the present invention will be described with a focus on differences from the second comparative example .

図6は、図1に代わる本実施形態におけるCPUの内部構成を示すブロック図である。図7には、図4に代わる本実施形態におけるスキップ処理中のパイプライン動作図を示す。   FIG. 6 is a block diagram showing the internal configuration of the CPU in the present embodiment that replaces FIG. FIG. 7 shows a pipeline operation diagram during skip processing in this embodiment instead of FIG.

第2の比較例において、スキップ状態フラグを通常状態にリセットする手段として、本実施形態では次のようにしている。
図6において、CPU10は、第1の比較例に挙げたCPU10と同じく、条件判定に基づき条件が成立した場合にそれ以降の一ないし連続する複数の命令を無効化するスキップ処理制御ユニット22を備えている。
In the second comparative example , as a means for resetting the skip state flag to the normal state, in the present embodiment, the following is performed.
In FIG. 6, the CPU 10 includes a skip processing control unit 22 that invalidates one or a plurality of subsequent commands when a condition is established based on the condition determination, like the CPU 10 described in the first comparative example. ing.

CPU10は、IF、DEC、EXE、MA、WBの5種類のステージからなるパイプライン処理にて、プログラムを実行するものである。CPU10は、データの格納や、算術・論理演算を実行するデータパス30と、メモリから取り込んだ命令に応じ、データパス30を制御する制御ユニット20とで構成されている。   The CPU 10 executes a program by pipeline processing including five types of stages of IF, DEC, EXE, MA, and WB. The CPU 10 includes a data path 30 that executes data storage and arithmetic / logical operations, and a control unit 20 that controls the data path 30 according to an instruction fetched from the memory.

制御ユニット20は、命令デコーダ21とスキップ処理制御ユニット22で構成されている。命令デコーダ21は、メモリより取り込んだ命令を格納し、取り込んだ命令を解読する。スキップ処理制御ユニット22は、命令デコーダ21から出力されるスキップ処理開始信号と、データパス30から出力されるスキップ処理終了信号(第2のスキップ処理終了信号II)とから、スキップ状態か否かを判断し、CPU10内外部に対しデータの書き込みを制御する。   The control unit 20 includes an instruction decoder 21 and a skip processing control unit 22. The instruction decoder 21 stores the instruction fetched from the memory and decodes the fetched instruction. The skip processing control unit 22 determines whether or not it is in the skip state from the skip processing start signal output from the instruction decoder 21 and the skip processing end signal (second skip processing end signal II) output from the data path 30. Judgment is made and data writing is controlled inside and outside the CPU 10.

データパス30は、ロードストアユニット31と実行ユニット32とレジスタファイル33とプログラム状態レジスタ34とプログラムカウンタ35と分岐先アドレスレジスタ36とパイプラインレジスタ37で構成されている。ロードストアユニット31は、CPU10外部からのデータ読み込み及び外部へのデータ書き込みを制御する。実行ユニット32は、命令デコーダ21で解読された命令に従い、制御ユニット20から出力される、制御信号に応じて、所定の算術・論理演算を実行する。ここで、実行ユニット32においてALU(算術論理演算ユニット)50を有し、このALU50はスキップ処理時にも使用される。レジスタファイル33は、実行ユニット32により実行された結果のデータもしくはメモリ等のCPU10外部より取り込まれたデータを格納する。プログラム状態レジスタ34は、CPU10の処理状態を保持する。プログラムカウンタ35は、フェッチする命令のアドレスを示す。分岐先アドレスレジスタ36は、条件付き分岐命令での分岐先アドレスを保持する。パイプラインレジスタ37は、実行ユニット32(ALU50)の出力であるコンディションコード信号を、第1のスキップ処理終了信号Iとして、当該信号を1サイクル遅延させて、この信号を第2のスキップ処理終了信号IIとしてスキップ処理制御ユニット22に出力する。   The data path 30 includes a load / store unit 31, an execution unit 32, a register file 33, a program status register 34, a program counter 35, a branch destination address register 36, and a pipeline register 37. The load / store unit 31 controls data reading from the outside of the CPU 10 and data writing to the outside. The execution unit 32 executes predetermined arithmetic / logical operations in accordance with the control signal output from the control unit 20 according to the instruction decoded by the instruction decoder 21. Here, the execution unit 32 has an ALU (arithmetic logic unit) 50, and this ALU 50 is also used during skip processing. The register file 33 stores data obtained as a result of execution by the execution unit 32 or data fetched from outside the CPU 10 such as a memory. The program status register 34 holds the processing status of the CPU 10. The program counter 35 indicates the address of the instruction to be fetched. The branch destination address register 36 holds a branch destination address in a conditional branch instruction. The pipeline register 37 uses the condition code signal, which is the output of the execution unit 32 (ALU 50), as the first skip processing end signal I, delays the signal by one cycle, and uses this signal as the second skip processing end signal. Output to the skip processing control unit 22 as II.

また、バス接続についても、第1の比較例のCPUと同様の構成であり、ノイマンバス構成となっている。
本実施形態においては、スキップ処理制御ユニット22とデータパス30によりスキップ処理制御手段が構成されている。
Further, the bus connection is the same as that of the CPU of the first comparative example , and has a Neumann bus configuration.
In the present embodiment, the skip processing control unit 22 and the data path 30 constitute a skip processing control means.

以上、述べたようなCPU構成における、スキップ処理の手順を図6及び図7を用いて、説明する。
スキップ処理制御ユニット22は、第2の比較例と同じく、スキップ状態フラグ22aを備えており、スキップ状態フラグ22aがスキップ状態の場合には、内外部の書き込み制御信号として書き込み禁止を出力する。
The skip processing procedure in the CPU configuration as described above will be described with reference to FIGS.
Similar to the second comparative example , the skip processing control unit 22 includes a skip state flag 22a. When the skip state flag 22a is in the skip state, the skip processing control unit 22 outputs write prohibition as an internal / external write control signal.

また、スキップ状態フラグ22aは、第2の比較例と同様に、命令デコーダ21で条件
付き分岐命令を解読し、条件が成立した際に出力される、スキップ処理開始信号を受けて、スキップ状態にセットされる。
Similarly to the second comparative example , the skip state flag 22a decodes the conditional branch instruction by the instruction decoder 21, receives the skip processing start signal output when the condition is satisfied, and enters the skip state. Set.

本実施形態におけるスキップ処理制御ユニット22は、スキップ処理開始信号が入力された場合には、同時に、実行ユニット32にて算出された、分岐先アドレスを分岐先アドレスレジスタ36に格納する。   When the skip processing start signal is input, the skip processing control unit 22 in this embodiment stores the branch destination address calculated by the execution unit 32 in the branch destination address register 36 at the same time.

また、本実施形態のスキップ処理制御ユニット22は、スキップ状態フラグがスキップ状態の間、実行ユニット32を制御して、分岐先アドレスレジスタ36の分岐先アドレスとプログラムカウンタ35の現在のアドレスの比較演算を行わせる。具体的には、分岐先アドレスレジスタ36の分岐先アドレスとプログラムカウンタ35の現在のアドレスを実行ユニット32内のALU(算術論理演算ユニット)50に入力し、実行ユニット32に対し、比較オペレーションを指示する。条件付き分岐命令(前方のみに分岐することを許可された条件付き分岐命令)によるスキップ処理区間は、条件付き分岐命令の次命令から、分岐先アドレスの1つ手前までとなるため、[分岐先アドレスレジスタ36の分岐先アドレス]=[プログラムカウンタ35の現在のアドレス]となった時点で、スキップ状態フラグをリセットすればよいことになる。本構成の場合、実行ユニット32(ALU50)の出力であるコンディションコード信号が第1のスキップ処理終了信号Iとなる。   Further, the skip processing control unit 22 of this embodiment controls the execution unit 32 while the skip state flag is in the skip state, and compares the branch destination address of the branch destination address register 36 with the current address of the program counter 35. To do. Specifically, the branch destination address of the branch destination address register 36 and the current address of the program counter 35 are input to an ALU (arithmetic logic unit) 50 in the execution unit 32, and a comparison operation is instructed to the execution unit 32. To do. Since the skip processing section by a conditional branch instruction (conditional branch instruction that is permitted to branch only forward) is from the next instruction of the conditional branch instruction to one before the branch destination address, When the branch destination address of the address register 36] = [current address of the program counter 35], the skip state flag may be reset. In the case of this configuration, the condition code signal that is the output of the execution unit 32 (ALU 50) is the first skip processing end signal I.

ただし、複数のステージによるパイプライン処理を行うCPUの場合、演算結果を書き込むタイミングとプログラムカウンタ35の値(アドレス)とにずれが生じるため、タイミング調整のためのパイプラインレジスタ37(この場合、1サイクル分の遅延)を用いて遅延させた信号を第2のスキップ処理終了信号IIとする。このようにしてデータの書き込みのみを分岐先アドレスの1つ手前の命令まで禁止することができる(命令有効時と同じサイクル数を消費させることができる)。   However, in the case of a CPU that performs pipeline processing using a plurality of stages, there is a difference between the timing at which the operation result is written and the value (address) of the program counter 35, so that the pipeline register 37 for timing adjustment (in this case, 1 A signal delayed by using a delay of a cycle) is set as a second skip processing end signal II. In this way, only data writing can be prohibited up to the instruction immediately before the branch destination address (the same number of cycles as when the instruction is valid can be consumed).

ここで、プログラムカウンタ35のアドレスと分岐先アドレスレジスタ36のアドレスの比較を実行ユニット32で処理する構成を採っているのは、演算器の共有化によるCPU小型化の効果を狙ったものであり、スキップ状態フラグがスキップ状態の間は、命令が無効となるため、実行ユニット32を分岐先アドレスレジスタ36の分岐先アドレスとプログラムカウンタ35の現在のアドレスの比較演算に有効利用することが可能である。   Here, the configuration in which the execution unit 32 processes the comparison of the address of the program counter 35 and the address of the branch destination address register 36 is intended to reduce the CPU size by sharing the arithmetic unit. Since the instruction is invalid while the skip state flag is in the skip state, the execution unit 32 can be used effectively for comparison between the branch destination address of the branch destination address register 36 and the current address of the program counter 35. is there.

スキップ状態フラグが条件付き分岐命令によってセット及びリセットされる動作を、図7を用いて詳しく説明する。
メモリ上のアドレスが100番地にある、条件付き分岐命令(前方のみに分岐することを許可された条件付き分岐命令)をサイクル番号♯1の時点でフェッチし、サイクル番号♯3で実行する。サイクル番号♯3において条件判定を行い条件が成立した時点で、命令デコーダ21よりスキップ処理開始信号が出力され、サイクル番号♯4の時点ではスキップ状態フラグがセットされる。これと同時に、分岐先アドレスレジスタ36に分岐先アドレス(この場合105)がセットされる。
The operation in which the skip state flag is set and reset by the conditional branch instruction will be described in detail with reference to FIG.
A conditional branch instruction (conditional branch instruction permitted to branch only forward) at the address 100 in the memory is fetched at cycle number # 1 and executed at cycle number # 3. When the condition is determined in cycle number # 3 and the condition is satisfied, a skip processing start signal is output from the instruction decoder 21, and the skip state flag is set at the time of cycle number # 4. At the same time, the branch destination address (in this case 105) is set in the branch destination address register 36.

スキップ状態フラグがスキップ状態にセットされると、その時点でEXEステージにある命令から、データの書き込みが禁止され、図7においては、命令Aのデータ書き込みから禁止される。また、スキップ状態フラグがスキップ状態の間は、実行ユニット32でプログラムカウンタ35のアドレスと分岐先アドレスレジスタ36のアドレスの比較演算が行われる。[プログラムカウンタの現在のアドレス]≧[分岐先アドレスレジスタのアドレス]となったサイクル番号♯6の時点で、第1のスキップ処理終了信号Iが出力され、これに伴ってパイプラインレジスタ37により1サイクル分だけ遅延してスキップ状態フラグがリセットされる。即ち、サイクル番号♯7までスキップ状態フラグがセットされ、サイクル番号♯8でリセットされる。   When the skip state flag is set to the skip state, data writing is prohibited from the instruction currently in the EXE stage, and in FIG. While the skip state flag is in the skip state, the execution unit 32 compares the address of the program counter 35 with the address of the branch destination address register 36. At the time of cycle number # 6 where [the current address of the program counter] ≧ [address of the branch destination address register], the first skip processing end signal I is output. The skip state flag is reset with a delay of the cycle. That is, the skip state flag is set up to cycle number # 7 and reset at cycle number # 8.

アドレスが105番地の命令である命令Eは、EXEステージがスキップ状態フラグが通常状態にリセットされたサイクル番号♯8の時点となるため、命令E以降のデータ書き込みから再び有効になる。   The instruction E, which is an instruction at the address 105, becomes valid again from the data write after the instruction E because the EXE stage is at the time of cycle number # 8 when the skip state flag is reset to the normal state.

このように、本実施形態のCPU10では、スキップ処理専用の命令を用いることなく、スキップ処理制御を実現することができ、かつハードウェアリソースを有効活用することで、小型な構成とすることができる。   As described above, the CPU 10 according to the present embodiment can realize the skip process control without using the instruction dedicated to the skip process, and can have a small configuration by effectively using the hardware resources. .

また、本実施形態のプログラム制御方法によれば、スキップ処理を終了するための命令が不要となり、命令数が削減できる。さらに、条件付き分岐命令での条件成立にてフラグ・セットを行うとともにアドレスの比較にてフラグ・リセットを行うことにより、スキップ処理を開始、終了するための命令が不要となり、命令数が削減できる他、プログラム中の、命令の有効化/無効化を行う位置をプログラマが意識し、必要な命令を埋め込む作業を不要とできる効果もある。   In addition, according to the program control method of the present embodiment, an instruction for ending the skip process is unnecessary, and the number of instructions can be reduced. Furthermore, by setting a flag when a condition is satisfied in a conditional branch instruction and performing a flag reset by comparing addresses, an instruction for starting and ending skip processing becomes unnecessary, and the number of instructions can be reduced. In addition, there is an effect that the programmer is aware of the position where the instruction is validated / invalidated in the program, and the work of embedding a necessary instruction is unnecessary.

以上のごとく、本実施形態は下記の特徴を有する。
プログラム制御方法として、前方のみに分岐することを許可された条件付き分岐命令で指定された分岐先アドレスと、プログラムカウンタ35の現在のアドレスが、分岐先アドレス≦現在のアドレスとなったことをトリガとしてスキップ処理を終了する。これにより、スキップ無効命令を挿入する場合に比べ、命令数が少なくて済む。また、スキップ処理用の命令を実装しなくてよい。
As described above, the present embodiment has the following features.
As a program control method, it is triggered that the branch destination address specified by the conditional branch instruction permitted to branch only forward and the current address of the program counter 35 satisfy the branch destination address ≦ the current address. The skip process ends. Thus, the number of instructions can be reduced as compared with the case where a skip invalid instruction is inserted. Also, skip processing instructions need not be implemented.

CPU(プロセッサ)として、スキップ処理制御手段(22,30)は、条件付き分岐命令によって指定される分岐先アドレスを保持するための分岐先アドレスレジスタ36と、分岐先アドレスレジスタ36の分岐先アドレスとプログラムカウンタ35の現在のアドレスを比較するアドレス比較手段としてのALU(算術論理演算ユニット)50と、を備え、ALU50は、分岐先アドレス≦現在のアドレスとなったことをトリガにして、スキップ状態フラグを通常状態にリセットする。これにより、スキップ状態フラグをリセットする別構成として好ましいものとなる。   As the CPU (processor), the skip processing control means (22, 30) includes a branch destination address register 36 for holding a branch destination address specified by the conditional branch instruction, and a branch destination address of the branch destination address register 36. An ALU (arithmetic logic unit) 50 as an address comparison means for comparing the current address of the program counter 35. The ALU 50 is triggered by the fact that the branch destination address ≦ the current address. To the normal state. This is preferable as another configuration for resetting the skip state flag.

また、アドレス比較手段は、データパス30の内部のALU(算術論理演算ユニット)50で構成され、スキップ状態フラグがスキップ状態にセットされている場合には、ALU50に、分岐先アドレスレジスタ36の分岐先アドレスとプログラムカウンタ35の現在のアドレスを入力し、ALU50より出力されるコンディションコード、即ち、比較演算結果が分岐先アドレス≦現在のアドレスとなったことをトリガにして、スキップ状態フラグを通常状態にリセットする。これにより、分岐先アドレスレジスタ36の分岐先アドレスとプログラムカウンタ35の現在のアドレスの比較を実行する構成として、データパス30の内部のALU50を用いることによってリソースの活用による小型化を図ることができる。
(第の実施の形態)
次に、本発明のの実施形態を、第の実施形態との相違点を中心に説明する。
The address comparison means is composed of an ALU (arithmetic logic unit) 50 in the data path 30. When the skip state flag is set to the skip state, the branch of the branch destination address register 36 is sent to the ALU 50. The destination address and the current address of the program counter 35 are input, and the condition code output from the ALU 50, that is, the comparison result is a branch destination address ≦ the current address as a trigger, and the skip state flag is set to the normal state. Reset to. Thus, as a configuration for comparing the branch destination address of the branch destination address register 36 and the current address of the program counter 35, the ALU 50 inside the data path 30 can be used to reduce the size by utilizing resources. .
(Second Embodiment)
Next, a second embodiment of the present invention will be described focusing on differences from the first embodiment.

図8は、図6に代わる本実施形態におけるCPUの内部構成を示すブロック図である。図9には、図7に代わる本実施形態におけるスキップ処理中のパイプライン動作図を示す。   FIG. 8 is a block diagram showing the internal configuration of the CPU in this embodiment instead of FIG. FIG. 9 shows a pipeline operation diagram during skip processing in this embodiment instead of FIG.

図8において、スキップ処理制御ユニット22は、スキップ状態フラグ22aと、フラグデータ退避手段としてのフラグデータ退避ユニット22bと、フラグデータ復帰手段としてのフラグデータ復帰ユニット22cを備えている。また、データパス30にはフラグデータ退避用レジスタ38が設けられている。   In FIG. 8, the skip processing control unit 22 includes a skip state flag 22a, a flag data saving unit 22b as flag data saving means, and a flag data restoration unit 22c as flag data restoration means. The data path 30 is provided with a flag data saving register 38.

本実施形態においては、スキップ処理制御ユニット22とデータパス30によりスキップ処理制御手段が構成されている。
この構成により、次のように作用する。
In the present embodiment, the skip processing control unit 22 and the data path 30 constitute a skip processing control means.
This configuration operates as follows.

図9において、アドレスが100番地の条件付き分岐命令(前方のみに分岐することを許可された条件付き分岐命令)の後に、アドレスが101番地の命令A、アドレスが102番地の命令B、アドレスが103番地の命令C、アドレスが104番地の命令Dがスキップ処理されるとともに、アドレスが102番地の命令Bとアドレスが103番地の命令Cとの間において割り込みが発生してアドレスが106番地の命令Fを実行した後にリターンするものとする。   In FIG. 9, after a conditional branch instruction with an address of 100 (a conditional branch instruction permitted to branch only forward), an instruction A with an address of 101, an instruction B with an address of 102, and an address of Instruction C at address 103 and instruction D at address 104 are skipped, and an interrupt occurs between instruction B at address 102 and instruction C at address 103, so that the instruction at address 106 is addressed. Return after executing F.

条件付き分岐命令(前方のみに分岐することを許可された条件付き分岐命令)によりスキップ状態フラグがセットされ、その後の割り込みの発生時にスキップ処理制御ユニット22のフラグデータ退避ユニット22bはスキップ状態フラグのフラグデータをレジスタ38へ退避する。また、割り込みの発生にて、プログラムカウンタ35および分岐先アドレスレジスタ36にはアドレス(番地)として「106」がセットされる(分岐先アドレス≦現在のアドレスが成立する)。   A skip state flag is set by a conditional branch instruction (a conditional branch instruction that is permitted to branch forward only), and the flag data saving unit 22b of the skip processing control unit 22 is set to the skip state flag when a subsequent interrupt occurs. The flag data is saved in the register 38. When an interrupt occurs, “106” is set as an address (address) in the program counter 35 and the branch destination address register 36 (branch destination address ≦ current address is established).

割り込みが終了した後の復帰命令により、スキップ処理制御ユニット22のフラグデータ復帰ユニット22cは、レジスタ38に退避したフラグデータをスキップ状態フラグに復帰する。また割り込みの終了に伴うアドレスが103番地の命令Cを処理すべくプログラムカウンタ35にはアドレス(番地)として「103」がセットされる(分岐先アドレスレジスタ36にはアドレス(番地)として「105」がセットされ、分岐先アドレス>現在のアドレスとなる)。   The flag data return unit 22c of the skip processing control unit 22 returns the flag data saved in the register 38 to the skip state flag in response to the return instruction after the interruption is completed. Further, “103” is set as the address (address) in the program counter 35 to process the instruction C at the address 103 at the end of the interruption (“105” as the address (address) in the branch destination address register 36. Is set, branch destination address> current address).

その後、サイクル番号♯7において、分岐先アドレスレジスタ36の分岐先アドレスが「105」、プログラムカウンタ35の現在のアドレスが「105」、即ち、分岐先アドレス=現在のアドレスとなり、その次のサイクルでスキップ状態フラグをリセットする(スキップ処理を終了させる)。   Thereafter, in cycle number # 7, the branch destination address of the branch destination address register 36 is “105” and the current address of the program counter 35 is “105”, that is, the branch destination address = current address. Reset the skip state flag (end the skip process).

このようにして、割り込みによって処理が切り替わり、リターン命令により処理を再開する際においても、スキップ処理を継続することができる。
ここで、前述のフラグデータ退避ユニット22b、フラグデータ復帰ユニット22cおよびフラグデータ退避用レジスタ38が無かった場合について図10を用いて説明する。
In this manner, the skip process can be continued even when the process is switched by the interrupt and the process is resumed by the return instruction.
Here, a case where the flag data saving unit 22b, the flag data restoration unit 22c, and the flag data saving register 38 are not provided will be described with reference to FIG.

図10において、条件付き分岐命令(前方のみに分岐することを許可された条件付き分岐命令)によりスキップ状態フラグがセットされた後において割り込みが発生してもスキップ状態フラグのフラグデータの退避が行われない。この状態において、割り込みの発生にて、プログラムカウンタ35および分岐先アドレスレジスタ36にはアドレス(番地)として「106」がセットされ、この分岐先アドレス≦現在のアドレスの成立に伴ってスキップ状態フラグがリセットされることになる。   In FIG. 10, the flag data of the skip state flag is saved even if an interrupt occurs after the skip state flag is set by a conditional branch instruction (conditional branch instruction permitted to branch only forward). I will not. In this state, when an interrupt occurs, “106” is set as the address (address) in the program counter 35 and the branch destination address register 36, and the skip state flag is set when this branch destination address ≦ current address is established. It will be reset.

割り込みが終了すると、アドレスが103番地の命令Cを処理すべくプログラムカウンタ35にはアドレス(番地)として「103」が、分岐先アドレスレジスタ36にはアドレス(番地)として「105」がセットされ、分岐先アドレス>現在のアドレスとなるが、既にスキップ状態フラグのリセットのための動作が終わっているため、スキップ処理を継続することができない。   When the interruption ends, “103” is set as the address (address) in the program counter 35 and “105” is set as the address (address) in the branch destination address register 36 to process the instruction C at the address 103. Although the branch destination address> the current address, the skip processing cannot be continued because the operation for resetting the skip state flag has already been completed.

これに対し、本実施形態においては、割り込みによりスキップ状態フラグがリセットされることはない。
スキップ状態フラグのデータは図8のフラグデータ退避用レジスタ38ではなくCPU外部のメモリに退避してもよい。
On the other hand, in this embodiment, the skip state flag is not reset by an interrupt.
The skip state flag data may be saved in a memory outside the CPU instead of the flag data saving register 38 of FIG.

なお、図8においてスキップ状態フラグ22aは制御ユニット20ではなくデータパス30のプログラム状態レジスタ34においてスキップ状態フラグ34aとして設けてもよい。   In FIG. 8, the skip state flag 22 a may be provided as the skip state flag 34 a in the program state register 34 of the data path 30 instead of the control unit 20.

以上のごとく、本実施形態は下記の特徴を有する。
CPU(プロセッサ)として、スキップ処理制御手段(22,30)は、割り込み発生時にスキップ状態フラグ(22a)のフラグデータをレジスタ38ないしメモリへ退避するフラグデータ退避ユニット22bと、復帰命令により、退避したフラグデータをスキップ状態フラグ(22a)に復帰するフラグデータ復帰ユニット22cと、を備える。これにより、割り込み時のスキップ処理を継続することができる。この構成は第1の比較例に適用してもよい。
As described above, the present embodiment has the following features.
As the CPU (processor), the skip processing control means (22, 30) saves the flag data save unit 22b that saves the flag data of the skip state flag (22a) to the register 38 or the memory when an interrupt occurs, and the return instruction. A flag data return unit 22c for returning the flag data to the skip state flag (22a). Thereby, the skip process at the time of interruption can be continued. This configuration may be applied to the first comparative example .

なお、これまでの説明においてはパイプラインでシーケンス制御を行う場合について説明してきたが、これに限定されるものではない。   In the above description, the case where the sequence control is performed in the pipeline has been described. However, the present invention is not limited to this.

第1の比較例のCPUの内部構成を示すブロック図。The block diagram which shows the internal structure of CPU of a 1st comparative example . CPUのパイプライン動作図。The pipeline operation | movement figure of CPU. 一般例でのスキップ処理中のパイプライン動作図。Pipeline operation diagram during skip processing in the general example. 第1の比較例のスキップ処理中のパイプライン動作図。The pipeline operation | movement figure in the skip process of the 1st comparative example . 第2の比較例のスキップ処理中のパイプライン動作図。The pipeline operation | movement figure in the skip process of the 2nd comparative example . の実施形態のCPUの内部構成を示すブロック図。The block diagram which shows the internal structure of CPU of 1st Embodiment. の実施形態のスキップ処理中のパイプライン動作図。The pipeline operation | movement figure in the skip process of 1st Embodiment. の実施形態のCPUの内部構成を示すブロック図。The block diagram which shows the internal structure of CPU of 2nd Embodiment. の実施形態のスキップ処理中のパイプライン動作図。The pipeline operation | movement figure in the skip process of 2nd Embodiment. 比較のためのスキップ処理中のパイプライン動作図。The pipeline operation | movement figure in the skip process for a comparison.

符号の説明Explanation of symbols

10…CPU、20…制御ユニット、21…命令デコーダ、22…スキップ処理制御ユニット、22a…スキップ状態フラグ、22b…フラグデータ退避ユニット、22c…フラグデータ復帰ユニット、30…データパス、31…ロードストアユニット、32…実行ユニット、33…レジスタファイル、34…プログラム状態レジスタ、35…プログラムカウンタ、36…分岐先アドレスレジスタ、37…パイプラインレジスタ、38…フラグデータ退避用レジスタ、50…ALU。   DESCRIPTION OF SYMBOLS 10 ... CPU, 20 ... Control unit, 21 ... Instruction decoder, 22 ... Skip processing control unit, 22a ... Skip state flag, 22b ... Flag data saving unit, 22c ... Flag data restoration unit, 30 ... Data path, 31 ... Load store Unit: 32 ... Execution unit, 33 ... Register file, 34 ... Program status register, 35 ... Program counter, 36 ... Branch destination address register, 37 ... Pipeline register, 38 ... Flag data saving register, 50 ... ALU.

Claims (2)

条件判定に基づき条件が成立した場合に、それ以降の一ないし連続する複数の命令を無効化するスキップ処理制御手段を備えたプロセッサであって、
前記スキップ処理制御手段は、
命令によるデータの書き込みを制御するフラグであって前方のみに分岐することを許可された条件付き分岐命令における条件が成立した場合にスキップ状態にセットされるスキップ状態フラグと、
前記条件付き分岐命令によって指定される分岐先アドレスを保持するための分岐先アドレスレジスタと、
前記分岐先アドレスレジスタの分岐先アドレスとプログラムカウンタの現在のアドレスを比較し、
分岐先アドレス≦現在のアドレス
となったことをトリガにして、前記スキップ状態フラグを通常状態にリセットするアドレス比較手段と、
割り込み発生時に前記スキップ状態フラグのフラグデータをレジスタないしメモリへ退避するフラグデータ退避手段と、
復帰命令により、退避した前記フラグデータをスキップ状態フラグに復帰するフラグデータ復帰手段とを備え、
前記スキップ状態フラグがスキップ状態にセットされているスキップ処理中は命令の種類に関わらず、プロセッサ内外に対するデータの書き込みを禁止し続けることを特徴とするプロセッサ。
When a condition is established based on the condition determination, the processor includes skip processing control means for invalidating one or more consecutive instructions thereafter,
The skip processing control means includes:
A flag that controls writing of data by the instruction, a skip state flag that is set to a skip state when a condition in a conditional branch instruction that is permitted to branch forward only is satisfied, and
A branch destination address register for holding a branch destination address specified by the conditional branch instruction;
Compare the branch destination address of the branch destination address register with the current address of the program counter,
Address comparison means for resetting the skip state flag to a normal state, triggered by the fact that the branch destination address ≦ the current address ,
Flag data saving means for saving flag data of the skip state flag to a register or a memory when an interrupt occurs;
Flag data return means for returning the saved flag data to a skip state flag by a return instruction ;
A processor characterized in that during the skip process in which the skip state flag is set to the skip state, data writing to the inside and outside of the processor is continuously prohibited regardless of the type of instruction.
前記アドレス比較手段は、データパスの内部の算術論理演算ユニットで構成され、スキップ状態フラグがスキップ状態にセットされている場合には、前記算術論理演算ユニットに、分岐先アドレスレジスタの分岐先アドレスとプログラムカウンタの現在のアドレスを入力し、前記算術論理演算ユニットより出力されるコンディションコードが
分岐先アドレス≦現在のアドレス
となったことをトリガにして、スキップ状態フラグを通常状態にリセットすることを特徴とする請求項1に記載のプロセッサ。
The address comparing means is composed of an arithmetic logic unit inside the data path, and when the skip state flag is set to the skip state, the arithmetic logic unit has the branch destination address of the branch destination address register. The current address of the program counter is input, and when the condition code output from the arithmetic logic unit becomes a branch destination address ≦ the current address, the skip state flag is reset to the normal state. The processor according to claim 1.
JP2005130382A 2004-12-21 2005-04-27 Program control processor Expired - Fee Related JP4889235B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005130382A JP4889235B2 (en) 2005-04-27 2005-04-27 Program control processor
US11/312,830 US7725694B2 (en) 2004-12-21 2005-12-21 Processor, microcomputer and method for controlling program of microcomputer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005130382A JP4889235B2 (en) 2005-04-27 2005-04-27 Program control processor

Publications (2)

Publication Number Publication Date
JP2006309454A JP2006309454A (en) 2006-11-09
JP4889235B2 true JP4889235B2 (en) 2012-03-07

Family

ID=37476275

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005130382A Expired - Fee Related JP4889235B2 (en) 2004-12-21 2005-04-27 Program control processor

Country Status (1)

Country Link
JP (1) JP4889235B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008299729A (en) * 2007-06-01 2008-12-11 Digital Electronics Corp Processor
JP5012562B2 (en) * 2008-02-27 2012-08-29 株式会社デンソー Microcomputer
JP4829370B1 (en) * 2010-07-09 2011-12-07 株式会社東芝 MEMORY CONTROL DEVICE, MEMORY DEVICE, AND STOP CONTROL METHOD
JP7384374B2 (en) 2019-02-27 2023-11-21 株式会社ウーノラボ central processing unit

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03269728A (en) * 1990-03-20 1991-12-02 Fujitsu Ltd Instruction execution control system for pipeline computer
JP2002082800A (en) * 2000-09-06 2002-03-22 Sanyo Electric Co Ltd Device and method for executing program
WO2004053685A1 (en) * 2002-12-12 2004-06-24 Arm Limited Instruction timing control within a data processing system

Also Published As

Publication number Publication date
JP2006309454A (en) 2006-11-09

Similar Documents

Publication Publication Date Title
US5461722A (en) Parallel processing apparatus suitable for executing in parallel a plurality of instructions including at least two branch instructions
JP4770664B2 (en) Microprocessor and microcomputer using the same
US6832305B2 (en) Method and apparatus for executing coprocessor instructions
JP2006318051A (en) Microprocessor and method of controlling microprocessor
JP4889235B2 (en) Program control processor
US20070079076A1 (en) Data processing apparatus and data processing method for performing pipeline processing based on RISC architecture
US20060095746A1 (en) Branch predictor, processor and branch prediction method
JP5233078B2 (en) Processor and processing method thereof
US20080065870A1 (en) Information processing apparatus
US6862680B2 (en) Microprocessor processing specified instructions as operands
JP3602801B2 (en) Memory data access structure and method
JP2010015298A (en) Information processor and instruction fetch control method
EP0573071A2 (en) A microprocessor
JP5012562B2 (en) Microcomputer
JP4702004B2 (en) Microcomputer
JP4498705B2 (en) Cash system
JP2004062427A (en) Microprocessor
JP4151497B2 (en) Pipeline processing equipment
JP5679263B2 (en) Information processing apparatus and microinstruction processing method
JP4564025B2 (en) Interrupt processing method in information processing apparatus
JP2000099328A (en) Processor and its execution control method
JP2006139644A (en) Processor
JP2010092273A (en) Information processor
JP2000347931A (en) Cache memory and method for controlling cache memory
JPH03291724A (en) Microprogram control system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070620

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090929

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091127

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100817

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101116

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20101122

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20110401

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111213

R151 Written notification of patent or utility model registration

Ref document number: 4889235

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141222

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees