KR20090122909A - 재생장치, 시스템 lsi, 초기화방법 - Google Patents

재생장치, 시스템 lsi, 초기화방법 Download PDF

Info

Publication number
KR20090122909A
KR20090122909A KR1020097014442A KR20097014442A KR20090122909A KR 20090122909 A KR20090122909 A KR 20090122909A KR 1020097014442 A KR1020097014442 A KR 1020097014442A KR 20097014442 A KR20097014442 A KR 20097014442A KR 20090122909 A KR20090122909 A KR 20090122909A
Authority
KR
South Korea
Prior art keywords
benchmark
program
firmware
application
benchmark score
Prior art date
Application number
KR1020097014442A
Other languages
English (en)
Other versions
KR101430279B1 (ko
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 KR20090122909A publication Critical patent/KR20090122909A/ko
Application granted granted Critical
Publication of KR101430279B1 publication Critical patent/KR101430279B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3428Benchmarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Stored Programmes (AREA)

Abstract

재생장치(102)의 하드웨어는 드라이브(1), 디코더를 구비하고 있으며, 펌웨어(22)는 BD-J 애플리케이션에 따라서 드라이브(1)에 장착된 BD-ROM의 액세스를 하여, 디코더가 AV 재생을 하게 한다. 드라이브부는 로컬 스토리지를 구성하는 것이다. 펌웨어(22)에는 벤치마크 스코어가 미리 포함되어 있으며, 이 벤치마크 스코어는 펌웨어(22)를 통해서 하드웨어에 처리를 요구하고나서부터 응답이 되돌아올 때까지의 턴 어라운드 시간을 나타낸다. 이러한 벤치마크 스코어는 펌웨어(22)가 최초로 실행된 때에 로컬 스토리지에서의 애플리케이션 데이터영역에 기록된다.
재생장치, 펌웨어, 벤치마크, 스코어, 턴, 어라운드

Description

재생장치, 시스템 LSI, 초기화방법{REPRODUCING APPARATUS, SYSTEM LSI, AND INITIALIZATION METHOD}
본 발명은 애플리케이션 실행기술의 기술분야에 속하는 발명이다.
애플리케이션 실행기술은 오브젝트 지향 언어로 기술된 클래스 구조체로부터 그 인스턴스인 클래스 오브젝트를 생성하여 가상머신의 플랫폼에 제공함으로써 오브젝트 지향 언어로 기술된 애플리케이션을 가상머신에 실행하게 하는 기술이다. 그 응용물인 공업제품으로는 BD-ROM의 재생기능을 갖는 재생장치 등이 있다.
이러한 재생장치는 다양한 제조기업(manufacturer라고 불린다)에 의해서 개발되며, 매년 모델 교체가 이루어진다. MPU나 메모리의 양, 버스밴드 폭, 그래픽 엑셀러레이터(graphic accelerator) 등의 하드웨어 부품이 장치별로 다르므로 애플리케이션의 처리속도는 재생장치의 하드웨어 부품의 차이에 따라서 크게 변화한다.
하드웨어의 성능 차가 장치별로 다르므로, 애플리케이션이 처리를 실행하는 경우에는 처리부하를 변화시킬 필요가 생긴다. 이러한 부하변화의 대상으로는 예를 들어 GUI에서의 애니메이션 매수의 증감이 있다. 하드웨어의 성능이 높은 재생장치에서는 GUI를 위한 그래픽스 데이터의 로드 및 신장을 고속으로 할 수 있으므로 애니메이션의 매수를 증가시킨다. 역으로, 하드웨어의 성능이 낮은 재생장치에서는 애니메이션의 매수를 줄인다. 이러한 매수의 증감을 함으로써 사용자 조작이 있는 경우의 응답속도는 하드웨어의 성능 차에 좌우되지 않고 어느 일정한 수준을 유지할 수 있다. 이와 같은 부하변화의 실현 시의 애플리케이션은 실행의 주체가 되는 하드웨어의 성능이 어느 정도의 것인가를 알지 않으면 안 된다. 그래서 애플리케이션이 기동이 된 때에 최초로 처리성능을 계측하는 벤치마크 테스트(benckmark test)를 실행하는 것을 생각할 수 있다.
벤치마크 테스트를 이용한 처리부하의 변경방식에 관해서는 특허문헌 1에 기재된 문헌 공지의 발명이 있다.
특허문헌 1 : 일본국 특개 2002-99430호 공보
그런데 BD-ROM의 재생장치는 다채로운 기능을 구비하고 있으므로 처리부하의 변경 시에는 많은 하드웨어 처리에 대한 벤치마크 테스트를 실행해야 한다. 여기서, 애플리케이션의 실행에 앞서 많은 기능에 대한 벤치마크 테스트를 망라하려고 하면 벤치마크 테스트의 실행에 매우 많은 시간이 걸려서, 사용자가 애플리케이션을 기동하고나서부터 실제로 처리를 시작할 때까지의 지연시간, 즉, 스타팅 딜레이(starting delay)가 커진다고 하는 문제가 있다.
그래서 떠올릴 수 있는 것은 벤치마크 결과의 재이용을 실현한다고 하는 생각이다. 구체적으로 말하면, 재생장치의 표준화 추진단체에 의해서 공식으로 인정된 애플리케이션에 벤치마크 테스트를 실행시키고, 그렇게 하여 계측한 값을 스토리지에 기록하여, 그 결과를 다른 애플리케이션에 이용하게 하는 것이다. 공식 애플리케이션에 벤치마크 테스트를 실행시키면 다른 애플리케이션은 매회 벤치마크 테스트를 실행하지 않고도 그 수치를 재이용할 수 있으므로, 각각의 애플리케이션에 대한 스타팅 딜레이는 작아진다. 공식 애플리케이션에 의한 벤치마크 테스트가 필요한 기능을 많이 망라한 것이라면 매우 세밀한 부하조정을 실현할 수 있다.
그러나 하드웨어와 애플리케이션에 개재하는 펌웨어(firmware)는 부정기적으로 갱신되는 것이다. 펌웨어는 하드웨어의 기본적인 제어를 실행하기 위해서 기기에 내장된 소프트웨어이다. 공식 애플리케이션으로 많은 기능을 망라한 벤치마크 테스트가 실행되었다고 하더라도 그 벤치마크의 결과가 오래된 펌웨어를 대상으로 한 것이라면 처리부하의 결정에 도움이 되지 않는다. 왜냐하면, 기능을 실행할 때의 속도는 펌웨어에서의 오버헤드에 크게 의거하기 때문이다. 또, 연산 알고리즘이 변경된 경우에도 재생장치의 성능이 변화하는 경우가 있다.
이와 같이, 애플리케이션의 실행에 앞서 많은 기능을 망라한 벤치마크를 실행하려고 하면 본래의 처리의 실행까지 큰 지연이 발생하고, 또, 공식 애플리케이션에 벤치마크를 실행시켜서 결과를 재이용하려고 하면 펌웨어의 부정기적인 업 데이트가 발생하는 경우 벤치마크의 유효성이 손상된다고 하는 문제가 있다.
본 발명의 목적은 애플리케이션의 기동 시의 지연을 없애면서도 많은 기능을 망라한 벤치마크의 결과를 애플리케이션에 이용하게 할 수 있는 재생장치를 제공하는 것이다.
상기 과제를 해결하기 위해서 본 발명의 재생장치는, 기록매체로부터 데이터를 판독하는 드라이브부, 상기 판독한 데이터에 포함되는 AV 데이터를 재생하는 재생부, 프로그램을 실행하는 처리부를 구비한 하드웨어부와, 상기 하드웨어부를 제어하는 펌웨어 프로그램과, 상기 처리부가 상기 펌웨어 프로그램을 실행하는 경우, 소정의 조건을 만족하면 초기화 처리를 하는 초기화부와, 소정의 기록영역을 갖는 기록부를 구비하고, 상기 펌웨어 프로그램에는 벤치마크 스코어가 포함되어 있으며, 상기 벤치마크 스코어는 상기 드라이브부에 의해서 상기 기록매체로부터 판독된 벤치마크 프로그램을 상기 처리부에 의해서 실행한 때에, 상기 실행되는 벤치마크 프로그램으로부터의 명령에 따라서, 상기 처리부에 의해서 실행되는 펌웨어 프로그램을 통해서 상기 하드웨어부에 소정의 처리를 행하게 한 결과이고, 상기 재생장치의 처리능력을 나타내는 지표이며, 상기 초기화부는 상기 처리부가 상기 펌웨어 프로그램을 최초로 실행하는 경우, 상기 펌웨어 프로그램에 포함되어 있는 벤치마크 스코어를 상기 기록부에서의 소정의 기록영역에 기록함으로써 상기 기록영역에 기록한 벤치마크 스코어를 상기 처리부에 의해 실행되는 애플리케이션 프로그램이 액세스할 수 있도록 하는 것을 특징으로 한다.
본 발명의 재생장치는 상술한 것과 같이 구성되어 있으므로, 애플리케이션의 스타팅 딜레이의 대책으로, 초기화부는 펌웨어의 최초의 실행 시에 벤치마크 스코어를 기록부의 소정의 기록영역에 기록한다. 벤치마크 스코어를 기록부의 소정의 기록영역에 기록하기 위한 시간지연이 펌웨어의 최초의 실행 시에는 발생하지만 애플리케이션의 기동 시에는 발생하지 않는다. 이에 의해, 애플리케이션을 기동할 때의 스타팅 딜레이는 발생조차 하지 않게 된다.
이와 같이, 스타팅 딜레이에 대한 영향을 없앰으로써 사용자 조작에 대한 응답을 고도로 유지할 수 있다.
애플리케이션은 스스로 벤치마크 스코어를 실행하지 않아도, 재생장치의 하드웨어 부품에 관한 필요한 정보를 기록부의 소정의 기록영역에 기록한 벤치마크 스코어로부터 취득할 수 있으므로, 애플리케이션의 동작은 벤치마크 스코어 테스트의 실행분만큼 단축되게 된다.
여기서, 펌웨어에 벤치마크 스코어가 포함되어 있는 경우, 애플리케이션이 펌웨어에 포함된 벤치마크 스코어로 직접 액세스하는 것에 기인하여 펌웨어의 파괴를 초래할 우려가 있다. 펌웨어의 파괴대책으로 초기화부는 애플리케이션의 기동에 앞서 펌웨어에 포함된 벤치마크 스코어를 애플리케이션 데이터영역에 기록한다.
이렇게 함으로써 재생장치에서의 펌웨어에 포함된 벤치마크 스코어가 직접 애플리케이션에 의해서 액세스 되는 일은 없다. 따라서, 펌웨어가 불필요하게 액세스 되는 것에 의한 펌웨어(또는, 펌웨어를 저장하는 메모리 등의 기록매체)의 파괴나 펌웨어의 내용이 폭로된다고 하는 위험도 피할 수 있다.
또, 벤치마크 스코어의 기록은 펌웨어가 기동 될 때마다 이루어지는 것은 아니며, 펌웨어의 최초의 실행 시에 이루어지게 되어서, 벤치마크 스코어 기록의 빈도는 펌웨어가 기동 될 때마다 이루어지는 것에 비하여 상당히 낮아진다.
또, 애플리케이션이 이 벤치마크 스코어를 이용함으로써, 예를 들어 재생장치상에서 애니메이션을 묘화(rendering)할 때의 부하결정을 더 치밀한 것으로 할 수 있다. 이렇게 함으로써 하드웨어의 성능에 적합한 부하로 재생장치상에서 필요한 처리를 실행할 수 있게 된다.
또, 상기 펌웨어 프로그램이 갱신되고, 상기 처리부가 상기 갱신된 펌웨어 프로그램을 최초로 실행하는 경우, 상기 초기화부는 상기 갱신된 펌웨어 프로그램에 포함된 벤치마크 스코어를 상기 기록부에서의 소정의 기록영역에 기록하는 것을 특징으로 한다.
상기 재생장치에서 벤치마크 스코어는 펌웨어에 포함된 상태로 재생장치 내에 존재하므로, 펌웨어의 갱신 시에 오래된 벤치마크 스코어가 포함된 구(舊) 버전의 펌웨어를 새로운 벤치마크 스코어가 포함된 신(新) 버전의 펌웨어로 오버라이트(overwrite) 하면, 펌웨어가 새로운 것으로 갱신되었을 때에 벤치마크 스코어는 그 갱신에 수반하여 자동으로 신구의 교체를 이루게 될 뿐만 아니라, 갱신된 펌웨어 프로그램을 최초로 실행할 때에 상기 기록부에서의 소정의 기록영역에 기록된 벤치마크 스코어는 새로운 것으로 갱신된다.
벤치마크 스코어는 펌웨어가 오래된 것에서 새로운 것으로 갱신된 때에 펌웨어와 함께 재기록되는 형태로 재생장치 내에 존재하므로, 펌웨어의 갱신이 부정기적으로 이루어졌다고 하더라도, 펌웨어의 버전과 벤치마크 스코어의 버전이 일치하지 않는다고 하는 버전 충돌(version confliction)은 발생하지 않는다. 따라서, 벤치마크 스코어는 펌웨어의 갱신이 부정기적으로 이루어졌다고 하더라도 그 유효성을 유지할 수 있다.
또, 벤치마크 스코어의 기록은 펌웨어가 기동 될 때마다 이루어지는 것이 아니며, 사용자가 펌웨어를 갱신한 후, 갱신한 펌웨어의 최초의 실행 시에 이루어지게 되어서, 벤치마크 스코어의 기록의 빈도는 펌웨어가 기동 될 때마다 이루어지는 것에 비하여 상당히 낮아진다. 벤치마크 스코어를 기록부의 소정의 기록영역에 기록하기 위한 시간지연이 갱신한 펌웨어의 최초의 실행 시에는 발생하지만, 애플리케이션의 기동 시에는 발생하지 않는다. 이에 의해서, 애플리케이션을 기동할 때의 스타팅 딜레이는 발생하지 않게 된다. 이와 같이, 스타팅 딜레이에 대한 영향을 없앰으로써 사용자 조작에 대한 응답을 고도로 유지할 수 있다.
또, 상기 기록영역에 기록한 벤치마크 스코어에 상기 처리부에 의해서 실행되는 애플리케이션 프로그램이 액세스하는 경우, 상기 애플리케이션 프로그램에 대응하는 신용증명서이며, 상기 애플리케이션 프로그램이 상기 기록영역에 기록한 벤치마크 스코어에 대한 액세스 권한에 대한 정보를 포함한 신용증명서의 유효성을 판단하고, 상기 유효하다고 판단된 신용증명서에 포함되는 상기 벤치마크 스코어에 대한 액세스 권한에 대한 정보에 의거하여 상기 애플리케이션 프로그램이 상기 기록영역에 기록한 벤치마크 스코어에 액세스 가능한가 여부를 판정하는 판정부를 구비하는 것을 특징으로 한다.
이와 같이 구성함으로써, 벤치마크 스코어의 판독을 애플리케이션이 요구한 때에 그 애플리케이션에 정당한 액세스 권한이 부여되어 있는지 여부의 판정이 이루어지게 될 뿐만 아니라, 정당한 액세스 권한이 부여되어 있는지 여부의 판정은 디지털 서명 구조를 이용하여 이루어지므로, BD-J 애플리케이션 단말의 표준 모델에 많은 변형을 부가하지 않고도 정당한 권한이 존재하는지 여부의 판정을 실현할 수 있다.
또, 상기 기록부에서의 소정의 기록영역은 상기 벤치마크 프로그램을 제공한 조직을 식별하는 식별자와 상기 벤치마크 애플리케이션을 식별하는 식별자를 포함하는 파일패스를 이용하여 특정되는 것을 특징으로 한다.
예를 들어, 공식 애플리케이션에 의한 벤치마크가 표준화 단체에 의한 통일기준에 의해서 이루어지는 경우, 벤치마크 스코어는 신뢰성이 높고, 매우 의의가 있는 정보가 된다. 그러나 신뢰성이 높은 것일수록 이러한 벤치마크 스코어의 이용이 무질서하게 이루어지면, 당해 벤치마크 스코어가 Web 페이지 상에서 공표되어서 그 재생장치의 신뢰성을 떨어뜨리기 위한 활동, 이른바 네거티브 캠페인(negative campaign)에 사용될 우려가 있다. 그러한 네거티브 캠페인의 대책에 있어서는 상술한 것과 같은 구성을 채용함으로써, 벤치마크 스코어의 판독은 벤치마크 프로그램을 제공한 조직으로부터 정당한 액세스 권한이 부여되었다고 인정된 것에만 인정되므로, 예를 들어 기록매체의 규격화를 종합하는 단체에 정식으로 인정된 것만 벤치마크 스코어의 판독을 인정할 수 있다. 이렇게 함으로써 제조업체는 안심하고 벤치마크 스코어를 펌웨어에 포함해서 애플리케이션에 이용하게 할 수 있다.
또, 상기 펌웨어 프로그램은 상기 애플리케이션 프로그램으로부터 상기 기록영역에 기록한 벤치마크 스코어로의 액세스 요구에 대하여, 상기 기록영역에 기록한 벤치마크 스코어를 액세스를 요구한 애플리케이션 프로그램으로 되돌리는 I/O 프로그램을 포함하고, 상기 애플리케이션 프로그램이 상기 벤치마크 스코어로의 파일패스를 지정하여, 상기 벤치마크 스코어로의 액세스를 요구한 때, 상기 처리부는 상기 I/O 프로그램을 실행하고, 상기 I/O 프로그램은 지정된 파일패스에 의거하여 특정되는 벤치마크 스코어를 상기 애플리케이션 프로그램에 되돌리도록 구성한 것을 특징으로 한다.
이와 같이 구성함으로써, 애플리케이션이 이 벤치마크 스코어를 이용함에 따라서, 예를 들어 재생장치상에서 애니메이션을 묘화할 때의 부하 결정을 더 치밀하게 할 수 있다. 이렇게 함으로써 하드웨어의 성능에 적합한 부하로 재생장치상에서 필요한 처리를 실행할 수 있을 뿐만 아니라, 애플리케이션이 벤치마크 스코어에 직접 액세스하는 것을 방지할 수 있다.
또, 상기 제 2 기록영역에 상기 펌웨어 프로그램에 포함된 벤치마크 스코어를 전개한 경우, 상기 벤치마크 스코어를 본래 기록할 위치를 나타내는 상기 기록부에서의 파일패스에 관한 정보와 상기 벤치마크 스코어를 기록한 상기 제 2 기록영역 상의 위치에 관한 정보를 포함하는 위치정보를 생성하고, 상기 I/O 프로그램은 상기 애플리케이션 프로그램으로부터 지정된 파일패스를 수신하면, 상기 위치정보를 참조하여, 상기 제 2 기록영역에 전개한 벤치마크 스코어를 판독하여 상기 애플리케이션 프로그램에 되돌리도록 구성하는 것을 특징으로 한다.
이와 같이 구성함으로써 애플리케이션은 벤치마크 스코어의 실제의 저장위치를 몰라도 벤치마크 스코어를 얻을 수 있게 된다.
또, 상기 초기화부는 상기 기록부에서의 소정의 패스에 의해서 정해지는 기록영역에 상기 벤치마크 스코어가 기록되어 있는지 여부의 판정을 하고, 상기 벤치마크 스코어가 기록되어 있지 않다고 판정한 경우에는 상기 펌웨어 프로그램에 포함되어 있는 벤치마크 스코어를 상기 기록부에서의 소정의 패스에 의해서 정해지는 기록영역에 기록하는 것을 특징으로 한다.
이와 같이 구성함으로써 어떠한 사고에 의해서 벤치마크 스코어가 오버라이트 되어서 상기 기록부에서의 소정의 패스에 의해서 정해진 기록영역에서 소실된 경우라도 펌웨어가 기동된 때에 벤치마크 스코어가 소실되었는지 여부의 체크가 이루어지고, 소실되었을 때에는 펌웨어로부터 다시 벤치마크 스코어를 판독하여 상기 기록부에서의 소정의 패스에 의해서 정해지는 기록영역에 기록하므로, 펌웨어의 기동을 계기로 하여 벤치마크 스코어가 소실되어 있지 않은가 여부의 확인과 소실된 경우의 사후대책을 강구할 수 있다. 이렇게 함으로써 애플리케이션으로부터 벤치마크 스코어의 판독이 요구된 경우에 그 요구에 바로 응답할 수 있다.
또, 상기 초기화부는 상기 펌웨어 프로그램이 갱신된 경우에, 상기 갱신된 펌웨어 프로그램에 포함되어 있는 벤치마크 스코어의 버전과 상기 애플리케이션 데이터영역에 존재하는 벤치마크 스코어의 버전의 버전 비교를 하며, 상기 갱신된 펌웨어 프로그램에 포함된 벤치마크 스코어 쪽이 새롭다고 판정된 경우에는 상기 펌웨어 프로그램에 포함되어 있는 벤치마크 스코어를 기록부에서의 소정의 패스에 의해서 정해지는 기록영역에 기록하는 것을 특징으로 한다.
이와 같이 구성함으로써, 펌웨어의 갱신이 이루어졌으나, 갱신된 펌웨어에 포함된 벤치마크 스코어에 변화가 없는 경우(즉, 벤치마크 스코어의 버전이 갱신 전과 동일한 경우)에는, 상기 기록부에서의 소정의 패스에 의해서 정해지는 기록영역에 벤치마크 스코어를 기록하는 것이 억제되므로, 상기 기록부에서의 소정의 패스에 의해서 정해지는 기록영역이 예를 들어 기록 횟수에 상한치가 있는 반도체 메모리 카드상의 메모리 영역인 경우, 반도체 메모리 카드의 수명을 길게 할 수 있다.
애플리케이션 데이터영역에 기록하는 것 외에도 벤치마크 스코어를 애플리케이션에 공급하는 방법이 있다. 이는, 초기화부를 아래와 같이 구성함으로써 이루어진다.
즉, 상기 벤치마크 스코어를 메모리에 전개하여, 메모리 상의 벤치마크 스코어를 애플리케이션이 이용하게 한다. 이렇게 함으로써 로컬 스토리지에서의 애플리케이션 데이터영역에 벤치마크 스코어를 복제하기 위해서 생기는 지연시간을 단축할 수 있다. 또, 애플리케이션 데이터영역이 반도체 메모리 카드로 구성되어 있는 경우, 반도체 메모리 카드에 대한 기록 횟수를 억제할 수 있다.
도 1은 사용자 집에 설치된 재생장치(102)의 이용형태를 나타내는 도면이다.
도 2는 BD-ROM의 구성을 나타내는 도면이다.
도 3은 BD-ROM에서의 재생제어의 레이어 모델을 나타내는 도면이다.
도 4는 로컬 스토리지에서의 Persistent 영역의 내부 구성을 나타내는 도면이다.
도 5(a)는 HDMV 모드에서 동적인 재생제어를 정의함으로써 작성되는 영화작품의 한 장면을 나타내는 도면이다.
도 5(b)는 BD-J 모드에서 동적인 재생제어를 정의함으로써 작성되는 영화작품이다.
도 6은 도 5(b)의 합성 영상을 표시할 때에 BD-ROM에 의해서 공급되는 애플 리케이션이 어떠한 처리를 하는지를 나타내는 도면이다.
도 7은 본 발명의 재생장치의 하드웨어 구성을 나타내는 도면이다.
도 8(a)은 펌웨어를 구성하는 파일 군(群)을 나타내는 도면이다.
도 8(b)는 재생장치의 제어내용을 표시한 레이어 모델을 나타내는 도면이다.
도 9는 재생장치의 개발환경을 나타내는 도면이다.
도 10은 텍스트 파일에 저장되는 벤치마크 스코어가 어떻게 해서 얻어진 것인지를 해설한 도면이다.
도 11(a)는 부트로더(21)의 내부 구성을 나타내는 도면이다.
도 11(b)는 최초의 실행인지 여부를 나타내는 플래그를 나타내는 도면이다.
도 11(c)는 시스템 애플리케이션(28)의 내부 구성을 나타내는 도면이다.
도 12는 펌웨어 기동부(31)가 어떠한 처리를 하고, 펌웨어(22)가 어떠한 경로를 거쳐서 MPU(16)에 공급되는지를 모식적으로 나타내는 도면이다.
도 13은 플래시 ROM(18) 중의 벤치마크 스코어가 어떠한 경로를 거쳐서 벤치마크 스코어 설정부(34)에 공급되는지를 나타내는 도면이다.
도 14는 CertID가 "0g1a24ed", OrganizationID가 "4", ApplicationID가 "5"인 경우의 디렉터리 파일 구성의 일 예를 나타내는 도면이다.
도 15는 애플리케이션 데이터영역 중의 벤치마크 스코어가 어떠한 경로를 거쳐서 서비스 애플리케이션에 인계되는지를 나타내는 도면이다.
도 16(a)은 펌웨어 갱신부(32)의 처리순서를 나타내는 플로차트이다.
도 16(b)은 펌웨어 기동부(31)의 처리순서를 나타내는 플로차트이다.
도 17은 벤치마크 스코어 설정부(34)의 처리순서를 나타내는 플로차트이다.
도 18(a)는 Java(TM) 아카이브 파일(302) 중 구조의 일 예를 나타내는 도면이다.
도 18(b)는 디지털 신용증명서의 데이터 구조의 일 예를 나타낸다.
도 18(c)은 디지털 신용증명서의 구체적인 일 예를 나타내는 도면이다.
도 19는 권한의 제공이 없는 경우의 SIG-BD.SF, BD.ROOT.CERTIFICATE의 상호관계를 나타내는 도면이다.
도 20은 권한의 제공이 있는 경우의 SIG-BD.SF, BD.ROOT.CERTIFICATE,bd.XXXX.perm의 상호관계를 나타내는 도면이다.
도 21은 애플리케이션 데이터영역에 대한 액세스 순서를 나타내는 플로차트이다.
도 22는 디지털 신용증명서를 이용한 권한 체크의 처리순서를 나타내는 플로차트이다.
도 23은 제 3 실시 예에서의 벤치마크 스코어의 왕래를 모식적으로 묘사한 도면이다.
도 24는 벤치마크 애플리케이션(29)에 의한 벤치마크 테스트의 처리순서를 나타내는 플로차트이다.
(부호의 설명)
100 BD-ROM
101 WWW 서버
102 재생장치
103 텔레비전
104 리무버블 미디어
105 개발용 컴퓨터
21 부트로더
22 펌웨어
23 가상파일시스템
24 액세스 제어기구
25 재생엔진
26 재생제어엔진
27 BD-J 모듈
28 시스템 애플리케이션
29 벤치마크 애플리케이션
31 펌웨어 기동부
32 펌웨어 갱신부
33 애플리케이션 매니저
34 벤치마크 스코어 설정부
(제 1 실시 예)
이하, 본 발명의 실시 예에 대하여 도면을 참조하면서 설명한다.
이후, 재생장치의 실시 예에 대하여 설명한다. 먼저, 본 발명의 재생장치의 실시행위 중 사용행위에 대한 예를 설명한다. 도 1은 사용자 집에 설치된 재생장치(102)의 이용형태를 나타내는 도면이다. 본 도면에 나타내는 바와 같이, 재생장치(102)는 BD-ROM(100), WWW 서버(101)(Web 서버라고도 한다), 텔레비전(103), 리무버블 미디어(104)와 함께 사용자에 의한 사용에 제공된다.
BD-ROM(100)은 영화작품이 기록된 기록매체이다.
WWW 서버(101)는 영화 배급자의 공식 사이트를 운영하는 서버장치이며, BD-ROM(100)에 기록된 영화작품의 부분적인 치환이나 추가를 실현하는 콘텐츠를 인터넷 등을 통해서 사용자에게 공급한다.
재생장치(102)는 텔레비전(103)과 함께 홈시어터 시스템을 구축하여 BD-ROM(100)을 재생한다.
텔레비전(103)은 영화작품의 재생 영상을 표시하거나 메뉴 등을 표시함으로써 대화적인 조작환경을 사용자에게 제공한다.
리무버블 미디어(104)는 재생장치(102)에 장착되며, 영화 배급자의 WWW 서버(101)로부터 분배된 콘텐츠를 저장하는 곳으로 이용된다. 따라서, 네트워크를 통해서 다운로드 되어서 리무버블 미디어(104)에 저장된 콘텐츠와 BD-ROM(100)에 기록된 콘텐츠를 조합하여 BD-ROM(100)의 콘텐츠를 확장/갱신할 수 있다. 이러한 리무버블 미디어(104)를 장착한다고 하는 목적을 위해서 재생장치(102)에는 SD 메모리카드, 메모리 스틱, 콤팩트 플래시(TM), 스마트 미디어, 멀티미디어 카드 등의 리무버블 미디어(104)를 삽입하는 삽입구를 구비한다.
이상이 본 발명의 재생장치(102)의 사용형태에 대한 설명이다. 이어서, 본 발명의 재생장치(102)가 재생의 대상으로 하고 있는 기록매체에 대하여 설명한다. 본 발명의 재생장치(102)에 의해서 재생되는 것은 광 기록매체인 BD-ROM(100)이다.
도 2는 BD-ROM(이하, 「BD」라고 하는 경우도 있다)의 구성을 나타내는 도면이다. 본 도면의 제 1 단째에 BD-ROM(100)을 나타내고, 제 2 단째는 BD-ROM의 내주에서 외주를 향해서 나선 형상으로 형성된 기록영역을 횡 방향으로 연장하여 직선 형상으로 묘사하고 있다. 이 제 2 단째에 나타내는 것과 같이, 기록영역은 내주의 「리드인」과, 외주의 「리드 아웃」과, 「논리 어드레스 공간」을 가지고 있다. 또, 리드 인의 내측에는 BCA(Burst Cutting Area)라고 불리는 드라이브로밖에 판독할 수 없는 특별한 영역이 있다. 이 영역은 애플리케이션으로부터는 판독되지 않으므로, 예를 들어 저작권 보호기술 등에 이용되는 경우가 많다.
「논리 어드레스 공간」은 파일시스템을 위한 영역관리정보를 선두로 하여 각종 영상 데이터가 기록되어 있다. "파일시스템"은 UDF나 ISO9660 등을 말하며, 본 실시 예에서는 Extention 2.3 형식의 파일시스템을 채용한다.
본 도면의 제 3 단째는 제 2 단째에서의 파일시스템을 전제로 하여 구축된 디렉터리 파일 구성을 나타낸다. 본 도면에 나타내는 바와 같이, BD-ROM의 루트 디렉터리(ROOT)의 바로 아래에는 BD.ROOT.CERTIFICATE와 BDMV 디렉터리가 배치되어 있다.
BD.ROOT.CERTIFICATE(디스크 루트 증명서)는 예를 들어 X.509의 형식으로 부호화되어 있다. X.509의 사양은 국제전신전화 자문위원회로부터 발행되어 있으며, CCITT Recommendation X.509(1988), "The Directory - Authentication Framework"에 기재되어 있다. 본 도면에서의 인출 선 f1은 BD.ROOT.CERTIFICATE의 용도를 나타내고 있다. 이 인출 선에 나타내는 바와 같이, BD.ROOT.CERTIFICATE는 증명서 고유의 ID(CertID라 한다)를 도출한다고 하는 용도로 이용된다.
BDMV 디렉터리는 BD-ROM에서 취급하는 AV 콘텐츠나 관리정보 등의 데이터가 기록되어 있는 디렉터리이다. BDMV 디렉터리의 바로 아래에는 「PLAYLIST 디렉터리」, 「CLIPINF 디렉터리」, 「STREAM 디렉터리」, 「BDJO 디렉터리」, 「JAR 디렉터리」라고 불리는 5개의 서브 디렉터리가 존재하며, BDMV 디렉터리에는 index.bdmv,MovieObject.bdmv의 2종류의 파일이 배치되어 있다.
STREAM 디렉터리는 이른바 디지털 스트림의 본체가 되는 파일을 저장하고 있는 디렉터리이며, 확장자 M2TS가 부여된 파일(xxx.m2ts["xxx"는 가변, 확장자 "m2ts"는 고정])이 존재한다.
PLAYLIST 디렉터리에는 확장자 mpls가 부여된 파일(xxx.mpls["xxx"는 가변, 확장자 "mpls"는 고정])이 존재한다.
CLIPINF 디렉터리에는 확장자 clpi가 부여된 파일(xxx.clpi["xxx"는 가변, 확장자 "clpi"는 고정])이 존재한다.
JAR 디렉터리에는 확장자 jar이 부여된 파일(xxx.jar["xxx"는 가변, 확장자 "jar"는 고정])이 존재한다.
BDJO 디렉터리에는 확장자 bdjo가 부여된 파일(xxx.bdjo["xxx"는 가변, 확장자 "bdjo"는 고정])이 존재한다.
<확장자 "m2ts"가 부여된 파일>
확장자 "m2ts"가 부여된 파일은 MPEG-TS(TransportStream) 형식의 디지털 AV 스트림이며, 비디오 스트림, 하나 이상의 오디오 스트림, 하나 이상의 그래픽스 스트림을 다중화함으로써 얻어진다. 비디오 스트림은 영화의 동화상 부분을, 오디오 스트림은 영화의 음성 부분을, 그래픽스 스트림은 영화의 자막을 각각 나타내고 있다.
확장자 "clpi"가 부여된 파일은 디지털 AV 스트림의 각각에 1대 1로 대응하는 관리정보이다. 관리정보이므로 Clip 정보는 디지털 AV 스트림의 부호화 형식, 프레임 레이트, 비트 레이트, 해상도 등의 정보나 GOP의 선두위치를 나타내는 EP_map을 가지고 있다.
<확장자 "mpls"가 부여된 파일>
확장자 "mpls"가 부여된 파일은 플레이리스트 정보를 저장한 파일이다. 플레이리스트 정보는 메인패스 정보, 서브패스 정보, 마크 정보를 포함한다.
1) 메인패스 정보는 AV 스트림의 재생시간 축 중에서 In_Time이 되는 시점과 Out_Time이 되는 시점의 세트를 하나 이상 정의함으로써 논리적인 재생구간을 정의하는 정보이며, AV 스트림에 다중화되어 있는 엘리멘터리 스트림 중 어느 재생을 유효로 할지를 규정하는 스트림 번호 테이블을 가지고 있다. 이 스트림 번호 테이블을 가짐에 따라서 AV 스트림 내의 엘리멘터리 스트림 중 어느 재생을 허가하고 어느 재생을 허가하지 않을지를 규정할 수 있다.
2) 마크 정보는 In_Time 및 Out_Time의 세트에 의해서 지정된 AV 스트림의 일부분 중 챕터가 되는 시점의 지정을 포함한다.
3) 서브패스 정보는 상기 AV 스트림과 동기하여 재생해야 할 엘리멘터리 스트림의 지정과, 그 엘리멘터리 스트림의 재생시간 축에서의 In_Time 및 Out_Time의 세트를 포함한다. Java(TM) 애플리케이션이 이 플레이리스트 정보를 재생하는 JMF 플레이어 인스턴스의 생성을 Java(TM) 가상머신에 명함으로써 AV 재생을 개시시킬 수 있다. JMF 플레이어 인스턴스는 JMF 플레이어 클래스를 기초로 하여 가상머신의 히프 메모리 상에 생성되는 실제의 데이터를 말한다.
AV 스트림과 플레이리스트 정보의 세트는 "타이틀"이라고 하는 재생단위를 구성한다. BD-ROM에서의 AV 재생은 이 타이틀을 한 단위로 해서 이루어진다.
<확장자 "jar"가 부여된 파일>
확장자 "jar"가 부여된 파일은 Java(TM) 아카이브 파일이며, Java(TM) 가상머신을 이용하여 동적인 시나리오 제어를 하는 Java(TM) 애플리케이션의 클래스 파일이 존재한다. 이 클래스 파일에서 정의되는 Java(TM) 애플리케이션은 Xlet 인터페이스를 통해서 제어되는 Java(TM) Xlet이다. Xlet 인터페이스는 "loaded paused", "active destroyed"라고 하는 4개의 상태를 갖는다. 본 명세서에서 말하는 애플리케이션은 이렇게 BD-ROM 등의 기록매체에 기록되어 있는 클래스 파일에 대한 인스턴스를 말한다.
<확장자 "bdjo"가 부여된 파일>
확장자 "bdjo"가 부여된 파일은 BD-J 오브젝트를 저장한 파일이다. BD-J 오브젝트는 플레이리스트 정보에 의해서 표시되는 AV 스트림과 애플리케이션과의 관 련 부여에 의해서 타이틀을 정의하는 정보이다. BD-J 오브젝트는 "애플리케이션 관리테이블"과, 그 타이틀에서 재생 가능한 플레이리스트의 일람을 나타낸다. 애플리케이션 관리테이블(AMT)은 "애플리케이션 시그널링"을 실현하는 테이블이다. "애플리케이션 시그널링"은 BD-ROM에서의 "타이틀"을 애플리케이션의 생존구간으로 관리하고, 애플리케이션의 기동 및 종료를 담당하는 제어를 말한다. 여기서, 생존구간은 BD-ROM에 기록된 콘텐츠 전체의 시간 축에서 가상머신의 히프 메모리 상에서 애플리케이션이 생존할 수 있는 구간을 나타낸다. "생존"이란 그 애플리케이션이 히프 메모리에 판독되어 가상머신에 의한 실행이 가능하게 되어 있는 상태를 말한다. 애플리케이션 관리테이블은 애플리케이션의 식별자(애플리케이션 ID)와 그 애플리케이션에 속하는 Java(TM) 아카이브 파일의 ID를 나열함으로써 이 타이틀을 생존구간으로 하는 애플리케이션을 나타낸다. 즉, 하나의 애플리케이션은 하나 이상의 Java(TM) 아카이브 파일로 구성된다. 이와 같이 BD-J 오브젝트 내의 애플리케이션 관리테이블에 의해서 제어가 규정되는 Java(TM) 애플리케이션을 "BD-J 애플리케이션"이라 한다.
<index.bdmv(파일명 고정)>
index.bdmv(파일명 고정)는 BD-ROM 전체에 관한 관리정보이며, 재생장치(102)로의 디스크 삽입 후에 index.bdmv가 최초로 판독됨으로써 재생장치(102)에서 디스크가 일의적으로(uniquely) 인식된다. 또한, index.bdmv는 BD-ROM에서 재생이 가능해지는 복수의 타이틀과 개개의 타이틀을 규정하는 BD-J 오브젝트를 대응시켜서 나타내는 테이블을 포함하고 있다. 인출 선 f2는 index.bdmv의 내부 구성을 클로즈업해서 나타내고 있다. 이 인출 선으로 나타내는 바와 같이 영화작품의 프로바이더를 특정하는 식별자인 organizationID(32비트)를 갖는다.
MovieObject.bdmv(파일명 고정)는 HDMV 모드(후술)에서의 각 타이틀 재생에서 재생진행을 동적으로 변화시키기 위한 시나리오가 기술된 시나리오 프로그램이 포함된다.
도 3은 재생제어의 레이어 모델을 나타낸 도면이다. 도 3의 제 1층은 물리 층이며, 처리대상인 스트림 본체의 공급제어이다. 이 제 1층에 나타내는 바와 같이, 처리대상인 스트림은 BD-ROM뿐만 아니라 Build-In 미디어나 리무버블 미디어, 네트워크와 같은 모든 기록매체, 통신매체를 공급원으로 하고 있다. 여기서 Build-In 미디어는 HDD(하드디스크 드라이브) 등, 재생장치(102)에 미리 포함된 기록매체이다. 한편, 리무버블 미디어는 SD 메모리카드, 메모리 스틱, 콤팩트 플래시(TM), 스마트 미디어, 멀티미디어 카드 등의 휴대성이 있는 기록매체이다. 이들 Build-In 미디어, 리무버블 미디어는 모두 재생장치(102)가 로컬(local)로 이용하는 기록매체이며, "로컬 스토리지"라고 하는 총칭으로 불린다. 이들 로컬 스토리지, 네트워크와 같은 공급원에 대한 제어(디스크 액세스, 카드 액세스, 네트워크 통신)가 제 1층의 제어이다.
제 2층은 AV 스트림의 레이어이다. 제 1층에서 공급된 스트림을 어떠한 복호화 방식을 이용하여 복호 하는지를 규정하고 있는 것이 이 제 2층이다.
제 3 층(BD 관리 데이터)은 스트림의 정적인 시나리오를 규정하는 레이어이다. 정적인 시나리오는 디스크 제작자에 의해서 미리 규정된 재생경로 정보, 스트 림 관리정보이며, 이들에 의거한 재생제어를 규정하고 있는 것이 이 제 3층이다.
제 4 층(BD 재생 프로그램)은 스트림에서의 동적인 시나리오를 실현하는 레이어이다. 동적인 시나리오는 AV 스트림의 재생순서 및 그 재생에 관한 제어순서 중 적어도 한쪽을 실행하는 프로그램이다. 동적인 시나리오에 의한 재생제어는 장치에 대한 사용자 조작에 따라서 변화하는 것이며, 프로그램적인 성질을 갖는다. 여기에서의 동적인 재생제어에는 2개의 모드가 있다. 2개의 모드 중 하나는 AV 기기 특유의 재생환경에서 BD-ROM에 기록된 동화상 데이터를 재생하는 모드(HDMV 모드)이고, 다른 하나는 BD-ROM에 기록된 동적 데이터의 부가가치를 높이는 모드(BD-J 모드)이다. 도 3에서 제 4층에는 HDMV 모드와 BD-J 모드의 2개의 모드가 기술되어 있다. HDMV 모드는 DVD형의 재생환경에서의 재생모드이며, 재생진행을 동적으로 변화시키기 위한 시나리오가 기술된 시나리오 프로그램이 동작한다. 다른 하나의 BD-J 모드는 Java(TM) 가상머신을 주체로 한 재생모드이며, Java(TM) 애플리케이션으로부터 재생제어를 한다.
다음에, 로컬 스토리지의 내부 구성에 대하여 설명한다. 로컬 스토리지에는 도 4에 나타내는 것과 같은 디렉터리 파일 구성을 갖는 Persistent 영역이 존재한다. 도 4는 로컬 스토리지에서의 Persistent 영역의 내부 구성을 나타내는 도면이다.
이러한 Persistent 영역에는 「디스크 추가 데이터영역」과「애플리케이션 데이터영역」이 존재한다.
「디스크 추가 데이터영역」은 과거에 재생장치(102)에 장착된 각각의 BD- ROM에 대응하는 영역이며, 각각의 BD-ROM의 저장내용의 추가물이 되는 데이터가 저장된다. 디스크 추가 데이터영역은 「BUDA 디렉터리」, 「CertID 디렉터리」, 「OrganizationID 디렉터리」, 「DiscID 디렉터리 군(群)」으로 구성된다.
「BUDA 디렉터리」는 예를 들어 로컬 스토리지의 루트 디렉터리의 바로 아래에 존재하며, 추가 콘텐츠 영역의 루트를 나타내는 디렉터리로, 디렉터리 명은 8 문자 이내의 고정 값(BD_BUDA)이다.
「CertID 디렉터리」는 예를 들어 BD-ROM 상의 BD.ROOT.CERTIFICATE로부터 도출되는 ID를 이름으로 갖는 디렉터리로, BD.ROOT.CERTIFICATE의 SHA-1 다이제스트 값 160비트 중 선두 32비트를 16진 표기로 나타낸 8 문자의 이름의 디렉터리이다.
「OrganizationID 디렉터리」는 예를 들어 BD-ROM 상의 BD 관리정보(index.bdmv)에 기재되어 있는 영화작품의 프로바이더를 특정하는 32비트의 식별자(OrganizationID)를 16진 표기로 나타낸 8 문자의 이름의 디렉터리이다.
「DiscID 디렉터리 군」은 예를 들어 4개의 디렉터리로 이루어지는 BD-ROM을 특정하는 128비트의 식별자(DiscID)를 선두에서 32비트씩 4분할하고, 각각을 16진 표기로 나타낸 8 문자의 이름이 할당되어 있다.
「애플리케이션 데이터영역」은 예를 들어 애플리케이션이 동작을 할 때에 필요한 데이터가 저장되는 영역이다. 예를 들어 애플리케이션이 동작을 하는 경우의 사용자 컨피규레이션(user configuration)이나 Cookie, 게임 스코어, 패스워드 등이 이 애플리케이션 데이터영역에 저장되게 된다.
애플리케이션 데이터영역에서의 디렉터리 구성은 ADA(Application Data Area) 디렉터리, CertID 디렉터리, OrganizationID 디렉터리, ApplicationID 디렉터리로 구성된다.
애플리케이션 데이터영역 디렉터리(ADA 디렉터리)는 로컬 스토리지의 루트 디렉터리의 바로 아래에 존재하고, 애플리케이션 데이터영역의 루트를 나타내는 디렉터리로, 디렉터리 명은 고정 값(ADA)이다.
「CertID 디렉터리」는 BD-ROM 상의 BD.ROOT.CERTIFICATE로부터 도출되는 ID를 이름으로 갖는 디렉터리로, BD.ROOT.CERTIFICATE의 SHA-1 다이제스트 값 160비트 중 선두 32비트를 16진 표기로 나타낸 8 문자의 이름의 디렉터리이다.
「OrganizationID 디렉터리」는 BD-ROM 상의 index.bdmv에 기재되어 있는 영화작품의 프로바이더를 특정하는 32비트의 식별자(OrganizationID)를 16진 표기로 나타낸 8 문자의 이름의 디렉터리이다.
「ApplicationID 디렉터리」는 아카이브 파일의 파일 명으로 채용되어 있는, 애플리케이션의 식별자(ApplicationID)를 16진 표기로 나타낸 이름으로 한 디렉터리이다. 이 ApplicationID 디렉터리에는 벤치마크 스코어를 저장한 텍스트 파일이 존재한다.
텍스트 파일은 애플리케이션 데이터영역 상에 존재하고, 이 애플리케이션 데이터영역은 ADA-CertID-OrganizationID-ApplicationID라고 하는 조합의 고정 파일패스에 의해 특정할 수 있으므로, BD-J 애플리케이션은 파일 I/O를 위한 API(JavaI/O 메소드)를 통해서 벤치마크 스코어를 판독할 수 있다.
도 5는 2개의 모드의 동적인 재생제어에 의해 작성되는 영화작품을 나타내는 도면이다. 도 5(a)는 HDMV 모드에서 동적인 재생제어를 정의함으로써 작성되는 영화작품의 한 장면을 나타내는 도면이다. HDMV 모드는 DVD 재생장치가 해석 가능한 커맨드와 아주 비슷한 커맨드로 재생제어를 기술할 수 있으므로, DVD와 동일한 재생제어, 즉 메뉴에 대한 선택에 의해서 재생이 진행하는 재생제어를 정의할 수 있다.
도 5(b)는 BD-J 모드에서 동적인 재생제어를 정의함으로써 작성되는 영화작품이다. BD-J 모드는 Java(TM) 가상머신이 해석 가능한 Java(TM) 언어로 제어순서를 기술할 수 있다. 이 재생제어가 어드벤처 게임의 GUI를 구성하는 것이라면, BD-J 모드에 있어서는 게임의 스코어(도면 중의 SCORE:10000)나 인디게이터(indicator)(LIFE:3), 버튼 부재(질문한다, 퇴실한다)와, 캐릭터 애니메이션과, 동화상을 조합한 합성 영상을 사용자에게 제시할 수 있다.
도 6은 도 5(b)의 합성화상을 표시할 때에 BD-ROM에 의해서 공급되는 애플리케이션이 어떠한 처리를 하는지를 나타내는 도면이다. 본 도면의 하단에는 도 2에 나타내는 아카이브 파일인 xxx.JAR이 기술되어 있다. 상단은 이러한 아카이브 파일에 의해 정의되는 BD-J 애플리케이션(이하, 시스템 애플리케이션 등을 제외한 일반 애플리케이션이며, 이하, "서비스 애플리케이션"이라 한다)을 나타낸다. 이 서비스 애플리케이션의 프레임 내에는 도 4에서의 캐릭터 애니메이션의 묘화(描畵)에서의 처리부하의 변화가 어떠한 것인지를 모식적으로 나타낸다.
좌측 프레임은 처리부하를 무겁게 하는 변화로, 고양이 캐릭터가 1초당 24매 가 풀 애니메이션으로 표시되어 있는 것을 알 수 있다.
우측 프레임은 처리부하를 가볍게 하는 변화로, 고양이 캐릭터가 1초당 12매의 하프 애니메이션으로 표시되어 있는 것을 알 수 있다. 이러한 변화는 ADA-CertID-OrganizationID-ApplicationID라고 하는 고정 파일패스로 액세스할 수 있는 애플리케이션 데이터영역에 저장된 벤치마크 스코어가 어떠한 값인가에 따라서 이루어진다. 좌측 프레임에서의 처리부하의 변화는 예를 들어 벤치마크 스코어가 소정의 임계값 이상인 것을 요건으로 하고 있다. 우측 프레임에서의 처리부하의 변화는 이 벤치마크 스코어가 예를 들어 소정의 임계값 미만인 것을 요건으로 하고 있다. 이와 같이, BD-ROM으로부터 공급되는 서비스 애플리케이션은 애플리케이션 데이터영역에 존재하는 벤치마크 스코어의 크고 작음에 따라서 처리부하를 변화시키도록 만들어져 있다. 이러한 처리부하의 변화에 따라서, GUI를 통해서 사용자가 BD-J 애플리케이션에 처리를 명하고나서부터 그 처리가 완료할 때까지의 응답시간은 재생장치(102)에서의 묘화 능력에 좌우되지 않고, 일정한 수준을 유지하게 된다.
이상이 BD-ROM(100)에 대한 설명이다. 이어서, 재생장치(102)의 상세에 대하여 설명한다.
도 7은 재생장치(102)의 하드웨어 구성을 나타내는 도면이다. 본 도면에 나타내는 것과 같이, 재생장치(102)는 BD-ROM 드라이브(1), 리드 버퍼(2), 디 멀티플렉서(3), 비디오 디코더(4), 플레인 메모리(5), 오디오 디코더(6), 엘리멘터리 버퍼(7), 플레인 메모리(8), 그래픽스 디코더(9), 가산기(10), 네트워크 I/F부(11), 스위치(12), HD 드라이브(13), 카드 드라이브(14), RAM(15), MPU(16), 사용자 인터페이스(17), 플래시 ROM(18)으로 구성된다. 재생장치(102)는 도 7에 나타내는 하드웨어 구성에 Java(TM) 2Micro_Edition(J2ME) Personal Basis Profile(PBP1.0)과, Globally Executable MHP specification(GEM1.0.2) for package media targets를 풀 실장을 함으로써 구성된다.
BD-ROM 드라이브(1)는 도 2에 나타내는 것과 같은 내부 구성을 갖는 BD-ROM의 로딩/이젝트를 하며, BD-ROM에 대한 액세스를 실행한다. 그리고 BD-ROM 드라이브(10)는 BD-ROM으로부터 판독한 TS패킷을 리드 버퍼(2)에 저장한다.
리드 버퍼(2)는 FIFO 메모리이며, BD-ROM으로부터 판독된 TS패킷이 선입선출 식으로 저장된다. 이 TS패킷은 MPEG2-TS 형식의 AV 스트림을 구성하는 것이다.
디 멀티플렉서(3)는 BD-ROM, 리무버블 미디어, Build-In 미디어에 기록되어 있는 MPEG2-TS 형식의 AV 스트림의 다중분리를 하여 GOP를 구성하는 비디오 프레임과 오디오 프레임을 얻어서, 비디오 프레임을 비디오 디코더(4)에 출력하고, 오디오 프레임을 오디오 디코더(6)에 출력한다. 그래픽스 스트림은 그래픽스 메모리(7)에 저장한다. 디 멀티플렉서(3)에 의한 다중분리는 TS패킷을 PES 패킷으로 변환한다고 하는 변환처리를 포함한다.
비디오 디코더(4)는 디 멀티플렉서(3)로부터 출력된 비디오 프레임을 복호하여 비 압축형식의 픽처를 비디오용의 플레인 메모리(5)에 기록한다.
플레인 메모리(5)는 비 압축형식의 픽처를 저장해두기 위한 메모리이다.
오디오 디코더(6)는 디 멀티플렉서(3)로부터 출력된 오디오 프레임을 복호하 여 비 압축형식의 오디오 데이터를 출력한다.
그래픽스 메모리(7)는 BD-ROM, 리무버블 미디어, Build-In 미디어로부터 판독된 그래픽스 데이터나 화상 파일을 저장해 두는 버퍼이다.
플레인 메모리(8)는 1 화면 분의 영역을 갖는 SD-RAM 등이며, HDMV 모드와 BD-J 모드에서 메모리 할당(memory allocation)이 바뀐다. HDMV 모드에서의 메모리 할당은 횡 1920×종 1080의 8비트의 영역으로 이루어진다. 이는 1920×1080의 해상도에서 1화소당 8비트의 인덱스 값을 저장할 수 있는 메모리 할당이다. CLUT(Color Lookup Table)를 이용하여 이러한 인덱스 컬러를 변환함으로써 플레인 메모리(8)에 저장된 래스터 그래픽스(raster graphics)는 표시에 제공된다. 한편, BD-J 모드에서의 메모리 할당은 1920×1080의 32비트 영역으로 이루어진다. 이는 횡 1920화소×종 1080화소의 해상도에서 1화소당 32비트의 RGB 값을 저장할 수 있는 메모리 할당이다. 이러한 32비트의 RGB 값을 직접 기록함으로써 BD-J 애플리케이션은 GUI를 위한 그래픽스를 직접 표시하게 할 수 있다.
그래픽스 디코더(9)는 그래픽스 메모리(7)에 저장된 그래픽스 데이터나 화상파일을 전개하여 플레인 메모리(8)에 기록한다. 그래픽스 스트림의 디코드에 의해서 각종 메뉴, 그래픽스가 화면상에 나타나게 된다.
가산기(10)는 비디오용의 플레인 메모리(5)에 저장된 비 압축형식의 픽처 데이터에 그래픽스용의 플레인 메모리(8)에 전개된 그래픽스를 합성하여 출력한다. 도 5(b)에 나타낸 합성화상은 이 가산기(10)가 플레인 메모리(8) 내의 그래픽스와 비디오용의 플레인 메모리(5) 내의 픽처를 합성함으로써 출력된다.
네트워크 I/F부(11)는 네트워크 접속을 위한 프로토콜 스택(protocol stack)을 실행하는 것으로, 네트워크상의 컴퓨터가 구비하고 있는 드라이브를 네트워크 드라이브(4a)로 재생장치(102)에 인식시킨다. 프로토콜 스택은 신뢰성이 요구되는 BD 관리 데이터의 전송에는 TCP/IP를 사용하고, 고속성이 요구되는 AV 스트림의 전송에는 UDP/IP를 사용하는 것이 바람직하다.
스위치(12)는 BD-ROM 드라이브(1), HD 드라이브(13), 카드 드라이브(14)로부터 판독된 파일을 선택적으로 RAM(15)에 저장한다.
HD 드라이브(13)는 BD-ROM에서 공급되는 클래스 파일과 동등한 클래스 파일을 저장해 둘 수 있는 하드디스크 드라이브이다.
카드 드라이브(14)는 BD-ROM에서 공급되는 클래스 파일과 동등한 클래스 파일이 기록된 SD 메모리카드 등을 장착할 수 있는 드라이브 장치이다.
RAM(15)은 StaticRAM 등으로 구성되며, MPU(16)가 데이터 처리를 할 때에 필요한 데이터가 저장된다. RAM(15)에는 펌웨어를 상주해 두기 위한 펌웨어 상주영역이 존재한다. 펌웨어 상주영역은 MPU(16)의 특권 모드에서만 액세스 가능하며, 통상모드에서 동작하는 프로그램은 액세스할 수 없다. 이는 펌웨어의 예기치 않은 파괴를 방지하기 위해서이다.
펌웨어 상주영역 이외의 다른 영역은 메모리 풀 관리기능, 히프영역 관리기능에 의해서 관리되고 있다.
메모리 풀 관리기능은 빈 메모리 영역을 관리하고, 필요에 따라서 요구된 메모리 사이즈를 BD-J 애플리케이션에 부여하고, 사용이 종료되면 메모리에 축적된 상태로 되돌린다. 히프영역 관리기능에서는 메모리의 빈 영역에 메모리 풀(memory pool)을 설정하고, BD-J 애플리케이션의 요구에 따라서 필요한 사이즈의 메모리를 제공한다. 이러한 히프 관리에 의해서 RAM(15) 상의 영역은 "히프 메모리"로서 이용되게 된다.
MPU(16)는 재생장치(102)의 핵심을 담당하는 것으로, 명령 메모리나 캐시로부터 네이티브 코드를 페치하는 「페치 회로(fetch circuit)」, 명령코드를 디코드하는 「디코더 회로」, 디코드 결과에 따라서 레지스터에 저장되어 있는 보유 값에 대하여 연산을 하는 「산술연산 회로」를 필요 최저한의 구성요소로 구비한다. 또, MPU(16)는 동작모드로 특권 모드를 가지고 있다. 이 특권 모드로 동작할 수 있는 프로그램은 RAM(15)이나 플래시 ROM(18)에 저장된 펌웨어를 액세스할 수 있다.
사용자 인터페이스(17)는 리모컨이나 재생장치(102)의 프런트 패널과 같은 입력기기에 대하여 이루어지는 사용자 조작을 검지하여 통지한다. 이 통지는 이들 입력기기에 대응하는 디바이스 드라이버 내의 인터럽트 핸들러(interruption handler)가 발생하는 인터럽트에 따라서 UOP를 생성함으로써 이루어진다. UOP는 리모컨이나 프런트 패널에 설치된 키 매트릭스에 의해 키가 눌러졌음을 검지한 때에 발생하는 이벤트(UOP 이벤트)이며, 눌러진 키에 대응하는 속성을 갖는다. 구체적으로는, 리모컨이나 프런트 패널에 대응하는 디바이스 드라이버의 인터럽트 핸들러가 키 매트릭스에 대한 키 센스에 의해 키가 눌러졌음을 검지한 때에, 그 키가 눌러짐에 따라서 인터럽트 신호를 발생시킴으로써 UOP 이벤트는 생성된다.
플래시 ROM(18)은 EEPROM이며, 재생장치(102)에 미리 내장되어 있는 내장 프 로그램이 저장된다. 이러한 내장 프로그램에는 예를 들어 부트로더(boot loader)(21), 펌웨어(22)가 있다. 플래시 ROM(18)은 MPU(16)의 특권 모드에서만 액세스 가능하며, 통상모드에서 동작하는 프로그램은 액세스할 수 없다. 이는 부트로더(21), 펌웨어(22)의 예기치 않은 파괴를 방지하기 위해서이다.
이상이 재생장치(102)의 하드웨어 구성이다. 이어서, 이상의 하드웨어 구성을 전제로 한 소프트웨어 구성에 대하여 설명한다.
도 8(a)은 펌웨어(22)를 구성하는 파일 군을 나타내는 도면이다. 본 도면에 나타낸 것과 같이, 펌웨어(22)는 예를 들어 복수의 「클래스 파일」, 복수의 「실행형식 파일」, 복수의 「텍스트 파일」을 포함한다.
이들 중 클래스 파일, 실행형식 파일은 펌웨어(22)의 구성요소이며, 재생장치(102)의 제어내용을 규정한다. 도 8(b)은 재생장치(102)의 제어내용을 표시한 레이어 모델을 나타내는 도면이다.
본 도면에 나타내는 것과 같이, 재생장치(102)의 제어내용은 하드웨어 상에 펌웨어(22)가 존재한다고 하는 일반적인 것이다. 이 펌웨어(22)는 예를 들어 가상파일시스템(23), 액세스 제어기구(24), 재생엔진(25), 재생제어엔진(26), 클래스 로더(7), 시스템 애플리케이션(28)을 계층화한 것이다.
또, 펌웨어(22)는 Persistent 영역을 액세스하기 위한 필수의 소프트웨어 요소로서 예를 들어 JavaI/O 메소드(method)를 실현하는 파일 I/O 프로그램을 포함한다. 이 I/O 프로그램은 예를 들어 BD-J 애플리케이션으로부터의 Persistent 영역에 기록한 벤치마크 스코어로의 액세스 요구에 대하여, Persistent 영역에 기록한 벤 치마크 스코어를 액세스를 요구한 BD-J 애플리케이션으로 되돌리는 처리를 한다. 이후, 이들 구성요소에 대하여 설명한다. 또, 정확하게는 재생장치(102)의 소프트웨어 구성으로서 HDMV 모드를 위한 HDMV 모듈이나 BD-J 모드, HDMV 모드의 절환을 위한 모듈 매니저가 존재한다. 그러나 이들 구성요소는 본원의 주안은 아니므로 설명을 생략한다.
(가상파일시스템(23))
가상파일시스템(23)은 로컬 스토리지에 저장된 다운로드 콘텐츠를 BD-ROM에서의 디스크 콘텐츠와 일체적으로 취급하기 위한 가상적인 파일시스템이다. 여기서 로컬 스토리지에 저장된 다운로드 콘텐츠는 도 2에 나타내는 Clip 정보, 플레이리스트 정보를 포함한다. 이 다운로드 콘텐츠에서의 플레이리스트 정보는 BD-ROM 및 로컬 스토리지 중 어느 하나에 존재하는 Clip 정보라도 지정할 수 있다는 점에서 BD-ROM 상의 플레이리스트 정보와 다르다. 이 지정 시에 가상파일시스템(23) 상의 플레이리스트 정보는 BD-ROM이나 로컬 스토리지에서의 파일을 풀 패스로 지정할 필요는 없다. BD-ROM 상의 파일시스템이나 로컬 스토리지 상의 파일시스템은 가상적인 하나의 파일시스템(가상파일시스템(23))으로 인식되기 때문이다. 따라서, 플레이리스트 정보는 Clip 정보를 저장한 파일의 파일 보디에 해당하는 수치를 지정함으로써 가상파일시스템(23), BD-ROM 상의 AV 스트림을 지정할 수 있다. 가상파일시스템(23)을 통해서 로컬 스토리지의 기록내용을 판독하고, BD-ROM의 기록내용과 동적으로 조합시킴으로써 다양한 재생의 변형을 창출할 수 있다. 로컬 스토리지와 BD-ROM을 조합하여 이루어지는 디스크 콘텐츠는 BD-ROM에서의 디스크 콘텐츠와 대 등하게 취급되므로, 본원에서의 "BD-ROM"은 로컬 스토리지+BD-ROM의 조합으로 이루어지는 가상적인 기록매체를 포함하는 것으로 한다.
(액세스 제어기구(24))
액세스 제어기구(24)는 정당한 권한을 갖는 BD-J 애플리케이션(Signed 애플리케이션이라고 한다)만이 로컬 스토리지에서의 애플리케이션 데이터영역을 액세스할 수 있도록 강제적인 제어를 한다. 그러한 강제적인 제어에 의해서 유효한 디지털 신용증명서를 가진 BD-J 애플리케이션만이 애플리케이션 데이터영역에서의 벤치마크 스코어를 액세스할 수 있게 된다.
구체적으로 말하면, 로컬 스토리지의 애플리케이션 데이터영역을 액세스하기 위한 고정 파일패스를 이용한 판독이 요구된 때에, 그 판독을 요구한 BD-J 애플리케이션의 디지털 신용증명서에 대하여 액세스 권한의 체크를 한다. 그리고 액세스 권한이 있다고 인정되면, 고정 파일패스를 이용한 파일 액세스를 예를 들어 가상파일시스템(23)에서의 파일 I/O를 위한 API(JavaI/O 메소드))를 통해서 애플리케이션 데이터영역으로부터 원하는 데이터를 판독하여 서비스 애플리케이션에 인계한다.
(재생엔진(25))
재생엔진(25)은 AV 재생기능을 실행한다. 재생장치(102)의 AV 재생기능은 DVD 플레이어, CD 플레이어로부터 답습한 전통적인 기능 군이며, 재생개시(Play), 재생정지(Stop), 일시정지(Pause On), 일시정치의 해제(Pause Off), Still 기능의 해제(Still off), 속도지정 부(付) 빨리 감기(Forward Play(speed)), 속도지정부 되감기(Backward Play(speed)), 음성절환(Audio Change), 부 영상 절환(Subtitle Change), 앵글 절환(Angle Change)과 같은 기능이다. AV 재생기능을 실현하기 위해서 재생엔진(25)은 버퍼 상에 판독된 AV 스트림 중 원하는 시각에 해당하는 부분의 디코드를 행하도록 디코더를 제어한다. 원하는 시각에서부터의 디코드를 행하게 함으로써 AV 스트림에서 임의의 시점에서의 재생을 가능하게 할 수 있다.
(재생제어엔진(26))
재생제어엔진(26)은 플레이리스트 정보에 대한 재생제어함수(ⅰ), 재생장치(102)에서의 상태취득/설정함수(ⅱ)와 같은 여러 기능을 실행한다. 플레이리스트 정보에 대한 재생제어함수는 재생엔진(25)이 행하는 AV 재생기능 중 재생개시나 재생정지를 현재 플레이리스트 정보 및 Clip 정보에 따라서 행하게 하는 것을 말한다. 이들 기능 (ⅰ)~(ⅱ)는 상위층으로부터의 API 콜에 따라서 실행한다. 이상의 재생엔진(25)과 재생제어엔진의 세트는 "AV 재생 라이브러리"라고 불리며, AV 재생전용의 라이브러리로서 재생장치(102)에 실장된다.
(BD-J 모듈(27))
BD-J 모듈(27)은 Java(TM) 플랫폼이며, Java(TM) 가상머신, 컨피규레이션, 프로파일로 이루어진다. 이들 중 Java(TM) 가상머신은 클래스 파일의 인스턴스를 구성하는 바이트코드의 해석 실행을 하는 인터프리터이며, 바이트코드를 네이티브 코드로 번역하여 MPU(16)에 실행시킨다. 이 인터프리터는 BD-J 애플리케이션의 실행속도에 직접 영향을 주는 중요한 부분이며, 구체적인 실장으로는 바이트코드를 네이티브 코드로 변환하는 JIT 컴파일러를 구비한 인터프리터로서 실장할 수 있다. 이와 같은 JIT 컴파일러의 구비에 의해서 해석 실행의 고속화를 도모할 수 있다. 또, 인터프리터의 일부에 대해서는 하드웨어를 이용하여 실장할 수 있다.
(시스템 애플리케이션(28))
시스템 애플리케이션(28)은 클래스 파일에서 정의된 시스템 프로그램이며, RAM(15)에서의 히프 메모리에 배치된다. 시스템 애플리케이션(28)의 유형으로는 클래스 파일에 저장된 오브젝트 지향 언어의 구조체를 바이트코드로 변환하여 히프 메모리 상에 로드하는 「클래스 로더」, 「애플리케이션 매니저」, 애플리케이션에 출력할 이벤트 처리를 하는 「사용자 이벤트 매니저」, 「벤치마크 스코어 설정부」등이 있다.
이상이 시스템 애플리케이션(28)에 대한 설명이다. 이어서 벤치마크 스코어의 상세에 대하여 설명한다.
<벤치마크 스코어>
도 8(a)에서의 텍스트 파일은 예를 들어 재생장치(102)에 포함된 하드웨어 및 펌웨어(22)에 대한 벤치마크 스코어를 저장하고 있다. 벤치마크 스코어는 재생장치에 포함된 하드웨어, 펌웨어의 성능을 나타내는 지표이며, 벤치마크 테스트는 상술한 지표를 산출 또는 계측하기 위한 프로그램이다. 벤치마크 프로그램은 벤치마크 테스트를 하기 위한 프로그램이다. 본 실시 예의 재생장치(102)에 대한 벤치마크 테스트는 재생장치(102)를 출하하기 전에 제조업체가 재생장치(102) 상에서 벤치마크 애플리케이션(29)을 실행함으로써 이루어진다. 펌웨어(22)에 포함된 텍스트 파일은 예를 들어 공식 애플리케이션에 의한 벤치마크 테스트의 결과이며, 이 결과를 "벤치마크 스코어"로 텍스트 파일에 기록한다. 또, 이때, 벤치마크 스코어 에 대한 디지털 증명서, 벤치마크 스코어를 산출하기 위해서 이용한 벤치마크 프로그램을 발행한 조직의 조직 ID, 벤치마크 프로그램의 애플리케이션 ID를 포함한다.
포함된 벤치마크 스코어는 예를 들어 이러한 펌웨어(22)를 통해서 하드웨어에 처리를 요구하고나서부터 처리가 완료하여 응답이 되돌아올 때까지의 턴 어라운드 시간이며, 펌웨어(22)를 최초로 실행할 때에 애플리케이션 데이터영역에서의 고정패스로 저장된다. 이 고정패스는 예를 들어 도 14에 나타내는 ADA-CertID-OrganizationID-ApplicationID라고 하는 조합의 고정 파일패스이다. CertID, OrganizationID, ApplicationID는 각각 벤치마크 스코어에 대한 디지털 신용증명서, 벤치마크 스코어를 산출하기 위해서 이용한 벤치마크 프로그램을 발행한 조직의 조직 ID, 벤치마크 프로그램의 애플리케이션 ID로부터 특정할 수 있는 정보이다. 벤치마크 스코어는 예를 들어 개찬되어 있는지 여부의 체크, 상술한 디지털 신용증명서의 증명서 정당성 체크를 거친 후에 고정 파일패스에 의해 특정된다. 고정 파일패스는 예를 들어 상술한 디지털 신용증명서로부터 특정되는 제공자 루트 증명서에 대한 루트 증명서(예를 들어, 재생장치 내에 보유하고 있다)의 CertID, 상술한 조직의 조직 ID, 벤치마크 프로그램의 애플리케이션 ID를 조합한 고정 파일패스에 의해 특정된다. 따라서, 펌웨어(22)가 갱신된 경우라도 고정 파일패스는 변화하지 않는다. 또, 벤치마크 스코어는 펌웨어(22)가 갱신되지 않으면 변화하지 않는다. 펌웨어(22)가 갱신되면 애플리케이션 데이터영역에는 새로운 텍스트 결과가 되는 벤치마크 스코어가 기록되게 된다.
제조업체는 재생장치(102)의 출하 전에 재생장치(102)에 펌웨어(22)를 내장 시킨 상태에서 벤치마크 테스트를 실행한다. 그 결과가 되는 벤치마크 스코어는 펌웨어(22)에 포함된다. 또, 펌웨어(22)에 포함된 벤치마크 스코어는 애플리케이션 데이터영역에 기록된다. 또, 예를 들어 사용자 집에서 재생장치(102)가 펌웨어(22)를 갱신한 경우, 갱신된 펌웨어(22)의 최초의 실행 시에 펌웨어(22)에 포함된 벤치마크 스코어는 애플리케이션 데이터영역에서의 의도한 위치(location)에 저장된다. 이 경우, 위치는 도 6에 나타내는 ADA-CertID-OrganizationID-ApplicationID라고 하는 고정 파일패스에 의해 특정되는 애플리케이션 데이터영역이다.
벤치마크 테스트의 대상이 되는 펌웨어(22)를 통한 하드웨어 처리에는, 예를 들어,
a) JPEG, PNG 등의 압축 이미지 데이터의 전개, 메모리로의 로드, 오디오 데이터의 메모리로의 로딩, 폰트 데이터의 로드,
b) AV 재생, AV 스트림의 절환(switching), 자막, 음성 등의 절환,
c) 부동소수점이나 삼각함수 등의 연산, 직사각형 이미지 묘화(α합성 있음, 없음), 이미지 확대 축소, 다각형 묘화, 스프라이트 묘화, 문자 열 묘화 등이 있다. 이들 개별 기능의 실시를 동시에 복합적으로 실시한 경우의 시간도 벤치마크의 대상이 된다.
이들 처리는 벤치마크 테스트의 대상으로 공식으로 인정되어 있으며, 식별정보에 의해 일의적으로 지시할 수 있도록 되어 있다. 벤치마크 테스트의 대상이 되는 처리가 이용 가능한 API 메소드에 대응하는 경우, 그 API 메소드의 함수 명을 식별정보로서 이용할 수 있다.
이러한 처리를 대상으로 한 벤치마크 테스트의 결과, 즉,
1) JPEG, PNG 등의 압축 이미지 데이터의 전개를 요구하고나서부터 처리가 완료할 때까지의 턴 어라운드 시간,
2) 메모리로의 로드를 요구하고나서부터 처리가 완료할 때까지의 턴 어라운드 시간, 메모리로의 로딩, 로드를 요구하고나서부터 처리가 완료할 때까지의 턴 어라운드 시간,
3) AV 재생 호출로부터 실제의 재생에 걸리는 턴 어라운드 시간,
4) AV 스트림의 절환을 요구하고나서부터 처리가 완료할 때까지의 턴 어라운드 시간,
5) 자막, 음성 등의 절환을 요구하고나서부터 처리가 완료할 때까지의 턴 어라운드 시간,
6) 부동소수점이나 삼각함수 등의 연산을 요구하고나서부터 연산이 완료할 때까지의 턴 어라운드 시간,
7) 직사각형 이미지 묘화를 요구하고나서부터 처리가 완료할 때까지의 턴 어라운드 시간,
8) 이미지 확대 축소, 다각형 묘화, 스프라이트 묘화, 문자 열 묘화 등을 요구하고나서부터 묘화가 완료할 때까지의 턴 어라운드 시간
과 같은 것이 벤치마크 스코어로 펌웨어(22)에 내장되게 된다. 이들 내장된 벤치마크 테스트의 결과는 예를 들어 재생장치(102)가 도 5(b)에 나타내는 바와 같이, BD-J 모드에서 캐릭터 애니메이션의 표시와 동화상 재생을 조합한 합성 영상을 사용자에게 제시하는 경우에 재생장치(102)에 가해지는 부하가 어느 정도인지를 나타내는 지표가 되며, 이 지표에 따라서 예를 들어 도 6에 나타내는 캐릭터 애니메이션의 처리부하를 동적으로 절환할 수 있게 된다.
다음에, 벤치마크 스코어의 구성에 대하여 설명한다.
벤치마크 스코어는 예를 들어 벤치마크 테스트의 대상이 된 처리를 식별하는 식별정보와 턴 어라운드 시간의 계측 값을 대응시켜서 구성된다. 펌웨어에 포함된 텍스트 파일은 예를 들어 처리의 식별정보와 턴 어라운드 시간의 계측 값의 세트를 나열한 리스트 형식으로 되어 있으며, 식별정보를 이용함으로써 임의의 처리의 턴 어라운드 시간을 얻을 수 있다.
이러한 식별정보를 공식으로 정해두면, 벤치마크 스코어를 저장한 텍스트 파일의 판독시에 서비스 애플리케이션은 처리식별정보를 인수로 해서 텍스트 파일의 판독을 요구할 수 있다. 이렇게 함으로써 텍스트 파일 내의 복수의 벤치마크 스코어 중 그 인수에 대응하는 것을 서비스 애플리케이션에 인계할 수 있게 된다.
턴 어라운드 시간으로는 45KHz의 시간 정밀도로 표현하는 것이 바람직하다. 왜냐하면, AV 스트림을 구성하는 PES 패킷의 각각에는 PTS(Presentation Time Stamp), DTS(Decode Time Stamp)가 부여되어 있으며, 재생장치(102)의 내부에는 1/45,000초라고 하는 시간 정밀도로 동작을 하는 STC(System Time Clock)가 존재한다. 그러한 STC의 시간 정밀도로 벤치마크 스코어를 작성해 두면 AV 스트림의 재생처리와의 동기를 치밀하게 실행할 수 있기 때문이다. 또, 플레이리스트 정보의 In_Time, Out_Time은 이 45KHz의 시간 정밀도로 정해져 있으므로, 서비스 애플리케 이션이 플레이리스트 정보에 의한 재생과 동기하여 처리부하를 변화시키는 데에도 바람직하다.
이러한 벤치마크 스코어는 재생장치(102)의 개발환경에서 펌웨어(22)가 완성한 때에 제조업체에 의해서 펌웨어(22)에 내장되는 것이다. 벤치마크 스코어가 어떻게 얻어진 것인지를 이하에서 해설한다.
도 9는 재생장치(102)의 개발환경을 나타내는 도면이다. 이 개발환경에서 재생장치(102)는 개발용 컴퓨터(105)와 LAN 접속되어 있다. 또, 펌웨어(22)에는 벤치마크 스코어를 제외한 펌웨어(22), 즉 펌웨어(2)를 구성하는 실행형식의 파일, 클래스 파일이 기록되어 있다. 이들을 완비하고 있으므로 본 도면의 재생장치(102)는 제품으로서 사용자에게 공급되는 것과 동등한 성능을 갖는다. 그리고 이러한 재생장치(102)에는 LAN을 개재하여 개발용 컴퓨터(105)로부터 벤치마크 애플리케이션(29)이 공급된다.
개발용 컴퓨터(105)는 IDE, ADK의 소프트웨어가 실장되어 있으며, LAN을 통한 펌웨어의 개발환경을 사용자에게 제공한다. IDE(Intergrated Development Environment)는 시스템 애플리케이션을 구축하기 위한 컴파일러 등으로 구성된다.
ADK(Application Development Kit)는 JPDA(Java Platform Debugger Architecture)의 구조를 이용함으로써 시스템 애플리케이션의 디버그를 실현하는 개발환경이다.
재생장치(102)와 컴퓨터(105)의 송수신은 재생장치(102)와 PC를 연결하는 시리얼 포트, Socket으로 이루어진다. Socket은 IEEE802.3(Ethernet), IP, TCP/UDP 상에 위치하는 세션 층의 통신로이며, 시스템 애플리케이션은 네트워크 모델로 IEEE802.3(Ethernet), IP, TCP/UDP를 채용하고 있으므로, 물론 이러한 Socket을 디버그 시의 전송로로 채용할 수 있다.
도 10은 텍스트 파일에 저장되는 벤치마크 스코어가 어떻게 얻어진 것인지를 해설한 도면이다. 본 도면은 재생장치(102)가 출하되기 전의 펌웨어(22) 작성과정의 일 예를 모식적으로 나타내고 있다.
본 도면은 도 8(b)을 기초로 작성되어 있으며, 이 기초가 되는 레이어 모델과 비교하여, BD-J 모듈(27) 상에서 벤치마크 애플리케이션(29)이 동작하고 있는 점, 재생장치(102)에 컴퓨터(105)가 접속되어 있는 점이 다르다. 벤치마크 애플리케이션(29)은 예를 들어 BD-ROM 드라이브(1), HD 드라이브(13), 카드 드라이브(14) 중 어느 하나로부터 판독되어서 BD-J 모듈(27) 상에서 동작하고 있는 것이다. 또, 컴퓨터는 제조업체의 작업 담당자에 의해서 조작되는 것이다.
본 도면에서의 U자 형상의 화살표는 이러한 벤치마크 애플리케이션(29)이 펌웨어를 통해서 하드웨어에 대하여 처리를 요구하고나서부터 그 처리가 완료하여 응답이 되돌아올 때까지의 과정을 모식적으로 나타내고 있다. 벤치마크 애플리케이션(29)은 하드웨어가 실행할 수 있는 다양한 기능에 대하여 재생장치(102)의 출하 전에 걸리는 턴 어라운드 시간을 계측하여, 턴 어라운드 시간의 계측 값을 외부에 접속된 컴퓨터(105)에 익스포트(export)한다. 컴퓨터(105)는 그렇게 익스포트된 계측 값을 하드디스크 상의 데이터 베이스에 축적하여, 복수의 계측 값으로 구성되는 텍스트 파일을 형성해 간다. 한 가지의 기능에 대한 벤치마크가 완료하고, 계측 값 의 축적이 완료하면, 그렇게 얻어진 텍스트 파일을 펌웨어(22)를 구성하는 실행형식 파일, 클래스 파일과 일체화하여 펌웨어(22)를 얻는다.
이상과 같이 재생장치(102)의 펌웨어(22)는 턴 어라운드 시간의 계측과 그 계측결과인 벤치마크 스코어의 내장이 이루어진 상태에서 완성한다.
벤치마크 스코어를 저장한 텍스트 파일은 펌웨어(22)를 구성하는 실행형식 파일 및 클래스 파일과 일체로 취급되고 있으며, 이들 텍스트 파일, 실행형식 파일, 클래스 파일은 예를 들어 하나로 종합해서 ZIP 파일 등에 저장할 수 있다. 부트 시의 벤치마크 스코어를 저장한 텍스트 파일은 실행형식 파일 및 클래스 파일과 함께 펌웨어(22)로부터 RAM(15)에 판독되어서 RAM(15)의 상주영역에 배치되며, MPU(16)에서의 메모리 공간에 맵핑되게 된다. 벤치마크 스코어를 저장한 텍스트 파일은 실행형식 파일 및 클래스 파일과 일체적으로 되어 있으므로, 이러한 벤치마크 스코어의 상태를 "펌웨어(22)에 내장되어 있다"라고 하는 것으로 한다.
이상이 제조업체 의한 벤치마크의 실행에 대한 설명이다.
(펌웨어(22)의 갱신)
이어서, 사용자에 의한 펌웨어(22)의 갱신이 어떻게 이루어지는지에 대하여 설명한다.
새로운 펌웨어(22)를 저장하기 위한 리무버블 미디어에는 예를 들어 SD 메모리카드나 CD-R을 이용할 수 있다.
제조업체가 운영하는 WWW 서버의 WWW 사이트, 즉 제조업체의 공식 WWW 사이트에는 재생장치(102)의 펌웨어(22)에 대하여 버그의 보고나 최신 업 데이트 상황 이 고지되어 있다. 재생장치(102)가 네트워크에 접속되어 있는 경우에는 이러한 업 데이트 상황을 항상 감시하고 있으며, 만약 펌웨어(22)의 업 데이트의 고지가 있으면 재생장치(102)는 네트워크를 통해서 새로운 펌웨어(22)를 저장한 ZIP 파일을 다운로드 하여 리무버블 미디어에 기록한다. 상술한 바와 같이, 펌웨어(22)를 구성하는 실행형식 파일, 클래스 파일 등은 텍스트 파일과 함께 ZIP 파일에 저장되므로, 새로운 펌웨어(22)를 저장한 ZIP 파일을 다운로드 하여 리무버블 미디어에 기록함으로써 펌웨어(22)의 갱신의 준비가 완료한다.
재생장치(102)가 네트워크 접속되어 있지 않고, 독립형(standalone)으로 사용되고 있는 경우, 사용자가 소지하는 퍼스널 컴퓨터는 재생장치(102) 대신에 재생장치(102)의 펌웨어(22)에서의 최신 업 데이트 상황의 감시를 한다. 이러한 감시는 예를 들어 재생장치(102)에 부속되어 있는 소프트웨어 키트(software kit)를 컴퓨터에 인스톨하면, 당해 컴퓨터가 자동으로 실행하게 된다. 만약, 펌웨어(22)의 업 데이트의 고지가 있으면, 그 소프트웨어 키트가 인스톨되어 있는 퍼스널 컴퓨터는 네트워크를 통해서 새로운 펌웨어(22)를 저장한 ZIP 파일의 다운로드를 하여 자신의 하드디스크에 기록한다.
이렇게 새로운 펌웨어(22)를 저장한 ZIP 파일을 리무버블 미디어에 기록함으로써 펌웨어(22) 갱신의 준비가 완료한다. 새로운 펌웨어(22)를 저장한 ZIP 파일은 특수한 문자 및 숫자(매직넘버)가 파일 명으로 부여되고 있으며, 다른 파일과 구별할 수 있도록 되어 있다. 이러한 매직넘버를 갖는 파일이 기록된 리무버블 미디어가 장착된 경우, 재생장치(102)는 펌웨어(22)의 갱신을 실행하게 된다. 이상이 사 용자에 의한 펌웨어(22)의 갱신에 대한 설명이다.
<부트로더(21)>
이어서, 재생장치(102)의 소프트웨어적인 구성요소인 부트로더(21)에 대하여 설명한다.
도 11은 부트로더(21), 시스템 애플리케이션(28)의 내부 구성을 나타내는 도면이다.
도 11(a)은 부트로더(21)의 내부 구성을 나타낸다. 본 도면에 나타낸 바와 같이, 부트로더(21)는 펌웨어 기동부(31), 펌웨어 갱신부(32)로 구성된다. 또, 이들 구성요소가 공통으로 취급하는 시스템 제어의 변수로 플래시 ROM(18)에는 도 11(b)에 나타내는 것과 같은 "최초의 실행을 나타내는 플래그"가 존재한다. 이 플래그는 "0"으로 설정됨으로써 펌웨어(22)가 미실행이라는 취지를 나타낸다. 또, "1"로 설정됨으로써 펌웨어(22)의 최초의 실행은 완료하였으나, 애플리케이션 데이터영역에서의 벤치마크 스코어의 기록이 미완임을 나타낸다.
"2"로 설정됨으로써 펌웨어(22)의 최초의 실행과 애플리케이션 데이터영역에서의 벤치마크 스코어의 기록이 완료한 것을 나타낸다.
<펌웨어 기동부(31)>
펌웨어 기동부(31)는 MPU(116)의 특권 모드에서 동작할 수 있는 프로그램의 하나로, 본 장치의 전원 스위치가 눌려서 전원 유닛으로부터 MPU(16), 디바이스에 전원이 공급되어서 이들 하드웨어가 기동한 때, 플래시 ROM(18)에 저장된 펌웨어(22)를 메모리(예를 들어 도 7에 나타내는 RAM(15)에서의 펌웨어의 상주영역)에 로드하여 MPU(16)에 의한 실행에 제공한다. 이 로드 시에 플래그의 값이 "0"인지 여부를 판정함으로써 펌웨어(22)의 실행이 최초의 실행인지 여부의 판정을 하며, 최초의 실행이면 플래그를 "1"로 설정한다. 이 펌웨어(22)의 최초의 실행은 제조업체가 펌웨어를 완성한 후의 제조업체에 의한 펌웨어(22)의 최초의 실행과 사용자에 의해서 펌웨어가 갱신된 경우의 갱신 후의 펌웨어(22)의 최초의 실행이 있다.
도 12는 펌웨어 기동부(31)가 어떠한 처리를 하고, 펌웨어(22)가 어떠한 경로를 거쳐서 MPU(16)에 제공되는지를 모식적으로 나타내는 도면이다. 화살표 (2-a)는 펌웨어 기동부(31)에 의한 판독지시이고, 화살표 (2-b)는 이 판독지시에 의거한 플래시 ROM(18)으로부터 MPU(16)로의 펌웨어(22)의 공급을 나타낸다. 화살표 (2-c)는 펌웨어 기동부(31)에 의한 플래그의 갱신(0→1)을 모식적으로 나타낸다.
<펌웨어 갱신부(32)>
펌웨어 갱신부(32)는 MPU(16)의 특권 모드에서 동작할 수 있는 프로그램의 하나이며, 본 장치의 전원 스위치가 눌려서 전원 유닛으로부터 MPU(16), 디바이스에 전원이 공급되어서 이들 하드웨어가 기동한 때에 새로운 펌웨어(22)가 기록된 리무버블 미디어가 장착되어 있는지 여부를 판정한다. 그리고 리무버블 미디어가 장착되어 있는 경우, 이러한 리무버블 미디어에 매직넘버가 파일 명으로 부여된 파일이 존재하는가 여부를 체크한다. 이 매직넘버는 당해 리무버블 미디어에 업 데이트 후의 펌웨어(22)가 존재함을 나타내는 특수한 번호이며, 이러한 매직넘버를 갖는 파일이 리무버블 미디어에 존재하면, 당해 리무버블 미디어로부터 새로운 펌웨어(22)를 판독하여 펌웨어(22) 상의 이전의 펌웨어(22)를 오버라이트 한다. 이러한 오버라이트 후에 플래그를 "0"으로 갱신하다.
도 12에서는 펌웨어 갱신부(32)에 의한 지시나 데이터의 왕래를 화살표로 모식화하여 묘사한 도면이다. 화살표 (1-a)는 매직넘버가 부여된 새로운 펌웨어(22)의 판독이고, 화살표 (1-b)는 새로운 펌웨어(22)를 이용한 오버라이트를 모식적으로 나타낸다. 화살표 (1-c)는 펌웨어 갱신부(32)에 의한 플래그의 갱신(1→0)을 모식적으로 나타낸다.
이상이 부트로더(21)에 대한 설명이다. 도 11(c)로 되돌아가서 시스템 애플리케이션(28)의 상세에 대하여 설명한다. 도 11(c)의 시스템 애플리케이션(28)에는 애플리케이션 매니저(33), 벤치마크 스코어 설정부(34)가 기술되어 있다. 또, 시스템 애플리케이션(28)의 구성요소 중 클래스 로더, 사용자 이벤트 매니저는 이미 설명하였으므로 설명은 생략한다.
<애플리케이션 매니저(33)>
애플리케이션 매니저(33)는 BD-J 오브젝트에서의 애플리케이션 관리테이블(AMT)에 의거하여 "애플리케이션 시그널링"을 실행한다. 구체적으로는, 재생장치(102)에서 재생대상이 되는 타이틀의 절환이 발생한 경우, 새로운 타이틀에 대응하는 BD-J 오브젝트에서의 애플리케이션 관리테이블을 참조하여 이 새로운 타이틀을 생존구간으로 하는 BD-J 애플리케이션이 어느 것인지를 판정한다. 그리고 판정된 BD-J 애플리케이션의 로드를 클래스 로더에 실행시킨다. 본 실시 예 특유의 처리로, 재생장치(102)에 BD-ROM이 장착되고 재생장치(102)가 기동 된 때에 벤치마크 스코어 설정부(34)를 BD-J 모듈(27)에 의한 실행에 제공한다.
<벤치마크 스코어 설정부(34)>
초기화부에 대응하는 벤치마크 스코어 설정부(34)는 MPU(16)의 특권 모드에서 동작할 수 있는 프로그램의 하나이며, 펌웨어의 최초 실행인지를 나타내는 플래그가 "0"인지 여부의 판정을 하여, 만약 "0"이면 플래시 ROM(18)에서의 펌웨어(22)로부터 벤치마크 스코어를 판독하여 애플리케이션 데이터영역에 기록한다.
도 13은 플래시 ROM(18) 중의 벤치마크 스코어가 어떠한 경로를 거쳐서 벤치마크 스코어 설정부(34)에 제공되는가를 모식적으로 나타내는 도면이다. 화살표 (3-a)는 플래그의 공급경로이며, 당해 플래그의 설정 값은 벤치마크 스코어 설정부(34)에 제공되어서, 펌웨어(22)의 실행이 최초인지 여부, 애플리케이션 데이터영역에 벤치마크 스코어가 기록되었는지 여부의 판정에 제공된다.
화살표 (3-b)은 플래시 ROM(18)으로부터 벤치마크 스코어 설정부(34)로의 벤치마크 스코어의 공급경로를 상징적으로 나타낸다. 당해 벤치마크 스코어는 MPU의 특권 모드에서만 실행이 가능한 특수한 Read 커맨드(Read 요구)를 발행함으로써 플래시 ROM(18)으로부터 판독되어서 벤치마크 스코어 설정부(34)에 인계되게 된다.
화살표 (3-c)는 벤치마크 스코어 설정부(34)로부터 Persistent 영역(더 구체적으로는 애플리케이션 데이터영역)으로의 벤치마크 스코어의 공급경로를 상징적으로 나타낸다. 당해 벤치마크 스코어는 ADA-CertID-OrganizationID-ApplicationID라고 하는 조합의 고정 파일패스를 이용한 Write 요구에 의해서 애플리케이션 데이터영역에 기록되게 된다. 서비스 애플리케이션에 의한 Write 요구의 발행은 파일 판독을 위한 API 메소드를 콜함으로써 이루어진다. Write 요구에서의 액세스 처는 고 정 파일패스를 이용하여 특정된다.
이상과 같이 벤치마크 스코어는 펌웨어(22)에 내장된 형태로 재생장치(102)에 공급되며, 펌웨어(22)가 최초로 실행된 때에 애플리케이션 데이터영역에 저장되게 된다.
CertID가 "Og1a24ed"이고, OrganizationID가 "4", ApplicationID가 "5"인 경우, 도 14에 나타내는 것과 같은 디렉터리 파일 구성으로 벤치마크 스코어는 저장되게 된다. 도 14는 CertID가 예를 들어 "0g1a24ed", OrganizationID가 예를 들어 "4", ApplicationID가 예를 들어 "5" 인 경우의 디렉터리 파일 구성의 일 예를 나타내는 도면이다.
이 "4"라고 하는 OrganizationID가 BD 재생장치(102)의 표준화를 추진하는 조직의 일 예를 나타내는 식별자이고, "5"라고 하는 ApplicationID가 벤치마크 애플리케이션(29)의 일 예를 나타내는 식별자인 경우, 이들 조직의 식별자와 벤치마크 애플리케이션(29)의 식별자를 조합한 파일패스에 의해서 벤치마크 스코어는 판독되게 된다.
이후, 이 애플리케이션 데이터영역에 대한 액세스에 대하여 설명한다.
도 15는 애플리케이션 데이터영역 중의 벤치마크 스코어가 어떠한 경로를 거쳐서 서비스 애플리케이션에 인계되는지를 나타내는 도면이다.
화살표 (5-a)는 서비스 애플리케이션이 보낸 Read 요구의 공급경로이다. 서비스 애플리케이션에 의한 Read 요구의 발행은 파일 판독을 위한 API 메소드를 콜함으로써 이루어진다. Read 요구에서의 액세스 처는 고정 파일패스를 이용하여 특 정된다. 고정 파일패스를 이용한 Read 요구는 액세스 제어기구(24)에 인계되고, 액세스 제어기구(24)에 의한 권한 체크에 제공되는 것을 알 수 있다.
화살표 (5-b)는 서비스 애플리케이션으로부터 액세스 제어기구(24)로의 디지털 신용증명서의 공급경로를 상징적으로 나타낸다. 당해 디지털 신용증명서는 액세스 제어기구(24)에 인계된다.
화살표 (5-c)는 애플리케이션 데이터영역으로부터 서비스 애플리케이션으로의 벤치마크 스코어의 공급경로를 상징적으로 나타낸다. 서비스 애플리케이션이 정당한 권한을 구비하고 있다는 것이 인정되면, READ 요구에 따라서 시스템 애플리케이션(28)은 로컬 스토리지에서의 Persistent 영역의 액세스를 하고, 그 결과, 화살표 (5-d)에 나타내는 바와 같이, 벤치마크 스코어는 서비스 애플리케이션에 인계되게 된다.
이상이 시스템 애플리케이션(28)의 구성요소에 대한 설명이다. 이어서, 펌웨어 갱신부(32), 펌웨어 기동부(31)가 행하는 처리순서의 상세에 대하여 설명한다.
도 16(a)은 펌웨어 갱신부(32)의 처리순서를 나타내는 플로차트이다. 스텝 S1은 리무버블 미디어가 장착되었는지 여부의 감시이며, 리무버블 미디어가 장착되면 스텝 S2로 이행한다. 스텝 S2는 매직넘버를 갖는 파일이 존재하는지 여부의 판정이다. 만약 존재하지 않으면 어떠한 처리도 하지 않고 본 플로차트의 처리를 종료한다. 만약 존재하면 스텝 S3에서 리무버블 미디어로부터 펌웨어(22)를 판독하여 플래시 ROM(18)에서의 오래된 펌웨어(22)를 오버라이트 한다. 그 후, 스텝 S4에서 플래시 ROM(18)에서의 플래그를 "0"으로 설정한다.
도 16(b)은 펌웨어 기동부(31)의 처리순서를 나타내는 플로차트이다. 전원이 투입되면, MPU(16)에 대하여 리셋 인터럽트가 발생하고, MPU(16)에서의 프로그램 카운터는 리셋 벡터로 설정되며, 초기화 프로그램이 실행된다. 이에 의해서, MPU(16)의 동작모드가 설정되고, MPU(16) 내의 각종 레지스터가 초기화된다. 이어서, 클록, 버스, 메모리 등이 초기화된다. MPU(16) 측의 초기화가 종료한 후, 이번에는 프로그램의 초기화가 개시되고, 펌웨어 기동부(31)로 처리가 이동한다. 스텝 S5는 플래그가 "0"인지 여부의 판정이며, 판정결과에 따라서 스텝 S6을 실행할지 스킵할지의 제어를 한다. 플래그가 "0"이면 스텝 S6에서 플래그를 "1"로 설정하다. 이에 의해서 플래그는 플래시 ROM(18)에서의 펌웨어(22)가 최초로 실행된 상태를 나타내게 된다.
그 후, MPU(16)의 초기화를 하고(스텝 S7), 기본 디바이스의 초기화를 하며(스텝 S8), 플래시 ROM(18)에서 RAM(15)에 펌웨어(22)를 전송한다(스텝 S9). 마지막으로 홈 웨어(22)를 초기화하여 기동한다(스텝 S10).
도 17은 벤치마크 스코어 설정부(34)의 처리순서를 나타내는 플로차트이다. 본 플로차트에서는 먼저 펌웨어(22)로부터 플래그를 판독하고(스텝 S11), 스텝 S12의 판정 스텝을 실행한다. 스텝 S12는 플래그가 "1"인지 여부의 판정이며, 만약 "1"이면 스텝 S13~스텝 S15의 처리순서를 실행한다. 플래그가 "1"이 아니면 스텝 S16, 스텝 S17을 실행한다.
스텝 S13~스텝 S15의 처리순서는 펌웨어(22)로부터 벤치마크 스코어를 저장한 텍스트 파일을 판독하고(스텝 S13), 그렇게 판독된 텍스트 파일을 ADA-CertID- OrganizationID-ApplicationID라고 하는 조합의 고정 파일패스를 이용하여 애플리케이션 데이터영역에 기록한다(스텝 S14). 그 후, 플래그를 "2"로 설정한다(스텝 S15)고 하는 것이다.
스텝 S16, 스텝 S17의 처리순서는 파일패스를 이용하여 벤치마크 스코어가 존재하는가 여부를 체크하고(스텝 S17), 존재하면 처리를 종료하나, 존재하지 않으면 펌웨어(22)로부터 벤치마크 스코어를 판독하여 애플리케이션 데이터영역에 기록한다(스텝 S13~스텝 S15).
이상과 같이 본 실시 예에 의하면, 벤치마크 스코어는 펌웨어(22)에 내장되어 있고, 펌웨어(22)가 최초로 실행된 때에 벤치마크 스코어는 애플리케이션 데이터영역에 기록되므로, BD-J 애플리케이션은 애플리케이션 데이터영역을 액세스하는 것만으로도 하드웨어의 성능에 따른 처리부하의 변경을 실행할 수 있다.
벤치마크 스코어는 펌웨어(22)에 내장되어 있으므로, 펌웨어(22)의 부정기적인 갱신이 있었다고 하더라도 최신의 펌웨어(22)에 대응하는 벤치마크 스코어가 재생장치(102)에 공급되게 된다.
(제 2 실시 예)
본 실시 예에서는 액세스 제어기구(24)에 의한 액세스 권한의 체크가 어떻게 이루어지는가를 구체적으로 개시한다. 이러한 액세스 권한의 체크는 디지털 신용증명서를 대상으로 해서 이루어진다.
디지털 신용증명서는 벤치마크 프로그램(또는, 벤치마크 스코어) 또는 디지털 신용증명서의 배급자(distributor)에 의해서 디지털 신용증명서의 요구 원이 되 는 콘텐츠 개발자(content author)(애플리케이션을 만든 사람을 말한다)에게 공급된다. 이 공급 시에 아래에서 설명하는 분배송신 조작이 필요해진다.
A) 배급자는 디지털 신용증명서를 작성하기 위해서 공개 키를 사용한다.
B) 콘텐츠 개발자는 공개 키가 디지털 신용증명서에 첨부되어서 공급될 것을 배급자에게 요구한다. 이때, 콘텐츠 개발자는 증명된 해시 값을 배급자에게 공급한다.
C) 배급자는 공급된 해시 값을 이용하여 디지털 신용증명서를 작성한다.
이와 같은 과정을 거침으로써 배급자는 유효한 디지털 신용증명서를 획득할 수 있다. 유효한 디지털 신용증명서를 갖는 BD-J 애플리케이션은 애플리케이션 데이터영역에서의 벤치마크 스코어를 액세스할 수 있다. 그러나 유효한 디지털 신용증명서를 갖지 않는 BD-J 애플리케이션은 애플리케이션 데이터영역에서의 벤치마크 스코어를 액세스할 수 없다.
이러한 디지털 신용증명서는 아카이브 파일에 포함된 후에 BD-ROM에 기록되어서 재생장치(102)에 공급된다. 기능 세그먼트의 검증에는 상술한 디지털 신용증명서 외에, 도 2에 나타내는 BD.ROOT.CERTIFICATE(디스크 루트 증명서)와 아카이브 파일에 존재하는 다른 파일이 필요하다. 이후, 아카이브 파일의 내부 구성에 대하여 설명한다.
Java(TM) 아카이브 파일(XXX.JAR)은 복수의 파일을 디렉터리 구조의 형태로 저장하고 있다. 도 18(a)는 Java(TM) 아카이브 파일의 내부 구성의 일 예를 나타내는 도면이다. 이 구조는 루트 디렉터리의 바로 아래에 XXXX.class가 존재하고, META-INF 디렉터리에 파일 MANIFEST.MF, 파일 SIG-BD.SF, 파일 SIG-BD.RSA, 파일 bd.XXXX.perm이 존재한다고 하는 것이다. 이하, 이들 파일에 대하여 개별로 설명해간다.
(ⅰ) XXXX.class : 클래스 파일
클래스 파일은 Java 언어 등 오브젝트 지향 언어를 이용하여 기술된 클래스 구조체를 저장하고 있다.
(ⅱ) MANIFEST.MF : 메니페스트 파일(manifest file)
메니페스트 파일은 디지털 증명서에 대응하는 것이며, Java(TM) 아카이브 파일의 속성, Java(TM) 아카이브 파일 내의 클래스 파일이나 데이터 파일의 해시 값이 기재되어 있는 파일이다. Java(TM) 아카이브 파일의 속성에는 클래스 파일의 인스턴스인 BD-J 애플리케이션에 부여되는 애플리케이션 ID, Java(TM) 아카이브 파일을 실행하기 위해서 최초로 실행해야 할 클래스 파일 명이 있다. 상기의 2개의 Java(TM) 아카이브 파일의 속성이 존재하지 않는 경우 Java(TM) 아카이브 파일 중의 클래스 파일의 인스턴스인 BD-J 애플리케이션을 실행하지 않는다.
(ⅲ) SIG-BD.SF : 시그니처 파일(signature file)
SIG-BD.SF는 메니페스트 파일의 해시 값이 기재되어 있는 파일이다.
(ⅳ) SIG-BD.RSA : 디지털 시그니처 파일
SIG-BD.RSA는 「디지털 증명서 체인」, SIG-BD.SF의 「서명정보」가 기재되어 있는 파일이다.
SIG-BD.SF에 대한 「서명정보」는 서명처리를 SIG-BD.SF에 실시함으로써 얻 어진다. 이들 서명처리에는 SIG-BD.RSA 내의 디지털 증명서 체인에서의 공개 키에 대응하는 비밀 키가 이용된다.
「디지털 증명서 체인」은 첫 번째의 증명서(루트 증명서)가 두 번째의 증명서에 서명하고, 또, 마찬가지로 n번째의 증명서가 n+1번째의 증명서에 서명하고 있는 형태를 갖는 복수의 증명서 군이다. 디지털 증명서 체인의 최후의 증명서를「리프 증명서(leaf certificate)」라 한다. 이 구성을 이용함으로써 루트 증명서로부터 순서대로 다음의 증명서를 보장해감으로써 디지털 증명서 체인의 최후의 증명서까지를 보장할 수 있다.
「루트 증명서」는 BD.ROOT.CERTIFICATE 파일에 존재하는 디스크 루트 증명서(301)와 동일한 증명서를 저장하고 있다.
「리프 증명서」에는 조직 ID가 기재되어 있다. SIG-BD.SF는 PKCS#7이라는 형식에 의해서 저장되어 있다. PKCS#7은 서명 및 하나 이상의 디지털 증명서를 저장하기 위한 파일형식이며, IETF(Internet Engineering Task Force)에 의해서 발행된 RFC2315에 기재되어 있다. RFC2315는 http://www.ietf.org/rfc/rfc2315.txt로부터 참조할 수 있다.
통상, 이 디지털 증명서 체인은 하나이나, 후술하는 권한의 제공이 있는 경우 이 디지털 증명서 체인은 2개 만들어진다. 이들 2개의 디지털 증명서 체인을 제 1 디지털 증명서 체인, 제 2 디지털 증명서 체인이라 한다. 제 1 디지털 증명서 체인의 루트 증명서는 권한의 제공을 받는 측의 조직의 디스크 루트 증명서를 나타내고, 리프 증명서는 권한의 제공을 받는 측의 조직의 조직 ID를 나타낸다. 제 2 디 지털 증명서 체인의 루트 증명서는 권한을 제공하는 측의 조직의 디스크 루트 증명서를 나타내고, 리프 증명서는 권한을 제공하는 측의 조직의 조직 ID를 나타낸다. 한편, 권한의 제공이 없는 경우에는 디지털 증명서 체인은 하나(제 1 디지털 증명서 체인)만이 된다.
메니페스트 파일, SIG-BD.SF, SIG-BD.RSA의 상세는 Java(TM) 아카이브 파일의 사양에 기재되어 있다. 메니페스트 파일, SIG-BD.SF, SIG-BD.RSA는 서명처리 및 서명검증처리를 하기 위해서 이용된다. 최종적으로 Java(TM) 아카이브 파일 중의 클래스 파일의 인스턴스인 BD-J 애플리케이션이나 퍼미션 리퀘스트 파일(permission requset file)(405)을 디지털 증명서에 의해서 서명하는 것이 가능해진다. 이후, 메니페스트 파일, SIG-BD.SF, SIG-BD.RSA를 종합해서「디지털 증명서에 의한 서명」이라 한다.
(ⅴ) bd.XXXX.perm : 퍼미션 리퀘스트 파일
bd.XXXX.perm은 실행되는 BD-J 애플리케이션에 어느 퍼미션을 부여할지의 정보를 저장하는 파일이다. 구체적으로 이하의 정보를 저장한다.
(a) 디지털 신용증명서(Credential)
이후, 디지털 신용증명서에 대하여 설명한다. "디지털 신용증명서"는 어느 조직에 귀속하는 조직 디렉터리 내의 파일을 공유화하기 위한 정보이다. 이 공유화는 어느 조직에 속하는 애플리케이션용 파일을 이용하는 권한을 다른 조직에 속하는 애플리케이션에 제공함으로써 이루어진다. 이를 위해, 디지털 신용증명서는 권한을 제공하는 측의 조직을 나타내는 제공자 조직 ID, 권한을 수령하는 측의 조직 의 식별을 나타내는 수령자 조직 ID를 포함한다.
도 18(b)은 디지털 신용증명서의 데이터 구조의 일 예를 나타낸다. 디지털 신용증명서에는 루트 인증국으로부터 제공자 조직에 배포된 루트 증명서의 해시 값(51), 제공자 조직에 할당된 제공자 조직 ID(52), 루트 인증국으로부터 수령자에게 배포된 수령자 루트 증명서의 해시 값(53), 수령자 조직에 할당된 수령자 조직 ID(54), 수령자 애플리케이션 ID(55), 제공 파일 리스트(56)로 이루어진다. 제공 파일 리스트(56)에는 하나 이상의 제공 파일 명(57)과 액세스 방법(58)(판독 가능, 기록 가능)의 정보가 저장되어 있다. 디지털 신용증명서가 유효하기 위해서는 서명이 되어 있어야 한다. 디지털 신용증명서의 서명에는 SIG-BD.RSA와 마찬가지로 PKCS#7의 방식을 이용할 수 있다.
도 18(c)는 디지털 신용증명서의 구체적인 일 예를 나타내는 도면이다. 본 도면에서의 디지털 신용증명서는 파일 「4/5/scores.txt」에 대하여 판독을 허가, 파일 「4/5/score2.txt」에 대하여 판독 및 기록 허가를 디지털 신용증명서에 의해 부여하게 된다.
이어서, (b) 애플리케이션 간 통신(interprocess communication)의 허가 정보에 대하여 설명한다. 하나의 Java(TM) 아카이브 파일에 포함되는 BD-J 애플리케이션은 통상 다른 Java(TM) 아카이브 파일에 포함되는 BD-J 애플리케이션과의 통신(애플리케이션 간 통신)이 허가되지 않는다. bd.XXXX.perm에 애플리케이션 간 통신의 허가가 주어져 있는 경우에만 애플리케이션 간 통신이 가능하다.
디지털 신용증명서가 유효하기 위해서는 서명이 되어 있어야 하나, 디지털 신용증명서의 서명에는 PKCS#7의 방식을 이용할 수 있다. PKCS#7은 서명 및 하나 이상의 디지털 증명서를 저장하기 위한 파일 형식이며, IEFT(Internet Engineering Task Force)에 의해서 발행된 RFC2315에 기재되어 있다. RFC2315는 http://www.ietf.org/rfc/rfc2315.txt로부터 참조할 수 있다. 이러한 서명의 결과는 제공자 루트 증명서의 해시 값으로 SIG-BD.SF에 저장된다.
이상이 bd.XXXX.perm에 대한 설명이다. 이어서, 루트 증명서에 대하여 더 상세하게 설명한다.
도 19는 권한의 제공이 없는 경우의 SIG-BD.SF, BD.ROOT.CERTIFICATE의 상호관계를 나타내는 도면이다. 본 도면에서의 화살표 d1은 이들 파일의 내부 구성의 구성요소 중 동일성이 있는 것을 나타내고 있다. 권한의 제공이 없는 경우, BD.ROOT.CERTIFICATE 내의 루트 증명서(디스크 루트 증명서)는 SIG-BD.RSA에서의 제 1 디지털 증명서 체인 내의 루트 증명서와 동일성을 가진 것이 된다.
MANIFEST.MF는 클래스 파일 XXXX.class에 서명처리를 시행함으로써 얻어진 해시 값을 포함하고, SIG.BD.SF는 MANIFEST.MF에 서명처리를 시행함으로써 얻어진 해시 값을 포함하며, SIG-BD.RSA는 SIG-BD.SF에 서명처리를 시행함으로써 얻어진 해시 값을 포함하고 있으므로(화살표 h1), 이들 해시 값이 정당한지 여부를 확인하고, 이들 해시 값의 동일성을 판정함으로써, 재생장치(102)는 Java(TM) 아카이브 파일이 정당한 것인지 개찬이 부가된 것인지를 판단할 수 있다. 또, 권한의 제공이 없는 것으로 상정하고 있으므로, 본 도면에서는 bd.XXXX.perm를 나타내고 있지 않다.
도 20은 권한의 제공이 있는 경우의 SIG-BD.SF, BD.ROOT.CERTIFICATE, bd.XXXX.perm의 상호관계를 나타내는 도면이다. 본 도면에서의 화살표 d1~d6은 이들 파일의 내부 구성의 정보요소 중 동일성이 있는 것을 나타내고 있다. 권한의 제공이 있었던 경우도 BD.ROOT.CERTIFICATE 내의 루트 증명서(디스트 루트 증명서)는 SIG-BD.RSA에서의 제 1 디지털 증명서 체인 내의 루트 증명서와 동일성을 갖는 것이 된다(화살표 d1). 한편, 권한의 제공이 있으면, BD.ROOT.CERTIFICATE 내의 디스크 루트 증명서는 수령자의 것이 되므로, bd.XXXX.perm에서의 디지털 신용증명서의 수령자 루트 증명서가 BD.ROOT.CERTIFICATE 내의 루트 증명서와 동일성을 갖는다(화살표 d2). 또, 디지털 신용증명서에서의 수령자 조직 ID는 제 1 디지털 증명서 체인에서의 리프의 조직 ID와 동일성을 갖는다(화살표 d3).
bd.XXXX.perm에서의 디지털 신용증명서의 제공자 조직의 루트 증명서는 SIG-BD.SF 내의 제 2 디지털 증명서 체인에서의 루트 증명서와 동일성을 갖는다(화살표 d4). 또, 디지털 증명서에서의 제공자 조직 ID는 SIG-BD.SF의 제 2 디지털 증명서 체인에서의 리프의 조직 ID와 동일성을 갖는다(화살표 d5). 디지털 신용증명서에서의 수령자 애플리케이션 ID는 bd.XXXX.perm에서 디지털 신용증명서 이외의 부분에 존재하는 애플리케이션 ID와 동일성을 갖는다(화살표 d6).
MANIFEST.MF는 클래스 파일 XXXX.class로부터 산출한 해시 값을 포함하고, SIG-BD.SF는 MANIFEST.MF로부터 산출한 해시 값을 포함하며, SIG-BD.RSA는 SIG-BD.SF로부터 취득한 해시 값을 포함하므로(화살표 h1), 이들 서명이 정당한지 여부를 확인하고, 이들 해시 값의 동일성을 판정함으로써, 재생장치(102)는 Java(TM) 아카이브 파일이 정당한 것인지 개찬이 부가된 것인지를 판단할 수 있다. 미리 알려두지만, 본 실시 예에서는 루트 증명서의 동일성을 각각의 루트 증명서에 대하여 산출된 해시 값을 비교하여, 이들 해시 값이 일치하고 있는지 여부로 판단하는 것으로 한다. 또, 해시 값의 산출은 한번 실행하면 되고, 산출한 것을 메모리 등에 기억하여 이용하는 것이 일반적으로 이루어지고 있다. 루트 증명서로부터 해시 값을 산출하는 것이나 메모리에 저장한 해시 값을 취득하는 것을 해시 값의 「취득」이라 한다.
도 21은 BD-J 애플리케이션이 애플리케이션 데이터영역에 액세스하는 경우의 처리순서를 나타내는 플로차트이다.
스텝 S21은 ADA-CertId-OrganizationID-ApplicationID라고 하는 조합의 고정 파일패스를 이용한 액세스 요구가 존재하였는지 여부의 판정이고, 만약 그렇다면 스텝 S22~스텝 S25를 실행한다. 그렇지 않다면 그 액세스 요구에 따른 처리를 한다. 스텝 S22~스텝 S25는 요구 원의 BD-J 애플리케이션의 아카이브 파일로부터 디지털 신용증명서를 취득하고(스텝 S22), 디지털 신용증명서를 이용하여 요구 원의 서비스 애플리케이션의 액세스 권한을 체크하여 검증이 성공했는지 여부를 판정한다(스텝 S24). 검증이 성공하면 가상파일시스템(23)에서의 파일 I/O를 통해서 요구대상이 되는 텍스트 파일을 판독하고, 요구 원 BD-J 애플리케이션으로 인계한다(스텝 S25). 검증이 실패하면 요구 원 BD-J 애플리케이션이 가상파일시스템(23)에서의 파일 I/O를 통해서 요구대상이 되는 텍스트 파일을 판독하는 것을 허가하지 않고 예외적으로 종료한다.
상술한 구성에서는 ADA-CertID-OrganizationID-ApplicationID라고 하는 조합의 고정 파일패스를 이용한 액세스 요구를 하였는지 여부를 판정하도록 하였으나, 예를 들어 OrganizationID-ApplicationID라고 하는 조합의 고정 파일패스를 이용한 액세스 요구를 하였는지 요구를 판정하여, 검증이 성공한 경우에는 가상파일시스템(23)에서의 파일 I/O는 디지털 신용증명서로부터 특정된 제공자 루트 증명서의 증명서 ID를 이용하여 CertID를 특정하고, 특정한 CertID와 상술한 OrganizationID-ApplicationID를 이용하여 ADA-CertID-OrganizationID-ApplicationID라고 하는 조합의 고정 파일패스에 대응하는 텍스트 파일을 요구 원 BD-J 애플리케이션에 인계하여도 좋다.
이와 같이 구성함으로써 애플리케이션이 요구대상이 되는 텍스트 파일로 액세스하는 것을 억제하는 동시에 증명서 ID(및 증명서 ID에 대한 제공자 루트 증명서, 또는 리프 증명서)의 비닉성(秘匿性)을 높일 수 있게 된다.
도 22는 디지털 신용증명서를 이용한 권한 체크의 처리순서를 나타내는 플로차트이다. 본 플로차트는 액세스하고자 하는 서비스 애플리케이션에 대하여 스텝 S31~스텝 S37의 판정을 순차 행하고, 어느 판정 스텝의 판정결과가 No이면 검증실패라는 검증결과를 내리게 된다.
이후, 스텝S31~스텝 S37에서의 검증의 내용이 어떠한 것인지를 설명한다.
스텝 S31은 디지털 신용증명서에서의 수령자 루트 증명서의 해시 값과 BD-ROM에서의 BD.ROOT.CERTIFICATE 내의 디스크 루트 증명서가 일치하는가 여부의 확인이다.
스텝 S32는 디지털 신용증명서에서의 수령자 식별ID와 디스크 루트 증명서를 루트로 한 체인의 리프 증명서에 기술된 조직 ID가 일치하는가 여부의 확인이다.
스텝 S33은 디지털 신용증명서에서의 수령자 애플리케이션 ID와 서비스 애플리케이션의 애플리케이션 ID가 일치하는가 여부의 확인이다.
스텝 S34는 제공 파일을 특정하는 파일패스의 선두에 위치하는 디렉터리 명이 제공자 조직 ID와 일치하는가 여부의 확인이다.
스텝 S35는 디지털 신용증명서에 포함되는 서명, 즉, 제공자 루트 증명서의 해시 값이 정당한가 여부의 확인이다. 이 확인은 디지털 신용증명서에 대한 해시 값을 산출해보아서, 그렇게 산출된 해시 값이 디지털 신용증명서 내의 제공자 루트 증명서의 해시 값과 일치하고 있는지 여부의 판정으로 이루어진다.
스텝 S36은 디지털 신용증명서의 서명인 SIG-BD.SF에서의 루트 증명서의 해시 값과 디지털 신용증명서 내에 기술되어 있는 제공자 루트 증명서의 해시 값이 일치하고 있는지 여부의 확인이다.
스텝 S37은 디지털 신용증명서의 서명인 SIG-BD.SF에서의 리프 증명서의 조직 ID가 디지털 신용증명서 내에 기술되어 있는 제공자 조직 ID와 일치하는가 여부의 판정이다.
이상의 스텝 S31~스텝 S37이 모두 Yes이면 검증이 성공한다.
이상의 판정을 거쳐서 디지털 신용증명서의 검증에 성공한 경우, 애플리케이션 데이터영역에 기록되어 있는 벤치마크 스코어에 대하여 디지털 신용증명서의 제공 액세스 방법에 기술된 액세스를 액세스 요구를 한 서비스 애플리케이션에 대하 여 허가한다.
도 14의 디지털 신용증명서에서는 4/5/scores.txt, 4/5/scores2.txt라고 하는 2종류의 벤치마크 스코어를 유지하는 파일에 대한 액세스를 허가하고, 4/5/scores.txt에 대해서는 판독만, 4/5/scores2.txt에 대해서는 판독 및 기록을 허가하고 있다.
이와 같이 디지털 신용증명서에 의해 검증된 서비스 애플리케이션에 대하여 판독뿐만 아니라 기록을 허가함으로써 서비스 애플리케이션에 의해서 사용자 대기를 발생시키지 않을 정도의 벤치마크를 실행하고, 그 스코어를 디지털 신용증명서를 갖는 서비스 애플리케이션 사이에서 공유하는 것이 가능해진다.
(제 3 실시 예)
제 1 실시 예에서는 펌웨어(22)에 포함된 벤치마크 스코어를 판독하여 애플리케이션 데이터영역에 기록하였으나, 본 실시 예에서는 펌웨어(22)에 포함된 벤치마크 스코어를 로컬 스토리지에서의 애플리케이션 데이터영역에 복제하는 것이 아니라, 벤치마크 애플리케이션(29)은 펌웨어(22)의 기동 시에 메모리(예를 들어, 도 7에 나타내는 RAM(15))에 전개한다.
이 전개는 예를 들어 아래와 같이 해서 행해진다. 즉, 벤치마크 애플리케이션(29)은 히프영역 관리기능을 이용하여 메모리의 빈 영역에 히프 메모리를 확보하고, 그렇게 확보한 히프 메모리에 벤치마크 스코어를 기록한다. 이후, 애플리케이션 간 통신에 의해서 벤치마크 스코어가 기록되었다고 하는 취지를 다른 서비스 애플리케이션에 알려서, 히프 메모리에 존재하는 벤치마크 스코어를 다른 서비스 애 플리케이션이 이용하도록 한다.
도 23은 제 3 실시 예에서의 벤치마크 스코어의 왕래를 모식적으로 묘사한 도면이다. (6-a)은 재생장치(102) 기동 시에서의 플래시 ROM(18)으로부터 RAM(15)에서의 히프 메모리로의 벤치마크 스코어의 판독을 모식적으로 나타낸다. (6-b)는 서비스 애플리케이션으로부터의 요구 시에서의 RAM(15)으로부터 서비스 애플리케이션으로의 벤치마크 스코어의 판독을 모식적으로 나타낸다.
이렇게 함으로써 로컬 스토리지에서의 애플리케이션 데이터영역으로 벤치마크를 복제하기 위해서 발생하는 지연시간을 단축할 수 있다. 또, 애플리케이션 데이터 영역이 SD 메모리카드 등으로 구성되어 있는 경우, SD 메모리카드에 대한 기록 횟수를 억제할 수 있다.
상술한 예에서는 예를 들어 도 7에 나타내는 RAM(15)의 히프 메모리에 벤치마크 스코어를 기록하는 구성으로 하였으나, 펌웨어(22)에 벤치마크 스코어는 포함되어 있으므로, 예를 들어 본 장치의 전원 스위치가 눌려져서 전원 유닛으로부터 MPU(16), 디바이스에 전원이 공급되어서 이들 하드웨어가 기동한 경우, 플래시 ROM(18)에 저장된 펌웨어(22)를 RAM(15)에서의 펌웨어의 상주영역에 로드할 때에 벤치마크 스코어도 로드하는 구성이라도 좋다.
또, 상술한 예에서는 이후 애플리케이션 간 통신에 의해서 벤치마크 스코어가 기록되었다는 취지를 다른 서비스 애플리케이션에 알려서, 히프 메모리에 존재하는 벤치마크 스코어를 다른 서비스 애플리케이션이 이용하도록 하는 구성에 대하여 설명하였으나, 이에 한정될 필요는 없으며, 벤치마크 스코어를 RAM에 기록할 때 에 RAM(15)에서의 기록한 위치(예를 들어 어드레스 정보)에 관한 정보를 보유하는 위치관리정보(도시생략)를 작성해 두고, 애플리케이션 프로그램으로부터 벤치마크 스코어로의 액세스의 요구가 있을 때에 위치관리정보에 따라서 RAM(15)에서의 벤치마크 스코어를 판독하여 애플리케이션 프로그램에 인계하도록 구성하여도 좋다.
이 경우, 제 1 실시 예에서 설명한 Java(TM) I/O 메소드를 실현하는 파일 I/O 프로그램은 BD-J 애플리케이션 프로그램에서 지정된 파일패스를 수신하면 위치관리정보를 참조하여 RAM(15) 상에 전개한 벤치마크 스코어를 판독하여 BD-J 애플리케이션 프로그램에 되돌리게 된다.
또, 상술한 위치관리정보(도시생략)는 RAM(15)에서의 벤치마크 스코어의 저장위치에 관한 정보뿐만 아니라 본래의 저장장소(예를 들어, ADA-CertID-OrganizationID-ApplicationID라고 하는 조합의 고정 파일패스에 의해서 특정되는 저장위치)와의 대응관계를 함께 보유하도록 하여도 좋다.
이와 같이 구성하면, 애플리케이션 프로그램은 본래의 저장장소(예를 들어, ADA-CertID-OrganizationID-ApplicationID라고 하는 조합의 고정 파일패스에 의해서 특정되는 저장위치)를 지정하여 벤치마크 스코어의 판독을 요구해도, 펌웨어(22)에서의 가상파일시스템(23)의 파일 I/O가 위치관리정보(도시생략)를 참조하여, 위치관리정보에 따라서 플래시 ROM(18)에서의 벤치마크 스코어를 판독하고, 판독한 벤치마크 스코어를 요구한 애플리케이션 프로그램으로 인계할 수 있게 된다.
이와 같이 함으로써 본래의 저장장소(예를 들어, ADA-CertID-OrganizationID-ApplicationID라고 하는 조합의 고정 파일패스에 의해서 특정되는 저장위치)인 애플리케이션 데이터영역을 포함하는 로컬 스토리지가 기록 횟수에 상한이 있는 메모리 등인 경우, 로컬 스토리지로의 기록을 억제할 수 있다.
또, 로컬 스토리지에서의 애플리케이션 데이터영역에 벤치마크 스코어를 복제하기 위해서 발생하는 지연시간을 단축할 수 있다. 또, 본래의 저장장소인 애플리케이션 데이터영역이 반도체 메모리 카드로 구성되어 있는 경우, 반도체 메모리 카드에 대한 기록 횟수를 억제할 수 있다.
(제 4 실시 예)
제 2 실시 예에서는 리무버블 미디어에 의해서 새로운 펌웨어(22)가 공급된 경우에 자동으로 애플리케이션 데이터영역에 존재하는 벤치마크 스코어의 오버라이트를 하였으나, 본 실시 예에서는 펌웨어(22)의 갱신이 이루어진 경우, 이미 애플리케이션 데이터영역에 존재하는 벤치마크 스코어의 버전과 새로운 펌웨어(22)에 포함된 벤치마크 스코어의 버전의 비교를 하여, 새로운 FeRAM(15)에 포함된 벤치마크 스코어가 새롭다고 판정된 경우에만 새로운 펌웨어(22) 내의 벤치마크 스코어를 애플리케이션 데이터영역에 기록한다. 벤치마크 스코어는 텍스트 파일에 저장된 상태로 펌웨어(22)에 포함되므로, 텍스트 파일의 작성 또는 갱신일시를 벤치마크 스코어의 버전으로 채용할 수 있다. 또, 벤치마크가 이루어지는 일시를 텍스트 파일에 기록해 두고, 이 일시를 벤치마크 스코어의 버전으로 채용할 수도 있다.
이렇게 함으로써 애플리케이션 데이터영역이 SD 메모리카드 등으로 구성되어 있는 경우에 SD 메모리카드에 대한 기록 횟수를 억제할 수 있다.
(제 5 실시 예)
본 실시 예는 벤치마크 애플리케이션(29)에 의한 벤치마크 테스트가 어떠한 처리순서로 이루어지는가를 구체적으로 개시한다. 도 24는 벤치마크 애플리케이션(29)에 의한 벤치마크 테스트의 처리순서를 나타내는 플로차트이다.
본 플로차트는 스텝 S43~스텝 S48의 처리를 제 1 실시 예에서 설명한 하드웨어에 의한 처리의 각각에 대하여 반복한다고 하는 루프 구조로 되어 있다.
하드웨어 처리를 실행하기 위한 API 메소드의 호출이 벤치마크 애플리케이션(29)에 기술되어 있고, 이들 API 메소드의 호출의 각각에 대하여 스텝 S43~스텝 S48이 반복되게 된다.
이들 망라할 처리 중 처리대상이 되는 것을 처리 X로 하고, 이 처리 X에 대한 형식시간, 즉 턴 어라운드 시간을 계측시간 X라 한다. 스텝 S43에서는 처리 X를 정하고, 계측시간 X를 0으로 초기화한다. 스텝 S44에서는 처리 X를 실행시키기 위한 API 메소드의 호출을 한다. 구체적으로는, 벤치마크 스코어 평가용으로 정해진 데이터를 BD-ROM이나 로컬 스토리지로부터 RAM(15)에 판독하기 위한 API 메소드의 호출이나, 이러한 데이터를 디코드시키기 위한 API 메소드의 호출, 벤치마크 스코어 평가용으로 정해진 연산식을 MPU(16)에 연산시키기 위한 API 메소드의 호출을 한다.
그 후, 스텝 S45~스텝 S47의 루프로 이동한다. 스텝 S45는 API 메소드의 호출에 의해서 요구한 처리가 완료하였는지 여부의 판정이며, 완료하지 않았으면 스텝 S46에서 턴 어라운드 시간에서의 단위시간 W의 경과를 대기한다(스텝 S46).
이 단위시간 W는 예를 들어 MPU(16)가 수백 개 이상의 명령을 실행하는 클록 시간이며, 벤치마크 스코어에서의 턴 어라운드 시간의 시간 정밀도를 기준으로 해서 정해진다. 예를 들어, 턴 어라운드 시간의 시간 정밀도로 47KHz를 채용한 경우, MPU(16)의 동작 클록 시간은 이 턴 어라운드 시간의 시간 정밀도의 1/수백 이하의 값이 되므로, 스텝 S46에서는 이 턴 어라운드 시간의 단위시간의 경과를 기다린다.
그리고 이 단위시간이 경과하면, 계측시간 X에 단위시간을 가산함으로써 계측시간 X를 갱신해서 스텝 S45로 되돌아간다. 이러한 스텝 S45~스텝 S47을 반복함으로써 처리 X의 완료를 기다리는 동안 계측시간 X는 단위시간 W씩 증가하게 된다.
그리고 처리 X가 완료하고, 벤치마크 애플리케이션(29)에 완료된 통지 이벤트가 되돌아가면, 지금까지 단위시간 W가 가산된 계측시간 X를 처리 X의 식별정보와 대응시켜서 개발용 컴퓨터(105)에 익스포트(export) 한다. 개발용 컴퓨터(105)는 처리 X의 식별정보와 계측시간 X를 나열함으로써 처리 X에 대한 벤치마크 스코어를 얻는다. 이후, 동일한 처리를 반복함으로써 처리 X의 식별정보와 계측시간 X가 나열된 벤치마크 스코어의 텍스트 파일을 얻는다. 이와 같은 벤치마크 테스트에서는 벤치마크 스코어의 시간 정밀도는 단위시간 W에 의해서 정해지게 된다.
여기서, BD-J 애플리케이션의 실행주체인 Java 플랫폼은 이벤트 드리븐(event driven)의 실행주체이며, Java 플랫폼은 하드웨어의 처리가 완료되지 않았다고 하더라도 API 메소드의 해독과 하위층으로의 지시를 발한 직후에 응답을 되돌리는 경우가 있다. 그렇게 하면, 벤치마크 애플리케이션(29)이 벤치마크 테스트를 할 때에 정확한 시간계측이 불가능해진다. 그래서, 벤치마크 테스트를 위한 API 메소드를 설치하고, 이 API 메소드의 호출 시에는 처리가 완료된 정확한 시점에서 이벤트를 되돌아가도록 하는 것이 바람직하다. 이렇게 함으로써 턴 어라운드 시간의 계측은 더욱 정확한 것이 된다.
이상과 같이 본 실시 예에 의하면 API 메소드의 호출을 하고나서부터 요구한 처리가 완료할 때까지의 클록 시간을 벤치마크 애플리케이션(29)이 계측함으로써 일정한 시간 정밀도를 갖는 벤치마크 스코어를 얻을 수 있다.
(제 6 실시 예)
본 실시 예는 실시간 오퍼레이팅 시스템(실시간 OS)을 펌웨어(22)의 구성요소로 한 실시 예이다. 실시간 OS에서는 최악 실행시간의 예측이 가능하여, AV 재생의 실시간성의 실현에 바람직하다.
펌웨어(22)로서 내장되는 실시간 OS의 구성요소에 대하여 설명한다. 실시간 OS는 커널, 미들웨어 및 디바이스 드라이버로 구성된다. 이들 커널, 미들웨어 및 디바이스 드라이버가 펌웨어(22)의 구성요소가 된다.
1. 커널(kernal)
커널은 시스템 콜 처리, 인터럽트 신호에 의해서 인터럽트 핸들러를 기동하는 핸들러 입구 처리, 인터럽트 핸들러의 출구처리를 하며, 태스크 스테줄러(task scheduler)를 갖는다. 각 실시 예에서 설명한 BD-J 애플리케이션은 실시간 OS에서는 이 커널에 의해서 "애플리케이션 태스크" 로서 취급된다. 애플리케이션 태스크에 의한 API 메소드의 호출은 실시간 오퍼레이션 시스템에서는 상술한 바와 같은 시스템 콜에 의해 실현된다. 태스크 스케줄러는 순차 태스크를 생성하여 MPU에 의한 실행에 제공한다. 이 생성은 실행할 프로그램에 대하여 태스크 컨트롤 블록을 작성하고, 이들을 대기행렬에 제공함으로써 이루어진다.
커널은 디바이스 입출력 요구의 시스템 콜이 태스크로부터 발행되면, 메모리 풀로부터 메모리 블록을 확보하고, 그 블록에 호출에 사용된 파라미터 블록을 작성한다. 그리고 그 파라미터 블록의 선두 어드레스와 디바이스 정보를 기재한 디바이스 테이블의 어드레스를 인수로 하여 디바이스 드라이버를 콜한다.
2. 미들웨어(middleware)
미들웨어는 시스템 콜을 실현하기 위한 API(Application Programing Interface) 군을 구비하고 있으며, 커널의 존재를 전제로 하여 브라우저나 파일시스템, 영상재생 및 음성재생이라는 기능을 실현한다. 애플리케이션은 디코더라고 하는 디바이스를 이 미들웨어를 통해서 제어할 수 있다. 제 1 실시 예에서 설명한 가상파일시스템(23), 액세스 제어기구(24), 재생엔진(25), 재생제어엔진(26), BD-J 모듈(27)은 실시간 OS에서는 이 미들웨어로서 위치가 부여된다.
3. 디바이스 드라이버
디바이스 드라이버는 「인터럽트 핸들러부」와, 「인터럽트 태스크부」, 「리퀘스트 처리부」로 구성된다. 디바이스 드라이버는 메모리 공간의 시스템용 영역에 맵핑되고, 특권 모드로 동작하게 된다.
「리퀘스트 처리부」는 파라미터 블록을 입출력 큐(cue)에 등록한 후, 인터럽트 허가를 하고, 커널로 복귀한다.
「인터럽트 핸들러부」는 하드웨어로부터 인터럽트 신호를 접수하면 디바이스와의 사이에서 요구된 입출력을 한다. 예정되어 있는 입출력이 완료하면 인터럽 트를 금지하고, 인터럽트 태스크를 기동한다. 완료하지 않았으면 디바이스 드라이버로 복귀한다. 다음의 입출력 요구가 이루어지면 다시 인터럽트 핸들러가 기동되어서 나머지 입출력을 계속한다.
「인터럽트 태스크」는 입력완료상태를 인수로 하여 시스템 콜에 의해서 입출력 완료를 커널에 통지한다. 이러한 통지를 수신하면 커널은 의뢰 원의 태스크를 기상한다.
API 메소드의 호출이 시스템 콜로 실현되는 경우, 벤치마크 애플리케이션(29)은 애플리케이션 태스크가 시스템 콜을 요구하고나서부터 디바이스가 처리를 실행하여 응답이 되돌아올 때까지의 턴 어라운드 시간을 계측하는 것이 바람직하다. 그리고 제조업체는 이 계측 값을 벤치마크 스코어로 펌웨어(22)에 내장하게 된다.
이상과 같이 본 실시 예에 의하면, 드라이브에 대한 액세스나 AV 재생이 실시간 OS의 시스템 콜로 실현되므로 실시간성의 확보가 가능하다. 이러한 실시간 OS로 벤치마크 애플리케이션(29)이 벤치마크 스코어의 계측을 하면, 벤치마크 스코어는 AV 재생의 실시간성을 보증한 정확한 값이 된다.
(제 7 실시 예)
펌웨어(22)는 본 장치의 전원 스위치가 눌려서 전원유닛으로부터 MPU(16), 디바이스에 전원이 공급되어서 이들 하드웨어가 기동한 때, 플래시 ROM에 저장된 펌웨어(22)를 메모리(예를 들어 도 7에 나타내는 RAM(15)에서의 펌웨어의 상주영역)에 로드하여 MPU(16)에 의한 실행에 제공하는 구성에 대하여 설명하였으나, 이 에 한정될 필요는 없으며, MPU(16)는 플래시 ROM(18)에 저장된 펌웨어(22)를 직접 판독하여 실행하는 구성으로 하여도 좋다.
이때, 애플리케이션 간 통신에 의해서 플래시 ROM(18)에 저장된 펌웨어(22)에 포함된 벤치마크 스코어를 다른 서비스 애플리케이션에 통지하여, 플래시 ROM(18)에 존재하는 벤치마크 스코어를 다른 서비스 애플리케이션에 이용하게 하는 구성으로 하여도 좋다.
또, 플래시 ROM(18)에서의 저장위치(예를 들어 어드레스 정보)에 관한 정보를 포함하는 위치관리정보(도시생략)를 작성해 두고, 애플리케이션 프로그램으로부터 벤치마크 스코어로의 액세스의 요구가 있을 때, 위치관리정보에 따라서 플래시 ROM(18)에서의 벤치마크 스코어를 판독하여 애플리케이션 프로그램에 인계하도록 구성하여도 좋다.
또, 상술한 위치관리정보(도시생략)는 플래시 ROM(18)에서의 벤치마크 스코어의 저장위치에 관한 정보뿐만 아니라 본래의 저장장소(예를 들어, ADA-CertID-OrganizationID-ApplicationID라고 하는 조합의 고정 파일패스에 의해서 특정되는 저장위치)와의 대응관계를 함께 보유하도록 하여도 좋다.
이와 같이 구성하면, 애플리케이션 프로그램은 본래의 저장장소(예를 들어, ADA-CertID-OrganizationID-ApplicationID라고 하는 조합의 고정 파일패스에 의해서 특정되는 저장위치)를 지정하여 벤치마크 스코어의 판독을 요구해도, 펌웨어(22)에서의 가상파일시스템(23)의 파일 I/O가 위치관리정보(도시생략)를 참조하여, 위치관리정보에 따라서 플래시 ROM(18)에서의 벤치마크 스코어를 판독하며, 판 독한 벤치마크 스코어를 요구한 애플리케이션 프로그램으로 인계할 수 있게 된다.
이렇게 함으로써 본래의 저장장소(예를 들어, ADA-CertID-OrganizationID-ApplicationID라고 하는 조합의 고정 파일패스에 의해서 특정되는 저장위치)인 애플리케이션 데이터영역을 포함하는 로컬 스토리지가 기록 횟수에 상한이 있는 메모리 등인 경우에 로컬 스토리지로의 기록을 억제할 수 있다.
(비고)
이상, 본원의 출원시점에서 출원인이 알 수 있는 가장 양호한 실시 예에 대하여 설명하였으나, 이하에 설명하는 기술적인 토픽에 대해서는 개량이나 변경실시를 부가할 수 있다. 각 실시 예에서 설명한 것과 같이 실시하는가, 이들 개량 및 변경을 실시하는가 여부는 모두 임의적이며, 실시하는 자의 주관에 의한다는 점을 유의하기 바란다.
(벤치마크 스코어의 파일형식)
제 1 실시 예에서 벤치마크 스코어는 텍스트 파일에 저장되었으나, 텍스트 파일에서는 내용물의 참조가 용이하므로, 펌웨어(22)에 내장할 때에는 벤치마크 스코어를 바이너리 파일(binary file)에 저장해 두는 것이 바람직하다.
(재생장치(102)의 임의적인 구성요소)
임의적인 요소로 재생장치(102)에 렌더링 엔진을 설치하여도 좋다. 렌더링 엔진은 Java(TM)2D, OPEN-GL이라고 하는 기반 소프트웨어를 구비하고, BD-J 애플리케이션으로부터의 지시에 따라서 컴퓨터 그래픽스의 묘화를 하며, 묘화된 컴퓨터 그래픽스를 플레인 메모리에 출력하다. 이 묘화를 고속으로 하기 위해서는 임의적 인 하드웨어를 요소로 재생장치(10)에 그래픽스 가속기를 추가하는 것이 바람직하다. 그 외에도 부동소수점 연산을 하는 코프로세서(Floating Pointed CoProcessor)가 실장되어 있어도 좋다.
(디지털 신용증명서를 검증하는 시기)
상기 실시 예에서는 BD-J 애플리케이션으로부터 벤치마크 스코어 액세스가 요구된 경우에 디지털 신용증명서를 해석하고 검증하는 것으로 하였으나, 이 디지털 신용증명서의 검증은 BD-J 애플리케이션의 기동 시나 펌웨어(22)의 시동 시 등의 타이밍에 미리 하여도 좋다.
(수령자 조직의 적용범위)
수령자 조직은 BD-ROM 등의 서비스 애플리케이션을 포함한 콘텐츠를 제작한 제작자라고 가정하여 설명을 하였으나, 콘텐츠 제작자는 독립해서 당해 벤치마크 스코어 액세스를 실시하는 BD-J 애플리케이션에 대한 서명을 실시하는 조직이면 어떠한 조직이라도 좋다. 이 경우의 수령자 조직 ID는 그 조직은 나타내는 ID번호가 된다. 이와 같이 실제로 콘텐츠를 제작하는 조직과 독립한 조직을 수령자 조직으로 운영할 수 있음은 명백하다.
(기기의 적용범위)
지금까지의 설명은 펌웨어 기동부(31), 펌웨어 갱신부(32), 벤치마크 스코어 설정부(34)를 BD-ROM의 재생을 행하는 재생장치(102)에 적용한 경우에 대하여 설명하였으나, 이러한 기술적 사항의 적용범위는 그와 같은 BD-ROM 재생장치(102)에 한정되는 것은 아니다. 예를 들어 기록기능을 갖는 재생장치(102)라도 좋다. 이때, 벤치마크 스코어 정보는 재생기능과 그 외의 기능을 공유하고 있어도 좋다. 예를 들어, 재생기능을 구비한 퍼스널 컴퓨터에 펌웨어 기동부(31), 펌웨어 갱신부(32), 벤치마크 스코어 설정부(34)를 적용하는 경우, 웹 브라우저나 워드프로세서가 이용되고 있는 상태에서의 벤치마크 스코어 정보를 펌웨어(22)에 내장시켜 두어도 좋다.
(BD-J 애플리케이션 공급의 방법)
상술한 바와 같은 벤치마크 스코어의 내장 및 기록은 영상재생과 BD-J 애플리케이션의 실행을 관련지어서 시청하게 하는 기기라면 일반적인 어떠한 기기에 대해서도 적용이 가능하다. 예를 들어, BD-J 애플리케이션이 방송파나 네트워크 스트림에 내장되어서 공급되는 재생장치(102)에서도 적용이 가능해진다(프로그램 기술언어의 적용범위).
상기 실시 예에서는 오브젝트 지향 프로그래밍 언어로 Java(TM) 언어를 이용하였으나, Java(TM)가 아니라 UNIX(TM)OS 등에서 사용되고 있는 B-Shell이나 Perl Script, ECMA Script 등 다른 프로그래밍 언어라도 좋다.
(벤치마크 스코어의 위치)
BD-J 애플리케이션으로부터의 액세스를 고려하였으므로 상기 실시 예에서는 벤치마크 스코어는 애플리케이션 데이터영역에 배치되었으나, 벤치마크 스코어를 보유하기 위한 기록장치의 물리적인 실시 예는 임의의 것이라도 좋으며, 하드디스크나 플래시 메모리와 같은 불휘발성 기억장치라도 좋고, DRAM(15)과 같은 휘발성의 기억장치라도 좋다.
(벤치마크 스코어의 이용주체)
벤치마크 스코어를 이용하는 벤치마크 애플리케이션(29)은 BD-ROM이 아니라, WWW 서버로부터 다운로드 되어서 재생장치(102) 내의 로컬 스토리지에 기록된 것이라도 좋다. 이러한 다운로드에서 BD.ROOT.CERTIFICATE에 수록되고, 디스크 루트 증명서로 기록되어 있는 루트 증명서와 동일성을 갖는 루트 증명서를 SIG-BD.SF에 저장하여 Java(TM) 아카이브 파일에 포함시킨다. 이렇게 함으로써 Java(TM) 아카이브 파일을 다운로드 하여 재생장치(102)에 공급하는 경우에도 BD-ROM에 할당한 디스크 루트 증명서를 이용함으로써 Java(TM) 아카이브 파일의 정당성을 재생장치(102)에 인식시킬 수 있다.
(BD-ROM 콘텐츠)
BD-ROM에 기록되는 BD-J 애플리케이션은 영화작품을 구성하는 것으로 하였으나, 로컬 스토리지에 인스톨하여 이용되는 애플리케이션이 아니라, BD-ROM에 기록된 상태로 이용되는 애플리케이션이라면 이 이외의 것을 구성하는 것이라도 좋다. 예를 들어, 게임 소프트를 구성하는 애플리케이션이라도 좋다. 또, 본 실시 예에서는 디스크 매체로 BD-ROM을 제재로 선택하였으나, 휴대형이고, 저작권 보호가 이루어진 기록매체라면 다른 기록매체를 채용하여도 좋다.
또, AV 스트림, 플레이리스트 정보는 프리 레코딩 기술에 의해 BD-ROM에 기록되어서 사용자에게 공급되는 것을 전제로 하였으나, 실시간 레코딩 기술에 의해 BD-RE에 기록되어서 사용자에게 공급되는 것이라도 좋다.
이 경우, AV 스트림은 아날로그 입력신호를 기록장치가 실시간 인코드함으로 써 얻어진 트랜스포트 스트림이라도 좋으며, 기록장치가 디지털 입력한 트랜스포트 스트림을 세분화함으로써 얻어지는 트랜스포트 스트림이라도 좋다.
실시간 레코딩 시의 기록장치는 AV 스트림의 기록과 동시에 메모리 상에서 Clip 정보나 플레이리스트 정보를 생성하는 처리를 하나, 이때, 상술한 각 실시 예에 기재한 Clip 정보, 플레이리스트 정보를 메모리 상에서 생성한다. 그리고 AV 스트림의 기록을 종료한 후, 생성된 Clip 정보, 플레이리스트 정보를 기록매체에 기록한다. 이렇게 함으로써 편집 시스템을 이용하지 않아도 가정용 기록장치나 기록장치로서의 기능을 구비한 퍼스널 컴퓨터로 각 실시 예에서 설명한 Clip 정보, 플레이리스트 정보를 작성할 수 있다. 이렇게 작성된 AV 스트림, Clip 정보, 플레이리스트 정보를 라이트 원스(write-once) 기록매체에 기록하여도 좋다.
(벤치마크 스코어로 표시되는 시간)
서비스 애플리케이션이 클라이언트 프로그램이고, 네트워크상의 서버장치에 대하여 처리를 요구하는 경우, 벤치마크 스코어는 처리를 요구하고나서부터 처리가 완료하여 응답이 되돌아올 때까지의 턴 어라운드 시간을 표현하는 것이 바람직하다. 상술한 바와 같은 서버장치에 대한 처리는 클라이언트 측의 프로토콜 스택에서의 오버헤드와 서버장치 측의 프로토콜 스택에서의 오버헤드가 발생하며, 이들에 의해서 턴 어라운드 시간은 변동을 받는다. 이와 같이 클라이언트 측, 서버 측에서 프로토콜 스택에서의 오버헤드가 발생하는 경우, 이 오버헤드를 가미한 벤치마크 스코어를 펌웨어(22)에 포함시켜 두고, 애플리케이션 데이터영역에 기록함으로써 서비스 애플리케이션은 네트워크에서의 트래픽의 크고 작음에 따른 처리부하 조정 을 실현할 수 있다.
여기서, 프로토콜 스택은 프로토콜에서의 각각의 레이어에서 독자의 버퍼를 가지며, 상위에서부터 인계된 패킷을 자(自) 레이어에 복제하여 당해 레이어 고유의 데이터를 부가하는 처리에 의해 실현된다. 이러한 프로토콜 스택에는 Socket,TCP/UDP, IP, Ethernet(IEEE802.3)으로 이루어지는 것이나, SPX/IPX, 토큰링(token ring)(IEEE802.5)으로 이루어지는 것, NetBEUI, FDDI/TPDDI(ANSI X3T9.5)로 이루어지는 것이 있다. 이들 프로토콜 스택을 통해서 네트워크 파일시스템 정보를 취득함으로써 서비스 애플리케이션은 네트워크상의 드라이브를 자(自) 기기의 국부적인 드라이브와 동일하게 액세스할 수 있다.
(벤치마크 스코어의 변형)
벤치마크 스코어는 벤치마크 애플리케이션(29)이 계측하는 것에 한정되지는 않으며, 재생장치(102)의 표준 플레이어 모델로부터 도출할 수 있는 값을 채용하여도 좋다. 재생장치(102)의 표준 플레이어 모델에서는 BD-ROM으로부터 버퍼로 TS 패킷을 전송하기 위한 전송 레이트가 상세하게 기술되어 있으므로, 벤치마크 스코어 중에는 이들 규정이 완료된 전송 레이트를 일의적으로 도출할 수 있는 것도 많기 때문이다.
또, 벤치마크 스코어에 제조업체 고유의 것, 제품 고유의 것, 규격 고유의 것과 같은 복수의 클래스를 설치하고, 이들 클래스별로 벤치마크 스코어를 서비스 애플리케이션에 이용하게 하여도 좋다.
(벤치마크 스코어의 기록시기)
재생장치(102)에 전원이 투입되고, 펌웨어(22)가 기동한 때에, 그 기동시마다 펌웨어(22)에 포함된 벤치마크 스코어를 애플리케이션 데이터영역에 기록해도 좋다. 이렇게 함으로써 애플리케이션 데이터영역에는 벤치마크 스코어가 존재한다고 하는 확실성을 보증할 수 있다. 벤치마크 스코어 기록의 빈도는 높으나, 그래도 애플리케이션 기동 시마다 벤치마크를 실행하는 것보다는 서비스 애플리케이션의 스타팅 딜레이는 짧다.
(해시 값)
각 실시 예에서의 해시 값은 SHA-1이나 MD5 등의 시큐어 해시함수를 이용한 결과의 값이다. 시큐어 해시함수는 동일한 해시 값을 갖는 다른 데이터를 찾는 것은 실질적으로 불가능하다고 하는 특징이 있다.
(루트 증명서의 해시 값)
각 실시 예에서의 루트 증명서의 해시 값은 반드시 루트 증명서 전체의 데이터로부터 산출할 필요는 없으며, 적어도 루트 증명서 중에 포함되는 공개 키의 데이터만으로부터 산출하도록 하여도 좋다. MANIFEST.MF, SIG-BD.SF, SIG-BD.RSA 중에 저장되는 해시 값의 계산에 이용되는 시큐어 해시함수는 디스크 작성자가 명시적으로 선택할 수 있다.
각 실시 예에서는 bd.XXXX.perm 중에 있는 디지털 신용증명서에는 제공자 루트 증명서의 해시 값(51) 및 수령자 루트 증명서의 해시 값(53)의 계산에 이용되는 시큐어 해시함수가 고정되어 있는 것을 접속상대로 하고 있으나, bd.XXXX. perm 중에 있는 디지털 신용증명서 중에 제공자 루트 증명서의 해시 값(51) 및 수령자 루 트 증명서의 해시 값(53)의 계산에 이용되는 시큐어 해시함수를 명시하도록 하여도 좋다.
(루트 증명서의 비교)
루트 증명서의 비교는 루트 증명서가 동일한지 여부의 비교, 루트 증명서 중에 포함되는 공개 키가 동일한지 여부의 비교를 하도록 하여도 좋다. 또, 다른 방식으로는 SIG-BD.RSA 중에 있는 첫 번째의 증명서(루트 증명서)를 무시하고, 루트 증명서에 이어지는 두 번째 증명서가 디스크 루트 증명서에 의해서 서명되어 있는지 여부를 확인하도록 하여도 좋다. 어느 방식을 사용해도 디스크 루트 증명서가 SIG-BD.RSA 중의 두 번째의 증명서를 보장하고 있게 되므로 보안관점에서의 효과가 동일하다.
애플리케이션 간 통신을 악용한 공격은 아래와 같이 만들어진 공격용 BD-ROM을 이용하여 시도하는 것을 생각할 수 있다.
1. 공격대상의 디스크 작성자에 의해서 작성된 정당한 BD-ROM으로부터 디지털 증명서에 의해서 서명되어 있는 공격대상의 Java(TM) 아카이브 파일을 판독한다.
2. 공격하기 위한 Java(TM) 아카이브 파일을 작성하고, 디지털 증명서에 의해 서명을 한다.
3. 공격대상의 Java(TM) 아카이브 파일과 공격하기 위한 Java(TM) 아카이브 파일을 공격용 BD-ROM에 기록한다.
공격하기 위한 Java(TM) 아카이브 파일과 공격대상의 Java(TM) 아카이브 파 일은 모두 디지털 증명서에 의해 서명되어 있으나, 양쪽 모두 다른 루트 증명서를 이용한다. 재생장치(102)에서 2개의 Java(TM) 아카이브 파일에 있는 BD-J 애플리케이션에 대하여 애플리케이션 간 통신의 퍼미션(permission)이 주어지면, 공격하기 위한 Java(TM) 아카이브 파일이 공격대상의 Java(TM) 아카이브 파일에 대하여 부정한 애플리케이션 간 통신을 하는 것이 가능해지며, 공격대상의 Java(TM) 아카이브 파일은 자신이 이용하는 기억영역에 대하여 공격대상의 디스크 작성자에 의해서 예기치 않은 동작이 이루어진다.
상기의 공격을 방지하기 위해서 루트 증명서의 비교가 필요하다. 또, 다른 루트 증명서를 이용하는 BD-J 애플리케이션끼리의 애플리케이션 간 통신을 방지하도록 하여도 좋다. 이때, 하나의 BD-ROM에 복수의 디스크 루트 증명서를 갖도록 하여도 좋다.
(벤치마크 스코어의 시간 정밀도)
또, 벤치마크 스코어는 처리를 요구하고나서부터 처리가 완료하여 응답이 되돌아올 때까지의 턴 어라운드 시간을 27MHz의 시간 정밀도로 표현하여도 좋다. 왜냐하면, AV 스트림을 구성하는 TS 패킷의 각각에는 27MHz의 시간 ATC를 갖는 ATS(Arrival Time Stamp)가 부여되어 있으며, 재생장치(102)의 내부에는 1/27,000,000초라고 하는 시간 정밀도로 동작을 하는 ATC(Arrival Time Clock)가 존재한다. 그러한 ATC의 시간 정밀도로 벤치마크 스코어를 작성해 두면, 서비스 애플리케이션은 ATS에 대한 처리와 동기하도록 처리부하의 변화를 실현할 수 있기 때문이다.
(버퍼의 실장)
각 실시 예에서 설명한 버퍼는 DPRAM으로 실현하는 것이 바람직하다.
DPRAM(Dual Port RAM)은 입출력 인터페이스를 2 계통 가지며, 어느 측으로부터도 데이터의 판독 및 기록을 할 수 있는 메모리이다. DPRAM에서는 데이터의 모순을 피하도록 하드웨어에 의해서 배타제어가 이루어진다. 벤치마크 스코어의 측정 시에는 이러한 버퍼의 기록 및 판독에 요하는 시간을 치밀하게 평가할 필요가 있다.
(디코더의 실장)
비디오 디코더, 오디오 디코더는 DSP(Digital Signal Processor)로 구성하는 것이 바람직하다. DSP는 고정소수점형, 부동소수점형의 것이 있으며, 배럴 시프터(barrel shifter), 레지스터, 승산기, 가산기로 이루어지는 적화연산기(積和演算器)를 구비하고 있다. 이 적화연산기에 의해 평활화 처리 등 디지털 신호처리를 고속으로 할 수 있다. 압축부호화된 영상, 음성의 디코더에는 DCT 계수를 이용한 부동소수점 연산이 필요해지므로, 이러한 DSP를 디코더로 채용하면 AV재생을 실시간으로 실현할 수 있다. 벤치마크 스코어의 측정 시에는 이러한 디코더가 연산을 하는데 요하는 시간을 치밀하게 평가할 필요가 있다.
(시스템 LSI화)
도 7에 나타내는 재생장치(102)를 구성하는 하드웨어 중 기구적인 구성요소(BD 드라이브(1), HD 드라이브(13), 카드 드라이브(14)), 대용량의 메모리에 의해서 실장되는 구성요소(비디오용의 플레인 메모리(5), 플레인 메모리(8))를 제외 한 논리소자를 주요부로 하는 부분을 하나의 시스템 LSI로 구성하는 것이 바람직하다. 왜냐하면, 논리소자를 주요부로 하는 부분은 고밀도로 집적화할 수 있기 때문이다. 도 7에서는 하나의 시스템 LSI로서 구성할 부분을 프레임 내에 둘러싸고 있다. 단, 상기한 도 7의 시스템 LSI화는 일 예이며, 엘리멘터리 버퍼(7)나 비디오 디코더(4), 오디오 디코더(4), 그래픽스 디코더(6)를 일체의 시스템 LSI로 하여도 좋다.
시스템 LSI는 고밀도 기판상에 베어 칩을 실장하여 패키징한 것을 말한다. 복수 개의 베어 칩을 고밀도 기판상에 실장하여 패키징함으로써 마치 하나의 LSI와 같은 외형 구조를 복수 개의 베어 칩이 가지도록 하는 것도 시스템 LSI에 포함된다(이와 같은 시스템 LSI를 멀티 칩 모듈이라고 한다).
여기서, 패키지의 종별에 착안하면, 시스템 LSI에는 QFP(quad flat package), PGA(Pin Grid Array)와 같은 종별이 있다. QFP는 패키지의 4 측면에 핀이 장착된 시스템 LSI이다. PGA는 밑면 전체에 많은 핀이 장착된 시스템 LSI이다.
이들 핀은 다른 회로와의 인터페이스로서의 역할을 담당하고 있다. 시스템 LSI에서의 핀에는 이러한 인터페이스의 역할이 존재하므로, 시스템 LSI에서의 이들 핀에 다른 회로를 접속함으로써 시스템 LSI는 재생장치(102)의 핵심으로서의 역할을 담당한다.
이러한 시스템 LSI는 재생장치(102)는 물론 TV나 게임, 퍼스널 컴퓨터, 원세그먼트 휴대기기 등, 영상재생을 취급하는 다양한 기기에 포함할 수 있어서 본 발명의 용도를 크게 확대할 수 있다.
엘리멘터리 버퍼(7)나 비디오 디코더(4), 오디오 디코더(4), 그래픽스 디코더(6)를 일체의 시스템 LSI로 하는 경우, 시스템 LSI의 아키텍처는 Uniphier 아키텍처에 준거하게 하는 것이 바람직하다.
Uniphier 아키텍처에 준거한 시스템 LSI는 이하의 회로블록으로 구성된다.
· 데이터 병렬 프로세서(DPP)
이것은 복수의 요소 프로세서가 동일 동작을 하는 SIMD형 프로세서이며, 각 요소 프로세서에 내장되어 있는 연산기를 하나의 명령으로 동시에 동작시킴으로써 픽처를 구성하는 복수 화소에 대한 디코드 처리의 병렬화를 도모한다.
· 명령 병렬 프로세서(IPP)
이것은 명령 RAM, 명령 캐시, 데이터 RAM, 데이터 캐시로 이루어지는 「Local Memory Controller」, 명령 페치부, 디코더, 실행유닛, 레지스터 파일로 이루어지는 「Processing Unit부」, 복수의 애플리케이션의 병렬 실행을 Processing Uint부에 행하게 하는 「Virtual Multi Processor Unit부」로 구성된다.
· MPU 블록
이것은 ARM 코어, 외부버스 인터페이스(Bus Control Unit:BCU), DMA 컨트롤러, 타이머, 벡터 인터럽트 컨트롤러와 같은 주변회로, UART, GPIO(Genaral Purpose Input Output), 동기 시리얼 인터페이스 등의 주변 인터페이스로 구성된다. 각 실시 예에서 설명한 펌웨어(22)는 이 MPU 블록으로서 시스템 LSI에 실장된다.
· 스트림 I/O 블록
이것은 USB 인터페이스나 ATA Packet 인터페이스를 통해서 외부버스 상에 접속된 드라이브 장치, 하드디스크 드라이브 장치, SD 메모리카드 드라이브 장치와의 데이터 입출력을 한다.
· AV I/O 블록
이것은 오디오 입출력, 비디오 입출력, OSD 컨트롤러로 구성되고, 텔레비전, AV 앰프와의 데이터 입출력을 한다.
· 메모리 제어 블록
이것은 외부버스를 통해서 접속된 SD-RAM의 판독 및 기록을 실현하는 블록이며, 각 블록 사이의 내부 접속을 제어하는 내부버스 접속부, 시스템 LSI의 외부에 접속된 SD-RAM과의 데이터 전송을 하는 액세스 제어부, 각 블록으로부터의 SD-RAM(15)의 액세스 요구를 조정하는 액세스 스케줄부로 이루어진다.
구체적인 생산수단의 상세는 이하의 것이 된다. 먼저, 각 실시 예에서 설명한 구성도를 기초로 시스템 LSI로 할 부분의 회로도를 작성하고, 회로소자나 IC, LSI를 이용하여 구성도에서의 구성요소를 구현한다.
그렇게 해서 각 구성요소를 구현해가면 회로소자나 IC, LSI 사이를 접속하는 버스나 그 주변회로, 외부와의 인터페이스 등을 규정한다. 또한, 접속선, 전원 라인, 접지라인, 클록 신호 선 등도 규정해 둔다. 이 규정 시에 LSI의 스펙을 고려하여 각 구성요소의 동작 타이밍을 조정하거나 각 구성요소에 필요한 밴드 폭을 보증하는 등의 조정을 부가하면서 회로도를 완성시켜 간다.
회로도가 완성하면 실장설계를 한다. 실장설계는 회로설계에 의해서 작성된 회로도 상의 부품(회로소자나 IC, LSI)을 기판상의 어디에 배치할지, 또는 회로도 상의 접속 선을 기판상에 어떻게 배선할지를 결정하는 기판 레이아웃의 작성작업이다.
이렇게 실장설계가 이루어지고, 기판상의 레이아웃이 확정되면, 실장설계 결과를 CAM 데이터로 변환하여 NC 공작기계 등의 설비에 출력한다. NC 공작기계는 이 CAM 데이터를 기초로 SoC 실장이나 SiP 실장을 한다. Soc(System on chip)실장은 1 칩 상에 복수의 회로를 인쇄하는 기술이다. Sip(System in Package) 실장은 복수 칩을 수지 등으로 1 패키지로 하는 기술이다. 이상의 과정을 거쳐서 본 발명의 시스템 LSI는 각 실시 예에서 설명한 재생장치(102) 내부의 내부 구성도를 기초로 작성할 수 있다.
또, 상술한 바와 같이 해서 생성되는 집적회로는 집적도의 차이에 따라서 IC, LSI, 슈퍼 LSI, 울트라 LSI로 호칭되는 경우도 있다.
FPGA를 이용하여 시스템 LSI를 실현한 경우에는, 다수의 로직 엘리먼트가 격자 형상으로 배치되어 있고, LUT(Look up Table)에 기재되어 있는 입출력의 조합에 의거하여 종 및 횡의 배선을 연결함으로써 각 실시 예에서 설명한 하드웨어 구성을 실현할 수 있다. LUT는 SRAM에 기억되어 있고, 이러한 SRAM의 내용은 전원의 차단에 의해서 소멸하므로, 이러한 FPGA의 이용 시에는 구성정보의 정의에 의해서 각 실시 예에서 설명한 하드웨어 구성을 실현하는 LUT를 SRAM에 기록하게 할 필요가 있다.
(플레인 메모리의 실장)
플레인 메모리는 매우 큰 메모리 용량을 필요로 하므로 시스템 LSI에 내장되어 있는 SRAM으로 실현하는 것은 바람직하지 않다. 외부 부착형 SDRAM으로 실현하는 것이 바람직하다. 또, 플레인 메모리가 복수 존재하는 경우에는 백 메모리 방식을 채용하여 MPU에서의 메모리 공간의 일부에 이들을 맵핑하는 것이 좋은 방법이다. 벤치마크 스코어의 측정 시에는 이러한 플레인 메모리로부터의 판독이나 기록에 요하는 시간을 치밀하게 평가할 필요가 있다.
(AV 재생의 대상)
AV 재생의 대상은 디지털 스트림, 맵 정보, 플레이리스트 정보로 구성되는 콘텐츠라면 BD-ROM에 규정된 것에 한정되는 것은 아니다. 디지털 스트림은 MPEG2, MPEG4-AVC 등의 부호화 방식으로 부호화된 비디오 스트림, 오디오 스트림을 다중화함으로써 얻어진 다중화 스트림이며, DVD Video-Recording 규격에서는 VOB로 불린다.
맵 정보는 상술한 비디오 스트림에서의 액세스 유닛(독립 복호 가능한 재생단위를 말한다)의 어드레스 정보와 비디오 스트림의 재생시간 축에서의 재생시각과의 대응을 나타내는 정보이며, DVD Video-Recording 규격에서는 Time Map이라 불린다.
플레이리스트 정보는 개시점인 시각정보와 종료점인 시각정보의 조합에 의해서 하나 이상의 재생구간을 정의하는 정보이다.
재생장치(102)를 멀티디스크 대응 기기로 개발하는 경우, 벤치마크 스코어의 측정에 있어서는 이러한 VOB를 DVD-Video로부터 판독하여 디코드하기 위해서 필요 한 시간을 치밀하게 평가하여도 좋다. 그리고 DVD-Video의 재생에서의 벤치마크 스코어를 펌웨어에 내장해 두어도 좋다.
본 발명의 재생장치는 각 실시 예에서 설명한 내부 구성을 이용하여 공업적으로 생산할 수 있으므로 제조산업에서 이용될 가능성이 있다.

Claims (15)

  1. 재생장치로,
    기록매체로부터 데이터를 판독하는 드라이브부, 상기 판독한 데이터에 포함되는 AV 데이터를 재생하는 재생부, 프로그램을 실행하는 처리부를 구비하는 하드웨어부와,
    상기 하드웨어부를 제어하는 펌웨어 프로그램과,
    상기 처리부가 상기 펌웨어 프로그램을 실행하는 경우, 소정의 조건을 만족하면 초기화 처리를 하는 초기화부와,
    소정의 기록영역을 갖는 기록부를 구비하고,
    상기 펌웨어 프로그램에는 벤치마크 스코어(benchmark score)가 포함되어 있으며,
    상기 벤치마크 스코어는 상기 드라이브부에 의해서 상기 기록매체로부터 판독된 벤치마크 프로그램을 상기 처리부에 의해서 실행한 때에, 상기 실행되는 벤치마크 프로그램으로부터의 명령에 따라서, 상기 처리부에 의해서 실행되는 펌웨어 프로그램을 통해서 상기 하드웨어부에 소정의 처리를 하게 한 결과이고, 상기 재생장치의 처리능력을 나타내는 지표이며,
    상기 초기화부는 상기 처리부가 상기 펌웨어 프로그램을 최초로 실행하는 경우, 상기 펌웨어 프로그램에 포함되어 있는 벤치마크 스코어를 상기 기록부에서의 소정의 기록영역에 기록함으로써 상기 기록영역에 기록한 벤치마크 스코어를 상기 처리부에 의해 실행되는 애플리케이션 프로그램이 액세스할 수 있도록 한 것을 특징으로 하는 재생장치.
  2. 제 1 항에 있어서,
    상기 펌웨어 프로그램이 갱신되고, 상기 처리부가 상기 갱신된 펌웨어 프로그램을 최초로 실행하는 경우,
    상기 초기화부는 상기 갱신된 펌웨어 프로그램에 포함된 벤치마크 스코어를 상기 기록부에서의 소정의 기록영역에 기록하는 것을 특징으로 하는 재생장치.
  3. 제 2 항에 있어서,
    상기 기록영역에 기록한 벤치마크 스코어에 상기 처리부에 의해서 실행되는 애플리케이션 프로그램이 액세스하는 경우에 상기 애플리케이션 프로그램에 대응하는 신용증명서이며, 상기 애플리케이션 프로그램이 상기 기록영역에 기록한 벤치마크 스코어에 대한 액세스 권한에 대한 정보를 포함한 신용증명서의 유효성을 판단하고, 상기 유효하다고 판단된 신용증명서에 포함되는 상기 벤치마크 스코어에 대한 액세스 권한에 대한 정보에 의거하여 상기 애플리케이션 프로그램이 상기 기록영역에 기록한 벤치마크 스코어에 액세스 가능한가 여부를 판정하는 판정부를 구비하는 것을 특징으로 하는 재생장치.
  4. 제 3 항에 있어서,
    상기 기록부에서의 소정의 기록영역은 상기 벤치마크 프로그램을 제공한 조직을 식별하는 식별자와, 상기 벤치마크 애플리케이션을 식별하는 식별자를 포함한 파일패스를 이용하여 특정되는 것을 특징으로 하는 재생장치.
  5. 제 4 항에 있어서,
    상기 펌웨어 프로그램은 상기 애플리케이션 프로그램으로부터 상기 기록영역에 기록한 벤치마크 스코어로의 액세스 요구에 대하여, 상기 기록영역에 기록한 벤치마크 스코어를 액세스를 요구한 애플리케이션 프로그램에 되돌리는(return) I/O 프로그램을 포함하고,
    상기 애플리케이션 프로그램이 상기 벤치마크 스코어로의 파일패스를 지정하여, 상기 벤치마크 스코어로의 액세스를 요구한 때,
    상기 처리부는 상기 I/O 프로그램을 실행하고, 상기 I/O 프로그램은 지정된 파일패스에 의거하여 특정되는 벤치마크 스코어를 상기 애플리케이션 프로그램에 되돌리도록 구성한 것을 특징으로 하는 재생장치.
  6. 제 5 항에 있어서,
    상기 처리부는 상기 펌웨어 프로그램을 저장하기 위한 제 1 기록영역을 가지는 제 1 기록부, 상기 제 1 기록부에 저장된 펌웨어 프로그램 및 실행대상의 애플리케이션 프로그램을 로드하기 위한 제 2 기록영역을 갖는 제 2 기록부, 상기 제 2 기록영역에 로드된 펌웨어 프로그램 및 애플리케이션 프로그램을 실행하는 처리부 본체를 구비한 것을 특징으로 하는 재생장치.
  7. 제 6 항에 있어서,
    상기 제 2 기록영역에 상기 펌웨어 프로그램에 포함된 벤치마크 스코어를 전개한 경우,
    상기 벤치마크 스코어를 본래 기록할 위치를 나타내는 상기 기록부에서의 파일패스에 관한 정보와 상기 벤치마크 스코어를 전개한 상기 제 2 기록영역 상의 위치에 관한 정보를 포함한 위치정보를 생성하고,
    상기 I/O 프로그램은 상기 애플리케이션 프로그램으로부터 지정된 파일패스를 수신하면, 상기 위치정보를 참조하여, 상기 제 2 기록영역에 전개한 벤치마크 스코어를 판독하여 상기 애플리케이션 프로그램에 되돌리도록 구성하는 것을 특징으로 하는 재생장치.
  8. 제 5 항에 있어서,
    상기 처리부는 상기 펌웨어 프로그램을 저장하기 위한 제 1 기록영역을 갖는 제 1 기록부, 실행대상인 애플리케이션 프로그램을 로드하기 위한 제 2 기록영역을 갖는 제 2 기록부, 상기 제 1 기록영역에 저장된 펌웨어 프로그램 및 상기 제 2 기록영역에 애플리케이션 프로그램을 실행하는 처리부 본체를 구비하는 것을 특징으로 하는 재생장치.
  9. 제 5 항에 있어서,
    상기 신용증명서는 상기 벤치마크 스코어로의 파일패스에 관한 정보를 포함하는 재생장치.
  10. 제 3 항에 있어서,
    상기 애플리케이션은 상기 신용증명서에 대하여 소정의 처리를 함으로써 얻어진 서명정보를 더 보유하고,
    상기 판정수단은 상기 애플리케이션이 상기 벤치마크 스코어에 액세스하려고 하는 경우에 상기 애플리케이션이 보유하고 있는 신용증명서와 서명정보를 이용하여 상기 애플리케이션이 상기 벤치마크 스코어에 액세스 가능한가 여부를 판정하는 것을 특징으로 하는 재생장치.
  11. 제 4 항에 있어서,
    상기 초기화부는 상기 기록부에서의 소정의 패스에 의해서 정해지는 기록영역에 상기 벤치마크 스코어가 기록되어 있는지 여부의 판정을 하고, 상기 벤치마크 스코어가 기록되어 있지 않다고 판정한 경우에는 상기 펌웨어 프로그램에 포함되어 있는 벤치마크 스코어를 상기 기록부에서의 소정의 패스에 의해서 정해지는 기록영역에 기록하는 것을 특징으로 하는 재생장치.
  12. 제 4 항에 있어서,
    상기 초기화부는 상기 펌웨어 프로그램이 갱신된 경우에, 상기 갱신된 펌웨어 프로그램에 포함되어 있는 벤치마크 스코어의 버전과 상기 애플리케이션 데이터영역에 존재하는 벤치마크 스코어의 버전의 버전 비교를 하며, 상기 갱신된 펌웨어 프로그램에 포함된 벤치마크 스코어 쪽이 새롭다고 판정된 경우에는 상기 펌웨어 프로그램에 포함되어 있는 벤치마크 스코어를 상기 기록부에서의 소정의 패스에 의해서 정해지는 기록영역에 기록하는 것을 특징으로 하는 재생장치.
  13. 제 3 항에 있어서,
    상기 벤치마크 스코어를 메모리에 전개하여, 메모리 상의 벤치마크 스코어를 애플리케이션이 이용하도록 하는 것을 특징으로 하는 재생장치.
  14. 기록매체로부터 데이터를 판독하는 드라이브부와 상기 판독한 데이터에 포함되는 AV 데이터를 재생하는 재생부를 구비한 하드웨어부와, 소정의 기록영역을 갖는 기록부를 구비한 재생장치에 이용하는 집적회로로,
    상기 집적회로는,
    프로그램을 실행하는 처리부와,
    상기 하드웨어부를 제어하는 펌웨어 프로그램과,
    상기 처리부가 상기 펌웨어 프로그램을 실행하는 경우, 소정의 조건을 만족하면 초기화 처리를 하는 초기화부를 구비하고,
    상기 펌웨어 프로그램에는 벤치마크 스코어가 포함되어 있으며,
    상기 벤치마크 스코어는 상기 드라이브부에 의해서 상기 기록매체로부터 판독된 벤치마크 프로그램을 상기 처리부에 의해서 실행한 때에, 상기 실행되는 벤치마크 프로그램으로부터의 명령에 따라서, 상기 처리부에 의해서 실행되는 펌웨어 프로그램을 통해서 상기 하드웨어부에 소정의 처리를 하게 한 결과이고, 상기 재생장치의 처리능력을 나타내는 지표이며,
    상기 초기화부는 상기 처리부가 상기 펌웨어 프로그램을 최초로 실행하는 경우, 상기 펌웨어 프로그램에 포함되어 있는 벤치마크 스코어를 상기 기록부에서의 소정의 기록영역에 기록함으로써 상기 기록영역에 기록한 벤치마크 스코어를 상기 처리부에 의해서 실행되는 애플리케이션 프로그램이 액세스할 수 있도록 하는 것을 특징으로 하는 집적회로.
  15. 기록매체로부터 데이터를 판독하는 드라이브부, 상기 판독한 데이터에 포함되는 AV 데이터를 재생하는 재생부, 프로그램을 실행하는 처리부를 구비하는 하드웨어부와,
    상기 하드웨어부를 제어하는 펌웨어 프로그램과,
    소정의 기록영역을 갖는 기록부를 구비하고,
    상기 드라이브부에 의해서 상기 기록매체로부터 판독된 벤치마크 프로그램을 상기 처리부에 의해서 실행한 때에, 상기 실행되는 벤치마크 프로그램으로부터의 명령에 따라서, 상기 처리부에 의해서 실행되는 펌웨어 프로그램을 통해서 상기 하드웨어부에 소정의 처리를 행하게 한 결과이며, 상기 재생장치의 처리능력을 나타 내는 지표인 벤치마크 스코어가 상기 펌웨어 프로그램에 포함된 재생장치에서의 재생방법으로,
    상기 처리부가 상기 펌웨어 프로그램을 최초로 실행하는 경우, 상기 펌웨어 프로그램에 포함되어 있는 벤치마크 스코어를 상기 기록부에서의 소정의 기록영역에 기록하는 스텝과,
    상기 기록영역에 기록한 벤치마크 스코어를 상기 처리부에 의해서 실행되는 애플리케이션 프로그램에 액세스하도록 하는 스텝을 포함하는 것을 특징으로 하는 재생방법.
