JP2006048661A - Processor system for controlling data transfer between processor and coprocessor - Google Patents

Processor system for controlling data transfer between processor and coprocessor Download PDF

Info

Publication number
JP2006048661A
JP2006048661A JP2005191931A JP2005191931A JP2006048661A JP 2006048661 A JP2006048661 A JP 2006048661A JP 2005191931 A JP2005191931 A JP 2005191931A JP 2005191931 A JP2005191931 A JP 2005191931A JP 2006048661 A JP2006048661 A JP 2006048661A
Authority
JP
Grant status
Application
Patent type
Prior art keywords
coprocessor
instruction
processing
data
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005191931A
Other languages
Japanese (ja)
Inventor
Tokuzo Kiyohara
Masaki Maeda
Hiroyuki Morishita
Takeshi Tanaka
昌樹 前田
広之 森下
督三 清原
健 田中
Original Assignee
Matsushita Electric Ind Co Ltd
松下電器産業株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a processor system capable of reducing the number of cycles required for data transfer between a main processor and a coprocessor. <P>SOLUTION: An instruction interpretation controller for performing control based on an instruction by sequentially interpreting the instruction in the main processor specifies a kind of processing to be executed by the coprocessor in a field 22 in a single instruction, specifies a first register storing a processed object in a field 24, specifies a second register to store the processing result by the coprocessor in a field 23, and obtains and interprets a coprocessor processing instruction of requesting processing to the coprocessor. Thus, the instruction interpretation controller performs the control that the coprocessor is made to perform the kind of the processing of the contents of the first register as the processing object and a result of the processing performed by the coprocessor is written into the second register. <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

本発明は、プロセッサとコプロセッサとを備える演算処理装置に関し、特に、プロセッサと所定の演算を行うコプロセッサとの間での演算対象及び演算結果のデータ転送制御技術に関する。 The present invention relates to a processing apparatus comprising a processor and a coprocessor, in particular, it relates to a data transfer control technology operands and operation results between the co-processor for the processor and a predetermined calculation.

従来、計算機システムにおける演算処理装置として、汎用的なプロセッサ(以下、「主プロセッサ」という。)と特定演算用のプロセッサ(以下、「コプロセッサ」という。)とを含み、これら複数のプロセッサが協調して動作するように構成されている演算処理装置がある。 Conventionally, as an arithmetic processing unit in a computer system, a generic processor (hereinafter, "main processor" hereinafter.) With a specific calculation processor (hereinafter, referred to as "coprocessor".) And a, plurality of processors cooperative there is processor that is configured to operate.
このような主プロセッサとコプロセッサとを含む演算処理装置は、例えば、MPEG(Moving Picture Experts Group)方式での動画像の符号化(エンコード)処理に用いられる。 Such arithmetic processing apparatus including a main processor and the coprocessor is used, for example, the MPEG coding of the video at (the Moving Picture Experts Group) scheme (encoding) process.

このエンコード処理における計算量の大部分を占めるME(Motion Estimation)処理において、処理対象とする動画を構成する各画像の画素データ間の差分絶対値演算及びその和を計算する必要があり、一般に非常に多くの画素データを計算対象とすることから、その差分絶対値演算及びその和に係る演算回数は非常に多いものとなる。 In ME (Motion Estimation) processing that occupies most of the calculation amount in this encoding process, it is necessary to calculate the absolute difference calculator and the sum thereof between pixel data of each image constituting a moving image to be processed, generally very to many pixel data from that object of calculation, the number of calculations according to the difference absolute value calculation and the sum thereof becomes very large.
そこで、この差分絶対値演算及びその和を、並列計算することに特化した演算器を有するコプロセッサに計算させ、それ以外に、エンコード処理のために必要な処理を、主プロセッサが行うことにより、処理全体に必要となるクロックサイクル(以下、単に「サイクル」という。)の数を低減する。 Therefore, the absolute difference calculator and the sum thereof, is calculated to the coprocessor having the arithmetic unit which is dedicated to parallel computing, otherwise, the processing necessary for the encoding process, by the main processor performs clock cycles required for the entire process (hereinafter, simply referred to as. "cycles") to reduce the number of.

このように、主プロセッサとコプロセッサとが協調動作を行う演算処理装置は、当然ながら、単一のプロセッサからなる演算処理装置に処理を行わせる場合よりも、少ないサイクル数で目的の処理を完了できるので、演算処理装置の動作周波数を比較的低く抑えてもその目的の処理を完了できるようになる。 Thus, the processing device comprising a main processor and a coprocessor performs the cooperative operation will, of course, complete processing of the object from the well, fewer cycles when to perform the processing to the arithmetic processing unit comprising a single processor it is possible, even if kept relatively low operating frequency of the processor will be able to complete processing of the object.
一般に演算処理装置の動作周波数を高めるための技術開発には多くのコストを要するため、目的の処理を完了するためのサイクル数を低減することは、比較的コストの低い演算処理装置により目的の処理を行わせることができるようになるという効果に繋がり、演算処理装置の動作周波数を低く抑えることは消費電力を低く抑えることができるようになるという効果に繋がる。 Since generally requires techniques cost much to develop for increasing the operating frequency of the processing unit, reducing the number of cycles to complete processing of the object, the process object of the relatively less costly processing unit It leads to the effect that it is possible to perform, to reduce the operating frequency of the processor leads to the effect that it is possible to reduce the power consumption.

ところで、従来、コプロセッサに行わせるべき演算を指示するための命令として、コプロセッサ・データ操作命令、コプロセッサ・レジスタ転送命令が知られており、主プロセッサとコプロセッサとの間での演算対象や演算結果のデータ転送を指示するための命令としては、コプロセッサ・レジスタ転送命令が知られている(非特許文献1参照)。 Meanwhile, conventionally, as an instruction for instructing the operation to be performed by the coprocessor, the coprocessor data manipulation instructions, is known coprocessor register transfer instructions, operation subject between the main processor and the coprocessor the instructions for directing the data transfer or calculation results, the coprocessor register transfer is known (see non-Patent Document 1).
このコプロセッサ・レジスタ転送命令は、主プロセッサとコプロセッサとの間での一方向のデータ転送を指定する命令である。 The coprocessor register transfer instruction is an instruction to specify a one-way data transfer between the main processor and the coprocessor.

具体的に言えば、このコプロセッサ・レジスタ転送命令では、演算対象であるソースデータ及び演算結果であるデスティネーションデータのいずれか一方しか主プロセッサのレジスタを指定できない。 Specifically, in this co-processor register transfer instruction, only either one of the destination data which is source data and calculation results on which an arithmetic operation can not specify the registers of the main processor.
図17に、コプロセッサに演算を行わせるプログラムの例を示す。 17 shows an example of a program to perform the operation to the coprocessor.
同図のプログラムにおいて、行L1における命令MCRは、コプロセッサへのデータ転送を伴いコプロセッサに指示をするコプロセッサ・レジスタ転送命令であり、コプロセッサを特定する第1オペランドp0と、コプロセッサの処理内容を特定する第2オペランドであって値0なら3サイクル要する特定のコプロセッサ演算を行う旨を示すものと、演算対象のソースデータが格納されている主プロセッサ内のレジスタを指定する第3オペランドr1と、コプロセッサ内で演算に用いられるレジスタを指定する第4オペランドCr1及び第5オペランドCr2とからなる。 In the program in the same figure, the instruction MCR in row L1, a coprocessor register transfer of instructions to the accompanying coprocessor data transfer to the coprocessor, the first operand p0 identifying a coprocessor, the coprocessor as indicating that performing the second operand is a by specific coprocessor required 3 cycles if the value 0 operation for specifying the processing content, the third specifying a register within the main processor the source data operand is stored an operand r1, a fourth operand Cr1 and fifth operands Cr2 Metropolitan specifies the registers used in the calculation in coprocessor. また、行L2及び行L3における命令nopは1サイクル費やして特段の処理を行わない命令であり、行L4における命令MRCは、コプロセッサからのデータ転送を伴いコプロセッサに指示をするコプロセッサ・レジスタ転送命令であり、コプロセッサを特定する第1オペランドp0と、コプロセッサの処理内容を特定する第2オペランドであって値が1なら演算を行わない旨を示すものと、演算結果であるデスティネーションデータが格納されるべき主プロセッサ内のレジスタを指定する第3オペランドr0と、コプロセッサ内で演算に用いられるレジスタを指定する第4オペランドCr1及び第5オペランドCr2とからなる。 The instruction nop in row L2 and the line L3 is an instruction not to perform the special processing spent one cycle, the instruction in the line L4 MRC is a coprocessor register that an instruction to the accompanying coprocessor data transfer from the coprocessor transfer an instruction, the first operand p0 identifying a coprocessor, and those indicating second a operand value specifying the processing content of the coprocessor is not performing an operation if 1, the destination is a calculation result a third operand r0 to specify the register in the main processor data is to be stored, a fourth operand Cr1 and fifth operands Cr2 Metropolitan specifies the registers used in the calculation in coprocessor.

このように、ソースデータは主プロセッサに格納されており、そのソースデータに基づいてコプロセッサにおいて演算を行い、その演算結果として生成されたデスティネーションデータを主プロセッサに格納しなければならない場合には、ソースデータの転送のためと、デスティネーションデータの転送のためにコプロセッサ・レジスタ転送命令を2度発行する。 Thus, if the source data is stored in the main processor, which performs an operation in the coprocessor on the basis of the source data must contain the destination data generated as a result of the operation to the main processor , and because the source data transfer, issues a coprocessor register transfer instruction twice for transfer destination data.

本発明は、上述したサイクル数低減による有用な効果を得るべくなされたものであり、従来技術よりも、主プロセッサとコプロセッサとの間でのデータ転送に要するサイクル数を低減し得る演算処理装置を提供することを目的とし、また、この演算処理装置に入力すべき命令列を生成する命令列生成装置を提供することを目的とする。 The present invention has been made to obtain useful effects of the number of cycles reduces the above, over the prior art, processor capable of reducing the number of cycles required for data transfer between the main processor and the coprocessor It was intended to provide, also, an object of the invention to provide an instruction sequence generator for generating an instruction sequence to be input to the processor.

上記目的を達成するために、本発明に係る演算処理装置は、主プロセッサとコプロセッサとを備える演算処理装置であって、前記主プロセッサは、命令を逐次解釈して命令に基づく制御を行う命令解釈制御部を有し、前記命令解釈制御部は、前記コプロセッサに実行させるべき演算処理の種別と、当該演算処理の対象が格納されている第1記憶領域と、前記コプロセッサが演算処理をした結果が格納されるべき第2記憶領域とを指定する処理依頼命令を解釈することにより、前記コプロセッサに、第1記憶領域の内容を演算処理対象として当該種別の演算処理を実行させ、更に、前記コプロセッサによりなされた、ある演算処理の結果を、第2記憶領域に書き込む制御を行うことを特徴とする。 To achieve the above object, the arithmetic processing apparatus according to the present invention, there is provided a processor and a main processor and the coprocessor, the main processor performs control based on the instruction to interpret instructions sequentially instruction has interpretation controller, the command interpretation controller includes a type of processing to be executed by the coprocessor, and a first storage area target of the processing is stored, the coprocessor arithmetic process by the result of interpreting a processing request command specifying the second storage area to be stored, the coprocessor, to execute the calculation processing of the type of the contents of the first storage area as an arithmetic processing target, further the made by the co-processor, the operation of the processing results, and performs control of writing to the second memory area.

上記構成の演算処理装置は、コプロセッサに演算処理を依頼するための処理依頼命令が、コプロセッサにより実行されるべき演算処理の種別の指定と、コプロセッサへのソースデータの転送元となる第1記憶領域の指定と、コプロセッサからのデスティネーションデータの転送先となる第2記憶領域の指定とを併せ持っている場合に、この処理依頼命令に対応して動作可能であるため、目的の処理を完了するために必要なサイクル数を比較的低く抑え得る。 Processing apparatus having the above structure, the processing request command for requesting the arithmetic processing coprocessor, the designation of the arithmetic operation type to be executed by the coprocessor, the transfer source of the source data to coprocessor a designation of one storage area, if has both a specification of the second storage area as a transfer destination of the destination data from the coprocessor, because it is operable in response to the process request command, the processing of the object It can suppress a relatively low number of cycles required to complete the. 基本的に演算処理装置は、1命令の実行に1サイクル以上を必要とするため、同じ目的を達成するための命令数が少なければ命令数が多い場合よりも目的達成に必要なサイクル数を抑え得るからである。 Basically arithmetic processing unit 1 requires a one or more cycles to execute an instruction to suppress the number of cycles required purposes achieve than when the number of instructions if is less number of instructions to achieve the same purpose in many cases This is because get. また、このような演算処理装置に、処理依頼命令を行わせるためのプログラムのコードサイズを、従来のものより小さくすることができるという効果も得られる。 Furthermore, such a processor, the code size of a program for causing a processing request command, so that it is possible to reduce than the conventional. このことは、命令メモリの容量低減化に繋がり得る。 This may lead to capacity reduction of the instruction memory.

ここで、前記主プロセッサは、演算命令に基づき演算を行う際に、演算の対象又は結果を格納するための複数のレジスタを有しており、処理依頼命令は、第1記憶領域を指定するものとして前記複数のレジスタのうちいずれかを識別する第1データと、第2記憶領域を指定するものとして前記複数のレジスタのうちいずれかを識別する第2データとを含み、前記命令解釈制御部は、前記コプロセッサに、処理依頼命令に含まれる第1データで識別されるレジスタの内容を演算処理対象として、当該処理依頼命令で指定される種別の演算処理を実行させ、更に、前記コプロセッサによりなされた、ある演算処理の結果を、当該処理依頼命令に含まれる第2データで識別されるレジスタに書き込む制御を行うこととしてもよい。 Here, the main processor, in executing the operation based on the operation instruction has a plurality of registers for storing the object or result of the operation, the processing request command, which specifies a first storage area a first data identifying one of said plurality of registers as, and a second data that identifies one of said plurality of registers as specifying the second storage area, the command interpretation controller , the co-processor, as the contents of the registers identified by the first data processing target included in the processing request command, to execute the calculation processing of the type designated by the process request command, further by the coprocessor made a, the result of certain processing may be performed a control of writing to a register identified by the second data included in the processing request command.

これにより、主プロセッサのレジスタ群の中のいずれかのレジスタを、ソースデータの転送元及びデスティネーションデータの転送先として指定してコプロセッサに演算を行わせるための1つの処理依頼命令に対応して演算処理装置が動作するため、主プロセッサの演算結果をコプロセッサに引き渡して特定の演算を行わせて、かつ、あるコプロセッサによる演算結果を主プロセッサで演算対象にするような処理を1つの命令で記述できることから、そのような処理手順が積み重ねられて構成される一連の処理に対応するプログラムを、少ない命令数の命令列で記述することができ、この結果としてその一連の処理についての実行性能は従来よりも向上する。 Accordingly, corresponding one of the registers in the register group of the main processor, a single processing request instruction for causing a specified by the arithmetic coprocessor as a transfer destination of the transfer source and destination data in the source data since the processor operates Te, made to perform a specific calculation passes the calculation results of the main processor to the coprocessor, and one processing for the calculation target the calculation result of certain coprocessor main processor because it can described by the instruction, the program corresponding to the series of processes constituted by such procedures are stacked, can be described by a small number of instructions of the instruction sequence, the execution of its series of processes as a result performance is improved as compared with that of the conventional.

また、処理依頼命令は、コードフォーマットとして、前記主プロセッサが実行可能な命令群中で当該処理依頼命令を他の命令と識別するための命令識別コードを格納するフィールドの他に、コプロセッサに実行させるべき演算処理の種別を示すコプロセッサ用命令コードを格納するフィールドと、第1データを格納するフィールドと、第2データを格納するフィールドとの各々を含み、前記命令解釈制御部は、処理依頼命令に含まれるコプロセッサ用命令コードを前記コプロセッサへと送出するよう制御し、当該処理依頼命令に含まれる第1データにより識別されるレジスタの内容であるソースデータを前記コプロセッサへと送出するよう制御し、更に、前記コプロセッサから送出された、ある演算処理の結果である結果データを取得して、 The processing request command, as a code format, in addition to fields for storing an instruction identification code for identifying the processing request instruction with other instructions in said main processor executable instruction set execution in the coprocessor a field for storing an instruction code for the coprocessor indicating the type of processing to be, a field for storing the first data comprises a respective field for storing second data, the command interpretation controller includes processing request the instruction code for the coprocessor included in the instruction to control so as to delivered to the coprocessor, and sends the source data is the contents of the registers identified by the first data included in the processing request command to said coprocessor controlled to further the sent from the coprocessor, and obtain the result data is the result of the arithmetic processing in, 該処理依頼命令に含まれる第2データにより識別されるレジスタに書き込むよう制御し、前記コプロセッサは、前記主プロセッサから送出されたコプロセッサ用命令コードを解釈し、前記主プロセッサから送出されたソースデータを取得して演算処理対象にして、当該コプロセッサ用命令コードにより示されている種別の演算処理を実行し、当該演算処理の結果である結果データを前記主プロセッサへと送出することとしてもよい。 Controls to write to a register identified by the second data included in the processing request command, the coprocessor interprets the instruction code coprocessor sent from the main processor, sent from the main processor sources data acquired by the in the processing target, a process of calculating a type indicated by the instruction code for the coprocessor, also result data is the result of the arithmetic operation as that sent out to the main processor good.

これにより、主プロセッサの演算結果をコプロセッサに引き渡して特定の演算を行わせて、かつ、その特定の演算の演算結果を更に主プロセッサで演算対象にするような処理におけるコプロセッサへのデータの転送元となる主プロセッサのレジスタの指定と、コプロセッサに行わせるべき演算処理の種別の指定と、コプロセッサからのデータの転送先となる主プロセッサのレジスタの指定とを、1つの命令で記述できるようになる。 Thus, the calculation results of the main processor delivered to the coprocessor to perform a particular operation, and the data to coprocessor in processing for the operation target in addition the main processor the calculation result of the particular operation a designation of registers of the main processor as a transfer source, and specifies the type of processing to be performed by the coprocessor, and a specification of the destination to become the main processor register data from the coprocessor described in one instruction become able to.

また、前記命令解釈制御部は、処理依頼命令に含まれるコプロセッサ用命令コードを前記コプロセッサへ送出する際に、当該処理依頼命令に含まれる第2データを当該コプロセッサ用命令コードと共に前記コプロセッサに送出し、前記コプロセッサは、前記主プロセッサから送出されたコプロセッサ用命令コードにより示されている種別の演算処理を実行した結果である結果データを前記主プロセッサへと送出する際に、当該コプロセッサ用命令コードと共に前記主プロセッサから送出された第2データを、当該結果データと共に前記主プロセッサへと送出し、前記命令解釈制御部は、前記コプロセッサから共に送出された結果データと第2データとを取得して、当該結果データを当該第2データにより識別されるレジスタに書き込むよう制 Further, the instruction interpretation controller includes an instruction code for coprocessor included in the processing request command when sending to said coprocessor, said co the second data included in the processing request instruction with the instruction code for the coprocessor when sent to the processor, the coprocessor, for sending the result data which is the result of a process of calculating a type indicated by the instruction code for sending coprocessor from the main processor to the main processor, a second data together with the co-processor for instruction code sent from the main processor, and sent to the main processor together with the result data, the instruction interpretation controller as a result of both sent from the coprocessor data and the acquires and 2 data, control to write the result data to the register identified by the second data することとしてもよい。 It is also possible to be.

これにより、主プロセッサ側で、処理依頼命令に対応してコプロセッサに演算開始のトリガとなる信号つまりコプロセッサ用命令コード等を送出した後に、何サイクルか経過してからその処理依頼命令に対応してコプロセッサによる演算結果が返却されるまでの間、ずっとそのコプロセッサによる演算結果を格納すべきレジスタがいずれであるかを記憶保持しておく必要がなくなり、コプロセッサに一旦預けておいて後に戻された情報に基づいて特定されるレジスタに、コプロセッサによる演算結果を格納しさえすればよくなる。 Accordingly, the main processor side, after sending the processing request command corresponding to the trigger of the operation start the coprocessor signal clogging coprocessor instruction code for like corresponding after the elapse several cycles in the processing request command and until operation result of the coprocessor is returned by much eliminates the need to store and hold or is any register to store the calculation result of the coprocessor, keep once deposited in the coprocessor a register specified based on the information returned later become well if only stores the operation result of the coprocessor.

また、前記命令解釈制御部が処理依頼命令に含まれる第2データにより識別されるレジスタに書き込むよう制御する結果データは、前記コプロセッサから送出された、当該処理依頼命令で指定された演算処理の結果であり、前記命令解釈制御部は、前記演算処理の各種別に対応付けて演算処理時間を示す時間情報を予め記憶しており、処理依頼命令に含まれていた前記コプロセッサ用命令コードと、前記ソースデータとを前記コプロセッサへと送出した後、当該コプロセッサ用命令コードで示される演算処理の種別に対応して記憶している時間情報が示す演算処理時間が経過した時に、前記コプロセッサから送出された結果データを、当該処理依頼命令に含まれていた第2データにより識別されたレジスタに書き込むよう制御することとして Also, result data for controlling to write to a register in which the instruction interpretation controller is identified by the second data contained in the processing request command, the sent from the coprocessor, the calculation processing specified in the processing request command the result, the instruction interpretation controller preliminarily stores the time information indicating a processing time in association with each type of the arithmetic processing, an instruction code for the coprocessor which was included in the processing request command, after the said source data has been sent to the coprocessor, when operation processing time indicated by the time information stored in correspondence to the type of calculation process shown by the instruction code for the coprocessor has elapsed, the coprocessor the result data sent from a controlling to write to a register identified by the second data contained in the processing request command よい。 Good.

