JP4609702B2 - Data processing system and control method thereof - Google Patents
Data processing system and control method thereof Download PDFInfo
- Publication number
- JP4609702B2 JP4609702B2 JP2004369779A JP2004369779A JP4609702B2 JP 4609702 B2 JP4609702 B2 JP 4609702B2 JP 2004369779 A JP2004369779 A JP 2004369779A JP 2004369779 A JP2004369779 A JP 2004369779A JP 4609702 B2 JP4609702 B2 JP 4609702B2
- Authority
- JP
- Japan
- Prior art keywords
- stage
- instruction
- fetch
- architecture
- pipeline
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
本発明は、アーキテクチャの異なるデータ処理システム用の命令あるいは命令セットを含むプログラムを、柔軟に実行することができるデータ処理システムおよびその制御方法に関するものである。 The present invention relates to a data processing system capable of flexibly executing a program including instructions or instruction sets for data processing systems having different architectures, and a control method thereof.
コンピュータの機能的構造あるいは物理的構造をアーキテクチャと称しており、コンピュータシステムのソフトウェアとハードウェア全体の機能を決定する重要なファクタの1つである。ハードウェアの構成が異なれば、それを制御するためのソフトウェアの命令も異なる。ソフトウェア設計の容易化、資産の利用などのために、命令を共通にする努力は常に行われているが、新しい機能を搭載したハードウェアを制御したり、目的の異なる機能を搭載したハードウェアを制御するために異なる命令が採用されることはある。また、同じ命令が、ハードウェアに対して異なる処理の実行を要求するものであることもある。特に、ハードウェアを直接制御する機械語に近い命令はアーキテクチャの影響を受けるので、命令が全て同一であるというケースは少ない。
あるアプリケーションプログラムを異なるアーキテクチャのハードウェアで実行したいという要望がある。また、アプリケーションプログラムをより容易に開発したり、アプリケーションプログラムの一部を、その処理を実行するのに適した異なるアーキテクチャにより実行されるように設計したいという要望もある。 There is a desire to execute an application program on hardware of a different architecture. There is also a desire to develop an application program more easily or to design a part of the application program to be executed by a different architecture suitable for executing the processing.
特開2003−167730号公報においては、アプリケーション毎に最適化された命令セットで処理を行うことが可能なマイクロプロセッサとして、同一チップ上にデータパス部と制御部とを有し、その制御部をFPGAなどのプログラマブルロジックで構成し、データパス部はプログラマブルロジックではないハードウェアロジックで構成したマイクロプロセッサを提供することが開示されている。この技術を用いれば、アプリケーションプログラムに応じた命令セットで処理を行わせるように、マイクロプロセッサのプログラマブルロジックを書き換えることができる。しかしながら、FPGAのプログラマブルロジックを書き換えるためには処理を中断する必要があるので、1つのアプリケーションプログラムの中に複数のアーキテクチャの命令を含めることは不可能である。 In Japanese Patent Laid-Open No. 2003-167730, a microprocessor that can perform processing with an instruction set optimized for each application has a data path unit and a control unit on the same chip. It is disclosed to provide a microprocessor that is configured by programmable logic such as FPGA and the data path unit is configured by hardware logic that is not programmable logic. If this technique is used, the programmable logic of the microprocessor can be rewritten so that processing is performed with an instruction set corresponding to the application program. However, since it is necessary to interrupt the process in order to rewrite the programmable logic of the FPGA, it is impossible to include instructions of a plurality of architectures in one application program.
近年、動的に再構成可能なプロセッサが開発されており、1サイクルでロジックを書き換えることができる。したがって、FPGAの代わりに、動的に再構成可能なプロセッサを用いることにより、1つのアプリケーションプログラム中に複数のアーキテクチャの命令セットの命令を含めることができる可能性がある。しかしながら、マイクロプロセッサの多くは実質的な処理時間を短縮するために、パイプライン動作により処理が進むように設計されている。パイプラインの分割方法はいろいろな方式が考えられるが、特開2003−167730号公報においては、命令フェッチIF、命令デコードID、演算実行EX、メモリアクセスMEM、レジスタ書き込みWBの5つのステージに分割して、1クロックサイクルあたりに処理しなければならない内容を簡単にしたり、クロック周波数を引き上げて処理スピードを高速化している。 In recent years, dynamically reconfigurable processors have been developed, and logic can be rewritten in one cycle. Therefore, by using a dynamically reconfigurable processor instead of the FPGA, there is a possibility that instructions of an instruction set of a plurality of architectures can be included in one application program. However, many microprocessors are designed so that processing proceeds by pipeline operation in order to shorten the substantial processing time. There are various methods for dividing the pipeline. In Japanese Patent Laid-Open No. 2003-167730, the pipeline is divided into five stages: instruction fetch IF, instruction decode ID, operation execution EX, memory access MEM, and register write WB. Thus, the contents that must be processed per clock cycle are simplified, or the processing speed is increased by raising the clock frequency.
したがって、制御部のロジックを1クロックサイクルで書き換えできるとしても、プログラム中の命令はパイプライン動作を制御する必要がある都合上、1つの命令によるパイプライン動作が終了するまでは、異なるアーキテクチャの命令セットをデコードできるように制御部を書き換えることができない。このため、制御部のロジックを書き換えるためにはパイプライン動作をいったん終え、リスタートする必要がある。したがって、リスタートのためにパイプラインが消費するクロックサイクル分の遅れが発生し、予定したアプリケーションプログラムとしての機能が得られなかったり、異なるアーキテクチャ用のプログラムを完全にエミュレートすることができないなどの問題が発生する。 Therefore, even if the logic of the control unit can be rewritten in one clock cycle, instructions in the program need to control the pipeline operation. For this reason, instructions of different architectures are required until the pipeline operation by one instruction is completed. The control cannot be rewritten so that the set can be decoded. Therefore, in order to rewrite the logic of the control unit, it is necessary to finish the pipeline operation once and restart it. Therefore, there will be a delay of the clock cycle consumed by the pipeline for restart, and the function as the scheduled application program cannot be obtained, or the program for different architecture cannot be completely emulated. A problem occurs.
そこで、本発明においては、パイプライン動作をリスタートさせることなく、パイプライン動作に障害を与えず、異なるアーキテクチャに対応する命令、すなわち、異なる命令セットに属する命令が混在したアプリケーションプログラムを実行できるデータ処理システムを提供することを目的としている。 Therefore, in the present invention, data that can execute an application program in which instructions corresponding to different architectures, that is, instructions belonging to different instruction sets are mixed without restarting the pipeline operation and without causing an obstacle to the pipeline operation. It aims to provide a processing system.
本発明の一態様は、パイプライン動作により命令をフェッチして処理するデータ処理システムであって、複数の回路要素であって、当該複数の回路要素の間の接続および/またはそれぞれの回路要素内の設定を所定の範囲で任意に変更することにより回路を動的に再構成する複数の回路要素と、少なくとも一部が前記複数の回路要素により構成されたパイプラインとを有し、前記パイプラインは、アプリケーションプログラムから命令をプログラムカウンタの制御により順番にフェッチするフェッチステージと、前記フェッチステージでフェッチされた命令に対応するアーキテクチャタイプの情報を判断するアーキテクチャ判別ステージと、前記フェッチステージでフェッチされた命令をデコードするデコードステージと、前記フェッチステージでフェッチされた命令による演算を実行する実行ステージと、前記フェッチステージでフェッチされた命令によりレジスタ書き込みを行うWBステージとを備え、さらに、前記複数の回路要素の間の接続および/またはそれぞれの回路要素内の設定を前記アーキテクチャ判別ステージで判断したアーキテクチャタイプの情報に基づき変更することにより、前記デコードステージ、前記実行ステージおよび前記WBステージの構成をそれぞれ動的に再構成する制御を行うコンフィグレーション制御ユニットを有し、前記アーキテクチャ判別ステージで判断されたアーキテクチャタイプの情報は、前記デコードステージ、前記実行ステージ、前記WBステージのステージ間を前記フェッチステージが順番にフェッチした命令と共に当該命令に対応してパイプラインのサイクルにより転送され、前記コンフィグレーション制御ユニットは、前記フェッチステージが順番にフェッチした命令が前記デコードステージ、前記実行ステージ、前記WBステージで実行されるタイミングに合わせて前記デコードステージ、前記実行ステージ、前記WBステージのうちの少なくとも一部の構成を再構成する制御を行う、データ処理システムである。
さらに、本発明の他の態様は、パイプライン動作により命令をフェッチして処理するデータ処理システムであって、複数の回路要素であって、当該複数の回路要素の間の接続および/またはそれぞれの回路要素内の設定を所定の範囲で任意に変更することにより回路を動的に再構成する複数の回路要素と、少なくとも一部が前記複数の回路要素により構成されたパイプラインとを有し、前記パイプラインは、アプリケーションプログラムから命令をプログラムカウンタの制御により順番にフェッチするとともにフェッチされた命令の単位でアーキテクチャタイプの情報を判断するフェッチステージと、前記フェッチステージでフェッチされた命令をデコードするデコードステージと、前記フェッチステージでフェッチされた命令による演算を実行する実行ステージと、前記フェッチステージでフェッチされた命令によりレジスタ書き込みを行うWBステージとを備え、さらに、前記複数の回路要素の間の接続および/またはそれぞれの回路要素内の設定を前記フェッチステージで判断したアーキテクチャタイプの情報に基づき変更することにより、前記デコードステージ、前記実行ステージおよび前記WBステージの構成をそれぞれ動的に再構成する制御を行うコンフィグレーション制御ユニットを有し、前記フェッチステージで判断されたアーキテクチャタイプの情報は、前記デコードステージ、前記実行ステージ、前記WBステージのステージ間を前記フェッチステージが順番にフェッチした命令と共に当該命令に対応してパイプラインのサイクルにより転送され、前記コンフィグレーション制御ユニットは、前記フェッチステージが順番にフェッチした命令が前記デコードステージ、前記実行ステージ、前記WBステージで実行されるタイミングに合わせて前記デコードステージ、前記実行ステージ、前記WBステージのうちの少なくとも一部の構成を再構成する制御を行う、データ処理システムである。
前記コンフィグレーション制御ユニットは、アーキテクチャタイプの情報を前記パイプラインのサイクルに合わせて転送する複数のステージ構成メモリと、前記デコードステージ、前記実行ステージおよび前記WBステージの構成をそれぞれの前記ステージ構成メモリのアーキテクチャタイプの情報により制御する複数のステージ制御ユニットとを含むことが望ましい。このデータ処理システムにおいては、パイプラインの各ステージの構成を、フェッチした命令を処理するタイミングで変更することができる。このため、パイプライン動作をリセットしたり、中断したりすることなく、異なるアーキテクチャの命令セットの命令が混在したアプリケーションプログラムを実行できる。
One aspect of the present invention is a data processing system that fetches and processes an instruction by a pipeline operation, and includes a plurality of circuit elements, a connection between the plurality of circuit elements, and / or in each circuit element. A plurality of circuit elements for dynamically reconfiguring a circuit by arbitrarily changing the setting of the circuit in a predetermined range, and a pipeline at least part of which is configured by the plurality of circuit elements. Fetched at the fetch stage, fetch stage sequentially fetching instructions from the application program under the control of the program counter, architecture determination stage determining the architecture type information corresponding to the instruction fetched at the fetch stage A decode stage for decoding an instruction and the fetch stage; An execution stage for executing an operation based on the instruction fetched in the register, and a WB stage for performing a register write by the instruction fetched in the fetch stage, and further, connection between the plurality of circuit elements and / or A configuration for performing control for dynamically reconfiguring the configurations of the decode stage, the execution stage, and the WB stage by changing the setting in the circuit element based on the architecture type information determined in the architecture determination stage. The architecture type information determined in the architecture determination stage includes a control unit, and the instruction is fetched between the decode stage, the execution stage, and the stage of the WB stage together with the instruction fetched in order by the fetch stage. In response, the configuration control unit transfers the decode stage in accordance with the timing at which the instructions fetched in order by the fetch stage are executed in the decode stage, the execution stage, and the WB stage. , A data processing system for performing control to reconfigure at least a part of the execution stage and the WB stage.
Furthermore, another aspect of the present invention is a data processing system that fetches and processes an instruction by pipeline operation, and includes a plurality of circuit elements, and a connection between the plurality of circuit elements and / or each of the circuit elements. A plurality of circuit elements for dynamically reconfiguring the circuit by arbitrarily changing a setting in the circuit element within a predetermined range, and a pipeline at least partially configured by the plurality of circuit elements; The pipeline sequentially fetches instructions from an application program under the control of a program counter, and also determines a fetch stage that determines architecture type information in units of fetched instructions, and a decode that decodes instructions fetched in the fetch stage. A stage and an operation by an instruction fetched in the fetch stage. An execution stage for executing a write operation, and a WB stage for performing a register write by an instruction fetched in the fetch stage, and further, a connection between the plurality of circuit elements and / or a setting in each circuit element is set in the fetch stage. A configuration control unit that performs control for dynamically reconfiguring the configurations of the decode stage, the execution stage, and the WB stage by changing based on the architecture type information determined in step Information on the determined architecture type is transferred between the decode stage, the execution stage, and the WB stage in the pipeline cycle corresponding to the instruction together with the instruction fetched in order by the fetch stage. The migration control unit may include at least one of the decode stage, the execution stage, and the WB stage in accordance with a timing at which instructions fetched in order by the fetch stage are executed in the decode stage, the execution stage, and the WB stage. A data processing system that performs control to reconfigure a part of the configuration.
The configuration control unit has a plurality of stage configuration memories that transfer architecture type information in accordance with the pipeline cycle, and the configurations of the decode stage, the execution stage, and the WB stage in the respective stage configuration memories. It is desirable to include a plurality of stage control units that are controlled by architecture type information. In this data processing system, the configuration of each stage of the pipeline can be changed at the timing of processing the fetched instruction. Therefore, an application program in which instructions of instruction sets of different architectures are mixed can be executed without resetting or interrupting the pipeline operation.
本発明の他の態様の1つは、パイプライン動作により命令をフェッチして処理するデータ処理システムの制御方法であって、前記データ処理システムは、複数の回路要素であって、当該複数の回路要素の間の接続および/またはそれぞれの回路要素内の設定を所定の範囲で任意に変更することにより回路を動的に再構成する複数の回路要素と、少なくとも一部が前記複数の回路要素により構成されたパイプラインとを有し、前記パイプラインは、アプリケーションプログラムから命令をプログラムカウンタの制御により順番にフェッチするフェッチステージと、前記フェッチステージでフェッチされた命令に対応するアーキテクチャタイプの情報を判断するアーキテクチャ判別ステージと、前記フェッチステージでフェッチされた命令をデコードするデコードステージと、前記フェッチステージでフェッチされた命令による演算を実行する実行ステージと、前記フェッチステージでフェッチされた命令によりレジスタ書き込みを行うWBステージとを備え、さらに、前記複数の回路要素の間の接続および/またはそれぞれの回路要素内の設定を前記アーキテクチャ判別ステージで判断したアーキテクチャタイプの情報に基づき変更することにより、前記デコードステージ、前記実行ステージおよび前記WBステージの構成をそれぞれ動的に再構成する制御を行うコンフィグレーション制御ユニットを有し、当該制御方法は、前記アーキテクチャ判別ステージで判断されたアーキテクチャタイプの情報が、前記デコードステージ、前記実行ステージ、前記WBステージのステージ間を前記フェッチステージが順番にフェッチした命令と共に当該命令に対応してパイプラインのサイクルにより転送され、前記コンフィグレーション制御ユニットが、前記フェッチステージが順番にフェッチした命令を前記デコードステージ、前記実行ステージ、前記WBステージで実行されるタイミングに合わせて、前記デコードステージ、前記実行ステージ、前記WBステージのうちの少なくとも一部の構成を再構成する制御を行うことを有する。
本発明の他の態様の1つは、パイプライン動作により命令をフェッチして処理するデータ処理システムの制御方法であって、前記データ処理システムは、複数の回路要素であって、当該複数の回路要素の間の接続および/またはそれぞれの回路要素内の設定を所定の範囲で任意に変更することにより回路を動的に再構成する複数の回路要素と、少なくとも一部が前記複数の回路要素により構成されたパイプラインとを有し、前記パイプラインは、アプリケーションプログラムから命令をプログラムカウンタの制御により順番にフェッチするとともにフェッチされた命令の単位でアーキテクチャタイプの情報を判断するフェッチステージと、前記フェッチステージでフェッチされた命令をデコードするデコードステージと、前記フェッチステージでフェッチされた命令による演算を実行する実行ステージと、前記フェッチステージでフェッチされた命令によりレジスタ書き込みを行うWBステージとを備え、さらに、前記複数の回路要素の間の接続および/またはそれぞれの回路要素内の設定を前記フェッチステージで判断したアーキテクチャタイプの情報に基づき変更することにより、前記デコードステージ、前記実行ステージおよび前記WBステージの構成をそれぞれ動的に再構成する制御を行うコンフィグレーション制御ユニットを有し、当該制御方法は、前記フェッチステージで判断されたアーキテクチャタイプの情報が、前記デコードステージ、前記実行ステージ、前記WBステージのステージ間を前記フェッチステージが順番にフェッチした命令と共に当該命令に対応してパイプラインのサイクルにより転送され、前記コンフィグレーション制御ユニットが、前記フェッチステージが順番にフェッチした命令が前記デコードステージ、前記実行ステージ、前記WBステージで実行されるタイミングに合わせて前記デコードステージ、前記実行ステージ、前記WBステージのうちの少なくとも一部の構成を再構成する制御を行うことを有する。変更の対象となるものは、主に各ステージの処理を実現するためのデータパス構成であり、ALUなどの演算単位の機能を変更したり、ルックアップテーブル(LUT)の内容を変更したりすることも含まれる。
Another aspect of the present invention is a data processing system control method for fetching and processing an instruction by a pipeline operation, and the data processing system includes a plurality of circuit elements, and the plurality of circuits A plurality of circuit elements for dynamically reconfiguring the circuit by arbitrarily changing a connection between the elements and / or a setting in each circuit element within a predetermined range, and at least a part of the plurality of circuit elements A pipeline configured, and the pipeline determines a fetch stage for sequentially fetching instructions from an application program under the control of a program counter, and architecture type information corresponding to the instructions fetched in the fetch stage The architecture determination stage to be decoded and the instruction fetched in the fetch stage are decoded. A decode stage, an execution stage for executing an operation based on an instruction fetched in the fetch stage, and a WB stage for performing a register write by an instruction fetched in the fetch stage, and further comprising: The configuration of the decode stage, the execution stage, and the WB stage is dynamically changed by changing the connection between them and / or the setting in each circuit element based on the architecture type information determined in the architecture determination stage. A configuration control unit that performs reconfiguration control, and the control method is configured such that the information on the architecture type determined in the architecture determination stage is between the decode stage, the execution stage, and the WB stage. The fetch stage is transferred together with the instruction fetched in order by the pipeline cycle corresponding to the instruction, and the configuration control unit reads the instruction fetched in order by the fetch stage in the decode stage, the execution stage, Control is performed to reconfigure at least part of the configuration of the decode stage, the execution stage, and the WB stage in accordance with the timing executed in the WB stage.
Another aspect of the present invention is a data processing system control method for fetching and processing an instruction by a pipeline operation, and the data processing system includes a plurality of circuit elements, and the plurality of circuits A plurality of circuit elements for dynamically reconfiguring the circuit by arbitrarily changing a connection between the elements and / or a setting in each circuit element within a predetermined range, and at least a part of the plurality of circuit elements A pipeline configured, wherein the pipeline fetches instructions from an application program in order under the control of a program counter and determines architecture type information in units of fetched instructions; and the fetch A decode stage for decoding an instruction fetched in the stage; and the fetch stage And an WB stage for performing a register write with the instruction fetched at the fetch stage, and a connection between the plurality of circuit elements and / or respective circuits. A configuration control unit that performs control to dynamically reconfigure the configurations of the decode stage, the execution stage, and the WB stage by changing the setting in the element based on the architecture type information determined in the fetch stage. And the architecture type information determined at the fetch stage includes the instruction fetched in order by the fetch stage between the decode stage, the execution stage, and the WB stage. Correspondingly Transferred by a pipeline cycle, and the configuration control unit executes the decode stage and the execution in accordance with the timing at which the instructions fetched in order by the fetch stage are executed in the decode stage, the execution stage, and the WB stage. And performing control for reconfiguring at least a part of the configuration of the stage and the WB stage . What is to be changed is a data path configuration mainly for realizing the processing of each stage, and changes the function of an arithmetic unit such as ALU or changes the contents of a lookup table (LUT). It is also included.
アプリケーションプログラムに含まれる命令の属する命令セットのタイプが、ブロック単位あるいはファンクションユニット単位で異なる場合は、ブロック単位あるいはファンクションユニット単位で、パイプラインのアーキテクチャを交換すれば良い。したがって、アーキテクチャタイプを含む情報も、ブロック単位あるいはファンクションユニット単位で判断されるようにしても良い。しかしながら、その場合、アーキテクチャタイプを判断するために、ブロック単位あるいはファンクションユニット単位の命令のグループを判断する機能をデータ処理システムが持つ必要があり、構造および制御が複雑になる。さらに、命令単位で、異なる命令セットに属する命令が混在しているアプリケーションプログラムは処理できない。これに対し、パイプラインの各ステージを、フェッチした命令を処理するタイミングに合わせて、その命令のアーキテクチャタイプに合致するようにデータパスの構成を変更することにより、シンプルな回路構成および制御により、異なる命令セットに属する命令が命令単位で混在しているアプリケーションプログラムを処理できる。 When the type of instruction set to which an instruction included in an application program belongs differs in block units or function unit units, the pipeline architecture may be exchanged in block units or function units. Therefore, information including the architecture type may also be determined in units of blocks or functions. However, in this case, in order to determine the architecture type, the data processing system needs to have a function of determining a group of instructions in units of blocks or units of functions, and the structure and control become complicated. Furthermore, an application program in which instructions belonging to different instruction sets are mixed for each instruction cannot be processed. On the other hand, by changing the data path configuration so that each stage of the pipeline matches the architecture type of the instruction in accordance with the timing of processing the fetched instruction, by simple circuit configuration and control, An application program in which instructions belonging to different instruction sets are mixed in units of instructions can be processed.
フェッチした命令に対応するアーキテクチャタイプの情報を得る1つの形態は、パイプラインが、フェッチした命令に対応するアーキテクチャタイプを判別するアーキテクチャ判別ステージを備えていることである。命令と、その命令に対応するアーキテクチャタイプの情報が予めセットになって格納されているアプリケーションプログラムを提供することが可能である。その場合は、パイプラインが、命令と共に、その命令に対応するアーキテクチャタイプの情報をフェッチするフェッチステージを備えていることにより、アーキテクチャタイプの情報を取得できる。 One form of obtaining information about the architecture type corresponding to the fetched instruction is that the pipeline includes an architecture determination stage for determining the architecture type corresponding to the fetched instruction. It is possible to provide an application program in which an instruction and information of an architecture type corresponding to the instruction are stored in advance. In this case, the pipeline includes a fetch stage that fetches the architecture type information corresponding to the instruction together with the instruction, so that the architecture type information can be acquired.
アーキテクチャタイプの情報をパイプラインのサイクルにより転送することで、フェッチした命令が各ステージで実行されるタイミングに合わせて、パイプラインの各ステージの構成を変更できる。クロック同期のパイプライン動作では、パイプラインの各ステージは、パイプラインのサイクルに従い制御され、各ステージにおいて消費されるサイクルは予め判明している。したがって、各ステージの構成を、パイプラインのサイクルに従い変更することにより、各ステージの動作の制御と、各ステージの構成の制御とを独立して行なうことが可能であり、データフローコンピュータのように、処理ユニット単位で待ち合わせ機構を設けて発火制御する必要はない。 By transferring the architecture type information in the pipeline cycle, the configuration of each stage of the pipeline can be changed in accordance with the timing at which the fetched instruction is executed in each stage. In a clock-synchronized pipeline operation, each stage of the pipeline is controlled according to the pipeline cycle, and the cycles consumed in each stage are known in advance. Therefore, by changing the configuration of each stage according to the pipeline cycle, it is possible to independently control the operation of each stage and control the configuration of each stage, like a data flow computer. It is not necessary to control firing by providing a waiting mechanism for each processing unit.
パイプラインが、フェッチした命令をデコードするデコードステージと、フェッチした命令による演算を実行する実行ステージと、フェッチした命令によるレジスタ書き込みを行うWBステージとを少なくとも備えている場合は、コンフィグレーション制御ユニットは、デコードステージ、実行ステージ、WBステージの少なくともいずれかの構成を変更する。デコードステージの構成を変更することにより、フラグ位置が異なるなどの構造の異なる命令セットに属する命令を解釈することができる。実行ステージの構成またはWBステージの構成を変更することにより、複合命令の実行の可否を選択したり、フラグの自動更新の可否を選択したりすることができる。 When the pipeline includes at least a decode stage for decoding the fetched instruction, an execution stage for executing an operation based on the fetched instruction, and a WB stage for writing a register using the fetched instruction, the configuration control unit The configuration of at least one of the decode stage, the execution stage, and the WB stage is changed. By changing the configuration of the decode stage, it is possible to interpret instructions belonging to instruction sets having different structures such as different flag positions. By changing the configuration of the execution stage or the configuration of the WB stage, it is possible to select whether or not to execute the compound instruction and whether or not to automatically update the flag.
パイプラインの各ステージを構成するハードウェアは、アプリケーションプログラムに含まれる幾つかの命令セットのアーキテクチャに対応できるように予めデザインされたものであっても良い。その場合、コンフィグレーション制御ユニットは、構成変更工程において、アーキテクチャタイプの情報に従い、予め決められたデータパス構成を選択する。 The hardware constituting each stage of the pipeline may be designed in advance so as to correspond to the architecture of several instruction sets included in the application program. In this case, the configuration control unit selects a predetermined data path configuration in accordance with the architecture type information in the configuration change step.
複数の回路要素の少なくとも一部が、それら回路要素の間の接続および/またはそれぞれの回路要素内の設定を、所定の範囲で任意に変更可能な動的に再構成できるハードウェアを用いることが可能であり、アーキテクチャタイプにより構成の変更が要求されるステージを、動的に再構成できるハードウェアで実現することが望ましい。コンフィグレーション制御ユニットが構成変更工程において、複数の回路要素の間の接続および/またはそれぞれの回路要素内の設定を変更することにより、パイプラインのステージを動的に変更することが可能である。ステージの構成を再構成することにより、複数のアーキテクチャに対応した複数のデータパス構成を予め実装しておく必要がなく、また、複数のデータパスを選択するためのセレクタも不要になる。したがって、構成の変更が必要なステージを少ないハードウェア資源で生成でき、さらに、セレクタなどで消費される時間および電力を削減できる。したがって、本発明のデータ処理システムを、コンパクトに実現でき、消費電力の低減も図れる。 At least some of the plurality of circuit elements use hardware capable of dynamically reconfiguring the connection between the circuit elements and / or the setting in each circuit element, which can be arbitrarily changed within a predetermined range. It is possible to realize a stage in which a configuration change is required depending on the architecture type by hardware that can be dynamically reconfigured. The configuration control unit can dynamically change the stage of the pipeline by changing the connection between the plurality of circuit elements and / or the setting in each circuit element in the configuration changing process. By reconfiguring the stage configuration, it is not necessary to previously implement a plurality of data path configurations corresponding to a plurality of architectures, and a selector for selecting a plurality of data paths is also unnecessary. Therefore, a stage that requires a configuration change can be generated with a small amount of hardware resources, and the time and power consumed by a selector or the like can be reduced. Therefore, the data processing system of the present invention can be realized in a compact manner, and power consumption can be reduced.
図1に、本発明のデータ処理システムの一例の概略構成を示してある。このデータ処理システム1は、命令をフェッチして処理するプロセスをパイプラインで行うプロセッサである。プロセッサ1のパイプライン10は、外部あるいは内部のメモリ2に記録された、幾つかの命令からなるアプリケーションプログラム3から命令を、プログラムカウンタ16の制御により順番にフェッチするフェッチステージ(IF)11と、フェッチした命令の構成などから、そのフェッチした命令に対応するアーキテクチャタイプを判断するアーキテクチャ判別ステージ(TR)12と、フェッチした命令をデコードするデコードステージ(DEC)13、フェッチした命令による演算を実行する実行ステージ(EX)14、フェッチした命令によるレジスタ書き込みを行うWBステージ(WB)15を備えている。図1には、パイプラインレジスタは示していないが、それぞれのステージ11〜15の構成にパイプラインレジスタとして機能するレジスタが含まれている。また、DECステージ13では、フェッチした命令19がデコードされ、EXステージ14の制御情報31およびWBステージ15の制御情報32が生成され、それぞれEX制御部33およびWB制御部34にセットされる。WB制御部34に対しては、EXステージ14と同じサイクルのディレイを発生させるパイプラインディレイ用のレジスタ35を介して制御情報32が供給される。したがって、プロセッサ1においては、IFステージ11によりフェッチした命令19の処理は、これらのステージ11〜15において、所定のサイクルにより順番に実行される。
FIG. 1 shows a schematic configuration of an example of the data processing system of the present invention. The
DECステージ13、EXステージ14およびWBステージ15は、回路を動的に再構成できるハードウェアを用いて生成されている。動的に再構成可能なハードウェアの一例は、複数の回路要素の間の接続および/またはそれぞれの回路要素内の設定を、所定の範囲で任意に変更可能なものである。本願の出願人は、国際公開WO2002−095946号公報において、再構成可能なハードウェアの一例を開示しており、基本的には1クロックサイクルで回路構成を変更することができる。本例のプロセッサ1は、その全体を、再構成可能なハードウェアに実装することにより実現することが可能である。また、DECステージ13、EXステージ14およびWBステージ15を再構成可能なハードウェアに実装し、他の構成が固定されたステージをASICなどにより実装することも可能である。なお、本発明は、IFステージ11およびTRステージ12は、構成が固定されたものに限定される必要はなく、DECステージ13のデコード結果により、あるいは外部からの制御により、IFステージ11またはTRステージ12の構成を変更するものであっても良い。例えば、固定長の命令セットと、可変長の命令セットとが混在しているようなプログラムに対しては、IFステージ11の構成を変更することも有効である。
The
このプロセッサ1は、DECステージ13、EXステージ14およびWBステージ15の構成を、TRステージ12により判断されたアーキテクチャタイプの情報(以降においてはアーキテクチャ情報)29に基づき制御するためのコンフィグレーション制御ユニット20を備えている。コンフィグレーション制御ユニット20は、DECステージ13、EXステージ14およびWBステージ15のそれぞれの構成を制御するステージ制御ユニット21a〜21cと、DECステージ13、EXステージ14およびWBステージ15のそれぞれの構成情報を記録したステージ構成メモリ22a〜22cとを備えている。ステージ制御ユニット21a〜21cは、パイプラインレジスタを介して接続されており、それぞれのステージ制御ユニット21aおよび21bは、DECステージ13およびEXステージ14と同じサイクルを消費した後に、アーキテクチャ情報29を転送する。したがって、コンフィグレーション制御ユニット20においては、アーキテクチャ情報29が、パイプライン10のサイクルによりステージ制御ユニット21a〜21cの間で転送され、ステージ制御ユニット21a〜21cのそれぞれは、DECステージ13、EXステージ14およびWBステージ15の構成を、それぞれのステージがフェッチした命令19を処理するタイミングに合わせて、フェッチした命令19のアーキテクチャ情報29に基づき再構成する。
The
プログラム3に含まれる命令を、プログラム3の作成者の意図の通りに実行するためには、プログラム3の作成者が意図したように命令をデコードし、実行する必要がある。すなわち、プログラム3の命令は、その命令が実行されるべきアーキテクチャと同じあるいは共通するアーキテクチャのプロセッサにより実行されないと、プログラム3により与えられたアプリケーションは仕様通りには動かない。現在、プロセッサのアーキテクチャはCISCおよびRISCに大きく分けられており、RISCプロセッサと一口にいっても、ARM、MIPS、SPARC、PowerPC、Alphaなど、各メーカによってアーキテクチャが異なる。したがって、RISC用の命令は、多くが共通の内容を示すが、各アーキテクチャによって処理内容が異なっていたり、命令自体が異なる場合がある。多くの場合、各アーキテクチャは、若干異なる命令セット、すなわち、命令フォーマットを採用しており、TRステージ12により、フェッチした命令を解析することによりアーキテクチャを判断できることが多い。したがって、本例のプロセッサ1においては、複数のアーキテクチャの命令がプログラム3に混在していても、各命令を、作成者が意図したアーキテクチャにより実行できる。
In order to execute the instructions included in the
しかしながら、アーキテクチャにより、命令セットが共通する命令もあり、そのような場合は、プログラム3の側で、アーキテクチャが混在している場合は、命令毎にアーキテクチャ情報を指示することが望ましい。図2に示したプログラムコード3aは、フェッチされる命令19(In0〜In4)の単位で、アーキテクチャ情報(アーキテクチャコードC−0〜C−2)29が指示されている。このようなプログラム3aを対象とした、本発明のプロセッサにおいては、IFステージ11により、フェッチした命令19に対応するアーキテクチャ情報29を得ることができる。したがって、TRステージ12を省くことが可能であり、以降の説明においてはTRステージを省いていることがある。
However, some architectures have a common instruction set depending on the architecture. In such a case, it is desirable to indicate architecture information for each instruction when the architecture is mixed on the
図3に、DECステージ13、EXステージ14およびWBステージ15の構成がパイプラインサイクル単位で変わり、フェッチした命令が実行される様子を模式的に示してある。このプロセッサ1のステージ13〜15の各々のステージは、それぞれの構成を、フェッチした命令19を処理するタイミング、すなわち、パイプラインサイクルに合わせて、フェッチした命令19に対応するアーキテクチャ情報29に基づき変更する工程(構成変更工程)25を含む制御方法により制御される。各ステージの処理の基本は、入力したデータに対して所望の処理を行って出力するというものであり、そのためのデータパス構造が変更の対象となる。データパスにALUなどの演算単位が含まれている場合は、その機能を変更したり、ルックアップテーブル(LUT)により出力を求める場合は、その内容を変更したりすることも含まれる。
FIG. 3 schematically shows how the configurations of the
さらに、このプロセッサ1のステージ13〜15のステージ間は、アーキテクチャ情報29をパイプライン10のサイクルにより転送する工程26を含む制御方法により制御される。したがって、パイプライン10の流れをいったん止めたり、リスタート(リセット)させることなく、アーキテクチャの異なる命令を実行することができる。図3においては、一点鎖線のようにアーキテクチャ情報29がステージ間を転送され、それと共に、フェッチした命令19が転送される。したがって、個々のステージにおいては、再構成と命令実行とが繰り返され、パイプライン10としては、アーキテクチャの異なる命令19を、パイプライン10によりパイプライン動作を破綻させずに処理することができる。図3は、フェッチした命令19とアーキテクチャ情報29を区別し易い状態で示しているが、それぞれのステージにアーキテクチャ情報29が供給されるタイミングは、データがパイプライン10によりそれぞれのステージでフェッチした命令19により処理されるタイミングに合致していれば良い。したがって、各ステージのパイプラインレジスタがデータパスにより処理されたデータをラッチする前に、フェッチした命令19が、アーキテクチャ情報29により再構成された各々のステージで実行されるタイミングでアーキテクチャ情報29は各々のステージに供給されれば良い。また、EXステージ14およびWBステージ15などのDECステージ13の下流に位置するステージでは、フェッチした命令19は、それがデコードされた制御情報31および32として、それぞれのステージに供給されることは上述したとおりである。
Further, the
図4に、パイプラインを破綻させずにアーキテクチャを変更できる様子を示してある。図4(a)に示すように、アーキテクチャC−1とアーキテクチャC−2の命令が含まれているプログラム3を実行する際に、本例のプロセッサ1であれば、パイプライン10の各ステージ11〜15の進行に沿って構成を変更できるので、パイプライン10を止めずに、異なるアーキテクチャの命令を実行できる。したがって、本発明のプロセッサ1によれば、アーキテクチャの異なる命令を、アーキテクチャが同じ命令と同じレベルで混在させてプログラムを作成することができ、種々のアーキテクチャのプロセッサの機能を入り混じって利用したアプリケーションを容易に開発することができる。
FIG. 4 shows how the architecture can be changed without breaking the pipeline. As shown in FIG. 4A, when executing the
これに対し、アーキテクチャ情報29により、構成を一括して変更するようなプロセッサを仮定すると、図4(b)に示すように、アーキテクチャC−1の命令の処理が終了してからアーキテクチャC−2の構成に変更し、アーキテクチャC−2の命令を実行する必要がある。したがって、パイプライン10の動作をいったん止めて、再構成できた段階でリスタートする必要がある。このため、アーキテクチャの異なる命令を実行する段階で、1パイプラインサイクル分のディレイが発生することになり、そのようなディレイを想定していないプログラム3を仕様通りに実行することができない。さらに、構成を1クロックで変更できる再構成可能なハードウェアであれば遅れは1パイプラインサイクルで済むが、FPGAのように回路構成を変更するのにms単位の有意な時間を費やすハードウェアであると、アーキテクチャの異なる命令を1つのプログラムに混在させることは不可能になる。
On the other hand, assuming a processor whose configuration is changed collectively by the
図5に、EXステージ14の構成を変更する例を示してある。アーキテクチャC−2においては以下のような加算命令の設定があり、アーキテクチャC−1にはそのような加算命令がない場合を想定している。
FIG. 5 shows an example of changing the configuration of the
命令:ADD Rd,Rn,Rm,LSL #5bit_Immed
動作:Rd=Rn+(Rm<<#5bit_Immed)
アーキテクチャC−1においては以下の2つの命令により上記の命令と同じ処理を実行できる。したがって、コンパイラーによりアーキテクチャC−1の命令に完全に置き換えることも可能である。
LSL Rm,Rm,#5bit_Immed
ADDU Rd,Rn,Rm
Instruction: ADD Rd, Rn, Rm, LSL # 5bit_Immed
Operation: Rd = Rn + (Rm <<# 5bit_Immed)
In the architecture C-1, the same processing as the above-described instruction can be executed by the following two instructions. Therefore, it is possible to completely replace the instruction of architecture C-1 by the compiler.
LSL Rm, Rm, # 5bit_Immed
ADDU Rd, Rn, Rm
しかしながら、2命令を使用することにより、実行クロック数が増大するので処理時間が延びる。さらに、2命令に分割することにより、それらの命令の間に割り込みが入る可能性があり、オリジナルのプログラムの仕様に完全に沿ったものにはならない。一方、アーキテクチャC−1のADD命令に関する構成をアーキテクチャC−2に置き換えてしまうと、アーキテクチャC−1の命令が実行できない。本例のプロセッサ1においては、アーキテクチャ情報29によりEXステージ14の構成を変更することによりこの問題を解決できる。すなわち、EXステージ14のステージ構成メモリ22bに、図5(a)に示したアーキテクチャC−1の構成と、図5(b)に示したアーキテクチャC−2の構成とを用意しておき、アーキテクチャC−2のADD命令をEXステージ14において実行するタイミングでEXステージ14のデータパス構成をアーキテクチャC−2に再構成すれば良い。
However, by using two instructions, the number of execution clocks increases, so the processing time is extended. Furthermore, by dividing into two instructions, there is a possibility that an interrupt may occur between those instructions, and it does not completely conform to the specifications of the original program. On the other hand, if the configuration related to the ADD instruction of architecture C-1 is replaced with architecture C-2, the instruction of architecture C-1 cannot be executed. In the
図6に、EXステージ14の構成を変更する異なる例を示してある。この例では、EXステージ14にアーキテクチャC−1のデータパスとアーキテクチャC−2のデータパスとが予め用意され、さらに、それらのデータパスを切り換えるセレクタ14sが用意されている。したがって、ステージ制御ユニット21bがアーキテクチャ情報29に基づきセレクタ14sを切り換えることにより、アーキテクチャC−2のADD命令を、そのADD命令により予定されている通りに実行できる。この例においては、ステージ14としての機能を得るために、動的に回路を再構成できるハードウェアは必要ない。しかしながら、2つのアーキテクチャの回路を構成できる量のハードウェアに加えて、それらを切り換えるためのセレクタなどのハードウェアが必要になる。したがって、ハードウェアの量が増大し、データパス中にセレクタが介在するので、ステージにおける実行サイクルが本来のアーキテクチャよりも増大する可能性がある。プロセッサ1において実行可能なアーキテクチャの種類を増やそうとすると、この問題はさらに増大する。この問題は、回路を動的に再構成可能なハードウェアを採用することにより防ぐことができる。
FIG. 6 shows a different example in which the configuration of the
図7には、WBステージ15の構成を変更する例を示してある。図7はセレクタで切り換える例を示しているが、上記と同様に再構成可能なハードウェアによりWBステージ15の構成を変更できる。この例では、アーキテクチャC−2においては、alu_oprに加え、alu_oprSという命令があり、alu_oprではフラグを更新しないのに対し、alu_oprSではフラグを更新する。一方、アーキテクチャC−1においては、alu_oprという命令があり、alu_oprSはないが、alu_oprを実行することによりフラグを更新する。したがって、ステージ制御ユニット21cは、このステージで実行するフェッチした命令19がアーキテクチャ情報29によりアーキテクチャC−1の場合は、alu_oprによりフラグが更新されるようにセレクタ15sをセットする。一方、ステージ制御ユニット21cは、このステージで実行するフェッチした命令19がアーキテクチャ情報29によりアーキテクチャC−2の場合は、alu_oprSによりフラグが更新されるようにセレクタ15sをセットする。
FIG. 7 shows an example of changing the configuration of the
図8に、DECステージ13の構成を変更する例を示してある。この例も、セレクタで切り換える構成で示しているが、再構成可能なハードウェアによりデータパス構成を再構成できることは上述した通りである。アーキテクチャにより命令セットのフォーマットが異なることがあることは上述した通りである。図8(a)に示すように、キャリービットの位置がアーキテクチャにより異なる場合、図8(b)に示すように、アーキテクチャ情報29によりステージ制御ユニット21aがセレクタ13sを制御してDECステージ13のフラグリードの構成を変更することができる。図8(c)は、フラグビットの意味をアーキテクチャ毎に変えることができるDECステージ13の例である。アーキテクチャC−1ではキャリーを示すビットと、アーキテクチャC−2では異なる意味のあるビットとしてフェッチした命令19をデコードし、EXステージ14および/またはWBステージ15を制御することができる。
FIG. 8 shows an example of changing the configuration of the
なお、本例のプロセッサ1は、IFステージ11、DECステージ13、EXステージ14およびWBステージ15によりパイプライン10を構成しているが、EXステージあるいはWBステージが複数のステージに分割されていたり、メモリリード用のステージが独立しているなどの、異なる構成のパイプラインを備えたプロセッサについても本発明を適用することができる。また、プロセッサが有するパイプラインの数は1つに限定されるものではない。さらに、本発明が適用されるプロセッサあるいはデータ処理システムは、汎用のプロセッサとしてチップ化された製品に限らず、プロセッサがエンベッドされたSoCあるいはシステムLSIと称される製品群も含まれる。
In the
1 プロセッサ、 2 メモリ、 3 プログラム
10 パイプライン、 11 IFステージ、 12 TRステージ
13 DECステージ、 14 EXステージ、 15 WBステージ
19 フェッチした命令
20 コンフィグレーション制御ユニット
21a〜21c ステージ制御ユニット
22a〜22c ステージ構成メモリ
29 アーキテクチャ情報
DESCRIPTION OF
Claims (5)
複数の回路要素であって、当該複数の回路要素の間の接続および/またはそれぞれの回路要素内の設定を所定の範囲で任意に変更することにより回路を動的に再構成する複数の回路要素と、
少なくとも一部が前記複数の回路要素により構成されたパイプラインとを有し、
前記パイプラインは、アプリケーションプログラムから命令をプログラムカウンタの制御により順番にフェッチするフェッチステージと、
前記フェッチステージでフェッチされた命令に対応するアーキテクチャタイプの情報を判断するアーキテクチャ判別ステージと、
前記フェッチステージでフェッチされた命令をデコードするデコードステージと、
前記フェッチステージでフェッチされた命令による演算を実行する実行ステージと、
前記フェッチステージでフェッチされた命令によりレジスタ書き込みを行うWBステージとを備え、
さらに、前記複数の回路要素の間の接続および/またはそれぞれの回路要素内の設定を前記アーキテクチャ判別ステージで判断したアーキテクチャタイプの情報に基づき変更することにより、前記デコードステージ、前記実行ステージおよび前記WBステージの構成をそれぞれ動的に再構成する制御を行うコンフィグレーション制御ユニットを有し、
前記アーキテクチャ判別ステージで判断されたアーキテクチャタイプの情報は、前記デコードステージ、前記実行ステージ、前記WBステージのステージ間を前記フェッチステージが順番にフェッチした命令と共に当該命令に対応してパイプラインのサイクルにより転送され、前記コンフィグレーション制御ユニットは、前記フェッチステージが順番にフェッチした命令が前記デコードステージ、前記実行ステージ、前記WBステージで実行されるタイミングに合わせて前記デコードステージ、前記実行ステージ、前記WBステージのうちの少なくとも一部の構成を再構成する制御を行う、データ処理システム。 A data processing system that fetches and processes instructions by pipeline operation,
A plurality of circuit elements, wherein the circuit is dynamically reconfigured by arbitrarily changing a connection between the plurality of circuit elements and / or a setting in each circuit element within a predetermined range. And
Having at least a part of the pipeline constituted by the plurality of circuit elements,
The pipeline is a fetch stage that fetches instructions from an application program in order under the control of a program counter;
An architecture determination stage for determining information of an architecture type corresponding to the instruction fetched in the fetch stage;
A decode stage for decoding an instruction fetched in the fetch stage;
An execution stage for performing an operation based on the instruction fetched in the fetch stage;
A WB stage for writing a register by an instruction fetched in the fetch stage,
Further, the decoding stage, the execution stage, and the WB are changed by changing the connection between the plurality of circuit elements and / or the setting in each circuit element based on the architecture type information determined in the architecture determination stage. It has a configuration control unit that performs control to dynamically reconfigure each stage configuration,
The architecture type information determined in the architecture determination stage includes the instructions fetched in order by the fetch stage between the decode stage, the execution stage, and the WB stage in accordance with the pipeline cycle corresponding to the instruction. The configuration control unit is transferred to the decode stage, the execution stage, and the WB stage in accordance with the timing at which instructions fetched in order by the fetch stage are executed in the decode stage, the execution stage, and the WB stage. A data processing system that performs control to reconfigure at least part of the configuration .
複数の回路要素であって、当該複数の回路要素の間の接続および/またはそれぞれの回路要素内の設定を所定の範囲で任意に変更することにより回路を動的に再構成する複数の回路要素と、
少なくとも一部が前記複数の回路要素により構成されたパイプラインとを有し、
前記パイプラインは、アプリケーションプログラムから命令をプログラムカウンタの制御により順番にフェッチすると共にフェッチされた命令の単位でアーキテクチャタイプの情報を判断するフェッチステージと、
前記フェッチステージでフェッチされた命令をデコードするデコードステージと、
前記フェッチステージでフェッチされた命令による演算を実行する実行ステージと、
前記フェッチステージでフェッチされた命令によりレジスタ書き込みを行うWBステージとを備え、
さらに、前記複数の回路要素の間の接続および/またはそれぞれの回路要素内の設定を前記フェッチステージで判断したアーキテクチャタイプの情報に基づき変更することにより、前記デコードステージ、前記実行ステージおよび前記WBステージの構成をそれぞれ動的に再構成する制御を行うコンフィグレーション制御ユニットを有し、
前記フェッチステージで判断されたアーキテクチャタイプの情報は、前記デコードステージ、前記実行ステージ、前記WBステージのステージ間を前記フェッチステージが順番にフェッチした命令と共に当該命令に対応してパイプラインのサイクルにより転送され、前記コンフィグレーション制御ユニットは、前記フェッチステージが順番にフェッチした命令が前記デコードステージ、前記実行ステージ、前記WBステージで実行されるタイミングに合わせて前記デコードステージ、前記実行ステージ、前記WBステージのうちの少なくとも一部の構成を再構成する制御を行う、データ処理システム。 A data processing system that fetches and processes instructions by pipeline operation,
A plurality of circuit elements, wherein the circuit is dynamically reconfigured by arbitrarily changing a connection between the plurality of circuit elements and / or a setting in each circuit element within a predetermined range. And
Having at least a part of the pipeline constituted by the plurality of circuit elements,
The pipeline fetches instructions from an application program in order under the control of a program counter and fetches architecture type information in units of fetched instructions; and
A decode stage for decoding an instruction fetched in the fetch stage;
An execution stage for performing an operation based on the instruction fetched in the fetch stage;
A WB stage for writing a register by an instruction fetched in the fetch stage,
Further, the decoding stage, the execution stage, and the WB stage are changed by changing the connection between the plurality of circuit elements and / or the setting in each circuit element based on the architecture type information determined in the fetch stage. A configuration control unit that performs control to dynamically reconfigure each of the
The architecture type information determined in the fetch stage is transferred between the decode stage, the execution stage, and the WB stage in a pipeline cycle corresponding to the instruction together with the instruction fetched in order by the fetch stage. The configuration control unit is configured so that instructions fetched in order by the fetch stage are executed in the decode stage, the execution stage, and the WB stage in accordance with the timing of the decode stage, the execution stage, and the WB stage. A data processing system that performs control to reconfigure at least part of the configuration .
前記コンフィグレーション制御ユニットは、アーキテクチャタイプの情報を前記パイプラインのサイクルに合わせて転送する複数のステージ構成メモリと、前記デコードステージ、前記実行ステージおよび前記WBステージの構成をそれぞれの前記ステージ構成メモリのアーキテクチャタイプの情報により制御する複数のステージ制御ユニットとを含む、データ処理システム。The configuration control unit has a plurality of stage configuration memories that transfer architecture type information in accordance with the pipeline cycle, and the configurations of the decode stage, the execution stage, and the WB stage in the respective stage configuration memories. A data processing system comprising a plurality of stage control units controlled by architecture type information.
前記データ処理システムは、複数の回路要素であって、当該複数の回路要素の間の接続および/またはそれぞれの回路要素内の設定を所定の範囲で任意に変更することにより回路を動的に再構成する複数の回路要素と、
少なくとも一部が前記複数の回路要素により構成されたパイプラインとを有し、
前記パイプラインは、アプリケーションプログラムから命令をプログラムカウンタの制御により順番にフェッチするフェッチステージと、
前記フェッチステージでフェッチされた命令に対応するアーキテクチャタイプの情報を判断するアーキテクチャ判別ステージと、
前記フェッチステージでフェッチされた命令をデコードするデコードステージと、
前記フェッチステージでフェッチされた命令による演算を実行する実行ステージと、
前記フェッチステージでフェッチされた命令によりレジスタ書き込みを行うWBステージとを備え、
さらに、前記複数の回路要素の間の接続および/またはそれぞれの回路要素内の設定を前記アーキテクチャ判別ステージで判断したアーキテクチャタイプの情報に基づき変更することにより、前記デコードステージ、前記実行ステージおよび前記WBステージの構成をそれぞれ動的に再構成する制御を行うコンフィグレーション制御ユニットを有し、
当該制御方法は、
前記アーキテクチャ判別ステージで判断されたアーキテクチャタイプの情報が、前記デコードステージ、前記実行ステージ、前記WBステージのステージ間を前記フェッチステージが順番にフェッチした命令と共に当該命令に対応してパイプラインのサイクルにより転送され、前記コンフィグレーション制御ユニットが、前記フェッチステージが順番にフェッチした命令を前記デコードステージ、前記実行ステージ、前記WBステージで実行されるタイミングに合わせて、前記デコードステージ、前記実行ステージ、前記WBステージのうちの少なくとも一部の構成を再構成する制御を行うことを有する、制御方法。 A control method of a data processing system for fetching and processing an instruction by pipeline operation,
The data processing system includes a plurality of circuit elements, and dynamically reconnects the circuits by arbitrarily changing connections between the plurality of circuit elements and / or settings in the respective circuit elements within a predetermined range. A plurality of circuit elements comprising ;
Having at least a part of the pipeline constituted by the plurality of circuit elements,
The pipeline is a fetch stage that fetches instructions from an application program in order under the control of a program counter;
An architecture determination stage for determining information of an architecture type corresponding to the instruction fetched in the fetch stage;
A decode stage for decoding an instruction fetched in the fetch stage;
An execution stage for performing an operation based on the instruction fetched in the fetch stage;
A WB stage for writing a register by an instruction fetched in the fetch stage,
Further, the decoding stage, the execution stage, and the WB are changed by changing the connection between the plurality of circuit elements and / or the setting in each circuit element based on the architecture type information determined in the architecture determination stage. It has a configuration control unit that performs control to dynamically reconfigure each stage configuration,
The control method is
The architecture type information determined in the architecture determination stage is determined by the pipeline cycle corresponding to the instruction together with the instruction fetched in order by the fetch stage between the decode stage, the execution stage, and the WB stage. The configuration control unit transfers the instructions fetched in order by the fetch stage in accordance with the timing at which the instructions are executed in the decode stage, the execution stage, and the WB stage, and the decode stage, the execution stage, and the WB. A control method comprising performing control for reconfiguring at least a part of the configuration of the stage .
前記データ処理システムは、複数の回路要素であって、当該複数の回路要素の間の接続および/またはそれぞれの回路要素内の設定を所定の範囲で任意に変更することにより回路を動的に再構成する複数の回路要素と、
少なくとも一部が前記複数の回路要素により構成されたパイプラインとを有し、
前記パイプラインは、アプリケーションプログラムから命令をプログラムカウンタの制御により順番にフェッチすると共にフェッチされた命令の単位でアーキテクチャタイプの情報を判断するフェッチステージと、
前記フェッチステージでフェッチされた命令をデコードするデコードステージと、
前記フェッチステージでフェッチされた命令による演算を実行する実行ステージと、
前記フェッチステージでフェッチされた命令によりレジスタ書き込みを行うWBステージとを備え、
さらに、前記複数の回路要素の間の接続および/またはそれぞれの回路要素内の設定を前記フェッチステージで判断したアーキテクチャタイプの情報に基づき変更することにより、前記デコードステージ、前記実行ステージおよび前記WBステージの構成をそれぞれ動的に再構成する制御を行うコンフィグレーション制御ユニットを有し、
当該制御方法は、
前記フェッチステージで判断されたアーキテクチャタイプの情報が、前記デコードステージ、前記実行ステージ、前記WBステージのステージ間を前記フェッチステージが順番にフェッチした命令と共に当該命令に対応してパイプラインのサイクルにより転送され、前記コンフィグレーション制御ユニットが、前記フェッチステージが順番にフェッチした命令を前記デコードステージ、前記実行ステージ、前記WBステージで実行されるタイミングに合わせて前記デコードステージ、前記実行ステージ、前記WBステージのうちの少なくとも一部の構成を再構成する制御を行うことを有する、制御方法。 A control method of a data processing system for fetching and processing an instruction by pipeline operation,
The data processing system includes a plurality of circuit elements, and dynamically reconnects the circuits by arbitrarily changing connections between the plurality of circuit elements and / or settings in the respective circuit elements within a predetermined range. A plurality of circuit elements comprising ;
Having at least a part of the pipeline constituted by the plurality of circuit elements,
The pipeline fetches instructions from an application program in order under the control of a program counter and fetches architecture type information in units of fetched instructions; and
A decode stage for decoding an instruction fetched in the fetch stage;
An execution stage for performing an operation based on the instruction fetched in the fetch stage;
A WB stage for writing a register by an instruction fetched in the fetch stage,
Further, the decoding stage, the execution stage, and the WB stage are changed by changing the connection between the plurality of circuit elements and / or the setting in each circuit element based on the architecture type information determined in the fetch stage. A configuration control unit that performs control to dynamically reconfigure each of the
The control method is
The architecture type information determined at the fetch stage is transferred between the decode stage, the execution stage, and the WB stage in a pipeline cycle corresponding to the instruction together with the instruction fetched in order by the fetch stage. The configuration control unit is configured so that the instructions fetched in order by the fetch stage are executed in the decode stage, the execution stage, and the WB stage according to the timing of the decode stage, the execution stage, and the WB stage. A control method comprising performing control to reconfigure at least a part of the configuration .
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2004369779A JP4609702B2 (en) | 2004-12-21 | 2004-12-21 | Data processing system and control method thereof |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2004369779A JP4609702B2 (en) | 2004-12-21 | 2004-12-21 | Data processing system and control method thereof |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2006178653A JP2006178653A (en) | 2006-07-06 |
| JP4609702B2 true JP4609702B2 (en) | 2011-01-12 |
Family
ID=36732723
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2004369779A Expired - Fee Related JP4609702B2 (en) | 2004-12-21 | 2004-12-21 | Data processing system and control method thereof |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4609702B2 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPWO2011125174A1 (en) * | 2010-04-06 | 2013-07-08 | トヨタ自動車株式会社 | Dynamic reconfigurable processor and operation method thereof |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH03150633A (en) * | 1989-11-07 | 1991-06-27 | Matsushita Electric Ind Co Ltd | Instruction decoder |
| JP3472504B2 (en) * | 1998-03-11 | 2003-12-02 | 松下電器産業株式会社 | Command decoding method, command decoding device and data processing device |
| JP2003167730A (en) * | 2001-12-03 | 2003-06-13 | Hitachi Ltd | Instruction set variable microprocessor |
-
2004
- 2004-12-21 JP JP2004369779A patent/JP4609702B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2006178653A (en) | 2006-07-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8024548B2 (en) | Integrated circuit microprocessor that constructs, at run time, integrated reconfigurable logic into persistent finite state machines from pre-compiled machine code instruction sequences | |
| KR100491593B1 (en) | Data processor | |
| US20020198606A1 (en) | Data processing system and control method | |
| US7493473B2 (en) | Method of executing instructions using first and second control units that share a state register | |
| US6012138A (en) | Dynamically variable length CPU pipeline for efficiently executing two instruction sets | |
| JP3790626B2 (en) | Method and apparatus for fetching and issuing dual word or multiple instructions | |
| JPH11307725A (en) | Semiconductor integrated circuit | |
| KR100777772B1 (en) | Arithmetic operation apparatus, information processing apparatus, and register file control method | |
| JP4609702B2 (en) | Data processing system and control method thereof | |
| JP4800582B2 (en) | Arithmetic processing unit | |
| KR100308211B1 (en) | Micro computer system with compressed instruction | |
| JPH0876996A (en) | Programmable controller | |
| JP2001014161A (en) | Programmable controller | |
| JP3760093B2 (en) | Microcomputer | |
| JP3740321B2 (en) | Data processing device | |
| JP2004062427A (en) | Microprocessor | |
| JP2002297376A (en) | Programmable controller | |
| JP3063593B2 (en) | Programmable controller | |
| JP4151497B2 (en) | Pipeline processing equipment | |
| JPH09128235A (en) | Programmable controlling of five-stage piepline structure | |
| JP2006126893A (en) | Clock control apparatus, information processing apparatus, and clock control method | |
| JPH09244918A (en) | Function addition method to interpreter with debugger | |
| JPH1185223A (en) | Programmable controller | |
| JPH10340209A (en) | Data processor | |
| KR20040008714A (en) | Apparatus for reading memory data in micro controller system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071130 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100212 |
|
| A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20100309 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100630 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100830 |
|
| 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: 20100916 |
|
| 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: 20100929 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131022 Year of fee payment: 3 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 4609702 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| LAPS | Cancellation because of no payment of annual fees |