(57)【要約】【課題】統合ＥＣＵにおいて単体ＥＣＵ機能の検証の際、周辺リソースを専有してしまい、各Ｔｉｅｒ１は統合状態における単体ＥＣＵ機能の検証ができない。【解決手段】半導体装置は、複数の演算リソースと、前記複数の演算リソースに共用される周辺リソースと、前記演算リソースのうちの一つの演算リソースが前記周辺リソースを利用する期間を制御する制御機構と、を備える。前記制御機構は、所定の単位時間内に利用が禁止される前記周辺リソースの利用禁止期間を評価事前に与えられる性能割り当てである予算値に基づいて生成するよう構成される。【選択図】図４
2020098507.tif 000002
【特許請求の範囲】
【請求項１】
複数の演算リソースと、
前記複数の演算リソースに共用される周辺リソースと、
前記演算リソースのうちの一つの演算リソースが前記周辺リソースを利用する期間を制御する制御機構と、
を備え、
前記制御機構は、所定の単位時間内に利用が禁止される前記周辺リソースの利用禁止期間を評価事前に与えられる性能割り当てである予算値に基づいて生成するよう構成される半導体装置。
【請求項２】
請求項１の半導体装置において、
前記制御機構は、前記一つの演算リソースが前記周辺リソースを利用する利用時間に基づいて動的に前記利用禁止期間を生成するよう構成される半導体装置。
【請求項３】
請求項２の半導体装置において、
前記制御機構は、前記周辺リソースの利用後に、直前の前記利用時間に基づいて前記利用禁止期間を生成するよう構成される半導体装置。
【請求項４】
請求項３の半導体装置において、
前記制御機構は、前記利用禁止期間以外に前記周辺リソースの利用がなかった場合、その利用していなかった期間は前記利用禁止期間から差し引くよう構成される半導体装置。
【請求項５】
請求項４の半導体装置において、
前記制御機構は、
前記周辺リソースの利用時間を計測する第一カウンタと、
前記周辺リソースの利用可能および不可を判断する第二カウンタと、
を備え、
前記制御機構は、前記第二カウンタに前記予算値と前記第一カウンタのカウント値に基づいた値を加算し、前記周辺リソースを利用していない期間は前記第二カウンタを減数動作させ、前記第二カウンタのカウント値の場合は前記周辺リソースを利用禁止とし、前記第二カウンタのカウント値が負の場合は前記周辺リソースを利用可能とし、通信周辺リソースを利用している間は前記第二カウンタを停止するよう構成される半導体装置。
【請求項６】
請求項５の半導体装置において、
前記制御機構は、さらに、
前記所定の単位時間を計数し、前記第一カウンタおよび前記第二カウンタを初期化する信号を生成するタイマと、
前記予算値および前記所定の単位時間を外部から受け取る制御回路と、
を備える半導体装置。
【請求項７】
請求項６の半導体装置において、
前記複数の演算リソースは、ＣＰＵと、前記ＣＰＵが実行するソフトウェアプログラムを格納するメモリで構成され、
前記周辺リソースは通信周辺回路である半導体装置。
【請求項８】
請求項７の半導体装置と、
車載ネットワーク線と前記通信周辺回路とに接続されるトランシーバＩＣと、
を備える電子制御装置。
【請求項９】
請求項１の半導体装置において、さらに、
前記複数の演算リソースに共用される第二周辺リソースと、
前記演算リソースのうちの一つの演算リソースが前記第二周辺リソースを利用する期間を制御する第二制御機構と、
を備え、
前記第二制御機構は、所定の単位時間内に利用が禁止される前記周辺リソースの利用禁止期間を評価事前に与えられる性能割り当てである予算値に基づいて生成するよう構成される半導体装置。
【請求項１０】
複数の演算リソースと、前記複数の演算リソースに共用される周辺リソースと、前記演算リソースが前記周辺リソースを利用する期間を制御する制御機構と、を備え、前記制御機構は、所定の単位時間内に利用が禁止される前記周辺リソースの利用禁止期間を評価事前に与えられる性能割り当てである予算値に基づいて生成するよう構成される半導体装置を含む電子制御装置を準備するステップと、
前記複数の演算リソースのうちの一つの演算リソースを実現するソフトウェアを開発し前記電子制御装置に搭載するステップと、
前記電子制御装置を動作させて前記ソフトウェアを検証するステップと、
を有する電子制御装置の検証方法。
【請求項１１】
複数の演算リソースと、前記複数の演算リソースに共用される周辺リソースと、前記演算リソースが前記周辺リソースを利用する期間を制御する制御機構と、を備え、前記制御機構は、所定の単位時間内に利用が禁止される前記周辺リソースの利用禁止期間を評価事前に与えられる性能割り当てである予算値に基づいて生成するよう構成される半導体装置を含む電子制御装置を準備する工程と、
前記複数の演算リソースのうちの一つの演算リソースを実現するソフトウェアを前記電子制御装置に搭載して動作させて検証された第一ソフトウェアを準備する工程と、
前記複数の演算リソースのうちの他の一つの演算リソースを実現するソフトウェアを前記電子制御装置に搭載して動作させて検証された第二ソフトウェアを準備する工程と、
前記第一ソフトウェアおよび前記第二ソフトウェアを前記電子制御装置に搭載する工程と、
前記第一ソフトウェアと前記第二ソフトウェアとの連携機能を検証する工程と、
を備える電子制御装置の製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は半導体装置に関し、例えば電子制御装置に用いられる半導体装置に適用可能である。
【背景技術】
【０００２】
乗用車、トラックおよびバス等の車両には、電子制御装置（Electronic Control Unit、以下、ＥＣＵという。）が多数搭載されている。各ＥＣＵは車両内ネットワークを介して相互接続し、協調動作する。車両内電子アーキテクチャは複雑化の一途をたどっている。この問題に対し、車両内電子アーキテクチャ全体でのコストダウンのため車両内ネットワークの簡素化およびＥＣＵの統合がその解法として採用されつつある（例えば、特開２０１２−１１４７２４号公報）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１１４７２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
機能統合の対象となる個々のシステム（ＥＣＵ）は、その業務形態からそれぞれ別の会社（Ｔｉｅｒ１)で開発され検証される。ここで、Ｔｉｅｒ１とはメーカに直接納入する一次サプライヤ（一次下請け）である。その後、車両組み立てを担う車両メーカ（以下、ＯＥＭという。）にて組み上げられる。その際、それぞれの「個々のシステム」の接続に関する部分の検証が行われ全体としての機能の検証が完了する。「個々のシステム」の独立性が自明だからである。
【０００５】
一方で、これら「個々」として開発された「システム」を統合してゆくことが期待されているが、この統合の際も、「個々のシステム」として定義・検証された機能が確実に実現されることが条件となる。
【０００６】
各Ｔｉｅｒ１は、統合ＥＣＵのハードウェアを用いて自社担当のＥＣＵ機能を実現するソフトウェアの開発・検証を行う。統合ＥＣＵは単体ＥＣＵ機能に対応する複数の演算リソースとその複数の演算リソースに共用される周辺リソースで構成される場合がある。この場合、各演算リソースは周辺リソースを専有することができず、利用が制限される。
【０００７】
しかし、統合ＥＣＵにおいて単体ＥＣＵ機能の検証の際、周辺リソースを専有してしまい、各Ｔｉｅｒ１は統合状態における単体ＥＣＵ機能の検証ができない。
その他の課題と新規な特徴は、本開示の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
本開示のうち、代表的なものの概要を簡単に説明すれば、下記のとおりである。
すなわち、半導体装置は、複数の演算リソースと、前記複数の演算リソースに共用される周辺リソースと、前記演算リソースのうちの一つの演算リソースが前記周辺リソースを利用する期間を制御する制御機構と、を備える。前記制御機構は、所定の単位時間内に利用が禁止される前記周辺リソースの利用禁止期間を評価事前に与えられる性能割り当てである予算値に基づいて生成するよう構成される。
【発明の効果】
【０００９】
上記半導体装置によれば、統合状態における単体ＥＣＵ機能の検証が可能になる。
【図面の簡単な説明】
【００１０】
【図１】図１（Ａ）は統合前のＥＣＵの構成を模式的に示す図であり、図１（Ｂ）は比較例の統合ＥＣＵの構成を模式的に示す図である。
【図２】図２（Ａ）はＴｉｅｒ１による図１（Ｂ）の統合ＥＣＵの検証を説明するブロック図であり、図２（Ｂ）はＯＥＭおよびＴｉｅｒ１による図１（Ｂ）の統合ＥＣＵの検証を説明するブロック図である。
【図３】図３は図１（Ｂ）の統合ＥＣＵの検証を説明するフローチャートである。
【図４】図４は実施形態の統合ＥＣＵの構成を模式的に示す図である。
【図５】図５は単位時間内の利用可能期間と利用禁止期間を示す図である。
【図６】図６は実施例の統合ＥＣＵの構成を模式的に示す図である。
【図７】図７は図６の制御回路の構成を示すブロック図である。
【図８】図８は図６の制御回路の動作を説明する図である。
【図９】図９は図６の制御回路の複数の単位時間における動作を説明する図である。
【図１０】図１０は図６の統合ＥＣＵの製造方法を説明するフローチャートである。
【図１１】図１１は変形例の統合ＥＣＵの構成を模式的に示す図である。
【発明を実施するための形態】
【００１１】
以下、実施形態、実施例および変形例について、図面を用いて説明する。ただし、以下の説明において、同一構成要素には同一符号を付し繰り返しの説明を省略することがある。
【００１２】
まず、ＥＣＵの機能統合について図１を用いて説明する。図１（Ａ）は統合前のＥＣＵの構成を模式的に示す図であり、図１（Ｂ）は比較例の統合ＥＣＵの構成を模式的に示す図である。
【００１３】
図１（Ａ）に示すように、統合前のＥＣＵ＿Ａ１ａ、ＥＣＵ＿Ｂ１ｂ及びＥＣＵ＿Ｃ１ｃは、それぞれ、主に半導体装置１０ａ，１０ｂ，１０ｃで構成されている。半導体装置１０ａ，１０ｂ，１０ｃはそれぞれＣＰＵおよびメモリ等の演算リソース１００ａ，１００ｂ，１００ｃと、周辺リソース２００と、を備えている。ＥＣＵ＿Ａ１ａ、ＥＣＵ＿Ｂ１ｂ及びＥＣＵ＿Ｃ１ｃは、それぞれ別の会社（Ｔｉｅｒ１＿Ａ、Ｔｉｅｒ１＿Ｂ、Ｔｉｅｒ１＿Ｃ）により開発され検証される。その後、ＯＥＭにて組み上げられる。その際、ＥＣＵ＿Ａ１ａ、ＥＣＵ＿Ｂ１ｂ及びＥＣＵ＿Ｃ１ｃのそれぞれの接続に関する部分の検証が行われ全体としての機能の検証が完了する。ＥＣＵ＿Ａ１ａ、ＥＣＵ＿Ｂ１ｂ及びＥＣＵ＿Ｃ１ｃの独立性が自明だからである。Ｔｉｅｒ１＿Ａ、Ｔｉｅｒ１＿Ｂ、Ｔｉｅｒ１＿Ｃを代表させる場合は、Ｔｉｅｒ１と称す。
【００１４】
図１（Ｂ）に示すように、比較例の統合ＥＣＵ１Ｒは、主に半導体装置１０Ｒで構成されている。半導体装置１０ＲはＥＣＵ＿Ａ１ａ、ＥＣＵ＿Ｂ１ｂ、ＥＣＵ＿Ｃ１ｃの機能を実行する演算リソース１００と周辺リソース２００とを備える。演算リソース１００は、例えば一つのＣＰＵ、一つのメモリを時分割でＥＣＵ＿Ａ１ａ、ＥＣＵ＿Ｂ１ｂ、ＥＣＵ＿Ｃ１ｃの機能の実行処理に割り当てられ、周辺リソース２００は共用される。統合ＥＣＵ１Ｒは、ＯＥＭ、またはＴｉｅｒ１＿Ａ、Ｔｉｅｒ１＿ＢおよびＴｉｅｒ１＿ＣのいずれかのＴｉｅｒ１、または他のＴｉｅｒ１により開発され検証される。ただし、ＥＣＵ＿Ａ１ａ、ＥＣＵ＿Ｂ１ｂ、ＥＣＵ＿Ｃ１ｃの機能を実現するソフトウェアは、Ｔｉｅｒ１＿Ａ、Ｔｉｅｒ１＿Ｂ、Ｔｉｅｒ１＿Ｃの各々で開発され検証される。
【００１５】
比較例の統合ＥＣＵ１Ｒで発生する問題について図２、３を用いて説明する。図２（Ａ）はＴｉｅｒ１による図１（Ｂ）の統合ＥＣＵの検証を説明するブロック図であり、図２（Ｂ）はＯＥＭおよびＴｉｅｒ１による図１（Ｂ）の統合ＥＣＵの検証を説明するブロック図である。図３は図１（Ｂ）の統合ＥＣＵの検証を説明するフローチャートである。
【００１６】
一般に単体ＥＣＵ機能毎の検証はそれぞれを受け持つＴｉｅｒ１で行われることが多く、統合した状態での検証はその性格からＯＥＭで行われることになる。ＯＥＭでＴｉｅｒ１が実施する検証を実施することは困難である。  
よって、統合ＥＣＵ機能の検証は、
（１）各Ｔｉｅｒ１による単体ＥＣＵ機能・タイミングの検証
（２）ＯＥＭによる複数ＥＣＵを統合した状態での検証
の段階で行われる。
【００１７】
上記（１）の検証は、図２（Ａ）、図３に示すように、統合ＥＣＵ１Ｒのハードウェアを用い、Ｔｉｅｒ１＿Ａ、Ｔｉｅｒ１＿Ｂ、Ｔｉｅｒ１＿Ｃがそれぞれのソフトウェアのみの開発および動作確認を行う。すなわち、図３に示すように、Ｔｉｅｒ１＿ＡはＥＣＵ＿Ａの機能のソフトウェアを開発し（ステップＳＡ１）、ＥＣＵ＿Ａの機能のソフトウェアを検証する（ステップＳＡ２）。同様に、Ｔｉｅｒ１＿ＢはＥＣＵ＿Ｂの機能のソフトウェアを開発し（ステップＳＢ１）、ＥＣＵ＿Ｂの機能のソフトウェアを検証し（ステップＳＢ２）、Ｔｉｅｒ１＿ＣはＥＣＵ＿Ｃの機能のソフトウェアを開発し（ステップＳＣ１）、ＥＣＵ＿Ｃの機能のソフトウェアを検証する（ステップＳＣ２）。
【００１８】
上記（２）の検証は、図２（Ｂ）および図３に示すように、ＯＥＭが統合ＥＣＵ１ＲにＴｉｅｒ１＿Ａ、Ｔｉｅｒ１＿Ｂ、Ｔｉｅｒ１＿Ｃの開発ソフトウェアを一緒に搭載し、各Ｔｉｅｒ１に提供する（ステップＳＯ１）。
【００１９】
次に、Ｔｉｅｒ１＿ＡはＥＣＵ＿Ａ、ＥＣＵ＿Ｂ、ＥＣＵ＿Ｃの機能のソフトウェアを並行して動作させつつ、ＥＣＵ＿Ａの機能のソフトウェアの動作確認（検証）を行う（ステップＳＡ３）。同様に、Ｔｉｅｒ１＿ＢはＥＣＵ＿Ｂの機能のソフトウェアの動作確認（検証）を行い（ステップＳＢ３）、Ｔｉｅｒ１＿ＣはＥＣＵ＿Ｃの機能のソフトウェアの動作確認（検証）を行う（ステップＳＣ３）。  
最後に、ＯＥＭはＥＣＵ＿Ａ／ＥＣＵ＿Ｂ／ＥＣＵ＿Ｃが連携する動作確認を行う（ステップＳＯ２）。
【００２０】
ステップＳＡ１，ＳＡ２，ＳＢ１，ＳＢ２，ＳＣ１，ＳＣ２は統合していないＥＣＵについてＴｉｅｒ１が実施している設計・検証と同様である。ステップＳＯ１，ＳＯ２は統合していないＥＣＵについてＯＥＭが実施している検証と同様である。ステップＳＡ３，ＳＢ３，ＳＣ３は統合により増加したＴｉｅｒ１が実施する検証である。これは、以下の理由による。
【００２１】
単体ＥＣＵ機能評価の際には周辺リソース２００を占有可能であるが、ＥＣＵ統合を行った際にはそれぞれが単一の周辺リソース２００を共用することになる。そのため、単体ＥＣＵ機能・タイミングの検証は実施されているが、周辺リソース２００の競合が起きるため、機能統合された環境下においても、単体ＥＣＵ検証時と同じ動作を行うことの確認が求められる。すなわち、検証を単体で実施した後に、機能統合実施した状態での再検証が必要となってしまう。
【００２２】
複数のＥＣＵ機能を統合した統合ＥＣＵを実用するためには上記（２）の複数ＥＣＵ機能を統合しての検証の際、上記（１）で実施した検証の結果を利用できる（上記（１）の検証が不要である）ことが必須である。言い換えれば、上記（２）の検証の際に上記（１）の検証結果が活用可能になるよう上記（１）の検証を実施することが求められる。
【００２３】
よって、統合ＥＣＵにおいて、Ｔｉｅｒ１が単体ＥＣＵ機能の検証を行う際に、周辺リソースが共用される状態での検証ができるようにする必要がある。
【００２４】
＜実施形態＞
図１（Ａ）の単体ＥＣＵ＿Ａ１ａ、ＥＣＵ＿Ｂ１ｂ、ＥＣＵ＿Ｃ１ｃを統合した実施形態の統合ＥＣＵについて図４を用いて説明する。図４は実施形態の統合ＥＣＵの構成を模式的に示す図である。
【００２５】
実施形態の統合ＥＣＵ１は、主に半導体装置１０で構成されている。半導体装置１０はＥＣＵ＿Ａ１ａ、ＥＣＵ＿Ｂ１ｂ、ＥＣＵ＿Ｃ１ｃの機能を実行する演算リソース１００と周辺リソース２００と周辺リソース２００を制御する制御機構３００を備える。演算リソース１００は、例えば一つのＣＰＵ、一つのメモリを時分割で演算リソース１００ａ，１００ｂ，１００ｃの処理に割り当てられ、周辺リソース２００は演算リソース１００ａ，１００ｂ，１００ｃによって共用される。なお、演算リソース１００は複数のＣＰＵで構成してもよい。
【００２６】
次に、図４の制御機構の機能について図５を用いて説明する。図５は単位時間内の利用可能期間と利用禁止期間を示す図である。
【００２７】
制御機構３００は、上記（１）の単体ＥＣＵ機能検証時に周辺リソース２００の共用による競合された状態を作り出す。
【００２８】
例えば、制御機構３００は、共用される周辺リソース２００に対して事前に割り当てられる予算値（ＢＤＧ）に応じた利用禁止状態を作り出すことで、統合時に達成される利用頻度内での単体ＥＣＵの検証を実現する。ＢＤＧの設定は、各単体ＥＣＵに対する制限要件（各単体ＥＣＵの性能割当て）から定められる。周辺リソース２００が利用禁止状態にある期間を利用禁止期間ＵＰといい、利用可能状態にある期間を利用可能期間ＵＡという。単位時間（UNIT TIME）の時間をＴＵ、利用禁止期間ＵＰの時間をＴＰ、利用禁止期間ＵＰの第一時間をＴＰａ、利用禁止期間ＵＰの第二時間をＴＰｂ、利用可能期間ＵＡの時間をＴＡとすると、
ＴＵ＝ＴＡ＋ＴＰａ＋ＴＰｂ＝ＴＡ＋ＴＰ
ＢＤＧ＝ＴＡ／（ＴＰａ＋ＴＰｂ）＝ＴＡ／ＴＰ
である。ここで、ＴＰ＝ＴＰａ＋ＴＰｂ
よって、
ＴＰ＝ＴＵ／（１＋ＢＤＧ）
である。
【００２９】
単位時間の時間（ＴＵ）と予算値（ＢＤＧ）により、利用禁止期間ＵＰの時間（ＴＰ）および利用可能期間ＵＡの時間（ＴＡ）が決まる。これにより、制御機構３００は、単一ＥＣＵ機能評価時には定義された帯域のみ周辺リソース２００を利用可能な状態とする。
【００３０】
周辺リソース２００は予算値を超えない範囲で離散的に利用される場合があるため、一か所のみの利用可能期間を設けることはそれに沿わない。よって、制御機構３００は、例えば、利用可能期間ＵＡを第一利用可能期間ＵＡ１、第二利用可能期間ＵＡ２、第三利用可能期間ＵＡ３および第四利用可能期間ＵＡ４に分割し、利用禁止期間ＵＰを第一利用禁止期間ＵＰ１、第二利用禁止期間ＵＰ２、第三利用禁止期間ＵＰ３、第四利用禁止期間ＵＰ４および第五利用禁止期間ＵＰ５に分割し、利用可能期間ＵＡを離散させてもよい。
ここで、第一利用禁止期間ＵＰ１の時間をＴＰ１、第二利用禁止期間ＵＰ２の時間をＴＰ２、第三利用禁止期間ＵＰ３の時間をＴＰ３、第四利用禁止期間ＵＰ４の時間をＴＰ４、第一利用禁止期間ＵＰ１の時間をＴＰ１、第二利用禁止期間ＵＰ２の時間をＴＰ２、第三利用禁止期間ＵＰ３の時間をＴＰ３、第四利用禁止期間ＵＰ４の時間をＴＰ４、第五利用禁止期間ＵＰ５の時間をＴＰ５、とすると、
ＴＡ＝ＴＡ１＋ＴＡ２＋ＴＡ３＋ＴＡ４
ＴＰ＝ＴＰａ＋ＴＰｂ＝ＴＰ５＋ＴＰ１＋ＴＰ２＋ＴＰ３＋ＴＰ４
である。
【００３１】
利用禁止期間は、例えば、次のように定める。
（ａ）周辺リソース２００の利用時間に基づいて動的に周辺リソース２００の利用禁止期間を挿入する。利用禁止期間の時間は、予算値に基づいて生成される。これにより、単体ＥＣＵ機能の評価を実施する際、統合ＥＣＵ時と同じ周辺リソースの利用率を提供することが可能である。
（ｂ）利用禁止期間は、周辺リソース２００の利用後に、その利用時間に基づいて利用禁止期間が設定され、挿入される。好ましくは、直前の利用時間（例えば、第一利用可能期間ＵＡ１の時間（ＴＡ１））に基づいて利用禁止期間（例えば、時間（ＴＰ１）の利用禁止期間ＵＰ１）が設定され、挿入される。これにより、検証対象の単体ＥＣＵ機能へ離散的な周辺リソースの利用機会を提供することが可能である。
【００３２】
また、単体ＥＣＵ機能は、それ自身の処理内容の制約により周辺リソース２００に対して連続的なアクセスを行わないことがある。このアクセスを行わない状態をアクセス不可能状態といい、その期間をアクセス不可能期間という。利用禁止期間以外に周辺リソース２００の利用がなかった場合、その利用していなかった期間は“利用禁止期間”から差し引いて、検証対象の単体ＥＣＵ機能が潜在的にもつアクセス不可能期間を利用禁止期間に計上しないようにしてもよい。検証対象の単体ＥＣＵ機能が潜在的にもつアクセス不可能期間が利用可能期間に含まれないので、検証対象の単体ＥＣＵ機能が潜在的にもつアクセス不可能期間を、利用禁止期間に計上するため、過剰な利用禁止期間が設定されることがない。
【００３３】
なお、制御機構３００はハードウェアで構成してもよいし、ソフトウェアで構成してもよい。また、周辺リソースは、他のＥＣＵ等との通信のための通信コントローラ、センサ、スイッチ、アクチュエータ等の周辺機器が接続されるＩ／Ｏ等の半導体装置に対する入力または出力インタフェース機能を実現する回路であり、複数のＥＣＵ機能で共用可能な回路である。以下の実施例では、実施形態の制御機構３００をハードウェアで構成する例および周辺リソースが通信コントローラである例について説明する。
【実施例】
【００３４】
図６は実施例の統合ＥＣＵの構成を模式的に示す図である。  
図６に示すように、統合ＥＣＵ１Ａは車載ネットワークであるＣＡＮ（Controller Area Network）バス２ａに接続されており、他のＥＣＵ等と互いに通信可能である。また、統合ＥＣＵ１ＡはデバッガＩ／Ｆ４を介してデバッガ３に接続可能である。
【００３５】
ＥＣＵ１Ａは、主に、マイクロコントローラまたはＳＯＣ等の半導体装置１０ＡとトランシーバＩＣ２０で構成されている。半導体装置１０Ａは、ＣＰＵ１０１と、それぞれの単体ＥＣＵ機能を実現するソフトウェアプログラム１０２ａ，１０２ｂ，１０２ｃを格納する記憶装置１０２と、ＣＡＮ通信のための通信コントローラ（通信周辺回路）２００ａと、制御回路３００ａと、制御回路５００と、タイマ６００と、を一つの半導体チップに備えている。演算リソース１００はＣＰＵ１０１と記憶装置１０２で構成され、ＣＰＵ１０１は記憶装置１０２に格納されているソフトウェアプログラム１０２ａ，１０２ｂ，１０２ｃを時分割で処理することにより、ＥＣＵ＿Ａ１ａ、ＥＣＵ＿Ｂ１ｂ、ＥＣＵ＿Ｃ１ｃの機能を構成する。通信周辺回路２００ａは実施形態の周辺リソース２００と同様に共用される。演算リソース１００は複数のＣＰＵで構成してもよい。記憶装置１０２は、例えば、フラッシュメモリ等の不揮発性メモリおよびＳＲＡＭ等の揮発性メモリを含む。
【００３６】
単体ＥＣＵ機能は演算リソース１００で実行され、必要に応じ通信周辺回路２００ａを通じて統合ＥＣＵ１Ａの外部への通信を行う。
【００３７】
通信周辺回路２００ａは、ＣＡＮの通信プロトコルに従って送信バッファ（不図示）のフレームをシリアルの送信信号に変換してトランシーバＩＣ２００に向けて出力する。トランシーバＩＣ２０は通信周辺回路２００ａから取得した論理レベルの送信信号を対応する差動電圧に変換してＣＡＮバス２ａに送信する。
【００３８】
データの受信時、トランシーバＩＣ２０はＣＡＮバス２の差動電圧を読み取り、所定の電圧範囲に含まれるように整形した受信信号を通信周辺回路２００ａに出力する。通信周辺回路２００ａの受信用の端子は例えばコンパレータを有しており、所定の閾値電圧とトランシーバＩＣ２００からの受信信号とを比較して“１”、“０”のデジタルデータを生成して受信バッファ（不図示）に記憶する。
【００３９】
制御回路３００ａは、通信周辺回路２００ａに対し利用禁止期間を設定し、通信周辺回路２００ａに共用による競合状態を生成する。次の条件を満たした状態で利用禁止期間を設定する。
【００４０】
（Ｉ）利用した直後には他の処理へ割り当てが優先されることを考慮する
（II）単体ＥＣＵ自身がもつ、アクセス不可能状態を考慮する
具体的には、制御回路３００ａは、
（Ａ）通信周辺回路２００ａに対し利用禁止／許可状態を通知し通信周辺回路２００ａを利用禁止状態にする、
（Ｂ）事前に定められた制約（予算値）により通信周辺回路２００ａの利用禁止状態を生成する、
（Ｃ）事前に定められた制約（予算値）と、過去に動作した通信周辺回路２００ａの利用時間により次の利用禁止状態の期間（利用禁止期間）を設定する、
（Ｄ）通信周辺回路２００ａへのアクセス不可能時間を利用禁止期間から除く。
【００４１】
なお、通信周辺回路２００ａは、制御回路３００ａから利用禁止を通知されている場合、例えば、ＣＰＵ１０１からのアクセス要求信号に対するアクノレッジ信号を出力しないようにし、許可状態を通知されている場合、アクノレッジ信号を出力可能にする。
【００４２】
次に、制御回路３００ａの構成について図７を用いて説明する。図７は図６の制御回路の構成を示すブロック図である。
【００４３】
制御回路３００ａは、通信周辺回路２００ａの動作時間を計測するカウンタ３０１と、通信周辺回路２００ａの利用可能／不可を判断するメインカウンタ３０２を備える。制御回路３００ａは、
（ｉ）通信周辺回路２００ａを利用していない期間はメインカウンタ３０２をダウンカウントする、
（ii）メインカウンタ３０２のカウント値が負の場合は通信周辺回路２００ａを利用可能とし、カウント値が正の場合は通信周辺回路２００ａを利用禁止とする、
（iii）通信周辺回路２００ａを利用している間はメインカウンタ３０２を停止する、
（iv）通信周辺回路２００ａの利用後は、利用比率に従いメインカウンタ３０２をカウンタ加算する。
【００４４】
カウンタ３０１はカウンタレジスタ（ＣＮＴＲ）３０１ａとインクリメンタ（ＩＮＣ）３０１ｂとセレクタ３０１ｃとで構成される。カウンタ３０１は通信周辺回路２００ａからの転送終了信号（ＳＣ１）またはタイマ６００からのリセット信号（ＳＣ２）のアサートにより初期化される。これは、転送終了信号（ＳＣ１）またはリセット信号（ＳＣ２）によりセレクタ３０１ｃが「０」を選択し、カウンタレジスタ（ＣＮＴＲ）３０１ａに入力することにより行われる。カウンタ３０１は通信周辺回路２００ａが動作中はカウントアップを続ける。これは、通信周辺回路２００ａが動作中であることを示す動作中信号（ＳＣ３）によりセレクタ３０１ｃがインクリメンタ３０１ｂの出力を選択し、カウンタレジスタ（ＣＮＴＲ）３０１ａに入力することにより行われる。これにより転送終了信号（ＳＣ１）の発生時に、カウンタ３０１は通信周辺回路２００ａが利用されていた占有時間を示す。
【００４５】
メインカウンタ３０２はメインカウンタレジスタ（ＭＣＮＴＲ）３０２ａとデクリメンタ（ＤＥＣ）３０２ｂとセレクタ３０２ｃと乗算器３０２ｄと加算器３０２ｅで構成される。メインカウンタ３０２は周期的なリセット信号（ＳＣ２）により初期化される。これは、リセット信号（ＳＣ２）によりセレクタ３０２ｃが「０」を選択し、メインカウンタレジスタ（ＭＣＮＴＲ）３０２ａに入力することにより行われる。リセット信号（ＳＣ２）の周期は通信周辺回路２００ａを制御するにあたり割り当て帯域を保証したい単位時間（UNIT TIME）を想定する。
【００４６】
メインカウンタ３０２は通信周辺回路２００ａが非動作中には減算カウンタとして動作する。これは、通信周辺回路２００ａが動作中であることを示す動作中信号（ＳＣ３）によりセレクタ３０２ｃがデクリメンタ３０２ｂの出力を選択し、メインカウンタレジスタ（ＭＣＮＴＲ）３０２ａに入力することにより行われる。
【００４７】
メインカウンタ３０２は転送終了信号（ＳＣ１）の発生時に、乗算器３０２ｄでカウンタレジスタ（ＣＮＴＲ）３０１ａの値に、制御回路５００によりレジスタ３０２ｅに予め設定された係数（factor）である予算値（ＳＣ４）を乗じ、その演算結果を加算器３０２ｆでメインカウンタレジスタ（ＭＣＮＴＲ）の値に加算する。これは、転送終了信号（ＳＣ１）によりセレクタ３０２ｃが加算器３０２ｆの出力を選択し、メインカウンタレジスタ（ＭＣＮＴＲ）３０２ａに入力することにより行われる。
【００４８】
メインカウンタレジスタ（ＭＣＮＴＲ）３０２ａの値が負を示しているかどうかを負判定器（＜０）３０８で判定して、利用可能信号（ＳＣ５）を通信周辺回路２００ａに出力する。負判定器３０８が負を示している場合は、利用可能信号（ＳＣ５）がアサートされ、通信周辺回路２００ａは利用可能となり、負判定器３０８が正を示している場合は利用可能信号（ＳＣ５）がネゲートされ、通信周辺回路２００ａは利用不可となる。負判定器３０８は例えばメインカウンタレジスタ（ＭＣＮＴＲ）３０２ａの最上位ビットが１かどうかにより判定する。
【００４９】
図６に示すように、制御回路３００ａへの予算値・単位時間（周期）はデバッガ３からデバッガＩ／Ｆ４を経由して設定される。設定は静的値で各Ｔｉｅｒ１へＯＥＭから指示される。制御回路５００はデバッガ３から設定された予算値（ＳＣ４）を制御回路３００ａのレジスタ３０２ｅに設定する。また、制御回路５００はデバッガ３から設定された単位時間をタイマ６００に設定する。タイマ６００は単位時間ごとにリセット信号（ＳＣ１）を生成する。
【００５０】
なお、制御回路３００ａ、制御回路５００、タイマ６００およびデバッガ３、はＴｉｅｒ１での単体ＥＣＵ機能の評価時のみ用いられ、ＯＥＭでの評価時・量産出荷後は利用されない。
【００５１】
次に、制御回路３００ａの動作について図８、９を用いて詳細に説明する。図８は図６の制御回路の動作を説明する図である。図９は図６の制御回路の複数の単位時間における動作を説明する図である。図８では単位時間（UNIT TIME）内に通信周辺回路２００ａの利用（アクセス要求）α、β、γが発生している例を示している。
【００５２】
単位時間の最初は、利用可能期間ＵＡであるが、ＣＰＵ１０１は通信周辺回路２００ａの利用が不可能であり、利用可能になった後、最初のアクセス要求αがある。アクセス要求αの通信周辺回路２００ａの利用時にかかった時間がＴαであったとする。
【００５３】
通信周辺回路２００ａの転送終了イベント信号（ＳＣ１）によりメインカウンタ（ＭＣＮＴ）３０２には通信周辺回路２００ａの利用禁止期間ＰＢが設定されメインカウンタ（ＭＣＮＴ）３０２は減算を始める。
【００５４】
メインカウンタレジスタ（ＭＣＮＴＲ）３０２ａの値が正値をとる間は通信周辺回路２００ａが利用禁止であり、メインカウンタレジスタ（ＭＣＮＴＲ）３０２ａの値が負数を示すまでに発生したアクセス要求βの通信周辺回路２００ａの利用はメインカウンタレジスタ（ＭＣＮＴＲ）３０２ａの値が負になるまで待たされる。
【００５５】
通信周辺回路２００ａの利用禁止期間ＰＢの時間（ＴＢ）は、直前の通信周辺回路２００ａの利用時の処理にかかった時間（Ｔα）をから導出する。対象単体ＥＣＵ機能に対し通信周辺回路２００ａの利用割り当て（係数（factor））がＫ％であった場合、ＴＢの値はＴαを（１００−Ｋ）／Ｋ倍した時間から導出される。例えば、Ｋ＝２５の場合、ＴＢ＝３×Ｔαとなる。
【００５６】
メインカウンタレジスタ（ＭＣＮＴＲ）３０２ａの値が負数となる時点で通信周辺回路２００ａが利用可能となりアクセス要求βに対する通信周辺回路２００ａの利用が始まる。
【００５７】
アクセス要求βの通信周辺回路２００ａの利用に必要な時間がカウンタ（ＣＮＴＲ）３０１にてカウントされる。この間メインカウンタ（ＭＣＮＴ）３０２は、減数等されないでメインカウンタレジスタ（ＭＣＮＴＲ）３０２ａの値は変化せず維持状態を保つ。
【００５８】
アクセス要求βの通信周辺回路２００ａの利用にてかかった時間（Ｔβ）から再度新たに通信周辺回路２００ａの利用禁止期間ＰＣの時間（ＴＣ）が計算され、メインカウンタレジスタ（ＭＣＮＴＲ）３０２ａに加算される。メインカウンタ（ＭＣＮＴ）３０２は減算カウント処理を開始・継続する。
【００５９】
利用禁止期間ＰＣの時間（ＴＣ）が経過後は、利用可能期間ＵＡであるが、後続する通信周辺回路２００ａのアクセス要求がないためメインカウンタ（ＭＣＮＴ）３０２は減数を継続する。
【００６０】
前回のアクセス要求βからＴＤ時間（ＴＣ時間より長い）経過後にアクセス要求γが発生する場合、アクセス要求γは即座に通信周辺回路２００ａの利用を開始できる。メインカウンタレジスタ（ＭＣＮＴＲ）３０２ａの値が負数を示しているからである。
【００６１】
アクセス要求γの通信周辺回路２００ａの利用が完了した後に、アクセス要求γの通信周辺回路２００ａの利用から再計算された利用禁止期間ＰＥの時間（ＴＥ）が計算され、メインカウンタレジスタ（ＭＣＮＴＲ）３０２ａに加算される。アクセス要求γの通信周辺回路２００ａの利用にてかかった時間（Ｔγ）から計算される利用禁止期間ＰＥの時間（ＴＥ）は、負数であるメインカウンタレジスタ（ＭＣＮＴＲ）３０２ａに加算されるため、メインカウンタレジスタ（ＭＣＮＴＲ）３０２ａから判定される通信周辺回路２００ａの利用禁止期間ＰＥは、過去の時間（ＴＤ）と時間（ＴＣ）の差分が差し引かれた時間（ＴＥ）となる。後続の通信周辺回路２００ａのアクセス要求は上記の補正が行われた利用禁止期間ＰＥの経過後に発行可能となる。
【００６２】
図９に示すように、通信周辺回路２００ａの帯域保証を成立したい最小単位時間（UNIT TIME）の経過後、メインカウンタ３０２は、その状態に拘らず、リセット信号（ＳＣ２）によって初期化される。図９における一つ目の単位時間では、アクセス不可能期間ＵＮ、利用期間Ａ、利用禁止間Ｐ、・・・、アクセス不可能期間ＵＮとなっており、単位時間の経過後のリセット信号は、メインカウンタレジスタ（ＭＣＮＴＲ）３０２ａが負数であるが、アクセス不可能期間ＵＮ中に入力されている。ここで、利用可能期間ＵＡは利用期間Ａとアクセス不可能期間ＵＮとを含む。二つ目の単位時間の初めは一つ目の単位時間のアクセス不可能期間ＵＮが続いている。二つ目の単位時間の経過後のリセット信号も、アクセス不可能期間ＵＮ中に入力されている。しかし、三つ目の単位時間の初めは利用期間Ａとなっている。制御回路３００ａは、単位時間経過毎にメインカウンタ３０２を初期化し、単位時間内で予算割り当てを超えるアクセスの発生を抑制する。
【００６３】
図１０は図６の統合ＥＣＵの製造方法を説明するフローチャートである。  
ＯＥＭは統合ＥＣＵ１のハードウェアを開発し製造する。なお、統合ＥＣＵ１内の半導体装置１０は例えば半導体メーカ等に製造させる。ＯＥＭから貸与された統合ＥＣＵ１のハードウェアを用い、Ｔｉｅｒ１＿Ａ、Ｔｉｅｒ１＿Ｂ、Ｔｉｅｒ１＿Ｃがそれぞれのソフトウェアのみの開発および動作確認を行う。すなわち、図１０に示すように、Ｔｉｅｒ１＿ＡはＥＣＵ＿Ａの機能のソフトウェアを開発し（ステップＳＡ１１）、ＥＣＵ＿Ａの機能のソフトウェアを検証し（ステップＳＡ１２）、ＯＥＭに納入する。同様に、Ｔｉｅｒ１＿ＢはＥＣＵ＿Ｂの機能のソフトウェアを開発し（ステップＳＢ１１）、ＥＣＵ＿Ｂの機能のソフトウェアを検証し（ステップＳＢ１２）、ＯＥＭに納入する。Ｔｉｅｒ１＿ＣはＥＣＵ＿Ｃの機能のソフトウェアを開発し（ステップＳＣ１１）、ＥＣＵ＿Ｃの機能のソフトウェアを検証し（ステップＳＣ１２）、ＯＥＭに納入する。各Ｔｉｅｒ１は統合状態における単体ＥＣＵ機能の検証が可能になる。
【００６４】
図１０に示すように、ＯＥＭは統合ＥＣＵ１にＴｉｅｒ１＿Ａ、Ｔｉｅｒ１＿Ｂ、Ｔｉｅｒ１＿Ｃが開発および検証したソフトウェアを搭載する（ステップＳＯ１１）。ＯＥＭは、ＥＣＵ＿Ａ、ＥＣＵ＿Ｂ、ＥＣＵ＿Ｃの機能のソフトウェアを並行して動作させつつ、ＥＣＵ＿Ａ／ＥＣＵ＿Ｂ／ＥＣＵ＿Ｃが連携する動作の確認を行う（ステップＳＯ１２）。なお、ステップＳＯ１１とステップＳＯ１２との間に、Ｔｉｅｒ１による図３のステップＳＡ３，ＳＢ３，ＳＣ３は不要になっている。
【００６５】
本実施例では、機能統合ＥＣＵを目的として提供される半導体において通信周辺回路に対して、一定の“利用禁止期間”を提供する“制御機構”を搭載している。
【００６６】
また、その“利用禁止期間”が、対象とする通信周辺回路の過去の占有時間と、単体ＥＣＵ機能評価時に先立って定められている“帯域割り当て”に従い定められる。この機能により、統合ＥＣＵにおいても、統合ＥＣＵ時に期待される“帯域”内での処理が完結することを保証する。
【００６７】
また、直前の通信周辺回路の利用と連携し利用禁止期間を設定するため、利用禁止期間の挿入が離散的タイミングでおこなわれる。長期間の通信周辺回路の利用禁止状態が発生を回避しつつ単体ＥＣＵの評価を実現可能である。
【００６８】
単体ＥＣＵ機能がもつ潜在的なアクセス不可能期間を制御回路が設定する“利用禁止期間”から減算することにより、過剰な利用禁止期間設定を回避している。統合ＥＣＵとして動作時にはこれら単体ＥＣＵ機能の“利用禁止期間”においても他の単体ＥＣＵ機能のアクセスを実行可能であるためである。
【００６９】
＜変形例＞
以下、実施例の代表的な変形例について、幾つか例示する。以下の変形例の説明において、上述の実施例にて説明されているものと同様の構成および機能を有する部分に対しては、上述の実施例と同様の符号が用いられ得るものとする。そして、かかる部分の説明については、技術的に矛盾しない範囲内において、上述の実施例における説明が適宜援用され得るものとする。また、上述の実施例の一部、および、複数の変形例の全部または一部が、技術的に矛盾しない範囲内において、適宜、複合的に適用され得る。
【００７０】
実施例では周辺リソースとしてＣＡＮ通信のための通信コントローラ（通信周辺回路）を例として説明したが、通信周辺回路はＦｌｅｘＲａｙ、ＬＩＮ、Ethernet等であってもよい。また、周辺リソースは一つに限定されるものではなく、複数であってもよい。以下、ＣＡＮ通信のための通信コントローラとEthernet通信のための通信コントローラの二つの通信周辺回路を備える例（変形例）について図１１を用いて説明する。
【００７１】
図１１は変形例の統合ＥＣＵの構成を模式的に示す図である。
【００７２】
図１１に示すように、統合ＥＣＵ１Ｂは車載ネットワークであるＣＡＮ（Controller Area Network）バス２ａおよびEthernetバス２ｂの二つの車載ネットワーク線に接続されており、他のＥＣＵ等と互いに通信可能である。統合ＥＣＵ１Ｂは、主に、マイクロコントローラまたはＳＯＣ等の半導体装置１０ＢとトランシーバＩＣ２０ａ，２０ｂで構成されている。半導体装置１０Ｂは、ＣＰＵ１０１と、それぞれの単体ＥＣＵ機能を実現するソフトウェアプログラム１０２ａ，１０２ｂ，１０２ｃを格納する記憶装置１０２と、ＣＡＮ通信のための通信コントローラ（通信周辺回路）２００ａと、Ethernet通信のための通信コントローラ（通信周辺回路）２００ｂと、制御回路３００ａ，３００ｂと、を一つの半導体チップに備えている。演算リソース１００はＣＰＵ１０１と記憶装置１０２で構成され、ＣＰＵ１０１は記憶装置１０２に格納されているソフトウェアプログラム１０２ａ，１０２ｂ，１０２ｃを時分割で処理することにより、ＥＣＵ＿Ａ１ａ、ＥＣＵ＿Ｂ１、ＥＣＵ＿Ｃ１ｃの機能を構成する。通信周辺回路２００ａ，２００ｂは実施形態の周辺リソース２００と同様に共用される。演算リソース１００は複数のＣＰＵで構成してもよい。記憶装置１０２は、例えば、フラッシュメモリ等の不揮発性メモリおよびＳＲＡＭ等の揮発性メモリを含む。
【００７３】
単体ＥＣＵ機能は演算リソース１００で実行され、必要に応じ通信周辺回路２００ａを通じて統合ＥＣＵ１Ａの外部への通信を行う。
【００７４】
以上、本発明者によってなされた発明を実施形態、実施例および変形例に基づき具体的に説明したが、本発明は、上記実施形態、実施例および変形例に限定されるものではなく、種々変更可能であることはいうまでもない。
【００７５】
例えば、実施形態、実施例および変形例では、三つの単体ＥＣＵ機能を統合した例について説明したが、これに限定されるものではなく、二つ以上の単体ＥＣＵ機能を統合したものに適用可能である。
【符号の説明】
【００７６】
１・・・電子制御装置
１０・・・半導体装置
１００・・・演算リソース
２００・・・周辺リソース
３００・・・制御機構
【図１】
2020098507.tif 000003
【図２】
2020098507.tif 000004
【図３】
2020098507.tif 000005
【図４】
2020098507.tif 000006
【図５】
2020098507.tif 000007
【図６】
2020098507.tif 000008
【図７】
2020098507.tif 000009
【図８】
2020098507.tif 000010
【図９】
2020098507.tif 000011
【図１０】
2020098507.tif 000012
【図１１】
2020098507.tif 000013