JP5013966B2 - Arithmetic processing unit - Google Patents
Arithmetic processing unit Download PDFInfo
- Publication number
- JP5013966B2 JP5013966B2 JP2007138047A JP2007138047A JP5013966B2 JP 5013966 B2 JP5013966 B2 JP 5013966B2 JP 2007138047 A JP2007138047 A JP 2007138047A JP 2007138047 A JP2007138047 A JP 2007138047A JP 5013966 B2 JP5013966 B2 JP 5013966B2
- Authority
- JP
- Japan
- Prior art keywords
- arithmetic
- special
- instruction
- processing
- arithmetic processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
この発明は、機器を駆動するコントローラで制御処理を実行するといった演算処理装置に関するものである。 The present invention relates to an arithmetic processing apparatus in which a control process is executed by a controller that drives a device.
コントローラ上で制御処理を実行するハードウェア演算装置(専用演算回路やプロセッサ)では、発熱やノイズの問題から低クロック周波数で回路を動作させる事が求められる。そのため、1クロックサイクルで幾つもの演算処理を行える演算回路を複数実現し、それら複数の演算回路を複数のクロックサイクルで駆動し所望の演算全体を完遂するという、処理内容に特化した演算回路を実現することが必要となる。 In a hardware arithmetic unit (dedicated arithmetic circuit or processor) that executes control processing on a controller, it is required to operate the circuit at a low clock frequency because of problems of heat generation and noise. For this reason, an arithmetic circuit specialized in processing contents is realized, in which a plurality of arithmetic circuits capable of performing various arithmetic processes in one clock cycle are realized, and the plurality of arithmetic circuits are driven in a plurality of clock cycles to complete an entire desired arithmetic operation. It needs to be realized.
そのような処理内容に特化した演算回路を使用する場合、演算回路実装時に想定していた処理内容に対して修正が発生すると、その処理内容を実行することが困難である。このため、従来の演算処理装置では、実行する処理内容を変更可能な演算回路とすると共に、動作周波数を高くすることなく低い動作周波数でも演算性能を向上させるため、ALU(演算論理装置)、BRL(バレルシフタ)およびマルチプレクサで固定的に接続されたデータパスを構成し、ALU、BRL、マルチプレクサへのコンフィグレーションデータ(オペコードデータ)を設定することで、処理内容に特化した演算データパスを構成していた(例えば、特許文献1参照)。 When an arithmetic circuit specialized for such processing contents is used, if the processing contents assumed when the arithmetic circuit is mounted are corrected, it is difficult to execute the processing contents. For this reason, in the conventional arithmetic processing unit, an arithmetic circuit capable of changing the processing content to be executed is used, and in order to improve the arithmetic performance even at a low operating frequency without increasing the operating frequency, ALU (arithmetic logic unit), BRL (Barrel shifter) and a data path fixedly connected by a multiplexer are configured, and configuration data (opcode data) to ALU, BRL, and multiplexer is set, so that an operation data path specialized for processing contents is configured. (For example, refer to Patent Document 1).
しかしながら、従来の演算処理装置では、処理内容が修正される場合を想定しての予めの対応策として、算術演算、論理演算、シフト等の演算回路への入出力を選択信号により切り替えるマルチプレクサを多用する形となる。そのため、各演算回路への入出力切り替えを想定しないような処理内容に特化した専用演算回路を使用する場合に比べ、演算実行に長い遅延時間・長い実行サイクル数が必要であった。また、元々、演算装置中で接続されていない演算回路に関しては演算そのものを実行する事が出来ないという問題もあった。
一方、入出力経路の切り替えを想定しないような専用演算回路を採用した場合、専用演算回路実装後に発生した処理内容の修正に対応することが困難であった。
However, in the conventional arithmetic processing unit, a multiplexer that switches input / output to an arithmetic circuit such as arithmetic operation, logical operation, and shift by a selection signal is widely used as a precaution for assuming that the processing content is corrected. It becomes the form to do. For this reason, a longer delay time and a longer number of execution cycles are required for execution of operations compared to the case of using a dedicated operation circuit specialized for processing contents that do not assume input / output switching to each operation circuit. In addition, there has been a problem that the operation itself cannot be executed with respect to the operation circuit that is not originally connected in the operation device.
On the other hand, when a dedicated arithmetic circuit that does not assume switching of an input / output path is employed, it is difficult to cope with correction of processing content that occurs after the dedicated arithmetic circuit is mounted.
この発明は、上記のような問題点を解決するためになされたものであり、処理の高速実行を可能とすると共に、処理内容の修正時の実行時間の悪化を防ぐことのできる演算処理装置を得ることを目的としている。 The present invention has been made in order to solve the above-described problems, and provides an arithmetic processing device that enables high-speed execution of processing and prevents deterioration in execution time when processing content is corrected. The purpose is to get.
この発明に係る演算処理装置は、算術演算、論理演算、シフト演算を行う演算手段を有し、各演算手段に対して定義されている命令コードの発行により前記各演算を実行する一般演算処理手段と、所定のクロックサイクルで特定の演算処理を実行する特殊演算処理手段と、前記特定の演算処理に対して定義されている命令コードの発行に基づいて、前記特殊演算処理手段での演算処理の実行および一時停止を制御する特殊演算制御手段とを備え、前記特殊演算処理手段が一時停止するクロックサイクル数を、特定の命令コードを使用して任意の値に設定するものである。 The arithmetic processing device according to the present invention has arithmetic means for performing arithmetic operation, logical operation, shift operation, and general arithmetic processing means for executing each operation by issuing an instruction code defined for each arithmetic means And a special arithmetic processing means for executing a specific arithmetic processing in a predetermined clock cycle, and issuing an instruction code defined for the specific arithmetic processing in the special arithmetic processing means. Special operation control means for controlling execution and suspension, and the number of clock cycles at which the special operation processing means is suspended is set to an arbitrary value using a specific instruction code .
この発明の演算処理装置は、算術演算、論理演算、シフト演算を行う演算手段を有し、各演算手段に対して定義されている命令コードの発行により前記各演算を実行する一般演算処理手段と、所定のクロックサイクルで特定の演算処理を実行する特殊演算処理手段と、前記特定の演算処理に対して定義されている命令コードの発行に基づいて、前記特殊演算処理手段での演算処理の実行および一時停止を制御する特殊演算制御手段とを備え、前記特殊演算処理手段が一時停止するクロックサイクル数を、特定の命令コードを使用して任意の値に設定するので、処理の高速実行を可能とすると共に、処理内容の修正時の実行時間の悪化を防ぐことができる。
The arithmetic processing apparatus of the present invention includes arithmetic operation means for performing arithmetic operation, logical operation, and shift operation, and general arithmetic processing means for executing each operation by issuing an instruction code defined for each operation means; , Special arithmetic processing means for executing specific arithmetic processing in a predetermined clock cycle, and execution of arithmetic processing in the special arithmetic processing means based on the issuance of an instruction code defined for the specific arithmetic processing And special arithmetic control means for controlling suspension, and the number of clock cycles in which the special arithmetic processing means pauses is set to an arbitrary value using a specific instruction code , enabling high-speed processing execution In addition, it is possible to prevent the execution time from being deteriorated when the processing content is corrected.
実施の形態1.
図1は、この発明の実施の形態1による演算処理装置を示す構成図であるが、この説明に先立ち、一般的な演算処理装置について説明する。
FIG. 1 is a block diagram showing an arithmetic processing apparatus according to
一般的なマイクロプロセッサは、命令コードと呼ばれるデータをプロセッサが取り込み、これを解釈し、各命令コードに対して定義された動作を実行することにより、演算動作を行う形態となっている。命令コードは命令メモリ上に置かれており、命令メモリ上の各命令コードに対してはアドレスが割り当てられており、アドレスの昇順に命令コードが読み込まれ(フェッチ動作)、命令コードが解釈され(デコード動作)、命令コードが意味する演算が実行(演算動作)される。また、命令コードとしては、データメモリからのデータの取り込み(ロード動作)、データの書込み(ストア動作)も定義されており、これらの命令コードを発行した場合にはデータメモリアクセスが行われると共に、結果がレジスタもしくはデータメモリに書き込まれる。 A general microprocessor is configured to perform arithmetic operations by fetching data called instruction codes by the processor, interpreting them, and executing operations defined for the respective instruction codes. The instruction code is placed on the instruction memory, and an address is assigned to each instruction code on the instruction memory, the instruction codes are read in the ascending order of addresses (fetch operation), and the instruction codes are interpreted ( (Decoding operation), the operation indicated by the instruction code is executed (arithmetic operation). In addition, as the instruction code, fetching of data from the data memory (load operation) and writing of data (store operation) are also defined. When these instruction codes are issued, the data memory is accessed, The result is written to a register or data memory.
図2は、一般的なマイクロプロセッサのパイプラインステージを示した図である。
一般的なマイクロプロセッサは、命令コードの読み込み、解釈、演算実行等が、独立して動作する機能ブロック(“ステージ”と呼ばれる)で構成されており、これらがパイプライン動作することによって、効率的に処理を実行することが可能となる。図2に示すマイクロプロセッサは、命令フェッチ(IF)1、命令デコード(D)2、命令実行(EX)3、メモリアクセス(MA)4、結果ストア(S)5、命令メモリ6、レジスタブロック7、データメモリ8を備えている。
FIG. 2 is a diagram showing a pipeline stage of a general microprocessor.
A general microprocessor is composed of functional blocks (called “stages”) that operate independently to read, interpret, and execute instruction codes. These are efficiently operated by pipeline operation. It is possible to execute the process. The microprocessor shown in FIG. 2 includes an instruction fetch (IF) 1, an instruction decode (D) 2, an instruction execution (EX) 3, a memory access (MA) 4, a result store (S) 5, an
これら機能ブロックは、一般に次のような機能を有している。
命令メモリ6:命令コードが格納されているメモリ。
レジスタブロック7:演算実行で一時的に使用するデータ格納領域。
データメモリ8:演算の入力データ、出力データを格納するメモリ。
命令フェッチ1:命令メモリ6より命令をフェッチするステージ。
命令デコード2:命令をデコードするステージ。演算命令の場合、ソース、デスティネーションレジスタの利用可能性のチェックを行い、利用可能なら読み出す。利用可能でなければ利用可能となるまで待つ。
命令実行3:演算実行。
メモリアクセス4:ロードストア命令の場合、データメモリアクセスを行う。演算命令ではこのステージは何もしない。
結果ストア5:結果の格納と命令の後処理。
These functional blocks generally have the following functions.
Instruction memory 6: Memory in which instruction codes are stored.
Register block 7: a data storage area temporarily used for execution of operations.
Data memory 8: A memory for storing operation input data and output data.
Instruction fetch 1: a stage for fetching an instruction from the
Instruction decode 2: A stage for decoding an instruction. In the case of an operation instruction, the availability of the source and destination registers is checked, and if it is available, it is read. If not available, wait until it becomes available.
Instruction execution 3: Calculation execution.
Memory access 4: In the case of a load / store instruction, data memory access is performed. This stage does nothing for arithmetic instructions.
Result store 5: Store results and post-process instructions.
また、命令実行3(EXステージ)では、演算を実行するために必要となる演算回路が実装されている。そのような演算回路としては、例えば、
算術演算回路(算術加算、算術減算、算術乗算、算術除算、算術シフト演算)
論理演算回路(論理和、論理積、排他論理和、論理シフト演算)
などが存在している。
また、レジスタブロック7上では、一般的に複数のレジスタが存在している。説明のため、ここではレジスタがr0からr31までの32本が存在しているとする。また、これらレジスタは、演算等で一般的に使用されるレジスタであるため、一般に「汎用レジスタ」と呼ばれる。
これらのブロックが並列動作することにより、マイクロプロセッサは演算を実行している。その演算実行の動作を、命令コードを元に説明する。
In the instruction execution 3 (EX stage), an arithmetic circuit necessary for executing an operation is mounted. As such an arithmetic circuit, for example,
Arithmetic operation circuit (arithmetic addition, arithmetic subtraction, arithmetic multiplication, arithmetic division, arithmetic shift operation)
Logical operation circuit (logical sum, logical product, exclusive logical sum, logical shift operation)
Etc. exist.
In general, a plurality of registers exist on the
As these blocks operate in parallel, the microprocessor executes operations. The operation execution operation will be described based on the instruction code.
図3は、命令メモリ6に設定された命令コードの説明図である。
また、図4は、このような命令コードの説明図である。
これらの命令コードは、MIPS(Microprocessor without Interlocked Pipeline Stages)プロセッサと呼ばれるプロセッサで採用されている一般的な命令コードである。各命令コードは命令メモリ6上で、命令アドレスで指し示される位置に格納されている。尚、図4において、GPRは、General Purpose Register(汎用レジスタ)である。
FIG. 3 is an explanatory diagram of instruction codes set in the
FIG. 4 is an explanatory diagram of such an instruction code.
These instruction codes are general instruction codes adopted in a processor called a MIPS (Microprocessor without Interlocked Pipeline Stages) processor. Each instruction code is stored in the
図3に示す命令コードを解釈し動作するプロセッサの処理の流れとしては、最初に命令アドレス0000の命令コード[LW r8,0(r1)]が読み込まれ、実行される。この命令コードでは、汎用レジスタr1上に保持されているデータメモリ8上のアドレスに対してオフセット値0が足し合わされたデータメモリ8上のアドレス値が生成され、データメモリ8上で当該アドレスに保持されている4バイトのデータが汎用レジスタr8上に格納される。
次に、アドレス0004の[LW r9,4(r1)]の命令コードが実行される。この命令コードの実行により、アドレス値(r1+4)のデータメモリ8上の4バイトデータが汎用レジスタr9に格納される。
As the processing flow of the processor that operates by interpreting the instruction code shown in FIG. 3, the instruction code [LW r8, 0 (r1)] at the
Next, the instruction code [LW r9, 4 (r1)] at
次に、命令アドレス0008の命令コード[MUL r10,r8,r9]が実行され、汎用レジスタr8と汎用レジスタr9に格納されている値を算術乗算した結果が汎用レジスタr10に格納される。
次に、命令アドレス000cの命令コード[LW r11,8(r1)]が実行され、アドレス値(r1+8)のデータメモリ8上のデータが汎用レジスタr11上に格納される。
次に、命令アドレス0010の[ADD r12,r10,r11] が実行され、汎用レジスタr10と汎用レジスタr11に格納されている値を算術加算した結果が、汎用レジスタr12に格納される。
Next, the instruction code [MUL r10, r8, r9] at the
Next, the instruction code [LW r11,8 (r1)] of the
Next, [ADD r12, r10, r11] at the
次に、命令アドレス0014の[LW r13,12(r1)]が実行され、アドレス値(r1+12)のデータメモリ上のデータが汎用レジスタr13上に格納される。
次に、命令アドレス0018の[SUB r14,r13,r12]が実行され、汎用レジスタr13と汎用レジスタr12に格納されている値から算術減算である(r13−r12)が演算され、演算結果が汎用レジスタr14上に格納される。
次に、命令アドレス001cの[SW r14,16(r1)]が実行される。
本命令コードの実行により、アドレス値(r1+16)で示されるデータメモリ8上の領域に汎用レジスタr14の値が格納される。
このようにして命令メモリ6上の命令コードを元にプロセッサ上で処理が実行され、結果がデータメモリ8上に格納されるという動作を連続して実行されるように、一般的なプロセッサは構成されている。
Next, [LW r13, 12 (r1)] of the
Next, [SUB r14, r13, r12] at the
Next, [SW r14, 16 (r1)] of the
By executing this instruction code, the value of the general-purpose register r14 is stored in the area on the
In this way, the general processor is configured so that the processing is executed on the processor based on the instruction code on the
また、各演算の実行を行うためにプロセッサ内部の命令実行3(EXステージ)に実装されている演算回路は、一般的にはプロセッサ動作の基準となる動作クロックの1サイクルで実行されるように、各演算回路の遅延時間は設定されているが、遅延時間が1サイクル以上必要となるものでは、複数サイクルで演算が実行されるような演算回路となっている。
例えば、あるプロセッサでは、IEEE754規格における64ビット表現された浮動小数点の演算を行う演算回路において、乗算回路(64ビット浮動小数点乗算)は5サイクルで結果を出力するようになっており、また加算回路(64ビット浮動小数点乗算)は4サイクルで結果を出力するようになっている。
In addition, the arithmetic circuit mounted in the instruction execution 3 (EX stage) in the processor for executing each operation is generally executed in one cycle of the operation clock that is a reference of the processor operation. Although the delay time of each arithmetic circuit is set, if the delay time is one cycle or more, the arithmetic circuit is such that the arithmetic is executed in a plurality of cycles.
For example, in a certain processor, in an arithmetic circuit that performs 64-bit floating point arithmetic in the IEEE 754 standard, a multiplication circuit (64-bit floating point multiplication) outputs a result in five cycles, and an addition circuit (64-bit floating point multiplication) outputs a result in 4 cycles.
例えば、64ビット浮動小数点乗算を行った後、64ビット浮動小数点加算を行うような、
D=A×B+C
という演算を行う場合、上記の乗算と加算を使用すれば、5サイクル+4サイクルの計9サイクルで演算結果を取得することが可能である。このような、乗算した結果に加算を行うような演算は一般的であり、“積和演算”と呼ばれ多用されることが多い。本演算に対しては積和演算に特化した演算回路が実装されているプロセッサも多く、例えば上記でサイクル数を参考にしているプロセッサでは、積和演算回路は5サイクルで演算結果を取得できるようになっている。
このように、ある特定処理を高速に実行したい場合、その演算を専用に実行する演算回路を開発しプロセッサ中に実装した方が、より短いサイクル数で演算を完了することが可能である。そのため、特定処理の実行を主とするプロセッサでは、処理内容に特化した演算処理を、できるだけ高速に(短い実行サイクル数で)実行出来るよう、処理内容特化の演算回路が実装されることが多い。
For example, after performing 64-bit floating point multiplication, performing 64-bit floating point addition,
D = A × B + C
When the above calculation is performed, if the above multiplication and addition are used, the calculation result can be acquired in a total of 9 cycles of 5 cycles + 4 cycles. Such an operation that adds to the result of multiplication is common and is often referred to as “product-sum operation” and is often used. Many processors are equipped with arithmetic circuits specialized for product-sum operations for this operation. For example, in a processor that refers to the number of cycles as described above, the product-sum operation circuit can acquire an operation result in five cycles. It is like that.
As described above, when it is desired to execute a specific process at high speed, it is possible to complete the operation in a shorter number of cycles by developing an operation circuit dedicated to the operation and mounting it in the processor. For this reason, in a processor that mainly executes specific processing, a processing content-specific arithmetic circuit may be mounted so that arithmetic processing specialized for the processing content can be executed as fast as possible (with a short number of execution cycles). Many.
そのような演算例として、例えばまとまった
リスト1:
d=(a×b)+c h=((d>e)?e:((d<f)?f:d))>>g
k=(h+i)>>j
という演算処理を特定処理として高速に実行したい場合には、この全体の演算データフローを直接的に実現する演算回路を考える。その演算回路の遅延時間を、クロックの周期時間で分割することにより、複数サイクルで動作する演算回路として実現し、プロセッサ上に実装することになる。
尚、上記処理において、
×は算術乗算
+は算術加算
(A>B)は比較演算(もしAがBよりも大きければ真、そうでなければ偽)
(C<D)は比較演算(もしCがDよりも小さければ真、そうでなければ偽)
((X)?Y:Z)は選択演算(もしXが真ならばYを、偽ならばZを返す)
>>は算術右シフト
を示している。
As an example of such an operation, for example, a complete list 1:
d = (a × b) + ch = ((d> e)? e: ((d <f)? f: d)) >> g
k = (h + i) >> j
In the case where it is desired to execute the arithmetic processing as a specific processing at high speed, an arithmetic circuit that directly realizes the entire arithmetic data flow is considered. By dividing the delay time of the arithmetic circuit by the clock cycle time, the arithmetic circuit is realized as an arithmetic circuit operating in a plurality of cycles and mounted on the processor.
In the above process,
X is arithmetic multiplication + is arithmetic addition (A> B) is a comparison operation (true if A is greater than B, false otherwise)
(C <D) is a comparison operation (true if C is less than D, false otherwise)
((X)? Y: Z) is a selection operation (if X is true, Y is returned; if false, Z is returned)
>> indicates arithmetic right shift.
図5は、この演算を表現した演算データフローを示す説明図である。
図において、aからjと記載されているブロックは、演算を実行するために必要となる入力データを示しており、kが記載されたブロックは演算結果の出力データを示している。また、図中の円で囲まれた部分は、各々内部に記載された演算を行う回路を示している。更に、SELと記載されたブロックは、データの選択を行う、いわゆるセレクタを示しており、SELブロックへの入力となる“B”と記載された部分で取得する真偽値に対し、もし値が真(1)ならば“T”と記載された入力の値を結果として出力し、偽(0)ならば“F”と記載された入力の値を結果として出力することを示しており、上記処理中の選択演算に対応している。
FIG. 5 is an explanatory diagram showing a calculation data flow expressing this calculation.
In the figure, blocks indicated by a to j indicate input data necessary for executing an operation, and a block indicated by k indicates output data of an operation result. Also, the portions surrounded by circles in the figure indicate circuits that perform operations described therein. Further, the block described as SEL indicates a so-called selector for selecting data, and if the value is compared with the true / false value acquired in the portion described as “B” which is an input to the SEL block, If true (1), the value of the input described as “T” is output as a result, and if false (0), the value of the input described as “F” is output as a result. It corresponds to the selection operation being processed.
このようなリスト1に示した演算データフローを、一般的な演算を行う命令コードで実行する場合、必要となる全命令コードは図6に示す通りとなる。尚、図6における各命令コードの説明は図4に記載された通りである。また、図6の説明において、LW命令およびSW命令における、例えば[b]、[a]等は、各々データbおよびaが格納されているデータメモリ上のアドレスを示している。また、汎用レジスタr0は、値が0となっている事を前提としている。このように一般的な命令コードで処理を実行する場合は19ステップ必要となり、多くの演算時間(実行サイクル数)がかかることになる。そこで、本発明では、複数のステップを同時に行う回路を設け、この回路を用いて演算処理を実行する。
When the operation data flow shown in the
図7は、図5に示した演算データフローの分割例を示す説明図である。
即ち、図7は、図5の演算データフローから、演算回路の遅延時間をクロック時間(クロック周波数の逆数)で分割し、複数サイクルでの特殊演算回路を構成することを表している。図7において、サブデータフロー71、サブデータフロー72およびサブデータフロー73が、元の演算データフローの遅延時間をクロック時間で分割した結果、三つの演算回路で構成する結果となり、分割された結果の回路部位を示している。
FIG. 7 is an explanatory diagram showing a division example of the calculation data flow shown in FIG.
That is, FIG. 7 shows that the special arithmetic circuit is configured in a plurality of cycles by dividing the delay time of the arithmetic circuit by the clock time (reciprocal of the clock frequency) from the arithmetic data flow of FIG. In FIG. 7, the
このような特殊処理回路をプロセッサに搭載すれば、同じ処理内容を一般的な命令コードで実行する場合に比べて、非常に短い時間で処理を完了することが可能となる。
しかしながら、処理内容に特化した演算回路をプロセッサ内部に実装した後、処理内容に修正が発生した場合に同じ演算回路で処理が実行出来ないという問題が存在する。もし実装した回路が、全く使用不可能となれば、その処理内容を実行するためには、先述の一般的な命令コードを使用して演算を行う必要が発生するため、処理時間が長大化する。
その問題を防ぐ方策の一例としては、処理内容の将来的な修正内容を見通して回路実装することが考えられるが、どのような修正内容が発生するか予測が困難であるため実現すべき回路の想定が困難であるという問題や、回路に汎用性を持たせれば遅延時間が長くなり回路の演算時間に悪影響をもたらすという問題がある。更に、回路規模が大きくなるためプロセッサの実現コストが高くなるという問題もある。
If such a special processing circuit is installed in the processor, the processing can be completed in a very short time compared to the case where the same processing content is executed by a general instruction code.
However, there is a problem that processing cannot be executed by the same arithmetic circuit when the processing contents are corrected after the arithmetic circuit specialized for the processing contents is mounted inside the processor. If the implemented circuit becomes completely unusable, it will be necessary to perform an operation using the above-mentioned general instruction code in order to execute the processing contents, so the processing time will be lengthened. .
As an example of a measure to prevent the problem, it is conceivable to mount the circuit in anticipation of future correction contents of the processing contents, but it is difficult to predict what correction contents will occur, so it is difficult to predict the circuit to be realized. There is a problem that the assumption is difficult, and there is a problem that if the circuit has general versatility, the delay time becomes long and the calculation time of the circuit is adversely affected. Furthermore, since the circuit scale is increased, there is a problem that the implementation cost of the processor is increased.
そこで、本発明では、それらの問題を回避するために、用途特化の、複数サイクルで実行される特殊演算処理手段を実装し、この特殊演算処理手段を制御する特殊演算制御手段に指定した任意の実行サイクルで演算を停止させる機能を持たせると共に、一般的なプロセッサの命令コードを発行することにより、用途特化の特殊演算処理手段の途中結果に対し修正を加え、再度、特殊演算処理制御手段に対し、用途特化の特殊演算処理手段の実行を再開する機能を定義している。その全体像を示したものが図1であり、以下、図1を用いて説明する。 Therefore, in the present invention, in order to avoid these problems, the special arithmetic processing means that is executed in a plurality of cycles, which is specialized for the application, is implemented, and an arbitrary specified as the special arithmetic control means for controlling the special arithmetic processing means. In addition to having a function to stop the computation in the execution cycle, and by issuing a general processor instruction code, the intermediate results of the special-purpose processing means specialized for the application are corrected and the special arithmetic processing control is performed again. The function for resuming the execution of the special processing means for application specific is defined for the means. The whole image is shown in FIG. 1 and will be described below with reference to FIG.
図1において、特殊演算回路9は、特定の演算処理を実行する演算回路であり、特殊演算制御手段9aと特殊演算処理手段9bを備えている。特殊演算制御手段9aは、特殊演算処理手段9bの実行と停止を制御する手段であり、特殊演算処理手段9bは、特定の演算処理を実行する手段であり、これらの詳細については後述する。また、レジスタブロック7と特殊演算回路9との間、データメモリ8と特殊演算回路9との間、及び命令デコード(D)2と特殊演算回路9との間には、それぞれ専用通信路10,11,12が設けられている。
また、命令フェッチ(IF)1〜結果ストア(S)5は、図2に示した一般的なマイクロプロセッサの機能ブロックと同様であり、これら機能ブロックによって一般演算手段が構成されている。
In FIG. 1, a special
The instruction fetch (IF) 1 to result store (S) 5 are the same as the functional blocks of the general microprocessor shown in FIG. 2, and these functional blocks constitute general arithmetic means.
図8は、特殊演算回路9への接続状態の詳細を示すブロック図である。
図において、通信路101aは、レジスタブロック7に対する要求信号とレジスタを指定するインデックス信号を送る通信路を示しており、通信路101bは、通信路101aに対応して指定したレジスタから読み出された値を特殊演算回路9に送るための通信路を示している。また、通信路102aと通信路102b、通信路103aと通信路103bは、それぞれ通信路101aと通信路101bと同じ対応を示しており、特殊演算回路9は、レジスタブロック7から三つのレジスタ値を同時に取り込めるよう構成されている。尚、図示例ではレジスタブロック7からのデータ読み込みを行う通信路を3セット用意しているが、3セットに限定されるものではない。
FIG. 8 is a block diagram showing details of the connection state to the special
In the figure, a
また、通信路104aは、レジスタブロック7に対するレジスタ値書込み用の要求信号とレジスタを指定するインデックス信号を送る通信路を示しており、通信路104bは、通信路104aに対応して指定したレジスタに対して書き込む値を特殊演算回路9からレジスタブロック7に通信するための通信路を示している。尚、図示例ではレジスタブロック7へのデータ書込みを行う通信路を1セット用意しているが、1セットに限定するものではない。
A
また、通信路105aは、データメモリ8に対するデータ値読み込み用の要求信号とデータメモリ8上でのアドレスを指定するアドレス信号を送る通信路を示しており、通信路105bが通信路105aに対応して指定したアドレスから読み出された値を特殊演算回路9に通信するための通信路を示している。そして、通信路106aと通信路106b、通信路107aと通信路107bは、通信路101aと通信路101bと同じ対応を示しており、特殊演算回路9はデータメモリ8から、三つのデータ値を同時に取り込めるようにしている。尚、図示例ではデータメモリ8からデータ読み込みを行う通信路を3セット用意しているが、3セットに限定するものではない。
A
また、通信路108aは、データメモリ8に対するデータ値書込み用の要求信号とデータを指定するアドレス信号を送る通信路を示しており、通信路108bが通信路108aに対応して指定したアドレスに対して書き込む値を特殊演算回路9からデータメモリ8に通信するための通信路を示している。尚、図示例ではデータメモリ8へのデータ書込みを行う通信路を1セット用意しているが、1セットに限定するものではない。
A
更に、通信路109aは、命令デコード2から特殊演算回路9に送られる開始信号を送る通信路、通信路109bは、命令デコード2から特殊演算回路9に送られる一時停止サイクル数を送る通信路、通信路109cは、命令デコード2に特殊演算回路9から送られる演算実行中信号を送る通信路をそれぞれ示している。
Further, the
図9は、特殊演算回路9の詳細を示すブロック図である。
特殊演算制御手段9aは、命令デコード2との通信路109a〜109cが接続されると共に、レジスタブロック7との間に通信路101a〜104aが、データメモリ8との間に通信路105a〜108aがそれぞれ接続されている。また、特殊演算制御手段9aは、一時停止サイクル保持部901と実行サイクル保持部902を備えている。一時停止サイクル保持部901は、命令デコード2から通信路109bを介して指定された一時停止サイクル数を保持するものであり、実行サイクル保持部902は、特殊演算処理手段9bの実行時において、現在、何サイクル目を実行しているかを保持する機能ブロックである。
FIG. 9 is a block diagram showing details of the special
The special arithmetic control means 9 a is connected to
特殊演算回路9において、特殊演算処理手段9bは、特殊演算サブ回路911,912,913から構成されている。これらの特殊演算サブ回路911,912,913は、それぞれ、図7におけるサブデータフロー71,72,73の機能を実現する回路であり、それぞれの回路が、レジスタブロック7との通信路101b〜104b、データメモリ8との通信路105b〜108bと接続されている。また、特殊演算サブ回路911,912,913と特殊演算制御手段9aとは、それぞれ通信路110〜112によって接続され、これら通信路110〜112を介して演算実行信号が与えられるようになっている。
In the special
次に、このように構成された特殊演算回路9の動作について説明する。
特殊演算制御手段9aは、独立した二つの動作で構成されている。一つは、通信路109bを介して、命令デコード2から指定される一時停止サイクル数を一時停止サイクル保持部901に保持する動作である。もう一つは、通信路109aを介して、命令デコード2から指定される開始要求に対応して、特殊演算サブ回路911,912,913を動作させ、その動作に必要となる各種信号を駆動する動作である。以下、これらの動作を図10に示すフローチャートを用いて説明する。
Next, the operation of the special
The special arithmetic control means 9a is composed of two independent operations. One is an operation of holding the number of pause cycles designated by the
尚、本実施の形態では、それぞれの特殊演算サブ回路911,912,913は、各演算実施時に、レジスタブロック7およびデータメモリ8からの入力値通信路である通信路101b〜103bおよび通信路105b〜107bのどの通信路から値を取り込み、レジスタブロック7およびデータメモリ8への出力値通信路である通信路104bおよび通信路108bのどの通信路に値を出力すれば良いかが固定的に実現されているとする。
また、特殊演算制御手段9aでは、特殊演算サブ回路911,912,913をどの順番に実行させれば良いかが予め固定的に実現されているとし、更に、特殊演算サブ回路911,912,913を実行させる際に、レジスタブロック7から、どのインデックスで指定される値を取り込めば良いか、また、データメモリ8から、どのアドレスで指定される値を取り込めば良いかが、予め固定的に実現されているとする。
In the present embodiment, the
Further, in the special arithmetic control means 9a, it is assumed that the order in which the special
図10のフローチャートにおいて、特殊演算回路9の処理が開始されると、特殊演算制御手段9aは、先ず、実行サイクル保持部902のサイクル数を0に設定する(ステップST1)。その後は、ステップST2において、通信路109aからの演算開始信号がONになるまで、処理の開始待ちを行う。演算開始信号がONとなると、実行サイクル保持部902のサイクル数に1を加算する(ステップST3)。次に、実行サイクル保持部902の値と一時停止サイクル保持部901の値が同じかどうかを比較し(ステップST4)、もし同じであれば、演算を一時停止する(ステップST5)とし、一時停止サイクル保持部901の値が変更されるまでステップST4、ステップST5をループする。
In the flowchart of FIG. 10, when the processing of the special
一方、ステップST4において、実行サイクル保持部902の値と一時停止サイクル保持部901の値が異なれば(一時停止サイクル保持部901の値が変更されれば)、ステップST6の処理に遷移する。ステップST6では、演算完了のサイクル数に到達しているかを判定し、そうであれば、ステップST7で一時停止サイクル保持部901を0に設定し、ステップST1の処理に遷移する。一方、ステップST6で、演算完了のサイクル数に到達していなければ、ステップST8の処理に遷移して、現在の実行サイクルに対応する演算回路を実行し、ステップST3に戻る。
On the other hand, if the value of the execution
次に、各演算サイクルでどのような処理が実行されるかについての詳細を説明する。
図11は、各演算サイクルの状態遷移を示す説明図である。
先ず、最初のサイクルであるサイクル1では、
データメモリ8からの入力用通信路105aで、データ“a”の値を取得するために必要となる要求およびアドレス信号を、
データメモリ8からの入力用通信路106aで、データ“b”の値を取得するために必要となる要求およびアドレス信号を、
データメモリ8からの入力用通信路107aで、データ“c”の値を取得するために必要となる要求およびアドレス信号を、
各々発行する。
データメモリ8からは次のサイクルで各データ値を取得可能であるとする。
Next, details of what processing is executed in each calculation cycle will be described.
FIG. 11 is an explanatory diagram showing state transition of each calculation cycle.
First, in
A request and an address signal necessary for acquiring the value of the data “a” on the
A request and an address signal necessary for acquiring the value of the data “b” on the
A request and an address signal necessary for acquiring the value of the data “c” on the
Issue each.
It is assumed that each data value can be acquired from the
サイクル2では、“a”、“b”、“c”の値を使用可能であるため、特殊演算サブ回路911で演算を実行(通信路110の信号をON)すると共に、結果となる“d”の値を、通信路104bを介してレジスタブロック7に出力する。また、同時に、次のサイクル3で必要となる“e”、“f”、“g”の値を取得するための要求信号およびアドレスを通信路105a〜107aを介してデータメモリ8に発行する。
In
サイクル3では、“e”、“f”、“g”の値と、“d”の値を使用可能であるため、特殊演算サブ回路912で演算を実行(通信路111の信号をON)すると共に、結果となる“h”の値を、レジスタブロック7に出力する。また同時に、次のサイクル4で必要となる“i”、“j”の値を取得するための要求信号およびアドレスをデータメモリ8に対して発行する。
In
サイクル4では、“i”、“j”の値と、“h”の値を使用可能であるため、特殊演算サブ回路913で演算を実行(通信路112の信号をON)すると共に、結果となる“k”の値を、通信路108bを介してデータメモリ8に出力する。
以上のように、特殊演算制御手段9aは特殊演算処理手段9bの制御を行う。尚、特殊演算処理手段9bが演算を実行中、即ち、演算開始待ちでなく、もしくは一時停止でない時は、通信路109cの特殊演算回路実行中信号がONとなり、演算中である事を示す。
In
As described above, the special
次に、命令デコード2から見て、どのように特殊演算回路9の動作を制御するかについて、処理内容(リスト1)に修正が発生した状況を含め説明する。
通常のリスト1に対応した処理を、特殊演算回路9を使用して演算させたい場合には、対応する命令コード、例えば、
SPMCI
を定義し、本命令コードを発行する事で行う事とする。
本命令コードは、通常の命令コードと同様に、命令メモリ6上に保持され、本命令コードを命令フェッチ1でフェッチし、命令デコード2でデコードする事により、特殊演算回路9に対する演算実行処理であることが解釈され、特殊演算回路9に対する開始信号が通信路109aを介して発行される。これにより、特殊演算回路9は実行を開始する。
Next, how to control the operation of the special
When processing corresponding to the
SPMCI
This is done by issuing this command code.
This instruction code is held in the
尚、先述の通り、特殊演算回路9が演算を実行中の場合、通信路109cからの特殊演算回路実行中信号がONとなり、その間、命令デコード2は停止したままとなる。
今、リスト1で示された処理内容を下記のように修正し、実行したいとする。
リスト2:
d=(a*b)+c
h=((d>e)?e:((d<f)?f:d))<<X
k=(h+i)>>j
As described above, when the special
Now, assume that the processing contents shown in the
Listing 2:
d = (a * b) + c
h = ((d> e)? e: ((d <f)? f: d)) << X
k = (h + i) >> j
これは、リスト1に比べてhを求める際の算術シフトが、値g分の右シフトから、値X分の左シフトに変更されているというような修正である。
元々、リスト2の処理内容を実行可能な形態として特殊演算回路9を構成していないため、リスト2に書かれた処理内容を、そのまま演算回路で実行することは不可能である。
しかしながら、この修正された処理内容は、
d=(a*b)+c
h=((d>e)?e:((d<f)?f:d))<<0
h=h<<X
k=(h+i)>>j
というように、値gを0に設定し、その結果hを値Xだけ算術左シフトを行い、それをhに上書きし、再度k導出の演算を実行すれば修正した処理内容を実行することが可能である。これは、データメモリ8上の“g”の値を0にセットし、特殊演算回路9を3サイクル目で停止(特殊演算サブ回路912実行後に停止)し、通常命令における算術左シフト命令(SLA)を発行した後、特殊演算回路9を実行再開(特殊演算回路の4サイクル目を実行。特殊演算サブ回路913を実行)することにより、本修正された処理内容を実行する事が可能である。
This is a modification in which the arithmetic shift for obtaining h as compared with the
Originally, the special
However, this modified process is
d = (a * b) + c
h = ((d> e)? e: ((d <f)? f: d)) << 0
h = h << X
k = (h + i) >> j
As described above, if the value g is set to 0, the result h is arithmetically shifted to the left by the value X, overwritten with h, and the k-derivative operation is executed again, the modified processing content can be executed. Is possible. This is because the value of “g” on the
このような処理を実行するために、特殊演算回路9に対する一時停止サイクル数指定を行える命令コードを、例えば、
MCSTP n
のように定義する。ここで、nは即値データを表し、特殊演算回路9に対して、nサイクル目で処理を一時停止させる事を指示する命令である。
In order to execute such processing, an instruction code that can specify the number of pause cycles for the special
MCSTP n
Define as follows. Here, n represents immediate data, and is an instruction for instructing the special
本命令コードが、命令デコード2で解釈され、特殊演算回路9に対して、通信路109bを介して、一時停止サイクル保持部901に設定される。この命令コードを発行後に、先述のSPMCI命令コードを発行すれば、所望の動作が実現される。その様子を図12の命令コード列を元に説明する。尚、ここで、特殊演算回路9のサイクル2終了後の結果データとなる“h”は、レジスタブロック7中のレジスタr5に保持されているとする。
This instruction code is interpreted by the
図12は、本実施の形態の演算処理装置における命令コード列の説明図である。
通常のSPMCI命令コードによる、特殊演算処理実行は、命令アドレスの0104の発行により実行される。ここで、命令アドレス0100および0108および0124の“...”は、任意の通常命令コードの発行を示している。
FIG. 12 is an explanatory diagram of an instruction code string in the arithmetic processing unit according to this embodiment.
Execution of special arithmetic processing by a normal SPMCI instruction code is executed by issuing an
修正された特殊処理内容を実行したい場合には、命令アドレス010c以降のように命令コードを記述するようになる。
先ず、命令アドレス010cの命令コードにより、特殊演算回路9に対して一時停止サイクル数として3を指定する。
その後、命令アドレス0110の命令コードにより、“X”の値をレジスタr3に取り込んでおく。
その後、命令アドレス0114の命令コードにより、“g”に対して0を設定する。ここではレジスタr0の値が0であるとする。
その後、命令アドレス0118のSPMCI命令により特殊演算回路9が動作を開始する。動作開始後、一時停止サイクル数3で停止するように設定されているため、3サイクル目の処理発行前に特殊演算回路9は停止し、通信路109cの特殊演算回路実行中信号がONからOFFとなる。
In order to execute the modified special processing content, an instruction code is described as in the instruction address 010c and thereafter.
First, 3 is designated as the number of pause cycles for the special
Thereafter, the value of “X” is fetched into the register r3 by the instruction code of the
Thereafter, 0 is set to “g” by the instruction code of the
Thereafter, the special
命令デコード2は、特殊演算回路実行中信号がOFFならば次の命令コードが発行可能であるため、命令アドレス011cの命令が発行される。先述の通り、リスト2中の演算結果“h”はレジスタr5に保持されているため、その値がレジスタr3の値である“X”ビットほど、左にシフトされる。
その後、命令アドレス0120の命令コードMCSTP 0が発行される。これにより、特殊演算回路9が処理を完了するまでは、図10のフローチャートにおけるステップST4がYESとならないため、特殊演算回路9の残りの処理が実行される。
実行完了後、特殊演算回路実行中信号がONからOFFとなるため、命令アドレス0124以降の命令コードが実行されることとなる。
The instruction decode 2 can issue the next instruction code if the special arithmetic circuit execution signal is OFF, and therefore the instruction at the
Thereafter, the
After the execution is completed, the special arithmetic circuit execution signal changes from ON to OFF, so that the instruction code after the
このように、本実施の形態では、処理内容に特化した演算に対しては、専用の特殊演算回路9により高速実行が可能であると共に、処理内容に修正が発生した場合でも、大きく処理時間を落とすことなく、実装されている特殊演算回路9を使用して、修正後の処理内容を実行することが可能となる。
尚、本実施の形態では、特定のリスト1、リスト2のような処理内容について説明を行ったが、特殊演算回路とする処理内容については、リスト1、リスト2に制約するものではない。
また、本実施の形態では、特殊演算処理手段9bとして三つの特殊演算サブ回路911,912,913で構成したが、この数に限定されるものではなく、一つ以上の値であればよい。
As described above, in the present embodiment, the processing specialized for the processing content can be executed at high speed by the dedicated special
In the present embodiment, the processing contents such as the
In the present embodiment, the special arithmetic processing means 9b is constituted by the three special
更に、本実施の形態では、特殊演算回路9が実行する処理内容として、ある特定の一つの処理内容で説明したが、特殊演算回路9上に実装する処理内容として、複数の独立した処理内容を一つにまとめたものでも良い。そのような場合においては、上述した特殊演算回路9の実行開始を指示する命令コード“SPMCI”にオペランド(引数)を与え、例えば、
SPMCI m
とし、引数のmを複数の独立した処理内容から一つを選択するID番号とし、mの値を変えることにより、複数の処理内容から任意の処理内容を選択することも可能である。また、その場合、特殊演算制御手段9aは共有化して使用することが可能である。
Furthermore, in the present embodiment, the processing content executed by the special
SPMCI m
It is also possible to select an arbitrary processing content from a plurality of processing contents by changing m of the argument to an ID number for selecting one from a plurality of independent processing contents and changing the value of m. In that case, the special arithmetic control means 9a can be shared.
以上のように、実施の形態1の演算処理装置によれば、算術演算、論理演算、シフト演算を行う演算手段を有し、各演算手段に対して定義されている命令コードの発行により各演算を実行する一般演算処理手段と、所定のクロックサイクルで特定の演算処理を実行する特殊演算処理手段と、特定の演算処理に対して定義されている命令コードの発行に基づいて、特殊演算処理手段での演算処理の実行および一時停止を制御する特殊演算制御手段とを備えたので、高速に処理を実行出来ると共に、修正が発生した場合に、部分的に演算結果を修正する事が可能であり、処理内容修正後の処理の実行時間が長大化することを避けることができる。 As described above, according to the arithmetic processing apparatus of the first embodiment, the arithmetic processing unit has arithmetic means for performing arithmetic operation, logical operation, and shift operation, and each operation is performed by issuing an instruction code defined for each arithmetic means. General arithmetic processing means for executing a specific arithmetic processing means in a predetermined clock cycle, and special arithmetic processing means based on the issuance of an instruction code defined for the specific arithmetic processing Special processing control means that controls the execution and pause of arithmetic processing in the system, so that processing can be executed at high speed, and when corrections occur, it is possible to partially correct the arithmetic results Therefore, it is possible to avoid an increase in the execution time of the processing after the processing content correction.
また、実施の形態1の演算処理装置によれば、特殊演算処理手段が一時停止するクロックサイクル数を、特定の命令コードを使用して任意の値に設定するようにしたので、実装する特殊演算処理手段の形態によらず、特殊演算処理手段の任意のサイクル後の結果に対し、一般命令で補正をかけることが可能となるため、特殊演算処理手段の処理内容の実装と、特殊演算制御手段の実装とを独立して実現可能となり、本演算処理装置の実装開発が容易になるという効果と共に、どのような特殊演算処理手段の処理内容に対しても、一時停止用の命令コードが一つで済み、命令のデコード処理に負荷をかけなくて済むという効果と共に、命令コードサイズを不用に増やさずに済むという効果がある。 Further, according to the arithmetic processing unit of the first embodiment, the number of clock cycles at which the special arithmetic processing means pauses is set to an arbitrary value using a specific instruction code. Regardless of the form of the processing means, it is possible to correct the result after an arbitrary cycle of the special arithmetic processing means with a general instruction, so that the processing contents of the special arithmetic processing means are implemented and the special arithmetic control means In addition to the effect that the implementation of this processing unit can be easily implemented, there is one instruction code for pause for any processing content of any special arithmetic processing means. This is advantageous in that it does not require a load on the instruction decoding process, and it does not increase the instruction code size unnecessarily.
また、実施の形態1の演算処理装置によれば、特殊演算処理手段は、複数の独立した特定の演算処理を実行可能に構成され、複数の独立した特定の演算処理の選択を、特定の演算処理の開始を指定する命令コードの引数で指定するようにしたので、命令コードを複数の独立した処理内容毎に増やす事が必要でなくなるため、命令コードサイズを不用に増やさずに済むという効果がある。 Further, according to the arithmetic processing apparatus of the first embodiment, the special arithmetic processing means is configured to be able to execute a plurality of independent specific arithmetic processes, and selects a plurality of independent specific arithmetic processes as a specific arithmetic process. Since it is specified by the argument of the instruction code that specifies the start of processing, it is not necessary to increase the instruction code for each of multiple independent processing contents, so there is an effect that it is not necessary to increase the instruction code size unnecessarily. is there.
1 命令フェッチ、2 命令デコード、3 命令実行、4 メモリアクセス、5 結果ストア、6 命令メモリ、7 レジスタブロック、8 データメモリ、9 特殊演算回路、9a 特殊演算制御手段、9b 特殊演算処理手段。 1 instruction fetch, 2 instruction decode, 3 instruction execution, 4 memory access, 5 result store, 6 instruction memory, 7 register block, 8 data memory, 9 special operation circuit, 9a special operation control means, 9b special operation processing means.
Claims (2)
所定のクロックサイクルで特定の演算処理を実行する特殊演算処理手段と、
前記特定の演算処理に対して定義されている命令コードの発行に基づいて、前記特殊演算処理手段での演算処理の実行および一時停止を制御する特殊演算制御手段とを備え、
前記特殊演算処理手段が一時停止するクロックサイクル数を、特定の命令コードを使用して任意の値に設定することを特徴とする演算処理装置。 General arithmetic processing means having arithmetic means for performing arithmetic operation, logical operation, shift operation, and executing each operation by issuing an instruction code defined for each arithmetic means;
Special arithmetic processing means for executing specific arithmetic processing in a predetermined clock cycle;
Special arithmetic control means for controlling execution and suspension of arithmetic processing in the special arithmetic processing means based on the issuance of an instruction code defined for the specific arithmetic processing ,
An arithmetic processing unit characterized in that the number of clock cycles at which the special arithmetic processing means pauses is set to an arbitrary value using a specific instruction code .
前記複数の独立した特定の演算処理の選択を、特定の演算処理の開始を指定する命令コードの引数で指定することを特徴とする請求項1記載の演算処理装置。 The special arithmetic processing means is configured to be able to execute a plurality of independent specific arithmetic processes,
Wherein the plurality of independent selection of specific processing, the arithmetic processing apparatus according to claim 1, characterized in that specified in the argument of the instruction code specifying the start of the specific operation processing.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007138047A JP5013966B2 (en) | 2007-05-24 | 2007-05-24 | Arithmetic processing unit |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007138047A JP5013966B2 (en) | 2007-05-24 | 2007-05-24 | Arithmetic processing unit |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2008293270A JP2008293270A (en) | 2008-12-04 |
| JP5013966B2 true JP5013966B2 (en) | 2012-08-29 |
Family
ID=40167928
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2007138047A Expired - Fee Related JP5013966B2 (en) | 2007-05-24 | 2007-05-24 | Arithmetic processing unit |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP5013966B2 (en) |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2876791B2 (en) * | 1991-02-04 | 1999-03-31 | 松下電器産業株式会社 | Exception handling device and exception handling method |
| JPH05257860A (en) * | 1992-03-13 | 1993-10-08 | Toshiba Corp | Information processing equipment |
| JP3530360B2 (en) * | 1997-10-27 | 2004-05-24 | 株式会社ルネサステクノロジ | Data processing device and data processing system |
| JP2001092662A (en) * | 1999-09-22 | 2001-04-06 | Toshiba Corp | Processor core and processor using the same |
| JP4651790B2 (en) * | 2000-08-29 | 2011-03-16 | 株式会社ガイア・システム・ソリューション | Data processing device |
| JP4072503B2 (en) * | 2004-02-04 | 2008-04-09 | シャープ株式会社 | IC card with built-in coprocessor for auxiliary operation and control method thereof |
-
2007
- 2007-05-24 JP JP2007138047A patent/JP5013966B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2008293270A (en) | 2008-12-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5512803B2 (en) | Data processing apparatus and method for handling vector instructions | |
| JP2009099097A (en) | Data processor | |
| JP2018005488A (en) | Arithmetic processing unit and control method for arithmetic processing unit | |
| CN108319559B (en) | Data processing apparatus and method for controlling vector memory access | |
| JPH1165844A (en) | Data processing device having pipeline bypass function | |
| EP1974254B1 (en) | Early conditional selection of an operand | |
| CN112540792A (en) | Instruction processing method and device | |
| KR101077425B1 (en) | Efficient interrupt return address save mechanism | |
| JP7495030B2 (en) | Processors, processing methods, and related devices | |
| CN120066586A (en) | Data processing method, device, electronic equipment and storage medium | |
| JP5013966B2 (en) | Arithmetic processing unit | |
| US9213547B2 (en) | Processor and method for processing instructions using at least one processing pipeline | |
| JP2002024008A (en) | Data processing device and program conversion device | |
| CN111124499B (en) | Processor compatible with multi-instruction system and operation method thereof | |
| JP3915019B2 (en) | VLIW processor, program generation device, and recording medium | |
| JP2009054032A (en) | Parallel processor | |
| US20100153688A1 (en) | Apparatus and method for data process | |
| JP2006048661A (en) | Arithmetic processing device for controlling data transfer between processor and coprocessor | |
| JP3933679B2 (en) | Instruction processing device | |
| JP3850156B2 (en) | Instruction processing device | |
| JP2825315B2 (en) | Information processing device | |
| JP4151497B2 (en) | Pipeline processing equipment | |
| JP3743155B2 (en) | Pipeline controlled computer | |
| CN120540704A (en) | Vector interleaving unit, vector processor, high performance processor and device | |
| JPH01271842A (en) | Information processor |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100112 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111017 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111115 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120110 |
|
| 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: 20120508 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120605 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150615 Year of fee payment: 3 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5013966 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| LAPS | Cancellation because of no payment of annual fees |