KR20180044835A - 라이선스 관리 방법, 라이선스 관리에 적합한 반도체 장치 및 라이선스 관리 시스템 - Google Patents

라이선스 관리 방법, 라이선스 관리에 적합한 반도체 장치 및 라이선스 관리 시스템 Download PDF

Info

Publication number
KR20180044835A
KR20180044835A KR1020177016449A KR20177016449A KR20180044835A KR 20180044835 A KR20180044835 A KR 20180044835A KR 1020177016449 A KR1020177016449 A KR 1020177016449A KR 20177016449 A KR20177016449 A KR 20177016449A KR 20180044835 A KR20180044835 A KR 20180044835A
Authority
KR
South Korea
Prior art keywords
software
license
information
unit
storage unit
Prior art date
Application number
KR1020177016449A
Other languages
English (en)
Inventor
고이찌 이시미
아쯔시 와까오
다까시 나까따니
Original Assignee
르네사스 일렉트로닉스 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 르네사스 일렉트로닉스 가부시키가이샤 filed Critical 르네사스 일렉트로닉스 가부시키가이샤
Publication of KR20180044835A publication Critical patent/KR20180044835A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/107License processing; Key processing
    • G06F21/1077Recurrent authorisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/107License processing; Key processing
    • G06F21/1078Logging; Metering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

소프트웨어를 실행하는 실행 장치와, 실행 장치에 결합된 소프트웨어 기억 장치를 구비한 라이선스 관리 방법은, 소프트웨어의 라이선스를 허락하는 라이선스 수를 나타내는 라이선스 정보를 기억하는 라이선스 기억 장치를 구비하고, 라이선스의 허락이 요구되는 소프트웨어를 다운로드할 때, 라이선스 기억부에 저장되어 있는 라이선스 정보에 기초하여, 다운로드하는 소프트웨어의 상기 소프트웨어 기억 장치로의 저장 또는 실행 장치에 의한 실행을 제어하는 라이선스 관리 공정을 구비한다.

Description

