JP2014142682A - メモリアドレス管理システム及びプログラム - Google Patents

メモリアドレス管理システム及びプログラム Download PDF

Info

Publication number
JP2014142682A
JP2014142682A JP2013008945A JP2013008945A JP2014142682A JP 2014142682 A JP2014142682 A JP 2014142682A JP 2013008945 A JP2013008945 A JP 2013008945A JP 2013008945 A JP2013008945 A JP 2013008945A JP 2014142682 A JP2014142682 A JP 2014142682A
Authority
JP
Japan
Prior art keywords
address
memory
address information
information
original
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2013008945A
Other languages
English (en)
Inventor
Kanako Gyoda
佳奈子 行田
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
Priority to JP2013008945A priority Critical patent/JP2014142682A/ja
Publication of JP2014142682A publication Critical patent/JP2014142682A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】シミュレーションにおいて参照されたアドレスを変換する構成を実現する。
【解決手段】アドレス変換部200は、ISS100で模擬されているメモリにおけるアドレス群の配置が示されるオリジナルアドレス情報500を入力し、前記アドレス群が異なる配置で示される再配置アドレス情報600を入力する。また、アドレス変換部200は、オリジナルアドレス情報500の各アドレスを、再配置アドレス情報600の同じ位置にあるアドレスと対応付ける。また、アドレス変換部200は、ISS100のシミュレーションにおいて参照されたアドレスを入力し、入力したアドレスと一致するアドレスをオリジナルアドレス情報500から抽出し、オリジナルアドレス情報500から抽出したアドレスと同じ位置にあるアドレスを再配置アドレス情報600から抽出し、抽出したアドレスを階層キャッシュモデル300に出力する。
【選択図】図1

Description

本発明は、性能評価のためのシミュレーションにおいてメモリアドレスを管理する技術に関する。
近年の組込み装置には、高性能なプロセッサが採用されるようになり、キャッシュや条件分岐などによって与えられる影響が大きい。
上記機能(キャッシュや条件分岐など)を効果的に利用するソフトウェア(以下、S/Wとも表記する)を実装した場合、ユーザーの想定通りのハードウェア(以下、H/Wとも表記する)性能を満たす。
反対に、上記機能を十分に利用できないS/Wを実装した場合、ユーザーの想定通りのH/W性能を満たせない。
このため、性能低下を引き起こすS/W処理を検出し、H/Wが持つ機能を効果的に利用できるS/Wに改善する必要がある。
この点に関し、性能評価シミュレータを使って、性能低下の要因を検出する技術がある(例えば、特許文献1〜5)。
特開2004−070862号公報 特開2002−304302号公報 特開2001−195263号公報 特開2000−122877号公報 特開2000−66899号公報
性能評価シミュレータによって、「大量のキャッシュミス」が性能低下要因のひとつであることがわかった場合に、この「大量のキャッシュミス」を減らす解決策のひとつとして、キャッシュを効率的に利用するS/W(データ配置)に変更する方法が考えられる。
キャッシュを効果的に利用できるデータ配置を提案したとき、実際にS/Wを修正する前に、どれくらい性能向上を期待できるかを知る必要がある。
つまり、その性能向上の大きさによって、S/Wを修正するか、そのまま修正しないかを決める必要がある。
例えば、性能向上が期待したものより小さかった場合は、S/Wを修正しないという選択をすることが考えられる。
大規模なS/Wほど修正時間や修正による新たな不具合生成のリスクが大きくなるため、このS/W修正前の判断が必要になる。
しかし、机上ではデータ再配置後のキャッシュ動作を模擬し、性能評価することは困難である。
よって、S/Wを変更せずに性能評価シミュレータを使って、性能評価を行なう技術が必要になる。
つまり、性能評価シミュレータが備えるキャッシュメモリモデルへの入力アドレスをデータ再配置後のアドレスに変換し、キャッシュ動作を変更したときの性能評価を行なえば、データ再配置後の性能評価ができる。
本発明は、このような事情に鑑みたものであり、シミュレーションにおいて参照されたメモリアドレスを変換する構成を実現することを主な目的とする。
本発明に係るメモリアドレス管理システムは、
シミュレータで模擬されているメモリにおけるメモリアドレス群の配置が示されるオリジナルアドレス情報を入力するオリジナルアドレス情報入力部と、
前記メモリアドレス群が前記オリジナルアドレス情報の配置とは異なる配置で示される再配置アドレス情報を入力する再配置アドレス情報入力部と、
前記オリジナルアドレス情報の各メモリアドレスを、前記再配置アドレス情報の同じ位置にあるメモリアドレスと対応付けるアドレス対応付け部と、
前記シミュレータのシミュレーションにおいて参照されたメモリアドレスを入力するアドレス入力部と、
前記アドレス入力部により入力されたメモリアドレスと一致するメモリアドレスを前記オリジナルアドレス情報から抽出し、前記アドレス対応付け部によるメモリアドレスの対応付けに従い、前記オリジナルアドレス情報から抽出したメモリアドレスと同じ位置にあるメモリアドレスを前記再配置アドレス情報から抽出するメモリアドレス抽出部と、
前記メモリアドレス抽出部により前記再配置アドレス情報から抽出されたメモリアドレスを出力するアドレス出力部とを有することを特徴とする。
本発明では、シミュレーションにおいて参照されたメモリアドレスを変換し、変換後のメモリアドレスを出力する。
変換後のメモリアドレスの出力先を、キャッシュ動作を模擬するキャッシュ動作模擬システムとすることで、変換後のメモリアドレスでのキャッシュ性能を評価することができる。
実施の形態1に係る性能評価シミュレータ装置の構成例を示す図。 実施の形態1に係るアドレス変換部の構成例を示す図。 実施の形態1に係る性能評価シミュレータ装置の動作例を示すフローチャート図。 実施の形態1に係るアドレス変換リスト生成動作の例を示すフローチャート図。 実施の形態1に係るアドレス変換動作の例を示すフローチャート図。 実施の形態1に係る入力アドレス情報のイメージを示す図。 実施の形態1に係るアドレス変換リストのイメージを示す図。 実施の形態1に係る性能評価シミュレータ装置のハードウェア構成例を示す図。
実施の形態1.
[性能評価シミュレータ装置の構成図(図1の説明)]
図1は、本実施の形態に係る性能評価シミュレータ装置10の構成図である。
性能評価シミュレータ装置10は、命令セットシミュレータ(Instruction Set Simulator)100、アドレス変換部200、階層キャッシュモデル300、遅延サイクル算出/割込み生成モデル400を備える。
命令セットシミュレータ100は、ISS100とも表記する。
命令セットシミュレータ100は、ISS(Instruction Set Simulator)命令実行部110、ISS(Instruction Set Simulator)メモリアクセス部120を備え、命令の処理動作とプログラムカウンタを模擬する。
ISS命令実行部110は、命令の処理動作を模擬する命令インタプリタである。
ISSメモリアクセス部120は、プログラムやデータを格納するメモリを模擬するモデル(プログラム)である。
アドレス変換部200は、階層キャッシュモデル300への入力アドレス(オリジナルアドレス)を、オリジナルアドレス情報500と再配置アドレス情報600に従って、再配置後のアドレスに変換する。
アドレス変換部200は、メモリアドレス管理システムの例に相当する。
階層キャッシュモデル300は、キャッシュミスやキャッシュヒットなどのキャッシュ動作を模擬するキャッシュモデル(プログラム)である。
階層キャッシュモデル300は、キャッシュ動作模擬システムの例に相当する。
遅延サイクル算出/割込み生成モデル400は、分岐命令遅延モデル410、実行サイクル算出部420、アクセス遅延算出部430、経過時間計測部440を備えており、遅延サイクルの算出、割込み発生を実行するモデル(プログラム)である。
分岐命令遅延モデル410は、分岐命令によるパイプラインストールを模擬し、分岐遅延サイクルを算出するモデル(プログラム)である。
実行サイクル算出部420は、模擬する命令の実行サイクルを算出する。
アクセス遅延算出部430は、各種の遅延サイクルを算出する。
経過時間計測部440は、保持する経過時間に各種の遅延時間を加算する。
また、経過時間計測部440は、経過時間が割込み発生時間を超えた場合に、ISS命令実行部110に対して割込みを生成する。
オリジナルアドレス情報500は、データのオリジナルのアドレス配置情報である。
オリジナルアドレス情報500では、ISSメモリアクセス部120が模擬しているメモリにおけるメモリアドレス群の配置が示されている。
以下では、オリジナルアドレス情報500に示されるメモリアドレス群の配置を、オリジナルのアドレス配置という。
なお、オリジナルアドレス情報500のイメージを図6に示す。
再配置アドレス情報600は、データ再配置後のアドレス配置情報である。
再配置アドレス情報600では、ISSメモリアクセス部120が模擬しているメモリにおけるメモリアドレス群がオリジナルアドレス情報500の配置とは異なる配置で示されている。
つまり、再配置アドレス情報600は、ISSメモリアクセス部120が模擬しているメモリに格納されている各データが、オリジナルのアドレス配置におけるメモリアドレスとは異なるメモリアドレスに格納されている状態を表している。
以下では、再配置アドレス情報600に示されるメモリアドレス群の配置を、再配置後のアドレス配置という。
なお、再配置アドレス情報600のイメージを図6に示す。
[入力アドレス情報イメージ図(図6の説明)]
図6は、オリジナルアドレス情報500と、再配置アドレス情報600のイメージを示す。
図6に示すように、オリジナルアドレス情報500では、100番地から200番地までのメモリアドレス群が昇順に配置されている。
これに対して、再配置アドレス情報600では、100番地の次から、192番地の直前までの範囲のメモリアドレス群が、オリジナルのアドレス配置とは異なる配置となっている。
オリジナルアドレス情報500の上から1行目のアドレス情報(100番地)の再配置後のアドレスは再配置アドレス情報600の1行目のアドレス情報(100番地)となる。
この場合、アドレス変換を行なわない。
一方、オリジナルアドレス情報500の上から2行目のアドレス情報(104番地)の再配置後のアドレスは再配置アドレス情報600の2行目のアドレス情報(108番地)となる。
この場合、アドレス変換を行なう。
図6において、データ再配置イメージ700は、オリジナルアドレス情報500の2行目のアドレス情報(104番地)と再配置アドレス情報600の2行目のアドレス情報(108番地)の関係を簡潔に示したイメージ図である。
このように、再配置アドレス情報600は、ISSメモリアクセス部120が模擬しているメモリに格納されている各データ(プログラムを含む)の配置が変更された後の状態を表している。
つまり、再配置アドレス情報600は、ISSメモリアクセス部120が模擬しているメモリにおけるデータ(プログラムを含む)とアドレスの関係が変更された状態を表している。
[アドレス変換部の構成図(図2の説明)]
図2は、性能評価シミュレータ装置10が備えるアドレス変換部200の構成例を示す。
アドレス変換部200は、アドレス変換リスト生成部210、アドレス変換リスト220、アドレス生成部230を備える。
アドレス変換リスト生成部210は、アドレス情報取得部211、アドレス比較部212を備え、アドレス変換リスト220を生成する。
アドレス情報取得部211は、オリジナルアドレス情報500と、再配置アドレス情報600とを入力する。
アドレス情報取得部211は、オリジナルアドレス情報入力部及び再配置アドレス情報入力部の例に相当する。
アドレス比較部212は、行単位でオリジナルアドレス情報500と再配置アドレス情報600を比較した結果に基づいて、アドレス変換リスト220を生成する。
つまり、アドレス比較部212は、オリジナルアドレス情報500の各メモリアドレスを、再配置アドレス情報600の同じ行にあるメモリアドレスと対応付けて、アドレス変換リスト220を生成する。
アドレス比較部212は、アドレス対応付け部の例に相当する。
アドレス変換リスト220は、オリジナルアドレスリスト221、再配置アドレスリスト222で構成される情報である。
オリジナルアドレスリスト221は、アドレス変換リスト生成部210が出力した変換アドレス登録情報(オリジナル)の一覧情報である。
オリジナルアドレスリスト221のイメージを図7に示す。
また、再配置アドレスリスト222は、アドレス変換リスト生成部210が出力した変換アドレス登録情報(再配置)の一覧情報である。
再配置アドレスリスト222のイメージを図7に示す。
図7に示すように、オリジナルアドレスリスト221と再配置アドレスリスト222は、オリジナルアドレス情報500と再配置アドレス情報600との間で相互にメモリアドレスが一致していない範囲を抜き出したものである。
アドレス変換リスト220は、アドレス生成部230がアクセス可能な記憶領域に格納される。
アドレス生成部230は、アドレスチェック部231、アドレス生成処理部232、アドレス入力部233、アドレス出力部234を備え、入力アドレスに対してアドレス変換を行ない再配置後のアドレスを生成する。
アドレス入力部233は、ISS命令実行部110がシミュレーションにおいて参照したオペランドアドレスを入力アドレスとして入力する。
アドレスチェック部231は、入力アドレスが変換アドレスリスト情報(オリジナル)を元に、変換対象アドレスに該当するかを判断する。
つまり、アドレスチェック部231は、入力アドレスと一致するメモリアドレスをオリジナルアドレスリスト221(つまりは、オリジナルアドレス情報500)から抽出する。
アドレスチェック部231は、アドレス生成処理部232とともに、メモリアドレス抽出部の例に相当する。
アドレス生成処理部232は、アドレスチェック部231が、入力アドレスが変換対象アドレスであると判断した場合、変換アドレスリスト情報(再配置)に従って再配置後のアドレスに変換する。
つまり、アドレス生成処理部232は、アドレスチェック部231がオリジナルアドレスリスト221から抽出したメモリアドレスと同じ行(位置)にあるメモリアドレスを再配置アドレスリスト222(つまりは、再配置アドレス情報600)から抽出する。
アドレス生成処理部232は、アドレスチェック部231とともに、メモリアドレス抽出部の例に相当する。
アドレス出力部234は、アドレス生成処理部232により変換された再配置後のアドレスを、階層キャッシュモデル300に出力する。
このように、アドレス変換部200は、階層キャッシュモデル300に、ISS命令実行部110がシミュレーションにおいて参照したオペランドアドレスではなく、再配置後のアドレスを出力する。
これにより、階層キャッシュモデル300に、ISS命令実行部110がシミュレーションにおいて参照したオペランドアドレスではなく、再配置後のアドレスについてのキャッシュ動作を模擬させることができる。
[性能評価シミュレータ装置の動作(図3の説明)]
次に、性能評価シミュレータ装置10の動作について説明する。
図3は、性能評価シミュレータ装置10全体の動作例を示すフローチャートである。
S10では、性能評価シミュレータ装置10のシミュレーションの対象となる対象計算機の各設定を行なう。
具体的には、ユーザーが、対象計算機の命令毎の実行サイクルテーブルを設定する。
また、ユーザーが、ISSメモリアクセス部120に対象計算機のプログラムをロードする。
更に、ユーザーが、ISS命令実行部110で対象計算機のプログラムカウンタを設定する。
また、ユーザーが、割込みを発生させるための割込み時間を設定する。
S20では、アドレス変換リスト生成部210が、アドレス変換リスト220を生成する。
アドレス変換リスト220を生成する詳細動作については、図4で説明する。
S30では、ISS命令実行部110が、設定されたプログラムカウンタを命令アドレスとし、ISSメモリアクセス部120から命令を取り出す。
S40では、ISS命令実行部110が、命令の処理動作を模擬する。
このとき、実行サイクル算出部420が、命令の実行サイクル(実行時間)を算出する。
また、階層キャッシュモデル300が、命令アドレスを入力し、アクセス遅延サイクル(アクセス遅延時間)を算出する。
また、経過時間計測部440が、命令の実行時間とアクセス遅延時間を加算する。
S50では、ISS命令実行部110が、S30で取り出した命令がメモリ参照命令かどうかの判断を行う。
S60では、アドレス生成部230が、階層キャッシュモデル300への入力アドレスをアドレス変換リスト220に従って変換する。
入力アドレスのアドレス変換の詳細動作については、図5で説明する。
S70では、階層キャッシュモデル300が、オペランドアドレスを取得し、アクセス遅延サイクルを算出する。
S80では、分岐命令遅延モデル410が、S30で取り出した命令が、分岐命令か判断する。
分岐命令だった場合、分岐命令遅延モデル410が、分岐命令処理を模擬する。
分岐成立だった場合、分岐の遅延時間を算出し、経過時間に加算する。
また、分岐成立だった場合、ISS命令実行部110は、分岐先アドレスを次に実行するプログラムカウンタとして設定する。
一方、分岐不成立だった場合、ISS命令実行部110は、プログラムカウンタに模擬した命令の命令長を加算し、プログラムカウンタとして設定する。
S90では、遅延サイクル算出/割込み生成モデル400が、割込み処理を模擬する。
具体的には、遅延サイクル算出/割込み生成モデル400が、経過時間が割込み時間を超えたか判断する。
そして、経過時間が割込み時間を超えた場合、次の割込み時間を設定する。
また、プログラムカウンタをアックアップし、割込みベクターをプログラムカウンタとして再設定し、S30に戻る。
一方、経過時間が割込み時間を超えていなかった場合、S80で設定したプログラムカウンタでS30に戻る。
[アドレス変換リスト生成の動作(図4の説明)]
図4は、アドレス変換リスト生成部210の動作例を示すフローチャートである。
図4のフローチャートは、図3のS20におけるアドレス変換リスト220生成動作の詳細を示す。
S21では、アドレス情報取得部211が、オリジナルアドレス情報500と再配置アドレス情報600を読み込む。
例えば、アドレス情報取得部211は、図6に例示したオリジナルアドレス情報500と再配置アドレス情報600を読み込む。
S22では、アドレス情報取得部211が、オリジナルアドレス情報500から1行分のアドレス値を取得し、再配置アドレス情報600から1行分のアドレス値を取得する。
例えば、アドレス情報取得部211は、オリジナルアドレス情報500から2行目のアドレス値(104番地)を取得し、再配置アドレス情報600から2行目のアドレス値(108番地)を取得する。
S23では、アドレス比較部212が、S22でオリジナルアドレス情報500から取得したアドレス値と再配置アドレス情報600から取得したアドレス値が一致しているかを比較する。
アドレス値が一致していた場合(S23でYES)は、S22で取得したアドレス値を破棄し、S25の処理を実行する。
一方、アドレス値が一致しない場合(S23でNO)は、S24の処理を実行する。
例えば、S22においてオリジナルアドレス情報500から2行目のアドレス値(104番地)を取得し、再配置アドレス情報600から2行目のアドレス値(108番地)を取得している場合は、これらの値が一致しているかを判断し、両者が一致しないので、S24の処理を実行する。
S24では、アドレス比較部212が、オリジナルアドレス情報500から取得したアドレス値をオリジナルアドレスリスト221に、再配置アドレス情報600から取得したアドレス値を再配置アドレスリスト222に登録する。
例えば、オリジナルアドレス情報500から取得したアドレス値(104番地)を図7のオリジナルアドレスリスト221の1行目に、再配置アドレス情報600から取得したアドレス値(108番地)を図7の再配置アドレスリスト222の1行目に登録する。
S25では、アドレス情報取得部211が、オリジナルアドレス情報500と再配置アドレス情報600から、それぞれ全てのアドレス情報を読み出したかを確認する。
まだ読み出していないアドレス情報があった場合は、S22の処理に戻り、アドレス情報取得部211は次のアドレス情報を読み出す。
全てのアドレス情報を読み出した場合は、アドレス変換リスト生成動作を停止する。
つまり、図6のオリジナルアドレス情報500と再配置アドレス情報600の26行全てのアドレス値を読み出すまで、S22〜S24の処理を実行し続ける。
各行で、アドレス値が不一致だった場合は全てオリジナルアドレスリスト221と再配置アドレスリスト222に登録される。
[アドレス生成部の動作(図5の説明)]
図5は、アドレス生成部230の動作例を示すフローチャートである。
なお、図5は、図3におけるS60におけるアドレス変換動作の詳細を示す。
S61では、アドレス入力部233が、命令セットシミュレータ100から階層キャッシュモデル300に入力するオリジナルアドレス(入力アドレス)を取得する。
例えば、アドレス生成部230は、入力アドレスとして、152番地を入力する。
S62では、アドレスチェック部231は、アドレス変換リスト220からオリジナルアドレスリスト221を取得する。
具体的には、アドレスチェック部231は、図7のオリジナルアドレスリスト221の1行目から順々にアドレス値(1行目のアドレス値(104番地)〜22行目のアドレス値(188番地))を読み出していく。
S63では、アドレスチェック部231が、入力アドレスが、オリジナルアドレスリスト221に含まれているか確認する。
入力アドレスが、オリジナルアドレスリスト221に含まれている場合は、S64の処理を実行する。
入力アドレスが、オリジナルアドレスリスト221に含まれていない場合は、S65の処理を実行する。
例えば、アドレスチェック部231は、入力アドレス(152番地)とS62で読み出したオリジナルアドレスリスト221の各行のアドレス値を順々に比較する。
オリジナルアドレスリスト221の13行目のアドレス値(152番地)と入力アドレス(152番地)は一致したので、S63の判定はYESとなる。
S64では、アドレス生成処理部232が、S63で抽出したオリジナルアドレスリスト221の行と同じ位置(行)に記述されているアドレス値を再配置アドレスリスト222から取得し、入力アドレスを再配置アドレスリスト222から取得したアドレス値(再配置アドレスという)に置き換える。
具体的には、アドレス生成処理部232は、再配置アドレスリスト222から、オリジナルアドレスリスト221の13行目(152番地)と同じ位置(つまり、13行目)に記載のアドレス値(180番地)を取得し、入力アドレス(152番地)を再配置アドレス(180番地)に変換する。
S65では、アドレス出力部234が、入力アドレス、もしくは再配置アドレスを階層キャッシュモデル300に出力する。
つまり、入力アドレスがオリジナルアドレスリスト221に含まれていた場合、S64で変換した再配置アドレスを出力する。
一方、入力アドレスがオリジナルアドレスリスト221に含まれていなかった場合、S61で取得した入力アドレスを出力する。
このように、本実施の形態に係る性能評価シミュレータ装置によれば、S/Wを変更せずに、データ再配置後のアドレス情報を使ってキャッシュ動作を変更し、性能評価を行なうことができる。
以上、本実施の形態では、S/Wを変更することなく、データ再配置後のキャッシュ動作を変更し、データ再配置後の性能を予測する性能評価シミュレータ装置を説明した。
また、以下の機能を備える性能評価シミュレータ装置を説明した。
・命令セットシミュレータ:命令の処理動作とプログラムカウンタを模擬するモデル
・アドレス変換部:階層キャッシュモデルへの入力アドレスを変換するツール
・階層キャッシュモデル:キャッシュ動作を模擬するキャッシュモデル
・遅延サイクル算出/割込み生成モデル:遅延サイクルの算出、割込み発生を実行するモデル。
また、以下の機能を備える性能評価シミュレータ装置を説明した。
・アドレス変換リスト生成部:アドレス変換情報を示すアドレス変換リストを生成するツール
・アドレス変換リスト:アドレス変換対応を示す情報
・アドレス生成部:アドレス変換リストに従って、階層キャッシュモデルへの入力アドレスをアドレス変換するツール。
更に、以下の機能を備える性能評価シミュレータ装置を説明した。
・アドレス情報取得部:アドレス変換情報(オリジナルアドレス情報、データ再配置後アドレス情報)を取得するツール
・アドレス比較部:アドレス変換情報より、アドレス変換リストを生成するツール。
また、性能評価シミュレータ装置が、以下のリストを含むアドレス変換リストを用いることを説明した。
・オリジナルアドレスリスト:アドレス変換対象のアドレス情報
・再配置アドレスリスト:オリジナルアドレスリストに対応した再配置後のアドレス情報。
また、性能評価シミュレータ装置が、以下の機能を含むアドレス生成部を備えることを説明した。
・アドレスチェック部:階層キャッシュモデルへの入力アドレスが、アドレス変換対象であるかを判断するツール
・アドレス生成処理部:階層キャッシュモデルに入力する入力アドレスが、アドレス変換対象であった場合、再配置後のアドレスに変換するツール。
なお、以上の説明では、アドレス比較部212が、行単位でオリジナルアドレス情報500のメモリアドレスと再配置アドレス情報600のメモリアドレスとを比較し、同じ行に記述されているメモリアドレスが異なっている場合に、それぞれのメモリアドレスをオリジナルアドレスリスト221と再配置アドレスリスト222として抜き出す例を説明した。
これに代えて、アドレス比較部212は、オリジナルアドレス情報500のメモリアドレスと再配置アドレス情報600のメモリアドレスとを比較せずに、オリジナルアドレス情報500の各行のメモリアドレスを再配置アドレス情報600の同じ行のメモリアドレスとを対応付けるようにしてもよい。
この場合は、図6のオリジナルアドレス情報500(100番地〜200番地)と、再配置アドレス情報600(100番地〜200番地)をそのままアドレス変換リストとして用いることになる。
最後に、本実施の形態に示した性能評価シミュレータ装置10のハードウェア構成例を図8を参照して説明する。
性能評価シミュレータ装置10はコンピュータであり、性能評価シミュレータ装置10の各要素をプログラムで実現することができる。
性能評価シミュレータ装置10のハードウェア構成としては、バスに、演算装置901、外部記憶装置902、主記憶装置903、通信装置904、入出力装置905が接続されている。
演算装置901は、プログラムを実行するCPU(Central Processing Unit)である。
外部記憶装置902は、例えばROM(Read Only Memory)やフラッシュメモリ、ハードディスク装置である。
主記憶装置903は、RAM(Random Access Memory)である。
通信装置904は、例えばNIC(Network Interface Card)である。
入出力装置905は、例えばマウス、キーボード、ディスプレイ装置等である。
プログラムは、通常は外部記憶装置902に記憶されており、主記憶装置903にロードされた状態で、順次演算装置901に読み込まれ、実行される。
プログラムは、図1に示す「〜部」として説明している機能を実現するプログラムである。
更に、外部記憶装置902にはオペレーティングシステム(OS)も記憶されており、OSの少なくとも一部が主記憶装置903にロードされ、演算装置901はOSを実行しながら、図1に示す「〜部」の機能を実現するプログラムを実行する。
また、本実施の形態の説明において、「〜の判断」、「〜の判定」、「〜の抽出」、「〜の検知」、「〜の対応付け」、「〜の変換」、「〜の算出」、「〜の比較」、「〜の設定」、「〜の登録」、「〜の選択」、「〜の生成」、「〜の入力」、「〜の出力」等として説明している処理の結果を示す情報やデータや信号値や変数値が主記憶装置903にファイルとして記憶されている。
なお、図8の構成は、あくまでも性能評価シミュレータ装置10のハードウェア構成の一例を示すものであり、性能評価シミュレータ装置10のハードウェア構成は図8に記載の構成に限らず、他の構成であってもよい。
10 性能評価シミュレータ装置、100 命令セットシミュレータ、200 アドレス変換部、210 アドレス変換リスト生成部、211 アドレス情報取得部、212 アドレス比較部、220 アドレス変換リスト、221 オリジナルアドレスリスト、222 再配置アドレスリスト、230 アドレス生成部、231 アドレスチェック部、232 アドレス生成処理部、233 アドレス入力部、234 アドレス出力部、300 階層キャッシュモデル、400 遅延サイクル算出/割込み生成モデル、410 分岐命令遅延モデル、420 実行サイクル算出部、430 アクセス遅延算出部、440 経過時間計測部、500 オリジナルアドレス情報、600 再配置アドレス情報。

