JP4211851B2 - Integrated circuit device - Google Patents

Integrated circuit device Download PDF

Info

Publication number
JP4211851B2
JP4211851B2 JP2007039431A JP2007039431A JP4211851B2 JP 4211851 B2 JP4211851 B2 JP 4211851B2 JP 2007039431 A JP2007039431 A JP 2007039431A JP 2007039431 A JP2007039431 A JP 2007039431A JP 4211851 B2 JP4211851 B2 JP 4211851B2
Authority
JP
Japan
Prior art keywords
data
coprocessor
cpu
register
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007039431A
Other languages
Japanese (ja)
Other versions
JP2007128561A (en
Inventor
真 工藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2007039431A priority Critical patent/JP4211851B2/en
Publication of JP2007128561A publication Critical patent/JP2007128561A/en
Application granted granted Critical
Publication of JP4211851B2 publication Critical patent/JP4211851B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、集積回路装置に関する。   The present invention relates to an integrated circuit device.

近年の半導体技術の向上に伴って、様々な電子機器の需要が拡大されてきている。そのような電子機器には、様々な制御を処理するためのCPU(Central-Processing-Unit)が内蔵される場合が多々ある。このようなプロセッサが内蔵された電子機器に対して、より高度な処理能力を持たせる場合、CPUとは別に、特定の処理に特化されたコプロセッサを設ける方法が知られている。この場合、CPUが苦手とする処理をコプロセッサに処理させることで、全体の処理を高速に行うことができる。   With the recent improvement of semiconductor technology, the demand for various electronic devices has been expanded. Such electronic devices often have a built-in CPU (Central-Processing-Unit) for processing various controls. In order to provide an electronic device incorporating such a processor with a higher level of processing capability, a method is known in which a coprocessor specialized for specific processing is provided separately from the CPU. In this case, the overall processing can be performed at high speed by causing the coprocessor to perform processing that the CPU is not good at.

ところが、CPUとコプロセッサとを接続するバスの制限により、コプロセッサの処理結果が複数ある場合や、処理結果のデータ量が大きい場合に、CPUはコプロセッサから処理結果等を一度に受け取ることができなかった。このため、CPUは、コプロセッサから情報を複数回に分けて受け取る必要があり、処理能力の向上の妨げとなっていた。また、処理能力をさらに向上させるためには、動作クロックを引き上げるか、ハードウェア規模を拡大して処理能力を上げる必要があったが、これらの方法は低消費電力化やコスト削減に対する妨げとなっていた。
特開2000−284962号公報
However, due to restrictions on the bus connecting the CPU and the coprocessor, when there are multiple coprocessor processing results or when the data amount of the processing results is large, the CPU may receive the processing results from the coprocessor at a time. could not. For this reason, it is necessary for the CPU to receive information from the coprocessor in a plurality of times, which hinders improvement in processing capability. In order to further improve the processing capacity, it was necessary to increase the processing capacity by raising the operating clock or expanding the hardware scale, but these methods hinder low power consumption and cost reduction. It was.
Japanese Patent Laid-Open No. 2000-284963

本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、ハードウェア規模の増大を最小限にしながら、高速な演算処理を行う集積回路装置を提供することにある。   The present invention has been made in view of the above technical problems, and an object thereof is to provide an integrated circuit device that performs high-speed arithmetic processing while minimizing an increase in hardware scale. There is.

(1)本発明は、
命令コードに基づいて所与の処理を実行するCPUを含む集積回路装置であって、
コプロセッサから出力されるデータアドレスを前記CPUに供給するためのデータアドレス供給線を含み、
前記CPUは、
データアドレスバスを介してメモリにデータアドレスを供給し、ライトデータバスを介してライトデータを供給することで、前記メモリへデータの書き込みを行うロードストア部と、
前記データアドレス供給線を介して供給されるデータアドレスと前記ロードストア部から出力されるデータアドレスを受け、そのいずれかのデータアドレスを前記データアドレスバスに供給するデータアドレス選択回路と、
を含むことを特徴とする。
(1) The present invention
An integrated circuit device including a CPU that executes a given process based on an instruction code,
A data address supply line for supplying a data address output from the coprocessor to the CPU;
The CPU
A load store unit for writing data to the memory by supplying a data address to the memory via the data address bus and supplying write data via the write data bus;
A data address selection circuit that receives a data address supplied via the data address supply line and a data address output from the load store unit, and supplies any one of the data addresses to the data address bus;
It is characterized by including.

(2)本発明の集積回路装置は、
前記コプロセッサから前記データアドレス選択回路にデータアドレス選択信号を供給するためのデータアドレス選択信号供給線をさらに含み、
前記データアドレス選択回路は、
前記データアドレス選択信号に基づいて、前記データアドレス供給線を介して供給されるデータアドレス及び前記ロードストア部から出力されるデータアドレスのうちのいずれかのデータアドレスを前記データアドレスバスに供給することを特徴とする。
(2) The integrated circuit device of the present invention is
A data address selection signal supply line for supplying a data address selection signal from the coprocessor to the data address selection circuit;
The data address selection circuit includes:
Based on the data address selection signal, one of a data address supplied via the data address supply line and a data address output from the load store unit is supplied to the data address bus. It is characterized by.

(3)本発明は、
命令コードに基づいて所与の処理を実行するCPUを含む集積回路装置であって、
前記コプロセッサから出力されるライトデータを前記CPUに供給するためのライトデータ供給線を含み、
前記CPUは、
データアドレスバスを介してメモリにデータアドレスを供給し、ライトデータバスを介してライトデータを供給することで、前記メモリへデータの書き込みを行うロードストア部と、
前記ライトデータ供給線を介して供給されるライトデータと前記ロードストア部から出力されるライトデータを受け、そのいずれかのライトデータを前記ライトデータバスに供給するライトデータ選択回路と、
を含むことを特徴とする。
(3) The present invention
An integrated circuit device including a CPU that executes a given process based on an instruction code,
A write data supply line for supplying the CPU with write data output from the coprocessor;
The CPU
A load store unit for writing data to the memory by supplying a data address to the memory via the data address bus and supplying write data via the write data bus;
A write data selection circuit that receives write data supplied via the write data supply line and write data output from the load store unit, and supplies any one of the write data to the write data bus;
It is characterized by including.

(4)本発明の集積回路装置は、
前記コプロセッサから前記ライトデータ選択回路にライトデータ選択信号を供給するためのライトデータ選択信号供給線をさらに含み、
前記ライトデータ選択回路は、
前記ライトデータ選択信号に基づいて、前記ライトデータ供給線を介して供給されるライトデータ及び前記ロードストア部から出力されるライトデータのうちのいずれかのライトデータを前記ライトデータバスに供給することを特徴とする。
(4) The integrated circuit device of the present invention is
A write data selection signal supply line for supplying a write data selection signal from the coprocessor to the write data selection circuit;
The write data selection circuit includes:
Based on the write data selection signal, one of the write data supplied via the write data supply line and the write data output from the load store unit is supplied to the write data bus. It is characterized by.

(5)本発明は、
命令コードに基づいて所与の処理を実行するCPUを含む集積回路装置であって、
前記コプロセッサから出力されるリードデータを前記CPUに供給するためのリードデータ供給線を含み、
前記CPUは、
データアドレスバスを介してメモリにデータアドレスを供給し、リードデータバスを介してリードデータを受け取ることで、前記メモリからデータの読み出しを行うロードストア部と、
前記リードデータ供給線を介して供給される前記リードデータと前記リードデータバスから供給されるリードデータを受け、そのいずれかのリードデータを前記ロードストア部に供給するリードデータ選択回路と、
を含むことを特徴とする。
(5) The present invention
An integrated circuit device including a CPU that executes a given process based on an instruction code,
A read data supply line for supplying read data output from the coprocessor to the CPU;
The CPU
A load store unit for reading data from the memory by supplying a data address to the memory via the data address bus and receiving read data via the read data bus;
A read data selection circuit which receives the read data supplied from the read data supply line and the read data supplied from the read data bus, and supplies any one of the read data to the load store unit;
It is characterized by including.

(6)本発明の集積回路装置は、
前記コプロセッサからリードデータ選択回路にリードデータ選択信号を供給するためのリードデータ選択信号供給線をさらに含み、
前記リードデータ選択回路は、
前記リードデータ選択信号に基づいて、前記コプロセッサリードデータ及び前記CPUリードデータのうちのいずれかのリードデータを前記ロードストア部に供給することを特徴とする。
(6) The integrated circuit device of the present invention is
A read data selection signal supply line for supplying a read data selection signal from the coprocessor to a read data selection circuit;
The read data selection circuit includes:
One of the coprocessor read data and the CPU read data is supplied to the load store section based on the read data selection signal.

(7)本発明の集積回路装置は、
前記CPUは、前記命令コードに基づく演算処理を行うALUを含み、
前記CPUは、
前記ALUの演算処理結果に基づく第1のフラグデータを前記コプロセッサに供給するための第1のフラグデータ供給線と、
前記コプロセッサの演算処理結果に基づく第2のフラグデータを前記ALUに供給するための第2のフラグデータ供給線と、
を含み、
前記ALUは、
前記第1又は第2のフラグデータを格納するフラグレジスタと、
前記第1及び第2のフラグデータ供給線から前記第1及び第2のフラグデータを受け、前記第1及び第2のフラグデータのいずれかを前記フラグレジスタに供給するフラグデータ選択回路と、
を含むことを特徴とする。
(7) The integrated circuit device of the present invention is
The CPU includes an ALU that performs arithmetic processing based on the instruction code,
The CPU
A first flag data supply line for supplying first flag data based on the arithmetic processing result of the ALU to the coprocessor;
A second flag data supply line for supplying second flag data based on the arithmetic processing result of the coprocessor to the ALU;
Including
The ALU is
A flag register for storing the first or second flag data;
A flag data selection circuit that receives the first and second flag data from the first and second flag data supply lines and supplies either of the first and second flag data to the flag register;
It is characterized by including.

(8)本発明の集積回路装置は、
前記CPUは、
フラグデータ選択信号を前記コプロセッサから前記ALUに供給するためのフラグデータ選択信号供給線をさらに含み、
前記ALUの前記フラグデータ選択回路は、前記フラグデータ選択信号供給線を介して供給される前記フラグデータ選択信号に基づいて、前記第1及び第2のフラグデータのいずれかを前記フラグレジスタに選択出力することを特徴とする。
(8) The integrated circuit device of the present invention is
The CPU
A flag data selection signal supply line for supplying a flag data selection signal from the coprocessor to the ALU;
The flag data selection circuit of the ALU selects one of the first and second flag data as the flag register based on the flag data selection signal supplied via the flag data selection signal supply line. It is characterized by outputting.

本実施の形態は、命令コードに基づいて所与の処理を実行するCPUを含む集積回路装置であって、メモリから前記CPUに命令コードを供給するための命令コードバスと、コプロセッサから出力される命令コードを前記CPUに供給するための命令コード供給線と、を含み、前記CPUは、命令コードをフェッチするフェッチ部と、前記命令コードバスを介して入力される命令コードと、前記命令コード供給線を介して供給される命令コードとを受け、そのいずれかの命令コードを前記フェッチ部に供給する命令コード選択回路と、を含む集積回路装置に関する。   The present embodiment is an integrated circuit device including a CPU that executes a given process based on an instruction code, and is output from an instruction code bus for supplying the instruction code from a memory to the CPU and a coprocessor. An instruction code supply line for supplying an instruction code to the CPU, wherein the CPU fetches the instruction code, an instruction code input via the instruction code bus, and the instruction code The present invention relates to an integrated circuit device including an instruction code selection circuit that receives an instruction code supplied via a supply line and supplies one of the instruction codes to the fetch unit.

これにより、コプロセッサの演算処理結果に基づいた命令コードを例えばCPUの動作クロックの1クロックでCPUに供給することができる。さらに、CPUのフェッチ部にコプロセッサが生成した命令コードをフェッチさせることができる。また、飽和処理等の処理を高速にCPUに処理させることもできる。   Thereby, an instruction code based on the arithmetic processing result of the coprocessor can be supplied to the CPU, for example, with one clock of the CPU operation clock. Further, the instruction code generated by the coprocessor can be fetched by the fetch unit of the CPU. Further, it is possible to cause the CPU to perform processing such as saturation processing at high speed.

また、本実施の形態は、前記コプロセッサから前記命令コード選択回路に命令コード選択信号を供給するための命令コード選択信号供給線をさらに含み、前記命令コード選択回路は、前記命令コード選択信号に基づいて、前記命令コードバスを介して入力される命令コード及び前記命令コード供給線を介して供給される命令コードのうちのいずれかの命令コードを前記フェッチ部に供給するようにしてもよい。   The embodiment further includes an instruction code selection signal supply line for supplying an instruction code selection signal from the coprocessor to the instruction code selection circuit, and the instruction code selection circuit receives the instruction code selection signal. On the basis of the instruction code, any one of an instruction code input via the instruction code bus and an instruction code supplied via the instruction code supply line may be supplied to the fetch unit.

これにより、コプロセッサ側で、CPUのフェッチ部にフェッチされる命令コードをコ
プロセッサから供給された命令コード及び命令コードバスから供給された命令コードのいずれかに選択制御することができる。
As a result, the instruction code fetched by the fetch unit of the CPU can be selected and controlled on the coprocessor side, either the instruction code supplied from the coprocessor or the instruction code supplied from the instruction code bus.

また、本実施の形態は、命令コードに基づいて所与の処理を実行するCPUを含む集積回路装置であって、命令アドレスをメモリに供給するための命令アドレスバスと、コプロセッサから出力される命令アドレスを前記CPUに供給するための命令アドレス供給線と、を含み、前記CPUは、前記命令コードをフェッチするフェッチ部と、前記命令アドレス供給線を介して供給される命令アドレスと前記フェッチ部から供給される命令アドレスを受け、そのいずれかの命令アドレスを前記命令アドレスバスに供給する命令アドレス選択回路と、を含む集積回路装置に関する。   The present embodiment is an integrated circuit device including a CPU that executes a given process based on an instruction code, and is output from an instruction address bus for supplying an instruction address to a memory and a coprocessor. An instruction address supply line for supplying an instruction address to the CPU, wherein the CPU fetches the instruction code, an instruction address supplied via the instruction address supply line, and the fetch unit. And an instruction address selection circuit for supplying any one of the instruction addresses to the instruction address bus.

これにより、コプロセッサの演算処理結果に基づいた命令アドレスを例えばCPUの動作クロックの1クロックでCPUに供給することができる。さらに、CPUのフェッチ部にコプロセッサが生成した命令アドレスに対応する命令コードをフェッチさせることができる。   Thereby, the instruction address based on the arithmetic processing result of the coprocessor can be supplied to the CPU, for example, by one clock of the CPU operation clock. Further, the instruction code corresponding to the instruction address generated by the coprocessor can be fetched by the fetch unit of the CPU.

また、本実施の形態は、前記命令アドレスを生成するためのカウント値を出力するプログラムカウンタと、前記カウント値を前記コプロセッサに供給するためのカウント値供給線と、をさらに含み、前記プログラムカウンタから出力される前記カウント値は、前記カウント値供給線を介して前記コプロセッサに供給され、前記フェッチ部は、前記プログラムカウンタから出力される前記カウント値に基づいて前記命令アドレスを生成し、生成された前記命令アドレスを前記命令アドレス選択回路に供給するようにしてもよい。   The present embodiment further includes a program counter that outputs a count value for generating the instruction address, and a count value supply line for supplying the count value to the coprocessor, the program counter The count value output from is supplied to the coprocessor via the count value supply line, and the fetch unit generates and generates the instruction address based on the count value output from the program counter The instruction address thus provided may be supplied to the instruction address selection circuit.

これにより、コプロセッサは、CPUから供給されるカウント値に基づいて命令アドレスを生成することができ、例えばループ処理などの複雑な処理を高速にCPUに処理させることができる。   Thus, the coprocessor can generate an instruction address based on the count value supplied from the CPU, and can cause the CPU to perform complicated processing such as loop processing at high speed.

また、本実施の形態は、前記コプロセッサから前記命令アドレス選択回路に命令アドレス選択信号を供給するための命令アドレス選択信号供給線をさらに含み、前記命令アドレス選択回路は、前記命令アドレス選択信号に基づいて、前記命令アドレス供給線を介して供給される命令アドレス及び前記フェッチ部から供給される命令アドレスうちのいずれかの命令アドレスを前記命令アドレスバスに供給するようにしてもよい。   The embodiment further includes an instruction address selection signal supply line for supplying an instruction address selection signal from the coprocessor to the instruction address selection circuit, and the instruction address selection circuit receives the instruction address selection signal. Based on the instruction address supplied from the instruction address supply line and the instruction address supplied from the fetch unit, an instruction address may be supplied to the instruction address bus.

これにより、コプロセッサ側で、命令アドレスバスに供給される命令アドレスをコプロセッサから供給された命令アドレス及びフェッチ部から供給された命令アドレスのいずれかに選択制御することができる。   As a result, the coprocessor can select and control the instruction address supplied to the instruction address bus to either the instruction address supplied from the coprocessor or the instruction address supplied from the fetch unit.

また、本実施の形態は、前記メモリから前記CPUに命令コードを供給するための命令コードバスと、前記コプロセッサから出力される命令コードを前記CPUに供給するための命令コード供給線と、をさらに含み、前記CPUは、前記命令コード供給線を介して供給される前記命令コードと前記命令コードバスを介して入力される前記命令コードを受け、そのいずれかの命令コードを前記フェッチ部に供給する命令コード選択回路を含むようにしてもよい。   The present embodiment also includes an instruction code bus for supplying an instruction code from the memory to the CPU, and an instruction code supply line for supplying an instruction code output from the coprocessor to the CPU. The CPU further includes the instruction code supplied via the instruction code supply line and the instruction code input via the instruction code bus, and supplies any one of the instruction codes to the fetch unit. An instruction code selection circuit may be included.

また、本実施の形態は、命令コードに基づいて所与の処理を実行するCPUを含む集積回路装置であって、コプロセッサから出力される第1、第2のレジスタデータを前記CPUに供給するための第1、第2のレジスタデータ供給線を含み、前記CPUは、複数のレジスタを含むレジスタファイルと、前記第1のレジスタデータ供給線を介して供給される前記第1のレジスタデータと前記CPUの内部のデータを受け、そのいずれかのデータを前記レジスタファイルに供給する第1のレジスタデータ選択回路と、を含み、前記コプロセッサから出力される前記第2のレジスタデータは、前記第2のレジスタデータ供給線を介して前記レジスタファイルに供給される集積回路装置に関する。   The present embodiment is an integrated circuit device including a CPU that executes a given process based on an instruction code, and supplies first and second register data output from a coprocessor to the CPU. The CPU includes a register file including a plurality of registers, the first register data supplied via the first register data supply line, and the first register data supply line. A first register data selection circuit that receives internal data of the CPU and supplies any of the data to the register file, and the second register data output from the coprocessor includes the second register data The present invention relates to an integrated circuit device which is supplied to the register file via a register data supply line.

これにより、コプロセッサの複数のレジスタデータをCPUの動作クロックの例えば1クロックでCPUのレジスタファイルに供給することができる。   As a result, a plurality of register data of the coprocessor can be supplied to the register file of the CPU with, for example, one clock of the CPU operation clock.

また、本実施の形態は、前記コプロセッサから前記第1のレジスタデータ選択回路に第1のレジスタデータ選択信号を供給するための第1のレジスタデータ選択信号供給線をさらに含み、前記第1のレジスタデータ選択回路は、前記第1のレジスタデータ選択信号に基づいて、前記第1のレジスタデータ及び前記CPUの内部のデータのうちのいずれかのデータを前記レジスタファイルに供給するようにしてもよい。   The present embodiment further includes a first register data selection signal supply line for supplying a first register data selection signal from the coprocessor to the first register data selection circuit. The register data selection circuit may supply any one of the first register data and the internal data of the CPU to the register file based on the first register data selection signal. .

これにより、コプロセッサ側で、レジスタファイルに供給されるデータをコプロセッサから供給された第1のレジスタデータ及びCPUの内部のデータのうちのいずれかに選択制御することができる。   Thereby, the data supplied to the register file can be selected and controlled on the coprocessor side to either the first register data supplied from the coprocessor or the data inside the CPU.

また、本実施の形態は、前記レジスタファイルの前記複数のレジスタのうち、前記コプロセッサが指定するレジスタを示すコプロセッサ指定レジスタ番号を、前記コプロセッサから前記レジスタファイルに供給するためのレジスタ番号供給線をさらに含み、前記第1のレジスタデータ選択信号は前記レジスタファイルに供給され、前記レジスタファイルは、前記コプロセッサから供給された前記コプロセッサ指定レジスタ番号と、前記CPUの内部で指定される内部指定レジスタ番号とを受け、前記第1のレジスタデータ選択信号に基づいて前記コプロセッサ指定レジスタ番号及び前記内部指定レジスタ番号のいずれかを選択出力するレジスタ番号選択回路を含み、前記レジスタ番号選択回路から選択出力されたレジスタ番号に基づいて前記複数のレジスタの少なくとも一つが書き込み可能な状態に設定されるようにしてもよい。   The present embodiment also provides a register number supply for supplying a coprocessor designated register number indicating a register designated by the coprocessor among the plurality of registers of the register file from the coprocessor to the register file. The first register data selection signal is supplied to the register file, and the register file includes an internal number specified in the CPU and the coprocessor designation register number supplied from the coprocessor. A register number selection circuit that receives a designated register number and selects and outputs either the coprocessor designated register number or the internal designated register number based on the first register data selection signal; Based on the selected register number May be at least one of the number of registers is set to a writable state.

これにより、コプロセッサ側で、レジスタファイルに供給されるデータを格納するレジスタの番号を、コプロセッサから供給されたコプロセッサ指定レジスタ番号及びCPUの内部指定番号のうちのいずれかに選択制御することができる。   Thereby, on the coprocessor side, the register number for storing the data supplied to the register file is selected and controlled to either the coprocessor designated register number supplied from the coprocessor or the internal designated number of the CPU. Can do.

また、本実施の形態では、前記CPUは、前記第2のレジスタデータ供給線を介して供給される第2のレジスタデータを第1の入力とし、前記第1のレジスタデータ選択回路から供給されるデータを第2の入力とし、前記第1、第2の入力のいずれかを前記複数のレジスタの少なくとも一つに供給する第2のレジスタデータ選択回路を含むようにしてもよい。   In this embodiment, the CPU uses the second register data supplied via the second register data supply line as a first input, and is supplied from the first register data selection circuit. A second register data selection circuit may be included which uses data as a second input and supplies any one of the first and second inputs to at least one of the plurality of registers.

これにより、コプロセッサから供給された第2のレジスタデータ及び第1のレジスタデータ選択回路から供給されるデータのうちのいずれかを選択してレジスタファイルに供給することができる。   As a result, either the second register data supplied from the coprocessor or the data supplied from the first register data selection circuit can be selected and supplied to the register file.

また、本実施の形態は、前記コプロセッサから前記第2のレジスタデータ選択回路に第2のレジスタデータ選択信号を供給するための第2のレジスタデータ選択信号供給線をさらに含み、前記第2のレジスタデータ選択回路は、前記第2のレジスタデータ選択信号に基づいて、前記第2のレジスタデータ選択回路の前記第1、第2の入力のいずれかを前記複数のレジスタの少なくとも一つに供給するようにしてもよい。   The present embodiment further includes a second register data selection signal supply line for supplying a second register data selection signal from the coprocessor to the second register data selection circuit. The register data selection circuit supplies one of the first and second inputs of the second register data selection circuit to at least one of the plurality of registers based on the second register data selection signal. You may do it.

これにより、コプロセッサ側で、レジスタファイルに供給されるデータをコプロセッサから供給された第2のレジスタデータ及び第1のレジスタデータ選択回路から供給されるデータのうちのいずれかに選択制御することができる。   Thus, the coprocessor side selects and controls the data supplied to the register file to either the second register data supplied from the coprocessor or the data supplied from the first register data selection circuit. Can do.

また、本実施の形態は、命令コードに基づいて所与の処理を実行するCPUを含む集積回路装置であって、コプロセッサから出力されるデータアドレスを前記CPUに供給するためのデータアドレス供給線を含み、前記CPUは、データアドレスバスを介してメモリにデータアドレスを供給し、ライトデータバスを介してライトデータを供給することで、前記メモリへデータの書き込みを行うロードストア部と、前記データアドレス供給線を介して供給されるデータアドレスと前記ロードストア部から出力されるデータアドレスを受け、そのいずれかのデータアドレスを前記データアドレスバスに供給するデータアドレス選択回路と、を含む集積回路装置に関する。   In addition, the present embodiment is an integrated circuit device including a CPU that executes a given process based on an instruction code, and a data address supply line for supplying a data address output from a coprocessor to the CPU The CPU supplies a data address to the memory via a data address bus and supplies write data via the write data bus, thereby writing data to the memory, and the data An integrated circuit device including a data address supplied via an address supply line and a data address output from the load store unit, and supplying any one of the data addresses to the data address bus About.

これにより、コプロセッサで生成されたデータアドレスをCPUの動作クロックの例えば1クロックでデータアドレスバスに供給することができる。   As a result, the data address generated by the coprocessor can be supplied to the data address bus with one operating clock of the CPU, for example.

また、本実施の形態は、前記コプロセッサから前記データアドレス選択回路にデータアドレス選択信号を供給するためのデータアドレス選択信号供給線をさらに含み、前記データアドレス選択回路は、前記データアドレス選択信号に基づいて、前記データアドレス供給線を介して供給されるデータアドレス及び前記ロードストア部から出力されるデータアドレスのうちのいずれかのデータアドレスを前記データアドレスバスに供給するようにしてもよい。   The embodiment further includes a data address selection signal supply line for supplying a data address selection signal from the coprocessor to the data address selection circuit, and the data address selection circuit receives the data address selection signal. Based on the data address, either a data address supplied via the data address supply line or a data address output from the load store unit may be supplied to the data address bus.

これにより、コプロセッサ側で、データアドレスバスに供給されるデータアドレスを、コプロセッサから供給されたデータアドレス及びロードストア部から供給されるデータアドレスのうちのいずれかに選択制御することができる。   As a result, the data address supplied to the data address bus can be selected and controlled on the coprocessor side to either the data address supplied from the coprocessor or the data address supplied from the load store unit.

また、本実施の形態は、命令コードに基づいて所与の処理を実行するCPUを含む集積回路装置であって、前記コプロセッサから出力されるライトデータを前記CPUに供給するためのライトデータ供給線を含み、前記CPUは、データアドレスバスを介してメモリにデータアドレスを供給し、ライトデータバスを介してライトデータを供給することで、前記メモリへデータの書き込みを行うロードストア部と、前記ライトデータ供給線を介して供給されるライトデータと前記ロードストア部から出力されるライトデータを受け、そのいずれかのライトデータを前記ライトデータバスに供給するライトデータ選択回路と、を含む集積回路装置に関する。   Further, the present embodiment is an integrated circuit device including a CPU that executes a given process based on an instruction code, and supplies write data for supplying write data output from the coprocessor to the CPU. A load store unit that writes data to the memory by supplying a data address to the memory via a data address bus and supplying write data via a write data bus; An integrated circuit including a write data selection circuit that receives write data supplied via a write data supply line and write data output from the load store unit, and supplies any one of the write data to the write data bus Relates to the device.

これにより、コプロセッサで生成されたライトデータをCPUの動作クロックの例えば1クロックでライトデータバスに供給することができる。   As a result, the write data generated by the coprocessor can be supplied to the write data bus at one operating clock of the CPU, for example.

また、本実施の形態は、前記コプロセッサから前記ライトデータ選択回路にライトデータ選択信号を供給するためのライトデータ選択信号供給線をさらに含み、前記ライトデータ選択回路は、前記ライトデータ選択信号に基づいて、前記ライトデータ供給線を介して供給されるライトデータ及び前記ロードストア部から出力されるライトデータのうちのいずれかのライトデータを前記ライトデータバスに供給するようにしてもよい。   The embodiment further includes a write data selection signal supply line for supplying a write data selection signal from the coprocessor to the write data selection circuit, and the write data selection circuit receives the write data selection signal. Based on the write data, one of the write data supplied via the write data supply line and the write data output from the load store unit may be supplied to the write data bus.

これにより、コプロセッサ側で、ライトデータバスに供給されるライトデータを、コプロセッサから供給されたライトデータ及びロードストア部から供給されるライトデータのうちのいずれかに選択制御することができる。   As a result, the write data supplied to the write data bus can be selected and controlled on the coprocessor side between the write data supplied from the coprocessor and the write data supplied from the load store unit.

また、本実施の形態は、命令コードに基づいて所与の処理を実行するCPUを含む集積回路装置であって、前記コプロセッサから出力されるリードデータを前記CPUに供給するためのリードデータ供給線を含み、前記CPUは、データアドレスバスを介してメモリにデータアドレスを供給し、リードデータバスを介してリードデータを受け取ることで、前記メモリからデータの読み出しを行うロードストア部と、前記リードデータ供給線を介して供給される前記リードデータと前記リードデータバスから供給されるリードデータを受け、そのいずれかのリードデータを前記ロードストア部に供給するリードデータ選択回路と、を含む集積回路装置に関する。   Further, the present embodiment is an integrated circuit device including a CPU that executes a given process based on an instruction code, and provides read data for supplying read data output from the coprocessor to the CPU. The CPU supplies a data address to the memory via a data address bus and receives read data via the read data bus, thereby reading data from the memory; and the read An integrated circuit comprising: a read data selection circuit that receives the read data supplied via a data supply line and read data supplied from the read data bus and supplies any one of the read data to the load store unit; Relates to the device.

これにより、コプロセッサで生成されたリードデータをCPUの動作クロックの例えば1クロックでロードストア部に供給することができる。   As a result, the read data generated by the coprocessor can be supplied to the load store unit with one operating clock of the CPU, for example.

また、本実施の形態は、前記コプロセッサからリードデータ選択回路にリードデータ選択信号を供給するためのリードデータ選択信号供給線をさらに含み、前記リードデータ選択回路は、前記リードデータ選択信号に基づいて、前記コプロセッサリードデータ及び前記CPUリードデータのうちのいずれかのリードデータを前記ロードストア部に供給するようにしてもよい。   The present embodiment further includes a read data selection signal supply line for supplying a read data selection signal from the coprocessor to the read data selection circuit, and the read data selection circuit is based on the read data selection signal. Then, any one of the coprocessor read data and the CPU read data may be supplied to the load store unit.

これにより、コプロセッサ側で、ロードストア部に供給されるリードデータを、コプロセッサから供給されたリードデータ及びリードデータバスから供給されるリードデータのうちのいずれかに選択制御することができる。また、コプロセッサ側で、データアドレスバスに供給されるデータアドレスを、コプロセッサから供給されたデータアドレス及びロードストア部から供給されるデータアドレスのうちのいずれかに選択制御することができる。   As a result, the read data supplied to the load store unit can be selected and controlled on the coprocessor side as either read data supplied from the coprocessor or read data supplied from the read data bus. In addition, the data address supplied to the data address bus can be selected and controlled on the coprocessor side to one of the data address supplied from the coprocessor and the data address supplied from the load store unit.

また、本実施の形態では、前記CPUは、前記命令コードに基づく演算処理を行うALUを含み、前記CPUは、前記ALUの演算処理結果に基づく第1のフラグデータを前記コプロセッサに供給するための第1のフラグデータ供給線と、前記コプロセッサの演算処理結果に基づく第2のフラグデータを前記ALUに供給するための第2のフラグデータ供給線と、を含み、前記ALUは、前記第1又は第2のフラグデータを格納するフラグレジスタと、前記第1及び第2のフラグデータ供給線から前記第1及び第2のフラグデータを受け、前記第1及び第2のフラグデータのいずれかを前記フラグレジスタに供給するフラグデータ選択回路と、を含むようにしてもよい。   In this embodiment, the CPU includes an ALU that performs arithmetic processing based on the instruction code, and the CPU supplies the first flag data based on the arithmetic processing result of the ALU to the coprocessor. A first flag data supply line, and a second flag data supply line for supplying second flag data based on the arithmetic processing result of the coprocessor to the ALU. One of the first and second flag data received from the flag register for storing the first or second flag data and the first and second flag data from the first and second flag data supply lines And a flag data selection circuit that supplies the flag register to the flag register.

これにより、コプロセッサは、CPUから供給される第1のフラグデータに基づいた処理を行うことができる。また、CPUはコプロセッサの処理結果に基づく第2のフラグデータに基づいた処理を行うことができる。また、集積回路装置は、第1のフラグデータに基づいた飽和処理を高速に行うことができる。   Thereby, the coprocessor can perform processing based on the first flag data supplied from the CPU. Further, the CPU can perform processing based on the second flag data based on the processing result of the coprocessor. Further, the integrated circuit device can perform saturation processing based on the first flag data at high speed.

また、本実施の形態では、前記CPUは、フラグデータ選択信号を前記コプロセッサから前記ALUに供給するためのフラグデータ選択信号供給線をさらに含み、前記ALUの前記フラグデータ選択回路は、前記フラグデータ選択信号供給線を介して供給される前記フラグデータ選択信号に基づいて、前記第1及び第2のフラグデータのいずれかを前記フラグレジスタに選択出力するようにしてもよい。   In this embodiment, the CPU further includes a flag data selection signal supply line for supplying a flag data selection signal from the coprocessor to the ALU, and the flag data selection circuit of the ALU includes the flag data selection circuit. One of the first and second flag data may be selectively output to the flag register based on the flag data selection signal supplied via the data selection signal supply line.

これにより、コプロセッサ側で、フラグレジスタに供給されるフラグデータを、コプロセッサから供給された第2のフラグデータ及びALUから供給される第1のフラグデータのうちのいずれかに選択制御することができる。   Accordingly, the coprocessor side selects and controls the flag data supplied to the flag register to either the second flag data supplied from the coprocessor or the first flag data supplied from the ALU. Can do.

以下、本発明の一実施形態について、図面を参照して説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成のすべてが本発明の必須構成要件であるとは限らない。なお、以下の図において同符号のものは同様の意味を表す。   Hereinafter, an embodiment of the present invention will be described with reference to the drawings. The embodiments described below do not unduly limit the contents of the present invention described in the claims. Also, not all of the configurations described below are essential constituent requirements of the present invention. In the following drawings, the same reference numerals have the same meaning.

1.集積回路装置
図1は、本実施形態に係る集積回路装置1000の構成例である。集積回路装置1000はCPU(Central-Processing-Unit)10と、メモリ20と、コプロセッサ30を含
むが、これに限定されない。例えば、集積回路装置1000はメモリ20やコプロセッサ30を省略する構成でもよい。CPU10は、コプロセッサ30と種々の情報をやりとりする。メモリ20には例えば、CPU10が処理する命令コード22やデータ24が格納されている。
1. Integrated Circuit Device FIG. 1 is a configuration example of an integrated circuit device 1000 according to the present embodiment. The integrated circuit device 1000 includes a CPU (Central-Processing-Unit) 10, a memory 20, and a coprocessor 30, but is not limited thereto. For example, the integrated circuit device 1000 may have a configuration in which the memory 20 and the coprocessor 30 are omitted. The CPU 10 exchanges various information with the coprocessor 30. For example, the memory 20 stores instruction codes 22 and data 24 processed by the CPU 10.

メモリ20は、例えば命令アドレスバス50を介してCPU10側から命令アドレスを受け、その命令アドレスに従って、メモリ20に格納されている命令コードを例えば命令データバス60を介してCPU10に出力する。また、メモリ20は、例えばデータアドレスバス70を介してCPU10側からデータアドレスを受け、そのデータアドレスに従って、メモリ20に格納されているデータ24を例えばデータバス80を介してCPU10に出力する。なお、データアドレスバス70を介して命令アドレスをメモリ20に供給するようにしてもよいし、データバス80を介して命令コードをCPU10に供給するようにしてもよい。CPU10は、上記のようにメモリ20から取得した情報に基づいて様々な処理を行うことができる。また、メモリ20は、CPU10側から例えばデータバス80を介して出力されるデータを格納することも可能である。   For example, the memory 20 receives an instruction address from the CPU 10 side via the instruction address bus 50 and outputs an instruction code stored in the memory 20 to the CPU 10 via the instruction data bus 60 according to the instruction address. Further, the memory 20 receives a data address from the CPU 10 side through, for example, the data address bus 70 and outputs the data 24 stored in the memory 20 to the CPU 10 through, for example, the data bus 80 in accordance with the data address. Note that an instruction address may be supplied to the memory 20 via the data address bus 70, or an instruction code may be supplied to the CPU 10 via the data bus 80. The CPU 10 can perform various processes based on the information acquired from the memory 20 as described above. The memory 20 can also store data output from the CPU 10 side, for example, via the data bus 80.

一方、コプロセッサ30は、CPU10の苦手な演算などを高速に処理できる演算処理部32を含む。即ち、CPU10は、処理内容に応じてコプロセッサ30を用いることにより、効率的な処理を行うことができる。   On the other hand, the coprocessor 30 includes an arithmetic processing unit 32 that can process arithmetic operations that the CPU 10 is not good at at high speed. That is, the CPU 10 can perform efficient processing by using the coprocessor 30 according to the processing content.

図2は、本実施形態に係るCPU10の構成例である。なお、図2ではCPU10の構成の説明の簡略化のため、CPU10とコプロセッサ30との接続が一部省略されている。CPU10は、命令フェッチを行うフェッチ部100と、直値(即値ともいう)を生成する直値生成部200と、複数のレジスタを含むレジスタファイル300とを含む。さらに、CPU10は、演算処理を行うALU(Arithmetic-and-Logic-Unit)400と、データのリード又はライトを行うロードストア部500と、フェッチ部100がフェッチした命令をデコード制御するデコード制御部600とを含む。   FIG. 2 is a configuration example of the CPU 10 according to the present embodiment. In FIG. 2, the connection between the CPU 10 and the coprocessor 30 is partially omitted in order to simplify the description of the configuration of the CPU 10. The CPU 10 includes a fetch unit 100 that performs instruction fetch, a direct value generation unit 200 that generates a direct value (also referred to as an immediate value), and a register file 300 that includes a plurality of registers. Furthermore, the CPU 10 includes an ALU (Arithmetic-and-Logic-Unit) 400 that performs arithmetic processing, a load store unit 500 that reads or writes data, and a decode control unit 600 that decodes and controls the instructions fetched by the fetch unit 100. Including.

フェッチ部100は、例えばメモリ20に格納されている命令コード22をフェッチするが、これに限定されない。また、フェッチ部100はカウント値PCを出力するプログラムカウンタ110を含み、命令フェッチを行う場合、プログラムカウンタ110から出力されるカウント値に基づく命令アドレスを例えばメモリ20に出力する。フェッチ部100は、命令フェッチを行う場合、例えばプログラムカウンタ110から出力される値を命令アドレスとして命令アドレスバス50を介してメモリ20に出力するが、これに限定されない。フェッチ部100は、命令フェッチを行う際に、例えばカウント値を命令アドレスとして出力した後にプログラムカウンタ110のカウント値をインクリメントするようにしてもよいし、プログラムカウンタ110のカウント値がインクリメントされた値を命令アドレスとして出力するようにしてもよい。   The fetch unit 100 fetches the instruction code 22 stored in the memory 20, for example, but is not limited to this. Further, the fetch unit 100 includes a program counter 110 that outputs a count value PC, and outputs an instruction address based on the count value output from the program counter 110 to, for example, the memory 20 when performing instruction fetch. When fetching an instruction, the fetch unit 100 outputs, for example, a value output from the program counter 110 to the memory 20 via the instruction address bus 50 as an instruction address, but is not limited thereto. When fetching an instruction, the fetch unit 100 may, for example, increment the count value of the program counter 110 after outputting the count value as an instruction address, or the incremented value of the count value of the program counter 110 may be used. It may be output as an instruction address.

また、フェッチ部100は、フェッチした命令コード22をデコード制御部600に出力する。また、図2には省略されているが、フェッチ部100のプログラムカウンタ110にはカウント値供給線PCC(例えば図3参照)の一端が接続されている。プログラムカウンタ110は、このカウント値供給線PCCを介してコプロセッサ30と接続することができる。この場合、フェッチ部100のプログラムカウンタ110は、カウント値供給線PCCを介して、カウント値PCをコプロセッサ30に供給することができる。なお、フェッチ部100は、例えばデコード制御部600からの制御信号CS1に基づいて次の命令フェッチを行う。   In addition, the fetch unit 100 outputs the fetched instruction code 22 to the decode control unit 600. Although omitted in FIG. 2, one end of a count value supply line PCC (see, for example, FIG. 3) is connected to the program counter 110 of the fetch unit 100. The program counter 110 can be connected to the coprocessor 30 via the count value supply line PCC. In this case, the program counter 110 of the fetch unit 100 can supply the count value PC to the coprocessor 30 via the count value supply line PCC. Note that the fetch unit 100 performs the next instruction fetch based on the control signal CS1 from the decode control unit 600, for example.

直値生成部200は、命令コード22に直値が含まれている場合、デコード制御部600から出力される制御信号CS2に基づいて例えば32ビットの直値データを生成する。直値生成部200によって生成された直値データは、マルチプレクサ(MUX)M1を介してALU400及びロードストア部500に供給される。   The direct value generation unit 200 generates, for example, 32-bit direct data based on the control signal CS2 output from the decode control unit 600 when the instruction code 22 includes a direct value. The direct data generated by the direct value generation unit 200 is supplied to the ALU 400 and the load store unit 500 via the multiplexer (MUX) M1.

レジスタファイル300は、複数のレジスタを含み、例えば16個のレジスタR0〜R15を含む。各レジスタR0〜R15は例えば32ビットのレジスタであるが、これに限定されない。レジスタファイル300は、例えばデコード制御部600から出力される制御信号CS3に基づいて、各レジスタR0〜R15から任意のレジスタを選択し、そのレジスタに格納されている値を出力することができる。   The register file 300 includes a plurality of registers, for example, 16 registers R0 to R15. Each of the registers R0 to R15 is, for example, a 32-bit register, but is not limited thereto. The register file 300 can select an arbitrary register from each of the registers R0 to R15 based on the control signal CS3 output from the decode control unit 600, for example, and output a value stored in the register.

レジスタファイル300の出力RQ1は例えばマルチプレクサM1に接続され、出力RQ1から出力される値はマルチプレクサM1を介してALU400及びロードストア部500に供給される。   The output RQ1 of the register file 300 is connected to, for example, the multiplexer M1, and the value output from the output RQ1 is supplied to the ALU 400 and the load store unit 500 via the multiplexer M1.

また、レジスタファイル300の出力RQ2は、例えばALU400及びロードストア部500に接続される。出力RQ2からは、制御信号CS3に基づいて選択されたレジスタに格納されている値が出力される。また、レジスタファイル300の各レジスタR0〜R15のうち、少なくとも一つを固定レジスタに設定することができる。   The output RQ2 of the register file 300 is connected to the ALU 400 and the load store unit 500, for example. From the output RQ2, the value stored in the register selected based on the control signal CS3 is output. In addition, at least one of the registers R0 to R15 of the register file 300 can be set as a fixed register.

ALU400は、例えば第1のALU入力AIN1及び第2のALU入力AIN2を含み、第1のALU入力AIN1には例えば第2のレジスタ選択回路320の出力RQ2から出力される値が入力され、第2のALU入力AIN2には例えばマルチプレクサM1の出力が入力される。ALU400は、各入力AIN1、AIN2に入力された値に対して、例えばデコード制御部600から出力される制御信号CS4に基づく演算処理を行い、その結果をALU出力AQから出力する。ALU出力AQは例えばマルチプレクサM2に接続される。   The ALU 400 includes, for example, a first ALU input AIN1 and a second ALU input AIN2, and a value output from the output RQ2 of the second register selection circuit 320 is input to the first ALU input AIN1, for example. For example, the output of the multiplexer M1 is input to the ALU input AIN2. The ALU 400 performs arithmetic processing on the values input to the inputs AIN1 and AIN2 based on, for example, the control signal CS4 output from the decode control unit 600, and outputs the result from the ALU output AQ. The ALU output AQ is connected to the multiplexer M2, for example.

また、ALU400はフラグレジスタ410を含み、フラグレジスタ410には例えばキャリーフラグC(以下、Cフラグとも言う)、オーバーフローフラグV、ゼロフラグZ及びネガティブフラグNのフラグデータが格納される。また図2には省略されているが、フラグレジスタ410の出力には、例えばフラグレジスタ供給線FLC1(広義には、第1のフラグレジスタ供給線)の一端が接続されている(図3参照)。ALU400のフラグレジスタ410は、このフラグデータ供給線FLC1を介してコプロセッサ30と接続することができる。この場合、フラグレジスタ410に格納されている各フラグデータC、V、Z、Nをコプロセッサ30に供給することができる。   The ALU 400 also includes a flag register 410, which stores flag data of, for example, a carry flag C (hereinafter also referred to as C flag), an overflow flag V, a zero flag Z, and a negative flag N. Although omitted in FIG. 2, the output of the flag register 410 is connected to, for example, one end of a flag register supply line FLC1 (first flag register supply line in a broad sense) (see FIG. 3). . The flag register 410 of the ALU 400 can be connected to the coprocessor 30 via the flag data supply line FLC1. In this case, the flag data C, V, Z, and N stored in the flag register 410 can be supplied to the coprocessor 30.

ロードストア部500は、マルチプレクサM1から出力された値やレジスタファイル300の出力RQ2から出力された値を受け、デコード制御部600から出力される制御信号CS5に基づいてメモリ20に格納(ライト)する。また、ロードストア部500は、制御信号CS5に基づいてメモリ20からデータの読み出し(リード)を行い、読み出したデータをロードデータ出力LDDから例えばマルチプレクサM2に出力する。   The load store unit 500 receives the value output from the multiplexer M1 or the value output from the output RQ2 of the register file 300, and stores (writes) it in the memory 20 based on the control signal CS5 output from the decode control unit 600. . Further, the load store unit 500 reads (reads) data from the memory 20 based on the control signal CS5, and outputs the read data from the load data output LDD to, for example, the multiplexer M2.

デコード制御部600は、フェッチ部100から例えば命令コード22を受け、命令コード22をデコードし、その結果に基づく制御信号を生成して各制御信号CS1〜CS5を出力する。また、デコード制御部600は、各マルチプレクサM1、M2を制御する信号(図示せず)を生成することもできる。   The decode control unit 600 receives, for example, the instruction code 22 from the fetch unit 100, decodes the instruction code 22, generates a control signal based on the result, and outputs the control signals CS1 to CS5. The decode control unit 600 can also generate a signal (not shown) for controlling the multiplexers M1 and M2.

また、コプロセッサ30の演算結果は例えば第1のレジスタデータ供給線RDC1を介してCPU10に供給されるが、これに限定されない。また、コプロセッサ30は、命令コード入力線IRCを介して例えばフェッチ部100から命令コード22を供給されるが、これに限定されない。   Further, the calculation result of the coprocessor 30 is supplied to the CPU 10 through, for example, the first register data supply line RDC1, but the present invention is not limited to this. The coprocessor 30 is supplied with the instruction code 22 from, for example, the fetch unit 100 via the instruction code input line IRC, but is not limited thereto.

なお、上記の構成はCPU10の構成の一例であり、CPU10は上記の構成に限定されることはない。   In addition, said structure is an example of a structure of CPU10, CPU10 is not limited to said structure.

2.各部との接続関係
図3は、CPU10とコプロセッサ30の接続関係を説明する図である。
2. Connection Relationship with Each Unit FIG. 3 is a diagram for explaining the connection relationship between the CPU 10 and the coprocessor 30.

集積回路装置1000は、コプロセッサ30側で生成した命令アドレスCIAをCPU10に供給するための命令アドレス供給線CIACと、コプロセッサ30側で生成した命令コードIR2をCPU10に供給するための命令コード供給線CICCを含む。また、集積回路装置1000は、コプロセッサ30から供給された命令アドレスCIAをCPU10に供給するための命令アドレス選択信号供給線CSC11と、コプロセッサ30から供給された命令コードIR2をCPU10に供給するための命令アドレス選択信号供給線CSC12を含む。   The integrated circuit device 1000 supplies an instruction address supply line CIAC for supplying the instruction address CIA generated on the coprocessor 30 side to the CPU 10 and an instruction code for supplying the instruction code IR2 generated on the coprocessor 30 side to the CPU 10. Includes line CICC. Further, the integrated circuit device 1000 supplies the CPU 10 with the instruction address selection signal supply line CSC11 for supplying the instruction address CIA supplied from the coprocessor 30 to the CPU 10 and the instruction code IR2 supplied from the coprocessor 30. Instruction address selection signal supply line CSC12.

また、集積回路装置1000は、コプロセッサ30の第1、第2のレジスタデータRDT1、RDT2をCPU10に供給するための第1、第2のレジスタデータ供給線RDC1、RDC2を含む。また、集積回路装置1000は、第1のレジスタデータ選択信号CS31をCPU10に供給するための第1のレジスタデータ選択信号供給線CSC31と、第2のレジスタデータ選択信号CS32をCPU10に供給するための第2のレジスタデータ選択信号供給線CSC32含む。   Further, the integrated circuit device 1000 includes first and second register data supply lines RDC1 and RDC2 for supplying the CPU 10 with the first and second register data RDT1 and RDT2 of the coprocessor 30. The integrated circuit device 1000 also supplies a first register data selection signal supply line CSC31 for supplying the first register data selection signal CS31 to the CPU 10 and a second register data selection signal CS32 for the CPU 10. A second register data selection signal supply line CSC32 is included.

なお、第1のレジスタデータ選択信号CS31は、例えば、コプロセッサ30の第1のレジスタデータRDT1及びCPU10の内部のデータのいずれかを選択するための信号であり、例えば、第2のレジスタデータ選択信号CS32は、コプロセッサ30の第2のレジスタデータRDT2及びCPU10の内部のデータのいずれかを選択するための信号である。   The first register data selection signal CS31 is a signal for selecting, for example, the first register data RDT1 of the coprocessor 30 or the data inside the CPU 10, for example, the second register data selection The signal CS32 is a signal for selecting either the second register data RDT2 of the coprocessor 30 or the data inside the CPU 10.

また、集積回路装置1000は、コプロセッサ30が指定するレジスタ番号RNM(広義にはコプロセッサ指定レジスタ番号)をCPU10に供給するためのレジスタ番号供給線RNCを含む。レジスタ番号RNMは、例えば第1のレジスタデータRDT1の格納先のレジスタ番号を示す。   Further, the integrated circuit device 1000 includes a register number supply line RNC for supplying the CPU 10 with a register number RNM designated by the coprocessor 30 (coprocessor designated register number in a broad sense). The register number RNM indicates, for example, the register number of the storage destination of the first register data RDT1.

また、集積回路装置1000は、コプロセッサ30側の演算処理結果に基づくフラグデータFLD2(広義には第2のフラグデータ)をCPU10に供給するための第2のフラグデータ供給線FLC2を含む。また、集積回路装置1000は、CPU10のALU400側の演算処理結果に基づくフラグデータFLD1及びコプロセッサ30側の演算処理結果に基づくフラグデータFLD2のいずれかを選択するためのフラグデータ選択信号CS41をCPU10に供給するためのフラグデータ選択信号供給線CSC41を含む。   Further, the integrated circuit device 1000 includes a second flag data supply line FLC2 for supplying the CPU 10 with flag data FLD2 (second flag data in a broad sense) based on the arithmetic processing result on the coprocessor 30 side. Further, the integrated circuit device 1000 provides the CPU 10 with a flag data selection signal CS41 for selecting either the flag data FLD1 based on the arithmetic processing result on the ALU 400 side of the CPU 10 or the flag data FLD2 based on the arithmetic processing result on the coprocessor 30 side. Includes a flag data selection signal supply line CSC41.

また、集積回路装置1000は、含む。また、集積回路装置1000は、コプロセッサ30側で生成したデータアドレスDTADをCPU10に供給するためのデータアドレス供給線DACを含む。また、集積回路装置1000は、コプロセッサ30側で生成したライトデータWDA1をCPU10に供給するためのライトデータ供給線WDAC、コプロセッサ30側で生成したリードデータRDA1をCPU10に供給するためのリードデータ供給線RDACを含む。   Further, the integrated circuit device 1000 includes. The integrated circuit device 1000 also includes a data address supply line DAC for supplying the data address DTAD generated on the coprocessor 30 side to the CPU 10. The integrated circuit device 1000 also includes a write data supply line WDAC for supplying write data WDA1 generated on the coprocessor 30 side to the CPU 10, and read data for supplying read data RDA1 generated on the coprocessor 30 side to the CPU 10. Includes supply line RDAC.

また、集積回路装置1000は、コプロセッサ30から供給されたデータアドレスDTAD及びCPU10内部で生成されたデータアドレスCDADのいずれかを選択するためのデータアドレス選択信号CS51をCPU10に供給するためのデータアドレス選択信号供給線CSC51を含む。また、集積回路装置1000は、コプロセッサ30から供給されたライトデータWDA1及びCPU10内部で生成されたライトデータWDA2のいずれかを選択するためのライトデータ選択信号CS52をCPU10に供給するためのライトデータ選択信号供給線CSC52を含む。また、集積回路装置1000は、コプロセッサ30から供給されたリードデータRDA1及び例えばデータバス80を介して供給されるリードデータRDA2のいずれかを選択するためのリードデータ選択信号CS53をCPU10に供給するためのリードデータ選択信号供給線CSC53を含む。   The integrated circuit device 1000 also supplies the data address selection signal CS51 for selecting either the data address DTAD supplied from the coprocessor 30 or the data address CDAD generated inside the CPU 10 to the CPU 10. A selection signal supply line CSC51 is included. Further, the integrated circuit device 1000 has write data for supplying the CPU 10 with a write data selection signal CS52 for selecting either the write data WDA1 supplied from the coprocessor 30 or the write data WDA2 generated inside the CPU 10. A selection signal supply line CSC52 is included. Further, the integrated circuit device 1000 supplies the CPU 10 with a read data selection signal CS53 for selecting either the read data RDA1 supplied from the coprocessor 30 or the read data RDA2 supplied via the data bus 80, for example. Read data selection signal supply line CSC53 for this purpose is included.

また、命令コード入力線IRCの一端がフェッチ部100に接続され、命令コード入力線IRCの他端がコプロセッサ30に接続された場合、コプロセッサ30は、フェッチ部100から出力される命令コード22(IR1)を受けることができる。これにより、CPU10の動作クロックの1クロックで、コプロセッサ30はフェッチ部100から出力される命令コード22を取得することができる。なお、命令コード22は32ビットで構成されるがこれに限定されない。   When one end of the instruction code input line IRC is connected to the fetch unit 100 and the other end of the instruction code input line IRC is connected to the coprocessor 30, the coprocessor 30 outputs the instruction code 22 output from the fetch unit 100. (IR1) can be received. Thereby, the coprocessor 30 can acquire the instruction code 22 output from the fetch unit 100 with one clock of the operation clock of the CPU 10. The instruction code 22 is composed of 32 bits, but is not limited to this.

また、カウント値供給線PCCの他端がコプロセッサ30に接続された場合、コプロセッサ30は、プログラムカウンタ110から出力されるカウント値を受けることができる。これにより、CPU10の動作クロックの1クロックで、コプロセッサ30はプログラムカウンタ110から出力されるカウント値を取得することができる。   When the other end of the count value supply line PCC is connected to the coprocessor 30, the coprocessor 30 can receive the count value output from the program counter 110. Thereby, the coprocessor 30 can acquire the count value output from the program counter 110 with one clock of the operation clock of the CPU 10.

図4は、CPU10のフェッチ部100とコプロセッサ30との接続を示すブロック図である。   FIG. 4 is a block diagram showing the connection between the fetch unit 100 of the CPU 10 and the coprocessor 30.

CPU10は、フェッチ部100と、命令コード選択回路MUX_IRCと、命令アドレス選択回路MUX_ADDとを含むが、これに限定されない。命令コード選択回路MUX_IRC又は、命令アドレス選択回路MUX_ADDが省略されてもよい。フェッチ部100は、プログラムカウンタ110と、命令コードレジスタ120と、演算器130とを含むが、これに限定されない。演算器130は、加算器でもよいし減算器でもよい。   The CPU 10 includes a fetch unit 100, an instruction code selection circuit MUX_IRC, and an instruction address selection circuit MUX_ADD, but is not limited thereto. The instruction code selection circuit MUX_IRC or the instruction address selection circuit MUX_ADD may be omitted. The fetch unit 100 includes a program counter 110, an instruction code register 120, and an arithmetic unit 130, but is not limited thereto. The computing unit 130 may be an adder or a subtracter.

CPU10及びコプロセッサ30はクロックCLKに同期して動作するが、これに限定されない。   The CPU 10 and the coprocessor 30 operate in synchronization with the clock CLK, but are not limited to this.

CPU10側では、フェッチ部100のプログラムカウンタ110からカウント値PCが出力される。演算器130は、出力されたカウント値PCを受け、カウント値PCに対して例えば4の値を加算し、その結果を出力する。命令アドレス選択回路MUX_ADDの入力の一方には、演算器130から出力された値が入力され、命令アドレス選択回路MUX_ADDの入力の他方には、コプロセッサ30から命令アドレス供給線CIACを介して命令アドレスCIAが入力される。   On the CPU 10 side, the count value PC is output from the program counter 110 of the fetch unit 100. The calculator 130 receives the output count value PC, adds a value of, for example, 4 to the count value PC, and outputs the result. The value output from the arithmetic unit 130 is input to one of the inputs of the instruction address selection circuit MUX_ADD, and the instruction address from the coprocessor 30 via the instruction address supply line CIAC is input to the other input of the instruction address selection circuit MUX_ADD. CIA is entered.

命令アドレス選択回路MUX_ADDは、コプロセッサ30から命令アドレス選択信号供給線CSC11を介して供給される命令アドレス選択信号CS11に基づいて、演算器130から出力される値及び命令アドレスCIAが入力のいずれかを選択して、命令アドレスバス50に供給する。即ち、命令アドレスバス50に対して、コプロセッサ30から供給された命令アドレスCIA又はフェッチ部100から出力された値のどちらかを供給することができる。これにより、コプロセッサ30側で、CPU10に供給される命令コード22を変更する制御が可能となる。   The instruction address selection circuit MUX_ADD receives either the value output from the arithmetic unit 130 or the instruction address CIA based on the instruction address selection signal CS11 supplied from the coprocessor 30 via the instruction address selection signal supply line CSC11. Is supplied to the instruction address bus 50. That is, either the instruction address CIA supplied from the coprocessor 30 or the value output from the fetch unit 100 can be supplied to the instruction address bus 50. As a result, the coprocessor 30 can be controlled to change the instruction code 22 supplied to the CPU 10.

さらに、命令アドレス選択回路MUX_ADDの出力はプログラムカウンタ110に入力される。プログラムカウンタ110は、命令アドレス選択回路MUX_ADDから出力される値を、例えばクロックCLKに基づいて格納する。また、プログラムカウンタ110から出力されるカウント値PCは、カウント値供給線PCCを介してコプロセッサ30に供給される。   Further, the output of the instruction address selection circuit MUX_ADD is input to the program counter 110. The program counter 110 stores a value output from the instruction address selection circuit MUX_ADD based on the clock CLK, for example. The count value PC output from the program counter 110 is supplied to the coprocessor 30 via the count value supply line PCC.

命令コード選択回路MUX_IRCの入力の一方には、命令アドレスバス50に供給された命令アドレスに基づいた命令コード22が例えば命令コードバス60入力される。命令コード選択回路MUX_IRCの入力の他方には、コプロセッサ30から命令コード供給線CICCを介して供給される命令コードIR2が入力される。命令コード選択回路MUX_IRCは、コプロセッサ30から命令コード選択信号供給線CSC12を介して供給される命令コード選択信号CS12に基づいて、命令コード22及び命令コードIR2のいずれかを選択し、フェッチ部100の命令コードレジスタ120に供給する。   The instruction code 22 based on the instruction address supplied to the instruction address bus 50, for example, is input to one of the inputs of the instruction code selection circuit MUX_IRC. The instruction code IR2 supplied from the coprocessor 30 via the instruction code supply line CICC is input to the other input of the instruction code selection circuit MUX_IRC. The instruction code selection circuit MUX_IRC selects either the instruction code 22 or the instruction code IR2 based on the instruction code selection signal CS12 supplied from the coprocessor 30 through the instruction code selection signal supply line CSC12, and fetches the instruction unit 100. To the instruction code register 120.

即ち、コプロセッサ30側で生成した命令コードIR2をフェッチ部100の命令コードレジスタ120に格納することができる。これにより、コプロセッサ30側で、CPU10に対する処理を指示することができる。また、命令コードレジスタ120に格納されている命令コードは、命令コード入力線IRCを介してコプロセッサ30に供給される。   That is, the instruction code IR2 generated on the coprocessor 30 side can be stored in the instruction code register 120 of the fetch unit 100. Thereby, the process with respect to CPU10 can be instruct | indicated on the coprocessor 30 side. The instruction code stored in the instruction code register 120 is supplied to the coprocessor 30 via the instruction code input line IRC.

なお、コプロセッサ30は、命令アドレスCIA、命令コードIR2、命令アドレス選択信号CS11及び命令アドレス選択信号CS12を、CPU10の動作クロックの1クロックでCPU10に供給することができる。また、命令アドレス選択信号CS11や命令アドレス選択信号CS12は、CPU10内部で生成されてもよい。   The coprocessor 30 can supply the instruction address CIA, the instruction code IR2, the instruction address selection signal CS11, and the instruction address selection signal CS12 to the CPU 10 with one operation clock of the CPU 10. Further, the instruction address selection signal CS11 and the instruction address selection signal CS12 may be generated inside the CPU 10.

図5は、CPU10のレジスタファイル300とコプロセッサ30との接続を示すブロック図である。   FIG. 5 is a block diagram showing the connection between the register file 300 and the coprocessor 30 of the CPU 10.

CPU10は、レジスタファイル300と、レジスタデータ選択回路MUX_RG1(広義には第1のレジスタデータ選択回路)と、レジスタ番号選択回路MUX_RNMを含むが、これに限定されない。例えばレジスタデータ選択回路MUX_RG1が省略されてもよい。レジスタファイル300は、レジスタデータ選択回路MUX_RG2(広義には第2のレジスタデータ選択回路)と、複数のレジスタR0〜R15と、レジスタ選択部310と、論理回路320とを含むが、これに限定されない。例えば、図5では複数のレジスタR0〜R15が図示されているが、レジスタの数は例えば32個でもよいし、任意の数に設定してよい。また、例えば、レジスタデータ選択回路MUX_RG2を省略してもよい。なお、図5のレジスタデータ選択回路MUX_RG1は、図2のマルチプレクサM2に相当する。   The CPU 10 includes, but is not limited to, a register file 300, a register data selection circuit MUX_RG1 (first register data selection circuit in a broad sense), and a register number selection circuit MUX_RNM. For example, the register data selection circuit MUX_RG1 may be omitted. The register file 300 includes, but is not limited to, a register data selection circuit MUX_RG2 (second register data selection circuit in a broad sense), a plurality of registers R0 to R15, a register selection unit 310, and a logic circuit 320. . For example, although a plurality of registers R0 to R15 are illustrated in FIG. 5, the number of registers may be 32, for example, or may be set to an arbitrary number. For example, the register data selection circuit MUX_RG2 may be omitted. Note that the register data selection circuit MUX_RG1 in FIG. 5 corresponds to the multiplexer M2 in FIG.

レジスタデータ選択回路MUX_RG1の入力の一方には、コプロセッサ30から第1のレジスタデータ供給線RDC1を介して第1のレジスタデータRDT1が入力される。レジスタデータ選択回路MUX_RG1の入力の他方には、CPU10の内部データIDTが入力される。なお、CPU10の内部データIDTは、例えば、ALU400の出力データや、ロードストア部500の出力LDDから出力されるデータに相当するが、これに限定されない。   The first register data RDT1 is input from the coprocessor 30 to the input of the register data selection circuit MUX_RG1 via the first register data supply line RDC1. The internal data IDT of the CPU 10 is input to the other input of the register data selection circuit MUX_RG1. The internal data IDT of the CPU 10 corresponds to, for example, output data of the ALU 400 or data output from the output LDD of the load store unit 500, but is not limited thereto.

また、第1のレジスタデータ選択信号CS31が第1のレジスタデータ選択信号供給線CSC31を介してCPU10に供給される。レジスタデータ選択回路MUX_RG1は、この第1のレジスタデータ選択信号CS31に基づいて、CPU10の内部データIDT及びコプロセッサ30からの第1のレジスタデータRDT1のいずれかをレジスタファイル300の複数のレジスタR0〜R15の少なくとも一つに供給する。また、例えばレジスタR15とレジスタデータ選択回路MUX_RG1との間には、レジスタデータ選択回路MUX_RG2が設けられているが、これに限定されない。例えば他のレジスタR0〜R14のいずれかとレジスタデータ選択回路MUX_RG1との間にレジスタデータ選択回路MUX_RG2を設けるようにしてもよいし、複数のレジスタデータ選択回路MUX_RG2を設けるようにしてもよい。   Further, the first register data selection signal CS31 is supplied to the CPU 10 via the first register data selection signal supply line CSC31. Based on the first register data selection signal CS31, the register data selection circuit MUX_RG1 converts either the internal data IDT of the CPU 10 or the first register data RDT1 from the coprocessor 30 into a plurality of registers R0 to R0. Supply to at least one of R15. Further, for example, the register data selection circuit MUX_RG2 is provided between the register R15 and the register data selection circuit MUX_RG1, but the present invention is not limited to this. For example, the register data selection circuit MUX_RG2 may be provided between any of the other registers R0 to R14 and the register data selection circuit MUX_RG1, or a plurality of register data selection circuits MUX_RG2 may be provided.

レジスタデータ選択回路MUX_RG2は、例えば、レジスタデータ選択回路MUX_RG1の出力と、コプロセッサ30から第2のレジスタデータ供給線RDC2を介して供給される第2のレジスタデータRDT2とを受け、そのいずれかを選択して例えばレジスタR15に供給する。なお、レジスタデータ選択回路MUX_RG2は、コプロセッサ30から第2のレジスタデータ選択信号供給線CSC32を介して供給される第2のレジスタデータ選択信号CS32に基づいて、レジスタデータ選択回路MUX_RG1の出力及びレジスタデータRDT2のいずれかを選択する。   The register data selection circuit MUX_RG2 receives, for example, the output of the register data selection circuit MUX_RG1 and the second register data RDT2 supplied from the coprocessor 30 via the second register data supply line RDC2, and receives either of them. For example, it is supplied to the register R15. The register data selection circuit MUX_RG2 outputs and registers the register data selection circuit MUX_RG1 based on the second register data selection signal CS32 supplied from the coprocessor 30 via the second register data selection signal supply line CSC32. One of the data RDT2 is selected.

なお、レジスタデータ選択信号CS31及びCS32は、CPU10の内部で生成されるようにしてもよい。   Note that the register data selection signals CS31 and CS32 may be generated inside the CPU 10.

また、コプロセッサ30からレジスタ番号供給線RNCを介して、コプロセッサ30が指定するレジスタ番号RNM(広義にはコプロセッサ指定レジスタ番号)がCPU10に供給される。レジスタ番号RNMは、レジスタ番号選択回路MUX_RNMの入力の一方に供給される。レジスタ番号選択回路MUX_RNMの入力の他方には、CPU10の内部で指定されたレジスタ番号INM(広義には内部指定レジスタ番号)が供給される。レジスタ番号選択回路MUX_RNMは、例えばレジスタデータ選択信号CS31に基づいてレジスタ番号RNM及びINMのいずれかを選択して、レジスタファイル300のレジスタ選択部310に供給する。   Further, a register number RNM (coprocessor designation register number in a broad sense) designated by the coprocessor 30 is supplied from the coprocessor 30 to the CPU 10 via a register number supply line RNC. The register number RNM is supplied to one of the inputs of the register number selection circuit MUX_RNM. A register number INM (internally designated register number in a broad sense) designated within the CPU 10 is supplied to the other input of the register number selection circuit MUX_RNM. The register number selection circuit MUX_RNM selects one of the register numbers RNM and INM based on the register data selection signal CS31, for example, and supplies the selected register number to the register selection unit 310 of the register file 300.

レジスタ選択部310は、レジスタ番号選択回路MUX_RNMから出力されるレジスタ番号に基づいて、ライトイネーブル信号線W0〜W15のいずれかを選択し、選択されたライトイネーブル信号線にアクティブな信号(例えばハイレベルの信号)を供給する。図5では、例えばライトイネーブル信号線W0はレジスタR0に対応し、W1はレジスタR1に対応する。同様に、ライトイネーブル信号線W2〜W15はレジスタR2〜R15に対応する。各レジスタR0〜R15は、ライトイネーブル信号線W0〜W15に供給される信号がアクティブに設定されると、書き込み可能な状態に設定される。ここで、書き込み可能な状態とは、各レジスタR0〜R15が、それぞれに供給されたデータを格納することができる状態を示す。   The register selection unit 310 selects one of the write enable signal lines W0 to W15 based on the register number output from the register number selection circuit MUX_RNM, and an active signal (for example, a high level) is selected for the selected write enable signal line. Signal). In FIG. 5, for example, the write enable signal line W0 corresponds to the register R0, and W1 corresponds to the register R1. Similarly, the write enable signal lines W2 to W15 correspond to the registers R2 to R15. Each of the registers R0 to R15 is set in a writable state when a signal supplied to the write enable signal lines W0 to W15 is set active. Here, the writable state indicates a state in which each of the registers R0 to R15 can store the supplied data.

各レジスタR0〜R15は、レジスタ選択回路MUX_RG1又はMUX_RG2を介して供給されたレジスタデータを、ライトイネーブル信号線W0〜W15に供給される信号に基づいて格納する。例えば、ライトイネーブル信号線W0にアクティブな信号が供給された場合、レジスタR0はレジスタ選択回路MUX_RG1を介して供給されたレジスタデータを格納する。   Each of the registers R0 to R15 stores the register data supplied via the register selection circuit MUX_RG1 or MUX_RG2 based on the signal supplied to the write enable signal lines W0 to W15. For example, when an active signal is supplied to the write enable signal line W0, the register R0 stores the register data supplied via the register selection circuit MUX_RG1.

また、例えばレジスタデータ選択回路MUX_RG2が接続されているレジスタR15には、論理回路320が接続されている。論理回路320には、ライトイネーブル信号線W15及びレジスタデータ選択信号供給線CSC32が接続される。例えばライトイネーブル信号線W15にアクティブな信号が供給された場合、レジスタR15は書き込み可能な状態に設定される。これにより、レジスタR15は、レジスタ選択回路MUX_RG2を介して供給されるレジスタデータを格納する。また、レジスタデータ選択信号供給線CSC32を介して供給されるレジスタデータ選択信号CS32がアクティブに設定された場合にも、レジスタR15は書き込み可能な状態に設定される。即ち、レジスタ選択回路
MUX_RG2が接続されたレジスタR15は、ライトイネーブル信号線W15に供給される信号及びレジスタデータ選択信号CS32の少なくとも一方がアクティブに設定されると、書き込み可能な状態に設定される。
For example, the logic circuit 320 is connected to the register R15 to which the register data selection circuit MUX_RG2 is connected. A write enable signal line W15 and a register data selection signal supply line CSC32 are connected to the logic circuit 320. For example, when an active signal is supplied to the write enable signal line W15, the register R15 is set in a writable state. Accordingly, the register R15 stores register data supplied via the register selection circuit MUX_RG2. Even when the register data selection signal CS32 supplied via the register data selection signal supply line CSC32 is set to active, the register R15 is set in a writable state. That is, the register R15 to which the register selection circuit MUX_RG2 is connected is set in a writable state when at least one of the signal supplied to the write enable signal line W15 and the register data selection signal CS32 is set active.

