[go: up one dir, main page]

JP2011170758A - Processor - Google Patents

Processor Download PDF

Info

Publication number
JP2011170758A
JP2011170758A JP2010036027A JP2010036027A JP2011170758A JP 2011170758 A JP2011170758 A JP 2011170758A JP 2010036027 A JP2010036027 A JP 2010036027A JP 2010036027 A JP2010036027 A JP 2010036027A JP 2011170758 A JP2011170758 A JP 2011170758A
Authority
JP
Japan
Prior art keywords
instruction
type
processing
stage
register
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.)
Withdrawn
Application number
JP2010036027A
Other languages
Japanese (ja)
Inventor
Toshihiro Kitamura
寿博 北村
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.)
Panasonic Electric Works Co Ltd
Original Assignee
Panasonic Electric Works Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Electric Works Co Ltd filed Critical Panasonic Electric Works Co Ltd
Priority to JP2010036027A priority Critical patent/JP2011170758A/en
Publication of JP2011170758A publication Critical patent/JP2011170758A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)
  • Programmable Controllers (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a processor that can perform high speed calculation, even when executable instructions are increased. <P>SOLUTION: The processor 1 includes an instruction decoder CTRL which classifies the executable instructions into four instruction types of M type instruction, R type instruction, J type instruction, and B type instruction based on the content of processing to be performed according to the instructions. The processor 1 further includes pipeline registers 11-14 provided in association with the instruction types. The instruction decoder CTRL decodes the instruction type of an instruction to be executed based on an identification code included in the instruction. In addition, the instruction decoder CTRL stores data stored in a general-purpose register block REG and a parameter in the instruction into corresponding pipeline registers based on the instruction type of the instruction. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、パイプライン処理により高速演算を実現するプロセッサに関する。   The present invention relates to a processor that realizes high-speed computation by pipeline processing.

近年、高速化の要求が高いプログラマブルロジックコントローラ(PLC)などにおいては、通信処理や周辺処理を行う汎用マイクロプロセッサと、ビット演算処理命令などの命令を処理する専用のプロセッサとを組み合わせることで高速化を実現している。   In recent years, programmable logic controllers (PLCs), which have high demands for speeding up, can be speeded up by combining a general-purpose microprocessor that performs communication processing and peripheral processing with a dedicated processor that processes instructions such as bit operation processing instructions. Is realized.

この種のプロセッサは、ビット演算処理を主とする基本命令と、複数のビットで構成されるデータを扱う応用命令などの各命令をパイプライン実行することで、高速化を実現している(例えば、特許文献1を参照)。特許文献1に記載のPLCでは、専用のハードウェア(プロセッサ)によって、5段パイプライン構造が構成されており、パイプライン処理の各実行ステージでは、次に示す処理が行われる。
第1ステージ:命令メモリから次に実行する命令を取り出す命令フェッチ処理。
第2ステージ:命令デコード処理、及び、汎用レジスタから値を取り出すレジスタフェッチ処理。
第3ステージ:算術論理演算処理、データアドレス計算処理、分岐先計算処理の何れか。
第4ステージ:データメモリへのアクセス処理。
第5ステージ:ビット演算処理、汎用レジスタへの書き込み処理、分岐処理の何れか。
This type of processor achieves high speed by executing each instruction such as a basic instruction mainly for bit operation processing and an application instruction that handles data composed of a plurality of bits (for example, , See Patent Document 1). In the PLC described in Patent Document 1, a five-stage pipeline structure is configured by dedicated hardware (processor), and the following processing is performed in each execution stage of pipeline processing.
First stage: Instruction fetch processing for fetching the next instruction to be executed from the instruction memory.
Second stage: instruction decode processing and register fetch processing for fetching a value from a general-purpose register.
Third stage: Any of arithmetic logic operation processing, data address calculation processing, and branch destination calculation processing.
Fourth stage: access processing to the data memory.
Fifth stage: Bit operation processing, general-purpose register write processing, or branch processing.

特許第3000857号公報Japanese Patent No. 3000857

ところで、上述のようなプロセッサにおける命令の処理時間は、パイプライン処理の各実行ステージのうち最も処理時間が長い実行ステージの処理時間によって決定される。高速化を実現するためには、各実行ステージにおける処理時間をパイプライン処理の1クロック分の時間以内で、且つ、各実行ステージの処理時間が等しくなるように設定する必要がある。   By the way, the instruction processing time in the processor as described above is determined by the processing time of the execution stage having the longest processing time among the execution stages of the pipeline processing. In order to achieve high speed, it is necessary to set the processing time in each execution stage to be within the time of one clock of the pipeline processing and equal in processing time in each execution stage.

しかしながら、上述した従来のプロセッサでは、命令ごとの処理内容によらず共通のハードウェアを用いてパイプライン実行するので、命令デコード処理時には、処理が不要なハードウェアにて処理が行われないよう各種制御が行われる。そのため、プロセッサで実行可能な命令を増やすと、命令デコード処理に必要な時間が長くなり、第2ステージにおける処理時間がパイプライン処理の1クロック分の時間内に収まらない恐れがあった。これにより、例えば図3(b)に示すように、第2ステージにおいて命令デコード処理(図中のID)が終了するまで後段のパイプライン処理が停止して(図中のNOP)、処理速度が低下するという問題があった。   However, in the above-described conventional processor, pipeline execution is performed using common hardware regardless of the processing contents for each instruction, so that various processing is performed so that processing is not performed by hardware that does not require processing during instruction decoding processing. Control is performed. For this reason, when the number of instructions that can be executed by the processor is increased, the time required for the instruction decoding process becomes longer, and the processing time in the second stage may not be within the time of one clock of the pipeline processing. As a result, for example, as shown in FIG. 3B, the pipeline processing in the subsequent stage is stopped (NOP in the drawing) until the instruction decoding processing (ID in the drawing) is completed in the second stage, and the processing speed is increased. There was a problem of lowering.

本発明は、上記事由に鑑みて為されたものであり、その目的とするところは、実行可能な命令を増やした場合でも、高速に演算が可能なプロセッサを提供することにある。   The present invention has been made in view of the above reasons, and an object of the present invention is to provide a processor capable of high-speed computation even when the number of executable instructions is increased.

上記目的を達成するために、第1の発明では、命令パイプライン処理の各実行ステージを構成するハードウェアとして、実行対象の命令を格納する命令メモリと、前記命令メモリから次に実行する命令のアドレスを格納するプログラムカウンタと、命令フェッチ処理により前記命令メモリから読み出された前記命令が格納される命令レジスタと、前記命令レジスタに格納された命令に基づいて、汎用レジスタからの読み込みを行う命令デコーダと、複数の汎用レジスタからなる汎用レジスタブロックと、データメモリとそのデータメモリへのアクセス制御を行うメモリアクセスインタフェースと、算術論理演算処理を行う算術論理演算ユニットと、ビット演算処理を行うビット演算ユニットと、各実行ステージ間をつなぐ複数のパイプラインレジスタとを備え、処理内容に基づいて分類される命令タイプごとに、前記ハードウェアを組み合わせて構成される複数の命令タイプ別実行ステージを有し、前記命令デコーダは、前記命令タイプに基づいて前記実行ステージへの分岐を行うことを特徴とする。   In order to achieve the above object, according to the first aspect of the present invention, as hardware constituting each execution stage of the instruction pipeline processing, an instruction memory for storing an instruction to be executed, an instruction to be executed next from the instruction memory, A program counter for storing an address; an instruction register for storing the instruction read from the instruction memory by instruction fetch processing; and an instruction for reading from a general-purpose register based on the instruction stored in the instruction register Decoder, general-purpose register block composed of a plurality of general-purpose registers, a data memory and a memory access interface for controlling access to the data memory, an arithmetic logic unit for performing arithmetic logic operation processing, and a bit operation for performing bit operation processing Multiple pipelines connecting the unit and each execution stage Each instruction type classified based on processing content, and a plurality of instruction type-specific execution stages configured by combining the hardware, and the instruction decoder based on the instruction type It is characterized by branching to the execution stage.

第2の発明では、第1の発明において、前記命令コードは、前記命令タイプに対応した識別コードを有し、前記命令デコーダは、前記識別コードに基づいて命令タイプを判別することを特徴とする。   According to a second invention, in the first invention, the instruction code has an identification code corresponding to the instruction type, and the instruction decoder determines the instruction type based on the identification code. .

本発明によれば、命令デコードにかかる時間を短くすることで、処理可能な命令数を増やした場合でも、高速に処理が可能なプロセッサを提供することができる。   According to the present invention, it is possible to provide a processor capable of high-speed processing even when the number of instructions that can be processed is increased by shortening the time required for instruction decoding.

本発明の実施の形態にかかるプロセッサのハードウェア構造を示す概略ブロック図である。It is a schematic block diagram which shows the hardware structure of the processor concerning embodiment of this invention. 同プロセッサの命令セット及び命令構造の一例を示す概略図である。It is the schematic which shows an example of the instruction set and instruction structure of the processor. (a)は同プロセッサにおけるパイプライン構造を示し、(b)は従来のプロセッサにおけるパイプライン構造を示す概略図である。(A) shows a pipeline structure in the processor, and (b) is a schematic diagram showing a pipeline structure in a conventional processor.

以下、本発明の実施の形態について、図1〜図3に基づいて説明する。本実施の形態にかかるプロセッサ1は、例えば、通信処理や周辺処理を行う汎用マイクロプロセッサとともにPLCを構成し、各種命令をパイプライン実行することで、高速化を実現したプロセッサである。   Hereinafter, embodiments of the present invention will be described with reference to FIGS. The processor 1 according to the present embodiment is a processor that achieves high speed by configuring a PLC together with a general-purpose microprocessor that performs communication processing and peripheral processing, and executing various instructions in a pipeline.

プロセッサ1が処理する各命令は、命令に応じて行われる処理の内容や、処理時にアクセスするメモリなどのリソースに基づいて、複数の命令タイプに分類される。本実施の形態においては、後述するプロセッサ1の命令デコーダCTRLにより、Mタイプ命令、Rタイプ命令、Jタイプ命令、Bタイプ命令の4つの命令タイプに分類している。   Each instruction processed by the processor 1 is classified into a plurality of instruction types based on the contents of processing performed according to the instruction and resources such as memory accessed at the time of processing. In the present embodiment, the instruction decoder CTRL of the processor 1 to be described later is classified into four instruction types, an M type instruction, an R type instruction, a J type instruction, and a B type instruction.

各命令の構造は、図2に示すように、識別コードフィールドと、識別コードに続くopコードフィールドと、opコードフィールドに続くパラメータフィールドとで構成されており、命令タイプに応じて識別コードフィールドの値が決定されている。また、opコードは、同一の命令タイプないでは、重複しないような値に設定されており、識別コードとopコードの両方から、一意に命令が導き出せるようになっている。   As shown in FIG. 2, the structure of each instruction includes an identification code field, an op code field following the identification code, and a parameter field following the op code field. The value has been determined. The op code is set to a value that does not overlap if the same instruction type is not used, and the instruction can be uniquely derived from both the identification code and the op code.

ここで、Mタイプ命令は、主にデータメモリ3(図1を参照)に格納された値へのアクセスを含む命令であり、識別コードは2進で00が設定されている。またMタイプ命令のパラメータフィールドは、src1フィールド、dst1フィールド、及び、offsetフィールドで構成されている。具体的には、src1フィールドで指定されるレジスタの値と、offsetフィールドの値から実効アドレスを求め、データメモリ3に格納されている値をdst1フィールドで指示された汎用レジスタに読み出すという処理を行う命令(LOAD命令)などである。   Here, the M type instruction is an instruction mainly including access to a value stored in the data memory 3 (see FIG. 1), and 00 is set as the identification code in binary. The parameter field of the M type instruction includes a src1 field, a dst1 field, and an offset field. Specifically, an effective address is obtained from the value of the register specified in the src1 field and the value of the offset field, and the value stored in the data memory 3 is read out to the general-purpose register specified in the dst1 field. Command (LOAD command).

Rタイプ命令は、主に汎用レジスタ間での演算や、汎用レジスタの値と定数との演算を行う命令であり、識別コードは2進で01が設定されている。またRタイプ命令のパラメータフィールドは、src1フィールド、src2フィールド、dst1フィールド、及び、functionフィールドとで構成されている。具体的には、src1フィールドで指定される汎用レジスタの値と、src2フィールドで指定される汎用レジスタ値との和を、dst1フィールドで指示された汎用レジスタに書き込むという処理を行う命令(ADD命令)などである。なおfunctionフィールドは、例えば、演算方法の詳細仕様の指定に用いられる。   The R type instruction is an instruction that mainly performs an operation between general-purpose registers or an operation between a value of a general-purpose register and a constant, and the identification code is set to 01 in binary. The parameter field of the R type instruction includes a src1 field, a src2 field, a dst1 field, and a function field. Specifically, an instruction that performs the process of writing the sum of the general register value specified in the src1 field and the general register value specified in the src2 field to the general register specified in the dst1 field (ADD instruction) Etc. The function field is used, for example, for designating detailed specifications of the calculation method.

Jタイプ命令は、主に汎用レジスタの値や定数を比較し、比較した結果に応じて分岐処理を行う命令であり、識別コードは2進で10が設定されている。またJタイプ命令のパラメータフィールドは、src1フィールド、src2フィールド、offsetフィールドとで構成されている。具体的には、src1フィールドで指定される汎用レジスタの値と、src2フィールドで指定される汎用レジスタの値とを比較して、等しければoffsetフィールドの値をプログラムカウンタPCに加算して分岐するという処理を行う命令(BE命令)などである。   The J-type instruction is an instruction that mainly compares values and constants of general-purpose registers and performs branch processing according to the comparison result, and the identification code is set to 10 in binary. The parameter field of the J type instruction is composed of a src1 field, a src2 field, and an offset field. Specifically, the value of the general-purpose register specified in the src1 field is compared with the value of the general-purpose register specified in the src2 field. If they are equal, the value of the offset field is added to the program counter PC to branch. An instruction to perform processing (BE instruction).

Bタイプ命令は、主にビット演算を行う命令であり、識別コードは2進で11が設定されており、そのパラメータフィールドは、Bit Processing Instructionフィールドで構成されている。具体的には、特定ビットを1にするというような処理を行う命令(SET命令)などである。   The B type instruction is an instruction mainly for performing bit operation, the identification code is set to 11 in binary, and its parameter field is configured by a Bit Processing Instruction field. Specifically, an instruction (SET instruction) for performing processing such as setting a specific bit to 1 is used.

なお、従来のプロセッサにおいては、汎用レジスタに格納された値と既値との演算を行うANDIなどの命令は、レジスタ間で演算を行うANDなどの命令と別に分類されていた。本実施の形態においては、何れの命令においても処理を行うハードウェアは共通化することが可能であるので、共にRタイプ命令に分類し、各命令を4つの命令タイプに分類している。   In conventional processors, instructions such as ANDI that perform operations between values stored in general-purpose registers and existing values are classified separately from instructions such as AND that perform operations between registers. In the present embodiment, the hardware that performs processing for any instruction can be shared, so both are classified into R type instructions, and each instruction is classified into four instruction types.

このようにして、プロセッサ1は、処理する各命令を4つの命令タイプに分類し、命令に含まれる識別コードに基づいて、どの命令タイプの命令であるかを判断することが可能である。なお、表1は、各命令タイプに含まれる命令の具体例である。   In this way, the processor 1 can classify each instruction to be processed into four instruction types and determine which instruction type the instruction is based on the identification code included in the instruction. Table 1 shows specific examples of instructions included in each instruction type.

Figure 2011170758
Figure 2011170758

次に、プロセッサ1におけるパイプライン処理の概要について図3(a)を用いて説明を行う。プロセッサ1は、命令タイプによらず共通の処理が行われる第1、第2ステージと、命令タイプごとに処理内容が異なる第3〜第5ステージとで構成される命令実行ステージを、パイプライン実行している。   Next, an outline of pipeline processing in the processor 1 will be described with reference to FIG. The processor 1 executes pipelined instruction execution stages composed of first and second stages in which common processing is performed regardless of the instruction type, and third to fifth stages having different processing contents for each instruction type. is doing.

第1ステージでは、プログラムカウンタPCの値に応じて、命令メモリ2から実行する命令を取り出す命令フェッチ処理(図3(a)におけるIF)が行われる。第2ステージでは、命令から命令タイプを判定して、命令タイプに応じた第3ステージへの分岐を行うとともに、汎用レジスタブロックREGから必要な値を取り出して対応するパイプラインレジスタに出力する処理(図3(a)におけるID)が行われる。   In the first stage, an instruction fetch process (IF in FIG. 3A) for fetching an instruction to be executed from the instruction memory 2 is performed according to the value of the program counter PC. In the second stage, the instruction type is determined from the instruction, branching to the third stage according to the instruction type is performed, and a necessary value is extracted from the general-purpose register block REG and output to the corresponding pipeline register ( ID in FIG. 3A is performed.

第3ステージでは、実行対象の命令がMタイプ命令の場合には、後述するパイプラインレジスタ11の内容からデータメモリ3にアクセスするアドレスを計算する処理(図3(a)におけるM_EX)が行われる。Rタイプ命令の場合には、後述するパイプラインレジスタ12の内容に基づいて、対応するレジスタの値及び既値を算術論理演算する処理(図3(a)におけるR_EX)が行われる。Jタイプ命令の場合には、後述するパイプラインレジスタ13の内容に基づいて、対応するレジスタ及び既値を比較判定する処理(図3(a)におけるJ_EX)が行われる。Bタイプ命令では、後述するパイプラインレジスタ14の内容に基づいて、データメモリ3から演算対象のデータを読み出す処理(図3(a)におけるB_MA)が行われる。   In the third stage, when the instruction to be executed is an M-type instruction, processing for calculating an address for accessing the data memory 3 from the contents of a pipeline register 11 described later (M_EX in FIG. 3A) is performed. . In the case of an R-type instruction, processing (R_EX in FIG. 3A) is performed based on the contents of a pipeline register 12 described later to perform an arithmetic logic operation on the corresponding register value and existing value. In the case of a J-type instruction, a process of comparing and determining the corresponding register and the existing value (J_EX in FIG. 3A) is performed based on the contents of a pipeline register 13 described later. In the B type instruction, processing (B_MA in FIG. 3A) for reading out data to be calculated from the data memory 3 is performed based on the contents of a pipeline register 14 to be described later.

第4ステージでは、実行対象の命令がMタイプ命令の場合には、第3ステージで計算したアドレスに基づいて、データメモリ3から演算対象のデータを読み出す処理(図3(a)におけるM_MA)が行われる。Rタイプ命令の場合には、第3ステージにおける演算結果を汎用レジスタブロックREGに格納する処理(図3(a)におけるR_WB)が行われる。Jタイプ命令の場合には、第3ステージにおける比較結果に基づいて、次に処理を行う命令のアドレス(分岐用アドレス)を命令メモリ2に出力する処理(図3(a)におけるJ_WB)が行われる。Bタイプ命令の場合には、第3ステージで読み出したデータをビット演算して、汎用レジスタブロックへ書き込む処理(図3(a)におけるB_WB)が行われる。   In the fourth stage, when the instruction to be executed is an M-type instruction, the process of reading the data to be calculated from the data memory 3 based on the address calculated in the third stage (M_MA in FIG. 3A) Done. In the case of an R type instruction, processing (R_WB in FIG. 3A) for storing the operation result in the third stage in the general-purpose register block REG is performed. In the case of a J-type instruction, a process (J_WB in FIG. 3A) for outputting the address (branch address) of the instruction to be processed next to the instruction memory 2 is performed based on the comparison result in the third stage. Is called. In the case of the B type instruction, a process of performing bit operation on the data read in the third stage and writing it into the general-purpose register block (B_WB in FIG. 3A) is performed.

第5ステージでは、実行対象の命令がMタイプ命令の場合には、第4ステージで読み出したデータを演算し、汎用レジスタブロックへ書き込む処理(図3(a)におけるM_WB)が行われる。なお、Rタイプ命令、Jタイプ命令、Bタイプ命令の場合には、第4ステージで処理が完了するので、処理は行われない(図3(a)におけるNOP)。   In the fifth stage, when the instruction to be executed is an M-type instruction, the data read in the fourth stage is calculated and written into the general-purpose register block (M_WB in FIG. 3A). In the case of an R type instruction, a J type instruction, and a B type instruction, the process is completed in the fourth stage, and therefore the process is not performed (NOP in FIG. 3A).

次に、プロセッサ1のハードウェア構成について、図1を用いて説明を行う。   Next, the hardware configuration of the processor 1 will be described with reference to FIG.

プロセッサ1は、実行対象の命令を格納する命令メモリ2と、プログラムカウンタ制御回路PC-CALからの信号を受けて、次に実行する命令が格納された命令メモリ2のアドレスを計算するプログラムカウンタPCとを備える。また、プロセッサ1は、パイプライン処理の各実行ステージ間を介在するパイプラインレジスタID/M_EX、ID/R_EX、ID/J_EX、ID/B_MA、M_EX/M_MA、R_EX/R_WB、J_EX/J_WB、M_MA/R_WB、B_MA/B_WB(図1における11〜19)とを備える。   The processor 1 receives a signal from the instruction memory 2 for storing the instruction to be executed and the program counter control circuit PC-CAL, and calculates the address of the instruction memory 2 in which the instruction to be executed next is stored. With. The processor 1 also includes pipeline registers ID / M_EX, ID / R_EX, ID / J_EX, ID / B_MA, M_EX / M_MA, R_EX / R_WB, J_EX / J_WB, M_MA / between pipeline execution stages. R_WB, B_MA / B_WB (11 to 19 in FIG. 1).

パイプラインレジスタ11、15、16は、Mタイプ命令を処理する際に用いられ、それぞれ、第2ステージと第3ステージ間、第3ステージと第4ステージ間、第4ステージと第5ステージ間を介在するパイプラインレジスタである。またパイプラインレジスタ12、17は、Rタイプ命令を処理する際に用いられ、それぞれ、第2ステージと第3ステージ間、第3ステージと第4ステージ間を介在するパイプラインレジスタである。またパイプラインレジスタ13、18は、Jタイプ命令を処理する際に用いられ、それぞれ、第2ステージと第3ステージ間、第3ステージと第4ステージ間を介在するパイプラインレジスタである。またパイプラインレジスタ14、19は、Bタイプ命令を処理する際に用いられ、それぞれ、第2ステージと第3ステージ間、第3ステージと第4ステージ間を介在するパイプラインレジスタである。   Pipeline registers 11, 15, and 16 are used when processing M-type instructions, respectively, between the second stage and the third stage, between the third stage and the fourth stage, and between the fourth stage and the fifth stage. It is an intervening pipeline register. Pipeline registers 12 and 17 are pipeline registers that are used when processing R-type instructions, and are interposed between the second stage and the third stage and between the third stage and the fourth stage, respectively. Pipeline registers 13 and 18 are used when processing J-type instructions, and are pipeline registers that intervene between the second stage and the third stage and between the third stage and the fourth stage, respectively. The pipeline registers 14 and 19 are pipeline registers that are used when processing B-type instructions, and are interposed between the second stage and the third stage and between the third stage and the fourth stage, respectively.

プロセッサ1は、命令メモリ2から取り出された命令が格納される命令レジスタIRを備え、命令レジスタIRは、パイプライン処理における第1ステージと第2ステージとの間を介在するパイプラインレジスタIF/IDを兼用している。プロセッサ1は、プログラムカウンタPCで計算されたアドレスか、上述のJ_WB処理により命令メモリ2に出力された分岐用アドレスの何れかに基づいて、次に実行する命令を命令メモリ2から取り出して、命令レジスタIRに格納する。なお、これらの処理は、パイプライン処理の第1ステージに該当する。   The processor 1 includes an instruction register IR in which an instruction fetched from the instruction memory 2 is stored. The instruction register IR is a pipeline register IF / ID interposed between the first stage and the second stage in pipeline processing. Is also used. The processor 1 fetches the next instruction to be executed from the instruction memory 2 based on either the address calculated by the program counter PC or the branch address output to the instruction memory 2 by the above-described J_WB processing. Store in register IR. These processes correspond to the first stage of pipeline processing.

また、プロセッサ1は、複数の汎用レジスタで構成される汎用レジスタブロックREGと、命令レジスタIRに格納された命令の識別コードに基づいて、命令タイプを判別する命令デコーダCTRLとを備える。命令デコーダCTRLは、判別した命令タイプに応じて、汎用レジスタブロックREGにアクセスを行い、命令タイプに対応したパイプラインレジスタ11〜14に、汎用レジスタブロックREGから読み込んだ値や命令のパラメータ値を格納する。これらの処理は、パイプライン処理の第2ステージに該当する。   The processor 1 also includes a general-purpose register block REG composed of a plurality of general-purpose registers, and an instruction decoder CTRL that determines an instruction type based on an instruction identification code stored in the instruction register IR. The instruction decoder CTRL accesses the general-purpose register block REG according to the determined instruction type, and stores the values read from the general-purpose register block REG and instruction parameter values in the pipeline registers 11 to 14 corresponding to the instruction type. To do. These processes correspond to the second stage of pipeline processing.

またプロセッサ1は、算術論理演算ユニット(以下、演算ユニットと称す)ALUと、演算対象のデータ及び演算方法を示す制御信号が格納されるアドレス計算レジスタM_EX、及び、算術論理演算レジスタR_EX、J_EXとを備える。演算ユニットALUは、アドレス計算レジスタM_EXの内容に基づいて、データメモリ3にアクセスを行うアドレスを計算し、プロセッサ1が備えるメモリアクセスレジスタM_MAに格納する。また演算ユニットALUは、算術論理演算レジスタR_EX又はJ_EXの内容に基づいて演算を行い、ライトバックレジスタR_WB又はJ_WBに出力する。これらの処理は、パイプライン処理におけるMタイプ命令、Rタイプ命令、Jタイプ命令の場合の第3ステージに該当する。なお、アドレス計算レジスタM_EX、算術論理演算レジスタR_EX、J_EX、メモリアクセスレジスタM_MA、及び、ライトバックレジスタR_WB、J_WBは、パイプラインレジスタ11、12、13、15、17、18をそれぞれ兼用している。   The processor 1 also includes an arithmetic logic unit (hereinafter referred to as an arithmetic unit) ALU, an address calculation register M_EX in which control signals indicating data to be operated and a calculation method are stored, and arithmetic and logic operation registers R_EX and J_EX. Is provided. The arithmetic unit ALU calculates an address for accessing the data memory 3 based on the contents of the address calculation register M_EX, and stores it in the memory access register M_MA included in the processor 1. The arithmetic unit ALU performs an operation based on the contents of the arithmetic logic operation register R_EX or J_EX and outputs the result to the write-back register R_WB or J_WB. These processes correspond to the third stage in the case of an M type instruction, an R type instruction, and a J type instruction in pipeline processing. Note that the address calculation register M_EX, arithmetic and logic operation registers R_EX and J_EX, the memory access register M_MA, and the write-back registers R_WB and J_WB also share the pipeline registers 11, 12, 13, 15, 17, and 18, respectively. .

プロセッサ1は、データメモリ3と、そのデータメモリ3へのアクセス制御を行うメモリアクセスインタフェース4と、パイプラインレジスタ14と兼用されるメモリアクセスレジスタB_MAとを備える。メモリアクセスインタフェース4は、メモリアクセスレジスタM_MA、B_MAの内容に基づいて、データメモリ3からデータを読み込み、パイプラインレジスタ16、19に格納する。これらの処理は、パイプライン処理におけるMタイプ命令の場合の第4ステージ、Bタイプ命令の場合の第3ステージに該当する。なお、ライトバックレジスタM_WB、ライトバックレジスタB_WBは、パイプラインレジスタ16は、19を兼用している。   The processor 1 includes a data memory 3, a memory access interface 4 that controls access to the data memory 3, and a memory access register B_MA that is also used as the pipeline register 14. The memory access interface 4 reads data from the data memory 3 based on the contents of the memory access registers M_MA and B_MA, and stores them in the pipeline registers 16 and 19. These processes correspond to the fourth stage in the case of the M type instruction in the pipeline process and the third stage in the case of the B type instruction. Note that the write-back register M_WB and the write-back register B_WB are also used as the pipeline register 16.

またプロセッサ1は、ビット演算を行うビット演算ユニットBPUと、ビット演算ユニットBPUの出力に応じて、後ろに続く応用命令の無効化制御を行うビットアキュムレータBITACCとを備える。ビット演算ユニットBPUは、ライトバックレジスタB_WBの内容に基づいてビット演算を行い、その演算結果を汎用レジスタブロックREGへ書き込みを行う。この処理は、パイプライン処理におけるBタイプ命令の場合の第4ステージに該当する。   The processor 1 also includes a bit operation unit BPU that performs bit operations, and a bit accumulator BITACC that performs invalidation control of application instructions that follow in accordance with the output of the bit operation unit BPU. The bit operation unit BPU performs a bit operation based on the contents of the write back register B_WB, and writes the operation result to the general-purpose register block REG. This process corresponds to the fourth stage in the case of a B type instruction in pipeline processing.

またプロセッサ1は、ライトバックレジスタM_WB、R_WBに格納された内容に基づいて、汎用レジスタブロックREGに書き込みを行うとともに、ライトバックレジスタJ_WBに格納された内容に基づいて、命令メモリ2の分岐用アドレスの書き換えを行う。この処理は、パイプライン処理におけるMタイプ命令の場合の第5ステージ、Rタイプ命令及びJタイプ命令の場合の第4ステージに該当する。   The processor 1 writes to the general-purpose register block REG based on the contents stored in the write-back registers M_WB and R_WB, and also uses the branch address of the instruction memory 2 based on the contents stored in the write-back register J_WB. Rewrite. This processing corresponds to the fifth stage in the case of the M type instruction in the pipeline processing and the fourth stage in the case of the R type instruction and the J type instruction.

なお、各パイプラインレジスタIF/ID、11〜19、及び、プログラムカウンタPCは、例えば、立ち上がりトリガ型のDフリップフロップで構成することが可能である。   Each pipeline register IF / ID, 11 to 19 and the program counter PC can be configured by, for example, a rising trigger type D flip-flop.

以上に説明したように、命令デコーダCTRLでは命令の識別コードフィールドに設定された値に基づいて処理の分岐を行うことが可能である。この識別コードは、プロセッサ1で処理可能な命令が増えた場合であっても増えず、命令デコーダCTRLは処理可能な命令数が少ない場合とほぼ同じ処理速度で動作することが可能である。これにより、命令デコーダCTRLによる命令デコード処理を主たる処理とする第2ステージの処理時間が、パイプライン処理の1クロック分の時間よりも長くなることを低減することができる。   As described above, the instruction decoder CTRL can branch the process based on the value set in the instruction identification code field. This identification code does not increase even when the number of instructions that can be processed by the processor 1 increases, and the instruction decoder CTRL can operate at almost the same processing speed as when the number of instructions that can be processed is small. As a result, it is possible to reduce the processing time of the second stage, which mainly includes instruction decoding processing by the instruction decoder CTRL, from being longer than the time for one clock of pipeline processing.

なお、ハードウェアの構造、命令セット、命令構造、識別コードは、本実施の形態に記載した構成に限定されるものではない。   Note that the hardware structure, instruction set, instruction structure, and identification code are not limited to the configurations described in the present embodiment.

1 プロセッサ
2 命令メモリ
3 データメモリ
4 メモリアクセスインタフェース
11…19 パイプラインレジスタ
PC プログラムカウンタ
PC-CAL プログラムカウンタ制御回路
IR 命令レジスタ
CTRL 命令デコーダ
REG 汎用レジスタブロック
ALU 算術論理演算ユニット
BPU ビット演算ユニット
BITACC ビットアキュムレータ
DESCRIPTION OF SYMBOLS 1 Processor 2 Instruction memory 3 Data memory 4 Memory access interface 11 ... 19 Pipeline register
PC program counter
PC-CAL Program counter control circuit
IR instruction register
CTRL instruction decoder
REG General-purpose register block
ALU arithmetic logic unit
BPU bit arithmetic unit
BITACC bit accumulator

Claims (2)

命令パイプライン処理の各実行ステージを構成するハードウェアとして、
実行対象の命令を格納する命令メモリと、
前記命令メモリから次に実行する命令のアドレスを格納するプログラムカウンタと、
命令フェッチ処理により前記命令メモリから読み出された前記命令が格納される命令レジスタと、
前記命令レジスタに格納された命令に基づいて、汎用レジスタからの読み込みを行う命令デコーダと、
複数の汎用レジスタからなる汎用レジスタブロックと、
データメモリとそのデータメモリへのアクセス制御を行うメモリアクセスインタフェースと、
算術論理演算処理を行う算術論理演算ユニットと、
ビット演算処理を行うビット演算ユニットと、
各実行ステージ間をつなぐ複数のパイプラインレジスタとを備え、
処理内容に基づいて分類される命令タイプごとに、前記ハードウェアを組み合わせて構成される複数の命令タイプ別実行ステージを有し、
前記命令デコーダは、前記命令タイプに基づいて前記実行ステージへの分岐を行うことを特徴とするプロセッサ。
As hardware constituting each execution stage of instruction pipeline processing,
An instruction memory for storing instructions to be executed;
A program counter for storing an address of an instruction to be executed next from the instruction memory;
An instruction register for storing the instruction read from the instruction memory by an instruction fetch process;
An instruction decoder for reading from a general-purpose register based on an instruction stored in the instruction register;
A general purpose register block consisting of multiple general purpose registers;
A data memory and a memory access interface for controlling access to the data memory;
An arithmetic logic unit that performs arithmetic logic processing;
A bit operation unit for performing bit operation processing;
A plurality of pipeline registers that connect each execution stage,
For each instruction type classified based on the processing content, it has a plurality of instruction type execution stages configured by combining the hardware,
The processor, wherein the instruction decoder performs a branch to the execution stage based on the instruction type.
前記命令コードは、前記命令タイプに対応した識別コードを有し、
前記命令デコーダは、前記識別コードに基づいて命令タイプを判別することを特徴とする請求項1記載のプロセッサ。
The instruction code has an identification code corresponding to the instruction type,
The processor according to claim 1, wherein the instruction decoder determines an instruction type based on the identification code.
JP2010036027A 2010-02-22 2010-02-22 Processor Withdrawn JP2011170758A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010036027A JP2011170758A (en) 2010-02-22 2010-02-22 Processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010036027A JP2011170758A (en) 2010-02-22 2010-02-22 Processor

Publications (1)

Publication Number Publication Date
JP2011170758A true JP2011170758A (en) 2011-09-01

Family

ID=44684792

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010036027A Withdrawn JP2011170758A (en) 2010-02-22 2010-02-22 Processor

Country Status (1)

Country Link
JP (1) JP2011170758A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114168525A (en) * 2017-03-14 2022-03-11 珠海市芯动力科技有限公司 Reconfigurable parallel processing

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114168525A (en) * 2017-03-14 2022-03-11 珠海市芯动力科技有限公司 Reconfigurable parallel processing
CN114168525B (en) * 2017-03-14 2023-12-19 珠海市芯动力科技有限公司 Reconfigurable parallel processing

Similar Documents

Publication Publication Date Title
JP5941488B2 (en) Convert conditional short forward branch to computationally equivalent predicate instruction
KR101618669B1 (en) Systems, apparatuses, and methods for jumps using a mask register
CN107851015B (en) Vector operation digit size control
JP4864840B2 (en) Microprocessor
US8595473B2 (en) Method and apparatus for performing control of flow in a graphics processor architecture
CN115048334B (en) Programmable Array Processor Control Unit
CN108959180B (en) Data processing method and system
JP2011170758A (en) Processor
CN101253480A (en) Computer with real-time dynamically variable instruction set
JP6372250B2 (en) Arithmetic processing unit
JP5437878B2 (en) Information processing device
US7886133B2 (en) Information processing apparatus and method for accelerating information processing
US10324723B2 (en) Systems and methods for processing both instructions and constant values from a memory of a digital processor accessed by separate pointers
US20240427597A1 (en) Conditional branch instructions for aggregating conditional branch operations
JP5292831B2 (en) Programmable controller
JP5263497B2 (en) Signal processor and semiconductor device
US9135006B1 (en) Early execution of conditional branch instruction with pc operand at which point target is fetched
JP5866697B2 (en) CPU having a plurality of condition flags
JP2007257349A (en) Processor and processing method thereof
JP5263498B2 (en) Signal processor and semiconductor device
JP5311008B2 (en) Signal processor and semiconductor device
CN121002479A (en) Conditional branching instructions used for aggregation conditional branching operations
CN116107632A (en) RISC-V processor and method capable of dynamically modifying immediate field of coprocessor instruction
JPH0512009A (en) Digital signal processing device
JP2020140290A (en) Central processing unit

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110701

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110701

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20110627

A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20130507