(57)【要約】【課題】メモリマップ最適化において、ユーザの作業量を抑制する。【解決手段】メモリマップ最適化方式は、種類の異なる複数のメモリの構成を定義するメモリマップ構成を一つのエントリとして、複数のエントリを格納するメモリマップテーブル１ｌと、ユーザプログラムを記憶するプログラム記憶部１ｖと、ユーザプログラムと一つのエントリとを読み出し、読み出したプログラムと一つのエントリとを用いて、実行形式のロードモジュール４ｈを生成する実行形式生成手段１ｗと、ロードモジュール４ｈを実行させて性能を測定する性能測定手段（実行時間測定手段１ｊ、消費電力測定手段１ｋ）と、性能測定手段が測定した性能測定結果を格納する性能測定結果テーブル１ｒと、ロードモジュール４ｈと性能測定手段とを起動し、性能測定手段によって性能測定結果テーブル１ｒへ性能測定結果を格納させるスタートアッププログラム起動手段１ｉと備える。【選択図】        図１
2004310580.tif 000002
【特許請求の範囲】
【請求項１】
種類の異なる複数のメモリの構成を定義するメモリマップ構成を一つのエントリとして、複数のエントリを格納するメモリマップテーブルと、
ユーザプログラムを記憶するプログラム記憶部と、
上記プログラム記憶部に記憶されたユーザプログラムと上記メモリマップテーブルに格納された一つのエントリとを読み出し、読み出したプログラムと一つのエントリとを用いて、実行形式のロードモジュールを生成する実行形式生成手段と、
上記ロードモジュールを実行させて性能を測定する性能測定手段と、
上記性能測定手段が測定した性能測定結果を格納する性能測定結果テーブルと、
上記ロードモジュールと上記性能測定手段とを起動し、上記性能測定手段が上記性能測定結果テーブルへ性能測定結果を格納することを指示する起動手段とを備えることを特徴とするメモリマップ最適化方式。
【請求項２】
上記メモリマップ最適化方式は、さらに、
ロードモジュールの実行時間を計測するタイマと、
上記ロードモジュールの実行の開始と停止とを検出し、上記タイマへ実行時間の測定の開始と停止とを指示し、上記タイマが計測した実行時間を上記性能測定結果テーブルへ書き込む実行時間測定手段と、
ロードモジュールが実行によって消費する電力を計測する消費電力測定部と、上記ロードモジュールの実行の開始と停止とを検出し、上記消費電力測定部へ電力の測定の開始と停止とを指示し、上記消費電力測定部が測定した消費電力を上記性能測定結果テーブルへ書き込む消費電力測定手段とを備えることを特徴とする請求項１記載のメモリマップ最適化方式。
【請求項３】
上記メモリマップ最適化方式は、さらに、
上記ロードモジュールを実行させる実行環境に備えられる複数のメモリそれぞれの容量を定義するメモリ構成を格納するメモリ構成テーブルと、
上記メモリ構成テーブルに格納されたメモリ構成と、ユーザプログラムとに基づいて、メモリマップ構成を生成し、生成したメモリマップ構成を上記メモリマップテーブルへ格納するメモリマップ構築手段とを備えることを特徴とする請求項１または２記載のメモリマップ最適化方式。
【請求項４】
上記メモリマップ最適化方式は、さらに、上記メモリマップテーブルに格納された複数のエントリから所定の条件を満たすエントリを検索するメモリマップ検索手段を有することを特徴とする請求項１記載のメモリマップ最適化方式。
【請求項５】
上記メモリマップ最適化方式は、さらに、
メモリマップ構成の条件を定義した条件テーブルを備え、
上記メモリマップ検索手段は、上記条件テーブルに定義された条件を満たすエントリを検索することを特徴とする請求項４記載のメモリマップ最適化方式。
【請求項６】
上記メモリマップテーブルは、複数のエントリそれぞれを識別するエントリ識別子を含み、
上記性能測定結果テーブルは、上記複数のエントリの数の性能測定結果を上記エントリ識別子に対応づけて格納し、
上記実行形式生成手段は、上記メモリマップテーブルに格納された複数のエントリの数、ロードモジュールを生成することを繰り返し、
上記起動手段は、上記複数のエントリの数、上記性能測定手段によって上記エントリ識別子に対応させて性能測定結果を上記性能測定結果テーブルへ格納させることを特徴とする請求項１から５いずれかに記載のメモリマップ最適化方式。
【請求項７】
複数種類のメモリによって構成されるメモリマップ構成を一つのエントリとして、複数のエントリをメモリマップテーブルへ格納し、
ユーザプログラムをプログラム記憶部へ記憶し、
上記プログラム記憶部に記憶されたユーザプログラムと上記メモリマップテーブルに格納された一つのエントリを読み出し、読み出したプログラムとを用いて、実行形式のロードモジュールを生成し、
ロードモジュールを実行させたときに測定する性能測定結果を格納する性能測定結果テーブルを設置し、
上記ロードモジュールを起動し、
上記ロードモジュールを実行することによって性能を測定し、
測定した性能測定結果を上記性能測定結果テーブルへ格納することを特徴とするメモリマップ最適化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、アクセス速度や容量が異なる複数種類のメモリを実装したシステム上で動作するプログラムにおいて、最もシステムに適したメモリマップを構築する手法に関するものである。
【０００２】
【従来の技術】
従来、特開２０００−３２６８にあるように、各プログラムの優先順位をあらかじめ決定し、優先順位の高いプログラムから順に高速なメモリへマッピングすることで、メモリマップの最適化を実現していた（特許文献１）。
【０００３】
【特許文献１】
特開２０００−３２６８号公報
【０００４】
【発明が解決しようとする課題】
上述したように従来の方式では、各プログラムの優先順位をあらかじめ決定しているが、各プログラムの優先順位をユーザが決定する場合は、最適な優先順位を決定するために、”メモリマップ構築”、”ロードモジュール生成”、”性能測定”といった、一連の作業をユーザが繰返し実施する必要があり、ユーザへの負担が大きい。また優先順位をリンカおよびプロファイルによる各関数、変数、定数へのアクセス頻度を基に決定する場合は、アクセス頻度が低くても高速処理が必要な関数などは優先順位が低く設定されることがあり、確実に最適なメモリマップが構築される保証がないという問題があった。
【０００５】
この発明は上記の問題点を解決するためになされたもので、”メモリマップ構築”、”ロードモジュール生成”、”性能測定”といった、メモリマップ最適化に必要な一連の作業を自動的に繰返すことで、ユーザの負担を軽減し、メモリマップ最適化作業を容易にし、また、実際に性能測定を行った結果から最適なメモリマップを見つけ出すことで、確実に最適なメモリマップを構築することを目的とする。
【０００６】
【課題を解決するための手段】
この発明に係るメモリマップ最適化方式は、種類の異なる複数のメモリの構成を定義するメモリマップ構成を一つのエントリとして、複数のエントリを格納するメモリマップテーブルと、
ユーザプログラムを記憶するプログラム記憶部と、
上記プログラム記憶部に記憶されたユーザプログラムと上記メモリマップテーブルに格納された一つのエントリとを読み出し、読み出したプログラムと一つのエントリとを用いて、実行形式のロードモジュールを生成する実行形式生成手段と、
上記ロードモジュールを実行させて性能を測定する性能測定手段と、
上記性能測定手段が測定した性能測定結果を格納する性能測定結果テーブルと、
上記ロードモジュールと上記性能測定手段とを起動し、上記性能測定手段が上記性能測定結果テーブルへ性能測定結果を格納することを指示する起動手段とを備えることを特徴とする。
【０００７】
【発明の実施の形態】
実施の形態１．
本発明の実施例について図面を参照して説明する。
図１はこの発明の一実施例を示す構成図である。
図１のメモリマップ最適化方式（「メモリマップ最適化方式」は、「メモリマップ生成方式」、あるいは、「メモリマップ構築方式」ともいう）は、ホスト端末１、タイマ２、電力計３、ターゲットデバイス４を備える。
ホスト端末１は、ホスト端末上のデータを格納する記憶装置１ａ、ホスト端末とタイマ、電力計、ターゲットデバイス間の通信を制御するホスト端末通信制御部１ｂとを備える。また、図１には明記していないが、最適化手順全体を制御する制御部（最適化制御部）を備え、プロセッサを含むものとする。制御部は、記憶装置１ａに格納される各手段（後述する）を実行する際に、制御を行なう。
【０００８】
１ｃ〜１ｓは記憶装置１ａ内に格納されている構成要素であり、スタートアッププログラムのソースコードであるスタートアッププログラムソース１ｃ、ユーザプログラムのソースコードであるユーザプログラムソース１ｄ、コンパイラ１ｅ、リンカ１ｆ、ユーザプログラムのロードモジュールをターゲットデバイス上のフラッシュＲＯＭに書込むフラッシュＲＯＭ書込みプログラム１ｇ、ユーザプログラムのロードモジュールを生成するロードモジュール生成手段１ｈ、ターゲットデバイス上のスタートアッププログラムを起動するスタートアッププログラム起動手段１ｉ、ユーザプログラムの実行時間をタイマ２を使用して測定する実行時間測定手段１ｊ、ユーザプログラム実行時のターゲットデバイスの消費電力を電力計３を使用して測定する消費電力測定手段１ｋ、ロードモジュールを生成し性能測定を行う、ユーザプログラムのメモリマップ構成が記述されたメモリマップテーブル１ｌ、各メモリマップ構成にて実施した性能測定結果が記述された性能測定結果テーブル１ｒ、メモリマップテーブル１ｌおよび性能測定結果テーブル１ｒにおいて、ロードモジュール生成及び性能測定を実施するメモリマップ構成を指し示すエントリ番号を保持するメモリマップテーブルエントリ番号保持部１ｓとを含む。
【０００９】
また、スタートアッププログラム起動手段１ｉは、起動手段ともいう。
起動手段は、スタートアッププログラムによって実現される機能を実行する場合であれば、必ずしもスタートアッププログラムあるいは同等のプログラムによって実行する場合ではなく、起動手段そのものによって実行する場合であってもよい。
実行時間測定手段１ｊと消費電力測定手段１ｋとを性能測定手段ともいう。
【００１０】
プログラム格納部１ｖは、スタートアッププログラムソース１ｃとユーザプログラムソース１ｄとを格納する記憶装置１ａの記憶領域を示す。
実行形式生成手段１ｗは、コンパイラ１ｅとリンカ１ｆとフラッシュＲＯＭ書込みプログラム１ｇとを格納する記憶装置１ａの記憶領域を示す。なお、実行形式生成手段格納部１ｗは、フラッシュＲＯＭ書込みプログラム１ｇを含まない場合もある。
【００１１】
タイマ２は、ホスト端末１間との通信を制御するタイマ通信制御部２ａ、ユーザプログラムの実行時間を測定する実行時間測定部２ｂ、測定した実行時間値を格納する実行時間格納用バッファ２ｃを備える。
電力計３は、ホスト端末間との通信を制御する電力計通信制御部３ａ、ターゲットデバイスの消費電力を測定する消費電力測定部３ｂ、測定した消費電力値を格納する消費電力格納用バッファ３ｃを備える。
ターゲットデバイス４は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）４ａ、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）４ｂ、Ｉ／Ｏ（Ｉｎ／Ｏｕｔ）コントローラ４ｃ、ホスト端末間との通信を制御するターゲットデバイス通信制御部４ｄ、フラッシュＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）４ｅ、ＳＤＲＡＭコントローラ４ｆ、ＳＤＲＡＭ（Ｓｔａｔｉｃ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）４ｇ、フラッシュＲＯＭ上に書込まれたロードモジュール４ｈ、ロードモジュール内のスタートアッププログラム４ｉ、ロードモジュール内のユーザプログラム４ｊ、プログラム実行フラグ４ｋとを備える。プログラム実行フラグ４ｋは、ＳＤＲＡＭ上に存在し、スタートアッププログラムによってユーザプログラム起動時に１がセットされ、ユーザプログラム終了時に０（零）がセットされる。
【００１２】
次に、図２，図３を用いて、メモリマップテーブル１ｌ及び性能測定結果テーブル１ｒについて説明する。
図２はメモリマップテーブル１ｌの一例を表した図である。
図３は性能測定結果テーブル１ｒの一例を表した図である。
メモリマップテーブル１ｌ及び性能測定結果テーブル１ｒとは、複数のエントリを有し、それぞれのエントリにエントリ番号が付されている。
メモリマップテーブル１ｌは、複数種類のメモリの構成を定義するテーブルである。メモリ構成は、ターゲットデバイス４のメモリ構成を定義し、ターゲットデバイスのメモリ構成は、ユーザプログラム（関数、セクション、オブジェクト）の容量に基づいて構成される。図２では、リセットベクタ、割込みベクタ、スタック領域、コード領域、変数領域の種類のメモリマップ構成を示した例である。
性能測定結果テーブル１ｒは、上記メモリマップテーブル１ｌに定義されたメモリマップ構成でユーザプログラムを実行した場合の性能結果を格納する。メモリマップテーブル１ｌのエントリ番号と、性能測定結果テーブル１ｒのエントリ番号とは対応している。メモリマップテーブル１ｌのエントリ番号に対応づけられるメモリマップ構成を用いて測定した結果は、性能測定結果テーブル１ｒにおいて、同じエントリ番号を付与したエントリに格納される。
【００１３】
次に、メモリマップ最適化手順の動作の一例を説明する。
図４はメモリマップ最適化の動作の一例を表すフローチャート図である。
以下では、ユーザが作成したメモリマップテーブルに記述された各メモリマップ構成ごとにロードモジュールを生成し、各ロードモジュールの性能測定を実施し、測定結果を性能測定結果テーブルに記述し、ユーザが性能測定結果テーブル上の性能測定結果から最適なメモリマップ構成を探し出す場合のメモリマップ最適化手順について図２，図３，図４を用いて説明する。
以下の説明において、次に示す用語を用いる。
オブジェクトモジュールは、プログラム（ユーザプログラム）をコンパイラ１ｅによってコンパイルして生成されたモジュールである。
ロードモジュールは、上記オブジェクトモジュールをメモリマップテーブル１ｌに記述されたメモリマップ構成で、リンカ１ｆによってリンクして生成されたモジュールであり、ユーザプログラムを計算機上で実行させる実行形式である。
また、コンパイラ１ｅとリンカ１ｆとを併せて実行形式生成手段ともいう。実行形式生成手段には、フラッシュＲＯＭ書込みプログラム１ｇあるいは同様の機能を含む場合もある。
【００１４】
まず、ユーザプログラムのロードモジュールを生成するステップ（図４ステップ１０１〜１０７）について説明する。
図４のステップ１０１において、ユーザは複数種類のメモリマップ構成を作成し、図２に示すメモリマップテーブル１ｌに記述する。このメモリマップ構成ごとにロードモジュールの生成、性能測定を実施し、最も優れた性能結果となったメモリマップ構成が最適なメモリマップ構成となる。メモリマップテーブル１ｌの最終エントリ（Ｎ）の次のエントリ（Ｎ＋１）にはオールＦ（０ｘＦＦＦＦＦＦＦＦ）を設定し、メモリマップテーブル１ｌが終わったことを示す。
【００１５】
ステップ１０２において、エントリ番号保持部１ｓに記憶しているメモリマップテーブル１ｌおよび性能測定結果テーブル１ｒのエントリ番号をリセットする（各テーブルの先頭を指し示す値にする）。図２に示した例の場合、エントリ番号を１にリセットすることになる。
ステップ１０３において、ロードモジュール生成手段１ｈは、コンパイラ１ｅを使用して、ホスト端末１上のスタートアッププログラムソース１ｃとユーザプログラムソース１ｄをコンパイルしてオブジェクトモジュール（図示しない）を生成する。生成したオブジェクトモジュールは、記憶装置１ａの所定の領域に記憶される。
ステップ１０４において、ロードモジュール生成手段１ｈは、エントリ番号保持部１ｓからエントリ番号を読出し、メモリマップテーブル１ｌから対応するエントリ番号のメモリマップ構成を読込む。
【００１６】
ステップ１０５において、読込んだメモリマップ構成値がオールＦ（０ｘＦＦＦＦＦＦＦＦ）の場合（メモリマップテーブル１ｌのエントリが終わったことを示す）はメモリマップテーブル１ｌ上の全てのメモリ構成について性能測定を実施したと判断し、ステップ１１５に進む。オールＦ以外の場合はステップ１０６に進む。
ステップ１０６において、ロードモジュール生成手段１ｈは、メモリマップテーブル１ｌから読込んだメモリマップ構成をリンカ１ｆに与えてオブジェクトモジュールをリンクし、ロードモジュールを生成する。
ステップ１０７において、ロードモジュール生成手段１ｈは、フラッシュＲＯＭ書込みプログラム１ｇを使用して、ロードモジュールをターゲットデバイス４のフラッシュＲＯＭ４ｅに書き込む。
【００１７】
次に、ユーザプログラムの性能測定を実施し、その結果から最適なメモリマップ構成を見つけ出すステップ（図４ステップ１０８〜１１５）について説明する。
図４のステップ１０８において、スタートアッププログラム起動手段１ｉによって、ターゲットデバイス上のスタートアッププログラム４ｉが起動される。
ステップ１０９において、スタートアッププログラム４ｉはターゲットデバイス４のＳＤＲＡＭ４ｇ上に存在するプログラム実行フラグ４ｋを１にセットし、ステップ１１０において、ユーザプログラム４ｊを起動する。
【００１８】
ステップ１１１において、ホスト端末上の実行時間測定手段１ｊおよび消費電力測定手段１ｋは、ターゲットデバイス４のＳＤＲＡＭ４ｇ上のプログラム実行フラグ４ｋを監視し、フラグ値が１にセットされたことを検出すると、実行時間測定手段１ｊはタイマ２を、消費電力測定手段１ｋは電力計３をそれぞれ起動し、性能測定を開始する。消費電力測定手段１ｋは、一定の間隔で電力計３に対してターゲットデバイス４の消費電力測定を要求し、これを受けた電力計３は消費電力を測定し測定値を消費電力格納用バッファ３ｃに格納する。
ステップ１１２において、スタートアッププログラム４ｉはユーザプログラム４ｊが終了したことを検知すると、プログラム実行フラグ４ｋを０（零）にセットする。実行時間測定手段１ｊは、ターゲットデバイス上のプログラム実行フラグ４ｋが０にセットされたことを検出すると、タイマ２による測定を停止する。
タイマ２は測定した実行時間を実行時間格納用バッファ２ｃに書き込む。また、消費電力測定手段１ｋは、ターゲットデバイス上のプログラム実行フラグ４ｋが０にクリアされたことを検出すると、電力計３による測定を停止する。
【００１９】
ステップ１１３において、実行時間測定手段１ｊは、タイマ２から実行時間格納用バッファ２ｃに格納された実行時間値を読込み、性能測定結果テーブル１ｒ上において、エントリ番号保持部１ｓに記録されたエントリ番号に対応した「処理時間」の欄に書き込む。また消費電力測定手段１ｋは、電力計３から消費電力格納用バッファ３ｃに格納された消費電力値を読込み、消費電力値の平均値を算出し、性能測定結果テーブル１ｒ上において、エントリ番号保持部１ｓに記録されたエントリ番号に対応した「消費電力」の欄に書き込む。
ステップ１１４においてエントリ番号保持部１ｓのエントリ番号を１インクリメントしてステップ１０４に進む。
ステップ１０５において、メモリマップテーブル１ｌ上の全てのメモリ構成について性能測定を実施したと判断した場合は、ステップ１１５において、ホスト端末１の画面上にメモリマップテーブル１ｌおよび性能測定結果テーブル１ｒを表示する。ユーザはこれらのテーブルから最適なメモリマップを見つけ出して、最適なメモリマップのロードモジュールを生成することで、メモリマップ最適化処理を終了する。
【００２０】
このように、実施の形態１では、アクセス速度や容量が異なる複数種類のメモリを実装したシステムのメモリマップ最適化方式（及び方法）において、複数種類のメモリマップ構成が記述されたメモリマップテーブル１ｌと、メモリマップテーブル１ｌに記述されたメモリマップ構成を読み込み、コンパイラ１ｅ、リンカ１ｆを用いてユーザプログラムソース１ｄのソースコードからロードモジュールを生成するロードモジュール生成手段１ｈと、ターゲットデバイス４上のユーザプログラム４ｊを起動するスタートアッププログラム起動手段１ｉと、前記スタートアッププログラム起動手段１ｉで起動したユーザプログラムの性能を測定する性能測定実行手段（一例として、実行時間測定手段１ｊ、消費電力測定手段１ｋ）と、前記性能測定実行手段により測定された結果を記述する性能測定結果テーブル１ｒを備えるメモリマップ最適化方式を説明した。
【００２１】
また、前記性能測定実行手段において、ユーザプログラムの実行時間を測定するタイマ２と、前記タイマ２による測定の開始／停止制御と測定結果を読込み前記性能測定結果テーブル１ｒへの書込みを行う実行時間測定手段１ｊと、ユーザプログラム実行時のターゲットデバイス４の消費電力を測定する電力計３と、前記電力計３による測定の開始／停止制御と測定結果を読込み前記性能測定結果テーブル１ｒへの書込みを行う消費電力測定手段１ｋを備える点について説明した。
以上のように、実施の形態１のメモリマップ最適化方式及び方法は、ロードモジュールの生成、ロードモジュールのフラッシュＲＯＭ４ｅへの書込み、スタートアッププログラムの起動、性能測定の実施までの作業を自動化することにより、メモリマップの最適化作業を容易にすることが可能になる。
【００２２】
実施の形態２．
以上の実施の形態１では、性能測定を実施する複数種類のメモリマップ構成の作成をユーザが行い、また最終的に最適なメモリマップ構成をユーザが探すようにしたものであるが、次にこれらメモリマップ構成の作成及び最適なメモリマップ構成の検出を自動的に行う実施の形態を示す。
図５はメモリマップ構成の作成及び最適なメモリマップ構成の検出を自動的に行なう場合の一実施例を示す構成図である。
図５に示した構成要素のうち、図１と同じ符号の構成要素は同様であるため、説明を省略する。
【００２３】
記憶装置１ａは、実施の形態１の構成要素に加え、メモリマップ構築手段１ｍ、最適メモリマップ検索手段（メモリマップ検索手段）１ｎ、メモリ構成テーブル１ｐ、最適条件テーブル（条件テーブル）１ｑとを含む。
メモリマップ構築手段１ｍは、ユーザプログラムのオブジェクトモジュールから各プログラム（各機能）（関数、セクション、オブジェクト）の容量を読み取り、メモリ構成テーブル１ｐに記述されたターゲットデバイス４の各メモリの容量に収まるように、またメモリマップテーブル１ｌに既に記述されたメモリマップ構成と重複しないように、メモリマップを構築する手段である。
最適メモリマップ検索手段１ｎは、実行時間測定手段１ｊ、消費電力測定手段１ｋによって性能測定結果テーブル１ｒ上に記述された測定結果から、最適条件テーブル１ｑに記述された最適メモリマップの条件を満足するメモリマップ構成を検索する手段である。最適メモリマップ検索手段１ｎは、メモリマップ検索手段ともいう。
メモリ構成テーブル１ｐは、ターゲットデバイス４のメモリ構成が記述されたテーブルである。
最適条件テーブル１ｑは、ユーザによって設定され、最適なメモリマップ構成の条件が記述されたテーブルである。最適条件テーブル１ｑは、条件テーブルともいう。
【００２４】
次に動作について図２，図３，図６，図７，図８を用いて説明する。
図６は、メモリ構成テーブルの一例を表す図である。
図７は、最適条件テーブルの一例を表す図である。
図８は、メモリマップ最適化の動作の一例を表すフローチャート図である。
【００２５】
まず、ユーザプログラムのロードモジュールを生成するステップ（図８ステップ２０１〜２０７）について説明する。
図８のステップ２０１において、ユーザはホスト端末１上に、図６に示すメモリ構成テーブル１ｐと図７に示す最適条件テーブル１ｑを作成する。
ステップ２０２において、エントリ番号保持部１ｓに記憶しているメモリマップテーブル１ｌおよび性能測定結果テーブル１ｒのエントリ番号をリセットする（各テーブルの先頭を指し示す値にする）。
ステップ２０３において、ロードモジュール生成手段１ｈは、コンパイラ１ｅを使用して、ホスト端末１上のスタートアッププログラムソース１ｃとユーザプログラムソース１ｄをコンパイルしてオブジェクトモジュール（図示しない）を生成する。
【００２６】
ステップ２０４において、メモリマップ構築手段１ｍはオブジェクトモジュールから各プログラム（関数、セクション、オブジェクト）の容量を読取り、メモリ構成テーブル１ｐに記述されたターゲットデバイス４の各メモリの容量に収まるように、また図２に示すメモリマップテーブル１ｌに既に記述されたメモリマップ構成と重複しないように、メモリマップを構築する。
ステップ２０５において、メモリマップが構築できたかどうか判断し、構築できた場合はメモリマップテーブル１ｌ上においてエントリ番号保持部１ｓに記憶されたエントリ番号に対応する欄に構築したメモリマップを記述しステップ２０６に進む。メモリマップを構築できなかった場合はステップ２１５に進む。
【００２７】
ステップ２０６において、ロードモジュール生成手段１ｈは、メモリマップテーブル１ｌからステップ２０４〜２０５で構築したメモリマップ構成を読み取りリンカ１ｆに与えてリンクし、ロードモジュールを生成する。
ステップ２０７において、ロードモジュール生成手段１ｈは、フラッシュＲＯＭ書込みプログラム１ｇを使用して、ロードモジュールをターゲットデバイス４のフラッシュＲＯＭ４ｅに書き込む。
【００２８】
次に、ユーザプログラムの性能測定を実施し、その結果から最適なメモリマップ構成を見つけ出すステップ（図８ステップ２０８〜２１９）ついて説明する。図８のステップ２０８において、スタートアッププログラム起動手段１ｉによって、ターゲットデバイス４上のスタートアッププログラム４ｉが起動される。
ステップ２０９において、スタートアッププログラム４ｉはターゲットデバイス４のＳＤＲＡＭ４ｇ上に存在するプログラム実行フラグ４ｋを１にセットし、ステップ２１０において、ユーザプログラム４ｊを起動する。
ステップ２１１において、ホスト端末１上の実行時間測定手段１ｊおよび消費電力測定手段１ｋは、ターゲットデバイス４のＳＤＲＡＭ４ｇ上のプログラム実行フラグ４ｋを監視し、フラグ値が１にセットされたことを検出すると、実行時間測定手段１ｊはタイマ２を、消費電力測定手段１ｋは電力計３をそれぞれ起動し性能測定を開始する。消費電力測定手段１ｋは、一定の間隔で電力計３に対してターゲットデバイス４の消費電力測定を要求し、これを受けた電力計３は消費電力を測定し測定値を消費電力格納用バッファ３ｃに格納する。
【００２９】
ステップ２１２において、スタートアッププログラム４ｉがユーザプログラム４ｊが終了したことを検知すると、プログラム実行フラグ４ｋを０にセットする。実行時間測定手段１ｊは、ターゲットデバイス４上のプログラム実行フラグ４ｋが０にセットされたことを検出すると、タイマ２による測定を停止する。タイマ２は測定した実行時間を実行時間格納用バッファ２ｃに書き込む。また、消費電力測定手段１ｋは、ターゲットデバイス４上のプログラム実行フラグ４ｋが０にクリアされたことを検出すると、電力計３による測定を停止する。
ステップ２１３において、実行時間測定手段１ｊは、タイマ２から実行時間格納用バッファ２ｃに格納された実行時間値を読込み、性能測定結果テーブル１ｒ上において、エントリ番号保持部１ｓに記録されたエントリ番号に対応した「処理時間」の欄に書き込む。また消費電力測定手段１ｋは、電力計３から消費電力格納用バッファ３ｃに格納された消費電力値を読込み、消費電力値の平均値を算出し、性能測定結果テーブル１ｒ上において、エントリ番号保持部１ｓに記録されたエントリ番号に対応した「消費電力」の欄に書き込む。
【００３０】
ステップ２１４においてエントリ番号保持部１ｓのエントリ番号を１インクリメントしてステップ２０４に進む。
ステップ２０４〜２０５において、メモリマップ構築手段１ｍがメモリマップを構築できなかった場合は、ステップ２１５において、最適メモリマップ検索手段１ｎがメモリマップテーブル１ｌおよび性能測定結果テーブル１ｒから、最適条件テーブル１ｑに記述された最適メモリマップの条件を満たすメモリマップ構成を検索する。ステップ２１６において、最適メモリマップの条件を満たすメモリマップ構成が検出された場合は、ステップ２１７において、ロードモジュール生成手段１ｈが検出されたメモリマップ構成のロードモジュールを生成し、ステップ２１８において、フラッシュＲＯＭ書込みプログラム１ｇを使用して、最適なメモリマップ構成のロードモジュールをターゲットデバイス４のフラッシュＲＯＭ４ｅに書き込み、メモリマップ最適化作業を終了する。ステップ２１６において、最適メモリマップの条件を満足するメモリマップ構成が検出されなかった場合は、ホスト端末１の画面上にエラー表示を行い、メモリマップ最適化作業を終了する。
【００３１】
以上のように、この実施の形態のメモリマップ最適化方式（及び方法）は、実施の形態１で説明した方式に加え、前記ロードモジュール生成手段１ｈにおいて、ターゲットデバイス４のメモリ構成が記述されたメモリ構成テーブル１ｐと、前記メモリ構成テーブル１ｐから読込んだ各メモリの容量に収まるように各プログラムを自動的にマッピングして結果を前記メモリマップテーブル１ｌに記述するメモリマップ構築手段１ｍを備える点を説明した。
【００３２】
さらに、前記性能測定実行手段において、前記性能測定結果テーブル１ｒに記述された性能測定結果から最も性能が優れたメモリマップ構成を検索する最適メモリマップ検索手段１ｎを備えること、あるいは、前記性能測定実行手段において、最適なメモリマップ構成として満足する必要がある条件が記述された最適条件テーブル１ｑを備え、前記メモリマップ検索手段１ｎが前記性能測定結果テーブル１ｒから前記最適条件テーブル１ｑに記述された条件を満足するメモリマップ構成を検索することについて説明した。
【００３３】
以上のように、実施の形態２のメモリマップ最適化方式及び方法によれば、メモリマップ構築、ロードモジュールの生成、ロードモジュールのフラッシュＲＯＭへの書込み、スタートアッププログラムの起動、性能測定の実施、最適メモリマップの検出までの作業を自動化することにより、メモリマップの最適化作業を容易にすることが可能になる。
【００３４】
実施の形態３．
上記実施の形態１及び実施の形態２において説明したメモリマップ最適化方式及び方法は、ソフトウェアによって実現することが可能である。メモリマップ最適化方式及び方法を実行する手順を、計算機で実行可能なプログラム（メモリマップ最適化プログラム）によって実現することができる。また、メモリマップ最適化プログラムは、計算機で読み取り可能な記録媒体へ格納することが可能である。
上記メモリマップ最適化プログラムは、計算機上で、プロセッサの制御のもとに実行される。
【００３５】
メモリマップ最適化プログラムは、少なくとも、下記（１）〜（７）の処理（手順）を含む。
（１）複数種類のメモリによって構成されるメモリマップ構成を一つのエントリとして、複数のエントリをメモリマップテーブルへ格納する処理。
（２）ユーザプログラムをプログラム記憶部へ記憶する処理。
（３）上記プログラム記憶部に記憶されたユーザプログラムと上記メモリマップテーブルに格納された一つのエントリを読み出し、読み出したプログラムとを用いて、実行形式のロードモジュールを生成する処理。
（４）ロードモジュールを実行させたときに測定する性能測定結果を格納する性能測定結果テーブルを設置する処理。
（５）上記ロードモジュールを起動する処理。
（６）上記ロードモジュールを実行することによって性能を測定する処理。
（７）測定した性能測定結果を上記性能測定結果テーブルへ格納する処理。
【００３６】
また、上記の処理（手順）には、図１及び図５で示した、記憶装置１ａに含まれる手段を追加することができる。
【００３７】
【発明の効果】
この発明のメモリマップ最適化方式及び方法によれば、メモリマップの最適化ロードモジュールの生成、ロードモジュールのフラッシュＲＯＭへの書込み、スタートアッププログラムの起動、性能測定の実施までの作業を自動化することにより、メモリマップの最適化作業を容易し、ユーザの作業量を抑制することが可能になる。
【図面の簡単な説明】
【図１】この発明の一実施例を示す構成図。
【図２】メモリマップテーブル１ｌの一例を表した図。
【図３】性能測定結果テーブル１ｒの一例を表した図。
【図４】メモリマップ最適化の動作の一例を表すフローチャート図。
【図５】メモリマップ構成の作成及び最適なメモリマップ構成の検出を自動的に行なう場合の一実施例を示す構成図。
【図６】メモリ構成テーブルの一例を表す図。
【図７】最適条件テーブルの一例を表す図。
【図８】メモリマップ最適化の動作の一例を表すフローチャート図。
【符号の説明】
１  ホスト端末、１ａ  記憶装置、１ｂ  ホスト端末通信制御部、１ｃ  スタートアッププログラムソース、１ｄ  ユーザプログラムソース、１ｅ  コンパイラ、１ｆ  リンカ、１ｇ  フラッシュＲＯＭ書込みプログラム、１ｈ  ロードモジュール生成手段、１ｉ  スタートアッププログラム起動手段、１ｊ  実行時間測定手段、１ｋ  消費電力測定手段、１ｌ  メモリマップテーブル、１ｍ  メモリマップ構築手段、１ｎ  最適メモリマップ検索手段、１ｐ  メモリ構成テーブル、１ｑ  最適条件テーブル、１ｒ  性能測定結果テーブル、１ｓ  エントリ番号保持部、１ｖ  プログラム格納部、１ｗ  実行形式生成手段、２  タイマ、２ａ  タイマ通信制御部、２ｂ  実行時間測定部、２ｃ  実行時間格納用バッファ、３  電力計、３ａ  電力計通信制御部、３ｂ  消費電力測定部、３ｃ  消費電力格納用バッファ、４  ターゲットデバイス、４ａ  ＣＰＵ、４ｂ  ＳＲＡＭ、４ｃ  Ｉ／Ｏコントローラ、４ｄ  ターゲットデバイス通信制御部、４ｅ  フラッシュＲＯＭ、４ｆ  ＳＤＲＡＭコントローラ、４ｇ  ＳＤＲＡＭ、４ｈ  ロードモジュール、４ｉ  スタートアッププログラム、４ｊ  ユーザプログラム、４ｋ  プログラム実行フラグ。
【図１】
2004310580.tif 000003
【図２】
2004310580.tif 000004
【図３】
2004310580.tif 000005
【図４】
2004310580.tif 000006
【図５】
2004310580.tif 000007
【図６】
2004310580.tif 000008
【図７】
2004310580.tif 000009
【図８】
2004310580.tif 000010