図6は、CPU10のALU400とコプロセッサ30との接続を示すブロック図である。ALU400は、フラグレジスタ410と、演算処理を行う演算処理部420と、フラグデータ選択回路MUX_FLGを含む。演算処理部420の演算結果に基づくフラグデータFLD1(広義には第1のフラグデータ)はフラグデータ供給線FLC1(広義には第1のフラグデータ供給線)を介してコプロセッサ30に供給される。   FIG. 6 is a block diagram showing the connection between the ALU 400 of the CPU 10 and the coprocessor 30. The ALU 400 includes a flag register 410, an arithmetic processing unit 420 that performs arithmetic processing, and a flag data selection circuit MUX_FLG. Flag data FLD1 (first flag data in a broad sense) based on the computation result of the arithmetic processing unit 420 is supplied to the coprocessor 30 via a flag data supply line FLC1 (first flag data supply line in a broad sense). .

また、フラグデータ選択回路MUX_FLGには、フラグデータFLD1と、フラグデータ供給線FLC2(広義には第2のフラグデータ供給線)を介して供給されるフラグデータFLD2(広義には第2のフラグデータ)が供給される。フラグデータ選択回路MUX_FLGは、フラグデータFLD1及びFLD2のいずれかを、コプロセッサ30からフラグデータ選択信号供給線CSC41を介して供給されるフラグデータ選択信号CS41に基づいて選択し、フラグレジスタ410に供給する。フラグレジスタ410は、フラグデータ選択回路MUX_FLGから出力される値を格納する。   The flag data selection circuit MUX_FLG has flag data FLD1 and flag data FLD2 (second flag data in a broad sense) supplied via a flag data supply line FLC2 (second flag data supply line in a broad sense). ) Is supplied. The flag data selection circuit MUX_FLG selects one of the flag data FLD1 and FLD2 based on the flag data selection signal CS41 supplied from the coprocessor 30 via the flag data selection signal supply line CSC41, and supplies it to the flag register 410. To do. The flag register 410 stores a value output from the flag data selection circuit MUX_FLG.