라이선스 관리 방법, 라이선스 관리에 적합한 반도체 장치 및 라이선스 관리 시스템{LICENSE MANAGEMENT METHOD, SEMICONDUCTOR DEVICE SUITABLE FOR LICENSE MANAGEMENT, AND LICENSE MANAGEMENT SYSTEM}
본 발명은, 라이선스 관리 방법, 라이선스 관리에 적합한 반도체 장치 및 라이선스 관리 시스템에 관한 것으로, 특히 소프트웨어의 라이선스 관리에 관한 것이다.
소프트웨어를 실행하는 반도체 장치로서, 예를 들어 마이크로프로세서가 있다. 이 경우, 마이크로프로세서는, 소프트웨어를 기억하는 기억부와 소프트웨어를 실행하는 프로세서를 구비하고 있다. 또한, 소프트웨어를 실행하는 프로세서를 사용한 전자 장치로서, 퍼스널 컴퓨터, 스마트폰, 텔레비전, 카메라 등의 다양한 전자 장치가 알려져 있다. 이러한, 반도체 장치 및 전자 장치에, 원하는 동작을 시키기 위해서, 다양한 소프트웨어가 존재한다. 소프트웨어는, 크게 구별하면, 사용하기 위해서 라이선스의 허락을 취득하는 것이 요구되는 소프트웨어(이하, '유상 소프트웨어'라고도 칭함)와, 라이선스의 허락을 필요로 하지 않는 소프트웨어(이하, '무상 소프트웨어'라고도 칭함)가 존재한다. 라이선스의 허락을 요구하는 유상 소프트웨어에 대해서는, 라이선스의 대가인 라이선스 요금을 지불함으로써, 그 사용이 인정되게 된다.
라이선스의 허락을 요구하는 유상 소프트웨어를 배신하는 경우, 라이선스의 관리를 행하는 것이 필요해진다. 예를 들어 특허문헌 1에는, 네트워크에 대한 부담을 경감시킴과 함께, 라이선스를 간이하게 관리하는 것이 가능한 기술이 기재되어 있다.
일본 특허공개 제2010-218397호 공보
라이선스의 허락을 요구하는 소프트웨어(유상 소프트웨어)를 배신하는 경우, 라이선스 요금의 회수가 수반되기 때문에, 유료 배신으로 된다. 이 경우, 유상 소프트웨어의 다운로드 및 과금 관리를 확실하게 행하는 것이 요구된다. 또한, 유상 소프트웨어를 다운로드할 때의 유저의 수고를 저감시키는 것이 요망된다.
본 발명자들은, 본 발명에 앞서 유상 소프트웨어를 배신하는 경우에, 라이선스 요금을 회수하는 시스템(이하, '라이선스 요금 회수 시스템'이라고도 칭함)을 검토하였다. 이하, 본 발명자들이 검토한 3종류의 라이선스 요금 회수 시스템에 대하여 설명한다.
제1 라이선스 요금 회수 시스템에서는, 유상 소프트웨어마다 인스톨 가능한 라이선스 수를 대응짓는다. 이 경우, 유상 소프트웨어를 배신하는 소프트웨어 배신원에서는, 유상 소프트웨어를 인스톨하는 유저에 있어서, 인스톨되는 장치(반도체 장치, 전자 장치)마다, 몇 개의 유상 소프트웨어가 인스톨되어 있는지를 관리하는 것이 곤란해진다. 그로 인해, 장치에 대한 유상 소프트웨어의 라이선스 관리 및 라이선스 요금의 회수가 곤란하게 되어, 라이선스 요금의 회수 누락이 발생할 것이 우려된다. 또한, 유저에 있어서는, 미리 많은 라이선스 수를 구입하거나, 혹은 장치의 제조 수에 대응한 라이선스 요금을 지불하게 된다. 그로 인해, 유저의 입장에서 보면, 라이선스 수가 남으면, 쓸데없는 비용이 발생하게 된다. 또한, 제조 수에 따라서 라이선스 요금을 지불하는 경우에는, 번잡한 처리가 발생하게 된다.
제2 라이선스 요금 회수 시스템에서는, 소프트웨어 배신원이, 라이선스 수와는 무관계하게 일정한 금액을 라이선스 요금으로서 징수한다. 이 경우에는, 유상 소프트웨어를 인스톨하는 수가 적은 유저에게 있어서는, 비교적 고가로 되어버린다.
제3 라이선스 요금 회수 시스템에서는, 유저가, 유상 소프트웨어를 인스톨한 장치의 수 등을 관리하는 라이선스 관리 장치를 도입하고, 인스톨 수를 소프트웨어 배신원에 신고함과 함께, 인스톨 수에 대응한 라이선스 요금을 지불한다. 이 경우에는, 특히 유저가, 대량의 장치를 양산하는 경우, 라이선스 관리 장치의 부담이 커지게 된다. 그로 인해, 라이선스 관리 장치로서, 고속 동작의 장치가 요구되어 고가로 된다. 또한, 고속의 라이선스 관리 장치를 도입했다고 해도, 장치를 양산하는 수가 늘어나면, 라이선스의 관리에 의해, 생산하는 수가 제한되고, 생산 효율이 저하되는 우려된다. 또한, 제3 라이선스 요금 회수 시스템에서는, 소프트웨어 배신원이, 유저가 도입한 라이선스 관리 장치가 적정하게 운용되고 있는지를 감시할 필요가 있어, 소프트웨어 배신원에도 부담이 발생한다.
특허문헌 1에 있어서도, 과금 관리를 확실하게 실시하여, 유저의 부담을 저감시킬 수 있는 기술은, 개시되어 있지 않다.
그 밖의 과제와 신규 특징은, 본 명세서의 기술 및 첨부 도면으로부터 명백해질 것이다.
본 명세서에는, 해결하기 위한 수단이 복수 개시되어 있다. 여기서는, 대표적인 해결 수단에 대해서만 설명한다.
소프트웨어를 실행하는 실행 장치와, 실행 장치에 결합된 소프트웨어 기억 장치를 구비한 라이선스 관리 방법은, 소프트웨어의 라이선스를 허락하는 라이선스 수를 나타내는 라이선스 정보를 기억하는 라이선스 기억 장치를 구비하고, 라이선스의 허락이 요구되는 소프트웨어를 다운로드할 때, 라이선스 기억부에 저장되어 있는 라이선스 정보에 기초하여, 다운로드하는 소프트웨어의 소프트웨어 기억 장치로의 저장 또는 실행 장치에 의한 실행을 제어하는 라이선스 관리 공정을 구비한다.
라이선스 기억 장치에 기억된 라이선스 정보에 기초하여, 라이선스의 허락이 요구되는 소프트웨어의 소프트웨어 기억 장치로의 저장 또는 실행 장치에 의한 실행이 제어되게 되기 때문에, 소프트웨어 배신원 및 유저에 있어서의 라이선스 관리의 부담을 저감시키는 것이 가능해진다.
일 실시 형태에 의하면, 라이선스 관리의 부담을 저감시킬 수 있는 라이선스 관리 방법을 제공할 수 있다.
도 1은, 실시 형태 1에 따른 전자 장치의 구성을 나타내는 블록도이다.
도 2는, 실시 형태 1에 따른 반도체 장치의 구성을 나타내는 블록도이다.
도 3은, 실시 형태 1에 따른 라이선스 관리 유닛의 동작을 나타내는 흐름도이다.
도 4는, 실시 형태 1에 따른 라이선스 관리 유닛의 언인스톨의 동작을 나타내는 흐름도이다.
도 5는, 실시 형태 1에 따른 라이선스 관리 유닛의 다른 언인스톨의 동작을 나타내는 흐름도이다.
도 6은, 실시 형태 2에 따른 전자 장치의 구성을 나타내는 블록도이다.
도 7은, 실시 형태 2에 따른 라이선스 관리부의 동작을 나타내는 흐름도이다.
도 8은, 개발용 프로세서와 양산용 프로세서의 관계를 나타내는 도면이다.
도 9는, 실시 형태 3에 따른 라이선스 관리 유닛의 동작을 나타내는 흐름도이다.
도 10은, 실시 형태 4에 따른 마이크로프로세서의 동작을 나타내는 흐름도이다.
도 11은, 실시 형태 3과 실시 형태 4를 조합한 상태를 설명하는 설명도이다.
도 12는, 실시 형태 5에 따른 반도체 장치의 구성을 나타내는 블록도이다.
도 13은, 실시 형태 5에 따른 소프트웨어 기억 유닛의 어드레스 공간을 나타내는 설명도이다.
도 14는, 실시 형태 5에 따른 마이크로프로세서의 용량 비율을 나타낸 설명도이다.
도 15는, 실시 형태 5에 따른 라이선스 관리 유닛의 동작을 나타내는 흐름도이다.
도 16은, 실시 형태 5에 따른 소프트웨어 기억 유닛을 하드웨어에 의해 제어하는 경우의 구성을 나타내는 블록도이다.
도 17은, 실시 형태 5에 따른 소프트웨어 기억 유닛을 하드웨어에 의해 제어하는 경우의 다른 구성을 나타내는 블록도이다.
도 18은, 실시 형태 6에 따른 라이선스 관리 유닛의 동작을 나타내는 흐름도이다.
도 19는, 실시 형태 6에 따른 DL 애플리케이션의 실행을, 하드웨어에 의해 제어하는 경우의 구성을 나타내는 블록도이다.
도 20은, 실시 형태 6에 따른 DL 애플리케이션의 실행을, 하드웨어에 의해 제어하는 경우의 다른 구성을 나타내는 블록도이다.
도 21은, 실시 형태 7에 따른 마이크로프로세서의 동작을 나타내는 개념도이다.
도 22는, 실시 형태 8에 따른 마이크로프로세서의 동작을 나타내는 개념도이다.
도 23은, 소프트웨어의 구성을 나타내는 도면이다.
도 24는, 실시 형태 9에 따른 라이선스 요금 회수 시스템의 구성을 나타내는 시스템도이다.
이하, 본 발명의 실시 형태를 도면에 기초하여 상세히 설명한다. 또한, 실시 형태를 설명하기 위한 전체 도면에 있어서, 동일 부분에는 원칙으로서 동일한 부호를 부여하고, 그 반복되는 설명은 원칙적으로 생략한다.
(실시 형태 1)
<전자 장치>
도 1은, 실시 형태 1에 따른 전자 장치의 구성을 나타내는 블록도이다. 도 1에 있어서, 1000은, 전자 장치를 나타내고 있다. 전자 장치(1000)는, 예를 들어 퍼스널 컴퓨터, 스마트폰, 프린터, 복합기, 텔레비전, 카메라 등의 정보 가전이다. 이들 전자 장치(1000)에는, 프로세서(1001)가 탑재되어 있으며, 프로세서(1001)는, 소프트웨어를 실행함으로써, 소정의 기능을 달성한다. 도 1에 있어서, 1002는, 프로세서(1001)에 결합되고, 프로세서(1001)에 의해 실행되는 소프트웨어를 저장하는 소프트웨어(이하, 'SW'라고도 칭함) 기억부를 나타내고 있다. 프로그램을 실행한다는 관점에서 본 경우, 프로세서(1001)는, 실행부라 간주할 수 있다.
도 1에 있어서, 1003은, 라이선스 정보를 저장하는 라이선스 기억부를 나타내고 있으며, 1004는, 라이선스 관리부를 나타내고 있다. 또한, 1005는, 전자 장치(1000)의 외부에 배치된 소프트웨어 제공 장치를 나타내고 있다. 도 1은, 라이선스 관리 시스템을 나타내고 있다고 간주할 수 있다. 이 경우, 라이선스 관리의 대상으로 되는 유상 소프트웨어는, 소프트웨어 제공 장치(1005)로부터, 전자 장치(1000)로 제공되게 된다.
전자 장치(1000)는, 상기한 프로세서(1001), 소프트웨어 기억부(1002), 라이선스 기억부(1003) 및 라이선스 관리부(1004) 이외에, 각각의 전자 장치에 따른 복수의 부분을 구비하고 있다. 예를 들어, 스마트폰이면, 통신에 관한 송수신부 등을 구비하고 있으며, 카메라이면, 오토 포커스용 제어부 등을 구비하고 있다. 그러나, 도 1에 있어서는, 도면이 복잡해지는 것을 피하기 위해서, 상기한 프로세서(1001), 소프트웨어 기억부(1002), 라이선스 기억부(1003) 및 라이선스 관리부(1004) 이외의 부분은 생략되었다.
소프트웨어 제공 장치(1005)는, 소프트웨어를 제공하는 소프트웨어 배신원에 설치되고, 인터넷 등의 통신 회선을 통해 전자 장치(1001)에 접속되며, 통신 회선을 통해 유상 소프트웨어 및/또는 무상 소프트웨어를, 전자 장치(1001)를 소유하는 유저에게 제공한다.
또한, 소프트웨어 제공 장치(1005)는, 예를 들어 광디스크 재생 장치와 광디스크와 같은 기억 매체에 의해 구성해도 된다. 이 경우, 광디스크 재생 장치는, 예를 들어 전자 장치(1000)를 소유하는 유저측에 설치되고, 케이블에 의해 전자 장치(1000)에 접속되게 된다. 또한, 광디스크에는, 예를 들어 복수의 유상 소프트웨어와 무상 소프트웨어가 저장되어 있다. 광디스크 재생 장치에 의해, 기억 매체인 광디스크를 재생함으로써, 광디스크 재생 장치로부터, 전자 장치(1000)로, 유상 소프트웨어 및/또는 무상 소프트웨어가 제공되게 된다.
라이선스 기억부(1003)에는, 미리 라이선스 정보가 기억되어 있다. 예를 들어, 유저가 전자 장치(1000)를 구입할 때, 소정의 라이선스 요금을 포함해, 전자 장치(1000)의 판매 가격으로서, 전자 장치(1000)의 판매자(제조자)에게 지불한다. 즉, 이때의 판매 가격은, 전자 장치(1000) 자체의 하드웨어의 가격과 소정의 라이선스 요금을 포함하고 있게 된다. 이 경우, 전자 장치(1000)의 판매자가, 상기한 소정의 라이선스 요금에 대응한 라이선스 정보를, 라이선스 기억부(1003)에 저장하여, 유저에게 제공한다. 물론, 판매자가, 서로 다른 라이선스 정보를 미리 저장한 라이선스 기억부(1003)를 탑재한 복수 종류의 전자 장치(1000)를 준비해 두고, 유저가 선택하여, 구입하도록 해도 된다. 이 경우, 라이선스 정보가 상이하기 때문에, 전자 장치마다 라이선스 요금도 다르게 된다.
라이선스 관리부(1004)는, 유저가, 소프트웨어 제공 장치(1005)로부터, 소프트웨어 기억부(1002)로, 소프트웨어를 다운로드할 때 기능한다. 즉, 라이선스 관리부(1004)는, 유저로부터의 다운로드의 요구에 대해, 소프트웨어 제공 장치(1005)로부터 제공된 소프트웨어가, 유상 소프트웨어(라이선스의 허락이 요구되는 라이선스 허락의 소프트웨어)인지, 무상 소프트웨어(라이선스의 허락이 요구되지 않는 소프트웨어)인지를 판정한다. 판정의 결과, 무상 소프트웨어인 경우, 소프트웨어 제공 장치(1005)로부터 제공된 소프트웨어를, 소프트웨어 기억부(1002)에 저장한다. 소프트웨어 기억부(1002)에 저장된 무상 소프트웨어는, 실행부(1001)에 의해 실행되고, 이 무상 소프트웨어에 의해 규정되어 있는 동작이 실시된다.
이에 반하여, 유상 소프트웨어이면, 라이선스 관리부(1004)가 판정한 경우, 라이선스 관리부(1004)는, 라이선스 기억부(1003)로부터 라이선스 정보를 판독하고, 판독된 라이선스 정보에 기초하여, 제공된 유상 소프트웨어를 소프트웨어 기억부(1002)에 저장하였는지 여부를 제어한다.
라이선스 기억부(1003)에는, 상기한 바와 같이, 미리 라이선스 요금에 대응한 라이선스 정보가 저장되어 있다. 이 실시 형태 1에 있어서는, 라이선스 요금에 대응한 수가, 라이선스 정보로서 사용되고 있다. 라이선스 관리부(1004)는, 판독된 라이선스 정보에 의해 나타내고 있는 수가, 예를 들어 1 이상이면, 제공된 유상 소프트웨어를, 소프트웨어 기억부(1002)에 저장한다. 또한, 라이선스 관리부(1004)는, 유상 소프트웨어를, 소프트웨어 기억부(1002)에 저장한 경우, 라이선스 정보에 의해 나타내고 있는 수를, 예를 들어 1 감산하고, 감산에 의해 얻어진 수를 라이선스 정보로서, 라이선스 기억부(1003)에 저장한다. 소프트웨어 기억부(1002)에 저장된 유상 소프트웨어는, 실행부(1001)에 의해 실행이 가능해진다.
이에 반하여, 라이선스 정보에 의해 나타내고 있는 수가, 0이면, 라이선스 관리부(1004)는, 제공된 유상 소프트웨어를, 소프트웨어 기억부(1002)에 저장하지 않는다. 이에 의해, 미리 지불된 라이선스 요금이, 부족한 경우에는, 유상 소프트웨어의 실행이 금지되게 된다. 관점을 달리하면, 대가의 지급 없이, 부정으로 유상 소프트웨어가 실행되는 것을 방지하는 것이 가능하게 되어, 소프트웨어 배신원이 라이선스 요금의 회수 누락을 방지하는 것이 가능해진다.
라이선스 기억부(1003)는, 판매자가 라이선스 정보를 저장한 후에는, 라이선스 관리부(1004)에 의해서만, 변경이 가능하게 된다. 도 1에서는, 특별히 제한되지 않지만, 라이선스 관리부(1004)는, 프로세서(1001)와는 상이한 프로세서에 의해 구성되어 있다. 이 경우, 라이선스 관리부(1004)의 기능은, 라이선스 관리부(1004)를 구성하는 프로세서에 의해 실행되는 소프트웨어에 의해 실현되게 된다. 물론, 프로세서(1001)가, 실행부의 기능과 라이선스 관리부(1004)의 기능의 양쪽을 실현하도록 해도 된다.
<반도체 장치>
도 2는, 실시 형태 1에 따른 반도체 장치의 구성을 나타내는 블록도이다. 상기 도면에는, 반도체 장치(1100)로서 마이크로프로세서(이하, '마이크로프로세서(1100)'라고도 기재함)가 도시되어 있다. 마이크로프로세서(1100)는, 소프트웨어를 실행하는 프로세서(중앙처리장치, 이하 '실행 유닛'이라고도 칭함)(1101), 소프트웨어 기억 유닛(1102), 라이선스 기억 유닛(1103), 라이선스 관리 유닛(1104)을 구비하고 있다. 도면이 복잡해지는 것을 피하기 위해서, 도 2에서는 생략되었지만, 마이크로프로세서(1100)는, 상기한 프로세서(실행 유닛)(1101), 소프트웨어 기억 유닛(1102), 라이선스 기억 유닛(1103) 및 라이선스 관리 유닛(1104) 이외의 회로 유닛도 구비하고 있다. 예를 들어, 상기한 유닛 이외에, 마이크로프로세서(1100)의 외부와의 사이에서 신호의 송수신을 행하는 주변 회로 유닛을, 마이크로프로세서(1100)는 구비하고 있다.
상기한 각각의 유닛은, 특별히 제한되지 않지만, 주지의 반도체 제조 기술에 의해, 1개의 반도체 칩에 형성되고, 1개의 패키지에 밀봉되어 있다. 이 마이크로프로세서(1100)를, 판매자(제조자)가, 유저에게 제공(판매)할 때에는, 패키지에 밀봉된 상태에서, 판매되게 된다. 물론, 패키지에 밀봉하지 않고, 반도체 칩을 단위로서 판매하도록 해도 된다.
소프트웨어 기억 유닛(1102)은, 실행 유닛(1101)에 결합되어 있으며, 소프트웨어를 저장한다. 실행 유닛(1101)은, 소프트웨어 기억 유닛(1102)으로부터 소프트웨어를 판독하고, 판독된 소프트웨어를 실행한다. 실행 유닛(1101)이 소프트웨어를 실행함으로써, 마이크로프로세서(1100)는, 소프트웨어에 의해 규정된 소정의 동작을 실행하게 된다.
라이선스 기억 유닛(1103)은, 도 1에 도시한 라이선스 기억부(1003)와 마찬가지로, 라이선스 정보가, 미리 저장된다. 즉, 마이크로프로세서(1100)를, 판매자(제조자)로부터 유저에게 제공하기 전에, 판매자가 라이선스 기억 유닛(1103)으로 라이선스 정보를 저장한다. 도 1에서 설명한 것과 마찬가지로, 유저는, 마이크로프로세서(1100)를 구입할 때, 소정의 라이선스 요금을 포함해, 마이크로프로세서(1100)의 판매 대금을, 판매자에게 지불한다. 그로 인해, 이때의 판매 대금은, 마이크로프로세서(1100) 자체의 하드웨어 가격과, 소정의 라이선스 요금을 포함하게 된다. 마이크로프로세서(1100)의 판매자는, 상기한 소정의 라이선스 요금에 대응한 라이선스 정보를, 라이선스 기억 유닛(1103)에 저장하여, 유저에게 제공한다.
라이선스 관리 유닛(1104)은, 도 1에 도시한 라이선스 관리부(1004)와 마찬가지로, 라이선스 기억 유닛(1103)으로부터의 라이선스 정보에 기초하여, 마이크로프로세서(1100)의 외부로부터 제공되는 소프트웨어를, 소프트웨어 기억 유닛(1102)에 저장할지 여부의 제어를 실시한다. 마이크로프로세서(1100)의 외부로부터 제공된 소프트웨어가, 유상 소프트웨어인지, 무상 소프트웨어인지를 판정한다. 판정의 결과, 제공되어 있는 소프트웨어가, 무상 소프트웨어인 경우, 라이선스 관리부(1004)(도 1)와 마찬가지로, 라이선스 관리 유닛(1104)은, 제공된 무상 소프트웨어를, 소프트웨어 기억 유닛(1102)에 저장한다. 이 경우, 실행 유닛(1101)은, 소프트웨어 기억 유닛(1102)으로부터, 무상 소프트웨어를 판독하여, 실행한다.
이에 반하여, 제공된 소프트웨어가, 유상 소프트웨어라고 판정된 경우, 라이선스 관리 유닛(1104)은, 라이선스 기억 유닛(1103)으로부터 라이선스 정보를 판독하고, 판독된 라이선스 정보에 기초하여, 제공된 유상 소프트웨어를 소프트웨어 기억 유닛(1102)에 저장되었는지 여부를 제어한다.
여기서도, 라이선스 요금에 대응한 수가, 라이선스 정보에 의해 나타낸 것으로서 설명한다. 라이선스 관리 유닛(1004)은, 판독한 라이선스 정보에 의해 나타내고 있는 수가, 예를 들어 1 이상이면, 제공된 유상 소프트웨어를, 소프트웨어 기억 유닛(1102)에 저장한다. 또한, 라이선스 관리 유닛(1104)은, 유상 소프트웨어를 소프트웨어 기억 유닛(1102)에 저장한 경우, 라이선스 정보에 의해 나타내고 있는 수를, 예를 들어 1 감산하고, 감산에 의해 얻어진 수를 라이선스 정보로서, 라이선스 기억 유닛(1103)에 저장한다. 소프트웨어 기억 유닛(1102)에 저장된 유상 소프트웨어는, 실행 유닛(1101)에 의해 실행이 가능해진다.
이에 반하여, 라이선스 정보에 의해 나타내고 있는 수가, 0이면, 라이선스 관리 유닛(1104)은, 제공된 유상 소프트웨어를, 소프트웨어 기억 유닛(1102)에 저장하지 않는다. 이에 의해, 미리 지불된 라이선스 요금이, 부족한 경우에는, 유상 소프트웨어의 실행이 금지되게 된다. 관점을 달리하면, 대가의 지급 없이, 부정으로 유상 소프트웨어가 실행되는 것을 방지하는 것이 가능하게 되어, 소프트웨어 배신원이 라이선스 요금의 회수 누락을 방지하는 것이 가능해진다.
도 2에서는, 마이크로프로세서(1101)에 포함되어 있는 소프트웨어 기억 유닛(1102)이, 특별히 제한되지 않지만, 전기적으로 재기입 가능한 불휘발성 메모리인 플래시 메모리에 의해 구성되어 있다. 그로 인해, 마이크로프로세서(1100)로 소프트웨어를 제공하는 소프트웨어 제공 장치로서는, 플래시 라이터(1105)가 사용되고 있다. 물론, 소프트웨어 제공 장치는, 플래시 라이터(1105)로 한정되지 않는다. 예를 들어, USB(Universal Serial Bus) 메모리, SD 메모리 카드 등의 기억 매체여도 된다. 또한, 도 1에서 설명한 광디스크 재생 장치와 광디스크를 사용한 소프트웨어 제공 장치여도 된다. 어느 쪽의 경우라도, 소프트웨어 제공 장치는, 유상 소프트웨어 및/또는 무상 소프트웨어를 저장하고 있으며, 마이크로프로세서(1100)로, 소프트웨어를 제공한다. 또한, 도 1에서 설명한 바와 같이, 통신 회선을 통해 마이크로프로세서(1100)로, 소프트웨어를 제공하도록 해도 된다.
또한, 도 2에 도시한 라이선스 기억 유닛(1103)도 플래시 메모리에 의해 구성되어 있다. 소프트웨어 기억 유닛(1102) 및 라이선스 기억 유닛(1103)은, 플래시 메모리에 의해 구성되어 있는 예를 나타내고 있지만, 이것으로 한정되는 것이 아니라, 스태틱형 메모리 등의 휘발성 메모리여도 된다. 단, 라이선스 기억 유닛(1103)을 휘발성 메모리로 구성하는 경우, 전원 전압이 공급되지 않았을 때에도, 라이선스 정보가 유지되도록 배터리 등에 의해 백업이 행해진다.
라이선스 기억 유닛(1103)은, 판매자(제조자)가 라이선스 정보를 저장한 후에는, 라이선스 관리 유닛(1104)에 의해서만, 변경이 가능하게 된다. 도 2에서는, 특별히 제한되지 않지만, 라이선스 관리 유닛(1104)은, 실행 유닛(1101)과는 상이한 실행 유닛에 의해 구성되어 있다. 이 경우, 라이선스 관리 유닛(1104)의 기능은, 라이선스 관리 유닛(1104)을 구성하는 실행 유닛에 의해 실행되는 소프트웨어에 의해 실현되게 된다. 물론, 실행 유닛(1001)이, 실행 유닛의 기능과 라이선스 관리 유닛(1104)의 기능의 양쪽을 실현하도록 해도 된다.
실시 형태 1에 따른 전자 장치(1000) 및 반도체 장치(1100)에 대하여, 외부로부터 제공된 유상 소프트웨어를, 소프트웨어 기억부(1002 및 1102)에 저장하는 경우를, 도 1 및 도 2를 이용하여 설명하였다. 즉, 제공된 유상 소프트웨어를, 소프트웨어 기억부(1002)(기억 유닛(1102))로 다운로드하는 경우를 설명하였다. 다운로드에 의해, 소프트웨어 기억부(1002)(기억 유닛(1102))에 저장된 소프트웨어는, 실행부(1001)(실행 유닛(1101))에 의해 실행 가능하게 된다. 그로 인해, 본 명세서에 있어서, 다운로드란, 소프트웨어 기억부(1002)(기억 유닛(1102))로 소프트웨어를 저장하는 것을 의미할 뿐만 아니라, 광의로는, 소프트웨어를 실행 가능하게 하는 것도 의미하고 있다.
또한, 인스톨이란, 소프트웨어가, 실행부(1001)(실행 유닛(1100))에 의해 실행 가능하게 하는 것을 의미하고 있다. 인스톨에 대향하는 용어로서, 언인스톨이 있다. 언인스톨은, 소프트웨어가, 실행부(1001)(실행 유닛(1100))에 의해 실행하는 것이 불가능하게 되도록 하는 것을 의미하고 있다.
유상 소프트웨어가 제공(다운로드)될 때마다, 라이선스 관리부(1004)(라이선스 관리 유닛(1104))는, 상기한 바와 같이, 라이선스 정보를 감산하고, 라이선스 기억부(1003)(라이선스 기억 유닛(1103))에 저장되어 있는 라이선스 정보를 갱신한다. 즉, 유상 소프트웨어를 다운로드할 때마다, 미리 지불된 라이선스 요금이 줄어들어, 미리 지불된 라이선스 요금을 다 쓰면, 유상 소프트웨어의 다운로드가 금지되게 된다.
다운로드한 유상 소프트웨어를, 실행 불가능하게 하는 경우, 즉 언인스톨하는 경우, 후에 상세히 설명하지만, 라이선스 관리부(1004)(라이선스 관리 유닛(1104))는, 라이선스 정보를 변경하여도 되고, 갱신하지 않아도 된다.
<라이선스 관리 유닛(1104)의 동작>
도 3은, 실시 형태 1에 따른 라이선스 관리 유닛(1104)의 동작을 나타내는 흐름도이다.
우선, 유저로부터, 소프트웨어를 인스톨하는 지시가, 스텝 S00에 있어서, 라이선스 관리 유닛(1104)에 부여된다. 이때, 유저는, 인스톨하는 소프트웨어를 지정한다.
유저가 지정한 소프트웨어가, 유상 소프트웨어인 경우, 라이선스 관리 유닛(1104)은, 스텝 S01에 있어서, 라이선스 기억 유닛(1103)으로부터 라이선스 정보를 판독한다. 이 실시 형태 1에 있어서는, 라이선스 요금에 대응한 수가, 라이선스 정보로서 사용되고 있다. 달리 말하자면, 라이선스 정보는, 유상 소프트웨어(SW)의 인스톨 가능 수를 나타내고 있다. 스텝 S02에 있어서, 라이선스 관리 유닛(1104)은, 라이선스 정보에 의해 나타내고 있는 유상 소프트웨어 인스톨 가능 수(도면에서는, 'SW 인스톨 가능 수'라고 기재)가, 1 이상인지 여부의 판정을 행한다. 유상 소프트웨어 인스톨 가능 수가, 1 미만(예를 들어 0)이라고 판정하면, 라이선스 관리 유닛(1104)은, 스텝 S08을 실행한다. 스텝 S08에 있어서, 라이선스 관리 유닛(1104)은, 예를 들어 인스톨이 실패하였다는 취지를, 유저에게 알린다.
한편, 스텝 S02에 있어서, 라이선스 관리 유닛(1104)이, 유상 소프트웨어 인스톨 가능 수가, 1 이상이라고 판정하면, 라이선스 관리 유닛(1104)은, 다음으로 스텝 S03을 실행한다. 스텝 S03에 있어서, 유저가 지정한 소프트웨어를, 플래시 라이터(1105)로부터 수취한다. 수취한 소프트웨어를, 라이선스 관리 유닛(1104)은, 스텝 S04에 있어서, 소프트웨어 기억 유닛(플래시 메모리)(1102)으로 공급하고, 소프트웨어 기억 유닛(1102)으로 기입한다(저장한다).
다음으로, 스텝 S05에 있어서, 라이선스 관리 유닛(1104)은, 유상 소프트웨어 인스톨 가능 수를 1 감산하고, 감산한 유상 소프트웨어 인스톨 가능 수를 라이선스 정보로서 갱신한다. 그 후에, 라이선스 관리 유닛(1104)은, 갱신한 라이선스 정보를, 라이선스 기억 유닛(1103)으로 공급하고, 기입한다(저장한다). 이에 의해, 라이선스 기억 유닛(1103)에 저장되어 있는 라이선스 정보가 갱신되게 된다.
마지막으로, 스텝 S07에 있어서, 라이선스 관리 유닛(1104)은, 인스톨이 성공하였다는 취지를, 유저에게 알린다.
유상 소프트웨어를, 마이크로프로세서(1100)로 인스톨할 때마다, 상기한 스텝 S00 내지 S07을 반복한다. 반복함으로써, 라이선스 정보에 의해 나타내고 있는 유상 소프트웨어 인스톨 가능 수는, 감산되고, 1 미만(예를 들어 0)에 도달한다. 유상 소프트웨어 인스톨 가능 수가, 1 미만이 되면, 라이선스 관리 유닛(1104)은, 스텝 S08을 실행하고, 인스톨에 실패하였다는 취지를, 유저에게 알린다.
즉, 반도체 장치를 구입할 때 미리 지불한 라이선스 요금에 대응한 유상 소프트웨어 인스톨 가능 수에 도달할 때까지, 유상 소프트웨어를, 소프트웨어 기억 유닛(1103)에 저장하는 것이 가능해진다. 소프트웨어 기억 유닛(1103)에 저장된 소프트웨어는, 실행 유닛(1101)에 의해 실행 가능하기 때문에, 구입 시에 지불한 라이선스 요금에 대응한 개수의 유상 소프트웨어를 실행하는 것이 가능해진다.
인스톨하는 소프트웨어가 유상 소프트웨어인 경우를 설명하였지만, 인스톨하는 소프트웨어에는, 무상 소프트웨어도 존재한다. 그로 인해, 유상 소프트웨어를, 마이크로프로세서(1100)에 인스톨할 때, 유저가, 라이선스 관리 유닛(1104)에 대해, 도 3에 도시한 스텝을 실시하도록 지시하면 된다.
또한, 도 23에 도시한 바와 같이, 인스톨되어야 할 소프트웨어 부분 SB에 속성 정보 부분 ATB를 부가하고, 소프트웨어 부분 SB와 속성 정보 부분 ATB에 의해 소프트웨어를 구성하도록 해도 된다. 이 경우, 도 1 및 도 2에서 설명한 소프트웨어 제공 장치(1005) 및 플래시 라이터(1105)에 저장되는 유상 소프트웨어의 각각이, 도 23에 도시한 바와 같이, 인스톨되어야 할 소프트웨어 부분 SB와 속성 정보 부분 ATB를 구비하도록 한다. 이 속성 정보 부분 ATB에, 소프트웨어 부분 SB가, 유상 소프트웨어인지 여부를 나타내는 속성 정보를 저장해 둔다.
이와 같이, 속성 정보 부분 ATB를 부가하고 있는 경우, 라이선스 관리 유닛(1104)은, 예를 들어 도 3에 도시한 스텝 S00에 있어서, 유저가 지정한 소프트웨어를, 플래시 라이터(1105)로부터 수취한다. 스텝 S00에 있어서, 라이선스 관리 유닛(1104)은, 수취한 소프트웨어에 있어서, 속성 정보 부분 ATB에, 유상 소프트웨어임을 나타내는 속성 정보가 저장되어 있는지 여부를 판정한다. 속성 정보가, 유상 소프트웨어임을 나타낸 경우, 도 3에 도시한 스텝 S01, S02, S04 내지 S08을 실시한다. 이 경우, 스텝 S00에 있어서, 라이선스 관리 유닛(1104)은, 소프트웨어 부분 SB를 수취하고 있기 때문에, 스텝 S03은 실행하지 않아도 된다.
한편, 스텝 S00에 있어서, 속성 정보 부분 ATB에 저장되어 있는 속성 정보가, 무상 소프트웨어임을 나타낸 경우, 혹은 속성 정보 부분 ATB가, 소프트웨어 SW에 포함되지 않는 경우에는, 인스톨하는 소프트웨어는, 무상 소프트웨어라고 판정하고, 라이선스 관리 유닛(1104)은, 도 3에 도시한 스텝 S01 내지 S08을 실행하지 않는다.
<언인스톨>
다음으로, 유상 소프트웨어를 인스톨한 후, 유상 소프트웨어를 언인스톨하는 경우의 라이선스 관리 유닛(1104)의 동작을 설명한다. 여기서는, 유상 소프트웨어를 언인스톨하는 경우, 라이선스 정보에 의해 나타내고 있는 유상 소프트웨어 인스톨 가능 수를 변경하는 예와, 변경하지 않는 예를 설명한다. 유상 소프트웨어 인스톨 가능 수를 변경하는 경우와 변경하지 않는 경우에, 각각 효과가 존재하기 때문에, 원하는 효과에 따라, 어느 한쪽의 예를 채용하도록 해도 된다.
우선, 유상 소프트웨어 인스톨 가능 수를 변경하는 예를, 도 4를 이용하여 설명한다. 도 4는, 유상 소프트웨어를 언인스톨하는 경우의 라이선스 관리 유닛(1104)의 동작을 나타내는 흐름도이다.
스텝 S10에 있어서, 유저가 언인스톨하는 유상 소프트웨어를 지정하고, 언인스톨을 라이선스 관리 유닛(1104)으로 지시한다. 이에 의해, 언인스톨이 개시된다. 라이선스 관리 유닛(1104)은, 스텝 S11에 있어서, 라이선스 기억 유닛(1103)으로부터, 라이선스 정보를 판독한다. 다음으로, 스텝 S12에 있어서, 라이선스 관리 유닛(1104)은, 소프트웨어 기억 유닛(1102)으로부터, 언인스톨이 지정된 소프트웨어를 소거한다. 다음의 스텝 S13에 있어서, 스텝 S11에 있어서 판독한 라이선스 정보에 의해 나타내고 있는 유상 소프트웨어 인스톨 가능 수를 1 증가시켜서, 유상 소프트웨어 인스톨 가능 수를 갱신한다.
갱신된 유상 소프트웨어 인스톨 가능 수를 나타내는 라이선스 정보를, 라이선스 관리 유닛(1104)은, 스텝 S14에 있어서, 라이선스 기억 유닛(1103)으로 기입하고, 스텝 S15에 있어서, 언인스톨을 완료한다.
이와 같이, 유상 소프트웨어를 언인스톨했을 때, 유상 소프트웨어 인스톨 가능 수를 증가시키도록 함으로써, 잘못된 유상 소프트웨어를 인스톨한 경우에도, 라이선스 요금을 줄이지 않고, 원하는 유상 소프트웨어를 다시 인스톨하는 것이 가능해진다.
다음으로, 언인스톨을 행했을 때, 유상 소프트웨어 인스톨 가능 수를 갱신하지 않는 예를, 도 5를 이용하여 설명한다. 도 5는, 유상 소프트웨어를 언인스톨하는 경우의 라이선스 관리 유닛(1104)의 동작을 나타내는 흐름도이다.
도 4의 스텝 S10과 마찬가지로, 유저가, 스텝 S20에 있어서, 언인스톨하는 유상 소프트웨어를 지정하고, 언인스톨을 지시함으로써, 언인스톨의 동작이 개시된다.
라이선스 관리 유닛(1104)은, 언인스톨의 지시를 받으면, 지정된 유상 소프트웨어를, 소프트웨어 기억 유닛(1102)으로부터 소거한다. 그 후, 스텝 S22에 있어서, 라이선스 관리 유닛(1104)은, 언인스톨의 동작을 완료한다. 이 경우, 라이선스 관리 유닛(1104)은, 라이선스 기억 유닛(1103)으로부터 라이선스 정보를 판독하지 않는다. 그로 인해, 라이선스 정보는 갱신되지 않고, 유지되게 된다. 이에 의해, 라이선스 정보에 의해 나타내고 있는 유상 소프트웨어 인스톨 가능 수는, 증감되지 않고, 유지되게 된다.
도 5의 예에서는, 유상 소프트웨어의 언인스톨이 지시된 경우, 언인스톨의 동작만이 행해진다. 이에 의해, 유상 소프트웨어를, 무한하게 인스톨하는 것이 가능해지는 것을 방지할 수 있다.
도 4 및 도 5에 있어서는, 언인스톨의 동작으로서, 소프트웨어 기억 유닛(1102)으로부터 소프트웨어를 소거하는 예를 나타내었지만, 언인스톨의 동작은, 이것으로 한정되는 것은 아니다. 또한, 소거의 동작은, 소정의 상태를 겹쳐쓰기하는 동작도 포함하고 있다.
이 실시 형태에서는, 라이선스 정보가, 유상 소프트웨어의 인스톨 가능 수를 나타낸 예를 설명하였지만, 이것으로 한정되는 것은 아니다. 예를 들어, 라이선스 정보는, 유상 소프트웨어의 인스톨 가능한 포인트를 나타내도 되고, 인스톨 가능한 기억 용량을 나타내도 된다.
또한, 라이선스 정보가 나타내는 유상 소프트웨어 인스톨 가능 수를, 유상 소프트웨어를 인스톨할 때마다, 1 감산하는 예를 나타내었지만, 이것으로 한정되는 것은 아니다. 예를 들어, 인스톨할 때마다, 2 이상을 감산하도록 해도 된다. 또한, 인스톨하는 유상 소프트웨어의 금액에 대응하여, 감산하는 수를 변경하도록 해도 된다. 이 경우, 예를 들어 도 23에서 설명한 속성 정보부 ATB에, 유상 소프트웨어의 가격에 대응한 감산 수를 저장해 두면 된다. 이 경우, 라이선스 관리 유닛(1104)은, 유상 소프트웨어 인스톨 가능 수를 감산할 때, 속성 정보부 ATB에 저장되어 있는 감산 수를 감산하면 된다.
라이선스 정보가, 유상 소프트웨어의 인스톨 가능한 포인트를 나타낸 경우도 마찬가지로, 인스톨마다 1포인트 혹은 2 이상의 포인트를 감산해도 되고, 유상 소프트웨어의 가격에 대응하여 포인트수를 감산하게 해도 된다.
라이선스 정보가, 유상 소프트웨어의 인스톨 가능한 기억 용량을 나타낸 경우도 마찬가지이다. 이 경우, 라이선스 정보가 나타내는 인스톨 가능한 기억 용량은, 소프트웨어 기억 유닛(1102)의 기억 용량을 나타내고 있다. 즉, 소프트웨어 기억 유닛(1102)이 갖는 기억 용량 중, 유상 소프트웨어를 저장하는 것이 가능한 기억 용량을 나타내고 있다. 라이선스 관리 유닛(1104)은, 플래시 라이터(1105)로부터, 인스톨하는 유상 소프트웨어를 읽어들였을 때, 유상 소프트웨어의 용량을 파악할 수 있기 때문에, 라이선스 정보에 의해 나타내고 있는 유상 소프트웨어의 인스톨 가능 용량과, 파악한 유상 소프트웨어의 용량으로부터, 유상 소프트웨어를 인스톨하는 것이 가능한지 여부의 판정을 하는 것이 가능하다. 또한, 인스톨 가능 용량으로부터, 파악한 유상 소프트웨어의 용량을 감산함으로써 얻은 기억 용량을, 라이선스 정보로서 갱신하는 것이 가능하다.
라이선스 정보는, 유상 소프트웨어의 인스톨 가능한 라이선스 수를 나타내는 정보라고 간주할 수 있다. 이 경우, 실시 형태에 있어서는, 소프트웨어에 대해 라이선스 수가 설정되어 있는 것이 아니라, 반도체 장치(1100)에 대해 라이선스 수가 설정되어 있게 된다. 그로 인해, 인스톨하는 유상 소프트웨어는, 종별을 막론하고, 임의이며, 서로 다른 종류의 유상 소프트웨어를, 라이선스 정보에 의해 나타내고 있는 라이선스 수까지, 인스톨하는 것이 가능하다.
도 2에 있어서는, 반도체 장치(1101)가, 라이선스 기억 유닛(1103) 및 라이선스 관리 유닛(1104)을 구비하고 있다. 라이선스 관리 유닛(1104)에는, 미리 인스톨 가능한 라이선스 수를 나타내는 라이선스 정보가 저장되어, 반도체 장치(1100)는 제공된다. 이에 의해, 반도체 장치(1100)를 구입한 유저는, 라이선스 정보에 의해 나타내고 있는 라이선스 수까지, 유상 소프트웨어를, 반도체 장치(1100)로 인스톨하는 것이 가능해진다. 즉, 반도체 장치(1100)의 내부에서, 라이선스의 관리가 행해진다. 이에 의해, 유저는, 라이선스 관리 장치를 도입하지 않고, 라이선스의 관리를 행하는 것이 가능하게 되어, 유저의 부담을 저감시키는 것이 가능해진다. 또한, 라이선스 관리 장치를 감시할 필요가 없어지기 때문에, 소프트웨어 배신원의 부담을 저감시키는 것이 가능해진다. 달리 말하자면, 유저의 편리성을 손상시키지 않고, 라이선스의 관리를 행하는 것이 가능해진다. 즉, 라이선스 관리에 적합한 반도체 장치(1100)를 제공할 수 있다.
(실시 형태 2)
도 6은, 실시 형태 2에 따른 전자 장치의 구성을 나타내는 블록도이다. 실시 형태 2에 있어서는, 전자 장치로서, 퍼스널 컴퓨터가 도시되어 있다. 우선 도 1을 이용하여, 실시 형태 1에 따른 전자 장치의 구성을 설명하고 있으므로, 여기서는, 도 1에 도시한 전자 장치와의 상이점을 주로 설명한다. 도 6도, 라이선스 관리 시스템을 나타내고 있다고 간주할 수 있다. 여기서도, 라이선스 관리의 대상으로 되는 유상 소프트웨어가, 소프트웨어 제공 장치로부터 전자 장치(퍼스널 컴퓨터)로 제공되게 된다.
<퍼스널 컴퓨터의 구성>
도 6에 있어서, 1300은, 퍼스널 컴퓨터를 나타내고 있다. 퍼스널 컴퓨터(1300)에는, CD-ROM 등의 광디스크 재생 장치, 디스플레이 등의 표시 장치, 키보드 등의 입력 장치, 무선 통신 등의 통신 장치 등의 주변 장치가 접속되지만, 상기 도면에는, 설명에 필요한 광디스크 재생 장치(1305)를 제외하고, 주변 장치는 생략되어 있다. 여기서, 광디스크 재생 장치(CD-ROM)(1305)에는, 광디스크와 같은 기억 매체가 장착되어, 사용된다. 광디스크에는, 복수 종류의 소프트웨어가 저장되어 있으며, 광디스크 재생 장치(1305)에 의해, 재생함으로써, 광디스크에 저장되어 있는 소프트웨어가, 퍼스널 컴퓨터(1300)에 제공된다. 그로 인해, 광디스크 재생 장치(1305)와 광디스크에 의해, 도 1에 도시한 소프트웨어 제공 장치(1005)가 구성되어 있다고 간주할 수 있다.
퍼스널 컴퓨터(1300)는, 프로세서(CPU)(1301), 하드디스크(1302), 라이선스 기억부(1303) 및 라이선스 관리부(1304)를 구비하고 있다. 이들 이외에, 퍼스널 컴퓨터(1300)는, 예를 들어 주변 장치와 프로세서(1301)의 사이에 설치된 주변부를 구비하고 있지만, 도 6에서는 생략되었다. 또한, 퍼스널 컴퓨터(1300)는, 프로세서(1301)가 소프트웨어를 실행할 때, 예를 들어 작업용으로서 사용하는 휘발성 메모리를 구비하고 있다. 도 6에서는, 이 휘발성 메모리는, 프로세서(1301)에 내장되어 있는 것으로서, 설명한다.
퍼스널 컴퓨터(1300)를 제조 또는 판매할 때, 제조자 또는 판매자가, 소정의 라이선스 정보를, 라이선스 기억부(1303)에 저장하고, 제조 또는 판매를 행한다. 이 때 저장되는 라이선스 정보는, 유상 소프트웨어 인스톨 가능 수를 나타내고 있다. 퍼스널 컴퓨터(1300)를 구입하는 유저가 희망하는 라이선스 수에 대응한 유상 소프트웨어 인스톨 가능 수가, 라이선스 정보로서, 제조자 또는 판매자에 의해, 라이선스 기억부(1303)에 저장되게 된다. 이 경우, 유저가 희망하는 라이선스 수에 대응한 라이선스 요금이, 퍼스널 컴퓨터(1300)의 하드웨어(본체)의 가격에 가산되고, 퍼스널 컴퓨터(1300)의 제조 또는 판매 가격으로서, 유저는 구입하게 된다.
프로세서(1301)는, 하드디스크(1302)에 결합되고, 하드디스크(1302)로부터 소프트웨어를 판독하여, 판독된 소프트웨어를 실행한다. 이 소프트웨어의 실행에 의해, 퍼스널 컴퓨터(1300)는, 유저가 원하는 기능을 달성하게 된다.
라이선스 관리부(1304)는, 광디스크 재생 장치(1305)로부터 유상 소프트웨어가 제공되었을 때, 라이선스 기억부(1303)로부터 라이선스 정보를 판독하여, 판독된 라이선스 정보에 기초하여, 유상 소프트웨어의 하드디스크(1302)에 대한 저장을 제어한다.
즉, 라이선스 관리부(1304)는, 라이선스 정보가 나타낸 유상 소프트웨어 인스톨 가능 수가, 인스톨하는 유상 소프트웨어의 규정 수 이상인 경우에는, 제공되고 있는 유상 소프트웨어를, 하드디스크(1302)에 저장한다. 또한, 이때, 라이선스 정보에 의해 나타내고 있는 인스톨 가능 수로부터 유상 소프트웨어의 규정 수를 감산하고, 감산에 의해 얻어진 인스톨 가능 수를, 라이선스 정보로서 라이선스 기억부(1303)에 저장한다. 이에 반하여, 유상 소프트웨어의 규정 수가, 라이선스 정보에 의해 나타내고 있는 인스톨 가능 수를 초과한 경우, 라이선스 관리부(1304)는, 제공된 유상 소프트웨어를 하드디스크(1302)에 저장하지 않는다. 또한, 이때에는, 인스톨 가능 수를 변경하지 않고, 유지한다.
하드디스크에 저장된 유상 소프트웨어는, 프로세서(1301)가 판독하고, 실행한다. 이에 의해, 퍼스널 컴퓨터(1300)는, 유상 소프트웨어에 따른 동작을 행하게 된다.
유상 소프트웨어의 규정 수는, 실시 형태 1과 마찬가지로, 복수 종류의 유상 소프트웨어에 대해 일정한 값, 예를 들어 실시 형태 1과 마찬가지로, 1이어도 되며, 유상 소프트웨어마다 상이한 값으로 되도록 해도 된다. 예를 들어, 인스톨하는 유상 소프트웨어마다, 규정 수는 유상 소프트웨어의 가격, 그 크기(용량)에 비례한 값이어도 된다.
라이선스 기억부(1303)는, 제조자 또는 판매자에 의해, 라이선스 정보가 기억된 다음은, 라이선스 관리부(1304)에 의해서만, 변경이 가능한 구성으로 된다.
라이선스 관리부(1304)는, 예를 들어 프로세서(1301)와는 상이한 프로세서에 의해 구성된다. 이 경우, 라이선스 관리부(1304)를 구성하는 프로세서는, 소프트웨어에 따라서 동작하게 된다. 그러나, 이것으로 한정되는 것은 아니다. 예를 들어, 프로세서(1301)가, 하드디스크(1302)로부터의 소프트웨어를 실행함과 함께, 라이선스 관리부(1304)의 기능도 달성하도록 해도 된다.
<라이선스 관리부(1304)의 동작>
도 7은, 라이선스 관리부(1304)의 동작을 나타내는 흐름도이다. 여기서는, 유상 소프트웨어의 규정값이, 1인 경우를 예로 하여 설명한다.
우선, 유저가, 스텝 S30에 있어서, 키보드(도시생략) 등을 사용하여, 인스톨하는 유상 소프트웨어를 특정하고, 유상 소프트웨어의 인스톨임을 지정한다. 키보드로부터의 지정 및 지시는, 프로세서(1301)에 의해 식별되고, 프로세서(1301)는, 라이선스 관리부(1304) 및 광디스크 재생 장치(1305)를 동작시킨다. 이에 의해, 스텝 S30에 있어서, 인스톨 동작이 개시한다.
라이선스 관리부(1304)는, 동작을 개시함으로써, 스텝 S31에 있어서, 라이선스 기억부(1303)로부터 라이선스 정보를 판독한다. 다음으로, 스텝 S32에 있어서, 라이선스 관리부(1304)는, 판독한 라이선스 정보에 의해 나타내고 있는 유상 소프트웨어 인스톨 가능 수가, 규정 수 이상인지 여부의 판정을 행한다. 여기서는, 규정 수는 1로 하고 있기 때문에, 인스톨 가능 수가, 1 이상인지 여부를 판정한다.
스텝 S32에 있어서, 라이선스 정보에 의해 나타내고 있는 유상 소프트웨어 인스톨 가능 수가, 규정 수 (1) 미만이라고 판명된 경우, 라이선스 관리부(1304)는, 다음으로 스텝 S38을 실행한다. 스텝 S38에 있어서, 라이선스 관리부(1304)는, 인스톨에 실패한 것을, 프로세서(1301)로 통지한다. 이 통지에 의해, 프로세서(1301)는, 예를 들어 디스플레이에, 인스톨 실패라는 취지의 표시를 행하고, 인스톨의 동작을 종료한다.
이에 반하여, 스텝 S32에 있어서, 라이선스 정보에 의해 나타내고 있는 유상 소프트웨어 인스톨 가능 수가, 규정 수 (1) 이상이라고 판명된 경우, 라이선스 관리부(1304)는, 다음으로 스텝 S33을 실행한다. 스텝 S33에 있어서, 광디스크 재생 장치(1305)로부터, 유상 소프트웨어가 판독된다. 스텝 S33에 있어서 판독된 유상 소프트웨어를, 스텝 S34에 있어서, 라이선스 관리부(1304)는, 하드디스크(1302)로 기입한다(저장한다).
그 후, 스텝 S35에 있어서, 라이선스 관리부(1304)는, 라이선스 정보에 의해 나타내고 있는 유상 소프트웨어 인스톨 가능 수로부터, 규정 수분을 줄인다. 도 7의 예에서는, 규정 수 1을 감산하게 된다. 스텝 S35에 이어지는, 스텝 S36에 있어서, 라이선스 관리부(1304)는, 스텝 S35에 있어서의 감산에 의해 얻어진 유상 소프트웨어 인스톨 가능 수를, 라이선스 정보로서 라이선스 기억부(1303)로 기입한다(저장한다). 그 후, 스텝 S37에 있어서, 라이선스 관리부(1304)는, 인스톨이 성공하였다는 취지를, 프로세서(1301)로 통지한다. 이것을 받아 프로세서(1301)는, 디스플레이에, 인스톨 성공이라는 취지의 표시를 행하고, 인스톨의 동작을 종료한다.
유상 소프트웨어를, 인스톨할 때마다, 도 7에 도시한 스텝이 실행된다. 실행될 때마다, 라이선스 기억부(1303)에 저장되어 있는 라이선스 정보가 나타내는 유상 소프트웨어 인스톨 가능 수가, 감산된다. 유저가 구입했을 때, 저장된 라이선스 정보에 의해 나타내고 있는 유상 소프트웨어 인스톨 가능 수까지는, 하드디스크(1303)에 유상 소프트웨어가 기입된다. 즉, 미리 저장된 라이선스 정보에 의해 나타내고 있는 인스톨 가능 수까지는, 유상 소프트웨어를, 프로세서(1301)가 실행 가능하게 된다. 이에 반하여, 미리 저장된 라이선스 정보에 의해 나타내고 있는 유상 소프트웨어 인스톨 가능 수를 초과하면, 도 7의 스텝 S38이 실행됨으로써, 유상 소프트웨어는, 하드디스크(1303)에 기입되지 않아, 프로세서(1301)에 의해 실행하는 것이 불가능해진다.
이 실시 형태 2에 있어서도, 실시 형태 1과 마찬가지로, 라이선스 정보는, 유상 소프트웨어의 인스톨 가능한 포인트를 나타내도 되고, 인스톨 가능한 기억 용량을 나타내도 되며, 라이선스 정보는, 인스톨 가능한 라이선스 수를 나타내고 있다고 간주할 수 있다. 라이선스 정보를 포인트로 나타내는 경우, 라이선스 수에 상당하는 포인트가 라이선스 정보에 의해 나타나 있다고 볼 수 있다. 또한, 라이선스 정보를 기억 용량으로 나타내는 경우, 라이선스 수에 상당하는 기억 용량이 라이선스 정보에 의해 나타나 있다고 볼 수 있다.
또한, 유상 소프트웨어의 구성을, 실시 형태 1에서 설명한 것과 마찬가지로, 도 23에 도시한 바와 같은 구성으로 하여도 된다. 또한, 도 23에 도시한 속성 정보부 ATB에, 유상 소프트웨어임을 나타내는 속성 정보를 저장하도록 하는 경우에는, 인스톨 개시(도 7의 스텝 S30)일 때, 유저는, 인스톨하는 소프트웨어를 특정하는 것만으로도 충분하다.
또한, 실시 형태 1에서 설명한 것과 마찬가지로, 유상 소프트웨어를 언인스톨하는 경우에는, 라이선스 정보를, 도 4에서 설명한 바와 같이, 갱신해도 되고, 도 5에서 설명한 바와 같이, 유지해도 된다.
(실시 형태 3)
도 1 및 도 6에서는, 프로세서(1001)(실행 유닛(1301))를 내장한 전자 장치를 설명하였지만, 소프트웨어를 기억하는 기억부와 프로세서를 구비한 마이크로프로세서(예를 들어, 도 2의 마이크로프로세서(1100))를 사용해서 전자 장치를 구성하고, 제공할 수도 있다. 이 경우에는, 예를 들어 유저가 마이크로프로세서를 판매자(제조자)로부터 구입하고, 전자 장치에 내장하여, 마이크로컴퓨터를 내장한 전자 장치를, 유저가 제공하게 된다.
마이크로프로세서를 내장한 전자 장치를 제공하는 경우, 제공할 때까지의 단계는, 크게 구별하면, 개발 단계와, 양산 단계로 나뉜다. 개발 단계에서, 마이크로프로세서에 인스톨되는 소프트웨어의 개발을 행하고, 개발 단계에서 개발된 소프트웨어를, 양산 단계에서는, 복수의 마이크로프로세서의 각각에 인스톨한다. 이와 같이 하여 개발 단계에서 개발된 소프트웨어가 인스톨된 마이크로프로세서가, 전자 장치에 내장되고, 제공되게 된다. 그로 인해, 양산 단계에서는, 소프트웨어의 인스톨은, 원칙 1회로 충분하다.
이에 반하여, 개발 단계에서는, 마이크로프로세서에 대해, 소프트웨어의 인스톨, 언인스톨 및 재인스톨이, 반복되는 경우가 있다. 즉, 동일한 소프트웨어에 대하여, 인스톨, 언인스톨, 다시 인스톨(재인스톨)을 반복하는 경우도 있다. 도 2에 도시한 마이크로프로세서(1100)를 사용하여, 일례를 설명하면 다음과 같은 경우이다.
소프트웨어 기억 유닛(1102)으로 유상 소프트웨어와 무상 소프트웨어의 각각을 인스톨한다. 그 후, 인스톨한 무상 소프트웨어를 개량한 결과, 무상 소프트웨어의 사이즈(용량)가 커져 버리게 되어, 이미 인스톨되어 있는 유상 소프트웨어를, 소프트웨어 기억 유닛(1102) 내의 다른 영역으로 이동시키는 일이 필요해진다. 이 경우, 유상 소프트웨어를, 인스톨한 다음, 언인스톨하고, 다시 인스톨(재인스톨)하게 된다. 또한, 다른 예를 설명하면, 개발 단계의 초기에서, 유상 소프트웨어를 인스톨한 다음, 개발이 진행됨에 따라, 당해 유상 소프트웨어가 불필요하게 되어, 언인스톨한다. 그 후, 개발이 더 진행되고, 역시, 당해 유상 소프트웨어를 인스톨하는 것이 필요해지게 되어, 인스톨(재인스톨)하는 경우가 있다. 이 경우에 있어서도, 동일한 유상 소프트웨어를, 인스톨하고, 언인스톨하여, 다시 재인스톨하게 된다.
그로 인해, 소프트웨어를 자유롭게 재기입하는 것이 가능한 마이크로프로세서를, 마이크로프로세서를 제공하는 판매자(제조자)가, 전자 장치를 개발하는 유저에게 제공하는 것이 고려된다. 그러나, 이와 같이, 소프트웨어를 자유롭게 재기입하는 것이 가능한 마이크로프로세서를 제공하는 경우, 양산 단계에서, 허락 없이 카피한 소프트웨어를, 마이크로프로세서에 인스톨하는 것이 가능하게 되어버린다.
이 대책으로서, 개발 단계에서 사용되는 마이크로프로세서(이하, '개발용 마이크로프로세서'라고도 칭함)와, 양산 단계에서 사용되는 마이크로프로세서(이하, '양산용 마이크로프로세서'라고도 칭함)를 나누어, 판매자(제조자)가 제공하는 것이 고려된다. 이 경우, 개발용 마이크로프로세서는, 양산용 마이크로프로세서의 기능과 동일한 기능을 갖고, 개발에 적합한 추가 기능을 더 구비하도록 한다. 또한, 개발용 마이크로프로세서는, 소프트웨어의 재기입을 자유롭게 행하는 것이 가능하게 되도록 하고, 양산용 마이크로프로세서는, 소프트웨어의 재기입을, 불가능 또는 제한한다. 또한, 여기서의 재기입은, 소프트웨어를 인스톨한 다음, 다시 동일한 소프트웨어를 재인스톨하는 것을 의미하고 있다.
이 경우, 개발용 마이크로프로세서와 양산용 마이크로프로세서의 전환은, 판매자(제조자)가 제공한 다음에는 곤란해지도록 한다. 이 전환을 행하는 방법으로서는, 예를 들어 다음의 방법 (1) 내지 (6)이 있다.
(1) 마이크로프로세서에, 1회만의 기입이 가능한 불휘발성 메모리를 설치한다. 이 불휘발성 메모리에 기입을 행함으로써, 마이크로프로세서는, 예를 들어 개발용 마이크로프로세서로서 기능하고, 기입을 행하지 않으면, 양산용 마이크로프로세서로서 기능한다.
(2) 마이크로프로세서에 불휘발성 메모리가 설치되어 있는 경우, 이 불휘발성 메모리에 있어서, 특별한 방법에 의해서만 기입을 행하는 것이 가능한 특별 영역을 설정한다. 특별 영역에, 기입을 행함으로써, 마이크로프로세서는, 예를 들어 개발용 마이크로프로세서로서 기능하고, 기입을 행하지 않으면, 양산용 마이크로프로세서로서 기능한다. 이 경우의 특별한 방법은, 예를 들어 반도체 칩을 패키지로 밀봉한 상태에서는, 외부에 접속되지 않은 단자를, 반도체 칩에 설치하고, 특정한 코드를, 이 단자에 공급했을 때에만, 기입이 가능해지도록 하는 방법이 고려된다.
(3) 마이크로프로세서에 메탈 스위치를 설치한다. 마이크로프로세서를 제조하는 제조 공정에 있어서, 메탈 스위치를 온 상태 또는 오프 상태로 한다. 이 경우, 예를 들어 메탈 스위치가 온 상태로 된 마이크로프로세서가, 개발용 마이크로프로세서로서 기능하고, 메탈 스위치가 오프 상태로 된 마이크로프로세서가, 양산용 마이크로프로세서로서 기능한다.
(4) 마이크로프로세서에 내장되어 있는 불휘발성 메모리를, 개발용 마이크로프로세서와 양산용 마이크로프로세서에서 서로 다르게 한다.
(5) 마이크로프로세서의 반도체 칩과 그것을 밀봉하는 패키지로부터 돌출되는 리드 사이의 접속을 바꿈으로써, 개발용 마이크로프로세서와, 양산용 마이크로프로세서를 전환한다.
(6) 개발용 마이크로프로세서와 양산용 마이크로프로세서의 패키지를 바꿈으로써, 개발용 마이크로프로세서와, 양산용 마이크로프로세서를 전환한다.
도 8은, 이와 같은 방법에 의해 전환된 개발용 마이크로프로세서와 양산용 마이크로프로세서의 관계를 나타내는 도면이다. 도 8에 있어서, 좌측이 개발용 마이크로프로세서를 나타내고, 우측이 양산용 마이크로프로세서를 나타내고 있다. 개발용 마이크로프로세서는, 소프트웨어의 재기입이 자유(프리)로 된다. 이에 반하여, 양산용 마이크로프로세서는, 소프트웨어의 재기입이 제한된다. 예를 들어, 양산용 마이크로프로세서에서는, 인스톨은 가능하지만, 재인스톨할 수 없도록 된다. 개발용 마이크로프로세서는, 양산용 마이크로프로세서의 기능을 포함하고 있지만, 개발용의 추가 기능도 구비하고 있다. 그로 인해, 개발용 마이크로프로세서의 하드웨어 가격은, 양산용 마이크로프로세서의 하드웨어 가격(가격 고정)에 비해 추가 기능의 가격 (α)만큼 고가로 된다. 또한, 여기서의 가격은, 라이선스 요금을 포함하고 있지 않다. 즉, 마이크로프로세서의 본체(하드웨어)의 가격을 나타내고 있다.
이 실시 형태 3에 있어서는, 상기한 방법에 의해, 개발용 마이크로프로세서로 되었는지, 양산용 마이크로프로세서로 되었는지를 나타내는 정보를 기초로 하여, 재기입 제한 정보가 형성된다. 예를 들어 방법 (1)에 의해, 전환을 실시한 경우, 1회만의 기입 가능한 불휘발성 메모리로부터의 출력에 기초한 값이, 재기입 제한 정보로서 사용된다.
또한, 실시 형태 3에 있어서는, 실시 형태 1에서 나타낸 도 2의 라이선스 기억 유닛(1103)에, 과거에 인스톨한 유상 소프트웨어의 이력 정보가 기억된다. 여기서, 이력 정보는, 예를 들어 인스톨한 유상 소프트웨어를 특정하는 유니크 번호 ID이다. 만일 유상 소프트웨어를 특정하는 유니크 번호 ID가, 유상 소프트웨어에 존재하지 않는 경우에는, 도 23에서 설명한 속성 정보부 ATB에 유상 소프트웨어를 특정하는 유니크 번호 ID의 정보를 저장한다.
실시 형태 3에 있어서는, 실시 형태 1의 도 2에 대해, 다시 라이선스 관리 유닛(1104)이 변경된다. 즉, 인스톨한 유상 소프트웨어를 언인스톨하고, 다시 재인스톨할 때, 실시 형태 3에 따른 라이선스 관리 유닛(1104)은, 재기입 제한 정보, 이력 정보 및 유상 소프트웨어의 유니크 번호 ID에 기초하여, 소프트웨어 기억 유닛(1102)으로의 유상 소프트웨어의 저장을 제어함과 함께, 유상 소프트웨어 인스톨 가능 수를 갱신할지 여부를 제어한다. 예를 들어, 실시 형태 3에 따른 라이선스 관리 유닛은, 재기입 제한 정보가, 개발용 마이크로프로세서임을 나타내는 경우, 즉 재기입 프리를 나타내고 있는 경우, 과거에 인스톨한 유상 소프트웨어를 재인스톨할 때, 유상 소프트웨어 인스톨 가능 수를 갱신하지 않고, 유상 소프트웨어를, 소프트웨어 기억 유닛(1102)에 저장한다. 즉, 인스톨 가능 수를 갱신하지 않고, 재인스톨을 가능하게 하도록 기능한다.
실시 형태 3에 따른 마이크로프로세서는, 실시 형태 1에서 설명한 마이크로프로세서(1100)(도 2)와 유사하다. 즉, 도 2에 도시한 마이크로프로세서(1100)와 상이한 것은, 라이선스 기억 유닛(1103) 및 라이선스 관리 유닛(1104)이다. 전술한 바와 같이, 실시 형태 3에 따른 라이선스 기억 유닛은, 도 2에 도시한 라이선스 기억 유닛(1103)에 이력 정보가 추가되어 있다. 실시 형태 3에 따른 라이선스 관리 유닛의 동작에 대해서는, 후에 설명한다. 또한, 실시 형태 3에 있어서는, 플래시 라이터(1105)로부터 유상 소프트웨어가 제공될 때, 그 유상 소프트웨어를 특정하는 유니크 번호 ID가 공급된다.
또한, 실시 형태 3에 따른 라이선스 관리 유닛은, 이하, 라이선스 관리 유닛[1104(3)]이라 기재하고, 라이선스 기억 유닛은, 이하, 라이선스 기억 유닛[1103(3)]이라 기재한다.
<라이선스 관리 유닛[1104(3)]의 동작>
다음으로, 실시 형태 3에 따른 라이선스 관리 유닛[1104(3)]의 동작을, 도 9를 이용하여 설명한다. 도 9는, 라이선스 관리 유닛[1104(3)]의 동작을 나타내는 흐름도이다. 스텝 S40에 있어서, 유저는, 인스톨하는 유상 소프트웨어를 지정하고, 유상 소프트웨어의 인스톨임을 지시한다. 이 지시를 받아, 라이선스 관리 유닛[1104(3)]이 동작을 개시한다. 또한, 플래시 라이터(1105)는, 특정된 유상 소프트웨어를, 마이크로프로세서(1100)로 제공한다. 즉, 인스톨을 개시한다.
스텝 S41에 있어서, 라이선스 관리 유닛[1104(3)]은, 재기입 제한 정보를 판정한다. 재기입 제한 정보가, 재기입 제한 있음(양산용 마이크로프로세서)을 나타낸 경우, 라이선스 관리 유닛[1104(3)]은, 다음으로 스텝 S43을 실행한다. 한편, 재기입 제한 정보가, 재기입 프리(개발용 마이크로프로세서)를 나타낸 경우, 라이선스 관리 유닛[1104(3)]은, 다음으로 스텝 S42를 실행한다.
스텝 S42에 있어서, 라이선스 관리 유닛[1104(3)]은, 라이선스 기억 유닛[1103(3)]으로부터, 과거에 인스톨한 유상 소프트웨어의 이력 정보를 판독한다. 라이선스 관리 유닛[1104(3)]은, 제공된 유상 소프트웨어에 포함되어 있는 유니크 번호 ID와, 라이선스 기억 유닛[1103(3)]으로부터 판독한 이력 정보를 비교한다(도면에서는, 'SW-ID 이력 일치?'라고 기재). 비교의 결과, 일치하고 있으면, 라이선스 관리 유닛[1104(3)]은, 다음으로 스텝 S45를 실행하고, 불일치하면, 스텝 S43을 실행한다.
예를 들어, 유상 소프트웨어는, 도 23에 도시한 구성으로 되고, 속성 정보부 ATB에, 그 유상 소프트웨어를 특정하는 유니크 번호 ID가 저장되어 있다. 라이선스 관리 유닛[1104(3)]은, 이 속성 정보부 ATB에 저장되어 있는 유니크 번호 ID를, 이력 정보와 비교함으로써, 과거에 인스톨한 유상 소프트웨어를, 다시, 인스톨(재인스톨)할지 여부를 판정할 수 있다.
스텝 S43에 있어서, 라이선스 관리 유닛[1104(3)]은, 라이선스 기억 유닛[1103(3)]으로부터 라이선스 정보를 판독한다. 판독된 라이선스 정보에 의해 나타내고 있는 유상 소프트웨어 인스톨 가능 수가, 규정 수 1 이상인지 여부를, 스텝 S44에 있어서, 라이선스 관리 유닛[1104(3)]이 판정한다. 유상 소프트웨어 인스톨 가능 수가, 규정값 1 미만이라고 스텝 S44에 있어서 판정되면, 라이선스 관리 유닛[1104(3)]은, 다음으로 스텝 S40-F를 실행하고, 유상 소프트웨어 인스톨 가능 수가, 규정값 1 이상이라고 판정되면, 라이선스 관리 유닛[1104(3)]은, 다음으로 스텝 S45를 실행한다.
스텝 S40-F에 있어서, 라이선스 관리 유닛[1104(3)]은, 인스톨에 실패하였다는 취지를, 유저에게 통지한다. 이에 의해, 재기입 제한이 없고(재기입 프리), 재인스톨인 경우를 제외하고, 유상 소프트웨어 인스톨 가능 수가 규정 수 미만인 경우, 유상 소프트웨어의 인스톨이 금지되게 된다.
스텝 S45에 있어서, 라이선스 관리 유닛[1104(3)]은, 플래시 라이터(1105)로부터 제공되어 있는 유상 소프트웨어의 소프트웨어 부분 SB를 읽어들인다. 읽어들인 소프트웨어 부분 SB를, 라이선스 관리 유닛[1104(3)]은, 스텝 S46에 있어서, 소프트웨어 기억 유닛(1102)으로 기입한다(저장한다).
다음으로, 스텝 S47에 있어서, 라이선스 관리 유닛[1104(3)]은, 스텝 S43에서 판독한 라이선스 정보에 의해 나타내고 있는 유상 소프트웨어 인스톨 가능 수를, 규정 수 (1)만큼 감산하고, 감산에 의해 얻은 유상 소프트웨어 인스톨 가능 수를 나타내는 라이선스 정보를 생성한다. 또한, 스텝 S48에 있어서, 라이선스 관리 유닛[1104(3)]은, 스텝 S46에서, 소프트웨어 기억 유닛(1102)에 기입한 소프트웨어 부분 SB에 대응하는 속성 정보부 ATB에 저장되어 있는 유니크 번호 ID를, 이력 정보로서 라이선스 기억 유닛[1103(3)]에 기록한다.
또한, 스텝 S49에 있어서, 라이선스 관리 유닛[1104(3)]은, 스텝 S47에서 생성한 라이선스 정보를, 라이선스 기억 유닛[1103(3)]으로 기입한다(저장한다).
또한, 라이선스 관리 유닛[1104(3)]이, 스텝 S42의 다음에, 스텝 S45 내지 S49를 실시하는 경우, 스텝 S43을 실시하지 않았기 때문에, 라이선스 관리 유닛[1104(3)]은, 라이선스 기억 유닛[1103(3)]으로부터 라이선스 정보를 판독하지 않았다. 그로 인해, 이 경우에는, 스텝 S47에서의 유상 소프트웨어 인스톨 가능 수의 감산은 행해지지 않는다. 또한, 스텝 S49에서의 라이선스 기억 유닛[1103(3)]에 대한 라이선스 정보의 기입도 행해지지 않는다.
마지막으로, 스텝 S40-C에 있어서, 라이선스 관리 유닛[1104(3)]은, 유상 소프트웨어의 인스톨이 성공하였다는 취지를 유저에게 통지한다.
상기한 스텝이, 유상 소프트웨어를 인스톨할 때마다 실시된다.
이 실시 형태 3에 있어서는, 재기입 제한이 설정되어 있어도, 즉 양산용 마이크로프로세서이더라도, 실시 형태 1과 마찬가지로, 라이선스 정보에 의해 나타내고 있는 유상 소프트웨어 인스톨 가능 수까지, 유상 소프트웨어를, 소프트웨어 기억 유닛(1102)에 기입하는 것이 가능해진다. 즉, 양산용 마이크로프로세이더라도, 미리 지불한 라이선스 요금에 대응한 분만큼, 유상 소프트웨어를 인스톨하는 것이 가능해진다.
또한, 이 실시 형태 3에 있어서는, 재기입 제한이 없는 경우(재기입 프리), 즉 개발용 마이크로프로세서에 대해서는, 새로운 유상 소프트웨어를 인스톨할 때에는, 실시 형태 1과 마찬가지로, 라이선스 정보에 의해 나타내고 있는 유상 소프트웨어 인스톨 가능 수까지, 유상 소프트웨어를, 소프트웨어 기억 유닛(1102)에 기입하는 것이 가능해진다. 또한, 개발용 마이크로프로세서에 대해서는, 한번, 유상 소프트웨어를 인스톨하면, 인스톨한 이력(유니크 번호 ID)이 라이선스 기억 유닛(1103)에 저장된다. 언인스톨하여도, 인스톨한 이력이, 라이선스 기억 유닛[1103(3)]에 남아 있기 때문에, 동일한 유상 소프트웨어를, 재인스톨하는 경우, 유상 소프트웨어 인스톨 가능 수는, 감산되지 않는다. 즉, 갱신되지 않고, 유지된다. 달리 말하자면, 유상 소프트웨어 인스톨 가능 수를 저감시키지 않고, 유상 소프트웨어를, 소프트웨어 기억 유닛(1103)으로, 다시 기입하는 것이 가능하게 되어, 실행 유닛(1101)에 의해 실행하는 것이 가능해진다.
이러한 점은, 견해를 달리하면, 유상 소프트웨어 인스톨 가능 수가, 규정 수 (1) 미만이더라도, 유상 소프트웨어의 재인스톨이 가능해진다. 그로 인해, 개발 단계에 있어서, 개발용 마이크로프로세서를 사용하는 경우에는, 유상 소프트웨어 인스톨 가능 수를 고려하지 않고, 유상 소프트웨어를, 임의로 언인스톨하고, 그 후, 동일한 소프트웨어를, 다시 인스톨(재인스톨)하는 것이 가능해진다.
마이크로프로세서(1100)를 예로서 설명하였지만, 이것으로 한정되는 것은 아니다. 마이크로프로세서(1100) 대신에 퍼스널 컴퓨터 혹은 스마트폰과 같은 휴대 단말기를 사용해도 된다. 또한, 플래시 라이터(1105) 대신에 광디스크 재생 장치 혹은 통신 회선을 통해 유상 소프트웨어를 제공하는 소프트웨어 기억 장치를 사용해도 된다. 또한, 소프트웨어 기억 유닛(1102)은, 하드디스크 혹은 메모리 카드를 사용하게 해도 된다. 이와 같이, 마이크로프로세서, 플래시 라이터 및 소프트웨어 기억 유닛을 변경하여도, 마찬가지의 효과가 얻어지는 것이다.
<변형예>
유상 소프트웨어에, 문제, 예를 들어 버그가 있는 경우, 소프트웨어 배신원이, 버그의 대책을 도모한 유상 소프트웨어(대책 완료 유상 소프트웨어)를 제공하는 경우가 있다. 이 경우, 이미 인스톨하고 있는 유상 소프트웨어와, 대책 완료 유상 소프트웨어는, 동일한 유니크 번호 ID로 된다.
유니크 번호 ID가 동일하기 때문에, 재기입 제한이 설정되지 않은(재기입 프리) 개발용 마이크로프로세서에 있어서는, 유상 소프트웨어 인스톨 가능 수에 영향받지 않고, 유저는, 대책 완료 유상 소프트웨어를 재인스톨하는 것이 가능하다.
이에 반하여, 재기입 제한 있음으로 되어 있는 양산용 마이크로프로세서에 있어서는, 유상 소프트웨어 인스톨 가능 수가, 규정 수 이상이 아닌 한, 대책 완료 유상 소프트웨어를 인스톨하는 것이 곤란해진다.
이 변형예에 있어서는, 예를 들어 도 23에 도시한 속성 정보부 ATB에, 소프트웨어부 SB에 저장되어 있는 유상 소프트웨어는, 소프트웨어의 버그를 대책하는 대책 완료 유상 소프트웨어임을 나타내는 정보(코드)가 저장된다. 또한, 도 9에 도시한 스텝 S41에 있어서, 라이선스 관리 유닛[1104(3)]은, 재기입 제한 있음으로 판정한 다음, 속성 정보부 ATB에, 대책 완료 유상 소프트웨어임을 나타내는 정보가 저장되어 있는지 여부를 판정한다. 대책 완료 유상 소프트웨어임을 나타내는 정보가, 저장되어 있다고 판정된 경우, 라이선스 관리 유닛[1104(3)]은, 다음으로 스텝 S42를 실행하도록 한다. 이에 의해, 양산용 마이크로프로세서이더라도, 대책 완료 유상 소프트웨어에 대해서는, 개발용 마이크로프로세서와 마찬가지로, 유상 소프트웨어 인스톨 가능 수를 줄이지 않고, 대책 완료 유상 소프트웨어를 재인스톨하는 것이 가능해진다. 견해를 달리하면, 유상 소프트웨어 인스톨 가능 수가, 규정 수 미만으로 되어 있어도, 양산용 마이크로프로세서 및 개발용 마이크로프로세서의 양쪽이, 대책 완료 유상 소프트웨어를, 재인스톨하는 것이 가능해진다.
라이선스 관리 유닛(1104)은, 속성 정보부 ATB에, 대책 완료 유상 소프트웨어임을 나타내는 정보가, 저장되어 있다고 판정된 경우, 상기한 재기입 제한 정보를, 강제적으로, 재기입 제한 프리를 나타내도록, 변경하도록 해도 된다.
이 변형예에 의하면, 유상 소프트웨어 인스톨 가능 수에 의존하지 않고, 대책 완료 유상 소프트웨어를 인스톨하는 것이 가능해진다. 즉, 유저에게 부담을 주지 않고, 유상 소프트웨어를 업데이트하는 것이 가능해진다.
(실시 형태 4)
실시 형태 3에 있어서, 양산용 마이크로프로세서와 개발용 마이크로프로세서를 설명하였다. 실시 형태 3에서 설명한 바와 같이, 개발용 마이크로프로세서는, 양산용 마이크로프로세서에 비해, 개발용 기능이 부가되어 있는 경우가 많다. 그로 인해, 라이선스 요금을 제외한 하드웨어 가격에 있어서, 개발용 마이크로프로세서의 쪽이, 양산용 마이크로프로세서에 비해 고가가 된다. 견해를 달리하면, 개발용 기능을 삭감함으로써, 양산용 마이크로프로세서의 하드웨어 가격은, 낮아지게 되어 있다.
개발용 마이크로프로세서는, 양산용 마이크로프로세서에 비하면 고가가 되기 때문에, 개발용 마이크로프로세서를 양산 단계에서 사용하는 것은 생각하기 어렵지만, 사용하는 것도 가능하다. 개발용 마이크로프로세서를 양산 단계에서 사용한 경우, 유상 소프트웨어를 허락 없이, 카피하는 것이 가능하다. 카피한 경우에 발생하는 피해를 저감시키기 위해서, 이 실시 형태 4에 있어서는, 유상 소프트웨어의 기동 횟수에 제한이 설정된다.
유상 소프트웨어의 기동 횟수를 제한할지, 기동 횟수를 자유(프리)로 할지를 정하는 방법은, 실시 형태 3에 있어서 설명한 방법 (1) 내지 (6) 중 어느 것을 이용한다. 즉, 실시 형태 3에서 설명한 재기입 제한 정보가, 기동 횟수 제한 정보로서 이용된다. 이와 같이 함으로써, 마이크로프로세서를, 판매자(제조자)가 제공한 다음에는, 기동 횟수 제한 정보를 변경하는 것이 곤란하게 되어, 기동 횟수 제한을 갖는 마이크로프로세서 또는 기동 횟수 프리의 마이크로프로세서로서 제공되게 된다.
도 10은, 실시 형태 4에 따른 마이크로프로세서(1100)의 동작을 나타내는 흐름도이다. 실시 형태 4에 따른 마이크로프로세서(1100)의 구성은, 도 2에 도시한 마이크로프로세서의 구성에, 유상 소프트웨어의 기동 횟수를 기억하는 기동 횟수 기억 유닛(도시생략)과, 유상 소프트웨어의 실행 완료를 나타내는 실행 완료 플래그 flag(비트)와, 유상 소프트웨어의 실행 횟수를 설정하는 실행 횟수 유닛이 추가된다. 여기서, 기동 횟수 기억 유닛은, 리셋되어도 값을 유지하도록 구성되어 있으며, 실행 완료 플래그 flag는, 리셋되면, 리셋의 해제 시에, 미실행(false)으로 설정된다. 또한, 실행 횟수 유닛에는, 미리 기동을 허가하는 횟수가 설정된다. 예를 들어, 판매자(제조자)가, 소정의 실행 횟수 n을, 실행 횟수 유닛으로 설정하여, 유저에게 제공한다.
도 10에서는, 마이크로프로세서(1100)는, MCU로서 도시되어 있다. 스텝 S50에 있어서, 예를 들어 리셋(reset)이 해제됨으로써, 마이크로프로세서 MCU가 기동한다. 이때, 실행 완료 플래그 Flag는, 미실행(false)으로 설정되어 있다.
스텝 S51에 있어서, 마이크로프로세서 MCU 내의 실행 유닛(1101)은, 마이크로프로세서 MCU를 구비한 전자 장치가 소정의 기능을 달성하도록, 소정의 소프트웨어를 실행한다. 이 소정의 소프트웨어가, 유상 소프트웨어(SW) 혹은 유상 소프트웨어(SW)를 호출하는 소프트웨어인 것으로 한다. 도 10은, 상기한 소정의 소프트웨어가, 유상 소프트웨어(SW)를 호출하는 경우를 나타내고 있다. 도 10의 스텝 S51에는, 유상 소프트웨어(SW)를 호출하는 명령으로서, 명령(jump, call, etc)이 예시되어 있다.
라이선스 관리 유닛(1104)은, 스텝 S52에 있어서, 마이크로프로세서 MCU에 의해 실행되는 소프트웨어가, 유상 소프트웨어(기동에 횟수의 제한을 설정한 소프트웨어)인지 여부를 판정한다. 이것은, 예를 들어 소프트웨어 기억 유닛(1102)의 특정한 영역에서의 소프트웨어가 판독된 경우, 라이선스 관리 유닛(1102)은, 유상 소프트웨어가 실행되는 것으로서 판정한다. 스텝 S52에 있어서, 유상 소프트웨어가 아니라고 판정된 경우(아니오), 라이선스 관리 유닛(1104)은, 스텝 S56을 실행하고, 유상 소프트웨어라고 판정된 경우(예), 스텝 S53을 실행한다. 도 10에서는, 스텝 S52는, 「기동 횟수 제한 있음 SW인가」라고 기재되어 있다.
스텝 S53에 있어서, 라이선스 관리 유닛(1104)은, 실행 완료 플래그 flag가, 실행 완료(ture)인지 여부를 판정한다. 즉, 스텝 S53에 있어서, 유상 소프트웨어가, 이미 실행 완료인지 여부를 판정하고 있다. 이미 실행 완료의 경우(예), 라이선스 관리 유닛(1104)은, 다음으로 스텝 S56을 실행하고, 실행 완료가 아닌 경우(아니오), 스텝 S54를 실행한다.
스텝 S54에 있어서, 라이선스 관리 유닛(1104)은, 기동 횟수 기억 유닛에 저장되어 있는 기동 횟수가, 실행 횟수 유닛에 저장되어 있는 실행 횟수 n을 초과하였는지 여부를 판정한다. 여기서는, 실행 횟수 유닛에는, 미리 제한하는 실행 횟수로서, n이 설정되어 있는 것으로 한다. 기동 횟수 기억 유닛에 저장되어 있는 기동 횟수가, 실행 횟수 n을 초과한 경우(아니오), 라이선스 관리 유닛(1104)은, 다음으로 스텝 S57을 실행하고, 기동 횟수가, 실행 횟수 n을 초과하지 않은 경우(예), 다음으로 스텝 S55를 실행한다.
스텝 S55에 있어서, 라이선스 관리 유닛(1104)은, 기동 횟수를 증가시킨다. 예를 들어, 1 인크리먼트하고, 기동 횟수 기억 유닛에 저장한다. 예를 들어, 기동 횟수 기억 유닛에 저장되어 있는 기동 횟수가 1로부터 2로 갱신된다. 또한, 스텝 S55에 있어서, 실행 완료 플래그 flag를 실행 완료(true)로 설정한다. 그 후, 스텝 S56에 있어서, 라이선스 관리 유닛(1104)은, 마이크로프로세서 MCU 내의 실행 유닛(1101)이, 스텝 S51에 있어서 호출한 유상 소프트웨어를 실행하는 것을 허가한다. 그 후, 다시, 스텝 S51로 되돌아가서, 유상 소프트웨어가 호출된 경우, 스텝 S52 내지 S53을 실행한다. 이 경우, 처음(1회째)에, 유상 소프트웨어를 실행했을 때, 스텝 S55에 있어서, 실행 완료 플래그 flag가, 미실행(false)으로부터 실행 완료(true)로 변경되었기 때문에, 라이선스 관리 유닛(1104)은, 스텝 S53의 다음, 스텝 S56을 실행한다. 그 결과, 스텝 S50에 있어서, 마이크로프로세서 MUC를 기동한 후에는 동일한 유상 소프트웨어를 반복하고, 기동하여도, 기동 횟수 기억 유닛에 저장되어 있는 기동 횟수는 증가하지 않아, 스텝 S57은 실행되지 않는다.
그 후, 리셋이 행해지고, 그 리셋이 해제됨으로써, 마이크로프로세서 MCU가, 다시, 스텝 S50을 실행하면, 스텝 S50에 있어서, 실행 완료 플래그 flag는, 미실행(false)으로 된다. 그로 인해, 스텝 S55에 있어서, 라이선스 관리 유닛(1104)은, 기동 횟수 기억 유닛에 저장되어 있는 기동 횟수를 인크리먼트한다. 즉, 기동 횟수 기억 유닛에 저장되어 있는 기동 횟수가, 2로부터 3으로 갱신된다. 이후, 스텝 S51, S52, S53 및 S56이 실행된다. 그 결과, 이 경우에도, 유상 소프트웨어가, 마이크로프로세서 MCU에 있어서, 실행되게 된다.
또한, 리셋이 행해지고, 그 리셋이 해제되면, 마이크로프로세서 MCU가, 다시, 스텝 S50을 실행한다. 스텝 S50에 있어서, 실행 완료 플래그 flag는, 미실행(false)으로 되고, 스텝 S54에 있어서, 기동 횟수 기억 유닛에 저장되어 있는 기동 횟수와, 실행 횟수 n과의 비교가 행해진다. 여기서, 예를 들어 실행 횟수 n이, 2인 경우, 전회, 스텝 S50에 있어서, 마이크로프로세서 MCU를 기동했을 때, 기동 횟수 기억 유닛에는, 기동 횟수로서 3이 저장되어 있다. 그로 인해, 스텝 S54에 있어서, 기동 횟수 (3)이, 실행 횟수 n(2)를 초과하였기 때문에, 라이선스 관리 유닛(1104)은, 스텝 S57을 실행하게 된다.
스텝 S57에 있어서, 라이선스 관리 유닛(1104)은, 실행 유닛(1101)이, 소프트웨어 기억 유닛(1102)으로부터의 소프트웨어를 실행하는 것을 금지한다. 이에 의해, 마이크로프로세서 MCU가, 동일한 유상 소프트웨어를, 실행 횟수 n을 초과해 실행하는 것이 금지되고, 당해 유상 소프트웨어는 기동하지 않게 된다. 또한, 스텝 S57에 있어서, 라이선스 관리 유닛(1104)은, 예를 들어 에러가 발생한 것을, 실행 유닛(1101)에 통지한다.
이와 같이 하여, 기동 횟수에 제한이 있는 소프트웨어, 예를 들어 유상 소프트웨어에 대해서는, 스텝 S50에 있어서 기동할 때마다, 기동 횟수 기억 유닛에 저장되어 있는 기동 횟수가, 인크리먼트되고, 기동 횟수가, 미리 설정한 실행 횟수를 초과하면, 그 소프트웨어의 실행이 금지된다. 달리 말하자면, 리셋을 하지 않고, 전자 장치 혹은 마이크로프로세서 MCU를 계속적으로 동작시키고 있을 때에는, 기동 횟수에 제한이 있는 소프트웨어는, 계속해서 실행된다. 이에 반하여, 전자 장치 혹은 마이크로프로세서 MCU에 대해, 리셋 등의 기동이 걸리면, 기동 횟수가 카운트되고, 소정의 횟수(실행 횟수)에 도달하면, 전자 장치 혹은 마이크로프로세서가 소프트웨어를 기동하는 것이 정지되게 된다.
이 실시 형태 4에 따른 마이크로프로세서는, 개발용 마이크로프로세서로서 사용된다. 이에 의해, 개발용 마이크로프로세서를 양산용 마이크로프로세서로서 사용하도록 하는 경우, 허락되지 않은 소프트웨어(카피 등에 의해 복제된 유상 소프트웨어)가, 실행 횟수를 초과하여, 기동되는 것을 방지하는 것이 가능하게 되어, 피해의 저감을 도모하는 것이 가능해진다.
마이크로프로세서 MCU(1100)를 예로서 설명하였지만, 이것으로 한정되는 것은 아니다. 마이크로프로세서 MCU 대신에, 퍼스널 컴퓨터 혹은 스마트폰과 같은 휴대 단말기를 사용해도 된다. 또한, 플래시 라이터(1105) 대신에, 광디스크 재생 장치 혹은 통신 회선을 통해 유상 소프트웨어를 제공하는 소프트웨어 기억 장치를 사용해도 된다. 또한, 소프트웨어 기억 유닛(1102)은, 하드디스크 혹은 메모리 카드를 사용하게 해도 된다. 이와 같이, 마이크로프로세서, 플래시 라이터 및 소프트웨어 기억 유닛을 변경하여도, 마찬가지의 효과가 얻어지는 것이다.
<변형예>
실시 형태 3과 실시 형태 4를 조합한다. 도 11은, 실시 형태 3과 실시 형태 4를 조합했을 때의 상태를 나타내는 설명도이다.
상기한 재기입 제어 정보에 의해, 개발용 마이크로프로세서는, 실시 형태 3에서 설명한 재기입 프리의 상태로 되고, 실시 형태 4에서 설명한 기동 횟수 제한을 갖는 상태로 설정된다. 이에 반하여, 양산용 마이크로프로세서는, 재기입 제어 정보에 의해, 실시 형태 3에서 설명한 재기입 제한을 갖는 상태로 되고, 실시 형태 4에서 설명한 기동 횟수 프리의 상태로 설정된다. 기동 횟수 제한이, 개발용 마이크로프로세서에 설정되어 있어도, 재기입 프리로 되어 있기 때문에, 개발 단계이면, 재기입함으로써, 유상 소프트웨어를 재인스톨하는 것이 가능하다. 그로 인해, 유저가, 제품 개발 단계에서, 개발용 프로세서를 사용할 때, 불편함이 생기지 않아, 개발용 마이크로프로세서가, 양산 단계에서 사용되는 것을 방지하는 것이 가능해진다.
(실시 형태 5)
도 12는, 실시 형태 5에 따른 반도체 장치의 구성을 나타내는 블록도이다. 여기서는, 반도체 장치로서, 마이크로프로세서를 예로 하여 설명한다. 도 12에 있어서, 1400은, 마이크로프로세서를 나타내고 있다. 마이크로프로세서(1400)는, 소프트웨어를 실행하는 실행 유닛(1401), 실행 유닛(1401)에 결합되고, 소프트웨어를 저장하는 소프트웨어 기억 유닛(1402) 및 라이선스 관리 유닛(1403)을 구비하고 있다. 실시 형태 1에서 설명한 것과 마찬가지로, 마이크로프로세서는, 상기한 실행 유닛(1401), 소프트웨어 기억 유닛(1402) 및 라이선스 관리 유닛(1403) 이외에, 주변 회로 유닛 등을 구비하고 있지만, 도 12에서도 생략되었다. 또한, 실시 형태 1과 마찬가지로, 각 유닛은, 1개의 반도체 칩에 주지의 반도체 제조 기술에 의해 형성되고, 특별히 제한되지 않지만, 1개의 패키지에 밀봉되어 있다. 판매자(제조자)는, 반도체 칩 또는 반도체 칩을 밀봉한 패키지의 상태에서, 마이크로프로세서를 유저에게 제공한다.
이 실시 형태 5에 있어서, 소프트웨어 기억 유닛(1402)은, 전기적으로 재기입 가능한 불휘발성 메모리(플래시 메모리)에 의해 구성되어 있다. 도 12에 있어서, 1105는, 도 2에서 설명한 플래시 라이터이며, 소프트웨어를 마이크로프로세서(1400)로 제공한다.
실행 유닛(1401)은, 소프트웨어 기억 유닛(1402)으로부터 소프트웨어를 판독하고, 실행한다. 소프트웨어 기억 유닛(1402)은, 라이선스 관리 유닛(1403)을 통해 플래시 라이터(1105)로부터 소프트웨어가 제공되고, 기입된다(저장된다).
라이선스 관리 유닛(1403)은, 소프트웨어 기억 유닛(1402)이 갖는 영역(어드레스 공간)을, 복수의 영역으로서 관리한다. 여기서는, 2개의 영역으로서 관리하는 예를 설명한다. 즉, 소프트웨어 기억 유닛(1402)의 영역을, 유상 소프트웨어가 저장되는 다운로드 영역(이하, 'DL 애플리케이션 영역'이라고도 칭함)과, 그 이외의 영역(이하, '유저 영역'이라고도 칭함)으로 나누어, 관리한다. 도 13은, 소프트웨어 기억 유닛(1402)의 어드레스 공간을 나타내는 설명도이다. 도 13에 있어서, AR은, 소프트웨어 기억 유닛(1402)의 영역(어드레스 공간)을 나타내고 있고, UAR은, 유저 영역을 나타내고 있으며, DRA는, DL 애플리케이션 영역을 나타내고 있다.
특정한 유상 소프트웨어는, DL 애플리케이션 영역 DRA에만 인스톨하는 것이 가능하게 되어, 유저 영역 UAR로의 인스톨은 허가되지 않는다. 또한, 유저가 별도 구입한 소프트웨어, 무상 소프트웨어 및/또는 유저가 작성한 소프트웨어는, DL 애플리케이션 영역 및 유저 영역의 어느 쪽에도 인스톨 가능하게 된다. 달리 말하자면, 특정한 유상 소프트웨어는, DL 애플리케이션 영역 DRA에만 저장하는 것이 허가되고, 유저 영역 UAR로의 저장은 허가되지 않는다.
소프트웨어 기억 유닛(1402)의 어느 영역을, DL 애플리케이션 영역 DAR로 하고, 어느 영역을, 유저 영역 UAR로 할지는, 라이선스 관리 유닛(1403)이 기억하고 있다. 즉, 라이선스 관리 유닛(1403)에 기억되어 있는 설정 정보에 따라 DL 애플리케이션 영역 DAR과 유저 영역 UAR이 정해진다. 라이선스 관리 유닛(1403)에 대한 DL 애플리케이션 영역 및 유저 영역의 설정은, 마이크로프로세서(1400)를 판매자(제조자)가, 유저에게 제공할 때 행한다. 판매자(제조자)가 제공한 후에는 DL 애플리케이션 영역 및 유저 영역의 설정을 변경하는 것이 곤란해지도록 한다. 예를 들어, 실시 형태 1에서 설명한 방법 (1) 내지 (6) 중 어느 하나의 방법으로, 설정하는 것이 가능하다.
DL 애플리케이션 영역 DAR 및 유저 영역 UAR을 정하는 설정 정보는, 라이선스 정보라 간주할 수 있다. 그로 인해, 도 12에 도시한 라이선스 관리 유닛(1403)이, 라이선스 정보를 저장한 라이선스 기억 유닛을 구비하고 있다고 간주할 수 있다.
또한, 방법 (2)를 채용하는 경우, 상기한 특정한 코드는, 유저에게 제공되지 않지만, 판매자(제조자)는 유지하고 있다. 그로 인해, 예를 들어 DL 애플리케이션 영역 DAR과 유저 영역 UAR의 기억 용량 비율을 변경하는 것을, 유저가 희망한 경우, 혹은 유저에게 제공한 다음 반품되고, 반품된 마이크로프로세서를 다른 유저에게 제공하는 경우, 판매자(제조자)가, 특정한 코드를 사용하여, 기억 용량 비율을 변경하고, 제공하는 것이 가능하다.
도 14는, 판매자(제조자)가, 유저에게 제공하는 마이크로프로세서(1400)의 기억 용량 비율을 나타낸 설명도이다. 도 14에 있어서, 1400-1 내지 1400-4의 각각은, 마이크로프로세서를 나타내고 있다. 마이크로프로세서(1400-1 내지 1400-4)의 각각의 구성은, 도 12에 도시한 마이크로프로세서(1400)와 동일한 구성을 갖고 있으며, 소프트웨어 기억 유닛(1402)에 있어서의 기억 용량 비율만이 상이하다.
즉, 마이크로프로세서(1400-1)에 있어서는, 소프트웨어 기억 유닛(1402)에 있어서의 영역 AR이, DL 애플리케이션 영역 DAR로서 1M 바이트(1MB)에 할당되고, 유저 영역 UAR로서 7M 바이트에 할당되어 있다. 마이크로프로세서(1400-2)에 있어서는, 소프트웨어 기억 유닛(1402)에 있어서의 영역 AR이, DL 애플리케이션 영역 DAR로서 2M 바이트(2MB)에 할당되고, 유저 영역 UAR로서 6M 바이트에 할당되어 있다. 또한, 마이크로프로세서(1400-3)에 있어서는, 소프트웨어 기억 유닛(1402)에 있어서의 영역 AR이, DL 애플리케이션 영역 DAR로서 4M 바이트(4MB)에 할당되고, 유저 영역 UAR로서 4M 바이트에 할당되어 있다. 마찬가지로, 마이크로프로세서(1400-4)에 있어서는, 소프트웨어 기억 유닛(1402)에 있어서의 영역 AR의 모든 영역이, DL 애플리케이션 영역 DAR(8M 바이트)에 할당되어 있다.
이와 같이, 할당하는 영역의 용량 비율을 변경함으로써, 동일한 구성을 갖은 마이크로프로세서를 여러 종류 제공하는 것이, 쉽게 가능해진다. 이 경우, DL 애플리케이션 영역 DAR의 용량(기억 용량)이, 클수록 많은 유상 소프트웨어를 기억(저장) 혹은 보다 큰 사이즈의 유상 소프트웨어를 기억하는 것이 가능해진다. 즉, DL 애플리케이션 영역 DAR이 클수록, 높은 라이선스 요금이, 마이크로프로세서(1400)의 가격(하드웨어 가격)에 부가되어, 마이크로프로세서의 가격으로 된다. 그 결과, 도 14에 도시한 바와 같이, 마이크로프로세서(1400-1로부터 1400-4)를 향해, 마이크로프로세서의 판매 가격이 고가로 된다. 이 경우, 유저는, 인스톨하는 유상 소프트웨어의 종류, 사이즈 등을 고려하여, 마이크로프로세서(1400-1 내지 1400-4)로부터, 임의의 마이크로프로세서를 선택하고, 구입하게 된다.
<라이선스 관리 유닛(1402)>
다음으로, 라이선스 관리 유닛(1402)의 동작을, 설명한다. 여기서는, 라이선스 관리 유닛(1402)의 기능이, 실행 유닛(1401)과는 상이한 실행 유닛(도시생략)과, 도시하지 않은 실행 유닛에 의해 실시되는 소프트웨어에 의해 달성하는 경우를 설명한다.
도 15는, 라이선스 관리 유닛(1402)의 동작을 나타내는 흐름도이다. 도 15에 있어서, 스텝 S60에서, 다운로드하는 소프트웨어의 지정과, 소프트웨어의 다운로드가 지시된다. 이에 의해, 플래시 라이터(1105)로부터, 지정된 소프트웨어가, 마이크로프로세서(1400)에 제공된다. 도 15에서는, 스텝 S60은, 다운로드 개시로서 도시되어 있다.
라이선스 관리 유닛(1403)은, 스텝 S61에 있어서, 제공된 소프트웨어가, 특정한 유상 소프트웨어인지 여부를 판정한다. 즉, 다운로드하는 소프트웨어가, DL 애플리케이션 영역 DAR에 저장되는 특정한 유상 소프트웨어(이하, '특정한 DL 애플리케이션'이라고도 칭함)인지를 판정한다. 판정의 결과, 특정한 DL 애플리케이션이 아니라고 판정된 경우(아니오), 라이선스 관리 유닛(1403)은, 스텝 S64를 실행한다. 이 경우, 스텝 S64에 있어서, 라이선스 관리 유닛(1403)은, 제공되어 있는 소프트웨어를, 소프트웨어 기억 유닛(1402) 내의 유저 영역 UAR로 기입한다(저장한다). 유저 영역 UAR에 저장함으로써, 실행 유닛(1401)이, 실행 가능하게 되기 때문에, 스텝 S64에 있어서 다운로드가 개시되게 된다.
이에 반하여, 스텝 S61에 있어서, 라이선스 관리 유닛(1401)이, 특정한 DL 애플리케이션이라고 판정된 경우, 다음으로 스텝 S62가, 라이선스 관리 유닛(1401)에 의해 실행된다. 스텝 S62에 있어서, 라이선스 관리 유닛(1403)은, 플래시 라이터(1105)로부터 제공된 특정한 DL 애플리케이션이, DL 애플리케이션 영역 DAR에 다운로드 가능한지를 판정한다. 라이선스 관리 유닛(1403)은, 예를 들어 DL 애플리케이션 영역 DAR에, 이미 별도의 DL 애플리케이션이 저장되어 있으며, 제공된 특정한 DL 애플리케이션을 저장하는 영역의 기억 용량이 부족한 경우에는, 다운로드 불가능하다고 판정한다(아니오). 이 경우, 라이선스 관리 유닛(1403)은, 다음으로 스텝 S63을 실시한다. 이에 반하여, 다운로드 가능하다고 판정한 경우(예), 라이선스 관리 유닛(1403)은, 스텝 S64를 실시한다.
스텝 S62에 이어서, 스텝 S64를 실시하는 경우, 라이선스 관리 유닛(1403)은, 유저 영역 UAR이 아니라, DL 애플리케이션 영역 DAR로 제공된 소프트웨어(특정한 DL 애플리케이션)를 기입한다(저장한다). 즉, 스텝 S64에 있어서, DL 애플리케이션 영역 DAR로, 특정한 DL 애플리케이션의 다운로드가 개시한다.
한편, 스텝 S62에 있어서, 다운로드 불가능하다고 판정된 경우(아니오), 스텝 S63에 있어서, 라이선스 관리 유닛(1403)은, 다운로드 실패로서, 소프트웨어 기억 유닛(1402)에 대한 소프트웨어의 기입을 실시하지 않는다. 또한, 에러가 발생한 것을, 실행 유닛(1401)에게 통지한다.
이와 같이, 라이선스 관리 유닛(1403)에 의해, 다운로드하는 소프트웨어의 판정과 소프트웨어 기억 유닛(1402)에 대한 기입을, 다운로드하는 소프트웨어마다 실시함으로써, DL 애플리케이션 영역 DAR에는, 특정한 유상 소프트웨어(DL 애플리케이션)가 저장되고, 실행 유닛(1401)에 의해 실행 가능하게 된다.
<하드웨어에 의한 제어>
도 15에서는, 소프트웨어에 의해, 소프트웨어 기억 유닛(1402)을 제어하는 예를 설명하였지만, 소프트웨어 기억 유닛(1402)의 제어는, 하드웨어로 실현해도 된다. 즉, 논리 회로 등의 하드웨어를 사용해서, 소프트웨어 기억 유닛(1402)을 제어하도록 해도 된다. 도 16은, 소프트웨어 기억 유닛(1402)을 하드웨어에 의해 제어하는 경우의 구성을 나타내는 블록도이다.
도 16에는, 소프트웨어 기억 유닛(1402)에 관련된 부분의 구성만이 도시되어 있다. 도 16에 있어서, 1500은, 플래시 메모리를 나타내고 있다. 도 16에 있어서는, 플래시 메모리(1500)가, 소프트웨어 기억 유닛(1402)에 있어서, 소프트웨어를 저장하는 부분에 해당한다. 플래시 메모리(1500)는, 어드레스 단자, 라이트 단자, 리드 단자 및 데이터 단자를 구비하고 있다. 도 16에는, 이들 단자 중, 어드레스 단자 ADT와 라이트 단자 WT만이 도시되어 있으며, 리드 단자 및 데이터 단자는 생략되었다. 플래시 메모리(1500)에 있어서는, 어드레스 단자 ADT에 어드레스 신호가 공급되고, 라이트 단자 WT에 하이 레벨의 라이트 신호가 공급됨으로써, 어드레스 단자 ADT에 공급되어 있는 어드레스 신호에 의해 지정되어 있는 영역에, 데이터 단자로부터의 데이터가, 전기적으로 기입되고, 저장된다.
라이선스 관리 유닛(1402)은, DL 애플리케이션 영역 DAR로서 할당된 어드레스의 범위를 지정하는 DL 영역 지정 신호 DLD와, 다운로드하는 소프트웨어가, 특정한 DL 애플리케이션인지 여부를 나타내는 DL 애플리케이션 검출 신호 DLT를 형성한다. DL 영역 지정 신호 DLD는, 앞에서 설명한 방법 (1) 내지 (6)에 의해 설정된 정보에 기초하여 형성된다. 또한, 이 DL 영역 지정 신호 DLD에 의해, 지정되는 영역이, 도 14에 도시한 바와 같이, 마이크로프로세서(1400-1 내지 1400-4)에 따라 상이하다. DL 애플리케이션 검출 신호 DLT는, 예를 들어 도 23에 도시한 속성 정보부 ATB에 저장되어 있는 정보에 의해, 특정한 DL 애플리케이션임이 나타나 있는 경우, 라이선스 관리 유닛(1403)이 형성한다. 라이선스 관리 유닛(1402)이 형성하는 DL 영역 지정 신호 DLD는, 마이크로프로세서의 가격에 대응하여 바뀌기 때문에, 라이선스 정보라 간주할 수 있다.
도 16의 예에서는, 어드레스 신호 AD 및 라이트 신호 WE는, 실행 유닛(1401)이 형성한다. 즉, 플래시 메모리(1500)에 대해, 소프트웨어를 기입하는 영역을 나타내는 어드레스 신호 AD는, 실행 유닛(1401)으로부터 출력되고, 기입을 지시하는 라이트 신호 WE도, 실행 유닛(1401)으로부터 출력된다. 물론, 어드레스 신호 AD 및 라이트 신호 WE도, 라이선스 관리 유닛(1403)으로부터 출력되도록 해도 된다.
도 16에 있어서, 1501은, 비교 회로이다. 비교 회로(1501)는, 어드레스 신호 AD와 DL 지정 영역 신호 DLD를 비교한다. DL 지정 영역 신호 DLD에 의해 나타낸 어드레스의 범위 내를, 어드레스 신호 AD가 나타내고 있을 때, 비교 회로(1501)는, 하이 레벨을 출력한다. 한편, DL 지정 영역 신호 DLD에 의해 나타낸 어드레스의 범위 밖을, 어드레스 신호 AD가 나타내고 있을 때, 비교 회로(1501)는, 로우 레벨을 출력한다. 라이선스 관리 유닛(1403)은, 플래시 라이터(1105)로부터 특정한 DL 애플리케이션이 제공되었을 때, DL 애플리케이션 검출 신호 DLT를 하이 레벨로 하고, 특정한 DL 애플리케이션이 아닌 경우에는, DL 애플리케이션 검출 신호 DLT를 로우 레벨로 한다. 또한, 라이트 신호 WE는, 기입을 행하는 경우, 하이 레벨로 된다.
비교 회로(1501)의 출력은, 위상 반전해서 AND 회로(1502)의 한쪽 단자에 공급되고, AND 회로(1502)의 다른 쪽 단자에는, DL 애플리케이션 검출 신호 DLT가 공급된다. AND 회로(1502)의 출력은, 위상 반전되어, AND 회로(1503)의 한쪽 입력에 공급되고, AND 회로(1503)의 다른 쪽 입력에는, 라이트 신호 WE가 공급된다. 여기서, AND 회로(1502)의 출력은, 에러 신호로서 실행 유닛(1401)에 공급된다. 또한, 플래시 메모리(1500)의 어드레스 단자 ADT에는, 어드레스 신호 AD가 공급되고, 라이트 단자 WT에는, AND 회로(1503)의 출력이 공급된다.
특정한 DL 애플리케이션이, 플래시 라이터(1105)로부터 제공되면, 그 DL 애플리케이션을 기입하는 어드레스가, 어드레스 신호 AD로서 공급된다. 이때, 특정한 DL 애플리케이션이기 때문에, 라이선스 관리 유닛(1403)은, 하이 레벨인 DL 애플리케이션 검출 신호 DLT를 출력한다. 이때의 어드레스 신호 AD가, DL 지정 영역 신호 DLD에 의해 나타낸 어드레스의 범위 내이면, 비교 회로(1501)의 출력 신호는 하이 레벨로 된다. AND 회로(1502)에는, 비교 회로(1501)의 출력 신호가 위상 반전하여, 로우 레벨이 공급되기 때문에, AND 회로(1502)의 출력 신호는 로우 레벨로 된다. 그로 인해, 에러 신호도, 로우 레벨로 된다. 도 16의 예에서는, 에러 신호가 하이 레벨일 때, 에러라고 판정된다. 그로 인해, 이 상태에서는, 실행 유닛(1401)은, 에러로서 인식하지 않는다.
AND 회로(1502)의 출력 신호가 로우 레벨로 됨으로써, AND 회로(1503)에는, 위상 반전된 AND 회로(1502)의 출력 신호인 하이 레벨과, 기입을 지시하는 하이 레벨인 라이트 신호 WE가 공급된다. 이에 의해, AND 회로(1503)는, 하이 레벨인 신호를, 플래시 메모리(1500)의 라이트 단자 WT에 공급한다. 그 결과, 플래시 메모리(1500)에는, 어드레스 단자 ADT에 공급되어 있는 어드레스 신호 AD에 의해 지정되는 영역에, 기입이 행해지게 된다.
이에 반하여, 라이선스 관리 유닛(1403)이, 특정한 DL 애플리케이션임을 나타내는 하이 레벨인 DL 애플리케이션 검출 신호 DLT를 출력하고 있을 때, 어드레스 신호 AD가, DL 지정 영역 신호 DLD에 의해 나타낸 어드레스의 범위 밖을 지정하고 있는 경우에는, AND 회로(1502)의 출력 신호는 하이 레벨로 된다. 즉, 에러 신호가 하이 레벨로 결정되고, 실행 유닛(1401)은, 에러가 발생한 것을 인식한다. 또한, AND 회로(1502)의 출력 신호가 하이 레벨로 됨으로써, AND 회로(1503)의 출력 신호는 로우 레벨로 된다. 그 결과, 플래시 메모리(1500)의 라이트 단자 WT에는 로우 레벨이 공급되고, 기입이 금지된다.
이와 같이 하여, 특정한 DL 애플리케이션을 다운로드할 때, 특정한 DL 애플리케이션의 어드레스가, DL 지정 영역 신호 DLD에 의해 나타낸 어드레스의 범위 내에 있고, 특정한 DL 애플리케이션이라고 판정된 경우에, 특정한 DL 애플리케이션은, 플래시 메모리(1500) 내의 DL 애플리케이션 영역 DAR에 기입되게 된다. 이에 반하여, 특정한 DL 애플리케이션의 어드레스가, DL 지정 영역 신호 DLD에 의해 나타낸 어드레스의 범위 밖을 나타내고 있는 경우에는, 특정한 DL 애플리케이션은, 플래시 메모리(1500)에 기입되지 않고, 에러를 나타내는 에러 신호가 발생한다.
도 17은, 소프트웨어 기억 유닛(1402)을 하드웨어에 의해 제어하는 경우의 다른 구성을 나타내는 블록도이다. 도 16과 마찬가지로, 도 17에는, 상기한 소프트웨어 기억 유닛(1402)에 관련된 부분만이 도시되어 있다. 도 17에 있어서, 1604는, 플래시 메모리를 나타내고 있으며, 1600은, 라이트 버퍼를 나타내고 있다. 도 17에 도시한 예에 있어서도, 소프트웨어 기억 유닛(1402)에 있어서, 소프트웨어를 저장하는 부분이, 플래시 메모리(1604)에 해당한다. 플래시 메모리(1604)는, 기입 속도가 비교적 늦다. 그로 인해, 도 17에서는, 라이트 버퍼(1600)가 설치되어 있다.
라이트 버퍼(1600)는, 예를 들어 스튜디오 테크형 메모리에 의해 구성되고, 플래시 메모리(1600)에 비해 고속으로 동작한다. 라이트 버퍼(1600)는, 어드레스 단자, 밸리드 플래그 단자, 데이터 단자를 구비하고 있다. 도 17에는, 어드레스 단자 및 밸리드 플래그 단자가, ADT 및 V-F로서 도시되어 있으며, 데이터 단자는 생략되었다. 제공된 소프트웨어는, 플래시 메모리(1604)가 아니라, 라이트 버퍼(1600)에 우선 기입된다. 라이트 버퍼(1600)는, 영역에 대응한 밸리드 비트를 구비하고 있으며, 밸리드 비트는, 대응하는 영역에 기입된 데이터가 유효 데이터인지 여부에 의해 설정된다. 예를 들어, 대응하는 영역에 기입된 데이터가 유효 데이터인 경우, 밸리드 비트는 하이 레벨로 설정되고, 무효 데이터인 경우에는, 로우 레벨로 설정된다.
밸리드 비트가 유효 데이터임을 나타내고 있는 경우(하이 레벨), 라이트 버퍼(1600)는, 적절한 타이밍에, 밸리드 비트에 대응하는 영역에 기입되어 있는 데이터를, 플래시 메모리(1604)로 전송하고, 플래시 메모리(1604)로 기입하여, 저장한다. 라이트 버퍼(1600)가, 비교적 고속으로 동작하기 때문에, 기입의 고속화를 도모하는 것이 가능해진다. 또한, 밸리드 비트가 무효 데이터임을 나타내고 있는 경우(로우 레벨), 이 밸리드 비트에 대응하는 영역에 저장되어 있는 데이터는, 플래시 메모리(1604)에 전송되지 않고, 플래시 메모리(1604)에의 기입은 실시되지 않는다.
도 16에 도시한 예와 마찬가지로, 도 17에 도시한 예에 있어서도, 라이선스 관리 유닛(1403)으로부터, DL 영역 지정 신호 DLD 및 DL 애플리케이션 검출 신호 DLT가 출력된다. 또한, 실행 유닛(1401)으로부터 어드레스 신호 AD가 출력된다. 도 17에 있어서, 1601은, 비교 회로이며, 비교 회로(1601)는, 어드레스 신호 AD와 DL 영역 지정 신호 DLD를 비교한다. 비교 회로(1601)는, 어드레스 신호 AD가, DL 영역 지정 신호 DLD에 의해 지정되어 있는 영역 내를 지정하고 있을 때, 출력 신호를 하이 레벨로 하고, DL 영역 지정 신호 DLD에 의해 지정되어 있는 영역 외를 지정하고 있을 때, 출력 신호를 로우 레벨로 한다.
비교 회로(1601)의 출력 신호는 위상 반전되어, AND 회로(1602)의 한쪽 입력에 공급되고, AND 회로(1602)의 다른 쪽 입력에는, DL 애플리케이션 검출 신호 DLT가 공급된다. AND 회로(1602)의 출력 신호는, NAND 회로(1603)의 한쪽 입력에 공급됨과 함께, 에러 신호로서, 실행 유닛(1401)으로 공급된다. NAND 회로(1603)의 다른 쪽 입력에는, 라이트 버퍼(1600)로부터 밸리드 비트의 상태를 나타내는 밸리드 플래그 VFG가 위상 반전되어, 공급되어 있다. 이 NAND 회로(1603)의 출력 신호는, 라이트 버퍼(1600)의 밸리드 플래그 단자 V-F에 공급된다.
플래시 라이터(1105)로부터, 특정한 DL 애플리케이션이 제공되면, 라이선스 관리 유닛(1403)은, DL 애플리케이션 검출 신호 DLT를 하이 레벨로 한다. 이때, 어드레스 신호 AD는, DL 애플리케이션이 저장되는 플래시 메모리(1604)의 영역을 지정하는 어드레스 신호이다. 어드레스 신호 AD에 의해 지정되어 있는 영역이, DL 영역 지정 신호 DLD에 의해 지정되어 있는 범위 내이면, 비교 회로(1601)의 출력 신호가 하이 레벨로 된다. 비교 회로(1601)로부터의 하이 레벨인 출력 신호는, 위상 반전되어, AND 회로(1602)로 공급되기 때문에, AND 회로(1602)의 출력 신호는, 로우 레벨로 된다. 그 결과, 에러 신호는, 에러가 발생하지 않았음을 나타내는 로우 레벨로 되고, 실행 유닛(1401)으로 에러가 발생하지 않았음이 통지된다.
이때, 어드레스 신호 ADT에 의해 지정되어 있는 라이트 버퍼(1600)의 영역에 유효한 데이터가 저장되어 있지 않으면, 라이트 버퍼(1600)는, 로우 레벨의 밸리드 플래그 VFG를 출력한다. 이에 의해, NAND 회로(1603)에는, AND 회로(1602)로부터의 로우 레벨의 출력 신호와, 위상 반전에 의해 형성된 하이 레벨인 밸리드 플래그 VFG가 공급됨으로써, NAND 회로(1603)는, 하이 레벨인 신호를 밸리드 플래그 단자 V-F에 공급한다. 그 결과, 이때의 어드레스 신호 ADT에 의해 지정되어 있는 라이트 버퍼(1600) 내의 영역에, DL 애플리케이션인 소프트웨어가 저장됨과 함께, 어드레스 신호 ADT에 의해 지정되어 있는 영역에 대응하는 밸리드 비트에, 유효 데이터임을 나타내는 하이 레벨이 저장된다. 밸리드 비트가, 하이 레벨로 설정됨으로써, 저장한 DL 애플리케이션은, 적절한 타이밍에, 플래시 메모리(1604)로 전송되고, 저장된다.
이에 반하여, 예를 들어 어드레스 신호 AD에 의해 지정되어 있는 영역이, DL 영역 지정 신호 DLD에 의해 지정되어 있는 영역 외의 경우, 비교 회로(1601)의 출력 신호는 로우 레벨로 된다. 이때, DL 애플리케이션 검출 신호 DLT가 하이 레벨로 되면, AND 회로(1602)의 출력 신호는, 하이 레벨로 된다. 이에 의해, 하이 레벨인 에러 신호가, 실행 유닛(1401)에 공급되고, 실행 유닛(1401)은, 에러가 발생하였음을 인식할 수 있다. NAND 회로(1603)에는, AND 회로(1602)로부터 하이 레벨인 출력 신호와, 위상 반전에 의해 형성된 하이 레벨인 밸리드 플래그 VFG가 공급되기 때문에, NAND 회로(1603)의 출력 신호는, 로우 레벨로 된다. 그 결과, 이때, 어드레스 신호 AD에 의해 지정되어 있는 영역에 대응하는 밸리드 플래그는, 로우 레벨로 설정되게 된다. 밸리드 플래그가 로우 레벨로 설정됨으로써, 이때의 어드레스 신호 AD에 의해 지정된 영역에 저장된 데이터는, 플래시 메모리(1604)로 전송되지 않고, 플래시 메모리(1604)에는 기입되지 않는다.
이와 같이 하여, 특정한 DL 애플리케이션을 다운로드할 때, 특정한 DL 애플리케이션의 어드레스가, DL 지정 영역 신호 DLD에 의해 나타낸 어드레스의 범위 내에 있으며, 특정한 DL 애플리케이션이라고 판정된 경우에, 밸리드 비트가 유효 데이터로서 설정된다. 유효 데이터로서 설정된 영역에 기입된 DL 애플리케이션이, 플래시 메모리(1604)의 DL 애플리케이션 영역 DAR에 기입되게 된다. 라이트 버퍼(1600)를 사용함으로써, 기입의 고속화를 도모하는 것이 가능해진다. 이에 반하여, 특정한 DL 애플리케이션의 어드레스가, DL 지정 영역 신호 DLD에 의해 나타낸 어드레스의 범위 밖을 나타내고 있는 경우에는, 특정한 DL 애플리케이션은, 플래시 메모리(1604)에 기입되지 않고, 에러를 나타내는 에러 신호가 발생한다.
반도체 장치로서 마이크로프로세서(1401)를 예로 하여 설명하였지만, 반도체 장치는, 이것으로 한정되는 것은 아니다.
또한, 마이크로프로세서(1401) 대신에 퍼스널 컴퓨터 혹은 스마트폰과 같은 휴대 단말기를 사용해도 된다. 또한, 플래시 라이터(1105) 대신에 광디스크 재생 장치 혹은 통신 회선을 통해 유상 소프트웨어를 제공하는 소프트웨어 기억 장치를 사용해도 된다. 또한, 소프트웨어 기억 유닛(1402)은, 하드디스크 혹은 메모리 카드를 사용하게 해도 된다. 이와 같이, 마이크로프로세서, 플래시 라이터 및 소프트웨어 기억 유닛을 변경하여도, 마찬가지의 효과가 얻어지는 것이다.
<변형예>
실시 형태 5는, 예를 들어 실시 형태 1 또는 실시 형태 2와 조합해도 된다. 즉, 도 2에 도시한 라이선스 기억 유닛(1103)(도 6에 도시한 라이선스 기억부(1305))을, 실시 형태 5에서 설명한 구성에 추가한다. 이 경우, 라이선스 관리 유닛(1403)에 의해, 라이선스 기억 유닛(1103)에 저장되어 있는 라이선스 정보의 갱신을 실시함과 함께, 라이선스 정보에 의해 나타내고 있는 유상 소프트웨어 인스톨 가능 수의 확인도 실시한다.
그 결과, 인스톨 가능 수와 DL 애플리케이션 영역 DAR의 기억 용량의 양쪽에 의해, 소프트웨어 기억 유닛(1402) 내의 DL 애플리케이션 영역 DAR로의 소프트웨어의 저장이 제어되게 된다. 이 경우, 라이선스 기억 유닛(1303)에 저장되어 있는 라이선스 정보가, 예를 들어 부정으로 변경되었다고 해도, DL 애플리케이션 영역 DAR의 기억 용량이, 제한되어 있기 때문에, 피해의 저감을 도모하는 것이 가능하다.
(실시 형태 6)
이 실시 형태 6에 있어서는, 실시 형태 1 내지 5와 달리, 라이선스 관리 유닛에 의해, 실행 유닛에 의한 유상 소프트웨어의 실행이 제어된다.
실시 형태 6에 따른 마이크로프로세서의 구성은, 실시 형태 5에서 설명한 마이크로프로세서의 구성과 유사하다. 주로 상이한 부분은, 라이선스 관리 유닛이다. 도 12를 참조로 하여 설명하면 실시 형태 6에 따른 마이크로프로세서(1400)는, 실행 유닛(1401)과, 소프트웨어 기억 유닛(1402) 및 라이선스 관리 유닛(1403)을 구비하고 있다. 실시 형태 5와 마찬가지로, 이 실시 형태에 따른 마이크로프로세서(1400)는, 상기한 유닛 이외에 복수의 유닛을 구비하고 있지만, 여기서도 생략한다.
또한, 이 실시 형태 6에 있어서도, 실시 형태 5와 마찬가지로, 소프트웨어 기억 유닛(1402)의 영역(어드레스 공간) AR은, 도 13에 도시한 바와 같이, 유저 영역 UAR과 DL 애플리케이션 영역 DAR로 나뉘어 있으며, 도 14에 도시한 바와 같이, 유저 영역 UAR과 DL 애플리케이션 영역 DAR의 기억 용량 비율이, 서로 다른 마이크로프로세서가, 판매자(제조자)로부터 제공된다. 유저 영역 UAR 및 DL 애플리케이션 영역 DAR의 용량 비율은, 실시 형태 5와 마찬가지로, 실시 형태 1에서 설명한 방법 (1) 내지 (6)에 의해 정한다.
다음으로, 실시 형태 6에 따른 라이선스 관리 유닛(1403)의 동작을, 도 18을 이용하여 설명한다. 도 18은, 이 실시 형태에 따른 라이선스 관리 유닛(1403)의 동작을 나타내는 흐름도이다.
스텝 S70에 있어서, 실행 유닛(1401)이, 소프트웨어 기억 유닛(1402)으로부터 소프트웨어 SW를 읽어들인다(호출한다). 예를 들어, 소정의 소프트웨어를, 실행 유닛(1401)이 실행하는 과정에 있어서, 호출에 관한 명령(예를 들어, 점프 명령 jump, 콜 명령 call 등)에 의해, 소프트웨어(SW)를 호출한다.
라이선스 관리 유닛(1403)은, 실행 유닛(1401)에 의해 호출된 소프트웨어(대상 SW)가, DL 애플리케이션(유상 소프트웨어)인지 여부를, 스텝 S71에 있어서 판정한다. DL 애플리케이션인지 여부의 판정은, 예를 들어 다음과 같이 실시한다. 즉, 이 DL 애플리케이션을, 소프트웨어 기억 유닛(1402)에 저장할 때, 이 소프트웨어의 속성 정보부 ATB에 저장되어 있는 정보, 예를 들어 유니크 번호 ID를, 라이선스 관리 유닛(1403)에 저장해 둔다. 이때, 이 소프트웨어의 어드레스, 예를 들어 개시 어드레스를, 유니크 번호 ID와 대응하도록, 라이선스 관리 유닛(1403)에 저장해 둔다. 스텝 S71에 있어서, 라이선스 관리 유닛(1403)은, 호출에 관한 명령으로부터, 소프트웨어의 개시 어드레스를 취득하고, 취득한 개시 어드레스를 기초로 하여, 라이선스 관리 유닛(1403)에 저장되어 있는 개시 어드레스를 검색한다. 검색에 의해 일치한 개시 어드레스에 대응한 유니크 번호 ID가 찾아지면, DL 애플리케이션(유상 소프트웨어)이라고 판정되고, 찾아지지 않으면, DL 애플리케이션이 아니라고 판정된다.
스텝 S71에 있어서, 소프트웨어가, DL 애플리케이션이라고 판정된 경우(예), 라이선스 관리 유닛(1403)은, 다음으로 스텝 S72를 실행한다. 이에 반하여, 스텝 S71에 있어서, 소프트웨어가, DL 애플리케이션이 아니라고 판정된 경우(아니오), 라이선스 관리 유닛(1403)은, 다음으로 스텝 S74를 실행한다.
스텝 S72에 있어서, 실행 유닛(1401)이 DL 애플리케이션을 실행할 때의 어드레스(실행 어드레스)이, DL 애플리케이션 영역 DRA 내인지 여부를, 라이선스 관리 유닛(1403)이 판정한다. 여기서, DL 애플리케이션 영역 DRA의 범위는, 도 14에 도시한 바와 같이, 마이크로프로세서의 종류(1400-1 내지 1400-4)에 따라 상이하다. 스텝 S72에 있어서, 실행 어드레스가, DL 애플리케이션 영역 DRA 내라고 판정된 경우(예), 라이선스 관리 유닛(1403)은, 다음에 스텝 S74를 실행한다. 이에 반하여, 스텝 S72에 있어서, 실행 어드레스는, DL 애플리케이션 영역 DRA의 밖이라고 판정된 경우(아니오), 라이선스 관리 유닛(1403)은, 다음으로 스텝 S73을 실행한다.
스텝 S73에 있어서, 라이선스 관리 유닛(1403)은, 실행 유닛(1401)이, 당해 소프트웨어를 실행하는 것을 금지한다. 또한, 스텝 S73에 있어서, 라이선스 관리 유닛(1403)은, 실행 유닛(1401)에 대하여 에러를 통지한다.
스텝 S74에 있어서는, 라이선스 관리 유닛(1403)은, 실행 유닛(1401)이, 당해 소프트웨어의 호출 및 실행을 허가한다. 이에 의해, 실행 유닛(1401)은, 소정의 소프트웨어를 실행하는 것이 가능해진다.
스텝 S70에 있어서, 호출된 소프트웨어가, DL 애플리케이션인 경우, 스텝 S72가 실행된다. 스텝 S72에 있어서, DL 애플리케이션의 실행 어드레스가, DL 애플리케이션 영역 내이면, 스텝 S74에 있어서, 실행 유닛(1401)이 DL 애플리케이션을 실행하는 것이 허가된다. 이에 반하여, DL 애플리케이션의 실행 어드레스가, DL 애플리케이션 영역의 밖이면, 스텝 S73이 실행된다. 이 경우에는, 실행 유닛(1401)에 의해 DL 애플리케이션을 실행하는 것이 금지되게 된다. 또한, DL 애플리케이션이 아니면, 스텝 S74에 있어서, 실행 유닛(1401)에 의한 실행이 허가되게 된다.
이와 같이 하여, 라이선스 관리 유닛(1403)에 의해, 실행 유닛(1401)에 의한 DL 애플리케이션(유상 소프트웨어)의 실행이 제어된다. 이에 의해, 예를 들어 유저 영역 UAR에 DL 애플리케이션(유상 소프트웨어)을 저장하는 등, 부정을 행한 경우에, DL 애플리케이션이 실행되어버리는 것을 방지하는 것이 가능해진다.
<하드웨어에 의한 제어>
도 18에서는, 소프트웨어에 의해, DL 애플리케이션의 실행을 제어하는 예를 설명하였지만, DL 애플리케이션의 실행 제어는, 하드웨어로 실현해도 된다. 즉, 논리 회로 등의 하드웨어를 사용하여, 제어하도록 해도 된다. 도 19는, DL 애플리케이션의 실행을, 하드웨어에 의해 제어하는 경우의 구성을 나타내는 블록도이다.
도 19에 있어서, 1700은, 플래시 메모리를 나타내고 있다. 이 플래시 메모리(1700)가, 소프트웨어 기억 유닛(1401)에 상당한다. 그로 인해, 플래시 메모리(1700)의 기억 영역이, 소프트웨어 기억 유닛(1401)의 기억 영역 AR로 되고, 플래시 메모리(1400)의 기억 영역이, 유저 영역 UAR과 DL 애플리케이션 영역 DAR로 나뉘게 된다.
플래시 메모리는, 도 16에 있어서 설명한 바와 같이, 어드레스 단자, 라이트 단자, 리드 단자 및 데이터 단자를 구비하고 있다. 도 19에는, 어드레스 단자가 ADT로서 도시되고, 리드 단자가 RT로서 도시되어 있다. 도 19에서는, 라이트 단자 및 데이터 단자는 생략되었다.
플래시 메모리(1700)는, 어드레스 단자 ADT에 공급된 어드레스 신호에 의해 지시된 영역에 저장되어 있는 데이터가, 리드 단자 RT에 하이 레벨인 리드 신호 RE가 공급됨으로써, 판독된다. 판독된 데이터는, 도시하지 않은 데이터 단자를 통해 실행 유닛(1401)으로 공급된다. 실행 유닛(1401)은, 공급된 데이터를 명령으로서 실행한다. 이에 의해, 마이크로프로세서(1400)가 소정의 동작을 행하게 된다.
라이선스 관리 유닛(1403)은, DL 애플리케이션 영역 DAR을 지정하는 DL 영역 지정 신호 DLD와, DL 애플리케이션인지 여부를 나타내는 DL 애플리케이션 검출 신호 DLT를 출력한다. 여기서, DL 영역 지정 신호 DLD는, 플래시 메모리(1700)에 있어서 할당된 DL 애플리케이션 영역 DRA의 범위를 나타내는 어드레스 신호이다. 또한, DL 애플리케이션 검출 신호 DLT는, 도 18의 스텝 S71에 있어서, 설명한 바와 같이 하여 형성되는 신호로서, DL 애플리케이션인 경우, 하이 레벨로 되고, DL 애플리케이션이 아닌 경우에는, 로우 레벨로 된다. 또한, 도 19에 있어서, 어드레스 신호 AD는, 실행 유닛(1401)에 의해 형성되고, 리드 신호 RE도, 실행 유닛(1401)에 의해 형성된다.
도 19에 있어서, 1701은, 비교 회로이며, 비교 회로(1701)는, 실행 유닛(1401)으로부터의 어드레스 신호 AD와, 라이선스 관리 유닛(1403)으로부터의 DL 영역 지정 신호 DLD를 비교한다. 비교에 의해, 어드레스 신호 AD에 의해 지정되는 영역이, DL 영역 지정 신호 DLD에 의해 지정되는 영역 내에 존재할 때, 비교 회로(1701)는 출력 신호를 하이 레벨로 한다. 한편, 어드레스 신호 AD에 의해 지정되는 영역이, DL 영역 지정 신호 DLD에 의해 지정되는 영역의 밖에 존재할 때, 비교 회로(1701)는 출력 신호를 로우 레벨로 한다.
비교 회로(1701)로부터의 출력 신호는, 위상 반전되어, AND 회로(1702)의 한쪽 입력에 공급된다. AND 회로(1702)의 다른 쪽 입력에는, DL 애플리케이션 검출 신호 DLT가 공급되고, AND 회로(1702)의 출력 신호는, 위상 반전하여, AND 회로(1703)의 한쪽 입력에 공급된다. 또한, AND 회로(1702)의 출력 신호는, 에러 신호로서, 실행 유닛(1401)에 공급된다. AND 회로(1703)의 다른 쪽 입력에는, 실행 유닛(1401)으로부터의 리드 신호 RE가 공급되고, AND 회로(1703)의 출력 신호는, 플래시 메모리(1700)의 리드 단자 RT에 공급된다.
실행 유닛(1401)이, 소프트웨어를 실행할 때, 실행 유닛(1401)은, 소프트웨어의 실행 어드레스를, 어드레스 신호 AD로서 출력한다. 또한, 소프트웨어를 플래시 메모리(1700)로부터 판독하기 위해서, 리드 신호 RE를 하이 레벨로 한다.
실행 유닛(1401)으로부터 출력되어 있는 실행 어드레스인 어드레스 신호 AD가, DL 영역 지정 신호 DLD에 의해 지정되어 있는 영역 내를 지정하고 있으면, 비교 회로(1701)로부터는, 하이 레벨의 출력 신호가 출력된다. AND 회로(1702)의 한쪽 입력에는, 이 하이 레벨이, 위상 반전되어, 로우 레벨이 공급되게 된다. 그 결과, AND 회로(1702)의 출력 신호는 로우 레벨로 된다. 실행 유닛(1401)은, 에러 신호가 하이 레벨일 때, 에러가 발생한 것으로서 인식한다. 그로 인해, 로우 레벨의 에러 신호가 공급되어 있는 상태에서는, 에러는 발생하지 않았다고 인식한다.
AND 회로(1702)로부터 출력되어 있는 로우 레벨의 출력 신호는, 다시 위상 반전되고, AND 회로(1703)의 한쪽 입력에 공급된다. 이때, 실행 유닛(1401)은, 소프트웨어를 판독하기 위해서, 리드 신호를 하이 레벨로 하고 있다. 그 결과, AND 회로(1703)는, 하이 레벨의 출력 신호를, 플래시 메모리(1700)의 리드 단자 RT에 공급한다. 이에 의해, 플래시 메모리(1700)는, 실행 어드레스인 어드레스 신호 AD에 의해 지정된 영역에 저장되어 있는 데이터를, 실행 유닛(1401)에 공급한다. 실행 유닛(1400)은, 공급된 데이터를 소프트웨어의 명령으로서 실행한다.
이에 의해, DL 애플리케이션(유상 소프트웨어)을, DL 영역 지정 신호 DLD에 의해 지정되는 영역으로부터 판독하여, 실행 유닛(1401)은 실행하는 것이 가능해진다.
이에 반하여, 실행 유닛(1401)으로부터의 어드레스 신호 AD가, DL 영역 지정 신호 DLD에 의해 지정되는 영역의 밖을 지정하고 있는 경우, 비교 회로(1701)의 출력 신호는, 로우 레벨로 된다. DL 애플리케이션 검출 신호 DLT가 하이 레벨이면, AND 회로(1702)의 출력 신호는, 하이 레벨로 된다. 그 결과, 실행 유닛(1401)은, 에러가 발생하였다고 인식한다. 또한, AND 회로(1702)의 출력 신호가 하이 레벨로 됨으로써, AND 회로(1703)의 출력 신호는 로우 레벨로 된다. 즉, 플래시 메모리(1700)의 리드 단자 RT에 로우 레벨의 리드 신호가 공급되게 된다. 그 결과, 플래시 메모리(1700)로부터는, 데이터가 출력되지 않고, 실행 유닛(1401)에 대한 소프트웨어의 공급이 정지된다. 즉, 실행 유닛(1401)에 의한 DL 애플리케이션(유상 소프트웨어)의 실행이 금지된다.
이와 같이, DL 애플리케이션(유상 소프트웨어)이, DL 영역 지정 신호 DLD에 의해 지정되는 영역으로부터 판독된 경우에는, 실행 유닛(1401)에 의한 실행이 허가되고, DL 영역 지정 신호 DLD에 의해 지정되는 영역의 밖으로부터 판독된 경우에는, 실행 유닛(1401)에 의한 실행이 금지되게 된다.
도 20은, DL 애플리케이션의 실행을 하드웨어에 의해 제어하는 경우의 다른 구성을 나타내는 블록도이다.
도 20에 있어서, 1800은, 명령 큐를 나타내고 있다. 명령 큐(1800)에는, 소프트웨어 기억 유닛(1403)으로부터, 순차 명령이 저장되고, 실행 유닛(1401)으로, 공급된다. 명령 큐(1800)는, 플래시 단자 FLT를 구비하고 있다. 이 플래시 단자 FLT에 하이 레벨인 플래시 신호를 공급함으로써, 명령 큐(1800)에 저장되어 있는 모든 명령이 소거된다. 또한, 도 20에서는, 소프트웨어 기억 유닛(1402)으로부터 명령 큐(1800)로의 경로는 생략되었다.
도 20에 도시한 어드레스 신호 AD, DL 영역 지정 신호 DLD, DL 애플리케이션 검출 신호 DLT 및 에러 신호는, 도 19에 도시한 각각의 신호와 동일하기 때문에, 설명은 생략한다.
도 20에 있어서, 1801은, 비교 회로이며, 비교 회로(1801)는, 실행 유닛(1401)으로부터의 어드레스 신호 AD와, DL 영역 지정 신호 DLD를 비교한다. 비교 회로(1801)는, 어드레스 신호 AD가, DL 영역 지정 신호 DLD에 의해 지정되어 있는 영역의 밖을 지정한 경우, 로우 레벨의 출력 신호를 출력한다. 이에 반하여, 어드레스 신호 AD가, DL 영역 지정 신호 DLD에 의해 지정되어 있는 영역 내를 지정한 경우, 비교 회로(1801)는, 하이 레벨인 출력 신호를 출력한다. 비교 회로(1801)의 출력 신호는, 위상 반전되고, AND 회로(1802)의 한쪽 입력에 공급되고, AND 회로(1802)의 다른 쪽 입력에는, DL 애플리케이션 검출 신호 DLT가 공급된다. AND 회로(1802)의 출력 신호는, 명령 큐(1800)의 플래시 단자 FLT에 플래시 신호로서 공급됨과 함께, 에러 신호로서, 실행 유닛(1401)에 공급된다.
실행 유닛(1401)이, DL 애플리케이션(유상 소프트웨어)을 실행하는 경우, DL 애플리케이션 검출 신호 DLT가 하이 레벨로 된다. 실행 유닛(1401)이, 실행하는 DL 애플리케이션을, DL 애플리케이션 영역 DAR의 밖, 즉 유저 영역 UAR로부터 판독하는 경우, 어드레스 신호 AD는, DL 영역 지정 신호 DLD에 의해 지정되어 있는 영역의 밖을 지정하게 된다. 그 결과, 비교 회로(1801)의 출력 신호는, 로우 레벨로 되고, AND 회로(1802)의 출력 신호는 하이 레벨로 된다. 즉, 플래시 신호가 하이 레벨로 결정되고, 명령 큐(1800)에 저장되어 있는 모든 명령이 삭제된다. 이에 의해, 실행 유닛(1401)이, DL 애플리케이션을 실행하는 것이 금지된다. 또한, 이때에는, 에러 신호가 하이 레벨로 되기 때문에, 실행 유닛(1401)은, 에러가 발생하였다는 것을 인식할 수 있다.
이에 반하여, DL 애플리케이션을, DL 애플리케이션 영역 DAR로부터 판독하는 경우에는, 어드레스 신호 AD는, DL 영역 지정 신호 DLD에 의해 지정되어 있는 영역 내를 지정하게 된다. 그 결과, 비교 회로(1801)의 출력 신호는 하이 레벨로 되고, 명령 큐(1800)의 플래시 단자 FLT에는, 로우 레벨의 플래시 신호가 공급되고, 실행 유닛(1401)에는, 로우 레벨의 에러 신호가 공급되게 된다. 이에 의해, 명령 큐(1800)에 저장되어 있는 명령은 삭제되지 않아, 실행 유닛(1401)에 공급되고, 실행되게 된다. 즉, 실행 유닛에 의한 DL 애플리케이션(유상 소프트웨어)의 실행이 허가된다. 또한, 실행 유닛(1401)은, 에러 신호가 로우 레벨이기 때문에, 에러는 발생하지 않았다는 것을 인식할 수 있다.
도 20에 도시한 예에서는, 명령 큐(1800)에 저장되어 있는 명령을 삭제함으로써, 실행 유닛(1401)이 DL 애플리케이션을 실행하는 것이 금지되게 된다.
실행 유닛(1401)은, 에러 신호에 의해 에러가 발생한 것을 인식한 경우, 에러 처리용 소프트웨어를 실행한다. 이 에러 처리용 소프트웨어를 실행함으로써, 다양한 에러 대책을 행하는 것이 가능하다. 예를 들어, 도 20에 도시한 예에서는, 에러가 발생했을 때, 명령 큐(1800)에 저장되어 있는 모든 명령을 소거하는 것을 설명하였지만, 에러 처리의 소프트웨어에 의해, 다양한 대책을 실시하는 것이 가능하다. 예를 들어, 명령 큐(1800)에, 저장되어 있는 명령이 유효한지 여부를 나타내는 밸리드 비트를 설치하고, 에러 처리용 소프트웨어를 실행함으로써, 밸리드 비트를, 명령이 무효임을 나타내는 인바 리드로 변경하도록 해도 된다. 또한, 명령 큐(1800)에 있어서, 명령을 저장하는 장소를 지정하는 라이트 포인터의 갱신을, 에러 처리용 소프트웨어를 실행함으로써, 정지시키도록 해도 된다.
반도체 장치로서 마이크로프로세서(1401)를 예로 하여 설명하였지만, 반도체 장치는, 이것으로 한정되는 것은 아니다.
또한, 마이크로프로세서(1401) 대신에 퍼스널 컴퓨터 혹은 스마트폰과 같은 휴대 단말기를 사용해도 된다. 또한, 플래시 라이터(1105) 대신에 광디스크 재생 장치 혹은 통신 회선을 통해 유상 소프트웨어를 제공하는 소프트웨어 기억 장치를 사용해도 된다. 또한, 소프트웨어 기억 유닛(1402)은, 하드디스크 혹은 메모리 카드를 사용하도록 해도 된다. 이와 같이, 마이크로프로세서, 플래시 라이터 및 소프트웨어 기억 유닛을 변경하여도, 마찬가지의 효과가 얻어지는 것이다.
<변형예 1>
실시 형태 6을, 예를 들어 실시 형태 1 또는 실시 형태 2와 조합한다. 즉, 도 2에 도시한 라이선스 기억 유닛(1103)(도 6에 도시한 라이선스 기억부(1305))을, 실시 형태 6에서 설명한 구성에 추가한다. 이 경우, 라이선스 관리 유닛(1403)에 의해, 라이선스 기억 유닛(1103)에 저장되어 있는 라이선스 정보의 갱신을 실시함과 함께, 라이선스 정보에 의해 나타내고 있는 유상 소프트웨어 인스톨 가능 수의 확인도 실시한다.
그 결과, 인스톨 가능 수와 DL 애플리케이션 영역 DAR의 기억 용량의 양쪽에 의해, 소프트웨어 기억 유닛(1402) 내의 DL 애플리케이션 영역 DAR로의 소프트웨어의 저장이 제어되게 된다. 이 경우, 라이선스 기억 유닛(1303)에 저장되어 있는 라이선스 정보가, 예를 들어 부정으로 변경되었다고 해도, DL 애플리케이션 영역 DAR의 기억 용량이, 제한되어 있기 때문에, 피해의 저감을 도모하는 것이 가능하다.
<변형예 2>
실시 형태 6을, 실시 형태 5와 조합한다. 이에 의해, DL 애플리케이션을 다운로드할 때와, DL 애플리케이션을 실행할 때의 양쪽에 있어서, 부정인지 여부의 확인을 행하는 것이 가능하게 되어, 보다 견고하게 부정에 대항하는 것이 가능해진다.
<변형예 3>
실시 형태 6을, 실시 형태 1 또는 2와, 실시 형태 5와 조합한다. 이에 의해, 부정에 의한 피해의 저감을 도모하는 것이 가능해짐과 함께, 보다 견고하게 부정에 대항하는 것이 가능해진다.
(실시 형태 7)
실시 형태 5 및 6에 있어서는, 소프트웨어 기억 유닛(1402)의 영역 AR의 일부의 영역이, DL 애플리케이션 영역 DAR에 할당되고, DL 애플리케이션 영역 DAR을 제외한 영역이, 유저 영역 UAR에 할당되었다. 이 실시 형태 7에 있어서는, 실행 유닛(1401)에 의해, 유저 영역 UAR에 있어서의 소프트웨어를 실행하고 있을 때, DL 애플리케이션 영역 DAR에 대한 액세스를 제한한다.
도 21은, 실시 형태 7에 따른 마이크로프로세서의 동작을 나타내는 개념도이다. 실행 유닛(1401)이, 유저 영역 UAR에 있어서의 소프트웨어를 실행하고 있을 때, DL 애플리케이션 영역 DAR로의 데이터의 기입 및 판독을 금지한다. 이 경우, 유저 영역 UAR에 있어서의 소프트웨어이며, DL 애플리케이션 영역 DAR에 있어서의 소프트웨어의 실행은 가능해진다.
이와 같이 함으로써, 유저 영역 UAR에 있어서의 소프트웨어의 실행에 의해, DL 애플리케이션 영역 DAR에 저장되어 있는 소프트웨어의 해석 및/또는 카피가 실시되는 것을 방지하는 것이 가능해진다. 그 결과, DL 애플리케이션 영역 DAR에 저장되어 있는 유상 소프트웨어의 보호(해석, 카피를 방지함)를 행하는 것이 가능해진다.
이 실시 형태 7에 의하면, 메모리 매니지먼트 기능(MMU) 혹은 메모리 프로텍션 기능과 같은 고기능(고비용)을, 마이크로프로세서에 설치하지 않아도, 소프트웨어의 해석, 카피를 방지하는 것이 가능하다. 즉, 유저에게 마이크로프로세서를 제공할 때 DL 애플리케이션 영역 DAR과 유저 영역 UAR을 할당하지만, 이때, 상기한 바와 같은 액세스의 제한을 설정하는 것만으로 충분하여, 저비용으로 시큐리티를 높이는 것이 가능해진다.
또한, DL 애플리케이션 영역에서의 소프트웨어를 실행하고 있을 때에는, 유저 영역 UAR에 대한 데이터의 기입 및 판독은 가능하게 되어 있다. 또한, 유저 영역 UAR에 있어서의 소프트웨어와 DL 애플리케이션 영역에서의 소프트웨어 사이의 데이터 교환은, 유저 영역 UAR에 있어서의 영역 혹은, 실행 유닛(1401)이 구비하고 있는 레지스터를 사용하여, 실시한다.
또한, 도 21에 도시한 바와 같이, 데이터의 판독 및 기입을 금지하고, 소프트웨어의 실행을 가능하게 하는 구성으로서는, 예를 들어 실행 유닛(1401)이 구비하고 있는 프로그램 카운터가, DL 애플리케이션 영역 DAR을 액세스하는 경우는, 액세스를 허가하고, 그 이외의 경우에는, 액세스를 금지하게 하면 된다.
(실시 형태 8)
실시 형태 5 및 6에 있어서는, 소프트웨어 기억 유닛(1402)의 영역 AR의 일부의 영역이, DL 애플리케이션 영역 DAR에 할당되고, DL 애플리케이션 영역 DAR을 제외한 영역이, 유저 영역 UAR에 할당되었다. 이 실시 형태 8에 있어서는, 예를 들어 1차적으로 데이터를 저장하기 위해서 사용되는 데이터용 기억 유닛도, DL 애플리케이션용과 유저용으로 나뉜다.
도 22는, 실시 형태 8에 따른 마이크로프로세서의 동작을 나타내는 개념도이다. 도 22에 있어서, DAR-D는, DL 애플리케이션용 데이터 영역을 나타내고, UAR-D는, 유저용 데이터 영역을 나타내고 있으며, 데이터용 기억 유닛이, DL 애플리케이션용 데이터 영역 DAR-D와 유저용 데이터 영역 UAR-D로 나뉘어 있다. 이 실시 형태 8에 있어서는, 유저 영역 UAR에 있어서의 소프트웨어를, 실행 유닛(1401)이 실행하고 있을 때, DL 애플리케이션용 데이터 영역 DAR-D에 대한 데이터의 기입 및 판독이 금지된다. 이에 반하여, DL 애플리케이션 영역 DAR에 있어서의 소프트웨어를, 실행 유닛(1401)이 실행하고 있을 때, 유저용 데이터 영역 UAR-D에 대한 데이터의 기입 및 판독은 허가된다.
이에 의해, 유저 영역 UAR에 있어서의 소프트웨어를 실시함으로써, 부정으로 DL 애플리케이션용 데이터 영역 DAR-D에 있어서의 데이터를 해석 및/또는 카피하는 것을 방지하는 것이 가능하게 되어, 실시 형태 7과 마찬가지로, 유상 소프트웨어를, 더 견고하게 보호하는 것이 가능해진다. 또한, 실시 형태 7과 마찬가지로, 저비용으로, 시큐리티를 높이는 것이 가능하다.
또한, DL 애플리케이션용 데이터 영역 DAR-D와 유저용 데이터 영역 UAR-D로서는, 마이크로프로세서(1400)에 내장된 스튜디오 테크형 메모리를 사용해도 되고, 마이크로프로세서(1400)의 외부에 설치한 휘발성 메모리를 사용하게 해도 된다.
물론, 실시 형태 7과 실시 형태 8은 조합해서 사용하게 해도 되고, 따로따로 사용하게 해도 된다.
(실시 형태 9)
실시 형태 9는, 실시 형태 1 내지 8에서 설명한 반도체 장치 및 전자 장치를 사용하여, 라이선스 요금을 회수하는 라이선스 요금 회수 시스템을 제공한다. 도 24는, 라이선스 요금 회수 시스템의 구성을 나타내는 시스템도이다. 도 24에 도시한 시스템에서는, 반도체 장치 또는 전자 장치와, 유상 소프트웨어를, 판매자 및/또는 제조자가, 유저에게 제공하고, 판매자 및/또는 제조자가, 유저로부터, 이들의 대가를 회수한다. 그로 인해, 도 24는, 판매자(제조자)와 유저 사이의 비지니스 모델을 나타내고 있다고 간주할 수도 있다. 이 경우, 판매자 및/또는 제조자는, 복수여도 된다.
도 24에 있어서, 1900은, 유저를 나타내고 있으며, 1910은, 판매자 및/또는 제조자를 나타내고 있다. 판매자(제조자)(1910)는, 실시 형태 1 내지 8에서 설명한 반도체 장치(마이크로프로세서) 또는 전자 장치와 유상 소프트웨어를, 유저(1900)에게 제공한다. 상기 도면에 있어서, 1911은, 판매자(제조자)(1910)가, 제조하고, 판매하는 장치를 나타내고 있으며, 1901은, 판매자(제조자)(1910)로부터 유저(1900)에게 제공(1915)된 장치를 나타내고 있다. 여기서는, 실시 형태 1 내지 8에 있어서 설명한 반도체 장치 및 전자 장치를 총칭하여, 장치라 표현하고 있다. 즉, 여기서 설명하고 있는 장치(1901 및 1911)는, 실시 형태에서 설명한 반도체 장치 또는 전자 장치이다.
도 24에 있어서, 1920-1 및 1920-2의 각각은, 유상 소프트웨어를 나타내고 있다. 유상 소프트웨어(1920-1 및/또는 1920-2)는, 예를 들어 유저(1900)의 요구에 따라, 판매자(제조자)로부터, 유저(1900)에게 제공(1921)된다. 여기서는, 설명의 편의상, 동일한 판매자(제조자)가, 장치(1911)와 유상 소프트웨어(1920-1, 1920-2)를 제공(1915, 1921)하는 경우를, 우선 설명하지만, 물론, 장치(1911)를 제공하는 판매자(제조자)와, 유상 소프트웨어(1920-1, 1920-2)를 제공하는 판매자(제조자)는, 동일할 필요는 없다. 또한, 유상 소프트웨어(1920-1과 1920-2)가, 각각의 판매자(제조자)에 의해 제공되어도 된다. 또한, 복수의 유상 소프트웨어(1920-1, 1920-2) 중 적어도 하나를, 장치(1911)를 제공하는 판매자(제조자)가 제공하도록 해도 된다.
도 24에 있어서, 장치(1901, 1911)의 구성은, 실시 형태 1 내지 8에 있어서 설명한 구성을 갖고 있지만, 상기 도면에는, 설명에 필요한 구성만이 그려지고, 그 밖의 구성은 생략되었다. 상기 도면에 있어서, 1912는, 소프트웨어 기억 장치를 나타내고 있고, 1913은, 라이선스 기억 장치를 나타내고 있으며, 1914는, 라이선스 관리 장치를 나타내고 있다. 여기서도, 소프트웨어 기억 장치(1912)는, 실시 형태에서 설명한 소프트웨어 기억부(도 1에서는, 1002)와 소프트웨어 기억 유닛(도 2에서는, 1102)의 총칭이다. 또한, 라이선스 기억 장치(1913)는, 라이선스 기억부(도 1에서는, 1003)와 라이선스 기억 유닛(도 2에서는, 1103)의 총칭이다. 마찬가지로, 라이선스 관리 장치(1914)는, 라이선스 관리부(도 1에서는, 1004)와 라이선스 관리 유닛(도 2에서는, 1104)의 총칭이다.
판매자(제조자)(1910)는, 장치(1911)를 유저(1900)에게 제공하기 전에, 실시 형태에서 설명한 라이선스 정보를, 라이선스 기억 장치(1913)에 저장한다. 판매자(제조자)가, 장치(1911)를 유저(1900)에게 제공할 때에는, 라이선스 정보가 저장된 라이선스 기억 장치(1913)를 구비한 장치(1911)가 제공(1915)되게 된다. 판매자(제조자)(1910)가, 라이선스 기억 장치(1913)에 저장하는 라이선스 정보는, 실시 형태에서 설명한 바와 같이, 유상 소프트웨어 인스톨 가능 수, 인스톨 가능한 포인트, 인스톨 가능한 기억 용량 등을 나타내는 정보이다.
이때, 판매자(제조자)(1910)는, 유저(1900)에게 제공하는 장치(1911)의 가격, 즉 판매 가격을, 장치(1911)의 하드웨어 가격(HW 가격)에, 라이선스 정보에 의해 나타내고 있는 인스톨 가능한 양, 즉 라이선스 수에 상당하는 라이선스 요금을 부가하여 정한다. 즉, 장치(1911)의 HW 가격에, 라이선스 수에 상당하는 라이선스 요금을 부가(가산)하여 정한 판매 가격이며, 판매자(제조자)(1910)는, 유저(1900)에게 장치(1911)를 제공(1915)한다. 이 경우, 라이선스 기억 장치(1913)에 저장하는 라이선스 정보에 의해, 판매 가격이 변하게 된다.
유저(1900)는, 장치(1911)를 구입한 후, 유저(1900)가 원하는 기능을 실현하기 위해서, 필요에 따라 구입한 장치(도 24에서는, 구입한 장치는 1901로서 나타내고 있음)에, 소프트웨어 제공 장치(1904)를 통해 유상 소프트웨어를 다운로드한다. 이 경우, 실시 형태 1 내지 8에서 설명한 바와 같이, 유상 소프트웨어의 다운로드, 즉 소프트웨어 기억 장치(1912)로의 저장 또는 실행은, 라이선스 기억 장치(1913)에 저장되어 있는 라이선스 정보에 의해 나타내는 라이선스 수까지, 라이선스 관리 장치(1914)에 의해 허가되게 된다. 그로 인해, 유저(1900)는, 유상 소프트웨어의 허락에 요구되는 라이선스 요금을, 다운로드하기 전에, 지불하고 있게 된다. 또한, 도 24에서는, 라이선스 정보에 의해 나타내는 라이선스 수까지, 다운로드를 허가하기 위해서, 라이선스 관리부(1914)가, 다운로드를 감시하고 있는 것이 도시되어 있다.
또한, 라이선스 정보에 의해 나타내고 있는 라이선스 수를 초과한 경우, 라이선스 관리 장치(1914)는, 다운로드 또는 실행을 제한한다. 그로 인해, 라이선스 정보는, 다운로드 또는 실행을 제한하는 제한 정보라고 간주할 수도 있다.
즉, 이 실시 형태에 있어서는, 라이선스 요금을 프리페이드하고 있게 된다. 그로 인해, 유저(1900)는, 판매자(제조자)(1910)로부터의 장치(1911)의 제공(1915)에 대해, 장치의 하드웨어 가격(HW 가격)(1931)과, 라이선스 요금의 프리페이드 가격(1930)(도 24에서는, '프리페이드'라고 기재)을 합쳐서, 구입 가격으로서 지불하게 된다. 또한, 여기서는, 판매자(제조자)(1910)가 정한 판매 가격과, 유저(1900)가 지불하는 구입 가격은 동일한 것으로 한다.
라이선스 기억 장치(1913)에 저장된 라이선스 정보에 의해, 판매 가격(구입 가격)이 변하는 예를, 다음에 설명해 둔다.
라이선스 정보가, 유상 소프트웨어 인스톨 가능 수를 나타내는 경우를 예로 하여, 우선 설명한다. 여기서는, 장치(1911)의 하드웨어 가격(HW 가격)이, 예를 들어 10달러이며, 유상 소프트웨어가 1개당, 30달러인 것으로 한다. 이 경우, 유상 소프트웨어 인스톨 가능 수가 0을 나타내는 라이선스 정보를 저장한 장치(1911)의 판매 가격은, 10달러로 된다. 이에 반하여, 유상 소프트웨어 인스톨 가능 수가 1을 나타내는 라이선스 정보를 저장한 장치(1911)의 판매 가격은, 40달러로 되고, 유상 소프트웨어 인스톨 가능 수가 2를 나타내는 라이선스 정보를 저장한 장치(1911)의 판매 가격은, 70달러로 된다. 이후, 유상 소프트웨어 인스톨 가능 수가 1 증가할 때마다, 장치(1911)의 판매 가격은, 30달러씩 비싸게 된다.
또한, 라이선스 정보가, 유상 소프트웨어의 인스톨 가능한 포인트를 나타내는 경우를 설명한다. 여기서도, 장치(1911)의 하드웨어 가격(HW 가격)은, 10달러이며, 1포인트가, 1달러인 것으로 한다. 이 경우, 포인트수가 0을 나타내는 라이선스 정보를 저장한 장치(1911)의 판매 가격은, 10달러로 된다. 이에 반하여, 포인트수가 50을 나타내는 라이선스 정보를 저장한 장치(1911)의 판매 가격은, 60달러로 되고, 포인트수가 100을 나타내는 라이선스 정보를 저장한 장치(1911)의 판매 가격은, 110달러로 된다. 이후, 포인트수가 1 증가할 때마다, 장치(1911)의 판매 가격은, 1달러씩 비싸게 된다. 이 경우, 1개의 유상 소프트웨어의 라이선스 허락에 요구되는 포인트수가, 예를 들어 50포인트이면, 판매 가격이 60달러의 장치(1911)에 대해서는, 1개의 유상 소프트웨어를 다운로드하는 것이 허가되고, 판매 가격이 110달러의 장치(1911)에 대해서는, 2개의 유상 소프트웨어를 다운로드하는 것이 허가된다. 허가되는 개수 이상의 유상 소프트웨어에 대해서는, 다운로드가 실패하게 된다. 즉, 다운로드가 제한되게 된다.
또한, 라이선스 정보가, 유상 소프트웨어의 인스톨 가능한 기억 용량(DL 애플리케이션 영역 DAR의 기억 용량)을 나타내는 경우를 설명한다. 여기서도, 장치(1911)의 하드웨어 가격(HW 가격)은, 10달러인 것으로 한다. 이 경우, 소프트웨어 기억 장치(1912)의 영역(어드레스 공간) AR은, 모두 유저 영역 UAR에 할당되어 있다고 간주할 수도 있다. 소프트웨어 기억 장치(1911)의 영역 AR 중, DL 애플리케이션 영역 DAR에, 1M 비트(1MB)가 할당된 경우, 판매 가격은 예를 들어 60달러, DL 애플리케이션 영역 DAR에 2M 비트(2MB)를 할당한 경우, 판매 가격은 110달러, DL 애플리케이션 영역 DAR에 4M 비트(4MB)를 할당한 경우, 판매 가격은 210달러로 한다. 이와 같이, 예를 들어 1M 비트 할당하는 기억 용량이 많아짐에 따라서, 예를 들어 50달러씩 고가로 한다. 이 경우, DL 애플리케이션 영역 DAR에 할당된 기억 용량이, 유상 소프트웨어에 의해, 부족하게 될 때까지 유상 소프트웨어의 다운로드가 가능해진다. DL 애플리케이션 영역 DAR에 부족이 발생할 때까지 다운로드한 유상 소프트웨어 수가, 라이선스 정보에 의해 나타내는 라이선스 수로 되고, 이 라이선스 수에 대응한 라이선스 요금이, 프리페이드되게 된다.
라이선스 요금 회수 시스템으로서 본 경우, 라이선스 정보는, 프리페이드된 라이선스 요금에 상당하게 된다. 즉, 프리페이드된 라이선스 요금에 대응한 값을, 라이선스 정보는 나타내게 된다. 일례를 설명하면, 프리페이드된 라이선스 요금에 따라 라이선스 정보가 나타내는 유료 소프트웨어 인스톨 가능 수는 바뀐다. 라이선스 관리 장치(1914)는, 유상 소프트웨어를 저장 또는 실행할 때, 그때의 라이선스 정보에 의해 표시되는 라이선스 요금이, 그 유상 소프트웨어의 라이선스 요금을 충족할 때, 즉 그 유상 소프트웨어의 라이선스 요금을 지불하는 것이 가능할 때, 유상 소프트웨어의 저장 또는 실행을 허가하게 된다. 또한, 라이선스 관리 장치(1914)는, 유상 소프트웨어의 저장 또는 실행을 허가한 경우, 이 유상 소프트웨어의 라이선스 요금을, 라이선스 정보에 의해 나타내는 요금(라이선스 요금)으로부터 감산하고, 감산에 의해 얻어지는 라이선스 요금에 상당하는 라이선스 정보를, 라이선스 기억 장치에 저장한다.
또한, 실시 형태 1에서 설명한 바와 같이, 유상 소프트웨어를 언인스톨한 경우, 라이선스 관리 장치(1914)는, 라이선스 정보를 갱신하는 것이 가능하다. 이것을, 라이선스 요금 회수 시스템으로서 본 경우, 언인스톨한 유상 소프트웨어의 라이선스 요금을, 그때 라이선스 기억 장치가 저장하고 있는 라이선스 정보에 의해 나타내는 요금(라이선스 요금)에 가산함으로써 얻어지는 라이선스 요금에 상당하는 라이선스 정보를, 라이선스 기억 장치에 저장하는 것을 의미하고 있다.
도 14에 도시한 바와 같이, 소프트웨어 기억 장치의 영역 AR을, DL 애플리케이션 영역 DAR(제1 기억 영역)과 유저 영역(제2 영역) UAR로 나누는 경우에는, 제1 기억 영역이 커질수록, 프리페이드된 라이선스 요금이 고액으로 되기 때문에, 제1 기억 영역이 큰 장치일수록, 고액으로 된다.
판매자(제조자)(1910)로부터 유저(1900)로의 유상 소프트웨어의 제공(1921)에 대해서는, 다양한 방법이 존재한다. 판매자(제조자)가, 유상 소프트웨어를 제공(1921)할 때, 유상 소프트웨어에 대한 대가를, 유저(1900)에게 요구하지 않아도 된다. 이것은, 장치(1911)를 유저(1900)가 구입할 때 장치(1911)에 다운로드하는 것이 가능한 유상 소프트웨어에 따른 요금(라이선스 요금)이, 장치(1911)의 판매 가격에 포함되고, 프리페이드로 판매자(제조자)에게 지불되고 있기 때문이다. 그로 인해, 유상 소프트웨어의 제공(1921)의 방법은, 다양한 방법을 채용하는 것이 가능하다.
예를 들어, 유상 소프트웨어(1920-1 및 1920-2)를, 판매자(제조자)(1910)가, 광디스크 등의 기억 매체에 저장하고, 이 광디스크 등의 기억 매체를, 유저(1910)에게 제공(1921)한다. 이 경우, 소프트웨어 제공 장치(1904)는, 예를 들어 광디스크 재생 장치에 의해 구성되게 된다. 유저(1900)는, 이 광디스크 재생 장치를 사용하여, 제공된 광디스크를 재생함으로써, 구입한 장치(1901)에 유상 소프트웨어를 제공한다. 물론, 유상 소프트웨어의 라이선스를 허락하는 라이선스 요금이, 프리페이드되어 있을 뿐으로, 광디스크 등의 기억 매체의 비용 및 저장에 드는 비용에 관하여, 판매자(제조자)(1910)가, 유저(1900)에게 청구하는 것을 제한하는 것은 아니다.
또한, 판매자(제조자)(1910)측이 구비하고 있는 서버 장치에, 유상 소프트웨어(1920-1, 1920-2)를 저장해 놓고, 인터넷 등의 통신 회선을 통해 유저(1900)가, 판매자(제조자)(1910)측의 서버 장치로부터, 유상 소프트웨어를 입수하고, 장치(1901)에 제공하도록 해도 된다. 이 경우, 소프트웨어 제공 장치(1904)는, 예를 들어 유저(1900)측의 서버 장치를 포함하고, 유저(1900)측의 서버 장치로부터 장치(1901)로의 다운로드가 행해지게 된다.
예를 들어, 유저(1900)가, 구입한 장치(1901)를 탑재한 제품을, 공장의 제조 라인에서 제조하는 경우, 공장의 제조 라인에, 유상 소프트웨어를 인스톨하는 공정이 존재한다고 생각된다. 이 경우, 인스톨 공정에 있는 제조 장치(예를 들어, 플래시 라이터, ROM 라이터 등) 혹은 제조 장치에 접속된 퍼스널 컴퓨터 등의 정보 처리 장치가, 소프트웨어 제공 장치(1904)로 되고, 이 소프트웨어 제공 장치(1904)에 유상 소프트웨어(1920-1, 1920-2)가 저장된다. 저장된 유상 소프트웨어(1920-1, 1920-2)가, 인스톨 공정에 있어서, 장치(1901)에 제공되게 된다. 이 경우, 제조 장치, 정보 처리 장치로, 유상 소프트웨어를 저장하는 것에 관하여, 특별히 제한을 둘 필요는 없다. 그로 인해, 예를 들어 통신 회선을 통해 유저(1900)는, 미리 유상 소프트웨어를, 제조 장치 및/또는 정보 처리 장치에 저장해 놓도록 하면, 장치(1901)에 유상 소프트웨어를 다운로드할 때마다, 매회 통신 회선을 통해 다운로드할 필요는 없다. 또한, 제품을 제조하는 계획에 따라 유저(1900)가, 제조 라인을 늘리는 경우도, 미리 저장되어 있는 유상 소프트웨어를 카피하여, 이용하는 것이 가능하다. 반대로, 제조 라인을 줄이는 경우에는, 남은 유상 소프트웨어에 대해서도, 자유롭게 파기하는 것이 가능하다. 그로 인해, 유저(1900)의 수고를 저감시켜, 번잡성을 줄이는 것이 가능해진다.
유저(1900)가 구입한 장치(1901)는, 실시 형태 1 내지 8에 있어서 설명한 바와 같이, 라이선스 정보에 의해 나타난 라이선스 수까지밖에, 유상 소프트웨어를 다운로드할 수 없다. 달리 말하자면, 구입 가격(판매 가격)에 따른 라이선스 수의 유상 소프트웨어밖에, 장치(1901)에는 다운로드할 수 없어, 이 라이선스 수를 초과한 유상 소프트웨어의 다운로드는 제한된다. 따라서, 유저(1900)는, 라이선스의 허락을 받기 위한 라이선스 요금을 지불하지 않고, 유상 소프트웨어를, 장치(1901)로 다운로드할 수는 없어, 판매자(제조자)(1910)는, 확실하게 라이선스 요금을 회수하는 것이 가능해진다.
유저(1900)는, 제조하는 제품의 수에 따라, 라이선스 요금을 별도 지불하기 위한 처리가 불필요해진다.
또한, 유상 소프트웨어의 인스톨 수에 관계없이, 유저(1900)는, 일정한 라이선스 요금을 지불하지 않아도 된다. 일정한 라이선스 요금을 지불하도록 하는 경우, 인스톨 수가 적은 유저에게 있어서는, 값이 더 비싸진다고 생각된다. 실시 형태에 의하면, 인스톨 수에 관계없이, 일정한 라이선스 요금의 지불과 같은 수속을 하지 않아도 충분하기 때문에, 값이 더 비싸지는 것을 방지하는 것이 가능해진다.
또한, 고액의 라이선스 관리 장치를, 유저(1900)는, 도입할 필요는 없고, 제조 라인에는, 상기한 바와 같은 제조 장치 및/또는 정보 처리 장치를 설치하는 것만으로 충분하여, 유저의 부담을 저감시키는 것이 가능해진다. 또한, 판매자(제조자)(1910)는, 유저(1900)가 도입한 라이선스 관리 장치가, 적절하게 운용되고 있는지를 감시할 필요가 없기 때문에, 판매자(제조자)의 부담의 저감도 도모하는 것이 가능하다.
라이선스 요금이, 프리페이드되어 있으며, 프리페이드된 라이선스 요금을 초과해서 유상 소프트웨어를 인스톨하는 것이, 라이선스 관리 장치(1914)에 의해 제한된다. 그로 인해, 유상 소프트웨어의 제공 방법은, 다양한 방법을 채용하는 것이 가능하다. 예를 들어, 인터넷 등의 통신 회선이 없어도, 라이선스 관리가 가능하다. 또한, 허락이 없는 상태에서 유상 소프트웨어가 부정으로 사용되는 것을 방지하는 것이 가능하며, 라이선스 요금의 회수 누락을 방지하는 것이 가능하다.
유상 소프트웨어(1920-1, 1920-2)와 장치(1911)를, 동일한 판매자(제조자)(1910)가, 유저(1900)에게 제공하는 경우를 설명하였지만, 이것으로 한정되지 않는다. 유상 소프트웨어(1920-1, 1920-2)를, 유저(1900)에게 제공하는 제공자(소프트웨어 배신원)와, 장치(1911)를, 유저(1900)에게 제공하는 제공자(판매자, 제조자)는, 상이해도 된다.
예를 들어, 유상 소프트웨어(1920-1)를 소프트웨어 배신원 (제공자) A가, 유저(1900)에게 제공하고, 유상 소프트웨어(1920-2)를 소프트웨어 배신원 (제공자) B가, 유저(1900)에게 제공하고, 장치(1911)를, 판매자 및/또는 제조자(제공자)(1910)가, 유저(1900)에게 제공하도록 해도 된다. 즉, 유상 소프트웨어를 제공하는 배신원과, 장치(1911)를 제공하는 판매자(제조자)가 상이한 경우이다.
이 경우에도, 판매자(제조자)(1910)는, 라이선스 수에 상당하는 정보인 라이선스 정보를 저장하여, 장치(1911)를, 유저(1900)에게 판매한다. 유저(1900)는, 장치(1911)의 하드웨어 가격(HW 가격(1931))에, 라이선스 정보에 의해 나타내는 라이선스 수에 따른 라이선스 요금(프리페이드 가격(1930))을 부가한 금액(판매 금액, 구입 금액)을, 판매자(제조자)(1910)에게 지불한다. 판매자(제조자)(1910)는, 유저(1900)로부터 지불된 금액 중, 라이선스 요금(프리페이드 가격(1930)) 중의 일부를, 유상 소프트웨어(1920-1)의 라이선스 요금(1932-1)으로서, 소프트웨어 배신원 A로 분배하고, 나머지의 라이선스 요금을, 유상 소프트웨어(1920-2)의 라이선스 요금(1932-2)으로서, 소프트웨어 배신원 B로 분배한다. 이에 의해, 소프트웨어 배신원 A 및 B의 각각이, 유상 소프트웨어의 대가로서 라이선스 요금을 회수하는 것이 가능해진다.
또한, 라이선스 요금(프리페이드 가격(1930))을 분배할 때의 분배 비율은, 일정하게 해도 되고, 예를 들어 유저(1900)로부터 인기 있는 유상 소프트웨어를 확인하고, 인기 있는 유상 소프트웨어에 대한 분배금이 고액이 되도록 해도 된다.
이 경우, 소프트웨어 배신원 A, B도, 판매자(제조자)(1910)와 마찬가지로, 유저(1900)측에 도입되는 라이선스 관리 장치를 감시할 필요가 없어지기 때문에, 부담의 저감을 도모하는 것이 가능해진다. 또한, 라이선스 요금의 회수 누락을 방지하는 것이 가능해진다.
물론, 예를 들어 소프트웨어 배신원 B가, 판매자(제조자)(1910)인 경우에는, 라이선스 요금(1932-1)만을, 소프트웨어 배신원 A로 분배하는 것만이어도 된다.
실시 형태 1 내지 9에 있어서 설명한 전자 장치는, 라이선스 정보에 기초하여, 유상 소프트웨어의 다운로드를 관리하는 다운로드 관리 기능을 구비한 전자 장치라 간주할 수 있다. 다운로드 관리 기능을 구비한 전자 장치라 간주한 경우, 유상 소프트웨어의 대가인 라이선스 요금을 구하는 다운로드 과금 시스템이, 본 명세서에는 기재되어 있다고 간주할 수 있다. 이와 같이 간주한 경우, 다운로드 과금 시스템에 있어서는, 라이선스 기억부에, 라이선스 요금에 상당하는 라이선스 정보가, 미리 기억된다. 기억된 라이선스 정보에 기초하여, 유상 소프트웨어의 소프트웨어 기억부로의 저장이 제어되고, 미리 기억된 라이선스 정보에 의해 표시되는 라이선스 요금에 의해 라이선스가 허락되는 유상 소프트웨어의 실행이, 허가되게 된다.
또한, 실시 형태 1 내지 9에 있어서 설명한 반도체 장치(마이크로프로세서)는, 라이선스 정보에 기초하여, 다운로드를 관리하는 다운로드 관리 기능을 구비한 반도체 장치라 간주할 수 있다. 다운로드 관리 기능을 구비한 반도체 장치라 간주한 경우, 다운로드 과금 시스템이, 본 명세서에는 기재되어 있다고 간주할 수 있다. 이와 같이 간주한 경우, 다운로드 과금 시스템에 있어서는, 라이선스 기억 유닛에, 라이선스 요금에 상당하는 라이선스 정보가, 미리 기억된다. 기억된 라이선스 정보에 기초하여, 유상 소프트웨어의 소프트웨어 기억 유닛에 대한 저장 또는 실행이 제어되고, 미리 기억된 라이선스 정보에 의해 표현되는 라이선스 요금에 의해 라이선스가 허락되는 유상 소프트웨어의 실행이, 허가되게 된다. 여기서, 기억된 라이선스 정보에 기초하여, 유상 소프트웨어의 소프트웨어 기억 유닛에 대한 저장의 제어는, 예를 들어 실시 형태 1 및 실시 형태 5에서 설명한 바와 같이 하여 실행된다. 또한, 기억된 라이선스 정보에 기초하여, 유상 소프트웨어의 실행 제어는, 예를 들어 실시 형태 6에서 설명한 바와 같이 하여 실행된다.
본 명세서에 있어서는, 실시 형태 9에서 사용한 바와 같이, 실행 유닛 및 실행부를 총칭하여, 실행 장치라 칭하고, 소프트웨어 기억 유닛 및 소프트웨어 기억부를 총칭하여, 소프트웨어 기억 장치라고 칭하고, 라이선스 기억 유닛 및 라이선스 기억부를 총칭하여, 라이선스 기억 장치라고 칭하며, 라이선스 관리 유닛 및 라이선스 관리부를 총칭하여, 라이선스 관리 장치라 칭하는 경우가 있다.
본 명세서에는, 유상 소프트웨어의 라이선스를 관리하는 라이선스 관리 방법이 개시되어 있다고 간주할 수 있다. 이 경우, 라이선스 관리 방법은, 실행 장치와 소프트웨어 기억 장치를 구비하고 있다. 이 라이선스 관리 방법은, 유상 소프트웨어를 다운로드할 때, 라이선스 관리 장치에 저장되어 있는 라이선스 정보에 기초하여, 다운로드하는 유상 소프트웨어의 소프트웨어 기억 장치로의 저장 또는 실행을 제어하는 공정(라이선스 관리 공정)을 구비하고 있다고 간주할 수 있다. 라이선스 관리 공정에서, 라이선스 정보에 기초하여 저장 또는 실행이 제어됨으로써, 라이선스 정보에 의해 표현되는 라이선스 요금에 의해 라이선스가 허락된 유상 소프트웨어의 실행이 허가되게 된다. 여기서도, 기억된 라이선스 정보에 기초하여, 유상 소프트웨어의 소프트웨어 기억 유닛으로의 저장을 제어하는 것은, 예를 들어 실시 형태 1 및 실시 형태 5에 개시되어 있다. 또한, 기억된 라이선스 정보에 기초하여, 유상 소프트웨어의 실행을 제어하는 것은, 예를 들어 실시 형태 6에 개시되어 있다.
또한, 라이선스 관리 방법으로서 파악한 경우, 라이선스 기억 장치에 라이선스 정보를 기억시키는 것은, 판매자(제조자)가 행하기 때문에, 라이선스 관리 공정 전에 행해지는 공정(기억 공정)이다.
라이선스 정보는, 소프트웨어 기억 장치에 저장 가능한 유상 소프트웨어의 라이선스 수를 나타내는 정보라고 간주한 경우, 유상 소프트웨어를 저장할 때마다, 라인 센스 관리 장치에 의해 라이선스 수가 감소된다고 간주할 수 있다. 이와 같이 간주한 경우, 언인스톨에서는, 라이선스 수가 증가 또는 유지된다고 간주할 수 있다. 또한, 라이선스 정보는, 실행 장치에 의해 실행 가능한 유상 소프트웨어의 라이선스 수를 나타내는 정보라고 간주한 경우, 실행 가능한 유상 소프트웨어가 늘어남으로써, 라이선스 관리 장치에 의해 라이선스 수가 감소된다고 간주할 수 있다.
<부기>
본 명세서에는, 복수의 발명이 개시되어 있으며, 그 중 몇 개는, 청구범위에 기재하고 있지만, 이 이외의 발명도 개시하고 있으며, 그 대표적인 것을 다음에 열기한다.
(A) 다운로드 관리 기능을 구비한 전자 장치를 사용한 다운로드 과금 시스템으로서,
상기 전자 장치는,
소프트웨어를 실행하는 실행부와,
상기 실행부에 결합된 소프트웨어 기억부와,
소프트웨어의 라이선스를 허락하는 라이선스 수를 나타내는 라이선스 정보를 기억하는 라이선스 기억부와,
라이선스의 허락이 요구되는 소프트웨어를 다운로드할 때, 상기 라이선스 기억부에 저장되어 있는 라이선스 정보에 기초하여, 다운로드하는 소프트웨어의 상기 소프트웨어 기억부로의 저장을 제어하는 라이선스 관리부를 구비하고,
상기 라이선스 기억부에, 라이선스를 허락하는 라이선스 수를 나타내는 라이선스 정보가 미리 기억되고, 기억된 라이선스 정보에 기초하여, 라이선스의 허락이 요구되는 소프트웨어의 상기 소프트웨어 기억부로의 저장이 제어되는, 다운로드 과금 시스템.
(B) 상기 (A)에 기재된 다운로드 과금 시스템에 있어서,
상기 라이선스 기억부에는, 복수의 소프트웨어의 라이선스를 허락하는 라이선스 수를 나타내는 라이선스 정보가, 미리 기억되고,
상기 라이선스 관리부는, 미리 기억된 라이선스 정보에 의해 나타내는 라이선스 수까지, 라이선스의 허락이 요구되는 소프트웨어를 상기 소프트웨어 기억부에 저장하는, 다운로드 과금 시스템.
(C) 상기 (B)에 기재된 다운로드 과금 시스템에 있어서,
상기 라이선스 관리부는, 라이선스의 허락이 요구되는 소프트웨어를, 상기 소프트웨어 기억부에 저장했을 때, 상기 라이선스 정보에 의해 나타내는 라이선스 수를 감소시키는, 다운로드 과금 시스템.
(D) 상기 (C)에 기재된 다운로드 과금 시스템에 있어서,
라이선스의 허락이 요구되는 소프트웨어가 언인스톨되었을 때, 상기 라이선스 관리부는, 상기 라이선스 정보에 의해 나타내는 라이선스 수를 증가시키는, 다운로드 과금 시스템.
(E) 상기 (C)에 기재된 다운로드 과금 시스템에 있어서,
라이선스의 허락이 요구되는 소프트웨어가 언인스톨되었을 때, 상기 라이선스 관리부는, 상기 라이선스 정보에 의해 나타내는 라이선스 수를 유지하는, 다운로드 과금 시스템.
(F) 다운로드 관리 기능을 구비한 반도체 장치를 사용한 다운로드 과금 시스템으로서,
상기 반도체 장치는,
소프트웨어를 실행하는 실행 유닛과,
상기 실행 유닛에 결합된 소프트웨어 기억 유닛과,
소프트웨어의 라이선스를 허락하는 라이선스 수를 나타내는 라이선스 정보를 기억하는 라이선스 기억 유닛과,
라이선스의 허락이 요구되는 소프트웨어를 다운로드할 때, 상기 라이선스 기억 유닛에 저장되어 있는 라이선스 정보에 기초하여, 다운로드하는 소프트웨어의 상기 소프트웨어 기억 유닛에 대한 저장 또는 상기 실행 유닛에 의한 실행을, 제어하는 라이선스 관리 유닛
을 구비하고,
상기 라이선스 기억 유닛에, 라이선스 정보가 미리 기억되고, 기억된 라이선스 정보에 기초하여, 라이선스의 허락이 요구되는 소프트웨어의 상기 소프트웨어 기억 유닛에 대한 저장 또는 상기 실행 유닛에 의한 실행이 제어되는, 다운로드 과금 시스템.
(G) 상기 (F)에 기재된 다운로드 과금 시스템에 있어서,
상기 라이선스 기억 유닛에는, 복수의 소프트웨어의 라이선스를 허락하는 라이선스 수를 나타내는 라이선스 정보가, 미리 기억되어, 상기 반도체 장치는 제공되고,
상기 라이선스 관리 유닛은, 미리 기억된 라이선스 정보에 의해 나타내는 라이선스 수까지, 라이선스의 허락이 요구되는 소프트웨어를, 상기 소프트웨어 기억 유닛에 저장 또는 상기 실행 유닛에 의해 실행하는 것을 허가하는, 다운로드 과금 시스템.
(H) 소프트웨어를 실행하는 실행부와,
상기 실행부에 결합된 소프트웨어 기억부와,
라이선스 정보를 저장하는 라이선스 기억부와,
라이선스의 허락이 요구되는 소프트웨어의 상기 소프트웨어 기억부로의 저장을, 상기 라이선스 정보에 기초하여 제어하는 라이선스 관리부
를 구비하고,
소프트웨어를 제공하는 제공 장치로부터, 라이선스의 허락이 요구되는 소프트웨어의 제공을 받을 때, 상기 라이선스 관리부가, 상기 라이선스 정보에 기초하여, 상기 소프트웨어 기억부로의 상기 소프트웨어의 저장을 제어하고,
상기 라이선스의 허락이 요구되는 소프트웨어는, 라이선스의 허락이 요구되는 것을 나타내는 속성 정보를 구비하고,
상기 라이선스 관리부가, 소프트웨어가 구비하는 속성 정보에 기초하여, 라이선스의 허락이 요구되는 소프트웨어인지 여부를 판정하는, 라이선스 관리 시스템.
(I) 상기 (H)에 기재된 라이선스 관리 시스템에 있어서,
상기 제공 장치는, 라이선스의 허락을 요구하는 소프트웨어를 저장한 기억 매체를 구비하는, 라이선스 관리 시스템.
(J) 상기 (I)에 기재된 라이선스 관리 시스템에 있어서,
상기 제공 장치는, 통신 회선을 통하여, 라이선스의 허락을 요구하는 소프트웨어를 제공하는, 라이선스 관리 시스템.
(K) 소프트웨어를 실행하는 실행 장치를 구비한 장치에 있어서, 라이선스 허락이 요구되는 소프트웨어를 실행하는 경우에, 라이선스 허락의 대가로서 지불되는 라이선스 요금을 회수하는, 라이선스 요금 회수 시스템으로서,
상기 장치는, 상기 실행 장치에 결합된 소프트웨어 기억 장치와, 라이선스 기억 장치와, 상기 라이선스 기억 장치에 기억된 라이선스 정보에 기초하여, 라이선스 허락이 요구되는 소프트웨어의 상기 소프트웨어 기억 장치로의 저장 또는 상기 실행 장치에 의한 실행을 제어하는 라이선스 관리 장치를 구비하고,
상기 라이선스 기억 장치에는, 소정의 라이선스 요금에 상당하는 라이선스 정보가, 미리 기억되고, 상기 장치는, 상기 소정의 라이선스 요금을 포함한 가격으로, 제공되고,
구입된 상기 장치에 있어서, 라이선스 허락이 요구되는 소프트웨어를 저장 또는 실행할 때, 상기 라이선스 관리 장치는, 상기 라이선스 기억 장치에 기억되어 있는 라이선스 정보에 의해 나타내는 요금이, 소프트웨어의 라이선스 요금을 충족할 때, 소프트웨어를 상기 소프트웨어 기억 장치에 저장 또는 상기 실행 장치에 의해 실행하는 것을 허가하는, 라이선스 요금 회수 시스템.
(L) 상기 (K)에 기재된 라이선스 요금 회수 시스템에 있어서,
상기 소정의 라이선스 요금은, 복수의 소프트웨어의 라이선스 요금을 초과한 요금이며,
상기 라이선스 관리 장치는, 상기 라이선스 기억 장치에 기억되어 있는 라이선스 정보에 의해 나타내는 요금이,
소프트웨어의 라이선스 요금을 충족할 때, 상기 라이선스 기억 장치에 기억되어 있는 라이선스 정보에 의해 나타내는 요금으로부터, 소프트웨어의 라이선스 요금을 감산함으로써 얻어지는 요금에 상당하는 라이선스 정보를, 상기 라이선스 기억 장치에 기억시키는, 라이선스 요금 회수 시스템.
(M) 상기 (L)에 기재된 라이선스 요금 회수 시스템에 있어서,
상기 장치의 제공자로부터, 라이선스 허락이 요구되는 소프트웨어를 제공하는 제공자에게, 라이선스 요금에 대응한 요금의 지급이 행해지는, 라이선스 요금 회수 시스템.
(N) 상기 (L)에 기재된 라이선스 요금 회수 시스템에 있어서,
라이선스 허락이 요구되는 소프트웨어가 언인스톨되었을 때, 상기 라이선스 관리 장치는, 언인스톨된 소프트웨어의 라이선스 요금을, 상기 라이선스 기억 장치에 기억되어 있는 라이선스 정보에 의해 나타내는 요금에 가산함으로써 얻어지는 요금에 상당하는 라이선스 정보를, 상기 라이선스 기억 장치에 기억시키는, 라이선스 요금 회수 시스템.
(O) 상기 (L)에 기재된 라이선스 요금 회수 시스템에 있어서,
상기 소프트웨어 장치는, 라이선스 허락이 요구되는 소프트웨어의 기억이 허가되는 제1 기억 영역과, 라이선스 허락이 요구되는 소프트웨어의 기억이 허가되지 않는 제2 기억 영역을 구비하고, 상기 라이선스 정보에 의해, 제1 기억 영역과 제2 기억 영역의 크기가 바뀌고, 상기 제1 기억 영역의 크기가 커지는 데 따라 고가로 되는, 라이선스 요금 회수 시스템.
(P) 소프트웨어를 실행하는 실행 장치와,
상기 실행 장치에 결합된 소프트웨어 기억 장치와,
상기 소프트웨어 기억 장치의 영역 중, 라이선스의 허락이 요구되는 소프트웨어의 저장 또는 실행이 가능한 영역을 지정하는 영역 지정 신호를 출력하는 라이선스 관리 장치
를 구비하고, 라이선스의 허락이 요구되는 소프트웨어가, 상기 영역 지정 신호에 의해 지정되는 영역 외로의 저장 또는 상기 영역 지정 신호에 의해 지정되는 영역 외에 저장되어 있는 라이선스의 허락이 요구되는 소프트웨어의 실행을 금지하는, 장치.
(Q) 상기 (P)에 기재된 장치에 있어서,
상기 장치는, 반도체 장치이다.
(R) 상기 (Q)에 기재된 장치에 있어서,
상기 소프트웨어 기억 장치는, 플래시 메모리이다.
(S) 상기 (P)에 기재된 장치에 있어서,
상기 장치는, 전자 장치이다.
이상 본 발명자에 의해 이루어진 발명을, 상기 실시 형태에 기초해 구체적으로 설명하였지만, 본 발명은, 상기 실시 형태로 한정되는 것이 아니라, 그 요지를 일탈하지 않는 범위에서 다양하게 변경 가능하다.
1000: 전자 장치
1001: 실행부
1002: 소프트웨어 기억부
1003: 라이선스 기억부
1004: 라이선스 관리부
1005: 소프트웨어 기억 장치
1100: 반도체 장치
1101, 1401: 실행 유닛
1102, 1402: 소프트웨어 기억 유닛
1103: 라이선스 기억 유닛
1104, 1403: 라이선스 관리 유닛
1105: 플래시 라이터
1400, 1400-1 내지 1400-4: 마이크로프로세서
1900: 유저
1910: 판매자(제조자)
1901, 1911: 장치
1912: 소프트웨어 기억 장치
1913: 라이선스 기억 장치
1914: 라이선스 관리 장치
1930: 프리페이드 가격
1931: 하드웨어 가격

Claims (20)

  1. 소프트웨어를 실행하는 실행 장치와, 상기 실행 장치에 결합된 소프트웨어 기억 장치를 구비한 라이선스 관리 방법으로서,
    상기 라이선스 관리 방법은,
    소프트웨어의 라이선스를 허락하는 라이선스 수를 나타내는 라이선스 정보를 기억하는 라이선스 기억 장치를 구비하고,
    라이선스의 허락이 요구되는 소프트웨어를 다운로드할 때, 상기 라이선스 기억 장치에 저장되어 있는 라이선스 정보에 기초하여, 다운로드하는 소프트웨어의 상기 소프트웨어 기억 장치로의 저장 또는 상기 실행 장치에 의한 실행을 제어하는 라이선스 관리 공정을 구비하는, 라이선스 관리 방법.
  2. 제1항에 있어서,
    상기 라이선스 관리 방법은,
    상기 라이선스 관리 공정보다도 전으로서, 상기 라이선스 기억 장치에, 상기 라이선스 정보를 기억시키는 기억 공정을 구비하는, 라이선스 관리 방법.
  3. 제2항에 있어서,
    상기 기억 공정에 있어서, 복수의 소프트웨어의 라이선스를 허락하는 라이선스 수를 나타내는 라이선스 정보가, 상기 라이선스 기억 장치에 기억되고,
    상기 소프트웨어 기억 장치에 기억된 라이선스 정보에 의해 나타내는 라이선스 수가, 상기 라이선스 관리 공정에 있어서 감산되는, 라이선스 관리 방법.
  4. 소프트웨어를 실행하는 실행 유닛과,
    상기 실행 유닛에 결합된 소프트웨어 기억 유닛과,
    라이선스 정보를 저장하는 라이선스 기억 유닛과,
    라이선스의 허락이 요구되는 소프트웨어의 상기 소프트웨어 기억 유닛으로의 저장 또는 상기 실행 유닛에 의한 실행을, 상기 라이선스 정보에 기초하여 제어하는 라이선스 관리 유닛을 구비하는, 라이선스 관리에 적합한 반도체 장치.
  5. 제4항에 있어서,
    상기 라이선스 정보는, 소프트웨어의 라이선스 수를 나타내는 정보이며,
    상기 라이선스 관리 유닛은, 상기 라이선스 정보에 의해 나타내는 라이선스 수까지, 라이선스의 허락이 요구되는 소프트웨어를, 상기 소프트웨어 기억 유닛에 저장 또는 상기 실행 유닛에 의해 실행하는 것을 허가하는, 라이선스 관리에 적합한 반도체 장치.
  6. 제5항에 있어서,
    상기 라이선스 관리 유닛은, 라이선스의 허락이 요구되는 소프트웨어를, 상기 소프트웨어 기억 유닛에 저장했을 때, 상기 라이선스 정보에 의해 나타내는 라이선스 수의 수를 감소시키는, 라이선스 관리에 적합한 반도체 장치.
  7. 제6항에 있어서,
    라이선스의 허락이 요구되는 소프트웨어가 언인스톨되었을 때, 상기 라이선스 관리 유닛은, 상기 라이선스 정보에 의해 나타내는 라이선스 수의 수를 증가시키는, 라이선스 관리에 적합한 반도체 장치.
  8. 제6항에 있어서,
    라이선스의 허락이 요구되는 소프트웨어가 언인스톨되었을 때, 상기 라이선스 관리 유닛은, 상기 라이선스 정보에 의해 나타내는 라이선스 수의 수를 유지하는, 라이선스 관리에 적합한 반도체 장치.
  9. 제6항에 있어서,
    상기 라이선스의 허락이 요구되는 소프트웨어는, 라이선스의 허락이 요구되는 것을 나타내는 속성 정보를 구비하고,
    상기 라이선스 관리 유닛은, 소프트웨어가 구비하는 속성 정보에 기초하여, 라이선스의 허락이 요구되는 소프트웨어인지 여부를 판정하는, 라이선스 관리에 적합한 반도체 장치.
  10. 제6항에 있어서,
    상기 라이선스 기억 유닛은, 인스톨한 소프트웨어의 이력 정보를 저장하고, 상기 라이선스 관리 유닛은, 상기 이력 정보와 일치하는 소프트웨어의 재인스톨일 때, 상기 라이선스 정보에 의해 나타내는 라이선스 수의 수를 유지하는, 라이선스 관리에 적합한 반도체 장치.
  11. 제5항에 있어서,
    상기 라이선스 정보는, 상기 소프트웨어 기억 유닛에 있어서의 영역 중, 라이선스 수에 상당하는 기억 용량을 나타내는 정보인, 라이선스 관리에 적합한 반도체 장치.
  12. 제5항에 있어서,
    상기 라이선스 정보는, 라이선스 수에 상당하는 포인트를 나타내는 정보인, 라이선스 관리에 적합한 반도체 장치.
  13. 제4항에 있어서,
    상기 라이선스 관리 유닛은, 상기 실행 유닛에 의해 실행되는 라이선스의 허락이 요구되는 소프트웨어의 기동 횟수가, 소정의 실행 횟수를 초과했을 때, 상기 소프트웨어의 기동을 금지하는, 라이선스 관리에 적합한 반도체 장치.
  14. 제4항에 있어서,
    상기 실행 유닛, 상기 소프트웨어 기억 유닛 및 상기 라이선스 관리 유닛은, 1개의 반도체 칩에 형성되어 있는, 라이선스 관리에 적합한 반도체 장치.
  15. 제6항에 있어서,
    상기 반도체 장치는, 상기 라이선스 기억 유닛에, 미리 정해진 라이선스 정보가 기억되어, 제공되는, 라이선스 관리에 적합한 반도체 장치.
  16. 소프트웨어를 실행하는 실행부와,
    상기 실행부에 결합된 소프트웨어 기억부와,
    라이선스 정보를 저장하는 라이선스 기억부와,
    라이선스의 허락이 요구되는 소프트웨어의 상기 소프트웨어 기억부에 대한 저장을, 상기 라이선스 정보에 기초하여 제어하는 라이선스 관리부
    를 구비하고,
    소프트웨어를 제공하는 제공 장치로부터, 라이선스의 허락이 요구되는 소프트웨어의 제공을 받을 때, 상기 라이선스 관리부가, 상기 라이선스 정보에 기초하여, 상기 소프트웨어 기억부로의 상기 소프트웨어의 저장을 제어하는, 라이선스 관리 시스템.
  17. 제16항에 있어서,
    상기 라이선스 정보는, 라이선스의 허락이 요구되는 소프트웨어를, 상기 소프트웨어 기억부에 저장하는 것이 가능한 라이선스 수를 나타내는 정보이며,
    상기 라이선스 관리부는, 상기 라이선스 정보에 의해 나타내는 라이선스 수까지, 라이선스의 허락이 요구되는 소프트웨어를, 상기 소프트웨어 기억부에 저장하는, 라이선스 관리 시스템.
  18. 제17항에 있어서,
    상기 라이선스 관리부는, 라이선스의 허락이 요구되는 소프트웨어를, 상기 소프트웨어 기억부에 저장했을 때, 상기 라이선스 정보에 의해 나타내는 라이선스 수의 수를 감소시키는, 라이선스 관리 시스템.
  19. 제18항에 있어서,
    라이선스의 허락이 요구되는 소프트웨어가 언인스톨되었을 때, 상기 라이선스 관리부는, 상기 라이선스 정보에 의해 나타내는 라이선스 수의 수를 증가시키는, 라이선스 관리 시스템.
  20. 제18항에 있어서,
    라이선스의 허락이 요구되는 소프트웨어가 언인스톨되었을 때, 상기 라이선스 관리부는, 상기 라이선스 정보에 의해 나타내는 라이선스 수의 수를 유지하는, 라이선스 관리 시스템.