これにより、主プロセッサは、処理依頼命令に対応してコプロセッサに演算開始を行わせた後に、コプロセッサによる演算結果が返却されるべきレジスタを記憶しておかなければならないが、コプロセッサからその処理依頼命令に対応した演算が終了した旨の通知を受けなくても、コプロセッサがデータ伝送路上に出力している演算結果を取得すべきタイミングを自ら特定することができ、その演算結果を取得して、先に記憶していたレジスタに格納することができるようになる。 Thus, the main processor, the after corresponding to the processing request instruction to perform operation start to the coprocessor, but the operation result by the coprocessor must be stored to the register to be returned, the coprocessor without receiving the notice of operation corresponding to the processing request command is finished, it is possible to co-processor to identify themselves when to acquire the calculation result is output to the data transmission line, obtaining a result of the operation to, it is possible to store in the register which has been stored previously.

また、前記命令解釈制御部は、前記コプロセッサから送出された結果データが前記処理依頼命令に含まれる第2データにより識別されるレジスタに書き込まれる際に、所定信号を前記コプロセッサへと送出するよう制御し、前記コプロセッサは、前記所定信号が前記主プロセッサにより送出されたことを検知するまで、前記結果データの送出を継続し、当該検知後に当該結果データの送出を停止することとしてもよい。 Further, the instruction interpretation controller, when the result data sent from the coprocessor is written into the register identified by the second data contained in the processing request command, sends a predetermined signal to the coprocessor controlled to the coprocessor until it detects that the predetermined signal has been sent by the main processor to continue the delivery of the result data, it is also possible to stop the result data sent after the detection .

これにより、主プロセッサが、処理依頼命令を含むプログラムの実行中でその処理依頼命令に対応してコプロセッサに演算を開始させた後に、例えば外部からの割込信号に対応して割込対応処理を行っているような場合等、コプロセッサの演算終了時点で速やかに主プロセッサがコプロセッサの演算結果としてデータ伝送路上に出力されたデータをレジスタに書き込むことができないような場合であっても、その書き込むことができるようになってから書き込まれる際に、つまり書き込まれる直前か書き込まれる時か書き込まれた直後かに、その旨をコプロセッサに送出することとして、その送出があるまでコプロセッサは演算結果の出力を継続するので、コプロセッサによる演算結果を主プロセッサが確実に取得することができる。 Accordingly, the main processor, the after starting the operation to the coprocessor in response to the processing request instruction during the execution of the program including a process request command, for example, interrupt handling process in response to an interrupt signal from the outside If such is performed like, even when the rapidly main processor in computing the end of coprocessor is unable to write data outputted to the data transmission path as the operation result of the coprocessor register, when it is written from so that it can be written that, that is, when either written immediately crab immediately before either written to be written, as it sends that to the coprocessor, the coprocessor until its delivery is since continued output of the operation result, the calculation result of the coprocessor can be primary processor obtains reliably.

また、前記コプロセッサは、コプロセッサ用命令コードにより指定される各種別の演算処理について、演算処理開始からいずれも同一時間の経過後に結果データを出力するものであり、前記命令解釈制御部が処理依頼命令に含まれる第2データにより識別されるレジスタに書き込むよう制御する結果データは、前記コプロセッサから送出された、当該処理依頼命令に先行して解釈した別の処理依頼命令により指定される演算処理の結果データであり、前記命令解釈制御部は、処理依頼命令に第2データと共に含まれていた前記コプロセッサ用命令コードを前記コプロセッサへと送出した後、当該処理依頼命令に後続して別の命令を解釈する前に、前記コプロセッサが当該処理依頼命令に先行する処理依頼命令で指定した演算処理を行った結果 Also, the coprocessor, for each type of processing specified by the coprocessor instruction code for, both from the processing start and outputs a result data after a lapse of the same time, the instruction interpretation controller processing result data for controlling to write to a register identified by the second data contained in the request command, the operation of the sent from the coprocessor, designated by another processing request command interpreted prior to the processing request command the result data of processing, the command interpretation controller, after the instruction code for the coprocessor which has been included with the second data processing request command has been sent to the coprocessor, and subsequent to the processing request command before interpreting the another instruction, the result of the coprocessor performs processing specified in the processing request command that precedes the processing request command して送出した結果データを、当該第2データにより識別されたレジスタに書き込むよう制御することとしてもよい。 The result data sent by, may be controlled to write into the register identified by the second data.

これにより、例えば、コプロセッサが依頼された演算をパイプライン方式で処理することを前提として演算処理装置に複数の連続する処理依頼命令を供給して解釈実行させるような場合において、連続する処理依頼命令の1つの処理依頼命令において、コプロセッサに与えるデータを格納するレジスタの指定のみならず、それより先行する処理依頼命令に対応するコプロセッサの演算結果を受け取るレジスタを指定することができるため、つまり1命令で主プロセッサからコプロセッサへのデータ転送とコプロセッサから主プロセッサへのデータ転送に係る主プロセッサ内のデータ格納位置を指定できるため、何らかの目的を達成するために必要な命令数を従来よりも低減させることができ、目的達成のために必要なサイクル数を抑え得る。 Thus, for example, when the coprocessor is such as to have been computed for the processor to interpret execution by supplying a plurality of successive processing request instruction assuming that processing in a pipelined manner request processing request successive because in one processing request instruction of the instruction, not only the specification of the register that stores data to be supplied to the coprocessor, it is possible to specify the register for receiving the operation result of the coprocessor corresponding to the processing request instruction that precedes it, that 1 for the data transfer and the coprocessor from the main processor instruction to coprocessor can specify data storage position in the main processor of the data transfer to the main processor, a conventional the number of instructions needed to achieve some purpose also can be reduced from, it may suppress the number of cycles required for the purposes achieved.

また、前記命令解釈制御部が行うところの、処理依頼命令に含まれる第2データで識別されるレジスタに書き込む前記制御は、当該処理依頼命令で指定される種別の演算処理を前記コプロセッサに実行させた結果を当該レジスタに書き込む制御であることとしてもよい。 In addition, the where the instruction interpretation controller performs the control to write to the register identified by the second data contained in the processing request command, performs arithmetic processing of the type designated by the process request command to the coprocessor the result of the may be controlled to write to the register.
これにより、処理依頼命令により指定した演算をコプロセッサに実行させた結果を主プロセッサが受け取るためのレジスタの指定をその処理依頼命令に含めることができるので、一般の演算命令と同様に、その演算命令に応じた演算結果を格納するレジスタの指定をオペランドとして含む命令形式で、コプロセッサに演算を行わせる処理依頼命令の命令形式を定めることができるようになり、例えばプログラム作成者における命令の理解の容易化等に役立つ。 Accordingly, since the result of the performing operations specified by the processing request command to the coprocessor to specify the register for receiving the main processor can be included in the processing request command, as in the ordinary operation instruction, the operation in instruction format including the designation of the register for storing the operation result in accordance with the instruction as an operand, it will be able to determine the instruction format of the processing request instruction to perform an operation to the coprocessor, for example, understanding of instructions in the program creator It helps to ease the like.

また、前記演算処理装置は第1及び第2のコプロセッサを備え、第2のコプロセッサは、複数のレジスタを有しており、前記処理依頼命令は、第1のコプロセッサに実行させるべき演算処理の種別の指定と、第1記憶領域を指定するものとして第2のコプロセッサの複数のレジスタのうちいずれかを識別する第1データと、第2記憶領域を指定するものとして第2のコプロセッサの複数のレジスタのうちいずれかを識別する第2データとを含み、前記命令解釈制御部は、第1のコプロセッサに、処理依頼命令に含まれる第1データで識別される、第2のコプロセッサ内のレジスタの内容を演算処理対象として、当該処理依頼命令で指定される種別の演算処理を実行させ、更に、第1のコプロセッサによりなされた、ある演算処理の結果を、当 Further, the arithmetic processing device comprises a first and a second co-processor, the second co-processor has a plurality of registers, the processing request command, the operation to be executed by the first co-processor a designation of the type of process, the first data identifying one of a plurality of registers of the second co-processor as specifying the first memory area, the second co as specifying the second storage area and a second data identifying one of a plurality of registers of the processor, the instruction interpreting control unit, the first co-processor, is identified by the first data included in the processing request command, the second as the register of the arithmetic processing target content in the co-processor to execute the calculation processing of the type designated by the process request command, further made by the first co-processor, the result of some arithmetic processing, those 処理依頼命令に含まれる第2データで識別される、第2のコプロセッサ内のレジスタに書き込む制御を行うこととしてもよい。 Identified by second data contained in the processing request command may perform a control to write to registers in the second co-processor.

これにより、あるコプロセッサ内のデータに基づいて他のコプロセッサに演算を行わせてその演算結果を元のコプロセッサ内部に返却することを1命令で指示することができるようになる。 Thus, it is possible to instruct to return inside the original coprocessor its operation result to perform the operation on another coprocessor on the basis of the data within a coprocessor with a single instruction.
また、本発明に係る命令列生成装置は、入力されるデータに基づいて、クレーム1の演算処理装置にコプロセッサと共に備えられている主プロセッサに実行させるための機械語の命令列を生成する命令列生成装置であって、記憶手段と、入力されたデータを取得する入力データ取得手段と、前記入力されたデータに基づいて、コプロセッサに実行させるべき演算処理の種別と、当該演算処理の対象が格納されている、当該コプロセッサの外部の第1記憶領域と、前記コプロセッサが演算処理をした結果が格納されるべき、当該コプロセッサの外部の第2記憶領域とを指定する処理依頼命令を含む機械語の命令列を生成し、前記記憶手段に当該命令列を記録する命令列生成手段とを備えることを特徴とする。 The instruction sequence generator according to the invention, based on input data, and generates an instruction sequence of machine language for execution by the main processor that is provided with the coprocessor arithmetic processing unit of claim 1 instruction a sequence generator, a storage means, an input data acquisition means for acquiring the input data, based on the input data, the type of processing to be executed by the coprocessor, subject to the operation processing processing request command specifying There are stored, and the outside of the first storage area of ​​the coprocessor, the should coprocessor result of the arithmetic processing is stored, and the outside of the second storage area of ​​the coprocessor generating an instruction sequence of machine language including, characterized in that it comprises an instruction sequence generation means for recording the instruction sequence in the storage means.

上述の演算処理装置に供給して解釈させ実行させることができる命令列を必要とする場合に、この命令列生成装置により、コプロセッサ外部の記憶領域の内容に基づいてコプロセッサに演算を行わせてその演算結果をコプロセッサ外部の記憶領域に格納することを指定する1つの処理依頼命令を含む命令列を生成させることができる。 If you need a instruction sequence supplied to the above-described arithmetic processing unit is interpreted it can be executed by the instruction sequence generation unit, to perform the operation to the coprocessor on the basis of the contents of the storage area of ​​the coprocessor external instruction sequence including one processing request instruction to specify the storage of the operation result to the coprocessor external storage area Te can be generated.
ここで、前記命令列生成手段により生成される処理依頼命令は、コードフォーマットとして、前記主プロセッサが実行可能な命令群中で当該処理依頼命令を他の命令と識別するための命令識別コードを格納するフィールドの他に、コプロセッサに実行させるべき演算処理の種別を示すコプロセッサ用命令コードを格納するフィールドと、第1記憶領域を指定するものとして、前記主プロセッサが有する複数のレジスタのうちのいずれかを識別する第1データを格納するフィールドと、第2記憶領域を指定するものとして、前記主プロセッサが有する複数のレジスタのうちのいずれかを識別する第2データを格納するフィールドとの各々を含むこととしてもよい。 Here, the instruction sequence processing request instruction generated by the generating means, as the code format, stores the instruction identification code for identifying the processing request instruction with other instructions in said main processor executable instructions in group other fields, a field for storing an instruction code for the coprocessor indicating the type of processing to be executed by the coprocessor, as specifying the first storage region, among the plurality of registers in which the main processor has each of the field for storing first data identifying either, as specifying the second storage area, a field for storing second data identifying one of a plurality of registers that the main processor has it is also possible to include a.

この命令列生成装置により、主プロセッサのレジスタの内容を用いてコプロセッサに演算を行わせてその演算結果を主プロセッサのレジスタに格納することを指定する1つの処理依頼命令を含む命令列を生成させることができる。 This instruction sequence generation unit, generating an instruction sequence including one processing request instruction specifying that made to perform the operation to the coprocessor stores the operation result in a register of the main processor using the contents of the main processor register it can be.
また、前記命令列生成装置は、更に、コプロセッサが実行可能な演算処理の各種別に対応付けて、演算処理時間を示す時間情報を予め記憶している演算時間管理手段を含み、前記命令列生成手段は、生成した処理依頼命令に含まれる第2データで識別される前記主プロセッサのレジスタの内容を演算対象とする演算命令を、命令列において当該処理依頼命令に後続する位置に生成する際には、当該処理依頼命令に含まれるコプロセッサ用命令コードで示される種別の演算処理に関する演算処理時間を、前記演算時間管理手段により記憶されている時間情報に基づいて特定し、当該処理依頼命令から、特定した演算処理時間に相当する命令数分以上の間隔を空けた位置に当該演算命令を置くようにして前記命令列の生成を行うこととしてもよい Further, the instruction sequence generation device further in association with each type of coprocessor capable of executing calculation processing includes a calculation time management means stores in advance time information representing the operation processing time, the instruction sequence generated means the generated processing request instruction operation instruction register contents of the main processor is identified by the second data and calculation target included in, when generating a position succeeding the instruction sequence to the processing request command It is a processing time for processing the type indicated by the instruction code coprocessor included in the processing request command specifies on the basis of the time information stored by the operation time management means, from the processing request command it may perform the generation of the instruction sequence so as to put the operation instruction to the spaced locations of the instruction for more than a few minutes, which corresponds to a specified processing time

これにより、処理依頼命令で指定したデスティネーションデータを演算対象とする演算命令がその処理依頼命令に後続する場合に、その演算命令の実行時点で、処理依頼命令に応じてコプロセッサが演算中であってまだデスティネーションデータが生成されていないような事態が発生することを防止した命令列が生成されるようになる。 Thus, when the operation instruction to the destination data specified by the processing request instruction and operand is subsequent to the processing request instruction, the execution time of the operation instruction, the coprocessor in response to the processing request command in operation yet so that instruction sequence is a situation such that the destination data is not generated to prevent the occurrence generated there.

<実施の形態1> <Embodiment 1>
以下、本発明の実施の形態1に係る演算処理装置について説明する。 The following describes processing apparatus according to the first embodiment of the present invention.
<概要> <Summary>
本発明の実施の形態1に係る演算処理装置は、主プロセッサとコプロセッサとを備え、主プロセッサにおける取得、解釈及び実行の対象となる命令セットに、コプロセッサに演算を行わせるためのコプロセッサ演算命令が含まれている。 Arithmetic processing apparatus according to a first embodiment of the present invention, a main processor and the coprocessor, the instruction set acquisition, subject to interpretation and execution of the main processor, a coprocessor for performing an arithmetic coprocessor operation instructions are included. このコプロセッサ演算命令に該当するxexec命令について、ニーモニック表記で表すと次のようになる。 For xexec instruction corresponding to the coprocessor calculation instruction, expressed in mnemonic code, as follows.

xexec OPn,dstRn,srcRn xexec OPn, dstRn, srcRn
ここで、コプロセッサ演算命令つまりxexec命令は、OPn、dstRn及びsrcRnという3つのオペランドの指定を必要とする命令である。 Here, the coprocessor calculation instruction words xexec instruction is an instruction requiring OPn, the designation of three operands that dstRn and SrcRn. このOPnはコプロセッサにおける演算処理の種別の指定であり、srcRnはコプロセッサの演算に用いられるソースデータを格納している主プロセッサ側のレジスタの番号の指定であり、dstRnはコプロセッサによるその演算結果を格納するための主プロセッサ側のレジスタ番号の指定である。 The OPn is designated a type of calculation process in the coprocessor, SrcRn is designated the primary processor side of the register number that stores the source data used in the calculation of the co-processor, it DstRn its operation by the coprocessor results are specified in the main processor side register number for storing.

このコプロセッサ演算命令を取得し解釈すると、主プロセッサは、srcRnで指定されたレジスタの内容であるソースデータと、演算処理の種別とをコプロセッサに伝達することにより、コプロセッサに演算を依頼する。 When acquired interpret this coprocessor calculation instructions, the main processor requests the source data is the contents of the register specified by the SrcRn, by transmitting to the type of processing the coprocessor, the calculation to coprocessor . これを受けてコプロセッサは、ソースデータを用いて演算処理を行い演算結果であるデスティネーションデータを主プロセッサに伝達し、主プロセッサは、そのデスティネーションデータを受け取ってdstRnで指定されたレジスタに格納する。 Coprocessor In response, the destination data is a computation result performs arithmetic processing using the source data transmitted to the main processor, the main processor is stored in the register specified by the dstRn receives the destination data to.

このように、1つのコプロセッサ演算命令が、コプロセッサにより実行されるべき演算処理の種別の指定と、主プロセッサからコプロセッサへのソースデータ転送の指定と、コプロセッサから主プロセッサへのデスティネーションデータ転送の指定とを併せ持つことにより、このコプロセッサ演算命令を用いることのできる演算処理装置は、目的の処理を完了するために必要なサイクル数を比較的低く抑え得る。 Thus, one coprocessor calculation instruction, the designation of the arithmetic operation type to be executed by the coprocessor, the designation of source data transfer from the main processor to the coprocessor, the destination from the coprocessor to the main processor by having both the specified data transfer, the coprocessor calculation instruction processing unit which can be used may suppress relatively low number of cycles required to complete the process of interest. 基本的に演算処理装置は、1命令の実行に1サイクル以上を必要とするため、同じ目的を達成するための命令数が少なければ命令数が多い場合よりも目的達成に必要なサイクル数を抑え得る。 Basically arithmetic processing unit 1 requires a one or more cycles to execute an instruction to suppress the number of cycles required purposes achieve than when the number of instructions if is less number of instructions to achieve the same purpose in many cases obtain.

図1は、xexec命令を含むアセンブラプログラムの一部を例示する図である。 Figure 1 is a diagram illustrating a part of the assembler program comprising xexec instructions.
主プロセッサは、このプログラム、実際は機械語に変換された後のプログラムコード、を解釈して実行することができる。 The main processor, the program actually can interpret and execute program code, after being converted into machine language.
行L11は、レジスタr1の内容を用いてコプロセッサにOP0により識別される演算処理を実行させて、その演算結果をレジスタr0に格納することを指示するxexec命令である。 Line L11 is to execute the operation process identified by OP0 to the coprocessor using the contents of register r1, a xexec instruction that instructs to store the operation result in the register r0. また、行L12及び行L13は各々1サイクルの期間を費やす命令である。 The row L12 and line L13 are commands to spend each one cycle period.

コプロセッサによるOP0で識別される演算処理の実行に3サイクル必要であることを想定すると、このプログラム例における行L13に後続する命令においては、レジスタr0には先行するxexec命令の実行結果が格納されているものとして、レジスタr0の内容を用いることができる。 Assuming that the execution of arithmetic processing that is identified by OP0 by the coprocessor requires three cycles, the instruction following the line L13 in this program example, the execution result of xexec instructions preceding is stored in the register r0 as is, it is possible to use the contents of the register r0.
以下、実施の形態1に係る演算処理装置について詳しく説明する。 It will be described in detail below the arithmetic processing apparatus according to the first embodiment.

<コプロセッサ演算命令フォーマット> <Coprocessor operation instruction format>
まず、上述した主プロセッサの命令セットに属する1命令であるコプロセッサ演算命令(xexec命令)のフォーマットについて説明する。 First described the format of the coprocessor calculation instruction which is one instruction belonging to the instruction set of the main processor described above (Xexec instructions).
図2は、コプロセッサ演算命令(xexec命令)のフォーマットを示す図である。 Figure 2 is a diagram showing a format of a coprocessor calculation instruction (Xexec instruction).
同図に示すように、xexec命令は、命令長が16ビットであり、命令識別コードフィールド21と、オペランドを指定するための、コプロセッサ用命令コードフィールド22、デスティネーションレジスタ指定フィールド23及びソースレジスタ指定フィールド24とから構成される。 As shown in the figure, Xexec instruction, the instruction length is 16 bits, the instruction identification code field 21, for specifying operands, the coprocessor the instruction code field 22, a destination register designation field 23, and source registers composed from the specified field 24.

ここで、命令識別コードフィールド21は、主プロセッサが解読、実行可能な命令群においてxexec命令であることを識別するための6ビットの命令識別コードを設定するフィールドであり、そのコード値は、例えば100010b等と、予め定められている。 Here, the instruction identification code field 21 is a field main processor decodes sets the 6-bit instruction identification code for identifying that it is a xexec instruction in executable instructions, is the code value, e.g. and the like 100010B, are predetermined.
コプロセッサ用命令コードフィールド22は、オペランドOPnに対応し、コプロセッサに実行させるべき演算処理の種別を識別するための2ビットのコードを設定するフィールドである。 Coprocessor for instruction code field 22 corresponds to the operand OPn, is a field for setting a 2-bit code for identifying the type of processing to be executed by the coprocessor. このビット長は、ここでは、コプロセッサが4種類以下の演算処理が可能であることを想定して定めている。 The bit length is here determined by assuming that the coprocessor is capable of processing four or less.

デスティネーションレジスタ指定フィールド23は、オペランドdstRnに対応し、主プロセッサにおけるレジスタ群の1つを特定するための4ビットのデータを設定するフィールドであり、コプロセッサから伝達される演算結果であるデスティネーションデータを格納すべきレジスタを指定するために用いられる。 Destination register designation field 23 corresponds to the operand DstRn, a field for setting a 4-bit data for specifying one of the register groups in the main processor, the destination is a calculation result is transmitted from the coprocessor It is used to specify the register to store the data.
また、ソースレジスタ指定フィールド24は、オペランドsrcRnに対応し、主プロセッサにおけるレジスタ群の1つを特定するための4ビットのデータを設定するフィールドであり、コプロセッサでの演算処理に用いられるべきソースデータが格納されているレジスタを指定するために用いられる。 The source register designation field 24 corresponds to the operand SrcRn, a field for setting a 4-bit data for specifying one of the register groups in the main processor, the source to be used in arithmetic processing in the coprocessor It is used to specify the register where data is stored.