KR1020097014442A 2007-03-02 2008-02-29 재생장치, 시스템 lsi, 초기화방법 KR101430279B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2007053162 2007-03-02
JPJP-P-2007-053162 2007-03-02
PCT/JP2008/000410 WO2008108084A1 (ja) 2007-03-02 2008-02-29 再生装置、システムlsi、初期化方法

Publications (2)

Publication Number Publication Date
KR20090122909A true KR20090122909A (ko) 2009-12-01
KR101430279B1 KR101430279B1 (ko) 2014-08-14

Family

ID=39737982

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097014442A KR101430279B1 (ko) 2007-03-02 2008-02-29 재생장치, 시스템 lsi, 초기화방법

Country Status (7)

Country Link
US (1) US8522339B2 (ko)
EP (1) EP2116934B1 (ko)
JP (1) JP4906913B2 (ko)
KR (1) KR101430279B1 (ko)
CN (1) CN101589369B (ko)
ES (1) ES2404807T3 (ko)
WO (1) WO2008108084A1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008132772A1 (ja) * 2007-04-19 2008-11-06 Panasonic Corporation データ管理装置、保存データの管理方法、及びコンピュータプログラム
WO2008146476A1 (ja) * 2007-05-24 2008-12-04 Panasonic Corporation メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びアクセス装置
JP2010191665A (ja) * 2009-02-18 2010-09-02 Sony Corp 情報処理装置、情報処理方法、およびプログラム、並びに記録媒体
US8732749B2 (en) 2009-04-16 2014-05-20 Guest Tek Interactive Entertainment Ltd. Virtual desktop services
US8593511B2 (en) * 2009-06-11 2013-11-26 Panasonic Corporation Playback device, integrated circuit, recording medium
WO2010143439A1 (ja) * 2009-06-12 2010-12-16 パナソニック株式会社 再生装置、集積回路、記録媒体
US9229734B2 (en) * 2010-01-15 2016-01-05 Guest Tek Interactive Entertainment Ltd. Hospitality media system employing virtual user interfaces
US9003455B2 (en) 2010-07-30 2015-04-07 Guest Tek Interactive Entertainment Ltd. Hospitality media system employing virtual set top boxes
US8495108B2 (en) * 2010-11-30 2013-07-23 International Business Machines Corporation Virtual node subpool management
US9910659B2 (en) * 2012-11-07 2018-03-06 Qualcomm Incorporated Methods for providing anti-rollback protection of a firmware version in a device which has no internal non-volatile memory
EP2808818B1 (en) * 2013-05-29 2016-07-13 Nxp B.V. Processing system
FR3014576B1 (fr) * 2013-12-10 2018-02-16 Mbda France Procede et systeme d'aide a la verification et a la validation d'une chaine d'algorithmes
JP6361390B2 (ja) * 2014-09-10 2018-07-25 富士通株式会社 ストレージ制御装置および制御プログラム
US9294492B1 (en) * 2015-03-10 2016-03-22 Iboss, Inc. Software program identification based on program behavior
CN104679578B (zh) * 2015-03-12 2018-09-07 绚视软件科技(上海)有限公司 BD-java平台上的最小内存自适应机制及使用方法
CN107870877B (zh) * 2016-09-23 2024-04-23 伊姆西Ip控股有限责任公司 用于在存储系统中管理数据访问的方法和系统
JP7087634B2 (ja) * 2018-04-26 2022-06-21 富士通株式会社 リソース管理装置及びリソース管理プログラム
KR102137194B1 (ko) 2018-10-31 2020-07-24 엘지전자 주식회사 이동 단말기
CN111338662A (zh) * 2018-12-18 2020-06-26 深圳市优必选科技有限公司 从站的固件升级方法、固件升级装置及终端
CN111158969B (zh) * 2019-12-31 2024-03-08 奇安信科技集团股份有限公司 数据处理方法、电子设备和存储介质
CN114397868B (zh) * 2021-12-03 2024-05-14 陕西法士特齿轮有限责任公司 集成式自动机械式变速箱的硬件在环测试平台及测试方法
US20230214822A1 (en) * 2022-01-05 2023-07-06 Mastercard International Incorporated Computer-implemented methods and systems for authentic user-merchant association and services

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08289251A (ja) * 1995-04-18 1996-11-01 Tec Corp マルチメディア処理装置
US6678812B1 (en) * 1996-01-16 2004-01-13 Intel Corporation Method and apparatus for optimizing hard drive performance
US6378013B1 (en) * 1998-09-17 2002-04-23 Micron Technology, Inc. System for assessing performance of computer systems
US6405329B1 (en) * 1999-07-27 2002-06-11 Dell Usa, L.P. Method and apparatus for HDD time stamp benchmark and installation identification
US7155415B2 (en) * 2000-04-07 2006-12-26 Movielink Llc Secure digital content licensing system and method
US7213266B1 (en) * 2000-06-09 2007-05-01 Intertrust Technologies Corp. Systems and methods for managing and protecting electronic content and applications
JP2002099430A (ja) 2000-09-26 2002-04-05 Minolta Co Ltd データ処理装置および方法
US6769054B1 (en) * 2001-02-26 2004-07-27 Emc Corporation System and method for preparation of workload data for replaying in a data storage environment
US7124152B2 (en) * 2001-10-31 2006-10-17 Seagate Technology Llc Data storage device with deterministic caching and retention capabilities to effect file level data transfers over a network
JP2004056620A (ja) * 2002-07-23 2004-02-19 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US8307156B1 (en) * 2002-07-31 2012-11-06 Western Digital Technologies, Inc. Adaptively modifying pre-read operations within a rotating media storage device
US7184934B2 (en) 2003-06-26 2007-02-27 Microsoft Corporation Multifaceted system capabilities analysis
WO2005017735A1 (ja) * 2003-08-19 2005-02-24 Fujitsu Limited ディスクアレイ装置におけるボトルネックを検出するシステムおよびプログラム
GB0322045D0 (en) 2003-09-20 2003-10-22 Koninkl Philips Electronics Nv A network-based gaming system
US20050086640A1 (en) * 2003-10-21 2005-04-21 Mikko Kolehmainen Initiating execution of application programs on a data processing arrangement
US7427027B2 (en) * 2004-07-28 2008-09-23 Sandisk Corporation Optimized non-volatile storage systems
GB2423408A (en) 2005-02-22 2006-08-23 Zootech Ltd Identifying audiovisual apparatus and associated methods and content stored on data carriers
EP1877881A4 (en) * 2005-04-29 2011-04-20 Fat Spaniel Technologies Inc COMPUTER-IMPLEMENTED SYSTEMS AND METHODS FOR STARTING, CALIBRATION AND TROUBLESHOOTING OF A RENEWABLE ENERGY SYSTEM INSTALLED
US7659897B1 (en) * 2006-06-30 2010-02-09 Nvidia Corporation System, method, and computer program product for video benchmarking
US20080034440A1 (en) * 2006-07-07 2008-02-07 Michael Holtzman Content Control System Using Versatile Control Structure
US20080170837A1 (en) * 2007-01-12 2008-07-17 Zootech Limited Information processing system
JP2008226365A (ja) 2007-03-13 2008-09-25 Matsushita Electric Ind Co Ltd 音声再生装置及び音声再生方法