なお、フラグデータ選択信号CS41は、CPU10の内部で生成されてもよい。   Note that the flag data selection signal CS41 may be generated inside the CPU 10.

図7は、CPU10のロードストア部500とコプロセッサ30との接続を示すブロック図である。CPU10はロードストア部500と、データアドレス選択回路MUX_DTと、ライトデータ選択回路MUX_WDと、リードデータ選択回路MUX_RDを含むが、これに限定されない。例えば、ライトデータ選択回路MUX_WD等が省略されてもよい。   FIG. 7 is a block diagram showing the connection between the load store unit 500 of the CPU 10 and the coprocessor 30. The CPU 10 includes a load store unit 500, a data address selection circuit MUX_DT, a write data selection circuit MUX_WD, and a read data selection circuit MUX_RD, but is not limited thereto. For example, the write data selection circuit MUX_WD or the like may be omitted.

コプロセッサ30から、データの読み出し又は書き込みを行うためのデータアドレスDTADが、データアドレス供給線DACを介してCPU10に供給される。また、コプロセッサ30から、ライトデータWDA1がライトデータ供給線WDACを介してCPU10に供給される。また、コプロセッサ30から、リードデータRDA1がリードデータ供給線RDACを介してCPU10に供給される。   A data address DTAD for reading or writing data is supplied from the coprocessor 30 to the CPU 10 via the data address supply line DAC. Further, the write data WDA1 is supplied from the coprocessor 30 to the CPU 10 via the write data supply line WDAC. Further, read data RDA1 is supplied from the coprocessor 30 to the CPU 10 via the read data supply line RDAC.

ロードストア部500は、コプロセッサ30から供給されたデータアドレスDTADと、CPU10の内部で生成されたデータアドレスCDADとをデータアドレス選択回路MUX_DTに供給する。また、ロードストア部500は、コプロセッサ30から供給されたライトデータWDA1と、CPU10の内部で生成されたライトデータWDA2とをライトデータ選択回路MUX_WDに供給する。   The load store unit 500 supplies the data address DTAD supplied from the coprocessor 30 and the data address CDAD generated inside the CPU 10 to the data address selection circuit MUX_DT. In addition, the load store unit 500 supplies the write data WDA1 supplied from the coprocessor 30 and the write data WDA2 generated inside the CPU 10 to the write data selection circuit MUX_WD.

また、コプロセッサ30から、データアドレス選択信号CS51がデータアドレス選択信号供給線CSC51を介してCPU10に供給される。また、コプロセッサ30から、ライトデータ選択信号CS52がライトデータ選択信号供給線CSC52を介してCPU10に供給される。   Further, the data address selection signal CS51 is supplied from the coprocessor 30 to the CPU 10 via the data address selection signal supply line CSC51. Further, the write data selection signal CS52 is supplied from the coprocessor 30 to the CPU 10 via the write data selection signal supply line CSC52.

アドレス選択回路MUX_DTは、コプロセッサ30から供給されるデータアドレス選択信号CS51に基づいて、データアドレスDTAD及びCDADのいずれかを選択してデータアドレスバス70に供給する。ライトデータ選択回路MUX_WDは、コプロセッサ30から供給されるライトデータ選択信号CS52に基づいて、ライトデータWDA1及びWDA2のいずれかを選択して、データバス80が含むライトデータバス82に供給する。   The address selection circuit MUX_DT selects one of the data addresses DTAD and CDAD based on the data address selection signal CS51 supplied from the coprocessor 30 and supplies the selected data address to the data address bus 70. The write data selection circuit MUX_WD selects one of the write data WDA1 and WDA2 based on the write data selection signal CS52 supplied from the coprocessor 30 and supplies the selected data to the write data bus 82 included in the data bus 80.

また、コプロセッサ30からのリードデータRDA1と、データバス80が含むリードデータバス84を介して供給されるリードデータRDA2が、リードデータ選択回路MUX_RDに供給される。また、コプロセッサ30から、リードデータ選択信号CS52がリードデータ選択信号供給線CSC52を介してCPU10に供給される。   The read data RDA1 from the coprocessor 30 and the read data RDA2 supplied via the read data bus 84 included in the data bus 80 are supplied to the read data selection circuit MUX_RD. Further, the read data selection signal CS52 is supplied from the coprocessor 30 to the CPU 10 via the read data selection signal supply line CSC52.

リードデータ選択回路MUX_RDは、コプロセッサ30から供給されるリードデータ選択信号CS53に基づいて、リードデータRDA1及びRDA2のいずれかを選択してリードデータバス82に供給する。   The read data selection circuit MUX_RD selects one of the read data RDA1 and RDA2 based on the read data selection signal CS53 supplied from the coprocessor 30 and supplies the selected data to the read data bus 82.

コプロセッサ30は、CPU10の動作クロックの1クロックで、データアドレス選択信号CS51、ライトデータ選択信号CS52及びリードデータ選択信号CS53をCPU10に供給することができる。また、データアドレス選択信号CS51、ライトデータ選択信号CS52及びリードデータ選択信号CS53は、CPU10内部で生成されてもよい。   The coprocessor 30 can supply the data address selection signal CS51, the write data selection signal CS52, and the read data selection signal CS53 to the CPU 10 with one clock of the operation clock of the CPU 10. Further, the data address selection signal CS51, the write data selection signal CS52, and the read data selection signal CS53 may be generated inside the CPU 10.

このような構成により、コプロセッサ30側で、CPU10が行うデータの読み出し又は書き込みに対するアドレスやデータの指定を行うことができる。   With such a configuration, it is possible to specify an address and data for data reading or writing performed by the CPU 10 on the coprocessor 30 side.

なお、CPU10とコプロセッサ30は、同じクロックCLKに基づいて動作するが、これに限定されない。また、CPU10は、上述された構成要素のいずれかが省略されてもよい。   The CPU 10 and the coprocessor 30 operate based on the same clock CLK, but are not limited to this. Further, in the CPU 10, any of the above-described components may be omitted.

3.命令定義と命令例
3.1.命令定義
図8は、命令コード22の定義の一例を示す図である。命令コード22は、例えば、コプロセッサイネーブルビットCEN、コプロセッサコードCCD、CPUオペコードOPCDを含む。コプロセッサイネーブルビットCENはコプロセッサ30のイネーブル又はディセーブルを示し、コプロセッサコードCCDはコプロセッサ30に対する命令を示し、CPUオペコードOPCDはCPU10のオペコードを示す。
3. Command definition and command example 3.1. Instruction Definition FIG. 8 is a diagram illustrating an example of the definition of the instruction code 22. The instruction code 22 includes, for example, a coprocessor enable bit CEN, a coprocessor code CCD, and a CPU opcode OPCD. The coprocessor enable bit CEN indicates whether the coprocessor 30 is enabled or disabled, the coprocessor code CCD indicates an instruction for the coprocessor 30, and the CPU opcode OPCD indicates the opcode of the CPU 10.

命令コード22は、例えば32ビット長で構成され、例えばMSB(例えば第31ビット)に1ビットのコプロセッサイネーブルビットCENが設定され、例えば第30ビット〜第27ビットに4ビットのコプロセッサコードCCDが設定され、例えば第26ビット〜第20ビットに7ビットのCPUオペコードOPCDが設定される。コプロセッサイネーブルビットCENが1であればコプロセッサ30の動作を例えばイネーブルに設定し、反対にコプロセッサイネーブルビットCENが0であればコプロセッサ30の動作を例えばディセーブルに設定する。命令コード22において、残りの第19ビット〜LSB(第0ビット)の20ビットは、CPUオペコードOPCDによって適宜使用される。   The instruction code 22 has a length of, for example, 32 bits. For example, a 1-bit coprocessor enable bit CEN is set in the MSB (for example, the 31st bit). For example, a 7-bit CPU opcode OPCD is set in the 26th to 20th bits. If the coprocessor enable bit CEN is 1, for example, the operation of the coprocessor 30 is set to enable, and if the coprocessor enable bit CEN is 0, the operation of the coprocessor 30 is set to disable, for example. In the instruction code 22, the remaining 20 bits from the 19th bit to the LSB (0th bit) are appropriately used by the CPU opcode OPCD.

例えば、CPUオペコードOPCDに加算命令addを設定した場合には、図8に示すように、第19ビット〜第16ビットの4ビット及び、第15ビット〜第12ビットの4ビットは例えばレジスタアドレスsrc1、src2に用いられ、第11ビット〜第0ビットの12ビットが直値データimm12に用いられる。   For example, when the addition instruction add is set in the CPU opcode OPCD, as shown in FIG. 8, the 4th bit of the 19th to 16th bits and the 4th bit of the 15th to 12th bits are, for example, the register address src1 , Src2, and 12 bits from the 11th bit to the 0th bit are used for the direct data imm12.

コプロセッサ30は、コプロセッサコードCCDに基づいて演算処理を行う。   The coprocessor 30 performs arithmetic processing based on the coprocessor code CCD.

なお、上記の命令コード22の構成例は、一例であり他の命令定義も可能である。   Note that the above-described configuration example of the instruction code 22 is merely an example, and other instruction definitions are possible.

3.2.ループ処理
次にコプロセッサ30がループ処理を行う場合の一例を説明する。
3.2. Loop Processing Next, an example in which the coprocessor 30 performs loop processing will be described.

図9は、ループ処理を行うコプロセッサ30の構成例である。コプロセッサ30は、演算処理部32を含む。演算処理部32はカウント値エンド32−1、比較器32−2、制御部32−3、回数カウンタ32−4、減算器32−5及びカウント値スタート32−6を含むが、これに限定されない。例えば減算器32−5は、加算器でもよい。また、カウント値エンド32−1、カウント値スタート32−6は、例えば所与の値が格納されたレジスタで構成される。例えば、カウント値エンド32−1には、ループ処理の終了に対応する値が格納され、カウント値スタート32−6には、ループ処理の開始に対応する値が格納される。   FIG. 9 is a configuration example of the coprocessor 30 that performs loop processing. The coprocessor 30 includes an arithmetic processing unit 32. The arithmetic processing unit 32 includes a count value end 32-1, a comparator 32-2, a control unit 32-3, a number counter 32-4, a subtractor 32-5, and a count value start 32-6, but is not limited thereto. . For example, the subtractor 32-5 may be an adder. Further, the count value end 32-1 and the count value start 32-6 are constituted by registers in which a given value is stored, for example. For example, the count value end 32-1 stores a value corresponding to the end of the loop process, and the count value start 32-6 stores a value corresponding to the start of the loop process.

演算処理部32は、CPU10側からカウント値PCを受け、比較器32−2にてカウント値エンド32−1に格納されている値とカウント値PCとを比較する。比較器32−2にてカウント値エンド32−1に格納されている値とカウント値PCが一致したと判定されると、制御部32−3が回数カウンタ32−4の出力値に基づいた命令アドレス選択信号CS11をCPU10側に出力する。具体的には、制御部32−3は、回数カウンタ32−4の出力値が0でない場合には、命令アドレス選択信号CS11をアクティブ(例えばハイレベル)に設定し、コプロセッサ30から出力されるカウント値スタート32−6に格納されている値(命令アドレスCIA)をCPU10側の命令アドレス選択回路MUX_ADDに選択出力させる信号に設定する。また、減算器32−5に回数カウンタ32−4に格納されている値の減算処理を行わせる。   The arithmetic processing unit 32 receives the count value PC from the CPU 10 side, and compares the value stored in the count value end 32-1 with the count value PC by the comparator 32-2. When the comparator 32-2 determines that the value stored in the count value end 32-1 matches the count value PC, the control unit 32-3 issues a command based on the output value of the number counter 32-4. An address selection signal CS11 is output to the CPU 10 side. Specifically, when the output value of the number counter 32-4 is not 0, the control unit 32-3 sets the instruction address selection signal CS11 to active (for example, high level) and is output from the coprocessor 30. The value (instruction address CIA) stored in the count value start 32-6 is set as a signal for selectively outputting the instruction address selection circuit MUX_ADD on the CPU 10 side. Further, the subtracter 32-5 is caused to subtract the value stored in the number counter 32-4.

