(57)【要約】  ソフトウェアを実行する実行装置と、実行装置に結合されたソフトウェア記憶装置とを備えたライセンス管理方法は、ソフトウェアのライセンスを許諾するライセンス数を示すライセンス情報を記憶するライセンス記憶装置を備え、ライセンスの許諾が要求されるソフトウェアをダウンロードするとき、ライセンス記憶部に格納されているライセンス情報に基づいて、ダウンロードするソフトウェアの前記ソフトウェア記憶装置への格納または実行装置による実行を制御するライセンス管理工程を備える。
2017033310.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアを実行する実行装置と、前記実行装置に結合されたソフトウェア記憶装置とを備えたライセンス管理方法であって、
前記ライセンス管理方法は、
ソフトウェアのライセンスを許諾するライセンス数を示すライセンス情報を記憶するライセンス記憶装置を備え、
ライセンスの許諾が要求されるソフトウェアをダウンロードするとき、前記ライセンス記憶装置に格納されているライセンス情報に基づいて、ダウンロードするソフトウェアの前記ソフトウェア記憶装置への格納または前記実行装置による実行を制御するライセンス管理工程
を備える、ライセンス管理方法。
【請求項２】
請求項１に記載のライセンス管理方法において、
前記ライセンス管理方法は、
前記ライセンス管理工程よりも前であって、前記ライセンス記憶装置に、前記ライセンス情報を記憶させる記憶工程
を備える、ライセンス管理方法。
【請求項３】
請求項２に記載のライセンス管理方法において、
前記記憶工程において、複数のソフトウェアのライセンスを許諾するライセンス数を示すライセンス情報が、前記ライセンス記憶装置に記憶され、
前記ソフトウェア記憶装置に記憶されたライセンス情報によって示されるライセンス数が、前記ライセンス管理工程において減算される、
ライセンス管理方法。
【請求項４】
ソフトウェアを実行する実行ユニットと、
前記実行ユニットに結合されたソフトウェア記憶ユニットと、
ライセンス情報を格納するライセンス記憶ユニットと、
ライセンスの許諾が要求されるソフトウェアの前記ソフトウェア記憶ユニットへの格納または前記実行ユニットによる実行を、前記ライセンス情報に基づいて制御するライセンス管理ユニットと、
を備える、ライセンス管理に適した半導体装置。
【請求項５】
請求項４に記載のライセンス管理に適した半導体装置において、
前記ライセンス情報は、ソフトウェアのライセンス数を示す情報であり、
前記ライセンス管理ユニットは、前記ライセンス情報によって示されるライセンス数まで、ライセンスの許諾が要求されるソフトウェアを、前記ソフトウェア記憶ユニットへ格納または前記実行ユニットによって実行することを許可する、ライセンス管理に適した半導体装置。
【請求項６】
請求項５に記載のライセンス管理に適した半導体装置において、
前記ライセンス管理ユニットは、ライセンスの許諾が要求されるソフトウェアを、前記ソフトウェア記憶ユニットに格納したとき、前記ライセンス情報によって示されるライセンス数の数を減少させる、ライセンス管理に適した半導体装置。
【請求項７】
請求項６に記載のライセンス管理に適した半導体装置において、
ライセンスの許諾が要求されるソフトウェアがアンインストールされたとき、前記ライセンス管理ユニットは、前記ライセンス情報によって示されるライセンス数の数を増加させる、ライセンス管理に適した半導体装置。
【請求項８】
請求項６に記載のライセンス管理に適した半導体装置において、
ライセンスの許諾が要求されるソフトウェアがアンインストールされたとき、前記ライセンス管理ユニットは、前記ライセンス情報によって示されるライセンス数の数を維持する、ライセンス管理に適した半導体装置。
【請求項９】
請求項６に記載のライセンス管理に適した半導体装置において、
前記ライセンスの許諾が要求されるソフトウェアは、ライセンスの許諾が要求されることを示す属性情報を備え、
前記ライセンス管理ユニットは、ソフトウェアが備える属性情報に基づいて、ライセンスの許諾が要求されるソフトウェアか否かを判定する、ライセンス管理に適した半導体装置。
【請求項１０】
請求項６に記載のライセンス管理に適した半導体装置において、
前記ライセンス記憶ユニットは、インストールしたソフトウェアの履歴情報を格納し、前記ライセンス管理ユニットは、前記履歴情報と一致するソフトウェアの再インストールのとき、前記ライセンス情報によって示されるライセンス数の数を維持する、ライセンス管理に適した半導体装置。
【請求項１１】
請求項５に記載のライセンス管理に適した半導体装置において、
前記ライセンス情報は、前記ソフトウェア記憶ユニットにおける領域のうち、ライセンス数に相当する記憶容量を示す情報である、ライセンス管理に適した半導体装置。
【請求項１２】
請求項５に記載のライセンス管理に適した半導体装置において、
前記ライセンス情報は、ライセンス数に相当するポイントを示す情報である、ライセンス管理に適した半導体装置。
【請求項１３】
請求項４に記載のライセンス管理に適した半導体装置において、
前記ライセンス管理ユニットは、前記実行ユニットによって実行されるライセンスの許諾が要求されるソフトウェアの起動回数が、所定の実行回数を超えたとき、前記ソフトウェアの起動を禁止する、ライセンス管理に適した半導体装置。
【請求項１４】
請求項４に記載のライセンス管理に適した半導体装置において、
前記実行ユニット、前記ソフトウェア記憶ユニットおよび前記ライセンス管理ユニットは、１個の半導体チップに形成されている、ライセンス管理に適した半導体装置。
【請求項１５】
請求項６に記載のライセンス管理に適した半導体装置において、
前記半導体装置は、前記ライセンス記憶ユニットに、予め定められたライセンス情報が記憶されて、提供される、ライセンス管理に適した半導体装置。
【請求項１６】
ソフトウェアを実行する実行部と、
前記実行部に結合されたソフトウェア記憶部と、
ライセンス情報を格納するライセンス記憶部と、
ライセンスの許諾が要求されるソフトウェアの前記ソフトウェア記憶部への格納を、前記ライセンス情報に基づいて制御するライセンス管理部と、
を備え、
ソフトウェアを提供する提供装置から、ライセンスの許諾が要求されるソフトウェアの提供を受けるとき、前記ライセンス管理部が、前記ライセンス情報に基づいて、前記ソフトウェア記憶部への前記ソフトウェアの格納を制御する、ライセンス管理システム。
【請求項１７】
請求項１６に記載のライセンス管理システムにおいて、
前記ライセンス情報は、ライセンスの許諾が要求されるソフトウェアを、前記ソフトウェア記憶部に格納することが可能なライセンス数を示す情報であり、
前記ライセンス管理部は、前記ライセンス情報によって示されるライセンス数まで、ライセンスの許諾が要求されるソフトウェアを、前記ソフトウェア記憶部へ格納する、ライセンス管理システム。
【請求項１８】
請求項１７に記載のライセンス管理システムにおいて、
前記ライセンス管理部は、ライセンスの許諾が要求されるソフトウェアを、前記ソフトウェア記憶部に格納したとき、前記ライセンス情報によって示されるライセンス数の数を減少させる、ライセンス管理システム。
【請求項１９】
請求項１８に記載のライセンス管理システムにおいて、
ライセンスの許諾が要求されるソフトウェアがアンインストールされたとき、前記ライセンス管理部は、前記ライセンス情報によって示されるライセンス数の数を増加させる、ライセンス管理システム。
【請求項２０】
請求項１８に記載のライセンス管理システムにおいて、
ライセンスの許諾が要求されるソフトウェアがアンインストールされたとき、前記ライセンス管理部は、前記ライセンス情報によって示されるライセンス数の数を維持する、ライセンス管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ライセンス管理方法、ライセンス管理に適した半導体装置およびライセンス管理システムに関し、特にソフトウェアのライセンス管理に関する。
【背景技術】
【０００２】
ソフトウェアを実行する半導体装置として、例えばマイクロプロセッサがある。この場合、マイクロプロセッサは、ソフトウェアを記憶する記憶部とソフトウェアを実行するプロセッサを備えている。また、ソフトウェアを実行するプロセッサを用いた電子装置として、パーソナルコンピューター、スマートフォン、テレビ、カメラ等の種々の電子装置が知られている。このような、半導体装置および電子装置に、所望の動作をさせるために、種々のソフトウェアが存在する。ソフトウェアは、大別すると、使用するためにライセンスの許諾を取得することが要求されるソフトウェア（以下、有償ソフトウェアとも称する）と、ライセンスの許諾を必要としないソフトウェア（以下、無償ソフトウェアとも称する）が存在する。ライセンスの許諾を要求する有償ソフトウェアについては、ライセンスの対価であるライセンス料金を支払うことにより、その使用が認められることになる。【０００３】
ライセンスの許諾を要求する有償ソフトウェアを配信する場合、ライセンスの管理を行うことが必要となる。例えば特許文献１には、ネットワークへの負担を軽減するとともに、ライセンスを簡易に管理することが可能な技術が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２１８３９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ライセンスの許諾を要求するソフトウェア（有償ソフトウェア）を配信する場合、ライセンス料金の回収が伴うため、有料配信となる。この場合、有償ソフトウェアのダウンロードおよび課金管理を確実に行うことが要求される。また、有償ソフトウェアをダウンロードする際のユーザの手間を低減することが望まれる。【０００６】
本発明者らは、本発明に先だって、有償ソフトウェアを配信する場合に、ライセンス料金を回収するシステム（以下、ライセンス料金回収システムとも称する）を検討した。以下、本発明者らが検討した３種類のライセンス料金回収システムについて述べる。【０００７】
第１のライセンス料金回収システムでは、有償ソフトウェア毎にインストール可能なライセンス数を対応付ける。この場合、有償ソフトウェアを配信するソフトウェア配信元では、有償ソフトウェアをインストールするユーザにおいて、インストールされる装置（半導体装置、電子装置）毎に、いくつの有償ソフトウェアがインストールされているかを管理することが困難になる。そのため、装置に対する有償ソフトウェアのライセンス管理およびライセンス料金の回収が困難になり、ライセンス料金の回収漏れが発生することが危惧される。また、ユーザにおいては、予め多くのライセンス数を購入するか、あるいは装置の製造数に応じたライセンス料金を支払うことになる。そのため、ユーザからすれば、ライセンス数が余れば、無駄な費用が発生することになる。また、製造数に応じてライセンス料金を支払う場合には、煩雑な処理が発生することになる。【０００８】
第２のライセンス料金回収システムでは、ソフトウェア配信元が、ライセンス数とは無関係に一定の金額をライセンス料金として徴収する。この場合には、有償ソフトウェアをインストールする数が少ないユーザにとっては、割高となってしまう。【０００９】
第３のライセンス料金回収システムでは、ユーザが、有償ソフトウェアをインストールした装置の数等を管理するライセンス管理装置を導入し、インストール数をソフトウェア配信元に申告するとともに、インストール数に応じたライセンス料金を支払う。この場合には、特にユーザが、大量の装置を量産する場合、ライセンス管理装置の負担が大きくなる。そのため、ライセンス管理装置として、高速動作の装置が要求とされ、高価となる。また、高速のライセンス管理装置を導入したとしても、装置を量産する数が増えると、ライセンスの管理によって、生産する数が制限され、生産効率が低下することが危惧される。さらに、第３のライセンス料金回収システムでは、ソフトウェア配信元が、ユーザが導入したライセンス管理装置が適正に運用されているかを監視する必要があり、ソフトウェア配信元にも負担が発生する。【００１０】
特許文献１においても、課金菅理を確実に実施し、ユーザの負担を低減することが可能な技術は、示されていない。【００１１】
そのほかの課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１２】
本明細書には、解決するための手段が複数開示されている。ここでは、代表的な解決手段についてのみ述べる。【００１３】
ソフトウェアを実行する実行装置と、実行装置に結合されたソフトウェア記憶装置とを備えたライセンス管理方法は、ソフトウェアのライセンスを許諾するライセンス数を示すライセンス情報を記憶するライセンス記憶装置を備え、ライセンスの許諾が要求されるソフトウェアをダウンロードするとき、ライセンス記憶部に格納されているライセンス情報に基づいて、ダウンロードするソフトウェアのソフトウェア記憶装置への格納または実行装置による実行を制御するライセンス管理工程を備える。【００１４】
ライセンス記憶装置に記憶されたライセンス情報に基づいて、ライセンスの許諾が要求されるソフトウェアのソフトウェア記憶装置への格納または実行装置による実行が制御されることになるため、ソフトウェア配信元およびユーザにおけるライセンス管理の負担を低減することが可能となる。
【発明の効果】
【００１５】
一実施の形態によれば、ライセンス管理の負担を低減することが可能なライセンス管理方法を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】実施の形態１に係わる電子装置の構成を示すブロック図である。
【図２】実施の形態１に係わる半導体装置の構成を示すブロック図である。
【図３】実施の形態１に係わるライセンス管理ユニットの動作を示すフローチャート図である。
【図４】実施の形態１に係わるライセンス管理ユニットのアンインストールの動作を示すフローチャート図である。
【図５】実施の形態１に係わるライセンス管理ユニットの他のアンインストールの動作を示すフローチャート図である。
【図６】実施の形態２に係わる電子装置の構成を示すブロック図である。
【図７】実施の形態２に係わるライセンス管理部の動作を示すフローチャート図である。
【図８】開発用プロセッサと量産用プロセッサの関係を示す図である。
【図９】実施の形態３に係わるライセンス管理ユニットの動作を示すフローチャート図である。
【図１０】実施の形態４に係わるマイクロプロセッサの動作を示すフローチャート図である。
【図１１】実施の形態３と実施の形態４とを組み合わせた状態を説明する説明図である。
【図１２】実施の形態５に係わる半導体装置の構成を示すブロック図である。
【図１３】実施の形態５に係わるソフトウェア記憶ユニットのアドレス空間を示す説明図である。
【図１４】実施の形態５に係わるマイクロプロセッサの容量比率を示した説明図である。
【図１５】実施の形態５に係わるライセンス管理ユニットの動作を示すフローチャート図である。
【図１６】実施の形態５に係わるソフトウェア記憶ユニットをハードウェアによって制御する場合の構成を示すブロック図である。
【図１７】実施の形態５に係わるソフトウェア記憶ユニットをハードウェアによって制御する場合の他の構成を示すブロック図である。
【図１８】実施の形態６に係わるライセンス管理ユニットの動作を示すフローチャート図である。
【図１９】実施の形態６に係わるＤＬアプリの実行を、ハードウェアによって制御する場合の構成を示すブロック図である。
【図２０】実施の形態６に係わるＤＬアプリの実行を、ハードウェアによって制御する場合の他の構成を示すブロック図である。
【図２１】実施の形態７に係わるマイクロプロセッサの動作を示す概念図である。
【図２２】実施の形態８に係わるマイクロプロセッサの動作を示す概念図である。
【図２３】ソフトウェアの構成を示す図である。
【図２４】実施の形態９に係わるライセンス料金回収システムの構成を示すシステム図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部分には原則として同一の符号を付し、その繰り返しの説明は、原則省略する。
【００１８】
（実施の形態１）
＜電子装置＞
図１は、実施の形態１に係わる電子装置の構成を示すブロック図である。図１において、１０００は、電子装置を示している。電子装置１０００は、例えばパーソナルコンピューター、スマートフォン、プリンタ、複合機、テレビ、カメラ等の情報家電である。これらの電子装置１０００には、プロセッサ１００１が搭載されており、プロセッサ１００１は、ソフトウェアを実行することにより、所定の機能を達成する。図１において、１００２は、プロセッサ１００１に結合され、プロセッサ１００１によって実行されるソフトウェアを格納するソフトウェア（以下、ＳＷとも称する）記憶部を示している。プログラムを実行すると言う観点で見た場合、プロセッサ１００１は、実行部と見なすことができる。
【００１９】
図１において、１００３は、ライセンス情報を格納するライセンス記憶部を示しており、１００４は、ライセンス管理部を示している。また、１００５は、電子装置１０００の外部に配置されたソフトウェア提供装置を示している。図１は、ライセンス管理システムを示していると見なすことができる。この場合、ライセンス管理の対象となる有償ソフトウェアは、ソフトウェア提供装置１００５から、電子装置１０００へ提供されることになる。
【００２０】
電子装置１０００は、上記したプロセッサ１００１、ソフトウェア記憶部１００２、ライセンス記憶部１００３およびライセンス管理部１００４以外に、それぞれの電子装置に応じた複数の部分を備えている。例えば、スマートフォンであれば、通信に関する送受信部等を備えており、カメラであれば、オートフォーカス用の制御部等を備えている。しかしながら、図１においては、図面が複雑になるのを避けるために、上記したプロセッサ１００１、ソフトウェア記憶部１００２、ライセンス記憶部１００３およびライセンス管理部１００４以外の部分は省略されている。
【００２１】
ソフトウェア提供装置１００５は、ソフトウェアを提供するソフトウェア配信元に設置され、インターネット等の通信回線を介して電子装置１００１に接続され、通信回線を介して、有償ソフトウェアおよび／または無償ソフトウェアを、電子装置１００１を所有するユーザに提供する。
【００２２】
また、ソフトウェア提供装置１００５は、例えば光デイスク再生装置と光デイスクのような記憶媒体とによって構成してもよい。この場合、光デイスク再生装置は、例えば、電子装置１０００を所有するユーザ側に設置され、ケーブルによって電子装置１０００に接続されることになる。また、光デイスクには、例えば複数の有償ソフトウェアと無償ソフトウェアが格納されている。光デイスク再生装置によって、記憶媒体である光デイスクを再生することにより、光デイスク再生装置から、電子装置１０００へ、有償ソフトウェアおよび／または無償ソフトウェアが提供されることになる。
【００２３】
ライセンス記憶部１００３には、予めライセンス情報が記憶されている。例えば、ユーザが電子装置１０００を購入する際に、所定のライセンス料金を含めて、電子装置１０００の販売価格として、電子装置１０００の販売者（製造者）へ支払う。すなわち、このときの販売価格は、電子装置１０００自体のハードウェアの価格と所定のライセンス料金とを含んでいることになる。この場合、電子装置１０００の販売者が、上記した所定のライセンス料金に応じたライセンス情報を、ライセンス記憶部１００３に格納して、ユーザへ提供する。勿論、販売者が、互いに異なるライセンス情報を予め格納したライセンス記憶部１００３を搭載した複数種類の電子装置１０００を用意しておき、ユーザが選択して、購入するようにしてもよい。この場合、ライセンス情報が異なるため、電子装置毎にライセンス料金も異なることになる。
【００２４】
ライセンス管理部１００４は、ユーザが、ソフトウェア提供装置１００５から、ソフトウェア記憶部１００２へ、ソフトウェアをダウンロードする際に、機能する。すなわち、ライセンス管理部１００４は、ユーザからのダウンロードの要求に対して、ソフトウェア提供装置１００５から提供されたソフトウェアが、有償ソフトウェア（ライセンスの許諾が要求されるライセンス許諾のソフトウェア）であるか、無償ソフトウェア（ライセンスの許諾が要求されないソフトウェア）であるかを判定する。判定の結果、無償ソフトウェアであった場合、ソフトウェア提供装置１００５から提供されたソフトウェアを、ソフトウェア記憶部１００２へ格納する。ソフトウェア記憶部１００２に格納された無償ソフトウェアは、実行部１００１によって実行され、この無償ソフトウェアによって規定されている動作が実施される。
【００２５】
これに対して、有償ソフトウェアであると、ライセンス管理部１００４が判定した場合、ライセンス管理部１００４は、ライセンス記憶部１００３からライセンス情報を読み出し、読み出したライセンス情報に基づいて、提供された有償ソフトウェアをソフトウェア記憶部１００２に格納するか否かを制御する。
【００２６】
ライセンス記憶部１００３には、前記したように、予めライセンス料金に応じたライセンス情報が格納されている。この実施の形態１においては、ライセンス料金に応じた数が、ライセンス情報として用いられている。ライセンス管理部１００４は、読み出したライセンス情報によって示されている数が、例えば１以上であれば、提供された有償ソフトウェアを、ソフトウェア記憶部１００２へ格納する。また、ライセンス管理部１００４は、有償ソフトウェアを、ソフトウェア記憶部１００２へ格納した場合、ライセンス情報によって示されている数を、例えば１減算し、減算によって得られた数をライセンス情報として、ライセンス記憶部１００３へ格納する。ソフトウェア記憶部１００２に格納された有償ソフトウェアは、実行部１００１によって実行が可能となる。
【００２７】
これに対して、ライセンス情報によって示されている数が、０であれば、ライセンス管理部１００４は、提供された有償ソフトウェアを、ソフトウェア記憶部１００２へ格納しない。これにより、予め支払われていたライセンス料金が、不足している場合には、有償ソフトウェアの実行が禁止されることになる。見方を変えると、対価の支払いなしに、不正に有償ソフトウェアが実行されるのを防ぐことが可能となり、ソフトウェア配信元がライセンス料金の回収漏れを防ぐことが可能となる。
【００２８】
ライセンス記憶部１００３は、販売者がライセンス情報を格納したあとは、ライセンス管理部１００４によってのみ、変更が可能にされる。図１では、特に制限されないが、ライセンス管理部１００４は、プロセッサ１００１とは異なるプロセッサによって構成されている。この場合、ライセンス管理部１００４の機能は、ライセンス管理部１００４を構成するプロセッサによって実行されるソフトウェアにより実現されることになる。勿論、プロセッサ１００１が、実行部の機能とライセンス管理部１００４の機能の両方を実現するようにしてもよい。
【００２９】
＜半導体装置＞
図２は、実施の形態１に係わる半導体装置の構成を示すブロック図である。同図には、半導体装置１１００としてマイクロプロセッサ（以下、マイクロプロセッサ１１００とも記載する）が示されている。マイクロプロセッサ１１００は、ソフトウェアを実行するプロセッサ（中央処理装置、以下実行ユニットとも称する）１１０１、ソフトウェア記憶ユニット１１０２、ライセンス記憶ユニット１１０３、ライセンス管理ユニット１１０４を備えている。図面が複雑になるのを避けるために、図２では省略されているが、マイクロプロセッサ１１００は、上記したプロセッサ（実行ユニット）１１０１、ソフトウェア記憶ユニット１１０２、ライセンス記憶ユニット１１０３およびライセンス管理ユニット１１０４以外の回路ユニットも備えている。例えば、上記したユニット以外に、マイクロプロセッサ１１００の外部との間で信号の送受信を行う周辺回路ユニットを、マイクロプロセッサ１１００は備えている。
【００３０】
上記したそれぞれのユニットは、特に制限されないが、周知の半導体製造技術によって、１個の半導体チップに形成され、１個のパッケージに封止されている。このマイクロプロセッサ１１００を、販売者（製造者）が、ユーザへ提供（販売）する際には、パッケージに封止された状態で、販売されることになる。勿論、パッケージに封止せずに、半導体チップを単位として販売するようにしてもよい。
【００３１】
ソフトウェア記憶ユニット１１０２は、実行ユニット１１０１に結合されており、ソフトウェアを格納する。実行ユニット１１０１は、ソフトウェア記憶ユニット１１０２からソフトウェアを読み出し、読み出したソフトウェアを実行する。実行ユニット１１０１がソフトウェアを実行することにより、マイクロプロセッサ１１００は、ソフトウェアによって規定された所定の動作を実行することになる。
【００３２】
ライセンス記憶ユニット１１０３は、図１に示したライセンス記憶部１００３と同様に、ライセンス情報が、予め格納される。すなわち、マイクロプロセッサ１１００を、販売者（製造者）からユーザに提供する前に、販売者がライセンス記憶ユニット１１０３へライセンス情報を格納する。図１で説明したのと同様に、ユーザは、マイクロプロセッサ１１００を購入する際、所定のライセンス料金を含めて、マイクロプロセッサ１１００の販売代金を、販売者へ支払う。そのため、このときの販売代金は、マイクロプロセッサ１１００自体のハードウェア価格と、所定のライセンス料金とを含んでいることになる。マイクロプロセッサ１１００の販売者は、上記した所定のライセンス料金に応じたライセンス情報を、ライセンス記憶ユニット１１０３へ格納して、ユーザへ提供する。
【００３３】
ライセンス管理ユニット１１０４は、図１に示したライセンス管理部１００４と同様に、ライセンス記憶ユニット１１０３からのライセンス情報に基づいて、マイクロプロセッサ１１００の外部から提供されるソフトウェアを、ソフトウェア記憶ユニット１１０２へ格納するか否かの制御を実施する。マイクロプロセッサ１１００の外部から提供されたソフトウェアが、有償ソフトウェアであるか、無償ソフトウェアであるかを判定する。判定の結果、提供されているソフトウェアが、無償ソフトウェアであった場合、ライセンス管理部１００４（図１）と同様に、ライセンス管理ユニット１１０４は、提供された無償ソフトウェアを、ソフトウェア記憶ユニット１１０２に格納する。この場合、実行ユニット１１０１は、ソフトウェア記憶ユニット１１０２から、無償ソフトウェアを読み出して、実行する。
【００３４】
これに対して、提供されたソフトウェアが、有償ソフトウェアであると判定した場合、ライセンス管理ユニット１１０４は、ライセンス記憶ユニット１１０３からライセンス情報を読み出し、読み出したライセンス情報に基づいて、提供された有償ソフトウェアをソフトウェア記憶ユニット１１０２に格納するか否かを制御する。
【００３５】
ここでも、ライセンス料金に応じた数が、ライセンス情報によって示されるものとして説明する。ライセンス管理ユニット１００４は、読み出したライセンス情報によって示されている数が、例えば１以上であれば、提供された有償ソフトウェアを、ソフトウェア記憶ユニット１１０２へ格納する。また、ライセンス管理ユニット１１０４は、有償ソフトウェアをソフトウェア記憶ユニット１１０２へ格納した場合、ライセンス情報によって示されている数を、例えば１減算し、減算によって得られた数をライセンス情報として、ライセンス記憶ユニット１１０３へ格納する。ソフトウェア記憶ユニット１１０２に格納された有償ソフトウェアは、実行ユニット１１０１によって実行が可能となる。
【００３６】
これに対して、ライセンス情報によって示されている数が、０であれば、ライセンス管理ユニット１１０４は、提供された有償ソフトウェアを、ソフトウェア記憶ユニット１１０２へ格納しない。これにより、予め支払われていたライセンス料金が、不足している場合には、有償ソフトウェアの実行が禁止されることになる。見方を変えると、対価の支払いなしに、不正に有償ソフトウェアが実行されるのを防ぐことが可能となり、ソフトウェア配信元がライセンス料金の回収漏れを防ぐことが可能となる。
【００３７】
図２では、マイクロプロセッサ１１０１に含まれているソフトウェア記憶ユニット１１０２が、特に制限されないが、電気的に書換え可能な不揮発性メモリであるフラッシュメモリによって構成されている。そのため、マイクロプロセッサ１１００へソフトウェアを提供するソフトウェア提供装置としては、フラッシュライタ１１０５が用いられている。勿論、ソフトウェア提供装置は、フラッシュライタ１１０５に限定されない。例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ、ＳＤメモリカード等の記憶媒体であってもよい。また、図１で述べた光デイスク再生装置と光デイスクとを用いたソフトウェア提供装置であってもよい。いずれの場合であっても、ソフトウェア提供装置は、有償ソフトウェアおよび／または無償ソフトウェアを格納しており、マイクロプロセッサ１１００へ、ソフトウェアを提供する。さらに、図１で述べたように、通信回線を介して、マイクロプロセッサ１１００へ、ソフトウェアを提供するようにしてもよい。
【００３８】
また、図２に示したライセンス記憶ユニット１１０３もフラッシュメモリによって構成されている。ソフトウェア記憶ユニット１１０２およびライセンス記憶ユニット１１０３は、フラッシュメモリにより構成されている例を示しているが、これに限定されるものではなく、スタテック型メモリ等の揮発性メモリであってもよい。ただし、ライセンス記憶ユニット１１０３を揮発性メモリで構成する場合、電源電圧が供給されていないときでも、ライセンス情報が保持されるようにバッテリ等によりバックアップが行われる。
【００３９】
ライセンス記憶ユニット１１０３は、販売者（製造者）がライセンス情報を格納したあとは、ライセンス管理ユニット１１０４によってのみ、変更が可能にされる。図２では、特に制限されないが、ライセンス管理ユニット１１０４は、実行ユニット１１０１とは異なる実行ユニットによって構成されている。この場合、ライセンス管理ユニット１１０４の機能は、ライセンス管理ユニット１１０４を構成する実行ユニットによって実行されるソフトウェアにより実現されることになる。勿論、実行ユニット１００１が、実行ユニットの機能とライセンス管理ユニット１１０４の機能の両方を実現するようにしてもよい。
【００４０】
実施の形態１に係わる電子装置１０００および半導体装置１１００について、外部から提供された有償ソフトウェアを、ソフトウェア記憶部１００２および１１０２に格納する場合を、図１および図２を用いて説明した。すなわち、提供された有償ソフトウェアを、ソフトウェア記憶部１００２（記憶ユニット１１０２）へダウンロードする場合を説明した。ダウンロードによって、ソフトウェア記憶部１００２（記憶ユニット１１０２）に格納されたソフトウェアは、実行部１００１（実行ユニット１１０１）によって実行可能となる。そのため、本明細書において、ダウンロードとは、ソフトウェア記憶部１００２（記憶ユニット１１０２）へソフトウェアを格納することを意味するだけでなく、広義では、ソフトウェアを実行可能にすることも意味している。
【００４１】
また、インストールとは、ソフトウェアが、実行部１００１（実行ユニット１１００）によって実行可能にすることを意味している。インストールに対向する用語として、アンインストールがある。アンインストールは、ソフトウェアが、実行部１００１（実行ユニット１１００）によって実行することが不可能となるようにすることを意味している。
【００４２】
有償ソフトウェアが提供（ダウンロード）される毎に、ライセンス管理部１００４（ライセンス管理ユニット１１０４）は、上記したように、ライセンス情報を減算し、ライセンス記憶部１００３（ライセンス記憶ユニット１１０３）に格納されているライセンス情報を更新する。すなわち、有償ソフトウェアをダウンロードする毎に、予め支払われているライセンス料金が減り、予め支払われたライセンス料金を使い切ると、有償ソフトウェアのダウンロードが禁止されることになる。
【００４３】
ダウンロードした有償ソフトウェアを、実行不可能にする場合、すなわちアンインストールする場合、あとで詳しく説明するが、ライセンス管理部１００４（ライセンス管理ユニット１１０４）は、ライセンス情報を変更してもよいし、更新しなくてもよい。
【００４４】
＜ライセンス管理ユニット１１０４の動作＞
図３は、実施の形態１に係わるライセンス管理ユニット１１０４の動作を示すフローチャート図である。
【００４５】
先ず、ユーザから、ソフトウェアをインストールする指示が、ステップＳ００において、ライセンス管理ユニット１１０４に与えられる。このとき、ユーザは、インストールするソフトウェアを指定する。
【００４６】
ユーザの指定したソフトウェアが、有償ソフトウェアの場合、ライセンス管理ユニット１１０４は、ステップＳ０１において、ライセンス記憶ユニット１１０３からライセンス情報を読み出す。この実施の形態１においては、ライセンス料金に応じた数が、ライセンス情報として用いられている。言い換えると、ライセンス情報は、有償ソフトウェア（ＳＷ）のインストール可能数を示している。ステップＳ０２において、ライセンス管理ユニット１１０４は、ライセンス情報によって示されている有償ソフトウェアインストール可能数（図では、ＳＷインストール可能数と記載）が、１以上か否かの判定を行う。有償ソフトウェアインストール可能数が、１未満（例えば０）であると判定すると、ライセンス管理ユニット１１０４は、ステップＳ０８を実行する。ステップＳ０８において、ライセンス管理ユニット１１０４は、例えばインストールが失敗した旨を、ユーザに知らせる。
【００４７】
一方、ステップＳ０２において、ライセンス管理ユニット１１０４が、有償ソフトウェアインストール可能数が、１以上であると判定すると、ライセンス管理ユニット１１０４は、次にステップＳ０３を実行する。ステップＳ０３において、ユーザが指定したソフトウェアを、フラッシュライタ１１０５から受け取る。受け取ったソフトウェアを、ライセンス管理ユニット１１０４は、ステップＳ０４において、ソフトウェア記憶ユニット（フラッシュメモリ）１１０２へ供給し、ソフトウェア記憶ユニット１１０２へ書き込む（格納する）。
【００４８】
次に、ステップＳ０５において、ライセンス管理ユニット１１０４は、有償ソフトウェアインストール可能数を１減算し、減算した有償ソフトウェアインストール可能数をライセンス情報として更新する。その後で、ライセンス管理ユニット１１０４は、更新したライセンス情報を、ライセンス記憶ユニット１１０３へ供給し、書き込む（格納する）。これにより、ライセンス記憶ユニット１１０３に格納されているライセンス情報が更新されることになる。
【００４９】
最後に、ステップＳ０７において、ライセンス管理ユニット１１０４は、インストールが成功した旨を、ユーザに知らせる。
【００５０】
有償ソフトウェアを、マイクロプロセッサ１１００へインストールする毎に、上記したステップＳ００〜Ｓ０７を繰り返す。繰り返すことにより、ライセンス情報によって示される有償ソフトウェアインストール可能数は、減算され、１未満（例えば０）に到達する。有償ソフトウェアインストール可能数が、１未満になると、ライセンス管理ユニット１１０４は、ステップＳ０８を実行し、インストールに失敗した旨が、ユーザに知らされる。
【００５１】
すなわち、半導体装置を購入する際に予め支払ったライセンス料金に応じた有償ソフトウェアインスト−ル可能数に到達するまで、有償ソフトウェアを、ソフトウェア記憶ユニット１１０３へ格納することが可能となる。ソフトウェア記憶ユニット１１０３へ格納されたソフトウェアは、実行ユニット１１０１によって実行可能であるため、購入の際に支払ったライセンス料金に応じた個数の有償ソフトウェアを実行することが可能となる。
【００５２】
インストールするソフトウェアが有償ソフトウェアである場合を説明したが、インストールするソフトウェアには、無償ソフトウェアも存在する。そのため、有償ソフトウェアを、マイクロプロセッサ１１００にインストールするとき、ユーザが、ライセンス管理ユニット１１０４に対して、図３に示したステップを実施するように指示すればよい。
【００５３】
また、図２３に示すように、インストールされるべきソフトウェア部分ＳＢに属性情報部分ＡＴＢを付加し、ソフトウェア部分ＳＢと属性情報部分ＡＴＢとによってソフトウェアを構成するようにしてもよい。この場合、図１および図２で説明したソフトウェア提供装置１００５およびフラッシュライタ１１０５に格納される有償ソフトウェアのそれぞれが、図２３に示すように、インストールされるべきソフトウェア部分ＳＢと属性情報部分ＡＴＢとを備えるようにする。この属性情報部分ＡＴＢに、ソフトウェア部分ＳＢが、有償ソフトウェアであるか否かを示す属性情報を格納しておく。
【００５４】
このように、属性情報部分ＡＴＢを付加している場合、ライセンス管理ユニット１１０４は、例えば図３に示したステップＳ００において、ユーザが指定したソフトウェアを、フラッシュライタ１１０５から受け取る。ステップＳ００において、ライセンス管理ユニット１１０４は、受け取ったソフトウェアにおいて、属性情報部分ＡＴＢに、有償ソフトウェアであることを示す属性情報が格納されているか否かを判定する。属性情報が、有償ソフトウェアであることを示している場合、図３に示したステップＳ０１、Ｓ０２、Ｓ０４〜Ｓ０８を実施する。この場合、ステップＳ００において、ライセンス管理ユニット１１０４は、ソフトウェア部分ＳＢを受け取っているため、ステップＳ０３は実行しなくてもよい。
【００５５】
一方、ステップＳ００において、属性情報部分ＡＴＢに格納されている属性情報が、無償ソフトウェアであることを示している場合、あるいは属性情報部分ＡＴＢが、ソフトウェアＳＷに含まれていない場合には、インストールするソフトウェアは、無償ソフトウェアであると判定し、ライセンス管理ユニット１１０４は、図３に示したステップＳ０１〜Ｓ０８を実行しない。
【００５６】
＜アンインストール＞
次に、有償ソフトウェアをインストールした後、有償ソフトウェアをアンインストールする場合のライセンス管理ユニット１１０４の動作を説明する。ここでは、有償ソフトウェアをアンインストールした場合、ライセンス情報によって示される有償ソフトウェアインストール可能数を変更する例と、変更しない例を説明する。有償ソフトウェアインストール可能数を変更する場合と変更しない場合とで、それぞれ効果が存在するため、所望する効果によって、いずれの例を採用するようにしてもよい。
【００５７】
まず、有償ソフトウェアインストール可能数を変更する例を、図４を用いて説明する。図４は、有償ソフトウェアをアンインストールする場合のライセンス管理ユニット１１０４の動作を示すフローチャート図である。
【００５８】
ステップＳ１０において、ユーザがアンインストールする有償ソフトウェアを指定し、アンインストールをライセンス管理ユニット１１０４へ指示する。これにより、アンインストールが開始される。ライセンス管理ユニット１１０４は、ステップＳ１１において、ライセンス記憶ユニット１１０３から、ライセンス情報を読み出す。次に、ステップＳ１２において、ライセンス管理ユニット１１０４は、ソフトウェア記憶ユニット１１０２から、アンインストールが指定されたソフトウェアを消去する。次のステップＳ１３において、ステップＳ１１において読み出したライセンス情報によって示されている有償ソフトウェアインストール可能数を１増加させて、有償ソフトウェアインストール可能数を更新する。
【００５９】
更新された有償ソフトウェアインストール可能数を示すライセンス情報を、ライセンス管理ユニット１１０４は、ステップＳ１４において、ライセンス記憶ユニット１１０３へ書き込み、ステップＳ１５において、アンインストールを完了する。
【００６０】
このように、有償ソフトウェアをアンインストールしたとき、有償ソフトウェアインストール可能数を増加させるようにすることによって、誤った有償ソフトウェアをインストールした場合でも、ライセンス料金を減らすことなく、希望の有償ソフトウェアをインストールし直すことが可能となる。
【００６１】
次に、アンインストールを行ったとき、有償ソフトウェアインストール可能数を更新しない例を、図５を用いて説明する。図５は、有償ソフトウェアをアンインストールする場合のライセンス管理ユニット１１０４の動作を示すフローチャート図である。
【００６２】
図４のステップＳ１０と同様に、ユーザが、ステップＳ２０において、アンインストールする有償ソフトウェアを指定し、アンインストールを指示することにより、アンインストールの動作が開始する。
【００６３】
ライセンス管理ユニット１１０４は、アンインストールの指示を受けると、指定された有償ソフトウェアを、ソフトウェア記憶ユニット１１０２から消去する。その後、ステップＳ２２において、ライセンス管理ユニット１１０４は、アンインストールの動作を完了する。この場合、ライセンス管理ユニット１１０４は、ライセンス記憶ユニット１１０３からライセンス情報を読み出さない。そのため、ライセンス情報は更新されず、維持されることになる。これにより、ライセンス情報によって示される有償ソフトウェアインストール可能数は、増減されず、維持されることになる。
【００６４】
図５の例では、有償ソフトウェアのアンインストールが指示された場合、アンインストールの動作のみが行われる。これにより、有償ソフトウェアを、無限にインストールすることが可能となることを防ぐことができる。
【００６５】
図４および図５においては、アンインストールの動作として、ソフトウェア記憶ユニット１１０２からソフトウェアを消去する例を示したが、アンインストールの動作は、これに限定されるものではない。また、消去の動作は、所定の状態を上書きする動作も含んでいる。
【００６６】
この実施の形態では、ライセンス情報が、有償ソフトウェアのインストール可能数を示している例を説明したが、これに限定されるものではない。例えば、ライセンス情報は、有償ソフトウェアのインストール可能なポイントを示してもよいし、インストール可能な記憶容量を示してもよい。
【００６７】
また、ライセンス情報が示す有償ソフトウェアインストール可能数を、有償ソフトウェアをインストールする毎に、１減算する例を示したが、これに限定されるものではない。例えば、インストールする毎に、２以上を減算するようにしてもよい。さらに、インストールする有償ソフトウェアの金額に応じて、減算する数を変更するようにしてもよい。この場合、例えば、図２３で説明した属性情報部ＡＴＢに、有償ソフトウェアの価格に応じた減算数を格納しておけばよい。この場合、ライセンス管理ユニット１１０４は、有償ソフトウェアインストール可能数を減算するとき、属性情報部ＡＴＢに格納されている減算数を減算すればよい。
【００６８】
ライセンス情報が、有償ソフトウェアのインストール可能なポイントを示している場合も同様に、インストール毎に、１ポイントあるいは２以上のポイントを減算してもよいし、有償ソフトウェアの価格に応じてポイント数を減算するようにしてもよい。
【００６９】
ライセンス情報が、有償ソフトウェアのインストール可能な記憶容量を示している場合も同様である。この場合、ライセンス情報が示すインストール可能な記憶容量は、ソフトウェア記憶ユニット１１０２の記憶容量を示している。すなわち、ソフトウェア記憶ユニット１１０２が有する記憶容量のうち、有償ソフトウェアを格納することが可能な記憶容量を示している。ライセンス管理ユニット１１０４は、フラッシュライタ１１０５から、インストールする有償ソフトウェアを読み込んだとき、有償ソフトウェアの容量を把握することができるため、ライセンス情報によって示されている有償ソフトウェアのインストール可能容量と、把握した有償ソフトウェアの容量とから、有償ソフトウェアをインストールすることが可能であるか否かの判定をすることが可能である。また、インストール可能容量から、把握した有償ソフトウェアの容量を減算することによって得た記憶容量を、ライセンス情報として、更新することが可能である。
【００７０】
ライセンス情報は、有償ソフトウェアのインストール可能なライセンス数を示す情報であると見なすことができる。この場合、実施の形態においては、ソフトウェアに対してライセンス数が設定されているのではなく、半導体装置１１００に対してライセンス数が設定されていることになる。そのため、インストールする有償ソフトウェアは、種別を問わず、任意であり、互いに異なる種類の有償ソフトウェアを、ライセンス情報によって示されているライセンス数まで、インストールすることが可能である。
【００７１】
図２においては、半導体装置１１０１が、ライセンス記憶ユニット１１０３およびライセンス管理ユニット１１０４を備えている。ライセンス管理ユニット１１０４には、予めインストール可能なライセンス数を示すライセンス情報が格納されて、半導体装置１１００は提供される。これにより、半導体装置１１００を購入したユーザは、ライセンス情報によって示されているライセンス数まで、有償ソフトウェアを、半導体装置１１００へインストールすることが可能となる。すなわち、半導体装置１１００の内部で、ライセンスの管理が行われる。これにより、ユーザは、ライセンス管理装置を導入することなく、ライセンスの管理を行うことが可能となり、ユーザの負担を低減することが可能となる。また、ライセンス管理装置を監視する必要がなくなるため、ソフトウェア配信元の負担を低減することが可能となる。言い換えるならば、ユーザの利便性を損なうことなく、ライセンスの管理を行うことが可能となる。すなわち、ライセンス管理に適した半導体装置１１００を提供することができる。
【００７２】
（実施の形態２）
図６は、実施の形態２に係わる電子装置の構成を示すブロック図である。実施の形態２においては、電子装置として、パーソナルコンピューターが示されている。先に図１を用いて、実施の形態１に係わる電子装置の構成を説明しているので、ここでは、図１に示した電子装置との相違点を主に説明する。図６も、ライセンス管理システムを示していると見なすことができる。ここでも、ライセンス管理の対象となる有償ソフトウェアが、ソフトウェア提供装置から電子装置（パーソナルコンピューター）へ提供されることになる。
【００７３】
＜パーソナルコンピューターの構成＞
図６において、１３００は、パーソナルコンピューターを示している。パーソナルコンピューター１３００には、ＣＤ−ＲＯＭ等の光デイスク再生装置、ディスプレイ等の表示装置、キーボード等の入力装置、無線通信等の通信装置等の周辺装置が接続されるが、同図には、説明に必要な光デイスク再生装置１３０５を除いて、周辺装置は省略されている。ここで、光デイスク再生装置（ＣＤ−ＲＯＭ）１３０５には、光デイスクのような記憶媒体が装着されて、用いられる。光デイスクには、複数種類のソフトウェアが格納されており、光デイスク再生装置１３０５によって、再生することにより、光デイスクに格納されているソフトウェアが、パーソナルコンピューター１３００へ提供される。そのため、光デイスク再生装置１３０５と光デイスクとによって、図１に示したソフトウェア提供装置１００５が構成されていると見なすことができる。
【００７４】
パーソナルコンピューター１３００は、プロセッサ（ＣＰＵ）１３０１、ハードディスク１３０２、ライセンス記憶部１３０３およびライセンス管理部１３０４を備えている。これら以外に、パーソナルコンピューター１３００は、例えば周辺装置とプロセッサ１３０１との間に設けられた周辺部を備えているが、図６では省略されている。また、パーソナルコンピューター１３００は、プロセッサ１３０１がソフトウェアを実行する際に、例えば作業用として用いる揮発性メモリを備えている。図６では、この揮発性メモリは、プロセッサ１３０１に内蔵されているものとして、説明する。
【００７５】
パーソナルコンピューター１３００を製造または販売するとき、製造者または販売者が、所定のライセンス情報を、ライセンス記憶部１３０３へ格納して、製造または販売を行う。このとき格納されるライセンス情報は、有償ソフトウェアインストール可能数を示している。パーソナルコンピューター１３００を購入するユーザが希望するライセンス数に応じた有償ソフトウェアインストール可能数が、ライセンス情報として、製造者または販売者によって、ライセンス記憶部１３０３へ格納されることになる。この場合、ユーザが希望するライセンス数に対応したライセンス料金が、パーソナルコンピューター１３００のハード（本体）の価格に加算され、パーソナルコンピューター１３００の製造または販売価格として、ユーザは購入することになる。
【００７６】
プロセッサ１３０１は、ハードディスク１３０２に結合され、ハードディスク１３０２からソフトウェアを読み出し、読み出したソフトウェアを実行する。このソフトウェアの実行により、パーソナルコンピューター１３００は、ユーザが所望する機能を達成することになる。
【００７７】
ライセンス管理部１３０４は、光デイスク再生装置１３０５から有償ソフトウェアが提供されたとき、ライセンス記憶部１３０３からライセンス情報を読み出し、読み出したライセンス情報に基づいて、有償ソフトウェアのハードディスク１３０２への格納を制御する。
【００７８】
すなわち、ライセンス管理部１３０４は、ライセンス情報が示している有償ソフトウェアインストール可能数が、インストールする有償ソフトウェアの規定数以上の場合には、提供されている有償ソフトウェアを、ハードディスク１３０２へ格納する。また、このとき、ライセンス情報によって示されているインストール可能数から有償ソフトウェアの規定数を減算し、減算によって得られたインストール可能数を、ライセンス情報として、ライセンス記憶部１３０３へ格納する。これに対して、有償ソフトウェアの規定数が、ライセンス情報によって示されているインストール可能数を超えていた場合、ライセンス管理部１３０４は、提供された有償ソフトウェアを、ハードディスク１３０２へ格納しない。また、このときには、インストール可能数を変更せず、維持する。
【００７９】
ハードディスクに格納された有償ソフトウェアは、プロセッサ１３０１が読み出し、実行する。これにより、パーソナルコンピューター１３００は、有償ソフトウェアに従った動作を行うことになる。
【００８０】
有償ソフトウェアの規定数は、実施の形態１と同様に、複数種類の有償ソフトウェアに対して一定の値、例えば実施の形態１と同様に、１であってもよいし、有償ソフトウェア毎に異なる値となるようにしてもよい。例えば、インストールする有償ソフトウェア毎に、規定数は、有償ソフトウェアの価格、その大きさ（容量）に比例した値であってもよい。
【００８１】
ライセンス記憶部１３０３は、製造者または販売者によって、ライセンス情報が記憶されたあとは、ライセンス管理部１３０４によってのみ、変更が可能な構成にされる。
【００８２】
ライセンス管理部１３０４は、例えば、プロセッサ１３０１とは異なるプロセッサによって構成される。この場合、ライセンス管理部１３０４を構成するプロセッサは、ソフトウェアに従って動作することになる。しかしながら、これに限定されるものではない。例えば、プロセッサ１３０１が、ハードディスク１３０２からのソフトウェアを実行するとともに、ライセンス管理部１３０４の機能も達成するようにしてもよい。
【００８３】
＜ライセンス管理部１３０４の動作＞
図７は、ライセンス管理部１３０４の動作を示すフローチャート図である。ここでは、有償ソフトウェアの規定値が、１の場合を例にして説明する。
【００８４】
まず、ユーザが、ステップＳ３０において、キーボード（図示しない）等を用いて、インストールする有償ソフトウェアを特定し、有償ソフトウェアのインストールであることを指定する。キーボードからの指定および指示は、プロセッサ１３０１によって識別され、プロセッサ１３０１は、ライセンス管理部１３０４および光デイスク再生装置１３０５を動作させる。これにより、ステップＳ３０において、インストール動作が開始する。
【００８５】
ライセンス管理部１３０４は、動作を開始することにより、ステップＳ３１において、ライセンス記憶部１３０３からライセンス情報を読み出す。次に、ステップＳ３２において、ライセンス管理部１３０４は、読み出したライセンス情報によって示されている有償ソフトウェアインストール可能数が、規定数以上か否かの判定を行う。ここでは、規定数は１としているため、インストール可能数が、１以上か否かを判定する。
【００８６】
ステップＳ３２において、ライセンス情報によって示されている有償ソフトウェアインストール可能数が、規定数（１）未満であると判明した場合、ライセンス管理部１３０４は、次にステップＳ３８を実行する。ステップＳ３８において、ライセンス管理部１３０４は、インストールに失敗したことを、プロセッサ１３０１へ通知する。この通知により、プロセッサ１３０１は、例えばディスプレイに、インストール失敗の旨の表示を行い、インストールの動作を終了する。
【００８７】
これに対して、ステップＳ３２において、ライセンス情報によって示されている有償ソフトウェアインストール可能数が、規定数（１）以上であると判明した場合、ライセンス管理部１３０４は、次にステップＳ３３を実行する。ステップＳ３３において、光デイスク再生装置１３０５から、有償ソフトウェアが読み出される。ステップＳ３３において読み出された有償ソフトウェアを、ステップＳ３４において、ライセンス管理部１３０４は、ハードディスク１３０２へ書き込む（格納する）。
【００８８】
その後、ステップＳ３５において、ライセンス管理部１３０４は、ライセンス情報によって示されている有償ソフトウェアインストール可能数から、規定数分を減らす。図７の例では、規定数１を減算することになる。ステップＳ３５に続く、ステップＳ３６において、ライセンス管理部１３０４は、ステップＳ３５における減算によって得られた有償ソフトウェアインストール可能数を、ライセンス情報として、ライセンス記憶部１３０３へ書き込む（格納する）。その後、ステップＳ３７において、ライセンス管理部１３０４は、インストールが成功した旨を、プロセッサ１３０１へ通知する。これを受けてプロセッサ１３０１は、ディスプレイに、インストール成功の旨の表示を行い、インストールの動作を終了する。
【００８９】
有償ソフトウェアを、インストールする毎に、図７に示したステップが実行される。実行される毎に、ライセンス記憶部１３０３に格納されているライセンス情報が示す有償ソフトウェアインストール可能数が、減算される。ユーザが購入した際に、格納されたライセンス情報によって示されている有償ソフトウェアインストール可能数までは、ハードディスク１３０３へ有償ソフトウェアが書き込まれる。すなわち、予め格納されたライセンス情報によって示されているインストール可能数までは、有償ソフトウェアを、プロセッサ１３０１が実行可能となる。これに対して、予め格納されたライセンス情報によって示されている有償ソフトウェアインストール可能数を超えると、図７のステップＳ３８が実行されることになり、有償ソフトウェアは、ハードディスク１３０３に書き込まれず、プロセッサ１３０１によって実行することが不可能となる。
【００９０】
この実施の形態２においても、実施の形態１と同様に、ライセンス情報は、有償ソフトウェアのインストール可能なポイントを示してもよいし、インストール可能な記憶容量を示してもよく、ライセンス情報は、インストール可能なライセンス数を示していると見なすことができる。ライセンス情報をポイントで示す場合、ライセンス数に相当するポイントがライセンス情報によって示されていると見ることができる。また、ライセンス情報を記憶容量で示す場合、ライセンス数に相当する記憶容量がライセンス情報によって示されていると見ることができる。
【００９１】
また、有償ソフトウェアの構成を、実施の形態１で述べたのと同様に、図２３に示すような構成にしてもよい。なお、図２３に示した属性情報部ＡＴＢに、有償ソフトウェアであることを示す属性情報を格納するようにした場合には、インストール開始（図７のステップＳ３０）のとき、ユーザは、インストールするソフトウェアを特定するだけで済む。
【００９２】
また、実施の形態１で述べたのと同様に、有償ソフトウェアをアンインストールした場合には、ライセンス情報を、図４で説明したように、更新してもよいし、図５で説明したように、維持してもよい。
【００９３】
（実施の形態３）
図１および図６では、プロセッサ１００１（実行ユニット１３０１）を組み込んだ電子装置を説明したが、ソフトウェアを記憶する記憶部とプロセッサを備えたマイクロプロセッサ（例えば、図２のマイクロプロセッサ１１００）を用いて電子装置を構成し、提供することもできる。この場合には、例えば、ユーザがマイクロプロセッサを販売者（製造者）から購入し、電子装置に組み込み、マイクロコンピュータを組み込んだ電子装置を、ユーザが提供することになる。
【００９４】
マイクロプロセッサを組み込んだ電子装置を提供する場合、提供するまでの段階は、大別すると、開発段階と、量産段階に分けられる。開発段階で、マイクロプロセッサにインストールされるソフトウェアの開発を行い、開発段階で開発されたソフトウェアを、量産段階では、複数のマイクロプロセッサのそれぞれにインストールする。このようにして開発段階で開発されたソフトウェアがインストールされたマイクロプロセッサが、電子装置に組み込まれて、提供されることになる。そのため、量産段階では、ソフトウェアのインストールは、原則１回で済む。
【００９５】
これに対して、開発段階では、マイクロプロセッサに対して、ソフトウェアのインストール、アンインストールおよび再インストールが、繰り返されることがある。すなわち、同一のソフトウェアについて、インストール、アンインストール、再びインストール（再インストール）を繰り返すこともある。図２に示したマイクロプロセッサ１１００を用いて、一例を説明すると、次のような場合である。
【００９６】
ソフトウェア記憶ユニット１１０２へ有償ソフトウェアと無償ソフトウェアのそれぞれをインストールする。その後、インストールした無償ソフトウェアを改良した結果、無償ソフトウェアのサイズ（容量）が大きくなってしまい、既にインストールしてある有償ソフトウェアを、ソフトウェア記憶ユニット１１０２内の別の領域に移動させることが必要となる。この場合、有償ソフトウェアを、インストールしたあと、アンインストールし、さらにインストール（再インストール）することになる。また、別の例を述べると、開発段階の初期で、有償ソフトウェアをインストールしたあと、開発が進むに従い、当該有償ソフトウェアが不要となり、アンインストールする。その後、開発がさらに進み、やはり、当該有償ソフトウェアをインストールすることが必要となり、インストール（再インストール）することがある。この場合においても、同じ有償ソフトウェアを、インストールし、アンインストールし、さらに再インストールすることになる。
【００９７】
そのため、ソフトウェアを自由に書換ることが可能なマイクロプロセッサを、マイクロプロセッサを提供する販売者（製造者）が、電子装置を開発するユーザへ提供することが考えられる。しかしながら、このように、ソフトウェアを自由に書換ることが可能なマイクロプロセッサを提供した場合、量産段階で、許諾なしにコピーしたソフトウェアを、マイクロプロセッサにインストールすることが可能となってしまう。
【００９８】
この対策として、開発段階で用いられるマイクロプロセッサ（以下、開発用マイクロプロセッサとも称する）と、量産段階で用いられるマイクロプロセッサ（以下、量産用マイクロプロセッサとも称する）とを分けて、販売者（製造者）が提供することが考えられる。この場合、開発用マイクロプロセッサは、量産用マイクロプロセッサの機能と同じ機能を有し、さらに開発に適した追加機能を備えるようにする。また、開発用マイクロプロセッサは、ソフトウェアの書換えを自由に行うことが可能となるようにし、量産用マイクロプロセッサは、ソフトウェアの書換えを、不可能または制限する。なお、ここでの書換えは、ソフトウェアをインストールしたあと、再び同じソフトウェアを再インストールすることを意味している。
【００９９】
この場合、開発用マイクロプロセッサと量産用マイクロプロセッサとの切替えは、販売者（製造者）が提供したあとでは困難となるようにする。この切替えを行う方法としては、例えば次の方法（１）〜（６）がある。
（１）マイクロプロセッサに、１回限りの書き込みが可能な不揮発性メモリを設ける。この不揮発性メモリに書き込みを行うことにより、マイクロプロセッサは、例えば開発用マイクロプロセッサとして機能し、書き込みを行わなければ、量産用マイクロプロセッサとして機能する。
（２）マイクロプロセッサに不揮発性メモリが設けられている場合、この不揮発性メモリにおいて、特別の方法によってのみ書き込みを行うことが可能な特別領域を設定する。特別領域に、書き込みを行うことによって、マイクロプロセッサは、例えば開発用マイクロプロセッサとして機能し、書き込みを行わなければ、量産用マイクロプロセッサとして機能する。この場合の特別な方法とは、例えば、半導体チップをパッケージで封止した状態では、外部に接続されない端子を、半導体チップに設け、特定のコードを、この端子に供給したときのみ、書き込みが可能となるようにする方法が考えられる。
（３）マイクロプロセッサにメタルスイッチを設ける。マイクロプロセッサを製造する製造工程において、メタルスイッチをオン状態またはオフ状態にする。この場合、例えば、メタルスイッチがオン状態にされたマイクロプロセッサが、開発用マイクロプロセッサとして機能し、メタルスイッチがオフ状態にされたマイクロプロセッサが、量産用マイクロプロセッサとして機能する。
（４）マイクロプロセッサに内蔵されている不揮発性メモリを、開発用マイクロプロセッサと量産用マイクロプロセッサで異なるようにする。
（５）マイクロプロセッサの半導体チップとそれを封止するパッケージから突出するリードとの間の接続を、変えることにより、開発用マイクロプロセッサと、量産用マイクロプロセッサとを切替える。
（６）開発用マイクロプロセッサと量産用マイクロプロセッサのパッケージを変えることにより、開発用マイクロプロセッサと、量産用マイクロプロセッサとを切替える。
【０１００】
図８は、このような方法によって切替えられた開発用マイクロプロセッサと量産用マイクロプロセッサの関係を示す図である。図８において、左側が開発用マイクロプロセッサを示し、右側が量産用マイクロプロセッサを示している。開発用マイクロプロセッサは、ソフトウェアの書換えが自由（フリー）となる。これに対して、量産用マイクロプロセッサは、ソフトウェアの書換えが制限される。例えば、量産用マイクロプロセッサでは、インストールは可能であるが、再インストールはできないようにされる。開発用マイクロプロセッサは、量産用マイクロプロセッサの機能を包含しているが、開発用の追加機能も備えている。そのため、開発用マイクロプロセッサのハードウェア価格は、量産用マイクロプロセッサのハードウェア価格（価格固定）に比べて追加機能の価格（α）分、高価になる。なお、ここでの価格は、ライセンス料金を含んでいない。すなわち、マイクロプロセッサの本体（ハードウェア）の価格を示している。
【０１０１】
この実施の形態３においては、上記した方法により、開発用マイクロプロセッサとされたか、量産用マイクロプロセッサとされたかを示す情報を基にして、書換え制限情報が形成される。例えば方法（１）によって、切替えを実施した場合、１回限りの書き込み可能な不揮発性メモリからの出力に基づいた値が、書換え制限情報として用いられる。
【０１０２】
また、実施の形態３においては、実施の形態１で示した図２のライセンス記憶ユニット１１０３に、過去にインストールした有償ソフトウェアの履歴情報が記憶される。ここで、履歴情報は、例えば、インストールした有償ソフトウェアを特定するユニーク番号ＩＤである。もし、有償ソフトウェアを特定するユニーク番号ＩＤが、有償ソフトウェアに存在しない場合には、図２３で説明した属性情報部ＡＴＢに有償ソフトウェアを特定するユニーク番号ＩＤの情報を格納する。
【０１０３】
実施の形態３においては、実施の形態１の図２に対して、さらにライセンス管理ユニット１１０４が変更される。すなわち、インストールした有償ソフトウェアをアンインストールし、さらに再インストールする際、実施の形態３に係わるライセンス管理ユニット１１０４は、書換え制限情報、履歴情報および有償ソフトウェアのユニーク番号ＩＤに基づいて、ソフトウェア記憶ユニット１１０２への有償ソフトウェアの格納を制御するとともに、有償ソフトウェアインストール可能数を更新するか否かを制御する。例えば、実施の形態３に係わるライセンス管理ユニットは、書換え制限情報が、開発用マイクロプロセッサであることを示している場合、すなわち書換えフリーを示している場合、過去にインストールした有償ソフトウェアを再インストールするとき、有償ソフトウェアインストール可能数を更新せずに、有償ソフトウェアを、ソフトウェア記憶ユニット１１０２へ格納する。すなわち、インストール可能数を更新せずに、再インストールを可能とするように機能する。
【０１０４】
実施の形態３に係わるマイクロプロセッサは、実施の形態１で説明したマイクロプロセッサ１１００（図２）と類似している。すなわち、図２に示したマイクロプロセッサ１１００と異なるのは、ライセンス記憶ユニット１１０３およびライセンス管理ユニット１１０４である。先に述べたように、実施の形態３に係わるライセンス記憶ユニットは、図２に示したライセンス記憶ユニット１１０３に履歴情報が追加されている。実施の形態３に係わるライセンス管理ユニットの動作については、あとで説明する。さらに、実施の形態３においては、フラッシュライタ１１０５から有償ソフトウェアか提供されるとき、その有償ソフトウェアを特定するユニーク番号ＩＤが供給される。
【０１０５】
なお、実施の形態３に係わるライセンス管理ユニットは、以下、ライセンス管理ユニット１１０４（３）と記載し、ライセンス記憶ユニットは、以下、ライセンス記憶ユニット１１０３（３）と記載する。
【０１０６】
＜ライセンス管理ユニット１１０４（３）の動作＞
次に、実施の形態３に係わるライセンス管理ユニット１１０４（３）の動作を、図９を用いて説明する。図９は、ライセンス管理ユニット１１０４（３）の動作を示すフローチャート図である。ステップＳ４０において、ユーザは、インストールする有償ソフトウェアを指定し、有償ソフトウェアのインストールであることを指示する。この指示を受けて、ライセンス管理ユニット１１０４（３）が動作を開始する。また、フラッシュライタ１１０５は、特定された有償ソフトウェアを、マイクロプロセッサ１１００へ提供する。すなわち、インストールを開始する。
【０１０７】
ステップＳ４１において、ライセンス管理ユニット１１０４（３）は、書換え制限情報を判定する。書換え制限情報が、書換え制限あり（量産用マイクロプロセッサ）を示していた場合、ライセンス管理ユニット１１０４（３）は、次にステップＳ４３を実行する。一方、書換え制限情報が、書換えフリー（開発用マイクロプロセッサ）を示していた場合、ライセンス管理ユニット１１０４（３）は、次にステップＳ４２を実行する。
【０１０８】
ステップＳ４２において、ライセンス管理ユニット１１０４（３）は、ライセンス記憶ユニット１１０３（３）から、過去にインストールした有償ソフトウェアの履歴情報を読み出す。ライセンス管理ユニット１１０４（３）は、提供された有償ソフトウェアに含まれているユニーク番号ＩＤと、ライセンス記憶ユニット１１０３（３）から読み出した履歴情報とを比較する（図では、ＳＷ−ＩＤ履歴一致？と記載）。比較の結果、一致していれば、ライセンス管理ユニット１１０４（３）は、次にステップＳ４５を実行し、不一致であれば、ステップＳ４３を実行する。
【０１０９】
例えば、有償ソフトウェアは、図２３に示した構成にされ、属性情報部ＡＴＢに、その有償ソフトウェアを特定するユニーク番号ＩＤが格納されている。ライセンス管理ユニット１１０４（３）は、この属性情報部ＡＴＢに格納されているユニーク番号ＩＤを、履歴情報と比較することによって、過去にインストールした有償ソフトウェアを、再度、インストール（再インストール）するのか否かを判定することができる。
【０１１０】
ステップＳ４３において、ライセンス管理ユニット１１０４（３）は、ライセンス記憶ユニット１１０３（３）からライセンス情報を読み出す。読み出したライセンス情報によって示されている有償ソフトウェアインストール可能数が、規定数（１）以上か否かを、ステップＳ４４において、ライセンス管理ユニット１１０４（３）が判定する。有償ソフトウェアインストール可能数が、規定値（１）未満であると、ステップＳ４４において判定されると、ライセンス管理ユニット１１０４（３）は、次にステップＳ４０−Ｆを実行し、有償ソフトウェアインストール可能数が、規定値（１）以上であると判定すると、ライセンス管理ユニット１１０４（３）は、次にステップＳ４５を実行する。
【０１１１】
ステップＳ４０−Ｆにおいて、ライセンス管理ユニット１１０４（３）は、インストールに失敗した旨を、ユーザに通知する。これにより、書換え制限がなく（書換えフリー）、再インストールの場合を除いて、有償ソフトウェアインストール可能数が規定数未満の場合、有償ソフトウェアのインストールが禁止されることになる。
【０１１２】
ステップＳ４５において、ライセンス管理ユニット１１０４（３）は、フラッシュライタ１１０５から提供されている有償ソフトウェアのソフトウェア部分ＳＢを読み込む。読み込んだソフトウェア部分ＳＢを、ライセンス管理ユニット１１０４（３）は、ステップＳ４６において、ソフトウェア記憶ユニット１１０２へ書き込む（格納する）。
【０１１３】
次に、ステップＳ４７において、ライセンス管理ユニット１１０４（３）は、ステップＳ４３で読み出したライセンス情報によって示されている有償ソフトウェアインストール可能数を、規定数（１）だけ減算し、減算によって得た有償ソフトウェアインストール可能数を示すライセンス情報を生成する。また、ステップＳ４８において、ライセンス管理ユニット１１０４（３）は、ステップＳ４６で、ソフトウェア記憶ユニット１１０２へ書き込んだソフトウェア部分ＳＢに対応する属性情報部ＡＴＢに格納されているユニーク番号ＩＤを、履歴情報として、ライセンス記憶ユニット１１０３（３）に記録する。
【０１１４】
また、ステップＳ４９において、ライセンス管理ユニット１１０４（３）は、ステップＳ４７で生成したライセンス情報を、ライセンス記憶ユニット１１０３（３）へ書き込む（格納する）。
【０１１５】
なお、ライセンス管理ユニット１１０４（３）が、ステップＳ４２のあとに、ステップＳ４５〜Ｓ４９を実施する場合、ステップＳ４３を実施していないため、ライセンス管理ユニット１１０４（３）は、ライセンス記憶ユニット１１０３（３）からライセンス情報を読み出していない。そのため、この場合には、ステップＳ４７での有償ソフトウェアインストール可能数の減算は行われない。また、ステップＳ４９でのライセンス記憶ユニット１１０３（３）へのライセンス情報の書き込みも行われない。
【０１１６】
最後に、ステップＳ４０−Ｃにおいて、ライセンス管理ユニット１１０４（３）は、有償ソフトウェアのインスト−ルが成功した旨をユーザに通知する。
【０１１７】
上記したステップが、有償ソフトウェアをインストールする毎に実施される。
【０１１８】
この実施の形態３においては、書換え制限が設定されていても、すなわち量産用マイクロプロセッサであっても、実施の形態１と同様に、ライセンス情報によって示されている有償ソフトウェアインストール可能数まで、有償ソフトウェアを、ソフトウェア記憶ユニット１１０２に書き込むことが可能となる。すなわち、量産用マイクロプロセッサであっても、予め支払ったライセンス料金に応じた分だけ、有償ソフトウェアをインストールすることが可能となる。
【０１１９】
また、この実施の形態３においては、書換え制限が無い場合（書換えフリー）、すなわち開発用マイクロプロセッサについては、新たな有償ソフトウェアをインストールするときには、実施の形態１と同様に、ライセンス情報によって示されている有償ソフトウェアインストール可能数まで、有償ソフトウェアを、ソフトウェア記憶ユニット１１０２に書き込むことが可能となる。さらに、開発用マイクロプロセッサについては、一度、有償ソフトウェアをインストールすると、インストールした履歴（ユニーク番号ＩＤ）がライセンス記憶ユニット１１０３に格納される。アンインストールしても、インストールした履歴が、ライセンス記憶ユニット１１０３（３）に残っているため、同一の有償ソフトウェアを、再インストールする場合、有償ソフトウェアインストール可能数は、減算されない。すなわち、更新されず、維持される。言い換えるならば、有償ソフトウェアインストール可能数を減らすことなしに、有償ソフトウェアを、ソフトウェア記憶ユニット１１０３へ、再度書き込むことが可能となり、実行ユニット１１０１によって実行することが可能となる。
【０１２０】
このことは、見方と変えると、有償ソフトウェアインストール可能数が、規定数（１）未満であっても、有償ソフトウェアの再インストールが可能となる。そのため、開発段階において、開発用マイクロプロセッサを用いる場合には、有償ソフトウェアインストール可能数を考慮せずに、有償ソフトウェアを、任意に、アンインストールし、その後、同じソフトウェアを、再びインストール（再インストール）することが可能となる。
【０１２１】
マイクロプロセッサ１１００を例にして説明したが、これに限定されるものではない。マイクロプロセッサ１１００の代わりに、パーソナルコンピューターあるいはスマートフォンのような携帯端末を用いてもよい。また、フラッシュライタ１１０５の代わりに、光デイスク再生装置あるいは通信回線を介して有償ソフトウェアを提供するソフトウェア記憶装置を用いてもよい。さらに、ソフトウェア記憶ユニット１１０２は、ハードディスクあるいはメモリカードを用いるようにしてもよい。このように、マイクロプロセッサ、フラッシュライタおよびソフトウェア記憶ユニットを変更しても、同様の効果が得られるものである。
【０１２２】
＜変形例＞
有償ソフトウェアに、問題、例えばバグがあった場合、ソフトウェア配信元が、バグの対策を図った有償ソフトウェア（対策済み有償ソフトウェア）を提供することがある。この場合、既にインストールしている有償ソフトウェアと、対策済み有償ソフトウェアとは、同じユニーク番号ＩＤとなる。
【０１２３】
ユニーク番号ＩＤが同じであるため、書換え制限が設定されていない（書換えフリー）開発用マイクロプロセッサにおいては、有償ソフトウェアインストール可能数に影響されずに、ユーザは、対策済み有償ソフトウェアを再インストールすることが可能である。
【０１２４】
これに対して、書換え制限ありとされている量産用マイクロプロセッサにおいては、有償ソフトウェアインストール可能数が、規定数以上でない限り、対策済み有償ソフトウェアをインストールすることが困難となる。
【０１２５】
この変形例においては、例えば、図２３に示した属性情報部ＡＴＢに、ソフトウェア部ＳＢに格納されている有償ソフトウェアは、ソフトウェアのバグを対策する対策済み有償ソフトウェアであることを示す情報（コード）が格納される。また、図９に示したステップＳ４１において、ライセンス管理ユニット１１０４（３）は、書換え制限ありと判定したあと、属性情報部ＡＴＢに、対策済み有償ソフトウェアであることを示す情報が格納されているか否かを判定する。対策済み有償ソフトウェアであることを示す情報が、格納されていると判定した場合、ライセンス管理ユニット１１０４（３）は、次にステップＳ４２を実行するようにする。これにより、量産用マイクロプロセッサであっても、対策済み有償ソフトウェアについては、開発用マイクロプロセッサと同様に、有償ソフトウェアインストール可能数を減らすことなく、対策済み有償ソフトウェアを再インストールすることが可能となる。見方を変えると、有償ソフトウェアインストール可能数が、規定数未満となっていても、量産用マイクロプロセッサおよび開発用マイクロプロセッサの両方が、対策済み有償ソフトウェアを、再インストールすることが可能となる。
【０１２６】
ライセンス管理ユニット１１０４は、属性情報部ＡＴＢに、対策済み有償ソフトウェアであることを示す情報が、格納されていると判定した場合、上記した書換え制限情報を、強制的に、書換え制限フリーを示すように、変更するようにしてもよい。
【０１２７】
この変形例によれば、有償ソフトウェアインストール可能数に依存せずに、対策済み有償ソフトウェアをインストールすることが可能となる。すなわち、ユーザに負担を掛けずに、有償ソフトウェアをアップデートすることが可能となる。
【０１２８】
（実施の形態４）
実施の形態３において、量産用マイクロプロセッサと開発用マイクロプロセッサを説明した。実施の形態３で説明したように、開発用マイクロプロセッサは、量産用マイクロプロセッサに比べて、開発用の機能が付加されている場合が多い。そのため、ライセンス料金を除いたハードウェア価格において、開発用マイクロプロセッサの方が、量産用マイクロプロセッサに比べて高価になる。見方を変えると、開発用の機能を削減することにより、量産用マイクロプロセッサのハードウェア価格は、低くなるようにされている。
【０１２９】
開発用マイクロプロセッサは、量産用マイクロプロセッサに比べると高価になるため、開発用マイクロプロセッサを量産段階で用いることは考え難いが、用いることも可能である。開発用マイクロプロセッサを量産段階で用いた場合、有償ソフトウェアを許諾なしで、コピーすることが可能である。コピーした場合に発生する被害を低減するために、この実施の形態４においては、有償ソフトウェアの起動回数に制限が設定される。
【０１３０】
有償ソフトウェアの起動回数を制限するか、起動回数を自由（フリー）にするかを定める方法は、実施の形態３において説明した方法（１）〜（６）のいずれかを用いる。すなわち、実施の形態３で説明した書換え制限情報が、起動回数制限情報として用いられる。このようにすることにより、マイクロプロセッサを、販売者（製造者）が提供したあとは、起動回数制限情報を変更することが困難となり、起動回数制限を有するマイクロプロセッサまたは起動回数フリーのマイクロプロセッサとして提供されることになる。
【０１３１】
図１０は、実施の形態４に係わるマイクロプロセッサ１１００の動作を示すフローチャート図である。実施の形態４に係わるマイクロプロセッサ１１００の構成は、図２に示したマイクロプロセッサの構成に、有償ソフトウェアの起動回数を記憶する起動回数記憶ユニット（図示せず）と、有償ソフトウェアの実行済みを示す実行済フラグｆｌａｇ（ビット）と、有償ソフトウェアの実行回数を設定する実行回数ユニットとが追加される。ここで、起動回数記憶ユニットは、リセットされても値を保持するように構成されており、実行済フラグｆｌａｇは、リセットされると、リセットの解除の際に、未実行（ｆａｌｓｅ）に設定される。また、実行回数ユニットには、予め、起動を許可する回数が、設定される。例えば、販売者（製造者）が、所定の実行回数ｎを、実行回数ユニットに設定して、ユーザへ提供する。
【０１３２】
図１０では、マイクロプロセッサ１１００は、ＭＣＵとして示されている。ステップＳ５０において、例えば、リセット（ｒｅｓｅｔ）が解除されることによって、マイクロプロセッサＭＣＵが起動する。このとき、実行済フラグＦｌａｇは、未実行（ｆａｌｓｅ）に設定されている。
【０１３３】
ステップＳ５１において、マイクロプロセッサＭＣＵ内の実行ユニット１１０１は、マイクロプロセッサＭＣＵを備えた電子装置が所定の機能を達成するように、所定のソフトウェアを実行する。この所定のソフトウェアが、有償ソフトウェア（ＳＷ）あるいは有償ソフトウェア（ＳＷ）を呼び出すソフトウェアであるとする。図１０は、上記した所定のソフトウェアが、有償ソフトウェア（ＳＷ）を呼び出す場合を示している。図１０のステップＳ５１には、有償ソフトウェア（ＳＷ）を呼び出す命令として、命令（ｊｕｍｐ、ｃａｌｌ、ｅｔｃ）が例示されている。
【０１３４】
ライセンス管理ユニット１１０４は、ステップＳ５２において、マイクロプロセッサＭＣＵによって実行されるソフトウェアが、有償ソフトウェア（起動に回数の制限を設けたソフトウェア）であるか否かを判定する。これは、例えばソフトウェア記憶ユニット１１０２の特定の領域におけるソフトウェアが読み出された場合、ライセンス管理ユニット１１０２は、有償ソフトウェアが実行されるものとして判定する。ステップＳ５２において、有償ソフトウェアでは無いと判定した場合（Ｎｏ）、ライセンス管理ユニット１１０４は、ステップＳ５６を実行し、有償ソフトウェアであると判定した場合（Ｙｅｓ）、ステップＳ５３を実行する。図１０では、ステップＳ５２は、「起動回数制限ありＳＷか」と記載されている。
【０１３５】
ステップＳ５３において、ライセンス管理ユニット１１０４は、実行済フラグｆｌａｇが、実行済み（ｔｕｒｅ）か否かを判定する。すなわち、ステップＳ５３において、有償ソフトウェアが、既に実行済みか否かを判定している。既に実行済みの場合（Ｙｅｓ）、ライセンス管理ユニット１１０４は、次にステップＳ５６を実行し、実行済みでない場合（Ｎｏ）、ステップＳ５４を実行する。
【０１３６】
ステップＳ５４において、ライセンス管理ユニット１１０４は、起動回数記憶ユニットに格納されている起動回数が、実行回数ユニットに格納されている実行回数ｎを超えているか否かを判定する。ここでは、実行回数ユニットには、予め制限する実行回数として、ｎが設定されているものとする。起動回数記憶ユニットに格納されている起動回数が、実行回数ｎを超えていた場合（Ｎｏ）、ライセンス管理ユニット１１０４は、次にステップＳ５７を実行し、起動回数が、実行回数ｎを超えていない場合（Ｙｅｓ）、次にステップＳ５５を実行する。
【０１３７】
ステップＳ５５において、ライセンス管理ユニット１１０４は、起動回数を増加させる。例えば、１インクリメントし、起動回数記憶ユニットに格納する。例えば、起動回数記憶ユニットに格納されている起動回数が１から２へ更新される。また、ステップＳ５５において、実行済フラグｆｌａｇを実行済み（ｔｒｕｅ）に設定する。その後、ステップＳ５６において、ライセンス管理ユニット１１０４は、マイクロプロセッサＭＣＵ内の実行ユニット１１０１が、ステップＳ５１において呼び出した有償ソフトウェアを実行するのを許可する。その後、再び、ステップＳ５１へ戻り、有償ソフトウェアが呼び出された場合、ステップＳ５２〜Ｓ５３を実行する。この場合、最初（１回目）に、有償ソフトウェアを実行したとき、ステップＳ５５において、実行済フラグｆｌａｇが、未実行（ｆａｌｓｅ）から実行済み（ｔｒｕｅ）へ変更されているため、ライセンス管理ユニット１１０４は、ステップＳ５３のあと、ステップＳ５６を実行する。その結果、ステップＳ５０において、マイクロプロセッサＭＵＣを起動した後は、同一の有償ソフトウェアを繰り返し、起動しても、起動回数記憶ユニットに格納されている起動回数は増加せず、ステップＳ５７は実行されない。
【０１３８】
その後、リセットが行われ、そのリセットが解除されることにより、マイクロプロセッサＭＣＵが、再び、ステップＳ５０を実行すると、ステップＳ５０において、実行済フラグｆｌａｇは、未実行（ｆａｌｓｅ）となる。そのため、ステップＳ５５において、ライセンス管理ユニット１１０４は、起動回数記憶ユニットに格納されている起動回数をインクリメントする。すなわち、起動回数記憶ユニットに格納されている起動回数が、２から３へ更新される。以降、ステップＳ５１、Ｓ５２、Ｓ５３およびＳ５６が実行される。その結果、この場合にも、有償ソフトウェアが、マイクロプロセッサＭＣＵにおいて、実行されることになる。
【０１３９】
さらに、リセットが行われ、そのリセットが解除されると、マイクロプロセッサＭＣＵが、再び、ステップＳ５０を実行する。ステップＳ５０において、実行済フラグｆｌａｇは、未実行（ｆａｌｓｅ）とされ、ステップＳ５４において、起動回数記憶ユニットに格納されている起動回数と、実行回数ｎとの比較が行われる。ここで、例えば、実行回数ｎが、２であった場合、前回、ステップＳ５０において、マイクロプロセッサＭＣＵを起動したとき、起動回数記憶ユニットには、起動回数として３が格納されている。そのため、ステップＳ５４において、起動回数（３）が、実行回数ｎ（２）を超えているため、ライセンス管理ユニット１１０４は、ステップＳ５７を実行することになる。
【０１４０】
ステップＳ５７において、ライセンス管理ユニット１１０４は、実行ユニット１１０１が、ソフトウェア記憶ユニット１１０２からのソフトウェアを実行するのを禁止する。これにより、マクロプロセッサＭＣＵが、同一の有償ソフトウェアを、実行回数ｎを超えて、実行することが禁止され、当該有償ソフトウェアは起動しないようにされる。なお、ステップＳ５７において、ライセンス管理ユニット１１０４は、例えば、エラーが発生したことを、実行ユニット１１０１に通知する。
【０１４１】
このようにして、起動回数に制限があるソフトウェア、例えば有償ソフトウェアについては、ステップＳ５０において起動する毎に、起動回数記憶ユニットに格納されている起動回数が、インクリメントされ、起動回数が、予め設定した実行回数を超えると、そのソフトウェアの実行が禁止される。言い換えるならば、リセットをせずに、電子装置あるいはマイクロプロセッサＭＣＵを継続的に動作させているときは、起動回数に制限のあるソフトウェアは、継続して実行される。これに対して、電子装置あるいはマイクロプロセッサＭＣＵに対して、リセット等の起動が掛けられると、起動回数がカウントされ、所定の回数（実行回数）に到達すると、電子装置あるいはマイクロプロセッサがソフトウェアを起動するのが停止されることになる。
【０１４２】
この実施の形態４に係わるマイクロプロセッサは、開発用マイクロプロセッサとして用いられる。これにより、開発用マイクロプロセッサを量産用マイクロプロセッサとして用いるようにした場合、許諾されていないソフトウェア（コピー等によって複製された有償ソフトウェア）が、実行回数を超えて、起動されるのを防ぐことが可能となり、被害の低減を図ることが可能となる。
【０１４３】
マイクロプロセッサＭＣＵ（１１００）を例にして説明したが、これに限定されるものではない。マイクロプロセッサＭＣＵの代わりに、パーソナルコンピューターあるいはスマートフォンのような携帯端末を用いてもよい。また、フラッシュライタ１１０５の代わりに、光デイスク再生装置あるいは通信回線を介して有償ソフトウェアを提供するソフトウェア記憶装置を用いてもよい。さらに、ソフトウェア記憶ユニット１１０２は、ハードディスクあるいはメモリカードを用いるようにしてもよい。このように、マイクロプロセッサ、フラッシュライタおよびソフトウェア記憶ユニットを変更しても、同様の効果が得られるものである。
【０１４４】
＜変形例＞
実施の形態３と実施の形態４とを組み合わせる。図１１は、実施の形態３と実施の形態４とを組み合わせたときの状態を示す説明図である。
【０１４５】
上記した書換え制御情報によって、開発用マイクロプロセッサは、実施の形態３で述べた書換えフリーの状態にされ、実施の形態４で述べた起動回数制限を有するような状態に設定される。これに対して、量産用マイクロプロセッサは、書換え制御情報によって、実施の形態３で述べた書換え制限を有する状態にされ、実施の形態４で述べた起動回数フリーの状態に設定される。起動回数制限が、開発用マイクロプロセッサに設定されていても、書換えフリーとなっているため、開発段階であれば、書換えることにより、有償ソフトウェアを再インストールすることが可能である。そのため、ユーザが、製品開発段階で、開発用プロセッサを用いる際に、不自由を掛けることなく、開発用マイクロプロセッサが、量産段階で用いられるのを防ぐことが可能となる。
【０１４６】
（実施の形態５）
図１２は、実施の形態５に係わる半導体装置の構成を示すブロック図である。ここでは、半導体装置として、マイクロプロセッサを例として説明する。図１２において、１４００は、マイクロプロセッサを示している。マイクロプロセッサ１４００は、ソフトウェアを実行する実行ユニット１４０１、実行ユニット１４０１に結合され、ソフトウェアを格納するソフトウェア記憶ユニット１４０２およびライセンス管理ユニット１４０３を備えている。実施の形態１で述べたのと同様に、マイクロプロセッサは、上記した実行ユニット１４０１、ソフトウェア記憶ユニット１４０２およびライセンス管理ユニット１４０３以外に、周辺回路ユニット等を備えているが、図１２においても省略されている。また、実施の形態１と同様に、各ユニットは、１個の半導体チップに周知の半導体製造技術によって形成され、特に制限されないが、１個のパッケージに封止されている。販売者（製造者）は、半導体チップまたは半導体チップを封止したパッケージの状態で、マイクロプロセッサをユーザに提供する。
【０１４７】
この実施の形態５において、ソフトウェア記憶ユニット１４０２は、電気的に書換え可能な不揮発性メモリ（フラッシュメモリ）によって構成されている。図１２において、１１０５は、図２で説明したフラッシュライタであり、ソフトウェアをマイクロプロセッサ１４００へ提供する。
【０１４８】
実行ユニット１４０１は、ソフトウェア記憶ユニット１４０２からソフトウェアを読み出し、実行する。ソフトウェア記憶ユニット１４０２は、ライセンス管理ユニット１４０３を介して、フラッシュライタ１１０５からソフトウェアが提供され、書き込まれる（格納される）。
【０１４９】
ライセンス管理ユニット１４０３は、ソフトウェア記憶ユニット１４０２が有する領域（アドレス空間）を、複数の領域として管理する。ここでは、２個の領域として管理する例を説明する。すなわち、ソフトウェア記憶ユニット１４０２の領域を、有償ソフトウェアが格納されるダウンロード領域（以下、ＤＬアプリ領域とも称する）と、それ以外の領域（以下、ユーザ領域とも称する）に分けて、管理する。図１３は、ソフトウェア記憶ユニット１４０２のアドレス空間を示す説明図である。図１３において、ＡＲは、ソフトウェア記憶ユニット１４０２の領域（アドレス空間）を示しており、ＵＡＲは、ユーザ領域を示しており、ＤＲＡは、ＤＬアプリ領域を示している。
【０１５０】
特定の有償ソフトウェアは、ＤＬアプリ領域ＤＲＡにのみインストールすることが可能とされ、ユーザ領域ＵＡＲへのインストールは許可されない。また、ユーザが別途購入したソフトウェア、無償ソフトウェアおよび／またはユーザが作成したソフトウェアは、ＤＬアプリ領域およびユーザ領域のいずれにもインストール可能にされる。言い換えるならば、特定の有償ソフトウェアは、ＤＬアプリ領域ＤＲＡにのみ格納することが許可され、ユーザ領域ＵＡＲへの格納は許可されない。
【０１５１】
ソフトウェア記憶ユニット１４０２のどの領域を、ＤＬアプリ領域ＤＡＲとし、どの領域を、ユーザ領域ＵＡＲとするかは、ライセンス管理ユニット１４０３が記憶している。すなわち、ライセンス管理ユニット１４０３に記憶されている設定情報に従って、ＤＬアプリ領域ＤＡＲとユーザ領域ＵＡＲが定められる。ライセンス管理ユニット１４０３へのＤＬアプリ領域およびユーザ領域の設定は、マイクロプロセッサ１４００を販売者（製造者）が、ユーザへ提供する際に行う。販売者（製造者）が提供した後は、ＤＬアプリ領域およびユーザ領域の設定を変更することが困難となるようにする。例えば、実施の形態１で述べた方法（１）〜（６）のいずれかの方法で、設定することが可能である。
【０１５２】
ＤＬアプリ領域ＤＡＲおよびユーザ領域ＵＡＲを定める設定情報は、ライセンス情報と見なすことができる。そのため、図１２に示したライセンス管理ユニット１４０３が、ライセンス情報を格納したライセンス記憶ユニットを備えていると見なすことができる。
【０１５３】
なお、方法（２）を採用する場合、上記した特定のコードは、ユーザへ提供されないが、販売者（製造者）は保持している。そのため、例えば、ＤＬアプリ領域ＤＡＲとユーザ領域ＵＡＲとの記憶容量比率を変更することを、ユーザが希望した場合、あるいはユーザに提供したあと、返品され、返品されたマイクロプロセッサを別のユーザに提供する場合、販売者（製造者）が、特定のコードを用いて、記憶容量比率を変更して、提供することが可能である。
【０１５４】
図１４は、販売者（製造者）が、ユーザに提供するマイクロプロセッサ１４００の記憶容量比率を示した説明図である。図１４において、１４００−１〜１４００−４のそれぞれは、マイクロプロセッサを示している。マイクロプロセッサ１４００−１〜１４００−４のそれぞれの構成は、図１２に示したマイクロプロセッサ１４００と同じ構成を有しており、ソフトウェア記憶ユニット１４０２における記憶容量比率のみが異なっている。
【０１５５】
すなわち、マイクロプロセッサ１４００−１においては、ソフトウェア記憶ユニット１４０２における領域ＡＲが、ＤＬアプリ領域ＤＡＲとして１Ｍバイト（１ＭＢ）に割り当てられ、ユーザ領域ＵＡＲとして７Ｍバイトに割り当てられている。マイクロプロセッサ１４００−２においては、ソフトウェア記憶ユニット１４０２における領域ＡＲが、ＤＬアプリ領域ＤＡＲとして２Ｍバイト（２ＭＢ）に割り当てられ、ユーザ領域ＵＡＲとして６Ｍバイトに割り当てられている。また、マイクロプロセッサ１４００−３においては、ソフトウェア記憶ユニット１４０２における領域ＡＲが、ＤＬアプリ領域ＤＡＲとして４Ｍバイト（４ＭＢ）に割り当てられ、ユーザ領域ＵＡＲとして４Ｍバイトに割り当てられている。同様に、マイクロプロセッサ１４００−４においては、ソフトウェア記憶ユニット１４０２における領域ＡＲの全ての領域が、ＤＬアプ領域ＤＡＲ（８Ｍバイト）に割り当てられている。
【０１５６】
このように、割り当てる領域の容量比率を、変更することにより、同じ構成を有したマイクロプロセッサを多種類提供することが、容易に可能となる。この場合、ＤＬアプリ領域ＤＡＲの容量（記憶容量）が、大きい程、多くの有償ソフトウェアを記憶（格納）あるいはより大きなサイズの有償ソフトウェアを記憶することが可能となる。すなわち、ＤＬアプリ領域ＤＡＲが大きい程、高いライセンス料金が、マイクロプロセッサ１４００の価格（ハードウェア価格）に付加されて、マイクロプロセッサの価格となる。その結果、図１４に示すように、マイクロプロセッサ１４００−１から１４００−４へ向けて、マイクロプロセッサの販売価格が高額になる。この場合、ユーザは、インストールする有償ソフトウェアの種類、サイズ等を考量して、マイクロプロセッサ１４００−１〜１４００−４から、任意のマイクロプロセッサを選択し、購入することになる。
【０１５７】
＜ライセンス管理ユニット１４０２＞
次に、ライセンス管理ユニット１４０２の動作を、説明する。ここでは、ライセンス管理ユニット１４０２の機能が、実行ユニット１４０１とは異なる実行ユニット（図示せず）と、図示しない実行ユニットにより実施されるソフトウェアによって達成する場合を説明する。
【０１５８】
図１５は、ライセンス管理ユニット１４０２の動作を示すフローチャート図である。図１５において、ステップＳ６０で、ダウンロードするソフトウェアの指定と、ソフトウェアのダウンロードが指示される。これにより、フラッシュライタ１１０５から、指定されたソフトウェアが、マイクロプロセッサ１４００へ提供される。図１５では、ステップＳ６０は、ダウンロード開始として示されている。
【０１５９】
ライセンス管理ユニット１４０３は、ステップＳ６１において、提供されたソフトウェアが、特定の有償ソフトウェアであるか否かを判定する。すなわち、ダウンロードするソフトウェアが、ＤＬアプリ領域ＤＡＲに格納される特定の有償ソフトウェア（以下、特定のＤＬアプリとも称する）であるかを判定する。判定の結果、特定のＤＬアプリではないと判定した場合（Ｎｏ）、ライセンス管理ユニット１４０３は、ステップＳ６４を実行する。この場合、ステップＳ６４において、ライセンス管理ユニット１４０３は、提供されているソフトウェアを、ソフトウェア記憶ユニット１４０２内のユーザ領域ＵＡＲへ書き込む（格納する）。ユーザ領域ＵＡＲへ格納することにより、実行ユニット１４０１が、実行可能となるため、ステップＳ６４においてダウンロードが開始されたことになる。
【０１６０】
これに対して、ステップＳ６１において、ライセンス管理ユニット１４０１が、特定のＤＬアプリであると判定した場合、次にステップＳ６２が、ライセンス管理ユニット１４０１によって実行される。ステップＳ６２において、ライセンス管理ユニット１４０３は、フラッシュライタ１１０５から提供された特定のＤＬアプリが、ＤＬアプリ領域ＤＡＲにダウンロード可能かを判定する。ライセンス管理ユニット１４０３は、例えば、ＤＬアプリ領域ＤＡＲに、既に別のＤＬアプリが格納されており、提供された特定のＤＬアプリを格納する領域の記憶容量が不足している場合には、ダウンロード不可能と判定する（Ｎｏ）。この場合、ライセンス管理ユニット１４０３は、次にステップＳ６３を実施する。これに対して、ダウンロード可能と判定した場合（Ｙｅｓ）、ライセンス管理ユニット１４０３は、ステップＳ６４を実施する。
【０１６１】
ステップＳ６２に続いて、ステップＳ６４を実施する場合、ライセンス管理ユニット１４０３は、ユーザ領域ＵＡＲではなく、ＤＬアプリ領域ＤＡＲへ提供されたソフトウェア（特定のＤＬアプリ）を書き込む（格納する）。すなわち、ステップＳ６４において、ＤＬアプリ領域ＤＡＲへ、特定のＤＬアプリのダウンロードが開始する。
【０１６２】
一方、ステップＳ６２において、ダウンロード不可能と判定した場合（Ｎｏ）、ステップＳ６３において、ライセンス管理ユニット１４０３は、ダウンロード失敗として、ソフトウェア記憶ユニット１４０２へのソフトウェアの書き込みを実施しない。また、エラーが発生したことを、実行ユニット１４０１へ通知する。
【０１６３】
このように、ライセンス管理ユニット１４０３によって、ダウンロードするソフトウェアの判定とソフトウェア記憶ユニット１４０２への書き込みを、ダウンロードするソフトウェア毎に実施することにより、ＤＬアプリ領域ＤＡＲには、特定の有償ソフトウェア（ＤＬアプリ）が格納され、実行ユニット１４０１によって実行可能にされる。
【０１６４】
＜ハードウェアによる制御＞
図１５では、ソフトウェアによって、ソフトウェア記憶ユニット１４０２を制御する例を説明したが、ソフトウェア記憶ユニット１４０２の制御は、ハードウェアで実現してもよい。すなわち、論理回路等のハードウェアを用いて、ソフトウェア記憶ユニット１４０２を制御するようにしてもよい。図１６は、ソフトウェア記憶ユニット１４０２をハードウェアによって制御する場合の構成を示すブロック図である。
【０１６５】
図１６には、ソフトウェア記憶ユニット１４０２に関連する部分の構成のみが示されている。図１６において、１５００は、フラッシュメモリを示している。図１６においては、フラッシュメモリ１５００が、ソフトウェア記憶ユニット１４０２において、ソフトウェアを格納する部分に該当する。フラッシュメモリ１５００は、アドレス端子、ライト端子、リード端子およびデータ端子を備えている。図１６には、これらの端子のうち、アドレス端子ＡＤＴとライト端子ＷＴのみが示されており、リード端子およびデータ端子は省略されている。フラッシュメモリ１５００においては、アドレス端子ＡＤＴにアドレス信号が供給され、ライト端子ＷＴにハイレベルのライト信号が供給されることにより、アドレス端子ＡＤＴに供給されているアドレス信号によって指定されている領域に、データ端子からのデータが、電気的に書き込まれ、格納される。
【０１６６】
ライセンス管理ユニット１４０２は、ＤＬアプリ領域ＤＡＲとして割り当てられたアドレスの範囲を指定するＤＬ領域指定信号ＤＬＤと、ダウンロードするソフトウェアが、特定のＤＬアプリであるか否かを示すＤＬアプリ検出信号ＤＬＴを形成する。ＤＬ領域指定信号ＤＬＤは、先に説明した方法（１）〜（６）によって設定された情報に基づいて、形成される。また、このＤＬ領域指定信号ＤＬＤによって、指定される領域が、図１４に示したように、マイクロプロセッサ１４００−１〜１４００−４によって異なっている。ＤＬアプリ検出信号ＤＬＴは、例えば図２３に示した属性情報部ＡＴＢに格納されている情報によって、特定のＤＬアプリであることが示されていた場合、ライセンス管理ユニット１４０３が形成する。ライセンス管理ユニット１４０２が形成するＤＬ領域指定信号ＤＬＤは、マイクロプロセッサの価格によって変わるため、ライセンス情報と見なすことができる。
【０１６７】
図１６の例では、アドレス信号ＡＤおよびライト信号ＷＥは、実行ユニット１４０１が形成する。すなわち、フラッシュメモリ１５００に対して、ソフトウェアを書き込む領域を示すアドレス信号ＡＤは、実行ユニット１４０１から出力され、書き込みを指示するライト信号ＷＥも、実行ユニット１４０１から出力される。勿論、アドレス信号ＡＤおよびライト信号ＷＥも、ライセンス管理ユニット１４０３から出力されるようにしてもよい。
【０１６８】
図１６において、１５０１は、比較回路である。比較回路１５０１は、アドレス信号ＡＤとＤＬ指定領域信号ＤＬＤとを比較する。ＤＬ指定領域信号ＤＬＤによって示されているアドレスの範囲内を、アドレス信号ＡＤが示しているとき、比較回路１５０１は、ハイレベルを出力する。一方、ＤＬ指定領域信号ＤＬＤによって示されているアドレスの範囲外を、アドレス信号ＡＤが示しているとき、比較回路１５０１は、ロウレベルを出力する。ライセンス管理ユニット１４０３は、フラッシュライタ１１０５から特定のＤＬアプリが提供されたとき、ＤＬアプリ検出信号ＤＬＴをハイレベルにし、特定のＤＬアプリでない場合には、ＤＬアプリ検出信号ＤＬＴをロウレベルにする。また、ライト信号ＷＥは、書き込みを行う場合、ハイレベルとなる。
【０１６９】
比較回路１５０１の出力は、位相反転してアンド回路１５０２の一方の端子に供給され、アンド回路１５０２の他方の端子には、ＤＬアプリ検出信号ＤＬＴが供給される。アンド回路１５０２の出力は、位相反転され、アンド回路１５０３の一方の入力に供給され、アンド回路１５０３の他方の入力には、ライト信号ＷＥが供給される。ここで、アンド回路１５０２の出力は、エラー信号として実行ユニット１４０１へ供給される。また、フラッシュメモリ１５００のアドレス端子ＡＤＴには、アドレス信号ＡＤが供給され、ライト端子ＷＴには、アンド回路１５０３の出力が供給される。
【０１７０】
特定のＤＬアプリが、フラッシュライタ１１０５から提供されると、そのＤＬアプリを書き込むアドレスが、アドレス信号ＡＤとして供給される。このとき、特定のＤＬアプリであるため、ライセンス管理ユニット１４０３は、ハイレベルのＤＬアプリ検出信号ＤＬＴを出力する。このときのアドレス信号ＡＤが、ＤＬ指定領域信号ＤＬＤによって示されているアドレスの範囲内であれば、比較回路１５０１の出力信号はハイレベルとなる。アンド回路１５０２には、比較回路１５０１の出力信号が位相反転して、ロウレベルが供給されるため、アンド回路１５０２の出力信号はロウレベルとなる。そのため、エラー信号も、ロウレベルとなる。図１６の例では、エラー信号がハイレベルのとき、エラーであると判定される。そのため、この状態では、実行ユニット１４０１は、エラーとして認識しない。
【０１７１】
アンド回路１５０２の出力信号がロウレベルとなることにより、アンド回路１５０３には、位相反転されたアンド回路１５０２の出力信号であるハイレベルと、書き込みを指示するハイレベルのライト信号ＷＥが供給される。これにより、アンド回路１５０３は、ハイレベルの信号を、フラッシュメモリ１５００のライト端子ＷＴに供給する。その結果、フラッシュメモリ１５００には、アドレス端子ＡＤＴに供給されているアドレス信号ＡＤによって指定される領域に、書き込みが行われることになる。
【０１７２】
これに対して、ライセンス管理ユニット１４０３が、特定のＤＬアプリであることを示すハイレベルのＤＬアプリ検出信号ＤＬＴを出力しているときに、アドレス信号ＡＤが、ＤＬ指定領域信号ＤＬＤによって示されているアドレスの範囲外を指定していた場合には、アンド回路１５０２の出力信号はハイレベルとなる。すなわち、エラー信号がハイレベルとなり、実行ユニット１４０１は、エラーが発生したことを認識する。また、アンド回路１５０２の出力信号がハイレベルとなることによって、アンド回路１５０３の出力信号はロウレベルとなる。その結果、フラッシュメモリ１５００のライト端子ＷＴにはロウレベルが供給され、書き込みが禁止される。
【０１７３】
このようにして、特定のＤＬアプリをダウンロードするとき、特定のＤＬアプリのアドレスが、ＤＬ指定領域信号ＤＬＤによって示されているアドレスの範囲内にあり、特定のＤＬアプリであると判定された場合に、特定のＤＬアプリは、フラッシュメモリ１５００内のＤＬアプリ領域ＤＡＲに書き込まれることになる。これに対して、特定のＤＬアプリのアドレスが、ＤＬ指定領域信号ＤＬＤによって示されているアドレスの範囲の外を示している場合には、特定のＤＬアプリは、フラッシュメモリ１５００に書き込まれず、エラーを示すエラー信号が発生する。
【０１７４】
図１７は、ソフトウェア記憶ユニット１４０２をハードウェアによって制御する場合の他の構成を示すブロック図である。図１６と同様に、図１７には、上記したソフトウェア記憶ユニット１４０２に関連する部分のみが示されている。図１７において、１６０４は、フラッシュメモリを示しており、１６００は、ライトバッファを示している。図１７に示した例においても、ソフトウェア記憶ユニット１４０２において、ソフトウェアを格納する部分が、フラッシュメモリ１６０４に該当する。フラッシュメモリ１６０４は、書き込み速度が比較的遅い。そのため、図１７では、ライトバッファ１６００が設けられている。
【０１７５】
ライトバッファ１６００は、例えばスタテック型メモリによって構成され、フラッシュメモリ１６００に比べて高速に動作する。ライトバッファ１６００は、アドレス端子、バリッドフラグ端子、データ端子を備えている。図１７には、アドレス端子およびバリッドフラグ端子が、ＡＤＴおよびＶ−Ｆとして示されており、データ端子は省略されている。提供されたソフトウェアは、フラッシュメモリ１６０４ではなく、ライトバッファ１６００へ先ず書き込まれる。ライトバッファ１６００は、領域に対応したバリッドビットを備えており、バリッドビットは、対応する領域に書き込まれたデータが有効データであるか否かによって設定される。例えば、対応する領域に書き込まれたデータが有効データであった場合、バリッドビットはハイレベルに設定され、無効データであった場合には、ロウレベルに設定される。
【０１７６】
バリッドビットが有効データであることを示している場合（ハイレベル）、ライトバッファ１６００は、適切なタイミングで、バリッドビットに対応する領域に書き込まれているデータを、フラッシュメモリ１６０４へ転送し、フラッシュメモリ１６０４へ書き込み、格納する。ライトバッファ１６００が、比較的高速に動作するため、書き込みの高速化を図ることが可能となる。なお、バリッドビットが無効データであることを示している場合（ロウレベル）、このバリッドビットに対応する領域に格納されているデータは、フラッシュメモリ１６０４へ転送されず、フラッシュメモリ１６０４への書き込みは実施されない。
【０１７７】
図１６に示した例と同様に、図１７に示した例においても、ライセンス管理ユニット１４０３から、ＤＬ領域指定信号ＤＬＤおよびＤＬアプリ検出信号ＤＬＴが出力される。また、実行ユニット１４０１からアドレス信号ＡＤが出力される。図１７において、１６０１は、比較回路であり、比較回路１６０１は、アドレス信号ＡＤとＤＬ領域指定信号ＤＬＤとを比較する。比較回路１６０１は、アドレス信号ＡＤが、ＤＬ領域指定信号ＤＬＤによって指定されている領域内を指定しているとき、出力信号をハイレベルにし、ＤＬ領域指定信号ＤＬＤによって指定されている領域外を指定しているとき、出力信号をロウレベルにする。
【０１７８】
比較回路１６０１の出力信号は、位相反転され、アンド回路１６０２の一方の入力に供給され、アンド回路１６０２の他方の入力には、ＤＬアプリ検出信号ＤＬＴが供給される。アンド回路１６０２の出力信号は、ナンド回路１６０３の一方の入力に供給されるとともに、エラー信号として、実行ユニット１４０１へ供給される。ナンド回路１６０３の他方の入力には、ライトバッファ１６００からバリッドビットの状態を示すバリッドフラグＶＦＧが位相反転されて、供給されている。このナンド回路１６０３の出力信号は、ライトバッファ１６００のバリッドフラグ端子Ｖ−Ｆに供給される。
【０１７９】
フラッシュライタ１１０５から、特定のＤＬアプリが提供されると、ライセンス管理ユニット１４０３は、ＤＬアプリ検出信号ＤＬＴをハイレベルにする。このとき、アドレス信号ＡＤは、ＤＬアプリが格納されるフラッシュメモリ１６０４の領域を指定するアドレス信号である。アドレス信号ＡＤによって指定されている領域が、ＤＬ領域指定信号ＤＬＤによって指定されている範囲内であれば、比較回路１６０１の出力信号がハイレベルとなる。比較回路１６０１からのハイレベルの出力信号は、位相反転されて、アンド回路１６０２へ供給されるため、アンド回路１６０２の出力信号は、ロウレベルとなる。その結果、エラー信号は、エラーが発生していないことを示すロウレベルとなり、実行ユニット１４０１へエラーが発生していないことが通知される。
【０１８０】
このとき、アドレス信号ＡＤＴによって指定されているライトバッファ１６００の領域に有効なデータが格納されていなければ、ライトバッファ１６００は、ロウレベルのバリッドフラグＶＦＧを出力する。これにより、ナンド回路１６０３には、アンド回路１６０２からのロウレベルの出力信号と、位相反転により形成されたハイレベルのバリッドフラグＶＦＧが供給されることになり、ナンド回路１６０３は、ハイレベルの信号をバリッドフラグ端子Ｖ−Ｆへ供給する。その結果、このときのアドレス信号ＡＤＴによって指定されているライトバッファ１６００内の領域に、ＤＬアプリであるソフトウェアが格納されるとともに、アドレス信号ＡＤＴによって指定されている領域に対応するバリッドビットに、有効データであることを示すハイレベルが格納される。バリッドビットが、ハイレベルに設定されることにより、格納したＤＬアプリは、適切なタイミングで、フラッシュメモリ１６０４へ転送され、格納される。
【０１８１】
これに対して、例えば、アドレス信号ＡＤによって指定されている領域が、ＤＬ領域指定信号ＤＬＤによって指定されている領域外の場合、比較回路１６０１の出力信号はロウレベルとなる。このとき、ＤＬアプリ検出信号ＤＬＴがハイレベルとなると、アンド回路１６０２の出力信号は、ハイレベルとなる。これにより、ハイレベルのエラー信号が、実行ユニット１４０１に供給され、実行ユニット１４０１は、エラーが発生したことを認識することができる。ナンド回路１６０３には、アンド回路１６０２からハイレベルの出力信号と、位相反転により形成されたハイレベルのバリッドフラグＶＦＧが供給されるため、ナンド回路１６０３の出力信号は、ロウレベルとなる。その結果、このとき、アドレス信号ＡＤによって指定されている領域に対応するバリッドフラグは、ロウレベルに設定されることになる。バリッドフラグがロウレベルに設定されることにより、このときのアドレス信号ＡＤによって指定された領域に格納されたデータは、フラッシュメモリ１６０４へ転送されず、フラッシュメモリ１６０４へは書き込まれない。
【０１８２】
このようにして、特定のＤＬアプリをダウンロードするとき、特定のＤＬアプリのアドレスが、ＤＬ指定領域信号ＤＬＤによって示されているアドレスの範囲内にあり、特定のＤＬアプリであると判定された場合に、バリッドビットが有効データとして設定される。有効データとして設定された領域に書き込まれたＤＬアプリが、フラッシュメモリ１６０４のＤＬアプリ領域ＤＡＲに書き込まれることになる。ライトバッファ１６００を用いることにより、書き込みの高速化を図ることが可能となる。これに対して、特定のＤＬアプリのアドレスが、ＤＬ指定領域信号ＤＬＤによって示されているアドレスの範囲の外を示している場合には、特定のＤＬアプリは、フラッシュメモリ１６０４に書き込まれず、エラーを示すエラー信号が発生する。
【０１８３】
半導体装置としてマイクロプロセッサ１４０１を例にして説明したが、半導体装置は、これに限定されるものではない。
【０１８４】
さらに、マイクロプロセッサ１４０１の代わりに、パーソナルコンピューターあるいはスマートフォンのような携帯端末を用いてもよい。また、フラッシュライタ１１０５の代わりに、光デイスク再生装置あるいは通信回線を介して有償ソフトウェアを提供するソフトウェア記憶装置を用いてもよい。また、ソフトウェア記憶ユニット１４０２は、ハードディスクあるいはメモリカードを用いるようにしてもよい。このように、マイクロプロセッサ、フラッシュライタおよびソフトウェア記憶ユニットを変更しても、同様の効果が得られるものである。
【０１８５】
＜変形例＞
実施の形態５は、例えば実施の形態１または実施の形態２と組み合わせてもよい。すなわち、図２に示したライセンス記憶ユニット１１０３（図６に示したライセンス記憶部１３０５）を、実施の形態５で説明した構成に追加する。この場合、ライセンス管理ユニット１４０３によって、ライセンス記憶ユニット１１０３に格納されているライセンス情報の更新を実施するとともに、ライセンス情報によって示されている有償ソフトウェアインストール可能数の確認も実施する。
【０１８６】
その結果、インストール可能数とＤＬアプリ領域ＤＡＲの記憶容量の両方によって、ソフトウェア記憶ユニット１４０２内のＤＬアプリ領域ＤＡＲへのソフトウェアの格納が制御されることになる。この場合、ライセンス記憶ユニット１３０３に格納されているライセンス情報が、例えば不正に変更されたとしても、ＤＬアプリ領域ＤＡＲの記憶容量が、制限されているため、被害の低減を図ることが可能である。
【０１８７】
（実施の形態６）
この実施の形態６においては、実施の形態１〜５と異なり、ライセンス管理ユニットによって、実行ユニットによる有償ソフトウェアの実行が制御される。
【０１８８】
実施の形態６に係わるマイクロプロセッサの構成は、実施の形態５で説明したマイクロプロセッサの構成と類似している。主に異なる部分は、ライセンス管理ユニットである。図１２を参照にして説明すると、実施の形態６に係わるマイクロプロセッサ１４００は、実行ユニット１４０１と、ソフトウェア記憶ユニット１４０２およびライセンス管理ユニット１４０３を備えている。実施の形態５と同様に、この実施の形態に係わるマイクロプロセッサ１４００は、上記したユニット以外に複数のユニットを備えているが、ここでも省略する。
【０１８９】
また、この実施の形態６においても、実施の形態５と同様に、ソフトウェア記憶ユニット１４０２の領域（アドレス空間）ＡＲは、図１３に示すように、ユーザ領域ＵＡＲとＤＬアプリ領域ＤＡＲに分けられており、図１４に示したように、ユーザ領域ＵＡＲとＤＬアプリ領域ＤＡＲとの記憶容量比率が、互いに異なるマイクロプロセッサが、販売者（製造者）から提供される。ユーザ領域ＵＡＲおよびＤＬアプリ領域ＤＡＲの容量比率は、実施の形態５と同様に、実施の形態１で説明した方法（１）〜（６）によって定める。
【０１９０】
次に、実施の形態６に係わるライセンス管理ユニット１４０３の動作を、図１８を用いて説明する。図１８は、この実施の形態に係わるライセンス管理ユニット１４０３の動作を示すフローチャート図である。
【０１９１】
ステップＳ７０において、実行ユニット１４０１が、ソフトウェア記憶ユニット１４０２からソフトウェアＳＷを読み込む（呼び出す）。例えば、所定のソフトウェアを、実行ユニット１４０１が実行する過程において、呼び出しに関する命令（例えば、ジャンプ命令ｊｕｍｐ、コール命令ｃａｌｌ等）によって、ソフトウェア（ＳＷ）を呼び出す。
【０１９２】
ライセンス管理ユニット１４０３は、実行ユニット１４０１によって呼び出されたソフトウェア（対象ＳＷ）が、ＤＬアプリ（有償ソフトウェア）か否かを、ステップＳ７１において判定する。ＤＬアプリか否かの判定は、例えば、次のように実施する。すなわち、このＤＬアプリを、ソフトウェア記憶ユニット１４０２へ格納するとき、このソフトウェアの属性情報部ＡＴＢに格納されている情報、例えばユニーク番号ＩＤを、ライセンス管理ユニット１４０３に格納しておく。このとき、このソフトウェアのアドレス、例えば開始アドレスを、ユニーク番号ＩＤと対応するように、ライセンス管理ユニット１４０３に格納しておく。ステップＳ７１において、ライセンス管理ユニット１４０３は、呼び出しに関する命令から、ソフトウェアの開始アドレスを取得し、取得した開始アドレスを基にして、ライセンス管理ユニット１４０３に格納されている開始アドレスを検索する。検索によって一致した開始アドレスに対応したユニーク番号ＩＤが見つかれば、ＤＬアプリ（有償ソフトウェア）であると判定し、見つからなければ、ＤＬアプリではないと判定する。
【０１９３】
ステップＳ７１において、ソフトウェアが、ＤＬアプリであると判定した場合（Ｙｅｓ）、ライセンス管理ユニット１４０３は、次にステップＳ７２を実行する。これに対して、ステップＳ７１において、ソフトウェアが、ＤＬアプリでないと判定した場合（Ｎｏ）、ライセンス管理ユニット１４０３は、次にステップＳ７４を実行する。
【０１９４】
ステップＳ７２において、実行ユニット１４０１がＤＬアプリを実行するときのアドレス（実行アドレス）が、ＤＬアプリ領域ＤＲＡ内か否かを、ライセンス管理ユニット１４０３が判定する。ここで、ＤＬアプリ領域ＤＲＡの範囲は、図１４に示したように、マイクロプロセッサの種類（１４００−１〜１４００−４）によって、異なっている。ステップＳ７２において、実行アドレスが、ＤＬアプリ領域ＤＲＡ内と判定した場合（Ｙｅｓ）、ライセンス管理ユニット１４０３は、次にステップＳ７４を実行する。これに対して、ステップＳ７２において、実行アドレスは、ＤＬアプリ領域ＤＲＡの外であると判定した場合（Ｎｏ）、ライセンス管理ユニット１４０３は、次にステップＳ７３を実行する。
【０１９５】
ステップＳ７３において、ライセンス管理ユニット１４０３は、実行ユニット１４０１が、当該ソフトウェアを実行するのを禁止する。また、ステップＳ７３において、ライセンス管理ユニット１４０３は、実行ユニット１４０１に対してエラーを通知する。
【０１９６】
ステップＳ７４においては、ライセンス管理ユニット１４０３は、実行ユニット１４０１が、当該ソフトウェアの呼び出しおよび実行を許可する。これにより、実行ユニット１４０１は、所定のソフトウェアを実行することが可能となる。
【０１９７】
ステップＳ７０において、呼び出されたソフトウェアが、ＤＬアプリであった場合、ステップＳ７２が実行される。ステップＳ７２において、ＤＬアプリの実行アドレスが、ＤＬアプリ領域内であれば、ステップＳ７４において、実行ユニット１４０１がＤＬアプリを実行することが許可される。これに対して、ＤＬアプリの実行アドレスが、ＤＬアプリ領域の外であれば、ステップＳ７３が実行される。この場合には、実行ユニット１４０１によってＤＬアプリを実行することが禁止されることになる。また、ＤＬアプリでなければ、ステップＳ７４において、実行ユニット１４０１による実行が許可されることになる。
【０１９８】
このようにして、ライセンス管理ユニット１４０３によって、実行ユニット１４０１によるＤＬアプリ（有償ソフトウェア）の実行が制御される。これにより、例えば、ユーザ領域ＵＡＲにＤＬアプリ（有償ソフトウェア）を格納する等、不正を行った場合に、ＤＬアプリが実行されてしまうのを防ぐことが可能となる。
【０１９９】
＜ハードウェアによる制御＞
図１８では、ソフトウェアによって、ＤＬアプリの実行を制御する例を説明したが、ＤＬアプリの実行の制御は、ハードウェアで実現してもよい。すなわち、論理回路等のハードウェアを用いて、制御するようにしてもよい。図１９は、ＤＬアプリの実行を、ハードウェアによって制御する場合の構成を示すブロック図である。
【０２００】
図１９において、１７００は、フラッシュメモリを示している。このフラッシュメモリ１７００が、ソフトウェア記憶ユニット１４０１に相当する。そのため、フラッシュメモリ１７００の記憶領域が、ソフトウェア記憶ユニット１４０１の記憶領域ＡＲとなり、フラッシュメモリ１４００の記憶領域が、ユーザ領域ＵＡＲとＤＬアプリ領域ＤＡＲに分けられることになる。
【０２０１】
フラッシュメモリは、図１６において説明したように、アドレス端子、ライト端子、リード端子およびデータ端子を備えている。図１９には、アドレス端子がＡＤＴとして示され、リード端子がＲＴとして示されている。図１９では、ライト端子およびデータ端子は省略されている。
【０２０２】
フラッシュメモリ１７００は、アドレス端子ＡＤＴに供給されたアドレス信号によって指示された領域に格納されているデータが、リード端子ＲＴにハイレベルのリード信号ＲＥが供給されることにより、読み出される。読み出されたデータは、図示しないデータ端子を介して、実行ユニット１４０１へ供給される。実行ユニット１４０１は、供給されたデータを命令として実行する。これにより、マイクロプロセッサ１４００が所定の動作を行うことになる。
【０２０３】
ライセンス管理ユニット１４０３は、ＤＬアプリ領域ＤＡＲを指定するＤＬ領域指定信号ＤＬＤと、ＤＬアプリか否かを示すＤＬアプリ検出信号ＤＬＴとを出力する。ここで、ＤＬ領域指定信号ＤＬＤは、フラッシュメモリ１７００において割り当てられたＤＬアプリ領域ＤＲＡの範囲を示すアドレス信号である。また、ＤＬアプリ検出信号ＤＬＴは、図１８のステップＳ７１において、説明したようにして形成される信号であって、ＤＬアプリであった場合、ハイレベルになり、ＤＬアプリでない場合には、ロウレベルとなる。また、図１９において、アドレス信号ＡＤは、実行ユニット１４０１によって形成され、リード信号ＲＥも、実行ユニット１４０１によって形成される。
【０２０４】
図１９において、１７０１は、比較回路であり、比較回路１７０１は、実行ユニット１４０１からのアドレス信号ＡＤと、ライセンス管理ユニット１４０３からのＤＬ領域指定信号ＤＬＤとを比較する。比較により、アドレス信号ＡＤによって指定される領域が、ＤＬ領域指定信号ＤＬＤによって指定される領域内に存在するとき、比較回路１７０１は出力信号をハイレベルにする。一方、アドレス信号ＡＤによって指定される領域が、ＤＬ領域指定信号ＤＬＤによって指定される領域の外に存在するとき、比較回路１７０１は出力信号をロウレベルにする。
【０２０５】
比較回路１７０１からの出力信号は、位相反転されて、アンド回路１７０２の一方の入力に供給される。アンド回路１７０２の他方の入力には、ＤＬアプリ検出信号ＤＬＴが供給され、アンド回路１７０２の出力信号は、位相反転して、アンド回路１７０３の一方の入力に供給される。また、アンド回路１７０２の出力信号は、エラー信号として、実行ユニット１４０１へ供給される。アンド回路１７０３の他方の入力には、実行ユニット１４０１からのリード信号ＲＥが供給され、アンド回路１７０３の出力信号は、フラッシュメモリ１７００のリード端子ＲＴに供給される。
【０２０６】
実行ユニット１４０１が、ソフトウェアを実行するとき、実行ユニット１４０１は、ソフトウェアの実行アドレスを、アドレス信号ＡＤをして出力する。また、ソフトウェアをフラッシュメモリ１７００から読み出すために、リード信号ＲＥをハイレベルにする。
【０２０７】
実行ユニット１４０１から出力されている実行アドレスであるアドレス信号ＡＤが、ＤＬ領域指定信号ＤＬＤによって指定されている領域内を指定していれば、比較回路１７０１からは、ハイレベルの出力信号が出力される。アンド回路１７０２の一方の入力には、このハイレベルが、位相反転されて、ロウレベルが供給されることになる。その結果、アンド回路１７０２の出力信号はロウレベルとなる。実行ユニット１４０１は、エラー信号がハイレベルのとき、エラーが発生しているとして認識する。そのため、ロウレベルのエラー信号が供給されている状態では、エラーは発生していないと認識する。
【０２０８】
アンド回路１７０２から出力されているロウレベルの出力信号は、再び位相反転され、アンド回路１７０３の一方の入力に供給される。このとき、実行ユニット１４０１は、ソフトウェアを読み出すために、リード信号をハイレベルにしている。その結果、アンド回路１７０３は、ハイレベルの出力信号を、フラッシュメモリ１７００のリード端子ＲＴに供給する。これにより、フラッシュメモリ１７００は、実行アドレスであるアドレス信号ＡＤによって指定された領域に格納されているデータを、実行ユニット１４０１へ供給する。実行ユニット１４００は、供給されたデータをソフトウェアの命令として実行する。
【０２０９】
これによって、ＤＬアプリ（有償ソフトウェア）を、ＤＬ領域指定信号ＤＬＤによって指定される領域から読み出して、実行ユニット１４０１は実行することが可能とされる。
【０２１０】
これに対して、実行ユニット１４０１からのアドレス信号ＡＤが、ＤＬ領域指定信号ＤＬＤによって指定される領域の外を指定していた場合、比較回路１７０１の出力信号は、ロウレベルとなる。ＤＬアプリ検出信号ＤＬＴがハイレベルであれば、アンド回路１７０２の出力信号は、ハイレベルとなる。その結果、実行ユニット１４０１は、エラーが発生したと認識する。また、アンド回路１７０２の出力信号がハイレベルとなることによって、アンド回路１７０３の出力信号はロウレベルとなる。すなわち、フラッシュメモリ１７００のリード端子ＲＴにロウレベルのリード信号が供給されることになる。その結果、フラッシュメモリ１７００からは、データが出力されず、実行ユニット１４０１へのソフトウェアの供給が停止される。すなわち、実行ユニット１４０１によるＤＬアプリ（有償ソフトウェア）の実行が禁止される。
【０２１１】
このように、ＤＬアプリ（有償ソフトウェア）が、ＤＬ領域指定信号ＤＬＤによって指定される領域から読み出された場合には、実行ユニット１４０１による実行が許可され、ＤＬ領域指定信号ＤＬＤによって指定される領域の外から読み出された場合には、実行ユニット１４０１による実行が禁止されることになる。
【０２１２】
図２０は、ＤＬアプリの実行をハードウェアによって制御する場合の他の構成を示すブロック図である。
【０２１３】
図２０において、１８００は、命令キューを示している。命令キュー１８００には、ソフトウェア記憶ユニット１４０３から、順次命令が格納され、実行ユニット１４０１へ、供給される。命令キュー１８００は、フラッシュ端子ＦＬＴを備えている。このフラッシュ端子ＦＬＴにハイレベルのフラッシュ信号を供給することにより、命令キュー１８００に格納されている全ての命令が消去される。なお、図２０では、ソフトウェア記憶ユニット１４０２から命令キュー１８００への経路は省略されている。
【０２１４】
図２０に示したアドレス信号ＡＤ、ＤＬ領域指定信号ＤＬＤ、ＤＬアプリ検出信号ＤＬＴおよびエラー信号は、図１９に示したそれぞれの信号と同じであるため、説明は省略する。
【０２１５】
図２０において、１８０１は、比較回路であり、比較回路１８０１は、実行ユニット１４０１からのアドレス信号ＡＤと、ＤＬ領域指定信号ＤＬＤとを比較する。比較回路１８０１は、アドレス信号ＡＤが、ＤＬ領域指定信号ＤＬＤによって指定されている領域の外を指定して場合、ロウレベルの出力信号を出力する。これに対して、アドレス信号ＡＤが、ＤＬ領域指定信号ＤＬＤによって指定されている領域内を指定して場合、比較回路１８０１は、ハイレベルの出力信号を出力する。比較回路１８０１の出力信号は、位相反転され、アンド回路１８０２の一方の入力に供給され、アンド回路１８０２の他方の入力には、ＤＬアプリ検出信号ＤＬＴが供給される。アンド回路１８０２の出力信号は、命令キュー１８００のフラッシュ端子ＦＬＴにフラッシュ信号として供給されるとともに、エラー信号として、実行ユニット１４０１へ供給される。
【０２１６】
実行ユニット１４０１が、ＤＬアプリ（有償ソフトウェア）を実行する場合、ＤＬアプリ検出信号ＤＬＴがハイレベルとなる。実行ユニット１４０１が、実行するＤＬアプリを、ＤＬアプリ領域ＤＡＲの外、すなわちユーザ領域ＵＡＲから読み出す場合、アドレス信号ＡＤは、ＤＬ領域指定信号ＤＬＤによって指定されている領域の外を指定することになる。その結果、比較回路１８０１の出力信号は、ロウレベルとなり、アンド回路１８０２の出力信号はハイレベルとなる。すなわち、フラッシュ信号がハイレベルとなり、命令キュー１８００に格納されていた全ての命令が削除される。これにより、実行ユニット１４０１が、ＤＬアプリを実行することが禁止される。また、このときには、エラー信号がハイレベルとなるため、実行ユニット１４０１は、エラーが発生したことを認識することができる。
【０２１７】
これに対し、ＤＬアプリを、ＤＬアプリ領域ＤＡＲから読み出す場合には、アドレス信号ＡＤは、ＤＬ領域指定信号ＤＬＤによって指定されている領域内を指定することになる。その結果、比較回路１８０１の出力信号はハイレベルとなり、命令キュー１８００のフラッシュ端子ＦＬＴには、ロウレベルのフラッシュ信号が供給され、実行ユニット１４０１には、ロウレベルのエラー信号が供給されることになる。これにより、命令キュー１８００に格納されている命令は削除されず、実行ユニット１４０１へ供給され、実行されることになる。すなわち、実行ユニットによるＤＬアプリ（有償ソフトウェア）の実行が許可される。また、実行ユニット１４０１は、エラー信号がロウレベルであるため、エラーは発生していないことを認識することができる。
【０２１８】
図２０に示した例では、命令キュー１８００に格納されている命令を削除することにより、実行ユニット１４０１がＤＬアプリを実行することが禁止されることになる。
【０２１９】
実行ユニット１４０１は、エラー信号によってエラーが発生したことを認識した場合、エラー処理用のソフトウェアを実行する。このエラー処理用のソフトウェアを実行することにより、種々のエラー対策を行うことが可能である。例えば、図２０に示した例では、エラーが発生したとき、命令キュー１８００に格納されている全ての命令を消去することを説明したが、エラー処理のソフトウェアにより、種々の対策を実施することが可能である。例えば、命令キュー１８００に、格納されている命令が有効であるか否かを示すバリッドビットが設け、エラー処理用のソフトウェアを実行することにより、バリッドビットを、命令が無効であることを示すインバリッドへ変更するようにしてもよい。また、命令キュー１８００において、命令を格納する場所を指定するライトポインタの更新を、エラー処理用のソフトウェアを実行することにより、停止させるようにしてもよい。
【０２２０】
半導体装置としてマイクロプロセッサ１４０１を例にして説明したが、半導体装置は、これに限定されるものではない。
【０２２１】
さらに、マイクロプロセッサ１４０１の代わりに、パーソナルコンピューターあるいはスマートフォンのような携帯端末を用いてもよい。また、フラッシュライタ１１０５の代わりに、光デイスク再生装置あるいは通信回線を介して有償ソフトウェアを提供するソフトウェア記憶装置を用いてもよい。また、ソフトウェア記憶ユニット１４０２は、ハードディスクあるいはメモリカードを用いるようにしてもよい。このように、マイクロプロセッサ、フラッシュライタおよびソフトウェア記憶ユニットを変更しても、同様の効果が得られるものである。
【０２２２】
＜変形例１＞
実施の形態６を、例えば実施の形態１または実施の形態２と組み合わせる。すなわち、図２に示したライセンス記憶ユニット１１０３（図６に示したライセンス記憶部１３０５）を、実施の形態６で説明した構成に追加する。この場合、ライセンス管理ユニット１４０３によって、ライセンス記憶ユニット１１０３に格納されているライセンス情報の更新を実施するとともに、ライセンス情報によって示されている有償ソフトウェアインストール可能数の確認も実施する。
【０２２３】
その結果、インストール可能数とＤＬアプリ領域ＤＡＲの記憶容量の両方によって、ソフトウェア記憶ユニット１４０２内のＤＬアプリ領域ＤＡＲへのソフトウェアの格納が制御されることになる。この場合、ライセンス記憶ユニット１３０３に格納されているライセンス情報が、例えば不正に変更されたとしても、ＤＬアプリ領域ＤＡＲの記憶容量が、制限されているため、被害の低減を図ることが可能である。
【０２２４】
＜変形例２＞
実施の形態６を、実施の形態５と組み合わせる。これにより、ＤＬアプリをダウンロードするときと、ＤＬアプリを実行するときの両方において、不正か否かの確認を行うことが可能となり、より強固に不正に対抗することが可能となる。
【０２２５】
＜変形例３＞
実施の形態６を、実施の形態１または２と、実施の形態５と組み合わせる。これにより、不正による被害の低減を図ることが可能になるとともに、より強固に不正に対抗することが可能となる。
【０２２６】
（実施の形態７）
実施の形態５および６においては、ソフトウェア記憶ユニット１４０２の領域ＡＲの一部の領域が、ＤＬアプリ領域ＤＡＲに割り当てられ、ＤＬアプリ領域ＤＡＲを除く領域が、ユーザ領域ＵＡＲに割り当てられた。この実施の形態７においては、実行ユニット１４０１によって、ユーザ領域ＵＡＲにおけるソフトウェアを実行しているとき、ＤＬアプリ領域ＤＡＲへのアクセスを制限する。
【０２２７】
図２１は、実施の形態７に係わるマイクロプロセッサの動作を示す概念図である。実行ユニット１４０１が、ユーザ領域ＵＡＲにおけるソフトウェアを実行しているとき、ＤＬアプリ領域ＤＡＲへのデータの書き込みおよび読み出しを禁止する。この場合、ユーザ領域ＵＡＲにおけるソフトウェアで、ＤＬアプリ領域ＤＡＲにおけるソフトウェアの実行は可能とする。
【０２２８】
このようにすることにより、ユーザ領域ＵＡＲにおけるソフトウェアの実行によって、ＤＬアプリ領域ＤＡＲに格納されているソフトウェアの解析および／またはコピーが実施されるのを防ぐことが可能となる。その結果、ＤＬアプリ領域ＤＡＲに格納されている有償ソフトウェアの保護（解析、コピーを防ぐ）を行うことが可能となる。
【０２２９】
この実施の形態７によれば、メモリマネージメント機能（ＭＭＵ）あるいはメモリプロテクション機能のような高機能（高コスト）を、マイクロプロセッサに設けなくても、ソフトウェアの解析、コピーを防ぐことが可能である。すなわち、ユーザにマイクロプロセッサを提供する際に、ＤＬアプリ領域ＤＡＲとユーザ領域ＵＡＲとを割り当てるが、このときに、上記したようなアクセスの制限を設定するだけで済み、低コストでセキュリティを高めることが可能となる。
【０２３０】
なお、ＤＬアプリ領域におけるソフトウェアを実行しているときには、ユーザ領域ＵＡＲへのデータの書き込みおよび読み出しは可能とされている。また、ユーザ領域ＵＡＲにおけるソフトウェアとＤＬアプリ領域におけるソフトウェアとの間のデータの受け渡しは、ユーザ領域ＵＡＲにおける領域あるいは、実行ユニット１４０１が備えているレジスタを用いて、実施する。
【０２３１】
なお、図２１に示すように、データの読み出しおよび書き込みを禁止し、ソフトウェアの実行を可能にする構成としては、例えば実行ユニット１４０１が備えているプログラムカウンタが、ＤＬアプリ領域ＤＡＲをアクセスする場合は、アクセスを許可し、それ以外の場合には、アクセスを禁止するようにすればよい。
【０２３２】
（実施の形態８）
実施の形態５および６においては、ソフトウェア記憶ユニット１４０２の領域ＡＲの一部の領域が、ＤＬアプリ領域ＤＡＲに割り当てられ、ＤＬアプリ領域ＤＡＲを除く領域が、ユーザ領域ＵＡＲに割り当てられた。この実施の形態８においては、例えば一次的にデータを格納するために用いられるデータ用の記憶ユニットも、ＤＬアプリ用とユーザ用に分けられる。
【０２３３】
図２２は、実施の形態８に係わるマイクロプロセッサの動作を示す概念図である。図２２において、ＤＡＲ−Ｄは、ＤＬアプリ用データ領域を示し、ＵＡＲ−Ｄは、ユーザ用データ領域を示しており、データ用の記憶ユニットが、ＤＬアプリ用データ領域ＤＡＲ−Ｄとユーザ用データ領域ＵＡＲ−Ｄに分けられている。この実施の形態８においては、ユーザ領域ＵＡＲにおけるソフトウェアを、実行ユニット１４０１が実行しているとき、ＤＬアプリ用データ領域ＤＡＲ−Ｄへのデータの書き込みおよび読み出しが禁止される。これに対して、ＤＬアプリ領域ＤＡＲにおけるソフトウェアを、実行ユニット１４０１が実行しているとき、ユーザ用データ領域ＵＡＲ−Ｄへのデータの書き込みおよび読み出しは許可される。
【０２３４】
これにより、ユーザ領域ＵＡＲにおけるソフトウェアを実施することにより、不正にＤＬアプリ用データ領域ＤＡＲ−Ｄにおけるデータを解析および／またはコピーするのを防ぐことが可能となり、実施の形態７と同様に、有償ソフトウェアを、さらに強固に保護することが可能となる。また、実施の形態７と同様に、低コストで、セキュリティを高めることが可能である。
【０２３５】
なお、ＤＬアプリ用データ領域ＤＡＲ−Ｄとユーザ用データ領域ＵＡＲ−Ｄとしては、マイクロプロセッサ１４００に内蔵されたスタテック型メモリを用いてもよいし、マイクロプロセッサ１４００の外部に設けた揮発性メモリを用いるようにしてもよい。
【０２３６】
勿論、実施の形態７と実施の形態８とは組み合わせて用いるようにしてもよいし、別々に用いるようにしてもよい。
【０２３７】
（実施の形態９）
実施の形態９は、実施の形態１〜８で説明した半導体装置および電子装置を用いて、ライセンス料金を回収するライセンス料金回収システムを提供する。図２４は、ライセンス料金回収システムの構成を示すシステム図である。図２４に示したシステムでは、半導体装置または電子装置と、有償ソフトウェアを、販売者および／または製造者が、ユーザへ提供し、販売者および／または製造者が、ユーザから、これらの対価を回収する。そのため、図２４は、販売者（製造者）とユーザとの間のビジネスモデルを示していると見なすこともできる。この場合、販売者および／または製造者は、複数であってもよい。
【０２３８】
図２４において、１９００は、ユーザを示しており、１９１０は、販売者および／または製造者を示している。販売者（製造者）１９１０は、実施の形態１〜８で説明した半導体装置（マイクロプロセッサ）または電子装置と有償ソフトウェアを、ユーザ１９００へ提供する。同図において、１９１１は、販売者（製造者）１９１０が、製造し、販売する装置を示しており、１９０１は、販売者（製造者）１９１０からユーザ１９００へ提供１９１５された装置を示している。ここでは、実施の形態１〜８において説明した半導体装置および電子装置を総称して、装置と表現している。すなわち、ここで述べている装置１９０１および１９１１は、実施の形態で説明した半導体装置または電子装置である。
【０２３９】
図２４において、１９２０−１および１９２０−２のそれぞれは、有償ソフトウェアを示している。有償ソフトウェア１９２０−１および／または１９２０−２は、例えばユーザ１９００の要求に応じて、販売者（製造者）から、ユーザ１９００へ提供１９２１される。ここでは、説明の都合上、同一の販売者（製造者）が、装置１９１１と有償ソフトウェア１９２０−１、１９２０−２を提供１９１５、１９２１する場合を、先ず説明するが、勿論、装置１９１１を提供する販売者（製造者）と、有償ソフトウェア１９２０−１、１９２０−２を提供する販売者（製造者）は、同一である必要はない。さらに、有償ソフトウェア１９２０−１と１９２０−２とが、別々の販売者（製造者）によって提供されてもよい。また、複数の有償ソフトウェア１９２０−１、１９２０−２のうちの少なくとも１つを、装置１９１１を提供する販売者（製造者）が提供するようにしてもよい。
【０２４０】
図２４において、装置１９０１、１９１１の構成は、実施の形態１〜８において説明した構成を有しているが、同図には、説明に必要な構成のみが描かれ、その他の構成は省略されている。同図において、１９１２は、ソフトウェア記憶装置を示しており、１９１３は、ライセンス記憶装置を示しており、１９１４は、ライセンス管理装置を示している。ここでも、ソフトウェア記憶装置１９１２は、実施の形態で説明したソフトウェア記憶部（図１では、１００２）とソフトウェア記憶ユニット（図２では、１１０２）の総称である。また、ライセンス記憶装置１９１３は、ライセンス記憶部（図１では、１００３）とライセンス記憶ユニット（図２では、１１０３）の総称である。同様に、ライセンス管理装置１９１４は、ライセンス管理部（図１では、１００４）とライセンス管理ユニット（図２では、１１０４）の総称である。
【０２４１】
販売者（製造者）１９１０は、装置１９１１をユーザ１９００へ提供する前に、実施の形態で説明したライセンス情報を、ライセンス記憶装置１９１３に格納する。販売者（製造者）が、装置１９１１をユーザ１９００へ提供する際には、ライセンス情報が格納されたライセンス記憶装置１９１３を備えた装置１９１１が提供１９１５されることになる。販売者（製造者）１９１０が、ライセンス記憶装置１９１３に格納するライセンス情報は、実施の形態で説明したように、有償ソフトウェアインストール可能数、インストール可能なポイント、インストール可能な記憶容量等を示す情報である。
【０２４２】
このとき、販売者（製造者）１９１０は、ユーザ１９００へ提供する装置１９１１の価格、すなわち販売価格を、装置１９１１のハードウェア価格（ＨＷ価格）に、ライセンス情報によって示されるインストール可能な量、すなわちライセンス数に相当するライセンス料金を付加して定める。すなわち、装置１９１１のＨＷ価格に、ライセンス数に相当するライセンス料金を付加（加算）して定めた販売価格で、販売者（製造者）１９１０は、ユーザ１９００へ装置１９１１を提供１９１５する。この場合、ライセンス記憶装置１９１３へ格納するライセンス情報によって、販売価格が変わることになる。
【０２４３】
ユーザ１９００は、装置１９１１を購入したあと、ユーザ１９００が望む機能を実現するために、必要に応じて、購入した装置（図２４では、購入した装置は１９０１として示されている）に、ソフトウェア提供装置１９０４を介して、有償ソフトウェアをダウンロードする。この場合、実施の形態１〜８で説明したように、有償ソフトウェアのダウンロード、すなわちソフトウェア記憶装置１９１２への格納または実行は、ライセンス記憶装置１９１３に格納されているライセンス情報によって示されるライセンス数まで、ライセンス管理装置１９１４によって許可されることになる。そのため、ユーザ１９００は、有償ソフトウェアの許諾に要求されるライセンス料金を、ダウンロードする前に、支払っていることになる。なお、図２４では、ライセンス情報によって示されるライセンス数まで、ダウンロードを許可するために、ライセンス管理部１９１４が、ダウンロードを監視していることが示されている。
【０２４４】
なお、ライセンス情報によって示されているライセンス数を超えた場合、ライセンス管理装置１９１４は、ダウンロードまたは実行を制限する。そのため、ライセンス情報は、ダウンロードまたは実行を制限する制限情報であると見なすこともできる。
【０２４５】
すなわち、この実施の形態においては、ライセンス料金をプリペイドしていることになる。そのため、ユーザ１９００は、販売者（製造者）１９１０からの装置１９１１の提供１９１５に対して。装置のハードウェア価格（ＨＷ価格）１９３１と、ライセンス料金のプリペイド価格１９３０（図２４では、プリペイドと記載）とを合わせて、購入価格として支払うことになる。なお、ここでは、販売者（製造者）１９１０の定めた販売価格と、ユーザ１９００が支払う購入価格は同じであるとする。
【０２４６】
ライセンス記憶装置１９１３に格納されたライセンス情報によって、販売価格（購入価格）が変わる例を、次に示しておく。
【０２４７】
ライセンス情報が、有償ソフトウェアインストール可能数を示す場合を例にして、先ず説明する。ここでは、装置１９１１のハードウェア価格（ＨＷ価格）が、例えば１０ドルであり、有償ソフトウェアが１本当たり、３０ドルであるとする。この場合、有償ソフトウェアインストール可能数が０を示すライセンス情報を格納した装置１９１１の販売価格は、１０ドルとなる。これに対して、有償ソフトウェアインストール可能数が１を示すライセンス情報を格納した装置１９１１の販売価格は、４０ドルとなり、有償ソフトウェアインストール可能数が２を示すライセンス情報を格納した装置１９１１の販売価格は、７０ドルとなる。以降、有償ソフトウェアインストール可能数が１増える毎に、装置１９１１の販売価格は、３０ドルずつ高くなる。
【０２４８】
また、ライセンス情報が、有償ソフトウェアのインストール可能なポイントを示す場合を説明する。ここでも、装置１９１１のハードウェア価格（ＨＷ価格）は、１０ドルであり、１ポイントが、１ドルであるとする。この場合、ポイント数が０を示すライセンス情報を格納した装置１９１１の販売価格は、１０ドルとなる。これに対して、ポイント数が５０を示すライセンス情報を格納した装置１９１１の販売価格は、６０ドルとなり、ポイント数が１００を示すライセンス情報を格納した装置１９１１の販売価格は、１１０ドルとなる。以降、ポイント数が１増える毎に、装置１９１１の販売価格は、１ドルずつ高くなる。この場合、１本の有償ソフトウェアのライセンス許諾に要求されるポイント数が、例えば５０ポイントであれば、販売価格が６０ドルの装置１９１１に対しては、１本の有償ソフトウェアをダウンロードすることが許可され、販売価格が１１０ドルの装置１９１１に対しては、２本の有償ソフトウェアをダウンロードすることが許可される。許可される本数以上の有償ソフトウェアについては、ダウンロードが失敗することになる。すなわち、ダウンロードが制限されることになる。
【０２４９】
さらに、ライセンス情報が、有償ソフトウェアのインストール可能な記憶容量（ＤＬアプリ領域ＤＡＲの記憶容量）を示す場合を説明する。ここでも、装置１９１１のハードウェア価格（ＨＷ価格）は、１０ドルであるとする。この場合、ソフトウェア記憶装置１９１２の領域（アドレス空間）ＡＲは、全てユーザ領域ＵＡＲに割り当てられていると見なすこともできる。ソフトウェア記憶装置１９１１の領域ＡＲのうち、ＤＬアプリ領域ＤＡＲに、１Ｍビット（１ＭＢ）が割り当てられた場合、販売価格は例えば６０ドル、ＤＬアプリ領域ＤＡＲに２Ｍビット（２ＭＢ）を割り当てられた場合、販売価格は１１０ドル、ＤＬアプリ領域ＤＡＲに４Ｍビット（４ＭＢ）を割り当てられた場合、販売価格は２１０ドルとする。このように、例えば１Ｍビット割り当てる記憶容量が多くなるのに従って、例えば５０ドルずつ高価にする。この場合、ＤＬアプリ領域ＤＡＲに割り当てられた記憶容量が、有償ソフトウェアによって、不足となるまで有償ソフトウェアのダウンロードが可能となる。ＤＬアプリ領域ＤＡＲに不足が発生するまでにダウンロードした有償ソフトウェア数が、ライセンス情報によって示されるライセンス数となり、このライセンス数に対応したライセンス料金が、プリペイドされていることになる。
【０２５０】
ライセンス料金回収システムとして見た場合、ライセンス情報は、プリペイドされたライセンス料金に相当していることになる。すなわち、プリペイドされたライセンス料金に応じた値を、ライセンス情報は示すことになる。一例を述べると、プリペイドされたライセンス料金に応じて、ライセンス情報が示す有料ソフトウェアインストール可能数は変わる。ライセンス管理装置１９１４は、有償ソフトウェアを格納または実行するとき、そのときのライセンス情報によって表されるライセンス料金が、その有償ソフトウェアのライセンス料金を満たすとき、すなわちその有償ソフトウェアのライセンス料金を支払うことが可能なとき、有償ソフトウェアの格納または実行を許可することになる。また、ライセンス管理装置１９１４は、有償ソフトウェアの格納または実行を許可した場合、この有償ソフトウェアのライセンス料金を、ライセンス情報によって示される料金（ライセンス料金）から減算し、減算により得られるライセンス料金に相当するライセンス情報を、ライセンス記憶装置に格納する。
【０２５１】
また、実施の形態１で述べたように、有償ソフトウェアをアンインストールした場合、ライセンス管理装置１９１４は、ライセンス情報を更新することが可能である。これを、ライセンス料金回収システムとして見た場合、アンインストールした有償ソフトウェアのライセンス料金を、そのときライセンス記憶装置が格納しているライセンス情報によって示される料金（ライセンス料金）に加算することにより得られるライセンス料金に相当するライセンス情報を、ライセンス記憶装置に格納することを意味している。
【０２５２】
図１４に示したように、ソフトウェア記憶装置の領域ＡＲを、ＤＬアプリ領域ＤＡＲ（第１記憶領域）とユーザ領域（第２領域）ＵＡＲとに分ける場合には、第１記憶領域が大きくなるほど、プリペイドされたライセンス料金が高額になるため、第１記憶領域が大きい装置ほど、高額になる。
【０２５３】
販売者（製造者）１９１０からユーザ１９００への有償ソフトウェアの提供１９２１については、種々の方法が存在する。販売者（製造者）が、有償ソフトウェアを提供１９２１する際に、有償ソフトウェアに対する対価を、ユーザ１９００へ要求しなくてもよい。これは、装置１９１１をユーザ１９００が購入する際に、装置１９１１にダウンロードすることが可能な有償ソフトウェアに応じた料金（ライセンス料金）が、装置１９１１の販売価格に含まれ、プリペイドで、販売者（製造者）に支払われているためである。そのため、有償ソフトウェアの提供１９２１の方法は、種々の方法を採用することが可能である。
【０２５４】
例えば、有償ソフトウェア１９２０−１および１９２０−２を、販売者（製造者）１９１０が、光デイスク等の記憶媒体に格納し、この光デイスク等の記憶媒体を、ユーザ１９１０へ提供１９２１する。この場合、ソフトウェア提供装置１９０４は、例えば光デイスク再生装置によって構成されることになる。ユーザ１９００は、この光デイスク再生装置を用いて、提供された光デイスクを再生することにより、購入した装置１９０１へ有償ソフトウェアを提供する。勿論、有償ソフトウェアのライセンスを許諾するライセンス料金が、プリペイドされているだけであって、光デイスク等の記憶媒体の費用および格納に掛かる費用に関して、販売者（製造者）１９１０が、ユーザ１９００へ請求することを制限するものではない。
【０２５５】
また、販売者（製造者）１９１０側が備えているサーバ装置に、有償ソフトウェア１９２０−１、１９２０−２を格納しておき、インターネット等の通信回線を介して、ユーザ１９００が、販売者（製造者）１９１０側のサーバ装置から、有償ソフトウェアを入手し、装置１９０１へ提供するようにしてもよい。この場合、ソフトウェア提供装置１９０４は、例えばユーザ１９００側のサーバ装置を含み、ユーザ１９００側のサーバ装置から装置１９０１へのダウンロードが行われることになる。
【０２５６】
例えば、ユーザ１９００が、購入した装置１９０１を搭載した製品を、工場の製造ラインで製造する場合、工場の製造ラインに、有償ソフトウェアをインストールする工程が存在すると考えられる。この場合、インストール工程にある製造装置（例えば、フラッシュライタ、ＲＯＭライタ等）あるいは製造装置に接続されたパーソナルコンピューター等の情報処理装置が、ソフトウェア提供装置１９０４とされ、このソフトウェア提供装置１９０４に有償ソフトウェア１９２０−１、１９２０−２が格納される。格納された有償ソフトウェア１９２０−１、１９２０−２が、インストール工程において、装置１９０１へ提供されることになる。この場合、製造装置、情報処理装置へ、有償ソフトウェアを格納することに関して、特に制限を設ける必要はない。そのため、例えば通信回線を介して、ユーザ１９００は、予め有償ソフトウェアを、製造装置および／または情報処理装置に格納しておくようにすれば、装置１９０１へ有償ソフトウェアをダウンロードする度に、毎回通信回線を介して、ダウンロードする必要はない。また、製品を製造する計画に応じて、ユーザ１９００が、製造ラインを増やす場合も、予め格納してある有償ソフトウェアをコピーして、利用することが可能である。反対に、製造ラインを減らす場合には、余った有償ソフトウェアについても、自由に破棄することが可能である。そのため、ユーザ１９００の手間を低減し、煩雑性を減らすことが可能となる。
【０２５７】
ユーザ１９００が購入した装置１９０１は、実施の形態１〜８において述べたように、ライセンス情報によって示されたライセンス数までしか、有償ソフトウェアをダウンロードすることができない。言い換えるならば、購入価格（販売価格）に応じたライセンス数の有償ソフトウェアしか、装置１９０１には、ダウンロードすることができず、このライセンス数を超えた有償ソフトウェアのダウンロードは、制限される。従って、ユーザ１９００は、ライセンスの許諾を受けるためのライセンス料金を支払わずに、有償ソフトウェアを、装置１９０１へダウンロードすることはできず、販売者（製造者）１９１０は、確実にライセンス料金を回収することが可能となる。
【０２５８】
ユーザ１９００は、製造する製品の数に応じて、ライセンス料金を別途支払うための処理が不要となる。
【０２５９】
また、有償ソフトウェアのインストール数にかかわらず、ユーザ１９００は、一定のライセンス料金を支払わなくてもよい。一定のライセンス料金を支払うようにした場合、インストール数が少ないユーザにとっては、割高になることが考えられる。実施の形態によれば、インストール数にかかわらず、一定のライセンス料金の支払いような手続きをしなくても済むため、割高になることを防ぐことが可能となる。
【０２６０】
さらに、高額なライセンス管理装置を、ユーザ１９００は、導入する必要はなく、製造ラインには、上記したような製造装置および／または情報処理装置を設けるだけで済み、ユーザの負担を低減することが可能となる。また、販売者（製造者）１９１０は、ユーザ１９００が導入したライセンス管理装置が、適切に運用されているかを監視する必要が無いため、販売者（製造者）の負担の低減も図ることが可能である。
【０２６１】
ライセンス料金が、プリペイドされており、プリペイドされたライセンス料金を超えて有償ソフトウェアをインストールすることが、ライセンス管理装置１９１４によって制限される。そのため、有償ソフトウェアの提供方法は、種々の方法を採用することが可能である。例えば、インターネット等の通信回線がなくても、ライセンス管理が可能である。また、許諾の無い状態で有償ソフトウェアが不正に使用されるのを防ぐことが、可能であり、ライセンス料金の回収漏れを防ぐことが可能である。
【０２６２】
有償ソフトウェア１９２０−１、１９２０−２と装置１９１１とを、同一の販売者（製造者）１９１０が、ユーザ１９００へ提供する場合を説明したが、これに限定されない。有償ソフトウェア１９２０−１、１９２０−２を、ユーザ１９００へ提供する提供者（ソフトウェア配信元）と、装置１９１１を、ユーザ１９００へ提供する提供者（販売者、製造者）とは、異なっていてもよい。
【０２６３】
例えば、有償ソフトウェア１９２０−１をソフトウェア配信元（提供者）Ａが、ユーザ１９００へ提供し、有償ソフトウェア１９２０−２をソフトウェア配信元（提供者）Ｂが、ユーザ１９００へ提供し、装置１９１１を、販売者および／または製造者（提供者）１９１０が、ユーザ１９００へ提供するようにしてもよい。すなわち、有償ソフトウェアを提供する配信元と、装置１９１１を提供する販売者（製造者）が異なる場合である。
【０２６４】
この場合も、販売者（製造者）１９１０は、ライセンス数に相当する情報であるライセンス情報を格納して、装置１９１１を、ユーザ１９００へ販売する。ユーザ１９００は、装置１９１１のハードウェア価格（ＨＷ価格１９３１）に、ライセンス情報によって示されるライセンス数に応じたライセンス料金（プリペイド価格１９３０）を付加した金額（販売金額、購入金額）を、販売者（製造者）１９１０へ支払う。販売者（製造者）１９１０は、ユーザ１９００から支払われた金額のうち、ライセンス料金（プリペイド価格１９３０）のうちの一部を、有償ソフトウェア１９２０−１のライセンス料金１９３２−１として、ソフトウェア配信元Ａに分配し、残りのライセンス料金を、有償ソフトウェア１９２０−２のライセンス料金１９３２−２として、ソフトウェア配信元Ｂへ分配する。これにより、ソフトウェア配信元ＡおよびＢのそれぞれが、有償ソフトウェアの対価としてライセンス料金を回収することが可能となる。
【０２６５】
なお、ライセンス料金（プリペイド価格１９３０）を分配する際の分配比率は、一定にしてもよいし、例えば、ユーザ１９００から人気のある有償ソフトウェアを確認し、人気のある有償ソフトウェアに対する分配金が高額になるようにしてもよい。
【０２６６】
この場合、ソフトウェア配信元Ａ、Ｂも、販売者（製造者）１９１０と同様に、ユーザ１９００側に導入されるライセンス管理装置を監視する必要がなくなるため、負担の低減を図ることが可能となる。また、ライセンス料金の回収漏れを防ぐことが可能となる。
【０２６７】
勿論、例えば、ソフトウェア配信元Ｂが、販売者（製造者）１９１０であった場合には、ライセンス料金１９３２−１のみを、ソフトウェア配信元Ａへ分配するだけでよい。
【０２６８】
実施の形態１〜９において説明した電子装置は、ライセンス情報に基づいて、有償ソフトウェアのダウンロードを管理するダウンロード管理機能を備えた電子装置と見なすことができる。ダウンロード管理機能を備えた電子装置と見なした場合、有償ソフトウェアの対価であるライセンス料金を求めるダウンロード課金システムが、本明細書には記載されていると見なすことができる。このように見なした場合、ダウンロード課金システムにおいては、ライセンス記憶部に、ライセンス料金に相当するライセンス情報が、予め記憶される。記憶されたライセンス情報に基づいて、有償ソフトウェアのソフトウェア記憶部への格納が制御され、予め記憶されたライセンス情報によって表されるライセンス料金によってライセンスが許諾される有償ソフトウェアの実行が、許可されることになる。
【０２６９】
また、実施の形態１〜９において説明した半導体装置（マイクロプロセッサ）は、ライセンス情報に基づいて、ダウンロードを管理するダウンロード管理機能を備えた半導体装置と見なすことができる。ダウンロード管理機能を備えた半導体装置と見なした場合、ダウンロード課金システムが、本明細書には記載されていると見なすことができる。このように見なした場合、ダウンロード課金システムにおいては、ライセンス記憶ユニットに、ライセンス料金に相当するライセンス情報が、予め記憶される。記憶されたライセンス情報に基づいて、有償ソフトウェアのソフトウェア記憶ユニットへの格納または実行が制御され、予め記憶されたライセンス情報によって表されるライセンス料金によってライセンスが許諾される有償ソフトウェアの実行が、許可されることになる。ここで、記憶されたライセンス情報に基づいて、有償ソフトウェアのソフトウェア記憶ユニットへの格納の制御は、例えば実施の形態１および実施の形態５で述べているようにして実行される。また、記憶されたライセンス情報に基づいて、有償ソフトウェアの実行の制御は、例えば実施の形態６で述べているようにして実行される。
【０２７０】
本明細書においては、実施の形態９で用いたように、実行ユニットおよび実行部を総称して、実行装置と称し、ソフトウェア記憶ユニットおよびソフトウェア記憶部を総称して、ソフトウェア記憶装置と称し、ライセンス記憶ユニットおよびライセンス記憶部を総称して、ライセンス記憶装置と称し、ライセンス管理ユニットおよびライセンス管理部を総称して、ライセンス管理装置と称する場合がある。
【０２７１】
本明細書には、有償ソフトウェアのライセンスを管理するライセンス管理方法が開示されていると見なすことができる。この場合、ライセンス管理方法は、実行装置とソフトウェア記憶装置とを備えている。このライセンス管理方法は、有償ソフトウェアをダウンロードするとき、ライセンス管理装置に格納されているライセンス情報に基づいて、ダウンロードする有償ソフトウェアのソフトウェア記憶装置への格納または実行を制御する工程（ライセンス管理工程）を備えていると見なすことができる。ライセンス管理工程で、ライセンス情報に基づいて格納または実行が制御されることにより、ライセンス情報によって表されるライセンス料金によってライセンスが許諾された有償ソフトウェアの実行が許可されることになる。ここでも、記憶されたライセンス情報に基づいて、有償ソフトウェアのソフトウェア記憶ユニットへの格納を制御することは、例えば実施の形態１および実施の形態５に示されている。また、記憶されたライセンス情報に基づいて、有償ソフトウェアの実行を制御することは、例えば実施の形態６に示されている。
【０２７２】
また、ライセンス管理方法として把握した場合、ライセンス記憶装置へライセンス情報を記憶させるのは、販売者（製造者）が行うため、ライセンス管理工程の前に行われる工程（記憶工程）である。
【０２７３】
ライセンス情報は、ソフトウェア記憶装置に格納可能な有償ソフトウェアのライセンス数を示す情報であると見なした場合、有償ソフトウェアを格納する毎に、ラインセンス管理装置によってライセンス数が減少されると見なすことができる。このように見なした場合、アンインストールでは、ライセンス数が増加または維持されると見なすことができる。また、ライセンス情報は、実行装置によって実行可能な有償ソフトウェアのライセンス数を示す情報であると見なした場合、実行可能な有償ソフトウェアが増えることにより、ライセンス管理装置によってライセンス数が減少されると見なすことができる。
【０２７４】
＜付記＞
本明細書には、複数の発明が開示されており、その内のいくつかは、請求の範囲に記載しているが、これ以外の発明も開示しており、その代表的なものを次に列記する。
（Ａ）ダウンロード管理機能を備えた電子装置を用いたダウンロード課金システムであって、
前記電子装置は、
ソフトウェアを実行する実行部と、
前記実行部に結合されたソフトウェア記憶部と、
ソフトウェアのライセンスを許諾するライセンス数を示すライセンス情報を記憶するライセンス記憶部と、
ライセンスの許諾が要求されるソフトウェアをダウンロードするとき、前記ライセンス記憶部に格納されているライセンス情報に基づいて、ダウンロードするソフトウェアの前記ソフトウェア記憶部への格納を制御するライセンス管理部と、
を備え、
前記ライセンス記憶部に、ライセンスを許諾するライセンス数を示すライセンス情報が予め記憶され、記憶されたライセンス情報に基づいて、ライセンスの許諾が要求されるソフトウェアの前記ソフトウェア記憶部への格納が制御される、ダウンロード課金システム。
（Ｂ）前記（Ａ）に記載のダウンロード課金システムにおいて、
前記ライセンス記憶部には、複数のソフトウェアのライセンスを許諾するライセンス数を示すライセンス情報が、予め記憶され、
前記ライセンス管理部は、予め記憶されたライセンス情報によって示されるライセンス数まで、ライセンスの許諾が要求されるソフトウェアを前記ソフトウェア記憶部へ格納する、ダウンロード課金システム。
（Ｃ）前記（Ｂ）に記載のダウンロード課金システムにおいて、
前記ライセンス管理部は、ライセンスの許諾が要求されるソフトウェアを、前記ソフトウェア記憶部に格納したとき、前記ライセンス情報によって示されるライセンス数を減少させる、ダウンロード課金システム。
（Ｄ）前記（Ｃ）に記載のダウンロード課金システムにおいて、
ライセンスの許諾が要求されるソフトウェアがアンインストールされたとき、前記ライセンス管理部は、前記ライセンス情報によって示されるライセンス数を増加させる、ダウンロード課金システム。
（Ｅ）前記（Ｃ）に記載のダウンロード課金システムにおいて、
ライセンスの許諾が要求されるソフトウェアがアンインストールされたとき、前記ライセンス管理部は、前記ライセンス情報によって示されるライセンス数を維持する、ダウンロード課金システム。
（Ｆ）ダウンロード管理機能を備えた半導体装置を用いたダウンロード課金システムであって、
前記半導体装置は、
ソフトウェアを実行する実行ユニットと、
前記実行ユニットに結合されたソフトウェア記憶ユニットと、
ソフトウェアのライセンスを許諾するライセンス数を示すライセンス情報を記憶するライセンス記憶ユニットと、
ライセンスの許諾が要求されるソフトウェアをダウンロードするとき、前記ライセンス記憶ユニットに格納されているライセンス情報に基づいて、ダウンロードするソフトウェアの前記ソフトウェア記憶ユニットへの格納または前記実行ユニットによる実行を、制御するライセンス管理ユニットと、
を備え、
前記ライセンス記憶ユニットに、ライセンス情報が予め記憶され、記憶されたライセンス情報に基づいて、ライセンスの許諾が要求されるソフトウェアの前記ソフトウェア記憶ユニットへの格納または前記実行ユニットによる実行が制御される、ダウンロード課金システム。
（Ｇ）前記（Ｆ）に記載のダウンロード課金システムにおいて、
前記ライセンス記憶ユニットには、複数のソフトウェアのライセンスを許諾するライセンス数を示すライセンス情報が、予め記憶されて、前記半導体装置は提供され、
前記ライセンス管理ユニットは、予め記憶されたライセンス情報によって示されるライセンス数まで、ライセンスの許諾が要求されるソフトウェアを、前記ソフトウェア記憶ユニットへ格納または前記実行ユニットによって実行することを許可する、ダウンロード課金システム。
（Ｈ）ソフトウェアを実行する実行部と、
前記実行部に結合されたソフトウェア記憶部と、
ライセンス情報を格納するライセンス記憶部と、
ライセンスの許諾が要求されるソフトウェアの前記ソフトウェア記憶部への格納を、前記ライセンス情報に基づいて制御するライセンス管理部と、
を備え、
ソフトウェアを提供する提供装置から、ライセンスの許諾が要求されるソフトウェアの提供を受けるとき、前記ライセンス管理部が、前記ライセンス情報に基づいて、前記ソフトウェア記憶部への前記ソフトウェアの格納を制御し、
前記ライセンスの許諾が要求されるソフトウェアは、ライセンスの許諾が要求されることを示す属性情報を備え、
前記ライセンス管理部が、ソフトウェアが備える属性情報に基づいて、ライセンスの許諾が要求されるソフトウェアか否かを判定する、ライセンス管理システム。
（Ｉ）前記（Ｈ）に記載のライセンス管理システムにおいて、
前記提供装置は、ライセンスの許諾を要求するソフトウェアを格納した記憶媒体を備える、ライセンス管理システム。
（Ｊ）前記（Ｉ）に記載のライセンス管理システムにおいて、
前記提供装置は、通信回線を介して、ライセンスの許諾を要求するソフトウェアを提供する、ライセンス管理システム。
（Ｋ）ソフトウェアを実行する実行装置を備えた装置において、ライセンス許諾が要求されるソフトウェアを実行する場合に、ライセンス許諾の対価として支払われるライセンス料金を回収する、ライセンス料金回収システムであって、
前記装置は、前記実行装置に結合されたソフトウェア記憶装置と、ライセンス記憶装置と、前記ライセンス記憶装置に記憶されたライセンス情報に基づいて、ライセンス許諾が要求されるソフトウェアの前記ソフトウェア記憶装置への格納または前記実行装置による実行を制御するライセンス管理装置とを備え、
前記ライセンス記憶装置には、所定のライセンス料金に相当するライセンス情報が、予め記憶され、前記装置は、前記所定のライセンス料金を含めた価格で、提供され、
購入された前記装置において、ライセンス許諾が要求されるソフトウェアを格納または実行するとき、前記ライセンス管理装置は、前記ライセンス記憶装置に記憶されているライセンス情報によって示される料金が、ソフトウェアのライセンス料金を満たすとき、ソフトウェアを前記ソフトウェア記憶装置に格納または前記実行装置によって実行することを許可する、
ライセンス料金回収システム。
（Ｌ）前記（Ｋ）に記載のライセンス料金回収システムにおいて、
前記所定のライセンス料金は、複数のソフトウェアのライセンス料金を超える料金であり、
前記ライセンス管理装置は、前記ライセンス記憶装置に記憶されているライセンス情報によって示される料金が、ソフトウェアのライセンス料金を満たすとき、前記ライセンス記憶装置に記憶されているライセンス情報によって示される料金から、ソフトウェアのライセンス料金を減算することにより得られる料金に相当するライセンス情報を、前記ライセンス記憶装置に記憶させる、
ライセンス料金回収システム。
（Ｍ）前記（Ｌ）に記載のライセンス料金回収システムにおいて、
前記装置の提供者から、ライセンス許諾が要求されるソフトウェアを提供する提供者へ、ライセンス料金に応じた料金の支払いが行われる、ライセンス料金回収システム。
（Ｎ）前記（Ｌ）に記載のライセンス料金回収システムにおいて、
ライセンス許諾が要求されるソフトウェアがアンインストールされたとき、前記ライセンス管理装置は、アンインストールされたソフトウェアのライセンス料金を、前記ライセンス記憶装置に記憶されているライセンス情報によって示される料金へ加算することにより得られる料金に相当するライセンス情報を、前記ライセンス記憶装置に記憶させる、
ライセンス料金回収システム。
（Ｏ）前記（Ｌ）に記載のライセンス料金回収システムにおいて、
前記ソフトウェア装置は、ライセンス許諾が要求されるソフトウェアの記憶が許可される第１記憶領域と、ライセンス許諾が要求されるソフトウェアの記憶が許可されない第２記憶領域とを備え、前記ライセンス情報によって、第１記憶領域と第２記憶領域の大きさが変わり、前記第１記憶領域の大きさが大きくなるのに従って、高価になる、
ライセンス料金回収システム。
（Ｐ）ソフトウェアを実行する実行装置と、
前記実行装置に結合されたソフトウェア記憶装置と、
前記ソフトウェア記憶装置の領域のうち、ライセンスの許諾が要求されるソフトウェアの格納または実行が可能な領域を指定する領域指定信号を出力するライセンス管理装置と、
を備え、ライセンスの許諾が要求されるソフトウェアが、前記領域指定信号によって指定される領域外への格納または前記領域指定信号によって指定される領域外に格納されているライセンスの許諾が要求されるソフトウェアの実行を禁止する、装置。
（Ｑ）前記（Ｐ）に記載の装置において、
前記装置は、半導体装置である。
（Ｒ）前記（Ｑ）に記載の装置において、
前記ソフトウェア記憶装置は、フラッシュメモリである。
（Ｓ）前記（Ｐ）に記載の装置において、
前記装置は、電子装置である。
【０２７５】
以上本発明者によってなされた発明を、前記実施形態に基づき具体的に説明したが、本発明は、前記実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。
【符号の説明】
【０２７６】
１０００  電子装置
１００１  実行部
１００２  ソフトウェア記憶部
１００３  ライセンス記憶部
１００４  ライセンス管理部
１００５  ソフトウェア記憶装置
１１００  半導体装置
１１０１、１４０１  実行ユニット
１１０２、１４０２  ソフトウェア記憶ユニット
１１０３  ライセンス記憶ユニット
１１０４、１４０３  ライセンス管理ユニット
１１０５  フラッシュライタ
１４００、１４００−１〜１４００−４  マイクロプロセッサ
１９００  ユーザ
１９１０  販売者（製造者）
１９０１、１９１１  装置
１９１２  ソフトウェア記憶装置
１９１３  ライセンス記憶装置
１９１４  ライセンス管理装置
１９３０  プリペイド価格
１９３１  ハードウェア価格
【図１】
2017033310.tif 000003
【図２】
2017033310.tif 000004
【図３】
2017033310.tif 000005
【図４】
2017033310.tif 000006
【図５】
2017033310.tif 000007
【図６】
2017033310.tif 000008
【図７】
2017033310.tif 000009
【図８】
2017033310.tif 000010
【図９】
2017033310.tif 000011
【図１０】
2017033310.tif 000012
【図１１】
2017033310.tif 000013
【図１２】
2017033310.tif 000014
【図１３】
2017033310.tif 000015
【図１４】
2017033310.tif 000016
【図１５】
2017033310.tif 000017
【図１６】
2017033310.tif 000018
【図１７】
2017033310.tif 000019
【図１８】
2017033310.tif 000020
【図１９】
2017033310.tif 000021
【図２０】
2017033310.tif 000022
【図２１】
2017033310.tif 000023
【図２２】
2017033310.tif 000024
【図２３】
2017033310.tif 000025
【図２４】
2017033310.tif 000026
【国際調査報告】
2017033310.tif 000027
2017033310.tif 000028
2017033310.tif 000029
2017033310.tif 000030