JP4211851B2 - Integrated circuit device - Google Patents
Integrated circuit device Download PDFInfo
- 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
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は、コプロセッサから情報を複数回に分けて受け取る必要があり、処理能力の向上の妨げとなっていた。また、処理能力をさらに向上させるためには、動作クロックを引き上げるか、ハードウェア規模を拡大して処理能力を上げる必要があったが、これらの方法は低消費電力化やコスト削減に対する妨げとなっていた。
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、ハードウェア規模の増大を最小限にしながら、高速な演算処理を行う集積回路装置を提供することにある。 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
メモリ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
一方、コプロセッサ30は、CPU10の苦手な演算などを高速に処理できる演算処理部32を含む。即ち、CPU10は、処理内容に応じてコプロセッサ30を用いることにより、効率的な処理を行うことができる。
On the other hand, the
図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
フェッチ部100は、例えばメモリ20に格納されている命令コード22をフェッチするが、これに限定されない。また、フェッチ部100はカウント値PCを出力するプログラムカウンタ110を含み、命令フェッチを行う場合、プログラムカウンタ110から出力されるカウント値に基づく命令アドレスを例えばメモリ20に出力する。フェッチ部100は、命令フェッチを行う場合、例えばプログラムカウンタ110から出力される値を命令アドレスとして命令アドレスバス50を介してメモリ20に出力するが、これに限定されない。フェッチ部100は、命令フェッチを行う際に、例えばカウント値を命令アドレスとして出力した後にプログラムカウンタ110のカウント値をインクリメントするようにしてもよいし、プログラムカウンタ110のカウント値がインクリメントされた値を命令アドレスとして出力するようにしてもよい。
The fetch
また、フェッチ部100は、フェッチした命令コード22をデコード制御部600に出力する。また、図2には省略されているが、フェッチ部100のプログラムカウンタ110にはカウント値供給線PCC(例えば図3参照)の一端が接続されている。プログラムカウンタ110は、このカウント値供給線PCCを介してコプロセッサ30と接続することができる。この場合、フェッチ部100のプログラムカウンタ110は、カウント値供給線PCCを介して、カウント値PCをコプロセッサ30に供給することができる。なお、フェッチ部100は、例えばデコード制御部600からの制御信号CS1に基づいて次の命令フェッチを行う。
In addition, the fetch
直値生成部200は、命令コード22に直値が含まれている場合、デコード制御部600から出力される制御信号CS2に基づいて例えば32ビットの直値データを生成する。直値生成部200によって生成された直値データは、マルチプレクサ(MUX)M1を介してALU400及びロードストア部500に供給される。
The direct
レジスタファイル300は、複数のレジスタを含み、例えば16個のレジスタR0〜R15を含む。各レジスタR0〜R15は例えば32ビットのレジスタであるが、これに限定されない。レジスタファイル300は、例えばデコード制御部600から出力される制御信号CS3に基づいて、各レジスタR0〜R15から任意のレジスタを選択し、そのレジスタに格納されている値を出力することができる。
The
レジスタファイル300の出力RQ1は例えばマルチプレクサM1に接続され、出力RQ1から出力される値はマルチプレクサM1を介してALU400及びロードストア部500に供給される。
The output RQ1 of the
また、レジスタファイル300の出力RQ2は、例えばALU400及びロードストア部500に接続される。出力RQ2からは、制御信号CS3に基づいて選択されたレジスタに格納されている値が出力される。また、レジスタファイル300の各レジスタR0〜R15のうち、少なくとも一つを固定レジスタに設定することができる。
The output RQ2 of the
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
また、ALU400はフラグレジスタ410を含み、フラグレジスタ410には例えばキャリーフラグC(以下、Cフラグとも言う)、オーバーフローフラグV、ゼロフラグZ及びネガティブフラグNのフラグデータが格納される。また図2には省略されているが、フラグレジスタ410の出力には、例えばフラグレジスタ供給線FLC1(広義には、第1のフラグレジスタ供給線)の一端が接続されている(図3参照)。ALU400のフラグレジスタ410は、このフラグデータ供給線FLC1を介してコプロセッサ30と接続することができる。この場合、フラグレジスタ410に格納されている各フラグデータC、V、Z、Nをコプロセッサ30に供給することができる。
The
ロードストア部500は、マルチプレクサM1から出力された値やレジスタファイル300の出力RQ2から出力された値を受け、デコード制御部600から出力される制御信号CS5に基づいてメモリ20に格納(ライト)する。また、ロードストア部500は、制御信号CS5に基づいてメモリ20からデータの読み出し(リード)を行い、読み出したデータをロードデータ出力LDDから例えばマルチプレクサM2に出力する。
The
デコード制御部600は、フェッチ部100から例えば命令コード22を受け、命令コード22をデコードし、その結果に基づく制御信号を生成して各制御信号CS1〜CS5を出力する。また、デコード制御部600は、各マルチプレクサM1、M2を制御する信号(図示せず)を生成することもできる。
The
また、コプロセッサ30の演算結果は例えば第1のレジスタデータ供給線RDC1を介してCPU10に供給されるが、これに限定されない。また、コプロセッサ30は、命令コード入力線IRCを介して例えばフェッチ部100から命令コード22を供給されるが、これに限定されない。
Further, the calculation result of the
なお、上記の構成は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
集積回路装置1000は、コプロセッサ30側で生成した命令アドレスCIAをCPU10に供給するための命令アドレス供給線CIACと、コプロセッサ30側で生成した命令コードIR2をCPU10に供給するための命令コード供給線CICCを含む。また、集積回路装置1000は、コプロセッサ30から供給された命令アドレスCIAをCPU10に供給するための命令アドレス選択信号供給線CSC11と、コプロセッサ30から供給された命令コードIR2をCPU10に供給するための命令アドレス選択信号供給線CSC12を含む。
The
また、集積回路装置1000は、コプロセッサ30の第1、第2のレジスタデータRDT1、RDT2をCPU10に供給するための第1、第2のレジスタデータ供給線RDC1、RDC2を含む。また、集積回路装置1000は、第1のレジスタデータ選択信号CS31をCPU10に供給するための第1のレジスタデータ選択信号供給線CSC31と、第2のレジスタデータ選択信号CS32をCPU10に供給するための第2のレジスタデータ選択信号供給線CSC32含む。
Further, the
なお、第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
また、集積回路装置1000は、コプロセッサ30が指定するレジスタ番号RNM(広義にはコプロセッサ指定レジスタ番号)をCPU10に供給するためのレジスタ番号供給線RNCを含む。レジスタ番号RNMは、例えば第1のレジスタデータRDT1の格納先のレジスタ番号を示す。
Further, the
また、集積回路装置1000は、コプロセッサ30側の演算処理結果に基づくフラグデータFLD2(広義には第2のフラグデータ)をCPU10に供給するための第2のフラグデータ供給線FLC2を含む。また、集積回路装置1000は、CPU10のALU400側の演算処理結果に基づくフラグデータFLD1及びコプロセッサ30側の演算処理結果に基づくフラグデータFLD2のいずれかを選択するためのフラグデータ選択信号CS41をCPU10に供給するためのフラグデータ選択信号供給線CSC41を含む。
Further, the
また、集積回路装置1000は、含む。また、集積回路装置1000は、コプロセッサ30側で生成したデータアドレスDTADをCPU10に供給するためのデータアドレス供給線DACを含む。また、集積回路装置1000は、コプロセッサ30側で生成したライトデータWDA1をCPU10に供給するためのライトデータ供給線WDAC、コプロセッサ30側で生成したリードデータRDA1をCPU10に供給するためのリードデータ供給線RDACを含む。
Further, the
また、集積回路装置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
また、命令コード入力線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
また、カウント値供給線PCCの他端がコプロセッサ30に接続された場合、コプロセッサ30は、プログラムカウンタ110から出力されるカウント値を受けることができる。これにより、CPU10の動作クロックの1クロックで、コプロセッサ30はプログラムカウンタ110から出力されるカウント値を取得することができる。
When the other end of the count value supply line PCC is connected to the
図4は、CPU10のフェッチ部100とコプロセッサ30との接続を示すブロック図である。
FIG. 4 is a block diagram showing the connection between the fetch
CPU10は、フェッチ部100と、命令コード選択回路MUX_IRCと、命令アドレス選択回路MUX_ADDとを含むが、これに限定されない。命令コード選択回路MUX_IRC又は、命令アドレス選択回路MUX_ADDが省略されてもよい。フェッチ部100は、プログラムカウンタ110と、命令コードレジスタ120と、演算器130とを含むが、これに限定されない。演算器130は、加算器でもよいし減算器でもよい。
The
CPU10及びコプロセッサ30はクロックCLKに同期して動作するが、これに限定されない。
The
CPU10側では、フェッチ部100のプログラムカウンタ110からカウント値PCが出力される。演算器130は、出力されたカウント値PCを受け、カウント値PCに対して例えば4の値を加算し、その結果を出力する。命令アドレス選択回路MUX_ADDの入力の一方には、演算器130から出力された値が入力され、命令アドレス選択回路MUX_ADDの入力の他方には、コプロセッサ30から命令アドレス供給線CIACを介して命令アドレスCIAが入力される。
On the
命令アドレス選択回路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
さらに、命令アドレス選択回路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
命令コード選択回路MUX_IRCの入力の一方には、命令アドレスバス50に供給された命令アドレスに基づいた命令コード22が例えば命令コードバス60入力される。命令コード選択回路MUX_IRCの入力の他方には、コプロセッサ30から命令コード供給線CICCを介して供給される命令コードIR2が入力される。命令コード選択回路MUX_IRCは、コプロセッサ30から命令コード選択信号供給線CSC12を介して供給される命令コード選択信号CS12に基づいて、命令コード22及び命令コードIR2のいずれかを選択し、フェッチ部100の命令コードレジスタ120に供給する。
The
即ち、コプロセッサ30側で生成した命令コードIR2をフェッチ部100の命令コードレジスタ120に格納することができる。これにより、コプロセッサ30側で、CPU10に対する処理を指示することができる。また、命令コードレジスタ120に格納されている命令コードは、命令コード入力線IRCを介してコプロセッサ30に供給される。
That is, the instruction code IR2 generated on the
なお、コプロセッサ30は、命令アドレスCIA、命令コードIR2、命令アドレス選択信号CS11及び命令アドレス選択信号CS12を、CPU10の動作クロックの1クロックでCPU10に供給することができる。また、命令アドレス選択信号CS11や命令アドレス選択信号CS12は、CPU10内部で生成されてもよい。
The
図5は、CPU10のレジスタファイル300とコプロセッサ30との接続を示すブロック図である。
FIG. 5 is a block diagram showing the connection between the
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
レジスタデータ選択回路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
また、第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
レジスタデータ選択回路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
なお、レジスタデータ選択信号CS31及びCS32は、CPU10の内部で生成されるようにしてもよい。
Note that the register data selection signals CS31 and CS32 may be generated inside the
また、コプロセッサ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
レジスタ選択部310は、レジスタ番号選択回路MUX_RNMから出力されるレジスタ番号に基づいて、ライトイネーブル信号線W0〜W15のいずれかを選択し、選択されたライトイネーブル信号線にアクティブな信号(例えばハイレベルの信号)を供給する。図5では、例えばライトイネーブル信号線W0はレジスタR0に対応し、W1はレジスタR1に対応する。同様に、ライトイネーブル信号線W2〜W15はレジスタR2〜R15に対応する。各レジスタR0〜R15は、ライトイネーブル信号線W0〜W15に供給される信号がアクティブに設定されると、書き込み可能な状態に設定される。ここで、書き込み可能な状態とは、各レジスタR0〜R15が、それぞれに供給されたデータを格納することができる状態を示す。
The
各レジスタ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
図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
また、フラグデータ選択回路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
なお、フラグデータ選択信号CS41は、CPU10の内部で生成されてもよい。
Note that the flag data selection signal CS41 may be generated inside the
図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
コプロセッサ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
ロードストア部500は、コプロセッサ30から供給されたデータアドレスDTADと、CPU10の内部で生成されたデータアドレスCDADとをデータアドレス選択回路MUX_DTに供給する。また、ロードストア部500は、コプロセッサ30から供給されたライトデータWDA1と、CPU10の内部で生成されたライトデータWDA2とをライトデータ選択回路MUX_WDに供給する。
The
また、コプロセッサ30から、データアドレス選択信号CS51がデータアドレス選択信号供給線CSC51を介してCPU10に供給される。また、コプロセッサ30から、ライトデータ選択信号CS52がライトデータ選択信号供給線CSC52を介してCPU10に供給される。
Further, the data address selection signal CS51 is supplied from the
アドレス選択回路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
また、コプロセッサ30からのリードデータRDA1と、データバス80が含むリードデータバス84を介して供給されるリードデータRDA2が、リードデータ選択回路MUX_RDに供給される。また、コプロセッサ30から、リードデータ選択信号CS52がリードデータ選択信号供給線CSC52を介してCPU10に供給される。
The read data RDA1 from the
リードデータ選択回路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
コプロセッサ30は、CPU10の動作クロックの1クロックで、データアドレス選択信号CS51、ライトデータ選択信号CS52及びリードデータ選択信号CS53をCPU10に供給することができる。また、データアドレス選択信号CS51、ライトデータ選択信号CS52及びリードデータ選択信号CS53は、CPU10内部で生成されてもよい。
The
このような構成により、コプロセッサ30側で、CPU10が行うデータの読み出し又は書き込みに対するアドレスやデータの指定を行うことができる。
With such a configuration, it is possible to specify an address and data for data reading or writing performed by the
なお、CPU10とコプロセッサ30は、同じクロックCLKに基づいて動作するが、これに限定されない。また、CPU10は、上述された構成要素のいずれかが省略されてもよい。
The
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
命令コード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
例えば、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
なお、上記の命令コード22の構成例は、一例であり他の命令定義も可能である。
Note that the above-described configuration example of the
3.2.ループ処理
次にコプロセッサ30がループ処理を行う場合の一例を説明する。
3.2. Loop Processing Next, an example in which the
図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
演算処理部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
反対に、制御部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
命令アドレス選択回路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
図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
カウント値エンド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
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
このようにして、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
図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
図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
図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
処理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
このようにして、コプロセッサ30は、ループ処理の開始、ループ処理の終了アドレス、ループ処理の終了を判断することができる。
In this way, the
3.3.飽和処理
次にコプロセッサ30が飽和処理を行う場合の一例を説明する。
3.3. Saturation Processing Next, an example where the
図14は、飽和処理を行うコプロセッサ30の構成例である。コプロセッサ30は、演算処理部33を含む。演算処理部33は判断部33−1を含むが、これに限定されない。
FIG. 14 is a configuration example of the
判断部33−1は、CPU10から命令コード入力線IRCを介して入力される命令コードを受ける。また、判断部33−1は、フラグデータ供給線FLC1を介して供給されるフラグデータFLD1を受ける。フラグデータ供給線FLC1を介して供給されるフラグデータFLD1には、Cフラグが含まれる。
Determination unit 33-1 receives an instruction code input from
判断部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
また、演算処理部33は、何も処理を行なわないことを示す命令(nop命令)を命令コードIR2として命令コード供給線CICCを介してCPU10に供給する。nop命令の命令コードは、例えば“00000000”に設定される。
The
次に、例えば、第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
第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
CPU10側では、第1の命令コードが実行されると、add命令に基づき、レジスタR1に格納されている値と例えば命令コードに含まれる“12345678”とを加算する処理がALU400にて行われる。加算結果は例えばレジスタR1に格納される。この時の演算結果に基づいてフラグレジスタ410のフラグデータが設定される。例えば、この加算処理によって、オーバーフローが発生した場合、Cフラグが“1”に設定される。また、第1の命令コードがコプロセッサ30に命令コード入力線IRCを介して入力される。
On the
コプロセッサ30側では、第1の命令コードがコプロセッサ30に入力されると、演算処理部33が処理を開始する。判断部33−1は、Cフラグの値が“0”であるかどうか判断する。Cフラグの値が“0”である場合には、CPU10にアクティブな命令コード選択信号CS12を供給する。
On the
この時、命令コード選択回路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
反対に、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
図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
例えば次のクロック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
第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
例えば次のクロック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
図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
処理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
このようにして、コプロセッサ30は、飽和処理において、例えばオーバーフローの判断とその判断結果に基づく飽和処理を高速に行うことができる。
In this way, the
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
アキュームレジスタ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
また、デコーダ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
このように構成された演算処理部34を用いて、大きなデータを高速にCPU10に供給することができる。
Large data can be supplied to the
また、演算処理部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
また、演算処理部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
図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
また、デコーダ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
また、演算処理部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
また、デコーダ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
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
アキュームレジスタ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
また、デコーダ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
アキュームレジスタ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
データアドレス出力部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
また、データアドレス出力部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
図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
また、ライトデータバス82にコプロセッサ30から供給されたライトデータWDA1を供給する場合には、デコーダ36−2から供給されるデータアドレス選択信号CS51及びライトデータ選択信号CS52はD3に示すようにアクティブ(例えばハイレベル)に設定される。
When the write data WDA1 supplied from the
また、データアドレス出力部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
また、CPU10のライトデータ選択回路MUX_WDはライトデータ選択信号CS52に基づいて、D7に示すようにライトデータWDA1をライトデータバス82に供給する。
The write data selection circuit MUX_WD of the
このように、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
例えば、メモリ20の所定のアドレスをインクリメントする毎に、その時のコプロセッサ30の処理結果を格納するような処理を、高速に処理することができる。
For example, each time a predetermined address in the
図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
処理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
処理PR25では、演算処理部36は、アキュームレジスタ36−1に格納されているデータのうち、例えば下位32ビットのデータをライトデータWDA1としてCPU10に供給する。
In the process PR25, the
なお、本実施形態では処理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
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
比較例では、例えばコプロセッサ31からCPU11にデータを供給する場合、例えばレジスタファイル300を経由する必要がある。この場合、少なくともレジスタファイル300に格納する処理や格納されたデータを読み出す処理が必要となり、その分処理速度のロスを生じる。また、コプロセッサ31で生成されたデータの大きさが大きい場合や、そのデータの種類が複数ある場合、複数回に分けて、データをレジスタファイル300に供給する必要がある。この場合も、処理速度のロスを生じる。
In the comparative example, when data is supplied from the
また、コプロセッサ31で生成されたデータをライトデータバス82に供給する場合にもレジスタファイル300を経由させる必要がある。またコプロセッサ31で生成されたデータアドレスをデータアドレスバス70に供給する場合にも、レジスタアドレス300を経由させる必要がある。これらの場合にも、複数回の命令処理が必要となり、処理速度のロスを生じる。
Further, when data generated by the
これらに対して、本実施形態では、上述のようにコプロセッサ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
また、例えば図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
これに対して、本実施形態では、前述のようにループ処理の終了等の判断をコプロセッサ30が行い、その結果等をCPU10にレジスタファイル300を介さずに供給できる。このため、比較例で必要だった処理時間を大幅に削減することができ、比較例に比べて高速なループ処理を行うことができる。
On the other hand, in the present embodiment, the
また、例えば図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
これに対して、本実施形態では、前述のように、CPU10のフラグデータFLD1に基づいて、コプロセッサ30は、CPU10のフェッチ部100にフェッチされる命令コードを切り替えることができる。このため、比較例に比べて高速に飽和処理を行うことができる集積回路装置1000を、図14に示すように簡単な回路構成で実現することができる。
On the other hand, in the present embodiment, as described above, the
また、例えば図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
これに対して、本実施形態では、レジスタデータ供給線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
また、例えば図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
これに対して、本実施形態では、ライトデータ供給線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
なお、コプロセッサ30は、CPU10と同じクロック周波数で動作するが、これに限定されない。
The
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
なお、集積回路装置1000は、上記の構成に限定されない。例えば、CPU10は、直値データ供給線IMC、第1、第2のレジスタファイル供給線RFC1、RFC2、固定レジスタデータ供給線RFC3等を省略する構成でもよい。また、コプロセッサ30は、コプロセッサ用データ入力線RDC1を介してコプロセッサの演算処理結果をCPU10に出力するが、これに限定されない。
Note that the
また、直値生成部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
また、第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
また、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
また、ロードストア部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
このように構成された本実施形態にかかる変形例では、コプロセッサ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
また、変形例では、コプロセッサ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
また、変形例では、コプロセッサ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
また、変形例では、コプロセッサ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
上記のように、本実施形態の集積回路装置1000は、比較例に比べて複雑な論理回路ブロックを追加せずに、コプロセッサ30に必要なデータを1クロックで供給できるため、複雑な処理を比較例に比べて高速に処理を行うことができる。
As described above, the
なお、コプロセッサ30は、CPU10と同じクロック周波数で動作するが、これに限定されない。
The
上記のように、本発明の実施例について詳細に説明したが、本発明の新規事項及び効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。したがって、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書または図面において、少なくとも一度、より広義又は同義な異なる用語と共に記載された用語は、明細書または図面のいかなる箇所においても、その異なる用語に置き換えることができる。 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.
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は、
データアドレスバスを介してメモリにデータアドレスを供給し、ライトデータバスを介してライトデータを供給することで、前記メモリへデータの書き込みを行うロードストア部と、
前記データアドレス供給線を介して供給されるデータアドレスと前記ロードストア部から出力されるデータアドレスを受け、そのいずれかのデータアドレスを前記データアドレスバスに供給するデータアドレス選択回路と、
を含むことを特徴とする集積回路装置。 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:
前記コプロセッサから前記データアドレス選択回路にデータアドレス選択信号を供給するためのデータアドレス選択信号供給線をさらに含み、
前記データアドレス選択回路は、
前記データアドレス選択信号に基づいて、前記データアドレス供給線を介して供給されるデータアドレス及び前記ロードストア部から出力されるデータアドレスのうちのいずれかのデータアドレスを前記データアドレスバスに供給することを特徴とする集積回路装置。 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は、
データアドレスバスを介してメモリにデータアドレスを供給し、ライトデータバスを介してライトデータを供給することで、前記メモリへデータの書き込みを行うロードストア部と、
前記ライトデータ供給線を介して供給されるライトデータと前記ロードストア部から出力されるライトデータを受け、そのいずれかのライトデータを前記ライトデータバスに供給するライトデータ選択回路と、
を含むことを特徴とする集積回路装置。 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:
前記コプロセッサから前記ライトデータ選択回路にライトデータ選択信号を供給するためのライトデータ選択信号供給線をさらに含み、
前記ライトデータ選択回路は、
前記ライトデータ選択信号に基づいて、前記ライトデータ供給線を介して供給されるライトデータ及び前記ロードストア部から出力されるライトデータのうちのいずれかのライトデータを前記ライトデータバスに供給することを特徴とする集積回路装置。 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リードデータのうちのいずれかのリードデータを前記ロードストア部に供給することを特徴とする集積回路装置。 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. .
前記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.
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) |
-
2007
- 2007-02-20 JP JP2007039431A patent/JP4211851B2/en not_active Expired - Fee Related
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 |