JP6191457B2 - Arithmetic processing device and arithmetic processing method - Google Patents

Arithmetic processing device and arithmetic processing method Download PDF

Info

Publication number
JP6191457B2
JP6191457B2 JP2013516201A JP2013516201A JP6191457B2 JP 6191457 B2 JP6191457 B2 JP 6191457B2 JP 2013516201 A JP2013516201 A JP 2013516201A JP 2013516201 A JP2013516201 A JP 2013516201A JP 6191457 B2 JP6191457 B2 JP 6191457B2
Authority
JP
Japan
Prior art keywords
instruction
state
read
loop
program counter
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.)
Active
Application number
JP2013516201A
Other languages
Japanese (ja)
Other versions
JPWO2012160794A1 (en
Inventor
友義 小堀
友義 小堀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2012160794A1 publication Critical patent/JPWO2012160794A1/en
Application granted granted Critical
Publication of JP6191457B2 publication Critical patent/JP6191457B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • G06F9/381Loop buffering

Description

本発明は演算処理装置及び演算処理方法に関し、特に命令のループ処理を扱う演算処理装置及び演算処理方法に関する。   The present invention relates to an arithmetic processing device and an arithmetic processing method, and more particularly to an arithmetic processing device and an arithmetic processing method that handle loop processing of instructions.

信号処理では、連続する多量のデータ(たとえばストリームデータ)を演算処理対象データとして扱い、それらの多量のデータに対して繰り返し同じ処理(複数の命令を用いて実現できる演算)を実行する場合が多い。   In signal processing, a large amount of continuous data (for example, stream data) is handled as data to be processed, and the same processing (operation that can be realized using a plurality of instructions) is repeatedly performed on the large amount of data in many cases. .

図17は、これらの信号処理を実現する一般的な汎用プロセッサである。汎用プロセッサは、命令メモリ50と、プログラムカウンタ51と、命令レジスタ52と、デコードユニット53と、レジスタファイル54と、ALU(Arithmetic Logic Unit)55と、を備える。命令メモリ50は、命令を格納する。プログラムカウンタ51は、命令メモリ50から命令を読み出すためのアドレスを生成する。命令レジスタ52は、命令メモリ50から読み出された命令を一時的に保持する。デコードユニット53は、命令レジスタ52に保持された命令を解釈して制御信号を生成する。レジスタファイル54は、ALU55による演算に必要となる演算データを格納する。ALU55は、デコードユニット53から発行される制御信号に応じて所望の演算処理を行う。   FIG. 17 shows a general general-purpose processor that realizes these signal processes. The general-purpose processor includes an instruction memory 50, a program counter 51, an instruction register 52, a decode unit 53, a register file 54, and an ALU (Arithmetic Logic Unit) 55. The instruction memory 50 stores instructions. The program counter 51 generates an address for reading an instruction from the instruction memory 50. The instruction register 52 temporarily holds an instruction read from the instruction memory 50. The decode unit 53 interprets the instruction held in the instruction register 52 and generates a control signal. The register file 54 stores calculation data necessary for calculation by the ALU 55. The ALU 55 performs desired arithmetic processing in accordance with a control signal issued from the decode unit 53.

図17に示す汎用プロセッサで前述した信号処理(連続する多量のデータに対して繰り返し同じ処理(複数の命令を用いて実現できる演算)を実行する処理)を実現する場合、ループ処理を制御するための加算命令または減算命令、ループ回数のカウント、ジャンプ命令、比較命令等を実行する。すなわち、メインの演算処理の他に、ループ回数のカウントや命令分岐処理といった制御系の命令実行が必要となる。これにより、処理の実行に必要となる命令が増加し、これに伴い実行時間も増加するという問題が生じる。   In order to control the loop processing when the above-described signal processing (processing for repeatedly executing the same processing (operation that can be realized using a plurality of instructions) on a large amount of continuous data) is realized by the general-purpose processor shown in FIG. Addition or subtraction instruction, loop count, jump instruction, comparison instruction, etc. are executed. That is, in addition to the main arithmetic processing, control system instruction execution such as counting the number of loops and instruction branch processing is required. As a result, the number of instructions required for execution of processing increases, and the problem arises that the execution time increases accordingly.

この問題を解決するために、DSP(Digital Signal Processor)等の信号処理向けのプロセッサは、特許文献1に示すようなハードウェアループと呼ばれる機構を備えている。図18は、ハードウェアループの処理機構を備えたプロセッサを示す図である。   In order to solve this problem, a processor for signal processing, such as a DSP (Digital Signal Processor), has a mechanism called a hardware loop as shown in Patent Document 1. FIG. 18 is a diagram illustrating a processor including a hardware loop processing mechanism.

図18に示すプロセッサは、命令メモリ60と、プログラムカウンタ61と、命令レジスタ62と、デコードユニット63と、レジスタファイル64と、ALU65と、に加えて、ハードウェア(HW)ループユニット66を備える。HWループユニット66は、ループ制御をハードウェア資源を用いて行うユニットである。HWループユニット66は、プログラムカウンタ61、デコードユニット63、及びレジスタファイル64と接続されている。   The processor shown in FIG. 18 includes a hardware (HW) loop unit 66 in addition to an instruction memory 60, a program counter 61, an instruction register 62, a decode unit 63, a register file 64, and an ALU 65. The HW loop unit 66 is a unit that performs loop control using hardware resources. The HW loop unit 66 is connected to the program counter 61, the decode unit 63, and the register file 64.

HWループユニット66には、ループ制御用の特殊命令を用いて、繰り返し回数、ループ部分の終端アドレス等がセットされる。HWループユニット66は、セットされた情報を基に、特殊命令からループ終端アドレスまでの命令を繰り返し回数分だけ繰り返し読み出すようなプログラムカウンタ動作となるようにプログラムカウンタ61を制御する。これにより、プロセッサは、ループ処理を実現する。   In the HW loop unit 66, the number of repetitions, the end address of the loop portion, and the like are set using a special instruction for loop control. Based on the set information, the HW loop unit 66 controls the program counter 61 so as to perform a program counter operation such that instructions from the special instruction to the loop end address are repeatedly read by the number of repetitions. Thereby, the processor realizes loop processing.

しかし、特許文献1に記載の技術では、ループ制御方式を指定するために必要なループ命令をループ対象となる演算の前に用いる必要がある。そのため、小規模なループが多数存在する場合、全体の命令数に対するループ制御用の特殊命令の割合が増加してしまう。   However, in the technique described in Patent Document 1, it is necessary to use a loop instruction necessary for designating a loop control method before an operation to be looped. For this reason, when there are many small loops, the ratio of special instructions for loop control to the total number of instructions increases.

この割合増加を回避するために、様々な手法が提案されている。特許文献2では、同じ処理を繰り返し実行する命令(たとえば、アドレスのインクリメント等)に対して、リピートの可否を示すフラグ及びリピート回数を指定するフィールドを設ける。そして、特許文献2に記載の制御装置は、このフィールドを参照することによってループ制御用の追加命令を実行することなくループ処理を実行できる。図19は、特許文献2に記載の制御装置が処理対象とする命令のフィールドを示す図である。図示するように、命令には、"Repeat"(リピートの可否を示すフラグ)及び"Count"(リピート回数)というフィールドが含まれる。特許文献2に記載の技術により、ループ処理に対する特殊命令の割合を小さくすることができ、命令メモリが保持する命令のサイズを削減できる。さらに、命令メモリのメモリ帯域が制限された状況であっても、制御装置はループ処理を実行することができる。   Various techniques have been proposed to avoid this rate increase. In Patent Document 2, for a command that repeatedly executes the same processing (for example, address increment), a flag indicating whether repeat is possible and a field for designating the number of repeats are provided. And the control apparatus of patent document 2 can perform a loop process, without performing the additional command for loop control by referring to this field. FIG. 19 is a diagram illustrating a field of an instruction to be processed by the control device described in Patent Document 2. As shown in the figure, the instruction includes fields of “Repeat” (a flag indicating whether repeat is possible) and “Count” (number of repeats). With the technique described in Patent Document 2, the ratio of special instructions to loop processing can be reduced, and the size of instructions held in the instruction memory can be reduced. Furthermore, even in a situation where the memory bandwidth of the instruction memory is limited, the control device can execute loop processing.

特開昭59−47651号公報JP 59-47651 A 特表2000−507009号公報Special Table 2000-507909

しかしながら、図19に示す命令セット(特許文献2が提案する命令セット)は、1命令に対するリピート処理を対象とするものである。すなわち、特許文献2では、複数の命令を連続して繰り返し実行すること(たとえば、命令1→命令2→命令3という一連の実行を10回繰り返すこと)を考慮していない。そのため、複数の命令を連続して繰り返し実行しようとする場合には、ハードウェアループのようにリピート制御を指定する個別命令を使用するか、ジャンプ命令や比較命令等を使用し、プログラムでループ構造を実現する必要がある。この場合、実行すべき命令数が増加し、命令メモリの増大や実行速度の低下を招いてしまう。   However, the instruction set shown in FIG. 19 (instruction set proposed by Patent Document 2) is intended for repeat processing for one instruction. In other words, Patent Document 2 does not consider performing a plurality of instructions repeatedly and repeatedly (for example, repeating a series of instructions of instruction 1 → instruction 2 → instruction 3 ten times). Therefore, if you want to repeatedly execute multiple instructions in succession, use individual instructions that specify repeat control, such as a hardware loop, or use a jump instruction or comparison instruction, etc. It is necessary to realize. In this case, the number of instructions to be executed increases, leading to an increase in instruction memory and a decrease in execution speed.

本発明は、上記の課題を鑑みてなされたものであり、複数命令をまとめて繰り返し実行する場合でも、投入命令数を増加させることなく処理を実行することができる演算処理装置、及び演算処理方法を提供することを主たる目的とする。   The present invention has been made in view of the above problems, and an arithmetic processing apparatus and an arithmetic processing method capable of executing a process without increasing the number of input instructions even when a plurality of instructions are repeatedly executed collectively. The main purpose is to provide

本発明にかかる演算処理装置の一態様は、
命令実行手段(たとえば実施の形態1におけるデコードユニット13、レジスタファイル14、及びALU15)で実行する命令が格納された命令格納手段(たとえば実施の形態1における命令メモリ10)から読み出す命令のアドレスを順次指定するプログラムカウンタと、
前記プログラムカウンタにより指定されて前記命令格納手段から読み出された命令のうち、ループ処理する1以上の命令からなる命令群を退避する命令退避手段(たとえば実施の形態1における命令レジスタファイル16)と、
前記命令に含まれる前記ループ処理を行うか否か及び当該ループ処理の規定回数を示す管理情報に基づき、前記命令実行手段に供給する命令を制御するリピートコンローラと、
前記リピートコントローラの制御に基づき、前記命令格納手段から読み出された命令、または前記命令退避手段から出力された命令のいずれかを選択して前記命令実行手段に供給する選択手段(たとえば実施の形態1におけるセレクタ18)と、を有し、
前記管理情報は、前記命令格納手段から読み出された命令が前記一のループ処理で処理される命令であるか否かを示す情報を含むものであって、
前記リピートコントローラは、前記管理情報に基づき、前記一のループ処理で処理される命令群を前記命令退避手段に退避させ、前記命令退避手段に前記一のループ処理で処理される命令が全て退避されると前記プログラムカウンタが指定するアドレスの更新を停止し、前記命令退避手段に保持された前記命令群から処理対象となる一の命令を出力させ、当該ループ処理実行中は、前記選択手段に前記命令退避手段から出力された命令を選択出力させる、ものである。
One aspect of the arithmetic processing device according to the present invention is:
The addresses of the instructions to be read from the instruction storage means (for example, the instruction memory 10 in the first embodiment) in which instructions to be executed by the instruction execution means (for example, the decode unit 13, the register file 14, and the ALU 15 in the first embodiment) are sequentially stored. A program counter to specify,
Instruction saving means (for example, instruction register file 16 in the first embodiment) for saving an instruction group consisting of one or more instructions to be loop-processed among the instructions designated by the program counter and read from the instruction storage means; ,
A repeat controller for controlling a command to be supplied to the command execution means based on management information indicating whether or not to perform the loop processing included in the command and a prescribed number of times of the loop processing;
Selection means (for example, an embodiment) that selects either an instruction read from the instruction storage means or an instruction output from the instruction save means based on the control of the repeat controller and supplies the instruction execution means 1), and
The management information includes information indicating whether or not an instruction read from the instruction storage unit is an instruction processed in the one loop process,
The repeat controller saves the instruction group processed in the one loop process in the instruction save unit based on the management information, and all instructions processed in the one loop process are saved in the instruction save unit. Then, the update of the address specified by the program counter is stopped, and one instruction to be processed is output from the instruction group held in the instruction saving unit, and during the execution of the loop processing, the selection unit An instruction output from the instruction saving means is selectively output.

本発明にかかる演算処理方法の一態様は、
処理対象となる命令は、ループ処理を行うか否か及び当該ループ処理の規定回数を示す管理情報を含み、前記管理情報は、命令格納手段から読み出された命令が一のループ処理で処理される命令であるか否かを示す情報を含み、
前記管理情報に基づいて、前記命令格納手段から読み出された命令のうち、前記一のループで処理する1以上の命令からなる命令群を退避し、前記一のループ処理で処理される命令が全て退避されると前記命令格納手段から読み出される命令の更新を停止し、前記一のループ処理の実行中は退避された前記命令群から処理対象となる一の命令を命令実行手段に出力し、当該ループ処理以外の命令実行中には前記命令格納手段から読み出された命令を命令実行手段に出力する、ものである。
One aspect of the arithmetic processing method according to the present invention is:
The instruction to be processed includes management information indicating whether or not to perform loop processing and the specified number of times of the loop processing, and the management information is processed in one loop processing when the instruction read from the instruction storage means is processed. Information indicating whether or not
Based on the management information, among the instructions read from the instruction storage means, an instruction group consisting of one or more instructions to be processed in the one loop is saved, and an instruction to be processed in the one loop process is When all the instructions are saved, the update of the instruction read from the instruction storage unit is stopped, and during execution of the one loop process, one instruction to be processed is output from the saved instruction group to the instruction execution unit, During instruction execution other than the loop processing, the instruction read from the instruction storage means is output to the instruction execution means.

本発明によれば、複数命令をまとめて繰り返し実行する場合でも、投入命令数を増加させることなく処理を実行することができる演算処理装置、及び演算処理方法を提供することができる。   According to the present invention, it is possible to provide an arithmetic processing device and an arithmetic processing method capable of executing processing without increasing the number of input instructions even when a plurality of instructions are repeatedly executed together.

