JP2010146181A - 実行ファイル作成装置 - Google Patents

実行ファイル作成装置 Download PDF

Info

Publication number
JP2010146181A
JP2010146181A JP2008321189A JP2008321189A JP2010146181A JP 2010146181 A JP2010146181 A JP 2010146181A JP 2008321189 A JP2008321189 A JP 2008321189A JP 2008321189 A JP2008321189 A JP 2008321189A JP 2010146181 A JP2010146181 A JP 2010146181A
Authority
JP
Japan
Prior art keywords
memory
file
module
voltage control
program
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
JP2008321189A
Other languages
English (en)
Other versions
JP5551868B2 (ja
Inventor
Shinichi Ishigaki
信市 石垣
Masahiko Toshi
雅彦 都市
Katsuhiro Yoda
勝洋 依田
Toshiki Obara
俊樹 小原
Hirokazu Asami
広和 浅見
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.)
Fujitsu Ltd
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Ltd
Fujitsu Semiconductor Ltd
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 Fujitsu Ltd, Fujitsu Semiconductor Ltd filed Critical Fujitsu Ltd
Priority to JP2008321189A priority Critical patent/JP5551868B2/ja
Publication of JP2010146181A publication Critical patent/JP2010146181A/ja
Application granted granted Critical
Publication of JP5551868B2 publication Critical patent/JP5551868B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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

Landscapes

  • Power Sources (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

【課題】互いに関連性の高いモジュールを隣接させてメモリ上に配置する配置順を決定して実行ファイルを作成することによって、該メモリを省電力化する。
【解決手段】複数のモジュールを含むプログラムに対して、互いに関連性の高い順にモジュールが配置されるように配置順を決定する配置決定手段(S12)と、前記プログラムのオブジェクトをリンク(S14)することによって、該プログラムの実行ファイル74aを作成すると共に、該プログラムの前記複数のモジュールを電圧制御されるメモリ上の複数の細分化領域への、前記配置順に基づく配置によるメモリマップ75aを出力するリンク手段(S14)とを有する実行ファイル作成装置により達成される。
【選択図】図4

Description

本発明は、互いに関連性の高いモジュールを隣接させてメモリ上に配置する配置順を決定して実行ファイルを作成することによって、該メモリを省電力化するようにした実行ファイル作成装置に関する。
従来より、半導体装置の高性能化及び高機能化を実現することによって、情報処理機能を高度に備えた種々の装置が開発されてきた。その一方で、消費電力や待機電力を低減させて低電力化させることが、半導体装置の性能を維持する上でも、また、バッテリ駆動する装置においても重要な課題となってきた。
複数のメモリ部に対して発行されたメモリ獲得要求に対して、データサイズに応じて適正な1つ以上のメモリ部を割り当ててデータを保持するとともに、割り当てたメモリ部のみに電源を供給することが提案されている。
また、不揮発性メモリで複数のバンクを連続的に動作させるため、あるバンクがビジーサイクル(活性)にあるときに、他のバンクをチップディセーブル(低消費電力)状態にして、次のアクセスのためのアクセス情報を発行するようにしたり、複数のバンクに分散記憶されている所定の処理モードで使用するデータを一つのバンクに再配置し、残りのバンクを省電力モードに移行させることが提案されている。
特開2005−196545号公報 特開2005−222315号公報 特開2004−272448号公報
しかしながら、メモリ部の低電力化を実現するためのアクセスしている記憶領域とアクセスしていない記憶領域とに対するメモリ電圧制御の頻度が増加したり、また、電圧の切り換え時には目標とする電圧に達するまで時間を要することなどによって、処理性能を十分に発揮できないという問題がある。
開示の実行ファイル作成装置は、複数のモジュールを含むプログラムに対して、互いに関連性の高い順にモジュールが配置されるように配置順を決定する配置決定手段と、前記プログラムのオブジェクトをリンクすることによって、該プログラムの実行ファイルを作成すると共に、該プログラムの前記複数のモジュールを電圧制御されるメモリ上の複数の細分化領域への、前記配置順に基づく配置によるメモリマップを出力するリンク手段とを有する。
開示の実行ファイル作成装置では、互いに関連性の高いモジュールを隣接して配置するメモリマップが作成されるため、互いに関連性の高いモジュール同士を隣接してメモリ上に配置でき、メモリ電圧制御の頻度を低減することができる。また、低電圧を保持しておく細分化領域の範囲を広くすることができる。
以下、本発明の実施の形態を図面に基づいて説明する。
図1は、プログラムの実行による処理手順の例を示す図である。モジュールA、処理モード1の判定モジュール、モジュールA_1、モジュールE、モジュールA_2、モジュールB、処理モード2の判定モジュール、モジュールC、モジュールD等で構成されるプログラム3が、図1に示されるような処理手順で実行されるものとする。
処理モード1として処理Aが選択される場合、モジュールAと、処理モード1の判定モジュールと、モジュールA_1と、モジュールA_2とによって、処理Aが構成される。モジュールAと、処理モード1の判定モジュールと、モジュールA_1と、モジュールA_2とを、処理Aに係るモジュールA群9とする。
処理Eが選択される場合、処理AのモジュールA_1がモジュールEに置き換えられて、モジュールAと、処理モード1の判定モジュールと、モジュールEと、モジュールA_2とによって、処理Eが構成される。処理Bが選択されている場合、モジュールBによって処理Bが構成される。処理モード2として処理Cが選択される場合、モジュールCによって処理Cが構成される。一方、処理モード2として処理Dが選択される場合、モジュールDによって処理Dが構成される。
このようなプログラム3をコンパイルして生成したオブジェクト3bを一の半導体装置であるメモリに配置する例を図2で説明する。図2(A)は、メモリ上のオブジェクトの配置例を示す図である。図2(A)では、メモリ4の記憶領域を例えば領域#0から#15の16ブロックに細分化している。図2(A)に示す配置例では、例えば、プログラム3を構成する複数のモジュールに対して、ソースプログラム内における先頭からの出現順に従って判断した隣接モジュールの関連性の強さに基づいて、複数のブロックに跨って連続させて配置し、関連性が判断されないモジュールは別のブロックの先頭から配置した状態を示している。
互いに関連性が低いと判断されるモジュールとは、例えば、処理モード1の判定モジュールによって分岐し、かつ処理モード1の判定モジュールの直後に出現しないモジュールEなどである。
図2(B)は、処理の流れの解析による関連性に基づく配置例を示す図である。図2(B)では、処理の流れを解析することによって、モジュールA_2とモジュールEとが共にモジュールA_1との関連性があると判断され、かつ、モジュールEよりモジュールA_2の方がモジュールA_1との関連性が強いと判断されると、モジュールA、処理モード1の判定モジュール、モジュールA_1、モジュールA_2、モジュールEの順に複数のブロックに跨って連続して配置される。
処理の流れを解析することによって、図2(A)に示す配置例と比べると、処理の流れを重視したモジュール間の関連性に基づいて連続させて配置するため、例えば、処理Aに係るモジュールA群9がモジュール間の隙間を最小限にして連続して複数の細分化領域#0から#5に配置させるため、メモリ4において一定の電圧に保つ領域を纏めることができ、一定の電圧の領域における空き領域の無駄を低減することができる。また、一定の電圧から低電圧及び低電圧から一定の電圧への電圧制御による処理負荷、及び実質的な処理の性能低下となる電圧制御によって切り替えられた電圧へと安定するまでに掛かる時間を削減することができる。
このように処理の流れを解析することによってオブジェクト3bを構成する複数のモジュールのメモリ上への配置を決定して、実行ファイルを作成する実行ファイル作成装置として動作するコンピュータ装置100は、例えば図3に示すように構成される。図3は、コンピュータ装置のハードウェア構成を示す図である。
図3において、コンピュータ装置100は、コンピュータによって制御される端末であって、CPU(Central Processing Unit)11と、メモリユニット12と、表示ユニット13と、出力ユニット14と、入力ユニット15と、通信ユニット16と、記憶装置17と、ドライバ18とで構成され、システムバスBに接続される。
CPU11は、メモリユニット12に格納されたプログラムに従ってコンピュータ装置100を制御する。メモリユニット12は、RAM(Random Access Memory)及びROM(Read-Only Memory)等にて構成され、CPU11にて実行されるプログラム、CPU11での処理に必要なデータ、CPU11での処理にて得られたデータ等を格納する。また、メモリユニット12の一部の領域が、CPU11での処理に利用されるワークエリアとして割り付けられている。
表示ユニット13は、CPU11の制御のもとに必要な各種情報を表示する。出力ユニット14は、プリンタ等を有し、利用者からの指示に応じて各種情報を出力するために用いられる。入力ユニット15は、マウス、キーボード等を有し、利用者がコンピュータ装置100が処理を行なうための必要な各種情報を入力するために用いられる。通信ユニット16は、例えばインターネット、LAN(Local Area Network)等に接続し、外部装置との間の通信制御をするための装置である。記憶装置17は、例えば、ハードディスクユニットにて構成され、各種処理を実行するプログラム等のデータを格納する。
コンピュータ装置100よって行われる処理を実現するプログラムは、例えば、CD−ROM(Compact Disc Read-Only Memory)等の記憶媒体19によってコンピュータ装置100に提供される。即ち、プログラムが保存された記憶媒体19がドライバ18にセットされると、ドライバ18が記憶媒体19からプログラムを読み出し、その読み出されたプログラムがシステムバスBを介して記憶装置17にインストールされる。そして、プログラムが起動されると、記憶装置17にインストールされたプログラムに従ってCPU11がその処理を開始する。尚、プログラムを格納する媒体としてCD−ROMに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。本発明に係る処理を実現するプログラムは、通信ユニット16によってネットワークを介してダウンロードし、記憶装置17にインストールするようにしても良い。また、USB対応のコンピュータ装置100であれば、USB接続可能な外部記憶装置からインストールするようにしても良い。更に、SDカード等のフラッシュメモリ対応のコンピュータ装置100であれば、そのようなメモリカードからインストールするようにしても良い。
図4は、全体処理の概要を説明するための図である。図4において、コンピュータ装置100のCPU11は、記憶装置17に記憶されているユーザに提供されるメモリに書き込まれるソースファイル70をコンパイルして(ステップS11)、ソースファイル70に対応するオブジェクトファイル71とアセンブリファイル72とを記憶装置11に出力する。コンパイルすることによって、ソースファイル70のバイナリ形式のオブジェクトファイル71とアセンブリ言語で記述されたアセンブリファイル72とが1対1のファイルで出力される。オブジェクトファイル71には、少なくとも1以上のモジュールが含まれる。ステップS11でのコンパイルは、ステップS12でのモジュール配置順を決定するために解析されるアセンブリファイル72を出力するために行われる。
そして、CPU11は、静的にメモリへのモジュール配置順を決定する第1のアルゴリズムを実行する(ステップS12)。CPU11は、ステップS11で出力されたアセンブリファイル72を読み込んで、関数を呼び出す命令文を抽出することによって、関数の呼び出し頻度に基づいて関数が定義されているモジュールへのアクセスの多さを判断する。アクセスの多いと判断したモジュールから配置するように配置順を決定する。
更に、CPU11は、ステップS12で決定したモジュール配置順を用いて、モジュール毎のオブジェクトサイズとメモリ4の細分化領域のサイズとに基づいて、モジュールと配置するメモリ4の細分化領域番号とを対応付けしたリンク制御文73aを作成する(ステップS13)。作成したリンク制御文73aを用いて、CPU11は、オブジェクトファイル71をリンクする(ステップS14)。静的なモジュール配置による実行ファイル74aと、プログラムアドレスとメモリ上の複数の細分化領域への静的なモジュール配置によるアドレスとの対応を解決するメモリマップ75aとが生成され出力される。
上述したように、コンパイル後のアセンブリファイル72を用いてモジュールのメモリ上への配置を調整するステップS12による静的配置処理P1後に作成されたリンク制御文73aに基づいて、リンクによって生成された実行ファイル74aをメモリ4に搭載するようにしてもよい。
上述したステップS11からS14に続いて、実行ファイル74aを用いて実動作に応じたモジュールの配置順に調整するステップS21からS23による動的配置処理P2について説明する。動的配置処理P2を実行するためには、少なくともソースファイル70の実行ファイルがあればよく、即ち、静的配置処理P1が省略されていてもよい。
CPU11は、コンパイルされた実行ファイル74aを実行し(ステップS21)、予め設定した特定の動作が実行された場合にトレース情報76に出力する。例えば、関数を呼び出す命令文が実行される毎に、少なくともその命令文とその命令文が属するファイルを識別するファイル識別情報とをトレース情報76に出力する。
実行ファイル74aによるプログラム実行後、CPU11は、トレース情報76を解析して動的にメモリへのモジュール配置順を決定する第2のアルゴリズムを実行する(ステップS22)。トレース情報76を解析することによって、プログラム実行によって同一命令文への繰り返しアクセスされる頻度を考慮したモジュール配置順を決定することができる。
CPU11は、第2のアルゴリズムを実行することによって得られたモジュール配置順を用いて、モジュール毎のオブジェクトサイズとメモリ4の細分化領域のサイズとに基づいて、モジュールと配置するメモリ4の細分化領域番号とを対応付けして更新したリンク制御文73bを出力する(ステップS23)。作成したリンク制御文73bを用いて、CPU11は、オブジェクトファイル71をリンクする(ステップS24)。動的なモジュール配置による実行ファイル74bと、プログラムアドレスとメモリ上の複数の細分化領域への動的なモジュール配置によるアドレスとの対応を解決するメモリマップ75bとが生成され出力される。
この実行ファイル74bをメモリマップ75bに従ってメモリ4上に配置することによって、メモリ4の電圧制御を効率的に行うことができる。
モジュール配置順について、1以上のモジュールで構成されるファイル単位でメモリ4上への配置を決定する方法について図5、図6、及び図7で説明する。図5は、ファイル構成例を示す図である。図5では、例えば、ファイル#1にはメイン関数が定義されており、メイン関数において関数func1、関数func2、関数func3などが少なくとも1回以上呼び出される処理となっている。メイン関数から呼び出される関数のうち、関数func1はファイル#1内で定義され、関数func2はファイル#1とは別のファイル#2で定義されている。また、関数func3もファイル#1とは別のファイル#3で定義されている。
図5ではソースファイル70の例として示しているが、以下、コンパイル後のオブジェクトファイル71及びアセンブリファイル72を識別する場合にも同様のファイル名をファイル識別情報として使用する。
先ず、図4のステップS12で行われる、ソースファイル70をコンパイルして得られたアセンブリファイル72を用いて、メモリ4へのモジュール配置順を決定する静的配置処理P2について詳述する。
図6は、図4の静的にメモリへのモジュール配置順を決定する第1のアルゴリズムを説明するための図である。図6(A)において、CPU11は、アセンブリファイル72からcall命令を抽出してcall命令抽出リスト51を出力する。call命令抽出リスト51には、少なくとも、call命令で関数が呼び出されるプログラム上のアドレス(番地)と、呼び出される関数名を含むcall命令文とを含む。図6(A)に示すcall命令抽出リスト51には便宜上、図5のファイル構成に従って、関数が定義されるファイル名をcall命令文に対応させてコメント形式で記載してある。
call命令文を抽出したcall命令抽出リスト51を用いて、CPU11は、関数が呼び出されるプログラム上のアドレス(番地)と、関数名を含むcall命令文と、呼び出された関数が定義されているファイル名などのファイル識別情報とを対応させ、関数名毎の呼び出し回数で並べ替えをして、図6(B)に示すような並べ替えテーブル52として出力する。
並べ替えテーブル52では、最も呼び出し回数の多い関数func1によって関数func1が定義されるファイル#1に対して3回のアクセスがあったことを示す。また、main関数があるため、ファイル#1を常時一定の電圧にしておくファイルとして定義される。次に呼び出し回数の多い関数func2によって関数func2が定義されるファイル#2に対して2回のアクセスがあったことを示す。そして、関数func2の次に呼び出し回数の多い関数はfunc3となり、関数func3が定義されるファイル#3に対して1回のアクセスがあったことを示す。このように、並べ替えテーブル52は、関数が呼び出されることによるアクセスの多いファイル順を示す。
アクセス並べ替えテーブル52を用いて、CPU11は、メモリ4上へのモジュール配置順を決定する。ここでは、モジュールをファイル単位とする。即ち、図6(C)に示すように、ファイル#1、ファイル#2、ファイル#3の順に配置することを示す配置順リスト53を出力する。出力された配置順リスト53を用いて、リンク制御文73aが作成される(図4のステップS13)。
次に、図4中の実行ファイル74aのプログラムを実行することによる動的配置処理P2における、ステップS22で行われる動的にメモリへのモジュール配置順を決定する第2のアルゴリズムについて詳述する。
図7は、図4の動的にメモリへのモジュール配置順を決定する第2のアルゴリズムを説明するための図である。図7(A)において、CPU11は、トレース情報76からcall命令を抽出してcall命令抽出リスト61を出力する。call命令抽出リスト61には、少なくとも、call命令で関数が呼び出されるプログラム上のアドレス(番地)と、呼び出される関数名を含むcall命令文とを含む。図7(A)に示すcall命令抽出リスト51には便宜上、図5のファイル構成に従って、関数が定義されるファイル名をcall命令文に対応させてコメント形式で記載してある。図7(A)に示すcall命令抽出リスト61では、処理の繰り返し等により、プログラム中の所定番地(例えば400番地)で複数回呼び出すcall命令文が抽出されている。図6(A)に示すように、静的配置処理P1での第1のアルゴリズムでは、このような場合400番地でcall命令文は1回の抽出となる。
call命令文を抽出したcall命令抽出リスト61を用いて、CPU11は、関数が呼び出されるプログラム上のアドレス(番地)と、関数名を含むcall命令文と、呼び出された関数が定義されているファイル名などのファイル識別情報とを対応させ、関数名毎の呼び出し回数で並べ替えをして、図7(B)に示すような並べ替えテーブル62として出力する。
並べ替えテーブル62では、最も呼び出し回数の多い関数func3によって関数func3が定義されるファイル#3に対して5回のアクセスがあったことを示す。次に呼び出し回数の多い関数func1によって関数func1が定義されるファイル#1に対して3回のアクセスがあったことを示す。但し、ファイル#1はmain関数であるため、アクセス回数に係わらずファイル#1を常時一定の電圧にしておくファイルとして定義される。そして、次に呼び出し回数の多い関数はfunc3となり、関数func3が定義されるファイル#3に対して2回のアクセスがあったことを示す。このように、並べ替えテーブル62は、関数が呼び出されることによるアクセスの多いファイル順を示す。
アクセス並べ替えテーブル62を用いて、CPU11は、メモリ4上へのモジュール配置順を決定する。ここでは、モジュールをファイル単位とする。即ち、図6(C)に示すように、ファイル#1、ファイル#3、ファイル#2の順に配置することを示す配置順リスト63を出力する。第1のアルゴリズムによる静的なモジュール配置順と比べると、ファイル#2とファイル#3との順が逆転する。出力された配置順リスト63を用いて、リンク制御文73aが更新されてリンク制御文73bとして出力される(図4のステップS13)。リンク制御文73aが存在しない場合、リンク制御文73bが生成される。
次に、より配置を適切に行うためのモジュールのグループ分けについて図8で説明する。図8中、リンク制御文を作成するためのステップS13での処理として説明するが、ステップS23でも同様の処理が行われる。図8(A)に示すように、モジュール配置順に基づいて、オブジェクト3bを頻繁に一定の電圧にしておくモジュールのグループG1と頻繁に一定の電圧にしておく必要の無いオブジェクトのグループG2とに構成する。
グループ分けは、例えば、ステップS12の第1のアルゴリズムで作成された配置順リスト53を用いて、メモリ4の消費電圧の制限の範囲内の一定の電圧として利用するメモリ4の細分化領域の合計容量に相当するまで、配置順リスト53の先頭からモジュールのサイズを加算しながら割り当てるモジュールを選択し、一定の電圧用の細分化領域の合計サイズを超えたモジュール以降をグループG2とすればよい。
更に、頻繁に一定の電圧にしておくモジュールのグループG1において、main関数があるモジュールと、関数が自身を定義するモジュール以外の他モジュールから呼び出されている場合にそれ自身を定義するモジュールとを互いに関連性の高いモジュール群M1に分類する。そして、main関数があるモジュール以外のモジュールにおいて、そのモジュール内部で定義した関数を呼び出している場合、つまり関数の呼び出し元と呼び出し先のモジュールが同一である場合、そのモジュールを互いに関連性の低いモジュール群M2に分類する。このモジュール群の分類では、関数が呼び出されるプログラム上のアドレス(番地)とモジュールの先頭アドレスとの比較によって、呼び出し元と呼び出し先のモジュールを識別することが可能である。
頻繁に一定の電圧にしておく必要の無いオブジェクトのグループG2において、1以上のアクセスの頻度の少ないモジュールの集まりM3を構成する。
上述説明において、図5に示すファイル構成における1以上のモジュールを含むオブジェクト化された各ファイルを1つのモジュール群とすればよい。
図8(A)で説明したようにグループ分け及びモジュール群を構成した後、図8(B)に示すように、メモリ4を構成する連続した細分化領域への各モジュール群の割り当てを行う。アクセス時及び非アクセス時に関わりなく一定の電圧が印加される細分化領域#0及び#1では、例えば、モジュール群M1そしてモジュール群M2の順で細分化領域#0の先頭から細分化領域#0から#1の境界を跨いで隙間無く割り当てる。
一方で、非アクセス時には低電圧が印加される細分化領域#2及び#3では、メモリを効率良く利用できるようにモジュール群M3などを配置する。
一定の電圧が印加される細分化領域、低電圧が印加される細分化領域ともに例示された領域の数以上の細分化領域で構成され、また、モジュール群も例示されたモジュール群の数以上のモジュール群が形成される場合もあり、それぞれのグループにおいて隙間サイズ5と隙間サイズ6の値が最良となるように配置調整をするようにしてもよい。サイズの小さい一のモジュール群が細分化領域を跨ることによって消費電圧に無駄が発生する場合もあり、特にアクセス時のみ一定の電圧へと切り替えられる低電圧の細分化領域において、隙間サイズ6の値が最小の時に消費電圧を最小にできるとは限らない。
例えば、図8(B)に示すような細分化領域と配置されるモジュール群とを対応させて表示し、オペレータの操作に応じてモジュール群の配置位置の入れ替えを可能とするように構成してもよい。
さて、メモリ4の非アクセス時には低電圧で維持されアクセス時にのみ一定の電圧が印加される細分化領域に対する電圧制御のためのメモリ電圧制御プログラムを、電圧の切り替えの必要な領域へアクセスする直前の位置に組み込んでおく必要がある。一旦生成させたメモリマップ75a又はメモリマップ75bを参照することによって、ソースファイル70にメモリ電圧制御関数をコーディングするようにした電圧制御組み込み方法について説明する。
先ず、メモリ電圧制御関数からパラメータのみで制御指示を行う第1の電圧制御組み込み処理について図9及び図10で説明する。図9は、第1の電圧制御組み込み処理フローを示す図である。図9において、CPU11は、ソースファイル70を図4に示すステップに従ってコンパイル及びリンクする(ステップS31)。ここで、リンク時にはメモリ電圧制御関数77aを挿入する際に参照される関数用メモリマップ76を作成する。関数用メモリマップ76aでは、関数名毎にその関数を定義するファイルが割り当てられるメモリ4上の細分化領域の番号が示される。ステップS31にて生成されたオブジェクトファイルは実装用として使用しない。
CPU11は、ソースコード70を読み込んでメモリ電圧制御関数77aを挿入して(ステップS32)、メモリ電圧制御を含むソースファイル78を出力する。CPU11は、ソースコード70に予め用意されたメモリ電圧制御関数77aを追加した後、ソースコード70の先頭から関数を呼び出す命令文を検索し、その検索した命令文で指定される関数名が関数用メモリマップ76aに登録されている場合、メモリ電圧制御関数77aを呼び出す命令文を検索した命令文の直前及び直後に挿入する。
そして、CPU11は、ソースファイル78を図4に示すステップに従ってコンパイル及びリンクして(ステップS33)、メモリ電圧制御を含む実行ファイル74cとメモリ4上に配置するためのメモリマップ75cとを出力する。
上記ステップS31及び33での図4に示すステップに従ったコンパイル及びリンクでは、静的配置処理P1と動的配置処理P2とを含む処理でもよく、或いは何れか一方を含む処理でもよい。実行ファイル74cは、メモリマップ75cに基づいてユーザに提供される所定のメモリ4に書き込まれる。
上記ステップS32にてソースファイル70に挿入されるメモリ電圧制御関数77aは、電圧制御の対象となるメモリ4の細分化領域の番号、電圧制御設定などのパラメータを有する。細分化領域の番号には、関数用メモリマップ76から取得した細分化領域番号が設定される。電圧制御設定には、低電圧への設定又は一定の電圧への設定のいずれかが設定される。例えば、検索した関数の直前では一定の電圧への設定がなされ、直後では低電圧への設定がなされる。メモリ電圧制御関数77aの動作時には、指定したパラメータは専用の制御レジスタに書き込まれる。メモリ電圧制御関数77aでは、電圧の設定が「低電圧」への指定を示している場合には、その設定を制御レジスタに書き込んだ後、動作を終了してリターンする。一方、電圧の設定が「一定の電圧」への指定を示している場合には、制御レジスタに書き込んだ後、一定の電圧になるまでの間はNOP命令を実行してリターンする。実装する装置のハードウェア側は、制御レジスタへの書き込みのタイミングでメモリ4の指定された一以上の細分化領域に対して電圧制御を行う。
図10は、関数用メモリマップの例を示す図である。図10において、関数用メモリマップ76は、ソースファイル70の各ファイル内で定義される関数名、そのファイルのメモリ4への配置先を特定する細分化領域番号などの項目を有する。例えば、関数func1と関数func2とが含まれるとする。関数名「func1」は、細分化領域番号「0」及び「1」に配置され、関数名「func2」は、細分化領域番号「2」に配置される等が示される。
上述した第1の電圧制御組み込み処理では、メモリ電圧制御コードの挿入されたファイルでは、オブジェクトサイズが増加するためメモリ4上への配置にズレが生じる場合がある。また、関数が定義されているファイルのオブジェクトが電圧制御を必要とする複数の細分化領域に跨る場合、細分化領域毎にメモリ電圧制御関数77aを呼び出すようにコーディングされるか、又は、細分化領域の数に応じたパラメータ数を設定して対応することになり、跨る細分化領域の数によって挿入されるコード量及びメモリ電圧制御関数77aによる実行サイクル数が増減される。従って、パラメータを用いず、メモリ4上のデータ領域に電圧制御テーブルを備えるようにして、細分化領域の数に係わらず、挿入されるコード量及び実行サイクル数の増減を抑制するようにした第2の電圧制御組み込み処理について図11及び図12で説明する。
図11は、第2の電圧制御組み込み処理フローを示す図である。図11において、ソースファイル70にメモリ電圧制御を要する位置にダミーソースコードを挿入し、ダミーソースコードを含むソースファイル80aを出力する(ステップS41)。例えば、予め、ソースファイル70に対して、図4に示すような静的配置処理P1又は動的配置処理P2を含むコンパイル及びリンクを行い、図9に示す関数用メモリマップ76を作成しておき、関数用メモリマップ76で示される関数が呼び出される前後を挿入位置としてダミーソースコードを挿入する。
CPU11は、ダミーソースコードを含むソースファイル80aを図4に示すステップに従ってコンパイル及びリンクする(ステップS42)。
その後、CPU11は、ソースファイル80aを用いて、挿入されているダミーソースコードを検索して、メモリ電圧制御関数77bへの置き換え及びメモリ電圧制御関数77bを呼び出す命令文への置き換えたソースファイル80bを出力する(ステップS43)。更に、CPU11は、コンパイル及びリンクによって生成されたダミーソースコードを含む場合のメモリマップ75eを参照して、図12で後述されるような電圧制御テーブル81を作成する(ステップS44)。
そして、CPU11は、電圧制御テーブル81を含めてメモリ電圧制御関数77bへ置き換えられたソースファイル80bを図4に示すステップに従ってコンパイル及びリンクする(ステップS45)。このコンパイル及びリンクによって、メモリ電圧制御を含む実行ファイル74cとメモリマップ75cとが出力される。実行ファイル74cは、メモリマップ75cに基づいてユーザに提供される所定のメモリ4に書き込まれる。
ステップS41でのダミーソースコードの挿入位置として、関数を呼び出す命令文の前後に限らず、開発言語のジャンプ命令やGOTO文、関数の呼び出し命令文などによって次に実行される先が同一のオブジェクトファイル内である場合にはダミーソースコードの挿入を抑止し、異なるオブジェクトファイルとなる場合にダミーソースコードを挿入する。つまり、異なるオブジェクトファイルへ制御が移る場合にダミーソースコードを挿入するようにする。
更に、1つのオブジェクトファイルのサイズが1つの細分化領域のサイズよりも大きい場合、そのオブジェクトファイルは、複数のメモリに跨って配置されることになる。この場合、オブジェクトファイル毎に各細分化領域へと配置されるオブジェクトファイルの最初と最後の番地を管理するようにすればよい。つまい、そのオブジェクトファイルの何番地から何番地までが、細分化領域の#nに配置し、続く何番地から何番地までが、細分化領域の#n+1、#n+2、・・・に配置されるかといった情報を生成しておく。そして、そのオブジェトファイルの中で分岐する先が、同じオブジェクトファイルの範囲内であった場合、生成した情報から、細分化領域の#nなのか#n+1なのかを判断することが可能である。もし、分岐先が、次に続く細分化領域の#n+1であった場合、そこにダミーソースコードを挿入するようにすることができる。
図12は、電圧制御テーブルの例を示す図である。図12に示す電圧制御テーブル81では、メモリ4の分割領域をビット位置に対応させ、ファイル毎にそのオブジェクトが配置されている分割領域に相当するビットをオンで示す。例えば、メモリ4を16分割した場合は、ファイル毎に16ビットでなる1ワードの配置情報で管理できる。メモリ電圧制御関数77bには、電圧制御するファイルの配置情報を指定するポインタと、一定の電圧への設定又は低電圧への設定を示す電圧の設定をパラメータとしておけばよい。
図11のステップS43において、CPU11は、ダミーソースコードの挿入直後又は直前に呼び出される関数名からファイルを特定し、電圧制御テーブル81内の電圧制御するファイルの配置情報をポインタで指定して、メモリ電圧制御関数77bを呼び出す命令文へと置き換えればよい。
メモリ電圧制御関数77bでは、電圧の設定が「一定の電圧」への指定を示している場合には、ポインタで指定された電圧制御テーブル81内の配置情報に基づいて「1」のビットがオンとなるように制御レジスタを設定し、一定の電圧になるまでの間はNOP命令を実行してリターンする。一方、電圧の設定が「低電圧」への指定を示している場合には、ポインタで指定された電圧制御テーブル81内の配置情報に基づいて「1」のビットがオフとなるように制御レジスタを設定してリターンする。いずれの電圧の設定であっても、配置情報の「0」のビット位置はマスクする。
次に、メモリ電圧制御の仕組みを含まない実行ファイル74a又は74bが記憶されているメモリ4を実装した情報処理装置のハードウェア側でプログラムカウンタを監視し、特定のアドレスに到達した際に細分化領域の電圧制御を行うための第3の電圧制御組み込み処理について、図13、図14及び図15で説明する。
図13は、第3の電圧制御組み込み処理フローを示す図である。図13において、CPU11は、ソースファイル70を図4に示すステップに従ってコンパイル及びリンクする(ステップS51)。このコンパイル及びリンクによって出力されたアセンブリファイル72とメモリマップ75a又は75bとを用いて、CPU11は、情報処理装置のハードウェア側でのみ参照される管理テーブル82を作成する(ステップS52)。そして、CPU11は、情報処理装置に実装される電圧制御用メモリ5に管理テーブル82を書き込む(ステップS53)。電圧制御用メモリ5は、ユーザに提供するプログラムメモリやデータメモリとは別に用意した電圧制御用のメモリである。
上記ステップS52での図4に示すステップに従ったコンパイル及びリンクでは、静的配置処理P1と動的配置処理P2とを含む処理でもよく、或いは何れか一方を含む処理でもよい。
ステップS52における管理テーブル82を作成する処理について図14及び図15について説明する。図14は、アセンブリファイルの例を示す図である。図15は、管理テーブルの例を示す図である。CPU11は、図14に示すアセンブリファイル72を読み込んで、電源ONを最初の電圧制御位置P1とし、call命令文を検索してアドレス「0x00401068」、「0x0040107B」、「0x0040180」等を電圧制御位置P2、P3、P4等として管理テーブル82に登録する。
この場合、検索したcall命令文に掛かるアドレスのうち、関数の呼び出し元が配置されている細分化領域と関数の呼び出し先が配置されている細分化領域とが一致する場合を除いて、電圧制御位置として管理テーブル82に登録する。
図15に示す管理テーブル82は、プログラムアドレス、一定の電圧にする細分化領域、低電圧にする細分化領域等の項目を有する。プログラムアドレスには電圧制御位置を示すアセンブリファイル72内のアドレスが設定され、一定の電圧にする細分化領域にはアクセス先の領域を特定するための細分化領域番号が設定され、低電圧にする細分化領域にはアクセス元の領域を特定するための細分化領域番号が設定される。
例えば、CPU11は、図14に示すアセンブリファイル72の電圧制御位置P2に関して、アドレス「0x00401068」と、一定の電圧にする細分化領域を特定するための細分化領域番号「#1」と、低電圧にする細分化領域を特定するための細分化領域番号「#0」とを電圧制御情報として管理テーブル82に登録する。また、CPU11は、電圧制御位置P3に関して、アドレス「0x0040107B」と、一定の電圧にする細分化領域を特定するための細分化領域番号「#2」と、低電圧にする細分化領域を特定するための細分化領域番号「#1」とを電圧制御情報として管理テーブル82に登録する。同様に、CPU11は、電圧制御位置P4に関して、アドレス「0x00401080」と、一定の電圧にする細分化領域を特定するための細分化領域番号「#4」と、低電圧にする細分化領域を特定するための細分化領域番号「#2」とを電圧制御情報として管理テーブル82に登録する。
また、電源ONの際の最初の電圧制御位置P1において、一定の電圧にする細分化領域と、低電圧にする細分化領域とを管理テーブル82に最初に定義しておいてもよい。
上述したようにハードウェア側にてメモリ電圧制御を行う場合、低電圧から一定の電圧になるまでの時間を考慮する必要がある。この為、管理テーブル82に登録したプログラムアドレスよりも数nサイクル前のアドレスを予め算出しておく必要が有る。この算出は、ハードウェアが電源ON時に管理テーブルの内容を読み、登録してあるアドレスから数ステップ分のアドレスを減算して記憶しておく。その後、プログラム実行時に、プログラムカウンタがその減算したアドレスに到達したタイミングで指定された細分化メモリを一定の電圧に設定する。もし、登録したアドレスと減算して得られたアドレスの間に、分岐命令、call命令がある場合、制御が意図しない場所へ移る可能性がある。この為、ハードウェア内部で、時間稼ぎする様な(例えば、クロックを間延びさせる等の)仕組みを踏まえるか、NOP命令を数回実行させる必要がある。若しくは、ソースコード上にダミーコードを数行コーディングしておく。
一定の電圧から低電圧へは、時間的な考慮をする必要がない。この為、プログラムを実行して、管理テーブルに登録したプログラムアドレスにプログラムカウンタが到達したタイミングで指定された細分化メモリを低電圧になる様に設定する。
図16は、実装されるメモリ電圧制御の構成例を説明するための図である。図16に示す情報処理装置90において、ソフトウェア又はファームウェアにメモリ電圧制御関数77a又は77bを組み込む場合、ハードウェア側のメモリ電圧制御部91は、制御レジスタ83を有し、メモリ電圧制御関数77a又は77bから設定される電圧制御の対象となる領域を特定する細分化領域番号と、「一定の電圧」又は「低電圧」への切り替えを指定する電圧の設定とに基づいて、メモリ4の電圧を制御する。
一方、図16に示す情報処理装置90において、ソフトウェア又はファームウェアにメモリ電圧制御関数77a又は77bを備えずハードウェア側のメモリ電圧制御部91が電圧制御を行う場合、メモリ電圧制御部91は、管理テーブル82を有し、プログラムカウンタを監視し、管理テーブル82を用いてメモリ4の電圧を制御する。
メモリ4はプログラムメモリ4aとデータメモリ4bとを有する。上述した電圧制御の仕組みをデータメモリ4bにも適応することによって、プログラムメモリ4aとデータメモリ4bとに対して、低電圧になる領域を多く確保し、一定の電圧と低電圧の切り替える頻度を低減させることができる。
関連性の高いモジュールを隣接して配置することによって、一定の電圧に保持する細分化領域(例えば、プログラムメモリ4aの細分化領域#4、#5、#6及び#7)が隣接することとなり、メモリ4上を広範囲に電圧制御する必要がない。
関連性の低いモジュールへの電圧制御の例について図17で説明する。図17は、電圧制御の例を示す図である。図17において、処理Aに係るモジュールA群(実行中)、・・・モジュールB(実行しない)、モジュールC(実行予定)の順で配置された場合(図17(a))に、実際に実行されるモジュールの順が、処理Aに係るモジュールA群(実行中)の次にモジュールC(実行予定)とする(図17(b))。
このようなモジュールの実行順における電圧制御では、電源ONによって電圧がメモリ4に印加されるが、処理Aに係るモジュールA群の細分化領域では一定の電圧に保持され(図17(c))、モジュールBの細分化領域ではモジュールBは実行されていないため低電圧で保持される(図17(d))。一方、電源ONのときから低電圧に保持されていたモジュールCの細分化領域では、モジュールCの実行直前に低電圧から高速で処理可能な一定の電圧に切り替えられて、モジュールCの実行終了時に一定の電圧から低電圧へと切り替えられる(図17(e))。モジュールCの実行によって、処理Aに係るモジュールA群の動作が終了すると処理Aに係るモジュールA群の細分化領域では、保持されていた一定の電圧から低電圧へと切り替えられる(図17(c))。
上述したように、本実施例では、メモリに書き込まれるオブジェクトにおいて、互いに関連性の高いモジュールを隣接して配置するようなメモリマップを作成することができる。従って、互いに関連性の高いモジュール同士を隣接してメモリ上に配置するため、メモリ電圧制御の頻度を低減することができる。また、低電圧を保持しておく細分化領域の範囲を広くすることができる。
上述した配置順によって半導体装置であるメモリへ実行ファイルを格納することによって、例えば、通常動作モード、間欠動作モード、コンプレストモードなどの複数のモードが存在する携帯電話機などに対して有効である。この間欠動作モードでは、通信量が減っている時、一定の周期でDSP(Digital Signal Processor)自体を低電圧にして消費電力を抑えているが、通常動作モードとコンプレストモードでは、DSP自体を低電圧にしていない。このように、省電力のために間欠動作等の工夫がなされているが、それ以外の動作ではメモリ全体に一定の電圧が掛かっているのが一般的なバッテリ駆動の装置などに対して、細分化領域の範囲を広く低電圧にしておくことができるようになる。
なお、以上に述べた実施形態は、以上に述べた実施形態の機能を実行する装置、以上に述べた実施形態の機能をコンピュータに実行させるためのプログラム、又は、以上に述べた実施形態の機能をコンピュータが処理する方法に適用できる。
以上の説明に関し、更に以下の項を開示する。
(付記1)
複数のモジュールを含むプログラムに対して、互いに関連性の高い順にモジュールが配置されるように配置順を決定する配置決定手段と、
前記プログラムのオブジェクトをリンクすることによって、該プログラムの実行ファイルを作成すると共に、該プログラムの前記複数のモジュールを電圧制御されるメモリ上の複数の細分化領域への、前記配置順に基づく配置によるメモリマップを出力するリンク手段とを有する実行ファイル作成装置。
(付記2)
前記配置決定手段は、
前記プログラムのソースファイルをコンパイルすることによって出力されるアセンブリファイルから、前記モジュールへとアクセスする命令文を静的に抽出する静的命令文抽出手段と、
前記静的に抽出した命令文をモジュール毎にカウントした値を前記関連性の高さとし、関連性の高い順に並べ替える第1の並替手段とを有する付記1記載の実行ファイル作成装置。
(付記3)
前記配置決定手段は、
作成済みの前記プログラムの実行ファイルを実行させることによって、前記モジュールへとアクセスする命令文を動的に抽出する動的命令文抽出手段と、
前記動的に抽出した命令文をモジュール毎にカウントした値を前記関連性の高さとし、関連性の高い順に並べ替える第2の並替手段とを有する付記1記載の実行ファイル作成装置。
(付記4)
前記リンク手段は、前記抽出した命令文で呼び出されるモジュールと該モジュールが配置される1以上の前記細分化領域とを対応付けた対応マップを出力し、
前記実行ファイル作成装置は、更に、
前記対応マップを参照することによって、前記プログラムのソースファイルに前記複数の細分化領域に対するメモリ電圧制御に係るコードを組み込むメモリ電圧制御組込手段と、
前記電圧制御に係るコードが組み込まれた前記ソースコードをコンパイルし、前記リンク手段によってリンクするコンパイル・リンク手段とを有する付記1乃至3のいずれか一項記載の実行ファイル作成装置。
(付記5)
前記プログラムのソースファイルにおいて前記細分化領域に対するメモリ電圧制御を行う位置にダミーソースコードを挿入するダミーソースコード挿入手段と、
前記ダミーソースコードが挿入された前記ソースファイルをコンパイルし、前記リンク手段によってリンクする第一コンパイル及びリンク手段と、
前記ソースファイルに挿入された前記ダミーソースコードを前記メモリ電圧制御に係るコードに置き換えるコード置換手段と、
前記第一コンパイル及びリンク手段によって出力された前記ダミーソースコードを含んだ場合のメモリマップを用いて、前記コードの置換位置に応じたメモリ電圧制御するための電圧制御テーブルを作成する電圧制御テーブル作成手段と、
前記コード置換手段によって置き換えられた前記ソースコードと前記電圧制御テーブル作成手段によって作成された電圧制御テーブルとをコンパイルし、前記リンク手段によってリンクする第二コンパイル及びリンク手段とを有する付記1乃至3のいずれか一項記載の実行ファイル作成装置。
(付記6)
前記リンク手段によって出力されたメモリマップを参照することによって、前記プログラムのアセンブリファイルを用いて前記細分化領域に対するメモリ電圧制御を行うプログラムアドレスと該メモリ電圧制御の対象となる細分化領域とを対応付けした管理テーブルを作成する管理テーブル作成手段と、
前記管理テーブルを電圧制御用メモリに書き込む管理テーブル書込手段とを有する付記1乃至3のいずれか一項記載の実行ファイル作成装置。
(付記7)
付記1乃至5のいずれか一項記載の実行ファイル作成装置によって出力された前記実行ファイルを前記メモリマップに従って前記複数の細分化領域に配置し記憶した半導体装置。
(付記8)
コンピュータ装置が、
複数のモジュールを含むプログラムに対して、互いに関連性の高い順にモジュールが配置されるように配置順を決定する配置決定手順と、
前記プログラムのオブジェクトをリンクすることによって、該プログラムの実行ファイルを作成すると共に、該プログラムの前記複数のモジュールを電圧制御されるメモリ上の複数の細分化領域への、前記配置順に基づく配置によるメモリマップを出力するリンク手順とを実行する実行ファイル作成方法。
(付記9)
コンピュータ装置に、
複数のモジュールを含むプログラムに対して、互いに関連性の高い順にモジュールが配置されるように配置順を決定する配置決定手順と、
前記プログラムのオブジェクトをリンクすることによって、該プログラムの実行ファイルを作成すると共に、該プログラムの前記複数のモジュールを電圧制御されるメモリ上の複数の細分化領域への、前記配置順に基づく配置によるメモリマップを出力するリンク手順とを実行させるコンピュータ実行可能な実行ファイル作成プログラム。
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
プログラムの実行による処理手順の例を示す図である。 オブジェクトをメモリに配置する例を説明するための図である。 コンピュータ装置のハードウェア構成を示す図である。 全体処理の概要を説明するための図である。 ファイル構成例を示す図である。 図4の静的にメモリへのモジュール配置順を決定する第1のアルゴリズムを説明するための図である。 図4の動的にメモリへのモジュール配置順を決定する第2のアルゴリズムを説明するための図である。 モジュールのグループ分けの方法を説明するための図である。 第1の電圧制御組み込み処理フローを示す図である。 関数用メモリマップの例を示す図である。 第2の電圧制御組み込み処理フローを示す図である。 電圧制御テーブルの例を示す図である。 第3の電圧制御組み込み処理フローを示す図である。 アセンブリファイルの例を示す図である。 管理テーブルの例を示す図である。 実装されるメモリ電圧制御の構成例を説明するための図である。 電圧制御の例を示す図である。
符号の説明
3b オブジェクト
4 メモリ
11 CPU
12 メモリユニット
13 表示ユニット
14 出力ユニット
15 入力ユニット
16 通信ユニット
17 記憶装置
18 ドライバ
19 記憶媒体
51、61 call命令抽出リスト
52、62 並べ替えテーブル
53、63 配置順テーブル
70、78 ソースファイル
71 オブジェクトファイル
72 アセンブリファイル
73a、73b リンク制御文
74a、74b、74c 実行ファイル
75a、75b、75c、75e メモリマップ
76 関数用メモリマップ
77a、77b メモリ電圧制御関数
80a、80b ソースファイル
81 電圧制御テーブル
82 管理テーブル
83 制御レジスタ
90 情報処理装置
91 メモリ電圧制御部
100 コンピュータ装置

Claims (5)

  1. 複数のモジュールを含むプログラムに対して、互いに関連性の高い順にモジュールが配置されるように配置順を決定する配置決定手段と、
    前記プログラムのオブジェクトをリンクすることによって、該プログラムの実行ファイルを作成すると共に、該プログラムの前記複数のモジュールを電圧制御されるメモリ上の複数の細分化領域への、前記配置順に基づく配置によるメモリマップを出力するリンク手段とを有する実行ファイル作成装置。
  2. 前記配置決定手段は、
    前記プログラムのソースファイルをコンパイルすることによって出力されるアセンブリファイルから、前記モジュールへとアクセスする命令文を静的に抽出する静的命令文抽出手段と、
    前記静的に抽出した命令文をモジュール毎にカウントした値を前記関連性の高さとし、関連性の高い順に並べ替える第1の並替手段とを有する請求項1記載の実行ファイル作成装置。
  3. 前記配置決定手段は、
    作成済みの前記プログラムの実行ファイルを実行させることによって、前記モジュールへとアクセスする命令文を動的に抽出する動的命令文抽出手段と、
    前記動的に抽出した命令文をモジュール毎にカウントした値を前記関連性の高さとし、関連性の高い順に並べ替える第2の並替手段とを有する請求項1記載の実行ファイル作成装置。
  4. 前記リンク手段は、前記抽出した命令文で呼び出されるモジュールと該モジュールが配置される1以上の前記細分化領域とを対応付けた対応マップを出力し、
    前記実行ファイル作成装置は、更に、
    前記対応マップを参照することによって、前記プログラムのソースファイルに前記複数の細分化領域に対するメモリ電圧制御に係るコードを組み込むメモリ電圧制御組込手段と、
    前記電圧制御に係るコードが組み込まれた前記ソースコードをコンパイルし、前記リンク手段によってリンクするコンパイル・リンク手段とを有する請求項1乃至3のいずれか一項記載の実行ファイル作成装置。
  5. 前記プログラムのソースファイルにおいて前記細分化領域に対するメモリ電圧制御を行う位置にダミーソースコードを挿入するダミーソースコード挿入手段と、
    前記ダミーソースコードが挿入された前記ソースファイルをコンパイルし、前記リンク手段によってリンクする第一コンパイル及びリンク手段と、
    前記ソースファイルに挿入された前記ダミーソースコードを前記メモリ電圧制御に係るコードに置き換えるコード置換手段と、
    前記第一コンパイル及びリンク手段によって出力された前記ダミーソースコードを含んだ場合のメモリマップを用いて、前記コードの置換位置に応じたメモリ電圧制御するための電圧制御テーブルを作成する電圧制御テーブル作成手段と、
    前記コード置換手段によって置き換えられた前記ソースコードと前記電圧制御テーブル作成手段によって作成された電圧制御テーブルとをコンパイルし、前記リンク手段によってリンクする第二コンパイル及びリンク手段とを有する請求項1乃至3のいずれか一項記載の実行ファイル作成装置。
JP2008321189A 2008-12-17 2008-12-17 実行ファイル作成装置 Expired - Fee Related JP5551868B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008321189A JP5551868B2 (ja) 2008-12-17 2008-12-17 実行ファイル作成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008321189A JP5551868B2 (ja) 2008-12-17 2008-12-17 実行ファイル作成装置

Publications (2)

Publication Number Publication Date
JP2010146181A true JP2010146181A (ja) 2010-07-01
JP5551868B2 JP5551868B2 (ja) 2014-07-16

Family

ID=42566581

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008321189A Expired - Fee Related JP5551868B2 (ja) 2008-12-17 2008-12-17 実行ファイル作成装置

Country Status (1)

Country Link
JP (1) JP5551868B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012174069A (ja) * 2011-02-22 2012-09-10 Fujitsu Ltd プログラムに含まれるコードをメモリ領域に割り当てる割当方法及びその方法を実行するメモリシステム
JP2012256263A (ja) * 2011-06-10 2012-12-27 Fujitsu Ltd 電力制御方法、電子装置、プログラム及びプログラムの生成方法

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01267731A (ja) * 1988-04-19 1989-10-25 Nec Corp セグメントオーバレイプログラムの作成方式
JPH0377135A (ja) * 1989-08-20 1991-04-02 Pfu Ltd 関数並び換え方式
JPH086881A (ja) * 1994-06-22 1996-01-12 Chubu Nippon Denki Software Kk 通信処理装置のメモリ制御方法および通信処理装置のメ モリ制御方式
JP2000003268A (ja) * 1998-06-11 2000-01-07 Mitsubishi Electric Corp メモリマップ最適化決定方法
JP2000215100A (ja) * 1999-01-21 2000-08-04 Nec Corp 省電力メモリ管理システム
JP2001147820A (ja) * 1999-11-24 2001-05-29 Nec Software Kobe Ltd コード最適化方法および記録媒体
JP2002099427A (ja) * 2000-09-25 2002-04-05 Toshiba Corp プログラムの開発方法、プログラムの開発システム及びマイクロプロセッサ
JP2003330730A (ja) * 2002-05-15 2003-11-21 Matsushita Electric Ind Co Ltd オペレーティングシステム配置装置
JP2006509291A (ja) * 2002-12-04 2006-03-16 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ マイクロプロセッサ電力消費のソフトウェアベースの制御
JP2007213257A (ja) * 2006-02-08 2007-08-23 Fujitsu Ltd 連携編集方法、連携編集プログラム及び記憶媒体
JP2008040606A (ja) * 2006-08-02 2008-02-21 Hitachi Ltd 低消費電力メモリ管理方法及びその方法を用いた計算機

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01267731A (ja) * 1988-04-19 1989-10-25 Nec Corp セグメントオーバレイプログラムの作成方式
JPH0377135A (ja) * 1989-08-20 1991-04-02 Pfu Ltd 関数並び換え方式
JPH086881A (ja) * 1994-06-22 1996-01-12 Chubu Nippon Denki Software Kk 通信処理装置のメモリ制御方法および通信処理装置のメ モリ制御方式
JP2000003268A (ja) * 1998-06-11 2000-01-07 Mitsubishi Electric Corp メモリマップ最適化決定方法
JP2000215100A (ja) * 1999-01-21 2000-08-04 Nec Corp 省電力メモリ管理システム
JP2001147820A (ja) * 1999-11-24 2001-05-29 Nec Software Kobe Ltd コード最適化方法および記録媒体
JP2002099427A (ja) * 2000-09-25 2002-04-05 Toshiba Corp プログラムの開発方法、プログラムの開発システム及びマイクロプロセッサ
JP2003330730A (ja) * 2002-05-15 2003-11-21 Matsushita Electric Ind Co Ltd オペレーティングシステム配置装置
JP2006509291A (ja) * 2002-12-04 2006-03-16 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ マイクロプロセッサ電力消費のソフトウェアベースの制御
JP2007213257A (ja) * 2006-02-08 2007-08-23 Fujitsu Ltd 連携編集方法、連携編集プログラム及び記憶媒体
JP2008040606A (ja) * 2006-08-02 2008-02-21 Hitachi Ltd 低消費電力メモリ管理方法及びその方法を用いた計算機

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012174069A (ja) * 2011-02-22 2012-09-10 Fujitsu Ltd プログラムに含まれるコードをメモリ領域に割り当てる割当方法及びその方法を実行するメモリシステム
JP2012256263A (ja) * 2011-06-10 2012-12-27 Fujitsu Ltd 電力制御方法、電子装置、プログラム及びプログラムの生成方法

Also Published As

Publication number Publication date
JP5551868B2 (ja) 2014-07-16

Similar Documents

Publication Publication Date Title
JP4496255B2 (ja) マシン・コード・ビルダによって得られる電力消費低減
US6948158B2 (en) Retargetable compiling system and method
JP2001147819A (ja) 最適化装置および記録媒体
JP2007293383A (ja) プログラム開発支援装置及びプログラム開発支援装置の動作方法
JP2005032259A (ja) 共有ライブラリーシステム及び前記システム構築方法
US8266416B2 (en) Dynamic reconfiguration supporting method, dynamic reconfiguration supporting apparatus, and dynamic reconfiguration system
US20040193815A1 (en) Profile-guided data layout
JP5146134B2 (ja) コンパイル処理装置,ならびにアクセスパターン変更処理方法および処理プログラム
JP5551868B2 (ja) 実行ファイル作成装置
US8769498B2 (en) Warning of register and storage area assignment errors
JP3863544B1 (ja) 演算処理装置及び演算処理方法
JP4870956B2 (ja) 組み込み用プログラム生成方法、組み込み用プログラム開発システム、及び情報テーブル部
JPWO2008107936A1 (ja) ソフトウェア最適化装置、および最適化方法
KR20060035077A (ko) 데이터 처리 장치 및 이를 이용한 레지스터 할당 방법
KR101670916B1 (ko) 실행 파일 생성 방법 및 그 방법을 이용하는 시스템 장치
EP2450788A1 (en) Algorithm selection program, algorithm selection device, and method
JP3871312B2 (ja) プログラム変換方法、これを用いたデータ処理装置及びプログラム
KR20150051083A (ko) 재구성 가능 프로세서, 재구성 가능 프로세서의 구성 메모리의 사용을 최적화하는 방법 및 장치
JP2009157441A (ja) 情報処理装置、ファイル再配置方法およびプログラム
JP7168731B1 (ja) メモリアクセス制御装置、メモリアクセス制御方法、及び、メモリアクセス制御プログラム
JP2007200240A (ja) 情報処理装置及び情報処理方法
CN105653552A (zh) 一种结构化文档处理方法、装置及设备
JP2005228047A (ja) 言語処理装置及び言語処理プログラム
JP2016081097A (ja) プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ
US20040237076A1 (en) Code out-lining

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110711

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121211

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130521

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130722

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140107

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140403

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140410

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: 20140520

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140523

R150 Certificate of patent or registration of utility model

Ref document number: 5551868

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees