JP2012003339A - Processor, processor generation device and processor generating system - Google Patents

Processor, processor generation device and processor generating system Download PDF

Info

Publication number
JP2012003339A
JP2012003339A JP2010135366A JP2010135366A JP2012003339A JP 2012003339 A JP2012003339 A JP 2012003339A JP 2010135366 A JP2010135366 A JP 2010135366A JP 2010135366 A JP2010135366 A JP 2010135366A JP 2012003339 A JP2012003339 A JP 2012003339A
Authority
JP
Japan
Prior art keywords
processor
instruction
circuit
deleted
instructions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2010135366A
Other languages
Japanese (ja)
Inventor
Koichi Takene
浩一 竹根
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2010135366A priority Critical patent/JP2012003339A/en
Publication of JP2012003339A publication Critical patent/JP2012003339A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a processor with required functions and properties at low cost by eliminating unused circuits in the processor.SOLUTION: A processor which is designed and determined to generate a dedicated processor in which an instruction is read out from a memory device and analyzed by a decoder to sequentially perform processing based on the analysis includes at least a configuration definition description which is directed to the instruction and a circuit description for defining circuits in the dedicated processor. The processor is configured to be capable of eliminating arbitrary instructions from pre-provided instructions and also eliminating unnecessary circuits as a result of the elimination of the arbitrary instructions.

Description

本発明の実施の形態は、プロセッサ、プロセッサ生成装置及びプロセッサ生成システムに関する。   Embodiments described herein relate generally to a processor, a processor generation device, and a processor generation system.

近年、FPGA(Field Programmable Gate Array)の普及により、システム開発において、カスタムLSIを用いた回路設計が一般的になってきている。FPGAは、利用者が回路構成を定義・変更できるように構成されたカスタムLSIの一種である。   In recent years, circuit design using a custom LSI has become common in system development due to the spread of field programmable gate arrays (FPGAs). The FPGA is a type of custom LSI configured so that the user can define and change the circuit configuration.

システム開発者はシステムの用途に応じた様々な設計を担当するが、プロセッサ自体の回路を設計することはほとんど無い。プロセッサを開発するとなれば、回路設計のみならず、そのプロセッサ用のアセンブラ・コンパイラ・デバッガなどの開発ツールを用意することも含めて、高度な専門知識・膨大なリソース・コストを必要とするからである。   The system developer is in charge of various designs according to the use of the system, but hardly designs the circuit of the processor itself. Developing a processor requires advanced expertise, enormous resources, and costs, including not only circuit design, but also development tools such as an assembler, compiler, and debugger for the processor. is there.

従ってシステム開発において、カスタムLSIにプロセッサを搭載する場合、システム開発者は、いくつかあるプロセッサIPコア (Intellectual Property Core) の中から必要な機能と十分な性能を備え、かつ開発ツールやコストなどの条件を満たすプロセッサIPコアを選択し、それを搭載することになる。そのため、ベンダーなどが提供しているプロセッサIPコアは、多様なシステムに対応できるように標準的なアーキテクチャを採用した汎用プロセッサIPコアであることが多い。   Therefore, when a processor is mounted on a custom LSI during system development, the system developer has the necessary functions and sufficient performance from among several processor IP cores (Intellectual Property Core), as well as development tools and costs. A processor IP core that satisfies the conditions is selected and installed. For this reason, processor IP cores provided by vendors and the like are often general-purpose processor IP cores adopting a standard architecture so as to be compatible with various systems.

しかしながら、汎用プロセッサIPコアは多様なシステムに適応できるように設計されているため、システム開発者からすると、使用することの無い不要な機能を備え、それによって無駄なコストがかかっていると不満に感じる場合がある。例えば、超高速に整数演算処理をするシステムを開発する案件があり、この案件を満たす高性能プロセッサが必要だとする。高性能な汎用プロセッサIPコアはややもすると不必要な機能を備えている場合が多い。例えば、汎用プロセッサIPコアが整数演算処理機能の他に浮動小数点数演算機能を備えている場合、この浮動小数点数演算機能は整数演算処理をするシステムでは不必要である。しかしながら、使用することのない浮動小数点数演算に係わる余分な回路コストは、無駄であると認識していても削除することができない。   However, since the general-purpose processor IP core is designed to be adaptable to various systems, the system developer is dissatisfied with unnecessary functions that are not used, thereby incurring unnecessary costs. You may feel it. For example, there is a project to develop a system that performs integer arithmetic processing at ultra-high speed, and a high-performance processor that satisfies this project is required. High-performance general-purpose processor IP cores often have unnecessary functions. For example, when the general-purpose processor IP core has a floating-point number arithmetic function in addition to the integer arithmetic processing function, this floating-point number arithmetic function is unnecessary in a system that performs integer arithmetic processing. However, the extra circuit cost associated with floating point arithmetic that is not used cannot be deleted even if it is recognized as being useless.

そこで、汎用プロセッサIPコアにはカスタム命令を追加・削除できるように構成されたものも存在する。もし浮動小数点数演算命令がカスタマイズ機能によって削除することが可能であれば、上述の例における浮動小数点数演算に係わる余分な回路コストを削減することができる。   Therefore, some general-purpose processor IP cores are configured so that custom instructions can be added and deleted. If the floating-point arithmetic instruction can be deleted by the customization function, the extra circuit cost related to the floating-point arithmetic in the above example can be reduced.

特開2007−250010号公報JP 2007-25010 A 特開2009−015867号公報JP 2009-015867 A

しかしながら、カスタマイズ機能を備えた汎用プロセッサIPコアでは、選択できる命令や機能の自由度が少ない。汎用プロセッサIPコアがカスタマイズ機能を備えているのは、主として性能のアップを指向しているためであり、回路コストの削減はそれほど重視していないためであると考えられる。即ち、カスタムLSIの全回路規模に占める未使用回路規模は小さいため、カスタマイズによって未使用回路を削除してもコスト削減の効果が低いと判断しているものと推測する。実際、半導体プロセスの微細化が進むと微々たる回路は載せても載せなくてもカスタムLSIの製造コストは変わらなくなる、という背景がある。   However, a general-purpose processor IP core having a customization function has few degrees of freedom of selectable instructions and functions. The reason why the general-purpose processor IP core has the customization function is mainly because it is aimed at improving the performance, and it is considered that the reduction of the circuit cost is not so important. That is, since the unused circuit scale occupying the entire circuit scale of the custom LSI is small, it is estimated that it is judged that the cost reduction effect is low even if the unused circuit is deleted by customization. In fact, there is a background that as the miniaturization of semiconductor processes progresses, the manufacturing cost of a custom LSI remains the same regardless of whether a small circuit is mounted or not.

しかしこのような状況は現在すでに変化している。その理由として、ひとつのカスタムLSIに複数のプロセッサを搭載する、いわゆるマルチプロセッサ化が進んでいることが挙げられる。ひとつのカスタムLSIに搭載するプロセッサの数はシステム案件によっても異なるが数個から十数個程度のものが多い。しかし最近では、ひとつのカスタムLSIに数百個やそれ以上ものプロセッサを搭載する例も見られる。シングルプロセッサでは問題にならなかった僅かな回路コストが、マルチプロセッサではプロセッサの個数分累積していく。そのため、上述の回路コストの増加が無視できなくなっている。   But this situation is already changing. One reason for this is that so-called multiprocessors, in which a plurality of processors are mounted on one custom LSI, are being promoted. The number of processors mounted on one custom LSI varies depending on the system project, but there are many from about a few to a dozen. Recently, however, there are cases where hundreds or more processors are mounted on a single custom LSI. A slight circuit cost that does not become a problem with a single processor accumulates for the number of processors in a multiprocessor. For this reason, the above-described increase in circuit cost cannot be ignored.