<演算処理装置の構成> <Configuration of the arithmetic processing device>
図3は、実施の形態1に係る演算処理装置の構成を示すブロック図である。 Figure 3 is a block diagram showing a configuration of a processor according to the first embodiment.
同図に示すように、演算処理装置100は、主プロセッサ3000と、コプロセッサ4000と、コプロセッサ演算命令を含む命令列を格納する命令メモリ5000と、主プロセッサによるデータアクセスの対象となるデータメモリ6000とを備える。 As shown in the figure, the processing unit 100 includes a main processor 3000, a coprocessor 4000, and instruction memory 5000 for storing the instruction sequence including a coprocessor calculation instruction, the data memory to be the data access by the main processor and a 6000.

ここで、主プロセッサ3000は、従来のプロセッサを部分的に変形したものであり、命令解釈制御回路3100と、算術演算や論理演算を行うための回路群である演算器3200と、演算器3200との間でデータ転送を行えるように構成されたレジスタ群であるレジスタバンク3500とを有する。 Here, the main processor 3000, which has a conventional processor partially deformed, the instruction decode control circuit 3100, an arithmetic unit 3200 is a circuit group for performing arithmetic and logical operations, an arithmetic unit 3200 and a register bank 3500 is configured register group to allow data transfer between. この主プロセッサ3000は、コプロセッサ4000に演算を実行させている間に別の演算を行うことができる。 The main processor 3000 can perform different operations while to execute the operation to the coprocessor 4000.

命令解釈制御回路3100は、命令メモリ5000に格納されている命令列から逐次命令を読み出して解釈し、その解釈対象の命令に応じて、レジスタバンク3500及びデータメモリ6000へのアクセスに係る制御つまりデータ転送制御や、演算器3200に、命令で指定された演算を実行させる制御や、コプロセッサ4000の制御や、命令メモリ5000における命令の読出しに係る制御等を行う機能を有する。 Instruction decode control circuit 3100 interprets reads the sequential instructions from the instruction sequence stored in the instruction memory 5000, in accordance with the instructions of the interpreted, control or data relating to access to a register bank 3500 and data memory 6000 transfer control and has a computing unit 3200, a control and to execute the operation specified by the instruction, control and coprocessor 4000, the function of controlling the like according to the reading of the instruction in the instruction memory 5000. なお、コプロセッサ4000の制御は、命令解釈制御回路3100が上述のコプロセッサ演算命令を解釈した場合に、そのコプロセッサ演算命令に含まれる演算処理の種別の指定をコプロセッサ4000に伝達すること等により行われる。 The control of the coprocessor 4000, when the instruction decode control circuit 3100 is interpreted coprocessor calculation instruction described above, it or the like for transmitting the designation of the type of processing included in the coprocessor calculation instruction to the coprocessor 4000 It is carried out by. また、レジスタバンク3500の構成及びそのデータ転送に係る動作ついては後に詳しく説明する。 The operation For be described later in detail according to the configuration and data transfer register bank 3500.

また、コプロセッサ4000は、従来のコプロセッサを部分的に変形したものであり、論理制御回路4100と、特定の演算処理を行う回路である演算器4200と、演算器4200との間でデータ転送を行えるように構成されたレジスタ群であるレジスタバンク4500とを有する。 Also, the coprocessor 4000, which has a conventional coprocessor partially deformed, the logic control circuit 4100, an arithmetic unit 4200 is a circuit for performing a specific operation processing, data transfer to and from the computing unit 4200 and a register bank 4500 is configured registers to allow the. なお、コプロセッサ4000は、主プロセッサ3000により指定された演算種別の演算処理を1つずつ逐次実行することができる。 Incidentally, coprocessor 4000 may be performed one by one arithmetic processing of the specified calculation type sequentially by the main processor 3000. また、主プロセッサ3000とコプロセッサ4000の動作周波数は同じである。 Also, the operating frequency of the main processor 3000 and coprocessor 4000 is the same.

論理制御回路4100は、主プロセッサ3000から伝達される演算処理の種別の指定を受けてこれを解釈しその結果に応じて、レジスタバンク4500へのデータ転送制御や、演算器4200に、特定の演算処理を実行させる制御や、主プロセッサへの演算処理完了の通知等を行う機能を有する。 Logic control circuit 4100, in accordance with the interpretation by the results which receives the designation of the type of processing that is transmitted from the main processor 3000, and data transfer control to the register bank 4500, a calculator 4200, a specific operation control and to execute the process, has a function of performing arithmetic processing of the completion notification or the like to the main processor. また、論理制御回路4100内には各演算種別の演算処理実行に要するサイクル数を示すデータが記憶されており、演算器による演算処理の実行中に経過するサイクルの数をカウントして、その記憶しているサイクル数を示すデータと照合することにより、演算の終了タイミングを検知する機構を有している。 Moreover, the logic control circuit 4100 and the data is stored indicating the number of cycles required for the operation process execution of each operation type, by counting the number of cycles that elapse during the execution of arithmetic processing by the arithmetic unit, the stored by matching data indicating the number of cycles which has to have a mechanism for detecting the end timing of the operation.

演算器4200は、例えば、MPEG方式でのエンコード処理を構成するME処理に用いられる差分絶対値演算及びその和の並列計算を、比較的高速に行えるようなもの等、特定用途に特化した演算機能を有する。 Calculator 4200, for example, computing a parallel computation of absolute difference calculator and the sum thereof used in ME process of constructing the encoding process of the MPEG system, those allow relatively fast like, dedicated to specific applications It has a function.
なお、図3においては、制御信号の伝送路(以下、「制御信号線」という。)を細い矢印線で表しており、命令を含むデータの伝送用のバス(以下、「データ伝送路」という。)を太い矢印線で表している。 In FIG. 3, the transmission path of the control signal (hereinafter, referred to as. "Control signal line") represents the a thin arrow lines, the bus for the transmission of data including instructions (hereinafter, referred to as "data transmission line" .) and is represented by a thick arrow line.

制御信号線3010は、命令メモリ5000を制御するために命令解釈制御回路3100から送出される信号を伝送し、この制御信号に対応して命令メモリ5000からは命令がデータ伝送路5010を介して命令解釈制御回路3100へと送出される。 Control signal line 3010 transmits a signal sent from the instruction decode control circuit 3100 for controlling the instruction memory 5000, instruction from the instruction memory 5000 in response to the control signal via a data transmission line 5010 instructions It is sent to the interpretation controller 3100.
制御信号線3020は演算器3200を制御するために、制御信号線3030はレジスタバンク3500を制御するために、制御信号線3050はデータメモリ6000を制御するために、そして制御信号線3040はコプロセッサに演算処理の種別等を伝達するために、それぞれ命令解釈制御回路3100から送出される信号を伝送する。 To the control signal line 3020 to control the operation unit 3200, for the control signal line 3030 that controls the register bank 3500, the control signal line 3050 in order to control the data memory 6000 and the control signal line 3040 coprocessor, in order to transmit the type or the like of the arithmetic processing, and transmits a signal transmitted from each of the instruction decode control circuit 3100.

また、演算器3200とレジスタバンク3500との間ではデータ伝送路3060及びデータ伝送路3065を介してデータが転送され、レジスタバンク3500とデータメモリ6000との間ではデータ伝送路3080及びデータ伝送路3085を介してデータが伝送され、演算器4200とレジスタバンク4500との間ではデータ伝送路4060及びデータ伝送路4065を介してデータが伝送され、主プロセッサ3000のレジスタバンク3500とコプロセッサ4000のレジスタバンク4500との間ではデータ伝送路3070及びデータ伝送路3075を介してデータが伝送される。 Further, between the operation unit 3200 and the register bank 3500 is data transferred via the data transmission line 3060 and the data transmission line 3065, the data transmission path between the register bank 3500 and data memory 6000 3080 and data transmission lines 3085 data is transmitted via the arithmetic unit 4200 and the between the register bank 4500 data is transmitted via the data transmission line 4060 and the data transmission line 4065, the register bank of the register bank 3500 and the coprocessor 4000 of the main processor 3000 between 4500 data is transmitted via the data transmission line 3070 and the data transmission line 3075.

図4は、レジスタバンク3500の構成を詳細に示す構成図である。 Figure 4 is a block diagram showing the configuration of the register bank 3500 in detail.
レジスタバンク3500は、レジスタ3600(R0)、レジスタ3601(R1)〜レジスタ3615(R15)と、レジスタへデータを書き込むためにデータ伝送路及びレジスタの選択を行うセレクタ群つまりセレクタ3650、セレクタ3651〜セレクタ3665及びセレクタ3670と、どのレジスタから出力されたデータをデータ伝送路に供給するかの選択を行うセレクタ3680とを有する。 Register bank 3500, register 3600 (R0), the register 3601 (R1) ~ register 3615 (R15) and, selector group clogging selector 3650 selects a data transmission path and registers for writing data to the register, a selector 3651~ selector 3665 and a selector 3670 and a selector 3680 for selecting whether to supply the output data from which register the data transmission path.

これらのレジスタ群及びセレクタ群は、命令解釈制御回路3100から制御信号線3030を介して与えられる制御信号に応じて動作するように構成されている。 These register groups and selectors group is configured to operate in response to a control signal supplied via a control signal line 3030 from the instruction decode control circuit 3100.
従って、命令解釈制御回路3100は、命令の解釈結果に応じて、あるデータをあるレジスタに書き込むべき場合において、適切に制御信号を与えてセレクタ3670、セレクタ3650、セレクタ3651〜セレクタ3665を切り替えることにより、データメモリ6000からデータ伝送路3080上に出力されたデータと、演算器3200からデータ伝送路3060上に出力されたデータと、コプロセッサ4000からデータ伝送路3070上に出力されたデータとのいずれかを、書き込むべきレジスタに供給し、そのレジスタに制御信号を与えて、データをレジスタに記憶させる。 Therefore, the instruction decode control circuit 3100, in accordance with the interpretation result of the instruction, in the case to be written to the register in the certain data, the selector 3670 give appropriate control signals, the selector 3650, by switching the selector 3651~ selector 3665 both from the data memory 6000 and data output on the data transmission path 3080, and data output from the arithmetic unit 3200 on the data transmission line 3060, the data output from the coprocessor 4000 on the data transmission line 3070 or a is supplied to the register to be written, it gives a control signal to the register, and stores data in the register. また、命令解釈制御回路3100は、命令の解釈結果に応じて、あるレジスタからデータをデータ伝送路に供給させるべき場合には、そのレジスタに制御信号を与えてデータを出力させるとともに、適切に制御信号をセレクタ3680に与えることにより、演算器3200に繋がるデータ伝送路3065と、データメモリ6000に繋がるデータ伝送路3085と、コプロセッサ4000に繋がるデータ伝送路3075とにそのレジスタから出力されたデータが現れるように制御する。 Further, the instruction decode control circuit 3100, in accordance with the interpretation result of the instruction, when to be supplied with data from one register to the data transmission line, as well to output the data by applying a control signal to the register, appropriately controlled by providing a signal to the selector 3680, a data transmission path 3065 connected to the computing unit 3200, a data transmission path 3085 connected to the data memory 6000, the output data from the register to the data transmission line 3075 connected to the coprocessor 4000 It controls to appear.

<一般の演算命令に係る動作> <Operation of the general operation instruction>
上述した構成を備える演算処理装置100においては、コプロセッサ演算命令以外の演算命令は、主プロセッサ3000により、主に演算器3200を用いて実行される。 In the processing unit 100 having the configuration described above, operation instruction other than the coprocessor calculation instruction, the main processor 3000 is performed mainly using a calculator 3200. この場合における主プロセッサ3000の動作は一般的なプロセッサと同様である。 Operation of the main processor 3000 in this case is similar to a general processor.
例えば、命令解釈制御回路3100が命令メモリ5000から、内部レジスタR0の内容に基づき、ある演算を実行して、その結果を内部レジスタR1に格納するような演算命令を、読み出して解釈した場合においては、セレクタ3680を制御してレジスタR0の内容であるデータをデータ伝送路3065等に出力させておき、演算器3200を制御してその出力されたデータに基づいてその演算を行わせて演算結果をデータ伝送路3060に出力させ、セレクタ3670及びセレクタ3651とレジスタR1とを制御して、データ伝送路3060上のデータをレジスタR1に書き込ませる。 For example, the instruction decode control circuit 3100 is the instruction memory 5000, based on the contents of the internal register R0, and perform a calculation, a calculation instruction that stores the result in the internal register R1, in case where the read out interpretation , advance controls the selector 3680 to output the data which is the content of the register R0 to the data transmission line 3065, etc., a based on the output data results calculated to perform the computation and controls the operation unit 3200 It is output to the data transmission line 3060, and controls the selector 3670 and the selector 3651 and the register R1, and writes the data on the data transmission line 3060 to the register R1.

なお、演算に用いるデータがレジスタから読み出されて演算が行われてその結果がレジスタに書き込まれるまでの処理時間は、例えば数サイクルであり、演算処理内容によってサイクル数は異なる。 The data used for the operation is read from the register being operations performed processing time until the result is written to the register, for example, a few cycles, the number of cycles by the processing contents are different.
上述の演算例についての処理タイミングとしては、レジスタR0から演算器へのデータ転送が行われる期間T1と、それに続く、演算器での演算が行われる期間T2と、その後の演算結果がレジスタR1に書き込まれる期間T3とを含むことになる。 The processing timing of the operation example described above, the period T1 in which the data transfer from the register R0 to the arithmetic unit is performed, followed by a period T2 which calculation is performed in the arithmetic unit, within the register R1 subsequent operation result It will include a period T3 to be written. 例えば期間T1を含む1つのサイクルに後続する1又は複数のサイクルにまたがって期間T2が含まれ、その後の1つのサイクルに期間T3が含まれる。 For example it includes the period T2 across one or more cycles following the one cycle including periods T1, includes a period T3 subsequent one cycle. 2つのレジスタを入力とする演算について考えると、例えば1つのサイクルの間に、一方のレジスタから演算器へのデータ転送が行われる期間T1と他方のレジスタから演算器へのデータ転送が行われる期間T1'とが重複せずに含まれる。 Considering operation to enter two registers, for example during one cycle, the period during which data is transferred from the period T1 and the other register that data is transferred from one register to the arithmetic unit to the arithmetic unit T1 'and is included without duplication.

<コプロセッサ演算命令に係る動作> <Operation of the coprocessor calculation instruction>
以下、上述した構成を備える演算処理装置100が、コプロセッサ演算命令(xexec命令)を実行する場合の各部の動作を説明する。 Hereinafter, the processing unit 100 having the configuration described above, the operation of each part when executing coprocessor calculation instructions (Xexec instructions).
主プロセッサ3000の命令解釈制御回路3100は、命令メモリ5000から読み出した命令を解釈し、その命令が命令識別コードによりxexec命令であると判定した場合には、その命令のオペランドを指定する各フィールド(図2参照)の内容に基づいて1サイクル内に次の2つ処理を行う。 Instruction decode control circuit 3100 of the main processor 3000 interprets the instruction read from the instruction memory 5000, each field the instruction when it is determined that the xexec instruction by the instruction identification code, which specifies an operand of the instruction ( do two processes within one cycle based on the contents of FIG see 2).

まず、命令解釈制御回路3100は、1つの処理として、コプロセッサ用命令コードフィールドの内容つまり演算種別、及びデスティネーションレジスタ指定フィールドの内容つまり演算結果格納用レジスタの指定を、制御信号線3040を介してコプロセッサ4000の論理制御回路4100に伝達する。 First, the instruction decode control circuit 3100, as one of the processing, the contents clogging calculation type of the instruction code field coprocessor, and the designation of contents, that calculation result storage register a destination register designation field, via the control signal line 3040 Te is transmitted to the logic control circuit 4100 of the coprocessor 4000.
また、命令解釈制御回路3100は、他の1つの処理として、ソースレジスタ指定フィールドの内容により指定された1つのレジスタからデータ伝送路3075上にデータを出力させるようにするための各制御信号を、制御信号線3030を介してそのレジスタ及びセレクタ3680に与える。 Further, the instruction decode control circuit 3100, as one other process, the respective control signals for the one register specified by the contents of the source register designation field so as to output the data onto the data transmission line 3075, via the control signal line 3030 provided to the register and a selector 3680.

これらの処理に呼応して、コプロセッサ4000においては、論理制御回路4100が、受信した演算種別に応じてレジスタバンク4500及び演算器4200を制御して、データ伝送路3075上に与えられたソースデータに基づいての演算処理を実行させる。 In response to these processes, the coprocessor 4000, the source data logic control circuit 4100 controls the register bank 4500 and the calculator 4200 in accordance with the operation type received, given on the data transmission line 3075 to execute arithmetic processing based on. この演算処理に要するサイクル数は、例えば3サイクルであり、演算種別によってサイクル数は異なる。 The number of cycles required for this calculation process, for example, a 3-cycle, number of cycles by the operation type is different.

更に論理制御回路4100は、受信していた演算結果格納用レジスタの指定を保持しておき、演算処理が終了する際に、つまり記憶している各演算処理実行に要するサイクル数を示すデータに基づき特定されるその演算処理の終了タイミングに合わせて、その演算結果格納用レジスタの指定を含む演算終了の旨の信号を、制御信号線4040を介して主プロセッサ3000の命令解釈制御回路3100に伝達する。 Further logic control circuit 4100, holds the specified calculation result storage register has been received, when the arithmetic processing is completed, based on data indicating the number of cycles required for the respective processing execution words stored in accordance with the end timing of the operation process specified transmits the signal indicating that the calculation end containing the specified calculation result storage register, the instruction decode control circuit 3100 of the main processor 3000 via the control signal line 4040 . なお、演算終了時点では、演算結果であるデータは演算器4200によりデータ伝送路3070上に出力されている。 In the calculation end time, data is calculation results are output on the data transmission path 3070 by the calculator 4200. 演算結果の主プロセッサ3000への返却はこのデータ伝送路3070によって行われる。 Return to the main processor 3000 of the result is performed by the data transmission path 3070.

そして、命令解釈制御回路3100は、論理制御回路4100から、演算結果格納用レジスタの指定を含む演算終了の旨の信号を受信すると、その信号により演算結果格納用レジスタとして指定されている1つのレジスタにデータ伝送路3070上のデータを書き込ませるための各制御信号を、制御信号線3030を介してそのレジスタ及びセレクタ3650〜セレクタ3665に与える。 Then, the instruction decode control circuit 3100, the logic control circuit 4100 receives a signal indicating that the calculation end containing the specified calculation result storage register, one that is specified as the operation result storage register by the signal register each control signal for writing the data on the data transmission line 3070 to provide via the control signal line 3030 to the register and selector 3650~ selector 3665. この結果として、何サイクルか前に解釈したxexec命令においてデスティネーションレジスタ指定フィールドの内容により指定されていたレジスタに、コプロセッサ4000の演算結果が格納されることになる。 As a result, the register that was specified by the contents of the destination register designation field in xexec instruction interpretation before several cycles, so that the calculation result of the coprocessor 4000 is stored.

なお、命令解釈制御回路3100は、xexec命令に対応してのコプロセッサ4000の演算結果をあるレジスタに書き込ませるデータ転送期間と、そのxexec命令に後続する何らかの一般の演算命令に対応しての内部演算器による演算結果を別のレジスタに書き込ませるデータ転送期間とを、重複せずに1つのサイクル内に含ませるよう制御する。 The internal instruction interpretation controller 3100, a data transfer period for writing to a register in an operation result of the coprocessor 4000 in response to xexec instruction, in response to some general arithmetic instructions subsequent to the xexec instruction and a data transfer period for writing the operation result by the arithmetic unit to another register, is controlled so as to include in a single cycle without duplication.

<動作タイミング> <Operation timing>
以下、コプロセッサ演算命令の実行に関連する各処理の実行タイミングについて詳細に説明する。 Hereinafter, the execution timing of each processing associated with execution of the coprocessor calculation instruction is described in detail.
ここでは、(1)主プロセッサ3000は、命令メモリ5000内に格納されたプログラムを構成する各命令を逐次読み出して解釈し実行している際に、外部から割込信号を受けるとそのプログラムに係る命令の実行を一時的に中断して割込対応の処理を行った後に元のプログラムの実行を再開するものであり、コプロセッサ4000は主プロセッサ3000が割込対応処理を行っている間は、演算処理を一時的に停止するという同期制御を行うものであり、(2)コプロセッサの演算器4200は、パイプライン構成になっておらず、前の演算結果を主プロセッサ3000内のレジスタに書き込むまで次のコプロセッサ演算命令を受け付けないものであって1つの演算処理の実行に2サイクル要するものとして、説明する。 Here, (1) the main processor 3000, when running sequentially reads interprets each instruction of the program stored in the instruction memory 5000, according to the program receiving an interrupt signal from an external is intended to resume execution of the original program after the interrupt response processing to temporarily suspend execution of the instruction, while coprocessor 4000 is the main processor 3000 is performing the interrupt handling process, is intended to perform a synchronization control that temporarily stops the processing, (2) arithmetic circuit 4200 of the coprocessor is not turned pipeline configuration, writes the previous operation result in a register of the main processor 3000 be those not accept the next coprocessor calculation instruction as required two cycles for execution of one operation processing will be described up.

図5は、コプロセッサ演算命令に係る各処理についてのタイミングチャートである。 Figure 5 is a timing chart for each process according to the coprocessor calculation instruction. このタイミングチャートにおいて制御信号については上方か下方かの2段階で示しており、上方が処理契機となる信号がアクティブである状態を表している。 The the control signal in the timing chart shows a two-step or upper or lower, the signal above is processing opportunity represents the state is active.
サイクルC1において、命令データ取得処理111が実行される。 In cycle C1, the instruction data acquisition process 111 is performed. 即ち、命令解釈制御回路3100が制御信号線3010を介して制御信号を送出することにより、命令メモリ5000から命令を取得する。 In other words, by the instruction decode control circuit 3100 sends a control signal via the control signal line 3010, and acquires an instruction from the instruction memory 5000.

サイクルC2において、命令デコード処理112が実行される。 In cycle C2, the instruction decoding 112 is performed. 即ち、命令解釈制御回路3100が、取得した命令を解釈し、xexec命令のオペランドで指定される各レジスタを特定する。 That is, the instruction decode control circuit 3100 interprets the acquired instruction, specifies each register specified by the operand of xexec instruction.
サイクルC3において、コプロセッサへのデータ受け渡し処理113、及びコプロセッサへの制御受け渡し処理114が実行される。 In the cycle C3, the control transfer process 114 to the data transfer processing 113 and coprocessor, to coprocessor is executed. 即ち、制御信号線3030を介しての命令解釈制御回路3100による制御により、ソースレジスタ指定フィールドで指定されたレジスタが、データをデータ伝送路3075上に出力してコプロセッサ4000にデータを受け渡し、命令解釈制御回路3100が演算種別と演算結果格納用レジスタの指定とを制御信号線3040に出力してコプロセッサ4000に受け渡す。 That is, passing under the control of the instruction decode control circuit 3100 via the control signal line 3030, the register specified in the source register designation field, data data to the coprocessor 4000 is output onto the data transmission line 3075 to the instruction interpretation controller circuit 3100 is passed to the coprocessor 4000 outputs the specification of the operation result storage register and calculation type to the control signal line 3040.

サイクルC4及びサイクルC5において、コプロセッサ演算処理115が実行される。 In cycle C4 and cycle C5, the coprocessor arithmetic process 115 is executed. 即ち、論理制御回路4100は、制御信号線3040を介して取得した演算種別に応じて、サイクルC4において制御信号線4020を介して制御信号を伝達して演算器4200に、データ伝送路3075上のデータを用いた演算を開始させ、サイクルC5において、既に取得して保持している演算結果格納用のレジスタの指定を含む演算終了の旨を示す信号を、制御信号線4040を介して主プロセッサ3000へと送出する。 That is, the logic control circuit 4100, depending on the calculation type obtained via the control signal line 3040, to the calculator 4200 and transmits a control signal via the control signal line 4020 in the cycle C4, the data transmission path 3075 to start the calculation using the data, in cycle C5, a signal indicating the fact of the operation ends, including already specified registers for storing operational results that acquires and holds, the main processor 3000 via the control signal line 4040 It is sent to the. なお、サイクルC5においては、演算器4200は、演算を完了してその演算結果のデータをデータ伝送路3070上に出力する。 In the cycle C5, the calculator 4200, to complete the operation to output the data of the operation result on the data transmission path 3070.

サイクルC6において、主プロセッサへのデータ受け渡し処理116が実行される。 In cycle C6, data transfer processing 116 is executed to the main processor. 即ち、命令解釈制御回路3100は、受信した演算終了の旨を示す信号に含まれる演算結果格納用のレジスタの指定に基づいて、制御信号線3030を介して制御信号をレジスタバンク3500に伝えることにより、そのレジスタにデータ伝送路3070上のデータを書き込ませる。 That is, the instruction decode control circuit 3100, based on the specified registers for storing operational results included in the signal indicating the fact of a received operation completion, by transmitting the control signal to the register bank 3500 via the control signal line 3030 , to write the data on the data transmission line 3070 to the register.

なお、主プロセッサ3000は、コプロセッサ演算命令に係る処理の実行開始後は、その実行と並行して、そのコプロセッサ演算命令に後続する命令に係る処理を行うものであり、図5のタイミングチャート上には示していないが、例えば、サイクルC2において、上述したxexec命令に後続する一般の演算命令Aを命令メモリ5000から取得し、サイクルC3でその演算命令Aの解釈を行い、サイクルC4で演算命令Aに係る演算対象データのレジスタからの演算器3200への転送を行い、サイクルC5で演算器3200により演算命令Aに応じた演算を行い、サイクルC6でその演算結果をレジスタに転送し、また演算命令Aに後続する演算命令BをC3において命令メモリ5000から取得し、サイクルC4でその演算命令B The main processor 3000, after the execution start of the process according to the coprocessor calculation instruction, in parallel with the execution, which performs processing according to the subsequent instructions into its coprocessor calculation instruction, the timing chart of FIG. 5 Although not shown in the above, for example, in cycle C2, and obtains the operation instruction a general following the xexec instructions described above from the instruction memory 5000, interprets the operation instruction a in cycle C3, calculated in the cycle C4 performs transfer to the arithmetic unit 3200 from the register operand data according to the instruction a, it performs an operation corresponding to the operation instruction a by calculator 3200 at cycle C5, and transfers the calculation result to the register in the cycle C6, also the operation instruction B that follows the operation instruction a acquired from the instruction memory 5000 at C3, the operation instruction B in cycle C4 解釈を行い、サイクルC5で演算命令Bに係る演算対象データのレジスタからの演算器3200への転送を行い、サイクルC6で演算器3200により演算命令Bに応じた演算を行い、サイクルC7でその演算結果をレジスタに転送する。 Interprets performs transfer to the arithmetic unit 3200 from the register operand data according to the operation instruction B in cycle C5, it performs an operation corresponding to the operation instruction B by calculator 3200 at cycle C6, the operation in the cycle C7 to transfer the results to the register.
<変形例1> <Modification 1>
以下、上述した演算処理装置100の変形例1について説明する。 The following describes a modified example 1 of the processor 100 described above. 変形例1に対して上述の元の例を、基本例と呼ぶことにする。 The original example above with respect to modification 1 will be referred to as a basic example.

上述した基本例に係る演算処理装置100においては、コプロセッサ4000は、主プロセッサ3000により指定された演算種別の演算処理を1つずつ逐次実行するものであったが、変形例1に係る演算処理装置は、コプロセッサが各演算処理をパイプライン方式で並列実行する点で基本例に係る演算処理装置100と異なる。 In the processing unit 100 according to the basic embodiment described above, coprocessor 4000 is a processing of the specified calculation type were those sequentially executed one by one by the main processor 3000, according to a first modification processing device is different from the processing unit 100 according to the basic example in that the co-processor performs parallel each arithmetic processing in a pipelined manner. なお、変形例1に係る演算処理装置の各部については、説明上の必要に応じて、上述した基本例に係る演算処理装置100における対応する各部と同じ符号を用いて説明する。 Note that the respective portions of the arithmetic processing apparatus according to the first modification, as required by the previous description have the same reference numerals as the corresponding respective portions in the arithmetic processing apparatus 100 according to the basic embodiment described above.

この変形例1に係る演算処理装置におけるコプロセッサ演算命令(xexec命令)の実行に関連する各処理の実行タイミングについて説明する。 The execution timing of each processing relating to execution of the coprocessor calculation instruction in the arithmetic processing apparatus according to this modification 1 (xexec instruction) will be described.
なお、(1)主プロセッサが割込対応処理を行っている間は、コプロセッサは演算処理を一時的に停止するという同期制御を行うものであり、(2)コプロセッサの演算器は、パイプライン構成であり、前の演算結果を主プロセッサ内のレジスタに書き込む前であっても次のコプロセッサ演算命令を受け付け、演算処理をパイプラインステージ数が2であるパイプライン方式で実行し、1つの演算処理の実行に2サイクル要するものとして、説明する。 Note that (1) while the main processor is performing an interrupt handling process, the coprocessor is to carry out a synchronous control of temporarily stopping the processing, (2) the coprocessor arithmetic unit, the pipe a line structure, prior to the operation result to accept the next coprocessor calculation instruction even before writing to the register in the main processor, the arithmetic processing executed in a pipelined manner the number of pipeline stages is two, 1 one of the those requiring 2 cycles for execution of arithmetic processing, will be described.

図6は、変形例1におけるコプロセッサ演算命令に係る各処理についてのタイミングチャートである。 Figure 6 is a timing chart for each process according to the coprocessor calculation instruction in a modified example 1.
ここでは、いずれもコプロセッサ演算命令であるn番目の命令とn+1番目の命令とに着目して説明する。 Here, description will be focused on the n-th instruction and (n + 1) -th instruction and are both coprocessor calculation instruction.
サイクルC1において、n番目のコプロセッサ演算命令について命令データ取得処理111が実行される。 In cycle C1, n th coprocessor calculation instruction for instruction data acquisition process 111 is performed.

サイクルC2において、n+1番目のコプロセッサ演算命令について命令データ取得処理111が実行されるとともに、n番目のコプロセッサ演算命令について命令デコード処理112が実行される。 In the cycle C2, together with n + 1 th coprocessor calculation instruction for instruction data acquisition process 111 is performed, the n-th coprocessor calculation instruction is instruction decode process 112 is executed. 即ち、命令解釈制御回路が制御信号線3010を介して制御信号を送出することにより、命令メモリからn+1番目のコプロセッサ演算命令を取得するとともに、その命令解釈制御回路は、サイクルC1において取得していたn番目のコプロセッサ演算命令を解釈する。 In other words, by the instruction decode control circuit sends a control signal via the control signal line 3010, to acquire the n + 1 th coprocessor calculation instruction from the instruction memory, the instruction decode control circuit, we have obtained in cycle C1 and interpreting the n-th coprocessor calculation instruction.

以後のサイクルにおいても同様に、各サイクル内で複数のコプロセッサ演算命令それぞれに対応して別個の処理が施される。 Similarly, in the subsequent cycle, separate processing is performed in correspondence with each of a plurality of coprocessor calculation instruction in each cycle. なお、図6や、これ以後に用いる図7等において、図5と同一の符号を付して示した各処理の内容は、基本例について図5に即して上述した内容と基本的に同じであり、相違点がある場合にはその説明を行う。 Incidentally, or 6 and 7 or the like used therefor since the contents of the processes denoted by the same reference numerals as in FIG. 5, the basic example for essentially the same as what has been described above with reference to FIG. 5 , and the if there are differences do their description.
サイクルC3において、n番目のコプロセッサ演算命令に対応してコプロセッサへのデータ受け渡し処理113及びコプロセッサへの制御受け渡し処理114が実行されるとともに、n+1番目のコプロセッサ演算命令に対応して命令デコード処理112が実行される。 In the cycle C3, together with the control delivery treatment 114 to the n-th co data transfer processing 113 and coprocessor to coprocessor in response to the processor arithmetic instruction is executed, n + 1 th coprocessor calculation instruction to the corresponding instruction decoding 112 is performed.

サイクルC4において、n番目のコプロセッサ演算命令に対応して、2段階に分割されたコプロセッサ演算処理の前半処理115aが実行されるとともに、n+1番目のコプロセッサ演算命令に対応してコプロセッサへのデータ受け渡し処理113及びコプロセッサへの制御受け渡し処理114が実行される。 In cycle C4, in response to n-th coprocessor calculation instruction, together with the first half processing 115a of the divided coprocessor processing in two steps is executed, in response to the n + 1 th coprocessor calculation instruction to coprocessor data transfer processing 113, and a call control transfer process 114 to processor is executed. コプロセッサ演算処理の前半処理115aにおいては、論理制御回路は、前半処理115aの対象となるコプロセッサ演算命令に対応して既に取得している演算結果格納用のレジスタの指定の保持をし続け、既に取得している演算種別に応じて制御信号線4020を介して制御信号を伝達して演算器4200に、データ伝送路3075上のデータを用いた演算を開始させる。 In the first half processing 115a of the coprocessor arithmetic process, the logic control circuit continues to an already specified register for storing acquired and that computation result holding that corresponds to the coprocessor calculation instruction to be early treatment 115a, the calculator 4200 already transmitting a control signal via the control signal line 4020 in accordance with the operation type is acquired, to start the calculation using the data on the data transmission path 3075. なお、論理制御回路は内部に少なくともパイプラインのステージ数分だけの数の、演算結果格納用のレジスタの指定を保持するための記憶領域を有し、この記憶領域の集合は、例えば、格納した順に値を取り出せるFIFO(First In First Out)バッファで実現される。 Incidentally, the logic control circuit of the number of only at least a few minutes stage of the pipeline therein has a storage area for holding the designation of registers for storing operational results, this set of storage areas, for example, stored sequentially FIFO to retrieve the value (First in First Out) is realized by a buffer.

サイクルC5において、n番目のコプロセッサ演算命令に対応して、2段階に分割されたコプロセッサ演算処理の後半処理115bが実行されるとともに、n+1番目のコプロセッサ演算命令に対応して前半処理115aが実行される。 In cycle C5, corresponding to the n-th coprocessor calculation instruction, along with the second half processing 115b of the divided coprocessor processing in two steps is executed, the first half corresponds to n + 1 th coprocessor calculation instruction processing 115a There is executed. なお、コプロセッサ演算処理の後半処理115bにおいては、演算器4200は、前半処理115aの結果を引き継いで更なる演算を最後まで行って演算結果のデータをデータ伝送路3070上に出力し、また、論理制御回路は、n番目のコプロセッサ演算命令に対応して、例えばFIFOバッファに既に保持している演算結果格納用のレジスタの指定を含む演算終了の旨を示す信号を、制御信号線4040を介して主プロセッサへと送出する。 In the second half processing 115b of the coprocessor arithmetic processing, the arithmetic unit 4200 performs a further operation to the end taking over the results of the first half processes 115a and outputs the data of the operation result on the data transmission line 3070, also logic control circuitry, corresponding to the n-th coprocessor calculation instruction, for example, a signal indicating the fact of the operation ends containing the specified register for previously storing to that operation result held in the FIFO buffer, a control signal line 4040 through it sends to the main processor.

サイクルC6において、n番目のコプロセッサ演算命令に対応して主プロセッサへのデータ受け渡し処理116が実行されるとともに、n+1番目のコプロセッサ演算命令に対応して後半処理115bが実行される。 In cycle C6, together with the data transfer processing 116 to the n-th co main processor in response to the processor arithmetic instruction is executed, n + 1 th coprocessor calculation instruction late corresponding to the process 115b is performed. なお、サイクルC6においては、主プロセッサの命令解釈制御回路の制御下で、n番目のコプロセッサ演算命令のデスティネーションレジスタ指定フィールドで示されたレジスタにデータ伝送路3070上のデータが書き込まれた後に、コプロセッサ側の演算器4200によるn+1番目のコプロセッサ演算命令に対応してなされる演算結果がデータ伝送路3070上に出力されるように、各動作タイミングが定められている。 In the cycle C6, under the control of the instruction decode control circuit of the main processor, after the data on the data transmission path 3070 is written to the register indicated by the destination register designation field of n-th coprocessor calculation instruction as calculation results made to correspond to n + 1 th coprocessor calculation instruction by the arithmetic unit 4200 of the co-processor side is outputted on the data transmission path 3070, the operation timing is determined.

サイクルC7において、n+1番目のコプロセッサ演算命令に対応して主プロセッサへのデータ受け渡し処理116が実行される。 In cycle C7, the data transfer processing 116 corresponding to the n + 1 th coprocessor calculation instruction to the main processor is executed.
<変形例2> <Modification 2>
以下、基本例に係る演算処理装置100の変形例2について説明する。 Hereinafter, a description will be given of a variation 2 of the arithmetic processing apparatus 100 according to the basic example.
基本例に係る演算処理装置100においては、コプロセッサ4000は、主プロセッサ3000が割込対応処理を行っている間は演算処理を一時的に停止するという同期制御を行うものであったが、変形例2に係る演算処理装置は、主プロセッサが割込対応処理を行っている間もコプロセッサが演算処理を継続する点で基本例に係る演算処理装置100と異なる。 In the processing unit 100 according to the basic example, coprocessor 4000 is while the main processor 3000 is performing an interrupt handling process was to perform synchronous control of temporarily stopping the processing, deformation example 2 arithmetic processing apparatus according to is different from the processing unit 100 according to the basic embodiment in that also the coprocessor continues processing while the main processor is performing an interrupt handling process. なお、変形例2に係る演算処理装置の各部については、説明上の必要に応じて、上述した基本例に係る演算処理装置100における対応する各部と同じ符号を用いて説明する。 Note that the respective units of the arithmetic processing apparatus according to the second modification, as required by the previous description have the same reference numerals as the corresponding respective portions in the arithmetic processing apparatus 100 according to the basic embodiment described above.

この変形例2に係る演算処理装置では、基本例に係る演算処理装置100と同様に、論理制御回路が、受信していた演算結果格納用レジスタの指定を保持しておき、演算器に演算を行わせて演算結果をデータ伝送路3070上に出力させ、また、演算処理が終了する際に、その演算結果格納用レジスタの指定を含む演算終了の旨の信号を、制御信号線4040を介して主プロセッサの命令解釈制御回路に伝達する。 In the arithmetic processing apparatus according to the second modification, similarly to the processing unit 100 according to the basic example, a logic control circuit, holds the specified arithmetic result storage register has been received, the operation in the arithmetic unit done so by outputting the operation result on the data transmission line 3070, also when the processing is completed, the signal indicating that the calculation end containing the specified calculation result storage register, via the control signal line 4040 and it transmits the instruction decode control circuit of the main processor. この後の処理が変形例2に係る演算処理装置に独特であり、演算終了の旨の信号を受けた命令解釈制御回路が、その演算結果の受け取り準備ができた段階で受け取り可能の旨を示す信号を、制御信号線3040を介して論理制御回路に伝達し、論理制御回路側ではこの受け取り可能の旨を示す信号を受け取ってない間は、演算終了の旨の信号をサイクル毎に繰り返し送出し、データ伝送路3070にデータを出力するような新たな演算を実行させないようにして、そのデータ伝送路3070上のデータを維持する。 Is unique to the processing unit processing after this is according to the modified example 2, the instruction decode control circuit which receives a signal indicating that the operation end, the effect that receivable at the stage that could receive ready for operation result the signal was transmitted to the logic control circuit via a control signal line 3040, while not a logic control circuit side has received a signal indicating to the effect that the receivable repeatedly sends the signal of the operational end of the effect for each cycle , so as not to perform a new operation that outputs data to the data transmission line 3070, maintaining data on the data transmission path 3070.

以下、変形例2に係る演算処理装置におけるコプロセッサ演算命令(xexec命令)の実行に関連する各処理の実行タイミングについて説明する。 The following describes execution timing of each processing relating to execution of the coprocessor calculation instruction in the arithmetic processing apparatus according to a modification 2 (xexec instruction).
なお、コプロセッサの演算器は、パイプライン構成になっておらず、前の演算結果を主プロセッサ内のレジスタに書き込むまで次のコプロセッサ演算命令を受け付けないものであって1つの演算処理の実行に2サイクル要するものとして、説明する。 The calculation unit of the coprocessor is not turned pipeline configuration, the execution of the previous operation result to write to registers in the main processor be one that does not accept the next coprocessor calculation instruction one processing in as required 2 cycles, it will be described.

図7は、変形例2におけるコプロセッサ演算命令に係る各処理についてのタイミングチャートである。 Figure 7 is a timing chart for each process according to the coprocessor calculation instruction in a modified example 2.
サイクルC1〜C3までは、図5に示した基本例に係る演算処理装置100と同様の動作を行う。 Until cycles C1 to C3, performs the same operation as that of the arithmetic processing apparatus 100 according to the basic embodiment shown in FIG.
サイクルC4及びサイクルC5において、コプロセッサ演算処理115が実行される。 In cycle C4 and cycle C5, the coprocessor arithmetic process 115 is executed. 即ち、論理制御回路は、制御信号線3040を介して取得した演算種別に応じて、サイクルC4において制御信号線4020を介して制御信号を伝達して演算器4200に、データ伝送路3075上のデータを用いた演算を開始させ、サイクルC5において、既に取得して保持している演算結果格納用のレジスタの指定を含む演算終了の旨を示す信号を、制御信号線4040を介して主プロセッサへと送出し、演算器4200に、演算を完了した後の演算結果のデータをデータ伝送路3070上に出力させ、制御信号線3040を介して、受け取り可能の旨を示す信号が送られてくるのを待つ。 That is, the logic control circuit, the control signal lines in response to operation type obtained through the 3040, the calculator 4200 and transmits a control signal via the control signal line 4020 in the cycle C4, data on the data transmission line 3075 the operation to start the using, in cycle C5, the previously signal indicating the fact of the operation ends, including the designation of registers for storing acquired the held calculation result which, to the main processor via a control signal line 4040 delivery, to the arithmetic unit 4200, the data of the operation result after completing the operation is output on the data transmission path 3070, via the control signal line 3040, that the signal indicating the receivable in fact is sent wait.

図7では、主プロセッサが割込対応処理等をしておらず特段の遅滞なく受け取り可能の旨を示す信号を発した例を示している。 FIG. 7 shows an example in which the main processor issues a signal indicating the fact of the receivable without special delay not in the interrupt handling process or the like.
この例の場合には、論理制御回路は、サイクルC5の間に受け取り可能の旨の信号を受信したので、演算器4200にはサイクルC6において演算結果のデータをデータ伝送路3070に出力させる制御は行わない。 In this example, the logic control circuit, which received the possible effect of the signal received during the cycle C5, control the calculator 4200 for outputting the data of the operation result to the data transmission line 3070 at cycle C6 is Not performed.

サイクルC6において、主プロセッサへのデータ受け渡し処理116が実行される。 In cycle C6, data transfer processing 116 is executed to the main processor. 即ち、命令解釈制御回路は、受信した演算終了の旨を示す信号に含まれる演算結果格納用のレジスタの指定に基づいて、制御信号線3030を介して制御信号をレジスタバンク3500に伝えることにより、そのレジスタにデータ伝送路3070上のデータを書き込ませる。 That is, the instruction decode control circuit, based on the designation of the register for storing operational results included in the signal indicating the fact of the received operation completion, by transmitting the control signal to the register bank 3500 via the control signal line 3030, to write the data on the data transmission line 3070 to the register.

図8は、変形例2におけるコプロセッサ演算命令に係る各処理についてのタイミングチャートであり、受け取り可能の旨を示す信号が遅れて発された場合の例を示す。 Figure 8 is a timing chart for each process according to the coprocessor calculation instruction in the modification 2, an example of a case where a signal indicating a receivable of effect was issued late.
同図の例は、主プロセッサ側でコプロセッサ演算命令を解釈して、コプロセッサに演算を依頼した後、割込対応処理等を行ってその終了前に、依頼に応じたコプロセッサによる演算が完了した場合の例である。 Example of FIG interprets the coprocessor calculation instruction in the main processor side, after requesting an operation to the coprocessor, in the ends prior to performing an interrupt processing in response, the operation by the coprocessor in accordance with the request is an example of the case has been completed.

サイクルC1〜C4までは、図7の例と同様の動作を行う。 Until cycle C1 -C4, the same operation as the example of FIG. 7.
サイクルC5において、既に取得して保持している演算結果格納用のレジスタの指定を含む演算終了の旨を示す信号を、制御信号線4040を介して主プロセッサへと送出し、演算器4200に、演算を完了した後の演算結果のデータをデータ伝送路3070上に出力させ、制御信号線3040を介して、受け取り可能の旨を示す信号が送られてくるのを待つ。 In cycle C5, the signal indicating the fact of the operation ends, including already specified registers for storing operational results that acquires and holds, via the control signal line 4040 is sent to the main processor, the computing unit 4200, the data of the operation results after completion of the operation is output on the data transmission path 3070, via the control signal line 3040, it waits for signals indicating a receivable in fact is sent.

サイクルC5において、論理制御回路は、受け取り可能の旨の信号を受信していないので、演算器4200にはサイクルC6において演算結果のデータをデータ伝送路3070に出力させ、再び、演算結果格納用のレジスタの指定を含む演算終了の旨を示す信号を、制御信号線4040を介して主プロセッサへと送出する。 In cycle C5, the logic control circuit, since it has not received a receipt possible signal indicating that, in the computing unit 4200 to output the data of the operation result to the data transmission line 3070 at cycle C6, again, the operation result stored for a signal indicating the fact of the operation ends containing the specified register, and sends to the main processor via a control signal line 4040. そして、サイクルC6において、論理制御回路は、受け取り可能の旨の信号を受信したので、演算器4200にはサイクルC7において演算結果のデータをデータ伝送路3070に出力させる制御は行わない。 Then, at cycle C6, the logic control circuit, which received the receivable of the effect of the signal, the arithmetic unit 4200 does not perform the control to output the data of the operation result to the data transmission line 3070 at cycle C7.

サイクルC7において、主プロセッサへのデータ受け渡し処理116が実行される。 In cycle C7, the data transfer process 116 is executed to the main processor. 即ち、命令解釈制御回路は、受信した演算終了の旨を示す信号に含まれる演算結果格納用のレジスタの指定に基づいて、制御信号線3030を介して制御信号をレジスタバンク3500に伝えることにより、そのレジスタにデータ伝送路3070上のデータを書き込ませる。 That is, the instruction decode control circuit, based on the designation of the register for storing operational results included in the signal indicating the fact of the received operation completion, by transmitting the control signal to the register bank 3500 via the control signal line 3030, to write the data on the data transmission line 3070 to the register.
<変形例3> <Modification 3>
以下、基本例に係る演算処理装置100の変形例3について説明する。 The following describes a third modification of the processing unit 100 according to the basic example.

この変形例3に係る演算処理装置は、上述した変形例1と同様にコプロセッサがパイプライン方式で各演算処理を実行するために必要な全ての構成を含み、かつ、上述した変形例2と同様に、主プロセッサが割込対応処理を行っている間もコプロセッサが演算処理を継続するものである。 Arithmetic processing apparatus according to the third modification, the coprocessor as with Modification 1 described above includes the configuration of all needed to execute each processing in a pipelined manner, and, in Modification 2 described above Similarly, in which also the coprocessor continues processing while the main processor is performing an interrupt handling process. なお、変形例3に係る演算処理装置の各部については、説明上の必要に応じて、上述した基本例に係る演算処理装置100における対応する各部と同じ符号を用いて説明する。 Note that the respective units of the arithmetic processing apparatus according to the third modification, as required by the previous description have the same reference numerals as the corresponding respective portions in the arithmetic processing apparatus 100 according to the basic embodiment described above.

この変形例3に係る演算処理装置では、変形例2においてと同様に、演算終了の旨の信号を受けた命令解釈制御回路が、その演算結果の受け取り準備ができた段階で受け取り可能の旨を示す信号を、制御信号線3040を介して論理制御回路に伝達し、論理制御回路側ではこの受け取り可能の旨を示す信号を受け取ってない間は、演算終了の旨の信号をサイクル毎に繰り返し送出し、データ伝送路3070にデータを出力するような新たな演算を実行させないようにして、そのデータ伝送路3070上のデータを維持する構成を備える。 The arithmetic processing apparatus according to the modification 3, as well as in the modification 2, the instruction decode control circuit which receives a signal indicating that the operation end, the receivable in effect at the stage that could receive ready for operation result a signal indicating, transmitted to the logic control circuit via a control signal line 3040, while not receiving the signal indicating the fact of the receivable in the logic control circuit side, sends repeated calculation end to the effect of the signal for each cycle and, so as not to perform a new operation that outputs data to the data transmission line 3070, and a configuration that maintains the data on the data transmission path 3070.

以下、変形例3に係る演算処理装置におけるコプロセッサ演算命令(xexec命令)の実行に関連する各処理の実行タイミングについて説明する。 The following describes execution timing of each processing relating to execution of the coprocessor calculation instruction in the arithmetic processing apparatus according to Modification 3 (xexec instructions).
なお、コプロセッサの演算器は、パイプライン構成であり、前の演算結果を主プロセッサ内のレジスタに書き込む前であっても次のコプロセッサ演算命令を受け付け、演算処理をパイプラインステージ数が2であるパイプライン方式で実行し、1つの演算処理の実行に2サイクル要するものとして、説明する。 The calculation unit of the coprocessor is a pipeline configuration, even before writing the previous operation result in a register in the main processor accepts the following coprocessor calculation instruction, the arithmetic processing speed pipeline stages 2 run in a pipelined manner is, as required two cycles for execution of one operation process will be described.

図9及び図10は、変形例3におけるコプロセッサ演算命令に係る各処理についてのタイミングチャート例であり、図10では、受け取り可能の旨を示す信号が図9の例より遅れて発された場合の例を示す。 9 and 10 are example timing chart for each process according to the coprocessor calculation instruction in Modification 3, in FIG. 10, when a signal indicating a receivable of effect is emitted later than the example of FIG. 9 It shows the example.
図9の例及び図10の例は両方とも、サイクルC1〜C4までは、図6に即して変形例1について説明した動作と同様の動作を行う。 Both of the example and FIG. 10 in FIG. 9, until the cycle C1 -C4, performs the same operation as described modification 1 with reference to FIG.

双方の例はサイクルC5において、n番目のコプロセッサ演算命令に対応して、2段階に分割されたコプロセッサ演算処理の後半処理115bが実行されるとともに、n+1番目のコプロセッサ演算命令に対応して前半処理115aが実行される。 Both examples in the cycle C5, corresponding to the n-th coprocessor calculation instruction, along with the second half processing 115b of the divided coprocessor processing in two steps is executed, correspond to the (n + 1) -th coprocessor calculation instruction early treatment 115a is executed Te. なお、コプロセッサ演算処理の後半処理115bにおいては、演算器4200は、前半処理115aの結果を引き継いで更なる演算を最後まで行って演算結果のデータをデータ伝送路3070上に出力し、また、論理制御回路は、n番目のコプロセッサ演算命令に対応して、例えばFIFOバッファに既に保持している演算結果格納用のレジスタの指定を含む演算終了の旨を示す信号を、制御信号線4040を介して主プロセッサへと送出し、制御信号線3040を介して、受け取り可能の旨を示す信号が送られてくるのを待つ。 In the second half processing 115b of the coprocessor arithmetic processing, the arithmetic unit 4200 performs a further operation to the end taking over the results of the first half processes 115a and outputs the data of the operation result on the data transmission line 3070, also logic control circuitry, corresponding to the n-th coprocessor calculation instruction, for example, a signal indicating the fact of the operation ends containing the specified register for previously storing to that operation result held in the FIFO buffer, a control signal line 4040 through and delivered to the main processor, via the control signal line 3040, waits for signals indicating a receivable in fact is sent.

図9の例においては、サイクルC5において、n番目のコプロセッサ演算命令に対応しての、受け取り可能の旨の信号が発されているので、サイクルC6においては、論理制御回路は、そのn番目のコプロセッサ演算命令に対応する演算終了の旨の信号の送出を繰り返さず、n+1番目のコプロセッサ演算命令に対応する演算終了の旨の信号の送出を行うとともに演算器4200にn+1番目のコプロセッサ演算命令に対応するコプロセッサ演算処理の後半処理115bを行わせる。 In the example of FIG. 9, in the cycle C5, the corresponding to the n-th coprocessor calculation instruction, the receivable of the effect of the signal is emitted, in the cycle C6, the logic control circuit, the n-th without repeating calculation end to the effect of the signals corresponding to the coprocessor calculation instruction delivery, n + 1 th co n + 1 th coprocessor arithmetic unit 4200 performs transmission of calculation end to the effect of the signal corresponding to the processor arithmetic instruction to perform the second half processing 115b of the coprocessor arithmetic processing corresponding to the operation instruction.

一方、図10の例においては、サイクルC5において、n番目のコプロセッサ演算命令に対応しての、受け取り可能の旨の信号が発されていないので、サイクルC6においては、論理制御回路は、そのn番目のコプロセッサ演算命令に対応する演算終了の旨の信号の送出を繰り返し、そのn番目のコプロセッサ演算命令に対応する演算器4200による演算結果のデータ伝送路3070上への出力を繰り返させ、かつ、n+1番目のコプロセッサ演算命令に対応するコプロセッサ演算処理の後半処理115bの開始を抑止する。 On the other hand, in the example of FIG. 10, in the cycle C5, the corresponding to the n-th coprocessor calculation instruction, the receivable of the effect of the signal is not emitted in the cycle C6, the logic control circuit, the repeated n th coprocessor calculation instruction to the delivery of calculation end to the effect of a signal corresponding, not repeat output to that n-th coprocessor calculation instruction to the corresponding computing unit 4200 according to the operation result of the data transmission line 3070 above and suppressing the start of the second half processing 115b of the coprocessor arithmetic processing corresponding to the n + 1 th coprocessor calculation instruction. そして、サイクルC6において受け取り可能の旨の信号が発されているので、サイクルC7においては、論理制御回路は、n+1番目のコプロセッサ演算命令に対応して、例えばFIFOバッファに既に保持している演算結果格納用のレジスタの指定を含む演算終了の旨の信号の送出を行い、受け取り可能の旨を示す信号が送られてくるのを待つ。 Since receivable in fact the signal has been issued at cycle C6, in cycle C7, the logic control circuit, corresponding to the n + 1 th coprocessor calculation instruction, for example, already operation held in the FIFO buffer It performs transmission of calculation end to the effect of the signal containing the specified result register for storing, waits for signals indicating a receivable in fact is sent.

このように、受け取り可能の旨を示す信号の伝達に係る各種処理を行うことで、変形例3に係る演算処理装置においても、主プロセッサとコプロセッサは適切に連携動作することができる。 In this way, by performing various processing in accordance with the transmission of a signal indicating a receivable of fact, even in the arithmetic processing apparatus according to the third modification, the main processor and the coprocessor can operate properly cooperate.
<変形例4> <Modification 4>
以下、基本例に係る演算処理装置100の変形例4について説明する。 Hereinafter, a description will be given of a variation 4 of the arithmetic processing apparatus 100 according to the basic example.

この変形例4に係る演算処理装置は、上述した変形例2に係る演算処理装置と同様の機能構成を有し、コプロセッサの動作周波数が主プロセッサの2倍である点でのみ異なる。 Arithmetic processing apparatus according to the fourth modification has a processing unit similar to the functional configuration according to the modification 2 described above, the only difference operating frequency of the coprocessor is twice the main processor.
即ち、変形例4に係る演算処理装置のコプロセッサの演算器は、パイプライン構成になっておらず、前の演算結果を主プロセッサ内のレジスタに書き込むまで次のコプロセッサ演算命令を受け付けないものである。 That is, the arithmetic unit of coprocessor processing unit according to the fourth modification is not turned pipeline configuration, does not accept the next coprocessor calculation instruction to write the previous operation result in a register in the main processor that it is.

図11は、変形例4におけるコプロセッサ演算命令に係る各処理についてのタイミングチャートである。 Figure 11 is a timing chart for each process according to the coprocessor calculation instruction in a modified example 4. 同図ではコプロセッサにおける1つの演算処理の実行に1サイクル要する場合を例示している。 In FIG illustrates a case requiring one cycle to execute the operation process in the coprocessor. 図7と対比すると、コプロセッサ演算処理115に要する時間が異なる程度であるため、詳細な説明は省略する。 In contrast to FIG. 7, since the time required for the coprocessor arithmetic process 115 is different degrees, and a detailed description thereof will be omitted.
この変形例4においても、変形例2と同様に受け取り可能の旨を示す信号の伝達に係る各種処理を行うことにより、主プロセッサとコプロセッサは適切に連係動作することができる。 Also in this fourth modification, by performing various processing relating to transmission of a signal indicating a receivable in effect as well as modification 2, the main processor and the coprocessor can be suitably cooperative operation.
<変形例5> <Modification 5>
以下、基本例に係る演算処理装置100の変形例5について説明する。 Hereinafter, a description will be given of a variation 5 of the arithmetic processing apparatus 100 according to the basic example.

この変形例5に係る演算処理装置は、上述した変形例3に係る演算処理装置と同様の機能構成を有し、コプロセッサの動作周波数が主プロセッサの2倍である点でのみ異なる。 This modification 5 processor according to have a processing unit similar to the functional configuration according to the modification 3 described above, the only difference operating frequency of the coprocessor is twice the main processor.
即ち、変形例5に係る演算処理装置のコプロセッサの演算器は、パイプライン構成であり、前の演算結果を主プロセッサ内のレジスタに書き込む前であっても次のコプロセッサ演算命令を受け付け、演算処理をパイプラインステージ数が2であるパイプライン方式で実行する。 That is, the arithmetic unit of coprocessor processing unit according to Modification 5 is a pipeline configuration, even before writing the previous operation result in a register in the main processor accepts the following coprocessor calculation instructions, the processing number of pipeline stages to execute in a pipelined manner is 2.

図12は、変形例5におけるコプロセッサ演算命令に係る各処理についてのタイミングチャートである。 Figure 12 is a timing chart for each process according to the coprocessor calculation instruction in a modified example 5. 同図ではコプロセッサにおける1つの演算処理の実行に1サイクル要する場合を例示している。 In FIG illustrates a case requiring one cycle to execute the operation process in the coprocessor. 図9と対比すると、コプロセッサ演算処理の前半処理115a及び後半処理115bに要する時間が異なる程度であるため、詳細な説明は省略する。 In contrast to FIG. 9, since the time required for the first half processes 115a and the second half processing 115b of the coprocessor arithmetic process is different degrees, and a detailed description thereof will be omitted.
この変形例5においても、変形例3と同様に、FIFOバッファ等に演算結果格納用のレジスタの指定を保持し、また、受け取り可能の旨を示す信号の伝達に係る各種処理を行うことにより、主プロセッサとコプロセッサは適切に連係動作することができる。 In this fifth modification, as in Modification 3, it holds the specified register for computation result stored in the FIFO buffer or the like, also, by performing various processing relating to transmission of a signal indicating a receivable in fact, the main processor and the coprocessor can appropriately cooperative operation.
<変形例6> <Modification 6>
以下、基本例に係る演算処理装置100の変形例6について説明する。 Hereinafter, a description will be given of a variation 6 of the arithmetic processing apparatus 100 according to the basic example.

この変形例6に係る演算処理装置は、上述した変形例2に係る演算処理装置と同様の機能構成を有し、コプロセッサの動作周波数が主プロセッサの1/2倍である点で異なる。 The operation according to Modification 6 processor has the same function configuration as the arithmetic processing apparatus according to Modification 2 described above, differ in operating frequency of the coprocessor is 1/2 times the main processor.
この動作周波数の違いに対応するため、変形例6に係る演算処理装置の主プロセッサは、更に、コプロセッサ演算命令のデスティネーションレジスタ指定フィールドの内容を記憶するためのバッファを有しており、命令解釈制御回路はコプロセッサ演算命令を解釈する際にそのデスティネーションレジスタ指定フィールドの内容である演算結果格納用のレジスタの指定をバッファに格納し、それ以後にバッファから読み出せるそのレジスタの指定と、コプロセッサから演算終了の旨の信号に含まれて伝えられるレジスタの指定とが一致するまではその指定されているレジスタを入力として用いるような演算命令の実行を抑止する機能を有する。 To accommodate this difference in operating frequency, the main processor of the processor according to the modification 6, further includes a buffer for storing the contents of the destination register designation field of the coprocessor calculation instruction, the instruction interpretation control circuit stores the designation of the destination register register for the specified field calculation result is the contents of the storage in interpreting coprocessor calculation instruction to the buffer, and designation of the register it after the read out from the buffer, until the specified and registers conveyed contains from coprocessor calculation end to the effect of the signals match has the function of preventing the execution of arithmetic instructions, such as using a register that is the designated input.

つまり、主プロセッサの動作周波数よりコプロセッサの動作周波数が低い場合には、コプロセッサ演算命令に基づいて、コプロセッサに演算を依頼してその演算結果を主プロセッサがレジスタに書き込むよりも先に、そのコプロセッサ演算命令に後続してその演算結果を用いるような一般の演算命令を実行してしまわないように、特別な制御を行う必要があり、そのために、変形例6に係る演算処理装置においては、主プロセッサに、デスティネーションレジスタ指定フィールドの内容を保持して、それにより指定されるレジスタにコプロセッサ演算命令の処理結果が格納されてから、そのレジスタを入力として用いる後続の演算命令を実行させるべく、そのような後続の演算命令の実行を一旦停止させる機能が設けられている。 That is, when the operating frequency of the coprocessor from the operating frequency of the main processor is low, based on the coprocessor calculation instruction, before the main processor of the operation result to request a calculation to coprocessor writes to the register, subsequent to the coprocessor calculation instruction so as not to execute the operation instruction of the general, such as with the calculation result, it is necessary to take special control, because the, in the arithmetic processing apparatus according to modification 6 It is the main processor, and holds the contents of the destination register designation field, run from stored coprocessor calculation instruction processing results in the register specified is a subsequent operation instruction using the register as an input by it in order to, functions are provided to temporarily stop the execution of such a subsequent operation instruction.

以下、変形例6に係る演算処理装置におけるコプロセッサ演算命令(xexec命令)とこれに後続する一般の演算命令の実行に関連する各処理について説明する。 Hereinafter, the coprocessor calculation instruction in the arithmetic processing apparatus according to a modification 6 (xexec instructions) the processes associated with the execution of the operation instruction generally followed to the described.
なお、コプロセッサの演算器は、パイプライン構成になっておらず、前の演算結果を主プロセッサ内のレジスタに書き込むまで次のコプロセッサ演算命令を受け付けないものである。 The calculation unit of the coprocessor is not turned pipeline configuration, but does not accept the next coprocessor calculation instruction to write the previous operation result in a register in the main processor.

図13は、変形例6におけるコプロセッサ演算命令に係る各処理についてのタイミングチャートである。 Figure 13 is a timing chart for each process according to the coprocessor calculation instruction in a modified example 6. ここでは、コプロセッサにおいて1つの演算処理の実行に4サイクル要する場合を例示している。 Here exemplifies a case requiring 4 cycles for execution of one operation process in the coprocessor.
サイクルC1〜C3までは、図7に示した変形例2に係る演算処理装置100と同様の動作を行う。 Until cycles C1 to C3, performs the processing unit 100 and similar operation according to Modification 2 shown in FIG. 但し、命令解釈制御回路は、コプロセッサ演算命令のデスティネーションレジスタ指定フィールドの内容をバッファに保持する。 However, the instruction decode control circuit holds the contents of the destination register designation field of the coprocessor calculation instruction to the buffer.

サイクルC4〜C7において、コプロセッサ演算処理115が実行される。 In cycle C4 to C7, the coprocessor arithmetic process 115 is executed. コプロセッサは2つ分のサイクルを1つの単位として動作を行う。 Coprocessor performs an operation cycle of two minutes as a unit. まず、サイクルC4及びサイクルC5において、論理制御回路は、制御信号線3040を介して取得した演算種別に応じて、サイクルC4において制御信号線4020を介して制御信号を伝達して演算器4200に、データ伝送路3075上のデータを用いた演算を開始させ、サイクルC6及びサイクルC7において、既に取得して保持している演算結果格納用のレジスタの指定を含む演算終了の旨を示す信号を、制御信号線4040を介して主プロセッサへと送出し、演算器4200に、演算を完了した後の演算結果のデータをデータ伝送路3070上に出力させ、制御信号線3040を介して、受け取り可能の旨を示す信号が送られてくるのを待つ。 First, in the cycle C4 and cycle C5, the logic control circuit, in accordance with the calculation type obtained via the control signal line 3040, to the calculator 4200 and transmits a control signal via the control signal line 4020 in the cycle C4, to start the calculation using the data on the data transmission line 3075, at cycle C6 and cycle C7, the signal indicating the fact of the operation ends, including already specified registers for storing operational results that acquires and holds the control via the signal line 4040 is sent to the main processor, the computing unit 4200, the data of the operation result after completing the operation is output on the data transmission path 3070, via the control signal line 3040, receivable of effect the wait for the signal is sent to indicate.

主プロセッサは、演算終了の旨を示す信号を受信すると、制御信号線3040を介して、受け取り可能の旨の信号をコプロセッサに伝達する。 The main processor receives the signal indicating the fact of the operation ends, via a control signal line 3040 to transmit a signal receivable in fact to the coprocessor. なお、主プロセッサは、動作周波数の低いコプロセッサがその受け取り可能の旨の信号を認識可能となるように、1サイクル分以上の期間に渡りその受け取り可能の旨の信号を伝達する。 The main processor, as lower operating frequency coprocessor is recognizable signals that can be received to the effect that, over a period of more than one cycle to transfer the signal of the receiving possible effect.
サイクルC6及びサイクルC7の期間において、受け取り可能の旨を示す信号を受信すると論理制御回路は、次のサイクルでの演算終了の旨の信号の伝達は行わない。 In the period of the cycle C6 and cycle C7, the logic control circuit receives a signal indicating a receivable in effect, the transfer of the operational end of the signal indicating that in the next cycle is not performed.