Claims (5)

  1. シミュレータで模擬されているメモリにおけるメモリアドレス群の配置が示されるオリジナルアドレス情報を入力するオリジナルアドレス情報入力部と、
    前記メモリアドレス群が前記オリジナルアドレス情報の配置とは異なる配置で示される再配置アドレス情報を入力する再配置アドレス情報入力部と、
    前記オリジナルアドレス情報の各メモリアドレスを、前記再配置アドレス情報の同じ位置にあるメモリアドレスと対応付けるアドレス対応付け部と、
    前記シミュレータのシミュレーションにおいて参照されたメモリアドレスを入力するアドレス入力部と、
    前記アドレス入力部により入力されたメモリアドレスと一致するメモリアドレスを前記オリジナルアドレス情報から抽出し、前記アドレス対応付け部によるメモリアドレスの対応付けに従い、前記オリジナルアドレス情報から抽出したメモリアドレスと同じ位置にあるメモリアドレスを前記再配置アドレス情報から抽出するメモリアドレス抽出部と、
    前記メモリアドレス抽出部により前記再配置アドレス情報から抽出されたメモリアドレスを出力するアドレス出力部とを有することを特徴とするメモリアドレス管理システム。
  2. 前記アドレス出力部は、
    キャッシュ動作を模擬するキャッシュ動作模擬システムに、前記メモリアドレス抽出部により前記再配置アドレス情報から抽出されたメモリアドレスを出力して、
    前記シミュレータのシミュレーションにおいて参照されたメモリアドレスではなく、前記再配置アドレス情報から抽出されたメモリアドレスについてのキャッシュ動作を前記キャッシュ動作模擬システムに模擬させることを特徴とする請求項1に記載のメモリアドレス管理システム。
  3. 前記アドレス対応付け部は、
    相互に同じ位置にある前記オリジナルアドレス情報のメモリアドレスと前記再配置アドレス情報のメモリアドレスとを比較し、相互に同じ位置にある前記オリジナルアドレス情報のメモリアドレスと前記再配置アドレス情報のメモリアドレスとが異なる場合に、前記オリジナルアドレス情報のメモリアドレスを、前記再配置アドレス情報の同じ位置にあるメモリアドレスと対応付けることを特徴とする請求項1又は2に記載のメモリアドレス管理システム。
  4. 前記アドレス入力部は、
    前記前記シミュレータのシミュレーションにおいて参照されたオペランドメモリアドレスを入力することを特徴とする請求項1に記載のメモリアドレス管理システム。
  5. コンピュータを、請求項1に記載されたメモリアドレス管理システムとして機能させることを特徴とするプログラム。