実施の形態1にかかる演算処理装置の構成を示すブロック図である。1 is a block diagram illustrating a configuration of an arithmetic processing apparatus according to a first embodiment. 実施の形態1にかかるリピートコントローラ17の内部構成を示すブロック図である。2 is a block diagram showing an internal configuration of a repeat controller 17 according to the first embodiment. FIG. 実施の形態1にかかる演算処理装置が処理を行う命令のフィールドを示す図である。FIG. 3 is a diagram illustrating a field of an instruction to be processed by the arithmetic processing apparatus according to the first embodiment. 実施の形態1にかかるリピートコントローラ17による各処理部の制御を示す表である。3 is a table showing control of each processing unit by the repeat controller 17 according to the first embodiment. 実施の形態1にかかる演算処理装置の処理する命令の具体例を示す図である。FIG. 3 is a diagram illustrating a specific example of instructions processed by the arithmetic processing device according to the first embodiment; 実施の形態1にかかる演算処理装置の動作を示す概念図である。FIG. 3 is a conceptual diagram illustrating an operation of the arithmetic processing apparatus according to the first embodiment. 実施の形態1にかかる演算処理装置の動作を示す概念図である。FIG. 3 is a conceptual diagram illustrating an operation of the arithmetic processing apparatus according to the first embodiment. 実施の形態1にかかる演算処理装置の動作を示す概念図である。FIG. 3 is a conceptual diagram illustrating an operation of the arithmetic processing apparatus according to the first embodiment. 実施の形態1にかかる演算処理装置の動作を示す概念図である。FIG. 3 is a conceptual diagram illustrating an operation of the arithmetic processing apparatus according to the first embodiment. 実施の形態1にかかる演算処理装置の動作を示す概念図である。FIG. 3 is a conceptual diagram illustrating an operation of the arithmetic processing apparatus according to the first embodiment. 実施の形態1にかかる演算処理装置の動作を示す概念図である。FIG. 3 is a conceptual diagram illustrating an operation of the arithmetic processing apparatus according to the first embodiment. 実施の形態1にかかる演算処理装置の動作を示す概念図である。FIG. 3 is a conceptual diagram illustrating an operation of the arithmetic processing apparatus according to the first embodiment. 実施の形態2にかかる演算処理装置が処理を行う命令のフィールドを示す図である。FIG. 10 is a diagram illustrating a field of an instruction to be processed by the arithmetic processing device according to the second embodiment. 実施の形態2にかかるリピートコントローラ17による各処理部の制御を示す表である。10 is a table showing control of each processing unit by the repeat controller 17 according to the second embodiment. 実施の形態2にかかる演算処理装置の処理する命令の具体例を示す図である。FIG. 10 is a diagram illustrating a specific example of instructions processed by the arithmetic processing device according to the second embodiment; 実施の形態2にかかる演算処理装置の処理する命令の具体例を示す図である。FIG. 10 is a diagram illustrating a specific example of instructions processed by the arithmetic processing device according to the second embodiment; 一般的なプロセッサの構成を示すブロック図である。It is a block diagram which shows the structure of a general processor. ハードウェアループの処理機構を備えたプロセッサの構成を示すブロック図である。It is a block diagram which shows the structure of the processor provided with the processing mechanism of the hardware loop. 特許文献2に記載の制御装置が処理対象とする命令のフィールドを示す図である。It is a figure which shows the field of the command which the control apparatus of patent document 2 makes into a process target.

<実施の形態1>
以下、図面を参照して本発明の実施の形態について説明する。図1は、本実施の形態にかかる演算処理装置を示すブロック図である。
<Embodiment 1>
Embodiments of the present invention will be described below with reference to the drawings. FIG. 1 is a block diagram showing an arithmetic processing apparatus according to this embodiment.

演算処理装置1は、命令メモリ10と、プログラムカウンタ11と、命令レジスタ12と、デコードユニット13と、レジスタファイル14と、ALU(Arithmetic Logic Unit)15と、命令レジスタファイル16と、リピートコントローラ17と、セレクタ18と、を備える。   The arithmetic processing unit 1 includes an instruction memory 10, a program counter 11, an instruction register 12, a decode unit 13, a register file 14, an ALU (Arithmetic Logic Unit) 15, an instruction register file 16, and a repeat controller 17. , A selector 18.

命令メモリ10は、実行対象となる命令が格納される。命令メモリ10は、命令レジスタ12と、プログラムカウンタ11と、に接続されている。   The instruction memory 10 stores instructions to be executed. The instruction memory 10 is connected to an instruction register 12 and a program counter 11.

プログラムカウンタ11は、命令メモリ10から命令を読み出す際のアドレスを供給するための情報を保持する。すなわち、プログラムカウンタ11は、命令メモリ10から読み出されるべき命令の情報を保持する。プログラムカウンタ11は、更新状態またはHOLD状態のいずれか状態となる。更新状態は、読み出されるべき命令の情報を更新できる状態である。HOLD状態は、読み出されるべき命令の情報を更新できない状態である。プログラムカウンタ11は、命令メモリ10と、リピートコントローラ17と、ALU15と、に接続されている。   The program counter 11 holds information for supplying an address when reading an instruction from the instruction memory 10. That is, the program counter 11 holds information on instructions to be read from the instruction memory 10. The program counter 11 is in an update state or a HOLD state. The update state is a state in which information on an instruction to be read can be updated. The HOLD state is a state in which information on an instruction to be read cannot be updated. The program counter 11 is connected to the instruction memory 10, the repeat controller 17, and the ALU 15.

命令レジスタ12は、命令メモリ10から読み出された命令を一時的に保持するレジスタである。命令レジスタ12は、セレクタ18と、リピートコントローラ17と、命令レジスタファイル16と、に接続されている。   The instruction register 12 is a register that temporarily holds an instruction read from the instruction memory 10. The instruction register 12 is connected to the selector 18, the repeat controller 17, and the instruction register file 16.

デコードユニット13は、セレクタ18から供給される命令を解釈し、後段に存在するレジスタファイル14及びALU15を制御するための実行制御信号をレジスタファイル14及びALU15に出力する。デコードユニット13は、セレクタ18と、レジスタファイル14と、ALU15と、に接続されている。   The decode unit 13 interprets the instruction supplied from the selector 18 and outputs an execution control signal for controlling the register file 14 and ALU 15 existing in the subsequent stage to the register file 14 and ALU 15. The decode unit 13 is connected to the selector 18, the register file 14, and the ALU 15.

レジスタファイル14は、ALU15にて行う演算において使用されるデータを格納する。レジスタファイル14は、デコードユニット13と、ALU15と、に接続されている。   The register file 14 stores data used in operations performed by the ALU 15. The register file 14 is connected to the decode unit 13 and the ALU 15.

ALU15は、供給された命令を用いた演算処理を行う演算処理ユニットである。ALU15は、デコードユニット13と、レジスタファイル14と、に接続されている。   The ALU 15 is an arithmetic processing unit that performs arithmetic processing using supplied instructions. The ALU 15 is connected to the decode unit 13 and the register file 14.

命令レジスタファイル16は、ループ処理対象となる命令を一時的に格納する。命令レジスタファイル16には、命令レジスタ12から命令が供給される。さらに、リピートコントローラ17の動作指示信号により、命令レジスタファイル16が保持する命令が更新される。命令レジスタファイル16による命令格納の具体例については後述する。命令レジスタファイル16は、命令レジスタ12と、リピートコントローラ17と、セレクタ18と、に接続されている。   The instruction register file 16 temporarily stores instructions to be loop processed. Instructions are supplied from the instruction register 12 to the instruction register file 16. Further, the instruction held in the instruction register file 16 is updated by the operation instruction signal of the repeat controller 17. A specific example of instruction storage by the instruction register file 16 will be described later. The instruction register file 16 is connected to the instruction register 12, the repeat controller 17, and the selector 18.

リピートコントローラ17は、デコードユニット13による命令解釈に先立って、ループ処理を示すフラグ(後述の図3におけるREP FLAG31)及びループ処理の規定回数を示す値(後述の図3におけるREP COUNT32)をプリデコードする。リピートコントローラ17は、内部状態と、プリデコードにより取得したフラグと、を参照して命令レジスタファイル16と、セレクタ18と、プログラムカウンタ11と、に対して動作指示を行う。リピートコントローラ17は、命令レジスタ12と、命令レジスタファイル16と、セレクタ18と、プログラムカウンタ11と、に接続されている。   Prior to instruction interpretation by the decode unit 13, the repeat controller 17 predecodes a flag indicating a loop process (REP FLAG 31 in FIG. 3 described later) and a value indicating a specified number of loop processes (REP COUNT 32 in FIG. 3 described later). To do. The repeat controller 17 instructs the instruction register file 16, the selector 18, and the program counter 11 with reference to the internal state and the flag acquired by predecoding. The repeat controller 17 is connected to the instruction register 12, the instruction register file 16, the selector 18, and the program counter 11.

図2は、リピートコントローラ17の内部構成を示すブロック図である。リピートコントローラ17は、プリデコーダ20と、カウンタ21と、ステートコントローラ22と、を備える。   FIG. 2 is a block diagram showing an internal configuration of the repeat controller 17. The repeat controller 17 includes a predecoder 20, a counter 21, and a state controller 22.

プリデコーダ20は、命令レジスタ12に格納されている命令を読み出し、当該命令をプリデコードする。カウンタ21は、命令のループ処理を制御するためのカウント値を保持する。このカウント値は、ループ処理の残回数を示す。   The predecoder 20 reads an instruction stored in the instruction register 12 and predecodes the instruction. The counter 21 holds a count value for controlling instruction loop processing. This count value indicates the remaining number of loop processes.

ステートマシン22は、3つの内部状態(0〜2)のうちいずれかの状態となる。第1の状態(0)は、命令レジスタファイル16内に命令が存在しないことを示す。第2の状態(1)は、命令レジスタファイル16内に命令が存在することを示す。第3の状態(2)は、リピート処理を実行中であることを示す。   The state machine 22 is in one of three internal states (0 to 2). The first state (0) indicates that no instruction exists in the instruction register file 16. The second state (1) indicates that an instruction exists in the instruction register file 16. The third state (2) indicates that the repeat process is being executed.

ステートマシン22は、カウンタ21と、プリデコーダ20と、に接続されている。カウンタ21は、ステートマシン22に接続されている。   The state machine 22 is connected to the counter 21 and the predecoder 20. The counter 21 is connected to the state machine 22.

図1の説明を再度行う。セレクタ18は、命令レジスタ12に格納されている命令、及び命令レジスタファイル16に格納されている命令のいずれか一方を選択してデコードユニット13に供給する。セレクタ18は、リピートコントローラ17からの指示に応じて当該選択を行う。セレクタ18は、デコードユニット13と、命令レジスタ12と、命令レジスタファイル16と、リピートコントローラ17と、に接続されている。   The description of FIG. 1 will be repeated. The selector 18 selects one of the instruction stored in the instruction register 12 and the instruction stored in the instruction register file 16 and supplies the selected instruction to the decode unit 13. The selector 18 performs the selection according to an instruction from the repeat controller 17. The selector 18 is connected to the decode unit 13, the instruction register 12, the instruction register file 16, and the repeat controller 17.

上記した各処理部の動作を更に説明する。なお、前提として、命令メモリ10には、所望の演算処理を行うために必要な命令が少なくとも1つ格納されている。図3は、命令メモリ10に格納される命令の各フィールドを示す図である。   The operation of each processing unit described above will be further described. As a premise, the instruction memory 10 stores at least one instruction necessary for performing desired arithmetic processing. FIG. 3 is a diagram showing each field of the instruction stored in the instruction memory 10.

各命令は、OPECODE30と、REP FLAG31と、REP COUNT32と、OPERAND#0(33a)と、OPERAND#1(33b)と、OPERAND#2(33c)と、を備える。   Each instruction includes OPECODE 30, REP FLAG 31, REP COUNT 32, OPERAND # 0 (33a), OPERAND # 1 (33b), and OPERAND # 2 (33c).

OPECODE30は、命令の種類を示すフィールドである。REP FLAG31は、ループ処理に含まれる命令であるか否かを示すフィールドである。REP COUNT32は、ループ処理の規定回数を示すフィールドである。OPERAND#0(33a)は、実行される命令で使用される第一のデータが格納されているインデックスを示すフィールドである。当該インデックスは、レジスタファイル14内での位置を示す。OPERAND#1(33b)及びOPERAND#2(33c)についても同様である。OPERAND#1(33b)は、実行される命令で使用される第二のデータが格納されているインデックスを示すフィールドである。OPERAND#2(33c)は、実行される命令の演算結果を格納するインデックスを示すフィールドである。   OPECODE 30 is a field indicating the type of instruction. The REP FLAG 31 is a field indicating whether or not the instruction is included in the loop processing. The REP COUNT 32 is a field indicating the specified number of times of loop processing. OPERAND # 0 (33a) is a field indicating an index in which the first data used in the instruction to be executed is stored. The index indicates a position in the register file 14. The same applies to OPERAND # 1 (33b) and OPERAND # 2 (33c). OPERAND # 1 (33b) is a field indicating an index in which second data used in an instruction to be executed is stored. OPERAND # 2 (33c) is a field indicating an index for storing the operation result of the instruction to be executed.

以下に、上記した各処理部が1つの命令をどのように処理するかを説明する。   Hereinafter, how each processing unit described above processes one instruction will be described.

はじめに、プログラムカウンタ11の保持する値を参照し、当該値に対応する命令が命令メモリ10から読み出される。読み出された命令は命令レジスタ12に格納される。そして、命令レジスタ12に格納された命令は、リピートコントローラ17に供給される。これと同時に、当該命令は、命令レジスタファイル16に供給される。   First, referring to a value held by the program counter 11, an instruction corresponding to the value is read from the instruction memory 10. The read instruction is stored in the instruction register 12. Then, the instruction stored in the instruction register 12 is supplied to the repeat controller 17. At the same time, the instruction is supplied to the instruction register file 16.

リピートコントローラ17内のプリデコーダ20は、供給された命令をプリデコードする。ここでプリデコードとは、命令のREP FLAG31及びREP COUNT32の値を読み出すことである。プリデコーダ20は、読み出したREP FLAG31及びREP COUNT32の値をステートマシン22に供給する。   The predecoder 20 in the repeat controller 17 predecodes the supplied instruction. Here, predecoding is to read the values of the REP FLAG 31 and REP COUNT 32 of the instruction. The predecoder 20 supplies the read values of the REP FLAG 31 and the REP COUNT 32 to the state machine 22.

ステートマシン22は、供給されたREP FLAG31及びREP COUNT32の値と、ステートマシン22の内部状態(0〜2のいずれか)と、カウンタ21のカウント値と、に基づいてプログラムカウンタ11と、命令レジスタファイル16と、セレクタ18と、を制御する。ステートマシン22による各処理部の制御、ステートマシン22内での内部状態の変化、及びカウンタ21の値の更新について以下に説明する。   The state machine 22 includes a program counter 11 and an instruction register based on the supplied values of the REP FLAG 31 and the REP COUNT 32, the internal state of the state machine 22 (any one of 0 to 2), and the count value of the counter 21. The file 16 and the selector 18 are controlled. The control of each processing unit by the state machine 22, the change of the internal state in the state machine 22, and the update of the value of the counter 21 will be described below.

内部状態が0である場合(命令レジスタファイル16内に命令が存在しない場合)について説明する。読み出したREP FLAG31の値が0である場合、ステートマシン22は、命令レジスタ12からの命令を選択することをセレクタ18に指示する。さらに、ステートマシン22は、更新状態に遷移することをプログラムカウンタ11に指示する。さらにまた、ステートマシン22は、命令レジスタファイル16内部に保持されている命令のうち最新の命令を破棄することを指示する。そして、ステートマシン22の内部状態は0(命令レジスタファイル16内に命令が存在しない)のままとする。   A case where the internal state is 0 (a case where no instruction exists in the instruction register file 16) will be described. When the value of the read REP FLAG 31 is 0, the state machine 22 instructs the selector 18 to select an instruction from the instruction register 12. Further, the state machine 22 instructs the program counter 11 to transition to the update state. Furthermore, the state machine 22 instructs to discard the latest instruction among the instructions held in the instruction register file 16. The internal state of the state machine 22 remains 0 (no instruction exists in the instruction register file 16).

一方、読み出したREP FLAG31の値が1である場合、ステートマシン22は、命令レジスタ12からの命令を選択することをセレクタ18に指示する。さらに、ステートマシン22は、更新状態に遷移することをプログラムカウンタ11に指示する。さらに、ステートマシン22は、カウンタ21のカウント値をプリデコーダ20が抽出したREP COUNT32の値から1引いた値に更新する。そして、ステートマシン22の内部状態を1(命令レジスタファイル16内に命令が存在する)とする。   On the other hand, when the value of the read REP FLAG 31 is 1, the state machine 22 instructs the selector 18 to select an instruction from the instruction register 12. Further, the state machine 22 instructs the program counter 11 to transition to the update state. Further, the state machine 22 updates the count value of the counter 21 to a value obtained by subtracting 1 from the value of the REP COUNT 32 extracted by the predecoder 20. Then, the internal state of the state machine 22 is set to 1 (the instruction exists in the instruction register file 16).

次に、内部状態が1である場合(命令レジスタファイル16内に命令が存在する場合)について説明する。読み出したREP FLAG31の値が0である場合、ステートマシン22は、命令レジスタ12からの命令を選択することをセレクタ18に指示する。さらに、ステートマシン22は、更新状態に遷移することをプログラムカウンタ11に指示する。そして、ステートマシン22の内部状態は1(命令レジスタファイル16内に命令が存在する)のままとする。   Next, a case where the internal state is 1 (when an instruction exists in the instruction register file 16) will be described. When the value of the read REP FLAG 31 is 0, the state machine 22 instructs the selector 18 to select an instruction from the instruction register 12. Further, the state machine 22 instructs the program counter 11 to transition to the update state. The internal state of the state machine 22 remains 1 (the instruction exists in the instruction register file 16).

一方、読み出したREP FLAG31の値が1である場合、ステートマシン22は、命令レジスタファイル16に対して、最も新しく入力された命令を破棄することを指示する。そして、ステートマシン22は、セレクタ18に対して、命令レジスタファイル16の先頭に位置する命令(最も以前に入力された命令)を読み出して出力することを指示する。さらにステートマシン22は、HOLD状態に遷移することをプログラムカウンタ11に指示する。そして、ステートマシン22の内部状態を2(リピート処理の実行中)とする。   On the other hand, when the value of the read REP FLAG 31 is 1, the state machine 22 instructs the instruction register file 16 to discard the most recently input instruction. Then, the state machine 22 instructs the selector 18 to read out and output the instruction located at the head of the instruction register file 16 (the instruction input the oldest). Further, the state machine 22 instructs the program counter 11 to transition to the HOLD state. Then, the internal state of the state machine 22 is 2 (during execution of repeat processing).

次に、内部状態が2である場合(命令レジスタファイル16内に命令が存在する場合)について説明する。読み出したREP FLAG31の値が0である場合、ステートマシン22は、命令レジスタファイル16に対して、最も新しく入力された命令を破棄することを指示する。さらにステートマシン22は、HOLD状態に遷移することをプログラムカウンタ11に指示する。ステートマシン22の内部状態を2(リピート処理の実行中)とする。そして、ステートマシン22は、セレクタ18に対して、命令レジスタファイル16内の命令のうち、前クロックサイクルで読み出された命令の次に入力された命令を読み出して出力することを指示する。この際、読み出した命令が命令レジスタファイル16の最後尾(最も新しく入力された命令)である場合、カウンタ21のカウント値はデクリメントされる。   Next, a case where the internal state is 2 (when an instruction exists in the instruction register file 16) will be described. When the value of the read REP FLAG 31 is 0, the state machine 22 instructs the instruction register file 16 to discard the latest input instruction. Further, the state machine 22 instructs the program counter 11 to transition to the HOLD state. The internal state of the state machine 22 is 2 (during repeat processing). Then, the state machine 22 instructs the selector 18 to read and output the instruction input next to the instruction read in the previous clock cycle among the instructions in the instruction register file 16. At this time, if the read instruction is at the end of the instruction register file 16 (the most recently input instruction), the count value of the counter 21 is decremented.

カウンタ21のカウント値が0になった場合にのみ、ステートマシン22は、HOLD状態から更新状態に遷移することをプログラムカウンタ11に指示する。さらに、ステートマシン22は、命令レジスタファイル16の内部データをクリアすることを指示する。そして、ステートマシン22の内部状態は0(命令レジスタファイル16内に命令が存在しない)とする。   Only when the count value of the counter 21 becomes 0, the state machine 22 instructs the program counter 11 to transition from the HOLD state to the update state. Further, the state machine 22 instructs to clear the internal data of the instruction register file 16. The internal state of the state machine 22 is 0 (no instruction exists in the instruction register file 16).

なお、図4は、上述のステートマシン22による各処理部の制御、ステートマシン22内での内部状態の変化、及びカウンタ21のカウント値の更新を示す表である。   FIG. 4 is a table showing the control of each processing unit by the state machine 22 described above, the change of the internal state in the state machine 22, and the update of the count value of the counter 21.

上述のように、リピートコントローラ17は動作する。セレクタ18は、リピートコントローラ17の動作指示に応じて命令を選択し、選択した命令をデコードユニット13に供給する。デコードユニット13は、命令に含まれるOPECODE30と、OPERAND#0(33a)と、OPERAND#1(33b)と、OPERAND#2(33c)と、を解析し、解析結果を後段のレジスタファイル14及びALU15に供給する。これに応じて、レジスタファイル14及びALU15が所望の命令を実行する。このように、デコードユニット13、レジスタファイル14、ALU15は、供給された命令を実行する命令実行部として動作する。   As described above, the repeat controller 17 operates. The selector 18 selects an instruction according to the operation instruction of the repeat controller 17 and supplies the selected instruction to the decode unit 13. The decode unit 13 analyzes the OPECODE 30, the OPERAND # 0 (33a), the OPERAND # 1 (33b), and the OPERAND # 2 (33c) included in the instruction, and the analysis result is stored in the register file 14 and the ALU 15 in the subsequent stage. To supply. In response to this, the register file 14 and the ALU 15 execute a desired instruction. Thus, the decode unit 13, the register file 14, and the ALU 15 operate as an instruction execution unit that executes the supplied instruction.

続いて、具体的な命令の例を用いて、本実施の形態にかかる演算処理装置の動作について説明する。図5は、命令メモリ10に格納されている命令を示す図である。図示するように、命令メモリ10には4つの命令が格納されている。各命令のREP FLAG31、REP COUNT32には、図5に示す値が設定されている。リピートコントローラ17内部のステートマシン22の内部状態は、初期状態で0(命令レジスタファイル内に命令が存在しない)である。プログラムカウンタ11のカウント値は、命令1に対応する値である"1"とする。   Next, the operation of the arithmetic processing apparatus according to the present embodiment will be described using specific examples of instructions. FIG. 5 is a diagram showing instructions stored in the instruction memory 10. As shown in the figure, the instruction memory 10 stores four instructions. The values shown in FIG. 5 are set in the REP FLAG 31 and REP COUNT 32 of each instruction. The internal state of the state machine 22 in the repeat controller 17 is 0 in the initial state (no instruction exists in the instruction register file). The count value of the program counter 11 is “1”, which is a value corresponding to the instruction 1.

なお、デコードユニット13、レジスタファイル14、及びALU15の動作は、既存の演算処理装置と同様の動作を行うため、詳細な説明は省略する。また、以下の説明に対応する各クロックサイクルでの演算処理装置の動作イメージを図6〜図12に示す。   The operations of the decoding unit 13, the register file 14, and the ALU 15 are the same as those of the existing arithmetic processing apparatus, and thus detailed description thereof is omitted. In addition, FIGS. 6 to 12 show operation images of the arithmetic processing unit in each clock cycle corresponding to the following description.

第1のクロックサイクルでは、プログラムカウンタ11のカウント値"1"に応じて、命令1が命令メモリ10から読み出される。読み出された命令1は、命令レジスタ12に一時格納される。以上の動作は、図6に示される。   In the first clock cycle, the instruction 1 is read from the instruction memory 10 in accordance with the count value “1” of the program counter 11. The read instruction 1 is temporarily stored in the instruction register 12. The above operation is shown in FIG.

続いて第2のクロックサイクルでの動作について説明する。命令レジスタ12に格納された命令1は、命令レジスタファイル16及びリピートコントローラ17に供給される。リピートコントローラ17内のプレデコーダ20は、命令1のREP FLAG31及びREP COUNT32の値を読み出す。命令1のREP FLAG31の値は"1"であり、ステートマシン22の内部状態は"0"であるため、リピートコントローラ17は、命令レジスタ12から読み出された命令を選択するようにセレクタ18を制御する。さらに、リピートコントローラ17は、プログラムカウンタ11を更新状態とする。ステートマシン22は、カウンタ21にREP COUNT32の値"2"から1を減算した値である"1"をセットする。そして、ステートマシン22の内部状態を"1"とする。セレクタ18は、命令レジスタ12から供給された命令1を選択してデコードユニット13に入力する。これと同時に、プログラムカウンタ11が更新状態であるため、プログラムカウンタ11の値がカウントアップし、"1"から"2"となる。プログラムカウンタ11の値が"2"であるため、命令2が命令メモリ10から読み出される。読み出された命令2は、命令レジスタ12に一時格納される。なお、命令レジスタファイル16には、(命令1)が格納された状態となる。以上の動作は、図7に示される。   Next, the operation in the second clock cycle will be described. The instruction 1 stored in the instruction register 12 is supplied to the instruction register file 16 and the repeat controller 17. The predecoder 20 in the repeat controller 17 reads the values of the REP FLAG 31 and REP COUNT 32 of the instruction 1. Since the value of the REP FLAG 31 of the instruction 1 is “1” and the internal state of the state machine 22 is “0”, the repeat controller 17 sets the selector 18 to select the instruction read from the instruction register 12. Control. Further, the repeat controller 17 puts the program counter 11 in an updated state. The state machine 22 sets “1”, which is a value obtained by subtracting 1 from the value “2” of the REP COUNT 32 to the counter 21. The internal state of the state machine 22 is set to “1”. The selector 18 selects the instruction 1 supplied from the instruction register 12 and inputs it to the decode unit 13. At the same time, since the program counter 11 is in the update state, the value of the program counter 11 is incremented and changes from “1” to “2”. Since the value of the program counter 11 is “2”, the instruction 2 is read from the instruction memory 10. The read instruction 2 is temporarily stored in the instruction register 12. Note that (command 1) is stored in the command register file 16. The above operation is shown in FIG.

続いて第3のクロックサイクルでの動作について説明する。命令レジスタ12に格納された命令2は、命令レジスタファイル16及びリピートコントローラ17に供給される。リピートコントローラ17内のプレデコーダ20は、命令2のREP FLAG31及びREP COUNT32の値を読み出す。命令2のREP FLAG31の値は"1"であり、ステートマシン22の内部状態は"1"であるため、リピートコントローラ17は、命令レジスタ12から読み出された命令を選択するようにセレクタ18を制御する。さらに、リピートコントローラ17は、プログラムカウンタ11を更新状態とする。そして、ステートマシン22の内部状態を"1"とする。セレクタ18は、命令レジスタ12から供給された命令2を選択してデコードユニット13に入力する。これと同時に、プログラムカウンタ11が更新状態であるため、プログラムカウンタ11の値がカウントアップし、"2"から"3"となる。プログラムカウンタ11の値が"3"であるため、命令3が命令メモリ10から読み出される。読み出された命令3は、命令レジスタ12に一時格納される。なお、命令レジスタファイル16には、(命令1、命令2)が格納された状態となる。以上の動作は、図8に示される。   Next, the operation in the third clock cycle will be described. The instruction 2 stored in the instruction register 12 is supplied to the instruction register file 16 and the repeat controller 17. The predecoder 20 in the repeat controller 17 reads the values of the REP FLAG 31 and the REP COUNT 32 of the instruction 2. Since the value of the REP FLAG 31 of the instruction 2 is “1” and the internal state of the state machine 22 is “1”, the repeat controller 17 sets the selector 18 to select the instruction read from the instruction register 12. Control. Further, the repeat controller 17 puts the program counter 11 in an updated state. The internal state of the state machine 22 is set to “1”. The selector 18 selects the instruction 2 supplied from the instruction register 12 and inputs it to the decode unit 13. At the same time, since the program counter 11 is in the update state, the value of the program counter 11 is incremented and changes from “2” to “3”. Since the value of the program counter 11 is “3”, the instruction 3 is read from the instruction memory 10. The read instruction 3 is temporarily stored in the instruction register 12. Note that the instruction register file 16 stores (instruction 1, instruction 2). The above operation is shown in FIG.

第3のクロックサイクルでは、ループ処理の対象となる全ての命令(命令1及び命令2)が命令レジスタファイル16に退避された状態である。   In the third clock cycle, all instructions (instruction 1 and instruction 2) to be loop-processed are saved in the instruction register file 16.

続いて第4のクロックサイクルでの動作について説明する。命令レジスタ12に格納された命令3は、命令レジスタファイル16及びリピートコントローラ17に供給される。リピートコントローラ17内のプレデコーダ20は、命令3のREP FLAG31及びREP COUNT32の値を読み出す。命令3のREP FLAG31の値は"0"であり、ステートマシン22の内部状態は"1"であるため、リピートコントローラ17は、命令レジスタファイル16に対して命令3の破棄を指示する。そして、リピートコントローラ17は、命令レジスタファイル16の先頭に格納されている命令1を読み出して出力するようにセレクタ18を制御する。さらに、リピートコントローラ17は、プログラムカウンタ11をHOLD状態とする。そして、ステートマシン22の内部状態を"2"とする。セレクタ18は、命令レジスタファイル16から読み出した命令1をデコードユニット13に入力する。プログラムカウンタ11がHOLD状態であるため、プログラムカウンタ11の値はカウントアップせず、"3"のままとなる。読み出された命令3は、命令レジスタ12に一時格納される。なお、命令レジスタファイル16には、命令3が破棄されたため、(命令1、命令2)が格納された状態となる。以上の動作は、図9に示される。   Next, the operation in the fourth clock cycle will be described. The instruction 3 stored in the instruction register 12 is supplied to the instruction register file 16 and the repeat controller 17. The predecoder 20 in the repeat controller 17 reads the values of the REP FLAG 31 and the REP COUNT 32 of the instruction 3. Since the value of the REP FLAG 31 of the instruction 3 is “0” and the internal state of the state machine 22 is “1”, the repeat controller 17 instructs the instruction register file 16 to discard the instruction 3. Then, the repeat controller 17 controls the selector 18 to read and output the instruction 1 stored at the head of the instruction register file 16. Further, the repeat controller 17 sets the program counter 11 to the HOLD state. The internal state of the state machine 22 is set to “2”. The selector 18 inputs the instruction 1 read from the instruction register file 16 to the decode unit 13. Since the program counter 11 is in the HOLD state, the value of the program counter 11 does not count up and remains “3”. The read instruction 3 is temporarily stored in the instruction register 12. Since the instruction 3 is discarded, the instruction register file 16 is in a state where (instruction 1, instruction 2) is stored. The above operation is shown in FIG.

第4のクロックサイクルでは、第3のクロックサイクルにおいてループ処理の対象となる全ての命令が退避されたため、プログラムカウンタ11の更新の停止、命令レジスタファイル16からの命令選択が行われている。後述する第5のクロックサイクルでも同様である。   In the fourth clock cycle, since all the instructions to be loop processed in the third clock cycle are saved, the update of the program counter 11 is stopped and the instruction from the instruction register file 16 is selected. The same applies to the fifth clock cycle described later.

続いて第5のクロックサイクルでの動作について説明する。命令レジスタ12に格納された命令3は、命令レジスタファイル16及びリピートコントローラ17に供給される。リピートコントローラ17内のプレデコーダ20は、命令3のREP FLAG31及びREP COUNT32の値を読み出す。命令3のREP FLAG31の値は"0"であり、ステートマシン22の内部状態は"2"であるため、リピートコントローラ17は、命令レジスタファイル16に対して命令3の破棄を指示する。そして、リピートコントローラ17は、前サイクルで出力した命令1の次の命令である命令2を命令レジスタファイル16から読み出して出力するようにセレクタ18を制御する。これにより、命令レジスタファイル16に格納された全ての命令を読み出したことになったため、カウンタ21のカウント値をデクリメントする。デクリメントによりカウンタ21のカウント値は"0"となる。カウンタ21のカウント値が"0"になったため、リピートコントローラ17は、プログラムカウンタ11を更新状態とする。そして、ステートマシン22の内部状態を"0"とする。さらに、リピートコントローラ17は、命令レジスタファイル16の保持する命令群をクリアする。セレクタ18は、命令レジスタファイル16から読み出した命令2をデコードユニット13に入力する。プログラムカウンタ11がHOLD状態であったため、プログラムカウンタ11の値はカウントアップせず、"3"のままとなる。読み出された命令3は、命令レジスタ12に一時格納される。なお、命令レジスタファイル16には、命令が格納されていない状態となる。以上の動作は、図10に示される。   Next, the operation in the fifth clock cycle will be described. The instruction 3 stored in the instruction register 12 is supplied to the instruction register file 16 and the repeat controller 17. The predecoder 20 in the repeat controller 17 reads the values of the REP FLAG 31 and the REP COUNT 32 of the instruction 3. Since the value of the REP FLAG 31 of the instruction 3 is “0” and the internal state of the state machine 22 is “2”, the repeat controller 17 instructs the instruction register file 16 to discard the instruction 3. Then, the repeat controller 17 controls the selector 18 so that the instruction 2 that is the instruction next to the instruction 1 output in the previous cycle is read from the instruction register file 16 and output. As a result, since all the instructions stored in the instruction register file 16 have been read, the count value of the counter 21 is decremented. The count value of the counter 21 becomes “0” by decrement. Since the count value of the counter 21 has become “0”, the repeat controller 17 puts the program counter 11 in the update state. The internal state of the state machine 22 is set to “0”. Further, the repeat controller 17 clears the instruction group held in the instruction register file 16. The selector 18 inputs the instruction 2 read from the instruction register file 16 to the decode unit 13. Since the program counter 11 is in the HOLD state, the value of the program counter 11 is not counted up and remains “3”. The read instruction 3 is temporarily stored in the instruction register 12. Note that no instruction is stored in the instruction register file 16. The above operation is shown in FIG.

続いて第6のクロックサイクルでの動作について説明する。命令レジスタ12に格納された命令3は、命令レジスタファイル16及びリピートコントローラ17に供給される。リピートコントローラ17内のプレデコーダ20は、命令3のREP FLAG31及びREP COUNT32の値を読み出す。命令3のREP FLAG31の値は"0"であり、ステートマシン22の内部状態は"0"であるため、リピートコントローラ17は、命令レジスタファイル16に対して命令3の破棄を指示する。リピートコントローラ17は、命令レジスタ12から読み出された命令を選択するようにセレクタ18を制御する。さらに、リピートコントローラ17は、プログラムカウンタ11を更新状態とする。そして、ステートマシン22の内部状態を"0"とする。セレクタ18は、命令レジスタ12から供給された命令3を選択してデコードユニット13に入力する。これと同時に、プログラムカウンタ11が更新状態であるため、プログラムカウンタ11の値がカウントアップし、"3"から"4"となる。プログラムカウンタ11の値が"4"であるため、命令4が命令メモリ10から読み出される。読み出された命令4は、命令レジスタ12に一時格納される。以上の動作は、図11に示される。   Next, the operation in the sixth clock cycle will be described. The instruction 3 stored in the instruction register 12 is supplied to the instruction register file 16 and the repeat controller 17. The predecoder 20 in the repeat controller 17 reads the values of the REP FLAG 31 and the REP COUNT 32 of the instruction 3. Since the value of the REP FLAG 31 of the instruction 3 is “0” and the internal state of the state machine 22 is “0”, the repeat controller 17 instructs the instruction register file 16 to discard the instruction 3. The repeat controller 17 controls the selector 18 so as to select the instruction read from the instruction register 12. Further, the repeat controller 17 puts the program counter 11 in an updated state. The internal state of the state machine 22 is set to “0”. The selector 18 selects the instruction 3 supplied from the instruction register 12 and inputs it to the decode unit 13. At the same time, since the program counter 11 is in the update state, the value of the program counter 11 is incremented and changes from “3” to “4”. Since the value of the program counter 11 is “4”, the instruction 4 is read from the instruction memory 10. The read instruction 4 is temporarily stored in the instruction register 12. The above operation is shown in FIG.

続いて第7のクロックサイクルでの動作について説明する。命令レジスタ12に格納された命令4は、命令レジスタファイル16及びリピートコントローラ17に供給される。リピートコントローラ17内のプレデコーダ20は、命令4のREP FLAG31及びREP COUNT32の値を読み出す。命令4のREP FLAG31の値は"0"であり、ステートマシン22の内部状態は"0"であるため、リピートコントローラ17は、命令レジスタファイル16に対して命令4の破棄を指示する。リピートコントローラ17は、命令レジスタ12から読み出された命令を選択するようにセレクタ18を制御する。さらに、リピートコントローラ17は、プログラムカウンタ11を更新状態とする。そして、ステートマシン22の内部状態を"0"とする。セレクタ18は、命令レジスタ12から供給された命令4を選択してデコードユニット13に入力する。これと同時に、プログラムカウンタ11が更新状態であるため、プログラムカウンタ11の値がカウントアップし、"4"から"5"となる。プログラムカウンタ11の値が"5"であるため、命令5が命令メモリ10から読み出される。なお、図5に示す命令数は、4つであるため、以降の命令は実際には読み出されず、NOP(No Operation)扱いとなる。以上の動作は、図12に示される。   Next, the operation in the seventh clock cycle will be described. The instruction 4 stored in the instruction register 12 is supplied to the instruction register file 16 and the repeat controller 17. The predecoder 20 in the repeat controller 17 reads the values of the REP FLAG 31 and the REP COUNT 32 of the instruction 4. Since the value of the REP FLAG 31 of the instruction 4 is “0” and the internal state of the state machine 22 is “0”, the repeat controller 17 instructs the instruction register file 16 to discard the instruction 4. The repeat controller 17 controls the selector 18 so as to select the instruction read from the instruction register 12. Further, the repeat controller 17 puts the program counter 11 in an updated state. The internal state of the state machine 22 is set to “0”. The selector 18 selects the instruction 4 supplied from the instruction register 12 and inputs it to the decode unit 13. At the same time, since the program counter 11 is in the update state, the value of the program counter 11 is incremented and changes from “4” to “5”. Since the value of the program counter 11 is “5”, the instruction 5 is read from the instruction memory 10. Since the number of instructions shown in FIG. 5 is four, the subsequent instructions are not actually read and are handled as NOP (No Operation). The above operation is shown in FIG.

以上が、図5の命令を処理する場合における、本実施の形態にかかる演算処理装置の動作の具体例である。   The above is a specific example of the operation of the arithmetic processing apparatus according to the present embodiment when processing the instruction of FIG.

続いて、本実施の形態にかかる演算処理装置の効果について説明する。上述のように、各命令には、ループ処理の対象となる(1つ以上の命令を含む)命令群に含まれるか否かを示すフラグ(REP FLAG31)と、ループ処理の規定回数(REP COUNT32)と、が規定されている。リピートコントローラ17は、内部状態(0〜2)、カウンタ21の保持するカウント値(すなわち、ループ処理の実行回数を表す値)、及びREP FLAG31の値に応じて命令実行を制御する。すなわち、リピートコントローラ17は、プログラムカウンタ11の更新/HOLDの設定、命令レジスタファイル16の更新や読み出す命令の決定、及びセレクタ18の動作の制御を行う。ここで、リピートコントローラ17は、フラグ(REP FLAG31)に"1"が設定されている連続する命令をループ処理対象の命令群として扱う。すなわち、リピートコントローラ17は、各命令に含まれる情報(REP FLAG31、REP COUNT32)を解釈することにより、新たな命令を処理することなく複数命令を1単位として繰り返し実行することができる。換言すると、本実施の携帯にかかる演算処理装置は、投入命令数を増加させることなく、複数命令を1単位として繰り返し実行することができる。   Then, the effect of the arithmetic processing apparatus concerning this Embodiment is demonstrated. As described above, each instruction includes a flag (REP FLAG 31) indicating whether or not it is included in an instruction group (including one or more instructions) to be loop-processed, and a predetermined number of loop processes (REP COUNT 32). ) And are stipulated. The repeat controller 17 controls instruction execution according to the internal state (0 to 2), the count value held by the counter 21 (that is, a value representing the number of executions of loop processing), and the value of the REP FLAG 31. That is, the repeat controller 17 performs update / HOLD setting of the program counter 11, update of the instruction register file 16 and determination of an instruction to be read, and control of the operation of the selector 18. Here, the repeat controller 17 handles consecutive instructions in which “1” is set in the flag (REP FLAG 31) as a group of instructions to be loop processed. That is, the repeat controller 17 can repeatedly execute a plurality of instructions as one unit without processing a new instruction by interpreting information (REP FLAG31, REP COUNT32) included in each instruction. In other words, the arithmetic processing device according to the present embodiment can repeatedly execute a plurality of instructions as one unit without increasing the number of input instructions.

なお、図3に示す命令のフィールド構成は、あくまで一例であり、他のフィールド等を含む構成であっても良い。さらに、セレクタ18が命令を供給するデコードユニット13及び後段のレジスタファイル14及びALU15の構成は、図1に示すものに限られず、演算の種類等に応じて適宜変更することが可能である。   Note that the field configuration of the instruction shown in FIG. 3 is merely an example, and may include other fields. Furthermore, the configurations of the decode unit 13 to which the selector 18 supplies instructions, the subsequent register file 14 and the ALU 15 are not limited to those shown in FIG. 1, and can be changed as appropriate according to the type of operation.

なお、本実施の形態にかかる演算処理装置が処理を行う命令は、ループ処理の対象となる命令の範囲を示す情報(たとえば3つの命令をまとめてループ処理する等)と、ループ処理の回数に関する規定情報を備えたものと換言できる。上記した例では、リピートコントローラ16が命令に含まれる情報(REP FLAG31及びREP COUNT32)を解釈することにより演算処理の制御を行ったが、必ずしもこれに限られるものではなく、プログラムカウンタ11またはこれを制御する処理部がこれらの情報を解釈して命令メモリ12から読み出される命令を制御しても良い。すなわち、プログラムカウンタ11またはこれを制御する処理部がこれらの情報を基にデコードユニット13に供給する命令を1つに決定し、この命令を読み出してデコードユニット13に供給するようにしても良い。   Note that the instructions to be processed by the arithmetic processing unit according to the present embodiment are related to information indicating the range of instructions subject to loop processing (for example, loop processing of three instructions together) and the number of loop processes. In other words, it can be said to have provision information. In the above example, the repeat controller 16 controls the arithmetic processing by interpreting the information (REP FLAG 31 and REP COUNT 32) included in the instruction. However, the present invention is not necessarily limited to this. The controlling processing unit may interpret the information and control the instruction read from the instruction memory 12. That is, the program counter 11 or a processing unit that controls the program counter 11 may determine one instruction to be supplied to the decode unit 13 based on these pieces of information, read this instruction, and supply it to the decode unit 13.

<実施の形態2>
本実施の形態にかかる演算処理装置は、命令内に上述のREP FLAG31というフィールドを有していなくても実施の形態1にかかる演算処理装置と同様の処理が行えることを特徴とする。以下、本実施の形態にかかる演算処理装置について実施の形態1にかかる演算処理装置との違いを中心に説明する。
<Embodiment 2>
The arithmetic processing apparatus according to the present embodiment is characterized in that the same processing as that of the arithmetic processing apparatus according to the first embodiment can be performed even if the instruction does not have the field REP FLAG 31 described above. Hereinafter, the arithmetic processing apparatus according to the present embodiment will be described focusing on differences from the arithmetic processing apparatus according to the first embodiment.

図13は、本実施の形態にかかる演算処理装置が扱う命令の各フィールドを示す図である。各命令は、OPECODE40と、REP COUNT41と、OPERAND#0(42a)と、OPERAND#1(42b)と、OPERAND#2(42c)と、を備える。各命令は、REP FLAG31に対応するフィールドを持たない。   FIG. 13 is a diagram illustrating each field of an instruction handled by the arithmetic processing device according to the present embodiment. Each instruction includes OPECODE 40, REP COUNT 41, OPERAND # 0 (42a), OPERAND # 1 (42b), and OPERAND # 2 (42c). Each instruction does not have a field corresponding to REP FLAG 31.

OPECODE40、OPERAND#0(42a)、OPERAND#1(42b)、及びOPERAND#2(42c)は、上述のOPECODE30、OPERAND#0(33a)、OPERAND#1(33b)、及びOPERAND#2(33c)とほぼ同様の用途で使用される。   OPECODE 40, OPERAND # 0 (42a), OPERAND # 1 (42b), and OPERAND # 2 (42c) are the above-mentioned OPECODE30, OPERAND # 0 (33a), OPERAND # 1 (33b), and OPERAND # 2 (33c). Used in almost the same application.

REP COUNT41は、0以上の整数をとり得る。ここで、ある命令のREP COUNT41に"0"が設定されていた場合、前に発行されておりREP COUNT41に"2"以上が設定されている命令と同時にループ処理が実行される。   The REP COUNT 41 can take an integer of 0 or more. Here, when “0” is set in the REP COUNT 41 of a certain instruction, the loop processing is executed simultaneously with the instruction which has been issued before and “2” or more is set in the REP COUNT 41.

たとえば、ある命令(命令X)のREP COUNT41に"3"が設定されており、直後の命令(命令Y)及び命令Yの直後の命令(命令Z)のREP COUNT41に"0"が設定されている場合、命令X→命令Y→命令Zという一連の処理が3回繰り返される。   For example, “3” is set in the REP COUNT 41 of a certain instruction (instruction X), and “0” is set in the REP COUNT 41 of the instruction immediately following the instruction (instruction Y) and the instruction immediately following the instruction Y (instruction Z). If so, a series of processes of instruction X → command Y → command Z is repeated three times.

このように処理を行うことにより、本実施の形態にかかる命令は、実施の形態1と比べてREP FLAG31のフィールドに対応するビット幅だけサイズを減少することができる。命令サイズを減少することにより、メモリ規模の削減が可能となる。   By performing the processing in this manner, the size of the instruction according to the present embodiment can be reduced by the bit width corresponding to the field of REP FLAG 31 as compared with the first embodiment. By reducing the instruction size, the memory scale can be reduced.

なお、本実施の形態にかかる演算処理装置の全体構成は、実施の形態1にかかる演算処理装置(図1)と同様の構成である。また、リピートコントローラ17の内部構成も実施の形態1にかかる演算処理装置(図2)と同様である。   The overall configuration of the arithmetic processing apparatus according to the present embodiment is the same as that of the arithmetic processing apparatus (FIG. 1) according to the first embodiment. Also, the internal configuration of the repeat controller 17 is the same as that of the arithmetic processing apparatus (FIG. 2) according to the first embodiment.

次に、本実施の形態にかかる演算処理装置の動作について図1を参照して詳細に説明する。まず、本実施の形態にかかる演算処理装置内の各処理部が1つの命令をどのように処理するかを説明する。   Next, the operation of the arithmetic processing apparatus according to the present embodiment will be described in detail with reference to FIG. First, how each processing unit in the arithmetic processing apparatus according to the present embodiment processes one instruction will be described.

はじめに、プログラムカウンタ11のカウント値を参照し、当該カウント値に対応する命令が命令メモリ10から読み出される。読み出された命令は命令レジスタ12に格納される。そして、命令レジスタ12に格納された命令は、リピートコントローラ17に供給される。これと同時に、当該命令は、命令レジスタファイル16に供給される。   First, referring to the count value of the program counter 11, an instruction corresponding to the count value is read from the instruction memory 10. The read instruction is stored in the instruction register 12. Then, the instruction stored in the instruction register 12 is supplied to the repeat controller 17. At the same time, the instruction is supplied to the instruction register file 16.

リピートコントローラ17内のプリデコーダ20は、供給された命令をプリデコードする。ここでプリデコードとは、命令のREP COUNT41の値を読み出すことである。プリデコーダ20は、読み出したREP COUNT41の値をステートマシン22に供給する。   The predecoder 20 in the repeat controller 17 predecodes the supplied instruction. Here, predecoding is to read the value of the REP COUNT 41 of the instruction. The predecoder 20 supplies the read value of the REP COUNT 41 to the state machine 22.

ステートマシン22は、供給されたREP COUNT41の値と、ステートマシン22の内部状態(0〜2のいずれか)と、カウンタ21のカウント値と、に基づいてプログラムカウンタ11と、命令レジスタファイル16と、セレクタ18と、を制御する。ステートマシン22による各処理部の制御、ステートマシン22内での内部状態の変化、及びカウンタ21のカウント値の更新について以下に説明する。   Based on the supplied value of REP COUNT 41, the internal state of the state machine 22 (any one of 0 to 2), and the count value of the counter 21, the state machine 22 The selector 18 is controlled. The control of each processing unit by the state machine 22, the change of the internal state in the state machine 22, and the update of the count value of the counter 21 will be described below.

内部状態が0である場合(命令レジスタファイル16内に命令が存在しない場合)について説明する。読み出したREP COUNT41の値が1である場合、ステートマシン22は、命令レジスタ12からの命令を選択することをセレクタ18に指示する。さらに、ステートマシン22は、更新状態に遷移することをプログラムカウンタ11に指示する。さらにまた、ステートマシン22は、命令レジスタファイル16内部に保持されている命令のうち最新の命令を破棄することを指示する。そして、ステートマシン22の内部状態は0(命令レジスタファイル16内に命令が存在しない)のままとする。   A case where the internal state is 0 (a case where no instruction exists in the instruction register file 16) will be described. When the value of the read REP COUNT 41 is 1, the state machine 22 instructs the selector 18 to select an instruction from the instruction register 12. Further, the state machine 22 instructs the program counter 11 to transition to the update state. Furthermore, the state machine 22 instructs to discard the latest instruction among the instructions held in the instruction register file 16. The internal state of the state machine 22 remains 0 (no instruction exists in the instruction register file 16).

読み出したREP COUNT41の値が2以上である場合、ステートマシン22は、命令レジスタ12からの命令を選択することをセレクタ18に指示する。さらに、ステートマシン22は、更新状態に遷移することをプログラムカウンタ11に指示する。さらに、ステートマシン22は、カウンタ21のカウント値をプリデコーダ20が抽出したREP COUNT41の値から1引いた値に更新する。そして、ステートマシン22の内部状態を1(命令レジスタファイル16内に命令が存在する)とする。   When the value of the read REP COUNT 41 is 2 or more, the state machine 22 instructs the selector 18 to select an instruction from the instruction register 12. Further, the state machine 22 instructs the program counter 11 to transition to the update state. Further, the state machine 22 updates the count value of the counter 21 to a value obtained by subtracting 1 from the value of the REP COUNT 41 extracted by the predecoder 20. Then, the internal state of the state machine 22 is set to 1 (the instruction exists in the instruction register file 16).

次に、内部状態が1である場合(命令レジスタファイル16内に命令が存在する場合)について説明する。読み出したREP COUNT41の値が0である場合、ステートマシン22は、命令レジスタ12からの命令を選択することをセレクタ18に指示する。さらに、ステートマシン22は、更新状態に遷移することをプログラムカウンタ11に指示する。そして、ステートマシン22の内部状態は1(命令レジスタファイル16内に命令が存在する)のままとする。   Next, a case where the internal state is 1 (when an instruction exists in the instruction register file 16) will be described. When the value of the read REP COUNT 41 is 0, the state machine 22 instructs the selector 18 to select an instruction from the instruction register 12. Further, the state machine 22 instructs the program counter 11 to transition to the update state. The internal state of the state machine 22 remains 1 (the instruction exists in the instruction register file 16).

読み出したREP COUNT41の値が1以上である場合、ステートマシン22は、命令レジスタファイル16に対して、最も新しく入力された命令を破棄することを指示する。そして、ステートマシン22は、セレクタ18に対して、命令レジスタファイル16の先頭に位置する命令(最も以前に入力された命令)を読み出して出力することを指示する。さらにステートマシン22は、HOLD状態に遷移することをプログラムカウンタ11に指示する。そして、ステートマシン22の内部状態を2(リピート処理の実行中)とする。   When the value of the read REP COUNT 41 is 1 or more, the state machine 22 instructs the instruction register file 16 to discard the most recently input instruction. Then, the state machine 22 instructs the selector 18 to read out and output the instruction located at the head of the instruction register file 16 (the instruction input the oldest). Further, the state machine 22 instructs the program counter 11 to transition to the HOLD state. Then, the internal state of the state machine 22 is 2 (during execution of repeat processing).

次に、内部状態が2である場合(命令レジスタファイル16内に命令が存在する場合)について説明する。読み出したREP COUNTの値が1以上である場合、ステートマシン22は、命令レジスタファイル16に対して、最も新しく入力された命令を破棄することを指示する。さらにステートマシン22は、HOLD状態に遷移することをプログラムカウンタ11に指示する。ステートマシン22の内部状態を2(リピート処理の実行中)とする。そして、ステートマシン22は、セレクタ18に対して、命令レジスタファイル16内の命令のうち、全クロックサイクルで読み出された命令の次に入力された命令を読み出して出力することを指示する。この際、読み出した命令が命令レジスタファイル16の最後尾(最も新しく入力された命令)である場合、カウンタ21のカウント値はデクリメントされる。   Next, a case where the internal state is 2 (when an instruction exists in the instruction register file 16) will be described. When the read REP COUNT value is 1 or more, the state machine 22 instructs the instruction register file 16 to discard the most recently input instruction. Further, the state machine 22 instructs the program counter 11 to transition to the HOLD state. The internal state of the state machine 22 is 2 (during repeat processing). Then, the state machine 22 instructs the selector 18 to read and output the instruction input next to the instruction read in all clock cycles among the instructions in the instruction register file 16. At this time, if the read instruction is at the end of the instruction register file 16 (the most recently input instruction), the count value of the counter 21 is decremented.

カウンタ21のカウント値が0になった場合にのみ、ステートマシン22は、HOLD状態から更新状態に遷移することをプログラムカウンタ11に指示する。さらに、ステートマシン22は、命令レジスタファイル16の内部データをクリアすることを指示する。そして、ステートマシン22の内部状態は0(命令レジスタファイル内に命令が存在しない)とする。   Only when the count value of the counter 21 becomes 0, the state machine 22 instructs the program counter 11 to transition from the HOLD state to the update state. Further, the state machine 22 instructs to clear the internal data of the instruction register file 16. The internal state of the state machine 22 is 0 (no instruction exists in the instruction register file).

なお、図14は、上述のステートマシン22による各処理部の制御、ステートマシン22内での内部状態の変化、及びカウンタ21のカウント値の更新を示す表である。   FIG. 14 is a table showing the control of each processing unit by the state machine 22 described above, the change of the internal state in the state machine 22, and the update of the count value of the counter 21.

上述のように、リピートコントローラ17は動作する。セレクタ18は、リピートコントローラ17の動作指示に応じて命令を選択し、選択した命令をデコードユニット13に供給する。デコードユニット13は、命令に含まれるOPECODE40と、OPERAND#0(42a)と、OPERAND#1(42b)と、OPERAND#2(42c)と、を解析し、解析結果を後段のレジスタファイル14及びALU15に供給する。これに応じて、レジスタファイル14及びALU15が所望の命令を実行する。このように、デコードユニット13、レジスタファイル14、ALU15は、供給された命令を実行する命令実行部として動作する。   As described above, the repeat controller 17 operates. The selector 18 selects an instruction according to the operation instruction of the repeat controller 17 and supplies the selected instruction to the decode unit 13. The decode unit 13 analyzes the OPECODE 40, OPERAND # 0 (42a), OPERAND # 1 (42b), and OPERAND # 2 (42c) included in the instruction, and the analysis result is sent to the register file 14 and the ALU 15 in the subsequent stage. To supply. In response to this, the register file 14 and the ALU 15 execute a desired instruction. Thus, the decode unit 13, the register file 14, and the ALU 15 operate as an instruction execution unit that executes the supplied instruction.

続いて、具体的な命令の例を用いて、本実施の形態にかかる演算処理装置の動作について説明する。図15は、命令メモリ10に格納されている命令を示す図である。図示するように、命令メモリ10には4つの命令が格納されている。リピートコントローラ17内部のステートマシン22の内部状態は、初期状態で0(命令レジスタファイル内に命令が存在しない)である。プログラムカウンタ11のカウント値は、命令1に対応する値である"1"とする。なお、第1のクロックサイクルから第7のクロックサイクルの動作概念図は図6〜図12と略同一(命令内にREP FLAGが含まれないことを除く)であるため、図示は省略する。   Next, the operation of the arithmetic processing apparatus according to the present embodiment will be described using specific examples of instructions. FIG. 15 is a diagram showing instructions stored in the instruction memory 10. As shown in the figure, the instruction memory 10 stores four instructions. The internal state of the state machine 22 in the repeat controller 17 is 0 in the initial state (no instruction exists in the instruction register file). The count value of the program counter 11 is “1”, which is a value corresponding to the instruction 1. The operation conceptual diagrams from the first clock cycle to the seventh clock cycle are substantially the same as those in FIGS. 6 to 12 (except that the REP FLAG is not included in the instruction), and thus illustration is omitted.

第1のクロックサイクルでは、プログラムカウンタ11のカウント値"1"に応じて、命令1が命令メモリ10から読み出される。読み出された命令1は、命令レジスタ12に一時格納される。   In the first clock cycle, the instruction 1 is read from the instruction memory 10 in accordance with the count value “1” of the program counter 11. The read instruction 1 is temporarily stored in the instruction register 12.

続いて第2のクロックサイクルでの動作について説明する。命令レジスタ12に格納された命令1は、命令レジスタファイル16及びリピートコントローラ17に供給される。リピートコントローラ17内のプレデコーダ20は、命令1のREP COUNT41の値を読み出す。命令1のREP COUNT41の値は"2"であり、ステートマシン22の内部状態は"0"であるため、リピートコントローラ17は、命令レジスタ12から読み出された命令を選択するようにセレクタ18を制御する。さらに、リピートコントローラ17は、プログラムカウンタ11を更新状態とする。ステートマシン22は、カウンタ21にREP COUNT32の値"2"から1を減算した値である"1"をセットする。そして、ステートマシン22の内部状態を"1"とする。セレクタ18は、命令レジスタ12から供給された命令1を選択してデコードユニット13に入力する。これと同時に、プログラムカウンタ11が更新状態であるため、プログラムカウンタ11の値がカウントアップし、"1"から"2"となる。プログラムカウンタ11の値が"2"であるため、命令2が命令メモリ10から読み出される。読み出された命令2は、命令レジスタ12に一時格納される。なお、命令レジスタファイル16には、(命令1)が格納された状態となる。   Next, the operation in the second clock cycle will be described. The instruction 1 stored in the instruction register 12 is supplied to the instruction register file 16 and the repeat controller 17. The predecoder 20 in the repeat controller 17 reads the value of the REP COUNT 41 of the instruction 1. Since the value of the REP COUNT 41 of the instruction 1 is “2” and the internal state of the state machine 22 is “0”, the repeat controller 17 sets the selector 18 to select the instruction read from the instruction register 12. Control. Further, the repeat controller 17 puts the program counter 11 in an updated state. The state machine 22 sets “1”, which is a value obtained by subtracting 1 from the value “2” of the REP COUNT 32 to the counter 21. The internal state of the state machine 22 is set to “1”. The selector 18 selects the instruction 1 supplied from the instruction register 12 and inputs it to the decode unit 13. At the same time, since the program counter 11 is in the update state, the value of the program counter 11 is incremented and changes from “1” to “2”. Since the value of the program counter 11 is “2”, the instruction 2 is read from the instruction memory 10. The read instruction 2 is temporarily stored in the instruction register 12. Note that (command 1) is stored in the command register file 16.

続いて第3のクロックサイクルでの動作について説明する。命令レジスタ12に格納された命令2は、命令レジスタファイル16及びリピートコントローラ17に供給される。リピートコントローラ17内のプレデコーダ20は、命令2のREP COUNT41の値を読み出す。命令2のREP COUNT41の値は"0"であり、ステートマシン22の内部状態は"1"であるため、リピートコントローラ17は、命令レジスタ12から読み出された命令を選択するようにセレクタ18を制御する。さらに、リピートコントローラ17は、プログラムカウンタ11を更新状態とする。そして、ステートマシン22の内部状態を"1"とする。セレクタ18は、命令レジスタ12から供給された命令2を選択してデコードユニット13に入力する。これと同時に、プログラムカウンタ11が更新状態であるため、プログラムカウンタ11の値がカウントアップし、"2"から"3"となる。プログラムカウンタ11の値が"3"であるため、命令3が命令メモリ10から読み出される。読み出された命令3は、命令レジスタ12に一時格納される。なお、命令レジスタファイル16には、(命令1、命令2)が格納された状態となる。   Next, the operation in the third clock cycle will be described. The instruction 2 stored in the instruction register 12 is supplied to the instruction register file 16 and the repeat controller 17. The predecoder 20 in the repeat controller 17 reads the value of the REP COUNT 41 of the instruction 2. Since the value of the REP COUNT 41 of the instruction 2 is “0” and the internal state of the state machine 22 is “1”, the repeat controller 17 sets the selector 18 to select the instruction read from the instruction register 12. Control. Further, the repeat controller 17 puts the program counter 11 in an updated state. The internal state of the state machine 22 is set to “1”. The selector 18 selects the instruction 2 supplied from the instruction register 12 and inputs it to the decode unit 13. At the same time, since the program counter 11 is in the update state, the value of the program counter 11 is incremented and changes from “2” to “3”. Since the value of the program counter 11 is “3”, the instruction 3 is read from the instruction memory 10. The read instruction 3 is temporarily stored in the instruction register 12. Note that the instruction register file 16 stores (instruction 1, instruction 2).

続いて第4のクロックサイクルでの動作について説明する。命令レジスタ12に格納された命令3は、命令レジスタファイル16及びリピートコントローラ17に供給される。リピートコントローラ17内のプレデコーダ20は、命令3のREP COUNT41の値を読み出す。命令3のREP COUNT41の値は"1"であり、ステートマシン22の内部状態は"1"であるため、リピートコントローラ17は、命令レジスタファイル16に対して命令3の破棄を指示する。そして、リピートコントローラ17は、命令レジスタファイル16の先頭に格納されている命令1を読み出して出力するようにセレクタ18を制御する。さらに、リピートコントローラ17は、プログラムカウンタ11をHOLD状態とする。そして、ステートマシン22の内部状態を"2"とする。セレクタ18は、命令レジスタファイル16から読み出した命令1をデコードユニット13に入力する。プログラムカウンタ11がHOLD状態であるため、プログラムカウンタ11の値はカウントアップせず、"3"のままとなる。読み出された命令3は、命令レジスタ12に一時格納される。なお、命令レジスタファイル16には、命令3が破棄されたため、(命令1、命令2)が格納された状態となる。   Next, the operation in the fourth clock cycle will be described. The instruction 3 stored in the instruction register 12 is supplied to the instruction register file 16 and the repeat controller 17. The predecoder 20 in the repeat controller 17 reads the value of the REP COUNT 41 of the instruction 3. Since the value of the REP COUNT 41 of the instruction 3 is “1” and the internal state of the state machine 22 is “1”, the repeat controller 17 instructs the instruction register file 16 to discard the instruction 3. Then, the repeat controller 17 controls the selector 18 to read and output the instruction 1 stored at the head of the instruction register file 16. Further, the repeat controller 17 sets the program counter 11 to the HOLD state. The internal state of the state machine 22 is set to “2”. The selector 18 inputs the instruction 1 read from the instruction register file 16 to the decode unit 13. Since the program counter 11 is in the HOLD state, the value of the program counter 11 does not count up and remains “3”. The read instruction 3 is temporarily stored in the instruction register 12. Since the instruction 3 is discarded, the instruction register file 16 is in a state where (instruction 1, instruction 2) is stored.

