JPWO2017119123A1 - プロセッサ合成装置、プロセッサ合成方法及びプロセッサ合成プログラム - Google Patents

プロセッサ合成装置、プロセッサ合成方法及びプロセッサ合成プログラム Download PDF

Info

Publication number
JPWO2017119123A1
JPWO2017119123A1 JP2017560010A JP2017560010A JPWO2017119123A1 JP WO2017119123 A1 JPWO2017119123 A1 JP WO2017119123A1 JP 2017560010 A JP2017560010 A JP 2017560010A JP 2017560010 A JP2017560010 A JP 2017560010A JP WO2017119123 A1 JPWO2017119123 A1 JP WO2017119123A1
Authority
JP
Japan
Prior art keywords
processor
circuit
information
instruction
instruction set
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.)
Granted
Application number
JP2017560010A
Other languages
English (en)
Other versions
JP6559257B2 (ja
Inventor
匠 星
匠 星
哲夫 矢野
哲夫 矢野
浩幸 山元
浩幸 山元
清大 武田
清大 武田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2017119123A1 publication Critical patent/JPWO2017119123A1/ja
Application granted granted Critical
Publication of JP6559257B2 publication Critical patent/JP6559257B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/10Processors
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

プロセッサ合成装置は、複数の命令のそれぞれが実行される際に、複数の演算器のうち、実行される命令で使用されない演算器を停止する停止回路を、当該複数の命令を含む命令セットを定義する命令セット情報(101)に基づいて、プロセッサモデル情報(102)で定義された、当該複数の演算器を含む回路構成に挿入する。プロセッサ合成装置は、停止回路を挿入した回路構成を定義するRTL記述であるプロセッサ合成情報(121)を生成する。

Description

本発明は、プロセッサ合成装置、プロセッサ合成方法及びプロセッサ合成プログラムに関するものである。
複雑化するプロセッサの開発を効率化する技術として、専用言語を用いてプロセッサのパイプライン構造及び命令セットを定義し、RTL(Register・Transfer・Level)記述を出力するプロセッサ合成技術がある。RTL記述とは、Verilog、VHDLといったハードウェア記述言語を用いてレジスタ間のデータ転送と論理演算との組み合わせで回路動作を表現する記述のことである。
専用命令が増えることにより、専用命令を実現する演算器等の回路リソースが増加する。命令が実行されていないときでも、その命令で使用される演算器にはクロック及び電源が供給されるため、電力が消費されてしまう。そのため、専用命令の増加に伴い、消費電力も増加してしまう。
低消費電力回路を設計する従来の手法として、回路内の条件判定部と非競合のデータフロー部とマルチプレクサ部との関連性に着目し、非競合のデータフロー部において条件によっては不要となる回路部にクロックゲーティング回路を付加する手法がある(例えば、特許文献1参照)。
特開2008−282360号公報
低消費電力回路を設計する従来の手法は、ハードウェアとして、シーケンスの決まった回路を合成する際に適用される。しかし、プロセッサには、決められたシーケンスがなく、入力される命令の順序に応じて動作する回路の順番が変化する。よって、低消費電力回路を設計する従来の手法は、プロセッサを合成する際には適用できない。
低消費電力のプロセッサを設計するために、RTL記述を分析して、クロックゲーティング回路、電源遮断回路といった消費電力低減回路を付加することが考えられる。しかし、プロセッサ合成技術により自動生成されたRTL記述は可読性が悪い。よって、RTL記述を基に低消費電力のプロセッサを設計することは困難であり、設計効率が低い。
本発明は、低消費電力のプロセッサの回路構成を得ることを目的とする。
本発明の一態様に係るプロセッサ合成装置は、
複数の命令を含む命令セットを定義する命令セット情報と、複数の演算器を含む回路構成を定義するプロセッサモデル情報とを取得する取得部と、
前記複数の命令のそれぞれが実行される際に、前記複数の演算器のうち、実行される命令で使用されない演算器を停止する停止回路を、前記取得部により取得された命令セット情報に基づいて、前記取得部により取得されたプロセッサモデル情報の回路構成に挿入し、前記停止回路を挿入した回路構成を定義するプロセッサ合成情報を生成する生成部とを備える。
本発明では、プロセッサの各命令の実行中に不要な演算器を停止する停止回路が、命令セットの定義に基づいてプロセッサの回路構成に挿入される。このため、低消費電力のプロセッサの回路構成を得ることができる。
実施の形態1に係るプロセッサ合成装置の構成を示すブロック図。 実施の形態1に係る命令セットの例を示す表。 実施の形態1に係るプロセッサモデルの例を示す図。 実施の形態1に係るプロセッサ合成装置の動作を示すフローチャート。 実施の形態1に係るプロセッサ合成装置による演算器の紐付けの例を示す図。 実施の形態1に係るプロセッサ合成装置により消費電力低減回路が挿入された回路構成の例を示す図。 実施の形態2に係るプロセッサ合成装置の構成を示すブロック図。 実施の形態2に係るプロセッサ合成装置の動作を示すフローチャート。 実施の形態2に係る停止回路がクロック又は電源の遮断を開始してから解除するまでの時間の第1例を示す図。 実施の形態2に係る停止回路がクロック又は電源の遮断を開始してから解除するまでの時間の第2例を示す図。 実施の形態3に係る命令セットの例を示す表。 実施の形態3に係るプロセッサ合成装置の動作を示すフローチャート。 実施の形態3に係るプロセッサ合成装置により消費電力低減回路が挿入された回路構成の例を示す図。
以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一又は相当する部分には、同一符号を付している。実施の形態の説明において、同一又は相当する部分については、その説明を適宜省略又は簡略化する。
実施の形態1.
本実施の形態に係る装置の構成、本実施の形態に係る装置の動作、本実施の形態の効果を順番に説明する。
***構成の説明***
図1を参照して、本実施の形態に係る装置であるプロセッサ合成装置111の構成を説明する。
プロセッサ合成装置111は、コンピュータである。プロセッサ合成装置111は、プロセッサ131、メモリ132といったハードウェアを備える。プロセッサ131は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
プロセッサ合成装置111は、機能要素として、取得部112と、生成部113とを備える。取得部112及び生成部113の機能は、ソフトウェアにより実現される。
プロセッサ131は、プロセッシングを行うIC(Integrated・Circuit)である。プロセッサ131は、具体的には、CPU(Central・Processing・Unit)である。
メモリ132には、プロセッサ131に入力される情報として、命令セット情報101と、プロセッサモデル情報102とが記憶される。また、メモリ132には、プロセッサ131から出力される情報として、プロセッサ合成情報121と、ドメイン情報122とが記憶される。メモリ132は、具体的には、フラッシュメモリ、又は、RAM(Random・Access・Memory)である。
プロセッサ合成装置111は、ハードウェアとして、入力装置、ディスプレイ及び通信装置を備えていてもよい。
入力装置は、命令セット情報101及びプロセッサモデル情報102をプロセッサ合成装置111に入力するために用いられる。入力装置は、具体的には、マウス、キーボード、又は、タッチパネルである。
ディスプレイは、プロセッサ合成情報121及びドメイン情報122を画面に表示するために用いられる。ディスプレイは、具体的には、LCD(Liquid・Crystal・Display)である。
通信装置は、データを受信するレシーバ及びデータを送信するトランスミッタを含む。レシーバは、命令セット情報101及びプロセッサモデル情報102をプロセッサ合成装置111に入力するために用いられる。トランスミッタは、プロセッサ合成情報121及びドメイン情報122をプロセッサ合成装置111から出力するために用いられる。通信装置は、具体的には、通信チップ又はNIC(Network・Interface・Card)である。
メモリ132には、取得部112及び生成部113の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ131に読み込まれ、プロセッサ131によって実行される。メモリ132には、OS(Operating・System)も記憶されている。プロセッサ131はOSを実行しながら、取得部112及び生成部113の機能を実現するプログラムを実行する。
なお、取得部112及び生成部113の機能を実現するプログラム及びOSは、補助記憶装置に記憶されていてもよい。補助記憶装置は、具体的には、フラッシュメモリ、又は、HDD(Hard・Disk・Drive)である。補助記憶装置に記憶されているプログラム及びOSは、メモリ132にロードされ、プロセッサ131によって実行される。
プロセッサ合成装置111は、1つのプロセッサ131のみを備えていてもよいし、複数のプロセッサ131を備えていてもよい。複数のプロセッサ131が取得部112及び生成部113の機能を実現するプログラムを連携して実行してもよい。
取得部112及び生成部113の処理の結果を示す情報、データ、信号値、及び、変数値は、メモリ132、補助記憶装置、又は、プロセッサ131内のレジスタ又はキャッシュメモリに記憶される。
取得部112及び生成部113の機能を実現するプログラムは、磁気ディスク、光ディスクといった可搬記録媒体に記憶されてもよい。
命令セット情報101は、複数の命令を含む命令セットを定義する情報である。命令セット情報101では、図2に示すような命令が専用言語で記述されている。なお、命令セットを定義するための専用言語は、統一規格として一般化されていないため、他の手法で命令セットが定義されてもよい。
プロセッサモデル情報102は、プロセッサモデルを定義する情報である。具体的には、プロセッサモデル情報102は、複数の演算器を含む回路構成、パイプラインステージ構造といったアーキテクチャを定義する情報である。プロセッサモデル情報102では、図3に示すような回路構成がVerilog、VHDLといったハードウェア記述言語で記述されている。
***動作の説明***
図4を参照して、本実施の形態に係る装置であるプロセッサ合成装置111の動作を説明する。プロセッサ合成装置111の動作は、本実施の形態に係るプロセッサ合成方法に相当する。プロセッサ合成装置111の動作は、本実施の形態に係るプロセッサ合成プログラムの処理手順に相当する。
ステップS11において、取得部112は、命令セット情報101と、プロセッサモデル情報102とを取得する。具体的には、取得部112は、命令セット情報101と、プロセッサモデル情報102とをメモリ132から読み取る。生成部113は、各命令で使用される演算器の紐付けを行う。具体的には、生成部113は、図5に示すように、グラフ理論を利用して演算器の紐付けを行う。なお、演算器の紐付けを行う手法としては、グラフ理論を利用する手法の代わりに、表形式を利用する手法等、他の手法を用いても構わない。
図2の命令セットから演算器の紐付けが行われた場合、図5に示すように、以下の結果が得られる。
・ADD命令201では、加算器211が使用される。
・MUL命令202では、加算器211が使用される。
・SUB命令203では、減算器212が使用される。
・DIV命令204では、シフト演算器213、減算器212、比較器214及び加算器211が使用される。
ステップS12において、生成部113は、演算器の紐付けの結果より、各命令の実行中に停止可能な演算器の抽出を行う。具体的には、生成部113は、ステップS11の結果を基に、各命令の実行中に使用されない演算器を、クロック又は電源を遮断可能な演算器として抽出する。
図5の結果から停止可能な演算器の抽出が行われた場合、以下の結果が得られる。
・ADD命令201では、減算器212、シフト演算器213及び比較器214が使用されないため、停止可能である。
・MUL命令202では、減算器212、シフト演算器213及び比較器214が使用されないため、停止可能である。
・SUB命令203では、加算器211、シフト演算器213及び比較器214が使用されないため、停止可能である。
・DIV命令204では、使用されない演算器がないため、いずれの演算器も停止不可能である。
ステップS13において、生成部113は、停止可能な演算器の抽出の結果より、回路構成への消費電力低減回路の挿入を行う。具体的には、生成部113は、図6に示すように、ステップS12の結果を基に、プロセッサモデル及び命令セットより合成したプロセッサのALU(Arithmetic・Logic・Unit)に対して、ALU内の各演算器を停止する停止回路422を消費電力低減回路として挿入する。停止回路422は、具体的には、クロックゲーティング回路又は電源遮断回路である。なお、図6では、演算器として加算器211、減算器212及び比較器214のみを示しているが、実際は、シフト演算器213もALU内に含まれている。シフト演算器213を停止する停止回路422も消費電力低減回路としてALUに挿入される。
図6を参照して、ステップS13の詳細な処理を説明する。
初めに、生成部113は、プロセッサモデル及び命令セットより、パイプラインステージを実現するための以下の要素を含むプロセッサ回路を生成する。
(1)各パイプラインステージを区切るためのフリップフロップ401,402
(2)プロセッサに入力される命令に応じ、使用する演算器を選択するためのデマルチプレクサ411
(3)各命令を実行する演算器である加算器211、減算器212、シフト演算器213及び比較器214
(4)プロセッサに入力される命令に応じ、出力する演算結果を選択するためのマルチプレクサ415
次に、生成部113は、上記のプロセッサ回路に対し、消費電力低減回路、すなわち、低消費電力設計のための以下の回路を挿入する。
(1)各命令実行時に使用されない演算器のクロック又は電源の遮断を制御する選択回路421
(2)各演算器のクロックを遮断するクロックゲーティング回路、又は、各演算器の電源を遮断する電源遮断回路である停止回路422
(3)各演算器のクロック又は電源の遮断時に、各演算器から出力される不定値が後段の回路へ伝搬しないようにするためのアイソレーションセル423
(4)プロセッサに入力された命令を検出する検出回路424
以下、検出回路424及び選択回路421の機能を説明する。なお、停止回路422及びアイソレーションセル423の機能は、従来の機能と同じでよい。
検出回路424は、プロセッサに入力された命令を検出し、パイプラインのEXステージで実行される命令の種別を選択回路421に出力する。
選択回路421は、プロセッサに命令が入力され、命令がパイプラインのIFステージでフェッチされているとき、及び、命令がパイプラインのIDステージでデコードされているときは、停止回路422によってALU内の全演算器のクロックゲーティング又は電源遮断を行う。これにより、命令を実行中でないパイプラインのEXステージの消費電力を低減させることができる。
選択回路421は、命令がパイプラインのIDステージでデコードされた後、検出回路424から出力された種別に応じて、パイプラインのEXステージで使用される演算器のクロックゲーティング又は電源遮断を解除する。その結果、命令を実行中であるパイプラインのEXステージで使用される演算器のみが電力を消費し、使用されない演算器が電力を消費しないままとなる。よって、命令を実行中であるパイプラインのEXステージの消費電力も低減させることができる。
選択回路421は、命令がパイプラインのEXステージで実行された後、停止回路422によってALU内の全演算器のクロックゲーティング又は電源遮断を行う。これにより、命令を実行中でないパイプラインのEXステージの消費電力を低減させることができる。
上記のように、ステップS11からステップS13では、生成部113が、停止回路422を、取得部112により取得された命令セット情報101に基づいて、取得部112により取得されたプロセッサモデル情報102の回路構成に挿入する。具体的には、ステップS11及びステップS12では、生成部113が、複数の命令のそれぞれで使用される演算器を示す情報を含む命令セット情報101から、複数の演算器のうち、複数の命令の少なくともいずれかで使用されない演算器を特定する。図5及び図6の例では、加算器211、減算器212、シフト演算器213及び比較器214が「複数の演算器」に相当し、ADD命令201、MUL命令202、SUB命令203、DIV命令204が「複数の命令」に相当する。ステップS13では、生成部113が、プロセッサモデル情報102の回路構成にて、ステップS12で特定した演算器に停止回路422を接続する。停止回路422は、複数の命令のそれぞれが実行される際に、複数の演算器のうち、実行される命令で使用されない演算器を停止する回路である。具体的には、停止回路422は、クロック又は電源を遮断することで、その停止回路422に接続された演算器を停止する回路である。具体例として、加算器211に接続された停止回路422は、SUB命令203が実行される際に加算器211へのクロック又は電力の供給を遮断する回路である。
また、ステップS11からステップS13では、生成部113が、検出回路424と選択回路421とを、取得部112により取得された命令セット情報101に基づいて、取得部112により取得されたプロセッサモデル情報102の回路構成にさらに挿入する。検出回路424は、複数の命令のそれぞれが実行される際に、実行される命令を検出し、検出結果を出力する回路である。選択回路421は、検出回路からの検出結果に応じて、複数の演算器のうち、停止回路422に停止させる演算器を選択する回路である。具体例として、SUB命令203が実行される際には、検出回路424は、SUB命令203を検出し、SUB命令203を示す信号を選択回路421に送る。選択回路421は、その信号を受けて、加算器211、シフト演算器213及び比較器214を選択する。より具体的には、選択回路421は、加算器211、シフト演算器213及び比較器214に接続された3つの停止回路422を制御して加算器211、シフト演算器213及び比較器214を停止させる。
ステップS14において、生成部113は、ステップS13で生成し、消費電力低減回路を挿入したプロセッサ回路のRTL記述であるプロセッサ合成情報121と、パワー・フォーマット、すなわち、演算器ごとのクロック又は電源の設計情報であるドメイン情報122とを出力する。
上記のように、ステップS14では、生成部113が、停止回路422と検出回路424と選択回路421とを挿入した回路構成を定義するプロセッサ合成情報121を生成する。
***実施の形態の効果の説明***
本実施の形態では、プロセッサの各命令の実行中に不要な演算器を停止する停止回路422が、命令セットの定義に基づいてプロセッサの回路構成に挿入される。このため、低消費電力のプロセッサの回路構成を得ることができる。
本実施の形態では、RTL記述よりも抽象度の高いプロセッサモデルより、RTL記述を自動生成する際に、プロセッサに入力される命令に応じて、その命令で使用されない演算器のクロックゲーティング又は電源遮断を行う消費電力低減回路を挿入することで、低消費電力のプロセッサを生成することができる。
***他の構成***
本実施の形態では、取得部112及び生成部113の機能がソフトウェアにより実現されるが、変形例として、取得部112及び生成部113の機能がソフトウェアとハードウェアとの組み合わせにより実現されてもよい。即ち、取得部112及び生成部113の少なくともいずれかの機能の一部が専用のハードウェアにより実現され、残りがソフトウェアにより実現されてもよい。
プロセッサ131及びメモリ132を、総称して「プロセッシングサーキット」という。つまり、取得部112及び生成部113の機能がソフトウェアにより実現されても、ソフトウェアとハードウェアとの組み合わせにより実現されても、取得部112及び生成部113の機能は、プロセッシングサーキットにより実現される。
「部」を「工程」又は「手順」又は「処理」に読み替えてもよい。
実施の形態2.
本実施の形態に係る装置の構成、本実施の形態に係る装置の動作、本実施の形態の効果を順番に説明する。主に実施の形態1との差異を説明する。
***構成の説明***
図7を参照して、本実施の形態に係る装置であるプロセッサ合成装置111の構成を説明する。
プロセッサ合成装置111の構成については、図1に示した実施の形態1のものと同じである。
本実施の形態では、メモリ132に、プロセッサ131に入力される情報として、プロセス情報103がさらに記憶される。
プロセス情報103は、複数の演算器のそれぞれがクロック又は電源の遮断解除後に動作可能となるまでの時間を定義する情報である。本実施の形態では、プロセッサ合成装置111が、このプロセス情報103を用いることで、プロセッサ製造プロセスに応じてクロックゲーティング又は電源遮断の解除のタイミングを変更できる。
***動作の説明***
図8を参照して、本実施の形態に係る装置であるプロセッサ合成装置111の動作を説明する。プロセッサ合成装置111の動作は、本実施の形態に係るプロセッサ合成方法に相当する。プロセッサ合成装置111の動作は、本実施の形態に係るプロセッサ合成プログラムの処理手順に相当する。
ステップS21において、取得部112は、命令セット情報101と、プロセッサモデル情報102と、プロセス情報103とを取得する。具体的には、取得部112は、命令セット情報101と、プロセッサモデル情報102と、プロセス情報103とをメモリ132から読み取る。生成部113は、実施の形態1のステップS11と同じように、各命令で使用される演算器の紐付けを行う。
ステップS22については、実施の形態1のステップS12と同じである。
ステップS23において、生成部113は、実施の形態1のステップS13と同じように、回路構成への消費電力低減回路の挿入を行う。本実施の形態において、生成部113は、取得部112により取得されたプロセス情報103に基づいて、プロセッサ合成情報121の回路構成、すなわち、停止回路422が既に挿入された回路構成で、停止回路422がクロック又は電源の遮断を開始してから解除するまでの時間を調整する。
特に停止回路422が電源を遮断する場合、電源遮断の解除後、回路が動作できるようになるまでに時間を要する。本実施の形態では、生成部113が、プロセス情報103に含まれる電源遮断解除後から回路が動作可能になるまでの時間を読み取ることで、その時間に応じて、電源遮断の解除のタイミングを変更したプロセッサを生成することができる。
ここで、図9及び図10に、プロセスの違いによって電源遮断解除までの時間が異なる2つのプロセッサを生成した例を示す。
図9の例では、回路が動作できるようになるまでの時間が短いため、選択回路421は、命令がパイプラインのIDステージでデコードされたことを検出し、パイプラインのEXステージで電源遮断の解除を行う。
図10の例では、回路が動作できるようになるまでの時間が長いため、パイプラインのIDステージが2つに増やされている。これにより、回路が動作できるようになるまでの時間を確保できる。選択回路421は、命令がパイプラインの最初のIDステージでデコードされたことを検出し、パイプラインのEXステージで電源遮断の解除を行う。
ステップS24については、実施の形態1のステップS14と同じである。
***実施の形態の効果の説明***
本実施の形態では、クロックゲーティング又は電源遮断を解除するステージを変更できる。
本実施の形態では、実施の形態1と同じように、取得部112及び生成部113の機能がソフトウェアにより実現されるが、実施の形態1の変形例と同じように、取得部112及び生成部113の機能がソフトウェアとハードウェアとの組み合わせにより実現されてもよい。
実施の形態3.
本実施の形態に係る装置の構成、本実施の形態に係る装置の動作、本実施の形態の効果を順番に説明する。主に実施の形態1との差異を説明する。
***構成の説明***
本実施の形態に係る装置であるプロセッサ合成装置111の構成については、図1に示した実施の形態1のものと同じである。
本実施の形態において、命令セット情報101の命令セットには、図11に示すように、複数の命令に1対1で対応する複数の停止命令が含まれる。また、複数の命令に1対1で対応する複数の起動命令も含まれる。複数の停止命令のそれぞれは、複数の演算器のうち、対応する命令で使用されない演算器を停止回路422によって停止する命令である。複数の起動命令のそれぞれは、複数の演算器のうち、対応する命令で使用されない演算器が停止回路422によって停止されているとき、当該演算器を起動する命令である。具体例として、ADD命令201に対応する停止命令は、ADD_OFF命令である。ADD_OFF命令では、ADD命令201で使用されない演算器、すなわち、減算器212、シフト演算器213及び比較器214が停止される。ADD命令201に対応する起動命令は、ADD_ON命令である。ADD_ON命令では、ADD_OFF命令によって停止された演算器、すなわち、減算器212、シフト演算器213及び比較器214が起動される。
***動作の説明***
図12を参照して、本実施の形態に係る装置であるプロセッサ合成装置111の動作を説明する。プロセッサ合成装置111の動作は、本実施の形態に係るプロセッサ合成方法に相当する。プロセッサ合成装置111の動作は、本実施の形態に係るプロセッサ合成プログラムの処理手順に相当する。
ステップS31については、実施の形態1のステップS11と同じである。
本実施の形態では、実施の形態1のステップS12のような、停止可能な演算器の抽出を行う必要がない。
ステップS32において、生成部113は、ステップS31で取得された命令セット情報101に基づいて、回路構成への消費電力低減回路の挿入を行う。具体的には、生成部113は、図13に示すように、命令セットに含まれる停止命令で停止可能な演算器に停止回路422を付加する。なお、生成部113は、全ての演算器に停止回路422を付加してもよい。
生成部113は、さらに、選択回路421をALUに挿入する。検出回路424は不要である。
図13のプロセッサ回路では、演算器を起動する各命令が入力されると、起動命令が選択回路421に出力され、選択回路421は、該当する命令で使用される演算器を起動する。また、演算器を停止する各命令が入力されると、停止命令が選択回路421に出力され、選択回路421は、該当する命令で使用される演算器を停止する。これにより、プロセッサの消費電力を低減させることができる。
ステップS33については、実施の形態1のステップS14と同じである。
***実施の形態の効果の説明***
本実施の形態では、プロセッサ内の演算器を起動又は停止するための命令が含まれた命令セットを用いることで、プロセッサへの命令により、演算器のクロックゲーティング又は電源遮断を行うことができる。実施の形態1及び実施の形態2のように選択回路421が、命令の種別に応じて、使用されない演算器を自動で選択する必要がないため、選択回路421の簡略化が可能である。
本実施の形態では、実施の形態1と同じように、取得部112及び生成部113の機能がソフトウェアにより実現されるが、実施の形態1の変形例と同じように、取得部112及び生成部113の機能がソフトウェアとハードウェアとの組み合わせにより実現されてもよい。
以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、2つ以上の実施の形態を組み合わせて実施しても構わない。或いは、これらの実施の形態のうち、1つの実施の形態又は2つ以上の実施の形態の組み合わせを部分的に実施しても構わない。なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
101 命令セット情報、102 プロセッサモデル情報、103 プロセス情報、111 プロセッサ合成装置、112 取得部、113 生成部、121 プロセッサ合成情報、122 ドメイン情報、131 プロセッサ、132 メモリ、201 ADD命令、202 MUL命令、203 SUB命令、204 DIV命令、211 加算器、212 減算器、213 シフト演算器、214 比較器、401 フリップフロップ、402 フリップフロップ、411 デマルチプレクサ、415 マルチプレクサ、421 選択回路、422 停止回路、423 アイソレーションセル、424 検出回路。

Claims (7)

  1. 複数の命令を含む命令セットを定義する命令セット情報と、複数の演算器を含む回路構成を定義するプロセッサモデル情報とを取得する取得部と、
    前記複数の命令のそれぞれが実行される際に、前記複数の演算器のうち、実行される命令で使用されない演算器を停止する停止回路を、前記取得部により取得された命令セット情報に基づいて、前記取得部により取得されたプロセッサモデル情報の回路構成に挿入し、前記停止回路を挿入した回路構成を定義するプロセッサ合成情報を生成する生成部と
    を備えるプロセッサ合成装置。
  2. 前記命令セット情報には、前記複数の命令のそれぞれで使用される演算器を示す情報が含まれ、
    前記生成部は、前記命令セット情報から、前記複数の演算器のうち、前記複数の命令の少なくともいずれかで使用されない演算器を特定し、前記プロセッサモデル情報の回路構成にて、特定した演算器に前記停止回路を接続する請求項1に記載のプロセッサ合成装置。
  3. 前記生成部は、前記複数の命令のそれぞれが実行される際に、実行される命令を検出し、検出結果を出力する検出回路と、前記検出回路からの検出結果に応じて、前記複数の演算器のうち、前記停止回路に停止させる演算器を選択する選択回路とを、前記取得部により取得された命令セット情報に基づいて、前記取得部により取得されたプロセッサモデル情報の回路構成にさらに挿入し、前記停止回路と前記検出回路と前記選択回路とを挿入した回路構成を定義する情報を前記プロセッサ合成情報として生成する請求項1又は2に記載のプロセッサ合成装置。
  4. 前記命令セット情報の命令セットには、前記複数の命令に1対1で対応する複数の停止命令が含まれ、
    前記複数の停止命令のそれぞれは、前記複数の演算器のうち、対応する命令で使用されない演算器を前記停止回路によって停止する命令である請求項1又は2に記載のプロセッサ合成装置。
  5. 前記停止回路は、クロック又は電源を遮断することで、前記停止回路に接続された演算器を停止する回路であり、
    前記取得部は、前記複数の演算器のそれぞれがクロック又は電源の遮断解除後に動作可能となるまでの時間を定義するプロセス情報をさらに取得し、
    前記生成部は、前記取得部により取得されたプロセス情報に基づいて、前記プロセッサ合成情報の回路構成で、前記停止回路がクロック又は電源の遮断を開始してから解除するまでの時間を調整する請求項1から4のいずれか1項に記載のプロセッサ合成装置。
  6. 取得部が、複数の命令を含む命令セットを定義する命令セット情報と、複数の演算器を含む回路構成を定義するプロセッサモデル情報とを取得し、
    生成部が、前記複数の命令のそれぞれが実行される際に、前記複数の演算器のうち、実行される命令で使用されない演算器を停止する停止回路を、前記取得部により取得された命令セット情報に基づいて、前記取得部により取得されたプロセッサモデル情報の回路構成に挿入し、前記停止回路を挿入した回路構成を定義するプロセッサ合成情報を生成するプロセッサ合成方法。
  7. コンピュータに、
    複数の命令を含む命令セットを定義する命令セット情報と、複数の演算器を含む回路構成を定義するプロセッサモデル情報とを取得する処理と、
    前記複数の命令のそれぞれが実行される際に、前記複数の演算器のうち、実行される命令で使用されない演算器を停止する停止回路を、前記命令セット情報に基づいて、前記プロセッサモデル情報の回路構成に挿入し、前記停止回路を挿入した回路構成を定義するプロセッサ合成情報を生成する処理と
    を実行させるプロセッサ合成プログラム。
JP2017560010A 2016-01-08 2016-01-08 プロセッサ合成装置、プロセッサ合成方法及びプロセッサ合成プログラム Active JP6559257B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/050525 WO2017119123A1 (ja) 2016-01-08 2016-01-08 プロセッサ合成装置、プロセッサ合成方法及びプロセッサ合成プログラム

Publications (2)

Publication Number Publication Date
JPWO2017119123A1 true JPWO2017119123A1 (ja) 2018-03-22
JP6559257B2 JP6559257B2 (ja) 2019-08-14

Family

ID=59273386

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017560010A Active JP6559257B2 (ja) 2016-01-08 2016-01-08 プロセッサ合成装置、プロセッサ合成方法及びプロセッサ合成プログラム

Country Status (3)

Country Link
US (1) US10684862B2 (ja)
JP (1) JP6559257B2 (ja)
WO (1) WO2017119123A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021033567A (ja) * 2019-08-22 2021-03-01 株式会社デンソー 電子制御装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003345775A (ja) * 2002-05-30 2003-12-05 Nec Electronics Corp システムlsi、システムlsiの設計方法、及び、記録媒体

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6195786B1 (en) 1997-12-23 2001-02-27 Nec Usa, Inc. Constrained register sharing technique for low power VLSI design
US7051309B1 (en) * 1999-02-16 2006-05-23 Crosetto Dario B Implementation of fast data processing with mixed-signal and purely digital 3D-flow processing boars
JP2001142922A (ja) 1999-11-15 2001-05-25 Matsushita Electric Ind Co Ltd 半導体集積回路装置の設計方法
JP2001290643A (ja) 2000-04-10 2001-10-19 Matsushita Electric Ind Co Ltd マイクロコンピュータ
JP2002366596A (ja) 2001-06-11 2002-12-20 Sharp Corp 高位合成装置および高位合成方法、高位合成方法による論理回路の製造方法、記録媒体
JP5023652B2 (ja) 2006-10-17 2012-09-12 日本電気株式会社 回路生成システム、回路生成方法及び回路生成プログラム
JP2008282360A (ja) 2007-05-14 2008-11-20 Toshiba Corp 低消費電力回路用高位合成装置及び高位合成方法及びそのプログラム
US8244515B2 (en) 2007-08-21 2012-08-14 International Business Machines Corporation Structure for detecting clock gating opportunities in a pipelined electronic circuit design
US8073669B2 (en) 2007-08-21 2011-12-06 International Business Machines Corporation Method and apparatus for detecting clock gating opportunities in a pipelined electronic circuit design
JP5929367B2 (ja) 2012-03-16 2016-06-01 株式会社リコー 半導体設計装置および半導体設計方法
JP6362318B2 (ja) * 2012-12-28 2018-07-25 三菱電機株式会社 半導体集積回路設計支援装置、方法及びプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003345775A (ja) * 2002-05-30 2003-12-05 Nec Electronics Corp システムlsi、システムlsiの設計方法、及び、記録媒体

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
谷口 一徹, 内田 充哉, 冨山 宏之, 福井 正博: "細粒度電源管理に対応したVLIW型プロセッサ向け消費電力最小命令スケジューリング手法", 電子情報通信学会技術研究報告, vol. 第110巻/第316号, JPN6018046935, 22 November 2010 (2010-11-22), JP, pages 第61-66頁 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021033567A (ja) * 2019-08-22 2021-03-01 株式会社デンソー 電子制御装置

Also Published As

Publication number Publication date
US20190004809A1 (en) 2019-01-03
JP6559257B2 (ja) 2019-08-14
WO2017119123A1 (ja) 2017-07-13
US10684862B2 (en) 2020-06-16

Similar Documents

Publication Publication Date Title
US10901492B1 (en) Power reduction in processor pipeline by detecting zeros
KR100971806B1 (ko) 변화를 탐지하는 클러스터 아키텍처
US8132144B2 (en) Automatic clock-gating insertion and propagation technique
US8533648B2 (en) Automatic clock-gating propagation technique
US7917882B2 (en) Automated digital circuit design tool that reduces or eliminates adverse timing constraints due to an inherent clock signal skew, and applications thereof
US20120084540A1 (en) Dynamically adjusting pipelined data paths for improved power management
Tabkhi et al. Application-guided power gating reducing register file static power
US20200192994A1 (en) Performance modeling and analysis of microprocessors using dependency graphs
JP2007299355A (ja) マイクロプロセッサ
JP6559257B2 (ja) プロセッサ合成装置、プロセッサ合成方法及びプロセッサ合成プログラム
US11550978B2 (en) Circuit design assistance system and computer readable medium
US10162917B1 (en) Method and system for implementing selective transformation for low power verification
JP2008065457A (ja) 半導体集積回路の設計方法及び設計システム
JP2008102619A (ja) 回路生成システム、回路生成方法及び回路生成プログラム
US10963613B1 (en) Partial reconfiguration of integrated circuits using shell representation of platform design with extended routing region
Oboril et al. MTTF-balanced pipeline design
JP5928272B2 (ja) 半導体集積回路及びコンパイラ
US9495490B2 (en) Active power dissipation detection based on erroneus clock gating equations
Kadomoto et al. An area-efficient out-of-order soft-core processor without register renaming
US20080229074A1 (en) Design Structure for Localized Control Caching Resulting in Power Efficient Control Logic
Subramanian et al. Conjoined pipeline: Enhancing hardware reliability and performance through organized pipeline redundancy
US10157164B2 (en) Hierarchical synthesis of computer machine instructions
Kaur et al. Pipelined MIPS with improved datapath
US11880231B2 (en) Accurate timestamp or derived counter value generation on a complex CPU
JP6413332B2 (ja) 回路設計方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190116

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190618

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190716

R150 Certificate of patent or registration of utility model

Ref document number: 6559257

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250