(57)【要約】【課題】情報転送先での情報処理に支障を生じさせることなく情報の転送速度を高めて処理時間を短縮することができる、情報処理装置の提供。【解決手段】外部から情報を取得し、取得した情報をＣＰＵ部へ転送するＩ／Ｏ部と、Ｉ／Ｏ部から転送された情報を用いて命令セットシミュレータとしての処理を行うＣＰＵ部とを備えた情報処理装置であって、ＣＰＵ部は、Ｉ／Ｏ部から転送された情報を格納する仮想Ｉ／Ｏレジスタ部の機能および仮想Ｉ／Ｏレジスタ部に格納された情報を用いて命令セットシミュレータとしての処理を行う仮想ＣＰＵの機能を有し、Ｉ／Ｏ部は、外部から情報を取得する取得周期と、取得した情報を仮想Ｉ／Ｏレジスタ部へ転送する転送周期とを、取得した情報毎に比較し、取得周期が転送周期以上の複数の情報をまとめて仮想Ｉ／Ｏレジスタ部へ転送する。【選択図】図２
2014021563.tif 000002
【特許請求の範囲】
【請求項１】
外部から情報を取得し、取得した情報をＣＰＵ部へ転送するＩ／Ｏ部と、当該Ｉ／Ｏ部から転送された情報を用いて命令セットシミュレータとしての処理を行うＣＰＵ部とを備えた情報処理装置であって、
前記ＣＰＵ部は、前記Ｉ／Ｏ部から転送された情報を格納する仮想Ｉ／Ｏレジスタ部の機能および当該仮想Ｉ／Ｏレジスタ部に格納された情報を用いて命令セットシミュレータとしての処理を行う仮想ＣＰＵの機能を有し、
前記Ｉ／Ｏ部は、外部から情報を取得する取得周期と、取得した情報を前記仮想Ｉ／Ｏレジスタ部へ転送する転送周期とを、取得した情報毎に比較し、当該取得周期が当該転送周期以上の複数の情報をまとめて前記仮想Ｉ／Ｏレジスタ部へ転送することを特徴とする、情報処理装置。
【請求項２】
前記Ｉ／Ｏ部は、前記取得周期が前記転送周期以上の複数の情報のうち、前記取得周期が前記転送周期のＮ倍（Ｎは１以上の整数）である複数の情報のみをまとめて前記仮想Ｉ／Ｏレジスタ部へ転送することを特徴とする、請求項１に記載の情報処理装置。
【請求項３】
前記Ｉ／Ｏ部は、外部から取得した情報を、前記仮想Ｉ／Ｏレジスタ部に格納される当該情報に前記仮想ＣＰＵがアクセスする前に前記仮想Ｉ／Ｏレジスタ部へ転送することを特徴とする、請求項１に記載の情報処理装置。
【請求項４】
前記仮想Ｉ／Ｏレジスタ部は、当該仮想Ｉ／Ｏレジスタ部に格納された情報を、前記Ｉ／Ｏ部から転送された情報で更新することを特徴とする、請求項１に記載の情報処理装置。
【請求項５】
前記Ｉ／Ｏ部は、転送後に変化のあった情報を取得した場合のみ、変化後の当該情報を前記仮想Ｉ／Ｏレジスタ部へ転送することを特徴とする、請求項１に記載の情報処理装置。
【請求項６】
前記Ｉ／Ｏ部は、マイクロコンピュータを含むことを特徴とする、請求項１に記載の
情報処理装置。
【請求項７】
前記Ｉ／Ｏ部は、外部から割り込み処理の命令を受け、または、前記仮想ＣＰＵからタスク処理起動の通知を受けた場合、前記割り込み処理または前記タスク処理に必要な情報のみを前記仮想Ｉ／Ｏレジスタ部に転送することを特徴とする、請求項１に記載の情報処理装置。
【請求項８】
外部から情報を取得し、取得した情報をＣＰＵ部へ転送するＩ／Ｏ部と、当該Ｉ／Ｏ部から転送された情報を用いて命令セットシミュレータとしての処理を行うＣＰＵ部とを備えた装置による情報処理方法であって、
前記ＣＰＵ部が、前記Ｉ／Ｏ部から転送された情報を格納する仮想Ｉ／Ｏレジスタ部として機能するステップと、
前記ＣＰＵ部が、前記仮想Ｉ／Ｏレジスタ部に格納された情報を用いて命令セットシミュレータの処理を行う仮想ＣＰＵとして機能するステップと、
前記Ｉ／Ｏ部が、外部から情報を取得する取得周期と、取得した情報を前記仮想Ｉ／Ｏレジスタ部へ転送する転送周期とを、取得した情報毎に比較する比較ステップと、
前記Ｉ／Ｏ部が、前記取得周期が前記転送周期以上の複数の情報をまとめて前記仮想Ｉ／Ｏレジスタ部へ転送する転送ステップとを備えた、情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置および情報処理方法に関し、より詳しくは、情報転送先での情報処理に支障を生じさせることなく情報の転送速度を高めて処理時間を短縮することができる、情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
車両には多くの電子制御ユニットが搭載されている。電子制御ユニットの開発過程では、車載される電子制御ユニットのマイクロコンピュータ（以下、マイコンと称する）にプログラムや周辺機器を接続する前に、マイコンの動作をＰＣ（Personal Computer）などでシミュレートする場合がある。
【０００３】
この場合、完成している部品や変更のない部品は、シミュレートすることなく実在部品を使用すれば、開発期間を短縮することができ、コストを低減することができる。しかしながら、この場合、マイコンのＣＰＵなどのシミュレート対象をシミュレートするＰＣと、実在部品を接続する必要が生じてしまう。
【０００４】
図１５は、従来の情報処理装置（電子制御ユニット）１０の機能ブロックの一例を示す図である。ＣＰＵ部２０は、ＰＣ１００が有するホストＣＰＵ２２上でソフトウェア的に実現されている。具体的には、ＩＳＳ（Instruction Set Simulator）２１をホストＣＰＵ２２上で実行することで、ＣＰＵ部２０が実現される。ＩＳＳ２１は、ＨＤＤ（Hard Disk Drive）２４にプログラムとして記憶されている。
【０００５】
これに対し、Ｉ／Ｏ部４０はマイコンに搭載される実在部品である。電子制御ユニットの開発過程では、Ｉ／Ｏ部４０を含めてシミュレートする必要があるため、ＰＣ１００のホストＣＰＵ２２とＩ／Ｏ部４０が通信路２３で接続されている。通信路２３はＰＣ１００で汎用的に使用される規格の通信ケーブルや装着スロットなどである。
【０００６】
ＣＰＵコア部３１は、メモリ部３３に対して命令フェッチを行い、取得した命令をデコードする。ＣＰＵコア部３１は、デコード結果に応じて各命令に応じた動作を実行する。例えば、算術演算や分岐命令などの場合、ＣＰＵコア部３１が汎用レジスタや制御レジスタの値を更新する。ＬＯＡＤ／ＳＴＯＲＥ命令については、ＣＰＵコア部３１はＬＤ／ＳＴアクセス制御部３２に処理を依頼する。こうすることで、ＬＤ／ＳＴアクセス制御部３２がＬＯＡＤ／ＳＴＯＲＥ処理をしている間、ＣＰＵコア部３１は次の命令を実行することができる。
【０００７】
ＬＤ／ＳＴアクセス制御部３２は、アクセス先がメモリ部３３であるのか、またはＩ／Ｏ部４０であるのかを判断し、メモリ部３３またはＩ／Ｏ部４０にアクセスする。
【０００８】
しかしながら、ＬＤ／ＳＴアクセス制御部３２がＩ／Ｏ部４０にアクセスする場合、ＰＣ１００とＩ／Ｏ部４０が通信路２３で接続された物理的に別々のものであるため、遅延を生じてしまう。というのは、マイコンが車載された時にはＩ／Ｏ部４０はマイコンと同じ基板に配置されるのに対し、シミュレーション時は、ＣＰＵ部２０とＩ／Ｏ部４０が通信路２３を介して通信するため、マイコン車載時には生じない遅延が生じる。このような遅延が、マイコンが車載された場合にシミュレーションでは判明しなかった影響を生じさせる虞がある。
【０００９】
そこで、上記のような遅延の問題を改善するための技術が提案されている。図１６は、当該提案に係る情報処理装置（電子制御ユニット）の機能ブロックを示す図である。図１５に示される構成と同じ構成については同一の参照符号を付する。
【００１０】
図１６に示される情報処理装置２０では、ＩＳＳ２１は、ＣＰＵコア部３１、時間管理部３４、ＬＤ／ＳＴアクセス制御部３２、メモリ部３３に加えて、仮想Ｉ／Ｏレジスタ部３５を有している。Ｉ／Ｏ部４０は、Ｉ／Ｏレジスタ部４１に加えて、第２のデータ更新部４３を有している。
【００１１】
仮想Ｉ／Ｏレジスタ部３５は、Ｉ／Ｏ部４０のＩ／Ｏレジスタ部４１の値と同じ値を保持する。第１のデータ更新部３６は、仮想Ｉ／Ｏレジスタ部３５に値が書き込まれた場合、Ｉ／Ｏレジスタ部４１を同じ値に更新する。第２のデータ更新部４３は、Ｉ／Ｏレジスタ部４１に値が書き込まれた場合、仮想Ｉ／Ｏレジスタ部３５を同じ値に更新する。
【００１２】
図１６に示される情報処理装置２０によれば、Ｉ／Ｏ部４０のレジスタのコピーをＣＰＵ部２０のレジスタに持たせることで、ＩＳＳ２１からレジスタへのアクセスを高速化し、リアルタイム性を守りながらターゲットＣＰＵのソフトウェアを実行することができる。
【００１３】
しかしながら、図１６に示される技術には、以下の課題が存在した。すなわち、Ｉ／Ｏ部４０からＣＰＵ部２０への情報の転送タイミングが、Ｉ／Ｏ部４０のレジスタの変化が検出された時であり、レジスタの変化が検出された都度、単発的にアクセスが行われる。このため、単発的なアクセスが繰り返され、アクセス間のタイムラグによってＩ／Ｏ部４０とＣＰＵ部２０間の転送負荷が大きくなり、処理時間が長くなってしまうという課題があった。
【００１４】
なお、特許文献１には、ＣＰＵとＤＳＰとから構成され、ＤＳＰでの処理に必要なプログラムおよびパラメータをＣＰＵからＤＳＰに転送するプロセッサシステムが開示されている。このプロセッサシステムでは、ＣＰＵがＤＳＰでの処理に必要なプログラムおよびパラメータを決定し、当該プログラムおよびパラメータをＤＳＰへ一括して転送することにより、転送速度の高速化を図っている。
【００１５】
しかしながら、このプロセッサシステムには、以下のような課題が存在した。プログラムおよびパラメータには、一括転送されても差し支えないものとそうでものとが存在する。例えば、ＤＳＰのプロセッサがＤＳＰのメモリ部に格納されたプログラム等にアクセスする周期が比較的長い場合には、ＣＰＵからＤＳＰへプログラム等を一括転送してもＤＳＰでの処理に支障は生じにくい。これに対し、当該アクセスの周期が比較的短い場合には、ＣＰＵからＤＳＰへプログラム等を一括転送した後、ＤＳＰでの処理に支障が生じやすい。これは、プログラム等を一括転送するということは、プログラム等を単発的に転送する場合の転送タイミングから転送タイミングをずらすことになるからである。プロセッサがメモリ部にアクセスする周期が短い場合に転送タイミングをずらすと、プロセッサがメモリにアクセスするときに、アクセス対象のプログラム等がメモリ部に未だ転送されていない可能性があり、プロセッサの処理に支障が生じる可能性があった。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開２００３−１６７７５１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１７】
本発明は、このような実情に鑑みてなされたもので、情報転送先での情報処理に支障を生じさせることなく情報の転送速度を高めて処理時間を短縮することができる、情報処理装置および情報処理方法の提供を目的とする。
【課題を解決するための手段】
【００１８】
第１の発明は、
外部から情報を取得し、取得した情報をＣＰＵ部へ転送するＩ／Ｏ部と、当該Ｉ／Ｏ部から転送された情報を用いて命令セットシミュレータとしての処理を行うＣＰＵ部とを備えた情報処理装置であって、
前記ＣＰＵ部は、前記Ｉ／Ｏ部から転送された情報を格納する仮想Ｉ／Ｏレジスタ部の機能および当該仮想Ｉ／Ｏレジスタ部に格納された情報を用いて命令セットシミュレータとしての処理を行う仮想ＣＰＵの機能を有し、
前記Ｉ／Ｏ部は、外部から情報を取得する取得周期と、取得した情報を前記仮想Ｉ／Ｏレジスタ部へ転送する転送周期とを、取得した情報毎に比較し、当該取得周期が当該転送周期以上の複数の情報をまとめて前記仮想Ｉ／Ｏレジスタ部へ転送することを特徴とする、情報処理装置である。
なお、本発明における「取得周期」は、Ｉ／Ｏ部が外部から情報を入力することが予定されている周期あるいは実際に入力した周期、または、Ｉ／Ｏ部が外部から情報を入力して自己のレジスタに格納することが予定されている周期あるいは実際に入力して自己のレジスタに格納した周期、のいずれであってもよい。
【００１９】
第１の発明によれば、Ｉ／Ｏ部は、取得周期が転送周期以上の複数の情報をまとめて仮想Ｉ／Ｏレジスタ部へ転送する。通常、Ｉ／Ｏ部が情報を取得する取得周期は、仮想Ｉ／Ｏレジスタ部に転送される当該情報に仮想ＣＰＵがアクセスするアクセス周期と同じに設定される。従って、取得周期が転送周期以上である場合には、Ｉ／Ｏ部から仮想Ｉ／Ｏレジスタ部へ情報をまとめて転送しても転送先での処理に支障が生じにくい。よって、第１の発明によれば、情報転送先での情報処理に支障を生じさせることなく情報の転送速度を高めて処理時間を短縮することができる。
【００２０】
第２の発明は、第１の発明において、
前記Ｉ／Ｏ部は、前記取得周期が前記転送周期以上の複数の情報のうち、前記取得周期が前記転送周期のＮ倍（Ｎは１以上の整数）である複数の情報のみをまとめて前記仮想Ｉ／Ｏレジスタ部へ転送することを特徴とする。
【００２１】
第２の発明によれば、取得周期が転送周期のＮ倍（Ｎは１以上の整数）である複数の情報のみをまとめて仮想Ｉ／Ｏレジスタ部へ転送するので、Ｉ／Ｏ部が情報を取得する取得周期と、Ｉ／Ｏ部から転送された情報で仮想Ｉ／Ｏレジスタ部が更新される周期とを同じにすることができる。よって、情報転送先での正確な情報処理をより確実に行うことができる。また、シミュレート対象のターゲットＣＰＵ（実機のＣＰＵ）がＩ／Ｏ部の情報を取得する周期と、仮想ＣＰＵが仮想Ｉ／Ｏレジスタ部の情報を取得する周期を同期させることができ、適切なシミュレーションを行うことができる。
【００２２】
第３の発明は、第１の発明において、
前記Ｉ／Ｏ部は、外部から取得した情報を、前記仮想Ｉ／Ｏレジスタ部に格納される当該情報に前記仮想ＣＰＵがアクセスする前に前記仮想Ｉ／Ｏレジスタ部へ転送することを特徴とする。
【００２３】
第３の発明によれば、情報の転送タイミングがより適切となり、情報転送先での正確な情報処理をより確実に行うことができる。
【００２４】
第４の発明は、第１の発明において、
前記仮想Ｉ／Ｏレジスタ部は、当該仮想Ｉ／Ｏレジスタ部に格納された情報を、前記Ｉ／Ｏ部から転送された情報で更新することを特徴とする。
【００２５】
第４の発明によれば、仮想Ｉ／Ｏレジスタ部に格納された情報をＩ／Ｏ部から転送された情報で更新し、更新された情報を用いて情報処理を行うことができる。
【００２６】
第５の発明は、第１の発明において、
前記Ｉ／Ｏ部は、転送後に変化のあった情報を取得した場合にのみ、変化後の当該情報を前記仮想Ｉ／Ｏレジスタ部へ転送することを特徴とする。
【００２７】
第５の発明によれば、転送後に変化のあった情報を取得した場合にのみ、情報を転送するので、変化の有無に拘わらず情報を転送する場合に比べて、情報を転送する頻度を減らすことができる。これにより、通信路の負荷を減らすことができ、転送の待ち時間などが削減され、処理時間をより一層短縮することができる。
【００２８】
第６の発明は、第１の発明において、
前記Ｉ／Ｏ部は、マイクロコンピュータを含むことを特徴とする。
【００２９】
第６の発明によれば、Ｉ／Ｏ部はマイクロコンピュータを含むので、マイクロコンピュータの機能によって取得周期と転送周期の比較等の処理を確実に行うことができる。
【００３０】
第７の発明は、第１の発明において、
前記Ｉ／Ｏ部は、外部から割り込み処理の指示を受け、または、前記仮想ＣＰＵからタスク処理起動の通知を受けた場合、前記割り込み処理または前記タスク処理に必要な情報のみを前記仮想Ｉ／Ｏレジスタ部に転送することを特徴とする。
【００３１】
第７の発明によれば、割り込み処理またはタスク処理に必要な情報のみが転送されるので、割り込み処理またはタスク処理に必要か否かに拘わらず情報を転送する場合に比べて、情報を転送する頻度を減らすことができる。これにより、通信路の負荷を減らすことができ、転送の待ち時間などが削減され、処理時間をより一層短縮することができる。
【００３２】
第８の発明は、
外部から情報を取得し、取得した情報をＣＰＵ部へ転送するＩ／Ｏ部と、当該Ｉ／Ｏ部から転送された情報を用いて命令セットシミュレータとしての処理を行うＣＰＵ部とを備えた装置による情報処理方法であって、
前記ＣＰＵ部が、前記Ｉ／Ｏ部から転送された情報を格納する仮想Ｉ／Ｏレジスタ部として機能するステップと、
前記ＣＰＵ部が、前記仮想Ｉ／Ｏレジスタ部に格納された情報を用いて命令セットシミュレータの処理を行う仮想ＣＰＵとして機能するステップと、
前記Ｉ／Ｏ部が、外部から情報を取得する取得周期と、取得した情報を前記仮想Ｉ／Ｏレジスタ部へ転送する転送周期とを、取得した情報毎に比較する比較ステップと、
前記Ｉ／Ｏ部が、前記取得周期が前記転送周期以上の複数の情報をまとめて前記仮想Ｉ／Ｏレジスタ部へ転送する転送ステップとを備えた、情報処理方法である。
【００３３】
第８の発明によれば、Ｉ／Ｏ部は、取得周期が転送周期以上の複数の情報をまとめて仮想Ｉ／Ｏレジスタ部へ転送する。通常、Ｉ／Ｏ部が情報を取得する取得周期は、仮想Ｉ／Ｏレジスタ部に転送される当該情報に仮想ＣＰＵがアクセスするアクセス周期と同じに設定される。従って、取得周期が転送周期以上である場合には、Ｉ／Ｏ部から仮想Ｉ／Ｏレジスタ部へ情報をまとめて転送しても転送先での処理に支障が生じにくい。よって、第８の発明によれば、情報転送先での情報処理に支障を生じさせることなく情報の転送速度を高めて処理時間を短縮することができる。
【発明の効果】
【００３４】
本発明によれば、情報転送先での情報処理に支障を生じさせることなく情報の転送速度を高めて処理時間を短縮することができる。
【図面の簡単な説明】
【００３５】
【図１】本発明の第１実施形態に係る情報処理装置の機能ブロックの一例を示す図
【図２】転送周期Ｔ１と取得周期Ｔ２を比較する様子を示す図であり、取得周期Ｔ２が転送周期Ｔ１以上である場合を示す図
【図３】転送周期Ｔ１と取得周期Ｔ２を比較する様子を示す図であり、取得周期Ｔ２が転送周期Ｔ１より短い場合を示す図
【図４】情報を単発的に逐次転送する場合と、複数の情報をまとめて転送する場合とを示す図
【図５】アクセステーブルの一例を示す図
【図６】ターゲットＣＰＵの命令毎のサイクル数の一例を示す図
【図７】本発明の実施形態に係る情報処理装置の動作の一例を示すフローチャート
【図８】本発明の実施形態に係る情報処理装置の動作の他の例を示すフローチャート
【図９】本発明の第２実施形態に係る情報処理装置の機能ブロックの一例を示す図
【図１０】本発明の第２実施形態において、情報がまとめて転送される場合の転送周期Ｔ１と取得周期Ｔ２の関係の一例を示す図であり、取得周期Ｔ２が転送周期Ｔ１のＮ倍（Ｎは１以上の整数）である場合を示す図
【図１１】取得周期Ｔ２が転送周期Ｔ１のＮ倍（Ｎは１以上の整数）である場合、取得周期Ｔ２と、仮想Ｉ／Ｏレジスタ部３５での情報更新周期Ｔ３とが一致することを示す図
【図１２】取得周期Ｔ２が転送周期Ｔ１のＮ倍（Ｎは１以上の整数）でない場合、取得周期Ｔ２と、仮想Ｉ／Ｏレジスタ部３５での情報更新周期Ｔ３とが一致しないことを示す図
【図１３】本発明の第２実施形態に係る情報処理装置１ａの動作の一例を示すフローチャート
【図１４】本発明の第２実施形態に係る情報処理装置１ａの動作の他の例を示すフローチャート
【図１５】従来の情報処理装置の機能ブロックの一例を示す図
【図１６】従来の情報処理装置の機能ブロックの他の例を示す図
【発明を実施するための形態】
【００３６】
（第１実施形態）
以下、本発明の第１実施形態について、図面を参照しつつ説明する。
図１は、本発明の第１実施形態に係る情報処理装置の機能ブロックの一例を示す図である。
【００３７】
図１に示されるように、本実施形態に係る情報処理装置１は、外部から情報を取得し、取得した情報をＣＰＵ部２０へ転送するＩ／Ｏ部４０と、Ｉ／Ｏ部４０から転送された情報を用いて命令セットシミュレータ（ＩＳＳ：Instruction Set Simulator）２１としての処理を行うＣＰＵ部２０とを備えた情報処理装置である。
【００３８】
ＣＰＵ部２０は、Ｉ／Ｏ部４０から転送された情報を格納する仮想Ｉ／Ｏレジスタ部３５の機能および仮想Ｉ／Ｏレジスタ部３５に格納された情報を用いて命令セットシミュレータとしての処理を行う仮想ＣＰＵ（ＣＰＵコア部３１）の機能とを有する。
【００３９】
ＣＰＵ部２０は、シミュレート対象であるマイコンのターゲットＣＰＵ（図示せず）の機能を仮想的に実現したものである。具体的には、パーソナルコンピュータ（以下、ＰＣと称する）１００のホストＣＰＵ２２上でＩＳＳ２１を実行することで、ＣＰＵ２０が実現される。ＩＳＳ２１は、ＨＤＤ（Hard Disk Drive）２４にプログラムとして記憶されている。
【００４０】
ＩＳＳ２１は、ターゲットＣＰＵの命令セット（算術演算命令、論理演算命令、シフト命令、ＬＯＡＤ／ＳＴＯＲＥ命令、分岐命令等）を提供し、主に開発中のプログラムが命令セットの各命令を実行した時のレジスタ、メモリ等の状態をソフトウェア的に生成する。
【００４１】
ＩＳＳ２１は、ＣＰＵコア部３１、時間管理部３４、ＬＯＲＤ／ＳＴＯＲＥアクセス制御部（以下、ＬＤ／ＳＴアクセス制御部と称する）３２、メモリ部３３、および仮想Ｉ／Ｏレジスタ部３５を有している。この他の機能は図示を省略している。ターゲットＣＰＵは、ＣＰＵコア部３１、時間管理部３４、ＬＤ／ＳＴアクセス制御部３２、およびメモリ部３３を有しているが、仮想Ｉ／Ｏレジスタ部３５は有していない。
【００４２】
ＣＰＵコア部３１は、メモリ部３３に対し、プログラムの命令フェッチを行い、命令を命令バッファ等に記憶し、命令をデコードする。算術演算や分岐命令等の命令の実行によって、汎用レジスタや制御レジスタの値を更新する。
【００４３】
ＬＤ／ＳＴアクセス制御部３２は、ＬＯＡＤ命令とＳＴＯＲＥ命令を実行する。ＬＤ／ＳＴアクセス制御部３２がＣＰＵコア部３１と別にある理由は、ＬＯＡＤ命令とＳＴＯＲＥ命令は実行に比較的時間がかかるので専用の回路を設け、ＣＰＵコア部３１の負荷を低減するためである。ＬＤ／ＳＴアクセス制御部３２は、アクセス先がメモリ部３３であるか、またはＩ／Ｏ部４０であるかによって以下のように動作する。
【００４４】
アクセス先がメモリ部３３である場合、ＬＤ／ＳＴアクセス制御部３２は、従来のＩＳＳ２１と同様にＬＯＡＤやＳＴＯＲＥ処理を実行する。アクセス先が仮想Ｉ／Ｏレジスタ部３５またはＩ／Ｏ部４０である場合、ＬＤ／ＳＴアクセス制御部３２は、後述するアクセステーブル３７を参照して、仮想Ｉ／Ｏレジスタ部３５またはＩ／Ｏ部４０のどちらにアクセスするかを切り替える。
【００４５】
メモリ部３３には、実行対象のプログラム（ターゲットＣＰＵが実行するプログラム）が記憶される。仮想Ｉ／Ｏレジスタ部３５は、Ｉ／Ｏ部４０のＩ／Ｏレジスタ部４１の値と同じ値を保持する。仮想Ｉ／Ｏレジスタ部３５は、仮想Ｉ／Ｏレジスタ部３５に格納された情報を、Ｉ／Ｏ部４０から転送された情報で更新する。仮想Ｉ／Ｏレジスタ部３５に格納された情報をＩ／Ｏ部４０から転送された情報で更新することで、ＣＰＵコア部３１は更新された情報を用いて情報処理を行うことができる。第１のデータ更新部３６は、仮想Ｉ／Ｏレジスタ部３５に値が書き込まれた場合、Ｉ／Ｏレジスタ部４１を同じ値に更新する。第２のデータ更新部４３は、Ｉ／Ｏレジスタ部４１に値が書き込まれた場合、仮想Ｉ／Ｏレジスタ部３５を同じ値に更新する。
【００４６】
時間管理部３４は、ＣＰＵコア部３１がターゲットＣＰＵと同程度の速度でプログラムを実行するようにＣＰＵコア部３１の命令実行速度を調整する。実機より早く動作した場合はＣＰＵコア部３１に命令を実行させずに待機させ、遅くなった場合は早く動作した場合に余る時間で調整する。これにより、時間管理部３４は、想定した速度でＣＰＵコア部３１が命令を実行するように制御する。
【００４７】
Ｉ／Ｏ部４０は、Ｉ／Ｏレジスタ部４１、Ｉ／Ｏレジスタ部４１に接続されているＡＤＣ４２ａ、Ｐｏｒｔ４２ｂ、ＵＡＲＴ４２ｃ、ＣＡＮ４２ｄ等の周辺機器４２を有している。
【００４８】
Ｉ／Ｏ部４０は、ホストＣＰＵ２２（より具体的にはＰＣ１００が有する通信路２３のインタフェース）と接続されている。Ｉ／Ｏ部４０に接続されている周辺機器４２の種類は特に限定されない。周辺機器４２は、ＣＰＵ部２０からＩ／Ｏレジスタ部４１に設定された値により制御される。また、周辺機器４２がデータを受信する等のイベントを検出した場合、Ｉ／Ｏ部４０は、Ｉ／Ｏレジスタ部４１に値を設定することで、不図示の割込み制御部等を介してＣＰＵコア部３１に通知する。本実施形態では、第２のデータ更新部４３がＩ／Ｏレジスタ部４１に値が書き込まれたことを検出して、ホストＣＰＵ２２に通知し、ホストＣＰＵ２２が仮想Ｉ／Ｏレジスタ部３５に値をコピーする。
【００４９】
Ｉ／Ｏ部４０は、マイクロコンピュータ４５（以下、マイコン４５と称する）を含む。Ｉ／Ｏ部４０は、周辺機器４２を介して外部から情報を取得する取得周期Ｔ２と、取得した情報を仮想Ｉ／Ｏレジスタ部３５へ転送する転送周期Ｔ１とを、取得した情報毎に比較する。転送周期Ｔ１および取得周期Ｔ２は、予め設定されており、既知である。図２に示される例では、情報の転送周期Ｔ１は３μｓに設定されており、時刻３μｓ、６μｓ、９μｓ、および１２μｓのタイミング近傍でまとめた転送動作が行われる。図３に示される例では、情報の転送周期Ｔ１は３μｓに設定されているが、この転送周期Ｔ１は使用されず、情報の取得後すぐに転送動作が行われる。すなわち、取得した情報毎に単発的な転送動作が行われる。なお、取得周期Ｔ２は情報毎に設定されているが、転送周期Ｔ１は情報毎に設定されておらず一定である。Ｉ／Ｏ部４０が情報を取得する取得周期Ｔ２は、仮想Ｉ／Ｏレジスタ部３５に転送される当該情報にＣＰＵコア部３１がアクセスするアクセス周期と同じに設定される。図２は、転送周期Ｔ１（図２（ａ）参照）と取得周期Ｔ２（図２（ｂ）参照）を比較する様子を示す図であり、取得周期Ｔ２が転送周期Ｔ１以上である場合を示している。図３は、転送周期Ｔ１（図３（ａ）参照）と取得周期Ｔ２（図３（ｂ）参照）を比較する様子を示す図であり、取得周期Ｔ２が転送周期Ｔ１より短い場合を示している。
なお、本実施形態における「取得周期Ｔ２」は、Ｉ／Ｏ部４０が外部から情報を入力することが予定されている周期あるいは実際に入力した周期、または、Ｉ／Ｏ部４０が外部から情報を入力してＩ／Ｏレジスタ部４１に格納することが予定されている周期あるいは実際に入力してＩ／Ｏレジスタ部４１に格納した周期、のいずれであってもよい。
【００５０】
Ｉ／Ｏ部４０は、図２に示されるように、取得周期Ｔ２が転送周期Ｔ１以上である複数の情報を、まとめて仮想Ｉ／Ｏレジスタ部３５へ転送する。以下の説明では、「取得周期Ｔ２が転送周期Ｔ１以上である複数の情報を、まとめて仮想Ｉ／Ｏレジスタ部３５へ転送する」という条件を「第１のまとめ転送条件」と称することがある。Ｉ／Ｏ部４０は、より具体的には、隣り合う転送時刻の間の期間（転送周期Ｔ１の始期と終期の間）に取得した複数の情報のうち、第１のまとめ転送条件を満たす複数の情報のみをまとめて仮想Ｉ／Ｏレジスタ部３５へ転送する。図２（ａ）に示される例では、情報Ａ〜Ｄ、Ｅ〜Ｈ、Ｉ〜Ｌをそれぞれまとめて転送周期Ｔ１毎に転送している。複数の情報をまとめて転送することにより、図４（ｂ）に示されるように転送間隔を詰めることができ、図４（ａ）に示されるように転送間隔を詰めない場合と比べて、転送時間および処理時間を短縮することができる。図４は、情報を単発的に逐次転送する場合（ａ）と、複数の情報をまとめて転送する場合（ｂ）とを示す図である。なお、図２（ａ）および図４（ｂ）に示される例では、隣り合う情報同士が接しているが、隣り合う情報同士の間隔（時間）は必ずしもゼロである必要はなく、若干の間隔が空いていてもよい。
【００５１】
このように、Ｉ／Ｏ部４０は、取得周期Ｔ２が転送周期Ｔ１以上である複数の情報をまとめて仮想Ｉ／Ｏレジスタ部３５へ転送する。取得周期Ｔ２が転送周期Ｔ１以上である場合には、Ｉ／Ｏ部４０から仮想Ｉ／Ｏレジスタ部３５へ情報をまとめて転送しても転送先（ＣＰＵ部２０）のＣＰＵコア部３１での情報処理に支障が生じにくい。よって、ＣＰＵコア部３１での情報処理に支障を生じさせることなく情報の転送速度を高めて処理時間を短縮することができる。
【００５２】
Ｉ／Ｏ部４０は、外部から取得した情報を、仮想Ｉ／Ｏレジスタ部３５に格納される当該情報にＣＰＵコア部３１がアクセスする前に仮想Ｉ／Ｏレジスタ部３５へ転送することが好ましい。このように転送すれば、情報にＣＰＵコア部３１がアクセスする前に情報が仮想Ｉ／Ｏレジスタ部３５へ転送されるので、情報の転送タイミングがより適切となり、ＣＰＵコア部３１での正確な情報処理をより確実に行うことができる。
【００５３】
Ｉ／Ｏ部４０は、転送後に変化のあった情報を取得した場合にのみ、変化後の当該情報を仮想Ｉ／Ｏレジスタ部３５へ転送することが好ましい。このように転送すれば、変化の有無に拘わらず情報を転送する場合に比べて、情報を転送する頻度を減らすことができる。これにより、通信路２３の通信負荷を減らすことができ、転送の待ち時間などが削減され、処理時間をより一層短縮することができる。
【００５４】
Ｉ／Ｏ部４０は、取得周期Ｔ２が転送周期Ｔ１のＮ倍（Ｎは１以上の整数）である複数の情報をまとめて仮想Ｉ／Ｏレジスタ部３５へ転送することが好ましい。このように転送すれば、ＣＰＵコア部３１での正確な情報処理をより確実に行うことができる。
Ｉ／Ｏ部４０は、外部から割り込み処理の指示を受け、または、ＣＰＵコア部３１からタスク処理起動の通知を受けた場合、割り込み処理またはタスク処理に必要な情報のみを仮想Ｉ／Ｏレジスタ部３５に転送することが好ましい。このように転送すれば、割り込み処理またはタスク処理に必要か否かに拘わらず情報を転送する場合に比べて、情報を転送する頻度を減らすことができる。これにより、通信路の負荷を減らすことができ、転送の待ち時間などが削減され、処理時間をより一層短縮することができる。
【００５５】
ＬＤ／ＳＴアクセス制御部３２は、ＣＰＵコア部３１のアクセス先に応じて、実際のアクセス先をＩ／Ｏレジスタ部４１または仮想Ｉ／Ｏレジスタ部３５に切り替える。これにより、仮想Ｉ／Ｏレジスタ部３５をＣＰＵ部２０に配置した場合に、アクセス先を制御することができる。
【００５６】
ＬＤ／ＳＴアクセス制御部３２は、アクセス先の制御のためアクセステーブル３７を参照する。
【００５７】
図５は、アクセステーブル３７の一例を示す図である。アクセステーブル３７にはアドレス毎に「アドレス変換関数」が対応付けられている。なお、「アクセス先」も登録されているが、これは説明のための記述であり、開発者が把握できていれば実際のアクセステーブル３７にはなくてもよい。
【００５８】
まず、ターゲットＣＰＵはメモリマップドＩ／Ｏという周辺機器４２へのアクセス方式を採用している。このため、アドレスにより周辺機器４２を含むアクセス先が決まる。
【００５９】
アクセステーブル３７は、ＩＳＳ２１の起動時など初期化する際に生成されるが、ＩＳＳ２１がシミュレーションの実行時にアクセステーブル生成用のテーブルを参照して変更することもできる。
【００６０】
ＬＤ／ＳＴアクセス制御部３２は以下のように動作する。
【００６１】
（１）ＣＰＵコア部３１がＬＯＡＤ／ＳＴＯＲＥ命令を実行するとアクセスアドレスとアクセスタイプ（ＬＯＡＤ／ＳＴＯＲＥ）がＬＤ／ＳＴアクセス制御部３２に伝えられる。
【００６２】
（２）ＬＤ／ＳＴアクセス制御部３２はアクセスするアドレスに基づきアクセステーブル３７を検索して、どこにアクセスするかを判断する。
【００６３】
（３）アクセス先に応じて以下のアドレス変換関数を使用しアドレス変換を行う。
(i)アクセス先が仮想Ｉ／Ｏレジスタ部３５である場合、アドレス変換関数“transA”を用いてアドレス変換を行う。ＬＤ／ＳＴアクセス制御部３２はＣＰＵ部２０の仮想Ｉ／Ｏレジスタ部３５へアクセスする。
(ii)アクセス先がＩ／Ｏレジスタ部４１である場合、アドレス変換関数“trans_through”を用いてアドレス変換を行う。ＬＤ／ＳＴアクセス制御部３２は直接、Ｉ／Ｏ部４０のＩ／Ｏレジスタ部４１へアクセスする。
(iii)アクセス先がメモリ部３３である場合、アドレス変換関数“transB”を用いてアドレス変換を行う。ＬＤ／ＳＴアクセス制御部３２は、ＩＳＳ２１内部のメモリ部３３にアクセスする。
【００６４】
次に、本実施形態に係る情報処理装置の処理の流れについて説明する。図７は、本実施形態に係る情報処理装置の動作の一例を示すフローチャートである。なお、ここでは、Ｉ／Ｏ部４０のＡＤＣ４２ａから新たな情報が入力された場合について説明する。
【００６５】
図７に示されるように、まず、Ｉ／Ｏ部４０のＡＤＣ４２ａが新たな情報を検出する（ステップＳ１）。次いで、マイコン４５にＡＤＣ４２ａから新たな情報が通知され、マイコン４５は新たな情報を認識する（ステップＳ２）。
【００６６】
次いで、マイコン４５は、ステップＳ２において認識された情報を、まとめて転送すべき情報と、まとめずに単発的に転送すべきデータとに選別（グループ分け）する。具体的には、マイコン４５は、ステップＳ２で認識された情報毎に、図２，３に示されるように、当該情報の取得周期Ｔ２と、当該情報を仮想Ｉ／Ｏレジスタ部３５へ転送する転送周期Ｔ１とを比較する（ステップＳ３）。なお、情報の取得周期Ｔ２と、仮想Ｉ／Ｏレジスタ部３５へ転送され格納される当該情報にＣＰＵコア部３１がアクセスするアクセス周期とは等しい値に設定されている。図２に示されるように、取得周期Ｔ２が転送周期Ｔ１以上である複数の情報については、まとめて仮想Ｉ／Ｏレジスタ部３５へ転送する情報として、第２のデータ更新部４３に渡される（ステップＳ４）。一方、図３に示されるように、取得周期Ｔ２が転送周期Ｔ１より短いかまたは等しい情報については、単発的に仮想Ｉ／Ｏレジスタ部３５へ転送する情報として第２のデータ更新部４３に渡される（ステップＳ５）。
【００６７】
次いで、第２のデータ更新部４３は、ステップＳ４でマイコン４５から渡された情報を、まとめて仮想Ｉ／Ｏレジスタ部３５へ転送する（ステップＳ６）。一方、第２のデータ更新部４３は、ステップＳ５でマイコン４５から渡された情報を、従来と同様、単発的に仮想Ｉ／Ｏレジスタ部３５へ転送する（ステップＳ７）。
【００６８】
次いで、仮想Ｉ／Ｏレジスタ部３５の第１のデータ更新部３６が、ＣＰＵコア部３１からのアクセスをブロックするためのブロックフラグＢＦをオン（ＢＦ＝１）に設定する（ステップＳ８）。これにより、仮想Ｉ／Ｏレジスタ部３５に情報が転送されて当該情報で更新が行われるまでにＣＰＵコア部３１からアクセスがあったときに、当該アクセスをブロックすることができる。アクセスをブロックすることにより、更新前の古い情報を用いて不適切な情報処理が行われるのを防止することができる。
【００６９】
次いで、仮想Ｉ／Ｏレジスタ部３５への情報転送および転送された情報での更新が完了したら（ステップＳ９）、ブロックフラグＢＦをオフ（ＢＦ＝０）に設定する（ステップＳ１０）。これにより、ＣＰＵコア部３１から仮想Ｉ／Ｏレジスタ部３５内の情報へのアクセスが可能となる。
【００７０】
次いで、ＣＰＵコア部３１が仮想Ｉ／Ｏレジスタ部３５内の情報にアクセスして処理を行い（ステップＳ１１）、処理を終了する。
以上が、情報処理装置１による処理である。
【００７１】
次に、本実施形態に係る情報処理装置１の処理の他の例について説明する。図８は、本実施形態に係る情報処理装置１の動作の他の例を示すフローチャートである。なお、ここでは、Ｉ／Ｏ部４０のＡＤＣ４２ａに割り込み処理命令が入力された場合について説明する。
【００７２】
図８に示されるように、まず、Ｉ／Ｏ部４０のＡＤＣ４２ａが割り込み処理命令を検出する（ステップＳ１）。次いで、マイコン４５にＡＤＣ４２ａから割り込み処理命令が通知され、マイコン４５は割り込み処理命令を認識する（ステップＳ２）。
【００７３】
次いで、マイコン４５が、当該割り込み処理に必要な情報を判断する（ステップＳ３）。次いで、マイコン４５が、当該割り込み処理に必要な情報の中から、仮想Ｉ／Ｏレジスタ部３５に転送すべき情報を選定する（ステップＳ４）。具体的には、マイコン４５は、割り込み処理に必要な情報が過去に仮想Ｉ／Ｏレジスタ部３５へ転送したことがある情報であるか否かに基づいて、転送すべき情報を選定する。過去に転送したことがない情報は転送の対象となり、過去に転送したことがある情報は転送の対象とはならない。「過去に転送したことがない情報」には、転送後に変化のあった情報が含まれる。「過去に転送したことがある情報」は、転送後に変化のなかった情報である。
【００７４】
次いで、マイコン４５は、ステップＳ４で選定された情報と、まとめて転送すべき情報と、まとめずに単発的に転送すべき情報とに選別（グループ分け）する。具体的には、マイコン４５は、ステップＳ４で選定された情報毎に、図２、３に示されるように、当該情報の取得周期Ｔ２と、当該情報を仮想Ｉ／Ｏレジスタ部３５へ転送する転送周期Ｔ１とを比較する（ステップＳ５）。なお、情報の取得周期Ｔ２と、仮想Ｉ／Ｏレジスタ部３５へ転送され格納される当該情報にＣＰＵコア部３１がアクセスするアクセス周期とは等しい値に設定されている。図２に示されるように、取得周期Ｔ２が転送周期Ｔ１以上である複数の情報については、まとめて仮想Ｉ／Ｏレジスタ部３５へ転送する情報として第２のデータ更新部４３に渡される（ステップＳ６）。一方、図３に示されるように、取得周期Ｔ２が転送周期Ｔ１より短いかまたは等しい情報については、単発的に仮想Ｉ／Ｏレジスタ部３５へ転送する情報として第２のデータ更新部４３に渡される（ステップＳ７）。
【００７５】
次いで、第２のデータ更新部４３は、ステップＳ６でマイコン４５から渡された情報を、まとめて仮想Ｉ／Ｏレジスタ部３５へ転送する（ステップＳ８）。一方、第２のデータ更新部４３は、ステップＳ７でマイコン４５から渡された情報を、従来と同様、単発的に仮想Ｉ／Ｏレジスタ部３５へ転送する（ステップＳ９）。
【００７６】
次いで、仮想Ｉ／Ｏレジスタ部３５の第１のデータ更新部３６が、ＣＰＵコア部３１からのアクセスをブロックするためのブロックフラグＢＦをオン（ＢＦ＝１）に設定する（ステップＳ１０）。
【００７７】
次いで、仮想Ｉ／Ｏレジスタ部３５への情報転送および転送された情報での更新が完了したら（ステップＳ１１）、ブロックフラグＢＦをオフ（ＢＦ＝０）に設定する（ステップＳ１２）。これにより、ＣＰＵコア部３１から仮想Ｉ／Ｏレジスタ部３５内の情報へのアクセスが可能となる。
【００７８】
次いで、ＣＰＵコア部３１が仮想Ｉ／Ｏレジスタ部３５内の情報（割り込み処理に必要な情報）にアクセスして割り込み処理を行い（ステップＳ１３）、処理を終了する。
以上が、情報処理装置１の他の例による処理である。
【００７９】
なお、上記実施形態では、取得周期Ｔ２が転送周期Ｔ１以上であるか否かを、情報をまとめて転送するか否かの判断基準としたが、これに代えて、取得周期Ｔ２が転送周期Ｔ１のＮ倍（Ｎは１以上の整数）であるか否かを判断基準としてもよい。以下、取得周期Ｔ２が転送周期Ｔ１のＮ倍（Ｎは１以上の整数）であるか否かを判断基準とする第２実施形態について説明する。
【００８０】
（第２実施形態）
以下、本発明の第２実施形態について、図面を参照しつつ説明する。
図９は、本発明の第２実施形態に係る情報処理装置の機能ブロックの一例を示す図である。なお、第１実施形態と同様の構成については、第１実施形態と同一の参照符号を付して、その説明を省略する。
【００８１】
第２実施形態が第１実施形態と異なる点は、上記の如く、取得周期Ｔ２が転送周期Ｔ１のＮ倍（Ｎは１以上の整数）であるか否かを、情報をまとめて転送するか否かの判断基準とする点であり、その他は第１実施形態と同様である。
【００８２】
図９に示されるように、本実施形態に係る情報処理装置１ａは、外部から情報を取得し、取得した情報をＣＰＵ部２０へ転送するＩ／Ｏ部４０ａと、Ｉ／Ｏ部４０ａから転送された情報を用いて命令セットシミュレータ（ＩＳＳ：Instruction Set Simulator）２１としての処理を行うＣＰＵ部２０とを備えた情報処理装置である。
【００８３】
Ｉ／Ｏ部４０ａは、マイコン４５ａを含む。Ｉ／Ｏ部４０ａは、周辺機器４２を介して外部から情報を取得する取得周期Ｔ２と、取得した情報を仮想Ｉ／Ｏレジスタ部３５へ転送する転送周期Ｔ１とを、取得した情報毎に比較する。転送周期Ｔ１および取得周期Ｔ２は、予め設定されており、既知である。なお、取得周期Ｔ２は情報毎に設定されているが、転送周期Ｔ１は情報毎に設定されておらず一定である。Ｉ／Ｏ部４０ａが情報を取得する取得周期Ｔ２は、仮想Ｉ／Ｏレジスタ部３５に転送される当該情報にＣＰＵコア部３１がアクセスするアクセス周期と同じに設定される。図１０は、本実施形態において情報がまとめて転送される場合の転送周期Ｔ１と取得周期Ｔ２の関係の一例を示す図であり、取得周期Ｔ２が転送周期Ｔ１のＮ倍（Ｎは１以上の整数）となっている。
「取得周期Ｔ２」の定義は、上記第１実施形態と同様である。
【００８４】
図１０に示される例では、（ｂ）のようにＮ＝２の周期Ｔ２（２）で取得される情報Ａ１と、（ｃ）のようにＮ＝３の周期Ｔ２（３）で取得される情報Ｂ１と、（ｄ）のようにＮ＝４の周期Ｔ２（４）で取得される情報Ｃ１と、（ｅ）のようにＮ＝５の周期Ｔ２（５）で取得される情報Ｄ１と、（ｆ）のようにＮ＝６の周期Ｔ２（６）で取得される情報Ｅ１と、が存在する。図１０に示される例では、情報Ａ１は時刻３μｓ〜６μｓの期間、時刻９μｓ〜１２μｓの期間、時刻１５μｓ〜１８μｓの期間、時刻２１μｓ〜２４μｓの期間、および時刻２７μｓ〜３０μｓの期間に取得され、情報Ｂ１は時刻６μｓ〜９μｓの期間、時刻１５μｓ〜１８μｓの期間、および時刻２４μｓ〜２７μｓの期間に取得され、情報Ｃ１は時刻９μｓ〜１２μｓの期間、および時刻２１μｓ〜２４μｓの期間に取得され、情報Ｄ１は時刻１２μｓ〜１５μｓの期間、および時刻２７μｓ〜３０μｓの期間に取得され、情報Ｅ１は時刻１５μｓ〜１８μｓの期間に取得される。また、図１０に示される例では、情報の転送周期Ｔ１は３μｓに設定されており、下記の第２のまとめ転送条件を満たす場合には、時刻３μｓ、６μｓ、９μｓ、１２μｓ、１５μｓ、１８μｓ、２１μｓ、２４μｓ、２７μｓ、および３０μｓのタイミング近傍で転送動作が行われる。
【００８５】
Ｉ／Ｏ部４０ａは、取得周期Ｔ２と転送周期Ｔ１とを、取得した情報毎に比較する。Ｉ／Ｏ部４０ａは、取得周期Ｔ２が転送周期Ｔ１のＮ倍（Ｎは１以上の整数）である複数の情報のみをまとめて仮想Ｉ／Ｏレジスタ部３５へ転送する。以下の説明では、「取得周期Ｔ２が転送周期Ｔ１のＮ倍（Ｎは１以上の整数）である」という条件を「第２のまとめ転送条件」と称することがある。Ｉ／Ｏ部４０ａは、より具体的には、隣り合う転送時刻の間の期間（転送周期Ｔ１の始期と終期の間）に取得した複数の情報のうち、第２のまとめ転送条件を満たす複数の情報のみをまとめて仮想Ｉ／Ｏレジスタ部３５へ転送する。図１０に示される例では、（ａ）に示されるように、時刻９μｓ〜１２μｓの期間に取得された情報Ａ１およびＣ１が時刻１２μｓ近傍でまとめて転送され、時刻１５μｓ〜１８μｓの期間に取得された情報Ａ１、Ｂ１、およびＥ１が時刻１８μｓ近傍でまとめて転送され、時刻２７μｓ〜３０μｓの期間に取得された情報Ａ１およびＤ１が時刻３０μｓ近傍でまとめて転送される。なお、図１０に示される例では、まとめて転送される情報の隣り合う情報同士が接しているが、隣り合う情報同士の間隔（時間）は必ずしもゼロである必要はなく、若干の間隔が空いていてもよい。また、時刻３μｓ〜６μｓの期間に取得された情報、時刻６μｓ〜９μｓの期間に取得された情報、時刻１２μｓ〜１５μｓの期間に取得された情報、時刻１８μｓ〜２１μｓの期間に取得された情報、時刻２４μｓ〜２７μｓの期間に取得された情報は、それぞれ１つなのでまとめた転送はされないが、取得直後における転送周期Ｔ１の転送時刻近傍に転送される。
【００８６】
図１１は、取得周期Ｔ２が転送周期Ｔ１のＮ倍（Ｎは１以上の整数）である場合、取得周期Ｔ２と、仮想Ｉ／Ｏレジスタ部３５での情報更新周期とが一致することを示す図である。図１１に示される取得周期Ｔ２および転送周期Ｔ１は一例である。図１１に示される例では、Ｉ／Ｏ部４０ａが情報を取得する取得周期Ｔ２が６μｓに設定され、Ｉ／Ｏ部４０ａから仮想Ｉ／Ｏレジスタ部３５へ情報が転送される転送周期Ｔ１が３μｓに設定されている。つまり、取得周期Ｔ２は転送周期Ｔ１の２倍に設定されている。なお、実際には、Ｉ／Ｏ部４０ａに情報を格納するのに要する時間、情報の転送に要する時間、および仮想Ｉ／Ｏレジスタ部３５に情報を格納するのに要する時間が存在するが、説明を簡単にするため、また発明の作用効果には殆ど影響しないため、ここではこれらの時間を無視する。よって、Ｉ／Ｏ部４０ａに情報が転送されると同時にＩ／Ｏ部４０ａに当該情報が格納されるものとして説明を行う。
【００８７】
図１１に示される例では、時刻６μｓに取得された情報は、時刻６μｓに転送され、時刻６μｓに仮想Ｉ／Ｏレジスタ部３５に格納される（仮想Ｉ／Ｏレジスタ部３５で情報の更新が行われる）。また、時刻１２μｓに取得された情報は、時刻１２μｓに転送され、時刻１２μｓに仮想Ｉ／Ｏレジスタ部３５に格納される。また、時刻１８μｓに取得された情報は、時刻１８μｓに転送され、時刻１８μｓに仮想Ｉ／Ｏレジスタ部３５に格納される。このように、取得周期Ｔ２が転送周期Ｔ１のＮ倍（Ｎは１以上の整数）である場合、Ｉ／Ｏ部４０ａでの取得周期Ｔ２と、仮想Ｉ／Ｏレジスタ部３５での情報更新周期Ｔ３とが６μｓで一致する。取得周期Ｔ２と、ＣＰＵコア部３１が仮想Ｉ／Ｏレジスタ部３５に格納された情報にアクセスする周期は同じに設定されている。よって、取得周期Ｔ２と情報更新周期Ｔ３が一致するため、シミュレート対象のターゲットＣＰＵ（実機のＣＰＵ）がＩ／Ｏレジスタ部４１の情報を取得する周期と、ＣＰＵコア部３１が仮想Ｉ／Ｏレジスタ部３５の情報を取得する周期を同期させることができ、適切なシミュレーションを行うことができる。
【００８８】
図１２は、取得周期Ｔ２が転送周期Ｔ１のＮ倍（Ｎは１以上の整数）でない場合、取得周期Ｔ２と、仮想Ｉ／Ｏレジスタ部３５での情報更新周期Ｔ３とが一致しないことを示す図である。図１２に示される取得周期Ｔ２および転送周期Ｔ１は一例である。図１２に示される例では、Ｉ／Ｏ部４０ａが情報を取得する取得周期Ｔ２が４μｓに設定され、Ｉ／Ｏ部４０ａから仮想Ｉ／Ｏレジスタ部３５へ情報が転送される転送周期Ｔ１が３μｓに設定されている。つまり、取得周期Ｔ２は転送周期Ｔ１の整数倍になっていない。なお、上記の同様の理由により、Ｉ／Ｏ部４０ａに情報を格納するのに要する時間、情報の転送に要する時間、および仮想Ｉ／Ｏレジスタ部３５に情報を格納するのに要する時間を無視する。
【００８９】
図１２に示される例では、時刻４μｓに取得された情報は、時刻６μｓに転送され、時刻６μｓに仮想Ｉ／Ｏレジスタ部３５に格納される（仮想Ｉ／Ｏレジスタ部３５で情報の更新が行われる）。また、時刻８μｓに取得された情報は、時刻９μｓに転送され、時刻９μｓに仮想Ｉ／Ｏレジスタ部３５に格納される。また、時刻１２μｓに取得された情報は、時刻１２μｓに転送され、時刻１２μｓに仮想Ｉ／Ｏレジスタ部３５に格納される。また、時刻１６μｓに取得された情報は、時刻１８μｓに転送され、時刻１８μｓに仮想Ｉ／Ｏレジスタ部３５に格納される。このように、取得周期Ｔ２が転送周期Ｔ１のＮ倍（Ｎは１以上の整数）でない場合、Ｉ／Ｏ部４０ａでの取得周期Ｔ２と、仮想Ｉ／Ｏレジスタ部３５での情報更新周期Ｔ３とが一致しない。取得周期Ｔ２と、ＣＰＵコア部３１が仮想Ｉ／Ｏレジスタ部３５に格納された情報にアクセスする周期は同じに設定されている。よって、取得周期Ｔ２と情報更新周期Ｔ３が一致しないため、シミュレート対象のターゲットＣＰＵ（実機のＣＰＵ）がＩ／Ｏレジスタ部４１の情報を取得する周期と、ＣＰＵコア部３１が仮想Ｉ／Ｏレジスタ部３５の情報を取得する周期を同期させることができず、適切なシミュレーションを行うことができない可能性がある。
【００９０】
次に、本実施形態に係る情報処理装置１ａの処理の流れについて説明する。図１３は、本実施形態に係る情報処理装置１ａの動作の一例を示すフローチャートである。なお、ここでは、Ｉ／Ｏ部４０ａのＡＤＣ４２ａから新たな情報が入力された場合について説明する。
【００９１】
図１３に示されるように、まず、Ｉ／Ｏ部４０のＡＤＣ４２ａが新たな情報を検出する（ステップＳ１）。次いで、マイコン４５ａにＡＤＣ４２ａから新たな情報が通知され、マイコン４５ａは新たな情報を認識する（ステップＳ２）。
【００９２】
次いで、マイコン４５ａは、ステップＳ２において認識された情報を、まとめて転送すべき情報と、まとめずに単発的に転送すべきデータとに選別（グループ分け）する。具体的には、マイコン４５ａは、ステップＳ２で認識された情報毎に、当該情報の取得周期Ｔ２と、当該情報を仮想Ｉ／Ｏレジスタ部３５へ転送する転送周期Ｔ１とを比較する（ステップＳ３）。なお、情報の取得周期Ｔ２と、仮想Ｉ／Ｏレジスタ部３５へ転送され格納される当該情報にＣＰＵコア部３１がアクセスするアクセス周期とは等しい値に設定されている。図１０に示されるように、取得周期Ｔ２が転送周期Ｔ１のＮ倍（Ｎは１以上の整数）である複数の情報については、隣り合う転送時刻の間の期間（図１０に示される例では、時刻９μｓ〜１２μｓ、時刻１５μｓ〜１８μｓ、時刻２１μｓ〜２４μｓ、時刻２７μｓ〜３０μｓ）毎に、まとめて仮想Ｉ／Ｏレジスタ部３５へ転送する情報として、第２のデータ更新部４３に渡される（ステップＳ４）。一方、取得周期Ｔ２が転送周期Ｔ１のＮ倍（Ｎは１以上の整数）でない情報については、単発的に仮想Ｉ／Ｏレジスタ部３５へ転送する情報として第２のデータ更新部４３に渡される（ステップＳ５）。
【００９３】
次いで、第２のデータ更新部４３は、ステップＳ４でマイコン４５から渡された情報を、まとめて仮想Ｉ／Ｏレジスタ部３５へ転送する（ステップＳ６）。一方、第２のデータ更新部４３は、ステップＳ５でマイコン４５から渡された情報を、従来と同様、単発的に仮想Ｉ／Ｏレジスタ部３５へ転送する（ステップＳ７）。
【００９４】
次いで、仮想Ｉ／Ｏレジスタ部３５の第１のデータ更新部３６が、ＣＰＵコア部３１からのアクセスをブロックするためのブロックフラグＢＦをオン（ＢＦ＝１）に設定する（ステップＳ８）。これにより、仮想Ｉ／Ｏレジスタ部３５に情報が転送されて当該情報で更新が行われるまでにＣＰＵコア部３１からアクセスがあったときに、当該アクセスをブロックすることができる。アクセスをブロックすることにより、更新前の古い情報を用いて不適切な情報処理が行われるのを防止することができる。
【００９５】
次いで、仮想Ｉ／Ｏレジスタ部３５への情報転送および転送された情報での更新が完了したら（ステップＳ９）、ブロックフラグＢＦをオフ（ＢＦ＝０）に設定する（ステップＳ１０）。これにより、ＣＰＵコア部３１から仮想Ｉ／Ｏレジスタ部３５内の情報へのアクセスが可能となる。
【００９６】
次いで、ＣＰＵコア部３１が仮想Ｉ／Ｏレジスタ部３５内の情報にアクセスして処理を行い（ステップＳ１１）、処理を終了する。
以上が、情報処理装置１ａによる処理である。
【００９７】
次に、本実施形態に係る情報処理装置１ａの処理の他の例について説明する。図１４は、本実施形態に係る情報処理装置１ａの動作の他の例を示すフローチャートである。なお、ここでは、Ｉ／Ｏ部４０ａのＡＤＣ４２ａに割り込み処理命令が入力された場合について説明する。
【００９８】
図１４に示されるように、まず、Ｉ／Ｏ部４０ａのＡＤＣ４２ａが割り込み処理命令を検出する（ステップＳ１）。次いで、マイコン４５ａにＡＤＣ４２ａから割り込み処理命令が通知され、マイコン４５ａは割り込み処理命令を認識する（ステップＳ２）。
【００９９】
次いで、マイコン４５ａが、当該割り込み処理に必要な情報を判断する（ステップＳ３）。次いで、マイコン４５ａが、当該割り込み処理に必要な情報の中から、仮想Ｉ／Ｏレジスタ部３５に転送すべき情報を選定する（ステップＳ４）。具体的には、マイコン４５ａは、割り込み処理に必要な情報が過去に仮想Ｉ／Ｏレジスタ部３５へ転送したことがある情報であるか否かに基づいて、転送すべき情報を選定する。過去に転送したことがない情報は転送の対象となり、過去に転送したことがある情報は転送の対象とはならない。「過去に転送したことがない情報」には、転送後に変化のあった情報が含まれる。「過去に転送したことがある情報」は、転送後に変化のなかった情報である。
【０１００】
次いで、マイコン４５ａは、ステップＳ４で選定された情報を、まとめて転送すべき情報と、まとめずに単発的に転送すべきデータとに選別（グループ分け）する。具体的には、マイコン４５ａは、ステップＳ２で選定された情報毎に、当該情報の取得周期Ｔ２と、当該情報を仮想Ｉ／Ｏレジスタ部３５へ転送する転送周期Ｔ１とを比較する（ステップＳ５）。なお、情報の取得周期Ｔ２と、仮想Ｉ／Ｏレジスタ部３５へ転送され格納される当該情報にＣＰＵコア部３１がアクセスするアクセス周期とは等しい値に設定されている。図１０に示されるように、取得周期Ｔ２が転送周期Ｔ１のＮ倍（Ｎは１以上の整数）である複数の情報については、隣り合う転送時刻の間の期間（図１０に示される例では、時刻９μｓ〜１２μｓ、時刻１５μｓ〜１８μｓ、時刻２１μｓ〜２４μｓ、時刻２７μｓ〜３０μｓ）毎に、まとめて仮想Ｉ／Ｏレジスタ部３５へ転送する情報として、第２のデータ更新部４３に渡される（ステップＳ６）。一方、取得周期Ｔ２が転送周期Ｔ１のＮ倍（Ｎは１以上の整数）でない情報については、単発的に仮想Ｉ／Ｏレジスタ部３５へ転送する情報として第２のデータ更新部４３に渡される（ステップＳ７）。
【０１０１】
次いで、第２のデータ更新部４３は、ステップＳ６でマイコン４５から渡された情報を、まとめて仮想Ｉ／Ｏレジスタ部３５へ転送する（ステップＳ８）。一方、第２のデータ更新部４３は、ステップＳ７でマイコン４５から渡された情報を、従来と同様、単発的に仮想Ｉ／Ｏレジスタ部３５へ転送する（ステップＳ９）。
【０１０２】
次いで、仮想Ｉ／Ｏレジスタ部３５の第１のデータ更新部３６が、ＣＰＵコア部３１からのアクセスをブロックするためのブロックフラグＢＦをオン（ＢＦ＝１）に設定する（ステップＳ１０）。
【０１０３】
次いで、仮想Ｉ／Ｏレジスタ部３５への情報転送および転送された情報での更新が完了したら（ステップＳ１１）、ブロックフラグＢＦをオフ（ＢＦ＝０）に設定する（ステップＳ１２）。これにより、ＣＰＵコア部３１から仮想Ｉ／Ｏレジスタ部３５内の情報へのアクセスが可能となる。
【０１０４】
次いで、ＣＰＵコア部３１が仮想Ｉ／Ｏレジスタ部３５内の情報（割り込み処理に必要な情報）にアクセスして割り込み処理を行い（ステップＳ１３）、処理を終了する。
以上が、情報処理装置１ａの他の例による処理である。
【産業上の利用可能性】
【０１０５】
本発明は、情報転送先での情報処理に支障を生じさせることなく情報の転送速度を高めて処理時間を短縮することができる、情報処理装置および情報処理方法に適用可能である。また、本発明は、例えば自動車等の制御装置における情報処理に適用可能である。
【符号の説明】
【０１０６】
１、１ａ    情報処理装置
２０    ＣＰＵ部
２１    ＩＳＳ
２２    ホストＣＰＵ
２３    通信路
３１    ＣＰＵコア部
３２    ＬＤ／ＳＴアクセス制御部
３５    仮想Ｉ／Ｏレジスタ部
３６    第１のデータ更新部
３７    アクセステーブル
４０、４０ａ    Ｉ／Ｏ部
４１    Ｉ／Ｏレジスタ部
４２    周辺機器
４３    第２のデータ更新部
４５、４５ａ    マイコン
１００    ＰＣ
【図１】
2014021563.tif 000003
【図２】
2014021563.tif 000004
【図３】
2014021563.tif 000005
【図４】
2014021563.tif 000006
【図５】
2014021563.tif 000007
【図６】
2014021563.tif 000008
【図７】
2014021563.tif 000009
【図８】
2014021563.tif 000010
【図９】
2014021563.tif 000011
【図１０】
2014021563.tif 000012
【図１１】
2014021563.tif 000013
【図１２】
2014021563.tif 000014
【図１３】
2014021563.tif 000015
【図１４】
2014021563.tif 000016
【図１５】
2014021563.tif 000017
【図１６】
2014021563.tif 000018