(57)【要約】【課題】負担を低減することが可能なライセンス管理方法を提供する。【解決手段】ソフトウェアを実行する実行ユニット１００４と実行ユニットに結合されたソフトウェア記憶ユニット１００５とを備えたライセンス管理方法は、ソフトウェア記憶ユニットに格納されている期限付きでライセンスが許諾されているソフトウェアの実行ユニットによる実行を制御するライセンス管理ユニット１００３を備え、実行ユニットによる期限付きでライセンスが許諾されているソフトウェアの実行を、期限を示す期限情報に基づいて、ライセンス管理ユニットが制御する制御工程を備える。【選択図】図１
2017068490.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアを実行する実行ユニットと、前記実行ユニットに結合されたソフトウェア記憶ユニットとを備えたライセンス管理方法であって、
前記ライセンス管理方法は、
前記ソフトウェア記憶ユニットに格納されている期限付きでライセンスが許諾されているソフトウェアの前記実行ユニットによる実行を制御するライセンス管理ユニットを備え、
前記実行ユニットによる前記期限付きでライセンスが許諾されているソフトウェアの実行を、期限を示す期限情報に基づいて、前記ライセンス管理ユニットが制御する制御工程
を備える、ライセンス管理方法。
【請求項２】
請求項１に記載のライセンス管理方法において、
前記ライセンス管理方法は、
前記期限情報によって示される期限を延長する期限延長工程
を備え、
前記期限延長工程によって延長された期限において、前記期限付きでライセンスが許諾されているソフトウェアの実行を可能とする、ライセンス管理方法。
【請求項３】
請求項１に記載のライセンス管理方法において、
前記ライセンス管理方法は、
前記期限情報によって示される期限を解除する期限解除工程
を備える、ライセンス管理方法。
【請求項４】
請求項３に記載のライセンス管理方法において、
前記ソフトウェア記憶ユニットは、ライセンス数を示すライセンス情報を備え、
前記ライセンス情報によって示されているライセンス数が、所定のライセンス数以上のとき、前記期限解除工程の実行が許容される、ライセンス管理方法。
【請求項５】
請求項４に記載のライセンス管理方法において、
前記期限解除工程が実行されたとき、前記ライセンス情報によって示されるライセンス数が、減算される、ライセンス管理方法。
【請求項６】
請求項１に記載のライセンス管理方法において、
前記ライセンス管理方法は、
前記ソフトウェア記憶ユニットへ、期限付きでライセンスが許諾されているソフトウェアを格納する際に、期限を示す期限情報を、前記ソフトウェア記憶ユニットへ格納する格納工程
を備える、ライセンス管理方法。
【請求項７】
請求項１に記載のライセンス管理方法において、
前記ライセンス管理ユニットは、前記実行ユニットが期限付きでライセンスが許諾されているソフトウェアを実行したときから、前記期限情報によって示される期限に基づいた制御を行う、ライセンス管理方法。
【請求項８】
請求項１に記載のライセンス管理方法において、
前記期限情報は、前記ソフトウェア記憶ユニットに格納され、前記ライセンス管理ユニットは、前記ソフトウェア記憶ユニットから、前記期限情報を取得する、ライセンス管理方法。
【請求項９】
ソフトウェアを実行する実行ユニットと、
前記実行ユニットに結合されたソフトウェア記憶ユニットと、
前記実行ユニットによる前記ソフトウェア記憶ユニットに格納されているソフトウェアの実行を制御するライセンス管理ユニットと、
を備え、
前記ライセンス管理ユニットは、前記実行ユニットが、期限付きでライセンスが許諾されているソフトウェアを実行するとき、期限を示す期限情報に基づいて、前記実行ユニットが前記期限付きでライセンスが許諾されているソフトウェアを実行することが可能な期間を制限する、ライセンス管理に適した半導体装置。
【請求項１０】
請求項９に記載のライセンス管理に適した半導体装置において、
前記ソフトウェア記憶ユニットは、電気的に書換え可能な不揮発性メモリを備え、前記不揮発性メモリに、前記期限情報が格納され、前記ライセンス管理ユニットは、前記不揮発性メモリから前記期限情報を取得する、ライセンス管理に適した半導体装置。
【請求項１１】
請求項９に記載のライセンス管理に適した半導体装置において、
前記ライセンス管理に適した半導体装置は、時間を計測する計測回路を備え、
前記ライセンス管理ユニットは、前記実行ユニットが期限付きソフトウェアを実行することが可能な期間を、前記計測回路によって計測される時間により定める、ライセンス管理に適した半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ライセンス管理方法およびライセンス管理に適した半導体装置に関し、特にソフトウェアのライセンスを管理するライセンス管理方法およびそれに適した半導体装置に関する。
【背景技術】
【０００２】
ソフトウェアを実行する半導体装置として、例えばマイクロプロセッサがある。ＩｏＴ（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ）の発展に伴って、マイクロプロセッサも、インターネット等の通信回線を介して、種々のものに接続することが可能となってきている。マイクロプロセッサが、所望の動作を行うようにするためには、ソフトウェアが必要となる。この場合、通信回線を介して、マイクロプロセッサが接続されているため、通信回線を介してソフトウェア配信元が、ソフトウェアをマイクロプロセッサへ提供することが考えられる。
【０００３】
ソフトウェアには、種々のソフトウェアが存在するが、大別すると、使用するためにライセンスの許諾を取得することが要求されるソフトウェア（以下、有償ソフトウェアとも称する）と、ライセンスの許諾を必要としないソフトウェア（以下、無償ソフトウェアとも称する）とに分けることが可能である。有償ソフトウェアの場合には、ライセンスの対価であるライセンス料金を支払うことにより、その使用が認められることになる。
【０００４】
有償ソフトウェアを、ソフトウェア配信元から購入しよう考えるユーザは、ライセンス料金を支払う前に、有償ソフトウェアによって、所望の動作が行われるか否か等の確認（お試し）を行うことが、出費を抑えるのに有効である。そのため、所定期間（お試し期間）、ライセンスが許諾されている有償ソフトウェアが、ソフトウェア配信元（以下、単に配信元とも称する）から提供されることが望ましい。この場合、ソフトウェア配信元からすると、有償ソフトウェアのライセンスを、例えば無償で、所定期間を期限として、許諾することになり、期限の管理が重要になる。
【０００５】
期限の管理と言う観点で見た場合、ＩＣカードの期限管理に関する技術が、例えば特許文献１および２に記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第２５９８０４７号公報
【特許文献２】特開２００５−１０９９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ライセンスの許諾を要求するソフトウェア（有償ソフトウェア）を配信する場合、ライセンス料金の回収が伴うため、有料配信となる。この場合、有償ソフトウェアのライセンス管理を確実に行うことが要求される。また、ライセンス管理に係わるユーザおよび／または配信元の負担を低減することが望まれる。
【０００８】
特許文献１および２では、所定期間、ライセンスが許諾されている有償ソフトウェア（以下、期限付き有償ソフトウェアまたは期限付きソフトウェアとも称する）の期限を管理することは意識されていない。勿論、期限付きソフトウェア毎に、期限の管理を実施する技術は記載されていない。
【０００９】
そのほかの課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本明細書には、前述の課題を解決するための手段が複数開示されている。ここでは、代表的な解決手段についてのみ述べる。
【００１１】
一実施の形態において、ライセンス管理方法は、ソフトウェアを実行する実行ユニットと、実行ユニットに結合されたソフトウェア記憶ユニットと、ライセンス管理ユニットとを備えている。ここで、ライセンス管理方法は、実行ユニットによる期限付きソフトウェアの実行を、期限を示す期限情報に基づいて、ライセンス管理ユニットが制御する制御工程を備えている。
【００１２】
期限情報に基づいて、期限付きソフトウェアの実行が制御されるため、ユーザおよび／または配信元の負担を低減することが可能となる。また、期限情報を変更することにより、ユーザが有償ソフトウェアを実行することが可能な期間を延長することも可能である。さらに、期限情報を変更することにより、期限付きソフトウェアの期限を解除することも可能である。
【発明の効果】
【００１３】
一実施の形態によれば、ユーザおよび／または配信元の負担を低減することが可能なライセンス管理方法を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１に係わるライセンス管理モデルを示す構成図である。
【図２】実施の形態１に係わるライセンス管理ユニットの構成を示すブロック図である。
【図３】実施の形態１に係わるマイクロプロセッサの一部分の構成を示すブロック図である。
【図４】実施の形態１に係わるライセンス管理モデルを示す構成図である。
【図５】実施の形態１に係わるライセンス管理ユニットに含まれる有効期限情報に関するテーブルを示す説明図である。
【図６】実施の形態１に係わるライセンス管理ユニットの一部分の構成を示すブロック図である。
【図７】実施の形態１に係わるライセンス管理ユニットの一部分の構成を示すブロック図である。
【図８】実施の形態１に係わるライセンス管理ユニットの構成を示すブロック図である。
【図９】実施の形態２に係わる機能を示すフローチャート図である。
【図１０】実施の形態２に係わる機能を示すフローチャート図である。
【図１１】実施の形態３に係わるライセンス管理モデルを示す構成図である。
【図１２】実施の形態３に係わるライセンス管理ユニットの構成を示すブロック図である。
【図１３】実施の形態４に係わるライセンス管理モデルを示す構成図である。
【図１４】実施の形態４に係わるライセンス管理ユニットの構成を示すブロック図である。
【図１５】実施の形態５に係わるライセンス管理の方法を示すフローチャート図である。
【図１６】期限付き有償ソフトウェアの一例を示す構成図である。
【図１７】実施の形態２に係わる実行ユニットの動作を説明するための模式図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部分には原則として同一の符号を付し、その繰り返しの説明は、原則として省略する。
【００１６】
（実施の形態１）
＜ライセンス管理モデル＞
図１は、実施の形態１に係わるライセンス管理モデル（ライセンス管理システム）を示す構成図である。同図において、１０００はユーザを示し、１０１０は有償ソフトウェアを提供するソフトウェア配信元等の販売者を示している。
【００１７】
この実施の形態１において、特に制限されないが、ユーザ１０００は、半導体装置と他の電子部品（図示しない）等を、電子部品販売者から購入する。購入した半導体装置と他の電子部品を組み合わせて、電子装置（図示しない）を設計・製造して、販売する。ユーザ１０００が販売する電子装置は、例えばパーソナルコンピューター、スマートフォン、プリンタ、複合機、テレビ、カメラ等が挙げられる。
【００１８】
本明細書においては、半導体装置として、マイクロプロセッサを例にして説明する。図１には、マイクロプロセッサが、１００２として示されている。ユーザ１０００は、マイクロプロセッサ１００２に所望の動作を行わせるために、ソフトウェアを、ソフトウェア提供装置１００１から、マイクロプロセッサ１００２へ提供する。ソフトウェア提供装置１００１からマイクロプロセッサ１００２へ提供されるソフトウェアには、ユーザ１０００が開発したソフトウェア、無償ソフトウェア、有償ソフトウェアおよび期限付き有償ソフトウェアが含まれている。特に制限されないが、配信元１０１０は、ソフトウェアを格納したサーバー（販売者ソフトウェア提供装置）１０１１を有している。例えば、ユーザ１０００の要求により、配信元１０１０が備えているサーバー１０１１から、要求されているソフトウェアが、ユーザ１０００へ供給される。
【００１９】
図１では、配信元１０１０からユーザ１０００へ供給されているソフトウェアが、期限付きソフトウェアの場合が示されている。配信元１０１０から供給された期限付きソフトウェアは、ユーザ１０００が備えているソフトウェア提供装置１００１に格納される。なお、図１には、ソフトウェア配信元が、１者の場合が示されているが、複数のソフトウェア配信元から、ソフトウェアが、ユーザ１０００へ供給されていてもよい。
【００２０】
＜半導体装置（マイクロプロセッサ）の構成＞
マイクロプロセッサ１００２は、ソフトウェアを実行する実行ユニット１００４と、実行ユニット１００４に結合されたソフトウェア記憶ユニット１００５と、ライセンス管理ユニット１００３とを備えている。マイクロプロセッサ１００２は、上記したユニット以外に種々のユニット、例えばマイクロプロセッサ１００２とソフトウェア提供装置１００１との間で信号の送受信を行うための周辺ユニットを備えているが、図１では省略されている。これらのユニットは、１個の半導体チップに、周知の半導体製造技術によって形成され、特に制限されないが、１個のパッケージに封止されている。半導体装置を提供する販売者は、１個の半導体チップまたは１個のパッケージに封止された状態を、１個の単位として、ユーザ１０００へ提供する。
【００２１】
実行ユニット１００４は、ソフトウェア記憶ユニット１００５からソフトウェアを読み出し、読み出したソフトウェアを実行する。これにより、読み出したソフトウェアに従った動作が、マイクロプロセッサ１００２によって、実施されることになる。なお、実行ユニット１００４は、読み出したソフトウェアを実行する過程において、適時、ソフトウェア記憶ユニット１００５へデータの格納等を行う。
【００２２】
ソフトウェア記憶ユニット１００５は、例えば電気的に書換え可能な不揮発性メモリで構成されている。この実施の形態１においては、不揮発性メモリとしてフラッシュメモリが用いられている。ソフトウェア提供装置１００１から提供されたソフトウェアは、図示しないフラッシュライタによって、ソフトウェア記憶ユニット１００５へ書き込まれる。フラッシュライタは、種々の構成のものが存在する。例えば、フラッシュライタは、ＵＳＢメモリ型、ＳＤカード型等の専用の機器でもよいし、汎用のパーソナルコンピューターを用いた構成であってもよい。
【００２３】
ソフトウェア提供装置１００１から期限付き有償ソフトウェアが、マイクロプロセッサ１００２へ提供される場合、実行ユニット１００４によって実行されるソフトウェア部は、図示しないフラッシュライタによって、ソフトウェア記憶ユニット１００５へ書き込まれる。すなわち、ソフトウェア部は、ソフトウェア記憶ユニット１００５へインストールされる。また、期限付き有償ソフトウェアの期限を示す期限情報は、ライセンス管理ユニット１００３へ供給される。
【００２４】
図１６は、期限付き有償ソフトウェアＳＷの一例を示す構成図である。期限付き有償ソフトウェアＳＷは、ソフトウェア部ＳＢと属性情報部ＡＴＢとを備えている。この実施の形態１においては、属性情報部ＡＴＢに、ソフトウェア部ＳＢに格納されている期限付き有償ソフトウェアの期限を示す期限情報が、格納されている。ここで、ソフトウェア部ＳＢに格納されているソフトウェアが、実行ユニット１００４によって実行される期限付き有償ソフトウェアとなる。本明細書においては、特に明示しない限り、期限付き有償ソフトウェア（期限付きソフトウェア）は、図１６に示したソフトウェアＳＷとソフトウェア部ＳＢに格納されているソフトウェアの両方を指している。
【００２５】
ソフトウェア提供装置１００１から提供されるソフトウェアが、例えば無償ソフトウェアの場合、属性情報部ＡＴＢは設けられていなくてもよい。このようにすることにより、ソフトウェア提供装置１００１から提供されたソフトウェアが、有償ソフトウェアであるか無償ソフトウェアであるかを、ソフトウェアが、属性情報部ＡＴＢを備えているか否かにより、判定することが可能になる。この判定は、実行ユニット１００４がソフトウェアによって実施するようにしてもよいし、ライセンス管理ユニット１００３が実行するようにしてもよい。提供されたソフトウェアが、属性情報部ＡＴＢを備えていると判定した場合、属性情報部ＡＴＢに格納されている情報は、ライセンス管理ユニット１００３へ供給され、ソフトウェア部ＳＢに格納されているソフトウェア（期限付きソフトウェア）は、ソフトウェア記憶ユニット１００５へ供給され、インストールされる。
【００２６】
属性情報部ＡＴＢに格納される期限情報は、ライセンスを許諾している期限を示している。そのため、ライセンスが有効な期限（有効期限）を示していると見なすこともできる。この場合、期限情報は、有効期限情報と見なすこともできる。
【００２７】
ライセンス管理ユニット１００３は、期限情報によって示されている期限に基づいて、実行ユニット１００４による期限付きソフトウェアの実行を制御する。すなわち、期限内（有効期限内）であれば、実行ユニット１００４による期限付きソフトウェアの実行を許容し、期限が終了していれば、実行ユニット１００４による期限付きソフトウェアの実行を禁止する。このように、経過時間に応じた管理を行うために、ライセンス管理ユニット１００３は、時間を計測する機能を有している。
【００２８】
図２は、実施の形態１に係わるライセンス管理ユニット１００３の構成を示すブロック図である。図２には、ライセンス管理ユニット１００３以外に、マイクロプロセッサ１００２に含まれているソフトウェア記憶ユニット１００５も示されている。この実施の形態１においては、あとで説明するが、ソフトウェア記憶ユニット１００５の特定の記憶領域が、電源投入時間領域１１０２として、経過時間を計測するために用いられる。
【００２９】
図２において、ライセンス管理ユニット１００３は、経過時間を計測するために計測回路を供えている。計測回路は、発振回路１１００と、インクリメント回路１１０１を備えている。発振回路１１００は、所定の周期で発振を行い、クロック信号（図２では、クロックと記載）をインクリメント回路１１０１へ供給する。インクリメント回路１１０１は、発振回路１１００からのクロック信号によって動作する。例えば、クロック信号がハイレベルになることにより、インクリメント回路１１０１は動作する。インクリメント回路１１０１は、動作する毎に、電源投入時間領域１１０２から電源投入時間情報を読み出し、例えば、１だけ増加（インクリメント）して、インクリメントされた電源投入時間情報を、電源投入時間領域１１０２へ書き込む（上書き）。
【００３０】
電源投入時間領域１１０２には、マイクロプロセッサ１００２の電源を投入したとき、例えば、０の電源投入時間情報が、書き込まれる。マイクロプロセッサ１００２に電源が投入されることにより、発振回路１１００は、発振動作を開始する。これにより、上記した電源投入時間領域１１０２に格納されている電源投入時間情報は、時間経過に伴い、増加することになる。すなわち、電源投入から、例えば現時点までの経過時間に対応する電源投入時間情報が、得られることになる。高い精度の電源投入時間情報を得る場合には、発振回路１１００として、水晶振動子を用いた発振回路を用いればよい。安価にする場合には、発振回路１１００として、例えばリングオシレータを用いた発振回路を用いればよい。発振回路１１００は、上記したものに限定されず、種々の構成を採用することができる。
【００３１】
電源投入時間情報は、マイクロプロセッサ１００２の製品寿命に対して十分に長い時間を示すことができるようにする。例えば、１日１回、電源投入時間領域１１０２に格納された電源投入時間情報を、読み出し、インクリメントし、インクリメントにより更新した電源投入時間情報を、電鍵投入時間領域１１０２へ書き込むようにする。この場合、電源投入時間領域１１０２を１４ビットで構成すれば、４４年分の電源投入時間情報を得ることが可能となる。マイクロプロセッサ１００２の製品寿命が、例えば１０年であれば、１４ビット分の電源投入時間領域１１０２を確保すれば、製品寿命よりも長い時間を計測することが可能となる。製品寿命が、もっと長い場合には、例えば、電源投入時間領域１１０２として、例えば１６ビット分を確保すれば、約１８０年分の経過時間を計測することが可能となる。
【００３２】
電源投入時間領域１１０２には、マイクロプロセッサ１００２を、販売者が提供するときに、初期値として０の電源投入時間情報を設定してもよいし、最初の期限付きソフトウェアをインストールしたときに、０の電源投入時間情報を設定してもよい。また、全ての期限付きソフトウェアを、アンインストールしたときには、電源投入時間情報は、リセット（０）してもよいし、変更しなくてもよい。さらに、インクリメント回路１１０１および発振回路１１００は、期限付きソフトウェアが、インストールされていないときには、停止するようにし、発振回路１１００での消費電力の低減を図るようにしてもよい。
【００３３】
この実施の形態１では、インクリメント回路１１０１が、発振回路１１００からのクロック信号に同期して、電源投入時間情報をインクリメントするように説明したが、発振回路１１００が発生しているクロック信号を分周し、分周により得たクロック信号に同期して、インクリメント回路１１０１が、電源投入時間情報をインクリメントするようにしてもよい。
【００３４】
ソフトウェア提供装置１００１（図１）から、期限付きソフトウェアが提供されたとき、ライセンス管理ユニット１００３は、例えば、図１６で説明したように、属性情報部ＡＴＢから期限情報を取得する。取得した期限情報と、ソフトウェア記憶ユニット１００５内の電源投入時間領域１１０２に格納されている電源投入時間情報とに基づいて、提供された期限付きソフトウェアの有効期限を示す有効期限情報を、演算により求める。ライセンス管理ユニット１００３は、この演算によって求めた有効期限情報を、ソフトウェア記憶ユニット１００５の特定の記憶領域に書き込む。
【００３５】
ソフトウェア記憶ユニット１００５において、上記した電源投入時間領域および有効期限情報を格納する特定の記憶領域は、実行ユニット（中央処理ユニット）１００４によって、変更されないようにする。ここで、変更が可能であると、期限付き有償ソフトウェアの期限を不正に変更することが可能となってしまうためである。これらの領域の変更を不可能にする構成としては、種々の構成がある。例えば、マイクロプロセッサ１００２または実行ユニット１００４が、ＭＭＵ（メモリ管理ユニット）を有している場合には、実行ユニット１００４によるアクセスに対して、ＭＭＵにより、上記した領域が保護されるようにすればよい。
【００３６】
また、実行ユニット１００４によって、これらの領域の変更を不可能にする構成としては、例えば図３に示すような保護ユニットをマイクロプロセッサ１００２に追加するようにしてもよい。図３は、実施の形態１に係わるマイクロプロセッサ１００２の一部分を示すブロック図である。図３において、１００５は、図１および図２で示したソフトウェア記憶ユニットである。ソフトウェア記憶ユニット１００５は、先に述べたように、フラッシュメモリによって構成されている。
【００３７】
ここで、ソフトウェア記憶ユニット１００５を構成するフラッシュメモリの概要を述べておく。フラッシュメモリは、アドレス端子、ライト端子、リード端子およびデータ端子を備えている。アドレス端子にアドレス信号を供給し、ライト端子にハイレベルのライト信号を供給することにより、アドレス端子に供給されているアドレス信号によって指定されている記憶領域に、データ端子からのデータが書き込まれる。これに対して、アドレス端子にアドレス信号を供給し、リード端子にハイレベルのリード信号を供給することにより、アドレス端子に供給されているアドレス信号によって指定された記憶領域に格納されているデータが、データ端子から出力される。
【００３８】
図３においては、フラッシュメモリ（以下、ソフトウェア記憶ユニットと同じ符号１００５を付す）のライト端子が、ＷＴで示されており、アドレス端子、リード端子およびデータ端子は省略されている。保護ユニットは、比較回路１００、ナンド回路１２０１およびオア回路１２０２を備えている。
【００３９】
比較回路１２００には、実行ユニット１００４からのアドレス信号ＡＤと、上記した記憶領域を指定する領域アドレス信号ＡＲＤが供給される。ここで、領域アドレス信号ＡＲＤは、電源投入時間領域を指定する領域アドレス信号と、有効期限情報を格納する特定の記憶領域を指定する領域アドレス信号とを含んでいる。比較回路１２００は、アドレス信号ＡＤが、領域アドレス信号ＡＲＤによって指定されている記憶領域内を指定しているとき、ハイレベルを出力し、領域アドレス信号ＡＲＤによって指定されている記憶領域の外を指定しているとき、ロウレベルを出力する。
【００４０】
比較回路１２００の出力は、位相反転され、アンド回路１２０１へ供給されるとともに、エラー信号として、実行ユニット１００４へ供給される。実行ユニット１００４は、フラッシュメモリ１００５へデータを書き込むとき、ライト信号ＷＥ−Ｃをハイレベルにする。このライト信号ＷＥ−Ｃは、アンド回路１２０１へ供給されている。アドレス信号ＡＤが、領域アドレス信号ＡＲＤによって指定されている記憶領域の外を指定している場合、エラー信号はロウレベルとなり、エラーが発生していないことが、実行ユニット１００４へ通知される。また、アンド回路１２０１には、位相反転によりハイレベルとなっている比較回路１２００の出力と、ハイレベルのライト信号ＷＥ−Ｃが供給される。そのためアンド回路１２０１の出力信号は、ハイレベルとなり、オア回路１２０２を介して、ハイレベルの信号が、フラッシュメモリ１００５のライト端子ＷＴに供給される。これにより、フラッシュメモリ１００５にデータの書き込みが可能となる。
【００４１】
これに対して、アドレス信号ＡＤが、領域アドレス信号ＡＲＤによって指定されている記憶領域内を指定している場合、エラー信号はハイレベルとなり、エラーが発生していることが、実行ユニット１００４へ通知される。このとき、アンド回路１２０１には、位相反転によってロウレベルとなった比較回路１２００の出力が、供給される。また、実行ユニット１００４からハイレベルのライト信号ＷＥ−Ｃが発生しているため、アンド回路１２０１は、このとき、ロウレベルの出力信号を出力する。このとき、ライセンス管理ユニット１００３は、フラッシュメモリ１００５へ書き込みを指示していない。そのため、このとき、ライセンス管理ユニット１００３は、ロウレベルのライト信号ＷＥ−Ｒを出力する。その結果、オア回路１２０２には、アンド回路１２０１からロウレベルの信号と、ロウレベルのライト信号ＷＥ−Ｒを受けることになり、オア回路１２０２は、ロウレベルの信号を、フラッシュメモリ１００５のライト端子ＷＴへ供給する。その結果、フラッシュメモリ１００５への書き込みは行われない。すなわち、実行ユニット１００４によって、領域アドレス信号ＡＲＤによって指定されている記憶領域内への書き込みが禁止され、保護されることになる。
【００４２】
一方、ライセンス管理ユニット１００３が、ハイレベルのライト信号ＷＥ−Ｒを出力した場合には、オア回路１２０２を介して、ハイレベルの信号が、フラッシュメモリ１００５のライト端子ＷＴに供給されることになる。その結果、フラッシュメモリ１００５へのデータの書き込みが可能となる。すなわち、ライセンス管理ユニット１００３は、領域アドレス信号ＡＲＤによって指定された記憶領域内へデータの書き込みが可能となり、電源投入時間情報および有効期限情報を、フラッシュメモリ１００５内の記憶領域に書き込むことが可能となる。
【００４３】
さらに、電源投入時間領域および有効期限情報を格納する特定の記憶領域が、実行ユニット１００４によって変更されないようにする別の構成が、図４に示されている。
【００４４】
図４は、図１と類似しているので、ここでは相違点のみを説明する。図４において、１３００は、記憶ユニットを示している。記憶ユニット１３００は、実行ユニット１００４のアドレスマップに割り当てられていない。言い換えるならば、記憶ユニット１３００は、実行ユニット１００４に接続されていない。この記憶ユニット１３００は、ライセンス管理ユニット１００３に接続され、ライセンス管理ユニット１００３から、有効期限情報と電源投入時間情報とが書き込まれ、また読み出される。このようにすることにより、実行ユニット１００４からは、有効期限情報および電源投入時間情報を、記憶ユニット１３００へ書き込むことも読み出すことも不可能にすることが可能となり、有効期限の改ざん等の不正に対して高いセキュリティを実現することが可能となる。
【００４５】
上記した構成により、有効期限情報および電源投入時間情報を格納する特定の記憶領域に対しては、実行ユニット１００４からデータの変更が不可能となる。しかしながら、この特定の記憶領域が、正常に動作しているか否かを、マイクロプロセッサ１００２を製造する工程でテストするのが難しくなる。上記した特定の記憶領域をテストするためには、外部からデータを書き込むことが可能な経路を設けることが必要になる。この書き込み経路を設ける構成としては、次の構成がある。
（１）ユーザ１０００に開示していない特別の命令を、実行ユニット１００４が実行可能となるようにしておく。この場合、実行ユニット１００４は、特別の命令を実行したとき、上記した特定の記憶領域に対して、データの書き込みを行うようにする。これにより、不正の防止を図りながら、上記した特定の記憶領域に対するテストを実施することが可能となる。
（２）実行ユニット１００４によって、特別な手順を実行したとき、実行ユニット１００４が、上記した特定の記憶領域へデータの書き込みを可能にする。この場合、特別な手順とは、特定のアドレスを決まった順番で、実行ユニット１００４がアクセスする。あるいは特定のアドレスに、実行ユニット１００４が、特定のコードを書き込むまたは読み出す。このような、特別な手順を踏んだ場合のみ、実行ユニット１００４が、上記した特定の記憶領域へデータを書き込むことを可能にする。
（３）中央処理装置１００４を介さずに、外部から直接、上記した特定の記憶領域をアクセスする経路を設ける。この場合、ユーザ１０００において、上記した特定の記憶領域の内容が改ざんされないように、パッケージに設けられた外部端子（ピン）から、特定のシリアルコードを供給したあとでないと、経路が形成されないようにする。あるいは、上記した特定の記憶領域のテストは、ウエハ段階でのみ行うようにする。この場合、上記した特定の記憶領域への経路は、パッケージの外部端子（ピン）には接続せず、パッケージ内において、固定する。
【００４６】
このようにすることにより、上記した特定の記憶領域の内容が改ざんされるのを防ぎながら、テストが可能となる。
【００４７】
＜有効期限情報＞
この実施の形態１において、有効期限情報は、ソフトウェア記憶ユニット１００５（図１）の特定の記憶領域または記憶ユニット１３００（図４）に格納される。有効期限情報は、ライセンス管理ユニット１００３によって、書き込まれ、ライセンス管理の際に用いられる。そのため、有効期限情報は、ライセンス管理ユニット１００３の一部と見なすこともできる。そのため、説明を容易にするために、有効期限情報を格納している記憶領域は、ライセンス管理ユニット１００３に含まれているものとして、説明する。
【００４８】
図５は、ライセンス管理ユニット１００３に含まれる有効期限情報に関するテーブルを示す説明図である。図５には、図１に示したソフトウェア記憶ユニット１００５の特定の記憶領域が、ライセンス管理ユニット１００３に含まれているように描かれていると見なしてもよい。この場合、図５において、特定の記憶領域は、１００５−ＡＲとして示されている。この特定の記憶領域１００５−ＡＲは、図３で示した領域アドレス信号ＡＲＤによって指定されるソフトウェア記憶ユニット１００５の記憶領域であると見なすことができる。この特定の記憶領域１００５−ＡＲに、テーブルが形成される。テーブルは、期限付きソフトウェアを特定する情報と、その期限付きソフトウェアの有効期限情報とが、対として格納される。期限付きソフトウェアが、ソフトウェア記憶ユニット１００５にインストールされる毎に、インストールした期限付きソフトウェアを特定する情報と、それに対応する有効期限情報が、テーブルに追加される。
【００４９】
期限付きソフトウェアを特定する情報としては、例えば、その期限付きソフトウェアを特定するユニーク番号（ＩＤ）がある。期限付きソフトウェアが、特定のユニーク番号（ＩＤ）を有していない場合には、例えば図１６で説明した属性情報部ＡＴＢに、ソフトウェア部ＳＢに格納されている期限付きソフトウェアを特定するユニーク番号（ＩＤ）を格納するようにすればよい。ここでは、属性情報部ＡＴＢにユニーク番号（ＩＤ）が格納されているものとして説明する。なお、この場合にも、属性情報部ＡＴＢに期限を示す期限情報も含まれている。
【００５０】
図５を例にして、記憶領域１００５−ＡＲに形成されているテーブルを説明する。ライセンス管理ユニット１００３は、ソフトウェア提供装置１００１から提供された期限付きソフトウェアから、属性情報部ＡＴＢに格納されているユニーク番号（ＩＤ）と、期限情報とを取得し、取得した情報と電源投入時間情報とに基づいて、テーブルを形成する。すなわち、期限付きソフトウェアが提供されると、ライセンス管理ユニット１００３は、属性情報部ＡＴＢに格納されている期限情報と、電源投入時間情報とを演算して、有効期限情報を形成する。形成した有効期限情報と、属性情報部ＡＴＢに格納されているユニーク番号（ＩＤ）とを対として、記憶領域１００５−ＡＲ内のテーブルに登録する。
【００５１】
図５では、３個の期限付きソフトウェアが、テーブルに登録されている例が示されている。図５において、期限付ＳＷ−ＩＤ１は、期限付きソフトウェアＩＤ１のユニーク番号を示しており、有効期限情報１は、期限付きソフトウェアＩＤ１の期限情報に基づいて求められた有効期限情報を示している。また、期限付ＳＷ−ＩＤ２は、期限付きソフトウェアＩＤ２のユニーク番号を示しており、有効期限情報２は、期限付きソフトウェアＩＤ２の期限情報に基づいて求められた有効期限情報を示している。同様に、期限付ＳＷ−ＩＤ３は、期限付きソフトウェアＩＤ３のユニーク番号を示しており、有効期限情報３は、期限付きソフトウェアＩＤ３の期限情報に基づいて求められた有効期限情報を示している。
【００５２】
それぞれの有効期限情報は、属性情報部ＡＴＢに格納されている期限情報に、電源投入時間情報を加算することにより、形成される。すなわち、現在の電源投入時間情報によって示される現在の時間に、期限情報によって示される時間が、オフセットとして加算され、電源投入の時を始点とした期限が、有効期限情報によって示されることになる。有効期限情報１を例にすると、期限付きソフトウェアＩＤ１の属性情報部ＡＴＢに格納されていた期限情報と、現在の電源投入時間情報とが加算される。加算によって、得られた情報が、有効期限情報１として、テーブルに登録される。同様に、有効期限情報２の場合では、期限付きソフトウェアＩＤ２の属性情報部ＡＴＢに格納されていた期限情報と、現在の電源投入時間情報とが加算される。加算によって、得られた情報が、有効期限情報２として、テーブルに登録される。このようにすることにより、期限付きソフトウェアＩＤ１は、それをインストールしたときを始点として期限の管理が可能となり、期限付きソフトウェアＩＤ２は、それをインストールしたときを始点として期限の管理が可能となる。
【００５３】
記憶領域１００５−ＡＲに形成されるテーブルにおいて、有効期限情報の項目は、販売者が、マイクロプロセッサ１００２を提供する際に、最も長い期限に設定しておくことが望ましい。例えば、最も長い期限が、有効期限情報を構成する全ビットが、論理値“１”の場合、テーブルにおけるそれぞれの有効期限情報の全ビットを、論理値“１”に設定して、提供する。このようにすることにより、期限付きソフトウェアのユニーク番号の項目は、初期化しなくても済むようになる。すなわち、ユーザ１０００が、ソフトウェアをインストールし、ユニーク番号項目に、ソフトウェアのユニーク番号を登録したとき、そのソフトウェアの有効期限は実質的に制限が設定されていない状態となる。そのため、ユニーク番号の項目を初期化しなくても、ソフトウェアは、初めは実質的に制限無しで、実行することが可能となる。
【００５４】
ソフトウェア記憶ユニット１００５としてフラッシュメモリを用いる場合、フラッシュメモリには、全ビットを、論理値“０”へ設定する０パージ機能を有する場合がある。このような場合には、フラッシュメモリの論理値を“１”に変更するよりも、論理値“０”へ変更することが容易である。この場合には、有効期限情報の全ビットが、論理値“０”のときが、最も長い期限を示すように変更すればよい。
【００５５】
テーブルに、登録してあるユニーク番号と有効期限情報とが、有効であるか否かを示すバリッドビットを追加するようにしてもよい。この場合、それぞれのユニーク番号に対応したバリッドビットを設ける。設けたバリッドビットに、例えば論理値“１”を書き込むことにより、このバリッドビットに対応したユニーク番号と有効期限情報は、有効とされ、ライセンス管理に用いられることになる。これに対して、バリッドビットをクリア（論理値“０”）した場合には、このバリッドビットに対応したユニーク番号と有効期限情報は無効であるとされて、ライセンス管理には用いられないようにする。このように、それぞれに対応したバリッドビットを設けることにより、有効期限情報を初期化する場合に比べると、書き換えるビット数を低減することが可能となり、高速化を図ることが可能となる。
【００５６】
図５では、期限付きソフトウェアを特定するために、ユニーク番号（ＩＤ）をテーブルに登録することを説明した。しかしながら、これに限定されるものではない。すなわち、ユニーク番号（ＩＤ）の代わりに、インストールした期限付きソフトウェアのアドレスを、登録するようにしてもよい。すなわち、ソフトウェア記憶ユニット１００５における期限付きソフトウェアのアドレスを、ユニーク番号（ＩＤ）の代わりに登録するようにしてもよい。この場合、テーブルに登録するアドレスは、例えば、ソフトウェアのスタートアドレスと終了アドレスの間を示す領域アドレスとする。ユニーク番号（ＩＤ）の代わりにソフトウェアのアドレスを登録することにより、ライセンス管理ユニット１００３は、実行ユニット１００４による期限付きソフトウェアの実行の制御を高速化することが可能となる。
【００５７】
あとで説明するが、ライセンス管理ユニット１００３は、実行ユニット１００４による期限付きソフトウェアの実行を制御する際、テーブルに格納されている期限付きソフトウェアを特定する情報と、実行ユニット１００４から出力されているアドレスとを比較する。期限付きソフトウェアを特定する情報として、ユニーク番号（ＩＤ）をテーブルに登録している場合、ユニーク番号（ＩＤ）から、ソフトウェアのアドレスを求め、求めたアドレスと、実行ユニット１００４からのアドレスとを比較することになる。これに対して、期限付きソフトウェアを特定する情報としてアドレスを用いる場合には、テーブルに登録されている期限付きソフトウェアのアドレスと、実行ユニット１００４からのアドレスとの比較で済むため、高速化を図ることが可能となる。
【００５８】
また、ソフトウェア記憶ユニット１００５にインストールされている期限付きソフトウェアのそれぞれは、全て同じ有効期限であるとして、管理をするようにしてもよい。この場合には、テーブルは不要であり、有効期限情報のみを、記憶領域１００５−ＡＲに格納すればよい。
【００５９】
＜期限付きソフトウェアの実行制御の概要＞
次に、図５で説明したテーブルを用いて、期限付きソフトウェアの実行を制御する構成を説明する。ここでは、２つの構成を説明する。
【００６０】
＜＜第１の構成＞＞
図６は、ライセンス管理ユニット１００３の一部分を示すブロック図である。図６において、１００５は、ソフトウェア記憶ユニットであるフラッシュメモリを示している。フラッシュメモリの概要は、既に図３を用いて説明しているので、ここでは省略する。図６には、フラッシュメモリ１００５が有する端子のうち、リード端子ＲＴのみが示されており、他の端子は省略されている。
【００６１】
図６において、１４００は、比較回路であり、１４０１および１４０２は、アンド回路である。特に制限されないが、比較回路１４００およびアンド回路１４０１、１４０２は、ライセンス管理ユニット１００３に含まれている。
【００６２】
比較回路１４００には、図５に示したテーブルから有効期限情報（図６では、有効期限情報ＶＴＩ）と、電源投入時間領域１１０２（図２）から電源投入時間情報（図６では、電源投入情報ＰＴＩ）が供給される。比較回路１４００は、電源投入時間情報ＰＴＩによって示される電源投入時間が、有効期限情報ＶＴＩにより示されている有効期限を超えていれば、出力信号をロウレベルにする。これに対して、電源投入時間情報ＰＴＩによって示される電源投入時間が、有効期限情報ＶＴＩにより示されている有効期限を超えていなければ（達していなければ）、比較回路１４００は、出力信号をハイレベルにする。すなわち、比較回路１４００は、電源投入を始点として、現在の時刻（電源投入時間情報ＰＴＩによって表される時刻）と期限（有効期限情報ＶＴＩによって表される時刻）とを比較している。電源投入を始点として、現在の時刻が、期限を越えていれば、比較回路１４００の出力信号は、ロウレベルになり、現在の時刻が、期限を越えていなければ、比較回路１４００の出力信号は、ハイレベルとなる。
【００６３】
比較回路１４００の出力信号は、アンド回路１４０２に供給されるとともに、位相反転され、アンド回路１４０１に供給される。また、実行ユニット１００４からのリード信号ＲＥ−Ｃが、アンド回路１４０１および１４０２に供給されている。アンド回路１４０１の出力信号は、エラー信号として、実行ユニット１００４へ供給され、アンド回路１４０２の出力信号は、リード信号としてフラッシュメモリ１００５のリード端子ＲＴへ供給される。
【００６４】
実行ユニット１００４は、フラッシュメモリ１００５からソフトウェアを読み出して、実行する。このとき、実行ユニット１００４は、読み出すソフトウェアが格納されているフラッシュメモリ１００５のアドレスを指定するアドレス信号ＡＤを出力する。また、フラッシュメモリ１００５に対して読み出しを指定するために、リード信号ＲＥ−Ｃをハイレベルにする。
【００６５】
ライセンス管理ユニット１００３は、実行ユニット１００４が出力するアドレス信号ＡＤに基づいて、図５を用いて説明したテーブルを検索する。図５の例では、期限付ＳＷ−ＩＤ１〜ＳＷ−ＩＤ３から、このときのアドレス信号にＡＤに対応するユニーク番号（ＩＤ）と一致する期限付ＳＷ−ＩＤが検索される。検索によって見つけられた期限付ＳＷ−ＩＤに対応する有効期限情報が、上記した比較回路１４００へ、有効期限情報ＶＴＩとして供給されることになる。一例を述べると、検索によって期限付ＳＷ−ＩＤ１が一致した場合、この期限付ＳＷ−ＩＤ１に対応する有効期限情報１が、有効期限情報ＶＴＩとして、比較回路１４００へ供給されることになる。
【００６６】
電源投入時間情報ＰＴＩによって示されている電源投入時間が、有効期限情報ＶＴＩによって示されている有効期限を越えていた場合、比較回路１４００の出力信号はロウレベルとなる。このとき、実行ユニット１００４は、ソフトウェアをフラッシュメモリ１００５から読み出すために、ハイレベルのリード信号ＲＥ−Ｃを出力している。そのため、アンド回路１４０１の出力信号はハイレベルとなり、実行ユニット１００４へ、ハイレベルのエラー信号が供給され、エラーが発生していることが知らされる。このとき、アンド回路１４０２には、比較回路１４００からロウレベルの出力信号が供給されるため、アンド回路１４０２の出力信号は、ロウレベルとなり、フラッシュメモリ１００５のリード端子ＲＴには、ロウレベルのリード信号が供給されることになる。
【００６７】
リード端子ＲＴにロウレベルのリード信号が供給されることにより、フラッシュメモリ１００５では、リード動作が行われず、ソフトウェアの読み出しは行われない。すなわち、フラッシュメモリ１００５から実行ユニット１００４へ期限付きソフトウェアは供給されず、期限付きソフトウェアの実行が禁止されることになる。
【００６８】
一方、電源投入時間情報ＰＴＩによって示されている電源投入時間が、有効期限情報ＶＴＩによって示されている有効期限を越えていない場合、比較回路１４００の出力信号はハイレベルとなる。そのため、アンド回路１４０１の出力信号はロウレベルとなり、実行ユニット１００４へ、ロウレベルのエラー信号が供給され、エラーが発生していないことが知らされる。このとき、比較回路１４００の出力信号が、ハイレベルとなるため、アンド回路１４０２の出力信号は、ハイレベルとなり、フラッシュメモリ１００５のリード端子ＲＴには、ハイレベルのリード信号が供給されることになる。
【００６９】
リード端子ＲＴにハイレベルのリード信号が供給されることにより、フラッシュメモリ１００５では、リード動作が行われ、実行ユニット１００４から出力されているアドレス信号ＡＤによって指定された記憶領域から、期限付きソフトウェアが読み出される。すなわち、フラッシュメモリ１００５から実行ユニット１００４へ期限付きソフトウェアが供給され、期限付きソフトウェアの実行が可能となる。
【００７０】
このようにして、実行ユニット１００４により期限付きソフトウェアの実行が、期限情報に基づいて、ライセンス管理ユニット１００３により制御される。
【００７１】
＜＜第２の構成＞＞
図７は、ライセンス管理ユニット１００３の一部分を示すブロック図である。図７において、１５００は、命令キューを示している。ここでは、実行ユニット１００４に、命令キュー１５００が設けられている場合を説明するが、命令キュー１５００は、実行ユニット１００４の外部に設けられていてもよい。
【００７２】
実行ユニット１００４は、命令キュー１５００と命令キュー１５００から供給された命令を実行する実行部（図示しない）とを備えている。この場合、実行ユニット１００４がソフトウェアを実行するとき、実行ユニット１００４は、命令フェッチ信号ＱＦを出力し、実行するソフトウェアを構成する命令を、順次、命令キュー１５００に格納する。命令キュー１５００には、複数の命令が格納され、命令キュー１５００に格納された複数の命令から実行すべき命令が、実行部に供給され、実行部において供給された命令の実行が行われる。この実施の形態において、命令キュー１５００は、パージ端子ＦＴを備えている。このパージ端子ＦＴに供給されるパージ制御信号によって、命令キュー１５００に格納されている全ての命令を無効（パージ）することが可能となっている。
【００７３】
ライセンス管理ユニット１００３は、上記した第１の構成と同様に、比較回路１４００、およびアンド回路１４０１を備えている。また、第１の構成では、アンド回路１４０２を備えていたが、第２の構成では、アンド回路１４０２の代わりに、入力側に位相反転機能を有するアンド回路１５０１を備えている。この位相反転機能は、例えばインバータ回路により達成される。さらに、第２の構成では、リード信号ＲＥ−Ｃの代わりに、命令フェッチ信号ＱＦが、アンド回路１４０１、１５０１に供給される。また、比較回路１４００の出力は、位相反転機能により位相反転されて、アンド回路１５０１へ供給されている。このアンド回路１５０１の出力信号が、パージ制御信号として、命令キュー１５００のパージ端子ＦＴに供給されている。比較回路１４００およびアンド回路１４０１の構成は、上記した第１の構成と同じである。
【００７４】
実行ユニット１００４は、命令キュー１５００に命令を格納するとき、命令フェッチ信号ＱＦをハイレベルにする。また、命令キュー１５００のパージ端子ＦＴにハイレベルのパージ制御信号が供給されることにより、命令キュー１５００においては、格納している全ての命令が無効にされる。
【００７５】
電源投入時間情報ＰＴＩによって示されている電源投入時間が、有効期限情報ＶＴＩによって示されている有効期限を越えていた場合、比較回路１４００の出力信号はロウレベルとなる。このとき、実行ユニット１００４は、命令キュー１５００に命令を格納するために、ハイレベルの命令フェッチ信号ＱＦを出力する。その結果、アンド回路１４０１は、ハイレベルのエラー信号を出力し、実行ユニット１００４にエラーが発生していることが知らされる。このとき、アンド回路１５０１には、比較回路１４００の出力が位相反転され、ハイレベルの出力信号が供給されるため、アンド回路１５０１の出力信号は、ハイレベルとなり、ハイレベルのパージ信号が、命令キュー１５００のパージ端子ＦＴに供給されることになる。
【００７６】
パージ端子ＦＴにハイレベルのパージ信号が供給されることにより、命令キュー１５００では、格納している全ての命令が無効にされる。その結果、期限付きソフトウェアの実行が禁止されることになる。
【００７７】
一方、電源投入時間情報ＰＴＩによって示されている電源投入時間が、有効期限情報ＶＴＩによって示されている有効期限を越えていない場合、比較回路１４００の出力信号はハイレベルとなる。そのため、アンド回路１４０１の出力信号はロウレベルとなり、実行ユニット１００４へ、ロウレベルのエラー信号が供給され、エラーが発生していないことが知らされる。このとき、比較回路１４００の出力は、位相反転され、ロウレベルがアンド回路１５０１へ供給されるため、アンド回路１５０１の出力信号は、ロウレベルとなり、命令キュー１５００のパージ端子ＦＴには、ロウレベルのパージ信号が供給されることになる。
【００７８】
パージ端子ＦＴにロウレベルのパージ信号が供給されることにより、命令キュー１５００では、格納されている命令は無効にされず、実行部によって実行されることになる。すなわち、期限付きソフトウェアの実行が可能となる。
【００７９】
このようにして、第２の構成においても、実行ユニット１００４により期限付きソフトウェアの実行が、期限情報に基づいて、ライセンス管理ユニット１００３により制御される。
【００８０】
＜ライセンス管理ユニットの構成＞
図８は、実施の形態１に係わるライセンス管理ユニット１００３の構成を示すブロック図である。同図には、説明の都合上、実行ユニット１００４およびソフトウェア記憶ユニット（フラッシュメモリ）１００５も示さている。ここでは、ライセンス管理ユニット１００３が、図６を用いて説明した第１の構成を有している場合を説明する。
【００８１】
この実施の形態１においては、有効期限情報および電源投入時間情報は、ソフトウェア記憶ユニット１００５に格納されるが、この有効期限情報および電源投入時間情報は、ライセンス管理ユニット１００３において、ライセンス管理の際に用いられる。そのため、図８では、有効期限情報を格納する特定の記憶領域１００５−ＡＲおよび、電源投入時間情報を格納する電源投入時間情報領域１１０２は、ライセンス管理ユニット１００３に含まれているものとして、描かれている。
【００８２】
先ず、ライセンス管理ユニット１００３の構成について説明する。ライセンス管理ユニット１００３は、特定の記憶領域１００５−ＡＲ、電源投入時間領域１１０２、比較回路１４００、１６００−１〜１６００−３、２入力アンド回路１４０１、１４０２、３入力アンド回路１６０３および２入力のオア回路１６０１−１〜１６０１−３を備えている。
【００８３】
２入力アンド回路１４０１、１４０２および比較回路１４００については、既に図６を用いて説明しているので、詳しい説明は省略する。図８では、電源投入時間領域１１０２から電源投入時間情報ＰＴＩが比較回路１４００に供給されていることが明示されている。また、２入力アンド回路１４０１の出力信号が、エラー信号として、実行ユニット１００４へ供給され、実行ユニット１００４からリード信号ＲＥ−Ｃが、２入力アンド回路１４０１および１４０２に供給されていることが、明示されている。さらに２入力アンド回路１４０２の出力信号は、フラッシュメモリ１００５のリード端子ＲＴに供給されていることが明示されている。実行ユニット１００４およびフラッシュメモリ１００５のそれぞれは、図８に示している端子以外に複数の端子を備えているが、ここでは説明に必要な端子のみを明示し、残りの端子については、省略されている。
【００８４】
図５では、特定の記憶領域１００５−ＡＲに、期限付きソフトウェアを特定する情報として、ユニーク番号（ＩＤ）を用いる例を示したが、図８では、期限付きソフトウェアを特定する情報として、図５で説明した期限付きソフトウェアのアドレスを用いる例が示されている。すなわち、期限付きソフトウェアのアドレスと、その期限付きソフトウェアの有効期限を示す有効期限情報とが対として、特定の記憶領域１００５−ＡＲ内のテーブルに格納される。図８には、３個の期限付きソフトウェアが、テーブルに登録された状態が示されている。
【００８５】
すなわち、期限付きソフトウェア１のフラッシュメモリ１００５におけるアドレスが、期限付ＳＷアドレス１として、テーブルに登録され、この期限付きソフトウェア１の有効期限を示す有効期限情報が、有効期限情報１として、テーブルに登録されている。この場合、期限付ＳＷアドレス１と有効期限情報１とは、１対１に対応していることになる。また、期限付きソフトウェア２のフラッシュメモリ１００５におけるアドレスが、期限付ＳＷアドレス２として、テーブルに登録され、この期限付きソフトウェア２の有効期限を示す有効期限情報が、有効期限情報２として、テーブルに登録されている。この場合、期限付ＳＷアドレス２と有効期限情報２とは、１対１に対応していることになる。同様に、期限付きソフトウェア３のフラッシュメモリ１００５におけるアドレスが、期限付ＳＷアドレス３として、テーブルに登録され、この期限付きソフトウェア３の有効期限を示す有効期限情報が、有効期限情報３として、テーブルに登録されている。この場合も、期限付ＳＷアドレス３と有効期限情報３とは、１対１に対応していることになる。
【００８６】
ここで、有効期限情報１〜３のそれぞれは、図５において説明したように、期限付き有償ソフトウェアに含まれている期限情報に、期限付き有償ソフトウェアをフラッシュメモリ１００５へインストールしたときの電源投入時間を加算することによって、得られた有効期限を示す情報である。そのため、例えば、期限付き有償ソフトウェア１〜３のそれぞれの期限が同じであっても、有償ソフトウェア１〜３を、フラッシュメモリ１００５へインストールしたタイミングが異なれば、有効期限情報１〜３によって示される有効期限は異なることになる。
【００８７】
比較回路１６００−１と２入力オア回路１６０１−１とが、１組の単位論理回路と見なされ、テーブルの１行に対応している。すなわち、テーブルの１行に登録されている期限付きＳＷアドレス１と有効期限情報１に、比較回路１６００−１と２入力オア回路１６０１−１が対応している。同様に、比較回路１６００−２と２入力オア回路１６０１−２とが、１組の単位論理回路と見なされ、テーブルの１行に対応している。すなわち、テーブルの１行に登録されている期限付きＳＷアドレス２と有効期限情報２に、比較回路１６００−２と２入力オア回路１６０１−２が対応している。また、比較回路１６００−３と２入力オア回路１６０１−３とが、１組の単位論理回路と見なされ、テーブルの１行に対応している。すなわち、テーブルの１行に登録されている期限付きＳＷアドレス３と有効期限情報３に、比較回路１６００−３と２入力オア回路１６０１−３が対応している。それぞれの単位論理回路の出力信号、すなわち２入力オア回路１６０１−１〜１６０１−３の出力信号は、３入力アンド回路１６０３に供給され、３入力アンド回路１６０３の出力信号が、比較回路１４００において、電源投入時間情報ＰＩＴと比較される。
【００８８】
テーブルのそれぞれの行に対して、単位論理回路が設けられ、それぞれの単位論理回路の出力信号が、アンド回路１６０３に供給される。そのため、図８では、アンド回路１６０３は、３入力アンド回路として説明したが、アンド回路１６０３は、テーブルの行数に対応した入力数を有するアンド回路である。
【００８９】
比較回路１６００−１〜１６００−３のそれぞれの一方の入力には、実行ユニット１００４からアドレス信号ＡＤが、供給され、他方の入力には、対応するテーブルの行に登録されている期限付ＳＷアドレスが供給される。すなわち、比較回路１６００−１の他方の入力には、対応する行に登録されている期限付ＳＷアドレス１が供給され、比較回路１６００−２の他方の入力には、対応する行に登録されている期限付ＳＷアドレス２が供給され、比較回路１６００−３の他方の入力には、対応する行に登録されている期限付ＳＷアドレス３が供給されている。
【００９０】
比較回路１６００−１〜１６００−３のそれぞれは、一方の入力に供給されているアドレス信号とＡＤと、他方の入力に供給されている期限付ＳＷアドレスとを比較し、一致する場合には、出力信号をハイレベルにし、不一致の場合には、出力信号をロウレベルにする。ここで、期限付ＳＷアドレスが、期限付き有償ソフトウェアが格納されているアドレスの領域を示している場合、すなわち、期限付ＳＷアドレスが、領域アドレスであった場合、比較回路１６００−１〜１６００−３のそれぞれは、他方の入力に供給されているアドレスの範囲内を、一方の入力に供給されているアドレス信号ＡＤが指定しているとき、出力信号をハイレベルにし、他方の入力に供給されているアドレスの範囲外を、一方の入力に供給されているアドレス信号ＡＤが指定しているとき、出力信号をロウレベルにする。
【００９１】
図８では省略されているが、実行ユニット１００４からのアドレス信号ＡＤは、フラッシュメモリ１００５のアドレス端子にも供給されている。このアドレス信号ＡＤは、ソフトウェアを、実行ユニット１００４が実行するとき、フラッシュメモリ１００５に格納されているソフトウェア内の命令のアドレスを指定する命令アドレス信号である。
【００９２】
比較回路１６００−１〜１６００−３のそれぞれの出力信号は、位相反転され、対応する２入力オア回路１６０１−１〜１６０１−３に供給されている。また、２入力オア回路１６０１−１〜１６０１−３のそれぞれには、対応する行に登録されている有効期限情報が供給されている。すなわち、２入力オア回路１６０１−１には、対応する行に登録されている有効期限情報１が供給され、２入力オア回路１６０１−２には、対応する行に登録されている有効期限情報２が供給され、２入力オア回路１６０１−３には、対応する行に登録されている有効期限情報３が供給されている。
【００９３】
実行ユニット１００４が、期限付きソフトウェアを実行するとき、実行ユニット１００４は、その期限付きソフトウェア内の命令を指定するアドレス信号ＡＤを出力するとともに、リード信号ＲＥ−Ｃをハイレベルにする。ライセンス管理ユニット１００３内の比較回路１６００−１〜１６００−３のそれぞれは、実行ユニット１００４からのアドレス信号ＡＤと、対応する行における期限付ＳＷアドレス１〜３を比較する。例えば、アドレス信号ＡＤが、期限付ＳＷアドレス２によって指定されている範囲内を指定している場合、比較回路１６００−２の出力信号はハイレベルとなり、比較回路１６００−１および１６００−３の出力信号はロウレベルとなる。
【００９４】
その結果、２入力オア回路１６０１−１および１６０１−３のそれぞれの出力は、ハイレベルとなる。これに対して、２入力オア回路１６０−２の出力は、有効期限情報２の値に従った値となる。すなわち、有効期限情報１および有効期限情報３は、オア回路１６０１−１および１６０１−３によってマスクされるのに対して、有効期限情報２は、オア回路１６０１−２を介して、アンド回路１６０３へ伝達されることになる。アンド回路１６０３は、伝達された有効期限情報２を、有効期限情報ＶＴＩとして、比較回路１４００へ供給する。
【００９５】
比較回路１４００は、図６で説明したように、電源投入時間情報ＰＴＩによって示されている電源投入時間と有効期限情報ＶＴＩによって示されている期限（有効期限）とを比較する。図６で説明したように、比較の結果として、電源投入時間が、有効期限を超えていれば、アンド回路１４０２からはロウレベルのリード信号が、フラッシュメモリ１００５のリード端子ＲＴに供給される。これにより、実行ユニット１００４からフラッシュメモリ１００５へもアドレス信号ＡＤは供給されているが、フラッシュメモリ１００５から実行ユニット１００４へはソフトウェアは供給されず、期限付きソフトウェアの実行は禁止される。これに対して、比較の結果として、電源投入時間が、有効期限を超えていなければ、アンド回路１４０２からはハイレベルのリード信号が、フラッシュメモリ１００５のリード端子ＲＴに供給されることになる。この場合には、実行ユニット１００４からフラッシュメモリ１００５へ供給されているアドレス信号ＡＤに従って、フラッシュメモリ１００５から命令が読み出され、実行ユニット１００４へ供給される。その結果、期限付きソフトウェアの実行が可能となる。
【００９６】
これにより、テーブルに登録されている期限付きソフトウェア２の期限情報に基づいて、期限を越えていなければ、期限付きソフトウェア２の実行ユニット１００４による実行が許容され、期限を越えていれば、期限付きソフトウェア２の実行が禁止される。
【００９７】
期限付きソフトウェア２を例にして説明したが、期限付きソフトウェア１および３についても同様である。
【００９８】
なお、実行ユニット１００４から出力されたアドレス信号ＡＤが、期限付ＳＷアドレス１〜３によって指定されている範囲の外を指定していた場合には、ノア回路１６０１−１〜１６０１−３のそれぞれが、有効期限情報１〜３をマスクし、ノア回路１６０１−１〜１６０１−３のそれぞれは、ハイレベルを出力する。そのため、ライセンス管理ユニット１００３から、フラッシュメモリ１００５のリード端子ＲＴにハイレベルが供給されることになる。その結果、フラッシュメモリ１００５から、実行ユニット１００４へ、アドレス信号ＡＤに従った命令が供給されるようになり、実行ユニット１００４は、ソフトウェアを実行することが可能となる。
【００９９】
ライセンスを管理する方法として見た場合、ライセンス管理方法は、実行ユニット１００４による期限付きでライセンスが許諾されている期限付きソフトウェアの実行を、期限を示す期限情報に基づいて、制御する工程（制御工程）を備えていると見なすことができる。
【０１００】
実施の形態１によれば、通信回線等を介して、ソフトウェア配信元１０１０から提供された期限付きソフトウェアを、ユーザ１０００は、期限情報によって示されている有効期限の間、実行することが可能となる。そのため、ソフトウェア配信元から見れば、有償ソフトウェアの拡販に繋がる。また、期限付き有償ソフトウェアが実行可能な期間が、期限情報によって示されている期間に制限されると見なすことができる。そのため、ソフトウェア配信元は、提供したあと、ライセンスの管理をしなくても、有効期限を越えて期限付きソフトウェアが不正に使用されるのを防ぐことが可能となり、負担の低減を図りながら、ライセンス料金の回収漏れを防ぐことが可能となる。一方、ユーザから見た場合には、ライセンス料金の支払いをする前に、有償ソフトウェアを試用することが可能となり、不要な出費を抑制することが可能となる。
【０１０１】
（実施の形態２）
実施の形態１では、例えば図８で述べたように、比較回路１４０，１６００−１〜１６００−３、アンド回路１４０１、１４０２、１６０３およびオア回路１６０１−１〜１６０１−３のようなハードウェアを用いて、ライセンス管理ユニット１００３を構成する場合を説明した。しかしながら、ライセンス管理ユニット１００３は、ソフトウェアとそれを実行する実行ユニットとによって実現することもできる。また、実行ユニットとしては、マイクロプロセッサ１００２に含まれている実行ユニット１００４を用いることもできる。このように、実行ユニットとソフトウェアとによって、ライセンス管理ユニット１００３を実現する場合、マイクロプロセッサ１００２の価格が上昇するのを抑制することが可能である。
【０１０２】
図１７は、実施の形態２に係わる実行ユニットの動作を説明するための模式図である。図１７において、１００４は、実施の形態１で説明した実行ユニットである。実行ユニット１００４は、破線ＳＷで囲まれたソフトウェアとソフトウェアＳＷＣを、時分割的に実施する。ここで、破線ＳＷ内のＳＷ１は、無償ソフトウェアを示しており、ＳＷ２は、有償ソフトウェアを示しており、ＳＷ３は、期限付きソフトウェアを示している。また、ＳＷＣは、ライセンス管理ユニット１００３の機能を実現するためのソフトウェアを示している。実行ユニット１００４は、これらのソフトウェアＳＷ１〜ＳＷ３およびＳＷＣに対して共通になっている。
【０１０３】
実行ユニット１００４は、例えば第１タイミングのとき、無償ソフトウェアＳＷ１を実行する。また、実行ユニット１００４は、第２タイミングのときに、有償ソフトウェアＳＷ２に対応し、第３タイミングのとき、期限付きソフトウェアＳＷ３に対応する。第２タイミングおよび／または第３タイミングのとき、実行ユニット１００４は、ライセンス管理ユニット１００３の機能を実現するためのソフトウェアＳＷＣを、ソフトウェア記憶ユニット１００５から読み出して、実行する。ソフトウェアＳＷＣを実行することにより、第２タイミングのときには、有償ソフトウェアの例えばダウンロードが制御され、第３タイミングのときには、期限付きソフトウェアの実行が制御される。
【０１０４】
このようにすることにより、期限付きソフトウェアを見た場合、それ自体に期限に係わる機能が組み込まれていなくても、ライセンスが許諾されている期限に基づいた管理を実現することが可能となる。すなわち、複数の期限付きソフトウェアのそれぞれに、期限に関する機能を組み込まなくても、ライセンスに係わる期限に関する管理を実現することが可能となる。また、有償ソフトウェアを見た場合にも、それ自体に、ダウンロードに係わる機能を組み込まなくても、ライセンスに基づいた管理が可能となる。
【０１０５】
図９は、上記したソフトウェアＳＷＣにより実現される機能のうち、期限付きソフトウェアを、ソフトウェア記憶ユニット１００５へインストールする場合の機能を示すフローチャート図である。
【０１０６】
先ず、ステップＳ００において、ソフトウェア記憶ユニット１００５へのソフトウェアのインストールが開始する。実行ユニット１００４は、ソフトウェア提供装置１００１（図１）から提供されたソフトウェアの属性情報部ＡＴＢに格納されている情報から、期限付きソフトウェア（ＳＷ）であるか否かを、ステップＳ０１で判定する。提供されたソフトウェアが属性情報部ＡＴＢを有していないあるいは属性情報部ＡＴＢに格納されている情報が、期限付きソフトウェアであることを示していない場合（ｎｏ）、実行ユニット１００４は、提供されたソフトウェアのインストールを、ステップＳ０３において開始する。
【０１０７】
一方、ステップＳ０１において、インストールするソフトウェア（ＳＷ）が、期限付きのソフトウェアである判定した場合（ｙｅｓ）、実行ユニット１００４は、次にステップＳ０２を実施する。ステップＳ０２において、実行ユニット１００４は、属性情報部ＡＴＢに格納されている期限情報と、電源投入時間情報との加算により、有効期限情報を求め、求めた有効期限情報を、特定の記憶領域１００５−ＡＲのテーブルに格納（登録）する。このステップＳ０２は、期限情報を格納する格納工程と見なすことができる。また、このとき、ソフトウェア部ＳＢに格納されているソフトウェアから、ソフトウェア記憶ユニット１００５にインストールしたときのアドレス領域を求め、記憶領域１００５−ＡＲのテーブルに格納（登録）する。このとき、求めたアドレス領域（期限付ＳＷアドレス）と有効期限情報とが、テーブルにおいて、１対１に対応するように、テーブルの同じ行に登録する。そのあと、ステップＳ０３を実行する。
【０１０８】
ソフトウェア提供装置１００１から、ソフトウェアが提供される度に、上記したステップＳ００〜Ｓ０３が繰り返して実行される。
【０１０９】
これにより、期限付きソフトウェアについては、実施の形態１と同様に、特定の領域１００５−ＡＲに、アドレス領域（期限付ＳＷアドレス）と有効期限情報とが１対１に対応して格納される。
【０１１０】
図１０は、上記したソフトウェアＳＷＣにより実現される機能のうち、期限付きソフトウェアを実行（呼び出す）時の機能を示すフローチャート図である。
【０１１１】
ステップＳ１０において、実行ユニット１００４は、ソフトウェアの実行あるいは呼び出しを検出する。図１０では、別のソフトウェアから、命令によって、ソフトウェアが呼び出された場合が示されている。なお、呼び出し命令として、図１０には、ｊｕｍｐ、ｃａｌｌ等が例示されている。
【０１１２】
実行ユニット１００４は、ステップＳ１１において、呼び出されたアドレスを基にして。特定の記憶領域１００５−ＡＲのテーブルを検索する。この場合、テーブルに登録されている複数のアドレス領域（複数の期限付ＳＷアドレス）のうちのいずれかの領域内を、呼び出されたアドレスが指定しているかを調べることになる。
【０１１３】
ステップＳ１１の検索において、呼び出されたアドレスが、アドレス領域内を指定していた場合、ステップＳ１２において、有効期限付きソフトウェア（ＳＷ）であると判定（ｙｅｓ）し、次に、実行ユニット１００４は、ステップＳ１３を実行する。これに対して、呼び出されたアドレスが、いずれのアドレス領域内も指定していない場合、ステップＳ１２において、有効期限付きソフトウェア（ＳＷ）ではないと判定（ｎｏ）し、次に、ステップＳ１５を実行する。
【０１１４】
ステップＳ１３において、実行ユニット１００４は、呼び出されたアドレスによって指定された領域を含んでいるアドレス領域（期限付ＳＷアドレス）と１対１に対応している有効期限情報を、特定の記憶領域１００５−ＡＲから読み出し、電源投入時間情報によって示されている電源投入時間と比較する。すなわち、有効期限内か否かの判定を行う。判定の結果、有効期限を越えていた場合（ｎｏ）、次に、ステップＳ１４を実行する。これに対して、有効期限を超えていない場合（ｙｅｓ）には、次に、ステップＳ１５を実行する。
【０１１５】
ステップＳ１５において、実行ユニット１００４は、ソフトウェアの呼び出しと実行を行う。また、ステップＳ１４においては、実行ユニット１００４は、ソフトウェアを実行（起動）せずに、エラーを通知する。
【０１１６】
これにより、呼び出されたソフトウェアが、期限付きソフトウェアであって、有効期限を越えていた場合には、ステップＳ１４が実行されることになり、期限付きソフトウェアの実行が禁止される。一方、期限付きソフトウェアでない場合または期限付きソフトウェアであって、有効期限を越えていない場合には、ステップＳ１５が実行されることになる。ソフトウェアの呼び出しまたは実行の際には、上記したステップが繰り返されることになる。
【０１１７】
有効期限情報は、期限情報に基づいて求められている。そのため、ライセンス管理方法として見た場合、ステップＳ１１〜Ｓ１３は、期限情報に基づいて、期限付きソフトウェアの実行を制御している制御工程と見なすことができる。
【０１１８】
なお、図９および図１０では、期限付きソフトウェアを特定する情報として、アドレス領域（アドレス）を用いる例を示したが、勿論ユニーク番号（ＩＤ）を用いるようにしてもよい。
【０１１９】
また、実施の形態２においては、ソフトウェアＳＷＣによって、有償ソフトウェアＳＷ２および／または期限付き有償ソフトウェアＳＷ３のライセンスに係わる管理が実現される。そのため、ソフトウェアを、有償または期限付き有償にする際に、ライセンスの管理に係わる機能追加を低減または無くすことが可能である。これにより、ソフトウェア配信元が、ソフトウェアを有償および／または期限付き有償にする際のソフトウェアの作成に係わる負担を低減することが可能となる。
【０１２０】
（実施の形態３）
実施の形態１および２においては、期限付き有償ソフトウェアは、そのソフトウェアが備えている期限内においては、そのソフトウェアの実行が可能であった。ここでは、ソフトウェア配信元（販売者）からユーザに提供された期限付きソフトウェアの期限を延長する実施の形態を説明する。この実施の形態においては、ソフトウェア配信元が、期限延長用のソフトウェア（以下、期限延長用ソフトウェアとも称する）を配信し、ユーザが、提供された期限延長用ソフトウェアを実行することにより、期限の延長が行われる例を説明する。
【０１２１】
期限付きソフトウェアの期限を延長する状況は、複数の場合が考えられる。例を述べると、次のような場合が存在する。まず、大別すると、ユーザから期限延長の申請があった場合と、ソフトウェア配信元が、自ら期限延長を行う場合がある。
【０１２２】
ユーザの期限延長の申請としては、期限付き有償ソフトウェアについて、そのライセンスの対価であるライセンス料金の支払いが行われた場合が考えられる。一方、ソフトウェア配信元が、自ら期限延長を行う場合としては、販売キャンペーン、ソフトウェアの改善の場合等が考えられる。販売キャンペーンでは、ソフトウェアの販売促進のために、期限を延長するために、期限延長用ソフトウェアを提供する。また、ソフトウェアの改善としては、既に配信済みのソフトウェアに不具合があった場合、あるいは性能向上を図った場合に、期限延長用ソフトウェアを提供する。この場合、ソフトウェア配信元は、改善された期限付きソフトウェアも配信（提供）する。
【０１２３】
図１１は、実施の形態３に係わるライセンス管理モデル（ライセンス管理システム）を示す構成図である。図１１は、図１と類似しているため、ここでは主に相違点を説明する。ソフトウェア配信元１０１０のサーバー１０１１には、期限延長用ソフトウェアが格納されている。ユーザ１０００からの申請に応答して、ソフトウェア配信元１０１０のサーバー１０１１から期限延長用ソフトウェアが、例えば通信回線を介してユーザ１０００へ提供（供給）される。提供された期限延長用ソフトウェアは、ユーザ１０００が備えているソフトウェア提供装置１００１に格納される。この実施の形態３の場合、特に制限されないが、ソフトウェア配信元１０１０が提供する期限延長用ソフトウェアは、期限の延長対象となる期限付き有償ソフトウェアを特定する情報と、新しい有効期限または延長期間を示す期限情報とを備えている。延長対象となる期限付き有償ソフトウェアを特定する情報としては、先に図５を用いて説明したユニーク番号（ＩＤ）であってもよいし、図８を用いて説明した期限付きソフトウェアのアドレス（領域アドレス）であってもよい。ここでは、期限付きソフトウェアを特定する情報として、領域アドレスを用いる場合を例にして説明する。
【０１２４】
マイクロプロセッサ１００２は、ソフトウェア提供装置１００１から、期限延長用ソフトウェアを受け取り、インストールする。この場合、期限付き有償ソフトウェアとは、異なり、期限延長用ソフトウェアは、ソフトウェア記憶ユニット１００５には、格納されず、ライセンス管理ユニット１００３へ供給される（図では、期限延長として示されている）。ライセンス管理ユニット１００３は、供給された期限延長用ソフトウェアに含まれている期限付きソフトウェアの領域アドレスを基にして、ソフトウェア記憶ユニット１００５内の領域１００５−ＡＲに形成されているテーブルを検索する。この検索によって、一致した期限付ソフトウェアの期限を、ライセンス管理ユニット１００３は、供給された期限延長用ソフトウェアに含まれている有効期限または延長期間へ変更する。
【０１２５】
図１２は、実施の形態３に係わるライセンス管理ユニット１００３の構成を示すブロック図である。図１２には、図８と同様に、ソフトウェア記憶ユニット１００５の領域１００５−ＡＲが、ライセンス管理ユニット１００３に含まれるものとして、示されている。領域１００５−ＡＲには、図８と同様に、テーブルが形成されている。テーブルの構成は、図８と同じであるため、説明は省略する。
【０１２６】
図１２において、１７００−１〜１７００−３は、比較回路であり、１７０１−１〜１７０１−３は、制御端子を備えたバッファ回路である。比較回路１７００−１〜１７００−３のそれぞれは、期限延長用ソフトウェアに含まれている領域アドレス（図では、延長対象ＳＷのアドレスと記載）と、対応するテーブルの行に登録されている期限付きソフトウェアのアドレス（図では、期限付ＳＷアドレスと記載）とを比較する。比較回路１７００−１〜１７００−３のそれぞれは、期限延長用ソフトウェアの領域アドレスと、対応する行に登録されている期限付きソフトウェアのアドレスとが一致した場合、対応するバッファ回路１７０１−１〜１７０１−３を活性化する制御信号を、対応するバッファ回路１７０１−１〜１７０１−３の制御端子に供給する。
【０１２７】
バッファ回路１７０１−１〜１７０１−３のそれぞれには、期限延長用ソフトウェアに含まれている有効期限（または延長期間）に従った延長後の有効期限が供給されている。対応する比較回路１７００−１〜１７００−３から、活性化する制御信号が供給されることにより、バッファ回路１７０１−１〜１７０１−３のそれぞれは、供給されている延長後の有効期限を、対応する行に、有効期限情報として格納する。例えば、期限延長用ソフトウェアに含まれている領域アドレスが、期限付きソフトウェア１を特定する期限付きソフトウェアのアドレス１（図では、期限付ＳＷアドレス１）と一致した場合、バッファ回路１７０１−１が、活性化される。活性化されたバッファ回路１７０１−１は、供給されている延長後の有効期限を有効期限情報１として、テーブルに登録する。この場合、バッファ回路１７０１−２、１７０１−３のそれぞれは、活性化されないため、他の有効期限情報２、３は変更されない。
【０１２８】
ライセンス管理ユニット１００３は、供給された期限延長用ソフトウェアに含まれている有効期限または延長期限と、期限を変更する有効期限情報（例えば、有効期限情報１）とに基づいて、延長後の有効期限を算出し、延長後の有効期限として供給する。すなわち、有効期限情報１を読み出し、読み出した有効期限情報１によって示される有効期限に期限延長用ソフトウェアに含まれている有効期限（延長期限）を加算して、延長後の有効期限を形成する。これにより、電源投入時を始点とした有効期限で管理を継続することが可能となる。
【０１２９】
延長の対象となる期限付きソフトウェアは、期限延長用ソフトウェアが提供されたとき、既に有効期限を越えていても、有効期限の延長が可能である。そのため、既に有効期限を越えている期限付きソフトウェアについても、期限延長ソフトウェアを用いることにより、復活させて、実行することが可能となる。
【０１３０】
期限延長用ソフトウェアが、領域アドレスを備えている例を説明したが、ユニーク番号（ＩＤ）を備えている場合には、ライセンス管理ユニット１００３において、ユニーク番号（ＩＤ）を、領域アドレスへ変換すればよい。
【０１３１】
また、既に提供した期限付きソフトウェアに不具合等があった場合には、改善された期限付きソフトウェアも提供される。この場合には、ソフトウェア記憶ユニット１００５に、改善された期限付きソフトウェアが供給され、格納されることになる。
【０１３２】
ライセンス管理方法として見た場合、期限延長用ソフトウェアに含まれている期限情報によって期限を延長する工程は、期限延長工程と見なすことができる。
【０１３３】
実施の形態３においては、期限付きソフトウェアを再度インストールしなくても、継続して使用できる期間を延長することが可能であるため、再度インストールするための負担を低減することが可能であり、ユーザ１０００の利便性を向上させることが可能である。
【０１３４】
（実施の形態４）
実施の形態３では、期限付き有償ソフトウェアの有効期限を延長する実施の形態を説明した。次に、有効期限を解除する実施の形態を、実施の形態４で説明する。ユーザが、例えば、有償ソフトウェアの許諾に要求されている対価を、ソフトウェア配信元に支払う。対価であるライセンス料金を、ソフトウェア配信元が受領することにより、ソフトウェア配信元は、期限付き有償ソフトウェアの期限を解除するソフトウェア（以下、期限解除用ソフトウェアとも称する）を、ユーザへ提供（供給）する。勿論、対価は、期限無しの有償ソフトウェアと期限付き有償ソフトウェアとの差額と見なしてもよい。
【０１３５】
図１３は、実施の形態４に係わるライセンス管理モデル（ライセンス管理システム）を示す構成図である。図１３は、図１１と類似しているため、ここでは主に相違点を説明する。ソフトウェア配信元１０１０のサーバー１０１１には、期限解除用ソフトウェアが格納されている。ユーザ１０００からの対価の支払いに応答して、ソフトウェア配信元１０１０のサーバー１０１１から期限解除用ソフトウェアが、例えば通信回線を介してユーザ１０００へ提供（供給）される。提供された期限解除用ソフトウェアは、ユーザ１０００が備えているソフトウェア提供装置１００１に格納される。この実施の形態４の場合、特に制限されないが、ソフトウェア配信元１０１０が提供する期限解除用ソフトウェアは、期限の解除対象となる期限付き有償ソフトウェアを特定する情報と、期限解除用ソフトウェアであることを示す解除情報とを備えている。解除対象となる期限付き有償ソフトウェアを特定する情報としては、先に図５を用いて説明したユニーク番号（ＩＤ）であってもよいし、図１１を用いて説明した期限付きソフトウェアの領域アドレスであってもよい。ここでは、期限付きソフトウェアを特定する情報として、領域アドレスを用いる場合を例にして説明する。
【０１３６】
マイクロプロセッサ１００２は、ソフトウェア提供装置１００１から、期限解除用ソフトウェアを受け取り、インストールする。この場合、期限付き有償ソフトウェアとは、異なり、期限解除用ソフトウェアは、ソフトウェア記憶ユニット１００５には、格納されず、ライセンス管理ユニット１００３へ供給される（図では、期限解除として示されている）。ライセンス管理ユニット１００３は、供給された期限解除用ソフトウェアに含まれている期限付きソフトウェアの領域アドレスを基にして、ソフトウェア記憶ユニット１００５内の領域１００５−ＡＲに形成されているテーブルを検索する。この検索によって、一致した期限付ソフトウェアの期限を、ライセンス管理ユニット１００３は、変更する。
【０１３７】
図１４は、実施の形態４に係わるライセンス管理ユニット１００３の構成を示すブロック図である。図１４には、図８と同様に、ソフトウェア記憶ユニット１００５の領域１００５−ＡＲが、ライセンス管理ユニット１００３に含まれるものとして、示されている。領域１００５−ＡＲには、図８と同様に、テーブルが形成されている。テーブルの構成は、図８と同じであるため、説明は省略する。
【０１３８】
図１４において、１８００−１〜１８００−３は、比較回路であり、１８０１−１〜１８０１−３は、オア回路である。比較回路１８００−１〜１８００−３のそれぞれは、期限解除用ソフトウェアに含まれている領域アドレス（図では、解除対象ＳＷのアドレスと記載）と、対応するテーブルの行に登録されている期限付きソフトウェアのアドレス（図では、期限付ＳＷアドレスと記載）とを比較する。比較回路１８００−１〜１８００−３のそれぞれは、期限解除用ソフトウェアの領域アドレスと、対応する行に登録されている期限付きソフトウェアのアドレスとが一致した場合、対応するオア回路１８０１−１〜１８０１−３に論理値“１”を供給する。
【０１３９】
オア回路１８０１−１〜１８０１−３のそれぞれには、期限解除用ソフトウェアに含まれている解除情報に従って論理値“１”の期限解除信号（図では、期限解除（解除時＝１）と記載））が供給される。対応する比較回路１８００−１〜１８００−３から、論理値“１”が供給されることにより、オア回路１８０１−１〜１８０１−３のそれぞれは、対応する行に、論理値“１”を有効期限情報として格納する。例えば、期限解除用ソフトウェアに含まれている領域アドレスが、期限付きソフトウェア１を特定する期限付きソフトウェアのアドレス１（図では、期限付ＳＷアドレス１）と一致した場合、オア回路１８０１−１が、論理値“１”を有効期限情報１として、テーブルに登録する。この場合、オア回路１８０１−２、１８０１−３のそれぞれは、比較回路１８００−２、１８００−３から論理値“０”が供給されるため、有効期限情報２、３を変更しない。
【０１４０】
ライセンス管理ユニット１００３は、供給された期限解除用ソフトウェアに含まれている領域アドレスに基づき、期限を解除する期限付きソフトウェアを特定し、特定した期限付きソフトウェアに対応する有効期限情報（例えば、有効期限情報１）の全ビットを、論理値”１”へ変更する。実施の形態１の＜有効期限情報＞で説明したように、有効期限情報を論理値“１”とすることにより、有効期限情報１に対応する期限付きソフトウェア１の有効期限を、最大の期限とすることが可能となる。すなわち、期限付きソフトウェア１の期限を、実質的に解除することができる。
【０１４１】
期限解除の対象となる期限付きソフトウェアは、期限解除用ソフトウェアが提供されたとき、既に有効期限を越えていても、有効期限の解除が可能である。そのため、既に有効期限を越えている期限付きソフトウェアについても、期限解除用ソフトウェアを用いることにより、復活させて、実行することが可能となる。
【０１４２】
期限解除用ソフトウェアが、領域アドレスを備えている例を説明したが、ユニーク番号（ＩＤ）を備えている場合には、ライセンス管理ユニット１００３において、ユニーク番号（ＩＤ）を、領域アドレスへ変換すればよい。
【０１４３】
ライセンス管理方法として見た場合、期限解除用ソフトウェアによって実施される工程は、期限情報によって示された期限を解除する期限解除工程と見なすことができる。
【０１４４】
（実施の形態５）
図１５は、実施の形態５に係わるライセンス管理の方法を示すフローチャート図である。実施の形態５に係わるマイクロプロセッサの構成は、図１に示したマイクロプロセッサ１００２と類似している。図１に示したマイクロプロセッサ１００２と相違する部分は、ライセンス管理ユニット１００３の構成である。この実施の形態５に係わるマイクロプロセッサは、図示しないが、以下、マイクロプロセッサ１００２−Ｃと称する。また、実施の形態５に係わるライセンス管理ユニットは、図示しないが、以下、ライセンス管理ユニット１００３−Ｃと称する。
【０１４５】
ライセンス管理ユニット１００３−Ｃは、実施の形態１で説明したライセンス管理ユニット１００３に対して、次の機能が追加されている。すなわち、ライセンス管理ユニット１００３−Ｃは、ソフトウェア判定ユニットと、ライセンス記憶ユニットと、ソフトウェア記憶ユニット１００５へのソフトウェアの格納（インストール）等を制御するライセンス制御ユニットとを、さらに備えている。
【０１４６】
ライセンス記憶ユニットには、マイクロプロセッサ１００２を提供する前に、マイクロプロセッサ１００２を販売する販売者（製造者）が、許諾する有償ソフトウェアのライセンス数に応じたライセンス情報が、書き込まれて、ユーザ１０００へ販売される。このときのマイクロプロセッサ１００２の販売価格は、マイクロプロセッサ１００２のハードウェアの価格に、ライセンス情報によって示されるライセンス数に応じたライセンス料金が加えられた金額である。
【０１４７】
ライセンス数は、例えば、マイクロプロセッサ１００２にインストール可能な有償ソフトウェアの数を示している。ここでのライセンス数は、１つの有償ソフトウェアに対してインストールすることが可能な数を示しているのではなく、互いに異なる有償ソフトウェアを、この１個のマイクロプロセッサにインストールすることが可能な有償ソフトウェアの数を示している。そのため、ユーザ１０００は、マイクロプロセッサ１００２を購入する際に、ライセンス情報で示されているライセンス数のライセンス料金を、購入価格（販売価格）に含めて支払っており、プリペイドしていることになる。
【０１４８】
ソフトウェア判定ユニットは、ソフトウェア提供装置１００１から提供されたソフトウェアが、属性情報部ＡＴＢ（図１６）を備えているか否かを判定する。提供されたソフトウェアが、属性情報部ＡＴＢを備えていない場合、ソフトウェア判定ユニットは、提供されたソフトウェアは、無償ソフトウェアであると判定する。一方、提供されたソフトウェアが、属性情報部ＡＴＢを備えていた場合、属性情報部ＡＴＢが、期限に関する期限情報を含んでいるか否かの判定を行う。期限に関する期限情報を含んでいる場合、ソフトウェア判定ユニットは、提供されたソフトウェアが、期限付き有償ソフトウェアであると判定する。また、期限情報を含んでいない場合、ソフトウェア判定ユニットは、提供されたソフトウェアが、有償ソフトウェアであると判定する。この場合、有償ソフトウェアは、期限付き有償ソフトウェアと異なり、所定の期間、ライセンスが許諾されているようなソフトウェアではなく、ライセンスの許諾がなくては、インストールすることが不可能な有償ソフトウェアを意味している。
【０１４９】
ライセンス制御ユニットは、ソフトウェア判定ユニットが、提供されたソフトウェアが有償ソフトウェアであると判定したとき、動作する。すなわち、有償ソフトウェアの場合、ライセンス管理ユニットに格納されているライセンス情報によって示されているライセンス数によるインストール可能数が、１以上か否かを判定し、インストール可能数が１以上の場合には、当該有償ソフトウェアが、ソフトウェア記憶ユニット１００５へ格納されるのを許容し、インストール可能数を１減算し、減算により得られたインストール可能数を、ライセンス情報として、ライセンス記憶ユニットへ格納する。すなわち、ライセンス記憶ユニットに格納されているライセンス情報の更新を実施する。言い換えるならば、ライセンス情報によって示されているライセンス数が、所定のライセンス数（１）以上のとき、有償ソフトウェアのインストールが可能とされる。有償ソフトウェアをインストールした場合、ライセンス数が減算され、減算されたライセンス数を示すライセンス情報が、ライセンス記憶ユニットに格納されることになる。
【０１５０】
これに対して、ライセンス情報によって示されるインストール可能数（ライセンス数）が１未満（所定のライセンス数未満）の場合、ライセンス制御ユニットは、当該有償ソフトウェアが、ソフトウェア記憶ユニット１００５へ格納されるのを禁止する。ソフトウェア記憶ユニット１００５に格納された有償ソフトウェアは、実行ユニット１００４によって実行可能にされるのに対して、ソフトウェア記憶ユニット１００５に格納されなかった有償ソフトウェアは、実行ユニット１００５によって実行されない。
【０１５１】
ソフトウェア判定ユニットが、提供されたソフトウェアが有償ソフトウェアであると判定する度に、ライセンス情報は、更新されることになる。これにより、ライセンス情報によって示されているライセンス数までは、有償ソフトウェアを実行することが可能であるが、ライセンス情報によって示されているライセンス数を超える有償ソフトウェアの実行は、禁止されることになる。
【０１５２】
次に、図１５を用いて、実施の形態５に係わるライセンス管理の動作を説明する。先ず、ステップＳ２０において、ソフトウェアのインストールが開始する。ステップＳ２１において、ライセンス管理ユニット１００３−Ｃ内のソフトウェア判定ユニットが、インストールするソフトウェアが、無償ソフトウェア、有償ソフトウェアあるいは期限付き有償ソフトウェアかの判定を行う。ライセンス管理は、有償ソフトウェアおよび期限付き有償ソフトウェアに対して行われるため、無償ソフトウェアと判定した場合の処理は、図１５では省略されている。なお、図１５では、ステップＳ２１は、インストールするＳＷ（ソフトウェア）は有効期限あり？と記載されている。
【０１５３】
ステップＳ２１において、ソフトウェアが有効期限を有するソフトウェア、すなわち期限行きソフトウェアであると判定した場合（ｙｅｓ）、ライセンス管理ユニット１００３−Ｃは、次にステップＳ３０を実行する。ステップＳ３０においては、実施の形態１および２において説明したように、当該期限付きソフトウェアのアドレスおよび演算により求めた有効期限情報を、ソフトウェア記憶ユニット１００５内の領域１００５−ＡＲに形成されるテーブルに登録（格納）する。図１５では、ステップＳ３０は、有効期限情報を記録と記載されている。
【０１５４】
次に、ステップＳ３１において、ソフトウェア提供装置１００１から、ソフトウェア（期限付きソフトウェア）が読み出され、ステップＳ３２において、ソフトウェア（期限付きソフトウェア）が、ソフトウェア記憶ユニット１００５へ書き込まれる。
【０１５５】
図１５では、ステップＳ３２のあとに、ステップＳ３３が存在しているが、ステップＳ３３は、実施の形態４で説明した期限解除用ソフトウェアをインストールした場合の動作である。このステップＳ３２については、あとで説明するので、ここでは省略する。期限解除用ソフトウェアがインストールされない場合には、ステップＳ３４が次に実行される。ステップＳ３４において、インストールが成功した旨が、ユーザ１０００へ通知される。
【０１５６】
一方、ステップＳ２１において、インストールするソフトウェアが、期限無しの有償ソフトウェアであると判定した場合（ｎｏ）、ライセンス管理ユニット１００３−Ｃは、次にステップＳ２２を実施する。ステップＳ２２において、ライセンス記憶ユニットからライセンス情報が読み出される。
【０１５７】
ステップＳ２３において、ライセンス管理ユニット１００３−Ｃ内のライセンス制御ユニットは、読み出したライセンス情報によって示されているインストール可能数が、１以上か否かの判定を行う。インストール可能数が１未満の場合、ライセンス管理ユニット１００３−Ｃは、次にステップＳ２９を実施する。一方、インストール可能数が１以上であれば、次にステップＳ２４が実行される。ステップＳ２４においては、ソフトウェア提供装置１００１からソフトウェアを読み出し、ステップＳ２５において、ソフトウェアをソフトウェア記憶ユニット１００５へ書き込む。ここでのソフトウェアは、期限付きで許諾された有償ソフトウェアではなく、ライセンスの許諾が要求される有償ソフトウェアである。
【０１５８】
ステップＳ２６において、ライセンス管理ユニット１００３−Ｃ内のライセンス制御ユニットは、インストール可能数を１減算する。減算により得られたインストール可能数を示すライセンス情報を、ステップＳ２７において、ライセンス記憶ユニットに書き込む。そのあとで、ステップＳ２８が実行される。ステップＳ２８において、ユーザ１０００にインストールが成功した旨が通知される。有償ソフトウェアをインストールする度に、上記したステップが繰り返される。繰り返しにより、インストール可能数が減算され、１未満になると、ステップＳ２９が実行されることになる。ステップＳ２９において、ユーザ１０００に、インストールが失敗した旨が通知される。
【０１５９】
実施の形態４で説明した期限解除用ソフトウェアがマイクロプロセッサ１００２−Ｃに提供された場合、図１５において、ステップＳ２３が実行されることになる。このステップＳ２３において、ライセンス記憶ユニットからライセンス情報が読み出される。読み出されたライセンス情報によって示されているインストール可能数が、１以上か否かの判定が行われる。
【０１６０】
判定の結果、インストール可能数が１以上の場合、有効期限情報に論理値“１”が書き込まれる。また、この場合には、インストール可能数が１減算され、減算によって得られたインストール可能数を示すライセンス情報が、ライセンス管理ユニットに書き込まれる。
【０１６１】
これに対して、判定の結果、インストール可能数が１未満の場合、有効期限情報は変更されない。また、この場合には、インストール可能数の更新は行われない。これにより、プリペイドされたライセンス料金によって定まるインストール可能数が、１以上残っていれば、期限付き有償ソフトウェアの期限を解除することができる。また、インストール可能数が、１未満となっていれば、期限付き有償ソフトウェアの期限を解除することができなくなる。
【０１６２】
ライセンス管理ユニット１００３−Ｃをソフトウェアによって実現することも可能である。この場合、図１７に示すように、ライセンス管理ユニット１００３−Ｃの機能を実現するソフトウェアＳＷＣによって、有償ソフトウェアＳＷ２および期限付き有償ソフトウェアＳＷ３のそれぞれが制御されることになる。有償ソフトウェアＳＷ２について述べると、インストール可能数が１未満になった場合、ソフトウェア記憶ユニット１００５への格納が禁止され、その有償ソフトウェアの実行が禁止されることになる。期限付きソフトウェアＳＷ３の場合には、先に説明しているので省略するが、さらに、この実施の形態５においては、インストール可能数が１未満になったとき、期限の解除が禁止されることになる。
【０１６３】
この実施の形態５によれば、ユーザ１０００は、プリペイドしたライセンス料金まで、種々の有償ソフトウェアおよび／または期限付き有償ソフトウェアを実行することが可能である。そのため、ユーザ１０００は、ライセンスの管理に係わる負担を低減することが可能となる。また、期限付きソフトウェアを試用してから、必要な期限付きソフトウェアのみを有効期限を解除することが可能である。そのため、プリペイドしたライセンス料金を有効に使うことが可能となる。一方、販売者は、有償ソフトウェアおよび／または期限付き有償ソフトウェアが、ライセンスの許諾なく、実行されるのを防ぐことが可能である。さらに、ライセンス料金がプリペイドされているため、ライセンス料金の回収漏れを防ぐことが可能である。
【０１６４】
なお、有償ソフトウェアおよび期限付き有償ソフトウェアを提供するソフトウェア配信元が、マイクロプロセッサ１００２−Ｃを販売する販売者と異なる場合、マイクロプロセッサ１００２−Ｃを販売する販売者が得たライセンス料金を、ソフトウェア配信元に分配すれば、ソフトウェア配信元も、負担の増加を抑制しながら、ライセンス料金の回収を図ることが可能となる。
【０１６５】
（実施の形態６）
実施の形態１〜５では、ユーザ１０００が、購入したマイクロプロセッサ１００２、１００２−Ｃに対して、通信回線等を介して期限付き有償ソフトウェアをインストールする場合を説明した。しかしながら、これに限定されるものではない。例えば、マイクロプロセッサ１００２、１００２−Ｃを、販売者が提供する際に、試用ソフトウェアとして期限付きソフトウェアを予めインストール（プリインストール）して、提供し、ライセンス管理を実施するようにしてもよい。
【０１６６】
この場合、販売者が、図５に示したようなテーブルを、予めフラッシュメモリ１００５に格納して、販売する。この場合、実行ユニット１００４を介さずに、マイクロプロセッサ１００２、１００２−Ｃの外部から、フラッシュメモリ１００５の特定の記憶領域１００５−ＡＲにアクセスできるようにする。マイクロプロセッサの外部からアクセスできるようにした場合、ユーザ１０００が、記憶領域１００５−ＡＲを改ざん出来ないようにすることが、不正を防ぐのに有効である。
【０１６７】
改ざんを防ぐための方法としては、例えば外部端子からシリアルコードを入力してからでないとアクセスできないようにする方法や、前記特定の記憶領域１００５−ＡＲの製造テストはウエハでのみ行うとして、該当端子をパッケージング(アセンブリ)時に固定して、外部端子としない方法がある。
【０１６８】
このように、期限付きソフトウェアは、プリインストール(有効期限付きソフトウェアはネットワークで配信しない)のビジネスモデルに対応したマイクロプロセッサの場合、ライセンス管理ユニットおよび配信されるソフトウェアのデータを削減することができる。例えば配信するソフトウェアのデータには、期限情報は不要となるため、データ量が減る。また例えば、ライセンス管理ユニットは有効期限情報のチェックはするが、追加や更新はしないので、ソフトウェアのインストール時には期限情報を管理する必要は無く、そのための回路が削減できる。
【０１６９】
実施の形態６によれば、期限付きソフトウェアがプリインストールされているため、ソフトウェア配信元１０１０からすれば、ソフトウェアの販売促進を図ることが可能となる。また、マイクロプロセッサ内の回路を削減することが可能であるため、ユーザ１０００は、出費の低減を図ることが可能となる。
【０１７０】
（実施の形態７）
実施の形態６と同様に、マイクロプロセッサ１００２、１００２−Ｃを、販売者が提供する際に、試用ソフトウェアとして期限付きソフトウェアを予めインストールして、提供し、ライセンス管理を実施するようにしてもよい。
【０１７１】
この場合も、図５に示すようなテーブルを、フラッシュメモリ１００５の特定の記憶領域１００５−ＡＲに形成する。しかしながら、テーブルには、期限付きソフトウェアのユニーク番号（ＩＤ）または期限付きソフトウェアのアドレスのみを登録しておき、有効期限情報は、登録しない状態で、販売者はユーザ１０００へ提供する。
【０１７２】
ユーザ１０００が、プリインストールされた期限付きソフトウェアを初めて使用（実行または呼び出し）したとき、有効期限情報をテーブルに登録する。これにより、ユーザ１０００はプリインストールソフトウェアの試用を開始してから一定期間使用できるようになる。その結果、ユーザ１０００は、マイクロプロセッサを使用したシステムの開発当初は不要と考えていたソフトウェアを、開発途中の段階から試用することができる。
【０１７３】
なお、初めて使用したときにテーブルに登録される有効期限情報は、電源投入時間に一定時間を加算して求めた時間としてもよい。また、プリインストールされている期限付きソフトウェアの期限情報を、フラッシュメモリ１００５に格納して提供し、プリインストールされている期限付きソフトウェアを使用したとき、格納されている期限情報と、電源投入時間とによって、テーブルに登録される有効期限情報を定めるようにしてもよい。
【０１７４】
実施の形態１〜５においても、期限付きソフトウェアを初めて実行（使用）したときに、テーブルに有効期限情報が登録されるようにしてもよいことは、言うまでもない。このようにすることにより、期限付きソフトウェアを初めて実行した時が、有効期限の開始の時となり、期限情報によって示されている期限に基づいた制御が行われることになる。その結果、ユーザ１０００は、有効期限を有効に使うことが可能となる。
【０１７５】
＜付記＞
本明細書には、複数の発明が開示されており、その内のいくつかは、請求の範囲に記載しているが、これ以外の発明も開示しており、その代表的なものを次に列記する。
（Ａ）ソフトウェアを実行する実行ユニットを備えた半導体装置において、期限付きでライセンスが許諾されているソフトウェアを実行する場合のライセンス管理モデルであって、
前記半導体装置は、前記実行ユニットに結合されたソフトウェア記憶ユニットと、期限を示す期限情報に基づいて、期限付きでライセンスが許諾されているソフトウェアの前記実行ユニットによる実行を制御するライセンス管理ユニットを備えて、提供され、
購入された前記半導体装置に、ソフトウェア提供装置からソフトウェアが提供され、購入された前記半導体装置におけるライセンス管理ユニットは、提供されたソフトウェアから、前記期限情報を取得し、前記期限情報で示されている期限において、前記実行ユニットが、前記期限付きでライセンスが許諾されているソフトウェアの実行を許容する、
ライセンス管理モデル。
（Ｂ）前記（Ａ）に記載のライセンス管理モデルにおいて、
前記ソフトウェア記憶ユニットは、ライセンス数を示すライセンス情報が、格納され、前記ライセンス数に応じたライセンス料金を含めた販売価格で、前記半導体装置は提供され、
購入された前記半導体装置において、前記ライセンス管理ユニットは、前記ソフトウェア記憶ユニットに格納されているライセンス情報によって示されているライセンス数が、所定のライセンス数以上のとき、前記期限情報で示されている期限の解除が可能とされる、
ライセンス管理モデル。
（Ｃ）前記（Ｂ）に記載のライセンス管理モデルにおいて、
前記ライセンス管理ユニットは、前記期限情報で示されている期限の解除を実施したとき、前記ライセンス情報によって示されるライセンス数を減算する、
ライセンス管理モデル。
（Ｄ）ソフトウェアを実行する実行ユニットを備えた半導体装置において、期限付きでライセンスが許諾されているソフトウェアを実行する場合のライセンス管理モデルであって、
前記半導体装置は、前記実行ユニットに結合されたソフトウェア記憶ユニットと、期限を示す期限情報に基づいて、期限付きでライセンスが許諾されているソフトウェアの前記実行ユニットによる実行を制御するライセンス管理ユニットを備え、
前記半導体装置は、前記ソフトウェア記憶ユニットに、前記期限付きでライセンスが許諾されているソフトウェアと前記期限情報が格納されて、提供され、
購入された前記半導体装置において、前記ライセンス管理ユニットは、前記ソフトウェア記憶ユニットから、前記期限情報を取得し、前記期限情報で示されている期限において、前記実行ユニットが、前記期限付きでライセンスが許諾されているソフトウェアの実行を許容する、
ライセンス管理モデル。
【０１７６】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【０１７７】
マイクロプロセッサのような半導体装置を例にして説明したが、これに限定されるものではない。マイクロプロセッサは、情報処理装置のような電子装置であってもよい。また、ソフトウェア記憶ユニットは、フラッシュメモリに限定されず、不揮発性記憶装置であればよい。さらにソフトウェア配信元１０１０のサーバー１０１１は、通信回線上のサーバーでなくてもよく、記憶装置であってもよい。
【０１７８】
さらに、マイクロプロセッサ１００２、１００２−Ｃは、パーソナルコンピューターとし、フラッシュメモリ１００５は、ハードディスク、ＵＳＢメモリ、ＳＤカードとしてもよい。さらに、ソフトウェア配信元１０１０のサーバー１０１１は、ソフトウェア配信元１０１０から提供されたＣＤ−ＲＯＭ、通信回線は、ＣＤ−ＲＯＭとパーソナルコンピューターを接続するケーブルとしてもよい。
【符号の説明】
【０１７９】
１０００  ユーザ
１００１  ソフトウェア提供装置
１００２  マイクロプロセッサ
１００３  ライセンス管理ユニット
１００４  実行ユニット
１００５  ソフトウェア記憶ユニット
１００５−ＡＲ  特定の記憶領域
【図１】
2017068490.tif 000003
【図２】
2017068490.tif 000004
【図３】
2017068490.tif 000005
【図４】
2017068490.tif 000006
【図５】
2017068490.tif 000007
【図６】
2017068490.tif 000008
【図７】
2017068490.tif 000009
【図８】
2017068490.tif 000010
【図９】
2017068490.tif 000011
【図１０】
2017068490.tif 000012
【図１１】
2017068490.tif 000013
【図１２】
2017068490.tif 000014
【図１３】
2017068490.tif 000015
【図１４】
2017068490.tif 000016
【図１５】
2017068490.tif 000017
【図１６】
2017068490.tif 000018
【図１７】
2017068490.tif 000019