JP2012003339A - Processor, processor generation device and processor generating system - Google Patents
Processor, processor generation device and processor generating system Download PDFInfo
- 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
Links
Images
Abstract
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.
しかしながら、カスタマイズ機能を備えた汎用プロセッサ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.
(第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
プロセッサ1は、コントローラ11、デコーダ12、切替器13、演算器14、レジスタファイル15を備えている。そしてプロセッサ1は、命令メモリ2、データメモリ3との間で情報の授受を行って処理動作を実行する。
The
命令メモリ2には、プロセッサ1の動作を制御するプログラムの命令(Instruction)が格納されている。この命令メモリ2から命令が順次取り出されてデコーダ12に送られる。デコーダ12は、取り出された命令を解釈してプロセッサ1の動きを制御するための信号を生成する。デコーダ12からの信号はコントローラ11に入力され、コントローラ11は、デコーダ12で解釈された命令に従って、プロセッサ1の各部の動作を制御する。また、デコーダ12からの信号はプロセッサ1内の各部に出力される。
The
デコーダ12からの信号は切替器13を介して演算器14に入力する。また、デコーダ12からの信号はレジスタファイル15で一時的に保存された後、切替器13を介して演算器14に入力する。演算器14は、入力した信号に対して算術演算あるいは論理演算を実行するALU(Arithmetic Logical Unit)である。切替器13が演算の種類に対応して信号を切り替えて演算器14に出力する。演算結果は、データメモリ3に格納される。演算の種類に応じて、演算結果は切替器13及びレジスタファイル15にフィードバックされる。
A signal from the
なお、データメモリ3はデータの保存と共に外部との信号の入出力機能を備えている。即ち、プロセッサ1からの信号はデータメモリ3を介して外部に出力され、外部からの信号はデータメモリ3を介してプロセッサ1に取り込まれる。なお、図1では命令メモリ2とデータメモリ3とを分離して構成しているが、これらを一体にまとめて構成することもできる。
The
続いてプロセッサ1のカスタマイズ機能について演算器14を例として説明する。
演算器14が基本演算機能として四則演算(加算、減算、乗算、除算)と論理演算(積、和)機能を備えている場合、プロセッサ1を構築する際、カスタマイズ機能を用いて基本演算機能に加えて複素数演算、浮動小数点数演算、DSP (Digital Signal Processing) 演算、SIMD (Single Instruction Multiple Data) 演算、ユーザ定義演算を適宜選択して追加することができる。
Next, the customization function of the
When the
このようにカスタマイズが可能な汎用プロセッサ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
The operation of the
更に、プロセッサ生成システム20は、再構成プロセッサ31(詳細は後述する)を生成する。この再構成プロセッサ31はユーザプログラム30を実行するために必要な回路のみについての回路記述を備えている。逆に言うと、そのユーザプログラム30が必要としない回路についての回路記述は含まれていない。シンセサイザ32は、再構成プロセッサ31をシンセサイズ(論理合成)して専用プロセッサ35を生成する。
Further, the
生成された専用プロセッサ35はシステムボードもしくはLSI内に設けられる。そして、専用プロセッサ35は、ROM/RAM34に格納された実行コードに従って動作する。なお、図2の専用プロセッサ35は、図1のプロセッサ1に対応し、ROM/RAM34は、図1の命令メモリ2、データメモリ3に対応する。
The generated
プロセッサ生成システム20は、ソフトウェア開発ツール21、実行コードファイル22、リストファイル23、マップファイル24、コンフィギュアブル&シンセサイザブルプロセッサ25(以下「CSプロセッサ」という。)、プロセッサコンフィギュレーションツール26(以下「プロセッサ生成装置」という。)及びユーザ定義ファイル27を備えている。
The
ソフトウェア開発ツール21は、アセンブラ、コンパイラ、リンカーなどを備え、ユーザプログラム30をアッセンブルあるいはコンパイルして実行コードを生成する。この生成された実行コードがシステムボードもしくはシステムLSI内のROM/RAM34に出力される。実行コードファイル22は、ソフトウエア開発ツールが生成した実行コードを格納するためのファイルである。リストファイル23は、リストを格納するためのファイルである。マップファイル24は、レジスタなどメモリの使用状態を表すデータを格納するファイルである。
The
CSプロセッサ25は、HDL(hardware Description Language)などで設計記述され、専用プロセッサ35をコンフィギュレーション(生成)する際の礎となる。即ち、CSプロセッサ25は、コンフィギャブル(構成可能)であり、シンセサイザブル(論理合成可能)なように構成されたプロセッサである。そして、CSプロセッサ25は、専用プロセッサ35を構成する回路についての全ての設計記述を含む。プロセッサ生成装置26は、実行コードファイル22、リストファイル23、マップファイル24に格納されているデータに基づいて、命令や各種リソースの使用状況を調査する。その調査結果に基づいて、プロセッサ生成装置26は、CSプロセッサ25を加工してユーザプログラム30に適合した再構成プロセッサ31を生成する。
The
続いて、プロセッサ生成装置26とCSプロセッサ25について詳細に説明する。
プロセッサ生成装置26は、ソフトウェア開発ツール21が生成した実行コードファイル22、リストファイル23、マップファイル24などから、ユーザプログラム30で使用している命令の種類、使用しているレジスタの種類や範囲、使用している割り込みの種類や範囲、使用しているアドレス空間の種類や範囲などを調べる。そしてプロセッサ生成装置26は、その結果に基づいてコンフィギュレーションを定義して、再構成プロセッサ31を生成する。
Next, the
The
CSプロセッサ25はHDL(hardware Description Language)などで設計記述されたコンフィギュレーションの礎となる。図3は、CSプロセッサ25の記述の例を示す図である。
The
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
このようにプロセッサ生成装置26は、ユーザプログラム30が使用する命令やリソースの種類などに応じて各種コンフィギュレーション定義を行う。その定義をもとに、CSプロセッサ25の記述の中から必要な回路と不要な回路とを仕分けて、再構成プロセッサ31を生成する。
As described above, the
一般的なカスタマイズプロセッサの場合、コンフィギュレーションの対象となる命令は一部の演算命令に限られているのに対し、本実施の形態の専用プロセッサ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
例えば、レジスタの使用状況は図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
以上のようにして、ユーザプログラム30の内容に応じて必要最小限の回路で済む専用プロセッサ35を生成することができる。本実施の形態のプロセッサの基本構成は次の通りである。
[高機能プロセッサ]−[未使用命令]−[未使用リソース]
即ち、高機能プロセッサをベースとして、未使用の命令、未使用のリソースを削除していく構成である。
As described above, it is possible to generate the
[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
多くの一般的なカスタマイズプロセッサの場合、ソフトウェア開発とプロセッサのカスタマイズはそれぞれ独立に行われる。そのためユーザは常に、ユーザプログラムの内容とカスタマイズ内容とが合致するようにシステム設計を進める必要があった。これに対して本実施の形態では、ソフトウェア開発とプロセッサ生成とを一連の業務の流れの中で関連付けて実行することができるという特徴がある。従って、ユーザプログラムを新たに作成した場合に限られず、作成したユーザプログラムに変更があった場合でもその変更に応じた専用プロセッサの生成をその都度実施することができる。この結果、ユーザはプロセッサのカスタマイズに長時間の検討を行う必要はなくなり、業務の飛躍的な効率を図ることができる。 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 /
ROM/RAM34を別体とした場合は、使用するROM/RAM34の容量などに制約が生じる。これに対して、バリエーションの形態では、ROM/RAM34の容量はユーザプログラム30に対応して大容量から小容量まで、フレキシブルに構成することが可能である。従って、システム開発における設計の自由度が大きくなるという顕著な効果を得ることができる。
When the ROM /
(第2の実施形態)
図4は、本発明の第2の実施の形態のプロセッサ生成システム20の構成と動作を説明するための図である。
第2の実施の形態では、プロセッサ生成装置26からソフトウェア開発ツール21へのフィードバックルートを追加した点が第1の実施の形態と異なっている。従って、第1の実施の形態と同一の部位には同一の符号を付して、その詳細の説明は省略する。
(Second Embodiment)
FIG. 4 is a diagram for explaining the configuration and operation of the
The second embodiment is different from the first embodiment in that a feedback route from the
第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
図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
図4に示すプロセッサ生成装置26は、実行コードファイル22、リストファイル23、マップファイル24に基づいて、リソース(レジスタ)の使用状況を把握してその結果をレポートファイル41に記録する。解析部42は、レポートファイル41を参照してどのようにリソースを変更すれば回路の削減を図ることができるかを調べる。上述の例であれば、15番レジスタを6番レジスタに番号変更すれば、無駄な回路を削減することができる。
The
そこで、解析部42は、15番レジスタを6番レジスタに番号変更するようソフトウェア開発ツール21へ指示を与える。ソフトウェア開発ツール21はそのフィードバックの指示に従ってレジスタの番号を変更して実行コードなどの生成をやり直す。その結果、使用レジスタの最小番号と最大番号はそれぞれ0番と6番となり、第1の実施の形態で説明したプロセッサ生成システム20の動作によって、0番〜6番のレジスタの回路を残し他の回路は除去される。
Therefore, the
第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 /
(第3の実施形態)
第1の実施の形態では、ユーザプログラム30の使用命令や使用リソースを静的に調べ、この結果に基づいてカスタマイズを行った。これに対して第3の実施の形態では使用命令や使用リソースを動的に調べ、この結果に基づいてカスタマイズする。その方法について説明する。なお、第1の実施の形態と同一の部位には同一の符号を付して、その詳細の説明は省略する。
(Third embodiment)
In the first embodiment, the usage instructions and usage resources of the
図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
プロセッサの選択とユーザプログラムの開発が終了した後、シミュレータ上もしくは実機上でユーザプログラム30を実行する。その際、図6に示すように、Sプロセッサ50内の制御信号の一部または全部をカスタマイズモニタ51に接続する。このカスタマイズモニタ51はSプロセッサ50をカスタマイズするときだけ接続すれば良い。
After the selection of the processor and the development of the user program are completed, the
カスタマイズモニタ51は、ユーザプログラムを実行中のSプロセッサ50の各制御信号を記録する。カスタマイズモニタ51によって記録された各制御信号の変化(遷移)を調べることで、Sプロセッサ50の回路の使用状況を把握することができる。具体的には、もし信号遷移があればその制御信号が活性化していたことを意味し、その制御信号で制御される回路がユーザプログラム30によって利用されたことを示す。逆に信号遷移がなければその制御信号で制御される回路はユーザプログラム30を実行する上で何も機能しなかった無駄な回路であることを示す。
The customization monitor 51 records each control signal of the
十分にユーザプログラム30の実行とカスタマイズモニタ51による信号記録が終わった後で、Sプロセッサ50を用いてカスタマイズを行う。具体的にはSプロセッサ50の制御信号のうち、カスタマイズモニタ51によって得られた記録中に遷移がない制御信号を切断し、代わりに0または1の固定値に置き換える。
After the execution of the
図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
FIG. 7 shows an example in which there is no transition of the control signal BBB on the recording by the
Sプロセッサ50のカスタマイズが完了した後は、一般的な論理合成手順を踏むことでカスタマイズされたプロセッサを得ることができる。論理合成の段階で固定値を与えられた回路記述は論理最適化されて消滅し、ユーザプログラム30を実行する上で必要最小限の回路にカスタマイズされたプロセッサを得ることができる。
After the customization of the
第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
[発明の効果]
以上説明した実施の形態によれば、種々の効果を奏することができる。
[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
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.
前記専用プロセッサを動作させるためのソフトウェアプログラムからアセンブラ、コンパイラを含むソフトウェア開発ツールによって生成された命令コードに基づいて少なくとも命令の使用状況を静的に解析する解析部と、
この解析結果に基づいて前記プロセッサから削除可能な命令を抽出する抽出部と、
抽出した命令を前記プロセッサから削除するとともに、該命令の削除によって不要となる回路を前記プロセッサから削除して新たなプロセッサを生成する生成部と
を備えたことを特徴とするプロセッサ生成装置。 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.
前記プロセッサから削除する少なくとも命令を定義した定義ファイルに基づいて、前記定義された命令を前記プロセッサから削除するとともに、該命令の削除によって不要となる回路を前記プロセッサから削除して新たなプロセッサを生成する生成部を備えたことを特徴とするプロセッサ生成装置。 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抽出部が抽出した命令を前記プロセッサから削除するとともに、該命令の削除によって不要となる回路を前記プロセッサから削除して新たなプロセッサを生成する生成部と
を備えたことを特徴とするプロセッサ生成装置。 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.
前記専用プロセッサを動作させるためのソフトウェアプログラムから命令コードを生成するアセンブラ、コンパイラを含むソフトウェア開発ツールと、
請求項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.
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)
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 |
-
2010
- 2010-06-14 JP JP2010135366A patent/JP2012003339A/en active Pending
Patent Citations (4)
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 |