続いて第5のクロックサイクルでの動作について説明する。命令レジスタ12に格納された命令3は、命令レジスタファイル16及びリピートコントローラ17に供給される。リピートコントローラ17内のプレデコーダ20は、命令3のREP COUNT41の値を読み出す。命令3のREP COUNT41の値は"1"であり、ステートマシン22の内部状態は"2"であるため、リピートコントローラ17は、命令レジスタファイル16に対して命令3の破棄を指示する。そして、リピートコントローラ17は、前サイクルで出力した命令1の次の命令である命令2を読み出して出力するようにセレクタ18を制御する。これにより、命令レジスタファイル16に格納された全ての命令を読み出したことになったため、カウンタ21のカウント値をデクリメントする。デクリメントによりカウンタ21のカウント値は"0"となる。カウンタ21のカウント値が"0"になったため、リピートコントローラ17は、プログラムカウンタ11を更新状態とする。そして、ステートマシン22の内部状態を"0"とする。さらに、リピートコントローラ17は、命令レジスタファイル16の保持する命令群をクリアする。セレクタ18は、命令レジスタファイル16から読み出した命令2をデコードユニット13に入力する。プログラムカウンタ11がHOLD状態であったため、プログラムカウンタ11の値はカウントアップせず、"3"のままとなる。読み出された命令3は、命令レジスタ12に一時格納される。なお、命令レジスタファイル16には、命令が格納されていない状態となる。   Next, the operation in the fifth clock cycle will be described. The instruction 3 stored in the instruction register 12 is supplied to the instruction register file 16 and the repeat controller 17. The predecoder 20 in the repeat controller 17 reads the value of the REP COUNT 41 of the instruction 3. Since the value of the REP COUNT 41 of the instruction 3 is “1” and the internal state of the state machine 22 is “2”, the repeat controller 17 instructs the instruction register file 16 to discard the instruction 3. Then, the repeat controller 17 controls the selector 18 to read and output the instruction 2 that is the instruction next to the instruction 1 output in the previous cycle. As a result, since all the instructions stored in the instruction register file 16 have been read, the count value of the counter 21 is decremented. The count value of the counter 21 becomes “0” by decrement. Since the count value of the counter 21 has become “0”, the repeat controller 17 puts the program counter 11 in the update state. The internal state of the state machine 22 is set to “0”. Further, the repeat controller 17 clears the instruction group held in the instruction register file 16. The selector 18 inputs the instruction 2 read from the instruction register file 16 to the decode unit 13. Since the program counter 11 is in the HOLD state, the value of the program counter 11 is not counted up and remains “3”. The read instruction 3 is temporarily stored in the instruction register 12. Note that no instruction is stored in the instruction register file 16.

続いて第6のクロックサイクルでの動作について説明する。命令レジスタ12に格納された命令3は、命令レジスタファイル16及びリピートコントローラ17に供給される。リピートコントローラ17内のプレデコーダ20は、命令3のREP COUNT41の値を読み出す。命令3のREP COUNT41の値は"1"であり、ステートマシン22の内部状態は"0"であるため、リピートコントローラ17は、命令レジスタファイル16に対して命令3の破棄を指示する。リピートコントローラ17は、命令レジスタ12から読み出された命令を選択するようにセレクタ18を制御する。さらに、リピートコントローラ17は、プログラムカウンタ11を更新状態とする。そして、ステートマシン22の内部状態を"0"とする。セレクタ18は、命令レジスタ12から供給された命令3を選択してデコードユニット13に入力する。これと同時に、プログラムカウンタ11が更新状態であるため、プログラムカウンタ11の値がカウントアップし、"3"から"4"となる。プログラムカウンタ11の値が"4"であるため、命令4が命令メモリ10から読み出される。読み出された命令4は、命令レジスタ12に一時格納される。   Next, the operation in the sixth clock cycle will be described. The instruction 3 stored in the instruction register 12 is supplied to the instruction register file 16 and the repeat controller 17. The predecoder 20 in the repeat controller 17 reads the value of the REP COUNT 41 of the instruction 3. Since the value of the REP COUNT 41 of the instruction 3 is “1” and the internal state of the state machine 22 is “0”, the repeat controller 17 instructs the instruction register file 16 to discard the instruction 3. The repeat controller 17 controls the selector 18 so as to select the instruction read from the instruction register 12. Further, the repeat controller 17 puts the program counter 11 in an updated state. The internal state of the state machine 22 is set to “0”. The selector 18 selects the instruction 3 supplied from the instruction register 12 and inputs it to the decode unit 13. At the same time, since the program counter 11 is in the update state, the value of the program counter 11 is incremented and changes from “3” to “4”. Since the value of the program counter 11 is “4”, the instruction 4 is read from the instruction memory 10. The read instruction 4 is temporarily stored in the instruction register 12.

続いて第7のクロックサイクルでの動作について説明する。命令レジスタ12に格納された命令4は、命令レジスタファイル16及びリピートコントローラ17に供給される。リピートコントローラ17内のプレデコーダ20は、命令4のREP COUNT41の値を読み出す。命令4のREP COUNT41の値は"1"であり、ステートマシン22の内部状態は"0"であるため、リピートコントローラ17は、命令レジスタファイル16に対して命令4の破棄を指示する。リピートコントローラ17は、命令レジスタ12から読み出された命令を選択するようにセレクタ18を制御する。さらに、リピートコントローラ17は、プログラムカウンタ11を更新状態とする。そして、ステートマシン22の内部状態を"0"とする。セレクタ18は、命令レジスタ12から供給された命令4を選択してデコードユニット13に入力する。これと同時に、プログラムカウンタ11が更新状態であるため、プログラムカウンタ11の値がカウントアップし、"4"から"5"となる。プログラムカウンタ11の値が"5"であるため、命令5が命令メモリ10から読み出される。なお、図15に示す命令数は、4つであるため、以降の命令は実際には読み出されず、NOP(No Operation)扱いとなる。   Next, the operation in the seventh clock cycle will be described. The instruction 4 stored in the instruction register 12 is supplied to the instruction register file 16 and the repeat controller 17. The predecoder 20 in the repeat controller 17 reads the value of the REP COUNT 41 of the instruction 4. Since the value of the REP COUNT 41 of the instruction 4 is “1” and the internal state of the state machine 22 is “0”, the repeat controller 17 instructs the instruction register file 16 to discard the instruction 4. The repeat controller 17 controls the selector 18 so as to select the instruction read from the instruction register 12. Further, the repeat controller 17 puts the program counter 11 in an updated state. The internal state of the state machine 22 is set to “0”. The selector 18 selects the instruction 4 supplied from the instruction register 12 and inputs it to the decode unit 13. At the same time, since the program counter 11 is in the update state, the value of the program counter 11 is incremented and changes from “4” to “5”. Since the value of the program counter 11 is “5”, the instruction 5 is read from the instruction memory 10. Since the number of instructions shown in FIG. 15 is four, the subsequent instructions are not actually read and are handled as NOP (No Operation).

以上が、図15の命令を処理する場合における、本実施の形態にかかる演算処理装置の動作の具体例である。   The above is a specific example of the operation of the arithmetic processing apparatus according to the present embodiment when processing the instruction of FIG.

続いて、本実施の形態にかかる演算処理装置の効果について説明する。上述したように、本実施の形態にかかる演算処理装置は、図13に示す命令を扱う。図13に示す命令は、前述のREP FLAG31を含むものではない。すなわち、図3に示す命令と比べて、図13に示す命令は、REP FLAG31のフィールド幅だけデータサイズが小さい。これにより、メモリ規模の削減を図ることができる。   Then, the effect of the arithmetic processing apparatus concerning this Embodiment is demonstrated. As described above, the arithmetic processing apparatus according to the present embodiment handles the commands shown in FIG. The instruction shown in FIG. 13 does not include the REP FLAG 31 described above. That is, the data size of the instruction shown in FIG. 13 is smaller by the field width of REP FLAG 31 than the instruction shown in FIG. As a result, the memory scale can be reduced.

さらに、本実施の形態にかかる演算処理装置は、図16に示すような単一命令のループ処理も適切に扱うことができる。すなわち、本実施の形態にかかる演算処理装置は、図16に示す命令が処理対象である場合に、命令1→命令2→命令1→命令2→命令1→命令1→命令2→命令2→命令3→命令4というように処理を行うことができる。   Furthermore, the arithmetic processing apparatus according to the present embodiment can appropriately handle loop processing of a single instruction as shown in FIG. That is, when the instruction shown in FIG. 16 is an object to be processed, the arithmetic processing apparatus according to the present embodiment is instruction 1 → command 2 → command 1 → command 2 → command 1 → command 1 → command 2 → command 2 → Processing can be performed as instruction 3 → instruction 4.

なお、図13に示す命令のフィールド構成は、あくまで一例であり、他のフィールド等を含む構成であっても良い。さらに、セレクタ18が命令を供給するデコードユニット13及び後段のレジスタファイル14及びALU15の構成は、図1に示すものに限られず、演算の種類等に応じて適宜変更することが可能である。   The field structure of the instruction shown in FIG. 13 is merely an example, and a structure including other fields may be used. Furthermore, the configurations of the decode unit 13 to which the selector 18 supplies instructions, the subsequent register file 14 and the ALU 15 are not limited to those shown in FIG. 1, and can be changed as appropriate according to the type of operation.

以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。   Although the present invention has been described with reference to the exemplary embodiments, the present invention is not limited to the above. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the invention.

上記実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。   A part or all of the above embodiment can be described as in the following supplementary notes, but is not limited thereto.

(付記1)
命令実行手段で実行する命令が格納された命令格納手段から読み出す命令のアドレスを順次指定するプログラムカウンタと、
前記プログラムカウンタにより指定されて前記命令格納手段から読み出された命令のうち、ループ処理する1以上の命令からなる命令群を退避する命令退避手段と、
前記命令に含まれる前記ループ処理を行うか否か及び当該ループ処理の規定回数を示す管理情報に基づき、前記命令実行手段に供給する命令を制御するリピートコンローラと、
前記リピートコントローラの制御に基づき、前記命令格納手段から読み出された命令、または前記命令退避手段から出力された命令のいずれかを選択して前記命令実行手段に供給する選択手段と、を有し、
前記管理情報は、前記命令格納手段から読み出された命令が一のループ処理で処理される命令であるか否かを示す情報を含むものであって、
前記リピートコントローラは、前記管理情報に基づき、前記一のループ処理で処理される命令群を前記命令退避手段に退避させ、前記命令退避手段に前記一のループ処理で処理される命令が全て退避されると前記プログラムカウンタが指定するアドレスの更新を停止し、前記命令退避手段に保持された前記命令群から処理対象となる一の命令を出力させ、当該ループ処理実行中は、前記選択手段に前記命令退避手段から出力された命令を選択出力させる、演算処理装置。
(Appendix 1)
A program counter for sequentially specifying addresses of instructions to be read from the instruction storage means in which instructions to be executed by the instruction execution means are stored;
Instruction saving means for saving an instruction group including one or more instructions to be loop-processed among the instructions designated by the program counter and read from the instruction storage means;
A repeat controller for controlling a command to be supplied to the command execution means based on management information indicating whether or not to perform the loop processing included in the command and a prescribed number of times of the loop processing;
Selection means for selecting either an instruction read from the instruction storage means or an instruction output from the instruction saving means based on the control of the repeat controller and supplying the instruction execution means to the instruction execution means; ,
The management information includes information indicating whether or not the instruction read from the instruction storage means is an instruction processed in one loop process,
The repeat controller saves the instruction group processed in the one loop process in the instruction save unit based on the management information, and all instructions processed in the one loop process are saved in the instruction save unit. Then, the update of the address specified by the program counter is stopped, and one instruction to be processed is output from the instruction group held in the instruction saving unit, and during the execution of the loop processing, the selection unit An arithmetic processing unit that selectively outputs an instruction output from the instruction saving means.

(付記2)
前記管理情報内の前記ループ処理の規定回数を第1の情報とし、前記命令格納手段から読み出された命令が前記一のループ処理で処理される命令であるか否かを示す情報を第2の情報とした場合、
前記命令の各々は、前記第1の情報を示すリピート回数フィールドと、前記第2の情報を示すフラグフィールドと、を備えることを特徴とする付記1に記載の演算処理装置。
(Appendix 2)
The specified number of times of the loop processing in the management information is the first information, and information indicating whether or not the instruction read from the instruction storage means is an instruction to be processed by the one loop processing is the second information If the information of
2. The arithmetic processing apparatus according to claim 1, wherein each of the instructions includes a repeat count field indicating the first information and a flag field indicating the second information.

(付記3)
前記管理情報内の前記ループ処理の規定回数を第1の情報とし、前記命令格納手段から読み出された命令が前記一のループ処理で処理される命令であるか否かを示す情報を第2の情報とした場合、
前記命令の各々は前記第1の情報を示すリピート回数フィールドを備え、
前記リピート回数フィールドに所定値が代入されているか否かにより前記第2の情報を表現することを特徴とする付記1に記載の演算処理装置。
(Appendix 3)
The specified number of times of the loop processing in the management information is the first information, and information indicating whether or not the instruction read from the instruction storage means is an instruction to be processed by the one loop processing is the second information If the information of
Each of the instructions comprises a repeat number field indicating the first information;
2. The arithmetic processing apparatus according to claim 1, wherein the second information is expressed based on whether or not a predetermined value is assigned to the repeat count field.

(付記4)
前記プログラムカウンタにより指定されて前記命令格納手段から読み出された命令を一時的に格納する命令一時保持手段を備え、
前記選択手段及び前記命令退避手段は、前記命令格納手段から読み出された命令を、前記命令一時保持手段を介して取得することを特徴とする付記1乃至付記3のいずれか1項に記載の演算処理装置。
(Appendix 4)
An instruction temporary holding means for temporarily storing an instruction designated by the program counter and read from the instruction storage means;
The selection means and the instruction saving means acquire an instruction read from the instruction storage means via the instruction temporary holding means, according to any one of appendix 1 to appendix 3, Arithmetic processing unit.

(付記5)
前記リピートコントローラは、命令実行状態及び前記退避手段への命令退避状態を示す内部状態を保持し、前記内部状態及び前記管理情報に基づいて、前記命令退避手段への命令の退避処理、前記プログラムカウンタが指定するアドレスの更新、及び前記選択手段による選択処理、の制御を行うことを特徴とする付記1乃至付記4のいずれか1項に記載の演算処理装置。
(Appendix 5)
The repeat controller holds an internal state indicating an instruction execution state and an instruction save state to the save means, and based on the internal state and the management information, saves instructions to the instruction save means, the program counter The arithmetic processing unit according to any one of appendix 1 to appendix 4, wherein control of an address designated by the controller and selection processing by the selection unit is performed.