なお、主プロセッサは、サイクルC2では、図13には示していないが、コプロセッサ演算命令を解釈するとともに、その命令に後続する演算命令を読出すための命令データ取得処理111を行うことができ、その後続する演算命令についてはサイクルC3で命令デコード処理112を行う。 The main processor in the cycle C2, although not shown in FIG. 13, as well as interpreting the coprocessor calculation instruction, it is possible to carry out the instruction data acquisition process 111 for reading the arithmetic instructions subsequent to the instruction performs instruction decoding 112 in cycle C3 is for arithmetic instruction that the subsequent. しかし、その演算命令が演算の入力用の指定したレジスタが、先行するコプロセッサ演算命令で指定された演算結果格納用のレジスタと一致していて、かつ、まだそのレジスタへのコプロセッサによる演算結果の格納が行われていない場合には、その格納が行われるまで、その後続する演算命令についての演算器3200による演算の開始を遅らせる。 However, the operation instruction specified register for input of an operation is, coincide with the register for the preceding coprocessor calculation instruction has been calculated result specified in storage, and yet result operation by the coprocessor to the register If the store is not performed until the storage is carried out, delaying the start of operation by the arithmetic unit 3200 for calculating instruction its subsequent.

サイクルC8において、主プロセッサへのデータ受け渡し処理116が実行される。 In cycle C8, the data transfer process 116 is executed to the main processor. 即ち、命令解釈制御回路は、受信した演算終了の旨を示す信号に含まれる演算結果格納用のレジスタの指定に基づいて、制御信号線3030を介して制御信号をレジスタバンク3500に伝えることにより、そのレジスタにデータ伝送路3070上のデータを書き込ませ、その後に上述したバッファに保持しているレジスタの指定を削除する。 That is, the instruction decode control circuit, based on the designation of the register for storing operational results included in the signal indicating the fact of the received operation completion, by transmitting the control signal to the register bank 3500 via the control signal line 3030, that register to thereby write the data on the data transmission path 3070, to delete the specified register that contains the buffer described above thereafter. このバッファにレジスタの指定が含まれていない状態になると、命令解釈制御回路は、もしそのレジスタを入力とするために待たせていた演算命令があれば、その演算命令の演算器3200による演算を開始させる。 When this buffer in a state that does not contain the specified register, the instruction decode control circuit, if any operation instruction has been waiting for an input of the register if the operation by the arithmetic unit 3200 of the operation instruction to start.
<実施の形態2> <Embodiment 2>
以下、本発明の実施の形態2に係る演算処理装置について説明する。 The following describes the processing unit according to the second embodiment of the present invention.

実施の形態2に係る演算処理装置においては、上述した実施の形態1に係る演算処理装置の変形例1、3、5それぞれ同様に装置内部のコプロセッサが演算をパイプライン方式で実行する。 In the arithmetic processing apparatus according to the second embodiment, modification 1,3,5 coprocessor internal each similarly device of a processor according to the first embodiment described above performs the operations in a pipelined manner. 実施の形態2に係る演算処理装置においては、コプロセッサ演算命令(xexec命令)のオペランドの取り扱いが異なることから、実施の形態1に係る演算処理装置と若干の装置構成上の差異がある。 In the arithmetic processing apparatus according to the second embodiment, since the handling of the operand coprocessor calculation instruction (Xexec instruction) are different, there is a processing unit and some of the configuration on the difference according to the first embodiment.

まず、xexec命令について、ニーモニック表記で表すと実施の形態1と同じく次のようになる。 First, xexec instruction, similarly as follows and expressed in mnemonic code with the first embodiment.
xexec OPn,dstRn,srcRn xexec OPn, dstRn, srcRn
ここで、コプロセッサ演算命令つまりxexec命令は、OPn、dstRn及びsrcRnという3つのオペランドの指定を必要とする命令である。 Here, the coprocessor calculation instruction words xexec instruction is an instruction requiring OPn, the designation of three operands that dstRn and SrcRn. このOPnはコプロセッサにおける演算処理の種別の指定であり、srcRnはコプロセッサの演算に用いられるソースデータを格納している主プロセッサ側のレジスタの番号の指定であることまでは、実施の形態1と同様であるが、dstRnはコプロセッサによるその演算結果ではなく、コプロセッサのパイプラインステージ数に対応するサイクルだけ先行するxexec命令に対応し、そのサイクルだけ先行してコプロセッサが依頼を受けた演算の結果を、格納するための主プロセッサ側のレジスタ番号の指定である。 The OPn is designated a type of calculation process in the coprocessor, SrcRn until it is the designated number of registers of the main processor side that contains the source data used in the calculation of the coprocessor, the embodiments 1 is similar to, DstRn is not a result of the calculation by the coprocessor, in response to xexec instructions preceding only cycle corresponding to the number of pipeline stages of the coprocessor, the coprocessor was asked in advance by the cycle the result of the operation is the designation of the main processor side register number for storing.

このコプロセッサ演算命令を取得し解釈すると、主プロセッサは、srcRnで指定されたレジスタの内容であるソースデータと、演算処理の種別とをコプロセッサに伝達することにより、コプロセッサに演算を依頼し、また、コプロセッサに先行して依頼した演算の結果を受け取ってdstRnで指定されたレジスタに格納する。 When acquired interpret this coprocessor calculation instructions, the main processor requests the source data is the contents of the register specified by the SrcRn, by transmitting to the type of processing the coprocessor, the calculation to coprocessor also it receives and stores the result of the operation which is requested prior to the co-processor to the register specified in DstRn.
なお、コプロセッサ演算命令(xexec命令)のフォーマットについてもそのデータ構成は、図2を用いて実施の形態1で示したものと同じである。 Also the data structure about the format of the coprocessor calculation instruction (Xexec instructions) are the same as those shown in Embodiment 1 with reference to FIG.

実施の形態2に係る演算処理装置の構成及び動作は、実施の形態1で説明した演算処理装置の構成及び動作と基本的に同様であるので(図3及び図4参照)、ここでは異なる点に重点を置いて説明する。 The configuration and operation of a processor according to the second embodiment, configuration and (see FIGS. 3 and 4) Operation and are basically similar to those of the processing apparatus described in the first embodiment, where different from the emphasis will be explained.
主プロセッサの命令解釈制御回路は、命令メモリから読み出した命令を解釈し、その命令が命令識別コードによりxexec命令であると判定した場合には、その命令のオペランドを指定する各フィールド(図2参照)の内容に基づいて1サイクル内に次の3つ処理を行う。 Instruction decode control circuit of the main processor interprets the instruction read from the instruction memory, in which case the instruction is determined to be a xexec instruction by the instruction identification code, each field (see FIG. 2 for operand of the instruction It performs three processes in one cycle based on the contents of).

まず、命令解釈制御回路は、1つ目の処理として、コプロセッサ用命令コードフィールドの内容つまり演算種別を、制御信号線3040を介してコプロセッサの論理制御回路に伝達する。 First, the instruction decode control circuit, as its first process, the contents clogging calculation type of the instruction code field coprocessor, for transmitting to the logic control circuit of the coprocessor via the control signal line 3040. この際にデスティネーションレジスタ指定フィールドの内容は伝達しない。 The contents of the destination register specification field in this case is not transmitted. 従って論理制御回路もそのデスティネーションレジスタ指定フィールドの内容を保持する構成を有しない。 Thus the logic control circuit also does not have a structure for holding the contents of the destination register designation field.

また、命令解釈制御回路は、2つ目の処理として、ソースレジスタ指定フィールドの内容により指定された1つのレジスタからデータ伝送路3075上にデータを出力させるようにするための各制御信号を、制御信号線3030を介してレジスタバンク3500に与える。 Further, the instruction decode control circuit, as the second process, the respective control signals for the one register specified by the contents of the source register designation field so as to output the data on the data transmission line 3075, the control It gives the register bank 3500 via the signal line 3030.
コプロセッサの論理制御回路は、主プロセッサから伝達される演算処理の種別の指定に応じて、レジスタバンク4500へのデータ転送制御や、演算器4200に、特定の演算処理を実行させる制御を行うが、演算処理が終了した場合であっても主プロセッサへの演算終了の旨の信号の通知は行わない。 Logic control circuit of the coprocessor, in accordance with the designation of the type of processing that is transmitted from the main processor, and the data transfer control to the register bank 4500, a calculator 4200, performs control to perform a specific operation processing , notification of operation completion to the effect that the signal to the even if the calculation process is completed the main processor is not performed. 従って制御信号線4040は省かれる。 Therefore, the control signal line 4040 is omitted. なお、演算器4200は演算処理が終了すると演算結果であるデータをデータ伝送路3070上に出力する。 The calculation unit 4200 outputs the data which is the operation result and processing is terminated on the data transmission path 3070.

また、命令解釈制御回路は、3つ目の処理として、そのxexec命令についてのデスティネーションレジスタ指定フィールドの内容により指定された1つのレジスタに、データ伝送路3070上のデータを書き込ませるための各制御信号を、制御信号線3030を介してそのレジスタ及びセレクタ3650〜セレクタ3665に与える。 Further, the instruction decode control circuit as the processing of the third, the one register specified by the contents of the destination register designation field for that xexec instruction, the control to write the data on the data transmission line 3070 signals, supplied to the register and selector 3650~ selector 3665 via the control signal line 3030. この結果として、そのxexec命令より数サイクル前に解釈したxexec命令に対応するコプロセッサによる演算結果が、主プロセッサのレジスタ内に書き込まれることになる。 As a result of this, the operation result by the coprocessor corresponding to xexec instructions interpreted before several cycles than the xexec instruction will written to be in the register of the main processor.

なお、命令解釈制御回路は、1サイクル内で1つのレジスタへの書込みを行えば足りるため、特に、xexec命令に対応してのコプロセッサの演算結果をあるレジスタに書き込ませるデータ転送期間と、他の一般の演算命令に対応しての内部演算器による演算結果を別のレジスタに書き込ませるデータ転送期間とを調整する必要はない。 Incidentally, the instruction decode control circuit, in order to sufficiently performed to write to a register in one cycle, in particular, a data transfer period for writing into register with the calculation result of the coprocessor in response to xexec instruction, other necessary to the calculation result of internal arithmetic units corresponding to the general operation instruction adjusting the data transfer period for writing to another register not.
また、命令解釈制御回路は、実施の形態1のいくつかの変形例で示したような制御信号線3040を介しての受け取り可能の旨の信号の送信を行わない。 Further, the instruction decode control circuit does not transmit the receipt possible signal indicating that the via the control signal line 3040 as shown in some modification of the first embodiment. 従って、コプロセッサ側においても受け取り可能の旨の信号を待つような制御は行わない。 Therefore, the control that waits for possible signal indicating that also receives the coprocessor side is not performed.

このような実施の形態2に係る演算処理装置の処理方式によれば、命令メモリに格納されたプログラムが、コプロセッサ演算命令の多数連続してなる部分を含む場合において、主プロセッサ側にもコプロセッサ側にも特に各命令のデスティネーションレジスタ指定フィールドの内容を複数保持するための機構を有さなくても、適切に処理を実行することができるようになる。 According to the process scheme of the arithmetic processing apparatus according to this second embodiment, the child program stored in the instruction memory, in case of containing a plurality successive formed by portions of the coprocessor calculation instruction, to the main processor side need not have a mechanism for holding a plurality of contents of the destination register designation field of particular each instruction in the processor side, it is possible to appropriately execute the process.

但し、プログラム中で、あるコプロセッサ演算命令のオペランドで指定したデスティネーションデータを格納すべきレジスタには、そのコプロセッサ演算命令に先行するコプロセッサ演算命令が存在して、かつ、その先行するコプロセッサ演算命令に対応したコプロセッサによる演算結果がデータ伝送路3070上に出力されている場合でなければ、有効な値は格納されていないので、例えば、プログラム作成者がプログラムを直接記述する場合には、そのことを意識してコプロセッサ演算の実行に要するサイクル数を把握した上でプログラムを記述する必要がある。 However, in the program, to a co-register to store the destination data specified by the operand of processor operation instructions, if there is a coprocessor operation instruction preceding the coprocessor calculation instruction, and its leading co If when the calculation result of the coprocessor corresponding to processor operation instructions are output on the data transmission line 3070, since no valid value is stored, for example, when the program creator to describe the program directly it is required to describe the program on which to grasp the number of cycles required to execute aware coprocessor calculation that.
<実施の形態3> <Embodiment 3>
以下、本発明の実施の形態3に係るオブジェクトコード生成装置について説明する。 The following describes the object code generating apparatus according to the third embodiment of the present invention.

実施の形態3に係るオブジェクトコード生成装置は、コンピュータとソフトウェアとにより実現される、いわゆるコンパイラであり、実施の形態1で示したような演算処理装置により実行される命令列からなるプログラムであるオブジェクトコードを、高級言語で記述されたソースコードに基づいて生成する命令列生成装置である。 The object code generating apparatus according to the third embodiment is realized by a computer and a software, a so-called compiler is a program of instruction sequence to be executed by the processing unit as shown in the first embodiment the object the code is an instruction sequence generation unit which generates, based on the source code written in a high-level language.
図14は、実施の形態3に係るオブジェクトコード生成装置の構成を示すブロック図である。 Figure 14 is a block diagram showing the configuration of an object code generating apparatus according to the third embodiment. なお、同図には、ソースコード7001及びオブジェクトコード7002も付記している。 Incidentally, in the figure, source code 7001 and object code 7002 is also appended.

同図に示すように、オブジェクトコード生成装置7000は、機能面に着目すれば、ソースコード取得部7010、命令コード記憶部7020及びオブジェクトコード生成部7030を備えている。 As shown in the figure, the object code generator 7000, focusing on the functional surface, a source code acquiring unit 7010, an instruction code storing unit 7020 and object code generator 7030.
ここで、ソースコード取得部7010は、例えばハードディスク装置等に記録されているソースコード7001を、メモリに読み込んで参照する機能を有する。 Here, the source code acquisition section 7010, for example, a function of the source code 7001 which is recorded in a hard disk device or the like, refer read into memory.

命令コード記憶部7020は、オブジェクトコードの実行環境となる演算処理装置における主プロセッサの命令セットに含まれる全命令コードに係る情報を記憶しており、更にコプロセッサ演算命令に対応して、演算種別毎つまりコプロセッサ用命令コード毎に、コプロセッサが演算実行に要するサイクル数を示すサイクル情報を記憶している。 Instruction code storage unit 7020 may store information relating to all the instruction codes contained in the instruction set of the main processor in the processing unit serving as the execution environment of the object code, in response to further coprocessor calculation instructions, calculation type per every clogging coprocessor instruction code for stores cycle information indicating the number of cycles the coprocessor takes to execution. なお、全命令コードに係る情報の中には、図2に示したフォーマットのコプロセッサ演算命令を生成するために必要な情報も含まれ、高級言語においてそのコプロセッサ演算命令を指定するための関数の定義情報も含まれる。 Incidentally, in the information relating to the entire instruction code, information necessary for generating a coprocessor calculation instruction format shown in FIG. 2 also includes a function for specifying the coprocessor calculation instruction in high-level language definition information is also included.

オブジェクトコード生成部7030は、ソースコード取得部7010を介してソースコードを参照して、一般のコンパイラと同様に、命令コードに係る情報に基づいて、ソースコード中の各文を、命令列に変換する。 Object code generation unit 7030 refers to the source code through the source code acquisition section 7010, similarly to the ordinary compiler, based on information relating to instruction codes, each statement in the source code, converts the instruction sequence to. 但し、一般のコンパイラとは異なる処理として、上述したサイクル情報を参照して、コプロセッサ演算命令を解釈した後から、コプロセッサ演算命令のオペランドで指定したデスティネーションデータを格納するためのレジスタにコプロセッサによる演算結果が反映されるまでのサイクル数を特定し、その間の期間でそのレジスタが他の命令の入力用として用いられないように、変換後の命令列の順序を調整する処理を行う。 However, as different processes and general compilers, by referring to the cycle information described above, co from after interpreting the coprocessor calculation instruction, the register for storing the destination data specified by the operand coprocessor calculation instruction identify the number of cycles until the operation result by the processor is reflected, so that the register in the intervening period not used for input of other instructions, performs a process of adjusting the order of the instruction sequence after the conversion.

図15は、ソースコードの例を示す図である。 Figure 15 is a diagram showing an example of a source code. ここでは、C言語の例を示している。 Here, an example of C language.
行L51は、data0からdata5までの変数の宣言であり、行L52は、data3を引数としてfunctionX01というコプロセッサ演算用として予め定められている関数を呼び出してその演算結果をdata0に設定する旨を示す文である。 Line L51 is a declaration of variables from data0 to data5, the line L52 is, indicating that sets the calculation result by calling the function that is predetermined as a coprocessor operation that functionX01 the data3 as an argument to data0 it is a sentence.
また、行L53は、data0とdata3との和をdata4に設定する旨を示す文であり、行L54は、data5とdata1との和をdata5に設定する旨を示す文であり、行L55は、data5とdata2との和をdata5に設定する旨を示す文である。 The row L53 is a statement to the effect that setting the sum of the data0 and data3 to data4, line L54 is a statement to the effect that setting the sum of the data5 and data1 to data5, the line L55 is the sum of the data5 and data2 is a sentence indicating that is set to data5.

図16は、図15に例示するソースコードに基づいて生成されるオブジェクトコードの例を示す図である。 Figure 16 is a diagram showing an example of an object code to be generated based on the source code illustrated in FIG. 15. なお、説明の便宜上、オブジェクトコードは、ニーモニック表記で表している。 For convenience, the object code of the description is expressed in mnemonic code. ここで、add命令は、第2番目のオペランドで指定されたレジスタの内容と第3番目のオペランドで指定されたレジスタの内容とを加算してその結果を第1番目のオペランドで指定されたレジスタに格納する命令であるものとする。 Here, the add instruction, the specified results by the first operand by adding the contents of the register specified by the contents of the register specified by the second operand third operand register it is assumed that an instruction to be stored in.

この例では、オブジェクトコード生成装置7000が、変数data0〜data5をそれぞれレジスタR0〜R5に割り付けた例であり、オブジェクトコード生成装置7000は、ソースコードの行L52のfunctionX01を、コプロセッサ用命令コードがOP01であるコプロセッサ演算命令に変換して、行L21を生成する。 In this example, the object code generator 7000, an example in which the allocation of variables data0~data5 each register R0 to R5, the object code generator 7000, a functionX01 line L52 of the source code, the instruction code for coprocessor a is converted to the coprocessor calculation instruction OP01, which generates a line L21. 行L21のxexec命令は、コプロセッサにおける演算処理の種別としてOP01を指定し、コプロセッサの演算に用いられるソースデータを格納している主プロセッサ側のレジスタとしてレジスタR3を指定し、コプロセッサによるその演算結果を格納するための主プロセッサ側のレジスタとしてレジスタR0を指定した命令である。 The xexec instruction on line L21, specify the OP01 as the type of calculation process in the coprocessor, to specify the register R3 as the main processor side of the register that stores the source data used in the calculation of the co-processor, the by coprocessor the operation result is a command specifying the register R0 as the main processor side register that stores.

即ち、オブジェクトコード生成装置7000は、ソースコード中にこのfunctionX01関数を発見すると、コプロセッサ用命令コードがOP01であるxexec命令に置き換える。 That is, an object code generator 7000, if it finds this functionX01 function in the source code, the instruction code for coprocessor replaced by xexec instruction is OP01. この関数の引数である変数に割り付けられたレジスタが、ソースデータを格納している主プロセッサ側のレジスタを指定するオペランドに変換され、関数の戻り値である変数に割り付けられたレジスタが、コプロセッサによる演算結果を格納するための主プロセッサ側のレジスタを指定するオペランドに変換される。 Registers assigned to the variable is an argument of the function is converted into an operand specifying a register of the main processor side containing the source data, are registers assigned to a variable which is a function of the return value, coprocessor It is converted to an operand for specifying the main processor side of the register for storing the operation result of.

ここでは、コプロセッサ用命令コードがOP01であれば、演算に必要なサイクル数は3であるものとする(図14参照)。 Here, the instruction code for coprocessor if OP01, the number of cycles required for the operation is assumed to be 3 (see FIG. 14). このため、ソースコードの行L53に対応する命令として、行L21の次に、「add R4,R0,R3」というadd命令が生成されるはずであるが、その3というサイクル数分だけ後にならないとコプロセッサ演算命令の演算結果がレジスタR0には格納されていないので、そのadd命令は行L24の位置に生成される。 Therefore, as an instruction corresponding to the row L53 of the source code, the next on the line L21, but should add command "add R4, R0, R3" is generated and not after the number of cycles that their 3 since the calculation result of the coprocessor operation instruction is not stored in the register R0, it is generated at the position of the add instruction row L24. その代わりに、図15の行L54と行L55の各文に対応する各命令が、行L22と行L23の位置に生成される。 Instead, each instruction corresponding to the statement on line L54 and line L55 in FIG. 15 is generated at the position of line L22 and line L23.