Also Published As

Publication number Publication date
JP4906913B2 (ja) 2012-03-28
KR101430279B1 (ko) 2014-08-14
JPWO2008108084A1 (ja) 2010-06-10
US20100031347A1 (en) 2010-02-04
EP2116934A1 (en) 2009-11-11
CN101589369A (zh) 2009-11-25
EP2116934A4 (en) 2010-06-09
ES2404807T3 (es) 2013-05-29
US8522339B2 (en) 2013-08-27
CN101589369B (zh) 2013-01-23
WO2008108084A1 (ja) 2008-09-12
EP2116934B1 (en) 2013-04-10

Similar Documents

Publication Publication Date Title
KR101430279B1 (ko) 재생장치, 시스템 lsi, 초기화방법
US8320735B2 (en) Reproducing apparatus
US8051100B2 (en) Recording medium, recording device, and playback device for use in individual sales and method therefor
KR101470961B1 (ko) 재생장치, 기록방법
JP4491035B2 (ja) 再生装置、デバッグ装置、システムlsi、プログラム
US8588580B2 (en) Playback device, recording medium, playback method and program
US20070225840A1 (en) Stream Reproduction Device and Stream Supply Device
JP5406178B2 (ja) 再生装置、再生方法、プログラム
KR20110036882A (ko) 기록매체, 재생장치, 집적회로, 재생방법, 프로그램
JP5451745B2 (ja) 再生装置、集積回路、再生方法、アプリケーションプログラム、記録媒体、記録装置、及び記録方法
US20110038616A1 (en) Reproduction apparatus and method of controlling a reproduction apparatus
JP2010005159A (ja) 保存データ移行方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
LAPS Lapse due to unpaid annual fee