(付記6)
前記内部状態は、前記命令退避手段が前記命令群を保持しない第1の状態、前記命令退避手段が前記命令群を保持する第2の状態、前記一のループ処理の実行中を示す第3の状態のいずれかであることを特徴とする付記5に記載の演算処理装置。
(Appendix 6)
The internal state includes a first state in which the instruction saving unit does not hold the instruction group, a second state in which the instruction saving unit holds the instruction group, and a third state indicating that the one loop process is being executed. The arithmetic processing device according to attachment 5, wherein the arithmetic processing device is in any of the states.

(付記7)
前記リピートコントローラは、
前記命令から前記管理情報を読み出すプリデコーダと、
現在の前記内部状態と、前記プリデコーダの読み出した前記管理情報に応じて次サイクルの前記内部状態を決定するとともに、前記命令退避手段への命令の退避処理、前記プログラムカウンタが指定するアドレスの更新、及び前記選択手段による選択処理、の制御を行うステートコントローラと、
前記一のループ処理の現在の実行回数であるカウント値を保持するカウンタと、を備えることを特徴とする付記5または付記6に記載の演算処理装置。
(Appendix 7)
The repeat controller is
A predecoder for reading the management information from the instruction;
The internal state of the next cycle is determined according to the current internal state and the management information read by the predecoder, instruction saving processing to the instruction saving means, and update of the address specified by the program counter And a state controller for controlling the selection process by the selection unit;
The arithmetic processing apparatus according to appendix 5 or appendix 6, further comprising: a counter that holds a count value that is the current execution count of the one loop process.

(付記8)
前記命令実行手段を備えることを特徴とする付記1乃至付記7のいずれか1項に記載の演算処理装置。
(Appendix 8)
The arithmetic processing apparatus according to claim 1, further comprising the instruction execution unit.

(付記9)
前記命令記憶手段を備えることを特徴とする付記1乃至付記8のいずれか1項に記載の演算処理装置。
(Appendix 9)
The arithmetic processing apparatus according to any one of appendices 1 to 8, further comprising the instruction storage unit.

(付記10)
前記内部状態が前記第1の状態であり、前記第2の情報が前記一のループ処理で処理される命令ではないことを示す値である場合、前記ステートコントローラは、前記選択手段に前記命令一時保持手段から出力された前記命令を選択させ、前記プログラムカウンタによるアドレスの更新を継続させ、前記命令退避手段に入力された最新の命令を破棄させ、
前記内部状態が前記第1の状態であり、前記第2の情報が前記一のループ処理で処理される命令であることを示す値である場合、前記ステートコントローラは、前記選択手段に前記命令一時保持手段から出力された前記命令を選択させ、前記プログラムカウンタによるアドレスの更新を継続させた後に、前記内部状態を前記第2の状態とし、前記カウンタは、前記カウント値をデクリメントし、
前記内部状態が前記第2の状態であり、前記第2の情報が前記一のループ処理で処理される命令ではないことを示す値である場合、前記ステートコントローラは、前記選択手段に前記命令一時保持手段から出力された前記命令を選択させ、前記プログラムカウンタによるアドレスの更新を継続させ、
前記内部状態が前記第2の状態であり、前記第2の情報が前記一のループ処理で処理される命令であることを示す値である場合、前記ステートコントローラは、前記選択手段に前記命令退避手段内の前記命令群から直近に読み出された命令に後続する命令を読み出して選択させ、前記プログラムカウンタによるアドレスの更新を停止させ、前記命令退避手段に入力された最新の命令を破棄させた後に前記内部状態を前記第3の状態とし、
前記内部状態が前記第3の状態であり、前記第2の情報が前記一のループ処理で処理される命令ではないことを示す値であり、前記カウント値が0でない場合、前記ステートコントローラは、前記選択手段に前記命令退避手段内の前記命令群から直近に読み出された命令に後続する命令を読み出して選択させ、前記プログラムカウンタによるアドレスの更新を停止させ、前記命令退避手段に入力された最新の命令を破棄させた後に前記内部状態を前記第3の状態とし、前記カウンタは、前記選択手段が選択した命令が前記命令退避手段の保持する前記命令群の最後尾であった場合には前記カウント値をデクリメントし、
前記内部状態が前記第3の状態であり、前記第2の情報が前記一のループ処理で処理される命令ではないことを示す値であり、前記カウント値が0ではない場合、前記ステートコントローラは、前記プログラムカウンタによるアドレスの更新を継続さるとともに、前記命令退避手段の保持する命令を全てクリアさせる、
ことを特徴とする付記6乃至付記9のいずれか1項に記載の演算処理装置。
(Appendix 10)
When the internal state is the first state and the second information is a value indicating that the instruction is not an instruction processed in the one loop process, the state controller sends the instruction temporary to the selection unit. The instruction output from the holding means is selected, the updating of the address by the program counter is continued, the latest instruction input to the instruction saving means is discarded,
When the internal state is the first state and the second information is a value indicating an instruction to be processed by the one loop process, the state controller sends the instruction temporary to the selection unit. After the instruction output from the holding means is selected and the updating of the address by the program counter is continued, the internal state is set to the second state, and the counter decrements the count value,
When the internal state is the second state and the second information is a value indicating that the instruction is not an instruction processed in the one loop process, the state controller sends the instruction temporary to the selection unit. The instruction output from the holding means is selected, the updating of the address by the program counter is continued,
When the internal state is the second state and the second information is a value indicating an instruction processed by the one loop process, the state controller saves the instruction in the selection unit. The instruction following the instruction read most recently from the instruction group in the means is read and selected, the address update by the program counter is stopped, and the latest instruction input to the instruction saving means is discarded. Later, the internal state becomes the third state,
When the internal state is the third state, the second information is a value indicating that the instruction is not processed by the one loop process, and the count value is not 0, the state controller The selection means reads and selects an instruction following the instruction most recently read from the instruction group in the instruction saving means, stops updating the address by the program counter, and is input to the instruction saving means When the latest instruction is discarded, the internal state is changed to the third state, and the counter is set when the instruction selected by the selection unit is the last of the instruction group held by the instruction saving unit. Decrement the count value,
When the internal state is the third state, the second information is a value indicating that the instruction is not processed by the one loop process, and the count value is not 0, the state controller , While continuing to update the address by the program counter, to clear all the instructions held by the instruction saving means,
The arithmetic processing apparatus according to any one of Supplementary Note 6 to Supplementary Note 9, wherein

(付記11)
処理対象となる命令は、ループ処理を行うか否か及び当該ループ処理の規定回数を示す管理情報を含み、前記管理情報は、命令格納手段から読み出された命令が一のループ処理で処理される命令であるか否かを示す情報を含み、
前記管理情報に基づいて、前記命令格納手段から読み出された命令のうち、ループ処理する1以上の命令からなる命令群を退避し、一のループ処理で処理される命令が全て退避されると前記命令格納手段から読み出される命令の更新を停止し、前記一のループ処理の実行中は退避された前記命令群から処理対象となる一の命令を命令実行手段に出力し、当該ループ処理以外の命令実行中には前記命令格納手段から読み出された命令を命令実行手段に出力する、演算処理方法。
(Appendix 11)
The instruction to be processed includes management information indicating whether or not to perform loop processing and the specified number of times of the loop processing, and the management information is processed in one loop processing when the instruction read from the instruction storage means is processed. Information indicating whether or not
Based on the management information, among instructions read out from the instruction storage unit, an instruction group including one or more instructions to be loop processed is saved, and all instructions processed in one loop process are saved. The update of the instruction read out from the instruction storage unit is stopped, and during execution of the one loop process, one instruction to be processed is output from the saved instruction group to the instruction execution unit, and other than the loop process An arithmetic processing method for outputting an instruction read from the instruction storage means to the instruction execution means during instruction execution.

(付記12)
前記管理情報内の前記ループ処理の規定回数を第1の情報とし、前記命令格納手段から読み出された命令が前記一のループ処理で処理される命令であるか否かを示す情報を第2の情報とした場合、
前記命令の各々は、前記第1の情報を示すリピート回数フィールドと、前記第2の情報を示すフラグフィールドと、を備えることを特徴とする付記11に記載の演算処理方法。
(Appendix 12)
The specified number of times of the loop processing in the management information is the first information, and information indicating whether or not the instruction read from the instruction storage means is an instruction to be processed by the one loop processing is the second information If the information of
12. The arithmetic processing method according to claim 11, wherein each of the instructions includes a repeat count field indicating the first information and a flag field indicating the second information.

(付記13)
前記管理情報内の前記ループ処理の規定回数を第1の情報とし、前記命令格納手段から読み出された命令が前記一のループ処理で処理される命令であるか否かを示す情報を第2の情報とした場合、
前記命令の各々は前記第1の情報を示すリピート回数フィールドを備え、
前記リピート回数フィールドに所定値が代入されているか否かにより前記第2の情報を表現することを特徴とする付記11に記載の演算処理方法。
(Appendix 13)
The specified number of times of the loop processing in the management information is the first information, and information indicating whether or not the instruction read from the instruction storage means is an instruction to be processed by the one loop processing is the second information If the information of
Each of the instructions comprises a repeat number field indicating the first information;
12. The arithmetic processing method according to claim 11, wherein the second information is expressed by whether or not a predetermined value is assigned to the repeat count field.

この出願は、2011年5月20日に出願された日本出願特願2011−113395を基礎とする優先権を主張し、その開示の全てをここに取り込む。   This application claims the priority on the basis of Japanese application Japanese Patent Application No. 2011-113395 for which it applied on May 20, 2011, and takes in those the indications of all here.

本発明は、単一の処理を多数データに対して実行するストリーム処理、詳細にはフィルタリング処理やデータのソート処理等の信号処理等に適用することができる。   The present invention can be applied to stream processing in which a single process is performed on a large number of data, specifically to signal processing such as filtering processing and data sorting processing.

10 命令メモリ
11 プログラムカウンタ
12 命令レジスタ
13 デコードユニット
14 レジスタファイル
15 ALU
16 命令レジスタファイル
17 リピートコントローラ
18 セレクタ
20 プリデコーダ
21 カウンタ
22 ステートコントローラ
30 OPECODE
31 REP FLAG
32 REP COUNT
33a OPERAND#0
33b OPERAND#1
33c OPERAND#2
40 OPECODE
41 REP COUNT
42a OPERAND#0
42b OPERAND#1
42c OPERAND#2
10 instruction memory 11 program counter 12 instruction register 13 decode unit 14 register file 15 ALU
16 Instruction register file 17 Repeat controller 18 Selector 20 Predecoder 21 Counter 22 State controller 30 OPECODE
31 REP FLAG
32 REP COUNT
33a OPERAND # 0
33b OPERAND # 1
33c OPERAND # 2
40 OPECODE
41 REP COUNT
42a OPERAND # 0
42b OPERAND # 1
42c OPERAND # 2

Claims (7)

