JP6821509B2 - 情報処理装置並びにその制御方法及び制御プログラム - Google Patents

情報処理装置並びにその制御方法及び制御プログラム Download PDF

Info

Publication number
JP6821509B2
JP6821509B2 JP2017103457A JP2017103457A JP6821509B2 JP 6821509 B2 JP6821509 B2 JP 6821509B2 JP 2017103457 A JP2017103457 A JP 2017103457A JP 2017103457 A JP2017103457 A JP 2017103457A JP 6821509 B2 JP6821509 B2 JP 6821509B2
Authority
JP
Japan
Prior art keywords
access
bus
unit
information
access destination
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
Application number
JP2017103457A
Other languages
English (en)
Other versions
JP2018200495A (ja
Inventor
英一 新井
英一 新井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2017103457A priority Critical patent/JP6821509B2/ja
Priority to US15/917,605 priority patent/US20180341601A1/en
Publication of JP2018200495A publication Critical patent/JP2018200495A/ja
Application granted granted Critical
Publication of JP6821509B2 publication Critical patent/JP6821509B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/105Program control for peripheral devices where the programme performs an input/output emulation function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

本発明は、情報処理装置並びにその制御方法及び制御プログラムに関し、例えば仮想環境を備える情報処理装置並びにその制御方法及び制御プログラムに関する。
特許文献1には、半導体集積回路の論理検証にて使用するテストタスクの生成方法に関する技術が開示されている。そして、特許文献1には、SoC(System On a Chip)ソフトウェアモデルがSoCデバイスの内蔵CPU用のファームウェア開発の際のスタブ(stub)として使用される点が開示されている。
特開2011−145880号公報
ところで、組込み機器用のソフトウェアを仮想環境で実行した際に、仮想環境における未実装領域へのアクセスが発生した場合、シミュレーションが停止してしまうという問題点がある。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
一実施の形態によれば、情報処理装置は、バスアクセスのアクセス先が仮想環境内に定義されていない場合に、当該アクセス先に対応する記憶領域をスタブ領域として仮想環境が有する仮想バス部内に確保するものである。
前記一実施の形態によれば、仮想環境における未実装領域へのアクセスが発生した場合に適切なシミュレーション結果を返すことができる。
本実施の形態1にかかる情報処理装置のハードウェア構成を説明するためのブロック図である。 本実施の形態1にかかるソフトウェア構成を説明するためのブロック図である。 本実施の形態1にかかる仮想環境の機能的構成を説明するためのブロック図である。 本実施の形態1にかかるバスマップの例を示す図である。 本実施の形態1にかかるアクセス先リスト登録処理の流れを説明するためのフローチャートである。 本実施の形態1にかかるバスアクセス処理の流れを説明するためのフローチャートである。 本実施の形態1にかかるトランザクション(スタブ領域宛)の例を示す図である。 本実施の形態1にかかるトランザクション(DMA_1宛)の例を示す図である。 本実施の形態1にかかるトランザクション(エラーケース)の例を示す図である。 本実施の形態1にかかるエラーメッセージの例を示す図である。 本実施の形態2にかかる情報処理装置の全体構成を説明するためのブロック図である。 本実施の形態2にかかる全アドレス空間情報の例を示す図である。 本実施の形態2にかかるバスアクセス処理の流れを説明するためのフローチャートである。
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU(Central Processing Unit)、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non−transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
<実施の形態1>
図1は、本実施の形態1にかかる情報処理装置1のハードウェア構成を説明するためのブロック図である。情報処理装置1は、マイクロコンピュータ(不図示)の仮想環境を実現するコンピュータシステムの一例である。情報処理装置1は、表示装置2及び入力装置3と接続される。表示装置2は、情報処理装置1からの指示により画面表示を行う。入力装置3は、情報処理装置1に対してユーザの指示の入力を行う。入力装置3は、例えば、ユーザから文字情報の入力を受け付けるキーボードや、表示装置2の画面上における任意の位置を指定し、その位置に表示されていたアイコン等に応じた指示の入力を受け付けるマウス等である。但し、情報処理装置1に接続される装置はこれらに限定されない。
情報処理装置1は、CPU11と、メインメモリ12と、ハードディスク13とを備える。CPU11は、所定のプログラムを読み込み実行する制御装置である。メインメモリ12は、例えば、RAM(Random Access Memory)等の揮発性記憶装置である。ハードディスク13は、不揮発性記憶装置である。ハードディスク13は、OS(Operating System)131、仮想環境プログラム132、シミュレーション用データ133、バスマップ134、組込みプログラム135等を記憶する。
OS131は、情報処理装置1を動作させるための基本ソフトである。仮想環境プログラム132は、組込み機器であるマイクロコンピュータをソフトウェア的に実現し、当該マイクロコンピュータ上での組込みプログラム135の実行をシミュレーションするためのソフトウェアである。シミュレーション用データ133は、前記シミュレーションに用いられる各種データである。バスマップ134は、仮想環境プログラム132により実現される仮想環境内に定義された複数の仮想的な周辺IP等(回路ブロック)のアドレス情報をアクセス先として定義した管理情報である。組込みプログラム135は、元々、所定の組込み機器上で実行するために開発されたソフトウェアである。そして、組込みプログラム135は、デバッグ等の目的により仮想環境プログラム132により実行される、シミュレーション対象のプログラムである。
ここで、CPU11は、ハードディスク13に保存されたOS131、仮想環境プログラム132、シミュレーション用データ133、バスマップ134及び組込みプログラム135をメインメモリ12にロードする。そして、CPU11は、メインメモリ12にロードされたOS131及び仮想環境プログラム132を実行する。また、CPU11は、仮想環境プログラム132の実行により組込みプログラム135を実行する。そのため、情報処理装置1は、所定の組込み機器用の組込みプログラム135を実行する仮想環境を備えるものといえる。
図2は、本実施の形態1にかかるソフトウェア構成を説明するためのブロック図である。図2では、OS131上で仮想環境プログラム132が動作し、仮想環境プログラム132上で組込みプログラム135が動作することを示す。仮想環境プログラム132は、仮想CPU部41、仮想バス部42及び仮想的な周辺IP部43を備える。仮想CPU部41、仮想バス部42及び周辺IP部43は、例えば、クラスとして定義され、仮想環境プログラム132の実行時にそれぞれがインスタンス化されることにより実現される。
仮想バス部42は、アクセス先リスト421と、スタブ領域422と、領域確保部423と、アクセス処理部424とを備える。アクセス先リスト421は、バスマップ134に定義されたアクセス先のうち、仮想バス部42に接続されたスレーブのアドレス情報と、仮想バス部42を経由するアクセス先であり、かつ、スタブ領域422のアドレス情報と、を仮想バス部42内で管理するための情報である。スタブ領域422は、仮想環境プログラム132における未実装の記憶領域である。
領域確保部423は、組込みプログラム135の実行におけるバスアクセスのアクセス先が仮想環境内に定義されていない場合に、当該アクセス先に対応する記憶領域をスタブ領域422として仮想バス部42内に確保する。尚、アクセス先リスト421及びスタブ領域422は、仮想バス部42内のメンバ変数であり、実際にはメインメモリ12に領域が確保される。アクセス処理部424は、バスアクセスを処理する。尚、領域確保部423及びアクセス処理部424は、仮想バス部42内のメソッドまたは関数等である。
周辺IP部43は、例えば、DMA(Direct Memory Access)431と、INTC(Interrupt Controller)432とを備える。尚、DMA431及びINTC432は、本来、ハードウェアであるDMA及びINTCをソフトウェア上で実現したものである。尚、周辺IP部43は、これらに限定されない。
図3は、本実施の形態1にかかる仮想環境の機能的構成を説明するためのブロック図である。仮想CPU部41は、仮想バス部42aと、仮想バス部42bとソケット接続されている。また、仮想バス部42aは、仮想CPU部41と、周辺IP部43aに含まれるDMA_1_431a及びINTC_1_432aと、ソケット接続されている。同様に、仮想バス部42bは、仮想CPU部41と、周辺IP部43bに含まれるDMA_2_431b及びINTC_2_432bと、ソケット接続されている。
組込みプログラム135のシミュレーション開始時に、仮想CPU部41、仮想バス部42a及び42b、DMA_1_431a及びDMA_2_431b、並びに、INTC_1_432a及びINTC_2_432bは、必要に応じてソケット接続されるものとする。また、当該シミュレーション開始時に、仮想バス部42a及び42bは、バスマップ134を読み込み、自己と接続された周辺IP(スレーブ)とそのアドレス範囲をアクセス先リスト421に保存する。また、例えば、バスマップ134に仮想バス部42aのスタブ情報が定義されている場合は、仮想バス部42aはスタブ領域422を確保する。
図4は、本実施の形態1にかかるバスマップ134の例を示す図である。バスマップ134は、アクセス先の周辺IP部のソケット名、開始アドレス、アドレスサイズ及びバス名を含む。特に、図4では、3つ目にスタブ情報の例が定義されていることを示す。アクセス先である「PERIPHERAL_A」は、組込みプログラム135の対象の組込み機器には実装されているが、仮想環境プログラム132には未実装であるものとする。そして、バス名として仮想バス部42aに相当する「RH850.BUS_1」が定義されていることを示す。
図5は、本実施の形態1にかかるアクセス先リスト登録処理の流れを説明するためのフローチャートである。アクセス先リスト登録処理は、仮想環境プログラム132による組込みプログラム135のシミュレーション開始時の処理である。また、仮想バス部42は、自己と接続されたスレーブのリストを有しているものとする。
まず、仮想バス部42の領域確保部423は、ハードディスク13に格納されたバスマップ134をオープンする(S101)。そして、領域確保部423は、読み込み先の行がファイルの末尾か否かを判定する(S102)。例えば、図4のバスマップ134の場合、ファイルオープン直後は、読み込み先の行が先頭行でありファイル末尾ではないため、ステップS103へ進む。一方、空ファイル又はすでにファイルの末尾の行まで読み込み済の場合、当該アクセス先リスト登録処理を終了する。
続いて、領域確保部423は、バスマップ134から読み込み先の行を1行読み込む(S103)。そして、領域確保部423は、読み込んだ行のアクセス先が、仮想バス部42に接続されたスレーブ(周辺IP部)であるか否かを判定する(S104)。例えば、図3の仮想バス部42aは、アクセス先のソケット名がDMA_1_431a又はINTC_1_432aのソケット名を示す場合に、当該仮想バス部42aに接続されたスレーブと判定し、ステップS105へ進む。
続いて、領域確保部423は、読み込んだ行のアクセス先をアクセス先リスト421に登録する(S105)。このとき、領域確保部423は、スレーブ名、開始アドレス、最終アドレスに加えて、当該アクセス先のソケットポインタを含めてアクセス先リスト421に登録してもよい。領域確保部423は、少なくともアクセス先が当該仮想バス部42aに接続されたスレーブであることを識別できる識別情報をアクセス先リスト421に登録するものとする。
一方、ステップS104において、アクセス先が当該仮想バス部42に接続されたスレーブでない場合、領域確保部423は、当該アクセス先が自身のバス名を示すか否かを判定する(S106)。例えば、図3の仮想バス部42aは、バスマップ134のバス名に「RH850.BUS_1」と定義されている場合、アクセス先が自身のバス名を示すと判定し、ステップS107へ進む。
そして、領域確保部423は、仮想バス部42内にスタブ領域422を確保する(S107)。つまり、領域確保部423は、スタブ情報に定義されたサイズ分の記憶領域を内部変数に割り当てる。例えば、領域確保部423は、スタブ情報に定義されたサイズ分の配列変数を宣言する。その後、領域確保部423は、読み込んだ行のアクセス先をアクセス先リスト421に登録する(S108)。このとき、領域確保部423は、スタブ名、開始アドレス、最終アドレス及びスタブ領域へのポインタに加えて、当該アクセス先のソケットポインタを「0」としてアクセス先リスト421に登録してもよい。領域確保部423は、少なくともアクセス先がスタブ情報であることを識別できる識別情報をアクセス先リスト421に登録するものとする。
ステップS105、S108の後、又は、ステップS106でNOと判定された場合、ステップS102へ戻り、処理を続ける。
図6は、本実施の形態1にかかるバスアクセス処理の流れを説明するためのフローチャートである。まず、組込みプログラム135のシミュレーションの実行中に、周辺IPのレジスタへのRead又はWriteを行うためのバスアクセスが発生した場合、仮想CPU部41は、アクセス先のアドレスやサイズを含むRead又はWriteのアクセス命令であるトランザクションを、仮想バス部42に向けて送信する。そして、仮想バス部42のアクセス処理部424は、バスアクセスを受け付ける(S111)。
次に、アクセス処理部424は、バスアクセスのアクセス先がアクセス先リスト421に存在するか否かを判定する(S112)。例えば、アクセス処理部424は、バスアクセスのトランザクションの開始アドレスを、アクセス先リスト421の中から検索する。検索にヒットした場合、つまり、アクセス先がアクセス先リスト421に存在する場合、アクセス処理部424は、アクセス先がスタブ領域か否かを判定する(S113)。例えば、アクセス処理部424は、検索にヒットしたアクセス先に対応付けられたソケットポインタが「0」であるか否かを判定する。そして、当該ソケットポインタが「0」である場合、アクセス処理部424は、アクセス先がスタブ領域であると判定する。または、アクセス先リスト421に、アクセス先がスタブ情報か否かを識別できる識別情報が登録されている場合、アクセス処理部424は、当該識別情報に基づいてアクセス先がスタブ領域か否かを判定する。
ステップS113においてアクセス先がスタブ領域である場合、アクセス処理部424は、トランザクションに基づいてスタブ領域へ直接アクセスを行う(S114)。ここで、図7は、本実施の形態1にかかるトランザクション(スタブ領域宛)の例を示す図である。図7では、「address」に「0xFFFFC000」とあり、図4における「PERIPHERAL_A」(スタブ情報)に対応することを示す。この例の場合、アクセス処理部424は、仮想バス部42内のスタブ領域422「0xFFFFC000」から1バイトに対して、データ「0xA5」のWriteコマンドを発行する。
ステップS113においてアクセス先がスタブ領域でない場合、アクセス処理部424は、アクセス先へトランザクションを送信する(S115)。ここで、図8は、本実施の形態1にかかるトランザクション(DMA_1宛)の例を示す図である。図8では、「address」に「0xFFFF8000」とあり、図4における「RH850.DMA_1.ts」に対応することを示す。この例の場合、アクセス処理部424は、DMA_1_431aに対して、図8のトランザクションを、ソケット接続を介して送信する。
ステップS112において、アクセス先がアクセス先リスト421に存在しない場合、アクセス処理部424は、表示装置2へエラーメッセージを出力する(S116)。そして、アクセス処理部424は、シミュレーションを停止する(S117)。例えば、図9は、本実施の形態1にかかるトランザクション(エラーケース)の例を示す図である。図9では、「address」に「0xFFFFD000」とあり、図4のバスマップ134に定義されていないことを示す。それ故、当該アクセス先は、アクセス先リスト421にも登録されていないこととなる。そして、図10は、本実施の形態1にかかるエラーメッセージの例を示す図である。尚、「0xFFFFD000」は、組込みプログラム135が対応する組込み機器に存在するが、仮想環境プログラム132には定義されていない未実装領域である可能性がある。または、「0xFFFFD000」は、当該組込み機器に認められていない領域である可能性もある。
ここで、初期のシミュレーション時には、事前に仮想環境の未実装領域についての情報が不明なことが多い。よって、バスマップ134にスタブ情報を予め定義することが困難なことが考えられる。そのため、次のようなデバッグ作業をすることが挙げられる。
まず、初回のシミュレーション時には、(スタブ領域の定義がされていない)初期設定のバスマップを用いて、本実施の形態のバスアクセス処理を実行する。そして、エラーが出力された場合、ユーザがエラーメッセージを次の(A)又は(B)のいずれかに判別する。(A)ハードウェアで許されていないアドレスである。(B)ハードウェアで許されたアドレスであるが、仮想環境では周辺IPとして仮想バス部に接続されていない。
そして、ユーザが(A)と判別した場合、組込みプログラムの誤りである。そのため、ユーザは、組込みプログラムを修正する。また、ユーザが(B)と判別した場合、エラーメッセージの内容に基づいて、バスマップに上述したスタブ領域の定義を行う。そして、これを繰り返す。このように、トライアンドエラーを繰り返すことにより、未実装領域へのアクセスの情報を容易に得ることができる。よって、デバッグ作業を効率化できる。
また、上述した本実施の形態は、以下のように表現することもできる。すなわち、
所定の組込み機器用の組込みプログラムを実行する仮想環境を備える情報処理装置であって、
前記仮想環境は、
前記組込みプログラムの実行におけるバスアクセスを処理するアクセス処理部を有する仮想バス部を備え、
前記仮想バス部は、
前記バスアクセスのアクセス先が前記仮想環境内に定義されていない場合に、当該アクセス先に対応する記憶領域をスタブ領域として前記仮想バス部内に確保する領域確保部をさらに有する
情報処理装置。
これにより、仮想環境における未実装領域へのアクセスが発生した場合に適切なシミュレーション結果を返すことができる。
また、前記アクセス処理部は、
前記アクセス先が前記仮想バス部に接続されたスレーブである場合、当該バスアクセスにかかるアクセス命令を当該アクセス先に対して送信し、
前記アクセス先が前記スタブ領域である場合、前記アクセス命令に基づいて、前記スタブ領域に対して直接アクセスを行うことが望ましい。
これにより、確保されたスタブ領域に対するwriteアクセスが発生した場合には、write値が保持される。そのため、その後のスタブ領域へのreadアクセスにおいてwrite値が適切に読み出される。
また、スレーブとのソケット接続を介さずにバスアクセスを行うことができるため、仮想環境内にダミーメモリを構成する必要がない。そのため、例えば、デバッグ作業中に当該仮想環境の未実装領域へのアクセスが発覚した場合でも、ダミーメモリを構成するために仮想環境を再ビルドする必要がない。よって、デバッグ時間を短縮することができる。ここで、再ビルドには仮想環境の規模及びビルド環境により数時間を要する場合があるため、本実施形態による効果が顕著といえる。
また、前記情報処理装置は、
前記仮想環境内に定義された複数の回路ブロックのアドレス情報を前記アクセス先として定義したバスマップを記憶する記憶部をさらに備え、
前記バスマップは、前記仮想環境内に定義されていないアクセス先のアドレス情報をスタブ情報としてさらに定義し、
前記領域確保部は、前記バスマップを参照し、前記スタブ情報に対応する記憶領域を前記スタブ領域として前記仮想バス部内に確保することが望ましい。
これにより、バスマップというテキストファイルに予めスタブ情報を記入しておくだけで、仮想環境の再ビルドの必要なく、スタブ領域を確保できる。
さらに、前記領域確保部は、
前記組込みプログラムの実行開始時に、前記バスマップを読み込み、
前記バスマップに定義されたアクセス先のうち、自己の仮想バス部に接続されたスレーブにおけるアドレス情報を、当該仮想バス部内のアクセス先リストへ登録し、
前記バスマップに前記スタブ情報が定義されていた場合、当該スタブ情報を、前記アクセス先リストへさらに登録し、
前記アクセス処理部は、
前記バスアクセスを受け付けた際に、前記アクセス先リストを参照して、前記アクセス先が前記スタブ領域であるか否かを判定すると良い。
これにより、バスアクセス時に仮想バス部内のアクセス先リストを参照するため、アクセス処理を高速化できる。
または、前記アクセス処理部は、
前記バスアクセスを受け付けた際に、前記アクセス先が前記バスマップに定義されていない場合、前記バスアクセスをエラーとして出力すると良い。
これにより、出力されたエラーについてユーザが不正アクセスか否かを判定し、未実装領域へのアクセスの場合、バスマップに容易に追加できる。つまり、仮想環境で定義していない周辺レジスタへのバスアクセスが発生した場合には、一旦、シミュレーションを停止し、ユーザに確認を促すため、不正アクセスを見逃さずに済む。
<実施の形態2>
本実施の形態2は、上述した実施の形態1の改良例である。例えば、上述した実施の形態1では、エラー出力(S116)によりシミュレーションが停止(S117)した場合、ユーザが対象の組込み機器のハードウェア仕様書等を参照して、停止理由を判断する。そして、必要に応じてスタブ情報をバスマップに追加する必要がある。これに対して、本実施の形態2では、仮想環境が自動的にスタブ領域の要否を判定し、必要な場合にはスタブ領域を確保した上で、アクセスを行わせるものである。
すなわち、前記情報処理装置は、
前記組込みプログラムの実行における全てのアクセス先のアドレス情報を定義した全アドレス空間情報を記憶する記憶部をさらに備え、
前記領域確保部は、
前記バスアクセスのアクセス先のうち前記仮想環境内に定義されていないアクセス先が前記全アドレス空間情報に存在する場合、当該アクセス先に対応する記憶領域を前記スタブ領域として前記仮想バス部内に確保するものである。
これにより、未実装領域へのアクセスを事前に把握できない場合でも、自動的にスタブ領域を追加することができる。よって、デバッグ作業をより効率化できる。
さらに、前記領域確保部は、
前記確保したスタブ領域を示すスタブ情報を、アクセス先リストに登録し、
前記アクセス処理部は、
前記バスアクセスを受け付けた際に、前記アクセス先リストを参照して、前記アクセス先が前記スタブ領域である場合、当該バスアクセスにかかるアクセス命令に基づいて、前記スタブ領域に対して直接アクセスを行うと良い。
これにより、再度のスタブ領域の確保が不要となり、処理を効率化できる。
またさらに、前記アクセス処理部は、前記アクセス先が前記全アドレス空間情報に存在しないと判定した場合、前記バスアクセスを不正アクセスとして出力すると良い。
これにより、不正アクセスであることが確実であるため、ユーザの判断が必要なく、デバッグ作業におけるユーザの負担を軽減することができる。
図11は、本実施の形態2にかかる情報処理装置1aの全体構成を説明するためのブロック図である。情報処理装置1aは、上述した情報処理装置1と比べて仮想環境プログラム132が仮想環境プログラム132aに置き換わり、全アドレス空間情報136が追加されたものである。仮想環境プログラム132aは、CPU11に実行されることにより、仮想環境プログラム132の機能に加えて、上述した領域確保部及びアクセス処理部としてさらに機能するものである。
全アドレス空間情報136は、組込みプログラム135に対応する組込み機器における全てのアクセス先(全回路)のアドレス情報を定義した情報である。ここで、図12は、本実施の形態2にかかる全アドレス空間情報136の例を示す図である。
図13は、本実施の形態2にかかるバスアクセス処理の流れを説明するためのフローチャートである。尚、上述した図6と同様の処理については、適宜説明を省略するものとする。
ステップS112においてアクセス先がアクセス先リスト421に存在しない場合、領域確保部423は、アクセス先が全アドレス空間情報136に存在するか否かを判定する(S121)。例えば、領域確保部423は、バスアクセスのトランザクションの開始アドレスを、全アドレス空間情報136の中から検索する。検索にヒットした場合、つまり、アクセス先が全アドレス空間情報136に存在する場合、領域確保部423は、当該アクセス先に対応する記憶領域をスタブ領域422として、仮想バス部42内に確保する(S122)。尚、スタブ領域の確保の仕方は、上述したステップS107と同様である。
そして、領域確保部423は、当該アクセス先をアクセス先リスト421に登録する(S123)。これにより、以後のバスアクセスにおいて当該アクセス先がリストに存在するため、再度のスタブ領域の確保が不要となる。よって、処理を効率化できる。尚、アクセス先リストへの登録の仕方は、上述したステップS108と同様である。
その後、アクセス処理部424は、トランザクションに基づいてステップS122で確保したスタブ領域へ直接アクセスを行う(S114)。ステップS114の処理は、上述した通りである。
ステップS121においてアクセス先が全アドレス空間情報136に存在しない場合、アクセス処理部424は、表示装置2へエラーメッセージを出力する(S116)。そして、アクセス処理部424は、シミュレーションを停止する(S117)。この場合、当該バスアクセスのアクセス先のアドレス情報は、ハードウェアで許されていないアドレスであるため、ユーザによるエラー原因の判別は不要である。
以上のことから、本実施の形態2により、デバッグ作業をより効率化し、ユーザの負担を軽減することができる。
<その他の実施の形態>
上述した各実施の形態は、例えば、IEEE(Institute of Electrical and Electronics Engineers)-1666-2011におけるb_transport, nb_transport_fw, transport_dbgに対応することができる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
1 情報処理装置
1a 情報処理装置
11 CPU
12 メインメモリ
13 ハードディスク
131 OS
132 仮想環境プログラム
132a 仮想環境プログラム
133 シミュレーション用データ
134 バスマップ
135 組込みプログラム
136 全アドレス空間情報
2 表示装置
3 入力装置
41 仮想CPU部
42 仮想バス部
42a 仮想バス部
42b 仮想バス部
421 アクセス先リスト
422 スタブ領域
423 領域確保部
424 アクセス処理部
43 周辺IP部
43a 周辺IP部
43b 周辺IP部
431 DMA
431a DMA_1
431b DMA_2
432 INTC
432a INTC_1
432b INTC_2

Claims (10)

  1. 所定の組込み機器用の組込みプログラムを実行する仮想環境を備える情報処理装置であって、
    前記仮想環境は、
    前記組込みプログラムの実行におけるバスアクセスを処理するアクセス処理部を有する仮想バス部を備え、
    前記仮想バス部は、
    前記バスアクセスのアクセス先が前記仮想環境内に実装されていない場合に、当該アクセス先に対応する記憶領域をスタブ領域として前記仮想バス部内に確保する領域確保部をさらに有する
    情報処理装置。
  2. 前記アクセス処理部は、
    前記アクセス先が前記仮想バス部に接続されたスレーブである場合、当該バスアクセスにかかるアクセス命令を当該アクセス先に対して送信し、
    前記アクセス先が前記スタブ領域である場合、前記アクセス命令に基づいて、前記スタブ領域に対して直接アクセスを行う
    請求項1に記載の情報処理装置。
  3. 前記情報処理装置は、
    前記仮想環境内に定義された複数の回路ブロックのアドレス情報を前記アクセス先として定義したバスマップを記憶する記憶部をさらに備え、
    前記バスマップは、前記仮想環境内に実装されていないアクセス先のアドレス情報をスタブ情報としてさらに定義し、
    前記領域確保部は、前記バスマップを参照し、前記スタブ情報に対応する記憶領域を前記スタブ領域として前記仮想バス部内に確保する
    請求項1に記載の情報処理装置。
  4. 前記領域確保部は、
    前記組込みプログラムの実行開始時に、前記バスマップを読み込み、
    前記バスマップに定義されたアクセス先のうち、自己の仮想バス部に接続されたスレーブにおけるアドレス情報を、当該仮想バス部内のアクセス先リストへ登録し、
    前記バスマップに前記スタブ情報が定義されていた場合、当該スタブ情報を、前記アクセス先リストへさらに登録し、
    前記アクセス処理部は、
    前記バスアクセスを受け付けた際に、前記アクセス先リストを参照して、前記アクセス先が前記スタブ領域であるか否かを判定する
    請求項3に記載の情報処理装置。
  5. 前記アクセス処理部は、
    前記バスアクセスを受け付けた際に、前記アクセス先が前記バスマップに定義されていない場合、前記バスアクセスをエラーとして出力する
    請求項3に記載の情報処理装置。
  6. 前記情報処理装置は、
    前記組込みプログラムの実行における全てのアクセス先のアドレス情報を定義した全アドレス空間情報を記憶する記憶部をさらに備え、
    前記領域確保部は、
    前記バスアクセスのアクセス先のうち前記仮想環境内に実装されていないアクセス先が前記全アドレス空間情報に存在する場合、当該アクセス先に対応する記憶領域を前記スタブ領域として前記仮想バス部内に確保する
    請求項1に記載の情報処理装置。
  7. 前記領域確保部は、
    前記確保したスタブ領域を示すスタブ情報を、アクセス先リストに登録し、
    前記アクセス処理部は、
    前記バスアクセスを受け付けた際に、前記アクセス先リストを参照して、前記アクセス先が前記スタブ領域である場合、当該バスアクセスにかかるアクセス命令に基づいて、前記スタブ領域に対して直接アクセスを行う
    請求項6に記載の情報処理装置。
  8. 前記アクセス処理部は、前記アクセス先が前記全アドレス空間情報に存在しないと判定した場合、前記バスアクセスを不正アクセスとして出力する
    請求項6に記載の情報処理装置。
  9. 所定の組込み機器用の組込みプログラムを実行する仮想環境を備える情報処理装置の制御方法であって、
    前記組込みプログラムの実行におけるバスアクセスのアクセス先が前記仮想環境内に実装されていない場合に、当該アクセス先に対応する記憶領域をスタブ領域として、前記仮想環境が有する仮想バス部内に確保し、
    前記バスアクセスを処理する
    制御方法。
  10. 所定の組込み機器用の組込みプログラムを実行する仮想環境を備える情報処理装置の制御プログラムであって、
    前記組込みプログラムの実行におけるバスアクセスのアクセス先が前記仮想環境内に実装されていない場合に、当該アクセス先に対応する記憶領域をスタブ領域として、前記仮想環境が有する仮想バス部内に確保し、
    前記バスアクセスを処理する
    処理を前記情報処理装置に実行させる制御プログラム。
JP2017103457A 2017-05-25 2017-05-25 情報処理装置並びにその制御方法及び制御プログラム Active JP6821509B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017103457A JP6821509B2 (ja) 2017-05-25 2017-05-25 情報処理装置並びにその制御方法及び制御プログラム
US15/917,605 US20180341601A1 (en) 2017-05-25 2018-03-10 Information processing apparatus, control method thereof, and control program thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017103457A JP6821509B2 (ja) 2017-05-25 2017-05-25 情報処理装置並びにその制御方法及び制御プログラム

Publications (2)

Publication Number Publication Date
JP2018200495A JP2018200495A (ja) 2018-12-20
JP6821509B2 true JP6821509B2 (ja) 2021-01-27

Family

ID=64401242

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017103457A Active JP6821509B2 (ja) 2017-05-25 2017-05-25 情報処理装置並びにその制御方法及び制御プログラム

Country Status (2)

Country Link
US (1) US20180341601A1 (ja)
JP (1) JP6821509B2 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7565665B2 (en) * 1998-09-09 2009-07-21 Microsoft Corporation Efficient linking and loading for late binding and platform retargeting
US7752360B2 (en) * 2007-05-16 2010-07-06 Nuova Systems, Inc. Method and system to map virtual PCIe I/O devices and resources to a standard I/O bus
DE102009016742B4 (de) * 2009-04-09 2011-03-10 Technische Universität Braunschweig Carolo-Wilhelmina Mehrprozessor-Computersystem
JP5779281B2 (ja) * 2011-09-30 2015-09-16 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. コンピュータシステムにおける仮想化装置の制御
US9697150B2 (en) * 2013-09-04 2017-07-04 Jory Schwach Real-time embedded system
US10447676B2 (en) * 2014-10-10 2019-10-15 Adp, Llc Securing application programming interfaces (APIS) through infrastructure virtualization

Also Published As

Publication number Publication date
JP2018200495A (ja) 2018-12-20
US20180341601A1 (en) 2018-11-29

Similar Documents

Publication Publication Date Title
JP7088897B2 (ja) データアクセス方法、データアクセス装置、機器及び記憶媒体
JP5976409B2 (ja) ハードウェア抽象化を用いたソフトウェアアプリケーション実行の方法と装置
US20120297099A1 (en) Control over loading of device drivers for an individual instance of a pci device
CN110192178B (zh) 程序打补丁的方法、装置、微控制单元和终端设备
CN103677745B (zh) 一种在龙芯主板中写入和读取设备标识的方法
CN113504918A (zh) 设备树配置优化方法、装置、计算机设备和存储介质
CN114168196A (zh) 寄存器控制方法、系统、装置、计算机设备和存储介质
US9104472B2 (en) Write transaction interpretation for interrupt assertion
CN110008758A (zh) 一种id获取方法、装置、电子设备及存储介质
CN107667346A (zh) 基于熔断的固件块分派
KR20100007719A (ko) 캐시/tlb 간섭 및 진단 테스트를 위한 경량, 고수율의 테스트 케이스 생성 방법
KR102392474B1 (ko) 사물인터넷 모듈
JP6821509B2 (ja) 情報処理装置並びにその制御方法及び制御プログラム
US20190347194A1 (en) Flash data compression decompression method and apparatus
JP2014170271A (ja) 情報処理装置、初期化方法、前処理方法、及びプログラム
US9003364B2 (en) Overriding system attributes and function returns in a software subsystem
CN107301037B (zh) 操作系统内核的加载方法和装置
US11307904B2 (en) Configurable peripherals
EP3734491A1 (en) Method, apparatus, device, and medium for implementing simulator
US11768967B2 (en) Address verification for direct memory access requests
US11003474B2 (en) Semiconductor device for providing a virtualization technique
TWI684114B (zh) 通用型輸入輸出埠的配置方法及系統
US10482140B2 (en) Method and system for providing retargeting search service
US20190279031A1 (en) Method and system for replacing a processing engine
US9208282B1 (en) Enabling IP execution on a simulation execution platform

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200602

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200708

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210106

R150 Certificate of patent or registration of utility model

Ref document number: 6821509

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150