KR1020177016449A 2015-08-26 2015-08-26 라이선스 관리 방법, 라이선스 관리에 적합한 반도체 장치 및 라이선스 관리 시스템 KR20180044835A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/074020 WO2017033310A1 (ja) 2015-08-26 2015-08-26 ライセンス管理方法、ライセンス管理に適した半導体装置およびライセンス管理システム

Publications (1)

Publication Number Publication Date
KR20180044835A true KR20180044835A (ko) 2018-05-03

Family

ID=58101210

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177016449A KR20180044835A (ko) 2015-08-26 2015-08-26 라이선스 관리 방법, 라이선스 관리에 적합한 반도체 장치 및 라이선스 관리 시스템

Country Status (7)

Country Link
US (1) US10936702B2 (ko)
EP (1) EP3343417A4 (ko)
JP (1) JP6439051B2 (ko)
KR (1) KR20180044835A (ko)
CN (1) CN107251032B (ko)
TW (1) TW201719473A (ko)
WO (1) WO2017033310A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11586710B2 (en) * 2019-12-24 2023-02-21 Microsoft Technology Licensing, Llc System and method for protecting software licensing information via a trusted platform module
US11681438B2 (en) * 2021-05-28 2023-06-20 Dell Products L.P. Minimizing cost of disk fulfillment

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3366143B2 (ja) 1995-01-10 2003-01-14 富士通株式会社 ソフトウェア流通システムにおける識別子管理装置および方法ならびにソフトウェア流通管理装置および方法
US5671412A (en) * 1995-07-28 1997-09-23 Globetrotter Software, Incorporated License management system for software applications
JP3688424B2 (ja) 1997-03-27 2005-08-31 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および方法、並びに記録媒体
JP3161526B2 (ja) 1998-06-25 2001-04-25 日本電気株式会社 クライアント・サーバ型環境におけるアプリケーションソフトウエアのコピーガード方法とシステム
US6920567B1 (en) 1999-04-07 2005-07-19 Viatech Technologies Inc. System and embedded license control mechanism for the creation and distribution of digital content files and enforcement of licensed use of the digital content files
JP2001266026A (ja) 2000-03-15 2001-09-28 Ntt Data Corp プリペイドシステム
EP1243998B1 (en) * 2001-03-21 2017-04-19 Excalibur IP, LLC A technique for license management and online software license enforcement
JP2004086588A (ja) 2002-08-27 2004-03-18 Ntt Data Corp ソフトウェア不正使用防止システム
JP4039923B2 (ja) * 2002-09-20 2008-01-30 富士通株式会社 ソフトウェア実行管理装置、ソフトウェア実行管理方法、およびソフトウェア実行管理プログラム
US7849017B2 (en) * 2006-06-29 2010-12-07 Flexera Software, Inc. Enforced seat-based licensing
JP5079342B2 (ja) * 2007-01-22 2012-11-21 ルネサスエレクトロニクス株式会社 マルチプロセッサ装置
JP2010086461A (ja) * 2008-10-02 2010-04-15 Sony Corp ライセンス管理装置およびライセンス管理方法、ならびに、ライセンス管理システム
JP5365286B2 (ja) 2009-03-18 2013-12-11 株式会社リコー 情報処理装置、インストール管理方法、インストール管理プログラム、および遠隔管理システム
JP5476823B2 (ja) * 2009-07-06 2014-04-23 株式会社リコー 機器管理装置、機器管理システム、ソフトウェア管理方法、ソフトウェア管理プログラム、及びそのプログラムを記録した記録媒体
JP2011253417A (ja) * 2010-06-03 2011-12-15 Ricoh Co Ltd 情報処理装置、プログラム導入支援方法、及びプログラム導入支援プログラム
JP2013088394A (ja) * 2011-10-21 2013-05-13 Renesas Electronics Corp 半導体装置
JP6291826B2 (ja) * 2013-02-06 2018-03-14 株式会社リコー 情報処理システム及びライセンス管理方法