JP2013008945A 2013-01-22 2013-01-22 メモリアドレス管理システム及びプログラム Pending JP2014142682A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013008945A JP2014142682A (ja) 2013-01-22 2013-01-22 メモリアドレス管理システム及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013008945A JP2014142682A (ja) 2013-01-22 2013-01-22 メモリアドレス管理システム及びプログラム

Publications (1)

Publication Number Publication Date
JP2014142682A true JP2014142682A (ja) 2014-08-07

Family

ID=51423934

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013008945A Pending JP2014142682A (ja) 2013-01-22 2013-01-22 メモリアドレス管理システム及びプログラム

Country Status (1)

Country Link
JP (1) JP2014142682A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016016262A (ja) * 2014-07-10 2016-02-01 サミー株式会社 スロットマシン
JP2016016263A (ja) * 2014-07-10 2016-02-01 サミー株式会社 スロットマシン
JP2016168468A (ja) * 2016-06-29 2016-09-23 サミー株式会社 スロットマシン
WO2018158846A1 (ja) * 2017-02-28 2018-09-07 三菱電機株式会社 シミュレーション装置、シミュレーション方法およびシミュレーションプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016016262A (ja) * 2014-07-10 2016-02-01 サミー株式会社 スロットマシン
JP2016016263A (ja) * 2014-07-10 2016-02-01 サミー株式会社 スロットマシン
JP2016168468A (ja) * 2016-06-29 2016-09-23 サミー株式会社 スロットマシン
WO2018158846A1 (ja) * 2017-02-28 2018-09-07 三菱電機株式会社 シミュレーション装置、シミュレーション方法およびシミュレーションプログラム
DE112017006932T5 (de) 2017-02-28 2019-10-10 Mitsubishi Electric Corporation Simulationseinrichtung, Simulationsverfahren und Simulationsprogramm