従って、このオブジェクトコード生成装置7000によれば、ソースコードを記述するプログラム作成者は、特にコプロセッサ演算命令に対応してコプロセッサが演算を完了するまでに要するサイクル数を意識しなくても、適切なオブジェクトコードを得ることができるようになる。 Therefore, according to the object code generation unit 7000, describes a source code program creator, without conscious number of cycles required to complete the coprocessor operation in response to the particular coprocessor calculation instructions, it is possible to obtain an appropriate object code. なお、図15の例では、結局、行L54の文と行L55の文とを行L53の文より先に実行することになったが、データの依存関係等によっては、このような文の順番の入れ替えが不可能となる場合もある。 In the example of FIG. 15, after all, was supposed to perform the statement sentence and line L55 line L54 before the statement on line L53, depending data dependencies such that the order of such a statement in some cases the replacement of becomes impossible. その場合には、オブジェクトコード生成装置7000は、必要数のnop命令を、コプロセッサ演算命令の後であってそのコプロセッサ演算命令の演算結果を用いて実行されるべき他の演算命令の前に、挿入することにより、コプロセッサ演算命令に対応する演算結果が格納されていないレジスタを入力とする演算命令が含まれないようにしたオブジェクトコードを生成する。 In that case, the object code generator 7000, a nop instruction required number, before any other operation instructions to be executed using the calculation result of the coprocessor operation instruction even after the coprocessor calculation instruction by inserting, to generate object code that the operation result was prevented it includes operation instruction to enter a register that is not stored corresponding to the coprocessor calculation instruction.
<補足> <Supplement>
以上、本発明に係る演算処理装置及びオブジェクトコード生成装置の実施の形態について説明したが、本発明は、上述の実施の形態そのものに限定されることはない。 Having described embodiments of a processor and object code generating apparatus according to the present invention, the present invention is not limited to the precise forms of embodiment described above. 即ち、各実施の形態で示した演算処理装置又はオブジェクトコード生成装置は、以下に示すように部分的に変形してもよい。 That is, the arithmetic processing unit or object code generating device shown in the embodiment may be partially modified as shown below.
(1)実施の形態1では、主プロセッサがコプロセッサ演算命令のデスティネーションレジスタ指定フィールドの内容をコプロセッサ側に伝達しておき、コプロセッサ側でその内容を保持して演算終了時点で演算終了の旨の通知にその内容を含めて主プロセッサに伝達することとしたが、主プロセッサが、コプロセッサ演算命令のデスティネーションレジスタ指定フィールドの内容を伝達せず自ら記憶保持しておき、そのコプロセッサ演算命令に対応する演算結果がコプロセッサから返却される際に演算終了の旨の信号を受けると、返却された演算結果を、自ら記憶保持していた内容で指定されるレジスタに格納することとしてもよい。 (1) In the first embodiment, the main processor leave transfer the contents of the destination register designation field of the coprocessor calculation instruction to the coprocessor side, operation ends at operation end retains its contents in the coprocessor side of it, including a notification to the content of the effect and be transmitted to the main processor, the main processor, leave his memory retention without transmitting the contents of the destination register designation field of the coprocessor calculation instruction, the coprocessor When the calculation results corresponding to the operation instruction receiving a signal indicating that the operation ends when it is returned from the coprocessor, the returned operation result, as can be stored in the register specified by the contents which has been itself stored and held it may be. このデスティネーションレジスタ指定フィールドの内容は例えばFIFOバッファに記憶しておくとよい。 The contents of this destination register designation field may store, for example, FIFO buffer.

また更に、コプロセッサ側から演算終了の旨の信号の伝達を行わない方式にしてもよく、この場合には、主プロセッサの命令解釈制御回路は、コプロセッサ演算命令に対応する演算結果がコプロセッサから返却されるまでのタイミングを演算種別に応じて予め記憶しておいて、サイクル数をカウントすることにより、返却された演算結果を取得するタイミングを検知して、その演算結果を、自ら記憶保持していた内容で指定されるレジスタに格納することとしてもよい。 Further, it may also be a method that does not perform transmission of the operational end of the signal indicating that the coprocessor side, in this case, the instruction decode control circuit of the main processor, the operation result U corresponding to the coprocessor calculation instruction processor the timing to be returned in advance and stored in advance according to the operation type from the by counting the number of cycles, detects the timing of acquiring the returned operation result, the operation result, his memory retention it may be stored in specified contents that were register. そのカウントに係る制御の仕方としては、コプロセッサ演算命令解釈時に演算種別に応じて適切なカウント値を設定しておき、1サイクル経過の度に1つカウンタ値を減算し、カウンタ値が例えば0になったときに、データ伝送路3070上のデータをレジスタに書き込むように制御することとしてもよい。 As a method of control according to the count, may be set an appropriate count value according to the operation type when the coprocessor calculation instruction interpreting subtracts one counter value each time one cycle elapses, the counter value is for example 0 when it is, it may be controlled to write the data on the data transmission line 3070 to the register.

なお、コプロセッサ演算命令を解釈した後に、何サイクルでコプロセッサによる演算結果がデータ伝送路3070上に現れるかを、コプロセッサ演算命令のコプロセッサ命令用コードフィールドの内容となる演算種別と対応させて予め命令解釈制御回路に記憶させておくために設計段階で考慮すべき事項は、主プロセッサ内のレジスタのデータがコプロセッサの演算器4200に到達するまでのサイクル数と、演算種別毎にコプロセッサの演算器4200にて行われる演算に要するサイクル数と、コプロセッサの演算器4200から演算結果が主プロセッサのレジスタバンクにまで到達するサイクル数とである。 Incidentally, after interpreting the coprocessor calculation instruction, something calculation result of the coprocessor in cycle appears on the data transmission line 3070, in correspondence with calculation type as the contents of the coprocessor instruction code field of the coprocessor calculation instruction advance instruction decode control circuit considerations in the design stage in order to keep and stored in includes a number of cycles until the data registers in the main processor reaches the calculator 4200 coprocessor, co every calculation type Te and the number of cycles required for the operations performed by the arithmetic unit 4200 of the processor, the operation result from the arithmetic unit 4200 of the coprocessor is a number of cycles to reach the register bank of the main processor.
(2)実施の形態1の変形例において、コプロセッサの動作周波数が主プロセッサの動作周波数の2倍である場合について示したが、2倍に限られることはなく例えば4倍等であってもよいし、1/2倍である場合について示したが、1/2倍に限られることはなく例えば1/4倍等であってもよい。 Modification of Embodiment 1 (2) implementation, has been described when the operating frequency of the coprocessor is twice the operating frequency of the main processor, even as it for example is not 4-fold such that only doubles good it has been shown for the case of 1/2-fold, may be 1/4 for example not like to be restricted to 1/2-fold.
(3)実施の形態1、2に係る各演算処理装置では、命令解釈制御回路が、コプロセッサ演算命令のコプロセッサ用命令コードフィールドの内容である演算種別をコプロセッサの論理制御回路に伝達することとし、その解釈はコプロセッサの論理制御回路が行うこととしたが、解釈の分担はこれに限定されることはなく、例えば、命令解釈制御回路がコプロセッサ用命令コードフィールドの内容を解釈することによって演算を特定してその旨を示す信号を論理制御回路に伝達して、論理制御回路はその指定された信号で特定される演算を演算器4200に実行させることとしてもよい。 (3) in each arithmetic processing apparatus according to the first and second embodiments, the instruction decode control circuit, to transmit the calculation type is the content of the coprocessor for the instruction code field of the coprocessor calculation instruction to the logic control circuit of the coprocessor and that, although the interpretation was that performed by the logic control circuit of the coprocessor, sharing interpretation is not limited thereto, for example, the instruction decode control circuit interprets the contents of the instruction code field coprocessor a signal to that effect by specifying the calculation by and transmitted to the logic control circuit, the logic control circuit may be performing operations specified by the designated signal to the computing unit 4200.
(4)実施の形態1〜3で示したコプロセッサ演算命令は、ソースデータを格納するレジスタ及びデスティネーションデータを格納するレジスタはそれぞれ1つずつしか指定できないものとしたが、これらを複数指定できるようにしても良い。 (4) Coprocessor operation instruction shown in the embodiment 1-3, although register for storing a register and the destination data storing source data is assumed to not be specified only one each, they can specify multiple it may be so. この場合には、演算処理装置における主プロセッサからコプロセッサへのデータ伝送路とコプロセッサから主プロセッサへのデータ伝送路とをそれぞれ複数設けて、それに応じてデータ転送の制御を行うとよい。 In this case, operation processing from the data transmission path and the coprocessor from the main processor to the coprocessor in the system and a data transmission path to the main processor each plurality, may controls the data transfer accordingly.
(5)実施の形態1で図5〜図13を用いて説明したコプロセッサ演算命令に係る各処理、例えば命令データ取得処理や命令デコード処理やコプロセッサへのデータ受け渡し処理等は、必ずしもそれぞれ1サイクルで実行しなければならないものではなく、例えば命令データ取得処理と命令デコード処理とを1サイクルで実行しても差し支えない。 (5) the processes according to the coprocessor calculation instructions described with reference to FIGS. 5 to 13 in the first embodiment, for example, the data transfer processing of the instruction data acquisition process and instruction decoding and coprocessor is not necessarily respectively 1 not have to run in cycles, for example no problem even executing instructions data acquisition process and the instruction decoding in one cycle.
(6)実施の形態1、2に係る各演算処理装置において、コプロセッサは、命令メモリ5000やデータメモリ6000内のデータを直接アクセスしていないが、専用のバスや命令を設けアクセス可能となるように構成してもよい。 (6) In each processing unit according to the first and second embodiments, the coprocessor is not directly access the data in the instruction memory 5000 and data memory 6000, so as to be accessible a dedicated bus or instruction it may be configured to.
(7)実施の形態1、2に係る各演算処理装置では、コプロセッサ演算命令で指定するソースデータを格納するレジスタとデスティネーションデータを格納するレジスタとはいずれも主プロセッサ側のレジスタとしたが、演算処理装置がコプロセッサを複数有することとし、あるコプロセッサAに演算を行わせるためのコプロセッサ演算命令において指定するソースデータ及びデスティネーションデータを格納するレジスタとして、別のコプロセッサBのレジスタを指定可能にしてもよい。 (7) In the arithmetic processing unit according to the first and second embodiments, although a register and destination both data and registers for storing the main processor side register for storing the source data specified by the coprocessor calculation instruction , and that the processing unit has a plurality of co-processors, as a register for storing the source data and destination data specifying the coprocessor calculation instruction for causing the operation to a coprocessor a, another coprocessor register B it may be can be specified. この場合には、コプロセッサ演算命令に対応して主プロセッサの命令解釈制御回路が行ったレジスタバンク3500への制御内容を、そのまま、コプロセッサBのレジスタバンクへの制御内容として適用するとよい。 In this case, the control contents of the register bank 3500 in response to the coprocessor calculation instruction is the instruction decode control circuit of the main processor was performed, it is advisable to apply as the control contents of the register banks of the coprocessor B. また、そのコプロセッサBのレジスタバンクへの制御は、命令解釈制御回路からの指示を受けてコプロセッサBにおける論理制御回路が実行することとしてもよい。 The control of the register banks of the coprocessor B may be the logic control circuit to perform the coprocessor B in response to an instruction from the instruction decode control circuit.
(8)実施の形態1のいくつかの変形例において、主プロセッサが、コプロセッサの演算結果の受け取り準備ができたときに、受け取り可能の旨の信号を送出することとしたが、この受け取り可能の信号の代わりに、コプロセッサの演算結果をレジスタに書き込んだ直後に書込完了の旨の信号を送出することとし、コプロセッサ側においては、書込完了の旨の信号を受信するまでは演算結果のデータ伝送路3070上への出力を継続するようにしてもよい。 (8) In some variations of the first embodiment, the main processor, when you are received ready for operation result of the coprocessor, it is assumed that sends a signal of receivable in fact, possible the receipt instead of the signal, and sending a signal indicating that the write completion immediately after writing the operation result of coprocessor register, in the co-processor side, the operation until it receives a signal indicating that the write completion the output of the result of the data transmission line 3070 above may be continued.
(9)実施の形態1、2で示した主プロセッサとコプロセッサとを含む演算処理装置は、半導体集積回路として1つの半導体チップ上に構成されていてもよく、その中には、更に命令メモリが含まれていてもよく、更にデータメモリが含まれていてもよい。 (9) main processor and an arithmetic processing unit and a coprocessor shown in the first and second embodiments, may be configured on a single semiconductor chip as a semiconductor integrated circuit, in which further instruction memory may be contained, it may contain further data memory.
(10)実施の形態3では、オブジェクトコード生成装置は、C言語等の高級言語で記述されたソースコードに基づいて、オブジェクトコードを生成するいわゆるコンパイラであることとしたが、オブジェクトコード生成装置は例えばいわゆるアセンブラやアセンブラオプティマイザ等であってもよく、ソースコードは、例えば、実施の形態1で示した演算処理装置の命令セットに対応した命令列からなるコードであってもよく、オブジェクトコード生成装置がそのコードの順序を変更して、コプロセッサ演算命令に対応する演算結果が格納されていないレジスタを入力とする演算命令が含まれないようにしたオブジェクトコード、つまりコプロセッサ演算命令の演算結果を用いる演算命令をそのコプロセッサ演算命令の演算結果がレジスタ (10) In Embodiment 3, the object code generator, based on the source code written in a high-level language such as C language, but it was decided that a so-called compiler for generating object code, the object code generator for example may be a so-called assembler or assembler optimizer, etc., source code, for example, may be a code consisting of instruction sequence corresponding to the instruction set of the processor shown in the first embodiment, an object code generator There change the order of the code, object code calculation results corresponding to the coprocessor calculation instruction has not be any operation instruction to enter the register is not stored, that is, the calculation result of the coprocessor arithmetic instruction operation instruction calculation result of the coprocessor operation instruction register which is used 格納されるはずのサイクル数だけそのコプロセッサ演算命令より後にずらして配置してなるオブジェクトコードを、生成するようにしてもよい。 The object code formed by staggered after the number of cycles by the coprocessor calculation instruction that should be stored, may be generated.

なお、実施の形態2で示した演算処理装置が実行可能なプログラムであってコプロセッサ演算命令を含むものを生成する方法としても、プログラム作成者が直接的にプログラムを記述する他に、実施の形態3で示したオブジェクトコード生成装置からコプロセッサ演算命令に関連して命令順序を変更する機能を省略したものによって、生成することとしてもよい。 Incidentally, as a method of producing those containing a processor is an executable program coprocessor calculation instruction shown in the second embodiment, in addition to the program creator to describe directly program implementation by what is omitted the function of changing the sequence of instructions from the object code generation apparatus as shown in 3 in relation to the coprocessor calculation instruction, it may be generated.
(11)実施の形態3で示したオブジェクトコード生成装置の命令コード記憶部7020に記憶されている情報のうち、サイクル情報を他のコプロセッサに対応した内容のものに切り替えられるようにしてもよい。 (11) among the information stored in the instruction code storage unit 7020 of the object code generating apparatus described in Embodiment 3, it may be switched to those contents corresponding cycle information to other coprocessors . これにより、このオブジェクトコード生成装置は、演算処理装置におけるコプロセッサを他のものに切り替えた場合に対応したオブジェクトコードの生成を行うことができるようになる。 Thus, the object code generating device, it is possible to perform the generation of the object code corresponding to the case where the coprocessor in the arithmetic processing unit is switched to another.
(12)実施の形態3で示したオブジェクトコード生成装置が、コプロセッサ演算命令を含むオブジェクトコードを生成する場合においては、そのコプロセッサ演算命令で指定するソースデータを格納するレジスタとデスティネーションデータを格納するレジスタとはいずれも主プロセッサ側のレジスタであることとしたが、主プロセッサ側のレジスタに限られることはなく、複数のコプロセッサを有する演算処理装置を対象にしたオブジェクトコードを生成するために、あるコプロセッサAに演算を行わせるための演算のソースデータ及びデスティネーションデータを格納するレジスタとして、別のコプロセッサBのレジスタを指定したコプロセッサ演算命令を出力することとしてもよい。 (12) the object code generation device described in Embodiment 3, in the case of generating object code comprising the coprocessor calculation instruction, a register and destination data for storing source data specified by the coprocessor calculation instruction Although it was decided registers storing a are both a register of the main processor side, it is not limited to a register of the main processor side, to produce object code that target processor having a plurality of coprocessors to, as a register for storing the source data and destination data of the operation for causing the operation to a coprocessor a, may output the coprocessor calculation instruction specifies a register of another coprocessor B.
(13)実施の形態3で示したオブジェクトコード生成装置において実行される、命令コード記憶部に記憶された情報とソースコードとに基づいてオブジェクトコードを生成する処理を、定義しているコンピュータプログラムを、記録媒体に記録し又は各種通信路等を介して、流通させ頒布することもできる。 (13) is executed in the object code generating apparatus described in Embodiment 3, a process for generating object code based on the information stored in the instruction code storage unit and the source code, a computer program that defines , via the recording or various communication paths, etc. to the recording medium can also be distributed by distribution. このような記録媒体には、フラッシュメモリ、ICカード、光ディスク、フレキシブルディスク、ROM等がある。 Such recording media, flash memory, IC cards, optical disk, flexible disk, a ROM or the like. 流通、頒布されたコンピュータプログラムはコンピュータに読み出され得るメモリ等に格納されることにより利用に供され、そのコンピュータはそのコンピュータプログラムを実行して実施の形態3で示したオブジェクトコード生成装置の各機能を実現するものとなる。 Distribution, computer program is distributed is made available by being stored in a memory or the like that may be read into the computer, each of the computer object code generating device described in the third embodiment and executes the computer program It becomes to realize the function.
(14)実施の形態1、2で示したコプロセッサは、演算器4200内に複数の要素演算器と選択器を含み、要素演算器は加算、減算、乗算等の演算を行い、コプロセッサの命令やレジスタの設定により、動的に演算の種類を変更できるように構成してもよい。 (14) co-processor shown in the first and second embodiments, includes a selector and a plurality of elements calculator in the calculator 4200, summing elements calculator, subtraction, performs calculation of multiplication, etc., the co-processor by setting instructions and registers it may be configured to dynamically change the type of operation. また、要素演算器同士は互いに接続され、主プロセッサ又はコプロセッサ内のレジスタ及び他の要素演算器の演算結果を、選択器を介して、要素演算器に入力可能にし、コプロセッサの命令やレジスタの設定により、その入力先を動的に変更できるようにしてもよい。 Moreover, between the elements calculator are connected to each other, the operation result of the main processor or the register in the coprocessor and other factors calculator, via a selector, to be input to the element calculator, coprocessor instructions and register by setting it may be able to dynamically change the input source.
(15)実施の形態1、2で示した演算処理装置は、複数のコプロセッサで構成されていてもよく、コプロセッサの演算器4200へ入力されるソースデータとして、主プロセッサのレジスタの内容が用いられることに限られず、自コプロセッサ又は他コプロセッサのレジスタの内容が用いられるようにしてもよく、コプロセッサの命令やレジスタの設定により、その入力先となるソースデータの格納場所を動的に変更できるようにしてもよい。 (15) processing apparatus shown in the first and second embodiments may be composed of a plurality of coprocessors, as source data inputted to the arithmetic unit 4200 of the coprocessor, the contents of the main processor register is not limited to be used may also be the content of the register of its own co-processor or other co-processor is used, the setting of the instruction and the register of the coprocessor, the storage location of the source data to be the input destination dynamic it may be changed to.

また、コプロセッサの演算器4200は加算、減算、乗算等の演算を行い、コプロセッサの命令やレジスタの設定により、演算器4200の演算を動的に変更できるようにしてもよい。 The arithmetic unit 4200 coprocessor addition, subtraction, performs calculation of multiplication, etc., by setting instructions and registers of the coprocessor may be able to dynamically change the operation of the arithmetic unit 4200. 更に、コプロセッサの論理制御回路4100は、特殊命令やレジスタの設定により、コプロセッサ演算命令のフォーマット等を動的に変更できるようにしてもよい。 Moreover, the logic control circuit 4100 of the coprocessor, the special instruction and register set may be able to dynamically change the format, etc. of the coprocessor calculation instruction. つまり、命令コード、入力先、出力先、演算等のビット割付のマッピングを動的に変更できるように構成してもよい。 That is, the instruction code, input source, output destination may be configured to dynamically change the mapping of the bit allocation of the operation or the like.

本発明に係る演算処理装置は、各種コンピュータ、各種家電機器等のプログラム実行可能な機器に搭載され利用されるものである。 Processor according to the present invention are those various computer is mounted to the program executable equipment such as various home appliances are utilized.

xexec命令を含むアセンブラプログラムの一部を例示する図である。 Is a diagram illustrating part of the assembler program comprising xexec instructions. コプロセッサ演算命令(xexec命令)のフォーマットを示す図である。 It illustrates the format of coprocessor calculation instruction (Xexec instruction). 実施の形態1に係る演算処理装置の構成を示すブロック図である。 Is a block diagram showing a configuration of a processor according to the first embodiment. レジスタバンク3500の構成を詳細に示す構成図である。 It is a block diagram showing a detailed configuration of the register bank 3500. コプロセッサ演算命令に係る各処理についてのタイミングチャートである。 According to the coprocessor calculation instruction is a timing chart for each treatment. 変形例1におけるコプロセッサ演算命令に係る各処理についてのタイミングチャートである。 According to the coprocessor calculation instruction in a modified example 1 is a timing chart for each treatment. 変形例2におけるコプロセッサ演算命令に係る各処理についてのタイミングチャートである。 According to the coprocessor calculation instruction in a modified example 2 is a timing chart for each treatment. 変形例2におけるコプロセッサ演算命令に係る各処理についてのタイミングチャートであり、受け取り可能の旨を示す信号が遅れて発された場合の例を示す。 Is a timing chart for each process according to the coprocessor calculation instruction in the modification 2, an example of a case where a signal indicating a receivable of effect was issued late. 変形例3におけるコプロセッサ演算命令に係る各処理についてのタイミングチャートである。 According to the coprocessor calculation instruction in a modified example 3 is a timing chart for each treatment. 変形例3におけるコプロセッサ演算命令に係る各処理についてのタイミングチャートであり、受け取り可能の旨を示す信号が遅れて発された場合の例を示す。 It is a timing chart for each process according to the coprocessor calculation instruction in Modification 3, an example of a case where a signal indicating a receivable of effect was issued late. 変形例4におけるコプロセッサ演算命令に係る各処理についてのタイミングチャートである。 According to the coprocessor calculation instruction in a modified example 4 is a timing chart for each treatment. 変形例5におけるコプロセッサ演算命令に係る各処理についてのタイミングチャートである。 According to the coprocessor calculation instruction in a modified example 5 is a timing chart for each treatment. 変形例6におけるコプロセッサ演算命令に係る各処理についてのタイミングチャートである。 According to the coprocessor calculation instruction in a modified example 6 is a timing chart for each treatment. 実施の形態3に係るオブジェクトコード生成装置の構成を示すブロック図である。 Is a block diagram showing the configuration of an object code generating apparatus according to the third embodiment. ソースコードの例を示す図である。 Is a diagram illustrating an example of a source code. 図15に例示するソースコードに基づいて生成されるオブジェクトコードの例を示す図である。 It is a diagram illustrating an example of an object code to be generated based on the source code illustrated in FIG. 15. コプロセッサに演算を行わせるプログラムの例を示す図である。 Is a diagram showing an example of a program to perform the operation to the coprocessor.

符号の説明 DESCRIPTION OF SYMBOLS

21 命令識別コードフィールド 22 コプロセッサ用命令コードフィールド 23 デスティネーションレジスタ指定フィールド 24 ソースレジスタ指定フィールド 100 演算処理装置 3000 主プロセッサ 3010、3020、3030、3040、3050、4020、4040 制御信号線 3060、3065、3070、3075、3080、3085、4060、4065、5010 データ伝送路 3100 命令解釈制御回路 3200 演算器 3500、4500 レジスタバンク 3650、3651、3665、3670、3680 セレクタ 4000 コプロセッサ 4100 論理制御回路 4200 演算器 5000 命令メモリ 6000 データメモリ 7000 オブジェクトコード生成装置 7010 ソースコード取得部 70 21 instruction identification code field 22 coprocessor for instruction code field 23 destination register designation field 24 source register designation field 100 processor 3000 main processor 3010,3020,3030,3040,3050,4020,4040 control signal lines 3060,3065, 3070,3075,3080,3085,4060,4065,5010 data transmission path 3100 instruction decode control circuit 3200 calculator 3500,4500 register bank 3650,3651,3665,3670,3680 selector 4000 coprocessor 4100 logic control circuit 4200 calculator 5000 instruction memory 6000 data memory 7000 object code generator 7010 source code acquiring unit 70 0 命令コード記憶部 7030 オブジェクトコード生成部 0 instruction code storage unit 7030 object code generator

Claims (12)

  1. 主プロセッサとコプロセッサとを備える演算処理装置であって、 A processing apparatus comprising a main processor and the coprocessor,
    前記主プロセッサは、命令を逐次解釈して命令に基づく制御を行う命令解釈制御部を有し、 It said main processor has a command interpretation controller which performs control based on the instruction interprets the instructions sequentially,
    前記命令解釈制御部は、前記コプロセッサに実行させるべき演算処理の種別と、当該演算処理の対象が格納されている第1記憶領域と、前記コプロセッサが演算処理をした結果が格納されるべき第2記憶領域とを指定する処理依頼命令を解釈することにより、前記コプロセッサに、第1記憶領域の内容を演算処理対象として当該種別の演算処理を実行させ、更に、前記コプロセッサによりなされた、ある演算処理の結果を、第2記憶領域に書き込む制御を行う ことを特徴とする演算処理装置。 The instruction interpretation controller includes a type of processing to be executed by the coprocessor, to a first storage area target of the processing is stored as a result of the co-processor has an arithmetic processing is stored by interpreting a processing request command specifying the second storage area, in the coprocessor, the contents of the first storage area as a processing target to execute the calculation processing of the type, addition was made by the co-processor , processing unit and performs control to write the result of a calculation process in the second storage area.
  2. 前記主プロセッサは、演算命令に基づき演算を行う際に、演算の対象又は結果を格納するための複数のレジスタを有しており、 It said main processor, in executing the operation based on the operation instruction has a plurality of registers for storing the object or result of the operation,
    処理依頼命令は、第1記憶領域を指定するものとして前記複数のレジスタのうちいずれかを識別する第1データと、第2記憶領域を指定するものとして前記複数のレジスタのうちいずれかを識別する第2データとを含み、 Processing request command identifies a first data identifying one of said plurality of registers as specifying the first memory area, the one of the plurality of registers as specifying the second storage area and a second data,
    前記命令解釈制御部は、前記コプロセッサに、処理依頼命令に含まれる第1データで識別されるレジスタの内容を演算処理対象として、当該処理依頼命令で指定される種別の演算処理を実行させ、更に、前記コプロセッサによりなされた、ある演算処理の結果を、当該処理依頼命令に含まれる第2データで識別されるレジスタに書き込む制御を行う ことを特徴とする請求項1記載の演算処理装置。 The instruction interpreting control unit, the coprocessor, as the contents of the registers identified by the first data processing target included in the processing request command, to execute the calculation processing of the type designated by the process request command, further, the made by the co-processor, the result of the arithmetic processing in the arithmetic processing apparatus according to claim 1, wherein the performing control to write to the register identified by the second data included in the processing request command.
  3. 処理依頼命令は、コードフォーマットとして、前記主プロセッサが実行可能な命令群中で当該処理依頼命令を他の命令と識別するための命令識別コードを格納するフィールドの他に、コプロセッサに実行させるべき演算処理の種別を示すコプロセッサ用命令コードを格納するフィールドと、第1データを格納するフィールドと、第2データを格納するフィールドとの各々を含み、 Processing request instruction, as a code format, in addition to the field for storing an instruction identification code for identifying the processing request instruction with other instructions in said main processor executable instruction set, to be executed by the coprocessor includes a field for storing an instruction code for the coprocessor indicating the type of processing, a field for storing the first data, each of the field storing the second data,
    前記命令解釈制御部は、処理依頼命令に含まれるコプロセッサ用命令コードを前記コプロセッサへと送出するよう制御し、当該処理依頼命令に含まれる第1データにより識別されるレジスタの内容であるソースデータを前記コプロセッサへと送出するよう制御し、更に、前記コプロセッサから送出された、ある演算処理の結果である結果データを取得して、当該処理依頼命令に含まれる第2データにより識別されるレジスタに書き込むよう制御し、 The instruction interpretation controller is the contents of the register identified instruction code coprocessor included in the processing request command and control to delivery to the coprocessor, the first data included in the processing request command source and controls to deliver the data to the coprocessor, are identified further, the sent from the coprocessor, and obtain the result data is the result of the arithmetic processing in, the second data included in the processing request command and control to write to that register,
    前記コプロセッサは、前記主プロセッサから送出されたコプロセッサ用命令コードを解釈し、前記主プロセッサから送出されたソースデータを取得して演算処理対象にして、当該コプロセッサ用命令コードにより示されている種別の演算処理を実行し、当該演算処理の結果である結果データを前記主プロセッサへと送出する ことを特徴とする請求項2記載の演算処理装置。 The coprocessor interprets the instruction code coprocessor sent from the main processor, and the arithmetic processing target to obtain the source data sent from the main processor, indicated by the instruction code for the coprocessor a process of calculating a type are, arithmetic processing apparatus according to claim 2, wherein the result data is the result of the arithmetic operation, characterized in that sending to the main processor.
  4. 前記命令解釈制御部は、処理依頼命令に含まれるコプロセッサ用命令コードを前記コプロセッサへ送出する際に、当該処理依頼命令に含まれる第2データを当該コプロセッサ用命令コードと共に前記コプロセッサに送出し、 The instruction interpretation controller includes an instruction code for coprocessor included in the processing request command when sending to the coprocessor, the second data included in the processing request command to the coprocessor together with the instruction code for the coprocessor delivery,
    前記コプロセッサは、前記主プロセッサから送出されたコプロセッサ用命令コードにより示されている種別の演算処理を実行した結果である結果データを前記主プロセッサへと送出する際に、当該コプロセッサ用命令コードと共に前記主プロセッサから送出された第2データを、当該結果データと共に前記主プロセッサへと送出し、 The coprocessor, the result data is the result of a process of calculating a type indicated by the instruction code for sending coprocessor from the main processor when transmitting to the main processor, the instruction for the coprocessor the second data sent from the main processor with the code, sends to the main processor together with the result data,
    前記命令解釈制御部は、前記コプロセッサから共に送出された結果データと第2データとを取得して、当該結果データを当該第2データにより識別されるレジスタに書き込むよう制御する ことを特徴とする請求項3記載の演算処理装置。 The instruction interpretation controller, the acquires the co results together sent from the processor data and the second data, characterized in that the result data is controlled to write to a register identified by the second data arithmetic processing device according to claim 3.
  5. 前記命令解釈制御部が処理依頼命令に含まれる第2データにより識別されるレジスタに書き込むよう制御する結果データは、前記コプロセッサから送出された、当該処理依頼命令で指定された演算処理の結果であり、 Result data for controlling to write to a register in which the instruction interpretation controller is identified by the second data contained in the processing request command, the sent from the coprocessor, the result of arithmetic processing specified in the processing request command Yes,
    前記命令解釈制御部は、前記演算処理の各種別に対応付けて演算処理時間を示す時間情報を予め記憶しており、処理依頼命令に含まれていた前記コプロセッサ用命令コードと、前記ソースデータとを前記コプロセッサへと送出した後、当該コプロセッサ用命令コードで示される演算処理の種別に対応して記憶している時間情報が示す演算処理時間が経過した時に、前記コプロセッサから送出された結果データを、当該処理依頼命令に含まれていた第2データにより識別されたレジスタに書き込むよう制御する ことを特徴とする請求項3記載の演算処理装置。 The instruction interpretation controller preliminarily stores the time information indicating a processing time in association with each type of the arithmetic processing, an instruction code for the coprocessor which was included in the processing request command, and the source data after sending to the coprocessor, when the operation processing time indicated by the time information stored in correspondence to the type of calculation process shown by the instruction code for the coprocessor has elapsed, sent from the coprocessor the result data, the arithmetic processing apparatus according to claim 3, wherein the controller controls to write to the processing request register identified by the second data contained in the instruction.
  6. 前記命令解釈制御部は、前記コプロセッサから送出された結果データが前記処理依頼命令に含まれる第2データにより識別されるレジスタに書き込まれる際に、所定信号を前記コプロセッサへと送出するよう制御し、 The instruction interpretation controller, when the result data sent from the coprocessor is written into the register identified by the second data contained in the processing request command, control so as to deliver a predetermined signal to the coprocessor and,
    前記コプロセッサは、前記所定信号が前記主プロセッサにより送出されたことを検知するまで、前記結果データの送出を継続し、当該検知後に当該結果データの送出を停止する ことを特徴とする請求項3記載の演算処理装置。 The coprocessor until it detects that the predetermined signal has been sent by the main processor, the continued delivery of result data, according to claim 3, characterized in that stopping the result transmission of the data after the detection processor according.
  7. 前記コプロセッサは、コプロセッサ用命令コードにより指定される各種別の演算処理について、演算処理開始からいずれも同一時間の経過後に結果データを出力するものであり、 The coprocessor, for each type of processing specified by the coprocessor instruction code for, it neither from the processing start and outputs the resulting data after the lapse of the same time,
    前記命令解釈制御部が処理依頼命令に含まれる第2データにより識別されるレジスタに書き込むよう制御する結果データは、前記コプロセッサから送出された、当該処理依頼命令に先行して解釈した別の処理依頼命令により指定される演算処理の結果データであり、 Result data for controlling to write to a register in which the instruction interpretation controller is identified by the second data contained in the processing request command, the sent from the coprocessor, another process of interpreting prior to the processing request command the result data of the arithmetic processing designated by the request command,
    前記命令解釈制御部は、処理依頼命令に第2データと共に含まれていた前記コプロセッサ用命令コードを前記コプロセッサへと送出した後、当該処理依頼命令に後続して別の命令を解釈する前に、前記コプロセッサが当該処理依頼命令に先行する処理依頼命令で指定した演算処理を行った結果として送出した結果データを、当該第2データにより識別されたレジスタに書き込むよう制御する ことを特徴とする請求項3記載の演算処理装置。 The instruction interpretation controller, after the instruction code for the coprocessor which has been included with the second data processing request command has been sent to the coprocessor, before interpreting the different instruction subsequent to the processing request command in a characterized in that said coprocessor a result data sent as a result of the arithmetic operation designated by the process request command that precedes the processing request command, and controls to write to the register identified by the second data arithmetic processing apparatus according to claim 3 wherein.
  8. 前記命令解釈制御部が行うところの、処理依頼命令に含まれる第2データで識別されるレジスタに書き込む前記制御は、当該処理依頼命令で指定される種別の演算処理を前記コプロセッサに実行させた結果を当該レジスタに書き込む制御である ことを特徴とする請求項2記載の演算処理装置。 At which the instruction interpretation controller performs the control to write to the register identified by the second data contained in the processing request command and to execute the calculation processing of the type designated by the process request command to the coprocessor results arithmetic processing apparatus according to claim 2, characterized in that the control of writing to the register.
  9. 前記演算処理装置は第1及び第2のコプロセッサを備え、 The arithmetic processing device comprises a first and a second co-processor,
    第2のコプロセッサは、複数のレジスタを有しており、 The second co-processor has a plurality of registers,
    前記処理依頼命令は、第1のコプロセッサに実行させるべき演算処理の種別の指定と、第1記憶領域を指定するものとして第2のコプロセッサの複数のレジスタのうちいずれかを識別する第1データと、第2記憶領域を指定するものとして第2のコプロセッサの複数のレジスタのうちいずれかを識別する第2データとを含み、 The processing request command is the first to identify and specify the operation of the process type to be executed by the first co-processor, one of a plurality of registers of the second co-processor as specifying the first storage area data, and a second data identifying one of a plurality of registers of the second co-processor as specifying the second storage area,
    前記命令解釈制御部は、第1のコプロセッサに、処理依頼命令に含まれる第1データで識別される、第2のコプロセッサ内のレジスタの内容を演算処理対象として、当該処理依頼命令で指定される種別の演算処理を実行させ、更に、第1のコプロセッサによりなされた、ある演算処理の結果を、当該処理依頼命令に含まれる第2データで識別される、第2のコプロセッサ内のレジスタに書き込む制御を行う ことを特徴とする請求項1記載の演算処理装置。 The instruction interpretation controller includes a first co-processor, is identified by the first data included in the processing request command, the contents of registers in the second co-processor as a processing target, designated by the process request command to execute the calculation processing of the type to be further made by the first co-processor, the result of arithmetic processing that is identified by the second data included in the processing request command, the second coprocessor arithmetic processing apparatus according to claim 1, wherein the performing control to write to the register.
  10. 入力されるデータに基づいて、クレーム1の演算処理装置にコプロセッサと共に備えられている主プロセッサに実行させるための機械語の命令列を生成する命令列生成装置であって、 Based on the data inputted, an instruction sequence generation unit which generates an instruction sequence of machine language for execution by the main processor that is provided with the coprocessor arithmetic processing unit of claim 1,
    記憶手段と、 A storage means,
    入力されたデータを取得する入力データ取得手段と、 An input data acquisition means for acquiring the input data,
    前記入力されたデータに基づいて、コプロセッサに実行させるべき演算処理の種別と、当該演算処理の対象が格納されている、当該コプロセッサの外部の第1記憶領域と、前記コプロセッサが演算処理をした結果が格納されるべき、当該コプロセッサの外部の第2記憶領域とを指定する処理依頼命令を含む機械語の命令列を生成し、前記記憶手段に当該命令列を記録する命令列生成手段とを備える ことを特徴とする命令列生成装置。 On the basis of the input data, the type of processing to be executed by the coprocessor, subject to the processing is stored, and the outside of the first storage area of ​​the coprocessor, the coprocessor arithmetic process to be stored the result, and generates an instruction sequence of the machine language, including a processing request command specifying the outside of the second storage area of ​​the coprocessor, generation instruction sequence for recording the instruction sequence in said storage means instruction string generating device, characterized in that it comprises a means.
  11. 前記命令列生成手段により生成される処理依頼命令は、コードフォーマットとして、前記主プロセッサが実行可能な命令群中で当該処理依頼命令を他の命令と識別するための命令識別コードを格納するフィールドの他に、コプロセッサに実行させるべき演算処理の種別を示すコプロセッサ用命令コードを格納するフィールドと、第1記憶領域を指定するものとして、前記主プロセッサが有する複数のレジスタのうちのいずれかを識別する第1データを格納するフィールドと、第2記憶領域を指定するものとして、前記主プロセッサが有する複数のレジスタのうちのいずれかを識別する第2データを格納するフィールドとの各々を含む ことを特徴とする請求項10記載の命令列生成装置。 Wherein the processing request instruction generated by the instruction sequence generation means, a code format, the field for storing an instruction identification code for identifying the other instructions the processing request command by the main processor executable instructions in group otherwise, a field for storing an instruction code for the coprocessor indicating the type of processing to be executed by the coprocessor, as specifying the first storage region, any of a plurality of registers that the main processor has a field for storing first data identifying, as specifying the second storage area, to include each of the field storing the second data identifying one of a plurality of registers that the main processor has instruction sequence generation apparatus according to claim 10, wherein.
  12. 前記命令列生成装置は、更に、コプロセッサが実行可能な演算処理の各種別に対応付けて、演算処理時間を示す時間情報を予め記憶している演算時間管理手段を含み、 Said instruction sequence generation device further in association with each type of coprocessor capable of executing calculation processing includes a calculation time management means stores in advance time information representing the operation processing time,
    前記命令列生成手段は、生成した処理依頼命令に含まれる第2データで識別される前記主プロセッサのレジスタの内容を演算対象とする演算命令を、命令列において当該処理依頼命令に後続する位置に生成する際には、当該処理依頼命令に含まれるコプロセッサ用命令コードで示される種別の演算処理に関する演算処理時間を、前記演算時間管理手段により記憶されている時間情報に基づいて特定し、当該処理依頼命令から、特定した演算処理時間に相当する命令数分以上の間隔を空けた位置に当該演算命令を置くようにして前記命令列の生成を行う ことを特徴とする請求項11記載の命令列生成装置。 The instruction sequence generation means generates the processing request instruction operation instruction register contents of the main processor is identified by the second data and calculation target included in, the subsequent position to the processing request instruction in the instruction sequence when generated, the processing time for calculation of the type indicated by the instruction code coprocessor included in the processing request command specifies on the basis of the time information stored by the operation time management means, the from the process request instruction, the instruction of claim 11, wherein the performing the generation of the instruction sequence so as to put the operation instruction to a position spaced above instructions number of which corresponds to the specified processing time column generating device.
JP2005191931A 2004-07-06 2005-06-30 Processor system for controlling data transfer between processor and coprocessor Pending JP2006048661A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004199138 2004-07-06
JP2005191931A JP2006048661A (en) 2004-07-06 2005-06-30 Processor system for controlling data transfer between processor and coprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005191931A JP2006048661A (en) 2004-07-06 2005-06-30 Processor system for controlling data transfer between processor and coprocessor

Publications (1)

Publication Number Publication Date
JP2006048661A true true JP2006048661A (en) 2006-02-16

Family

ID=36027088

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005191931A Pending JP2006048661A (en) 2004-07-06 2005-06-30 Processor system for controlling data transfer between processor and coprocessor

Country Status (1)

Country Link
JP (1) JP2006048661A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012252374A (en) * 2011-05-31 2012-12-20 Renesas Electronics Corp Information processor

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434689B1 (en) *
JPH06161745A (en) * 1992-11-18 1994-06-10 Fujitsu Ltd Method and device for verifying data processor
JPH09212360A (en) * 1996-02-02 1997-08-15 Toshiba Corp Data processor
JPH1185513A (en) * 1997-09-03 1999-03-30 Hitachi Ltd Processor
JP2001265593A (en) * 2000-03-16 2001-09-28 Fujitsu Ltd Information processor
US6434689B2 (en) * 1998-11-09 2002-08-13 Infineon Technologies North America Corp. Data processing unit with interface for sharing registers by a processor and a coprocessor
US20040227763A1 (en) * 2003-05-14 2004-11-18 Wichman Shannon A. Coprocessor responsive to user-defined commands, and data processing systems including same

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434689B1 (en) *
JPH06161745A (en) * 1992-11-18 1994-06-10 Fujitsu Ltd Method and device for verifying data processor
JPH09212360A (en) * 1996-02-02 1997-08-15 Toshiba Corp Data processor
JPH1185513A (en) * 1997-09-03 1999-03-30 Hitachi Ltd Processor
US6434689B2 (en) * 1998-11-09 2002-08-13 Infineon Technologies North America Corp. Data processing unit with interface for sharing registers by a processor and a coprocessor
JP2001265593A (en) * 2000-03-16 2001-09-28 Fujitsu Ltd Information processor
US20040227763A1 (en) * 2003-05-14 2004-11-18 Wichman Shannon A. Coprocessor responsive to user-defined commands, and data processing systems including same

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012252374A (en) * 2011-05-31 2012-12-20 Renesas Electronics Corp Information processor

Similar Documents

Publication Publication Date Title
US5926644A (en) Instruction formats/instruction encoding
US7861060B1 (en) Parallel data processing systems and methods using cooperative thread arrays and thread identifier values to determine processing behavior
US5226131A (en) Sequencing and fan-out mechanism for causing a set of at least two sequential instructions to be performed in a dataflow processing computer
US6088786A (en) Method and system for coupling a stack based processor to register based functional unit
Rixner Stream processor architecture
US5430850A (en) Data processing system with synchronization coprocessor for multiple threads
US5159686A (en) Multi-processor computer system having process-independent communication register addressing
US7631305B2 (en) Methods and products for processing loop nests
US6446258B1 (en) Interactive instruction scheduling and block ordering
US7302557B1 (en) Method and apparatus for modulo scheduled loop execution in a processor architecture
US20120131309A1 (en) High-performance, scalable mutlicore hardware and software system
US20020087900A1 (en) System and method for reducing power consumption in a data processor having a clustered architecture
US4879646A (en) Data processing system with a pipelined structure for editing trace memory contents and tracing operations during system debugging
Gordon et al. Exploiting coarse-grained task, data, and pipeline parallelism in stream programs
US5896517A (en) High performance processor employing background memory move mechanism
US5083267A (en) Horizontal computer having register multiconnect for execution of an instruction loop with recurrance
EP1061439A1 (en) Memory and instructions in computer architecture containing processor and coprocessor
US8381203B1 (en) Insertion of multithreaded execution synchronization points in a software program
US20040073772A1 (en) Method and apparatus for thread-based memory access in a multithreaded processor
US5850553A (en) Reducing the number of executed branch instructions in a code sequence
US5010476A (en) Time multiplexed system for tightly coupling pipelined processors to separate shared instruction and data storage units
US6986131B2 (en) Method and apparatus for efficient code generation for modulo scheduled uncounted loops
US5036454A (en) Horizontal computer having register multiconnect for execution of a loop with overlapped code
US7493475B2 (en) Instruction vector-mode processing in multi-lane processor by multiplex switch replicating instruction in one lane to select others along with updated operand address
EP0330836A2 (en) Method for multiprocessor system having self-allocating processors

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100823

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100908

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110809

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120529

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120725

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120801

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20121012