JP7031930B2 - プログラム生成部、情報処理装置、プログラム生成方法、及びプログラム - Google Patents
プログラム生成部、情報処理装置、プログラム生成方法、及びプログラム Download PDFInfo
- Publication number
- JP7031930B2 JP7031930B2 JP2018051582A JP2018051582A JP7031930B2 JP 7031930 B2 JP7031930 B2 JP 7031930B2 JP 2018051582 A JP2018051582 A JP 2018051582A JP 2018051582 A JP2018051582 A JP 2018051582A JP 7031930 B2 JP7031930 B2 JP 7031930B2
- Authority
- JP
- Japan
- Prior art keywords
- voltage
- program
- instruction
- core
- information
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/54—Link editing before load time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Power Sources (AREA)
- Devices For Executing Special Programs (AREA)
Description
本発明は、プログラム生成部、情報処理装置、プログラム生成方法、及びプログラムに関する。
情報処理装置では、消費電力を削除するように制御することが知られている。
例えば、特許文献1及び特許文献2では、消費電力を削減するように制御するために、動作電圧を変更することが開示されている。
例えば、特許文献1及び特許文献2では、消費電力を削減するように制御するために、動作電圧を変更することが開示されている。
ところで、特許文献1には、プログラム毎の電力制御情報を格納する電力コンテキストに基づき、動作電圧を変更することが開示されている。
特許文献1の情報処理装置は、電力コンテキストである電力制御情報の成功率あるいは失敗率に基づいて、プログラムを実行する際の動作電圧の変更を行っている。しかし、特許文献1では、電力コンテキストを生成するために、少なくとも一度プログラムを実行させて成功率あるいは失敗率を事前に確認する必要があり、ユーザープログラムに合わせた動作電圧の変更が負担となっている。
特許文献1の情報処理装置は、電力コンテキストである電力制御情報の成功率あるいは失敗率に基づいて、プログラムを実行する際の動作電圧の変更を行っている。しかし、特許文献1では、電力コンテキストを生成するために、少なくとも一度プログラムを実行させて成功率あるいは失敗率を事前に確認する必要があり、ユーザープログラムに合わせた動作電圧の変更が負担となっている。
また、特許文献2では、同じ最低動作電圧の命令が連続している命令群を検出した場合、プログラムを実行する際の動作電圧の変更を行っている。
しかし、特許文献2では、同じ最低動作電圧の命令が連続しない限り動作電圧が変更されないため、事前にプログラムに合った動作電圧を確認する必要があり、ユーザープログラムに合わせた動作電圧の変更が負担となっている。
しかし、特許文献2では、同じ最低動作電圧の命令が連続しない限り動作電圧が変更されないため、事前にプログラムに合った動作電圧を確認する必要があり、ユーザープログラムに合わせた動作電圧の変更が負担となっている。
この発明の目的は、上述した課題を鑑みて、ユーザープログラムに合わせた動作電圧の変更が負担となりにくいプログラム生成部、情報処理装置、プログラム生成方法、及びプログラムを提供することにある。
本発明に係る一態様のプログラム生成部は、LSIを電圧コンテキストに基づく動作電圧で実行させる電圧情報を生成するプログラム生成部であって、ソースプログラムのコンパイルを行い、命令列を含むオブジェクトを生成する第一コンパイラと、前記命令列の命令密度を分析し、前記電圧情報を生成する第二コンパイラと、前記オブジェクトと前記電圧情報とを結合して、ユーザープログラムを生成するリンカと、を備える。
本発明に係る一態様のプログラム生成方法は、LSIを電圧コンテキストに基づく動作電圧で実行させる電圧情報を生成するプログラム生成方法であって、ソースプログラムのコンパイルを行い、命令列を含むオブジェクトを生成するステップと、前記命令列の命令密度を分析し、前記電圧情報を生成するステップと、前記オブジェクトと前記電圧情報とを結合して、ユーザープログラムを生成するステップと、を含む。
本発明に係る一態様のプログラムは、コンピュータに、LSIを電圧コンテキストに基づく動作電圧で実行させる電圧情報を生成させるプログラムであって、ソースプログラムのコンパイルを行い、命令列を含むオブジェクトを生成するステップと、前記命令列の命令密度を分析し、前記電圧情報を生成するステップと、前記オブジェクトと前記電圧情報とを結合して、ユーザープログラムを生成するステップと、を実行させる。
本発明によれば、ユーザープログラムに合わせた動作電圧の変更が負担となりにくい。
以下、本発明に係る各種実施形態について、図面を用いて説明する。
<第一実施形態>
第一実施形態の情報処理装置について図1~図3を参照して説明する。
図1に示すように、情報処理装置1は、プログラム生成部10と、ホスト部20と、システムユニット30と、を備える。
第一実施形態の情報処理装置について図1~図3を参照して説明する。
図1に示すように、情報処理装置1は、プログラム生成部10と、ホスト部20と、システムユニット30と、を備える。
(構成)
プログラム生成部10は、第一コンパイラ101と、第二コンパイラ102と、リンカ103と、を備える。
ホスト部20は、OSデスパッチャ201と、電圧送信部202と、を備える。
システムユニット30は、電圧制御回路301と、メモリ307と、LSI309と、を備える。
システムユニット30は、第一コア電源303Aと、第二コア電源303Bと、第三コア電源303Cと、第四コア電源303Dと、メモリ制御電源303Eと、IO電源303Fと、をさらに備える。本実施形態において、これら各電源は、DC/DCコンバータであって、電圧制御回路301の制御によって、出力電圧が制御される。
プログラム生成部10は、第一コンパイラ101と、第二コンパイラ102と、リンカ103と、を備える。
ホスト部20は、OSデスパッチャ201と、電圧送信部202と、を備える。
システムユニット30は、電圧制御回路301と、メモリ307と、LSI309と、を備える。
システムユニット30は、第一コア電源303Aと、第二コア電源303Bと、第三コア電源303Cと、第四コア電源303Dと、メモリ制御電源303Eと、IO電源303Fと、をさらに備える。本実施形態において、これら各電源は、DC/DCコンバータであって、電圧制御回路301の制御によって、出力電圧が制御される。
LSI309は、第一コア309Aと、第二コア309Bと、第三コア309Cと、第四コア309Dと、ホストIF306と、メモリ制御部310と、を備える。
(プログラム生成部)
第一コンパイラ101は、ユーザーが作成したソースプログラムを受け付ける。
第一コンパイラ101は、受け付けたソースプログラムのコンパイルを行い、命令列を含むオブジェクトOJTを生成する。
第一コンパイラ101は、生成したオブジェクトOJTを第二コンパイラ102及びリンカ103のそれぞれに送る。
第一コンパイラ101は、ユーザーが作成したソースプログラムを受け付ける。
第一コンパイラ101は、受け付けたソースプログラムのコンパイルを行い、命令列を含むオブジェクトOJTを生成する。
第一コンパイラ101は、生成したオブジェクトOJTを第二コンパイラ102及びリンカ103のそれぞれに送る。
第二コンパイラ102は、第一コンパイラ101からオブジェクトOJTを受け付ける。
第二コンパイラ102は、受け付けたオブジェクトOJTの命令密度を分析して電圧情報VIFを生成する。
第二コンパイラ102は、生成した電圧情報VIFをリンカ103に送る。
第二コンパイラ102は、受け付けたオブジェクトOJTの命令密度を分析して電圧情報VIFを生成する。
第二コンパイラ102は、生成した電圧情報VIFをリンカ103に送る。
リンカ103は、第一コンパイラ101からオブジェクトOJTを受け付ける。また、リンカ103は、第二コンパイラ102から電圧情報VIFを受け付ける。
リンカ103は、オブジェクトOJTと電圧情報VIFとを結合して、ユーザープログラムPGM(プログラム)を順次生成する。
リンカ103は、生成したユーザープログラムPGMをホスト部20に順次送る。
リンカ103は、オブジェクトOJTと電圧情報VIFとを結合して、ユーザープログラムPGM(プログラム)を順次生成する。
リンカ103は、生成したユーザープログラムPGMをホスト部20に順次送る。
(ホスト部)
OSデスパッチャ201は、リンカ103が生成したユーザープログラムPGMを順次受け付ける。
OSデスパッチャ201は、順次受け付けた各ユーザープログラムPGMの割付けを行う。OSデスパッチャ201は、第一コア309Aと、第二コア309Bと、第三コア309Cと、第四コア309Dの各コアの空き具合を見て、各ユーザープログラムPGMをどのコアに割り付けるかを決定する。
OSデスパッチャ201は、電圧送信部202に各ユーザープログラムPGMの電圧情報VIFを順次送る。
OSデスパッチャ201は、リンカ103が生成したユーザープログラムPGMを順次受け付ける。
OSデスパッチャ201は、順次受け付けた各ユーザープログラムPGMの割付けを行う。OSデスパッチャ201は、第一コア309Aと、第二コア309Bと、第三コア309Cと、第四コア309Dの各コアの空き具合を見て、各ユーザープログラムPGMをどのコアに割り付けるかを決定する。
OSデスパッチャ201は、電圧送信部202に各ユーザープログラムPGMの電圧情報VIFを順次送る。
電圧送信部202は、OSデスパッチャ201から各ユーザープログラムPGMの電圧情報VIFを順次受け付ける。
電圧送信部202は、各ユーザープログラムPGMの電圧情報VIFに基づき設定電圧を生成し、電圧制御回路301に設定電圧を送る。
電圧送信部202は、各ユーザープログラムPGMの電圧情報VIFに基づき設定電圧を生成し、電圧制御回路301に設定電圧を送る。
(システムユニット)
システムユニット30は、各ユーザープログラムPGMを実行する前に、各コア及びホストIF306の動作電圧を電圧送信部202から送信された設定電圧に設定する。
以下、各ユーザープログラムPGMを実行する前とは、各コアでユーザープログラムPGMの実行を開始する前のコンテキストスイッチ(CSW)時間のことを言う。
システムユニット30は、各ユーザープログラムPGMを実行する前に、各コア及びホストIF306の動作電圧を電圧送信部202から送信された設定電圧に設定する。
以下、各ユーザープログラムPGMを実行する前とは、各コアでユーザープログラムPGMの実行を開始する前のコンテキストスイッチ(CSW)時間のことを言う。
電圧制御回路301は、電圧送信部202から設定電圧を受け付ける。電圧制御回路301は受け付けた設定電圧に基づき、第一コア電源303Aと、第二コア電源303B、第三コア電源303C、第四コア電源303D、IO電源303Fの各出力電圧をそれぞれ制御する。
第一コア電源303Aは、電圧制御回路301に制御に応じて、所定の直流電圧である第一コア動作電圧Vc1を出力し、第一コア309Aに電力を供給する。
第二コア電源303Bは、電圧制御回路301に制御に応じて、所定の直流電圧である第二コア動作電圧Vc2を出力し、第二コア309Bに電力を供給する。
第三コア電源303Cは、電圧制御回路301に制御に応じて、所定の直流電圧である第三コア動作電圧Vc3を出力し、第三コア309Cに電力を供給する。
第四コア電源303Dは、電圧制御回路301に制御に応じて、所定の直流電圧である第四コア動作電圧Vc4を出力し、第四コア309Dに電力を供給する。
メモリ制御電源303Eは、電圧制御回路301に制御に応じて、所定の直流電圧であるメモリ制御動作電圧Vcmを出力し、メモリ制御部310に電力を供給する。
IO電源303Fは、電圧制御回路301に制御に応じて、所定の直流電圧であるIO動作電圧Vciを出力し、ホストIF306に電力を供給する。
メモリ307は、各コアがいずれもアクセスしてデータの読み書きができる共通のメモリである。
第一コア電源303Aは、電圧制御回路301に制御に応じて、所定の直流電圧である第一コア動作電圧Vc1を出力し、第一コア309Aに電力を供給する。
第二コア電源303Bは、電圧制御回路301に制御に応じて、所定の直流電圧である第二コア動作電圧Vc2を出力し、第二コア309Bに電力を供給する。
第三コア電源303Cは、電圧制御回路301に制御に応じて、所定の直流電圧である第三コア動作電圧Vc3を出力し、第三コア309Cに電力を供給する。
第四コア電源303Dは、電圧制御回路301に制御に応じて、所定の直流電圧である第四コア動作電圧Vc4を出力し、第四コア309Dに電力を供給する。
メモリ制御電源303Eは、電圧制御回路301に制御に応じて、所定の直流電圧であるメモリ制御動作電圧Vcmを出力し、メモリ制御部310に電力を供給する。
IO電源303Fは、電圧制御回路301に制御に応じて、所定の直流電圧であるIO動作電圧Vciを出力し、ホストIF306に電力を供給する。
メモリ307は、各コアがいずれもアクセスしてデータの読み書きができる共通のメモリである。
(LSI)
第一コア309A、第二コア309Bと、第三コア309Cと、第四コア309Dはそれぞれ、OSデスパッチャ201から割り当てられたユーザープログラムPGMを処理する。
ホストIF306は、OSデスパッチャ201との間で通信を行い、ユーザープログラムPGMを各コアのうち、割り当てられたコアに供給する。
メモリ制御部310は、第一コア309Aと、第二コア309Bと、第三コア309Cと、第四コア309Dの各コアによるメモリ307へのアクセスを制御する。
第一コア309A、第二コア309Bと、第三コア309Cと、第四コア309Dはそれぞれ、OSデスパッチャ201から割り当てられたユーザープログラムPGMを処理する。
ホストIF306は、OSデスパッチャ201との間で通信を行い、ユーザープログラムPGMを各コアのうち、割り当てられたコアに供給する。
メモリ制御部310は、第一コア309Aと、第二コア309Bと、第三コア309Cと、第四コア309Dの各コアによるメモリ307へのアクセスを制御する。
(第一コンパイラ及び第二コンパイラ)
第一コンパイラ101及び第二コンパイラ102の機能について詳しく説明する。
第一コンパイラ101は、オブジェクトOJTとして、システムユニット30で処理できる命令列SQCを生成する。
本実施形態の場合、図2に示すように命令列SQCの命令A、命令B、命令C・・・命令XXは、それぞれ、固定小数点命令、論理演算命令、シフト演算命令、浮動小数点命令、LDST命令(ロードおよびストア命令)のいずれかに分類される。
第二コンパイラ102は、以下のように命令列の命令密度を分析し、以下のように電圧情報VIFを作成する。
第一コンパイラ101及び第二コンパイラ102の機能について詳しく説明する。
第一コンパイラ101は、オブジェクトOJTとして、システムユニット30で処理できる命令列SQCを生成する。
本実施形態の場合、図2に示すように命令列SQCの命令A、命令B、命令C・・・命令XXは、それぞれ、固定小数点命令、論理演算命令、シフト演算命令、浮動小数点命令、LDST命令(ロードおよびストア命令)のいずれかに分類される。
第二コンパイラ102は、以下のように命令列の命令密度を分析し、以下のように電圧情報VIFを作成する。
(命令密度分析)
第二コンパイラ102は、命令列SQCの命令A、命令B、命令C・・・命令XXの各命令を、それぞれ、固定小数点命令、論理演算命令、シフト演算命令、浮動小数点命令、LDST命令(ロードおよびストア命令)の命令種のうち、いずれかの命令種に分類する。
第二コンパイラ102は、命令密度分析の結果として、命令種のうち、命令列SQCに含まれる各命令が分類された比率の最も高い命令種を判断する。
第二コンパイラ102は、命令列SQCの命令A、命令B、命令C・・・命令XXの各命令を、それぞれ、固定小数点命令、論理演算命令、シフト演算命令、浮動小数点命令、LDST命令(ロードおよびストア命令)の命令種のうち、いずれかの命令種に分類する。
第二コンパイラ102は、命令密度分析の結果として、命令種のうち、命令列SQCに含まれる各命令が分類された比率の最も高い命令種を判断する。
(電圧情報生成)
電圧情報VIFは、LSIを電圧コンテキストに基づく動作電圧で実行させるための情報である。
第二コンパイラ102は、命令密度分析の結果に応じて、以下(ケース1)~(ケース5)のいずれかを実施して電圧情報VIFを生成し、生成した電圧情報VIFをリンカ103に送る。
(ケース1)LDST命令の比率が最も高い場合、電圧情報VIFとして、「IO動作電圧を上げる旨の設定情報」を生成する。
(ケース2)論理演算命令の比率が最も高い場合、電圧情報VIFとして、「コア動作電圧を下げる旨の設定情報」を生成する。
(ケース3)シフト演算命令の比率が最も高い場合、電圧情報VIFとして、「コア動作設定電圧を中間の電圧に設定する旨の設定情報」を生成する。
(ケース4)固定小数点命令の比率が最も高い場合、電圧情報VIFとして、「コア動作電圧を中間の電圧に設定する旨の設定情報」を生成する。
(ケース5)浮動小数点命令の比率が高い場合、電圧情報VIFとして、「コア動作電圧を最大にするように設定する旨の設定情報」を生成する。
電圧情報VIFは、LSIを電圧コンテキストに基づく動作電圧で実行させるための情報である。
第二コンパイラ102は、命令密度分析の結果に応じて、以下(ケース1)~(ケース5)のいずれかを実施して電圧情報VIFを生成し、生成した電圧情報VIFをリンカ103に送る。
(ケース1)LDST命令の比率が最も高い場合、電圧情報VIFとして、「IO動作電圧を上げる旨の設定情報」を生成する。
(ケース2)論理演算命令の比率が最も高い場合、電圧情報VIFとして、「コア動作電圧を下げる旨の設定情報」を生成する。
(ケース3)シフト演算命令の比率が最も高い場合、電圧情報VIFとして、「コア動作設定電圧を中間の電圧に設定する旨の設定情報」を生成する。
(ケース4)固定小数点命令の比率が最も高い場合、電圧情報VIFとして、「コア動作電圧を中間の電圧に設定する旨の設定情報」を生成する。
(ケース5)浮動小数点命令の比率が高い場合、電圧情報VIFとして、「コア動作電圧を最大にするように設定する旨の設定情報」を生成する。
(電圧送信部)
電圧送信部202の機能について詳しく説明する。
図3には、OSデスパッチャ201により、各コアに割り付けられた各ユーザープログラムPGMが実行される状況が示される。図3には、実行される各ユーザープログラムPGMが、それぞれJOB01,JOB02,JOB03,JOB11・・・と示されている。
電圧送信部202の機能について詳しく説明する。
図3には、OSデスパッチャ201により、各コアに割り付けられた各ユーザープログラムPGMが実行される状況が示される。図3には、実行される各ユーザープログラムPGMが、それぞれJOB01,JOB02,JOB03,JOB11・・・と示されている。
まず、タイミング0において、OSデスパッチャ201により、第一コア309AにJOB01、第二コア309BにJOB11、第三コア309CにJOB21、第四コア309DにJOB31が割り当てられる。
このとき、タイミング0において、電圧送信部202は、第一コア設定電圧Vs1として、電圧情報VIFに基づき第一コア309Aに適した電圧値を生成する。
なお、ケース1の場合、電圧送信部202は、所定の初期設定の電圧値をそのまま第一コア設定電圧Vs1として設定する。
ケース2の場合、電圧送信部202は、所定の初期設定の電圧値に対し、初期設定の電圧値を下げた電圧値を新たな第一コア設定電圧Vs1として設定する。
ケース3~5の場合、電圧送信部202は、電圧情報VIFに基づく電圧値を新たな第一コア設定電圧Vs1として設定する。
このとき、タイミング0において、電圧送信部202は、第一コア設定電圧Vs1として、電圧情報VIFに基づき第一コア309Aに適した電圧値を生成する。
なお、ケース1の場合、電圧送信部202は、所定の初期設定の電圧値をそのまま第一コア設定電圧Vs1として設定する。
ケース2の場合、電圧送信部202は、所定の初期設定の電圧値に対し、初期設定の電圧値を下げた電圧値を新たな第一コア設定電圧Vs1として設定する。
ケース3~5の場合、電圧送信部202は、電圧情報VIFに基づく電圧値を新たな第一コア設定電圧Vs1として設定する。
同様に、タイミング0において、電圧送信部202は、第二コア設定電圧Vs2として、電圧情報VIFに基づき第二コア309Bに適した電圧値、第三コア設定電圧Vs3として、電圧情報VIFに基づき第三コア309Cに適した電圧値、第四コア設定電圧Vs4として、電圧情報VIFに基づき第四コア309Dに適した電圧値を生成する。
本実施形態では、タイミング0において、電圧送信部202は、生成した第一コア設定電圧Vs1、第二コア設定電圧Vs2、第三コア設定電圧Vs3、第四コア設定電圧Vs4を、電圧制御回路301に送る。
本実施形態では、タイミング0において、電圧送信部202は、生成した第一コア設定電圧Vs1、第二コア設定電圧Vs2、第三コア設定電圧Vs3、第四コア設定電圧Vs4を、電圧制御回路301に送る。
電圧制御回路301は、電圧送信部202から各設定電圧を受け付けると、タイミング0において、各コアの動作電圧がそれぞれ設定電圧になるように制御する。
具体的には、電圧制御回路301は、第一コア309Aに供給される第一コア動作電圧Vc1が第一コア設定電圧Vs1となるように、第一コア電源303Aを制御する。
同様に、電圧制御回路301は、第二コア309Bに供給される第二コア動作電圧Vc2が第二コア設定電圧Vs2となるように、第二コア電源303Bを制御する。
同様に、電圧制御回路301は、第三コア309Cに供給される第三コア動作電圧Vc3が第三コア設定電圧Vs3となるように、第三コア電源303Cを制御する。
同様に、電圧制御回路301は、第四コア309Dに供給される第四コア動作電圧Vc4が第四コア設定電圧Vs4となるように、第四コア電源303Dを制御する。
具体的には、電圧制御回路301は、第一コア309Aに供給される第一コア動作電圧Vc1が第一コア設定電圧Vs1となるように、第一コア電源303Aを制御する。
同様に、電圧制御回路301は、第二コア309Bに供給される第二コア動作電圧Vc2が第二コア設定電圧Vs2となるように、第二コア電源303Bを制御する。
同様に、電圧制御回路301は、第三コア309Cに供給される第三コア動作電圧Vc3が第三コア設定電圧Vs3となるように、第三コア電源303Cを制御する。
同様に、電圧制御回路301は、第四コア309Dに供給される第四コア動作電圧Vc4が第四コア設定電圧Vs4となるように、第四コア電源303Dを制御する。
図3には示さないが、情報処理装置1は、ホストIF動作電圧Vciも同様に設定する。
すなわち、タイミング0において、電圧送信部202は、ホストIF設定電圧Vsiとして、電圧情報VIFに基づきホストIF306に適した電圧値を生成し、生成したホストIF設定電圧Vsiを、電圧制御回路301に送る。さらに、電圧制御回路301は、ホストIF306に供給されるホストIF動作電圧VciがホストIF設定電圧Vsiとなるように、IO電源303Fを制御する。
なお、ケース1の場合、電圧送信部202は、所定の初期設定の電圧値に対し、初期設定の電圧値を上げた電圧値を新たなホストIF設定電圧Vsiとして設定する。
また、本実施形態では、電圧制御回路301は、メモリ制御動作電圧Vcmを所定の初期設定の電圧値となるように制御する。
すなわち、タイミング0において、電圧送信部202は、ホストIF設定電圧Vsiとして、電圧情報VIFに基づきホストIF306に適した電圧値を生成し、生成したホストIF設定電圧Vsiを、電圧制御回路301に送る。さらに、電圧制御回路301は、ホストIF306に供給されるホストIF動作電圧VciがホストIF設定電圧Vsiとなるように、IO電源303Fを制御する。
なお、ケース1の場合、電圧送信部202は、所定の初期設定の電圧値に対し、初期設定の電圧値を上げた電圧値を新たなホストIF設定電圧Vsiとして設定する。
また、本実施形態では、電圧制御回路301は、メモリ制御動作電圧Vcmを所定の初期設定の電圧値となるように制御する。
続いて、タイミング1において、第一コア309AでJOB01、第二コア309BでJOB11、第三コア309CでJOB21、第四コア309DでJOB31の実行がそれぞれ開始される。
続いて、タイミング8においてJOB02の実行が第一コア309Aで開始される。このとき、JOB02の実行を開始するタイミングの1タイミング前において、電圧送信部202は、第一コア設定電圧Vs1として、電圧情報VIFに基づき第一コア309Aに適した電圧値を生成する。
本実施形態では、情報処理装置1は、JOB02の実行を開始するタイミングの1タイミング前において、第一コア309Aに供給する電圧を下げている。
例えば、JOB02の電圧情報VIFが「コア動作電圧を下げる旨の設定情報」であれば、電圧送信部202は、タイミング1において設定された第一コア設定電圧Vs1より電圧を低い電圧を新たな第一コア設定電圧Vs1として生成し、電圧制御回路301に送る。これにより、情報処理装置1は、JOB02の実行を開始するタイミングの1タイミング前において、第一コア309Aに供給する電圧を下げる。
本実施形態では、情報処理装置1は、JOB02の実行を開始するタイミングの1タイミング前において、第一コア309Aに供給する電圧を下げている。
例えば、JOB02の電圧情報VIFが「コア動作電圧を下げる旨の設定情報」であれば、電圧送信部202は、タイミング1において設定された第一コア設定電圧Vs1より電圧を低い電圧を新たな第一コア設定電圧Vs1として生成し、電圧制御回路301に送る。これにより、情報処理装置1は、JOB02の実行を開始するタイミングの1タイミング前において、第一コア309Aに供給する電圧を下げる。
同様に、タイミング15においてJOB03の実行が第一コア309Aで開始される。このとき、JOB3の実行を開始するタイミングの1タイミング前において、電圧送信部202は、新たな第一コア設定電圧Vs1として、電圧情報VIFに基づき第一コア309Aに適した電圧値を生成する。
本実施形態では、情報処理装置1は、JOB03の実行を開始するタイミングの1タイミング前において、第一コア309Aに供給する電圧を上げている。
本実施形態では、情報処理装置1は、JOB03の実行を開始するタイミングの1タイミング前において、第一コア309Aに供給する電圧を上げている。
同様に、タイミング10においてJOB12、タイミング18においてJOB13の実行が第二コア309Bでそれぞれ開始される。このとき、各JOBの実行を開始するタイミングの1タイミング前において、電圧送信部202は、新たな第二コア設定電圧Vs2として、電圧情報VIFに基づき第二コア309Bに適した電圧値をそれぞれ生成する。
同様に、タイミング7においてJOB22、タイミング13においてJOB23の実行が第三コア309Cでそれぞれ開始される。このとき、各JOBの実行を開始するタイミングの1タイミング前において、電圧送信部202は、新たな第三コア設定電圧Vs3として、電圧情報VIFに基づき第三コア309Cに適した電圧値をそれぞれ生成する。
ただし、本実施形態の場合、JOB22とJOB23とは、適した電圧値が同じなので、JOB22に対して生成される第三コア設定電圧Vs3と、JOB23に対して生成される第三コア設定電圧Vs3とは、同じ電圧である。
ただし、本実施形態の場合、JOB22とJOB23とは、適した電圧値が同じなので、JOB22に対して生成される第三コア設定電圧Vs3と、JOB23に対して生成される第三コア設定電圧Vs3とは、同じ電圧である。
同様に、タイミング7でJOB32、タイミング12でJOB33、タイミング17でJOB34の実行が第四コア309Dでそれぞれ開始される。このとき、各JOBの実行を開始するタイミングの1タイミング前において、電圧送信部202は、第四コア設定電圧Vs4として、電圧情報VIFに基づき第四コア309Dに適した電圧値をそれぞれ生成する。
ただし、本実施形態の場合、JOB33とJOB34とは適した電圧値が同じなので、JOB33に対して生成される第四コア設定電圧Vs4と、JOB34に対して生成される第四コア設定電圧Vs4とは、同じ電圧である。
ただし、本実施形態の場合、JOB33とJOB34とは適した電圧値が同じなので、JOB33に対して生成される第四コア設定電圧Vs4と、JOB34に対して生成される第四コア設定電圧Vs4とは、同じ電圧である。
(作用及び効果)
本実施形態の情報処理装置1は、第二コンパイラ102が、命令列の命令密度を分析している。このため、事前に各ユーザープログラムPGMに合った動作電圧を確認することなく、各ユーザープログラムPGMに適した電圧を各コア及びホストIFに供給することができるので、無駄な消費電力を削除する事が可能となる。
したがって、情報処理装置1は、各ユーザープログラムPGMに合わせた動作電圧の変更が負担となりにくい。
また、本実施形態では、各ユーザープログラムPGMに必要な電圧値が供給されるので、情報処理装置1は、無駄な電力を抑制でき、低消費電力を実現できる。
さらに、本実施形態では、各コアの電源が分離されており、各コア及びホストIF別に動作電圧を制御することができる。このため、情報処理装置1は、割り付けられたユーザープログラムPGMに適した電圧をコア別及びホストIFに動作電圧を設定し、コア別及びホストIFに電力を供給することができる。
したがって、情報処理装置1は、より無駄がなく最適な電力を供給することができる。
本実施形態の情報処理装置1は、第二コンパイラ102が、命令列の命令密度を分析している。このため、事前に各ユーザープログラムPGMに合った動作電圧を確認することなく、各ユーザープログラムPGMに適した電圧を各コア及びホストIFに供給することができるので、無駄な消費電力を削除する事が可能となる。
したがって、情報処理装置1は、各ユーザープログラムPGMに合わせた動作電圧の変更が負担となりにくい。
また、本実施形態では、各ユーザープログラムPGMに必要な電圧値が供給されるので、情報処理装置1は、無駄な電力を抑制でき、低消費電力を実現できる。
さらに、本実施形態では、各コアの電源が分離されており、各コア及びホストIF別に動作電圧を制御することができる。このため、情報処理装置1は、割り付けられたユーザープログラムPGMに適した電圧をコア別及びホストIFに動作電圧を設定し、コア別及びホストIFに電力を供給することができる。
したがって、情報処理装置1は、より無駄がなく最適な電力を供給することができる。
動作電圧を変更しない情報処理装置は、最大電流が流れるプログラムでも動作する電圧値が設定されているので、プログラムによっては過剰な電力を供給している場合がある。
特許文献1の情報処理装置では、このような過剰な電力を削減するため、プログラム毎の電力制御情報を使用しているが、プログラムを一度走行させて成功するかの確認を実施してから電圧制御を実施している。このため、特許文献1のような情報処理装置は、プログラムの1回目の実行から、プログラムを実行するのに適した動作電圧をコアに供給することができない。さらに、プログラムが更新されると適した動作電圧をコアに供給することができない。
これに対し、本実施形態の情報処理装置1は、上述のとおり、命令列の命令密度を分析しているため、事前に各ユーザープログラムPGMに合った動作電圧を確認する必要がない。
したがって、ユーザープログラムPGMの1回目の実行から、ユーザープログラムPGMを実行するのに適した動作電圧をコアに供給することができる。さらに、ユーザープログラムPGMが更新されても、適した動作電圧をコアに供給することができる。
特許文献1の情報処理装置では、このような過剰な電力を削減するため、プログラム毎の電力制御情報を使用しているが、プログラムを一度走行させて成功するかの確認を実施してから電圧制御を実施している。このため、特許文献1のような情報処理装置は、プログラムの1回目の実行から、プログラムを実行するのに適した動作電圧をコアに供給することができない。さらに、プログラムが更新されると適した動作電圧をコアに供給することができない。
これに対し、本実施形態の情報処理装置1は、上述のとおり、命令列の命令密度を分析しているため、事前に各ユーザープログラムPGMに合った動作電圧を確認する必要がない。
したがって、ユーザープログラムPGMの1回目の実行から、ユーザープログラムPGMを実行するのに適した動作電圧をコアに供給することができる。さらに、ユーザープログラムPGMが更新されても、適した動作電圧をコアに供給することができる。
加えて、特許文献2の情報処理装置でも、過剰な電力を削減するため、命令列に合わせて動作電圧を変更しているが、命令列のうち、連続する命令の先頭に動作電圧制御命令を追加し、動作電圧の変更指示を出している。通常、電圧制御が行われる場合、動作電圧の変更指示が出されてから動作電圧が実際に変更されるまで、タイムラグが発生する。このため、特許文献2の情報処理装置では、動作電圧の変更指示が出してから、実際にコアの動作電圧が変更されるまでにタイムラグが発生する。
これに対し、本実施形態の情報処理装置1は、各ユーザープログラムPGM実行前のCSW時間に、各コアに供給する電圧を変更している。
したがって、本実施形態の情報処理装置1は、特許文献2のような電圧変更のタイムラグの発生を抑制することができる。
これに対し、本実施形態の情報処理装置1は、各ユーザープログラムPGM実行前のCSW時間に、各コアに供給する電圧を変更している。
したがって、本実施形態の情報処理装置1は、特許文献2のような電圧変更のタイムラグの発生を抑制することができる。
<第二実施形態>
第二実施形態の情報処理装置について図4及び図5を参照して説明する。
本実施形態に係る情報処理装置1’は、各コアで電源を共有している点が異なる。以下説明する点を除いて情報処理装置1’の構成は、第一実施形態に係る情報処理装置1と同様である。
第二実施形態の情報処理装置について図4及び図5を参照して説明する。
本実施形態に係る情報処理装置1’は、各コアで電源を共有している点が異なる。以下説明する点を除いて情報処理装置1’の構成は、第一実施形態に係る情報処理装置1と同様である。
(構成)
図4に示すように、情報処理装置1’は、プログラム生成部10と、ホスト部20’と、システムユニット30’と、を備える。
ホスト部20’は、OSデスパッチャ201と、電圧送信部202’と、を備える。
システムユニット30’は、電圧制御回路301’と、メモリ307と、LSI309’と、を備える。
システムユニット30’は、内部電源303A’と、IO電源303Fと、をさらに備える。本実施形態において、これら各電源は、DC/DCコンバータであって、電圧制御回路301’の制御によって、出力電圧が制御される。
図4に示すように、情報処理装置1’は、プログラム生成部10と、ホスト部20’と、システムユニット30’と、を備える。
ホスト部20’は、OSデスパッチャ201と、電圧送信部202’と、を備える。
システムユニット30’は、電圧制御回路301’と、メモリ307と、LSI309’と、を備える。
システムユニット30’は、内部電源303A’と、IO電源303Fと、をさらに備える。本実施形態において、これら各電源は、DC/DCコンバータであって、電圧制御回路301’の制御によって、出力電圧が制御される。
電圧送信部202’は、OSデスパッチャ201から各ユーザープログラムPGMの電圧情報VIFを順次受け付ける。
電圧送信部202’は、各ユーザープログラムPGMの電圧情報VIFに基づき設定電圧を生成し、電圧制御回路301’に設定電圧を送る。
電圧送信部202’は、各ユーザープログラムPGMの電圧情報VIFに基づき設定電圧を生成し、電圧制御回路301’に設定電圧を送る。
(システムユニット)
システムユニット30’は、各ユーザープログラムPGMを実行する前に、各コアの動作電圧を電圧送信部202’から送信された設定電圧に設定する。
システムユニット30’は、各ユーザープログラムPGMを実行する前に、各コアの動作電圧を電圧送信部202’から送信された設定電圧に設定する。
電圧制御回路301’は、電圧送信部202’から設定電圧を受け付ける。電圧制御回路301’は受け付けた設定電圧に基づき、内部電源303A’、IO電源303Fの各出力電圧をそれぞれ制御する。
内部電源303A’は、第一コア309A、第二コア309B、第三コア309C、第四コア309D、及びメモリ制御部310の共通の電源である。
内部電源303A’は、電圧制御回路301’に制御に応じて、所定の直流電圧である共通動作電圧Vccを出力し、第一コア309A、第二コア309B、第三コア309C、第四コア309D、及びメモリ制御部310に電力を供給する。
内部電源303A’は、第一コア309A、第二コア309B、第三コア309C、第四コア309D、及びメモリ制御部310の共通の電源である。
内部電源303A’は、電圧制御回路301’に制御に応じて、所定の直流電圧である共通動作電圧Vccを出力し、第一コア309A、第二コア309B、第三コア309C、第四コア309D、及びメモリ制御部310に電力を供給する。
(電圧送信部)
電圧送信部202’の機能について詳しく説明する。
図5に示すように、まず、タイミング0において、第一コア設定電圧Vs1、第二コア設定電圧Vs2、第三コア設定電圧Vs3、第四コア設定電圧Vs4を生成する。
続いて、タイミング0において、生成した第一コア設定電圧Vs1、第二コア設定電圧Vs2、第三コア設定電圧Vs3、及び第四コア設定電圧Vs4を合算して、共通設定電圧Vscを算出する。
電圧送信部202’の機能について詳しく説明する。
図5に示すように、まず、タイミング0において、第一コア設定電圧Vs1、第二コア設定電圧Vs2、第三コア設定電圧Vs3、第四コア設定電圧Vs4を生成する。
続いて、タイミング0において、生成した第一コア設定電圧Vs1、第二コア設定電圧Vs2、第三コア設定電圧Vs3、及び第四コア設定電圧Vs4を合算して、共通設定電圧Vscを算出する。
続いて、タイミング0において、電圧送信部202’は、生成した共通設定電圧Vscを、電圧制御回路301’に送る。
電圧制御回路301’は、電圧送信部202’から共通設定電圧Vscを受け付けると、タイミング0において、共通動作電圧Vccが共通設定電圧Vscになるように、内部電源303A’を制御する。
電圧制御回路301’は、電圧送信部202’から共通設定電圧Vscを受け付けると、タイミング0において、共通動作電圧Vccが共通設定電圧Vscになるように、内部電源303A’を制御する。
図5には示さないが、情報処理装置1’は、ホストIF動作電圧Vciも同様に、共通動作電圧Vccとは別に設定する。
すなわち、タイミング0において、電圧送信部202’は、ホストIF設定電圧Vsiとして、電圧情報VIFに基づきホストIF306に適した電圧値を生成し、生成したホストIF設定電圧Vsiを、電圧制御回路301’に送る。さらに、電圧制御回路301’は、ホストIF306に供給されるホストIF動作電圧VciがホストIF設定電圧Vsiとなるように、IO電源303Fを制御する。
すなわち、タイミング0において、電圧送信部202’は、ホストIF設定電圧Vsiとして、電圧情報VIFに基づきホストIF306に適した電圧値を生成し、生成したホストIF設定電圧Vsiを、電圧制御回路301’に送る。さらに、電圧制御回路301’は、ホストIF306に供給されるホストIF動作電圧VciがホストIF設定電圧Vsiとなるように、IO電源303Fを制御する。
(共通設定電圧算出)
本実施形態では、電圧送信部202’は、各ユーザープログラムPGMを実行する前(ユーザープログラムPGM実行前のCSW時間)に、共通設定電圧Vscを算出する。電圧送信部202’は、各タイミングの第一コア設定電圧Vs1、第二コア設定電圧Vs2、第三コア設定電圧Vs3、第四コア設定電圧Vs4の4コア分の各設定電圧を合算して、共通設定電圧Vscを算出する。
本実施形態では、電圧送信部202’は、各ユーザープログラムPGMを実行する前(ユーザープログラムPGM実行前のCSW時間)に、共通設定電圧Vscを算出する。電圧送信部202’は、各タイミングの第一コア設定電圧Vs1、第二コア設定電圧Vs2、第三コア設定電圧Vs3、第四コア設定電圧Vs4の4コア分の各設定電圧を合算して、共通設定電圧Vscを算出する。
ここで各設定電圧の合算の例を説明する。
まず、電圧送信部202’は、4コア分の各設定電圧について、図5に示すように、設定電圧を低下する指示の個数(電圧値低下指示個数)を数える。電圧送信部202’は、電圧値低下指示個数が3個以上(電圧値低下指示個数≧3)になったら、設定された共通設定電圧Vscより低い電圧を新たな共通設定電圧Vscとして生成し、新たな共通設定電圧Vscを、電圧制御回路301’に送る。
電圧制御回路301’は、電圧送信部202’から新たな共通設定電圧Vscを受け付けると、共通動作電圧Vccが新たな共通設定電圧Vscになるように、各ユーザープログラムを実行する前(ユーザープログラムPGM実行前のCSW時間)に、内部電源303A’を制御する。
情報処理装置1’において、元の共通動作電圧Vccは、最大電流が流れるユーザープログラムPGMでも動作するように設定されている。このため、「4コア分の電圧値低下指示個数≧3」の判断基準で共通動作電圧Vccを低下させれば、ユーザープログラムPGMの動作を妨げることなく、ユーザープログラムPGMを実行することができる。
まず、電圧送信部202’は、4コア分の各設定電圧について、図5に示すように、設定電圧を低下する指示の個数(電圧値低下指示個数)を数える。電圧送信部202’は、電圧値低下指示個数が3個以上(電圧値低下指示個数≧3)になったら、設定された共通設定電圧Vscより低い電圧を新たな共通設定電圧Vscとして生成し、新たな共通設定電圧Vscを、電圧制御回路301’に送る。
電圧制御回路301’は、電圧送信部202’から新たな共通設定電圧Vscを受け付けると、共通動作電圧Vccが新たな共通設定電圧Vscになるように、各ユーザープログラムを実行する前(ユーザープログラムPGM実行前のCSW時間)に、内部電源303A’を制御する。
情報処理装置1’において、元の共通動作電圧Vccは、最大電流が流れるユーザープログラムPGMでも動作するように設定されている。このため、「4コア分の電圧値低下指示個数≧3」の判断基準で共通動作電圧Vccを低下させれば、ユーザープログラムPGMの動作を妨げることなく、ユーザープログラムPGMを実行することができる。
逆に、電圧値低下指示個数が再び3個未満(電圧値低下指示個数<3)になったら、図5のタイミング15に示すように、情報処理装置1’は、共通動作電圧Vccを高くする。
(作用及び効果)
本実施形態の情報処理装置1’は、情報処理装置1と同様、第二コンパイラ102が、命令列の命令密度を分析している。このため、事前に各ユーザープログラムPGMに合った動作電圧を確認することなく、各ユーザープログラムPGMに適した電圧を各コア及びホストIFに供給することができるので、無駄な消費電力を削除する事が可能となる。
したがって、情報処理装置1’は、各ユーザープログラムPGMに合わせた動作電圧の変更が負担となりにくい。
また、本実施形態の情報処理装置1’は、情報処理装置1と同様、各ユーザープログラムPGM実行前のCSW時間に、共通動作電圧を変更している。
本実施形態の情報処理装置1’は、情報処理装置1と同様、第二コンパイラ102が、命令列の命令密度を分析している。このため、事前に各ユーザープログラムPGMに合った動作電圧を確認することなく、各ユーザープログラムPGMに適した電圧を各コア及びホストIFに供給することができるので、無駄な消費電力を削除する事が可能となる。
したがって、情報処理装置1’は、各ユーザープログラムPGMに合わせた動作電圧の変更が負担となりにくい。
また、本実施形態の情報処理装置1’は、情報処理装置1と同様、各ユーザープログラムPGM実行前のCSW時間に、共通動作電圧を変更している。
<プログラム生成方法>
上述の各実施形態におけるプログラム生成方法を、図6を参照して説明する。
本プログラム生成方法では、電圧情報VIFに基づく動作電圧でLSIを実行させるユーザープログラムPGMを生成する。
最初に、ユーザーが作成したソースプログラムのコンパイルを行い、命令列を含むオブジェクトを生成する(ST10:オブジェクトを生成するステップ)。
ST10におけるオブジェクトの生成に続いて、命令列の命令密度を分析し、電圧情報VIFを生成する(ST20:電圧情報を生成するステップ)。
ST20における電圧情報の生成に続いて、オブジェクトOJTと電圧情報VIFとを結合して、ユーザープログラムPGMを生成する(ST30:プログラムを生成するステップ)。
ST30における電圧情報の生成が終わると、処理を終了して、次のソースプログラムが提供されると再び処理を開始する。
上述の各実施形態におけるプログラム生成方法を、図6を参照して説明する。
本プログラム生成方法では、電圧情報VIFに基づく動作電圧でLSIを実行させるユーザープログラムPGMを生成する。
最初に、ユーザーが作成したソースプログラムのコンパイルを行い、命令列を含むオブジェクトを生成する(ST10:オブジェクトを生成するステップ)。
ST10におけるオブジェクトの生成に続いて、命令列の命令密度を分析し、電圧情報VIFを生成する(ST20:電圧情報を生成するステップ)。
ST20における電圧情報の生成に続いて、オブジェクトOJTと電圧情報VIFとを結合して、ユーザープログラムPGMを生成する(ST30:プログラムを生成するステップ)。
ST30における電圧情報の生成が終わると、処理を終了して、次のソースプログラムが提供されると再び処理を開始する。
<ハードウェア構成>
図7には、上述の各実施形態において、プログラム生成部10を実現するためのハードウェア構成の一例が示されている。この図が示すようにプログラム生成部10は、CPU(Central Processing Unit)105、メモリ106、記憶/再生装置107、HDD(Hard Disk Drive)108、IO I/F(Input Output Interface)109等の各ハードウェアを備えたコンピュータである。
図7には、上述の各実施形態において、プログラム生成部10を実現するためのハードウェア構成の一例が示されている。この図が示すようにプログラム生成部10は、CPU(Central Processing Unit)105、メモリ106、記憶/再生装置107、HDD(Hard Disk Drive)108、IO I/F(Input Output Interface)109等の各ハードウェアを備えたコンピュータである。
メモリ106は、RAM(Random Access Memory)やROM(Read Only Memory)等の記憶媒体である。
記憶/再生装置107は、CD-ROM、DVD、フラッシュメモリ等の外部メディアへプログラム、データ等を記憶したり、外部メディアのプログラム、データ等を再生したりするための装置である。
IO I/F109は、ソースプログラムの入力、ホスト部20(20’)との間で情報等の入出力等を行うためのインターフェースである。
記憶/再生装置107は、CD-ROM、DVD、フラッシュメモリ等の外部メディアへプログラム、データ等を記憶したり、外部メディアのプログラム、データ等を再生したりするための装置である。
IO I/F109は、ソースプログラムの入力、ホスト部20(20’)との間で情報等の入出力等を行うためのインターフェースである。
<コンピュータプログラム>
上述の各実施形態において、プログラム生成部の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記憶媒体に記憶して、この記憶媒体に記憶されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記憶媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記憶媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記憶されているプログラムとの組み合わせで実現できるものであってもよい。
上述の各実施形態において、プログラム生成部の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記憶媒体に記憶して、この記憶媒体に記憶されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記憶媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記憶媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記憶されているプログラムとの組み合わせで実現できるものであってもよい。
<各実施形態の最小構成>
図8には、上述の各実施形態のプログラム生成部10の最小構成が示されている。
プログラム生成部10は、LSIを電圧コンテキストに基づく動作電圧で実行させる電圧情報を生成する。
プログラム生成部10は、第一コンパイラ101と、第二コンパイラ102と、リンカ103と、を備える。
第一コンパイラ101は、ソースプログラムのコンパイルを行い、命令列を含むオブジェクトを生成する。第二コンパイラ102は、命令列の命令密度を分析し、電圧情報を生成する。リンカ103は、オブジェクトと電圧情報とを結合して、ユーザープログラムを生成する。
図8には、上述の各実施形態のプログラム生成部10の最小構成が示されている。
プログラム生成部10は、LSIを電圧コンテキストに基づく動作電圧で実行させる電圧情報を生成する。
プログラム生成部10は、第一コンパイラ101と、第二コンパイラ102と、リンカ103と、を備える。
第一コンパイラ101は、ソースプログラムのコンパイルを行い、命令列を含むオブジェクトを生成する。第二コンパイラ102は、命令列の命令密度を分析し、電圧情報を生成する。リンカ103は、オブジェクトと電圧情報とを結合して、ユーザープログラムを生成する。
<変形例>
上述の各実施形態において、LSIは、4個のコアで構成されているが、何個のコアで構成されていてもよい。変形例として、5個以上のコアで構成されていてもよい。他の変形例として、3個以下のコアで構成されていてもよい。
上述の各実施形態において、LSIは、4個のコアで構成されているが、何個のコアで構成されていてもよい。変形例として、5個以上のコアで構成されていてもよい。他の変形例として、3個以下のコアで構成されていてもよい。
上述の各実施形態では、第二コンパイラ102が、命令列に含まれる各命令を、LDST命令、論理演算命令、シフト演算命令、固定小数点命令、及び浮動小数点命令の命令種に分類している。変形例として、第二コンパイラ102が、命令列に含まれる各命令を、LDST命令、論理演算命令、シフト演算命令、固定小数点命令、浮動小数点命令のうち、少なくとも2以上の命令種に分類するものであってもよい。
上述の第一実施形態において、情報処理装置は、メモリ制御動作電圧Vcmを、所定の初期設定の電圧値となるように制御している。変形例として、情報処理装置は、電圧情報VIFに基づき、メモリ制御部に適したメモリ制御設定電圧を生成し、メモリ制御設定電圧となるように、メモリ制御動作電圧Vcmを制御してもよい。
上述の第二実施形態では、4コア分の各設定電圧を合算して、共通設定電圧Vscを算出している。変形例として、4コア分の各設定電圧に加えて、ホストIF設定電圧Vsiも合算してもよい。
以上、本発明の実施形態を説明したが、この実施形態は、例として示したものであり、発明の範囲を限定することは意図していない。この実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことができる。この実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものとする。
1 情報処理装置
1’ 情報処理装置
10 プログラム生成部
20 ホスト部
20’ ホスト部
30 システムユニット
30’ システムユニット
101 第一コンパイラ
102 第二コンパイラ
103 リンカ
106 メモリ
107 記憶/再生装置
108 HDD
109 IO I/F
201 OSデスパッチャ
202 電圧送信部
202’ 電圧送信部
301 電圧制御回路
301’ 電圧制御回路
303A 第一コア電源
303A’ 内部電源
303B 第二コア電源
303C 第三コア電源
303D 第四コア電源
303E メモリ制御電源
303F IO電源
306 ホストIF
307 メモリ
309 LSI
309’ LSI
309A 第一コア
309B 第二コア
309C 第三コア
309D 第四コア
310 メモリ制御部
SQC 命令列
Vc1 第一コア動作電圧
Vc2 第二コア動作電圧
Vc3 第三コア動作電圧
Vc4 第四コア動作電圧
Vcc 共通動作電圧
Vci ホストIF動作電圧
Vcm メモリ制御動作電圧
Vs1 第一コア設定電圧
Vs2 第二コア設定電圧
Vs3 第三コア設定電圧
Vs4 第四コア設定電圧
Vsc 共通設定電圧
Vsi ホストIF設定電圧
1’ 情報処理装置
10 プログラム生成部
20 ホスト部
20’ ホスト部
30 システムユニット
30’ システムユニット
101 第一コンパイラ
102 第二コンパイラ
103 リンカ
106 メモリ
107 記憶/再生装置
108 HDD
109 IO I/F
201 OSデスパッチャ
202 電圧送信部
202’ 電圧送信部
301 電圧制御回路
301’ 電圧制御回路
303A 第一コア電源
303A’ 内部電源
303B 第二コア電源
303C 第三コア電源
303D 第四コア電源
303E メモリ制御電源
303F IO電源
306 ホストIF
307 メモリ
309 LSI
309’ LSI
309A 第一コア
309B 第二コア
309C 第三コア
309D 第四コア
310 メモリ制御部
SQC 命令列
Vc1 第一コア動作電圧
Vc2 第二コア動作電圧
Vc3 第三コア動作電圧
Vc4 第四コア動作電圧
Vcc 共通動作電圧
Vci ホストIF動作電圧
Vcm メモリ制御動作電圧
Vs1 第一コア設定電圧
Vs2 第二コア設定電圧
Vs3 第三コア設定電圧
Vs4 第四コア設定電圧
Vsc 共通設定電圧
Vsi ホストIF設定電圧
Claims (7)
- LSIを電圧コンテキストに基づく動作電圧で実行させる電圧情報を生成するプログラム生成部であって、
ソースプログラムのコンパイルを行い、命令列を含むオブジェクトを生成する第一コンパイラと、
前記命令列の命令密度を分析し、前記電圧情報を生成する第二コンパイラと、
前記オブジェクトと前記電圧情報とを結合して、ユーザープログラムを生成するリンカと、
を備えるプログラム生成部。 - 前記第二コンパイラが、前記命令列に含まれる各命令を、複数の命令種に分類し、最も分類された比率の高い命令種を判断する請求項1に記載のプログラム生成部。
- 前記第二コンパイラが、LDST命令、論理演算命令、シフト演算命令、固定小数点命令、浮動小数点命令のうち、少なくとも2以上の命令種に分類する請求項2に記載のプログラム生成部。
- 請求項1から請求項3のいずれか一項に記載されるプログラム生成部と、
前記電圧情報に基づき電圧値を生成する電圧送信部を有するホスト部と、
前記ユーザープログラムを処理するコアを有し、前記ユーザープログラムを実行する前に、前記コアの動作電圧を前記電圧値に設定するシステムユニットと、
を備える情報処理装置。 - 前記電圧送信部が、前記電圧値を複数生成し、生成した前記電圧値を合算する請求項4に記載の情報処理装置。
- LSIを電圧コンテキストに基づく動作電圧で実行させる電圧情報を生成するプログラム生成方法であって、
ソースプログラムのコンパイルを行い、命令列を含むオブジェクトを生成するステップと、
前記命令列の命令密度を分析し、前記電圧情報を生成するステップと、
前記オブジェクトと前記電圧情報とを結合して、ユーザープログラムを生成するステップと、
を含むプログラム生成方法。 - コンピュータに、LSIを電圧コンテキストに基づく動作電圧で実行させる電圧情報を生成させるプログラムであって、
ソースプログラムのコンパイルを行い、命令列を含むオブジェクトを生成するステップと、
前記命令列の命令密度を分析し、前記電圧情報を生成するステップと、
前記オブジェクトと前記電圧情報とを結合して、ユーザープログラムを生成するステップと、
を実行させるプログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018051582A JP7031930B2 (ja) | 2018-03-19 | 2018-03-19 | プログラム生成部、情報処理装置、プログラム生成方法、及びプログラム |
EP19771160.9A EP3770753B1 (en) | 2018-03-19 | 2019-03-19 | Program generation unit, information processing device, program generation method, and program |
PCT/JP2019/011345 WO2019181904A1 (ja) | 2018-03-19 | 2019-03-19 | プログラム生成部、情報処理装置、プログラム生成方法、及びプログラム |
US16/981,014 US11656858B2 (en) | 2018-03-19 | 2019-03-19 | Program generation unit, information processing device, program generation method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018051582A JP7031930B2 (ja) | 2018-03-19 | 2018-03-19 | プログラム生成部、情報処理装置、プログラム生成方法、及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019164527A JP2019164527A (ja) | 2019-09-26 |
JP7031930B2 true JP7031930B2 (ja) | 2022-03-08 |
Family
ID=67986255
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018051582A Active JP7031930B2 (ja) | 2018-03-19 | 2018-03-19 | プログラム生成部、情報処理装置、プログラム生成方法、及びプログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US11656858B2 (ja) |
EP (1) | EP3770753B1 (ja) |
JP (1) | JP7031930B2 (ja) |
WO (1) | WO2019181904A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111338606A (zh) * | 2020-02-20 | 2020-06-26 | 北京邮电大学 | 一种实验系统的开发框架 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170351318A1 (en) | 2016-06-02 | 2017-12-07 | Northwestern University | System and method for associative power and clock management with instruction governed operation for power efficient computing |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4393377A (en) * | 1980-08-12 | 1983-07-12 | Pitney Bowes Inc. | Circuit for controlling information on a display |
US4570217A (en) * | 1982-03-29 | 1986-02-11 | Allen Bruce S | Man machine interface |
KR100236876B1 (ko) * | 1990-03-28 | 2000-01-15 | 가나이 쓰도무 | 신호의 스윙을 저감하는 cmos 회로 |
US6879341B1 (en) * | 1997-07-15 | 2005-04-12 | Silverbrook Research Pty Ltd | Digital camera system containing a VLIW vector processor |
JP2003202942A (ja) | 2001-11-05 | 2003-07-18 | Matsushita Electric Ind Co Ltd | 消費電力の最適化方法 |
JP4044756B2 (ja) * | 2001-12-11 | 2008-02-06 | 松下電器産業株式会社 | プログラム変換装置、プログラム変換方法、及び当該プログラム変換装置を実現するプログラム |
AU2003206526A1 (en) * | 2002-02-28 | 2003-09-09 | Zetacon Corporation | Predictive control system and method |
JP4082706B2 (ja) * | 2005-04-12 | 2008-04-30 | 学校法人早稲田大学 | マルチプロセッサシステム及びマルチグレイン並列化コンパイラ |
CN100527089C (zh) | 2005-04-27 | 2009-08-12 | 松下电器产业株式会社 | 信息处理装置中的功率控制装置 |
US8191052B2 (en) * | 2006-12-01 | 2012-05-29 | Murex S.A.S. | Producer graph oriented programming and execution |
US9378181B2 (en) * | 2012-11-09 | 2016-06-28 | Intel Corporation | Scalable computing array |
US10180828B2 (en) * | 2014-04-29 | 2019-01-15 | Significs And Elements, Llc | Systems and methods for power optimization of processors |
US20160216969A1 (en) * | 2015-01-28 | 2016-07-28 | Qualcomm Incorporated | System and method for adaptively managing registers in an instruction processor |
US10460057B2 (en) * | 2015-11-10 | 2019-10-29 | Wei Li | Apparatus and method for modelling a modular multilevel converter in an electronic simulator |
JP6587996B2 (ja) | 2016-09-28 | 2019-10-09 | 水ing株式会社 | スクリュープレス、およびスクリュープレスの運転方法 |
US10621116B2 (en) * | 2017-06-08 | 2020-04-14 | Western Digital Technologies, Inc. | Non-volatile storage device with adaptive data bus inversion |
-
2018
- 2018-03-19 JP JP2018051582A patent/JP7031930B2/ja active Active
-
2019
- 2019-03-19 WO PCT/JP2019/011345 patent/WO2019181904A1/ja unknown
- 2019-03-19 US US16/981,014 patent/US11656858B2/en active Active
- 2019-03-19 EP EP19771160.9A patent/EP3770753B1/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170351318A1 (en) | 2016-06-02 | 2017-12-07 | Northwestern University | System and method for associative power and clock management with instruction governed operation for power efficient computing |
Non-Patent Citations (2)
Title |
---|
佐々木 広,ほか4名,"統計情報に基づく動的電源電圧制御手法",情報処理学会論文誌,社団法人情報処理学会,2006年11月15日,第47巻, 第SIG 18(ACS 16)号,pp.80-91,ISSN 0387-5806 |
石原 亨,ほか1名,"可変電圧プロセッサを用いた低消費電力化手法と基本定理",DAシンポジウム'98 論文集,社団法人情報処理学会,1998年07月16日,第98巻, 第9号,pp.287-292,ISSN 1344-0640 |
Also Published As
Publication number | Publication date |
---|---|
EP3770753A1 (en) | 2021-01-27 |
US11656858B2 (en) | 2023-05-23 |
EP3770753A4 (en) | 2021-12-15 |
WO2019181904A1 (ja) | 2019-09-26 |
EP3770753B1 (en) | 2024-10-30 |
US20210019129A1 (en) | 2021-01-21 |
JP2019164527A (ja) | 2019-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9384053B2 (en) | Task allocation optimization system, task allocation optimization method, and non-transitory computer readable medium storing task allocation optimization program | |
US20080129740A1 (en) | Image processing apparatus, storage medium that stores image processing program, and image processing method | |
US20130132916A1 (en) | Behavioral synthesis method, behavioral synthesis program and behavioral synthesis apparatus | |
JP2009528649A (ja) | 分散コンピューティングに関する改良 | |
CN105210038A (zh) | 核亲和性位掩码变换 | |
JP7031930B2 (ja) | プログラム生成部、情報処理装置、プログラム生成方法、及びプログラム | |
US20100146242A1 (en) | Data processing apparatus and method of controlling the data processing apparatus | |
US20180322093A1 (en) | Method and apparatus for solving a mixed integer programming problem | |
JP5655939B2 (ja) | スケジューリング方法、およびスケジューリングシステム | |
US20240112055A1 (en) | Computer-readable recording medium storing node allocation program at the time of quantum simulation execution, node allocation method at the time of quantum simulation execution, and information processing device | |
JP2018073162A (ja) | 画像処理装置、画像処理方法および制御プログラム | |
KR20090014601A (ko) | 버퍼를 이용한 연산 분산 방법 및 이를 이용한 연산 분산시스템 | |
JP7461482B2 (ja) | 割当問題を解くことを支援する情報処理システム及び方法 | |
WO2021166231A1 (ja) | シナリオ生成装置、シナリオ生成方法、及びコンピュータ読み取り可能な記録媒体 | |
JP5251689B2 (ja) | コンパイラプログラムおよびコンパイラ装置 | |
Gu et al. | Improved Lagrangian relaxation based optimization procedure for scheduling with storage | |
WO2024202001A1 (ja) | サーバ、クライアント、制御方法、および通信システム | |
WO2024195099A1 (ja) | 予測装置、予測方法、および予測プログラム | |
JP6524733B2 (ja) | 並列演算装置、並列演算システム、およびジョブ制御プログラム | |
WO2024154265A1 (ja) | 量子回路設計支援プログラム、量子回路設計支援方法および量子回路設計支援装置 | |
JP2020065407A (ja) | 運転計画方法、運転計画装置およびプログラム | |
US11954527B2 (en) | Machine learning system and resource allocation method thereof | |
US20240256901A1 (en) | Information processing apparatus, information processing method and non-transitory computer-readable storage medium | |
US20240378517A1 (en) | Auto-Generation of Personalized Context-Dependent Task Resumption Memory Cues | |
JP2021043918A (ja) | 情報処理装置、情報処理プログラム、及び情報処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210210 |
|
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: 20220125 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220217 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7031930 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |