(57)【要約】【課題】ハードウェアが増加することなくプログラムの保護が可能な半導体装置を提供することにある。【解決手段】半導体装置は、外部メモリから読み出したプログラムを格納する内部メモリと、内部メモリからプログラムを読み出して実行するＣＰＵと、を備える。外部メモリには第一のプログラムと第二のプログラムと当該半導体装置に固有の固有値キーとが格納される。ＣＰＵは、前記第一のプログラムを実行することにより解除キーを生成し、生成した解除キーと外部メモリから読み出した固有値キーとが一致したときに外部メモリから第二のプログラムが読み出す。【選択図】図４
2019101772.tif 000002
【特許請求の範囲】
【請求項１】
外部メモリから読み出したプログラムを格納する内部メモリと、
前記内部メモリから前記プログラムを読み出して実行するＣＰＵと、
を備える半導体装置であって、
前記外部メモリには第一のプログラムと第二のプログラムと当該半導体装置に固有の固有値キーとが格納され、
前記ＣＰＵは、前記第一のプログラムを実行することにより解除キーを生成し、生成した解除キーと前記外部メモリから読み出す前記固有値キーとが一致するときに前記外部メモリから前記第二のプログラムを読み出す半導体装置。
【請求項２】
請求項１において、
前記第一のプログラムは、特定の処理を実施する複数のタスクと、その処理時間を前記複数のタスクごとに計測するタスクと、その計測値に基づいて前記解除キーを生成するタスクと、を有する半導体装置。
【請求項３】
請求項２において、
前記解除キーは前記計測値と所定の閾値とを比較して生成される半導体装置。
【請求項４】
請求項２において、
前記解除キーは前記計測値と上限の閾値と下限の閾値を比較して生成される半導体装置。
【請求項５】
請求項２において、
前記固有値キーは前記第一のプログラムを実行することにより生成され、前記外部メモリに格納される半導体装置。
【請求項６】
請求項５において、
前記固有値キーは前記計測値と所定の閾値とを比較して生成される半導体装置。
【請求項７】
請求項５において、
前記固有値キーは前記計測値と上限の閾値と下限の閾値を比較して生成される半導体装置。
【請求項８】
請求項２において、
さらに、タスク・スケジューラと、前記ＣＰＵによってコマンドが書き込まれるシステムコール・レジスタと、ＯＳリソースと、割込み入力に基づいてシステムコールを発行する回路と、を有するリアルタイムＯＳアクセラレータを備える半導体装置。
【請求項９】
プログラムを格納する内部メモリと、前記内部メモリから前記プログラムを読み出して実行するＣＰＵと、ネットワーク制御回路と、を有する制御用半導体装置と、
第一のプログラムと通信プロトコルを含む第二のプログラムと制御用半導体装置に固有の固有値キーとが格納されるメモリ用半導体装置と、
を備え、
前記ＣＰＵは、
前記メモリ用半導体装置から前記第一のプログラムを前記内部メモリにダウンロードし、
前記内部メモリから前記第一のプログラムを読み出して実行することにより解除キーを生成し、生成した解除キーと前記メモリ用半導体装置から読み出した前記固有値キーとが一致したときに前記メモリ用半導体装置から前記第二のプログラムが読み出して前記内部メモリにダウンロードし、
前記固有値キーは、前記制御用半導体装置によって前記第一のプログラムを実行することにより生成され、前記第一のプログラムおよび前記第二のプログラムを前記メモリ用半導体装置に格納する際に前記メモリ用半導体装置に格納されるネットワーク制御装置。
【請求項１０】
請求項９において、
前記第一のプログラムは、特定の処理を実施する複数のタスクと、その処理時間を前記複数のタスクごとに計測するタスクと、その計測値に基づいて前記解除キーを生成するタスクと、を有するネットワーク制御装置。
【請求項１１】
請求項１０において、
前記解除キーおよび前記固有値キーは前記計測値と所定の閾値とを比較して生成されるネットワーク制御装置。
【請求項１２】
請求項１０において、
前記解除キーおよび前記固有値キーは前記計測値と上限の閾値と下限の閾値を比較して生成されるネットワーク制御装置。
【請求項１３】
請求項１０において、
さらに、タスク・スケジューラと、前記ＣＰＵによってコマンドが書き込まれるシステムコール・レジスタと、ＯＳリソースと、割込み入力に基づいてシステムコールを発行する回路と、を有するリアルタイムＯＳアクセラレータを備えるネットワーク制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は半導体装置に関し、例えば外部メモリにプログラムを格納する半導体装置に適用可能である。
【背景技術】
【０００２】
外部のメモリにプログラムを置き、内蔵メモリに転送して、プログラムを展開するような構成の装置は、セキュリティ機能を持っていない場合、開発したプログラムのハッキング、改ざんによって第三者に流用される危険が多々ある。プログラムの保護のため暗号化等が行われる（例えば、特開２００９−０６４４６２号公報、特開２０１２−１７４２２８号公報）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−０６４４６２号公報
【特許文献２】特開２０１２−１７４２２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
プログラムを暗号化して外部メモリに格納する場合、プログラムを実行する半導体装置は復号を高速に行うには復号のための特別なハードウェアが必要であり、半導体装置のチップ面積が大きくなってしまう。
本開示の課題は、外部メモリに格納されるプログラムの保護が容易な半導体装置を提供することにある。
【課題を解決するための手段】
【０００５】
本開示のうち代表的なものの概要を簡単に説明すれば下記の通りである。
すなわち、半導体装置は、外部メモリからの第一のプログラムを実行して解除キーを生成し、生成した解除キーと外部メモリから読み出した固有値キーとが一致したときに外部メモリから第二のプログラムが読み出す。
【発明の効果】
【０００６】
上記半導体装置によれば、外部メモリに格納されるプログラムを保護することができる。
【図面の簡単な説明】
【０００７】
【図１】産業用ネットワークの構成例を説明する図
【図２】ネットワーク制御装置の構成例を説明する図
【図３】図２のネットワーク制御装置のプログラム構造を説明する図
【図４】起動シーケンスを説明するフローチャート
【図５】解除キーの作成方法を説明する図
【図６】種々のシステムコールの処理時間を説明する図
【図７】ハードウェアＲＴＯＳを説明する図
【図８】ハードウェアＲＴＯＳを説明する図
【図９】ハードウェアＲＴＯＳを説明する図
【図１０】ハードウェアＲＴＯＳを説明する図
【図１１】ハードウェアＲＴＯＳを説明する図
【図１２】図２のネットワーク制御装置の効果を説明する図
【図１３】外部メモリの課題を説明する図
【発明を実施するための形態】
【０００８】
産業用ネットワークは、様々な工場設備や機器をつなぎ、生産効率化のための集中管理や機器制御の高精度化などにより、通信する情報量が急増してきており、その通信規格として、情報系ネットワークとの親和性や高速・広帯域性を備え、またコストパフォーマンスに優れたＥｔｈｅｒｎｅｔが広く普及してきている。特に、産業用アプリケーションにおいては、標準のＥｔｈｅｒｎｅｔに比べて高いリアルタイム応答性能や環境耐久性が求められるため、ＰＲＯＦＩＮＥＴやＥｔｈｅｒＣＡＴ、ＥｔｈｅｒＮｅｔ／ＩＰといった産業用Ｅｔｈｅｒｎｅｔのプロトコルを利用したネットワークが拡大している。
【０００９】
一方、センサやアクチュエータを繋ぐネットワークにおいては、機器の小型化や高精度化にともない、ＩＯ−Ｌｉｎｋといったデジタル通信が用いられるようになってきている。
【００１０】
上述したように、産業用ネットワークで用いられる通信においては、幾つかの規格があり、その規格にあったプロトコルを含んだ組み込み型プログラムで各機器が動作している。
【００１１】
各プロトコルは、ハードウェアで構成されている場合とソフトウェアで構成されている場合があるが、いずれも、それぞれの規格に沿うように、各社が独自に開発を行っている。
【００１２】
ネットワーク制御装置は、その動作を行うための組み込みプログラムをそれぞれ有し、例えば、そのプログラムが制御用半導体装置の近傍に設けられたメモリ（外部メモリ）に保存し、機器の電源投入と共に、メモリに応じたインタフェースによって制御用半導体装置の内部のメモリにダウンロードされプログラム動作を行う場合がある。
【００１３】
この場合、外部メモリがコピーされると、プログラムはバイナリ化されているので、制御用半導体装置に内蔵されるＣＰＵが異なれば（オブジェクト・コードがコンパチブルでなければ）そのまま実行することはできない。しかし、図１３に示すように、ＣＰＵが同じであれば（オブジェクト・コードがコンパチブルであれば）プログラムが暗号化されていない場合やダウンロード時のインタフェースについても暗号化されていない場合、そのまま実行することが可能である。
【００１４】
プロトコル規格にしたがって作成されたプログラムは一般的にはフリーではなく、各メーカが開発行って構築しているので、そのプログラムはコピー防止の対象となり、その対策が必要である。
【００１５】
そこで、実施形態に係る半導体装置は、外部メモリから読み出したプログラムを格納する内部メモリと、内部メモリからプログラムを読み出して実行するＣＰＵと、を備える。外部メモリには第一のプログラムと第二のプログラムと当該半導体装置に固有の固有値キーとが格納される。ＣＰＵは、前記第一のプログラムを実行することにより解除キーを生成し、生成した解除キーと外部メモリから読み出した固有値キーとが一致したときに外部メモリから第二のプログラムが読み出す。
【００１６】
これにより、固有値キーと同じ解除キーを生成する半導体装置でしか、外部メモリから第二のプログラムを読み出すことができないので、第二のプログラムを保護することができる。
【００１７】
以下、実施例について、図面を用いて説明する。ただし、以下の説明において、同一構成要素には同一符号を付し繰り返しの説明を省略することがある。
【実施例】
【００１８】
図１は産業用ネットワークの構成例を示すブロック図である。
制御装置（Controller ＰＣ）とプログラマブル・ロジック制御装置（Programmable Logic Controller：ＰＬＣ）、ヒューマン・マシン・インタフェース（Human Machine Interface：ＨＭＩ）、コンピュータ数値制御装置（Computerized Numerically Controller：ＣＮＣ）、ＭＣ（Motion Controller）とは標準Ｅｔｈｅｒｎｅｔのコントローラ・ネットワーク（Controller Network）で接続される。ＰＬＣとＭＣ、ＰＬＣとＡＣモータ・ドライバ（AC Driver）とリモートＩ／Ｏ（Remote I/O）、ＭＣとサーボモータ・ドライバ（Servo Driver）、ＣＮＣとサーボモータ・ドライバ（Servo Driver）、は産業用Ｅｔｈｅｒｎｅｔ、ＣＡＮ等のフィールド・ネットワーク（Field Network）またはモーションネットワーク（Motion Network）で接続される。ＰＬＣとセンサ（Sensor）、リモートＩ／Ｏ（Remote I/O）とセンサ（Sensor）、はＩＯ−Ｌｉｎｋ等のセンサ・ネットワーク（Sensor Network）で接続される。
【００１９】
ＰＬＣ、ＨＭＩ、ＣＮＣおよびＭＣは、それぞれマイクロプロセッサ（ＭＰＵ）またはマイクロコントローラ（ＭＣＵ）とネットワーク制御装置（Network Controller）等で構成されており、ネットワーク制御装置はプロトコル特有の処理を行い、マイクロプロセッサまたはマイクロコントローラは関連するプログラム処理を実行する。
【００２０】
図２はネットワーク制御装置の構成を示すブロック図である。ネットワーク制御装置１は、制御用半導体装置１０とメモリ用半導体装置（MEMORY）２０とを備える。制御用半導体装置１０は、ＣＰＵ１１とリアルタイム・オペレーティング・システム・アクセラレータ（REAL-TIME OS ACCELERATOR）１２とイーサネット・アクセラレータ（ETHERNET ACCELERATOR）１３とイーサネット・コントローラ（ETHERNET CONTROLLER）１４と内部メモリ（INTERNAL MEMORY）１５とメモリ・インタフェース（MEMORY I/F）１６とを一つの半導体チップに備える。メモリ用半導体装置２０は例えば不揮発性メモリであるフラッシュメモリであり、メモリ・インタフェース１６は例えばシリアル・フラッシュ・インタフェースである。なお、本実施例におけるリアルタイム・オペレーティング・システム・アクセラレータはハードウェアによって実現されるリアルタイム・オペレーティング・システム（Real-Time Operating System）であり、以下、「ハードウェアＲＴＯＳ」と称す。
【００２１】
図３は図２のネットワーク制御装置のプログラム構造を説明する図である。
プログラムは、セキュリティ・プログラム（Security Program）Ｐ１と、ハードウェアに依存したドライバ（Driver）部分Ｐ２１と通信プロトコル部分Ｐ２２とを含むメインプログラムＰ２と、で構成され、メモリ用半導体装置２０に格納されている。メインプログラムＰ２は読出し保護領域に格納されており、起動時にセキュリティ・シーケンスと合致した場合に読出し可能にされる。
【００２２】
セキュリティ・プログラムは、電源投入時に起動するリセット処理プログラムＰ１１と、特定の処理をＣＰＵに実施させる複数のタスクとその処理を計測するタスクとで構成される計測処理プログラムＰ１２とで構成されており、その計測値をセキュリティの解除キーとする。
【００２３】
メモリ用半導体装置２０には、さらに、固有値キーＰ１３が格納されている。固有値キーＰ１３は制御用半導体装置１０毎に、予め計測処理プログラムＰ１２を実行してその計測値に基づいて設定されており、解除キーと固有値キーが合致しない場合は、制御用半導体装置１０はメインプログラムＰ２の読出しができず、メインプログラムＰ２は起動されない。
【００２４】
図４は起動シーケンスを示すフローチャートである。図５は解除キーの作成方法を説明する図である。図６は種々のシステムコールの処理時間を示す図である。
【００２５】
メモリ用半導体装置２０からのプログラムの起動時のリセット処理（ステップＳ１）後に計測処理プログラムＰ１２を起動し、タスクの処理時間の計測を行う（ステップＳ２）。
【００２６】
計測処理プログラム（解除キー生成用のプログラム）Ｐ１２はタイマ等で処理時間をタスク毎に計測する。計測された時間を予め設定されている閾値（Ｔｈ）に照らし合わせて、例えば、図５に示すような解除キーを生成する。
【００２７】
第一タスク、第二タスク、第三タスク、第四タスク、第五タスク、第六タスク、第七タスクおよび第八タスクの８種類のタスクの処理時間を計測する。各タスクにはそれぞれ複数の異なるシステムコールが含まれているものとする。図５では、ソフトウェアによって実現されるリアルタイム・オペレーティング・システム（ソフトウェアＲＴＯＳ（ＳＷ−ＲＴＯＳ））による処理時間と、ハードウェアによって実現されるリアルタイム・オペレーティング・システム（ハードウェアＲＴＯＳ（ＨＷ−ＲＴＯＳ））による処理時間を示している。ソフトウェアＲＴＯＳとハードウェアＲＴＯＳではタスクの処理時間が異なる。詳細は後述する。
【００２８】
例えば、閾値（Ｔｈ）を３μｓに設定すると、第一タスクではソフトウェアＲＴＯＳ、ハードウェアＲＴＯＳ共にＴｈを下回るので解除キーとして共に１を生成する。第二タスクではソフトウェアＲＴＯＳはＴｈを上回るので解除キーとして０、ハードウェアＲＴＯＳはＴｈを下回るので解除キーとして１を生成する。同様に、第三タスク〜第八タスクの解除キーを生成する。その結果、ソフトウェアＲＴＯＳでは、１００００１００の８ビットの解除キーが生成され、ハードウェアＲＴＯＳでは、１１１１１１１１の８ビットの解除キーが生成される。
【００２９】
上述したように、各タスクにはそれぞれ複数のシステムコールが含まれている。図６に示すように、システムコールの種類によってシステムコールの処理時間は異なる。なお、／Ｄはディスパッチあることを示し、／Ｗｎはｎ個のタスクが対象処理を待っていることを示し、ｎが大きいほどソフトウェアＲＴＯＳとハードウェアＲＴＯＳのシステムコールの処理時間の差が大きい。したがって、処理時間の差が大きいシステムコールを多く含むタスクほど、ソフトウェアＲＴＯＳとハードウェアＲＴＯＳのタスクの処理時間の差異が多くでる。したがって、計測処理プログラムＰ１２には、ソフトウェアＲＴＯＳとハードウェアＲＴＯＳとでタスクの処理時間の差が大きくなるようなシステムコールを実行するプログラムを含むことが望ましい。
【００３０】
生成された解除キーと固有値キーが合致するかどうかが判断され（ステップＳ４）、ＹＥＳの場合、メインプログラムＰ２がメモリ用半導体装置２０から内部メモリ１５の命令メモリ１５１にロードされ、メインプログラムＰ２が起動する。ＮＯの場合は、メインプログラムＰ２はロードされず、ＣＰＵ１１は停止する。
【００３１】
図１２に示すように、メモリ用半導体装置２０の内容がコピーされた場合、ＣＰＵ１１とオブジェクト・コード・コンパチブルなＣＰＵ１１’を内蔵する別の制御用半導体装置１０Ｂで実行しようとしても、制御用半導体装置１０ＢがハードウェアＲＴＯＳを有していなければ、解除キーは固有値キーと異なるのでメインプロクラムを起動することができない。
【００３２】
ここで、システムコールについて説明する。システムコールとは各タスクが実行する命令のうち特別な命令である。システムコールにはタスクの実行権を切り換えるタスクスイッチが含まれる。タスクスイッチでは実行中のタスクのコンテキスト情報（タスク実行時においてＣＰＵのレジスタに格納されているデータやタスクの実行状態に関するデータ）のＴＣＢ（Task Control Block）への退避と次に実行されるタスクのコンテキスト情報のＴＣＢからのロードが行われる。ＴＣＢとは、タスク固有の情報を保持するために確保されるメモリ上の領域である。
【００３３】
ソフトウェアで実現されるＲＴＯＳであるソフトウェアＲＴＯＳでは、タスクスイッチが発生し、例えば次に実行されるタスクの選択を行うときには、メモリ上に形成され、各実行可能状態にあるタスクのＴＣＢをポインタによって連結したリストであるタスクレディリストを利用する。ソフトウェアＲＴＯＳすなわちＣＰＵは、このタスクレディリストを走査しながら、次に実行されるタスクを選択する。このとき、ＣＰＵは、（Ａ）実行状態にあるタスクを実行状態から実行可能状態に状態遷移させ、（Ｂ）次に実行されるタスクを選択し、そのタスクのタスク状態を実行可能状態から実行状態に状態遷移させる、という２段階の処理を行う。一方、ハードウェアＲＴＯＳはＣＰＵとは別個のハードウェアであり、後述するようにタスク・スケジューリング機能によって、ソフトウェアＲＴＯＳのようなメモリアクセスを行わないで上記処理を行う。よって、ソフトウェアＲＴＯＳとハードウェアＲＴＯＳのシステムコールの処理時間に差が生じる。
【００３４】
次に、ハードウェアＲＴＯＳについて図７〜１１を用いて説明する。図７はハードウェアＲＴＯＳを中心とした制御用半導体装置のブロック図である。図８はハードウェアＲＴＯＳとソフトウェアＲＴＯＳとの相違を示す図である。図９はハードウェアＲＴＯＳのタスク・スケジューリング機能を示すブロック図である。図１０はタスク・スケジューラを示すブロック図である。図１１はハードウェアＲＴＯＳとソフトウェアＲＴＯＳのタスク遷移を示す図である。
【００３５】
ハードウェアＲＴＯＳ（ＨＷ−ＲＴＯＳ）１２はハードウェアによるタスク・スケジューリング機能（タスク・スケジューラ（TASK SCHEDULER）１２１）を備え、外部より与えられるコマンドをシステムコール・レジスタ（SYSTEM CALL REGISTER：ＳＣＲ）１２２に書き込むことにより、ＯＳのシステムコール実行を開始する。また、ハードウェアＲＴＯＳ１２は、タイムアウト等に伴うタスク・チェンジ要求割り込み（TCIQ）をＣＰＵ１１に出力する。タスク（TASK）、イベント（EVENT）、セマフォ（SEMAPHORE）、メール・ボックス（MAIL BOX）等のＯＳリソース（OS RESOURCE）１２３はハードウェアＲＴＯＳ１２内に確保され、タスク・スケジューラ１２１に連動して情報が変化する。割り込み（IＮＴ）入力時に、自動でシステムコールを発行する機能（ハードウェアＩＳＲ（HARDWARE ISR）１２４）を搭載する。
【００３６】
ハードウェアＲＴＯＳ１２の制御はＣＰＵ１１が行う。その制御プログラムは、ＯＳライブラリ（OS LIBRARY）１５１１として命令メモリ（INSTRUCTION MEMORY）１５１に格納される。カレントタスク（CURRENT TASK）やタスク毎のスタック（STACK）情報はＣＰＵ１１の管理下でデータ・メモリ（DATA MEMORY）１５２に格納される。
【００３７】
ＯＳライブラリ（OS LIBRARY）１５１１は、ハードウェアＲＴＯＳ１２の制御ドライバ機能も兼ねたＯＳのソフトウェア・インタフェースである。ＯＳ処理の主要部をハードウェアＲＴＯＳ１２にて処理するため、ソフトウェア負担が軽減される。図８に示すように、ハードウェアＲＴＯＳ１２を有する制御用半導体装置１０では、ＯＳライブラリ（OS LIBRARY）１５１１は、アプリケーションが使用するＯＳリソースの確保、システムコール処理（ハードウェアＲＴＯＳ１２に対するシステムコール・コマンド発行、対応するＯＳのシステムコールとハードウェアＲＴＯＳ１２が持つシステムコールとの機能差分補間）、ディスパッチを行う。ハードウェアＲＴＯＳ１２はシステムコール処理（実処理）、タスク・スケジューリング、ＯＳリソース管理およびティック（Tick）処理を行う。なお、ソフトウェアＲＴＯＳのＯＳライブラリ（OS LIBRARY）は、ＯＳリソース確保、システムコール処理、ディスパッチ、タスク・スケジューリング、ＯＳリソース管理およびティック処理を行う。
【００３８】
例えば、図９に示すように、ハードウェアＲＴＯＳ１２では、μＩＴＲＯＮのシステムコールを実行するハードウェアが組み込まれている。プログラマはハードウェアＲＴＯＳ１２のシステムコール・レジスタ１２２に対してシステムコールの引数とシステムコール番号を入力するだけで、その結果を得ることができる。ハードウェアＲＴＯＳ１２へのアクセスは、ソフトウェア・ライブラリとして準備しているＯＳライブラリ（OS LIBRARY）１５１１にて行う。
【００３９】
プログラマは、これまでのＯＳ（μＩＴＲＯＮ）時と同じシステムコール記述で、ハードウェアＲＴＯＳ１２による高速化を図ることができる。ハードウェアＲＴＯＳ１２は、ＯＳライブラリ（OS LIBRARY）１５１１によってハードウェア依存部をラッピングすることで、見かけ上はソフトウェアＲＴＯＳとハードウェアＲＴＯＳ１２の違いはないようにしている。
【００４０】
上述したように、ハードウェアＲＴＯＳ１２では、 割り込み発生時に自動的にシステムコールを発生させるハードウェアＩＳＲ（HARDWARE ISR）１２４を有している。これにより、図１０に示すように、第一タスク（TASK1）から第二タスク（TASK2）に遷移する場合、割り込みタスク（INT TASK）への一時的な遷移が不要となり、スイッチ動作より、割り込みトリガによる高速タスク・スイッチが可能となる。なお、ソフトウェアＲＴＯＳでは、第一タスク（TASK1）から第二タスク（TASK2）に遷移する場合、割り込みタスク（INT TASK）への遷移が必要である。
【００４１】
ハードウェアＲＴＯＳは、割り込みからソフトウェアＲＴＯＳよりも高速にタスクを起動することができる。また、ソフトウェアＲＴＯＳよりも高速なシステムコールが実行でき、システムコール実行時間のバラツキは、ソフトウェアＲＴＯＳよりも少ない。さらに、ソフトウェアＲＴＯＳよりも高速に割り込みに応答することができる。
【００４２】
制御用半導体装置は、固有のシステムコールをハードウェアにて処理できる機能（ハードウェアＲＴＯＳ）を有しており、通常の半導体装置がソフトウェア（―ソフトウェアＲＴＯＳ）で処理している動作をハードウェアにて処理が行える。
【００４３】
タスク・スケジューラ１２１は、タスク切換回路（TASK SWITCHING CIRCUIT）１２１ａ、タスク選択回路（TASK SELECTING CIRCUIT）１２１ｂおよび状態記憶部（STATE STORAGE UNIT）１２１ｃを含む。状態記憶部１２１ｃは、タスクごとに対応づけるユニットである。各状態記憶部１２１ｃは、タスクの状態データを保持する。状態データとは、コンテキスト情報のうち、特に、タスク優先順位や状態など、タスクの属性を示す情報である。各状態記憶部１２１ｃからは、全タスクの全状態データがタスク選択回路１２１ｂに常時出力している。タスク選択回路１２１ｂは、各タスクの状態データに基づいて、次に実行されるタスクの選択等、各種タスク選択を行う回路である。タスク切換回路１２１ａはシステムコール・レジスタ１２２およびハードウェアＩＳＲ１２４からのシステムコール信号（ＳＣ）を受信する。
タスク切換回路１２１ａの実行選択回路（EXECUTION SELECTION CIRCUIT）１２１ｂａは、複数の実行可能状態にあるタスクの中から次に実行されるタスクを選択するポリシ（実行タスク選択条件）に基づいてより好適なタスクを選択する。ソフトウェアＲＴＯＳは、タスクレディリストにアクセスしながら次に実行されるタスクを選択しているが、実行選択回路１２１ｂａは、状態記憶部１２１ｃから常時出力される状態データにより次に実行されるタスクを選択している。
【００４４】
上述したように、ソフトウェアＲＴＯＳは、タスクスイッチに際して、タスクレディリストへのアクセス等によりＣＰＵの処理時間を多く消費する。これに対し、本実施例におけるハードウェアＲＴＯＳ１２のタスク・スケジューラ１２１は、僅かな時間でタスクスイッチを完了させることができる。状態記憶部１２１ｃは常時状態データを実行選択回路１２１ｂａに出力しているため、実行選択回路１２１ｂａは常時いずれかのタスクのタスクＩＤを出力している。タスクスイッチが発生してから実行状態にあるタスクの選択処理を開始するのではなく、タスクスイッチが発生したときの実行選択回路１２１ｂａの出力により実行状態にあるタスクの選択を行う点もタスクスイッチの高速化に寄与している。これにより、タスクスイッチ、すなわち、システムコールが高速に行うことが可能である。よって、ソフトウェアＲＴＯＳとハードウェアＲＴＯＳではシステムコールによっては処理時間の差が顕著になる。
【００４５】
ハードウェアＲＴＯＳでは、システムコール実行時間のバラツキは、ソフトウェアＲＴＯＳよりも少ないので、計測処理の閾値の設定を上限と下限を設け、所望の範囲内に計測値が入っていることで、解除キー生成用の判定に用いてもよい。閾値の設定を上限と下限を設けることによって、ハードウェアＲＴＯＳを搭載した制御用半導体装置であっても、動作周波数の異なる（例えば、該当制御用半導体装置よりも高い動作周波数の）半導体装置の判別が可能となる。
【００４６】
また、計測処理の閾値の設定を各システムコールの偏差として設け、所望の範囲内に計測値が入っていることで、解除キー生成用の判定に用いてもよい。
【００４７】
プログラムの暗号化等を行う場合は、復号等を行う特別なセキュリティＩＰを追加する必要があったが、本実施例では、特別なセキュリティの仕組みを追加することなくすることなく、固有の機能とプログラムによってプログラムのコピーのリスクを低減することができる。
【００４８】
以上、本発明者によってなされた発明を実施形態および実施例に基づき具体的に説明したが、本発明は、上記実施形態および実施例に限定されるものではなく、種々変更可能であることはいうまでもない。
【符号の説明】
【００４９】
１  ネットワーク制御装置
１０  制御用半導体装置
１１  ＣＰＵ
１２  リアルタイム・オペレーティング・システム・アクセラレータ（ＨＷ−ＲＴＯＳ）
１２１  タスク・スケジューラ
１２２  システムコール・レジスタ（ＳＣＲ）
１２３  ＯＳリソース
１２４  ハードウェアＩＳＲ
１５  内部メモリ
１５１  命令メモリ
１５１１  ＯＳライブラリ
１５２  データ・メモリ
２０  メモリ用半導体装置
【図１】
2019101772.tif 000003
【図２】
2019101772.tif 000004
【図３】
2019101772.tif 000005
【図４】
2019101772.tif 000006
【図５】
2019101772.tif 000007
【図６】
2019101772.tif 000008
【図７】
2019101772.tif 000009
【図８】
2019101772.tif 000010
【図９】
2019101772.tif 000011
【図１０】
2019101772.tif 000012
【図１１】
2019101772.tif 000013
【図１２】
2019101772.tif 000014
【図１３】
2019101772.tif 000015