(57)【要約】      （修正有）【課題】複数のバスアクセスを並列的に行う場合であっても、ソフトウェアの作成工数の増加やソースコードの増加を要することなく、各命令の実行順序や実行結果を意図したものとすることができるマイクロコンピュータ、および、当該マイクロコンピュータを備える電子制御装置を提供する。【解決手段】マイクロコンピュータ１００は、ＣＰＵ１０を有するコア１１と、コア１１と複数の周辺機能部３１，３２，３３とをそれぞれ接続する複数のバス１２，１６，１７と、ＣＰＵ１０により実行される命令がアクセスするバスと当該バスのアクセスレイテンシに基づいて、当該命令の実行タイミングを調整する判定器１４と、を備える。【選択図】図１
2017117071.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵ（１０）を有するコア（１１）と、
前記コアと複数の周辺機能部（３１，３２，３３）とをそれぞれ接続する複数のバス（１２，１６，１７）と、
前記ＣＰＵにより実行される命令がアクセスするバスと当該バスのアクセスレイテンシに基づいて、当該命令の実行タイミングを調整する調整部（１４）と、
を備えるマイクロコンピュータ。
【請求項２】
前記調整部は、
前記ＣＰＵが実行している命令を先行命令、前記先行命令に続く命令を後続命令とし、
前記先行命令がアクセスしているバスのアクセスレイテンシよりも前記後続命令がアクセスするバスのアクセスレイテンシが短い場合であって、且つ、前記先行命令がアクセスしているバスと前記後続命令がアクセスするバスが異なる場合は、前記ＣＰＵによる前記後続命令の実行を前記先行命令の実行が完了するまで待機させる請求項１に記載のマイクロコンピュータ。
【請求項３】
前記調整部は、
前記ＣＰＵが実行している命令を先行命令、前記先行命令に続く命令を後続命令とし、
前記先行命令がアクセスしているバスのアクセスレイテンシよりも前記後続命令がアクセスするバスのアクセスレイテンシが長い場合、または、前記先行命令がアクセスしているバスと前記後続命令がアクセスするバスが同じ場合は、前記ＣＰＵにより前記後続命令を待機させることなく実行する請求項１または２に記載のマイクロコンピュータ。
【請求項４】
前記調整部は、
前記ＣＰＵが実行している命令を先行命令、前記先行命令に続く命令を後続命令とし、
前記先行命令が所定のレジスタを参照する場合は、前記ＣＰＵによる前記後続命令の実行を前記先行命令の実行が完了するまで待機させる請求項１から３の何れか１項に記載のマイクロコンピュータ。
【請求項５】
マイクロコンピュータ（１００）を備える電子制御装置（２００）であって、
ＣＰＵ（１０）を有するコア（１１）と、
前記コアと複数の周辺機能部（３１，３２，３３）とをそれぞれ接続する複数のバス（１２，１６，１７）と、
前記ＣＰＵにより実行される命令がアクセスするバスと当該バスのアクセスレイテンシに基づいて、当該命令の実行タイミングを調整する調整部（１４）と、
を備える電子制御装置。
【請求項６】
前記調整部は、
前記ＣＰＵが実行している命令を先行命令、前記先行命令に続く命令を後続命令とし、
前記先行命令がアクセスしているバスのアクセスレイテンシよりも前記後続命令がアクセスするバスのアクセスレイテンシが短い場合であって、且つ、前記先行命令がアクセスしているバスと前記後続命令がアクセスするバスが異なる場合は、前記ＣＰＵによる前記後続命令の実行を前記先行命令の実行が完了するまで待機させる請求項５に記載の電子制御装置。
【請求項７】
前記調整部は、
前記ＣＰＵが実行している命令を先行命令、前記先行命令に続く命令を後続命令とし、
前記先行命令がアクセスしているバスのアクセスレイテンシよりも前記後続命令がアクセスするバスのアクセスレイテンシが長い場合、または、前記先行命令がアクセスしているバスと前記後続命令がアクセスするバスが同じ場合は、前記ＣＰＵにより前記後続命令を待機させることなく実行する請求項５または６に記載の電子制御装置。
【請求項８】
前記調整部は、
前記ＣＰＵが実行している命令を先行命令、前記先行命令に続く命令を後続命令とし、
前記先行命令が所定のレジスタを参照する場合は、前記ＣＰＵによる前記後続命令の実行を前記先行命令の実行が完了するまで待機させる請求項５から７の何れか１項に記載の電子制御装置。
【請求項９】
前記調整部は、前記マイクロコンピュータの外部に備えられている請求項５から８の何れか１項に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータおよびマイクロコンピュータを備える電子制御装置に関する。
【背景技術】
【０００２】
従来より、マイクロコンピュータのスループットの向上を図るために、ＣＰＵから複数の周辺機能部へのバスアクセスを並列的に行う技術が考えられている。この技術は、複数のバスアクセスを並列に実行することで、異なるアクセス対象へのバスの競合を回避し、バスアクセスに要する全体的な処理時間を削減するものである。これにより、複数のバスアクセスを直列的に実行する場合に比べ、スループットの向上を図ることが可能となる（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−１６０４５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、上記の従来技術では、複数のバスアクセスが並列的に行われることから、複数の命令がそれぞれアクセスするバスが異なる場合に、各命令の実行順序や実行結果がプログラマの意図しないものになる可能性がある。即ち、各命令がアクセスするバスのアクセスレイテンシの相違に起因して、先に実行を開始した先行命令よりも、後に実行を開始した後続命令の方が早く実行を完了してしまう場合が有り得る。特に、後続命令の実行内容が先行命令の実行結果により異なるような場合には、先行命令の実行完了前に後続命令が実行完了するようでは、後続命令の実行結果が、プログラマが意図していない内容となってしまうおそれがある。
【０００５】
このような課題に対処するため、従来では、各命令の実行順序や実行結果を意図したもとするための命令、例えば、先行命令の実行完了まで後続命令を待機させる命令を予めプログラムに組み込むことが行われている。しかし、この対処法では、ソフトウェアの作成工数の増加やソースコードの増加といった問題が生じる。
【０００６】
そこで、本発明は、複数のバスアクセスを並列的に行う場合であっても、ソフトウェアの作成工数の増加やソースコードの増加を要することなく、各命令の実行順序や実行結果を意図したものとすることができるマイクロコンピュータ、および、当該マイクロコンピュータを備える電子制御装置を提供する。
【課題を解決するための手段】
【０００７】
本発明に係るマイクロコンピュータは、ＣＰＵを有するコアと、コアと複数の周辺機能部とをそれぞれ接続する複数のバスと、ＣＰＵにより実行される命令がアクセスするバスと当該バスのアクセスレイテンシに基づいて、当該命令の実行タイミングを調整する調整部と、を備える。
【０００８】
本発明に係る電子制御装置は、ＣＰＵを有するコアと、コアと複数の周辺機能部とをそれぞれ接続する複数のバスと、ＣＰＵにより実行される命令がアクセスするバスと当該バスのアクセスレイテンシに基づいて、当該命令の実行タイミングを調整する調整部と、を有する。
【０００９】
この構成によれば、実行中の命令に続く後続命令の実行タイミングを調整するための命令を組み込む必要が無く、従って、複数のバスアクセスを並列的に行う場合であっても、ソフトウェアの作成工数の増加やソースコードの増加を要することなく、各命令の実行順序や実行結果を意図したものとすることができる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態に係るマイクロコンピュータの構成例を概略的に示す図
【図２】実行状態テーブルおよび特定レジスタ番号テーブルの一例を概略的に示す図
【図３】マイクロコンピュータによる動作内容の一例を示すフローチャート
【図４】マイクロコンピュータによる動作内容の一例を示す図
【図５】並列的に実行される複数の命令の処理タイミングおよび処理時間を比較して示す図
【図６】待機命令を組み込むことにより後続命令を待機させる場合を示す図
【図７】本実施形態により後続命令を待機させる場合を示す図（その１）
【図８】本実施形態により後続命令を待機させる場合を示す図（その２）
【図９】本実施形態に係る電子制御装置の構成例を概略的に示す図
【発明を実施するための形態】
【００１１】
以下、マイクロコンピュータおよび電子制御装置に係る一実施形態について図面を参照しながら説明する。図１に例示するマイクロコンピュータ１００は、ＣＰＵ１０を有するコア１１を主体として構成されている。以下、マイクロコンピュータ１００を「マイコン１００」と称する。ＣＰＵ１０は、図４に例示するコードフラッシュメモリ１０ａから命令を読み込む構成となっている。コア１１は、内部バス１２、内蔵周辺機能部１３、判定器１４、記憶部１５などを備える。ＣＰＵ１０は、内部バス１２を介して内蔵周辺機能部１３に接続されている。また、内部バス１２は、コア１１の内部に設けられている。また、内部バス１２は、コア１１の外部に設けられているマルチコアバス１６、周辺バス１７に接続されている。
【００１２】
マルチコアバス１６は、ブリッジ２１を介して高速周辺機能部３１に接続されている。また、マルチコアバス１６は、コア１１とは異なる他のコア１１Ａにも接続されている。周辺バス１７は、ブリッジ２２を介して低速周辺機能部３２に接続され、また、ブリッジ２３を介して低速周辺機能部３３に接続されている。内部バス１２、マルチコアバス１６、周辺バス１７は、相互に異なるアクセスレイテンシを有しており、それぞれのバスを介したアクセス時間が異なる構成となっている。
【００１３】
内蔵周辺機能部１３は、例えば、キャッシュメモリとしての機能を備える。高速周辺機能部３１は、例えば、データフラッシュメモリとしての機能を備える。低速周辺機能部３２は、例えば、通信規格の一例であるＣＡＮ（登録商標）としての機能を備える。低速周辺機能部３３は、例えば、通信規格の一例であるＬＩＮとしての機能を備える。なお、各周辺機能部の機能は、これらに限られず、例えば、コードフラッシュメモリ、タイマ、ＲＡＭ、アナログ／デジタル変換器など種々の機能を採用することができる。
【００１４】
判定器１４は、調整部の一例であり、ＣＰＵ１０により実行される命令がアクセスするバスと当該バスのアクセスレイテンシに基づいて、当該命令の実行タイミングを調整する。記憶部１５は、メモリなどの記憶媒体で構成されており、各バスのアクセスレイテンシの値を格納した図示しないアクセスレイテンシテーブルなどの情報を記憶している。また、記憶部１５は、図２に例示する実行状態テーブルＴ１、および、特定レジスタ番号テーブルＴ２を備える。
【００１５】
実行状態テーブルＴ１は、ＣＰＵ１０による命令の実行状態を保持するテーブルである。即ち、実行状態テーブルには、ＣＰＵ１０により実行される複数の命令について、それぞれの命令がアクセスするバスと当該バスのアクセスレイテンシとが対応付けて格納されている。各命令がアクセスするバスは、例えば命令をデコードすることにより特定することができる。また、各バスのアクセスレイテンシは、アクセスレイテンシテーブルを参照することにより特定することができる。そして、実行状態テーブルＴ１を参照することにより、ＣＰＵ１０により実行されている命令のアクセスバスおよびアクセスレイテンシを把握することができる。
【００１６】
特定レジスタ番号テーブルＴ２には、ユーザにより任意に選択されたレジスタ番号が予め書き込まれている。命令の実行順序や実行結果を意図したものとしなければならない必要性が高い命令について、ユーザは、その命令が参照するレジスタ番号を特定レジスタ番号テーブルＴ２に予め書き込んでおく。
【００１７】
マイコン１００は、命令の実行を開始すると、判定器１４により、次に例示する判定動作を実行する。以下、ＣＰＵ１０が実行を開始している命令を「先行命令」、当該先行命令に続く命令を「後続命令」と称する。即ち、図３に例示するように、マイコン１００は、先行命令が参照するレジスタ番号が特定レジスタ番号テーブルＴ２に書き込まれている特定レジスタ番号であるか否かを確認する（Ａ１）。マイコン１００は、先行命令が参照するレジスタ番号が特定レジスタ番号である場合（Ａ１：ＹＥＳ）には、ＣＰＵ１０による後続命令の実行を先行命令の実行が完了するまで待機させる（Ａ２）。
【００１８】
一方、マイコン１００は、先行命令が参照するレジスタ番号が特定レジスタ番号でない場合（Ａ１：ＮＯ）には、先行命令がアクセスしているバスと後続命令がアクセスするバスとが同一であるか否かを確認する（Ａ３）。マイコン１００は、先行命令および後続命令がアスセスするバスが同一である場合（Ａ３：ＹＥＳ）には、ＣＰＵ１０により後続命令を待機させることなく、そのまま実行する（Ａ４）。
【００１９】
一方、マイコン１００は、先行命令および後続命令がアスセスするバスが異なる場合（Ａ３：ＮＯ）には、先行命令がアクセスしているバスのアクセスレイテンシよりも後続命令がアクセスするバスのアクセスレイテンシが長いか否かを確認する（Ａ５）。マイコン１００は、先行命令のアクセスレイテンシよりも後続命令のアクセスレイテンシが長い場合（Ａ５：ＹＥＳ）には、後続命令を待機させることなく実行する（Ａ４）。一方、マイコン１００は、先行命令のアクセスレイテンシよりも後続命令のアクセスレイテンシが短い場合（Ａ５：ＮＯ）には、後続命令の実行を先行命令の実行が完了するまで待機させる（Ａ２）。
【００２０】
次に、マイコン１００の全体的な動作例について説明する。即ち、図４に例示するように、マイコン１００は、コードフラッシュメモリ１０ａから命令を読み込む（Ｂ１）。そして、マイコン１００は、読み込んだ命令をデコーダ１０ｂによりデコード、つまり解析し、命令ウインドウ１０ｃに格納する（Ｂ２）。命令ウインドウ１０ｃは、デコード済みの命令を保持するレジスタとして機能するものである。
【００２１】
マイコン１００は、命令ウインドウ１０ｃに保持されている命令の実行を開始する場合には、判定器１４により、その命令を直ちに実行するのか、あるいは、待機させるのか、を問い合わせる（Ｂ３）。この問い合わせを受けて、判定器１４は、上述の判定動作のフローに従って、アクセスレイテンシテーブルや特定レジスタ番号テーブルを参照して命令を待機させるのか否かを判定する（Ｂ４）。そして、判定器１４は、判定結果をＣＰＵ１０に与える（Ｂ５）。
【００２２】
マイコン１００は、判定結果が「実行を待機させない」である場合には、命令ウインドウ１０ｃに保持されている命令の実行を直ちに開始し、各種のバスにアクセスする（Ｂ６）。一方、マイコン１００は、判定結果が「実行を待機させる」である場合には、命令ウインドウ１０ｃに保持されている命令の実行を先行命令の実行が完了するまで待機させる。そして、先行命令の実行が完了すると、命令ウインドウ１０ｃに保持されている命令の実行を開始する。
【００２３】
マイコン１００は、命令ウインドウ１０ｃに保持されている命令の実行を開始すると、その命令がアクセスするバスと、当該バスのアクセスレイテンシを記憶部１５に記憶する（Ｂ７）。そして、マイコン１００は、命令ウインドウ１０ｃに保持されている命令の実行を完了すると、記憶部１５に記憶した当該命令のアクセスバスとアクセスレイテンシの情報を消去する。
【００２４】
図５に示す例では、命令Ｉ１，Ｉ２，Ｉ３を並列的に実行する場合において、後続命令である命令Ｉ３のアクセスレイテンシＡＬ３が、先行命令である命令Ｉ２のアクセスレイテンシＡＬ２よりも短くなっている。また、命令Ｉ３のアクセス先である内蔵周辺機能部１３と、命令Ｉ２のアクセス先である低速周辺機能部３２あるいは低速周辺機能部３３とが異なっている。即ち、命令Ｉ３がアクセスするバス、この場合、内部バス１２のみからなるバスと、命令Ｉ２がアクセスするバス、この場合、内部バス１２と周辺バス１７とからなるバスとが異なっている。このような状況では、後続命令Ｉ３が先行命令Ｉ２よりも先に完了してしまうおそれがあり、特に、後続命令Ｉ３の実行内容が先行命令Ｉ２の実行結果により異なるような場合には、後続命令Ｉ２の実行結果が意図していない内容となってしまう。
【００２５】
このような課題に対処するためには、図６に例示するように、先行命令Ｉ２の実行完了まで後続命令Ｉ３を待機させる待機命令Ｉ４をプログラムに組み込む必要がある。しかし、この対処法では、命令Ｉ４を組み込む行程が必要となり好ましくない。
【００２６】
本実施形態によれば、図７に例示するように、マイコン１００は、先行命令Ｉ２がアクセスしているバスのアクセスレイテンシよりも後続命令Ｉ３がアクセスするバスのアクセスレイテンシが短い場合であって、且つ、先行命令Ｉ２がアクセスしているバスと後続命令Ｉ３がアクセスするバスとが異なる場合には、後続命令Ｉ３の実行を先行命令Ｉ２の実行が完了するまで待機させる。そして、上述した通り、マイコン１００は、このような後続命令Ｉ３の実行タイミングを調整する動作を、ハードウェア構成により実現しており、従って、後続命令Ｉ３の実行タイミングを調整するために待機命令Ｉ４を組み込む必要がない。よって、本実施形態によれば、複数のバスアクセスを並列的に行う場合であっても、ソフトウェアの作成工数の増加やソースコードの増加を要することなく、各命令の実行順序や実行結果を意図したものとすることができる。
【００２７】
また、本実施形態によれば、マイコン１００は、先行命令がアクセスしているバスのアクセスレイテンシよりも後続命令がアクセスするバスのアクセスレイテンシが長い場合、または、先行命令がアクセスしているバスと後続命令がアクセスするバスが同じ場合には、後続命令を待機させることなく直ちに実行する。即ち、先行命令のアクセスレイテンシよりも後続命令のアクセスレイテンシの方が長い場合、あるいは、両命令がアクセスするバスが同じである場合には、後続命令が先行命令よりも先に完了してしまうおそれがない。従って、このような場合には、後続命令の実行を待機させることなく直ちに開始することにより、並列的に行われる複数の命令の全体的な処理時間を抑えることができる。
【００２８】
また、図８に例示するように、本実施形態によれば、マイコン１００は、先行命令Ｉ５が特定レジスタを参照する場合には、後続命令Ｉ６の実行を先行命令Ｉ５の実行が完了するまで待機させる。即ち、後続命令Ｉ６が先行命令Ｉ５よりも先に完了してしまうことを確実に回避したい場合には、その先行命令Ｉ５が参照するレジスタ番号を特定レジスタ番号として予め記憶しておくことにより対処することができる。
【００２９】
なお、本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の実施形態に適用可能である。
図９に例示するように、マイコン１００は、判定器１４を当該マイコン１００の外部に備える構成としてもよい。この場合、マイコン１００は、外部の判定器１４とともに電子制御装置２００を構成している。即ち、本発明は、判定器１４をマイコン１００の外部において実現する場合にも適用することができる。なお、電子制御装置２００は、さらに記憶部１５もマイコン１００の外部に備える構成としてもよい。
【符号の説明】
【００３０】
図面中、１０はＣＰＵ、１１はコア、１２は内部バス、１４は判定器（調整部）、１６はマルチコアバス、１７は周辺バス、３１は高速周辺機能部、３２，３３は低速周辺機能部、１００はマイクロコンピュータ、２００は電子制御装置、を示す。
【図１】
2017117071.tif 000003
【図２】
2017117071.tif 000004
【図３】
2017117071.tif 000005
【図４】
2017117071.tif 000006
【図５】
2017117071.tif 000007
【図６】
2017117071.tif 000008
【図７】
2017117071.tif 000009
【図８】
2017117071.tif 000010
【図９】
2017117071.tif 000011