JP4727478B2 - デバイス制御装置及びデバイス制御プログラム - Google Patents

デバイス制御装置及びデバイス制御プログラム Download PDF

Info

Publication number
JP4727478B2
JP4727478B2 JP2006089866A JP2006089866A JP4727478B2 JP 4727478 B2 JP4727478 B2 JP 4727478B2 JP 2006089866 A JP2006089866 A JP 2006089866A JP 2006089866 A JP2006089866 A JP 2006089866A JP 4727478 B2 JP4727478 B2 JP 4727478B2
Authority
JP
Japan
Prior art keywords
script
driver
processing
kernel space
data
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
JP2006089866A
Other languages
English (en)
Other versions
JP2007265064A (ja
Inventor
淳一 須田
夏樹 湯浅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
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 Sharp Corp filed Critical Sharp Corp
Priority to JP2006089866A priority Critical patent/JP4727478B2/ja
Priority to PCT/JP2007/056454 priority patent/WO2007119527A1/ja
Publication of JP2007265064A publication Critical patent/JP2007265064A/ja
Application granted granted Critical
Publication of JP4727478B2 publication Critical patent/JP4727478B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

本発明は、コンピュータの記憶装置、周辺機器を制御するデバイス制御装置及びデバイス制御方法並びにコンピュータのオペレーティングシステム(以下「OS」と記す。)のデバイスドライバを用いたデバイス制御プログラム、放送受像機に関する。
一般的なOSにおいては、アプリケーションプログラムが置かれるユーザ空間と、OS自体が置かれるカーネル空間が存在する。すなわち、OSあるいはCPU(中央演算処理装置)によってコンピュータの記憶領域がユーザ空間とカーネル空間に分けて管理される。例えば、これらの空間がメモリ等の記憶装置の記憶領域に直接にマッピングされる場合と、これらの空間が論理的な記憶領域として管理され、論理的な記憶アドレスと物理的な記憶アドレスとの間で変換が行われ、メモリ等の記憶装置の対応する記憶領域に記憶される場合とがある。
また、デバイスドライバとはコンピュータに接続された周辺機器を制御するプログラムである。近年、周辺機器を制御するために家庭用電気機器、すなわち家電にもOS及びデバイスドライバが組み込まれつつある。
なお、一般的には、デバイスドライバというと、OSに読み込まれて周辺機器を制御するプログラムであって、そのOS用の記述仕様に沿って作成されたプログラムを指すことが多いが、本明細書、特許請求の範囲及び図面中においては、このようなデバイスドライバだけでなく、周辺機器を制御するプログラムであれば特にOS用の記述仕様に従っていなくてもデバイスドライバと称する。
デバイスドライバがカーネル空間に読み込まれる場合、アプリケーションプログラムからの所定の呼び出し手順によりその処理が実行される。カーネル空間で実行される処理は、ユーザ空間で実行されるアプリケーションプログラムの処理よりも高い優先度が割り当てられ、コンピュータのあらゆる資源にアクセス可能な状態で行われる。
通常、デバイスドライバは特許文献1に記載されているように、カーネル空間に置かれ、OSと一体になって実行される。この場合は、OSのスケジューラによりアプリケーションプログラムの処理よりも優先的にデバイスドライバの処理が割当てられるため、応答速度の速い処理が可能となる。さらにカーネル空間からはハードウェアを直接制御できるため、処理全体も高速化できるという利点もある。
また、特許文献2に記載されているように、アプリケーションプログラム側でデバイスドライバの処理を行う場合もあり、この場合は、移植性が高く、デバッグも比較的容易であるという利点がある。
特開平3−68052号公報 特開2001−265612号公報
特許文献1に記載されているような、カーネル空間でデバイスドライバの処理を行う場合は、応答速度が速く、またハードウェアの制御を直接行うことができるため処理全体も高速化できる。しかしながら、カーネル空間に存在するデバイスドライバは、OSの内部のモジュールとなり、OSと独立していないため、デバイスドライバの処理内容を変更することが困難になる。すなわち、デバイスドライバの記述の仕方に制約事項があり、OSに依存したデバイスドライバ作成方法を習得している必要があるため、OS間のデバイスドライバの移植も困難である。また、デバイスドライバの動作検証には一般的なアプリケーションプログラム用のデバッグソフトが使えないこと等により、デバイスドライバの処理内容を変更した後のデバッグや動作検証が困難である。
一方、特許文献2に記載されているような、アプリケーションプログラム側でドライバ処理を行う場合は、直接にハードウェアを制御することができず、OSによる処理の優先度が低くなることにより、ハードウェアからの割込み応答処理速度が遅くなり、シビアなタイミングが要求される処理に対応できないなどの問題がある。
本発明は上記の問題点を解決するためになされたもので、本発明の記憶装置は、周辺機器を制御する処理シーケンスが記述されたスクリプトを記憶するユーザ空間と、前記スクリプトを読み込み、解釈することにより周辺機器の制御を実行するプログラムコードを記憶するカーネル空間とを備える。
一形態として、ユーザ空間のアプリケーションプログラムが実行されるときに、各デバイスを制御するために用いられるアルゴリズムを含むスクリプトがカーネル空間のドライバ処理部に読み込まれ、各デバイス処理部においてスクリプトが実行されることにより各デバイスが制御される。これにより、デバイスドライバの変更やデバッグが容易なまま処理速度の高速化を図ることが可能となる。
また、本発明の記憶装置は、周辺機器を制御する処理シーケンスが記述されたスクリプトを記憶するユーザ空間と、前記スクリプトを読み込み、周辺機器の制御を実行するためのプログラムコードに翻訳するプログラムコードを記憶するカーネル空間とを備える。
また、本発明の記憶装置は、周辺機器を制御する処理シーケンスが記述されたスクリプトを記憶するユーザ空間と、前記スクリプトを読み込み、解釈することにより周辺機器の制御を実行するプログラムコードを記憶するカーネル空間と、前記プログラムコードを実行することにより周辺機器を制御する中央演算処理装置とを備える。
また、本発明の記憶装置は、前記スクリプトを前記カーネル空間に保存するスクリプト保存手段を備える。
また、本発明のデバイス制御装置は、周辺機器を制御する処理シーケンスが記述されたスクリプトを記憶するユーザ空間と、前記スクリプトを読み込み、周辺機器の制御を実行するためのプログラムコードに翻訳するプログラムコードを記憶するカーネル空間と、前記プログラムコードを実行することにより周辺機器を制御する中央演算処理装置とを備える。
また、本発明のデバイス制御装置は、周辺機器を制御する処理シーケンスが記述されたスクリプトと、前記スクリプトを読み込み、周辺機器の制御を実行するためのプログラムコードに翻訳するプログラムコードを記憶するユーザ空間と、前記周辺機器の制御を実行するためのプログラムコードを記憶するカーネル空間と、前記周辺機器の制御を実行するためのプログラムコードを実行することにより周辺機器を制御する中央演算処理装置とを備える。
また、本発明のデバイス制御プログラムは、記憶領域がカーネル空間とユーザ空間とに分かれているコンピュータのデバイス制御プログラムであって、前記カーネル空間にデバイスドライバを読み込むステップと、前記ユーザ空間に周辺機器を制御する処理シーケンスが記述されたスクリプトを読み込むステップと、前記デバイスドライバが、前記スクリプトを読み込み、該読み込んだスクリプトに従って前記カーネル空間上で周辺機器を制御するステップとを備える。
また、本発明のデバイス制御プログラムは、前記スクリプトを前記カーネル空間に保存するステップを備える。
また、本発明のデバイス制御プログラムは、前記スクリプトを中央演算処理装置が実行可能なプログラムコードに変換し、前記変換したプログラムコードを前記カーネル空間に保存するステップを備える。
また、本発明の放送受像機は、記憶装置を備える。
また、本発明の放送受像機は、デバイス制御装置を備える。
また、本発明の放送受像機は、デバイス制御プログラムを備える。
また、本発明のデバイス制御方法は、記憶領域がカーネル空間とユーザ空間とに分けて管理されているコンピュータのデバイス制御方法であって、前記カーネル空間にデバイスドライバを読み込むステップと、前記ユーザ空間に周辺機器を制御する処理シーケンスが記述されたスクリプトを読み込むステップと、前記デバイスドライバが、前記スクリプトを読み込み、該読み込んだスクリプトに従って前記カーネル空間上で周辺機器を制御するステップとを有する。
本発明によれば、ユーザ空間にドライバ処理シーケンス(スクリプト)を置くことで、デバイスドライバの処理シーケンスの書き換えが容易となり、デバイスドライバの一部の不具合の場合は従来のようにOS全体を入れ替える必要がない。また、OSが異なる場合でもスクリプトの文法の統一化を図っておくことにより、OS間の移植性を高めることができる。また、スクリプトの文法に合わせたデバッグツールを用意する事が可能となるため、デバッグも比較的容易となるメリットが得られる。さらにプログラム実行時にカーネル空間でドライバ処理シーケンスが実行されるので、割込み応答速度も速く、またカーネル空間からはハードウェアを直接制御できるため、その処理も高速化できる。
以下、図面を参照して本発明の実施形態を詳細に説明する。
図1は、周辺機器が接続されたコンピュータのソフトウェアの全体構成図である。このコンピュータにはn個の周辺機器が接続され、1番目、2番目、n番目の周辺機器をそれぞれデバイス41、42、43と表わす。
カーネル空間1、ユーザ空間2は、上述したようにコンピュータのOSによって管理される記憶領域である。カーネル空間1にはn個の周辺機器に対応してn個のデバイス処理部が読み込まれ配置されている。これらはそれぞれ対応する周辺機器を制御するプログラムであるデバイスドライバであり、CPUによって実行されることにより各々の周辺機器に応じた制御が行われる。すなわち、各々の周辺機器に応じた制御をコンピュータに実行させる。
以下の説明において、コンピュータに読み込まれたプログラムであるドライバ処理部100、ドライバ処理部100に含まれる実行部、処理部等、あるいはアプリケーションプログラム200が何らかの処理を行うという記載は、それらのプログラムがコンピュータのCPUによって実行されることにより当該処理をコンピュータに実行させることを意味する。
図1では1番目、2番目、n番目のデバイス処理部をデバイス1処理部10、デバイス2処理部20、デバイスn処理部30と表わす。これらはドライバ処理部100を構成する。
ユーザ空間2にはアプリケーションプログラム200が読み込まれ配置されている。一般に、アプリケーションプログラムは、実行形式ファイルとしてハードディスクあるいはその他のコンピュータ読み取り可能な記録媒体に記憶され、実行されるときにメモリに読み込まれるが、各デバイスドライバの処理内容を記述したスクリプトはアプリケーションプログラムの実行形式ファイルとは別のファイルに記述してハードディスク等に記憶しておいてもよい。あるいは、アプリケーションプログラムの実行形式ファイルにスクリプト保存部201としてドライバ処理スクリプト群を含んでもよい。スクリプトはデバイスを制御するために用いられるアルゴリズムが含まれているが、それだけでなく、例えば、音声又は映像の符号化アルゴリズム、暗号化アルゴリズム、復号化アルゴリズム等を含んでも良い。
ここで、スクリプトとは、処理シーケンス(処理手順)や処理データをテキストファイルの形で記述したものであり、従来例としてはシェルスクリプト、JavaScript(登録商標)、Perl等様々なものがあるが、本発明においては、これらに限定するものではなく、必要な処理を記述できるものであればどのようなものを用いてもよいし、新たなスクリプト言語を作成してもよい。例えば、カーネル空間に置かれる通常のデバイスドライバを記述する言語(C言語など)と同一の文法体系をもつスクリプト言語を作成して利用するようにすれば、カーネル空間に置かれる従来のデバイスドライバと同一の処理を、本発明のスクリプト型デバイスドライバに移植することが容易となる。
通常、スクリプトはインタプリタ型の言語であり、スクリプトの内容を逐次解釈しながら処理が実行される。本発明のスクリプトもこのような逐次解釈の形で実行するように実現可能であり、その場合は、スクリプトを逐次解釈するためのインタプリタをドライバ処理部100が持っている形になる。「ドライバ処理部=スクリプトのインタプリタ」と言える場合もある。
また、本発明では、スクリプトは逐次解釈される形のみを想定しているわけではなく、C言語など、従来のコンパイル型言語と同様に、最初の時点で実行形式(プログラムコード)にコンパイル(翻訳)され、その後はCPUによって直接実行できるように実現することも可能である。これは、ドライバ処理部100あるいはアプリケーションプログラム200が、スクリプトを実行形式に翻訳するコンパイラを備え、スクリプトがドライバ処理部100に読み込まれる際に、スクリプトを実行形式に翻訳したものを読み込ませることによって実現できる。
本発明のデバイスドライバであるドライバ処理部100は、OS起動当初は、スクリプトが読み込まれていないため、デバイスドライバとしての処理が行えない。アプリケーションプログラム200の実行前または実行時にドライバ処理部100にスクリプトを読み込むことで、デバイスドライバの処理を行うことができるようになる。このスクリプトがドライバ処理部100に読み込まれるタイミングは、例えば、OS起動時にスクリプト読み込み用プログラム(これもアプリケーションプログラム200の一種である。)を実行し、その後他のアプリケーションプログラム200を実行させるという方法がある。また、アプリケーションプログラム200の実行時に、該アプリケーションプログラム200起動直後の処理の部分でスクリプト読み込み処理を行わせるという方法もある。いずれにしても、デバイスドライバとしての処理(デバイスのオープン処理など)を行う前にスクリプトが読み込まれていればよい。
上記のスクリプトをドライバ処理部100が読み込む手順は、例えば、OS起動時に、従来の(カーネル空間上の)デバイスドライバを読み込むのと同様な形で、上述したスクリプト読み込み用プログラムにおいて、スクリプトをドライバ処理部100に読み込ませるようにしても良い。また、そのスクリプトによるデバイスドライバが特定のアプリケーションプログラム200と密接に結びついている場合においては、次のような方法を取ることもできる。例えば、スクリプトをアプリケーションプログラム200の実行形式ファイルとは別のファイルに保存する場合は、そのファイル名をアプリケーションプログラム200からドライバ処理部100に指定し、ドライバ処理部100はそのファイル名に該当するファイルからスクリプトを読み出すことが可能である。また、アプリケーションプログラム200の実行形式ファイルにスクリプトを含む場合は、例えば、アプリケーションプログラム200がバッファ領域を確保してスクリプトの内容をコピーし、そのバッファ領域のアドレスをドライバ処理部100に指定することにより、ドライバ処理部100はそのバッファ領域からスクリプトを読み出すことが可能である。これらは一例であり、上記に限定されない。
図1の例においては、デバイス1処理部10、デバイス2処理部20、デバイスn処理部30は、それぞれアプリケーションプログラム200からスクリプト11、スクリプト21、スクリプト31を読み込む。各デバイス処理部に読み込まれたスクリプトの実行は、インタプリタ型のプログラム言語で記述されたプログラムを実行する場合のように、逐次解釈して実行する形態としてもよいし、コンパイル型のプログラム言語で記述されたプログラムを実行する場合のように一括して全体を実行形式に変換してから実行する形態、例えば、スクリプトをアプリケーションプログラム200から読み込むときに一括して全体を実行形式に変換してから実行する形態としてもよい。これらは一例であり、上記に限定されない。このようにしてスクリプトが実行されることにより、対応するデバイス41、42、43が制御される。
ここで、スクリプトの具体例を説明する。アプリケーションプログラム200からデバイスドライバであるドライバ処理部100に処理を実行させるときの手順例は以下の通りである。
Figure 0004727478
これは、従来の(カーネル空間上の)デバイスドライバを使用してアプリケーションプログラムからデバイス制御を行なう場合の処理とまったく同じである。すなわち、アプリケーションプログラム200から、まず、デバイスをオープン(初期化)する関数を呼び出した後、デバイスからのデータの読み出しまたはデバイスへのデータの書き込みを行う関数を呼び出し、処理が終了したらデバイスをリリースする関数を呼び出す。これらが呼び出されるとOS内部の制御によりデバイスドライバのexam_dev_open, exam_dev_read, exam_dev_write, exam_dev_releaseなどの処理が呼び出される。従来の(カーネル空間上)のデバイスドライバの場合は、デバイスドライバでの処理手順等はカーネル空間上に直接実行可能な形式で保存されているが、本発明においては、これらの処理手順等がスクリプトで定義される。スクリプトの一例(C言語ライクなもの)を以下に示す。
Figure 0004727478
なお、exam_dev_openはカウンタを1増加させる処理を行い、exam_dev_releaseはカウンタを1減少させる処理を行い、exam_dev_readは後述する関数copy_to_userを呼び出してカーネル空間からユーザ空間へデータをコピーする処理を行い、exam_dev_writeは後述する関数copy_from_userを呼び出してユーザ空間からカーネル空間へデータをコピーする処理を行う。また、exam_dev_fopsはスクリプト内で用いられる構造体を定義し、init_module, cleanup_moduleはそれぞれデバイスドライバモジュールを初期化、解放するときに呼び出される。上記スクリプトはC言語ライクな文法規則に従って書かれているが、より簡単にデバイスドライバを記述できるようにスクリプトの文法を定義することもできる。上記のC言語ライクなスクリプトに記述された処理と同様な処理をより簡単な文法で記述した例を以下に示す。引数が一部省略でき、関数及び引数の型宣言が不要になる等、簡潔に記述できる文法となっている。
Figure 0004727478
なお、上記スクリプトの処理の中でcopy_to_user、copy_from_user等は、カーネル空間とユーザ空間との間のデータのやり取りを行う関数である。JavaScript(登録商標)を始めとする他の一般的なスクリプト言語ではカーネル空間とユーザ空間を区別して扱う関数がサポートされていないため、上記のような処理を行うことはできない。本発明においては、上記のようなカーネル空間とユーザ空間との間のデータのやり取りをサポートするため、一例として上記の文法を規定し、また上記の関数が呼び出された場合は、本発明のデバイスドライバの内部でカーネル空間とユーザ空間の間のデータのやり取りを行う処理が実行される。
図2は、上記で言及した初期化処理、データ書込み処理、データ読込み処理、終了処理を含むスクリプト処理の概念図である。図2のスクリプト処理は、例えば音声又は映像の復号化アルゴリズム等を含むデータ処理、周辺機器等のハードウェアから出力される割込み信号を処理する割込み処理をさらに含む。この一例としてのスクリプトの処理内容は、カーネル空間での従来のデバイスドライバが行う処理シーケンスと同等のものを記載することができる。
アプリケーションプログラム200はドライバ処理部100に対して、初期化処理、データ書込み処理、データ読込み処理、終了処理等のための関数呼び出しを行う。これは上述したように、従来の(カーネル空間上の)デバイスドライバへの関数呼び出しと同様に行うことができる。図2の例では、アプリケーションプログラム200からデータ書込み処理が呼び出されるとハードウェアに対する割り込み設定処理の後、データ処理が行なわれ、その後ハードウェアへの書き込み処理が行われ、また、書き込み処理が完了するとハードウェアから割込みが発生して割り込み処理が呼び出され、割り込み処理によってデータ読込み処理またはデータ書込み処理が呼び出され、データ読込み処理が呼び出されるとデータ処理が行われた後、アプリケーションプログラム200に処理されたデータが渡される様子を表わしている。このときドライバ処理部100の内部では、上記の各々の処理に対応するスクリプトを解釈して実行することにより周辺機器を制御する。
上記の処理を、書き込み処理と読み込み処理に分けてより具体的に説明する。
図3はアプリケーションがバス制御ドライバを介してハードウェアに対してデータの書込み処理を行う場合の概念図である。アプリケーションはハードウェア初期化などのドライバ初期化処理を行う(S101)。次に、書込むデータを用意された書き込み用のバッファに入力して、データ書込み処理を呼び出す(S102)。
データ書込み処理では、まず初期設定として、バススピード設定や、割り込みが開始されるように設定を行う(S103)。次に、バッファのデータの内で所定の送信単位(例では1byte)のデータ値をハードウェアのレジスタに書込み、データ送信をする(S104)。1byteのデータ送信が完了すると、ハードウェアが割込み処理を呼出す(S105)。割込み処理は次の1byteデータの入力をするために、データ書込み処理を呼出す(S106)。S104〜S106を繰り返し、全てのデータが書込まれると、アプリケーションにデータ書き込み終了を通知する(S107)。
図4はアプリケーションがバス制御ドライバを介してハードウェアに対してデータの読込み処理を行う場合の概念図である。アプリケーションはハードウェア初期化などのドライバ初期化処理を行う(S201)。次に、データ読込み処理を呼び出して、読込み用のバッファを用意してデータ読込み処理を呼出す(S202)。
データ読込み処理では、まず初期設定として、バススピード設定や、割り込みが開始されるように設定を行う(S203)。次に、バッファのデータの内で所定の取得単位(例では1byte)のデータ値をハードウェアのレジスタから読込んで、データを取得する(S204)。次の1byteのデータ取得が完了すると、ハードウェアが割込み処理を呼出す(S205)。割込み処理は次の1byteデータを取得するために、データ読込み処理を呼出す(S206)。S204〜S206を繰り返し、全てのデータが読込まれると、アプリケーションに読み込み終了を通知する(S207)。
以上のように構成されたデバイスドライバの利点を説明するために、従来のソフトウェアスタック構成と本発明のソフトウェアスタック構成とを比較すると次の通りである。
図6は従来の主な2つのソフトウェアスタック構成を示している。図6(a)はカーネル空間上でデバイスを制御する場合の構成である。カーネル空間のデバイスドライバ上に、デバイスを制御するドライバ処理シーケンスが実装されている。デバイスドライバはカーネル(以下、単に「カーネル」とはデバイスドライバを含まないOSを意味する)の管理下にあるため、ハードウェアなどからのドライバに対する割込み応答速度は速く、システム全体として最適にドライバ処理が行われる。
一方、図6(b)はユーザ空間上でデバイスを制御する場合の構成である。ユーザ空間のアプリケーションプログラム上に、ドライバ処理シーケンスが実装されている。アプリケーションプログラム上にドライバモジュールを実装することで、デバッグが容易であるというメリットがあるが、割込み応答性能は遅いというデメリットもある。
そして、図5が本発明のソフトウェアスタック構成である。ユーザ空間上に保存しているスクリプト(周辺機器を制御するドライバ処理シーケンスが記述されたもの)が、OS起動時のスクリプト読み込み用プログラム(これもアプリケーションプログラムの一種であるが。)の実行時、あるいは他の(OS起動後の)アプリケーションプログラムの実行時などにカーネル空間上のデバイスドライバに読み込まれる。その後は、カーネル空間上でドライバ処理シーケンスが実行されるため、ハードウェアなどからのドライバに対する割込み応答速度は速く、システム全体として最適にドライバ処理が行われる。
次に、本発明のデバイスドライバを用いた装置の例を説明する。
図7は放送受像機を例とする本発明の一実施形態であり、周辺機器が接続された放送受像機に内蔵されたコンピュータのソフトウェアスタック構成を示す。なお、図7では図5におけるカーネルの記載は省略されている。コンピュータの記憶領域は論理的な空間としてユーザ空間とカーネル空間に分けられ、これらの空間におけるソフトウェアスタック構成は、ユーザ空間2にはアプリケーションプログラム200、カーネル空間1にはデバイスドライバとして動作するドライバ処理部100が読み込まれている。ドライバ処理部100は、ハードウェアなどを制御する各種ドライバ処理シーケンスを記述したスクリプトを実行するスクリプト実行部101、スクリプトを保存するスクリプト保存部102、符号化された音声データを復号化するための音声復号化処理部103、符号化された映像データを復号化するための映像復号化処理部104、音声や映像などのデータを受信処理するためのデータ受信処理部105、タイマを用いて同期信号を生成するための同期信号生成部106、ユーザがリモコンなどを用いて設定した選局情報を受信するための選局情報受信部107、特定のバスに接続されたデバイスを制御するためのバス制御ドライバ108を含む。なお、バスとはコンピュータ内部でデータをやり取りするための伝送路のことであるが、周辺機器によっては特定のバスに接続することを前提に入出力インタフェースが定義されているものがあり、図7においては、音声複合化デバイス56、映像複合化デバイス57及びチューナ54が、この特定のバスに接続されることを前提として設計されているものと仮定している。
例えば、スクリプトが逐次解釈される形(テキストファイル形式や、中間コード形式等)でスクリプト保存部102に保存されている場合は、スクリプト実行部101はスクリプトを逐次解釈しながら実行を行なう。スクリプトがドライバ処理部に読み込まれる際に実行形式に変換されてスクリプト保存部102に保存されている場合は、スクリプト実行部101は実行形式に変換されたスクリプトをそのまま実行できる。後者はスクリプトを読み込む際に実行形式に変換する時間を要するが、その後のドライバ処理は高速に実行できるというメリットがある。音声復号化処理部103、映像復号化処理部104、データ受信処理部105、同期信号生成部106、選局情報受信部107、バス制御ドライバ108は、スクリプト実行部101からの指示に従って周辺機器を制御するためのより詳細な処理を行う機能配分とすることが可能である。なお、音声復号化処理部103、映像復号化処理部104、データ受信処理部105、同期信号生成部106、選局情報受信部107、バス制御ドライバ108のそれぞれに、スクリプト実行部101及びスクリプト保存部102の両方または一方の機能を持たせる構成も可能である。
放送受像機に接続される周辺機器は、復号化された音声信号出力を行うスピーカ51、復号化された映像信号出力を行うモニタ52、OSなどのシステムで同期を取るためのタイマ53、放送波の受信を行うためのチューナ54、リモコンからの送信信号の受信を行うリモコン受信部55、音声データの復号化を行なう音声復号化デバイス56、映像データの復号化を行なう映像復号化デバイス57を含む。これらの周辺機器は放送受像機の筐体に内蔵されるか、あるいは放送受像機とは別個の筐体とされ放送受像機とケーブル又は無線で接続される。
次に、図8を参照して、図7のソフトウェアスタック構成におけるスクリプト処理の流れについて説明する。一例として、放送受像機を起動するスイッチがオンにされるとアプリケーションプログラム200が放送受像機に内蔵されたコンピュータのユーザ空間2に読み込まれ、図8のフローチャートに示す処理が開始される。まず、ユーザ空間2のアプリケーションプログラム200はドライバ処理シーケンスが記述されたドライバ処理スクリプト202をカーネル空間1のドライバ処理部100に送信する(ステップS11)。ドライバ処理部100は送信されたドライバ処理スクリプト202を受信し、スクリプト保存部102に保存する(ステップS12)。ここで、受信したドライバ処理スクリプト202を一括して実行形式に変換し、実行形式でスクリプト保存部102に保存してもよい。実行形式で保存される場合は、呼び出されたときに所定の処理を実行する機能モジュールと考えることができる。そして、ドライバ処理部100はアプリケーションプログラム200又はカーネルからの呼び出しに応じて各スクリプトを実行する(ステップS13)。なお、スクリプトの送信及び受信とは、それぞれ、上述したスクリプトの指定及び読み込みに対応する。
図9は、図7の放送受像機におけるチューナ54に関連する処理(復号化処理を含む)の流れを表すフローチャートである。一例として、放送受像機を起動するスイッチがオンにされると、アプリケーションプログラム200が放送受像機に内蔵されたコンピュータのユーザ空間2に読み込まれ、図8を参照して説明したようにドライバ処理スクリプト202がドライバ処理部100に送信される。そして、アプリケーションプログラム200はドライバ処理部100に対して、データ出力経路初期設定(ステップS21)、チューナ初期化処理(ステップS22)、チューナ選局処理(ステップS23)を行うための関数呼び出しを行う。図9のフローチャートには示されていないが、ステップS21〜ステップS23のそれぞれにおける関数呼び出しに対して、ドライバ処理部100では対応する周辺機器制御が行われる。例えば、データ出力経路初期設定は、スクリプト実行部101からの指示に従って音声復号化処理部103、映像復号化処理部104において出力先の周辺機器を設定する処理が行われ、チューナ初期化処理及びチューナ選局処理は、スクリプト実行部101からの指示に従ってデータ受信処理部105においてチューナ54に対する初期化及び選局を行う。
次に、ドライバ処理部100のデータ受信処理部105はチューナ54からデータを取得する(ステップS24)。データ受信処理部105は取得したデータを音声復号化処理部103及び映像復号化処理部104へ出力する。映像復号化処理部104は、タイマ53から入力されるタイミング信号を用いて同期信号生成部106によって生成された同期信号に応じて、ドライバ処理スクリプト202に記述された処理シーケンスによるアルゴリズムと映像復号化デバイス57を用いて映像信号を復号化する(ステップS25)。復号化されたデータはモニタ52へ送信される(ステップS26)。そして、ステップS24に戻り、処理を繰り返す。
図10は、図7の放送受像機における復号化処理の流れを表わすフローチャートである。これは、図9のフローチャートにおけるステップS24〜S26を詳細化したものである。
チューナ54が放送波を受信すると、チューナ54はデータ受信処理部105に割込み信号を出力する(ステップS31)。データ受信処理部105は割込み信号に応答し、チューナ54からデータを取得する(ステップS32)。データ受信処理部105は取得したデータを音声復号化処理部103及び映像復号化処理部104へ出力する。音声復号化処理部103、映像復号化処理部104は、ドライバ処理スクリプト202に記述された処理シーケンスによるアルゴリズムと音声復号化デバイス56、映像復号化デバイス57を用いてそれぞれ音声信号、映像信号を復号化する(ステップS33)。なお、上述したように、映像復号化処理部104の処理は、タイマ53から入力されるタイミング信号を用いて同期信号生成部106によって生成された同期信号に応じて行われる。復号化された音声信号、映像信号はそれぞれスピーカ51、モニタ52へ送信される(ステップS34)。そして、ステップS31に戻り、処理を繰り返す。
図11は、図7の放送受像機におけるバス制御ドライバの処理を示したものである。バス制御ドライバはバスに接続されたデバイス間のデータ入出力を制御するためのドライバである。
一例としてカーネルがドライバ処理部100に対して関数呼び出しを行うことにより、ドライバ初期化処理(ステップS41)、データ格納領域設定及びバススピード設定(ステップS42)が行われる。これらの初期化処理または設定処理は、スクリプト実行部101からの指示に従って上記のバス制御ドライバにおいて行われる。
そして、一例として周辺機器からデータの読み出し又は書き込み処理のための割込み信号が検出されると割込み処理が開始される(ステップS43)。このとき1バイト単位で割込みが発生してバスへのデータの読み出し又は書き込みの処理が行われ(ステップS44)、例えば、周辺機器から送信された所定のバイト数のデータの読み出し又は周辺機器への所定のバイト数のデータの書き込みが行われた後、割込み処理が終了する(ステップS45)。一例として放送受像機の電源がオフされる前にバス制御ドライバの終了処理が行われる(ステップS46)。
なお、上記の説明中の「コンピュータ読み取り可能な記録媒体」とは、ROM、不揮発性メモリの他に、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のシステムやクライアントとなるコンピュータ内部の揮発性メモリ(RAM)のように、一定時間プログラムを保存しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
以上のように、本発明の実施形態について説明を行ったが、今回開示した実施形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等な範囲内での全ての変更が含まれる。
周辺機器が接続されたコンピュータのソフトウェアの全体構成図である。 スクリプト処理の概念図である。 データ書込み処理の概念図である。 データ読込み処理の概念図である。 本発明のソフトウェアスタック構成を表わす図である。 従来のソフトウェアスタック構成を表わす図である。 本発明の一実施形態による周辺機器が接続された放送受像機のソフトウェアスタック構成を表わす図である。 図5のソフトウェアスタック構成におけるスクリプト処理の流れを表わすフローチャートである。 図7の放送受像機におけるチューナに関連する処理の流れを表わすフローチャートである。 図7の放送受像機における復号化処理の流れを表わすフローチャートである。 図7の放送受像機におけるバス制御ドライバの処理の流れを表わすフローチャートである。
符号の説明
1・・・カーネル空間、2・・・ユーザ空間、10・・・デバイス1処理部、11、21、31・・・スクリプト、20・・・デバイス2処理部、30・・・デバイスn処理部、41、42、43・・・デバイス、51・・・スピーカ、52・・・モニタ、53・・・タイマ、54・・・チューナ、55・・・リモコン受信部、56・・・音声復号化デバイス、57・・・映像復号化デバイス、100・・・ドライバ処理部、101・・・スクリプト実行部、102・・・スクリプト保存部、103・・・音声復号化処理部、104・・・映像復号化処理部、105・・・データ受信処理部、106・・・同期信号生成部、107・・・選局情報受信部、108・・・バス制御ドライバ、200・・・アプリケーションプログラム、201・・・スクリプト保存部、202・・・ドライバ処理スクリプト

Claims (2)

  1. オペレーティングシステムによって記憶領域が、オペレーティングシステム自体が置かれるカーネル空間とユーザ空間とに分けて管理され、前記カーネル空間にデバイス制御プログラムが読み込まれ、前記ユーザ空間にアプリケーションプログラムが読み込まれるコンピュータを具備するデバイス制御装置において、
    周辺機器を制御するアルゴリズムが記述されスクリプトが前記記憶領域のシーケンス書換が容易な前記ユーザ空間に記憶されており、
    前記記憶領域の前記カーネル空間に前記スクリプトを保存するスクリプト保存領域を備え、
    前記デバイス制御プログラムは、ユーザ空間に記憶されている前記スクリプトを、カーネル空間にある前記スクリプト保存領域に、前記アプリケーションプログラムの実行時に読み込み、該読み込んだスクリプトを逐次解釈して前記カーネル空間で実行することにより周辺機器を制御する処理を前記コンピュータに実行させることを特徴とするデバイス制御装置。
  2. 記憶領域が、オペレーティングシステムが置かれるカーネル空間とアプリケーションプログラムが読み込まれるユーザ空間とに分かれているコンピュータのデバイス制御プログラムであって、
    前記カーネル空間にデバイスドライバを読み込むステップと、
    シーケンス書換が容易な前記ユーザ空間に記憶されており周辺機器を制御するアルゴリズムが記述されスクリプトを前記カーネル空間にあるスクリプト保存領域に、前記アプリケーションプログラムの実行時に読み込むステップと、
    前記デバイスドライバが、前記スクリプト保存領域から前記スクリプトを読み込み、該読み込んだスクリプトを逐次解釈して前記カーネル空間上で実行することにより周辺機器を制御するステップと、
    の処理を前記コンピュータに実行させることを特徴とするデバイス制御プログラム。
JP2006089866A 2006-03-29 2006-03-29 デバイス制御装置及びデバイス制御プログラム Expired - Fee Related JP4727478B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006089866A JP4727478B2 (ja) 2006-03-29 2006-03-29 デバイス制御装置及びデバイス制御プログラム
PCT/JP2007/056454 WO2007119527A1 (ja) 2006-03-29 2007-03-27 記憶装置、デバイス制御装置、デバイス制御プログラム、放送受像機及びデバイス制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006089866A JP4727478B2 (ja) 2006-03-29 2006-03-29 デバイス制御装置及びデバイス制御プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2007204371A Division JP4571171B2 (ja) 2007-08-06 2007-08-06 受像機

Publications (2)

Publication Number Publication Date
JP2007265064A JP2007265064A (ja) 2007-10-11
JP4727478B2 true JP4727478B2 (ja) 2011-07-20

Family

ID=38609306

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006089866A Expired - Fee Related JP4727478B2 (ja) 2006-03-29 2006-03-29 デバイス制御装置及びデバイス制御プログラム

Country Status (2)

Country Link
JP (1) JP4727478B2 (ja)
WO (1) WO2007119527A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5549363B2 (ja) 2010-05-10 2014-07-16 株式会社リコー 情報処理装置、印刷制御プログラム、記録媒体、画像形成装置、及び印刷システム
WO2016043040A1 (ja) * 2014-09-19 2016-03-24 株式会社aLab デバイスドライバ登録装置とこれを用いたデバイスドライバの登録方法
CN106922189B (zh) * 2014-09-19 2020-02-21 株式会社艾拉博 设备代理装置及其控制方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004086280A (ja) * 2002-08-23 2004-03-18 Mitsubishi Electric Corp 情報処理装置、外部デバイスおよびドライバインストールプログラム
JP4284499B2 (ja) * 2003-03-07 2009-06-24 ソニー株式会社 デバイス管理方法およびデバイス管理システム

Also Published As

Publication number Publication date
WO2007119527A1 (ja) 2007-10-25
JP2007265064A (ja) 2007-10-11

Similar Documents

Publication Publication Date Title
CN105677335B (zh) 提高移动终端首次开机速度的方法及装置
US6954806B2 (en) Data transfer apparatus and method
EP2568408A1 (en) Information processing device, information processing method, and program distribution system
CN105468410B (zh) 系统升级方法及装置
JP4727478B2 (ja) デバイス制御装置及びデバイス制御プログラム
KR100725386B1 (ko) 가상 머신 어플리케이션을 실행하는 방법 및 그 방법을이용한 디지털 방송 수신기
NO319201B1 (no) Fremgangsmate ved kommunisering av data via en anordningsdriver og tilsvarende anordningsdriver
CN112579038A (zh) 一种内置录音方法、装置、电子设备和存储介质
WO2012034323A1 (zh) 使用数据卡与无线网络通信的方法、系统及数据卡
CN112035273A (zh) 一种硬件数据获取方法、系统和计算机设备
JP2013246817A (ja) 同期サーバ側スクリプティングを用いた遠隔カードコンテンツ管理
JPWO2004034698A1 (ja) 情報処理装置
EP2487586A1 (en) Method and system for terminal device installation
CN114296646A (zh) 基于io业务的缓存方法、装置、服务器和存储介质
JP4571171B2 (ja) 受像機
CN108595192A (zh) 一种应用程序的安装方法及终端设备
TWI235921B (en) System and method for effectively performing physical direct memory access operations
JP4303884B2 (ja) モデム制御
WO2017047476A1 (en) Information processing apparatus, control method therefor, and program
CN112612531A (zh) 应用程序启动方法、装置、电子设备及存储介质
KR20110072023A (ko) 휴대 단말기의 프로세서 간 데이터 통신 방법 및 장치
KR100658918B1 (ko) 블록 단위 입출력 명령어를 이용한 시스템 전역 변수초기화 장치 및 그 방법
JP2010092240A (ja) 情報処理装置およびデバイス認識方法
US20040216140A1 (en) Method and system for accessing system operations through an interface layer
JP7315750B2 (ja) サーバシステム、クライアント装置及びプログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070806

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080617

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080815

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080821

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20090612

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110310

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110413

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140422

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees