(57)【特許請求の範囲】
【請求項１】
複数のソフトウェアが実行されるＣＰＵ部と、
前記ＣＰＵ部が送出する動作要求に基づいて処理を行うハードウェアＩＰと、を備え、
前記ハードウェアＩＰは、
前記複数のソフトウェアのそれぞれが送出する動作要求を受け付ける複数の制御受付部を有する第１の記憶部と、
前記制御受付部から送出される動作要求に基づいて処理を行う演算部と、
前記演算部が、前記複数の制御受付部のいずれかからの動作要求のみを受け取るように、前記複数の制御受付部と前記演算部との間の情報伝達を制御する調停部と、を備え、
１又は複数の動作要求を格納可能に構成される第２の記憶部を更に備え、
前記複数の制御受付部の数は、前記複数のソフトウェアの数よりも少なく、
前記複数の制御受付部の一部又は全部は、２以上のソフトウェアからの動作要求を受け付け、
２以上のソフトウェアからの動作要求を受け付ける制御受付部は、受け付けた動作要求を逐次前記第２の記憶部に格納し、
前記調停部は、前記演算部が、前記複数の制御受付部及び前記第２の記憶部のいずれかからの動作要求のみを受け取るように、前記複数の制御受付部及び前記第２の記憶部と前記演算部との間の情報伝達を制御する、
半導体装置。
【請求項２】
前記複数の制御受付部の一部は、前記複数のソフトウェアのいずれかからの動作要求のみを受け付け、
前記複数のソフトウェアのいずれかからの動作要求のみを受け付ける制御受付部は、受け付けた動作要求を逐次前記第２の記憶部に格納する、
請求項１に記載の半導体装置。
【請求項３】
前記第２の記憶部に動作要求を格納した制御受付部は、前記格納した受付要求を当該制御受付部から消去し、他の動作要求を受付可能な状態に復帰する、
請求項１に記載の半導体装置。
【請求項４】
複数のソフトウェアが実行されるＣＰＵ部と、
前記ＣＰＵ部が送出する動作要求に基づいて処理を行うハードウェアＩＰと、を備え、
前記ハードウェアＩＰは、
前記複数のソフトウェアのそれぞれが送出する動作要求を受け付ける複数の制御受付部を有する第１の記憶部と、
前記制御受付部から送出される動作要求に基づいて処理を行う演算部と、
前記演算部が、前記複数の制御受付部のいずれかからの動作要求のみを受け取るように、前記複数の制御受付部と前記演算部との間の情報伝達を制御する調停部と、を備え、
前記演算部は、受け取った動作要求に基づいて処理を行ったことで生じた情報である応答情報を、当該動作要求を送出した制御受付部を介して、当該動作要求を送出した制御受付部に送出し、
前記調停部は、複数の調停方式が格納された調停方式設定部を有し、
前記ＣＰＵ部は、前記応答情報に基づいて、前記調停部が用いる調停方式を指定し、
前記調停部は、前記指定に対応する調停方式を前記調停方式設定部から取得する、
半導体装置。
【請求項５】
複数のソフトウェアが実行されるＣＰＵ部と、
前記ＣＰＵ部が送出する動作要求に基づいて処理を行うハードウェアＩＰと、を備え、
前記ハードウェアＩＰは、
前記複数のソフトウェアのそれぞれが送出する動作要求を受け付ける複数の制御受付部を有する第１の記憶部と、
前記制御受付部から送出される動作要求に基づいて処理を行う演算部と、
前記演算部が、前記複数の制御受付部のいずれかからの動作要求のみを受け取るように、前記複数の制御受付部と前記演算部との間の情報伝達を制御する調停部と、を備え、
前記複数の制御受付部のうちの特定の制御受付部以外の制御受付部のそれぞれと、前記調停部と、の間に並列に挿入された複数の第１のスイッチング素子を有する第２のスイッチング回路を更に備え、
前記特定の制御受付部が動作要求を受け付けた場合に、前記複数の第１のスイッチング素子が開放される、
半導体装置。
【請求項６】
前記第２のスイッチング回路の複数のスイッチング素子の開閉は、前記特定の制御受付部により制御され、
前記特定の制御受付部が動作要求を受け付けた場合に、前記特定の制御受付部は、前記複数の第１のスイッチング素子を開放する、
請求項５に記載の半導体装置。
【請求項７】
前記第２のスイッチング回路は、前記特定の制御受付部以外の制御受付部のそれぞれと、前記ＣＰＵ部と、の間に並列に挿入された複数の第２のスイッチング素子を更に備え、
前記特定の制御受付部が動作要求を受け付けた場合に、前記複数の第２のスイッチング素子が開放される、
請求項５に記載の半導体装置。
【請求項８】
前記第２のスイッチング素子の開閉は、前記特定の制御受付部により制御され、
前記特定の制御受付部が動作要求を受け付けた場合に、前記特定の制御受付部は、前記複数の第２のスイッチング素子を開放する、
請求項７に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置及び半導体装置の制御方法に関する。
【背景技術】
【０００２】
ＳｏＣ（System-on-a-chip）は、１つの半導体チップに複数の機能が集積されたものであり、複数のＣＰＵを有し、かつ、複数のアプリケーションが同時に実行される。近年では、ＳｏＣが搭載されるシステムの高性能化によってＳｏＣの大規模化が進展している。
【０００３】
ＳｏＣでは、半導体チップのハードウェアＩＰ（Intellectual Property）に対して、複数のアプリケーションから同時に動作要求を受けることが有る。ハードウェアＩＰとは、半導体チップを構成するための機能単位でまとめられた部分的な回路情報であり、ハードウェアによって実装されたものを言う。この場合、誤動作などを避けるため、競合する動作要求を調停する必要が有る。
【０００４】
このような調停方法として、ソフトウェア処理により競合する動作要求を調停する手法が提案されている（特許文献１）。この手法では、複数のＣＰＵの間で通信を行うことで優先権の調整が行われ、その結果に基づいて共有リソースが使用される。
【０００５】
他にも、ソフトウェア処理により競合する動作要求を調停する手法が提案されている（特許文献２）。この手法では、オペレーティングシステムやアプリケーション（ソフトウェア）によるセマフォ管理を行うことで、共有リソースの使用権を獲得する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−１４０２９０号公報
【特許文献２】特開２０１１−２３２９５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところが、発明者らは、上記のような調停方法には以下に示す問題点が有ることを見出した。上記の調停方法においては、共有リソースを使用する権利を獲得するために、ＣＰＵ間での通信、オペレーティングシステムやアプリケーション（ソフトウェア）間での通信による調停処理を行う必要が有る。そのため、調停処理の応答はＣＰＵの処理能力、オペレーティングシステムやアプリケーション（ソフトウェア）に依存することとなる。半導体装置のハードウェアＩＰの高速化が進展する中でソフトウェアの応答頻度は増大しており、ＣＰＵにかかる負荷も増大している。そのため、ソフトウェアによる調停処理の応答性能を実現することは困難である。
【０００８】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
一実施の形態によれば、半導体装置は、複数のソフトウェアが実行されるＣＰＵ部と、
ハードウェアＩＰと、を有する。前記ハードウェアＩＰは、前記複数のソフトウェアの動作要求を受け付ける複数の制御受付部を有する第１の記憶部と、動作要求に基づいて処理を行う演算部と、前記演算部が、１つの動作要求のみを受け取るように、前記複数の制御受付部と前記演算部との間の情報伝達を制御する調停部と、を有する。
【００１０】
一実施の形態によれば、半導体装置の制御方法は、複数のソフトウェアが実行されるＣＰＵ部と、ハードウェアＩＰと、を有する半導体装置において、前記ハードウェアＩＰの演算部が、前記ハードウェアＩＰの第１の記憶部が有する前記複数のソフトウェアの動作要求を受け付ける複数の制御受付部のいずれかからの動作要求のみを受け取るように、前記複数の制御受付部と前記演算部との間の情報伝達を制御する。
【発明の効果】
【００１１】
一実施の形態によれば、半導体装置において共有リソースを使用する際の調停に必要なＣＰＵの負荷を軽減することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１にかかる半導体装置のハードウェア構成を模式的に示すブロック図である。
【図２】実施の形態１にかかる半導体装置の構成を模式的に示すブロック図である。
【図３】実施の形態１にかかる半導体装置での調停動作を示すブロック図である。
【図４】実施の形態１にかかる半導体装置の演算部の応答動作を示すブロック図である。
【図５】実施の形態２にかかる半導体装置の構成を模式的に示すブロック図である。
【図６】実施の形態３にかかる半導体装置の構成を模式的に示すブロック図である。
【図７】実施の形態４にかかる半導体装置の構成を模式的に示すブロック図である。
【図８】実施の形態４にかかる半導体装置の動作を示すブロック図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明の実施の形態について説明する。各図面においては、同一要素には同一の符号が付されており、必要に応じて重複説明は省略される。
【００１４】
実施の形態１
実施の形態１にかかる半導体装置１００について説明する。図１は、実施の形態１にかかる半導体装置１００のハードウェア構成を模式的に示すブロック図である。半導体装置１００は、ＣＰＵ（Central Processing Unit）１０＿１〜ＣＰＵ１０＿Ｎ（Ｎは、２以上の整数）、及び、ハードウェアＩＰ（Intellectual Property）１１を有する。ＣＰＵ１０＿１〜ＣＰＵ１０＿ＮとハードウェアＩＰ１１とは、バス２０により、相互に情報伝達が可能である。
【００１５】
ＣＰＵ１０＿１〜ＣＰＵ１０＿Ｎは、所定のオペレーティングシステムを実行可能に構成される。オペレーティングシステムは、ＣＰＵ１０＿１〜ＣＰＵ１０＿Ｎのいずれか１つで実行されてもよいし、複数のＣＰＵにまたがって実行されてもよい。この例では、ＣＰＵ１０＿１〜ＣＰＵ１０＿Ｎでは、それぞれオペレーティングシステムＯＳ＿１〜ＯＳ＿Ｎが実行されるものとして示している。なお、以下では、説明の簡略化のため、ＣＰＵ１０＿１〜ＣＰＵ１０＿ＮをＣＰＵ部１０とも称する。
【００１６】
各オペレーティングシステムでは、１又は複数のソフトウェアが実行される。ここでは、ＣＰＵ１０＿１〜ＣＰＵ１０＿Ｎ（すなわち、オペレーティングシステムＯＳ＿１〜ＯＳ＿Ｎ）において、ソフトウェアＳ１〜Ｓｎが実行されるものとする。
【００１７】
ハードウェアＩＰ１１は記憶部１、調停部２及び演算部３を有する。記憶部１は、実行されるソフトウェアＳ１〜Ｓｎのそれぞれに対応するように、制御受付部ＣＲ１〜ＣＲｎが設けられる。制御受付部ＣＲ１〜ＣＲｎは、例えば、それぞれ独立したレジスタで構成される。つまり、制御受付部ＣＲ１〜ＣＲｎは、それぞれソフトウェアＳ１〜Ｓｎに対して、重複することなく１対１の対応関係を有する。すなわち、制御受付部ＣＲｉ（ｉは、１≦ｉ≦ｎを満たす整数）は、ソフトウェアＳｉのみからの動作要求を受け付け、かつ、ソフトウェアＳｉのみへ制御受付部ＣＲｉ内の情報を送出する。
【００１８】
調停部２は、制御受付部ＣＲ１〜ＣＲｎのいずれか１つからの動作要求のみが演算部３に送出されるように、制御受付部ＣＲ１〜ＣＲｎと演算部３との間の情報のやりとり（情報伝達）を制御する。また、調停部２は、演算部３が受とった動作要求に応じた動作を行った結果生じた情報（応答情報）が、当該動作要求を出力した制御受付部に送出されるように、制御受付部ＣＲ１〜ＣＲｎと演算部３との間の情報のやりとり（情報伝達）を制御する。
【００１９】
演算部３は、ＣＰＵ１０＿１〜ＣＰＵ１０＿Ｎが共有する共有リソースであり、ソフトウェアからの動作要求に応じた処理を実行する。
【００２０】
以下、半導体装置１００における動作要求の調停動作について具体的に説明する。ここでは、説明の簡略化のため、半導体装置１００では、４つのソフトウェアＳ１〜Ｓ４が動作し、これらに対応する４つの制御受付部ＣＲ１〜ＣＲ４が設けられている例について説明する。図２は、実施の形態１にかかる半導体装置１００の構成を模式的に示すブロック図である。図２では、図面の簡略化のため、オペレーティングシステム及びバスの表示を省略している。
【００２１】
まず、ソフトウェアＳ１〜Ｓ４が、同時に、ないしは近接したタイミングで、それぞれ動作要求ＯＲ１〜ＯＲ４を制御受付部ＣＲ１〜ＣＲ４へ送出する。制御受付部ＣＲ１〜ＣＲ４は、それぞれ受け取った動作要求ＯＲ１〜ＯＲ４を保持する。
【００２２】
調停部２は、設定された調停方式に従って、制御受付部ＣＲ１〜ＣＲ４に保持された動作要求のいずれを演算部３に受け渡すかを選択する。例えば、調停部２は、調停方式としてラウンドロビン（Round Robin）やＬＲＵ（Least Recently Used）などの調停方式を適用することができる。また、調停部２は、ランダムに制御受付部を選択してもよい。
【００２３】
調停部２は、設定された調停方式に従って、選択した制御受付部に保持される動作要求が演算部３に送出されるように動作する。
【００２４】
図２に示すように、調停部２は、スイッチング回路２Ａ（第１のスイッチング回路とも称する）及び制御部２Ｂを有する。スイッチング回路２Ａは、スイッチング素子Ｑ１〜Ｑ４を有する。スイッチング素子Ｑ１は、ＭＯＳＦＥＴ（Metal-Oxide-Semiconductor Field-Effect Transistor）やバイポーラトランジスタなどのトランジスタで構成してもよい。この例では、スイッチング素子Ｑ１〜Ｑ４は、それぞれ制御受付部ＣＲ１〜ＣＲ４と演算部３との間に挿入される。
【００２５】
制御部２Ｂは、制御信号ＣＯＮ１〜ＣＯＮ４により、スイッチング素子Ｑ１〜Ｑ４の開閉（オン／オフ）を制御する。例えば、スイッチング素子Ｑ１〜Ｑ４がＭＯＳＦＥＴである場合には、制御部２Ｂはスイッチング素子Ｑ１〜Ｑ４のゲート（制御端子）にゲート電圧（すなわち、制御信号ＣＯＮ１〜ＣＯＮ４）を与えることで、スイッチング素子Ｑ１〜Ｑ４の開閉（オン／オフ）を制御する。本実施の形態では、制御部２Ｂは、スイッチング素子Ｑ１〜Ｑ４のいずれかのみが閉じる（オンになる）ように、スイッチング素子Ｑ１〜Ｑ４を制御する。
【００２６】
制御部２Ｂは、上述の設定された調停方式に従って、動作要求を送出する制御受付部を選択する。ここでは、動作要求を送出する制御受付部として、制御受付部ＣＲ２が選択された場合について説明する。図３は、実施の形態１にかかる半導体装置１００での調停動作を示すブロック図である。図３では、図面の簡略化のため、オペレーティングシステム及びバスの表示を省略している。この場合、図３に示すように、制御部２Ｂは、スイッチング素子Ｑ２を閉じ（スイッチング素子Ｑ２をオンに）、スイッチング素子Ｑ１、Ｏ３及びＱ４を開放（スイッチング素子Ｑ１、Ｏ３及びＱ４をオフに）する。これにより、制御受付部ＣＲ２と演算部３とが接続される。
【００２７】
この状態で、制御受付部ＣＲ２は、保持している動作要求ＯＲ２を演算部３に出力する。演算部３は、受け取った動作要求ＯＲ２に応じた処理を実行する。この際、スイッチング素子Ｑ１、Ｏ３及びＱ４は、演算部３と物理的に分離されているので、演算部３は、確実に動作要求ＯＲ２に応じた処理を実行することができる。以上、本構成によれば、制御受付部ＣＲ１〜ＣＲ４からの動作要求を調停し、いずれか１つの動作要求のみを演算部３に送出することができる。
【００２８】
また、演算部３は、受け取った動作要求ＯＲ２に応じた処理を実行した後、当該実行の結果生じた情報を、動作要求ＯＲ２を送出した制御受付部ＣＲ２に送出してもよい（以下、演算部の応答動作と称する。）。図４は、実施の形態１にかかる半導体装置１００の演算部３の応答動作を示すブロック図である。図４では、図面の簡略化のため、オペレーティングシステム及びバスの表示を省略している。例えば、演算部３は、応答動作において、処理完了通知や、演算部３の負荷を示す情報などを処理実行の結果生じた情報を、応答情報ＩＮＦとして送出してもよい。
【００２９】
以上、本構成によれば、動作要求の調停がハードウェアＩＰで行われるので、ＣＰＵは調停にかかるソフトウェア処理を行う必要がなく、ＣＰＵの負荷を軽減することができる。また、ＣＰＵで実行されるソフトウェアに対応する制御受付部がハードウェアＩＰに設けられているので、ＣＰＵはソフトウェアからの動作要求を逐次送出することができる。その結果、ＣＰＵに送出待ちの動作要求が滞留することもなく、ＣＰＵの負荷を更に低減できることが理解できる。
【００３０】
また、本構成は、機能安全の観点から有利である。以下、その理由について説明する。ソフトウェアＳ１〜Ｓｎの動作要求ＯＲ１〜ＯＲｎは、それぞれ専用に設けられた制御受付部ＣＲ１〜ＣＲｎ送出されるので、各動作要求は他の動作要求と干渉ないしは交錯することなく演算部３に到達することができる。したがって、ソフトウェアＳ１〜Ｓｎの機能安全を確保する観点から、各ソフトウェアに専属的に対応する制御受付部を設けることで、ソフトウェアの機能安全を確保することができる。
【００３１】
上記の半導体装置１００は、カーナビゲーションシステムなどの車載端末に搭載することができる。例えば、カーナビゲーションシステムでは、地上波デジタル放送再生アプリケーション及びＤＶＤ／ＢＤ（Digital Versatile Disc/Blue-ray Disc）（登録商標）再生アプリケーションがそれぞれ独立して、ビデオ／オーディオデコーダＩＰ（Intellectual Property）に動作要求を発行する。このとき、両アプリケーションから同時に動作要求が発行される場合でも、半導体装置１００のハードウェアＩＰ１１において調停処理を行うことができる。また、カーナビゲーションシステムの運転支援機能などを利用して運転制御などが行われる場合を想定すると、車両運行の安全確保の観点から運転制御にかかるアプリケーションには高い機能安全が求められる。この場合でも、上述の通り、半導体装置１００では高い機能安全を実現できる。
【００３２】
また、上記の半導体装置１００は、スマートフォンなどの携帯端末に搭載することができる。例えば、スマートフォンでは、ＷｉＦｉ経由でＴＶに動画データを送信するためのアプリケーションや、スマートフォンのパネル上で動画を再生するためのアプリケーションがそれぞれ独立して、ビデオ／オーディオコーデックＩＰ（Intellectual Property）に動作要求を発行する。このとき、両アプリケーションから同時に動作要求が発行される場合でも、半導体装置１００のハードウェアＩＰ１１において調停処理を行うことができる。
【００３３】
実施の形態２        
上述の実施の形態１では、実行されるソフトウェアと同じ個数の制御受付部が設けられる半導体装置について説明した。しかしながら、上記構成においては、ソフトウェアの数が多くなると、設けられる制御受付部の数も多くなってしまい、半導体装置（すなわち、ＳｏＣ）の大型化を招いてしまう。これに対し、本実施の形態では、実施の形態１にかかる半導体装置１００の変形例として、制御受付部の数を抑制しつつハードウェアＩＰで調停処理を行う半導体装置について説明する。
【００３４】
図５は、実施の形態２にかかる半導体装置２００の構成を模式的に示すブロック図である。図５では、図面の簡略化のため、オペレーティングシステム及びバスの表示を省略している。半導体装置２００のハードウェアＩＰ１２は、実施の形態１にかかる半導体装置１００のハードウェアＩＰ１１に対応する。ハードウェアＩＰ１２は、実施の形態１にかかるハードウェアＩＰ１１の記憶部１を記憶部４に置換し、調停部２を調停部５に置換し、更に記憶部６を追加した構成を有する。なお、説明の明確化のため、記憶部１及び４を第１の記憶部とも称し、記憶部６を第２の記憶部とも称する。半導体装置２００のその他の構成は、半導体装置１００と同様であるので、説明を省略する。
【００３５】
記憶部４は、実行されるソフトウェアＳ１〜Ｓｎから送出される動作要求を受け付ける制御受付部ＣＲ１〜ＣＲｍ（ｍは、２＜ｍ＜ｎを満たす整数）が設けられる。すなわち、本実施の形態では、制御受付部は複数個設けられるものの、その個数はソフトウェアの数よりも少ない。制御受付部ＣＲ１〜ＣＲｍは、対応するソフトウェアからの動作要求を受け付け、かつ、対応するソフトウェアへ当該制御受付部内の情報を送出する。
【００３６】
記憶部６は、外部メモリ（ＤＲＡＭ：Dynamic Random Access Memory）キャッシュメモリなどの各種の記憶装置とすることができる。記憶部６は、制御受付部ＣＲ１〜ＣＲｍの一部又は全部から転送される動作要求を逐次格納し、制御部２Ｂの要求に応じて格納した動作要求を制御部２Ｂに送出する。
【００３７】
調停部５は、調停部２のスイッチング回路２Ａをスイッチング回路５Ａ（第１のスイッチング回路とも称する）に置換した構成を有する。スイッチング回路５Ａは、スイッチング回路２Ａのスイッチング素子Ｑ３及びＱ４を削除し、新たにスイッチング素子ＱＭを追加した構成を有する。スイッチング素子ＱＭは、ＭＯＳＦＥＴ（Metal-Oxide-Semiconductor Field-Effect Transistor）やバイポーラトランジスタなどのトランジスタで構成してもよい。スイッチング素子ＱＭは、記憶部６と演算部３との間に挿入される。
【００３８】
制御部２Ｂは、制御信号ＣＯＮ１、ＣＯＮ２及びＣＯＮ＿Ｍにより、スイッチング素子Ｑ１、Ｑ２及びＱＭの開閉（オン／オフ）を制御する。スイッチング素子ＱＭがＭＯＳＦＥＴである場合には、制御部２Ｂはスイッチング素子ＱＭのゲート（制御端子）にゲート電圧（すなわち、制御信号ＣＯＮ＿Ｍ）を与えることで、スイッチング素子ＱＭの開閉（オン／オフ）を制御する。本実施の形態では、制御部２Ｂは、スイッチング素子Ｑ１、Ｑ２及びＱＭのいずれかのみが閉じる（オンになる）ように、スイッチング素子Ｑ１、Ｑ２及びＱＭを制御する。
【００３９】
また、上述のスイッチング素子ＱＭを用いない構成とすることも可能である。この場合、記憶部６は制御部２Ｂの要求に応じて格納した動作要求を記憶部４に送出する。制御部２Ｂはスイッチング素子Ｑ１及びスイッチング素子Ｑ２のいずれかのみが閉じる（オンにする）ように制御する。記憶部４は、格納した動作要求を出力する場合、出力対象の動作要求に対応するレジスタに動作要求を送出する。制御部２Ｂが動作要求を受け取ったレジスタに接続されるスイッチング素子（スイッチング素子Ｑ１又はＱ２）を閉じる（オンにする）ことで、当該レジスタから演算部３への動作要求の送出が可能となる。
【００４０】
以下、半導体装置２００の動作について説明する。ここでは、説明の簡略化のため、半導体装置２００では、４つのソフトウェアＳ１〜Ｓ４が動作し、２つの制御受付部ＣＲ１及びＣＲ２が設けられている例について説明する。
【００４１】
まず、ソフトウェアＳ１〜Ｓ４が、同時に、ないしは近接したタイミングで、それぞれ動作要求ＯＲ１〜ＯＲ４を送出する。この例では、制御受付部ＣＲ１は、ソフトウェアＳ１からの動作要求ＯＲ１のみを受け付ける。すなわち、制御受付部ＣＲ１とソフトウェアＳ１とは、１対１の対応関係を有する。一方で、制御受付部ＣＲ２は、ソフトウェアＳ２〜Ｓ４からの動作要求ＯＲ２〜ＯＲ４を受け付ける。そして、受け付けた動作要求を記憶部６に転送する。転送された動作要求は記憶部４に格納される。図５では、記憶部６に格納された動作要求を、ＯＲ２＿１、ＯＲ２＿２、・・・、ＯＲ３＿１、ＯＲ３＿２、・・・、ＯＲ４＿１、ＯＲ４＿２、・・・と表示している。記憶部に格納された動作要求は、例えば、送出元のソフトウェアに応じてラベル付け（ソフトウェア間で優先順位を設定）してもよいし、転送された順番に応じてラベル付け（転送された時期が早い順に優先順位を設定）してもよい。
【００４２】
制御受付部ＣＲ２は、受け付けた動作要求を記憶部６に格納したのち、格納済み動作要求を制御受付部ＣＲ２から消去し、ソフトウェアから送出される他の動作要求を受け付けることができる状態に復帰する。
【００４３】
これにより、制御受付部ＣＲ２が動作要求を保持する時間を抑制し、複数のソフトウェアから連続的に送出される動作要求を滞りなく受け付けることができる。その結果、ソフトウェアＳ２〜Ｓ４の動作要求の送出待ちを回避できるので、ＣＰＵの利用効率を高めることが可能となる。
【００４４】
調停部５は、設定された調停方式に従って、制御受付部ＣＲ１及びＣＲ２、記憶部６に保持された動作要求のいずれを演算部３に受け渡すかを決定する。例えば、調停方式としてラウンドロビン（Round Robin）を用いる場合には、調停部５は、制御受付部ＣＲ１、制御受付部ＣＲ２、記憶部６を順番に参照し、動作要求の送出元を選択する。調停部５は、記憶部６を参照する場合には、最も優先順位の高いラベルが付された動作要求を参照する。
【００４５】
調停部５は、選択した送出元からの動作要求が演算部３に送出されるように、実施の形態１と同様に制御動作を行う。
【００４６】
なお、上記では、制御受付部ＣＲ１は、受け取った動作要求を逐次記憶部６に格納する構成としてもよい。これにより、制御受付部ＣＲ１が動作要求を保持する時間を抑制し、ソフトウェアＳ１から連続的に動作要求が送出される場合でも、滞りなく動作要求を受け付けることができる。その結果、ソフトウェアＳ１の動作要求の送出待ちを回避できるので、ＣＰＵの利用効率を高めることが可能となる。
【００４７】
また、制御受付部ＣＲ１がソフトウェアＳ１のみに対応するものとして説明したが、制御受付部ＣＲ１が複数のソフトウェアに対応する構成としてもよい。
【００４８】
以上、本構成によれば、制御受付部の一部又は全部が複数のソフトウェアから送出される動作要求を受け付ける構成とすることで、制御受付部の個数を削減することができる。これにより、半導体装置の小型化を実現できる点で有利である。
【００４９】
上記では、制御受付部ＣＲ１がソフトウェアＳ１のみに対応するものとして説明したが、１つの制御受付部と１つのソフトウェアを１対１に対応させることにより、機能安全の観点からはメリットがある。換言すれば、ソフトウェアＳ１が高い機能安全の確保が求められている場合には、専用の制御受付部ＣＲ１を割り当てることが望ましい。これにより、ソフトウェアＳ１と演算部３との間の情報伝達経路に他のソフトウェアが関係することはない。よって、ソフトウェアＳ１以外のソフトウェアからの動作要求によって、ソフトウェアＳ１からの動作要求が妨害される、又は干渉するといった事態を未然に回避することができる。その結果、機能安全の保持要求が高いソフトウェアＳ１からの動作要求を、確実に演算部３に送出することができる。
【００５０】
実施の形態３
実施の形態３にかかる半導体装置について説明する。実施の形態３にかかる半導体装置３００は、実施の形態１にかかる半導体装置１００の変形例であり、演算部３から送出される情報に基づいて調停部の動作を制御するものである。図６は、実施の形態３にかかる半導体装置３００の構成を模式的に示すブロック図である。図６では、図面の簡略化のため、オペレーティングシステム及びバスの表示を省略している。半導体装置３００のハードウェアＩＰ１３は、実施の形態１にかかる半導体装置１００のハードウェアＩＰ１１に対応する。ハードウェアＩＰ１３は、実施の形態１にかかるハードウェアＩＰ１１の調停部２を、調停部７に置換した構成を有する。
【００５１】
調停部７は、実施の形態１にかかる調停部２に調停方式設定部７Ｃを追加した構成を有する。調停方式設定部７Ｃには、制御部２Ｂが動作要求の調停に用いる調停方式（図６におけるＡＲ１、ＡＲ２、・・・）が複数格納されている。調停方式設定部７Ｃに格納される調停方式は、予め与えられていてもよいし、調停方式設定部７Ｃの外部から書き換え可能であってもよい。制御部２Ｂは、例えば、ＣＰＵ１０（ＣＰＵ１０＿１〜ＣＰＵ１０＿Ｎ）からの指令ＯＲＤにより指定された調停方式を調停方式設定部７Ｃから読み出し、読み出した特定の調停方式に従って、動作要求の調停を行う。
【００５２】
以下、半導体装置３００の調停動作について具体的に説明する。半導体装置３００は、実施の形態１にかかる半導体装置１００と同様に、動作要求の調停動作を行う。動作要求を受け取った演算部３は、当該動作要求の応じた処理を行い、処理の結果生じた情報（例えば、演算部３の負荷率、演算部３での処理完了通知）を、実施の形態１と同様に、動作要求の送出元であるソフトウェア（すなわち、ＣＰＵ部１０）に送出する。
【００５３】
この例では、ソフトウェアＳ２が動作要求の送出元であるものとして説明する。この場合、ソフトウェアＳ２は、演算部３から受け取った情報に基づいて、制御部２Ｂが用いる調停方式を指定する。例えば、ソフトウェアＳ２が演算部３の負荷率を示す情報を受け取る場合において、負荷率が所定の値よりも小さいときには調停方式としてラウンドロビンを用い、負荷率が所定の値よりも大きいときにはリアルタイム要求が高いものとしてラベリングされている制御受付部を選択してもよい。
【００５４】
また、例えば、演算部３からの情報が所定時間以内に送出元のソフトウェアに返送されない場合には演算部３での処理を中止し、ＣＰＵが制御部に命令を発行することで、他のソフトウェアからの動作要求を実行するように動作してもよい。これにより、所定時間内にハードウェアＩＰでの動作が確実に完了するため、より精度の高い調停動作が可能となる。
【００５５】
例えば、特定のソフトウェアからの動作要求を対応する制御受付部が受け付けた場合、演算部３で実行中の処理を中止し、当該特定のソフトウェアからの動作要求を実行してもよい。この場合、演算部３は自発的にリセットを行った後に、中止した処理にかかる動作要求を送出した制御受付部に、リセット完了を通知する。その後、当該特定のソフトウェアからの動作要求が実行される。また、演算部３で実行中の処理の中止から特定のソフトウェアからの動作要求を開始するまでの時間を、制御受付部により設定することもできる。これにより、特定のソフトウェアが高い機能安全の確保が求められている場合などにおいて、特定のソフトウェアを優先的に実行することができ、より細かな調停動作が可能となる。
【００５６】
更に、演算部３で実行中の処理を完了して次の処理を開始できるようになるまでの時間を、演算部３が制御受付部に設定してもよい。この場合、設定された情報をソフトウェアに送出することで、ソフトウェアは演算部３の状態を把握することができる。これにより、ソフトウェアは自らの処理の順番や調停方式設定部に設定する調停方式を変更するなどして、より柔軟なハードウェアＩＰの制御が可能となる。
【００５７】
以上のように、演算部での処理の結果に応じてフィードバックされる情報を用いることで、演算部の処理状況に適した調停方式を選択することができる。これは、半導体装置のハードウェア構成の大規模な変更を有することなく実現可能であり、演算部の処理リソースを有効に活用することができる。
【００５８】
実施の形態４
実施の形態４にかかる半導体装置について説明する。実施の形態４にかかる半導体装置４００は、実施の形態１にかかる半導体装置１００の変形例であり、特定のソフトウェアの機能安全の確保するための構成を有するものである。図７は、実施の形態４にかかる半導体装置４００の構成を模式的に示すブロック図である。図７では、図面の簡略化のため、オペレーティングシステム及びバスの表示を省略している。半導体装置４００のハードウェアＩＰ１４は、実施の形態１にかかる半導体装置１００のハードウェアＩＰ１１に対応する。ハードウェアＩＰ１４は、実施の形態１にかかるハードウェアＩＰ１１にスイッチング回路８（第２のスイッチング回路とも称する）を追加した構成を有する。
【００５９】
スイッチング回路８は、スイッチング素子ＳＷ１〜ＳＷｎを有し、記憶部１と調停部２との間に挿入される。スイッチング素子ＳＷ１〜ＳＷｎは、それぞれ制御受付部ＣＲ１〜ＣＲｎと調停部２との間に挿入される。
【００６０】
スイッチング素子ＳＷ１〜ＳＷｎは、１又は複数の制御受付部からの制御信号により開閉（オン／オフ）される。本実施の形態では、機能安全の確保が要求されるソフトウェアに対応する制御受付部が、スイッチング素子ＳＷ１〜ＳＷｎの開閉（オン／オフ）を制御する制御受付部として設定される。
【００６１】
以下、半導体装置４００の動作について説明する。ここでは、実施の形態１と同様に、４つのソフトウェアと４つの制御受付部が存在し、かつ、制御受付部ＣＲ１に対応するソフトウェアＳ１が機能安全の確保が求められるものとして説明する。この場合、制御受付部ＣＲ１がスイッチング回路８のスイッチング素子ＳＷ１〜ＳＷ４の開閉（オン／オフ）を制御する。通常時は、図７に示すように、各制御受付部から動作要求を送出できるように、スイッチング素子ＳＷ１〜ＳＷ４は閉じている。
【００６２】
この状態において、動作要求ＯＲ１がソフトウェアＳ１から制御受付部ＣＲ１へ送出されると、制御受付部ＣＲ１は動作要求ＯＲ１を受け取ると同時に、スイッチング素子ＳＷ２〜ＳＷ４を開放する。図８は、実施の形態４にかかる半導体装置４００の動作を示すブロック図である。図８では、図面の簡略化のため、オペレーティングシステム及びバスの表示を省略している。図８に示すように、制御受付部ＣＲ１以外の制御受付部ＣＲ２〜ＣＲ４からの動作要求の送出が禁止されることとなる。なお、図８に示す状態では、動作要求ＯＲ１が演算部３に送出されることとなるので、スイッチング素子Ｑ１は閉じた状態となっている。これにより、ソフトウェアＳ１から動作要求ＣＲ１が、他の動作要求に妨害されることなく、確実にかつ優先的に実行されることとなり、ソフトウェアＳ１に対する機能安全要求を満たすことができる。
【００６３】
なお、スイッチング回路８は、ソフトウェアＳ１〜Ｓ４と制御受付部ＣＲ１〜ＣＲ４とのそれぞれの間に挿入された４つのスイッチング素子（第２のスイッチング素子）を更に有してもよい。そして、制御受付部ＣＲ１は、動作要求ＯＲ１を受け取ると同時に、４つのスイッチング素子のうち、制御受付部ＣＲ１に接続されるものを閉じ、制御受付部ＣＲ２〜ＣＲ４に接続されるものを開放してもよい。
【００６４】
その他の実施の形態
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述の実施の形態では、説明の簡略化のため、４つのソフトウェアが動作する具体例について説明した。しかし、言うまでもないことながら、２つ、３つ、又は５つ以上のソフトウェアが動作し、かつ、これらに対応する制御受付部が設けられた半導体装置を構成できることはいうまでもない。
【００６５】
上述の実施の形態３にかかる半導体装置３００においても、実施の形態２にかかる半導体装置２００と同様に、制御受付部の個数をソフトウェアの数よりも少なくし、かつ、記憶部６を設けて制御受付部からの動作要求を逐次格納する構成とできることは言うまでもない。
【００６６】
上述の実施の形態４にかかる半導体装置４００においても、実施の形態２にかかる半導体装置２００と同様に、制御受付部の個数をソフトウェアの数よりも少なくし、かつ、記憶部６を設けて制御受付部からの動作要求を逐次格納する構成としてもよいことは言うまでもない。また、上述の実施の形態４にかかる半導体装置４００においても、実施の形態３にかかる半導体装置３００と同様に、調停方式設定部を設けて、演算部３から送出される情報に基づいて制御部２Ｂが用いる調停方式を変更する構成としてもよいことは言うまでもない。更に、上述の実施の形態４にかかる半導体装置４００において、実施の形態２にかかる半導体装置２００と同様に、制御受付部の個数をソフトウェアの数よりも少なくし、記憶部６を設けて制御受付部からの動作要求を逐次格納し、かつ、実施の形態３にかかる半導体装置３００と同様に、調停方式設定部を設けて、演算部３から送出される情報に基づいて制御部２Ｂが用いる調停方式を変更する構成としてもよいことは言うまでもない。
【００６７】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、ＣＰＵ、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００６８】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００６９】
上述の実施の形態では、スイッチング回路（第１及び第２のスイッチング回路）は、ＭＯＳＦＥＴなどで実現される単一のスイッチング素子で構成される回路であるものとして説明したが、これは例示に過ぎない。上述の実施の形態と同様に記憶部（第１及び第２の記憶部）と演算部との間の情報のやり取りを制御できるならば、スイッチング回路は他の構成とできることは言うまでもない。この場合、スイッチング回路に設けられるスイッチング素子の数は上述の実施の形態の例に限られないし、スイッチング素子以外の素子が含まれていてもよい。また、１又は複数の論理回路を用いてスイッチング回路を構成してもよい。
【００７０】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【００７１】
１、４、６  記憶部
２、５、７  調停部
３  演算部
２Ａ、５Ａ、８  スイッチング回路
２Ｂ  制御部
７Ｃ  調停方式設定部
１０  ＣＰＵ部
１０＿１〜１０＿Ｎ  ＣＰＵ
１１〜１４  ハードウェアＩＰ
１００、２００、３００、４００  半導体装置
ＣＯＮ１〜ＣＯＮ４、ＣＯＮ＿Ｍ  制御信号
ＣＲ１〜ＣＲｎ  制御受付部
ＩＮＦ  応答情報
ＯＳ＿１〜ＯＳ＿Ｎ    オペレーティングシステム
ＯＲ１〜ＯＲｎ  動作要求
Ｑ１〜Ｑ４、ＳＷ１〜ＳＷ４  スイッチング素子
【図１】
0006608688.tif 000002
【図２】
0006608688.tif 000003
【図３】
0006608688.tif 000004
【図４】
0006608688.tif 000005
【図５】
0006608688.tif 000006
【図６】
0006608688.tif 000007
【図７】
0006608688.tif 000008
【図８】
0006608688.tif 000009