上述の説明ではプロセッサのカスタマイズ対象を演算命令だけに絞ったが、プロセッサを構成する回路は命令を処理する回路だけではない。それ以外の回路、例えば、演算レジスタに係わる回路、割り込みに係わる回路なども、使用しないのであれば削除できることが望ましい。   In the above description, the customization target of the processor is limited to only the arithmetic instruction, but the circuit constituting the processor is not only the circuit that processes the instruction. It is desirable that other circuits such as a circuit related to an arithmetic register and a circuit related to an interrupt can be deleted if not used.

また消費電力の観点で見ると未使用回路の存在は回路コストだけでなく様々なコストを押し上げる可能性がある。具体的には無駄な電力を消費する未使用回路が余計な熱を発生するため、冷却コスト、パッケージコスト、基板実装コスト、電源コストなどに影響を与える。   Further, from the viewpoint of power consumption, the presence of unused circuits may increase not only circuit costs but also various costs. Specifically, unused circuits that consume useless power generate extra heat, which affects cooling costs, package costs, board mounting costs, power supply costs, and the like.

従って、プロセッサ内の未使用回路を削除し、必要な機能と性能を備えたプロセッサを安価なコストで提供するニーズがある。   Accordingly, there is a need to delete unused circuits in the processor and to provide a processor having necessary functions and performance at a low cost.

上記課題を解決するための本発明の実施の形態によれば、記憶装置から命令を読み出し、その命令をデコーダで解釈し、その解釈に基づいて処理を順次進める専用プロセッサを生成するための設計記述されたプロセッサにおいて、前記プロセッサは、少なくとも命令を対象としたコンフィギュレーション定義記述と、前記専用プロセッサ内の回路を定義する回路記述とを有し、前記プロセッサは、予め備えている命令のうち任意の命令を削除可能、かつ該削除によって不要となる回路を削除可能になされたプロセッサが提供される。   According to an embodiment of the present invention for solving the above-described problem, a design description for generating a dedicated processor that reads an instruction from a storage device, interprets the instruction by a decoder, and sequentially proceeds with processing based on the interpretation. The processor includes a configuration definition description for at least an instruction and a circuit description for defining a circuit in the dedicated processor, and the processor includes an arbitrary instruction among pre-installed instructions. There is provided a processor capable of deleting an instruction and deleting a circuit which becomes unnecessary by the deletion.

本発明の実施形態に係る従来のカスタマイズ可能なプロセッサの構成と動作を説明するための図。The figure for demonstrating the structure and operation | movement of the conventional customizable processor which concerns on embodiment of this invention. 本発明の実施形態に係るプロセッサ生成システムの構成と動作を説明するための図。The figure for demonstrating the structure and operation | movement of the processor production | generation system which concern on embodiment of this invention. 本発明の実施形態に係るCSプロセッサの記述の例を示す図。The figure which shows the example of description of CS processor which concerns on embodiment of this invention. 本発明の実施形態に係るプロセッサ生成システムの構成と動作を説明するための図。The figure for demonstrating the structure and operation | movement of the processor production | generation system which concern on embodiment of this invention. 本発明の実施形態に係るレジスタに係る回路のカスタマイズ例を示す図。The figure which shows the example of customization of the circuit which concerns on the register | resistor which concerns on embodiment of this invention. 本発明の実施形態に係るカスタマイズ方法を説明するための図。The figure for demonstrating the customization method which concerns on embodiment of this invention. 本発明の実施形態に係るSプロセッサのカスタマイズを例示する図。The figure which illustrates customization of S processor concerning an embodiment of the present invention.

(第1の実施形態)
本発明の実施の形態のプロセッサを説明する前に、一般的なカスタマイズ可能なプロセッサについて説明する。
図1は、従来のカスタマイズ可能なプロセッサ1の構成と動作を説明するための図である。図1の上段には、プロセッサ1の機能ブロック図を示し、下段には、カスタマイズ可能な演算回路例を示している。
(First embodiment)
Before describing the processor according to the embodiment of the present invention, a general customizable processor will be described.
FIG. 1 is a diagram for explaining the configuration and operation of a conventional customizable processor 1. The upper part of FIG. 1 shows a functional block diagram of the processor 1, and the lower part shows an example of a customizable arithmetic circuit.

プロセッサ1は、コントローラ11、デコーダ12、切替器13、演算器14、レジスタファイル15を備えている。そしてプロセッサ1は、命令メモリ2、データメモリ3との間で情報の授受を行って処理動作を実行する。   The processor 1 includes a controller 11, a decoder 12, a switch 13, a calculator 14, and a register file 15. The processor 1 exchanges information with the instruction memory 2 and the data memory 3 to execute processing operations.

命令メモリ2には、プロセッサ1の動作を制御するプログラムの命令(Instruction)が格納されている。この命令メモリ2から命令が順次取り出されてデコーダ12に送られる。デコーダ12は、取り出された命令を解釈してプロセッサ1の動きを制御するための信号を生成する。デコーダ12からの信号はコントローラ11に入力され、コントローラ11は、デコーダ12で解釈された命令に従って、プロセッサ1の各部の動作を制御する。また、デコーダ12からの信号はプロセッサ1内の各部に出力される。   The instruction memory 2 stores an instruction (Instruction) of a program that controls the operation of the processor 1. Instructions are sequentially taken out from the instruction memory 2 and sent to the decoder 12. The decoder 12 interprets the fetched instruction and generates a signal for controlling the operation of the processor 1. A signal from the decoder 12 is input to the controller 11, and the controller 11 controls the operation of each unit of the processor 1 in accordance with an instruction interpreted by the decoder 12. A signal from the decoder 12 is output to each part in the processor 1.

デコーダ12からの信号は切替器13を介して演算器14に入力する。また、デコーダ12からの信号はレジスタファイル15で一時的に保存された後、切替器13を介して演算器14に入力する。演算器14は、入力した信号に対して算術演算あるいは論理演算を実行するALU(Arithmetic Logical Unit)である。切替器13が演算の種類に対応して信号を切り替えて演算器14に出力する。演算結果は、データメモリ3に格納される。演算の種類に応じて、演算結果は切替器13及びレジスタファイル15にフィードバックされる。   A signal from the decoder 12 is input to the calculator 14 via the switch 13. The signal from the decoder 12 is temporarily stored in the register file 15 and then input to the arithmetic unit 14 via the switch 13. The arithmetic unit 14 is an ALU (Arithmetic Logical Unit) that performs arithmetic operation or logical operation on an input signal. The switch 13 switches the signal corresponding to the type of calculation and outputs it to the calculator 14. The calculation result is stored in the data memory 3. Depending on the type of calculation, the calculation result is fed back to the switch 13 and the register file 15.

なお、データメモリ3はデータの保存と共に外部との信号の入出力機能を備えている。即ち、プロセッサ1からの信号はデータメモリ3を介して外部に出力され、外部からの信号はデータメモリ3を介してプロセッサ1に取り込まれる。なお、図1では命令メモリ2とデータメモリ3とを分離して構成しているが、これらを一体にまとめて構成することもできる。   The data memory 3 has an input / output function for external signals as well as data storage. That is, a signal from the processor 1 is output to the outside via the data memory 3, and a signal from the outside is taken into the processor 1 via the data memory 3. In FIG. 1, the instruction memory 2 and the data memory 3 are separated from each other. However, they can be configured integrally.

続いてプロセッサ1のカスタマイズ機能について演算器14を例として説明する。
演算器14が基本演算機能として四則演算(加算、減算、乗算、除算)と論理演算(積、和)機能を備えている場合、プロセッサ1を構築する際、カスタマイズ機能を用いて基本演算機能に加えて複素数演算、浮動小数点数演算、DSP (Digital Signal Processing) 演算、SIMD (Single Instruction Multiple Data) 演算、ユーザ定義演算を適宜選択して追加することができる。
Next, the customization function of the processor 1 will be described using the calculator 14 as an example.
When the arithmetic unit 14 has four arithmetic operations (addition, subtraction, multiplication, division) and logical operation (product, sum) functions as basic arithmetic functions, when the processor 1 is constructed, the customization function is used for the basic arithmetic functions. In addition, complex number arithmetic, floating point number arithmetic, DSP (Digital Signal Processing) arithmetic, SIMD (Single Instruction Multiple Data) arithmetic, and user-defined arithmetic can be appropriately selected and added.

