JPH11219294A - Method for controlling program and its device - Google Patents
Method for controlling program and its deviceInfo
- Publication number
- JPH11219294A JPH11219294A JP31897198A JP31897198A JPH11219294A JP H11219294 A JPH11219294 A JP H11219294A JP 31897198 A JP31897198 A JP 31897198A JP 31897198 A JP31897198 A JP 31897198A JP H11219294 A JPH11219294 A JP H11219294A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- code
- nop
- instruction code
- output
- 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
Links
Landscapes
- Advance Control (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は、命令をパイプライ
ン処理する情報処理装置におけるストール(時間稼ぎ)
のプログラム制御方法及び装置に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a stall (gaining time) in an information processing apparatus for processing instructions in a pipeline.
The present invention relates to a program control method and apparatus.
【0002】[0002]
【従来の技術】命令をパイプライン処理する情報処理装
置、例えばディジタルシグナルプロセッサ(以下、DS
Pと略記する)には、汎用レジスタ(以下、GRと略記
する)とは別に、データメモリをアドレッシングするた
めの専用ポインタレジスタ(以下、PRと略記する)が
設けられている。このような情報処理装置では、命令間
でレジスタ干渉などの資源の競合を起こす場合がある。2. Description of the Related Art An information processing apparatus for pipeline processing instructions, for example, a digital signal processor (hereinafter referred to as DS).
P) is provided with a dedicated pointer register (hereinafter abbreviated as PR) for addressing a data memory, separately from a general-purpose register (hereinafter abbreviated as GR). In such an information processing apparatus, there is a case where resource conflict such as register interference occurs between instructions.
【0003】例えば、4段パイプラインの場合、命令フ
ェッチ(IF)、命令デコード1(D1)、命令デコー
ド2(D2)、実行ステージ(EX)の4つの処理ステ
ージがあり、GRからPRへの転送はEXステージで行
われる。また、PRはD1ステージでデータメモリをア
ドレッシングする。したがって、GRからPRへの転送
命令(MOV PR,GR)の直後にデータメモリへの
アクセスを伴う命令(例えば、データメモリからGRへ
の転送命令:MOV GR,M(PR))を実行する
と、変更前のPRの値でアドレッシングが行われ、レジ
スタ干渉が発生するという問題があった。For example, in the case of a four-stage pipeline, there are four processing stages of instruction fetch (IF), instruction decode 1 (D1), instruction decode 2 (D2), and execution stage (EX). The transfer is performed in the EX stage. The PR addresses the data memory in the D1 stage. Therefore, if a command accompanied by access to the data memory (for example, a transfer command from the data memory to GR: MOV GR, M (PR)) is executed immediately after the transfer command from the GR to the PR (MOV PR, GR), There is a problem that addressing is performed with the PR value before the change and register interference occurs.
【0004】レジスタ干渉などの資源競合を回避するた
めには、資源の競合を起こす命令間に無処理命令(以
下、NOPと記す)を挿入して命令をストールさせる方
法が採られる。この資源競合の問題を解決する技術とし
て特開平1−119829が知られている。特開平1−
119829で開示されている技術は、命令コードにN
OP数を指定するフィールドを設け、命令コードデコー
ド時に前記特定フィールドを参照して、挿入するNOP
数を検知し、命令コードの実行内部コードの出力に続い
て所定数のNOPを挿入してストール制御を実現するこ
とにより上記レジスタ干渉を回避させるものである。In order to avoid resource contention such as register interference, a method is adopted in which a no-process instruction (hereinafter referred to as NOP) is inserted between instructions causing resource contention to stall the instruction. JP-A-1-119829 is known as a technique for solving this resource conflict problem. JP 1
The technique disclosed in 119829 uses N
A field for designating the number of OPs is provided.
The register interference is avoided by detecting the number and inserting a predetermined number of NOPs following the output of the execution internal code of the instruction code to realize stall control.
【0005】この技術によれば、命令コードにNOPフ
ィールドを設け、レジスタ干渉など資源競合を起こす命
令に対して、当該命令実行の後に挿入すべきNOP数を
NOPフィールド中に設定することとなる。このNOP
フィールドの設定に従い、レジスタ干渉など資源競合を
起こす先行命令と後続命令の間にストールを実行し、資
源競合を防ぐことができる。4段パイプラインの場合
は、命令1「MOV PR,GR」と命令2「MOV
GR,M(PR)」との間にNOP命令を2つ挿入する
ことにより、命令1の実行により変更されたPRの値を
用いて命令2でアドレッシングする事ができる。According to this technique, an NOP field is provided in an instruction code, and the number of NOPs to be inserted after execution of the instruction is set in the NOP field for an instruction causing resource conflict such as register interference. This NOP
According to the setting of the field, a stall is executed between a preceding instruction and a subsequent instruction that cause resource conflict such as register interference, thereby preventing resource conflict. In the case of a four-stage pipeline, the instruction 1 “MOV PR, GR” and the instruction 2 “MOV PR, GR”
By inserting two NOP instructions between "GR, M (PR)" and "GR, M (PR)", addressing can be performed by the instruction 2 using the PR value changed by the execution of the instruction 1.
【0006】[0006]
【発明が解決しようとする課題】上記特開平1−119
829には、命令コードのNOPフィールドを参照し
て、所定数のNOPを挿入してストール制御を実現する
具体的なハード構成について全く開示されていない。SUMMARY OF THE INVENTION The above-mentioned Japanese Patent Application Laid-Open No. 1-119 has been disclosed.
829 does not disclose a specific hardware configuration for implementing stall control by inserting a predetermined number of NOPs with reference to the NOP field of the instruction code.
【0007】上記特開平1−119829に開示された
技術によれば、レジスタ干渉など資源競合を起こす先行
命令と後続命令がある場合に、先行命令に対してNOP
フィールドを設け、そのNOPフィールド中にNOP数
を設定することができ、先行命令の実行後、必要数のN
OPを挿入することができる。しかし、処理プログラム
において資源競合を起こす先行命令の種類が多く存在す
る場合にはNOPフィールドが設けられた命令コード種
類が増えてしまうこととなる。NOPフィールドを持つ
命令コード種類が多くなるということは、命令コードデ
ータ量の増加を招くこととなり好ましくない。また、従
来の先行命令のコード中にNOPフィールドを設ける方
法であると、命令コード中にNOPフィールドを設ける
フィールド余裕が無い場合、この方法を用いることは不
可能である。According to the technique disclosed in Japanese Patent Laid-Open Publication No. 1-119829, when there is a preceding instruction and a following instruction that cause resource conflict such as register interference, NOP is applied to the preceding instruction.
A field can be provided, and the number of NOPs can be set in the NOP field.
An OP can be inserted. However, if there are many types of preceding instructions that cause resource contention in the processing program, the types of instruction codes provided with the NOP field will increase. Increasing the number of instruction code types having the NOP field undesirably increases the amount of instruction code data. Further, according to the conventional method of providing the NOP field in the code of the preceding instruction, it is impossible to use this method if there is not enough room to provide the NOP field in the instruction code.
【0008】そこで、本発明の第1の目的は、命令コー
ド中のNOPフィールドを参照して所定数のNOPを挿
入してストール制御を実現するプログラム制御装置を提
供することにある。Accordingly, a first object of the present invention is to provide a program control device that realizes stall control by inserting a predetermined number of NOPs with reference to a NOP field in an instruction code.
【0009】また、本発明の第2の目的は、資源競合時
のストール制御のためのNOP挿入に伴う命令コードデ
ータ量の増加を抑えたプログラム制御方法及び装置を提
供することにある。A second object of the present invention is to provide a method and apparatus for controlling a program which suppresses an increase in the amount of instruction code data accompanying insertion of a NOP for stall control at the time of resource contention.
【0010】さらに本発明の第3の目的は、命令コード
中にNOPフィールドを設けるフィールド余裕が少ない
場合、従来の方法に比べてフィールド余裕を高めたプロ
グラム制御方法及び装置を提供することにある。A third object of the present invention is to provide a program control method and apparatus in which, when the field margin for providing the NOP field in the instruction code is small, the field margin is increased as compared with the conventional method.
【0011】[0011]
【課題を解決するための手段】本発明による命令をパイ
プライン処理する情報処理装置における第1のプログラ
ム制御方法は、無処理命令であるNOPの数を示すNO
Pフィールドを命令コードに設け、前記命令コードをデ
コードしたときに、前記NOPフィールドに設定された
NOPの数がNであれば、N個のNOPを挿入した後に
前記命令コードに該当する命令を実行することによりス
トールを実行することを特徴とする。According to a first program control method in an information processing apparatus for performing a pipeline process of an instruction according to the present invention, a NO indicating the number of NOPs which are non-processing instructions
If a P field is provided in the instruction code and the number of NOPs set in the NOP field is N when the instruction code is decoded, the instruction corresponding to the instruction code is executed after inserting N NOPs In this case, the stall is executed.
【0012】上記構成によれば、本発明は、処理プログ
ラム中に資源競合を起こす先行命令と後続命令がある場
合、先行命令を実行後、NOPが挿入され、最後に後続
命令が実行されることになる。According to the above configuration, according to the present invention, when a processing program includes a preceding instruction causing a resource conflict and a subsequent instruction, a NOP is inserted after the preceding instruction is executed, and finally the subsequent instruction is executed. become.
【0013】なお、NOPフィールドへのNOP数の設
定は、アセンブラ、コンパイラ等が、資源の競合を起こ
す可能性のある特定の命令コードに自動的に設定するこ
とが好ましい。後述する第2及び第3のプログラム制御
方法についても同様である。It is preferable that the setting of the number of NOPs in the NOP field is automatically set by a assembler, a compiler, or the like to a specific instruction code that may cause a resource conflict. The same applies to the second and third program control methods described later.
【0014】次に、上記プログラム制御方法において、
処理プログラム中に資源競合を起こす先行命令と後続命
令があり、かつ、前記後続命令の種類が前記先行命令の
種類より少ない場合、前記後続命令コード中にNOPフ
ィールドを設けることが好ましい。Next, in the above program control method,
If the processing program includes a preceding instruction and a succeeding instruction that cause resource conflict, and the type of the following instruction is smaller than the type of the preceding instruction, it is preferable to provide a NOP field in the subsequent instruction code.
【0015】上記構成によれば、資源競合を起こす先行
命令と後続命令のうち、後続命令の種類が先行命令の種
類より少ない場合、後続命令コード中にNOPフィール
ドを設けたので、先行命令コード中にNOPフィールド
を設けた場合に比べてNOPフィールドを設ける命令の
数を削減できる。According to the above configuration, when the type of the subsequent instruction is smaller than the type of the preceding instruction, the NOP field is provided in the subsequent instruction code. The number of instructions for providing the NOP field can be reduced as compared with the case where the NOP field is provided for the.
【0016】本発明による命令をパイプライン処理する
情報処理装置における第2のプログラム制御方法は、処
理プログラム中に、資源競合を起こす先行命令と後続命
令がある場合、先行命令コード中および前記後続命令コ
ード中の双方にNOPフィールドを設け、前記先行命令
コードの命令を実行した後に前記先行命令コードのNO
Pフィールドに設定された数のNOPを挿入し、前記後
続命令コードの命令を実行する前に前記後続命令コード
のNOPフィールドに設定された数のNOPを挿入する
ことによりストールを実行することを特徴とする。According to a second program control method in an information processing apparatus for performing pipeline processing of an instruction according to the present invention, when a processing program includes a preceding instruction and a succeeding instruction which cause resource conflict, the processing instruction includes a preceding instruction code and the succeeding instruction. NOP fields are provided on both sides of the code, and after executing the instruction of the preceding operation code,
The stall is executed by inserting the number of NOPs set in the P field and inserting the number of NOPs set in the NOP field of the subsequent instruction code before executing the instruction of the subsequent instruction code. And
【0017】上記構成によれば、先行命令コード中およ
び後続命令コード中の双方にNOPフィールドを設けた
ので、先行命令又は後続命令の何れか一方、又は双方の
命令コードのフィールド余裕が少ない場合、そのフィー
ルド余裕を高めることができる。According to the above configuration, since the NOP field is provided in both the preceding instruction code and the subsequent instruction code, when the field margin of either the preceding instruction or the subsequent instruction or both instruction codes is small, The field margin can be increased.
【0018】次に、本発明のNOPフィールドを有する
命令コードを含む命令をパイプライン処理するためのプ
ログラム制御装置は、第1の命令コードを格納する命令
コード格納部と、前記命令コード格納部から前記第1の
命令コードを出力するためのアドレスを生成するアドレ
ス生成部と、前記第1の命令コードを入力し、この第1
の命令コードがNOPフィールドを有する命令コードで
あるかの判定結果に基づいて、前記アドレス生成部への
パイプライン処理ステージを一時停止する停止信号の出
力制御と、前記第1の命令コード又はNOPコードを第
2の命令コードとして出力する制御を行なうストール制
御部とを備えたことを特徴とする。Next, according to the present invention, there is provided a program control apparatus for pipeline-processing an instruction including an instruction code having a NOP field, comprising: an instruction code storage unit for storing a first instruction code; An address generation unit for generating an address for outputting the first instruction code; and
Output control of a stop signal for temporarily stopping a pipeline processing stage to the address generation unit, based on a determination result as to whether the instruction code is an instruction code having a NOP field, and the first instruction code or NOP code And a stall control unit for performing control for outputting the second instruction code as a second instruction code.
【0019】上記構成によれば、入力された命令コード
にNOPフィールドがあるか否かの判定結果に従ってパ
イプライン処理ステージを一時停止することができ、ス
トール制御が実現できる。According to the above configuration, the pipeline processing stage can be temporarily stopped in accordance with the result of the determination as to whether or not the input instruction code has the NOP field, and stall control can be realized.
【0020】次に、前記ストール制御部は、前記命令コ
ード格納部から読み出した前記第1の命令コードをラッ
チする第1の命令レジスタと、前記第1の命令レジスタ
から出力される第1の命令コードとNOPコードを入力
し、切替信号に基づいて前記第1の命令コード又はNO
Pコードを選択して第2の命令コードとして出力する切
替部と、前記切替部から出力される第2の命令コードを
入力し、この第2の命令コードがNOPフィールドを有
する命令コードであるか否かを判定し、その判定結果に
基づいて前記アドレス生成部および前記第1の命令レジ
スタへの前記停止信号の出力制御と、前記切替部への前
記切替信号の出力制御を行なうパイプライン一時停止部
を含むことが好ましい。Next, the stall control unit includes a first instruction register for latching the first instruction code read from the instruction code storage unit, and a first instruction output from the first instruction register. Code and NOP code, and the first instruction code or NO
A switching unit that selects a P-code and outputs it as a second instruction code, and inputs a second instruction code output from the switching unit, and determines whether the second instruction code is an instruction code having a NOP field Pipeline suspension for performing output control of the stop signal to the address generation unit and the first instruction register and output control of the switch signal to the switching unit based on the determination result. It is preferable to include a part.
【0021】上記構成によれば、入力された第1の命令
コードがNOPフィールドを有する命令コードである場
合、第2の命令コードとして出力されるとともに、パイ
プライン処理が一時停止されることによりNOPが実行
できる。なお、第2の命令コードは、ストール制御部か
ら出力されるのでNOPに先立って実行されることとな
る。According to the above configuration, when the input first instruction code is an instruction code having a NOP field, the first instruction code is output as the second instruction code and the NOP field is temporarily stopped so that the NOP field is stopped. Can be executed. Since the second instruction code is output from the stall control unit, it is executed before NOP.
【0022】次に、前記ストール制御部は、前記命令コ
ード格納部から読み出した前記第1の命令コードをラッ
チする第1の命令レジスタと、前記第1の命令レジスタ
から読み出した前記第1の命令コードをラッチする第2
の命令レジスタと、前記第2の命令レジスタから出力さ
れる第1の命令コードとNOPコードを入力し、切替信
号に基づいて前記第1の命令コード又はNOPコードを
選択して第2の命令コードとして出力する切替部と、前
記第1の命令レジスタから出力される第1の命令コード
を入力し、この第1の命令コードがNOPフィールドを
有する命令コードであるか否かを判定し、その判定結果
に基づいて、前記アドレス生成部および前記第1、第2
の命令レジスタへの前記停止信号の出力制御と、前記切
替部への前記切替信号の出力制御を行なうパイプライン
一時停止部を含むことが好ましい。Next, the stall control unit comprises: a first instruction register for latching the first instruction code read from the instruction code storage unit; and a first instruction register read from the first instruction register. Second to latch code
And a first instruction code and a NOP code output from the second instruction register, and selecting the first instruction code or the NOP code based on a switching signal to generate a second instruction code And a first instruction code output from the first instruction register, and determines whether or not the first instruction code is an instruction code having a NOP field. Based on a result, the address generation unit and the first and second
It is preferable to include a pipeline temporary stop unit that controls the output of the stop signal to the instruction register and the output of the switch signal to the switch unit.
【0023】上記構成により、第1の命令コードがNO
Pフィールドを有する命令コードである場合、パイプラ
イン処理が一時停止され、切替信号によりNOPコード
が第2のコードとして出力することができる。なお、N
OP実行後、ラッチされた第1の命令コードが第2の命
令コードとして出力されるので、NOP実行後に命令コ
ードがストール制御部から出力され実行されることとな
る。With the above arrangement, the first instruction code is NO
In the case of an instruction code having a P field, the pipeline processing is temporarily stopped, and the NOP code can be output as the second code by the switching signal. Note that N
After the OP is executed, the latched first instruction code is output as the second instruction code. Therefore, the instruction code is output from the stall control unit and executed after the NOP is executed.
【0024】次に、前記ストール制御部は、前記命令コ
ード格納部から読み出した前記第1の命令コードをラッ
チする第1の命令レジスタと、前記第1の命令レジスタ
の出力とNOPコードを入力し、第1の切替信号に基づ
いて、前記第1の命令レジスタの出力又はNOPコード
を選択して出力する第1の切替部と、前記第1の切替部
の出力をラッチする第2の命令レジスタと、前記第2の
命令レジスタの出力とNOPコードを入力し、第2の切
替信号に基づいて、前記第2の命令レジスタの出力又は
NOPコードを選択して第2の命令コードとして出力す
る第2の切替部と、前記第1の切替部からの出力を入力
し、この出力がNOPフィールドを有する命令コードで
あるか否かを判定し、その判定結果に基づいて前記アド
レス生成部および前記第1の命令レジスタへの前記停止
信号および第2の命令レジスタへの前記停止信号と異な
る停止信号の出力制御と、前記第1、第2の切替部への
前記切替信号の出力制御を行なうパイプライン一時停止
部を含むことが好ましい。Next, the stall control unit inputs a first instruction register for latching the first instruction code read from the instruction code storage unit, an output of the first instruction register, and a NOP code. A first switching unit that selects and outputs an output of the first instruction register or a NOP code based on a first switching signal, and a second instruction register that latches an output of the first switching unit And an output of the second instruction register and a NOP code, and an output or a NOP code of the second instruction register selected based on a second switching signal and output as a second instruction code. 2 and an output from the first switching unit, and determines whether or not the output is an instruction code having a NOP field. Based on the determination result, the address generation unit and the Output control of the stop signal to the first instruction register and a stop signal different from the stop signal to the second instruction register, and output control of the switching signal to the first and second switching units are performed. Preferably, a pipeline pause is included.
【0025】上記構成により、第1の命令コードおよび
第2の命令コードの双方にNOPフィールドを設け、第
1の命令コード実行後に所定数のNOPを実行し、さら
に第2の命令コード実行前に所定数のNOPを実行する
ことにより、一命令あたりに設けるNOPフィールド領
域を少なくすることができる。特に、命令コードにNO
Pフィールドを設けるフィールド余裕が少ない場合に有
効である。With the above configuration, the NOP field is provided in both the first instruction code and the second instruction code, a predetermined number of NOPs are executed after the execution of the first instruction code, and the NOP field is executed before the execution of the second instruction code. By executing a predetermined number of NOPs, the NOP field area provided per instruction can be reduced. In particular, if the instruction code is NO
This is effective when the field margin for providing the P field is small.
【0026】なお、NOPフィールド内のビット列が表
わすNOP数は、2進の値に限らず、ビット列の組合わ
せを特定の数値を示すように取り決めておいても良いこ
とは言うまでもない。It is needless to say that the number of NOPs represented by the bit string in the NOP field is not limited to a binary value, and a combination of bit strings may be determined so as to indicate a specific numerical value.
【0027】次に、前記パイプライン一時停止部は、命
令コード中に設けられたNOPフィールドに指定された
NOP数をカウントするNOP数カウント部と、前記命
令コードがNOPフィールドを有する命令コードである
かを判定する判定部とを有し、前記判定部が、NOPフ
ィールドを有する命令コードであると判定した時、前記
NOP数カウント部から出力されるNOP数に対応する
パイプライン処理ステージの間、前記停止信号を出力す
ることが好ましい。Next, the pipeline suspending unit is a NOP number counting unit that counts the number of NOPs specified in a NOP field provided in the instruction code, and the instruction code is an instruction code having a NOP field. And a determining unit for determining whether the instruction code has an NOP field. When the determining unit determines that the instruction code has an NOP field, during a pipeline processing stage corresponding to the number of NOPs output from the NOP number counting unit, Preferably, the stop signal is output.
【0028】上記構成により、NOPフィールドが設け
られた特定命令を判定でき、かつ、NOPフィールドに
設定されているNOP数を検知することができる。According to the above configuration, it is possible to determine the specific instruction provided with the NOP field and to detect the number of NOPs set in the NOP field.
【0029】[0029]
【発明の実施の形態】以下、本発明の実施形態を説明す
る。最初に、本発明の基本的考え方を説明し、その後、
具体的な実施形態について説明する。Embodiments of the present invention will be described below. First, the basic concept of the present invention will be described, and then,
A specific embodiment will be described.
【0030】まず、本発明のプログラム制御方法の基本
的考え方を以下に示す。プログラム処理中、先行命令と
後続命令において同じレジスタを参照する場合などにお
いて、レジスタ干渉などの資源競合が発生する場合があ
る。First, the basic concept of the program control method of the present invention will be described below. During the program processing, when the same register is referred to in the preceding instruction and the succeeding instruction, resource contention such as register interference may occur.
【0031】図1(a)にレジスタ干渉が起きる様子の
一例を示す。これは、4段パイプラインの場合のタイミ
ングチャートであり、先行命令が、GRからPRへのデ
ータ転送命令“MOV PR,GR”であり、後続命令
が、PR値をアドレスとしたデータメモリからGRへの
転送命令“MOV GR,M(PR)”であり、両者が
連続している。上段に示した先行命令においてGRから
PRへのデータ転送はEXステージで行われる。一方、
下段に示した後続命令においてPRはD1ステージでデ
ータメモリをアドレッシングする。つまり、先行命令に
よるPRへのデータ転送より先に後続命令におけるアド
レッシングが行われてしまい、データ転送前のPRの値
でアドレッシングしてしまうことになる。FIG. 1A shows an example of how register interference occurs. This is a timing chart in the case of a four-stage pipeline, in which the preceding instruction is a data transfer instruction “MOV PR, GR” from GR to PR, and the succeeding instruction is a data transfer instruction from the data memory using the PR value as an address. Transfer instruction “MOV GR, M (PR)”, and both are continuous. In the preceding instruction shown in the upper part, data transfer from GR to PR is performed in the EX stage. on the other hand,
In the subsequent instruction shown in the lower part, the PR addresses the data memory in the D1 stage. In other words, the addressing of the subsequent instruction is performed before the data transfer to the PR by the preceding instruction, and the addressing is performed with the PR value before the data transfer.
【0032】このレジスタ干渉の問題を回避するために
は、先行命令と後続命令の間に必要数のNOPを挿入す
ることによりストール制御を行ない、両者のタイミング
を調整すれば良い。NOP挿入によるレジスタ干渉を回
避した様子を図1(b)に示す。2つのNOPが挿入さ
れ、後続命令のタイミングがパイプライン処理ステージ
2つ分遅延するため、後続命令は、先行命令によるデー
タ転送後のPR値を用いてアドレッシングできることと
なる。In order to avoid the problem of register interference, stall control may be performed by inserting a required number of NOPs between the preceding instruction and the following instruction, and the timing of both may be adjusted. FIG. 1B shows a state in which register interference due to NOP insertion is avoided. Since two NOPs are inserted and the timing of the subsequent instruction is delayed by two pipeline processing stages, the subsequent instruction can be addressed using the PR value after data transfer by the preceding instruction.
【0033】NOP挿入を指定する方法として、資源競
合をハードウェアで検出してNOPを挿入する方法やプ
ログラム中にNOP命令を挿入して書き込んでおく方法
もあるが、前者は回路規模の増大を招き、後者はプログ
ラム中の命令数が多くなりメモリを多く消費してしまう
ので、本発明では、命令コード中にNOPフィールドを
設けてNOP挿入を指定する方法をとる。As a method of designating NOP insertion, there are a method of detecting resource conflict by hardware and inserting a NOP, and a method of inserting and writing a NOP instruction in a program. Inviting the latter, the number of instructions in the program increases and consumes a lot of memory. Therefore, in the present invention, a method of providing a NOP field in the instruction code and designating NOP insertion is adopted.
【0034】この命令コード中にNOPフィールドを設
ける方法は3通りある。第1は資源競合を起こす先行命
令中に設ける方法、第2は後続命令中に設ける方法、第
3は先行命令後続命令双方に分割して設ける方法であ
る。この第1〜第3のどの方法によるべきかは、資源競
合を起こす先行命令と後続命令の性質による。There are three methods for providing a NOP field in this instruction code. The first is a method provided in a preceding instruction causing a resource conflict, the second is a method provided in a subsequent instruction, and the third is a method provided separately for both the preceding instruction and the subsequent instruction. Which of the first to third methods should be used depends on the nature of the preceding instruction and the following instruction that cause resource conflict.
【0035】図2は、資源競合を起こす命令を、命令種
類数とフィールド余裕に注目して分類した図表である。
タイプIに属する先行命令と後続命令の組み合わせに対
しては、上記第1の先行命令の命令コード中にNOPフ
ィールドを設ける方法を採用する。その理由は、図3に
示すように、このタイプは、NOPフィールドを設ける
先行命令が少なく、後続命令が多いため、全体として設
けたNOPフィールド数が少なくて済むからである。逆
に後続命令にNOPフィールドを設けると全体として設
けるNOPフィールド数が多くなってしまう。FIG. 2 is a chart in which instructions causing resource conflict are classified by paying attention to the number of instruction types and the field margin.
For a combination of a preceding instruction and a succeeding instruction belonging to Type I, a method of providing a NOP field in the instruction code of the first preceding instruction is adopted. The reason is that, as shown in FIG. 3, in this type, the number of NOP fields provided as a whole can be reduced because the number of preceding instructions provided with NOP fields is small and the number of subsequent instructions is large. Conversely, when the NOP field is provided in the subsequent instruction, the number of NOP fields provided as a whole increases.
【0036】タイプIIに属する先行命令と後続命令の組
み合わせに対しては、上記第2の後続命令の命令コード
中にNOPフィールドを設ける方法を採用する。その理
由は、図4に示すように、このタイプは、先行命令が多
く、NOPフィールドを設ける後続命令が少ないため、
全体として設けたNOPフィールド数が少なくて済むか
らである。逆に先行命令にNOPフィールドを設けると
全体として設けるNOPフィールド数が多くなってしま
う。For the combination of the preceding instruction and the succeeding instruction belonging to Type II, a method of providing a NOP field in the instruction code of the second succeeding instruction is adopted. The reason is that, as shown in FIG. 4, this type has many preceding instructions and few succeeding instructions having a NOP field.
This is because the number of NOP fields provided as a whole can be reduced. Conversely, if the NOP field is provided in the preceding instruction, the number of NOP fields provided as a whole increases.
【0037】タイプIIIに属する先行命令と後続命令の
組み合わせに対しては、上記第3の先行命令と後続命令
の双方命令コード中にNOPフィールドを分割して設け
る方法を採用する。その理由は、このタイプは、命令の
フィールド余裕が少なく、前後いずれかの命令コード中
にまとめてNOPフィールドが採れない。そこで、前後
命令双方に分割して設けることで必要なNOP数指定を
行なうものである。その様子を図5に示す。For the combination of the preceding instruction and the succeeding instruction belonging to Type III, a method is adopted in which the NOP field is divided and provided in the instruction code of both the third preceding instruction and the following instruction. The reason is that in this type, the field margin of the instruction is small, and the NOP field cannot be collectively included in any of the instruction codes before and after. Therefore, the necessary NOP number is designated by dividing the instruction into the preceding and following instructions. This is shown in FIG.
【0038】なお、図2中に挙げたMOV,ADDなど
の命令は、先行命令、後続命令の一例であることは言う
までもない。以上に示したように、命令コード中にNO
Pフィールドを設けてストール制御する方法は、命令種
類数、フィールド余裕に応じて選択するものとし、処理
プログラム中に資源競合を起こす先行命令と後続命令の
組み合わせに対して以下のストール制御方法を実現す
る。It is needless to say that the instructions such as MOV and ADD shown in FIG. 2 are examples of the preceding instruction and the succeeding instruction. As described above, NO in the instruction code
The stall control method provided with the P field is selected according to the number of instruction types and the field margin, and the following stall control method is realized for the combination of the preceding instruction and the following instruction that causes resource conflict in the processing program. I do.
【0039】先行命令の種類が後続命令の種類より少な
い場合は、上記タイプIとして、先行命令コード中にN
OPフィールドを設け、当該先行命令コードをデコード
したときに、NOPフィールドに設定されたNOPの数
がNであれば、当該命令コードに該当する命令を実行し
た後にN個のNOPを挿入することによりストールを実
行する。If the type of the preceding instruction is smaller than the type of the succeeding instruction, the above-mentioned type I is used.
If an OP field is provided and the number of NOPs set in the NOP field is N when the preceding instruction code is decoded, N NOPs are inserted after executing the instruction corresponding to the instruction code. Perform a stall.
【0040】後続命令の種類が先行命令の種類より少な
い場合は、上記タイプIIとして、後続命令コード中にN
OPフィールドを設け、当該後続命令コードをデコード
したときに、NOPフィールドに設定されたNOPの数
がNであれば、N個のNOPを挿入した後に、当該命令
コードに該当する命令を実行することによりストールを
実行する。If the type of the succeeding instruction is smaller than the type of the preceding instruction, the type II
If an OP field is provided and the number of NOPs set in the NOP field is N when the subsequent instruction code is decoded, the instruction corresponding to the instruction code is executed after inserting N NOPs To execute the stall.
【0041】命令コードにフィールド余裕が無い場合
は、上記タイプIIIとして、先行命令コード中および前
記後続命令コード中の双方にNOPフィールドを設け、
先行命令コードをデコードしたときに、そのNOPフィ
ールドに設定されたNOPの数がNであれば、先行命令
コードの命令を実行した後に先行命令コードのNOPフ
ィールドに設定された数NのNOPを挿入し、次に、後
続命令コードをデコードし、そのNOPフィールドに設
定されたNOPの数がMであれば、後続命令コードの命
令を実行する前に前記後続命令コードのNOPフィール
ドに設定された数MのNOPを挿入することによりスト
ールを実行する。When there is no field margin in the instruction code, NOP fields are provided in both the preceding instruction code and the subsequent instruction code as Type III,
If the number of NOPs set in the NOP field is N when the preceding instruction code is decoded, the number of NOPs set in the NOP field of the preceding instruction code is inserted after executing the instruction of the preceding instruction code. Then, the subsequent instruction code is decoded, and if the number of NOPs set in the NOP field is M, the number set in the NOP field of the subsequent instruction code before the instruction of the subsequent instruction code is executed. Stall is executed by inserting M NOP.
【0042】次に、本発明のプログラム制御装置の基本
構成を説明する。図6は、本発明の基本構成部分のブロ
ック図である。図6において、1が命令コード格納部、
2がアドレス生成部、3がストール制御部である。命令
コード格納部1は命令が格納されたメモリなどであり、
アドレス生成部2からのアドレス信号に従って該当する
命令を第1の命令コードとしてストール制御部3に出力
する。Next, the basic configuration of the program control device of the present invention will be described. FIG. 6 is a block diagram of the basic components of the present invention. 6, 1 is an instruction code storage unit,
2 is an address generation unit, and 3 is a stall control unit. The instruction code storage unit 1 is a memory in which instructions are stored, and the like.
According to the address signal from the address generation unit 2, the corresponding instruction is output to the stall control unit 3 as a first instruction code.
【0043】ストール制御部3は、第1の命令コード2
1とNOPコード23を入力としている。第1の命令コ
ード21を入力し、この第1の命令コードがNOPフィ
ールドを有する命令コードであるかの判定を行なう。こ
の判定により第1の命令コード21がNOPフィールド
を有する命令コードであれば、デコードして挿入するN
OP数を検知し、指定数分、アドレス生成部2へのパイ
プライン処理ステージを一時停止するパイプライン一時
停止信号24を出力し、かつ、NOPコード23を第2
の命令コード22として出力する制御を行なう。次に、
入力された第1の命令コード21がNOPフィールドを
有しない命令コードであれば、アドレス生成部2へのパ
イプライン一時停止信号24は出力せず、第1の命令コ
ード21を第2の命令コード22として出力する制御を
行なう。The stall control unit 3 stores the first instruction code 2
1 and NOP code 23 are input. The first instruction code 21 is input, and it is determined whether the first instruction code is an instruction code having a NOP field. As a result of this determination, if the first instruction code 21 is an instruction code having a NOP field, it is decoded and inserted.
The number of OPs is detected, a pipeline pause signal 24 for temporarily suspending the pipeline processing stage to the address generation unit 2 is output by the designated number, and the NOP code 23
Is output as the instruction code 22 of the instruction. next,
If the input first instruction code 21 is an instruction code having no NOP field, the pipeline pause signal 24 to the address generation unit 2 is not output, and the first instruction code 21 is replaced with the second instruction code. Control to output as 22 is performed.
【0044】この基本構成を備えたプログラム制御装置
に対して必要なNOPフィールドを設けた命令を与える
ことにより、レジスタ干渉などの資源競合を起こす命令
間に必要数のNOPを挿入して資源競合を回避すること
ができる。By giving an instruction provided with a necessary NOP field to the program controller having the basic configuration, a required number of NOPs are inserted between instructions causing resource conflict such as register interference to reduce resource conflict. Can be avoided.
【0045】以上が、本発明のプログラム制御方法とプ
ログラム制御装置の基本的な考え方である。次に、上記
において図2を用いて分類した命令のタイプI〜IIIの
それぞれに適応したプログラム制御方法およびプログラ
ム制御装置を実施形態1〜3として説明する。The above is the basic concept of the program control method and the program control device according to the present invention. Next, a program control method and a program control device adapted to each of the instruction types I to III classified using FIG. 2 will be described as first to third embodiments.
【0046】(実施形態1)実施形態1は、先行命令の
種類が後続命令の種類より少ないタイプIの場合の適用
例であり、入力された先行命令コードのNOPフィール
ドを検出し、命令コードに該当する命令を実行した後、
Nの値に応じたサイクルのNOPを挿入してストールを
実行するものである。(Embodiment 1) The embodiment 1 is an application example in the case of Type I in which the type of the preceding instruction is smaller than the type of the following instruction. The NOP field of the input preceding instruction code is detected, and After executing the relevant instruction,
The stall is executed by inserting the NOP of the cycle corresponding to the value of N.
【0047】図7は、本実施形態1のプログラム制御装
置のストール制御部3を中心とした構成図である。便宜
上、命令コード格納部1とアドレス生成部2の図示は省
略している。図7において、11は命令保持部としての
第1の命令レジスタで、第1の命令コード21を入力と
し、パイプライン一時停止信号24を制御信号入力と
し、ラッチ信号26を出力とする。12は切替部として
のマルチプレクサで、NOPコード23と第1の命令レ
ジスタ11の出力26とを入力信号とし、切替信号25
を制御信号入力とし、第2の命令コード22を出力す
る。13はパイプライン一時停止部で、第2の命令コー
ド22を入力とし、切替信号25とパイプライン一時停
止信号24とを出力する。FIG. 7 is a block diagram mainly showing the stall control unit 3 of the program control device according to the first embodiment. For convenience, illustration of the instruction code storage unit 1 and the address generation unit 2 is omitted. In FIG. 7, reference numeral 11 denotes a first instruction register as an instruction holding unit, which receives a first instruction code 21 as an input, receives a pipeline pause signal 24 as a control signal input, and outputs a latch signal 26 as an output. Reference numeral 12 denotes a multiplexer as a switching unit, which receives the NOP code 23 and the output 26 of the first instruction register 11 as input signals,
Is a control signal input, and a second instruction code 22 is output. Reference numeral 13 denotes a pipeline suspending unit which receives the second instruction code 22 and outputs a switching signal 25 and a pipeline suspending signal 24.
【0048】図10はNOPフィールドが2ビットで構
成されている場合のパイプライン一時停止部13の回路
構成例を示している。図10において、101はNOP
指定付命令判定部で、第1の命令コード21(NOPフ
ィールド以外の命令コードで良い)を入力とし、NOP
フィールドが設けられているか否かを検知する。なお、
本実施形態1の図7では、第2の命令コード22が入力
されているが、マルチプレクサ12により第1の命令コ
ード21が選択されて入力される。後述する他の実施形
態でも第1の命令コード21が入力されると考えるもの
とする。FIG. 10 shows an example of a circuit configuration of the pipeline temporary stop unit 13 when the NOP field is composed of 2 bits. In FIG. 10, 101 is NOP
The first instruction code 21 (may be an instruction code other than the NOP field) is input to the designated instruction
Detects whether a field is provided. In addition,
In FIG. 7 of the first embodiment, the second instruction code 22 is input, but the first instruction code 21 is selected and input by the multiplexer 12. It is assumed that the first instruction code 21 is also input in other embodiments described later.
【0049】NOP指定付命令判定部101では、第1
の命令コード21がNOPフィールドを持つ命令である
場合には論理“1”を出力し、NOPフィールドを持た
ない命令である場合には論理“0”を出力するものとす
る。102及び103はフリップフロップ(以下、FF
と略記する)、104及び105はOR(論理和)ゲー
ト、106はAND(論理積)ゲートである。フリップ
フロップ102、ORゲート104および105により
NOP数カウント部107が形成されている。命令コー
ドがLSBを採用している場合、ここではNOPフィー
ルドは下位2ビットとし、信号111はNOPフィール
ドのうちの下位ビット、信号112はNOPフィールド
のうちの上位ビットの信号である。In the NOP-designated instruction determining unit 101, the first
If the instruction code 21 is an instruction having a NOP field, it outputs logic "1", and if it is an instruction having no NOP field, it outputs logic "0". 102 and 103 are flip-flops (hereinafter, FFs)
, 104 and 105 are OR (logical sum) gates, and 106 is an AND (logical product) gate. The flip-flop 102 and the OR gates 104 and 105 form a NOP number counting unit 107. When the instruction code employs LSB, the NOP field is the lower 2 bits here, the signal 111 is the lower bit of the NOP field, and the signal 112 is the upper bit of the NOP field.
【0050】FF102は信号112を入力とする。F
F103はANDゲート106の出力を入力とし、切替
信号15とパイプライン一時停止信号24を出力する。
ORゲート104はFF102からの出力と信号112
を入力とする。ORゲート105は信号111とORゲ
ート104からの出力を入力とする。ANDゲート10
6はORゲート105からの出力とNOP指定付命令判
定部101からの出力を入力とする。The FF 102 receives the signal 112 as an input. F
F103 receives the output of the AND gate 106 as an input, and outputs a switching signal 15 and a pipeline pause signal 24.
The OR gate 104 outputs the signal 112 from the output from the FF 102.
Is input. The OR gate 105 receives the signal 111 and the output from the OR gate 104 as inputs. AND gate 10
Reference numeral 6 designates an input from an output from the OR gate 105 and an output from the instruction determination unit 101 with NOP designation.
【0051】パイプライン一時停止部13は、この回路
構成により、第1の命令コード21がNOPフィールド
を持つ命令である場合には、指定のNOP数にあたる処
理ステージ分の切替信号25とパイプライン一時停止信
号24を出力する。With this circuit configuration, when the first instruction code 21 is an instruction having a NOP field, the pipeline temporary stop unit 13 outputs the switching signal 25 for the processing stage corresponding to the designated NOP number and the pipeline temporary stop unit 13. The stop signal 24 is output.
【0052】以上のように構成されたプログラム制御装
置の動作を、図6、図7、図10、図12、図14〜1
5に基づいて説明する。図12はNOPフィールドが設
けられている先行命令コードのビットフィールドを示し
ており、ビット0とビット1がNOPフィールドであ
る。ビット0が1のとき、NOP数N=1を指示し、ビ
ット1が1のとき、NOP数N=2を指示する。図14
は、本実施形態のプログラム制御装置による処理の流れ
の概略を示したフローチャートである。図15は4段パ
イプラインの場合のタイミングチャートを示しており、
転送命令(MOVPR,GR)を命令の例としている。The operation of the program control device configured as described above will be described with reference to FIG. 6, FIG. 7, FIG. 10, FIG.
5 will be described. FIG. 12 shows the bit field of the preceding instruction code provided with the NOP field, and bit 0 and bit 1 are the NOP field. When bit 0 is 1, the number of NOPs N = 1 is indicated, and when bit 1 is 1, the number of NOPs N = 2 is indicated. FIG.
5 is a flowchart showing an outline of a processing flow by the program control device of the present embodiment. FIG. 15 shows a timing chart for a four-stage pipeline,
The transfer instruction (MOVPR, GR) is an example of the instruction.
【0053】以下、ステップごとに動作を説明する。 (1)ステップ1 アドレス生成部2のプログラムカウンタが保持している
アドレスを命令コード格納部1に出力する。入力された
アドレスに対応して命令コード格納部1は第1の命令コ
ード21を読み出してストール制御部3に出力する。Hereinafter, the operation will be described for each step. (1) Step 1 The address held by the program counter of the address generation unit 2 is output to the instruction code storage unit 1. The instruction code storage unit 1 reads the first instruction code 21 corresponding to the input address and outputs the first instruction code 21 to the stall control unit 3.
【0054】(2)ステップ2、ステップ3 ストール制御部3において、第1の命令レジスタ11が
第1の命令コード21を保持し、マルチプレクサ12が
第1の命令レジスタ11の出力26を選択して第2の命
令コード22として出力する。パイプライン一時停止部
13は当該出力信号22を入力し、NOP指定付命令判
定部101によりNOPフィールドが設けられている命
令コードであることを検知する。(2) Steps 2 and 3 In the stall control section 3, the first instruction register 11 holds the first instruction code 21, and the multiplexer 12 selects the output 26 of the first instruction register 11. Output as the second instruction code 22. The pipeline temporary stop unit 13 receives the output signal 22 and detects the instruction code provided with the NOP field by the instruction determination unit with NOP designation 101.
【0055】(3)ステップ4 パイプライン一時停止部13は、NOPフィールドの下
位ビットである信号111が1である場合(図15
(a))は、パイプライン一時停止信号24と切替信号
25を1サイクル出力する。また、NOPフィールドの
上位ビットである信号112が1である場合(図15
(b))は、パイプライン一時停止信号24と切替信号
25を2サイクル出力する。(3) Step 4 The pipeline suspending unit 13 determines that the signal 111 as the lower bit of the NOP field is 1 (see FIG. 15).
(A)) outputs the pipeline pause signal 24 and the switching signal 25 for one cycle. When the signal 112, which is the upper bit of the NOP field, is 1 (see FIG. 15).
(B)) outputs the pipeline pause signal 24 and the switching signal 25 for two cycles.
【0056】(4)ステップ5 切替信号25により、マルチプレクサ12がNOPコー
ド23を選択して第2の命令コード22として出力する
と共に、プログラムカウンタがアドレスを継続して保持
し、第1の命令レジスタ11が第1の命令コード21を
保持する。(4) Step 5 In response to the switching signal 25, the multiplexer 12 selects the NOP code 23 and outputs it as the second instruction code 22, and the program counter continuously holds the address, and the first instruction register 11 holds the first instruction code 21.
【0057】(5)ステップ6 次の命令処理ステージへ遷移する。以上のように本実施
形態1のプログラム制御装置は、入力された先行命令コ
ードにNOPフィールドがあるか否かの判定結果に従っ
てパイプライン処理ステージを一時停止することがで
き、ストール制御が実現できる。つまり、入力された先
行命令のNOPフィールドに従って、後続命令のパイプ
ライン処理が一時停止されることとなり、レジスタ干渉
などの資源競合が回避される。 (第2の実施形態)実施形態2は、後続命令の種類が先
行命令の種類より少ないタイプIIの場合の適用例であ
り、先行命令に続いて入力された後続命令コードのNO
Pフィールドを検出し、Nの値に応じたサイクルのNO
Pを挿入してストールを実行し、その後、命令コードに
該当する後続命令を実行するものである。(5) Step 6 Transit to the next instruction processing stage. As described above, the program control device according to the first embodiment can temporarily stop the pipeline processing stage according to the determination result as to whether or not the input preceding instruction code includes the NOP field, and can realize stall control. That is, according to the input NOP field of the preceding instruction, the pipeline processing of the succeeding instruction is temporarily stopped, and resource conflict such as register interference is avoided. (Second Embodiment) Embodiment 2 is an application example in the case of Type II in which the type of the subsequent instruction is smaller than the type of the preceding instruction, and the NO of the subsequent instruction code input following the preceding instruction.
The P field is detected, and the cycle NO according to the value of N is determined.
A stall is executed by inserting P, and thereafter, a subsequent instruction corresponding to the instruction code is executed.
【0058】図8は本実施形態2のプログラム制御装置
のストール制御部3を中心とした構成図である。便宜
上、命令コード格納部1とアドレス生成部2の図示は省
略している。図8において、11は第1の命令保持手段
である第1の命令レジスタで、第1の命令コード21を
入力とし、パイプライン一時停止信号24を制御信号入
力とし、ラッチ信号26を出力する。13はパイプライ
ン一時停止部で、第1の命令レジスタの出力26を入力
信号とし、パイプライン一時停止信号24と切替信号2
5を出力する。14は第2の命令保持手段である第2の
命令レジスタで、第1の命令レジスタからのラッチ出力
26を入力とし、パイプライン一時停止信号24を制御
信号入力とし、ラッチ信号27を出力とする。12は切
替部としてのマルチプレクサで、NOPコード23と第
2の命令レジスタ14からの出力27とを入力信号と
し、切替信号25を制御信号入力とし、第2の命令コー
ド22を出力する。FIG. 8 is a block diagram mainly showing the stall control unit 3 of the program control device according to the second embodiment. For convenience, illustration of the instruction code storage unit 1 and the address generation unit 2 is omitted. In FIG. 8, reference numeral 11 denotes a first instruction register, which is a first instruction holding means, which receives a first instruction code 21 as an input, a pipeline pause signal 24 as a control signal input, and outputs a latch signal 26. Reference numeral 13 denotes a pipeline suspending unit which receives the output 26 of the first instruction register as an input signal, and outputs a pipeline suspending signal 24 and a switching signal 2
5 is output. Reference numeral 14 denotes a second instruction register which is a second instruction holding unit, which receives a latch output 26 from the first instruction register, receives a pipeline pause signal 24 as a control signal input, and outputs a latch signal 27. . Reference numeral 12 denotes a multiplexer as a switching unit, which receives a NOP code 23 and an output 27 from the second instruction register 14 as input signals, a switching signal 25 as a control signal input, and outputs a second instruction code 22.
【0059】なお、図8において、図7と同一の機能を
有する構成要素には同一の番号を付している。また、パ
イプライン一時停止部13の回路構成例も実施形態1に
おいて図10により示したものと同様で良い。本実施形
態2では、パイプライン一時停止部13は、第1の命令
コード21のラッチ信号である第1の命令レジスタ出力
26が入力され、当該信号がNOPフィールドを持つ命
令である場合には、指定のNOP数にあたるサイクルの
切替信号25とパイプライン一時停止信号24を出力す
る。In FIG. 8, components having the same functions as those in FIG. 7 are denoted by the same reference numerals. Further, the circuit configuration example of the pipeline temporary stop unit 13 may be the same as that shown in FIG. 10 in the first embodiment. In the second embodiment, when the first instruction register output 26 which is a latch signal of the first instruction code 21 is input and the signal is an instruction having a NOP field, the pipeline suspending unit 13 The switching signal 25 and the pipeline temporary stop signal 24 of the cycle corresponding to the designated NOP number are output.
【0060】以上のように構成されたプログラム制御装
置の動作を、図6、図8、図10、図12、図16〜1
7に基づいて説明する。本実施形態2のストール制御3
が適用される後続命令コードのビットフィールドは、実
施形態1と同様、図12で示されるものである。ビット
0が1のとき、NOP数N=1を指示し、ビット1が1
のとき、NOP数N=2を指示するものとする。図16
は、本実施形態2のプログラム制御装置による処理の流
れの概略を示したフローチャートである。図17は本実
施形態2における4段パイプラインの場合のタイミング
チャートを示しており、後続命令が分岐命令(BRC
Z,JMP)を命令の例としている。The operation of the program control device configured as described above will be described with reference to FIGS. 6, 8, 10, 12, and 16 to 1.
7 will be described. Stall control 3 of the second embodiment
Is applied to the bit field of the subsequent instruction code shown in FIG. 12 as in the first embodiment. When bit 0 is 1, the number of NOPs N = 1 is indicated, and bit 1 is 1
At this time, it is assumed that the number of NOPs N = 2. FIG.
9 is a flowchart schematically showing the flow of processing by the program control device according to the second embodiment. FIG. 17 is a timing chart for a four-stage pipeline according to the second embodiment, in which the subsequent instruction is a branch instruction (BRC).
Z, JMP) is an example of an instruction.
【0061】以下、ステップごとに動作を説明する。 (1)ステップ1 アドレス生成部2のプログラムカウンタが保持している
アドレスを命令コード格納部1に出力する。入力された
アドレスに対応して命令コード格納部1は第1の命令コ
ード21を読み出して出力する。The operation will be described below for each step. (1) Step 1 The address held by the program counter of the address generation unit 2 is output to the instruction code storage unit 1. The instruction code storage unit 1 reads and outputs the first instruction code 21 corresponding to the input address.
【0062】(2)ステップ2 第1の命令レジスタ11が第1の命令コード21を保持
し、出力信号26を出力する。パイプライン一時停止部
13および第2の命令レジスタ14に当該ラッチ出力信
号26が入力される。パイプライン一時停止部13は当
該ラッチ出力信号26を入力し、NOP指定付命令判定
部101によりNOPフィールドが設けられている命令
コードであることを検知する。(2) Step 2 The first instruction register 11 holds the first instruction code 21 and outputs an output signal 26. The latch output signal 26 is input to the pipeline temporary stop unit 13 and the second instruction register 14. The pipeline temporary stop unit 13 receives the latch output signal 26, and the instruction determination unit with NOP designation 101 detects that the instruction code has an NOP field.
【0063】(3)ステップ3 パイプライン一時停止部13は、NOPフィールドの下
位ビットである信号111が1である場合(図17
(a))は、パイプライン一時停止信号24と切替信号
25を1サイクル出力する。また、NOPフィールドの
上位ビットである信号112が1である場合(図17
(b))は、パイプライン一時停止信号24と切替信号
25を2サイクル出力する。(3) Step 3 The pipeline suspending unit 13 determines that the signal 111 which is the lower bit of the NOP field is 1 (see FIG. 17).
(A)) outputs the pipeline pause signal 24 and the switching signal 25 for one cycle. Also, when the signal 112 which is the upper bit of the NOP field is 1 (see FIG. 17).
(B)) outputs the pipeline pause signal 24 and the switching signal 25 for two cycles.
【0064】(4)ステップ4 切替信号25により、マルチプレクサ12がNOPコー
ド23を選択して第2の命令コード22として出力する
と共に、プログラムカウンタがアドレス継続して保持
し、第1の命令レジスタ11が第1の命令コード21を
保持し、第2の命令レジスタ14が出力信号27(第1
の命令コード21と同じ)を保持する。(4) Step 4 In response to the switching signal 25, the multiplexer 12 selects the NOP code 23 and outputs it as the second instruction code 22, and the program counter continuously holds the address, and the first instruction register 11 Holds the first instruction code 21, and the second instruction register 14 outputs the output signal 27 (first
(Same as the instruction code 21).
【0065】(5)ステップ5 切替信号25の信号が反転し、マルチプレクサ12が第
2の命令レジスタ14の出力27(第1の命令コードが
ラッチされたもの)を選択して第2の命令コード22と
して出力する。(5) Step 5 The signal of the switching signal 25 is inverted, and the multiplexer 12 selects the output 27 (the first instruction code is latched) of the second instruction register 14 and the second instruction code Output as 22.
【0066】(6)ステップ6 次の命令処理ステージへ遷移する。本実施形態2によれ
ば、プログラム制御装置は、入力された後続命令コード
にNOPフィールドがあるか否かの判定結果に従ってパ
イプライン処理ステージを一時停止することができ、ス
トール制御が実現できる。つまり、入力された後続命令
のNOPフィールドに従って、必要数のNOPが挿入さ
れて後続命令の処理ステージは一時停止されることとな
り、レジスタ干渉などの資源競合が回避される。 (第3の実施形態)実施形態3は、命令コードのフィー
ルド余裕が少ないタイプIIIの場合の適用例であり、入
力された先行命令コードのNOPフィールドを検出し、
命令コードに該当する命令を実行した後、Nの値に応じ
たサイクルのNOPを挿入してストールを実行し、さら
に入力された後続命令コードのNOPフィールドを検出
し、Nの値に応じたサイクルのNOPを挿入してストー
ルを実行し、命令コードに該当する後続命令を実行する
ものである。(6) Step 6 A transition is made to the next instruction processing stage. According to the second embodiment, the program control device can suspend the pipeline processing stage according to the result of the determination as to whether or not the input subsequent instruction code includes the NOP field, and stall control can be realized. In other words, the required number of NOPs are inserted according to the input NOP field of the subsequent instruction, and the processing stage of the subsequent instruction is temporarily stopped, thereby avoiding resource conflict such as register interference. (Third Embodiment) The third embodiment is an application example in the case of Type III where the field margin of the instruction code is small, and detects the NOP field of the input preceding instruction code.
After executing the instruction corresponding to the instruction code, the stall is executed by inserting the NOP of the cycle corresponding to the value of N, and the NOP field of the input subsequent instruction code is detected, and the cycle corresponding to the value of N is detected. The stall is executed by inserting the NOP, and the subsequent instruction corresponding to the instruction code is executed.
【0067】図9は、本実施形態3のプログラム制御装
置のストール制御部3を中心とした構成図である。便宜
上、命令コード格納部1とアドレス生成部2の図示は省
略している。図9において、11は第1の命令保持手段
である第1の命令レジスタで、第1の命令コード21を
入力とし、第1のパイプライン一時停止信号24aを制
御信号入力とし、ラッチ信号26を出力する。12は切
替部である第1のマルチプレクサで、第1の命令レジス
タからの出力26とNOPコード23を入力信号とし、
第1の切替信号25aを制御信号として第1の選択信号
28を出力する。13はパイプライン一時停止部で、第
1の命令レジスタからの出力26を入力とし、第1のパ
イプライン一時停止信号24a、第2のパイプライン一
時停止信号24b、第1の切替信号25a、第2の切替
信号25bを出力する。FIG. 9 is a block diagram mainly showing the stall control unit 3 of the program control device according to the third embodiment. For convenience, illustration of the instruction code storage unit 1 and the address generation unit 2 is omitted. In FIG. 9, reference numeral 11 denotes a first instruction register, which is a first instruction holding means, which receives a first instruction code 21 as an input, a first pipeline temporary stop signal 24a as a control signal input, and a latch signal 26 as a first instruction register. Output. Reference numeral 12 denotes a first multiplexer which is a switching unit, which receives an output 26 from the first instruction register and a NOP code 23 as input signals,
A first selection signal is output using the first switching signal 25a as a control signal. Reference numeral 13 denotes a pipeline suspending unit which receives an output 26 from the first instruction register as an input, and outputs a first pipeline suspending signal 24a, a second pipeline suspending signal 24b, a first switching signal 25a, The second switching signal 25b is output.
【0068】14は第2の命令保持部である第2の命令
レジスタで、第1の命令レジスタからのラッチ出力26
を入力とし、第2のパイプライン一時停止信号24bを
制御信号入力とし、ラッチ出力27を出力とする。15
は第2の切替部としての第2のマルチプレクサで、NO
Pコード23と第2の命令レジスタ14のラッチ出力2
7とを入力信号とし、第2の切替信号25bを制御信号
入力とし、第2の命令コード22を出力する。Reference numeral 14 denotes a second instruction register which is a second instruction holding unit, and a latch output 26 from the first instruction register.
, The second pipeline pause signal 24b as a control signal input, and the latch output 27 as an output. Fifteen
Is a second multiplexer as a second switching unit, and NO
P code 23 and latch output 2 of second instruction register 14
7 as an input signal, a second switching signal 25b as a control signal input, and a second instruction code 22 output.
【0069】なお、図9において、図7、図8と同一の
機能を有する構成要素には同一の番号を付している。パ
イプライン一時停止部13の回路構成例は図11に示し
たものとなる。本実施形態3では、先行命令(NOPフ
ィールド付き)と後続命令(NOPフィールド付き)を
それぞれ判別する必要があり、また、「パイプライン一
時停止信号」、「切替信号」を別々に出力する必要があ
る。図11において、201は先行命令に対応する第1
のNOP指定付命令判定部であり、202は後続命令に
対応する第2のNOP指定付命令判定部であり、それぞ
れ第1の命令コード21(NOPフィールド以外の命令
コードで良い)を入力とし、NOPフィールドが設けら
れているか否かを検知する。203〜205はFF、2
07及び208はAND(論理積)ゲート、206はO
R(論理和)ゲートである。命令コードがLSBを採用
している場合、NOPフィールドは最下位1ビットと
し、信号111は命令コードの最下位ビットである。F
F203は第1の切替信号25aを出力し、FF204
は第2の切替信号25bと第2のパイプライン一時停止
信号24bを出力し、FF205は第1のパイプライン
一時停止信号24aを出力する。本実施形態3では、先
行命令が第1の命令コード21として入力されると、当
該信号がNOPフィールドを持つ命令である場合には、
指定のNOP数にあたるサイクル分の第1のパイプライ
ン一時停止信号24aと第1の切替信号25aを出力す
る。次に、後続命令が第1の命令コード21として入力
されると、パイプライン一時停止部13は、当該信号が
NOPフィールドを持つ命令である場合には、指定のN
OP数にあたるサイクル分の第1のパイプライン一時停
止信号24aと第2のパイプライン一時停止信号24b
と第2の切替信号25bとを出力する。In FIG. 9, components having the same functions as those in FIGS. 7 and 8 are denoted by the same reference numerals. An example of a circuit configuration of the pipeline temporary stop unit 13 is as shown in FIG. In the third embodiment, it is necessary to discriminate between a preceding instruction (with NOP field) and a subsequent instruction (with NOP field), and it is necessary to separately output a “pipeline pause signal” and a “switching signal”. is there. In FIG. 11, reference numeral 201 denotes a first instruction corresponding to the preceding instruction.
Is a second NOP-designated instruction determining unit corresponding to a subsequent instruction, and receives a first instruction code 21 (which may be an instruction code other than the NOP field) as an input, It is detected whether a NOP field is provided. 203 to 205 are FF, 2
07 and 208 are AND (logical product) gates, 206 is O
R (logical sum) gate. If the instruction code employs LSB, the NOP field is the least significant bit and the signal 111 is the least significant bit of the instruction code. F
F203 outputs a first switching signal 25a, and FF204
Outputs a second switching signal 25b and a second pipeline halt signal 24b, and the FF 205 outputs a first pipeline halt signal 24a. In the third embodiment, when the preceding instruction is input as the first instruction code 21, if the signal is an instruction having a NOP field,
A first pipeline temporary stop signal 24a and a first switching signal 25a for a cycle corresponding to the designated NOP number are output. Next, when the subsequent instruction is input as the first instruction code 21, if the signal is an instruction having a NOP field, the pipeline temporary stop unit 13
The first pipeline pause signal 24a and the second pipeline pause signal 24b for the number of cycles corresponding to the number of OPs
And the second switching signal 25b.
【0070】以上のように構成されたプログラム制御装
置の動作を、図6、図9、図11、図13、図18〜1
9に基づいて説明する。本実施形態3のストール制御が
適用される先行命令と後続命令コードのビットフィール
ドは、図13で示されるものである。NOPフィールド
は下位1ビットのみが設けられ、ビット0が1のとき、
NOP数N=1を指示する。図18は、本実施形態3の
プログラム制御装置による処理の流れの概略を示したフ
ローチャートである。図19は本実施形態3における4
段パイプラインの場合のタイミングチャートを示してお
り、PRへの即値転送命令(MOV PR,即値)およ
びデータメモリへのアクセスを伴う加算命令(ADD
GR,M(PR))を命令の例としている。The operation of the program control device configured as described above will be described with reference to FIG. 6, FIG. 9, FIG. 11, FIG.
9 will be described. The bit fields of the preceding instruction and the subsequent instruction code to which the stall control of the third embodiment is applied are as shown in FIG. The NOP field is provided with only the lower one bit, and when bit 0 is 1,
The NOP number N = 1 is indicated. FIG. 18 is a flowchart schematically illustrating the flow of processing by the program control device according to the third embodiment. FIG. 19 shows the fourth embodiment according to the third embodiment.
5 shows a timing chart in the case of a stage pipeline, in which an immediate transfer instruction (MOV PR, immediate) to PR and an add instruction (ADD) accompanied by access to a data memory are shown.
GR, M (PR)) as an example of the instruction.
【0071】以下、ステップごとに動作を説明する。 (1)ステップ1 アドレス生成部2のプログラムカウンタが保持している
アドレスを命令コード格納部1に出力する。入力された
アドレスに対応して命令コード格納部1は、先行命令で
ある第1の命令コード21を読み出して出力する。Hereinafter, the operation will be described for each step. (1) Step 1 The address held by the program counter of the address generation unit 2 is output to the instruction code storage unit 1. The instruction code storage unit 1 reads and outputs the first instruction code 21 that is the preceding instruction in accordance with the input address.
【0072】(2)ステップ2、ステップ3 第1の命令レジスタ11が第1の命令コード21を保持
し、第1のマルチプレクサ12が第1の命令レジスタ1
1の出力を選択して出力信号28を出力する。パイプラ
イン一時停止部13は当該出力信号28を入力し、NO
P指定付命令判定部101によりNOPフィールドが設
けられている命令コードであることを検知する。(2) Steps 2 and 3 The first instruction register 11 holds the first instruction code 21 and the first multiplexer 12 stores the first instruction register 1
1 is selected and an output signal 28 is output. The pipeline suspending unit 13 receives the output signal 28,
The P-designated instruction determining unit 101 detects that the instruction code has a NOP field.
【0073】(3)ステップ4 第1の命令コード21が第1のマルチプレクサ12の出
力28となり、パイプライン一時停止部13と第2の命
令レジスタ14に入力される。当該第1の命令コード2
1は、第2の命令レジスタ14、第2のマルチプレクサ
15を介して第2の命令コード22として出力される。(3) Step 4 The first instruction code 21 becomes the output 28 of the first multiplexer 12 and is input to the pipeline temporary stop unit 13 and the second instruction register 14. The first instruction code 2
1 is output as a second instruction code 22 via the second instruction register 14 and the second multiplexer 15.
【0074】一方、パイプライン一時停止部13は、N
OPフィールドの下位ビットである信号111が1であ
る場合(図19)は、第1のパイプライン一時停止信号
24aと第1の切替信号25aを1サイクル出力する。On the other hand, the pipeline suspending unit 13
When the signal 111, which is the lower bit of the OP field, is 1 (FIG. 19), the first pipeline stop signal 24a and the first switching signal 25a are output for one cycle.
【0075】(4)ステップ5 第1の切替信号25aにより第1のマルチプレクサ12
がNOPコード23を選択して出力信号28を出力す
る。また、第1のパイプライン一時停止24aによりプ
ログラムカウンタがアドレスを保持し、第1の命令レジ
スタ12が第1の命令コード21を保持する。(4) Step 5 The first multiplexer 12 is activated by the first switching signal 25a.
Selects the NOP code 23 and outputs the output signal 28. In addition, the program counter holds the address and the first instruction register 12 holds the first instruction code 21 due to the first pipeline suspension 24a.
【0076】(5)ステップ6 アドレス生成部2のプログラムカウンタが増加し、更新
されたアドレスを命令コード格納部1に出力し、当該ア
ドレスに対応して命令コード格納部1は、後続命令を第
1の命令コード21として出力する。(5) Step 6 The program counter of the address generation unit 2 is incremented, and the updated address is output to the instruction code storage unit 1. In response to the address, the instruction code storage unit 1 stores the subsequent instruction in the This is output as the instruction code 21 of 1.
【0077】(6)ステップ7 第1の命令レジスタ11が第1の命令コード21を保持
し、第1のマルチプレクサ12が第1の命令レジスタ1
1からのラッチ出力26を選択して出力信号28を出力
する。パイプライン一時停止部13は当該出力信号28
を入力し、NOP指定付命令判定部101によりNOP
フィールドが設けられている命令コードであることを検
知する。(6) Step 7 The first instruction register 11 holds the first instruction code 21, and the first multiplexer 12 stores the first instruction register 1
The latch output 26 from 1 is selected and an output signal 28 is output. The pipeline pause unit 13 outputs the output signal 28
Is input, and the NOP designation command determination unit 101
It detects that the instruction code has a field.
【0078】(7)ステップ8 パイプライン一時停止部13は、NOPフィールドの下
位ビットである信号111が1である場合(図19)
は、第2の切替信号25bと第2のパイプライン一時停
止信号24bを1サイクル出力する。(7) Step 8 The pipeline suspending unit 13 determines that the signal 111 which is the lower bit of the NOP field is 1 (FIG. 19).
Outputs a second switching signal 25b and a second pipeline pause signal 24b for one cycle.
【0079】(8)ステップ9 第1のマルチプレクサ12の出力信号28は第2の命令
レジスタ14に入力されるが、第2のパイプライン一時
停止信号24bにより第2の命令レジスタ14が後続命
令である第1の命令コード21を保持する。また、第2
の切替信号25bにより、第2のマルチプレクサ15が
NOPコード23を選択して第2の命令コード22とし
て出力する。(8) Step 9 The output signal 28 of the first multiplexer 12 is input to the second instruction register 14, but the second instruction register 14 is transmitted to the second instruction register 14 by the second pipeline pause signal 24b. A certain first instruction code 21 is held. Also, the second
, The second multiplexer 15 selects the NOP code 23 and outputs it as the second instruction code 22.
【0080】(9)ステップ10 第2のマルチプレクサ15が第2の命令レジスタ14の
出力を選択して第2の命令コード22として出力する。(9) Step 10 The second multiplexer 15 selects the output of the second instruction register 14 and outputs it as the second instruction code 22.
【0081】(10)ステップ11 次の命令処理ステージに遷移する。本実施形態3によれ
ば、プログラム制御装置は、入力された先行命令コード
および後続命令のそれぞれにNOPフィールドがあるか
否かの判定結果に従ってパイプライン処理ステージを一
時停止することができ、ストール制御が実現できる。つ
まり、入力された先行命令のNOPフィールドに従って
所定NOP数のサイクル分、後続命令の処理ステージは
一時停止され、次いで入力された後続命令のNOPフィ
ールドに従って所定数のNOPが挿入されて後続命令の
処理ステージはさらに一時停止されることとなり、レジ
スタ干渉などの資源競合が回避される。(10) Step 11 A transition is made to the next instruction processing stage. According to the third embodiment, the program control device can suspend the pipeline processing stage according to the determination result of whether or not each of the input preceding instruction code and the subsequent instruction has the NOP field. Can be realized. That is, the processing stage of the subsequent instruction is temporarily stopped for a predetermined number of NOP cycles in accordance with the input NOP field of the preceding instruction, and a predetermined number of NOPs are inserted according to the input NOP field of the subsequent instruction to process the subsequent instruction. The stage will be paused further, avoiding resource conflicts such as register interference.
【0082】本実施形態によれば、NOPフィールドの
サイズを2ビットから1ビットに削減しながら、第1及
び第2の実施形態と同等のストール(遅延時間)をかせ
ぐことができる。According to the present embodiment, a stall (delay time) equivalent to the first and second embodiments can be obtained while reducing the size of the NOP field from 2 bits to 1 bit.
【0083】なお、上記実施形態において、NOPフィ
ールド内のビット列が表わすNOP数は、2進の値とし
て説明したが、ビット列の組合わせを特定の数値を示す
ように取り決めておいてNOP数を定めても良い。例え
ば、2ビットで示される“0”と“1”の組合わせを、
“00”→0、“01”→2、“10”→4、“11”
→6とする取り決めをすることができる。また、“0
0”→0、“01”→3、“10”→6、“11”→9
とする取り決めをすることができる。このような取り決
めであれば、2ビットを用いて4以上の数値を指定する
ことができるので、フィールド余裕が少ない場合におい
て、特に有効である。In the above embodiment, the NOP number represented by the bit string in the NOP field has been described as a binary value. However, the combination of bit strings is determined so as to indicate a specific numerical value, and the NOP number is determined. May be. For example, a combination of “0” and “1” represented by 2 bits is
“00” → 0, “01” → 2, “10” → 4, “11”
→ You can make an agreement of 6. Also, "0
0 → 0, “01” → 3, “10” → 6, “11” → 9
You can make an agreement. According to such an agreement, a numerical value of 4 or more can be specified by using 2 bits, so that it is particularly effective when the field margin is small.
【0084】[0084]
【発明の効果】本発明のプログラム制御方法及び装置に
よれば、命令コード中のNOPフィールドを参照して所
定数のNOPを挿入してストール制御を実現できる。処
理プログラム中に資源競合を起こす先行命令と後続命令
がある場合、先行命令を実行後、NOPが挿入され、最
後に後続命令が実行することにより後続命令の処理ステ
ージを一時停止するストールが実現できる。According to the program control method and apparatus of the present invention, stall control can be realized by inserting a predetermined number of NOPs with reference to the NOP field in the instruction code. If a processing program includes a preceding instruction and a succeeding instruction that cause resource conflict, a NOP is inserted after the preceding instruction is executed, and a stall that temporarily stops the processing stage of the succeeding instruction can be realized by executing the succeeding instruction at the end. .
【0085】また、本発明のプログラム制御方法及び装
置によれば、資源競合時のストール制御のためのNOP
挿入を、命令数の少ない命令コード中にNOPフィール
ドを設けることにより命令コードデータ量の増加を抑え
ることができる。Further, according to the program control method and apparatus of the present invention, the NOP for stall control at the time of resource contention is controlled.
By providing the NOP field in the instruction code with a small number of instructions, the increase in the amount of instruction code data can be suppressed.
【0086】さらに、本発明のプログラム制御方法及び
装置によれば、命令コード中にNOPフィールドを設け
るフィールド余裕が少ない場合、先行命令のNOPフィ
ールドおよび後続命令のNOPフィールドを利用してス
トール制御することができ、従来の方法に比べてフィー
ルド余裕を高めたプログラム制御方法及び装置を提供す
ることができる。Further, according to the program control method and apparatus of the present invention, when the field margin for providing the NOP field in the instruction code is small, the stall control is performed using the NOP field of the preceding instruction and the NOP field of the subsequent instruction. Thus, it is possible to provide a program control method and apparatus in which the field margin is increased as compared with the conventional method.
【図1】レジスタ干渉が起きる様子と、NOP挿入によ
るレジスタ干渉が回避される様子を示す図FIG. 1 is a diagram showing how register interference occurs and how register interference due to NOP insertion is avoided.
【図2】資源競合を起こす命令を、命令種類数とフィー
ルド余裕に注目して分類した図FIG. 2 is a diagram in which instructions causing resource conflict are classified by paying attention to the number of instruction types and a field margin;
【図3】図2の分類においてタイプIに属する先行命令
と後続命令の命令フィールドFIG. 3 is an instruction field of a preceding instruction and a following instruction belonging to type I in the classification of FIG. 2;
【図4】図2の分類においてタイプIIに属する先行命令
と後続命令の命令フィールドFIG. 4 is an instruction field of a preceding instruction and a following instruction belonging to type II in the classification of FIG. 2;
【図5】図2の分類においてタイプIIIに属する先行命
令と後続命令の命令フィールド5 is an instruction field of a preceding instruction and a following instruction belonging to type III in the classification of FIG. 2;
【図6】本発明のプログラム制御装置の基本的構成図FIG. 6 is a basic configuration diagram of a program control device of the present invention.
【図7】本発明の第1の実施形態に係るプログラム制御
装置の構成図FIG. 7 is a configuration diagram of a program control device according to the first embodiment of the present invention.
【図8】本発明の第2の実施形態に係るプログラム制御
装置の構成図FIG. 8 is a configuration diagram of a program control device according to a second embodiment of the present invention.
【図9】本発明の第3の実施形態のプログラム制御装置
の構成図FIG. 9 is a configuration diagram of a program control device according to a third embodiment of the present invention.
【図10】図7〜図8のプログラム制御装置におけるパ
イプライン一時停止部13の詳細回路構成図FIG. 10 is a detailed circuit configuration diagram of a pipeline temporary stop unit 13 in the program control device of FIGS. 7 and 8;
【図11】図9のプログラム制御装置におけるパイプラ
イン一時停止部13の詳細回路構成図11 is a detailed circuit configuration diagram of a pipeline temporary stop unit 13 in the program control device of FIG. 9;
【図12】本発明の実施形態1および2の命令コードの
命令フィールド図FIG. 12 is an instruction field diagram of an instruction code according to the first and second embodiments of the present invention.
【図13】本発明の実施形態3の命令コードの命令フィ
ールド図FIG. 13 is an instruction field diagram of an instruction code according to the third embodiment of the present invention.
【図14】本発明の実施形態1のプログラム制御装置に
よる処理の流れの概略を示したフローチャートFIG. 14 is a flowchart showing an outline of a processing flow by the program control device according to the first embodiment of the present invention;
【図15】本発明の実施形態1のプログラム制御装置に
おける4段パイプラインの場合のタイミングチャートFIG. 15 is a timing chart for a four-stage pipeline in the program control device according to the first embodiment of the present invention;
【図16】本発明の実施形態2のプログラム制御装置に
よる処理の流れの概略を示したフローチャートFIG. 16 is a flowchart showing an outline of a processing flow by a program control device according to the second embodiment of the present invention;
【図17】本発明の実施形態2のプログラム制御装置に
おける4段パイプラインの場合のタイミングチャートFIG. 17 is a timing chart for a four-stage pipeline in the program control device according to the second embodiment of the present invention;
【図18】本発明の実施形態3のプログラム制御装置に
よる処理の流れの概略を示したフローチャートFIG. 18 is a flowchart showing an outline of a processing flow by a program control device according to a third embodiment of the present invention;
【図19】本発明の実施形態3のプログラム制御装置に
おける4段パイプラインの場合のタイミングチャートFIG. 19 is a timing chart for a four-stage pipeline in the program control device according to the third embodiment of the present invention.
1 命令コード格納部 2 アドレス生成部 3 ストール制御部 11 第1の命令レジスタ 12 第1のマルチプレクサ 13 パイプライン一時停止部 14 第2の命令レジスタ 15 第2のマルチプレクサ 21 第1の命令コード 22 第2の命令コード 23 NOPコード 24 パイプライン一時停止信号 24a 第1のパイプライン一時停止信号 24b 第2のパイプライン一時停止信号 25 切替信号 25a 第1の切替信号 25b 第2の切替信号 26 第1の命令レジスタ11の出力信号 27 第2の命令レジスタ14の出力信号 28 第2のマルチプレクサ15の出力信号 101 NOP指定付命令判定部 201 第1のNOP指定付命令判定部 202 第2のNOP指定付命令判定部 102〜103,203〜204 フリップフロップ 104〜105,206 ORゲート 106,207〜208 ANDゲート 111 NOPフィールドの下位ビット 112 NOPフィールドの上位ビット REFERENCE SIGNS LIST 1 instruction code storage unit 2 address generation unit 3 stall control unit 11 first instruction register 12 first multiplexer 13 pipeline temporary stop unit 14 second instruction register 15 second multiplexer 21 first instruction code 22 second 23 NOP code 24 Pipeline pause signal 24a First pipeline pause signal 24b Second pipeline pause signal 25 Switching signal 25a First switching signal 25b Second switching signal 26 First instruction Output signal of register 11 27 Output signal of second instruction register 14 28 Output signal of second multiplexer 15 101 Instruction determination unit with NOP designation 201 First instruction determination unit with NOP designation 202 Second instruction determination with NOP designation Units 102 to 103, 203 to 204 flip-flops 104 105 and 206 OR gate 106,207~208 upper bits of the lower bit 112 NOP field of the AND gate 111 NOP field
Claims (8)
置におけるプログラム制御方法であって、 無処理命令であるNOPの数を示すNOPフィールドを
命令コードに設け、 前記命令コードをデコードしたときに、前記NOPフィ
ールドに設定されたNOPの数がNであれば、N個のN
OPを挿入した後に前記命令コードに該当する命令を実
行することによりストールを実行することを特徴とする
プログラム制御方法。1. A program control method in an information processing apparatus for processing an instruction in a pipeline, wherein a NOP field indicating the number of NOPs which are non-processing instructions is provided in the instruction code, and when the instruction code is decoded, If the number of NOPs set in the NOP field is N, N N
A program control method for executing a stall by executing an instruction corresponding to the instruction code after inserting an OP.
行命令と後続命令があり、かつ、前記後続命令の種類が
前記先行命令の種類より少ない場合、前記後続命令コー
ド中にNOPフィールドを設ける請求項1記載のプログ
ラム制御方法。2. A processing program comprising a preceding instruction and a succeeding instruction which cause resource conflict, and wherein the type of the following instruction is smaller than the type of the preceding instruction, a NOP field is provided in the subsequent instruction code. 2. The program control method according to 1.
置におけるプログラム制御方法であって、 処理プログラム中に、資源競合を起こす先行命令と後続
命令がある場合、先行命令コード中および前記後続命令
コード中の双方にNOPフィールドを設け、 前記先行命令コードの命令を実行した後に前記先行命令
コードのNOPフィールドに設定された数のNOPを挿
入し、 前記後続命令コードの命令を実行する前に前記後続命令
コードのNOPフィールドに設定された数のNOPを挿
入することによりストールを実行することを特徴とする
プログラム制御方法。3. A program control method in an information processing apparatus for performing pipeline processing of an instruction, wherein when a processing program includes a preceding instruction and a subsequent instruction that cause resource conflict, the processing instruction program includes a preceding instruction code and a following instruction code. Are provided with NOP fields, and after executing the instruction of the preceding instruction code, insert the set number of NOPs into the NOP field of the preceding instruction code, and execute the subsequent instruction before executing the instruction of the subsequent instruction code. A program control method for executing a stall by inserting a set number of NOPs into a NOP field of a code.
する命令コードを含む命令をパイプライン処理するため
のプログラム制御装置であって、 第1の命令コードを格納する命令コード格納部と、 前記命令コード格納部から前記第1の命令コードを出力
するためのアドレスを生成するアドレス生成部と、 前記第1の命令コードを入力し、この第1の命令コード
がNOPフィールドを有する命令コードであるかの判定
結果に基づいて、前記アドレス生成部へのパイプライン
処理ステージを一時停止する停止信号の出力制御と、前
記第1の命令コード又はNOPコードを第2の命令コー
ドとして出力する制御を行なうストール制御部とを備え
たことを特徴とするプログラム制御装置。4. A program control device for pipeline-processing an instruction including an instruction code having a NOP field designating a NOP, wherein the instruction code storage unit stores a first instruction code, and the instruction code storage unit stores the first instruction code. An address generation unit for generating an address for outputting the first instruction code from the unit; and inputting the first instruction code, and determining whether the first instruction code is an instruction code having a NOP field A stall control unit that controls output of a stop signal for temporarily stopping a pipeline processing stage to the address generation unit based on a result, and control of outputting the first instruction code or NOP code as a second instruction code. A program control device comprising:
ードをラッチする第1の命令レジスタと、 前記第1の命令レジスタから出力される第1の命令コー
ドとNOPコードを入力し、切替信号に基づいて前記第
1の命令コード又はNOPコードを選択して第2の命令
コードとして出力する切替部と、 前記切替部から出力される第2の命令コードを入力し、
この第2の命令コードがNOPフィールドを有する命令
コードであるか否かを判定し、その判定結果に基づいて
前記アドレス生成部および前記第1の命令レジスタへの
前記停止信号の出力制御と、前記切替部への前記切替信
号の出力制御を行なうパイプライン一時停止部を含む請
求項4記載のプログラム制御装置。5. A stall control unit comprising: a first instruction register for latching the first instruction code read from the instruction code storage unit; and a first instruction code output from the first instruction register And a NOP code, and selects a first instruction code or NOP code based on a switching signal and outputs the selected instruction code or NOP code as a second instruction code; and a second instruction code output from the switching unit. Input,
Determining whether the second instruction code is an instruction code having a NOP field, based on the determination result, controlling output of the stop signal to the address generator and the first instruction register; 5. The program control device according to claim 4, further comprising a pipeline temporary stop unit that controls output of the switching signal to a switching unit.
ードをラッチする第1の命令レジスタと、 前記第1の命令レジスタから読み出した前記第1の命令
コードをラッチする第2の命令レジスタと、 前記第2の命令レジスタから出力される第1の命令コー
ドとNOPコードを入力し、切替信号に基づいて前記第
1の命令コード又はNOPコードを選択して第2の命令
コードとして出力する切替部と、 前記第1の命令レジスタから出力される第1の命令コー
ドを入力し、この第1の命令コードがNOPフィールド
を有する命令コードであるか否かを判定し、その判定結
果に基づいて、前記アドレス生成部および前記第1、第
2の命令レジスタへの前記停止信号の出力制御と、前記
切替部への前記切替信号の出力制御を行なうパイプライ
ン一時停止部を含む請求項4記載のプログラム制御装
置。6. The stall control unit, comprising: a first instruction register for latching the first instruction code read from the instruction code storage unit; and a first instruction code read from the first instruction register. A second instruction register that latches a first instruction code and a NOP code output from the second instruction register, and selects the first instruction code or the NOP code based on a switching signal. A switching unit that outputs as a second instruction code, and a first instruction code that is output from the first instruction register, and determines whether the first instruction code is an instruction code having a NOP field. Determining, based on the determination result, controlling output of the stop signal to the address generation unit and the first and second instruction registers, and controlling the switching signal to the switching unit. 5. The program control device according to claim 4, further comprising a pipeline suspension unit for performing output control.
ードをラッチする第1の命令レジスタと、 前記第1の命令レジスタの出力とNOPコードを入力
し、第1の切替信号に基づいて、前記第1の命令レジス
タの出力又はNOPコードを選択して出力する第1の切
替部と、 前記第1の切替部の出力をラッチする第2の命令レジス
タと、 前記第2の命令レジスタの出力とNOPコードを入力
し、第2の切替信号に基づいて、前記第2の命令レジス
タの出力又はNOPコードを選択して第2の命令コード
として出力する第2の切替部と、 前記第1の切替部からの出力を入力し、この出力がNO
Pフィールドを有する命令コードであるか否かを判定
し、その判定結果に基づいて前記アドレス生成部および
前記第1の命令レジスタへの前記停止信号および第2の
命令レジスタへの前記停止信号と異なる停止信号の出力
制御と、前記第1、第2の切替部への前記切替信号の出
力制御を行なうパイプライン一時停止部を含む請求項4
記載のプログラム制御装置。7. The stall control unit, comprising: a first instruction register for latching the first instruction code read from the instruction code storage unit; an output of the first instruction register and a NOP code; A first switching unit for selecting and outputting an output of the first instruction register or a NOP code based on a first switching signal; a second instruction register for latching an output of the first switching unit; A second instruction register which receives an output of the second instruction register and a NOP code, selects an output of the second instruction register or a NOP code based on a second switching signal, and outputs the selected output as a second instruction code. And an output from the first switching unit, and the output is NO
It is determined whether or not the instruction code has a P field. Based on the determination result, the stop signal to the address generation unit and the first instruction register and the stop signal to the second instruction register are different. 5. A pipeline pause unit for controlling output of a stop signal and controlling output of the switching signal to the first and second switching units.
The program control device according to the above.
たNOP数をカウントするNOP数カウント部と、前記
命令コードがNOPフィールドを有する命令コードであ
るかを判定する判定部とを有し、 前記判定部が、NOPフィールドを有する命令コードで
あると判定した時、前記NOP数カウント部から出力さ
れるNOP数に対応するパイプライン処理ステージの
間、前記停止信号を出力する請求項4記載のプログラム
制御装置。8. The NOP number counting section for counting the number of NOPs specified in a NOP field provided in an instruction code, the pipeline temporary stopping section, and whether the instruction code is an instruction code having a NOP field. When the determination unit determines that the instruction code has an NOP field, during the pipeline processing stage corresponding to the number of NOPs output from the NOP number counting unit, 5. The program control device according to claim 4, which outputs a stop signal.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10318971A JP3014682B2 (en) | 1997-11-21 | 1998-11-10 | Program control method and device |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32170697 | 1997-11-21 | ||
JP9-321706 | 1997-11-21 | ||
JP10318971A JP3014682B2 (en) | 1997-11-21 | 1998-11-10 | Program control method and device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11219294A true JPH11219294A (en) | 1999-08-10 |
JP3014682B2 JP3014682B2 (en) | 2000-02-28 |
Family
ID=26569564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10318971A Expired - Fee Related JP3014682B2 (en) | 1997-11-21 | 1998-11-10 | Program control method and device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3014682B2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008090542A (en) * | 2006-09-29 | 2008-04-17 | Fujitsu Ltd | Error processing method and information processor |
JP2010049500A (en) * | 2008-08-21 | 2010-03-04 | Toshiba Corp | Pipeline arithmetic processor and control system equipped with pipeline arithmetic processor |
JP2012018626A (en) * | 2010-07-09 | 2012-01-26 | Toshiba Corp | Memory control device, memory device, and stop control method |
-
1998
- 1998-11-10 JP JP10318971A patent/JP3014682B2/en not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008090542A (en) * | 2006-09-29 | 2008-04-17 | Fujitsu Ltd | Error processing method and information processor |
JP2010049500A (en) * | 2008-08-21 | 2010-03-04 | Toshiba Corp | Pipeline arithmetic processor and control system equipped with pipeline arithmetic processor |
JP2012018626A (en) * | 2010-07-09 | 2012-01-26 | Toshiba Corp | Memory control device, memory device, and stop control method |
US8359425B2 (en) | 2010-07-09 | 2013-01-22 | Kabushiki Kaisha Toshiba | Memory control device, memory device, and shutdown control method |
Also Published As
Publication number | Publication date |
---|---|
JP3014682B2 (en) | 2000-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4879646A (en) | Data processing system with a pipelined structure for editing trace memory contents and tracing operations during system debugging | |
EP0223150B1 (en) | Information processing apparatus | |
JPH05342084A (en) | Device and method for storing data | |
US6370638B1 (en) | Apparatus and method of computer program control in computer systems using pipeline processing | |
JP3014682B2 (en) | Program control method and device | |
KR100398759B1 (en) | A programmable controller | |
JP2000181707A (en) | Instruction controller and its method | |
JP2883465B2 (en) | Electronic computer | |
JP2503223B2 (en) | Prior control method | |
JPH0713758A (en) | Instruction decoding method | |
KR100515039B1 (en) | Pipeline status indicating circuit for conditional instruction | |
JP2002318689A (en) | Vliw processor for executing instruction with delay specification of resource use cycle and method for generating delay specification instruction | |
JP2000029508A (en) | Programmable controller | |
JP2010085177A (en) | Semiconductor testing device | |
JPS6218933B2 (en) | ||
JPH0269825A (en) | Pipe line control system | |
JPH08305564A (en) | Microcomputer | |
JPH0553805A (en) | Electronic computer | |
JPH10207708A (en) | Programmable controller | |
JPH08297583A (en) | Processor and method for interruption processing | |
KR980010755A (en) | Command repetition processor in PC | |
JPH0520062A (en) | Data processor | |
JPH09251382A (en) | Program controller | |
JPH08171492A (en) | Information processor | |
JP2000347861A (en) | Compiler, processor and recording medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071217 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081217 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091217 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 10 Free format text: PAYMENT UNTIL: 20091217 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101217 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 11 Free format text: PAYMENT UNTIL: 20101217 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111217 Year of fee payment: 12 |
|
LAPS | Cancellation because of no payment of annual fees |