反対に、制御部32−3は、回数カウンタ32−4の出力値が0の場合には、減算器32−5の減算処理を停止させ、命令アドレス選択信号CS11を、CPU10側のフェッチ部100から出力される命令アドレスを命令アドレス選択回路MUX_ADDに選択出力させる信号に設定する。   On the other hand, when the output value of the number counter 32-4 is 0, the control unit 32-3 stops the subtraction process of the subtractor 32-5 and sends the instruction address selection signal CS11 to the fetch unit 100 on the CPU 10 side. Is set to a signal that causes the instruction address selection circuit MUX_ADD to selectively output the instruction address.

命令アドレス選択回路MUX_ADDによって、カウント値スタート32−6に格納されている値が命令アドレスとして選択されると、プログラムカウンタ110にその命令アドレスが格納される。CPU10側では、このプログラムカウンタ110に格納された値を例えばインクリメントしながら、それに対応する命令コード22を順次に処理していく。そして、コプロセッサ30側からの命令アドレス選択信号CS11に基づいて、命令アドレス選択回路MUX_ADDは、出力する命令アドレスを切り替える。即ち、コプロセッサ30側で1回のループ処理が終了したと判断した場合、命令アドレス選択回路MUX_ADDにカウント値スタート39−6の出力を選択させる。これにより、命令アドレス選択回路MUX_ADDからカウント値スタート32−6の値が出力され、プログラムカウンタ110にもカウント値スタート32−6の値が格納される。このようにして、また、ループ処理が開始される。なお、ループ処理の回数は、回数カウンタ32−4に設定されている値に基づいて行うことができる。   When the value stored in the count value start 32-6 is selected as the instruction address by the instruction address selection circuit MUX_ADD, the instruction address is stored in the program counter 110. On the CPU 10 side, the value stored in the program counter 110 is incremented, for example, and the corresponding instruction code 22 is sequentially processed. Then, based on the instruction address selection signal CS11 from the coprocessor 30 side, the instruction address selection circuit MUX_ADD switches the instruction address to be output. That is, when it is determined that one loop process is completed on the coprocessor 30 side, the instruction address selection circuit MUX_ADD selects the output of the count value start 39-6. As a result, the value of the count value start 32-6 is output from the instruction address selection circuit MUX_ADD, and the value of the count value start 32-6 is also stored in the program counter 110. In this way, the loop processing is started again. The number of loop processes can be performed based on the value set in the number counter 32-4.

図10はループ処理の開始の状態をタイミングチャートである。この例では、ループ処理の開始アドレスとして例えば“10”の値がカウント値スタート32−6に格納され、ループ処理の終了アドレスとして例えば“1C”の値がカウント値エンド32−1に格納されている。また、この例ではループ処理を例えば10回行う構成を示し、回数カウンタ32−4には例えば“9”の値が格納されている。   FIG. 10 is a timing chart showing the start state of the loop processing. In this example, for example, a value “10” is stored in the count value start 32-6 as the start address of the loop process, and a value “1C” is stored in the count value end 32-1 as the end address of the loop process. Yes. Further, this example shows a configuration in which the loop processing is performed, for example, 10 times, and a value of “9” is stored in the number counter 32-4.

A1に示すタイミングで、“10”の値がカウント値PCとして、プログラムカウンタ110からコプロセッサ30に供給される。この時、フェッチ部100において、カウント値PCが例えば“4”の値だけインクリメントされ、A2に示すタイミングで命令アドレス選択回路MUX_ADDに“14”の値が命令アドレスとしてフェッチ部100から供給される。また、カウント値スタート32−6にはループ処理の開始アドレスとして、例えば“10”が格納されているため、命令アドレス選択回路MUX_ADDに命令アドレスCIAとして“10”の値が供給される。この時、命令アドレス選択信号CS11はノンアクティブに設定されているため、命令アドレス選択回路MUX_ADDはフェッチ部100からの命令アドレスを選択する。従って、命令アドレスバス50には命アドレスとして“14”の値が供給される。   At the timing indicated by A1, the value “10” is supplied from the program counter 110 to the coprocessor 30 as the count value PC. At this time, in the fetch unit 100, the count value PC is incremented by, for example, a value of “4”, and a value of “14” is supplied from the fetch unit 100 as an instruction address to the instruction address selection circuit MUX_ADD at the timing indicated by A2. Since the count value start 32-6 stores, for example, “10” as the start address of the loop processing, the instruction address selection circuit MUX_ADD is supplied with the value “10” as the instruction address CIA. At this time, since the instruction address selection signal CS11 is set to non-active, the instruction address selection circuit MUX_ADD selects the instruction address from the fetch unit 100. Therefore, a value “14” is supplied to the instruction address bus 50 as a life address.

カウント値エンド32−1に格納されている“1C”の値とカウント値PCの値が一致するまで、上記の処理が繰り返される。この間、CPU10は、その時の命令アドレスに対応する命令コードに基づく処理を行うことができる。   The above processing is repeated until the value of “1C” stored in the count value end 32-1 matches the value of the count value PC. During this time, the CPU 10 can perform processing based on the instruction code corresponding to the instruction address at that time.

A3に示すタイミングでカウント値PCの値が“1C”になると、A4に示すように比較器32−2においてカウント値PCとカウント値エンド32−1に格納されている値とが一致判定される。これに基づいて、制御部32−3は、回数カウンタ32−4に格納されている値が“0”でないことから、命令アドレス選択信号CS11をA5に示すようにアクティブに設定する。従って、命令アドレス選択回路MUX_ADDは命令アドレスCIAを選択し、カウント値スタート32−6に格納されている“10”の値を命令アドレスバス50に供給する。また、プログラムカウンタ110は、命令アドレス選択回路MUX_ADDから出力される“10”の値をA6に示すタイミングで格納する。   When the value of the count value PC becomes “1C” at the timing indicated by A3, the comparator 32-2 determines that the count value PC matches the value stored in the count value end 32-1, as indicated by A4. . Based on this, since the value stored in the number counter 32-4 is not “0”, the control unit 32-3 sets the instruction address selection signal CS11 to active as indicated by A5. Accordingly, the instruction address selection circuit MUX_ADD selects the instruction address CIA and supplies the value “10” stored in the count value start 32-6 to the instruction address bus 50. The program counter 110 stores the value “10” output from the instruction address selection circuit MUX_ADD at the timing indicated by A6.

このようにして、1回のループ処理が完了して、ループ処理の開始アドレスが命令ドレスとして設定され、ループ処理が開始される。   In this way, one loop process is completed, the start address of the loop process is set as the instruction dress, and the loop process is started.

図11は、各命令アドレスに対応する命令コードの一例を示す。例えば、コプロセッサ30のカウント値エンド32−1、カウント値スタート32−6をそれぞれ“1C”の値、“10”の値に設定することで、図11に示すような、例えばodd命令、shift命令、sub命令、shift命令を繰り返し行うループ処理を高速に行うことができる。図10のA6に示すように、CPU10に対する命令アドレスが、ループ処理の終了アドレス“1C”から次のループ処理の開始アドレス“10”に設定されるまでの間隔は、CPU10の動作クロックCLKを基準に0クロックである。即ち、本実施形態では、例えば図11に示すようなループ処理において、ループ処理の終了を判断し、その判断結果に基づいて分岐する処理にクロックCLKを基準とする所定の時間を必要としない。このため、ループ処理を高速に行うことができる。   FIG. 11 shows an example of an instruction code corresponding to each instruction address. For example, by setting the count value end 32-1 and the count value start 32-6 of the coprocessor 30 to a value of “1C” and a value of “10”, respectively, as shown in FIG. 11, for example, an odd instruction, shift A loop process for repeatedly executing an instruction, a sub instruction, and a shift instruction can be performed at high speed. As indicated by A6 in FIG. 10, the interval from the end address “1C” of the loop process to the start address “10” of the next loop process is set based on the operation clock CLK of the CPU 10 as indicated by A6 in FIG. 0 clock. In other words, in the present embodiment, for example, in the loop processing as shown in FIG. 11, the end of the loop processing is determined, and a predetermined time based on the clock CLK is not required for the processing to branch based on the determination result. For this reason, loop processing can be performed at high speed.

図12はループ処理の開始の状態をタイミングチャートである。A7に示すタイミングでカウント値PCの値が“1C”になると、A8に示すように比較器32−2においてカウント値PCとカウント値エンド32−1に格納されている値とが一致判定される。これに基づいて、制御部32−3は命令アドレス選択信号CS11を設定する。この時、制御部32−3は、回数カウンタ32−4に格納されている値が“0”であることから、命令アドレス選択信号CS11をA9に示すアクティブな信号には設定せず、ノンアクティブの状態に設定する。従って、命令アドレス選択回路MUX_ADDは命令アドレスCIAを選択せず、フェッチ部100から供給される命令アドレスを選択する。この時のカウント値PCは“1C”の値であるため、フェッチ部100は、命令アドレスとして“4”の値がインクリメントされた“20”の値を命令アドレス選択回路MUX_ADDに供給する。これにより、命令アドレス選択回路MUX_ADDは、フェッチ部100から供給された“20”の値を命令アドレスバス50に供給する。また、プログラムカウンタ110は、命令アドレス選択回路MUX_ADDから出力される“20”の値をA11に示すタイミングで格納する。   FIG. 12 is a timing chart showing the start of loop processing. When the value of the count value PC becomes “1C” at the timing indicated by A7, as shown in A8, the comparator 32-2 determines that the count value PC and the value stored in the count value end 32-1 match. . Based on this, the control unit 32-3 sets the instruction address selection signal CS11. At this time, since the value stored in the number counter 32-4 is “0”, the control unit 32-3 does not set the instruction address selection signal CS11 to the active signal indicated by A9, and is non-active. Set to the state of. Therefore, the instruction address selection circuit MUX_ADD does not select the instruction address CIA, but selects the instruction address supplied from the fetch unit 100. Since the count value PC at this time is a value of “1C”, the fetch unit 100 supplies the instruction address selection circuit MUX_ADD with a value of “20” obtained by incrementing a value of “4” as the instruction address. As a result, the instruction address selection circuit MUX_ADD supplies the value “20” supplied from the fetch unit 100 to the instruction address bus 50. The program counter 110 stores the value “20” output from the instruction address selection circuit MUX_ADD at the timing indicated by A11.

図12のA10に示すように、CPU10に対する命令アドレスが、ループ処理の終了アドレス“1C”から次の命令アドレス“20”に設定されるまでの間隔は、CPU10の動作クロックCLKを基準に0クロックである。即ち、本実施形態では、例えば図11に示すようなループ処理において、ループ処理の終了を判断し、その判断結果に基づいて分岐する処理にクロックCLKを基準とする所定の時間を必要としない。このため、ループ処理を高速に行うことができる。   As indicated by A10 in FIG. 12, the interval from when the instruction address for the CPU 10 is set to the next instruction address “20” from the loop processing end address “1C” is 0 clocks based on the operation clock CLK of the CPU 10 It is. In other words, in the present embodiment, for example, in the loop processing as shown in FIG. 11, the end of the loop processing is determined, and a predetermined time based on the clock CLK is not required for the processing to branch based on the determination result. For this reason, loop processing can be performed at high speed.

図13は、ループ処理を示すフローチャートである。処理PR1〜PR3はコプロセッサ30側の処理を示し、処理PR4はCPU10側の処理を示す。例えば制御部32−3は、処理PR1〜PR3を行うことができる。クロックCLKの例えば立ち上がりエッジに応じてループ処理が開始されると、処理PR1では、回数カウンタ32−6の値が“0”の値であるか否かが判断される。回数カウンタ32−6の値が“0”の値でない場合、後段の処理PR2が行われる。   FIG. 13 is a flowchart showing the loop processing. Processes PR1 to PR3 indicate processes on the coprocessor 30 side, and process PR4 indicates processes on the CPU 10 side. For example, the control unit 32-3 can perform the processes PR1 to PR3. When the loop process is started in response to, for example, the rising edge of the clock CLK, in the process PR1, it is determined whether or not the value of the number counter 32-6 is “0”. When the value of the number counter 32-6 is not “0”, the subsequent process PR2 is performed.

処理PR2では、カウント値PCとカウント値エンド32−1に格納されている値との一致判断が行われる。この判断において、カウント値PCとカウント値エンド32−1に格納されている値とが一致していると判断された場合には、後段の処理PR3が行われる。   In the process PR2, a match determination between the count value PC and the value stored in the count value end 32-1 is performed. In this determination, if it is determined that the count value PC and the value stored in the count value end 32-1 match, a subsequent process PR3 is performed.

処理PR3では、命令アドレス選択信号CS11が例えば論理“1”に設定される。論理“1”に設定された命令アドレス選択信号CS11は、命令アドレス選択回路MUX_ADDに命令アドレスCIAを選択させる信号を示す。   In the process PR3, the instruction address selection signal CS11 is set to logic “1”, for example. The instruction address selection signal CS11 set to logic “1” indicates a signal for causing the instruction address selection circuit MUX_ADD to select the instruction address CIA.

処理PR4において、CPU10はコプロセッサ30から供給された命令アドレスCIAを命令アドレスバス50に供給する。   In process PR4, the CPU 10 supplies the instruction address CIA supplied from the coprocessor 30 to the instruction address bus 50.

このようにして、コプロセッサ30は、ループ処理の開始、ループ処理の終了アドレス、ループ処理の終了を判断することができる。   In this way, the coprocessor 30 can determine the start of loop processing, the end address of loop processing, and the end of loop processing.

3.3.飽和処理
次にコプロセッサ30が飽和処理を行う場合の一例を説明する。
3.3. Saturation Processing Next, an example where the coprocessor 30 performs saturation processing will be described.

図14は、飽和処理を行うコプロセッサ30の構成例である。コプロセッサ30は、演算処理部33を含む。演算処理部33は判断部33−1を含むが、これに限定されない。   FIG. 14 is a configuration example of the coprocessor 30 that performs saturation processing. The coprocessor 30 includes an arithmetic processing unit 33. The arithmetic processing unit 33 includes the determination unit 33-1, but is not limited thereto.

判断部33−1は、CPU10から命令コード入力線IRCを介して入力される命令コードを受ける。また、判断部33−1は、フラグデータ供給線FLC1を介して供給されるフラグデータFLD1を受ける。フラグデータ供給線FLC1を介して供給されるフラグデータFLD1には、Cフラグが含まれる。   Determination unit 33-1 receives an instruction code input from CPU 10 via instruction code input line IRC. Determination unit 33-1 receives flag data FLD1 supplied via flag data supply line FLC1. The flag data FLD1 supplied via the flag data supply line FLC1 includes a C flag.

判断部33−1に供給された命令コードに含まれるコプロセッサコードCCDが演算処理部33による処理を示す場合には、判断部33−1は、Cフラグが“0”であるか否かを判断する。Cフラグが“0”である場合には、CPU10に命令コード選択信号供給線CSC12を介してアクティブに設定された命令コード選択信号CS12を供給する。この場合、CPU10の命令コード選択回路MUX_IRCは、アクティブに設定された命令コード選択信号CS12を受け、コプロセッサ30から供給される命令コードIR2を選択してフェッチ部100に供給する。   When the coprocessor code CCD included in the instruction code supplied to the determination unit 33-1 indicates processing by the arithmetic processing unit 33, the determination unit 33-1 determines whether or not the C flag is “0”. to decide. When the C flag is “0”, the instruction code selection signal CS12 set to be active is supplied to the CPU 10 via the instruction code selection signal supply line CSC12. In this case, the instruction code selection circuit MUX_IRC of the CPU 10 receives the instruction code selection signal CS12 set to be active, selects the instruction code IR2 supplied from the coprocessor 30, and supplies it to the fetch unit 100.

また、演算処理部33は、何も処理を行なわないことを示す命令(nop命令)を命令コードIR2として命令コード供給線CICCを介してCPU10に供給する。nop命令の命令コードは、例えば“00000000”に設定される。   The arithmetic processing unit 33 supplies an instruction (nop instruction) indicating that no processing is performed to the CPU 10 as an instruction code IR2 via the instruction code supply line CICC. The instruction code of the nop instruction is set to “00000000”, for example.

次に、例えば、第1、第2の命令コードで構成されたプログラムが第1、第2の命令コードの順に実行される場合の例を示す。   Next, for example, an example in which a program composed of first and second instruction codes is executed in the order of the first and second instruction codes will be described.

第1の命令コードは、コプロセッサコードCCDが演算処理部33を示すように設定され、CPUオペコードOPCDが例えばadd命令に設定され、レジスタアドレスsrc1としてレジスタR1のアドレスが設定され、直値データimm12として“12345678”が設定される。“12345678”は任意の値を示す。   The first instruction code is set so that the coprocessor code CCD indicates the arithmetic processing unit 33, the CPU operation code OPCD is set to an add instruction, for example, the address of the register R1 is set as the register address src1, and the direct data imm12 “12345678” is set. “12345678” indicates an arbitrary value.

第2の命令コードは、コプロセッサコードCCDが演算処理部33を示すように設定され、CPUオペコードOPCDが例えばld命令に設定され、レジスタアドレスsrc1としてレジスタR1のアドレスが設定され、直値データimm12として“FFFFFFFF”が設定される。ここでは、“FFFFFFFF”は例えば飽和処理を行う際の最大値を示し、この最大値を超えた値に対して飽和処理(丸め処理)を行う。   The second instruction code is set so that the coprocessor code CCD indicates the arithmetic processing unit 33, the CPU operation code OPCD is set to, for example, the ld instruction, the address of the register R1 is set as the register address src1, and the direct data imm12 "FFFFFFFF" is set. Here, “FFFFFFFF” indicates, for example, the maximum value when performing saturation processing, and saturation processing (rounding processing) is performed on values exceeding this maximum value.

CPU10側では、第1の命令コードが実行されると、add命令に基づき、レジスタR1に格納されている値と例えば命令コードに含まれる“12345678”とを加算する処理がALU400にて行われる。加算結果は例えばレジスタR1に格納される。この時の演算結果に基づいてフラグレジスタ410のフラグデータが設定される。例えば、この加算処理によって、オーバーフローが発生した場合、Cフラグが“1”に設定される。また、第1の命令コードがコプロセッサ30に命令コード入力線IRCを介して入力される。   On the CPU 10 side, when the first instruction code is executed, the ALU 400 performs a process of adding the value stored in the register R1 and, for example, “12345678” included in the instruction code based on the add instruction. The addition result is stored in the register R1, for example. Based on the calculation result at this time, the flag data of the flag register 410 is set. For example, when an overflow occurs by this addition process, the C flag is set to “1”. The first instruction code is input to the coprocessor 30 via the instruction code input line IRC.

コプロセッサ30側では、第1の命令コードがコプロセッサ30に入力されると、演算処理部33が処理を開始する。判断部33−1は、Cフラグの値が“0”であるかどうか判断する。Cフラグの値が“0”である場合には、CPU10にアクティブな命令コード選択信号CS12を供給する。   On the coprocessor 30 side, when the first instruction code is input to the coprocessor 30, the arithmetic processing unit 33 starts processing. The determination unit 33-1 determines whether the value of the C flag is “0”. When the value of the C flag is “0”, an active instruction code selection signal CS12 is supplied to the CPU 10.

この時、命令コード選択回路MUX_IRCには、命令コードバス60を介して供給される第2の命令コードと、コプロセッサ30から供給されるnop命令が供給される。命令コード選択回路MUX_IRCは、アクティブな命令コード選択信号CS12に基づいてnop命令をフェッチ部100に供給する。これにより、フェッチ部100にはnop命令がフェッチされ、次の命令ステップとして、CPU10側では何も処理を行なわないというnop命令が実行される。   At this time, the instruction code selection circuit MUX_IRC is supplied with the second instruction code supplied via the instruction code bus 60 and the nop instruction supplied from the coprocessor 30. The instruction code selection circuit MUX_IRC supplies a nop instruction to the fetch unit 100 based on the active instruction code selection signal CS12. As a result, the nop instruction is fetched into the fetch unit 100, and as the next instruction step, the nop instruction that no processing is performed on the CPU 10 side is executed.

反対に、Cフラグの値が“1”である場合には、ノンアクティブな命令コード選択信号CS12がCPU10に供給される。これに基づいて、命令コード選択回路MUX_IRCは、命令コードバス60を介して供給される第2の命令コードを選択して、フェッチ部100に供給する。これにより、次の命令ステップとして、第2の命令コードが実行される。即ち、この場合、ld命令に基づいて、レジスタR1には“FFFFFFFF”が格納される。このようにして、第1の命令コードによる演算結果でオーバーフローを生じさせた場合には、その演算結果を所与の値に設定することができる。また、オーバーフローが発生していない場合には、次の命令コードをキャンセルすることができる。   On the contrary, when the value of the C flag is “1”, a non-active instruction code selection signal CS12 is supplied to the CPU 10. Based on this, the instruction code selection circuit MUX_IRC selects the second instruction code supplied via the instruction code bus 60 and supplies it to the fetch unit 100. As a result, the second instruction code is executed as the next instruction step. That is, in this case, “FFFFFFFF” is stored in the register R1 based on the ld instruction. In this way, when an overflow occurs in the operation result of the first instruction code, the operation result can be set to a given value. If no overflow has occurred, the next instruction code can be canceled.

図15は、図14の飽和処理における命令コードのフェッチを示すタイミングチャートである。図15では、ALU400の演算結果において、オーバーフローが発生した場合を示す。B1に示すタイミングで命令コードバス60に第1の命令コード(add)が供給され、B2に示すように第1の命令コード(add)がフェッチ部100によってフェッチされる。   FIG. 15 is a timing chart showing instruction code fetching in the saturation processing of FIG. FIG. 15 shows a case where an overflow occurs in the calculation result of the ALU 400. The first instruction code (add) is supplied to the instruction code bus 60 at the timing indicated by B1, and the first instruction code (add) is fetched by the fetch unit 100 as indicated by B2.