このようにカスタマイズが可能な汎用プロセッサIPコアは、一般的に次のような命令構成を備えている。
[基本命令]+[オプション命令]+[ユーザ定義命令]
即ち、基本命令をベースとして必要に応じて、オプション命令、ユーザ定義命令を追加していく構成である。
The general-purpose processor IP core that can be customized in this way generally has the following instruction configuration.
[Basic instructions] + [Optional instructions] + [User-defined instructions]
In other words, an optional instruction and a user-defined instruction are added as needed based on the basic instruction.

このうち基本命令は制御命令・データ転送命令・論理演算命令・単純な整数演算命令から成り、カスタマイズすなわち削除することができない。オプション命令は複雑な整数演算命令・浮動小数点数演算命令・DSP演算命令・SIMD演算命令などから成り、基本命令に追加する形でカスタマイズが可能である。   Of these, basic instructions consist of control instructions, data transfer instructions, logical operation instructions, and simple integer operation instructions, and cannot be customized, that is, deleted. Optional instructions are composed of complex integer arithmetic instructions, floating point number arithmetic instructions, DSP arithmetic instructions, SIMD arithmetic instructions, and the like, and can be customized by adding to basic instructions.

ユーザ定義命令もオプション命令と同様にカスタマイズ可能である。オプション命令とユーザ定義命令の違いは、前者が専用の演算回路が予め用意されているのに対し、後者は演算回路をユーザ自ら用意しなければならない点にある。いずれにしてもオプション命令とユーザ定義命令はその演算回路の提供元が異なるだけでカスタマイズ機能を実現する上でプロセッサの構造上の違いはない。   User-defined instructions can be customized as well as optional instructions. The difference between the option instruction and the user-defined instruction is that the former has a dedicated arithmetic circuit prepared in advance, whereas the latter has to prepare the arithmetic circuit by the user. In any case, there is no difference in the structure of the processor in realizing the customization function, with the option instruction and the user-defined instruction being different only in the provider of the arithmetic circuit.

ここで問題となるのは、カスタマイズ機能を備えているプロセッサが実際にカスタマイズできるのは、図1でも示すように特定の演算命令に限定していることである。カスタマイズの対象を演算命令に限定しているのは、演算命令がプロセッサ内部の制御機構の影響を受けにくいからである。例えば、分岐命令やデータ転送命令などの制御系命令はプロセッサの根幹を成す命令であり、プロセッサ内部の様々な制御回路と密接に連動して働く。演算命令のカスタマイズがプロセッサ内のデータパスを3〜4箇所ほど切り換えるだけで済むのに対し、制御系命令ではデータパスだけでなく制御パスも切り換える必要がある上に個々の命令で切り換えるポイントやタイミングが変わってくる。また制御系命令はコンパイラをはじめとする開発ツールと連携していることが多く、これらの命令のカスタマイズは開発ツールに対して多大な影響を与える。それ故にこれらの命令は基本命令として位置づけられカスタマイズの対象から外されている。   The problem here is that a processor having a customization function can be customized only to specific operation instructions as shown in FIG. The reason for customizing is limited to the operation instruction because the operation instruction is not easily influenced by the control mechanism inside the processor. For example, control instructions such as branch instructions and data transfer instructions are instructions that form the basis of the processor and work in close cooperation with various control circuits inside the processor. Customization of calculation instructions only requires switching between three or four data paths in the processor, while control-related instructions need to switch not only the data path but also the control path, and the points and timings to be switched for each instruction. Will change. Control instructions are often linked with development tools such as compilers, and customization of these instructions has a great impact on development tools. Therefore, these commands are positioned as basic commands and excluded from customization.

また、カスタマイズが可能な演算命令であってもその自由度は大きくない。例えば、オプション命令として浮動小数点数演算命令を選択しようとするとき、その選択の単位は「単精度浮動小数点数演算に関係する命令群」、「倍精度浮動小数点数演算に関係する命令群」といったように命令群単位となる。特定の命令のみを使う場合であっても、関係する命令を含む命令群単位で選択せざるを得ない。   Even if the instruction can be customized, the degree of freedom is not great. For example, when a floating point arithmetic instruction is selected as an optional instruction, the unit of the selection is "instruction group related to single precision floating point arithmetic", "instruction group related to double precision floating point arithmetic", etc. Thus, the instruction group unit. Even when only specific instructions are used, selection must be made in units of instruction groups including related instructions.

このように、従来のカスタマイズ機能では、カスタマイズできる命令が特定の命令に制限されている。   As described above, in the conventional customization function, instructions that can be customized are limited to specific instructions.

図2は、本発明の実施の形態のプロセッサ生成システム20の構成と動作を説明するための図である。
プロセッサ生成システム20の作用について説明する。プロセッサ生成システム20は、ユーザプログラム30のソースコードから専用プロセッサ35が処理するコードである実行コードを生成し、その実行コードをシステムボードもしくはシステムLSI内のROM/RAM34に出力する。ここで、専用プロセッサ35とは、ユーザプログラム30を実行するために専用品として生成されたプロセッサである。
FIG. 2 is a diagram for explaining the configuration and operation of the processor generation system 20 according to the embodiment of this invention.
The operation of the processor generation system 20 will be described. The processor generation system 20 generates an execution code, which is a code processed by the dedicated processor 35, from the source code of the user program 30, and outputs the execution code to the ROM / RAM 34 in the system board or system LSI. Here, the dedicated processor 35 is a processor generated as a dedicated product for executing the user program 30.

更に、プロセッサ生成システム20は、再構成プロセッサ31(詳細は後述する)を生成する。この再構成プロセッサ31はユーザプログラム30を実行するために必要な回路のみについての回路記述を備えている。逆に言うと、そのユーザプログラム30が必要としない回路についての回路記述は含まれていない。シンセサイザ32は、再構成プロセッサ31をシンセサイズ(論理合成)して専用プロセッサ35を生成する。   Further, the processor generation system 20 generates a reconfiguration processor 31 (details will be described later). The reconfiguration processor 31 includes a circuit description for only the circuits necessary for executing the user program 30. In other words, a circuit description about a circuit that the user program 30 does not need is not included. The synthesizer 32 generates a dedicated processor 35 by synthesizing (logic synthesis) the reconfigurable processor 31.

生成された専用プロセッサ35はシステムボードもしくはLSI内に設けられる。そして、専用プロセッサ35は、ROM/RAM34に格納された実行コードに従って動作する。なお、図2の専用プロセッサ35は、図1のプロセッサ1に対応し、ROM/RAM34は、図1の命令メモリ2、データメモリ3に対応する。   The generated dedicated processor 35 is provided in a system board or LSI. The dedicated processor 35 operates according to the execution code stored in the ROM / RAM 34. The dedicated processor 35 in FIG. 2 corresponds to the processor 1 in FIG. 1, and the ROM / RAM 34 corresponds to the instruction memory 2 and the data memory 3 in FIG.

プロセッサ生成システム20は、ソフトウェア開発ツール21、実行コードファイル22、リストファイル23、マップファイル24、コンフィギュアブル&シンセサイザブルプロセッサ25(以下「CSプロセッサ」という。)、プロセッサコンフィギュレーションツール26(以下「プロセッサ生成装置」という。)及びユーザ定義ファイル27を備えている。   The processor generation system 20 includes a software development tool 21, an execution code file 22, a list file 23, a map file 24, a configurable and synthesizeable processor 25 (hereinafter referred to as “CS processor”), and a processor configuration tool 26 (hereinafter referred to as “CS processor”). And a user-defined file 27.