Similar Documents

Publication Publication Date Title
Konstantinidis et al. A quantitative roofline model for GPU kernel performance estimation using micro-benchmarks and hardware metric profiling
JP5510543B2 (ja) 情報処理装置の使用量解析方法、情報処理システム及びそのプログラム
KR102374380B1 (ko) 인공지능 칩 테스트 방법, 장치, 기기 및 저장매체
JP5776688B2 (ja) 情報処理装置及びタスク切り替え方法
US10235483B2 (en) Capturing time-slice of emulation data for offline embedded software debug
US9910944B2 (en) X-propagation in emulation using efficient memory
JP2014142682A (ja) メモリアドレス管理システム及びプログラム
JP7135853B2 (ja) バッファオーバーフローの低減
US20130013283A1 (en) Distributed multi-pass microarchitecture simulation
CN108874656A (zh) 代码测试方法、装置、可读存储介质及计算机设备
US9659118B2 (en) X-propagation in emulation
US20180253547A1 (en) Control flow integrity
US8555030B2 (en) Creating multiple versions for interior pointers and alignment of an array
US20150160944A1 (en) System wide performance extrapolation using individual line item prototype results
US10628542B2 (en) Core-only system management interrupt
JP5429363B2 (ja) マルチコアプロセッサシステム、制御プログラム、および制御方法
Wang et al. Characterization and architectural implications of big data workloads
Poore GPU-accelerated time-domain circuit simulation
CN103853591A (zh) 用于虚拟机管理器获取异常指令的装置和控制方法
US9606779B2 (en) Data processing system and data simulation method in the system
JP6142878B2 (ja) 情報システムの性能評価装置、方法およびプログラム
Prakash et al. Modelling communication overhead for accessing local memories in hardware accelerators
JP2015130018A (ja) 検証プログラム、検証装置および検証方法
JP6234640B2 (ja) シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム
KR101581531B1 (ko) 가상 머신의 라이브 마이그레이션 방법 및 장치