例えば次のクロックCLKの立ち上がりエッジに応じて、B3に示すタイミングで命令コードバス60に第2の命令コード(ld)が供給されるが、第2の命令コード(ld)はフェッチされず、B4に示すようにnop命令がフェッチ部100によってフェッチされる。これは、命令コード選択回路MUX_IRCによって、コプロセッサ30からの命令コードIR2が選択されたためである。また、第1の命令コード(add)はCPU10で実行されると共に、B5に示すタイミングでコプロセッサ30に入力される。   For example, in response to the rising edge of the next clock CLK, the second instruction code (ld) is supplied to the instruction code bus 60 at the timing indicated by B3, but the second instruction code (ld) is not fetched and B4 As shown, the nop instruction is fetched by the fetch unit 100. This is because the instruction code IR2 from the coprocessor 30 is selected by the instruction code selection circuit MUX_IRC. The first instruction code (add) is executed by the CPU 10 and input to the coprocessor 30 at the timing indicated by B5.

第1の命令コード(add)が実行されると、ALU400によってフラグデータがフラグレジスタ410に格納される。このフラグデータ(例えばCフラグ)はコプロセッサ30に供給される。ALU400においてオーバーフローが発生した場合には、B6に示すようにCフラグが“0”(例えばローレベル)に設定される。判断部33−1は、このCフラグに基づいて、B7に示すように命令コード選択信号CS12をアクティブ(例えばハイレベル)に設定する。この命令コード選択信号CS12に基づいて、命令コード選択回路MUX_IRCはコプロセッサ30からの命令コードIR2(nop命令)を選択して、フェッチ部100に供給する。即ち、フェッチ部100は、B4に示すようにnop命令をフェッチする。   When the first instruction code (add) is executed, the ALU 400 stores flag data in the flag register 410. This flag data (for example, C flag) is supplied to the coprocessor 30. When an overflow occurs in the ALU 400, the C flag is set to “0” (for example, low level) as indicated by B6. Based on the C flag, the determination unit 33-1 sets the instruction code selection signal CS12 to active (for example, high level) as indicated by B7. Based on the instruction code selection signal CS12, the instruction code selection circuit MUX_IRC selects the instruction code IR2 (nop instruction) from the coprocessor 30 and supplies it to the fetch unit 100. That is, the fetch unit 100 fetches a nop instruction as indicated by B4.

例えば次のクロックCLKの立ち上がりエッジに応じて、CPU10側ではnop命令が実行されると共に、B8に示すようにnop命令がコプロセッサ30に入力される。   For example, in response to the next rising edge of the clock CLK, a nop instruction is executed on the CPU 10 side, and a nop instruction is input to the coprocessor 30 as shown at B8.

図16は、飽和処理を示すフローチャートである。処理PR11〜PR13はコプロセッサ30側の処理を示し、処理PR14はCPU10側の処理を示す。例えば制御部33−1は、処理PR1〜PR3を行うことができる。クロックCLKの例えば立ち上がりエッジに応じて飽和処理が開始されると、処理PR11では、CPU10からコプロセッサ30に入力された命令コードIR1が演算処理部33による処理を示す命令コードであるかどうかを判断する。例えば命令コードIR1のコプロセッサコードCCDが、演算処理部33による処理を示すコードである場合には、後段の処理PR12が行われる。   FIG. 16 is a flowchart showing the saturation process. Processes PR11 to PR13 indicate processes on the coprocessor 30 side, and process PR14 indicates processes on the CPU 10 side. For example, the control unit 33-1 can perform the processes PR1 to PR3. When saturation processing is started in response to, for example, a rising edge of the clock CLK, the processing PR11 determines whether or not the instruction code IR1 input from the CPU 10 to the coprocessor 30 is an instruction code indicating processing by the arithmetic processing unit 33. To do. For example, when the coprocessor code CCD of the instruction code IR1 is a code indicating processing by the arithmetic processing unit 33, the subsequent processing PR12 is performed.

処理PR12では、Cフラグの値が“0”であるか否かの判断が行われる。この判断において、Cフラグの値が“0”であると判断された場合には、後段の処理PR13が行われる。   In the process PR12, it is determined whether or not the value of the C flag is “0”. In this determination, if it is determined that the value of the C flag is “0”, the subsequent process PR13 is performed.

処理PR13では、命令コード選択信号CS12が例えば論理“1”に設定される。論理“1”に設定された命令コード選択信号CS12は、命令コード選択回路MUX_IRCに命令コードIR2を選択させる信号を示す。   In the process PR13, the instruction code selection signal CS12 is set to logic “1”, for example. The instruction code selection signal CS12 set to logic “1” indicates a signal for causing the instruction code selection circuit MUX_IRC to select the instruction code IR2.

処理PR14において、CPU10はコプロセッサ30から供給された命令コードIR2として、nop命令をフェッチする。   In process PR14, the CPU 10 fetches a nop instruction as the instruction code IR2 supplied from the coprocessor 30.

このようにして、コプロセッサ30は、飽和処理において、例えばオーバーフローの判断とその判断結果に基づく飽和処理を高速に行うことができる。   In this way, the coprocessor 30 can perform, for example, an overflow determination and a saturation process based on the determination result at high speed in the saturation process.

3.4.コプロセッサのレジスタデータ
3.4.1.レジスタファイルに供給する処理
図17は、コプロセッサ30のレジスタデータRDT1、RDT2をCPU10に供給する場合のブロック図を示す。コプロセッサ30は、演算処理部34を含む。演算処理部34は、アキュームレジスタ(ACC)34−1と、デコーダ34−2を含む。アキュームレジスタ34−1は、例えば40ビットのデータを格納することができる。演算処理部34には、CPU10から命令コード入力線IRCを介して命令コードIR1が入力される。演算処理部34は命令コードIR1に基づく処理を行い、例えばその結果をアキュームレジスタ34−1に格納する。
3.4. Coprocessor register data 3.4.1. Processing for Supplying to Register File FIG. 17 shows a block diagram when register data RDT1 and RDT2 of the coprocessor 30 are supplied to the CPU 10. The coprocessor 30 includes an arithmetic processing unit 34. The arithmetic processing unit 34 includes an accumulator register (ACC) 34-1 and a decoder 34-2. The accumulation register 34-1 can store, for example, 40-bit data. The instruction code IR1 is input to the arithmetic processing unit 34 from the CPU 10 via the instruction code input line IRC. The arithmetic processing unit 34 performs processing based on the instruction code IR1, and stores the result in the accumulation register 34-1, for example.

アキュームレジスタ34−1に格納された40ビットのデータのうち、例えば下位32ビットのデータ(第31ビット〜第0ビットのデータ)は第1のレジスタデータRDT1として、第1のレジスタデータ供給線RDC1を介してCPU10のレジスタファイル300に供給される。また、40ビットのデータのうち、例えば上位8ビットのデータ(第39ビット〜第32ビットのデータ)は第2のレジスタデータRDT2として、第2のレジスタデータ供給線RDC2を介してCPU10のレジスタファイル300に供給される。   Of the 40-bit data stored in the accumulator register 34-1, for example, lower 32 bits of data (31st to 0th bits of data) are used as the first register data RDT1 as the first register data supply line RDC1. To the register file 300 of the CPU 10. Of the 40-bit data, for example, the upper 8-bit data (39th to 32nd bit data) is used as the second register data RDT2 via the second register data supply line RDC2, and the register file of the CPU 10 is used. 300.

また、デコーダ34−2は、CPU10から入力された命令コードIR1に基づいてレジスタ番号RNM、レジスタ選択信号CS31、CS32をCPU10のレジスタファイル300に供給する。例えば、命令コードIR1に基づいてレジスタ番号RNMを生成することで、アキュームレジスタ34−1のレジスタデータRDT1を複数のレジスタR0〜R15のうちの任意のレジスタに供給することができる。   The decoder 34-2 supplies the register number RNM and the register selection signals CS31 and CS32 to the register file 300 of the CPU 10 based on the instruction code IR1 input from the CPU 10. For example, by generating the register number RNM based on the instruction code IR1, the register data RDT1 of the accumulation register 34-1 can be supplied to any of the plurality of registers R0 to R15.

このように構成された演算処理部34を用いて、大きなデータを高速にCPU10に供給することができる。   Large data can be supplied to the CPU 10 at high speed using the arithmetic processing unit 34 configured in this way.

また、演算処理部34によって行われる処理において発生したフラグデータFLD2(例えばCフラグ)が、第2のフラグデータ供給線FLC2を介してCPU10に供給される。これにより、CPU10は、次の命令コードで、フラグレジスタ410の値を用いることができる。そのため、コプロセッサ30で演算処理された結果に対して、高速にオーバーフローに対する処理等を行うことができる。   Further, flag data FLD2 (for example, C flag) generated in the processing performed by the arithmetic processing unit 34 is supplied to the CPU 10 via the second flag data supply line FLC2. Thus, the CPU 10 can use the value of the flag register 410 with the next instruction code. Therefore, it is possible to perform processing for an overflow or the like at high speed on the result of arithmetic processing by the coprocessor 30.

また、演算処理部34は、フラグデータFLD2をALU400のフラグレジスタ410に格納するか否かを制御するフラグデータライト信号CS41をCPU10に供給することができる。フラグデータFLD2をフラグレジスタ410に格納する場合には、フラグデータライト信号CS41がアクティブに設定される。フラグレジスタ410は、アクティブに設定されたフラグデータライト信号CS41に基づいて、フラグデータFLD2を格納する。このようにすることで、コプロセッサ30で生成されたフラグデータFLD2(例えばCフラグ)がCPU10において不要な場合、コプロセッサ30側でフラグデータFLD2をフラグレジスタ410に格納しないようにする制御が可能となる。   Further, the arithmetic processing unit 34 can supply the CPU 10 with a flag data write signal CS41 for controlling whether or not the flag data FLD2 is stored in the flag register 410 of the ALU 400. When flag data FLD2 is stored in flag register 410, flag data write signal CS41 is set active. The flag register 410 stores flag data FLD2 based on the flag data write signal CS41 set to be active. In this way, when the flag data FLD2 (for example, C flag) generated by the coprocessor 30 is unnecessary in the CPU 10, the coprocessor 30 can control the flag data FLD2 not to be stored in the flag register 410. It becomes.

図18は、図17で示す処理のタイミングチャートである。演算処理部34では、演算処理部34による演算結果がアキュームレジスタ34−1に格納される。その演算結果の例えば下位32ビットのデータが、C1に示すタイミングでアキュームレジスタ34−1の例えば下位32ビットにレジスタデータRDT1として格納される。そして、レジスタデータRDT1は、CPU10のレジスタファイル300に供給される。   FIG. 18 is a timing chart of the processing shown in FIG. In the arithmetic processing unit 34, the arithmetic result by the arithmetic processing unit 34 is stored in the accumulation register 34-1. For example, the lower 32 bits of the result of the operation are stored as register data RDT1 in the lower 32 bits of the accumulation register 34-1 at the timing indicated by C1. Then, the register data RDT1 is supplied to the register file 300 of the CPU 10.

また、デコーダ34−2は、命令コードIR1に基づいてC2に示すようにレジスタ番号RNMを生成し、CPU10のレジスタファイル300に供給する。また、デコーダ34−2は、命令コードIR1に基づいて、C3に示すようにアクティブに設定されたレジスタ選択信号CS31をレジスタファイルに供給する。   In addition, the decoder 34-2 generates a register number RNM as indicated by C2 based on the instruction code IR1, and supplies the register number RNM to the register file 300 of the CPU 10. Further, the decoder 34-2 supplies the register file with the register selection signal CS31 set to active as indicated by C3 based on the instruction code IR1.

また、演算処理部34による演算結果の例えば上位8ビットのデータが、C4に示すタイミングでアキュームレジスタ34−1の例えば上位8ビットにレジスタデータRDT2として格納される。そして、レジスタデータRDT2は、CPU10のレジスタファイル300に供給される。   Further, for example, the upper 8 bits data of the calculation result by the operation processing unit 34 is stored as register data RDT2 in the upper 8 bits of the accumulation register 34-1 at the timing indicated by C4. Then, the register data RDT2 is supplied to the register file 300 of the CPU 10.

また、デコーダ34−2は、命令コードIR1に基づいてC5に示すようにアクティブに設定されたレジスタ選択信号CS32をレジスタファイルに供給する。   Further, the decoder 34-2 supplies the register file with the register selection signal CS32 set to active as indicated by C5 based on the instruction code IR1.

上記のような処理が行われ、次のクロックCLKの例えば立ち上がりエッジに応じて、C6に示すようにレジスタファイル300にレジスタデータRDT1及びRDT2が格納される。即ち、本実施形態では、例えばCPU10の動作クロックCLKの1クロックで、各レジスタデータRDT1、RDT2やフラグデータFLD2をCPU10に供給することができる。このため、CPU10側では次の命令コードの実行で、各レジスタデータRDT1、RDT2やフラグデータFLD2を用いることができ、例えば飽和処理などの処理を高速に処理できる。   The above processing is performed, and the register data RDT1 and RDT2 are stored in the register file 300 as indicated by C6 in response to, for example, the rising edge of the next clock CLK. That is, in this embodiment, for example, each register data RDT1, RDT2 and flag data FLD2 can be supplied to the CPU 10 by one clock of the operation clock CLK of the CPU 10. Therefore, the CPU 10 can use each register data RDT1, RDT2 and flag data FLD2 by executing the next instruction code. For example, processing such as saturation processing can be performed at high speed.

3.4.2.ライトデータバスに供給する処理
図19は、コプロセッサ30のレジスタデータRDT1、RDT2をライトデータバス82に供給する場合のブロック図を示す。コプロセッサ30は、演算処理部36を含む。演算処理部36は、アキュームレジスタ(ACC)36−1と、デコーダ36−2と、アキュームレジスタデータ選択回路36−3と、データアドレス出力部36−4と、加算器36−5を含む。なお、演算処理部36は、上記の構成要素のいずれかを省略して構成されてもよい。例えば、加算器36−5は減算器でもよい。また、データアドレス出力部36−4は、例えばレジスタで構成されてもよい。
3.4.2. Processing for Supplying to Write Data Bus FIG. 19 shows a block diagram when register data RDT 1 and RDT 2 of the coprocessor 30 are supplied to the write data bus 82. The coprocessor 30 includes an arithmetic processing unit 36. The arithmetic processing unit 36 includes an accumulator register (ACC) 36-1, a decoder 36-2, an accumulator register data selection circuit 36-3, a data address output unit 36-4, and an adder 36-5. Note that the arithmetic processing unit 36 may be configured by omitting any of the above-described components. For example, the adder 36-5 may be a subtracter. Further, the data address output unit 36-4 may be constituted by a register, for example.

アキュームレジスタ36−1は、例えば40ビットのデータを格納することができる。演算処理部36には、CPU10から命令コード入力線IRCを介して命令コードIR1が入力される。演算処理部36は命令コードIR1に基づく処理を行い、例えばその結果をアキュームレジスタ36−1に格納する。   The accumulation register 36-1 can store, for example, 40-bit data. The instruction code IR1 is input to the arithmetic processing unit 36 from the CPU 10 via the instruction code input line IRC. The arithmetic processing unit 36 performs processing based on the instruction code IR1, and stores the result in the accumulation register 36-1, for example.

また、デコーダ36−2は、CPU10から入力された命令コードIR1に基づいて、データアドレス選択信号CS51と、ライトデータ選択信号CS52をCPU10のレジスタファイル300に供給する。また、デコーダ36−2は、例えばCPU10から入力された命令コードIR1に基づいてアキュームレジスタデータ選択信号CS54をアキュームレジスタデータ選択回路36−3に供給する。   The decoder 36-2 supplies the data address selection signal CS51 and the write data selection signal CS52 to the register file 300 of the CPU 10 based on the instruction code IR1 input from the CPU 10. The decoder 36-2 supplies an accumulator register data selection signal CS54 to the accumulator register data selection circuit 36-3 based on, for example, the instruction code IR1 input from the CPU 10.

アキュームレジスタ36−1に格納された40ビットのデータのうち、例えば下位32ビットのデータ(第31ビット〜第0ビットのデータ)と、例えば上位8ビットのデータ(第39ビット〜第32ビットのデータ)は、アキュームレジスタデータ選択回路36−3に供給される。アキュームレジスタデータ選択回路36−3は、アキュームレジスタデータ選択信号CS54に基づいて、下位32ビットのデータ及び上位8ビットのデータのいずれかを選択して、ライトデータ供給線WDACを介してライトデータWDA1としてCPU10に供給する。   Of the 40-bit data stored in the accumulator register 36-1, for example, lower 32 bits of data (31st to 0th bits) and upper 8 bits of data (39th to 32nd bits) Data) is supplied to the accumulation register data selection circuit 36-3. The accumulation register data selection circuit 36-3 selects either the lower 32 bits data or the upper 8 bits data based on the accumulation register data selection signal CS54, and writes the write data WDA1 via the write data supply line WDAC. To the CPU 10.

データアドレス出力部36−4は、データアドレス供給線DACを介してCPU10にデータアドレスDTADを供給する。データアドレス出力部36−4は、例えばレジスタで構成され、その出力が加算器36−5によって加算処理される。加算器36−5は、例えばデータアドレス出力部36−4の出力値に対して所与の値(例えば“4”の値)を加算して、その加算結果をデータアドレス出力部36−4に出力する。   The data address output unit 36-4 supplies the data address DTAD to the CPU 10 via the data address supply line DAC. The data address output unit 36-4 is constituted by a register, for example, and the output is added by the adder 36-5. For example, the adder 36-5 adds a given value (for example, a value of “4”) to the output value of the data address output unit 36-4, and sends the addition result to the data address output unit 36-4. Output.

また、データアドレス出力部36−4は、加算器36−5によって加算処理された結果を例えばクロックCLKの立ち上がりエッジに応じて格納する。即ち、データアドレス出力部36−4から、例えばクロックCLKの立ち上がりエッジに応じて、次々とインクリメントされたデータアドレスDTADがCPU10のデータアドレス選択回路MUX_DTに供給される。   Further, the data address output unit 36-4 stores the result of the addition processing by the adder 36-5, for example, according to the rising edge of the clock CLK. That is, the data address output unit 36-4 supplies the data address DTAD incremented one after another according to, for example, the rising edge of the clock CLK to the data address selection circuit MUX_DT of the CPU 10.

図20は、図19に示す処理のタイミングチャートである。命令コードIR1がD1に示すタイミングでコプロセッサ30に供給される。また、演算処理部36では、演算処理部36による演算結果がアキュームレジスタ36−1に格納される。その演算結果の例えば下位32ビットのデータ又は上位8ビットのデータがアキュームレジスタデータ選択回路36−3によって選択され、D2に示すようにライトデータWDA1としてCPU10に供給される。   FIG. 20 is a timing chart of the process shown in FIG. The instruction code IR1 is supplied to the coprocessor 30 at the timing indicated by D1. Further, in the arithmetic processing unit 36, the arithmetic result by the arithmetic processing unit 36 is stored in the accumulation register 36-1. For example, lower 32 bits data or upper 8 bits data of the calculation result is selected by the accumulator register data selection circuit 36-3 and supplied to the CPU 10 as write data WDA1 as indicated by D2.

また、ライトデータバス82にコプロセッサ30から供給されたライトデータWDA1を供給する場合には、デコーダ36−2から供給されるデータアドレス選択信号CS51及びライトデータ選択信号CS52はD3に示すようにアクティブ(例えばハイレベル)に設定される。   When the write data WDA1 supplied from the coprocessor 30 is supplied to the write data bus 82, the data address selection signal CS51 and the write data selection signal CS52 supplied from the decoder 36-2 are active as indicated by D3. (For example, high level).

また、データアドレス出力部36−4からはD4に示すようにデータアドレスDTADが出力され、D5に示すタイミングで例えば“4”の値がインクリメントされたデータアドレスDTADが出力される。   Further, the data address output unit 36-4 outputs a data address DTAD as indicated by D4, and outputs a data address DTAD in which, for example, a value of “4” is incremented at the timing indicated by D5.

また、CPU10のデータアドレス選択回路MUX_DTはデータアドレス選択信号CS51に基づいて、D6に示すようにデータアドレスDTADをデータアドレスバス70に供給する。なお、この時データアドレスバス70に供給されるデータアドレスDTADは、D4に示すデータアドレスDTADである。   Further, the data address selection circuit MUX_DT of the CPU 10 supplies the data address DTAD to the data address bus 70 as indicated by D6 based on the data address selection signal CS51. At this time, the data address DTAD supplied to the data address bus 70 is the data address DTAD indicated by D4.

また、CPU10のライトデータ選択回路MUX_WDはライトデータ選択信号CS52に基づいて、D7に示すようにライトデータWDA1をライトデータバス82に供給する。   The write data selection circuit MUX_WD of the CPU 10 supplies the write data WDA1 to the write data bus 82 as shown at D7 based on the write data selection signal CS52.

このように、D1に示すように命令コードIR1が入力されてから、D6やD7に示すタイミングでデータアドレスDTAD及びライトデータWDA1をデータアドレスバス70やライトデータバス82に供給することができる。即ち、コプロセッサ30で生成されたデータアドレスDTADやライトデータWDA1を高速にデータアドレスバス70やライトデータバス82に供給することができる。   Thus, after the instruction code IR1 is input as indicated by D1, the data address DTAD and the write data WDA1 can be supplied to the data address bus 70 and the write data bus 82 at the timing indicated by D6 and D7. That is, the data address DTAD and the write data WDA1 generated by the coprocessor 30 can be supplied to the data address bus 70 and the write data bus 82 at high speed.