ソフトウェア開発ツール21は、アセンブラ、コンパイラ、リンカーなどを備え、ユーザプログラム30をアッセンブルあるいはコンパイルして実行コードを生成する。この生成された実行コードがシステムボードもしくはシステムLSI内のROM/RAM34に出力される。実行コードファイル22は、ソフトウエア開発ツールが生成した実行コードを格納するためのファイルである。リストファイル23は、リストを格納するためのファイルである。マップファイル24は、レジスタなどメモリの使用状態を表すデータを格納するファイルである。   The software development tool 21 includes an assembler, a compiler, a linker, and the like, and assembles or compiles the user program 30 to generate an execution code. The generated execution code is output to the ROM / RAM 34 in the system board or system LSI. The execution code file 22 is a file for storing the execution code generated by the software development tool. The list file 23 is a file for storing a list. The map file 24 is a file that stores data representing the use state of a memory such as a register.

CSプロセッサ25は、HDL(hardware Description Language)などで設計記述され、専用プロセッサ35をコンフィギュレーション(生成)する際の礎となる。即ち、CSプロセッサ25は、コンフィギャブル(構成可能)であり、シンセサイザブル(論理合成可能)なように構成されたプロセッサである。そして、CSプロセッサ25は、専用プロセッサ35を構成する回路についての全ての設計記述を含む。プロセッサ生成装置26は、実行コードファイル22、リストファイル23、マップファイル24に格納されているデータに基づいて、命令や各種リソースの使用状況を調査する。その調査結果に基づいて、プロセッサ生成装置26は、CSプロセッサ25を加工してユーザプログラム30に適合した再構成プロセッサ31を生成する。   The CS processor 25 is designed and described in HDL (hardware Description Language) or the like, and becomes the basis for configuring (generating) the dedicated processor 35. That is, the CS processor 25 is a processor that is configurable (configurable) and synthesizeable (logic synthesis is possible). The CS processor 25 includes all design descriptions for the circuits constituting the dedicated processor 35. The processor generation device 26 investigates the usage status of instructions and various resources based on the data stored in the execution code file 22, the list file 23, and the map file 24. Based on the investigation result, the processor generation device 26 processes the CS processor 25 to generate a reconfigurable processor 31 adapted to the user program 30.

続いて、プロセッサ生成装置26とCSプロセッサ25について詳細に説明する。
プロセッサ生成装置26は、ソフトウェア開発ツール21が生成した実行コードファイル22、リストファイル23、マップファイル24などから、ユーザプログラム30で使用している命令の種類、使用しているレジスタの種類や範囲、使用している割り込みの種類や範囲、使用しているアドレス空間の種類や範囲などを調べる。そしてプロセッサ生成装置26は、その結果に基づいてコンフィギュレーションを定義して、再構成プロセッサ31を生成する。
Next, the processor generation device 26 and the CS processor 25 will be described in detail.
The processor generation device 26, from the execution code file 22, the list file 23, the map file 24, etc. generated by the software development tool 21, the type of instruction used in the user program 30, the type and range of registers used, Check the type and range of interrupts used and the type and range of address spaces used. Then, the processor generation device 26 defines the configuration based on the result and generates the reconfiguration processor 31.

CSプロセッサ25はHDL(hardware Description Language)などで設計記述されたコンフィギュレーションの礎となる。図3は、CSプロセッサ25の記述の例を示す図である。   The CS processor 25 is the basis of a configuration designed and described in HDL (hardware Description Language) or the like. FIG. 3 is a diagram illustrating an example of the description of the CS processor 25.

00001行目の`ifdef INST_SLEEPは「sleep命令が必要であればその後の記述を有効にする」という意味のディレクティブである。INST_SLEEPは先述のコンフィギュレーション定義のひとつであり、プロセッサ生成装置26によって専用プロセッサ35にsleep命令が必要と判断した場合に定義される。00002行目のstatement1が実際にsleep命令の実行に必要な回路記述を示している。同様に00005行目の`ifdef INST_JUMP_JUMPF_LINK_LINKFは「jump、jumpf、link、linkf命令のいずれかが必要であればその後の記述を有効にする」という意味のディレクティブである。このINST_JUMP_JUMPF_LINK_LINKFもプロセッサ生成装置26が定義するコンフィギュレーション定義のひとつであり、00006行目以降の記述が実際にjump、jumpf、link、linkf命令の実行に必要な回路記述を示している。   `Ifdef INST_SLEEP on line 00001 is a directive that means" If the sleep instruction is necessary, the subsequent description is valid. " INST_SLEEP is one of the configuration definitions described above, and is defined when the processor generation device 26 determines that the dedicated processor 35 needs a sleep instruction. The statement 1 on the 00002 line indicates the circuit description actually necessary for executing the sleep instruction. Similarly, `ifdef INST_JUMP_JUMPF_LINK_LINKF on the 00005 line is a directive that means" if any jump, jumpf, link, or linkf instruction is required, the subsequent description is valid ". This INST_JUMP_JUMPF_LINK_LINKF is also one of the configuration definitions defined by the processor generation device 26, and the description after the 0006th line indicates the circuit description actually necessary for executing the jump, jumpf, link, and linkf instructions.

このようにプロセッサ生成装置26は、ユーザプログラム30が使用する命令やリソースの種類などに応じて各種コンフィギュレーション定義を行う。その定義をもとに、CSプロセッサ25の記述の中から必要な回路と不要な回路とを仕分けて、再構成プロセッサ31を生成する。   As described above, the processor generation device 26 defines various configurations according to the instruction used by the user program 30 and the type of resource. Based on the definition, necessary circuits and unnecessary circuits are classified from the description of the CS processor 25 to generate the reconfiguration processor 31.

一般的なカスタマイズプロセッサの場合、コンフィギュレーションの対象となる命令は一部の演算命令に限られているのに対し、本実施の形態の専用プロセッサ35を生成する方法ではすべての命令をコンフィギュレーションの対象にすることが可能である。さらに、命令だけに限らずレジスタ、割り込み、アドレス空間などのリソースについても同様にしてコンフィギュレーションの対象にすることも可能である。   In the case of a general customized processor, the instructions to be configured are limited to some arithmetic instructions, whereas in the method for generating the dedicated processor 35 of the present embodiment, all instructions are configured. It is possible to target. Furthermore, not only instructions but also resources such as registers, interrupts, and address spaces can be similarly configured.

例えば、レジスタの使用状況は図2の実行コードファイル22を参照することで調べることができる。プロセッサ生成装置26は実際に使用されているレジスタをもとにして、REG_LINK、REG_3、REG_4...といったコンフィギュレーション定義を行う。これら定義は例えば図3の00006行目の`ifdef REG_LINKのように参照される。この例では、リンクレジスタが使用されている場合はstatement2の回路記述を、リンクレジスタが使用されていない場合はstatement3の回路記述を有効にする。このような定義と回路記述によって必要なレジスタ回路のみを実装することができる。   For example, the register usage status can be checked by referring to the execution code file 22 shown in FIG. The processor generation device 26 performs configuration definition such as REG_LINK, REG_3, REG_4... Based on the registers actually used. These definitions are referred to as, for example, `ifdef REG_LINK on the 0006 line in FIG. In this example, when the link register is used, the circuit description of statement2 is validated, and when the link register is not used, the circuit description of statement3 is validated. Only such necessary register circuits can be implemented by such definitions and circuit descriptions.