命令実行手段で実行する命令が格納された命令格納手段から読み出す命令のアドレスを順次指定するプログラムカウンタと、
前記プログラムカウンタにより指定されて前記命令格納手段から読み出された命令のうち、ループ処理する1以上の命令からなる命令群を退避する命令退避手段と、
前記命令に含まれる当該命令について前記ループ処理を行うか否か及び当該ループ処理のリピート回数を示す管理情報に基づき、前記命令実行手段に供給する命令を制御するリピートコントローラと、
前記リピートコントローラの制御に基づき、前記命令格納手段から読み出された命令、または前記命令退避手段から出力された命令のいずれかを選択して前記命令実行手段に供給する選択手段と、
前記プログラムカウンタにより指定されて前記命令格納手段から読み出された命令を一時的に格納する命令一時保持手段と、を有し、
前記選択手段及び前記命令退避手段は、前記命令格納手段から読み出された命令を、前記命令一時保持手段を介して取得し、
前記管理情報は、前記命令格納手段から読み出された命令が1つのループとして処理される命令群の内の1つの命令であるか否かを示す情報を含むものであって、
前記リピートコントローラは、内部状態を保持するとともに、前記ループ処理の現在の実行回数に関するカウント値を保持するカウンタを備え、
前記内部状態は、前記命令退避手段が前記命令群を保持しない第1の状態、前記命令退避手段が前記命令群を保持する第2の状態、前記ループ処理の実行中を示す第3の状態のいずれかであり、
前記内部状態が前記第1の状態であり、前記管理情報が前記1つのループとして処理される命令群の内の1つの命令ではないことを示す値を含む場合、前記リピートコントローラは、前記選択手段に前記命令一時保持手段から出力された前記命令を選択させ、前記プログラムカウンタによるアドレスの更新を継続させ、前記命令退避手段に入力された最新の命令を破棄させ、
前記内部状態が前記第1の状態であり、前記管理情報が前記1つのループとして処理される命令群の内の1つの命令であることを示す値を含む場合、前記リピートコントローラは、前記選択手段に前記命令一時保持手段から出力された前記命令を選択させ、前記プログラムカウンタによるアドレスの更新を継続させた後に、前記内部状態を前記第2の状態とし、前記カウンタは、前記カウント値をデクリメントし、
前記内部状態が前記第2の状態であり、前記管理情報が前記1つのループとして処理される命令群の内の1つの命令ではないことを示す値を含む場合、前記リピートコントローラは、前記選択手段に前記命令一時保持手段から出力された前記命令を選択させ、前記プログラムカウンタによるアドレスの更新を継続させ、
前記内部状態が前記第2の状態であり、前記管理情報が前記1つのループとして処理される命令群の内の1つの命令であることを示す値を含む場合、前記リピートコントローラは、前記選択手段に前記命令退避手段内の前記命令群から直近に読み出された命令に後続する命令を読み出して選択させ、前記プログラムカウンタによるアドレスの更新を停止させ、前記命令退避手段に入力された最新の命令を破棄させた後に前記内部状態を前記第3の状態とし、
前記内部状態が前記第3の状態であり、前記管理情報が前記1つのループとして処理される命令群の内の1つの命令ではないことを示す値であり、前記カウント値が0でない場合、前記リピートコントローラは、前記選択手段に前記命令退避手段内の前記命令群から直近に読み出された命令に後続する命令を読み出して選択させ、前記プログラムカウンタによるアドレスの更新を停止させ、前記命令退避手段に入力された最新の命令を破棄させた後に前記内部状態を前記第3の状態とし、前記カウンタは、前記選択手段が選択した命令が前記命令退避手段の保持する前記命令群の最後尾であった場合には前記カウント値をデクリメントし、
前記内部状態が前記第3の状態であり、前記管理情報が前記1つのループとして処理される命令群の内の1つの命令ではないことを示す値であり、前記カウント値が0ではない場合、前記リピートコントローラは、前記プログラムカウンタによるアドレスの更新を継続さるとともに、前記命令退避手段の保持する命令を全てクリアさせる
演算処理装置。
A program counter for sequentially specifying addresses of instructions to be read from the instruction storage means in which instructions to be executed by the instruction execution means are stored;
Instruction saving means for saving an instruction group including one or more instructions to be loop-processed among the instructions designated by the program counter and read from the instruction storage means;
A repeat controller for controlling an instruction to be supplied to the instruction execution means based on management information indicating whether or not to perform the loop process for the instruction included in the instruction and the number of repeats of the loop process;
Selection means for selecting either an instruction read from the instruction storage means or an instruction output from the instruction saving means based on the control of the repeat controller and supplying the instruction execution means;
An instruction temporary holding means for temporarily storing an instruction designated by the program counter and read from the instruction storage means ;
The selection means and the instruction saving means obtain an instruction read from the instruction storage means via the instruction temporary holding means,
The management information includes information indicating whether or not the instruction read from the instruction storage unit is one instruction in an instruction group processed as one loop,
The repeat controller includes a counter that holds an internal state and holds a count value related to the current number of executions of the loop process,
The internal state includes a first state where the instruction saving unit does not hold the instruction group, a second state where the instruction saving unit holds the instruction group, and a third state indicating that the loop process is being executed. Ri der either,
When the internal state is the first state and the management information includes a value indicating that it is not one instruction in the instruction group processed as the one loop, the repeat controller is configured to select the selection unit. To select the instruction output from the instruction temporary holding means, to continue updating the address by the program counter, to discard the latest instruction input to the instruction saving means,
When the internal state is the first state, and the management information includes a value indicating that the instruction is one instruction in the instruction group processed as the one loop, the repeat controller includes the selection unit. After the instruction output from the instruction temporary holding means is selected and the updating of the address by the program counter is continued, the internal state is set to the second state, and the counter decrements the count value. ,
When the internal state is the second state and the management information includes a value indicating that the instruction is not one instruction in the instruction group processed as the one loop, the repeat controller includes the selection unit. To select the instruction output from the instruction temporary holding means, to continue updating the address by the program counter,
When the internal state is the second state and the management information includes a value indicating that the instruction is one instruction in the instruction group processed as the one loop, the repeat controller includes the selection unit. To read and select the instruction following the instruction most recently read from the instruction group in the instruction saving means, stop updating the address by the program counter, and enter the latest instruction input to the instruction saving means The internal state is changed to the third state after discarding
When the internal state is the third state, the management information is a value indicating that it is not one instruction in the instruction group processed as the one loop, and the count value is not 0, The repeat controller causes the selection means to read and select an instruction subsequent to the instruction most recently read from the instruction group in the instruction saving means, stop updating the address by the program counter, and save the instruction saving means The internal state is changed to the third state after discarding the latest instruction input to the counter, and the counter indicates that the instruction selected by the selection means is the tail of the instruction group held by the instruction saving means. If the count value is decremented,
When the internal state is the third state, the management information is a value indicating that it is not one instruction in the instruction group processed as the one loop, and the count value is not 0, The repeat controller is an arithmetic processing unit that continues to update an address by the program counter and clears all instructions held by the instruction saving unit .
前記管理情報内の前記ループ処理のリピート回数を第1の情報とし、前記命令格納手段から読み出された命令が前記1つのループとして処理される命令群の内の1つの命令であるか否かを示す情報を第2の情報とした場合、
前記命令の各々は、前記第1の情報を示すリピート回数フィールドと、前記第2の情報を示すフラグフィールドと、を備えることを特徴とする請求項1に記載の演算処理装置。
Whether or not the loop processing repeat count in the management information is the first information, and the instruction read from the instruction storage means is one instruction in the instruction group processed as the one loop When the information indicating is the second information,
The arithmetic processing apparatus according to claim 1, wherein each of the instructions includes a repeat count field indicating the first information and a flag field indicating the second information.
前記管理情報内の前記ループ処理のリピート回数を第1の情報とし、前記命令格納手段から読み出された命令が前記1つのループとして処理される命令群の内の1つの命令であるか否かを示す情報を第2の情報とした場合、
前記命令の各々は前記第1の情報を示すリピート回数フィールドを備え、
前記リピート回数フィールドに所定値が代入されているか否かにより前記第2の情報を表現することを特徴とする請求項1に記載の演算処理装置。
Whether or not the loop processing repeat count in the management information is the first information, and the instruction read from the instruction storage means is one instruction in the instruction group processed as the one loop When the information indicating is the second information,
Each of the instructions comprises a repeat number field indicating the first information;
The arithmetic processing apparatus according to claim 1, wherein the second information is expressed based on whether or not a predetermined value is assigned to the repeat count field.
前記リピートコントローラは、
前記命令から前記管理情報を読み出すプリデコーダと、
現在の前記内部状態と、前記プリデコーダの読み出した前記管理情報に応じて次サイクルの前記内部状態を決定するとともに、前記命令退避手段への命令の退避処理、前記プログラムカウンタが指定するアドレスの更新、及び前記選択手段による選択処理、の制御を行うステートコントローラと、を備えることを特徴とする請求項1に記載の演算処理装置。
The repeat controller is
A predecoder for reading the management information from the instruction;
The internal state of the next cycle is determined according to the current internal state and the management information read by the predecoder, instruction saving processing to the instruction saving means, and update of the address specified by the program counter , and the arithmetic processing apparatus according to claim 1, characterized in that and a state controller for selecting process, the control of by the selection means.
前記命令実行手段を備えることを特徴とする請求項1乃至請求項のいずれか1項に記載の演算処理装置。 Arithmetic processing device according to any one of claims 1 to 4, characterized in that it comprises the instruction execution unit. 前記命令格納手段を備えることを特徴とする請求項1乃至請求項のいずれか1項に記載の演算処理装置。 Arithmetic processing device according to any one of claims 1 to 5, characterized in that it comprises the instruction storage means. 命令実行手段で実行する命令が格納された命令格納手段から読み出す命令のアドレスをプログラムカウンタにより順次指定し、
前記プログラムカウンタにより指定されて前記命令格納手段から読み出された命令のうち、ループ処理する1以上の命令からなる命令群を命令退避手段に退避する命令退避手段と、
前記命令に含まれる当該命令について前記ループ処理を行うか否か及び当該ループ処理のリピート回数を示す管理情報に基づき、前記命令実行手段に供給する命令をリピートコントローラにより制御し、
前記リピートコントローラの制御に基づき、前記命令格納手段から読み出された命令、または前記命令退避手段から出力された命令のいずれかを選択手段により選択して前記命令実行手段に供給し、
前記プログラムカウンタにより指定されて前記命令格納手段から読み出された命令を命令一時保持手段に一時的に格納し、
前記選択手段及び前記命令退避手段は、前記命令格納手段から読み出された命令を、前記命令一時保持手段を介して取得し、
前記管理情報は、前記命令格納手段から読み出された命令が1つのループとして処理される命令群の内の1つの命令であるか否かを示す情報を含むものであって、
前記リピートコントローラは、内部状態を保持するとともに、前記ループ処理の現在の実行回数に関するカウント値を保持するカウンタを備え、
前記内部状態は、前記命令退避手段が前記命令群を保持しない第1の状態、前記命令退避手段が前記命令群を保持する第2の状態、前記ループ処理の実行中を示す第3の状態のいずれかであり、
前記内部状態が前記第1の状態であり、前記管理情報が前記1つのループとして処理される命令群の内の1つの命令ではないことを示す値を含む場合、前記リピートコントローラは、前記選択手段に前記命令一時保持手段から出力された前記命令を選択させ、前記プログラムカウンタによるアドレスの更新を継続させ、前記命令退避手段に入力された最新の命令を破棄させ、
前記内部状態が前記第1の状態であり、前記管理情報が前記1つのループとして処理される命令群の内の1つの命令であることを示す値を含む場合、前記リピートコントローラは、前記選択手段に前記命令一時保持手段から出力された前記命令を選択させ、前記プログラムカウンタによるアドレスの更新を継続させた後に、前記内部状態を前記第2の状態とし、前記カウンタは、前記カウント値をデクリメントし、
前記内部状態が前記第2の状態であり、前記管理情報が前記1つのループとして処理される命令群の内の1つの命令ではないことを示す値を含む場合、前記リピートコントローラは、前記選択手段に前記命令一時保持手段から出力された前記命令を選択させ、前記プログラムカウンタによるアドレスの更新を継続させ、
前記内部状態が前記第2の状態であり、前記管理情報が前記1つのループとして処理される命令群の内の1つの命令であることを示す値を含む場合、前記リピートコントローラは、前記選択手段に前記命令退避手段内の前記命令群から直近に読み出された命令に後続する命令を読み出して選択させ、前記プログラムカウンタによるアドレスの更新を停止させ、前記命令退避手段に入力された最新の命令を破棄させた後に前記内部状態を前記第3の状態とし、
前記内部状態が前記第3の状態であり、前記管理情報が前記1つのループとして処理される命令群の内の1つの命令ではないことを示す値であり、前記カウント値が0でない場合、前記リピートコントローラは、前記選択手段に前記命令退避手段内の前記命令群から直近に読み出された命令に後続する命令を読み出して選択させ、前記プログラムカウンタによるアドレスの更新を停止させ、前記命令退避手段に入力された最新の命令を破棄させた後に前記内部状態を前記第3の状態とし、前記カウンタは、前記選択手段が選択した命令が前記命令退避手段の保持する前記命令群の最後尾であった場合には前記カウント値をデクリメントし、
前記内部状態が前記第3の状態であり、前記管理情報が前記1つのループとして処理される命令群の内の1つの命令ではないことを示す値であり、前記カウント値が0ではない場合、前記リピートコントローラは、前記プログラムカウンタによるアドレスの更新を継続さるとともに、前記命令退避手段の保持する命令を全てクリアさせる
演算処理方法。
The program counter sequentially specifies the addresses of instructions to be read from the instruction storage means in which instructions to be executed by the instruction execution means are stored,
An instruction saving means for saving an instruction group consisting of one or more instructions to be loop-processed among the instructions designated by the program counter and read from the instruction storage means to the instruction saving means;
Based on the management information indicating whether or not to perform the loop process for the instruction included in the instruction and the number of repeats of the loop process, the instruction to be supplied to the instruction execution means is controlled by a repeat controller,
Based on the control of the repeat controller, the instruction read from the instruction storage means or the instruction output from the instruction save means is selected by the selection means and supplied to the instruction execution means,
The instruction specified by the program counter and read from the instruction storage means is temporarily stored in the instruction temporary holding means,
The selection means and the instruction saving means obtain an instruction read from the instruction storage means via the instruction temporary holding means,
The management information includes information indicating whether or not the instruction read from the instruction storage unit is one instruction in an instruction group processed as one loop,
The repeat controller includes a counter that holds an internal state and holds a count value related to the current number of executions of the loop process,
The internal state includes a first state where the instruction saving unit does not hold the instruction group, a second state where the instruction saving unit holds the instruction group, and a third state indicating that the loop process is being executed. Either
When the internal state is the first state and the management information includes a value indicating that it is not one instruction in the instruction group processed as the one loop, the repeat controller is configured to select the selection unit. To select the instruction output from the instruction temporary holding means, to continue updating the address by the program counter, to discard the latest instruction input to the instruction saving means,
When the internal state is the first state, and the management information includes a value indicating that the instruction is one instruction in the instruction group processed as the one loop, the repeat controller includes the selection unit. After the instruction output from the instruction temporary holding means is selected and the updating of the address by the program counter is continued, the internal state is set to the second state, and the counter decrements the count value. ,
When the internal state is the second state and the management information includes a value indicating that the instruction is not one instruction in the instruction group processed as the one loop, the repeat controller includes the selection unit. To select the instruction output from the instruction temporary holding means, to continue updating the address by the program counter,
When the internal state is the second state and the management information includes a value indicating that the instruction is one instruction in the instruction group processed as the one loop, the repeat controller includes the selection unit. To read and select the instruction following the instruction most recently read from the instruction group in the instruction saving means, stop updating the address by the program counter, and enter the latest instruction input to the instruction saving means The internal state is changed to the third state after discarding
When the internal state is the third state, the management information is a value indicating that it is not one instruction in the instruction group processed as the one loop, and the count value is not 0, The repeat controller causes the selection means to read and select an instruction subsequent to the instruction most recently read from the instruction group in the instruction saving means, stop updating the address by the program counter, and save the instruction saving means The internal state is changed to the third state after discarding the latest instruction input to the counter, and the counter indicates that the instruction selected by the selection means is the tail of the instruction group held by the instruction saving means. If the count value is decremented,
When the internal state is the third state, the management information is a value indicating that it is not one instruction in the instruction group processed as the one loop, and the count value is not 0, An arithmetic processing method in which the repeat controller continues updating the address by the program counter and clears all instructions held by the instruction saving unit .
JP2013516201A 2011-05-20 2012-05-18 Arithmetic processing device and arithmetic processing method Active JP6191457B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011113395 2011-05-20
JP2011113395 2011-05-20
PCT/JP2012/003269 WO2012160794A1 (en) 2011-05-20 2012-05-18 Arithmetic processing device and arithmetic processing method

Publications (2)

Publication Number Publication Date
JPWO2012160794A1 JPWO2012160794A1 (en) 2014-07-31
JP6191457B2 true JP6191457B2 (en) 2017-09-06

Family

ID=47216887

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013516201A Active JP6191457B2 (en) 2011-05-20 2012-05-18 Arithmetic processing device and arithmetic processing method

Country Status (2)

Country Link
JP (1) JP6191457B2 (en)
WO (1) WO2012160794A1 (en)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0797320B2 (en) * 1987-08-17 1995-10-18 沖電気工業株式会社 Program translation method
JPH04293124A (en) * 1991-03-20 1992-10-16 Hitachi Ltd Data processor
JPH04364526A (en) * 1991-06-11 1992-12-16 Gijutsu Kenkyu Kumiai Kokusai Fuajii Kogaku Kenkyusho Repetitive arithmetic controller
JPH07160585A (en) * 1993-12-13 1995-06-23 Hitachi Ltd Low power data processor
US5761524A (en) * 1996-03-15 1998-06-02 Renditon, Inc. Method and apparatus for performing and operation multiple times in response to a single instruction
JP3656587B2 (en) * 2001-10-01 2005-06-08 日本電気株式会社 Parallel operation processor, operation control method and program
JP4264622B2 (en) * 2001-12-19 2009-05-20 ソニー株式会社 Processor
JP2006508447A (en) * 2002-11-28 2006-03-09 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Loop control circuit for data processor
JP2009054032A (en) * 2007-08-28 2009-03-12 Toshiba Corp Parallel processor

Also Published As

Publication number Publication date
WO2012160794A1 (en) 2012-11-29
JPWO2012160794A1 (en) 2014-07-31

Similar Documents

Publication Publication Date Title
GB2510655A (en) Prioritising instructions in queues according to category of instruction
US11366669B2 (en) Apparatus for preventing rescheduling of a paused thread based on instruction classification
US20080141013A1 (en) Digital processor with control means for the execution of nested loops
WO2011155097A1 (en) Instruction issue and control device and method
JP2009163624A (en) Processor device and conditional branch processing method
EP3264263A1 (en) Sequential monitoring and management of code segments for run-time parallelization
KR20140078718A (en) Digital signal processor and baseband communication device
CN108319559A (en) Data processing equipment for controlling vector memory access and method
KR20070107814A (en) Processor and method of grouping and executing dependent instructions in a packet
US9804853B2 (en) Apparatus and method for compressing instruction for VLIW processor, and apparatus and method for fetching instruction
EP3765963B1 (en) Tracing branch instructions
KR20010001022A (en) Method and Apparatus for Instruction issuing in Out-of-Order for Parallel Processor
JP2008305185A (en) Processor device and compound condition processing method
JP6191457B2 (en) Arithmetic processing device and arithmetic processing method
US20190258512A1 (en) Reduction of a Number of Stages of a Graph Streaming Processor
JP2017228213A (en) Arithmetic processing unit and control method of arithmetic processing unit
JP2020502669A (en) Vector generation instruction
JP3835764B2 (en) Processor and recording medium
JP2009069960A (en) Branch prediction device, branch prediction method and microprocessor
JP5333433B2 (en) Processor, method and program for executing multiple instruction streams at low cost
JP6064993B2 (en) Arithmetic processing device, arithmetic processing method thereof, and arithmetic processing program
JP5573038B2 (en) Multi-thread processor and program
JP2000081982A (en) Compiler, processor and recording medium
JP2006285721A (en) Arithmetic processing device and arithmetic processing method
JP2010140398A (en) Apparatus and method for data process

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150408

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160510

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170120

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170711

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170724

R150 Certificate of patent or registration of utility model

Ref document number: 6191457

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150