例えば、メモリ20の所定のアドレスをインクリメントする毎に、その時のコプロセッサ30の処理結果を格納するような処理を、高速に処理することができる。   For example, each time a predetermined address in the memory 20 is incremented, a process for storing the processing result of the coprocessor 30 at that time can be processed at high speed.

図21は、図20で示す処理に関するフローチャートである。処理PR21〜PR25はコプロセッサ30側の処理を示す。クロックCLKの例えば立ち上がりエッジに応じて処理が開始されると、処理PR21では、CPU10からコプロセッサ30に入力された命令コードIR1が演算処理部36による処理を示す命令コードであるかどうかを判断する。例えば命令コードIR1のコプロセッサコードCCDが、演算処理部36による処理を示すコードである場合には、後段の処理PR22及びPR23が行われる。   FIG. 21 is a flowchart regarding the processing shown in FIG. Processes PR21 to PR25 indicate processes on the coprocessor 30 side. When the processing is started in response to, for example, a rising edge of the clock CLK, the processing PR21 determines whether or not the instruction code IR1 input from the CPU 10 to the coprocessor 30 is an instruction code indicating processing by the arithmetic processing unit 36. . For example, when the coprocessor code CCD of the instruction code IR1 is a code indicating processing by the arithmetic processing unit 36, subsequent processes PR22 and PR23 are performed.

処理PR22では、命令コードIR1に含まれる直値データimm12の値が例えば“1”の値であるか否かの判断が行われる。直値データimm12の値が“1”の値の場合には、後段の処理PR24が行われ、直値データimm12の値が“1”以外の値である場合には、後段の処理25を行う。   In the process PR22, it is determined whether or not the value of the direct data imm12 included in the instruction code IR1 is “1”, for example. When the value of the direct data imm12 is “1”, the subsequent process PR24 is performed. When the value of the direct data imm12 is a value other than “1”, the subsequent process 25 is performed. .

処理PR23では、データアドレス出力部36−4からデータアドレスDTADが出力される。また、次のクロックCLKの例えば立ち上がりエッジに応じて、データアドレスDTADが所与の値(例えば“4”の値)だけインクリメントされる。   In the process PR23, the data address DTAD is output from the data address output unit 36-4. Further, the data address DTAD is incremented by a given value (for example, a value of “4”) in accordance with, for example, the rising edge of the next clock CLK.

処理PR24では、演算処理部36は、アキュームレジスタ36−1に格納されているデータのうち、例えば上位8ビットのデータをCPU10に出力する。その出力の際、演算処理部36は、アキュームレジスタ36−1に格納されていた上位8ビットのデータを、例えば32ビットのデータで構成されるライトデータWDA1の下位8ビットに設定する。また、演算処理部36は、ライトデータWDA1の残りの上位24ビットを“0”の値に設定する。このように設定されたライトデータWDA1がCPU10に供給される。   In the process PR24, the arithmetic processing unit 36 outputs, for example, upper 8 bits of data stored in the accumulation register 36-1 to the CPU 10. At the time of the output, the arithmetic processing unit 36 sets the upper 8 bits data stored in the accumulation register 36-1 as the lower 8 bits of the write data WDA1 composed of, for example, 32-bit data. Further, the arithmetic processing unit 36 sets the remaining upper 24 bits of the write data WDA1 to a value of “0”. The write data WDA1 set in this way is supplied to the CPU 10.

処理PR25では、演算処理部36は、アキュームレジスタ36−1に格納されているデータのうち、例えば下位32ビットのデータをライトデータWDA1としてCPU10に供給する。   In the process PR25, the arithmetic processing unit 36 supplies, for example, lower 32 bits of data stored in the accumulation register 36-1 to the CPU 10 as write data WDA1.

なお、本実施形態では処理PR22によって、アキュームレジスタ36−1に格納されている上位8ビットのデータ及び下位32ビットのデータのいずれかを選択して、CPU10に供給することができる。その選択は、例えば直値データimm12に設定されているデータの値に基づいて行うことができる。例えば、直値データimm12に“1”の値が設定されている場合には、アキュームレジスタ36−1に格納されているデータの上位8ビットのデータを用いるように定義することができる。このようにすることで、命令コードIR1に基づいて、演算処理部36のデータの一部を選択して、ライトデータバス82に供給されるライトデータとしてCPU10に供給することができる。   In the present embodiment, either the upper 8-bit data or the lower 32-bit data stored in the accumulation register 36-1 can be selected and supplied to the CPU 10 by the process PR22. The selection can be performed based on the data value set in the direct data imm12, for example. For example, when the value “1” is set in the direct data imm12, it can be defined to use the upper 8 bits of the data stored in the accumulation register 36-1. In this way, a part of the data of the arithmetic processing unit 36 can be selected based on the instruction code IR1 and supplied to the CPU 10 as write data supplied to the write data bus 82.

4.比較例との対比
図22は、本実施形態に係る比較例である集積回路装置2000のCPU11とコプロセッサ31との接続関係を示す図である。比較例では、フェッチ部100から出力される例えば32ビットの命令コード22(code)が命令コード供給IRCを介してコプロセッサ31に供給される。また、レジスタファイル300の出力RQ2から出力されるレジスタデータsrc2は、第2のレジスタファイル供給線RFC2を介してコプロセッサ31に供給される。例えば、レジスタファイル300の複数のレジスタR0〜R15のうち、いずれか一つのレジスタに格納されている値をコプロセッサ31に供給することができる。また、コプロセッサ31は、コプロセッサ用データ入力線RDC1を用いてたとえば32ビットのレジスタデータRDT1をCPU11に供給することができる。
4). Comparison with Comparative Example FIG. 22 is a diagram illustrating a connection relationship between the CPU 11 and the coprocessor 31 of the integrated circuit device 2000 which is a comparative example according to the present embodiment. In the comparative example, for example, a 32-bit instruction code 22 (code) output from the fetch unit 100 is supplied to the coprocessor 31 via the instruction code supply IRC. The register data src2 output from the output RQ2 of the register file 300 is supplied to the coprocessor 31 via the second register file supply line RFC2. For example, a value stored in any one of the plurality of registers R0 to R15 of the register file 300 can be supplied to the coprocessor 31. The coprocessor 31 can supply, for example, 32-bit register data RDT1 to the CPU 11 using the coprocessor data input line RDC1.

比較例では、例えばコプロセッサ31からCPU11にデータを供給する場合、例えばレジスタファイル300を経由する必要がある。この場合、少なくともレジスタファイル300に格納する処理や格納されたデータを読み出す処理が必要となり、その分処理速度のロスを生じる。また、コプロセッサ31で生成されたデータの大きさが大きい場合や、そのデータの種類が複数ある場合、複数回に分けて、データをレジスタファイル300に供給する必要がある。この場合も、処理速度のロスを生じる。   In the comparative example, when data is supplied from the coprocessor 31 to the CPU 11, for example, it is necessary to go through the register file 300, for example. In this case, at least processing to be stored in the register file 300 and processing to read the stored data are required, and the processing speed is lost accordingly. Further, when the size of the data generated by the coprocessor 31 is large or when there are a plurality of types of data, it is necessary to supply the data to the register file 300 in a plurality of times. In this case as well, processing speed is lost.

また、コプロセッサ31で生成されたデータをライトデータバス82に供給する場合にもレジスタファイル300を経由させる必要がある。またコプロセッサ31で生成されたデータアドレスをデータアドレスバス70に供給する場合にも、レジスタアドレス300を経由させる必要がある。これらの場合にも、複数回の命令処理が必要となり、処理速度のロスを生じる。   Further, when data generated by the coprocessor 31 is supplied to the write data bus 82, it is necessary to pass through the register file 300. Further, when the data address generated by the coprocessor 31 is supplied to the data address bus 70, it is necessary to pass through the register address 300. In these cases as well, a plurality of instruction processes are required, resulting in a loss of processing speed.

これらに対して、本実施形態では、上述のようにコプロセッサ30から種々のデータ等が各供給線IRC、PCC、CIAC,CICC、CSC11、CSC12、RDC1、CSC31、RNC、RDC2、CSC32、FLC2、CSC41、DAC、CSC51、WDAC、CSC52、CSC53、RDAC等を介してCPU10に供給される。これにより、本実施形態では、コプロセッサ30からCPU10に供給したいデータ等を、CPU10の動作クロックの1クロックで、CPU10に供給することができる。即ち、比較例の課題である処理速度のロスを、本実施形態では緩和できる。さらに、本実施形態では、比較例に対してハードウェア構成的にも複雑な論理回路ブロックの追加が少ない。例えば選択回路がいくつか設けられるが、ハードウェア規模の増大を最小限に抑えることができる。そのため、比較例に比べて高速な処理を小さな回路規模で実現することができる。   On the other hand, in the present embodiment, as described above, various data and the like from the coprocessor 30 are supplied from the supply lines IRC, PCC, CIAC, CICC, CSC11, CSC12, RDC1, CSC31, RNC, RDC2, CSC32, FLC2, The data is supplied to the CPU 10 via the CSC 41, DAC, CSC 51, WDAC, CSC 52, CSC 53, RDAC, and the like. Thereby, in the present embodiment, data or the like to be supplied from the coprocessor 30 to the CPU 10 can be supplied to the CPU 10 with one clock of the operation clock of the CPU 10. That is, the loss of processing speed, which is a problem of the comparative example, can be reduced in this embodiment. Furthermore, in the present embodiment, the addition of complex logic circuit blocks in terms of hardware configuration is small compared to the comparative example. For example, several selection circuits are provided, but an increase in hardware scale can be minimized. Therefore, high-speed processing can be realized with a small circuit scale as compared with the comparative example.

また、例えば図9で示すループ処理を比較例で行う場合、分岐を判断する処理やループ処理の終了を判断する処理など複数の処理が頻繁に必要となる。これはCPU11の処理速度を低下させる。その速度の低下は、ループ処理のループ回数の増加や、1回のループ処理に行われる命令コードの数の増加に伴い、さらに顕著になる。つまり比較例において、ループ処理を高速に行うためには、CPU11の動作クロックを引き上げるか、専用命令を実行できるハードウェアを別途に設ける必要があった。   For example, when the loop process shown in FIG. 9 is performed in the comparative example, a plurality of processes such as a process for determining a branch and a process for determining the end of the loop process are frequently required. This reduces the processing speed of the CPU 11. The decrease in the speed becomes more remarkable with an increase in the number of loop processes and an increase in the number of instruction codes executed in one loop process. That is, in the comparative example, in order to perform the loop processing at a high speed, it is necessary to increase the operation clock of the CPU 11 or to separately provide hardware capable of executing a dedicated instruction.

これに対して、本実施形態では、前述のようにループ処理の終了等の判断をコプロセッサ30が行い、その結果等をCPU10にレジスタファイル300を介さずに供給できる。このため、比較例で必要だった処理時間を大幅に削減することができ、比較例に比べて高速なループ処理を行うことができる。   On the other hand, in the present embodiment, the coprocessor 30 determines whether the loop processing is completed as described above, and the result can be supplied to the CPU 10 without using the register file 300. For this reason, the processing time required in the comparative example can be significantly reduced, and high-speed loop processing can be performed as compared with the comparative example.

また、例えば図14で示すような飽和処理を比較例で行う場合、Cフラグを判断する処理と、その判断結果に基づいてALU400の演算結果を所定の値に変更する処理が必要となる。このとき、比較例では、フラグレジスタ410からフラグデータを取得する処理や、ALU400の演算結果を取得する処理がさらに必要となる。このため、複数の処理が必要となり、処理速度のロスを生じる。   For example, when the saturation process as shown in FIG. 14 is performed in the comparative example, a process for determining the C flag and a process for changing the calculation result of the ALU 400 to a predetermined value based on the determination result are required. At this time, in the comparative example, a process of acquiring flag data from the flag register 410 and a process of acquiring the calculation result of the ALU 400 are further required. For this reason, a plurality of processes are required, and processing speed is lost.

これに対して、本実施形態では、前述のように、CPU10のフラグデータFLD1に基づいて、コプロセッサ30は、CPU10のフェッチ部100にフェッチされる命令コードを切り替えることができる。このため、比較例に比べて高速に飽和処理を行うことができる集積回路装置1000を、図14に示すように簡単な回路構成で実現することができる。   On the other hand, in the present embodiment, as described above, the coprocessor 30 can switch the instruction code fetched by the fetch unit 100 of the CPU 10 based on the flag data FLD1 of the CPU 10. Therefore, the integrated circuit device 1000 capable of performing saturation processing at a higher speed than in the comparative example can be realized with a simple circuit configuration as shown in FIG.

また、例えば図17で示すようなビット長の長いレジスタデータをCPUに供給する処理を比較例で行う場合、データを複数に分割して、複数回に分けてレジスタファイル300に供給する必要がある。このため、レジスタデータの供給にCPU11の動作クロックを基準とする数クロックの処理時間を要する。   Also, for example, when the process of supplying register data having a long bit length to the CPU as shown in FIG. 17 is performed in the comparative example, the data needs to be divided into a plurality of parts and supplied to the register file 300 in a plurality of times. . For this reason, it takes several clocks of processing time based on the operation clock of the CPU 11 to supply the register data.

これに対して、本実施形態では、レジスタデータ供給線RDC1の他にレジスタデータ供給線RDC2が設けられているため、CPU10の動作クロックCLKの1クロックでレジスタデータRDT1及びRDT2をCPU10に供給することができる。即ち、コプロセッサ30の演算処理結果等を比較例に比べて高速にCPU10に供給することができる。さらに、コプロセッサ30の演算処理結果に基づくフラグデータFLD2も同時にPCU10に供給することができ、CPU10は、このフラグデータFLD2に基づいた処理をすぐに行うことができる。   On the other hand, in the present embodiment, since the register data supply line RDC2 is provided in addition to the register data supply line RDC1, the register data RDT1 and RDT2 are supplied to the CPU 10 with one clock of the operation clock CLK of the CPU 10. Can do. That is, the arithmetic processing result of the coprocessor 30 can be supplied to the CPU 10 at a higher speed than in the comparative example. Furthermore, the flag data FLD2 based on the calculation processing result of the coprocessor 30 can be simultaneously supplied to the PCU 10, and the CPU 10 can immediately perform the processing based on the flag data FLD2.

また、例えば図19で示すようなコプロセッサからのライトデータをライトデータバスに供給する処理を比較例で行う場合、レジスタファイル300を介する必要がある。このため、コプロセッサ31からのライトデータを一旦、レジスタファイル300に格納し、格納されたライトデータをライトデータバス82に供給する。このとき、CPU11側でいくつかの命令を実行するため、その分、処理に要する時間がかかる。   For example, when the process of supplying the write data from the coprocessor to the write data bus as shown in FIG. 19 is performed in the comparative example, it is necessary to pass through the register file 300. For this reason, the write data from the coprocessor 31 is temporarily stored in the register file 300 and the stored write data is supplied to the write data bus 82. At this time, since several instructions are executed on the CPU 11 side, it takes time for the process.

これに対して、本実施形態では、ライトデータ供給線WDACやデータアドレス供給線DACが設けられているため、CPU10の動作クロックCLKの1クロックでライトデータバス82やデータアドレスバス70に供給することができる。このため、本実施形態では、例えばライトデータバス82に対して、比較例に比べて高速にライトデータの供給ができる。また、ライトデータ選択回路MUX_WDやデータアドレス選択回路MUX_DTがCPU10側に設けられているため、コプロセッサ30から供給されるデータアドレス選択信号CS51やライトデータ選択信号CS52に基づいて、ライトデータやデータアドレスを切り替えることができる。このため、比較例では処理に時間がかかってしまうような処理(例えば図19の処理)を比較例に比べて高速に処理することができる。   On the other hand, in this embodiment, since the write data supply line WDAC and the data address supply line DAC are provided, the write data bus 82 and the data address bus 70 are supplied with one clock of the operation clock CLK of the CPU 10. Can do. Therefore, in the present embodiment, for example, write data can be supplied to the write data bus 82 at a higher speed than in the comparative example. Further, since the write data selection circuit MUX_WD and the data address selection circuit MUX_DT are provided on the CPU 10 side, the write data and the data address are based on the data address selection signal CS51 and the write data selection signal CS52 supplied from the coprocessor 30. Can be switched. For this reason, in the comparative example, processing that takes time (for example, the processing in FIG. 19) can be performed at a higher speed than in the comparative example.

なお、コプロセッサ30は、CPU10と同じクロック周波数で動作するが、これに限定されない。   The coprocessor 30 operates at the same clock frequency as the CPU 10, but is not limited to this.

5.変形例
図23は、本実施形態にかかる変形例の構成を示す。
5. Modified Example FIG. 23 shows a configuration of a modified example according to the present embodiment.

集積回路装置1000は、直値生成部200から出力される直値データをコプロセッサ30に供給するための直値データ供給線IMCをさらに含んでもよい。また、集積回路装置1000は、レジスタファイル300の第1、第2のレジスタ選択回路310、320(広義には第1〜第nのレジスタ選択回路)の出力をコプロセッサ30に供給するための第1、第2のレジスタファイル供給線RFC1、RFC2(広義には、第1〜第nのレジスタファイル供給線)と、固定レジスタとして設定されたレジスタの出力をコプロセッサ30に供給するための固定レジスタデータ供給線RFC3をさらに含んでもよい。また、集積回路装置1000は、ALU400の演算処理結果をコプロセッサ30に供給するためのALU出力供給線ALCをさらに含んでもよい。また、集積回路装置1000は、ロードストア部500によって例えばメモリ20から読み出されたデータをコプロセッサ30に供給するためのロードデータ供給線LDCと、デコード制御部600の制御信号をコプロセッサ30に供給するための制御信号供給線CSCをさらに含んでもよい。   The integrated circuit device 1000 may further include a direct data supply line IMC for supplying the direct data output from the direct data generation unit 200 to the coprocessor 30. In addition, the integrated circuit device 1000 supplies the output of the first and second register selection circuits 310 and 320 (first to nth register selection circuits in a broad sense) of the register file 300 to the coprocessor 30. 1 and second register file supply lines RFC1 and RFC2 (first to nth register file supply lines in a broad sense) and a fixed register for supplying the output of a register set as a fixed register to the coprocessor 30 A data supply line RFC3 may be further included. The integrated circuit device 1000 may further include an ALU output supply line ALC for supplying the arithmetic processing result of the ALU 400 to the coprocessor 30. Further, the integrated circuit device 1000 sends a load data supply line LDC for supplying data read from, for example, the memory 20 by the load store unit 500 to the coprocessor 30 and a control signal from the decode control unit 600 to the coprocessor 30. A control signal supply line CSC for supply may be further included.

なお、集積回路装置1000は、上記の構成に限定されない。例えば、CPU10は、直値データ供給線IMC、第1、第2のレジスタファイル供給線RFC1、RFC2、固定レジスタデータ供給線RFC3等を省略する構成でもよい。また、コプロセッサ30は、コプロセッサ用データ入力線RDC1を介してコプロセッサの演算処理結果をCPU10に出力するが、これに限定されない。   Note that the integrated circuit device 1000 is not limited to the above configuration. For example, the CPU 10 may be configured to omit the direct data supply line IMC, the first and second register file supply lines RFC1 and RFC2, the fixed register data supply line RFC3, and the like. The coprocessor 30 outputs the result of the coprocessor operation processing to the CPU 10 via the coprocessor data input line RDC1, but the present invention is not limited to this.

また、直値生成部200には、例えば直値データ供給線IMCの一端が接続されてもよい。直値生成部200は、この直値データ供給線IMCを介してコプロセッサ30と接続することができる。この場合、直値生成部200は、生成した直値データ(例えば32ビットの直値データ)を直値データ供給線IMCを介してコプロセッサ30に供給することができる。   Further, for example, one end of the direct data supply line IMC may be connected to the direct value generating unit 200. The direct value generation unit 200 can be connected to the coprocessor 30 via the direct data supply line IMC. In this case, the direct value generation unit 200 can supply the generated direct data (for example, 32-bit direct data) to the coprocessor 30 via the direct data supply line IMC.

また、第1のレジスタ選択回路310の出力RQ1には、例えばレジスタファイル供給線RFC1の一端が接続されてもよい。レジスタファイル300の第1のレジスタ選択回路310の出力RQ1は第1のレジスタファイル供給線RFC1を介してコプロセッサ30と接続することができる。この場合、レジスタファイル300は、第1のレジスタ選択回路310の出力RQ1から出力される値をコプロセッサ30に供給することができる。   For example, one end of the register file supply line RFC1 may be connected to the output RQ1 of the first register selection circuit 310. The output RQ1 of the first register selection circuit 310 of the register file 300 can be connected to the coprocessor 30 via the first register file supply line RFC1. In this case, the register file 300 can supply the value output from the output RQ1 of the first register selection circuit 310 to the coprocessor 30.

また、ALU出力AQには、例えばALU出力供給線ALCの一端が接続されてもよい。ALU400は、このALU出力供給線ALCを介してコプロセッサ30と接続することができる。この場合、ALU400の出力(例えば演算処理結果)をコプロセッサ30に供給することができる。   For example, one end of an ALU output supply line ALC may be connected to the ALU output AQ. The ALU 400 can be connected to the coprocessor 30 via the ALU output supply line ALC. In this case, the output of the ALU 400 (for example, the calculation processing result) can be supplied to the coprocessor 30.