以上のようにして、ユーザプログラム30の内容に応じて必要最小限の回路で済む専用プロセッサ35を生成することができる。本実施の形態のプロセッサの基本構成は次の通りである。
[高機能プロセッサ]−[未使用命令]−[未使用リソース]
即ち、高機能プロセッサをベースとして、未使用の命令、未使用のリソースを削除していく構成である。
As described above, it is possible to generate the dedicated processor 35 which requires a minimum necessary circuit according to the contents of the user program 30. The basic configuration of the processor of the present embodiment is as follows.
[Advanced processor]-[Unused instruction]-[Unused resource]
That is, the configuration is such that unused instructions and unused resources are deleted based on a high-function processor.

なお、本実施の形態では、ユーザプログラム30のみを対象とするのではなく、ユーザが予め削除する命令や機能、ないしは削除しない命令や機能を直接定義して、その定義に基づいて専用プロセッサ35内の不要となる回路を除去したり、将来使用する可能性がある回路を残したりすることもできる。例えば、図2に示すように、ユーザが削除する命令や機能を直接定義したユーザ定義ファイル27を設ける。プロセッサ生成装置26は、実行コードファイル22、リストファイル23、マップファイル24に加えてこのユーザ定義ファイル27を参照して再構成プロセッサ31を生成する。   In the present embodiment, not only the user program 30 but also a command or function that the user deletes in advance or a command or function that is not deleted is directly defined, and the dedicated processor 35 is based on the definition. It is also possible to remove unnecessary circuits or leave circuits that may be used in the future. For example, as shown in FIG. 2, a user definition file 27 that directly defines a command or function to be deleted by the user is provided. The processor generation device 26 refers to the user definition file 27 in addition to the execution code file 22, the list file 23, and the map file 24, and generates the reconfiguration processor 31.

多くの一般的なカスタマイズプロセッサの場合、ソフトウェア開発とプロセッサのカスタマイズはそれぞれ独立に行われる。そのためユーザは常に、ユーザプログラムの内容とカスタマイズ内容とが合致するようにシステム設計を進める必要があった。これに対して本実施の形態では、ソフトウェア開発とプロセッサ生成とを一連の業務の流れの中で関連付けて実行することができるという特徴がある。従って、ユーザプログラムを新たに作成した場合に限られず、作成したユーザプログラムに変更があった場合でもその変更に応じた専用プロセッサの生成をその都度実施することができる。この結果、ユーザはプロセッサのカスタマイズに長時間の検討を行う必要はなくなり、業務の飛躍的な効率を図ることができる。   For many common customization processors, software development and processor customization are independent of each other. For this reason, the user always has to advance the system design so that the content of the user program matches the customization content. In contrast, the present embodiment is characterized in that software development and processor generation can be executed in association with each other in a series of business flows. Accordingly, the present invention is not limited to the case where a user program is newly created, and even when the created user program is changed, a dedicated processor can be generated each time the change is made. As a result, it is not necessary for the user to study the processor for a long time to customize the processor, and the efficiency of business can be dramatically improved.

(第1の実施形態のバリエーション)
図2に記した第1の実施の形態では、ROM/RAM34と専用プロセッサ35とが別体となっているが、これらを一体として構成することができる。具体的には、実行コードファイル22からROM/RAM34への書き込み/ダウンロードを行う手段、およびROM/RAM34がなくなり、代わりに再構成プロセッサ31および専用プロセッサ35は、内部にROM/RAM34相当の回路を含んだ形態となる。プロセッサ生成装置26は実行コードファイル22、リストファイル23、マップファイル24に格納されているデータに基づいてROM/RAMの構成を決定し、ROM/RAM一体型の専用プロセッサを生成する。
(Variation of the first embodiment)
In the first embodiment shown in FIG. 2, the ROM / RAM 34 and the dedicated processor 35 are separate from each other, but they can be configured as an integral unit. Specifically, the means for writing / downloading from the execution code file 22 to the ROM / RAM 34 and the ROM / RAM 34 are eliminated, and the reconfigurable processor 31 and the dedicated processor 35 instead have a circuit corresponding to the ROM / RAM 34 inside. It becomes a form that includes. The processor generation device 26 determines the configuration of the ROM / RAM based on the data stored in the execution code file 22, the list file 23, and the map file 24, and generates a ROM / RAM integrated dedicated processor.

ROM/RAM34を別体とした場合は、使用するROM/RAM34の容量などに制約が生じる。これに対して、バリエーションの形態では、ROM/RAM34の容量はユーザプログラム30に対応して大容量から小容量まで、フレキシブルに構成することが可能である。従って、システム開発における設計の自由度が大きくなるという顕著な効果を得ることができる。   When the ROM / RAM 34 is provided separately, there are restrictions on the capacity of the ROM / RAM 34 to be used. On the other hand, in the variation, the capacity of the ROM / RAM 34 can be flexibly configured from a large capacity to a small capacity corresponding to the user program 30. Therefore, it is possible to obtain a remarkable effect that the degree of freedom of design in system development is increased.

(第2の実施形態)
図4は、本発明の第2の実施の形態のプロセッサ生成システム20の構成と動作を説明するための図である。
第2の実施の形態では、プロセッサ生成装置26からソフトウェア開発ツール21へのフィードバックルートを追加した点が第1の実施の形態と異なっている。従って、第1の実施の形態と同一の部位には同一の符号を付して、その詳細の説明は省略する。
(Second Embodiment)
FIG. 4 is a diagram for explaining the configuration and operation of the processor generation system 20 according to the second embodiment of this invention.
The second embodiment is different from the first embodiment in that a feedback route from the processor generation device 26 to the software development tool 21 is added. Accordingly, the same parts as those in the first embodiment are denoted by the same reference numerals, and detailed description thereof is omitted.

第2の実施の形態では、カスタマイズ対象を命令以外の対象、例えば、演算レジスタに係る回路、割り込みに係る回路などを対象とする。   In the second embodiment, the customization target is a target other than an instruction, for example, a circuit related to an arithmetic register, a circuit related to an interrupt, or the like.

例えば、標準で32個の演算レジスタを備えるプロセッサがあったとする。実際に使用する演算レジスタが20個で済むのであれば残りの12個の演算レジスタは無駄でしかない。また、標準で256個の割り込みに対応したプロセッサがあったとする。実際には10個で済むのであれば残りの246個分の回路は無駄になる。システム案件によっては割り込み機能すら不要な場合もある。ほかにも32ビットのアドレス空間のうち実際に使用するのが12ビットで済むのであれば残りの20ビット分の回路は無駄になる。   For example, suppose that there is a processor having 32 arithmetic registers as a standard. If only 20 operation registers are actually used, the remaining 12 operation registers are useless. Assume that there is a processor that supports 256 interrupts as a standard. In reality, if only 10 are sufficient, the remaining 246 circuits are wasted. Depending on the system project, even an interrupt function may not be required. In addition, if only 12 bits are actually used in the 32-bit address space, the remaining 20-bit circuit is wasted.

第1の実施の形態で示すプロセッサ生成システム20では、このような場合についても不要レジスタの削減をある程度実施することができるが、第2の実施の形態では、更なる削減を図ることができる。   In the processor generation system 20 shown in the first embodiment, unnecessary registers can be reduced to some extent even in such a case, but in the second embodiment, further reduction can be achieved.

図5は、第2の実施の形態における、レジスタに係る回路のカスタマイズ例を示す図である。
例えば0番から31番までのレジスタが32個存在し、ユーザプログラム30がそのうちの0番〜5番および15番を使用していると仮定する。使用レジスタの最小番号と最大番号をみるとそれぞれ0番と15番となり、レジスタの回路としては0番〜15番の16個があれば十分ということになる。そこで0番〜15番のレジスタの回路を残し、他のレジスタを除去することになるが、実際に使用しているレジスタは7個であるため、6番〜14番のレジスタ9個は未使用であるにも関わらず無駄な回路として残ってしまう。
FIG. 5 is a diagram illustrating an example of customization of a circuit related to a register in the second embodiment.
For example, it is assumed that there are 32 registers from No. 0 to No. 31 and the user program 30 uses No. 0 to No. 5 and No. 15 of them. Looking at the minimum and maximum numbers of the registers used, the numbers are 0 and 15, respectively, and 16 registers 0 to 15 are sufficient for the register circuit. Therefore, the circuits of the registers No. 15 to No. 15 are left and the other registers are removed, but since there are actually seven registers, nine registers No. 6 to No. 14 are unused. However, it remains as a useless circuit.

図4に示すプロセッサ生成装置26は、実行コードファイル22、リストファイル23、マップファイル24に基づいて、リソース(レジスタ)の使用状況を把握してその結果をレポートファイル41に記録する。解析部42は、レポートファイル41を参照してどのようにリソースを変更すれば回路の削減を図ることができるかを調べる。上述の例であれば、15番レジスタを6番レジスタに番号変更すれば、無駄な回路を削減することができる。   The processor generation device 26 shown in FIG. 4 grasps the usage status of resources (registers) based on the execution code file 22, the list file 23, and the map file 24 and records the result in the report file 41. The analysis unit 42 refers to the report file 41 and checks how the resources can be changed to reduce the circuit. In the above example, if the number 15 register is changed to the number 6 register, useless circuits can be reduced.

そこで、解析部42は、15番レジスタを6番レジスタに番号変更するようソフトウェア開発ツール21へ指示を与える。ソフトウェア開発ツール21はそのフィードバックの指示に従ってレジスタの番号を変更して実行コードなどの生成をやり直す。その結果、使用レジスタの最小番号と最大番号はそれぞれ0番と6番となり、第1の実施の形態で説明したプロセッサ生成システム20の動作によって、0番〜6番のレジスタの回路を残し他の回路は除去される。   Therefore, the analysis unit 42 instructs the software development tool 21 to change the number of the 15th register to the 6th register. The software development tool 21 changes the register number according to the feedback instruction and regenerates the execution code and the like. As a result, the minimum and maximum numbers of the registers used are 0 and 6, respectively, and the operation of the processor generation system 20 described in the first embodiment leaves the circuits of registers 0 to 6 and others. The circuit is removed.

第2の実施の形態によれば、さらに無駄な回路を削減することが可能になる。なお、第1及び第2の実施の形態においても、削減できる回路は、レジスタ自体の回路のみに限られずレジスタと関連する回路も含まれることは当然である。即ち、上述の例では、レジスタとレジスタに関連する機能との少なくとも一部を削減することが可能となる。   According to the second embodiment, it is possible to further reduce useless circuits. In the first and second embodiments, the circuit that can be reduced is not limited to the circuit of the register itself, but of course includes a circuit related to the register. That is, in the above-described example, it is possible to reduce at least a part of the registers and functions related to the registers.

なお、同様のことはレジスタに限らず、特定範囲のメモリ、割り込みやI/Oの割り当て、例外処理(例えば、0デバイド等)回路、メモリアドレスのインデックス処理回路についても該当する。   The same applies not only to registers but also to a specific range of memory, interrupt and I / O allocation, exception processing (for example, 0 divide) circuit, and memory address index processing circuit.

なお、第2の実施形態においても、第1の実施形態のバリエーションで記載した、ROM/RAM34と専用プロセッサ35とを一体として構成する形態を採用することができる。   In the second embodiment, the ROM / RAM 34 and the dedicated processor 35 described in the variations of the first embodiment can be adopted as an integral unit.

(第3の実施形態)
第1の実施の形態では、ユーザプログラム30の使用命令や使用リソースを静的に調べ、この結果に基づいてカスタマイズを行った。これに対して第3の実施の形態では使用命令や使用リソースを動的に調べ、この結果に基づいてカスタマイズする。その方法について説明する。なお、第1の実施の形態と同一の部位には同一の符号を付して、その詳細の説明は省略する。
(Third embodiment)
In the first embodiment, the usage instructions and usage resources of the user program 30 are statically examined, and customization is performed based on the results. On the other hand, in the third embodiment, the use instruction and the use resource are dynamically examined and customized based on the result. The method will be described. In addition, the same code | symbol is attached | subjected to the site | part same as 1st Embodiment, and the detailed description is abbreviate | omitted.

図6は、第3の実施の形態のカスタマイズ方法を説明するための図である。
カスタマイズの対象となるプロセッサは記述変更が許されたシンセサイザブルプロセッサ50(以下、「Sプロセッサ」という。)を前提としている。Sプロセッサ50は図2に示すCSプロセッサ25のようにコンフィギュアブルである必要はなく、図3に示すような記述も必要としない。
FIG. 6 is a diagram for explaining a customization method according to the third embodiment.
The processor to be customized is premised on a synthesizeable processor 50 (hereinafter referred to as “S processor”) whose description is allowed to be changed. The S processor 50 does not need to be configurable like the CS processor 25 shown in FIG. 2, and does not require a description as shown in FIG.

プロセッサの選択とユーザプログラムの開発が終了した後、シミュレータ上もしくは実機上でユーザプログラム30を実行する。その際、図6に示すように、Sプロセッサ50内の制御信号の一部または全部をカスタマイズモニタ51に接続する。このカスタマイズモニタ51はSプロセッサ50をカスタマイズするときだけ接続すれば良い。   After the selection of the processor and the development of the user program are completed, the user program 30 is executed on the simulator or on the actual machine. At that time, as shown in FIG. 6, some or all of the control signals in the S processor 50 are connected to the customization monitor 51. This customization monitor 51 may be connected only when customizing the S processor 50.

カスタマイズモニタ51は、ユーザプログラムを実行中のSプロセッサ50の各制御信号を記録する。カスタマイズモニタ51によって記録された各制御信号の変化(遷移)を調べることで、Sプロセッサ50の回路の使用状況を把握することができる。具体的には、もし信号遷移があればその制御信号が活性化していたことを意味し、その制御信号で制御される回路がユーザプログラム30によって利用されたことを示す。逆に信号遷移がなければその制御信号で制御される回路はユーザプログラム30を実行する上で何も機能しなかった無駄な回路であることを示す。   The customization monitor 51 records each control signal of the S processor 50 that is executing the user program. By examining the change (transition) of each control signal recorded by the customization monitor 51, the usage status of the circuit of the S processor 50 can be grasped. Specifically, if there is a signal transition, it means that the control signal has been activated, and indicates that the circuit controlled by the control signal has been used by the user program 30. On the other hand, if there is no signal transition, it indicates that the circuit controlled by the control signal is a useless circuit that did not function in executing the user program 30.

十分にユーザプログラム30の実行とカスタマイズモニタ51による信号記録が終わった後で、Sプロセッサ50を用いてカスタマイズを行う。具体的にはSプロセッサ50の制御信号のうち、カスタマイズモニタ51によって得られた記録中に遷移がない制御信号を切断し、代わりに0または1の固定値に置き換える。   After the execution of the user program 30 and the signal recording by the customization monitor 51 are sufficiently completed, customization is performed using the S processor 50. Specifically, among the control signals of the S processor 50, the control signals obtained by the customization monitor 51 that do not change during recording are disconnected and replaced with a fixed value of 0 or 1.

図7は、Sプロセッサ50のカスタマイズを例示する図である。図7Aは、Sプロセッサ50のオリジナル記述、図7Bは、カスタマイズ後の記述である。
図7では、カスタマイズモニタ51での記録上で制御信号BBBの遷移がなく1のまま変化しなかった場合の例を示している。制御信号BBBが常時1であったことから図7Bでは00009行目のBBBを参照していた部分が'b1(バイナリで1)に置き換わっている。Sプロセッサ50のカスタマイズとは、遷移しなかった制御信号を参照している部分を固定値に置き換えることである。
FIG. 7 is a diagram illustrating customization of the S processor 50. 7A is an original description of the S processor 50, and FIG. 7B is a description after customization.
FIG. 7 shows an example in which there is no transition of the control signal BBB on the recording by the customization monitor 51 and the value remains unchanged at 1. Since the control signal BBB is always 1, in FIG. 7B, the part referring to the BBB on the 00009 line is replaced with 'b1 (binary 1). The customization of the S processor 50 is to replace a portion that refers to a control signal that has not changed with a fixed value.

Sプロセッサ50のカスタマイズが完了した後は、一般的な論理合成手順を踏むことでカスタマイズされたプロセッサを得ることができる。論理合成の段階で固定値を与えられた回路記述は論理最適化されて消滅し、ユーザプログラム30を実行する上で必要最小限の回路にカスタマイズされたプロセッサを得ることができる。   After the customization of the S processor 50 is completed, a customized processor can be obtained by following a general logic synthesis procedure. A circuit description given a fixed value at the stage of logic synthesis is optimized and disappears by logic optimization, and a processor customized to the minimum circuit necessary for executing the user program 30 can be obtained.

第3の実施の形態では、カスタマイズを実行するにあたり、使用している命令、レジスタ、割り込み、アドレス空間などを詳細に把握する必要はない。単に制御信号が活性化しているか否かで、その先の回路の必要/不要を決定するので、全ての回路がカスタマイズの対象となり得る。   In the third embodiment, when executing customization, it is not necessary to know in detail the instruction, register, interrupt, address space, etc. used. Since the necessity / unnecessity of the circuit ahead is determined only by whether or not the control signal is activated, all the circuits can be customized.

なお、本実施の形態で用いるSプロセッサ50は記述変更が許されるタイプのプロセッサで足りる。即ち、記述変更が許されたタイプのプロセッサであればカスタマイズが可能である。そのようなタイプのプロセッサは多数存在しているため、本カスタマイズ方法は広く適用することが可能である。   Note that the S processor 50 used in the present embodiment may be a type of processor whose description is allowed to be changed. That is, customization is possible if the processor is of a type that allows description changes. Since there are many such types of processors, this customization method can be widely applied.

[発明の効果]
以上説明した実施の形態によれば、種々の効果を奏することができる。
[The invention's effect]
According to the embodiment described above, various effects can be achieved.

本実施の形態によれば、システム開発上で必要とする機能を備えつつ、無駄な回路を排除して回路コストを最小限に抑えたプロセッサを提供できる。これにより本プロセッサを搭載するカスタムLSIの製造コストを削減することが可能になる。またマルチプロセッサ構成を採る場合はより多くのプロセッサを搭載することができ、性能向上に繋がる。   According to the present embodiment, it is possible to provide a processor that has functions necessary for system development, eliminates useless circuits, and minimizes circuit costs. As a result, it is possible to reduce the manufacturing cost of a custom LSI on which this processor is mounted. Further, when a multiprocessor configuration is adopted, more processors can be mounted, which leads to an improvement in performance.

併せて近年、半導体プロセスの微細化によりひとつのカスタムLSIに多くの回路を搭載できるようになったおかげで、LSIの消費電力・発熱が増加したことがシステム開発上の問題になってきている。本実施の形態のプロセッサは無駄な回路を排除することでその分の消費電力を削減できるため、冷却コスト、パッケージコスト、基板実装コスト、電源コストなどの削減も期待できる。特にマルチプロセッサ構成を採る場合は無駄な回路の蓄積がなくなるため、その効果は顕著となる。   At the same time, thanks to the fact that a large number of circuits can be mounted on a single custom LSI due to the miniaturization of semiconductor processes, the increase in power consumption and heat generation of LSIs has become a problem in system development. Since the processor of this embodiment can reduce power consumption by eliminating unnecessary circuits, it can be expected to reduce cooling costs, package costs, board mounting costs, power supply costs, and the like. In particular, in the case of adopting a multiprocessor configuration, the accumulation of useless circuits is eliminated, and the effect becomes remarkable.

なお、上述の各実施の形態で説明した機能は、ハードウェアを用いて構成するに留まらず、ソフトウェアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウェア、ハードウェアのいずれかを選択して構成するものであっても良い。   Note that the functions described in the above-described embodiments are not limited to being configured using hardware, and can be realized by causing a computer to read a program describing each function using software. Each function may be configured by appropriately selecting either software or hardware.

尚、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。
上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
Note that the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage.
Various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment. Furthermore, you may combine suitably the component covering different embodiment.

1…プロセッサ、2…命令メモリ、3…データメモリ、9…レジスタ、11…コントローラ、12…デコーダ、13…切替器、14…演算器、15…レジスタファイル、20…プロセッサ生成システム、21…ソフトウェア開発ツール、22…実行コードファイル、23…リストファイル、24…マップファイル、25…シンセサイザブルプロセッサ、26…プロセッサコンフィギュレーションツール(プロセッサ生成装置)、27…ユーザ定義ファイル、30…ユーザプログラム、31…再構成プロセッサ、32…シンセサイザ、34…RAM/ROM、35…専用プロセッサ、41…レポートファイル、42…解析部、50…シンセサイザブルプロセッサ、51…カスタマイズモニタ。   DESCRIPTION OF SYMBOLS 1 ... Processor, 2 ... Instruction memory, 3 ... Data memory, 9 ... Register, 11 ... Controller, 12 ... Decoder, 13 ... Switch, 14 ... Operation unit, 15 ... Register file, 20 ... Processor generation system, 21 ... Software Development tool, 22 ... executable code file, 23 ... list file, 24 ... map file, 25 ... synthesizeable processor, 26 ... processor configuration tool (processor generator), 27 ... user definition file, 30 ... user program, 31 ... Reconfigurable processor, 32 ... synthesizer, 34 ... RAM / ROM, 35 ... dedicated processor, 41 ... report file, 42 ... analysis unit, 50 ... synthesizeable processor, 51 ... customized monitor.

Claims (7)

記憶装置から命令を読み出し、その命令をデコーダで解釈し、その解釈に基づいて処理を順次進める専用プロセッサを生成するための設計記述されたプロセッサにおいて、
前記プロセッサは、少なくとも命令を対象としたコンフィギュレーション定義記述と、前記専用プロセッサ内の回路を定義する回路記述とを有し、
前記プロセッサは、予め備えている命令のうち任意の命令を削除可能、かつ該削除によって不要となる回路を削除可能になされたこと
を特徴とするプロセッサ。
In a processor described in the design for generating a dedicated processor that reads an instruction from a storage device, interprets the instruction in a decoder, and sequentially proceeds based on the interpretation.
The processor has a configuration definition description for at least an instruction and a circuit description for defining a circuit in the dedicated processor,
The processor is characterized in that an arbitrary instruction can be deleted from pre-installed instructions and a circuit that becomes unnecessary due to the deletion can be deleted.
前記プロセッサは、予め備えている機能のうち特定の機能の一部もしくは全部に係わる回路を削除可能になされ、
削除可能な前記特定の機能は、レジスタに係わる機能、又は特定の演算器に係わる機能、又は割込み・例外の処理に係わる機能、又は特定範囲のメモリ空間を指し示す機能、又はメモリアドレスのインデックス計算に係わる機能であることを特徴とする請求項1に記載のプロセッサ。
The processor can delete a circuit related to a part or all of a specific function among the functions provided in advance,
The specific function that can be deleted is a function related to a register, a function related to a specific arithmetic unit, a function related to interrupt / exception processing, a function indicating a memory space in a specific range, or a memory address index calculation. The processor according to claim 1, wherein the processor is a related function.
請求項1又は2に記載のプロセッサから新たなプロセッサを生成するプロセッサ生成装置において、
前記専用プロセッサを動作させるためのソフトウェアプログラムからアセンブラ、コンパイラを含むソフトウェア開発ツールによって生成された命令コードに基づいて少なくとも命令の使用状況を静的に解析する解析部と、
この解析結果に基づいて前記プロセッサから削除可能な命令を抽出する抽出部と、
抽出した命令を前記プロセッサから削除するとともに、該命令の削除によって不要となる回路を前記プロセッサから削除して新たなプロセッサを生成する生成部と
を備えたことを特徴とするプロセッサ生成装置。
In the processor production | generation apparatus which produces | generates a new processor from the processor of Claim 1 or 2,
An analysis unit that statically analyzes at least the usage of the instruction based on an instruction code generated by a software development tool including an assembler and a compiler from a software program for operating the dedicated processor;
An extraction unit that extracts an instruction that can be deleted from the processor based on the analysis result;
A processor generation device comprising: a generation unit that deletes an extracted instruction from the processor and generates a new processor by deleting a circuit that becomes unnecessary due to the deletion of the instruction from the processor.
請求項1又は2に記載のプロセッサから新たなプロセッサを生成するプロセッサ生成装置において、
前記プロセッサから削除する少なくとも命令を定義した定義ファイルに基づいて、前記定義された命令を前記プロセッサから削除するとともに、該命令の削除によって不要となる回路を前記プロセッサから削除して新たなプロセッサを生成する生成部を備えたことを特徴とするプロセッサ生成装置。
In the processor production | generation apparatus which produces | generates a new processor from the processor of Claim 1 or 2,
Based on a definition file that defines at least an instruction to be deleted from the processor, the defined instruction is deleted from the processor, and a circuit unnecessary due to the deletion of the instruction is deleted from the processor to generate a new processor A processor generation device comprising a generation unit that performs the above-described operation.
請求項1又は2に記載のプロセッサから新たなプロセッサを生成するプロセッサ生成装置において、
前記専用プロセッサを動作させるためのソフトウェアプログラムからアセンブラ、コンパイラを含むソフトウェア開発ツールによって生成された命令コードに基づいて少なくとも命令の使用状況を静的に解析する解析部と、
この解析結果に基づいて前記プロセッサから削除可能な命令を抽出する第1抽出部と、
前記プロセッサから削除する少なくとも命令を定義した定義ファイルに基づいて、前記プロセッサから削除可能な命令を抽出する第2抽出部と、
前記第1及び第2抽出部が抽出した命令を前記プロセッサから削除するとともに、該命令の削除によって不要となる回路を前記プロセッサから削除して新たなプロセッサを生成する生成部と
を備えたことを特徴とするプロセッサ生成装置。
In the processor production | generation apparatus which produces | generates a new processor from the processor of Claim 1 or 2,
An analysis unit that statically analyzes at least the usage of the instruction based on an instruction code generated by a software development tool including an assembler and a compiler from a software program for operating the dedicated processor;
A first extraction unit that extracts an instruction that can be deleted from the processor based on the analysis result;
A second extraction unit that extracts an instruction that can be deleted from the processor based on a definition file that defines at least an instruction to be deleted from the processor;
And a generation unit that deletes the instructions extracted by the first and second extraction units from the processor, and generates a new processor by deleting a circuit that is unnecessary due to the deletion of the instructions from the processor. A featured processor generator.
請求項1又は2に記載のプロセッサと、
前記専用プロセッサを動作させるためのソフトウェアプログラムから命令コードを生成するアセンブラ、コンパイラを含むソフトウェア開発ツールと、
請求項3又は5に記載のプロセッサ生成装置と
を備えたことを特徴とするプロセッサ生成システム。
A processor according to claim 1 or 2, and
An assembler that generates an instruction code from a software program for operating the dedicated processor, a software development tool including a compiler, and
A processor generation system comprising: the processor generation device according to claim 3.
前記プロセッサ生成装置の解析結果に基づいて、前記ソフトウェア開発ツールに対して前記回路を更に削減するための指示を行う変更指示部を更に備えたことを特徴とする請求項6に記載のプロセッサ生成システム。   The processor generation system according to claim 6, further comprising a change instruction unit that instructs the software development tool to further reduce the circuits based on an analysis result of the processor generation device. .
JP2010135366A 2010-06-14 2010-06-14 Processor, processor generation device and processor generating system Pending JP2012003339A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010135366A JP2012003339A (en) 2010-06-14 2010-06-14 Processor, processor generation device and processor generating system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010135366A JP2012003339A (en) 2010-06-14 2010-06-14 Processor, processor generation device and processor generating system

Publications (1)

Publication Number Publication Date
JP2012003339A true JP2012003339A (en) 2012-01-05

Family

ID=45535277

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010135366A Pending JP2012003339A (en) 2010-06-14 2010-06-14 Processor, processor generation device and processor generating system

Country Status (1)

Country Link
JP (1) JP2012003339A (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003288203A (en) * 2002-03-27 2003-10-10 Asahi Kasei Corp Processor development support device
JP2005293448A (en) * 2004-04-05 2005-10-20 Renesas Technology Corp Development method of data processor, development support program of data processor, providing method of design data, and development method of data processing system
JP2006259805A (en) * 2005-03-15 2006-09-28 Seiko Epson Corp Processor design equipment, processor design method, and processor design program
JP2009199113A (en) * 2008-02-19 2009-09-03 Seiko Epson Corp Design device, design method using design device, and design program

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003288203A (en) * 2002-03-27 2003-10-10 Asahi Kasei Corp Processor development support device
JP2005293448A (en) * 2004-04-05 2005-10-20 Renesas Technology Corp Development method of data processor, development support program of data processor, providing method of design data, and development method of data processing system
JP2006259805A (en) * 2005-03-15 2006-09-28 Seiko Epson Corp Processor design equipment, processor design method, and processor design program
JP2009199113A (en) * 2008-02-19 2009-09-03 Seiko Epson Corp Design device, design method using design device, and design program

Similar Documents

Publication Publication Date Title
JP2869379B2 (en) Processor synthesis system and processor synthesis method
JP2021192257A (en) Memory-network processor with programmable optimization
JP4979875B2 (en) Retargetable compilation system and method
Cardoso et al. Compilation techniques for reconfigurable architectures
US7350055B2 (en) Tightly coupled accelerator
JP4489102B2 (en) Profiler for optimization of processor structure and applications
US20060095722A1 (en) Program subgraph identification
US20140096095A1 (en) Data processing apparatus including reconfiguarable logic circuit
US8060727B2 (en) Microprogrammed processor having mutiple processor cores using time-shared access to a microprogram control store
Koch et al. High-Level-Language Compilation for Reconfigurable Computers.
JP2014016894A (en) Parallel arithmetic device, data processing system with parallel arithmetic device, and data processing program
So et al. FPGA overlays
JP2015201119A (en) Compilation program, compilation method, and compilation device
US8516414B2 (en) Behavioral synthesis device, behavioral synthesis method, and computer program product
CN113672285A (en) Risk mitigation for lightweight processor cores
CN101361039A (en) Processor
JP2012003339A (en) Processor, processor generation device and processor generating system
JP2013161484A (en) Reconfigurable computing apparatus, first memory controller and second memory controller therefor, and method of processing trace data for debugging therefor
JP2006018411A (en) Processor
Wold et al. Design techniques for increasing performance and resource utilization of reconfigurable soft CPUs
JP6553694B2 (en) Processor element, programmable device and control method of processor element
KR100737802B1 (en) Modular digital signal processor block and system-on-chip using thereof
Othman INVESTIGATION OF NEW ARCHITECTURAL FEATURES TO SUPPORT PERFORMANCE IMPROVEMENT IN EMBEDDED PROCESSORS
JP5458622B2 (en) Behavioral synthesis apparatus, behavioral synthesis method, and program
JP5071189B2 (en) Processor synthesis device, compilation device, development system, processor synthesis method and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130308

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130829

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130903

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131205

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131212

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131219

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131226

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140107

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140109

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140116