Also Published As

Publication number Publication date
EP3343417A4 (en) 2019-04-24
TW201719473A (zh) 2017-06-01
US20180181726A1 (en) 2018-06-28
EP3343417A1 (en) 2018-07-04
JP6439051B2 (ja) 2018-12-19
WO2017033310A1 (ja) 2017-03-02
JPWO2017033310A1 (ja) 2017-10-19
US10936702B2 (en) 2021-03-02
CN107251032A (zh) 2017-10-13
CN107251032B (zh) 2021-11-05

Similar Documents

Publication Publication Date Title
JP5778865B2 (ja) アプリケーションに機能性を追加するためのサービス
JP3507594B2 (ja) コンピュータ
KR101157433B1 (ko) 사용조건으로서 휴대 데이터 저장 디바이스의 사용자에게메시지의 전달
RU2388051C2 (ru) Случайный пароль, автоматически формируемый базовой системой ввода-вывода (bios) для защиты устройства хранения данных
US8522048B2 (en) Content delivery system
US20080319910A1 (en) Metered Pay-As-You-Go Computing Experience
KR102107843B1 (ko) 펌웨어 업데이트 방법 및 이를 사용한 전자 기기
JP2004102335A (ja) ソフトウェアのライセンス管理方式および方法、並びに記録媒体
CN101523397A (zh) 在用户之间传递经许可的数字内容
US20170076102A1 (en) Semiconductor device
JP2007199858A (ja) ライセンス管理のためのプログラム、システム及び方法
CN105830021B (zh) 可更新集成电路无线电
CN101814122A (zh) 一种软件使用授权信息的监控方法和系统
JP3516162B2 (ja) 半導体集積回路
US7987512B2 (en) BIOS based secure execution environment
JP6439051B2 (ja) ライセンス管理に適した半導体装置
BRPI0707225A2 (pt) reforço baseado em e/s de modos de operação de computador de múltiplos nìves
US10262309B1 (en) Augmenting a BIOS with new programs
JP2017068490A (ja) ライセンス管理方法およびライセンス管理に適した半導体装置
JP2001125961A (ja) 情報ダウンロード用メモリ装置
CN110677242B (zh) 秘钥处理方法、秘钥处理装置及终端设备
JPH10143362A (ja) ソフトウェアパッケージの使用権管理方法及び装置並びにその方法を可能にする記録媒体
JP6340872B2 (ja) 購入制御装置、購入制御方法及び購入制御プログラム
KR100690601B1 (ko) 데이터 관리 시스템 및 그 방법
WO2020070873A1 (ja) Cpuユニット、プログラマブルロジックコントローラ、方法、プログラム、及びエンジニアリングツール