また、ロードストア部500のロードデータ出力LDDには例えばロードデータ供給線LDCの一端が接続されてもよい。ロードストア部500は、このロードデータ供給線LDCを介してコプロセッサ30と接続することができる。この場合、ロードストア部500の出力(例えばメモリから読み出したデータ)をコプロセッサ30に供給することができる。   Further, for example, one end of a load data supply line LDC may be connected to the load data output LDD of the load store unit 500. The load store unit 500 can be connected to the coprocessor 30 via the load data supply line LDC. In this case, the output (for example, data read from the memory) of the load store unit 500 can be supplied to the coprocessor 30.

このように構成された本実施形態にかかる変形例では、コプロセッサ30に供給したいデータ等を、CPU10の動作クロックの1クロックで、コプロセッサ30に供給することができる。即ち、処理速度のロスを比較例に比べて緩和できる。さらに、変形例では、比較例に対してハードウェア構成的にも複雑な論理回路ブロックの追加を必要としないため、比較例に比べて高速な処理を小さな回路規模で実現することができる。   In the modification according to the present embodiment configured as described above, data or the like to be supplied to the coprocessor 30 can be supplied to the coprocessor 30 with one clock of the operation clock of the CPU 10. That is, the processing speed loss can be reduced as compared with the comparative example. Furthermore, in the modified example, it is not necessary to add a complicated logic circuit block in terms of hardware configuration to the comparative example, and therefore, high-speed processing can be realized with a small circuit scale as compared with the comparative example.

また、変形例では、コプロセッサ30に直値データ供給線IMC、第1、第2のレジスタファイル供給線RFC1、RFC2が接続されている。このため、CPU10は、CPU10の動作クロックの1クロックで、各データimm、src1、src2をコプロセッサ30に供給することができる。これにより、複雑な積和演算処理を比較例に比べて高速に行うことができる。   Further, in the modification, the direct data supply line IMC and the first and second register file supply lines RFC1 and RFC2 are connected to the coprocessor 30. Therefore, the CPU 10 can supply the data imm, src1, and src2 to the coprocessor 30 with one clock of the operation clock of the CPU 10. Thereby, complicated product-sum operation processing can be performed at a higher speed than the comparative example.

また、変形例では、コプロセッサ30にALU出力供給線ALC、フラグデータ供給線FLC1が接続されている。このため、CPU10は、CPU10の動作クロックの1クロックで、各データalu、Cフラグデータをコプロセッサ30に供給することができる。さらに、ALU400の演算処理結果aluの値が決定されたら、即座にコプロセッサ30に演算処理結果aluを供給することができる。これにより、例えば飽和処理を比較例に比べて高速に行うことができる。   Further, in the modification, the ALU output supply line ALC and the flag data supply line FLC1 are connected to the coprocessor 30. Therefore, the CPU 10 can supply each data alu and C flag data to the coprocessor 30 with one clock of the operation clock of the CPU 10. Further, when the value of the arithmetic processing result alu of the ALU 400 is determined, the arithmetic processing result alu can be supplied to the coprocessor 30 immediately. Thereby, for example, saturation processing can be performed at a higher speed than in the comparative example.

また、変形例では、コプロセッサ30に命令コード入力線IRC、ロードデータ供給線LDCが接続されている。このため、CPU10は、CPU10の動作クロックの1クロックで、各データload、imm12をコプロセッサ30に供給することができる。これにより、例えば複雑な積和処理を比較例に比べて高速に行うことができる。   In the modification, an instruction code input line IRC and a load data supply line LDC are connected to the coprocessor 30. Therefore, the CPU 10 can supply the data load and imm12 to the coprocessor 30 with one clock of the operation clock of the CPU 10. Thereby, for example, complex product-sum processing can be performed at a higher speed than in the comparative example.

上記のように、本実施形態の集積回路装置1000は、比較例に比べて複雑な論理回路ブロックを追加せずに、コプロセッサ30に必要なデータを1クロックで供給できるため、複雑な処理を比較例に比べて高速に処理を行うことができる。   As described above, the integrated circuit device 1000 according to this embodiment can supply necessary data to the coprocessor 30 in one clock without adding a complicated logic circuit block as compared with the comparative example. Processing can be performed at a higher speed than the comparative example.

なお、コプロセッサ30は、CPU10と同じクロック周波数で動作するが、これに限定されない。   The coprocessor 30 operates at the same clock frequency as the CPU 10, but is not limited to this.

上記のように、本発明の実施例について詳細に説明したが、本発明の新規事項及び効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。したがって、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書または図面において、少なくとも一度、より広義又は同義な異なる用語と共に記載された用語は、明細書または図面のいかなる箇所においても、その異なる用語に置き換えることができる。   As described above, the embodiments of the present invention have been described in detail. However, those skilled in the art can easily understand that many modifications can be made without departing from the novel matters and effects of the present invention. . Accordingly, all such modifications are intended to be included in the scope of the present invention. For example, a term described with a different term having a broader meaning or the same meaning at least once in the specification or the drawings can be replaced with the different term anywhere in the specification or the drawings.

本実施形態に係る集積回路装置を示すブロック図。1 is a block diagram showing an integrated circuit device according to an embodiment. 本実施形態に係るCPUを示すブロック図。The block diagram which shows CPU which concerns on this embodiment. 本実施形態に係るCPUとコプロセッサとの接続を示す図。The figure which shows the connection of CPU and a coprocessor which concerns on this embodiment. 本実施形態に係るフェッチ部とコプロセッサの接続を示すブロック図。The block diagram which shows the connection of the fetch part which concerns on this embodiment, and a coprocessor. 本実施形態に係るレジスタファイルとコプロセッサの接続を示すブロック図。The block diagram which shows the connection of the register file which concerns on this embodiment, and a coprocessor. 本実施形態に係るALUとコプロセッサの接続を示すブロック図。The block diagram which shows the connection of ALU and a coprocessor concerning this embodiment. 本実施形態に係るロードストア部とコプロセッサの接続を示すブロック図。The block diagram which shows the connection of the load store part and coprocessor which concern on this embodiment. 本実施形態に係る命令コードの構成例。3 is a configuration example of an instruction code according to the present embodiment. 本実施形態に係る集積回路装置におけるループ処理を示す図。The figure which shows the loop process in the integrated circuit device which concerns on this embodiment. 図10のループ処理の開始時のタイミングチャート。11 is a timing chart at the start of the loop processing of FIG. 図10のループ処理における命令コードの対応例。11 is a correspondence example of instruction codes in the loop processing of FIG. 図10のループ処理の終了時のタイミングチャート。11 is a timing chart at the end of the loop processing of FIG. 図10のループ処理を示すフローチャート。11 is a flowchart showing loop processing of FIG. 本実施形態に係る集積回路装置の飽和処理を示す図。The figure which shows the saturation process of the integrated circuit device which concerns on this embodiment. 図14の飽和処理を示すタイミングチャート。The timing chart which shows the saturation processing of FIG. 図14の飽和処理を示すフローチャート。The flowchart which shows the saturation process of FIG. 本実施形態に係る集積回路装置のレジスタデータの供給を示す図。The figure which shows supply of the register data of the integrated circuit device which concerns on this embodiment. 図17のレジスタデータの供給を示すタイミングチャート。The timing chart which shows supply of the register data of FIG. 本実施形態に係る集積回路装置におけるライトデータ、データアドレスの供給を示す図。FIG. 4 is a diagram showing supply of write data and data addresses in the integrated circuit device according to the embodiment. 図19のライトデータ、データアドレスの供給を示すタイミングチャート。FIG. 20 is a timing chart showing supply of write data and data addresses in FIG. 19. FIG. 図19のライトデータ、データアドレスの供給を示すフローチャート。The flowchart which shows supply of the write data of FIG. 19, and a data address. 本実施形態に係る比較例を示す図。The figure which shows the comparative example which concerns on this embodiment. 本実施形態に係る変形例を示す図。The figure which shows the modification concerning this embodiment.

符号の説明Explanation of symbols

10 CPU、20 メモリ、22 命令コード、24 データ、30 コプロセッサ、50 命令アドレス、60 命令コードバス、70 データアドレスバス、
80データバス、82 ライトデータバス、84 リードデータバス、
100 フェッチ部、110 プログラムカウンタ、200 直値生成部、
300 レジスタファイル、310 第1のレジスタ選択回路、
320 第2のレジスタ選択回路、400 ALU、410 フラグレジスタ、
500 ロードストア部、600 デコード制御部、CDAD データアドレス、
CIA 命令アドレス、CIAC 命令アドレス供給線、CICC 命令コード供給線、CSC11 命令アドレス選択信号供給線、CSC12 命令コード選択信号供給線、
CSC31 第1のレジスタデータ選択信号供給線、
CSC32 第2のレジスタデータ選択信号供給線、
CSC41 フラグデータ選択信号、CSC51 データアドレス選択信号供給線、
CSC52 ライトデータ選択信号供給線、CSC53 リードデータ選択信号供給線、CS11 命令アドレス選択信号、CS12 命令コード選択信号、
CS31 第1のレジスタデータ選択信号、CS32 第2のレジスタデータ選択信号、CS41 フラグデータ選択信号、CS51 データアドレス選択信号、
CS52 ライトデータ選択信号、CS53 リードデータ選択信号、
DAC データアドレス供給線、DTAD データアドレス、
FLC1 第1のフラグデータ供給線、FLC2 第2のフラグデータ供給線、
FLD1 第1のフラグデータ、FLD2 第2のフラグデータ、
MUX_ADD 命令アドレス選択回路、MUX_DT データアドレス選択回路、
MUX_FLG フラグデータ選択回路、MUX_IRC 命令コード選択回路、
MUX_RD リードデータ選択回路、
MUX_RG1 第1のレジスタデータ選択回路、
MUX_RG2 第2のレジスタデータ選択回路、
MUX_RNM レジスタ番号選択回路、MUX_WD ライトデータ選択回路、
IR1、IR2 命令コード、PCC カウント値供給線、
RDAC リードデータ供給線、RDA1 リードデータ、
RDC1 第1のレジスタデータ供給線、RDC2 第2のレジスタデータ供給線、
RDT1 第1のレジスタデータ、RDT2 第2のレジスタデータ、
RNC レジスタ番号供給線、RNM レジスタ番号、R0〜R15 複数のレジスタ、WDAC ライトデータ供給線、WDA1、WDA2 ライトデータ
10 CPU, 20 memory, 22 instruction code, 24 data, 30 coprocessor, 50 instruction address, 60 instruction code bus, 70 data address bus,
80 data bus, 82 write data bus, 84 read data bus,
100 fetch unit, 110 program counter, 200 direct value generation unit,
300 register file, 310 first register selection circuit,
320 second register selection circuit, 400 ALU, 410 flag register,
500 load store section, 600 decode control section, CDAD data address,
CIA instruction address, CIAC instruction address supply line, CICC instruction code supply line, CSC11 instruction address selection signal supply line, CSC12 instruction code selection signal supply line,
CSC31 first register data selection signal supply line,
CSC32 second register data selection signal supply line;
CSC41 flag data selection signal, CSC51 data address selection signal supply line,
CSC52 write data selection signal supply line, CSC53 read data selection signal supply line, CS11 instruction address selection signal, CS12 instruction code selection signal,
CS31 first register data selection signal, CS32 second register data selection signal, CS41 flag data selection signal, CS51 data address selection signal,
CS52 write data selection signal, CS53 read data selection signal,
DAC data address supply line, DTAD data address,
FLC1 first flag data supply line, FLC2 second flag data supply line,
FLD1 first flag data, FLD2 second flag data,
MUX_ADD instruction address selection circuit, MUX_DT data address selection circuit,
MUX_FLG flag data selection circuit, MUX_IRC instruction code selection circuit,
MUX_RD read data selection circuit,
MUX_RG1 first register data selection circuit,
MUX_RG2 second register data selection circuit,
MUX_RNM register number selection circuit, MUX_WD write data selection circuit,
IR1, IR2 instruction code, PCC count value supply line,
RDAC read data supply line, RDA1 read data,
RDC1 first register data supply line, RDC2 second register data supply line,
RDT1 first register data, RDT2 second register data,
RNC register number supply line, RNM register number, R0 to R15 Multiple registers, WDAC write data supply line, WDA1, WDA2 write data

Claims (7)

命令コードに基づいて所与の処理を実行するCPUを含む集積回路装置であって、
コプロセッサから出力されるデータアドレスを前記CPUに供給するためのデータアドレス供給線を含み、
前記CPUは、
データアドレスバスを介してメモリにデータアドレスを供給し、ライトデータバスを介してライトデータを供給することで、前記メモリへデータの書き込みを行うロードストア部と、
前記データアドレス供給線を介して供給されるデータアドレスと前記ロードストア部から出力されるデータアドレスを受け、そのいずれかのデータアドレスを前記データアドレスバスに供給するデータアドレス選択回路と、
を含むことを特徴とする集積回路装置。
An integrated circuit device including a CPU that executes a given process based on an instruction code,
A data address supply line for supplying a data address output from the coprocessor to the CPU;
The CPU
A load store unit for writing data to the memory by supplying a data address to the memory via the data address bus and supplying write data via the write data bus;
A data address selection circuit that receives a data address supplied via the data address supply line and a data address output from the load store unit, and supplies any one of the data addresses to the data address bus;
An integrated circuit device comprising:
請求項1において、
前記コプロセッサから前記データアドレス選択回路にデータアドレス選択信号を供給するためのデータアドレス選択信号供給線をさらに含み、
前記データアドレス選択回路は、
前記データアドレス選択信号に基づいて、前記データアドレス供給線を介して供給されるデータアドレス及び前記ロードストア部から出力されるデータアドレスのうちのいずれかのデータアドレスを前記データアドレスバスに供給することを特徴とする集積回路装置。
In claim 1,
A data address selection signal supply line for supplying a data address selection signal from the coprocessor to the data address selection circuit;
The data address selection circuit includes:
Based on the data address selection signal, one of a data address supplied via the data address supply line and a data address output from the load store unit is supplied to the data address bus. An integrated circuit device.
命令コードに基づいて所与の処理を実行するCPUを含む集積回路装置であって、
前記コプロセッサから出力されるライトデータを前記CPUに供給するためのライトデータ供給線を含み、
前記CPUは、
データアドレスバスを介してメモリにデータアドレスを供給し、ライトデータバスを介してライトデータを供給することで、前記メモリへデータの書き込みを行うロードストア部と、
前記ライトデータ供給線を介して供給されるライトデータと前記ロードストア部から出力されるライトデータを受け、そのいずれかのライトデータを前記ライトデータバスに供給するライトデータ選択回路と、
を含むことを特徴とする集積回路装置。
An integrated circuit device including a CPU that executes a given process based on an instruction code,
A write data supply line for supplying the CPU with write data output from the coprocessor;
The CPU
A load store unit for writing data to the memory by supplying a data address to the memory via the data address bus and supplying write data via the write data bus;
A write data selection circuit that receives write data supplied via the write data supply line and write data output from the load store unit, and supplies any one of the write data to the write data bus;
An integrated circuit device comprising:
請求項3において、
前記コプロセッサから前記ライトデータ選択回路にライトデータ選択信号を供給するためのライトデータ選択信号供給線をさらに含み、
前記ライトデータ選択回路は、
前記ライトデータ選択信号に基づいて、前記ライトデータ供給線を介して供給されるライトデータ及び前記ロードストア部から出力されるライトデータのうちのいずれかのライトデータを前記ライトデータバスに供給することを特徴とする集積回路装置。
In claim 3,
A write data selection signal supply line for supplying a write data selection signal from the coprocessor to the write data selection circuit;
The write data selection circuit includes:
Based on the write data selection signal, one of the write data supplied via the write data supply line and the write data output from the load store unit is supplied to the write data bus. An integrated circuit device.
命令コードに基づいて所与の処理を実行するCPUを含む集積回路装置であって、
前記コプロセッサから出力されるリードデータを前記CPUに供給するためのリードデータ供給線を含み、
前記CPUは、
データアドレスバスを介してメモリにデータアドレスを供給し、リードデータバスを介してリードデータを受け取ることで、前記メモリからデータの読み出しを行うロードストア部と、
前記リードデータ供給線を介して供給される前記リードデータと前記リードデータバスから供給されるリードデータを受け、そのいずれかのリードデータを前記ロードストア部に供給するリードデータ選択回路と、
を含み、
前記集積回路装置は、前記コプロセッサからリードデータ選択回路にリードデータ選択信号を供給するためのリードデータ選択信号供給線をさらに含み、
前記リードデータ選択回路は、前記リードデータ選択信号に基づいて、前記コプロセッサリードデータ及び前記CPUリードデータのうちのいずれかのリードデータを前記ロードストア部に供給することを特徴とする集積回路装置。
An integrated circuit device including a CPU that executes a given process based on an instruction code,
A read data supply line for supplying read data output from the coprocessor to the CPU;
The CPU
A load store unit for reading data from the memory by supplying a data address to the memory via the data address bus and receiving read data via the read data bus;
A read data selection circuit which receives the read data supplied from the read data supply line and the read data supplied from the read data bus, and supplies any one of the read data to the load store unit;
Only including,
The integrated circuit device further includes a read data selection signal supply line for supplying a read data selection signal from the coprocessor to a read data selection circuit,
The read data selection circuit supplies any one of the coprocessor read data and the CPU read data to the load store unit based on the read data selection signal. .
請求項1乃至のいずれかにおいて、
前記CPUは、前記命令コードに基づく演算処理を行うALUを含み、
前記CPUは、
前記ALUの演算処理結果に基づく第1のフラグデータを前記コプロセッサに供給するための第1のフラグデータ供給線と、
前記コプロセッサの演算処理結果に基づく第2のフラグデータを前記ALUに供給するための第2のフラグデータ供給線と、
を含み、
前記ALUは、
前記第1又は第2のフラグデータを格納するフラグレジスタと、
前記第1及び第2のフラグデータ供給線から前記第1及び第2のフラグデータを受け、前記第1及び第2のフラグデータのいずれかを前記フラグレジスタに供給するフラグデータ選択回路と、
を含むことを特徴とする集積回路装置。
In any one of Claims 1 thru | or 5 ,
The CPU includes an ALU that performs arithmetic processing based on the instruction code,
The CPU
A first flag data supply line for supplying first flag data based on the arithmetic processing result of the ALU to the coprocessor;
A second flag data supply line for supplying second flag data based on the arithmetic processing result of the coprocessor to the ALU;
Including
The ALU is
A flag register for storing the first or second flag data;
A flag data selection circuit that receives the first and second flag data from the first and second flag data supply lines and supplies either of the first and second flag data to the flag register;
An integrated circuit device comprising:
請求項において、
前記CPUは、
フラグデータ選択信号を前記コプロセッサから前記ALUに供給するためのフラグデータ選択信号供給線をさらに含み、
前記ALUの前記フラグデータ選択回路は、前記フラグデータ選択信号供給線を介して供給される前記フラグデータ選択信号に基づいて、前記第1及び第2のフラグデータのいずれかを前記フラグレジスタに選択出力することを特徴とする集積回路装置。
In claim 6 ,
The CPU
A flag data selection signal supply line for supplying a flag data selection signal from the coprocessor to the ALU;
The flag data selection circuit of the ALU selects one of the first and second flag data as the flag register based on the flag data selection signal supplied via the flag data selection signal supply line. An integrated circuit device for outputting.
JP2007039431A 2007-02-20 2007-02-20 Integrated circuit device Expired - Fee Related JP4211851B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007039431A JP4211851B2 (en) 2007-02-20 2007-02-20 Integrated circuit device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007039431A JP4211851B2 (en) 2007-02-20 2007-02-20 Integrated circuit device

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2005089253A Division JP4211751B2 (en) 2005-03-25 2005-03-25 Integrated circuit device

Publications (2)

Publication Number Publication Date
JP2007128561A JP2007128561A (en) 2007-05-24
JP4211851B2 true JP4211851B2 (en) 2009-01-21

Family

ID=38151092

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007039431A Expired - Fee Related JP4211851B2 (en) 2007-02-20 2007-02-20 Integrated circuit device

Country Status (1)

Country Link
JP (1) JP4211851B2 (en)

Also Published As

Publication number Publication date
JP2007128561A (en) 2007-05-24

Similar Documents

Publication Publication Date Title
JP4211751B2 (en) Integrated circuit device
US7363466B2 (en) Microcomputer
EP0766169B1 (en) Processor and control method for performing proper saturation operation
US7917733B2 (en) Instruction code compression using instruction codes with reuse flags
EP0803091B1 (en) Computer system
US6844834B2 (en) Processor, encoder, decoder, and electronic apparatus
US5459847A (en) Program counter mechanism having selector for selecting up-to-date instruction prefetch address based upon carry signal of adder which adds instruction size and LSB portion of address register
JP3789583B2 (en) Data processing device
JP2669158B2 (en) Data processing device
JPH0546383A (en) Data processor
JP3983482B2 (en) PC relative branching with high-speed displacement
JP4211851B2 (en) Integrated circuit device
JP4211850B2 (en) Integrated circuit device
JP2556182B2 (en) Data processing device
JP3867804B2 (en) Integrated circuit device
US20080256335A1 (en) Microprocessor, microcomputer, and electronic instrument
JPH04260926A (en) Bit retrieving circuit and data processor provided with the same
US5708800A (en) High speed microprocessor for processing and transferring N-bits of M-bit data
JP2000039995A (en) Flexible accumulate register file to be used in high performance microprocessor
US6530013B1 (en) Instruction control apparatus for loading plurality of instructions into execution stage
US10474465B2 (en) Pop stack absolute instruction
JP3760093B2 (en) Microcomputer
JPH04260928A (en) Data processor
JPH05173778A (en) Data processor
JP2002182905A (en) Digital signal processing processor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080227

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080428

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20080428

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20080428

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081007

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081020

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111107

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4211851

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111107

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121107

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121107

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131107

Year of fee payment: 5

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees