JP2005332009A - Information processing apparatus and method, recording medium, and program - Google Patents
Information processing apparatus and method, recording medium, and program Download PDFInfo
- Publication number
- JP2005332009A JP2005332009A JP2004147245A JP2004147245A JP2005332009A JP 2005332009 A JP2005332009 A JP 2005332009A JP 2004147245 A JP2004147245 A JP 2004147245A JP 2004147245 A JP2004147245 A JP 2004147245A JP 2005332009 A JP2005332009 A JP 2005332009A
- Authority
- JP
- Japan
- Prior art keywords
- program
- processor
- information processing
- sub
- 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.)
- Withdrawn
Links
Images
Abstract
Description
本発明は、情報処理装置および方法、記録媒体、並びにプログラムに関し、特に、サブプロセッサの負荷を軽減することができるようにした情報処理装置および方法、記録媒体、並びにプログラムに関する。 The present invention relates to an information processing apparatus and method, a recording medium, and a program, and more particularly, to an information processing apparatus and method, a recording medium, and a program that can reduce a load on a sub processor.
従来のコンピュータでは、メインプロセッサの負荷が大きくなる場合が多いため、負荷分散の方法として、サブプロセッサに必要な処理の一部を並列で行わせ、メインプロセッサの負荷を軽減するようにしていた。 In a conventional computer, the load on the main processor often increases. Therefore, as a load distribution method, a part of processing necessary for the sub processors is performed in parallel to reduce the load on the main processor.
そして、昨今、複数のプロセッサまたはコンピュータを用いて、処理を分散して実行させる、分散処理システムが注目されている(特許文献1乃至5参照)。分散処理を実行させる方法としては、ネットワークを介して接続される複数のコンピュータに処理を実行させる方法、1つのコンピュータに設けられた、複数のプロセッサに処理を実行させる方法、および上述した2つの方法を組み合わせて処理を実行させる方法がある。
Recently, a distributed processing system that uses a plurality of processors or computers to execute processing in a distributed manner has attracted attention (see
しかしながら、この分散処理システムにおいては、ハードウェアで実現していたことを、サブプロセッサにソフトウェアで実現させているため、メインプロセッサよりもサブプロセッサの負荷の方が大きくなってしまう。したがって、メインプロセッサの負荷をサブプロセッサに分散させる従来の方法では、サブプロセッサの負荷を軽減することが困難である課題があった。 However, in this distributed processing system, what is realized by hardware is realized by software in the sub processor, so that the load of the sub processor becomes larger than that of the main processor. Therefore, the conventional method for distributing the load of the main processor to the sub processors has a problem that it is difficult to reduce the load of the sub processors.
すなわち、この分散処理システムにおいて、例えば、複数のサブプロセッサがすべて実行中、または予約中であった場合、すぐに実行したい処理を実行させることができないなど、サブプロセッサに負荷がかかり、システムのスループットが低下してしまう課題があった。 That is, in this distributed processing system, for example, when all of the sub processors are being executed or reserved, the sub processor is overloaded and the throughput of the system cannot be executed. There was a problem that would decrease.
本発明は、このような状況に鑑みてなされたものであり、サブプロセッサにおけるデータ処理の負荷分散を図ることができるようにするものである。 The present invention has been made in view of such a situation, and makes it possible to achieve load distribution of data processing in a sub processor.
本発明の情報処理装置は、第1のプログラムに基づいてデータ処理を実行する、少なくとも1の第1の処理手段と、装置全体を管理する処理を実行する第2の処理手段と、第1の処理手段において、第1のプログラムの実行に必要な計算資源が空いているか否かを判定する資源判定手段と、資源判定手段により第1の処理手段において、第1のプログラムの実行に必要な計算資源が空いていないと判定された場合、第2の処理手段を、第1のプログラムと等価な結果が得られる第2のプログラムも実行するように制御する処理制御手段とを備えることを特徴とする。 An information processing apparatus according to the present invention includes at least one first processing means for executing data processing based on a first program, second processing means for executing processing for managing the entire apparatus, In the processing means, a resource determination means for determining whether or not a calculation resource necessary for the execution of the first program is available, and a calculation required for the execution of the first program in the first processing means by the resource determination means. And a process control means for controlling the second processing means to execute a second program that obtains a result equivalent to the first program when it is determined that the resources are not free. To do.
データ処理は、映像データまたは音声データの処理であるようにすることができる。 The data processing can be processing of video data or audio data.
処理制御手段は、資源判定手段により第1の処理手段において、第1のプログラムの実行に必要な計算資源が空いていると判定された場合、第1のプログラムを実行するように、第1の処理手段を制御するようにすることができる。 The processing control unit is configured to execute the first program so that the resource determining unit executes the first program when the first processing unit determines that the calculation resource necessary for executing the first program is free. The processing means can be controlled.
本発明の情報処理方法は、第1のプログラムに基づいてデータ処理を実行する、少なくとも1の第1の処理手段において、第1のプログラムの実行に必要な計算資源が空いているか否かを判定する資源判定ステップと、資源判定ステップの処理により第1の処理手段において、第1のプログラムの実行に必要な計算資源が空いていないと判定された場合、装置全体を管理する処理を実行する第2の処理手段を、第1のプログラムと等価な結果が得られる第2のプログラムも実行するように制御する処理制御ステップとを含むことを特徴とする。 According to the information processing method of the present invention, in at least one first processing means that executes data processing based on a first program, it is determined whether or not a calculation resource necessary for executing the first program is free. When the first processing means determines that the calculation resources necessary for executing the first program are not available in the resource determination step and the resource determination step, a process for managing the entire apparatus is executed. And a processing control step of controlling the second processing means so as to execute a second program that obtains a result equivalent to the first program.
本発明のプログラムが記録されている記録媒体は、第1のプログラムに基づいてデータ処理を実行する、少なくとも1の第1の処理手段において、第1のプログラムの実行に必要な計算資源が空いているか否かを判定する資源判定ステップと、資源判定ステップの処理により第1の処理手段において、第1のプログラムの実行に必要な計算資源が空いていないと判定された場合、装置全体を管理する処理を実行する第2の処理手段を、第1のプログラムと等価な結果が得られる第2のプログラムも実行するように制御する処理制御ステップとを含むことを特徴とする。 In the recording medium on which the program of the present invention is recorded, at least one first processing means that executes data processing based on the first program has free computing resources necessary for executing the first program. When the first processing means determines that there are no calculation resources necessary for executing the first program by the resource determination step for determining whether or not there is a resource determination step, the entire apparatus is managed. And a processing control step of controlling the second processing means for executing the processing so that the second program that obtains a result equivalent to the first program is also executed.
本発明のプログラムは、第1のプログラムに基づいてデータ処理を実行する、少なくとも1の第1の処理手段において、第1のプログラムの実行に必要な計算資源が空いているか否かを判定する資源判定ステップと、資源判定ステップの処理により第1の処理手段において、第1のプログラムの実行に必要な計算資源が空いていないと判定された場合、装置全体を管理する処理を実行する第2の処理手段を、第1のプログラムと等価な結果が得られる第2のプログラムも実行するように制御する処理制御ステップとを含むことを特徴とする。 The program according to the present invention is a resource for determining whether or not a calculation resource necessary for execution of the first program is available in at least one first processing unit that executes data processing based on the first program. When the first processing means determines in the determination step and the resource determination step that the calculation resources necessary for executing the first program are not available, a process for managing the entire apparatus is executed. And a processing control step of controlling the processing means so as to execute a second program that obtains a result equivalent to the first program.
本発明においては、第1のプログラムに基づいてデータ処理を実行する、少なくとも1の第1の処理手段において、第1のプログラムの実行に必要な計算資源が空いているか否かが判定され、第1の処理手段において、第1のプログラムの実行に必要な計算資源が空いていないと判定された場合、装置全体を管理する処理を実行する第2の処理手段が、第1のプログラムと等価な結果が得られる第2のプログラムも実行するように制御される。 In the present invention, in at least one first processing means for executing data processing based on the first program, it is determined whether or not calculation resources necessary for executing the first program are free, In the first processing means, when it is determined that the calculation resources necessary for executing the first program are not available, the second processing means for executing processing for managing the entire apparatus is equivalent to the first program. The second program that obtains the result is also controlled to be executed.
本発明によれば、データ処理の負荷分散を図ることができる。また、本発明によれば、予約待ちによるスループットを向上させることができる。 According to the present invention, load distribution of data processing can be achieved. Further, according to the present invention, it is possible to improve throughput due to reservation waiting.
以下に本発明の最良の形態を説明するが、開示される発明と実施の形態との対応関係を例示すると、次のようになる。本明細書中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。 BEST MODE FOR CARRYING OUT THE INVENTION The best mode of the present invention will be described below. The correspondence relationship between the disclosed invention and the embodiments is exemplified as follows. Although there are embodiments which are described in this specification but are not described here as corresponding to the invention, the embodiments correspond to the invention. It does not mean that it is not a thing. Conversely, even if an embodiment is described herein as corresponding to an invention, that means that the embodiment does not correspond to an invention other than the invention. Absent.
さらに、この記載は、明細書に記載されている発明の全てを意味するものではない。換言すれば、この記載は、明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現し、追加される発明の存在を否定するものではない。 Further, this description does not mean all the inventions described in the specification. In other words, this description is for the invention described in the specification and not claimed in this application, i.e., for the invention that will be applied for in the future or that will appear as a result of amendment and added. It does not deny existence.
請求項1に記載の情報処理装置(例えば、図1の情報処理装置1−1)は、第1のプログラム(例えば、図6の音声符号化モジュール151)に基づいてデータ処理を実行する、少なくとも1の第1の処理手段(例えば、図1のサブプロセッサ32−1)と、装置全体を管理する処理を実行する第2の処理手段(例えば、図1のメインプロセッサ31)と、第1の処理手段において、第1のプログラムの実行に必要な計算資源が空いているか否かを判定する資源判定手段(例えば、図6のOS111)と、資源判定手段により第1の処理手段において、第1のプログラムの実行に必要な計算資源が空いていないと判定された場合、第2の処理手段を、第1のプログラムと等価な結果が得られる第2のプログラム(例えば、図6の音声符号化ライブラリ関数152)も実行するように制御する処理制御手段(例えば、図6の音声記録プログラム123)とを備えることを特徴とする。
The information processing apparatus according to claim 1 (for example, the information processing apparatus 1-1 of FIG. 1) executes data processing based on a first program (for example, the
請求項4に記載の情報処理方法は、第1のプログラム(例えば、図6の音声符号化モジュール151)に基づいてデータ処理を実行する、少なくとも1の第1の処理手段(例えば、図1のサブプロセッサ32−1)において、第1のプログラムの実行に必要な計算資源が空いているか否かを判定する資源判定ステップ(例えば、図9のステップS32)と、資源判定ステップの処理により第1の処理手段において、第1のプログラムの実行に必要な計算資源が空いていないと判定された場合、装置全体を管理する処理を実行する第2の処理手段(例えば、図1のメインプロセッサ31)を、第1のプログラムと等価な結果が得られる第2のプログラム(例えば、図6の音声記録プログラム123)も実行するように制御する処理制御ステップ(例えば、図9のステップS39)とを含むことを特徴とする。
The information processing method according to claim 4 includes at least one first processing unit (for example, FIG. 1) that performs data processing based on a first program (for example, the
なお、請求項5に記載の記録媒体、および請求項6に記載のプログラムは、上述した請求項4に記載の情報処理方法と基本的に同様の構成であるため、繰り返しになるのでその説明は省略する。 Note that the recording medium according to claim 5 and the program according to claim 6 have basically the same configuration as the information processing method according to claim 4 described above, and are therefore repeated. Omitted.
以下、図を参照して本発明の実施の形態について説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
本発明は、例えば、ライブ映像ストリーミング配信システム、またはテレビなどのリアルタイムにストリーミングデータを伝送する通信システムに適用できる。 The present invention can be applied to, for example, a live video streaming distribution system or a communication system that transmits streaming data in real time such as a television.
図1は、本発明を適用した通信システムの一実施の形態を示す図である。この通信システムにおいては、セルネットワークなどのネットワーク2を介して、情報処理装置1−1、情報処理装置1−2、および情報処理装置1−3が相互に接続されている。そして、1つのネットワーク2においては、1つの情報処理装置(例えば、情報処理装置1−1)がマスター装置として動作し、他の情報処理装置(例えば、情報処理装置1−2および情報処理装置1−3)がスレーブ装置として動作する。
FIG. 1 is a diagram showing an embodiment of a communication system to which the present invention is applied. In this communication system, an information processing device 1-1, an information processing device 1-2, and an information processing device 1-3 are connected to each other via a
情報処理装置1−1乃至1−3は、例えば、ポータブルCD(Compact Disk)プレイヤ、ハードディスクレコーダ、またはカムコーダなどのAV(Audio Visual)機器、パーソナルコンピュータ、もしくはPDA(Personal Digital Assistant)などにより構成される。 The information processing apparatuses 1-1 to 1-3 are configured by, for example, AV (Audio Visual) equipment such as a portable CD (Compact Disk) player, a hard disk recorder, or a camcorder, a personal computer, or a PDA (Personal Digital Assistant). The
情報処理装置1−1は、分散処理の実行を指示されると、要求された処理を実行するために必要なデータおよびプログラムを含むソフトウェアセルを生成し、生成したソフトウェアセルを、ネットワーク2を介して、情報処理装置1−2、および情報処理装置1−3宛てに送信する。
When the information processing apparatus 1-1 is instructed to execute the distributed processing, the information processing device 1-1 generates a software cell including data and a program necessary for executing the requested processing, and the generated software cell is transmitted via the
情報処理装置1−2および情報処理装置1−3は、それぞれ、情報処理装置1−1から送信されてきたソフトウェアセルを受信し、受信したソフトウェアセルを基に、要求された処理を実行する。情報処理装置1−2および情報処理装置1−3は、それぞれ、要求された処理を実行してから、要求された処理の結果得られたデータを、ネットワーク2を介して情報処理装置1−1宛てに送信する。
Each of the information processing device 1-2 and the information processing device 1-3 receives the software cell transmitted from the information processing device 1-1, and executes the requested process based on the received software cell. Each of the information processing apparatus 1-2 and the information processing apparatus 1-3 executes the requested process, and then transmits the data obtained as a result of the requested process via the
情報処理装置1−1は、情報処理装置1−2または情報処理装置1−3から送信されてきたデータを受信し、受信したデータを基に、所定の処理を実行するか、受信したデータを記録する。 The information processing device 1-1 receives the data transmitted from the information processing device 1-2 or the information processing device 1-3, and executes predetermined processing based on the received data or receives the received data. Record.
情報処理装置1−1は、情報処理コントローラ11、メインメモリ12、記録部13−1、記録部13−2、バス14、操作入力部15、入力部16、出力部17、通信部18、ドライブ19により構成される。
The information processing apparatus 1-1 includes an
情報処理コントローラ11は、メインメモリ12に記録されている各種のプログラムを実行し、情報処理装置1−1全体を制御する。情報処理コントローラ11は、ソフトウェアセルを生成し、生成したソフトウェアセルを、バス14を介して、通信部18に供給する。情報処理コントローラ11は、通信部18から供給されたデータを記録部13−1または13−2に供給する。情報処理コントローラ11は、操作入力部15からの指示信号に基づいて、指定されたデータを、メインメモリ12、記録部13−1または13−2から取得し、取得したデータをバス14を介して出力部17に供給する。
The
また、情報処理コントローラ11には、情報処理装置1−1を、ネットワーク2全体を通して一意的に特定できる装置IDが割り当てられている。
The
情報処理コントローラ11は、メインプロセッサ31、サブプロセッサ32−1乃至サブプロセッサ32−3、DMAC(Direct Memory Access Controller)33、DC(Disk Controller)34、キー管理テーブル記憶部35、およびバス36により密結合に構成される。
The
メインプロセッサ31、サブプロセッサ32−1乃至サブプロセッサ32−3、DMAC33、DC34、およびキー管理テーブル記憶部35は、バス36を介して、相互に接続されている。また、メインプロセッサ31には、メインプロセッサ31を特定するためのメインプロセッサIDが識別子として割り当てられる。同様に、サブプロセッサ32−1乃至サブプロセッサ32−3のそれぞれには、サブプロセッサ32−1乃至サブプロセッサ32−3のそれぞれを特定するためのサブプロセッサIDのそれぞれが識別子として割り当てられる。
The
メインプロセッサ31は、サブプロセッサ32−1乃至サブプロセッサ32−3によるプログラムの実行のスケジュール管理および情報処理コントローラ11(情報処理装置1−1)の全体の管理を行う。メインプロセッサ31は、RAM(Random Access Memory)などで構成されるローカルストレージ41を備える。
The
メインプロセッサ31は、DC34を制御し、記録部13−1または13−2に記録されているデータおよびプログラムを読み出させ、DMAC33を制御し、メインメモリ12にロードさせて、一時的に記憶させる。メインプロセッサ31は、メインメモリ12からデータおよびプログラムを読み込み、読み込んだデータおよびプログラムをもとに、情報処理装置1の各種の処理を実行する。なお、情報処理装置1−1がスレーブ装置であった場合のメインプロセッサ31は、記録部13−1または13−2に記録されているデータおよびプログラムだけでなく、マスター装置である他の情報処理装置から受信されたセルに含まれるプログラムやデータもメインメモリ12にロードする。
The
メインプロセッサ31は、ネットワーク2を介して接続されている、情報処理装置1−2または情報処理装置1−3に分散処理を実行させる場合、操作入力部15を介して要求された処理を実行するために必要なデータおよびプログラムを含むソフトウェアセルを生成し、生成したソフトウェアセルをバス36およびバス14を介して、通信部18に供給する。また、メインプロセッサ31は、情報処理装置1−1内において、処理を実行させる場合、例えば、サブプロセッサ32−1乃至サブプロセッサ32−3がそれぞれ他のプログラムを実行しており、要求された処理に対応するプログラムを実行させることができないとき、代わりに、管理のためのプログラム以外のプログラムも実行する。この場合、メインプロセッサ31は、サブプロセッサと同様に機能する。
When the
サブプロセッサ32−1乃至サブプロセッサ32−3は、メインプロセッサ31の制御の下、並列的かつ独立に、プログラムを実行し、データを処理する。なお、必要に応じて、メインプロセッサ31が実行するプログラムは、サブプロセッサ32−1乃至サブプロセッサ32−3のそれぞれが実行するプログラムのそれぞれと連携して動作するように構成することも可能である。
The sub processors 32-1 to 32-3 execute programs and process data in parallel and independently under the control of the
サブプロセッサ32−1乃至サブプロセッサ32−3のそれぞれは、ローカルストレージ42−1乃至ローカルストレージ42−3のそれぞれを備える。サブプロセッサ32−1乃至サブプロセッサ32−3のそれぞれは、ローカルストレージ42−1乃至ローカルストレージ42−3のそれぞれに、必要に応じて、データおよびプログラムを一時的に記憶させる。サブプロセッサ32−1乃至サブプロセッサ32−3のそれぞれは、ローカルストレージ42−1乃至ローカルストレージ42−3のそれぞれからデータおよびプログラムを読み込み、読み込んだデータおよびプログラムをもとに、各種の処理を実行する。 Each of the sub-processors 32-1 to 32-3 includes local storage 42-1 to local storage 42-3. Each of the sub-processors 32-1 to 32-3 temporarily stores data and programs in the local storage 42-1 to local storage 42-3 as necessary. Each of the sub processors 32-1 to 32-3 reads data and programs from the local storage 42-1 to local storage 42-3, and executes various processes based on the read data and programs. To do.
以下、サブプロセッサ32−1乃至サブプロセッサ32−3のそれぞれを個々に区別する必要のないとき、単にサブプロセッサ32と称する。同様に、以下、ローカルストレージ42−1乃至ローカルストレージ42−3のそれぞれを個々に区別する必要のないとき、単にローカルストレージ42と称する。なお、情報処理装置1においては、3つのサブプロセッサ32により構成されているが、接続される数は任意である。
Hereinafter, when it is not necessary to individually distinguish each of the sub processors 32-1 to 32-3, they are simply referred to as
DMAC33は、キー管理テーブル記憶部35に記録されている、メインプロセッサキー、サブプロセッサキー、およびアクセスキーをもとに、メインプロセッサ31およびサブプロセッサ32からのメインメモリ12に記憶されているプログラムおよびデータへのアクセスを管理する。DC34は、メインプロセッサ31およびサブプロセッサ32からの記録部13−1および13−2などへのアクセスを行う。
The
キー管理テーブル記憶部35は、メインプロセッサキー、サブプロセッサキー、およびアクセスキーを記録している。なお、メインプロセッサキー、サブプロセッサキー、およびアクセスキーの詳細は後述する。
The key management
メインメモリ12は、例えば、DRAM(Dynamic Random Access Memory)などにより構成される。メインメモリ12は、メインプロセッサ31およびサブプロセッサ32が実行する各種のプログラムおよびデータを一時的に記憶する。
The
記録部13−1および13−2は、それぞれ、例えば、ハードディスクなどにより構成される。記録部13−1および記録部13−2は、メインプロセッサ31およびサブプロセッサ32が実行する各種のプログラムおよびデータを記録している。また、記録部13−1および記録部13−2は、情報処理コントローラ11から供給されたデータを記録する。以下、記録部13−1および13−2を個々に区別する必要のないとき、単に記録部13と称する。
The recording units 13-1 and 13-2 are each configured with, for example, a hard disk. The recording unit 13-1 and the recording unit 13-2 record various programs and data executed by the
なお、記録部13は、固定ディスクやリムーバブルディスクなどのハードディスクだけでなく、例えば、Blu-ray Disc、CD−RW(Compact Disk ReWritable)、DVD±RW(Digital Versatile Disk ReWritable)などの光ディスク、磁気ディスク(フレキシブルディスクを含む)、を含む)、光磁気ディスク(MD(Mini-Disk)(商標)を含む)、もしくは半導体メモリなどにより構成されるようにしてもよい。 The recording unit 13 is not only a hard disk such as a fixed disk or a removable disk, but also an optical disk such as a Blu-ray Disc, a CD-RW (Compact Disk ReWritable), a DVD ± RW (Digital Versatile Disk ReWritable), or a magnetic disk. (Including a flexible disk), a magneto-optical disk (including MD (Mini-Disk) (trademark)), or a semiconductor memory.
また、情報処理コントローラ11には、バス14を介して、操作入力部15、入力部16、出力部17、通信部18、ドライブ19が接続されている。操作入力部15は、キーボード、マウスなどからなり、ユーザの操作に応じた指示信号を、情報処理コントローラ11に供給する。入力部16は、音声を集音し、音声データとして、情報処理コントローラ11に供給するマイクロフォンや、被写体を撮像し、撮像により得られた映像に対応する映像データを情報処理コントローラ11に供給する撮像部などにより構成される。出力部17は、例えば、ディスプレイ、スピーカ、およびランプなどよりなり、情報処理コントローラ11から供給されたデータを出力する。
An
通信部18は、情報処理コントローラ11から供給されたソフトウェアセルを、ネットワーク2を介して情報処理装置1−2または情報処理装置1−3宛てに送信する。また、通信部18は、情報処理装置1−2または情報処理装置1−3から送信されてきたデータを、バス14を介して、情報処理コントローラ11に供給する。
The communication unit 18 transmits the software cell supplied from the
ドライブ19は、磁気ディスク51、光ディスク52、光磁気ディスク53、あるいは半導体メモリ54などが装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて、バス14を介して、情報処理コントローラ11に転送され、情報処理コントローラ11によって、記録部13に記録される。
When the
なお、情報処理装置1−2または情報処理装置1−3は、情報処理装置1−1と同様に構成されるので、その説明は省略するが、情報処理装置1−2または情報処理装置1−3は上述した構成に限らず、必要に応じて、機能を追加したり削除したりすることは可能であり、その機能に対応した構成をもつことが可能である。以下、情報処理装置1−1、情報処理装置1−2および情報処理装置1−3を個々に区別する必要のないとき、単に、情報処理装置1と称する。
Note that the information processing device 1-2 or the information processing device 1-3 is configured in the same manner as the information processing device 1-1, and thus the description thereof is omitted, but the information processing device 1-2 or the information processing device 1- 3 is not limited to the configuration described above, and functions can be added or deleted as necessary, and a configuration corresponding to the function can be provided. Hereinafter, when there is no need to distinguish the information processing apparatus 1-1, the information processing apparatus 1-2, and the information processing apparatus 1-3, they are simply referred to as the
また、図1の例においては、情報処理装置1が3台ネットワーク2に説明したが、接続される台数は任意である。
In the example of FIG. 1, the
次に、図2乃至図4を参照して、サブプロセッサ32がメインメモリ12にアクセスする場合の処理について説明する。
Next, processing when the
図2で示されるように、メインメモリ12には、複数のアドレスを指定できるメモリロケーションが配置される。各メモリロケーションに対しては、データの状態を示す情報を格納するための追加セグメントが割り振られる。追加セグメントは、F/Eビット、サブプロセッサIDおよびLSアドレス(ローカルストレージアドレス)を含む。また、各メモリロケーションには、後述するアクセスキーが割り振られる。
As shown in FIG. 2, the
“0”であるF/Eビットは、サブプロセッサ32によって読み出されている処理中のデータ、または空き状態であるため最新データではない無効データであり、そのメモリロケーションから読み出し不可であることを示す。また、“0”であるF/Eビットは、そのメモリロケーションにデータ書き込み可能であることを示し、データが書き込まれると、F/Eビットは“1”に設定される。
The F / E bit that is “0” indicates that the data being processed being read by the
“1”であるF/Eビットは、そのメモリロケーションのデータがサブプロセッサ32によって読み出されておらず、未処理の最新データであることを示す。F/Eビットが“1”であるメモリロケーションのデータは読み出し可能であり、サブプロセッサ32によって読み出されてから、F/Eビットは“0”に設定される。また、“1”であるF/Eビットは、メモリロケーションがデータ書き込み不可であることを示す。
The F / E bit that is “1” indicates that the data at the memory location has not been read by the sub-processor 32 and is the latest unprocessed data. The data in the memory location whose F / E bit is “1” can be read, and after being read by the
さらに、F/Eビットが“0”(読み出し不可/書き込み可)である状態において、メモリロケーションについて読み出し予約を設定することが可能である。F/Eビットが“0”であるメモリロケーションに対して読み出し予約を行う場合には、サブプロセッサ32は、読み出し予約を行うメモリロケーションの追加セグメントに、読み出し予約情報としてサブプロセッサ32のサブプロセッサIDおよびLSアドレスを書き込む。そして、データを書き込むサブプロセッサ32によって、読み出し予約されたメモリロケーションにデータが書き込まれ、F/Eビットが“1”(読み出し可/書き込み不可)に設定されたとき、あらかじめ読み出し予約情報として追加セグメントに書き込まれているサブプロセッサIDおよびLSアドレスによって特定されるローカルストレージ42に読み出される。
Further, it is possible to set a read reservation for the memory location in a state where the F / E bit is “0” (reading impossible / writing possible). When a read reservation is made for a memory location whose F / E bit is “0”, the
複数のサブプロセッサ32によってデータを多段階に処理する必要がある場合、このように各メモリロケーションのデータの読み出しおよび書き込みを制御することによって、前段階の処理を行うサブプロセッサ32が、処理済みのデータをメインメモリ12における所定のアドレスに書き込んだ後に即座に、後段階の処理を行う別のサブプロセッサ32が前処理後のデータを読み出すことが可能となる。
When it is necessary to process data in multiple stages by a plurality of
また、図2で示されるように、サブプロセッサ32のローカルストレージ42は、複数のアドレスを指定できるメモリロケーションによって構成される。各メモリロケーションに対しては、同様に追加セグメントが割り振られる。追加セグメントは、ビジービットを含む。 Further, as shown in FIG. 2, the local storage 42 of the sub-processor 32 is configured by memory locations that can specify a plurality of addresses. An additional segment is similarly allocated for each memory location. The additional segment includes a busy bit.
サブプロセッサ32がメインメモリ12に記憶されているデータをサブプロセッサ32のローカルストレージ42のメモリロケーションに読み出すときには、対応するビジービットを“1”に設定して予約する。ビジービットが“1”であるメモリロケーションには、他のデータを格納することができない。ローカルストレージ42のメモリロケーションにデータが読み出されると、ビジービットは“0”に設定され、他のデータを格納することができるようになる。
When the
さらに、図2で示すように情報処理コントローラ11に接続されているメインメモリ12には、複数のサンドボックスが含まれる。サンドボックスは、メインメモリ12内の領域を画定するものであり、各サンドボックスは、各サブプロセッサ32に割り当てられ、割り当てられたサブプロセッサ32が排他的に使用することができる。すなわち、サブプロセッサ32は、割り当てられたサンドボックスを使用できるが、この領域を超えてデータにアクセスすることはできない。
Furthermore, as shown in FIG. 2, the
メインメモリ12は、複数のメモリロケーションから構成されるが、サンドボックスは、これらのメモリロケーションの集合である。
The
さらに、メインメモリ12の排他的な制御を実現するために、図2で示されるキー管理テーブルが用いられる。キー管理テーブルは、キー管理テーブル記憶部35に記録され、DMAC33と関連付けられる。キー管理テーブル内の各エントリには、サブプロセッサID、サブプロセッサキーおよびキーマスクが含まれる。
Furthermore, in order to realize exclusive control of the
サブプロセッサ32がメインメモリ12にアクセスする場合、サブプロセッサ32はDMAC33に、読み出しまたは書き込みのコマンドを出力する。このコマンドには、サブプロセッサ32を特定するサブプロセッサIDおよびアクセス要求先であるメインメモリ12のアドレスが含まれる。
When the
DMAC33は、サブプロセッサ32から供給されたコマンドを実行する場合、キー管理テーブルを参照して、アクセス要求元のサブプロセッサ32のサブプロセッサキーを調べる。そして、DMAC33は、調べたアクセス要求元のサブプロセッサキーと、アクセス要求先であるメインメモリ12のメモリロケーションに割り振られたアクセスキーとを比較して、2つのキーが一致した場合にのみ、サブプロセッサ32から供給されたコマンドを実行する。
When executing the command supplied from the
図4は、キー管理テーブルを説明する図である。キー管理テーブルに記録されているキーマスクは、その任意のビットが“1”になることによって、そのキーマスクと関連付けられたサブプロセッサキーの対応するビットを“0”または“1”にすることができる。 FIG. 4 is a diagram illustrating the key management table. The key mask recorded in the key management table sets the corresponding bit of the sub processor key associated with the key mask to “0” or “1” by setting any bit to “1”. Can do.
例えば、サブプロセッサキーが“1010”であるとする。通常、このサブプロセッサキーによって“1010”のアクセスキーを持つサンドボックスへのアクセスだけが可能になる。しかし、このサブプロセッサキーと関連付けられたキーマスクが“0001”に設定されている場合には、キーマスクのビットが“1”に設定された桁のみにつき、サブプロセッサキーとアクセスキーとの一致判定がマスクされ(キーマスクのビットが“1”に設定された桁について、判定されず)、このサブプロセッサキー“1010”によってアクセスキーが“1010”または“1011”のいずれかであるアクセスキーを持つサンドボックスへのアクセスが可能となる。 For example, assume that the sub-processor key is “1010”. Normally, this sub-processor key only allows access to a sandbox with an access key of “1010”. However, if the key mask associated with this sub-processor key is set to “0001”, the sub-processor key matches the access key only for the digits whose key mask bit is set to “1”. Access key whose judgment key is masked (no judgment is made for the digit whose key mask bit is set to “1”) and whose access key is either “1010” or “1011” by this sub-processor key “1010” Access to a sandbox with is possible.
以上のようにして、メインメモリ12のサンドボックスの排他性が実現される。すなわち、複数のサブプロセッサ32によってデータを多段階に処理する必要がある場合、以上のように構成することによって、前段階の処理を行うサブプロセッサ32と、後段階の処理を行うサブプロセッサ32のみが、メインメモリ12の所定のアドレスにアクセスできるようになり、データを保護することができる。
As described above, the sandbox exclusivity of the
例えば、キーマスクの値は、以下のように変更されることが考えられる。まず、情報処理装置1の起動直後においては、キーマスクの値は全て“0”である。メインプロセッサ31にロードされたプログラムが実行され、サブプロセッサ32にロードされたプログラムと連携動作するものとする。サブプロセッサ32−1により出力された処理結果データを、メインメモリ12に記憶させ、メインメモリ12に記憶させた処理結果データを、サブプロセッサ32−2に入力したいときには、サブプロセッサ32−1により出力された処理結果データを記憶しているメインメモリ12の領域は、サブプロセッサ32−1およびサブプロセッサ32−2からアクセス可能である必要がある。そのような場合に、メインプロセッサ31は、キーマスクの値を適切に変更し、複数のサブプロセッサ32からアクセスできるメインメモリの領域を設けることにより、サブプロセッサ32による多段階的の処理を可能にする。
For example, the value of the key mask can be changed as follows. First, immediately after the
より具体的には、例えば、情報処理装置1−2または情報処理装置1−3から送信されてきた、データを基に、サブプロセッサ32−1が所定の処理実行し、処理が施されたデータをメインメモリ12の第1の領域に記憶させる。そして、サブプロセッサ32−2は、メインメモリ12の第1の領域から、記憶されているデータを読み出し、読み出したデータを基に、所定の処理を実行し、処理が施されたデータをメインメモリ12の第1の領域とは、異なる第2の領域に記憶させる。
More specifically, for example, data that has been subjected to predetermined processing by the sub-processor 32-1 based on data transmitted from the information processing device 1-2 or the information processing device 1-3, and processed. Are stored in the first area of the
ここで、サブプロセッサ32−1のサブプロセッサキーが“0100”であり、メインメモリ12の第1の領域のアクセスキーが“0100”であり、サブプロセッサ32−2のサブプロセッサキーが“0101”であり、メインメモリ12の第2の領域のアクセスキーが“0101”である場合、サブプロセッサ32−2は、メインメモリ12の第1の領域にアクセスすることができない。そこで、サブプロセッサ32−2のキーマスクを“0001”にすることによって、サブプロセッサ32−2は、メインメモリ12の第1の領域にアクセスすることができるようになる。
Here, the sub processor key of the sub processor 32-1 is “0100”, the access key of the first area of the
なお、図2乃至図4においては、サブプロセッサ32がメインメモリ12にアクセスする場合について説明したが、メインプロセッサ31は、上述したサブプロセッサIDおよびサブプロセッサキーに対応する、メインプロセッサIDおよびメインプロセッサキーを有しており、メインプロセッサ31が、例えば、ローカルストレージ41で処理を行うために、メインメモリ12にアクセスする場合も同様な処理が実行される。
2 to 4, the case where the
図5は、メインメモリ12に記憶されるプログラムの構成を示している。これらのプログラムは、情報処理装置1に電源が投入される前、記録部13などに記憶されている。
FIG. 5 shows the configuration of the program stored in the
各プログラムは、機能または特徴によって、制御プログラム101、機能プログラム102、およびデバイスドライバ103により分けて構成される。 Each program is divided into a control program 101, a function program 102, and a device driver 103 according to functions or features.
制御プログラム101は、メインプロセッサ31により実行されるものであり、情報処理装置1の主電源が投入されている間、常時動作する常駐プログラムである、例えば、OS(オペレーティングシステム)111、MS(マスター/スレーブ)マネージャ112、および能力交換プログラム113などにより構成される。
The control program 101 is executed by the
OS111は、情報処理装置1の基本的な動作を制御するプログラムである。MSマネージャ112は、ネットワーク2に電気的かつ機能的に接続される情報処理装置1−1乃至1−3の中からマスター装置とスレーブ装置を設定するプログラムである。能力交換プログラム113は、ネットワーク2に電気的かつ機能的に接続される情報処理装置1−1乃至1−3の装置情報を取得し、メインメモリ12に記憶される装置情報テーブルに登録するプログラムである。
The
なお、これらの制御プログラム101は、メインプロセッサ31で実行されることに限らず、いずれかのサブプロセッサ32で実行されてもよい。また、これらの制御プログラム101は、情報処理装置1の主電源が投入されている間、常時動作する常駐プログラムであるほうが望ましい。
These control programs 101 are not limited to being executed by the
機能プログラム102は、メインプロセッサ31により、情報処理装置1内の必要な資源(リソース)が制御されて、実行されるものであり、例えば、記録プログラム121、再生プログラム122、および音声記録プログラム123などにより構成される。
The function program 102 is executed by controlling the necessary resources (resources) in the
記録プログラム121は、必要に応じたデバイスドライバ103を制御し、音声や映像データを入力させ、入力されるデータを符号化し、符号化したデータを記録部13に記録させるプログラムである。再生プログラム122は、必要に応じたデバイスドライバ103を制御し、記録部13に記録される映像や音声データを読み出させ、復号、伸張などを行い、出力部17を構成するディスプレイやスピーカに、対応する映像や音声を出力させるプログラムである。音声記録プログラム123は、音声データを入力させ、入力されるデータを符号化し、符号化したデータを記録部13に記録させるプログラムである。
The
なお、機能プログラム102は、各情報処理装置1に応じたもので構成される。すなわち、例えば、情報処理装置1がハードディスクレコーダで構成される場合には、機能プログラムは、映像音声記録プログラム、映像音声再生プログラム、素材検索プログラム、番組予約プログラムなどで構成される。また、例えば、情報処理装置1がPDAで構成される場合には、機能プログラムは、映像音声記録プログラム、映像音声再生プログラム、電話帳プログラム、ワープロプログラム、表計算プログラム、およびWebブラウザプログラムなどで構成される。
The function program 102 is configured according to each
デバイスドライバ103は、情報処理装置1の入出力(送受信)の制御を実行するプログラムであり、操作入力ドライバ131、音声入力ドライバ132、記録制御ドライバ133、および図示せぬネットワークドライバなどにより構成される。操作入力ドライバ131は、操作入力部15の入力に対応した処理を実行するプログラムである。音声入力ドライバ132は、入力部16を構成するマイクロフォンの音声入力を制御するプログラムである。記録制御ドライバ133は、DC34を制御し、記録部13への記録を制御するプログラムである。ネットワークドライバは、通信部18を制御し、ネットワーク2の入出力を実行するプログラムである。
The device driver 103 is a program for executing input / output (transmission / reception) control of the
これらのプログラムは、情報処理装置1の電源投入後に、記録部13から読み出され、メインメモリ12にロードされる。すなわち、ケーブルの差込などによって情報処理装置1が物理的にネットワーク2に接続された状態で、情報処理装置1に主電源が投入され、情報処理装置1が電気的・機能的にもネットワーク2に接続されると、メインプロセッサ31は、制御プログラム101に属する各プログラム、および、デバイスドライバ103に属する各プログラムをメインメモリ12にロードする。
These programs are read from the recording unit 13 and loaded into the
具体的には、メインプロセッサ31は、DC34に読み出し命令を実行させることによって、記録部13からプログラムを読み出し、DMAC33に書き込み命令を実行させることによって、そのプログラムをメインメモリ12に書き込む。
Specifically, the
機能プログラム102に属する各プログラムは、必要なときに必要なプログラムだけがロードされるが、制御プログラム101やデバイスドライバ103に属する各プログラムと同様に、主電源投入直後に各プログラムをロードするように構成してもよい。なお、機能プログラム102に属する各プログラムは、記録部13に記録されていなくても、ネットワーク2を介して接続される他の情報処理装置の記録部13に記録されていれば、ソフトウェアセルに含めることにより、ソフトウェアセルを用いて、ロードすることも可能である。
Each program belonging to the function program 102 is loaded only when necessary, but as with the programs belonging to the control program 101 and device driver 103, each program is loaded immediately after the main power is turned on. It may be configured. Each program belonging to the function program 102 is included in the software cell as long as it is recorded in the recording unit 13 of another information processing apparatus connected via the
また、機能プログラム102に属する各プログラムは、図6に示されるように、所定の処理をサブプロセッサ32に実行させるためのモジュール(例えば、spu_module)と、モジュールにより実行される所定の処理と同等の処理をメインプロセッサ31に実行させるためのライブラリ関数(例えば、pu-xxx())を有している。ライブラリ関数は、サブプロセッサ32においてモジュールにより実行された処理結果と同等の処理結果が得られるように、メインプロセッサ31用に生成されたプログラムである。すなわち、サブプロセッサ32においてモジュールにより実行された処理結果と、メインプロセッサ31においてライブラリ関数により実行された処理結果は、メインメモリ12内の同じアドレスに格納される。
Each program belonging to the function program 102 is equivalent to a module (for example, spu_module) for causing the sub-processor 32 to execute a predetermined process and a predetermined process executed by the module, as shown in FIG. A library function (for example, pu-xxx ()) for causing the
図6は、音声データを記録する情報処理装置1が実行するプログラムを説明する図である。なお、図6の例の場合、情報処理装置1がスタンドアローンで動作する場合を説明する。したがって、この場合、MSマネージャ112、および能力交換プログラム113の説明は省略する。また、図6の例において、図5における場合と対応する部分には対応する符号を付してあり、その説明は繰り返しになるので省略する。
FIG. 6 is a diagram illustrating a program executed by the
メインプロセッサ31は、情報処理装置1に主電源が投入され、DC34に読み出し命令を実行させることによって、記録部13からOS111を読み出し、DMAC33に書き込み命令を実行させることによって、OS111をメインメモリ12に書き込み、OS111を実行する。また、このとき、メインプロセッサ31は、操作入力ドライバ131、音声入力ドライバ132、および記録制御ドライバ133もメインメモリ12にロードし、実行する。
The
例えば、ユーザが操作入力部15を操作するなどして、音声記録プログラム123の起動を要求する。操作入力部15は、バス14を介してメインプロセッサ31に要求信号を供給する。これに対応して、メインプロセッサ31は、記録部13からメインメモリ12に、音声記録プログラム123をロードし、OS111の制御の下で実行する。
For example, the user requests the activation of the
そして、音声記録プログラム123が、例えば、入力部16を構成するマイクロフォンからの音声を記録部13に記録する要求を行うと、OS111は、その要求を処理するために必要な資源の獲得を行う。
Then, when the
すなわち、OS111は、音声記録プログラム123からの資源獲得の要求に応じて、音声符号化処理を実行することが可能なサブプロセッサ32の資源があるか否かを判定し、音声符号化処理を実行することが可能なサブプロセッサ32の資源がある場合には、そのサブプロセッサ32の資源を獲得し、ロックするとともに、その判定結果を音声記録プログラム123に供給する。また、OS111は、音声記録プログラム123による符号化処理が終了すると、獲得したサブプロセッサ32の資源を開放する。
That is, the
OS111は、音声符号化処理を実行することが可能なサブプロセッサ32の資源がないと判定した場合、その判定結果を音声記録プログラム123に供給する。なお、このとき、OS111は、例えば、サブプロセッサ32が他の処理を実行しているか否か、またはサブプロセッサ32に他の処理が予約されているか否かなどに基づいて、音声符号化処理を実行することが可能なサブプロセッサ32の資源があるか否かを判定する。
When the
また、OS111は、音声記録プログラム123からの要求に応じて、操作入力ドライバ131、音声入力ドライバ132、および記録制御ドライバ133を制御し、音声記録プログラム123からの要求を処理させる。
Further, the
音声記録プログラム123は、音声データの符号化処理をサブプロセッサ32に実行させるための音声符号化モジュール151、音声データの符号化処理をメインプロセッサ31に実行させるための音声符号化ライブラリ関数152を有している。音声符号化ライブラリ関数152は、サブプロセッサ32において音声符号化モジュール151により実行される音声データの符号化処理の結果と同等の処理結果がメインプロセッサ31においても得られるように、音声符号化モジュール151に合わせて生成されたプログラムである。
The
音声記録プログラム123は、OS111がサブプロセッサ32の資源を獲得した場合、音声符号化モジュール151をサブプロセッサ32のローカルストレージ42にロードし、音声符号化モジュール151を、キックコマンドおよびプログラムカウンタを用いて実行させる。キックコマンドは、プログラムの実行を開始するコマンドであり、プログラムカウンタは、プログラム実行用プログラムカウンタのためのアドレスを与えるものである。
When the
一方、音声記録プログラム123は、OS111がサブプロセッサ32の資源を獲得できなかった場合、音声符号化ライブラリ関数152をメインプロセッサ31のメインメモリ12にロードし、音声符号化ライブラリ関数152を実行する。なお、この場合、音声符号化ライブラリ関数152を、メインメモリ12ではなく、メインプロセッサ31のローカルストレージ41にロードし、実行させるようにしてもよい。
On the other hand, the
音声記録プログラム123は、音声符号化モジュール151または音声符号化ライブラリ関数152から、実行完了の通知があると、記録制御ドライバ133を制御し、メインメモリ12の所定領域に格納された、符号化処理結果である符号化データを読み出させ、読み出させた符号化データを、記録部13に記録させる。
The
サブプロセッサ32において、音声符号化モジュール151が実行された場合、音声符号化モジュール151は、音声データの符号化処理を実行し、実行結果を、DMAC33を介して、メインメモリ12の所定領域に格納し、その後、実行を完了したことを音声記録プログラム123に通知する。メインプロセッサ31において、音声符号化ライブラリ関数152が実行された場合、音声符号化ライブラリ関数152は、音声データの符号化処理を実行し、実行結果(符号化されたデータ)を、DMAC33を介して、メインメモリ12の所定領域に格納し、その後、実行を完了したことを音声記録プログラム123に通知する。
When the
操作入力ドライバ131は、操作入力部15の入力に対応した信号を、OS111に供給する。音声入力ドライバ132は、音声記録プログラム123からの要求に対応するOS111の制御の下、入力部16を構成するマイクロフォンの音声入力を制御し、入力された音声データをメインメモリ12の所定領域に記録する。記録制御ドライバ133は、音声記録プログラム123からの要求に対応するOS111の制御の下、符号化されたデータを、DC34を制御し、記録部13に記録させる。
The
図7は、プログラムに含まれるモジュールとライブラリ関数の他の例を示している。 FIG. 7 shows another example of modules and library functions included in the program.
図7の例の場合、記録プログラム121は、図6を参照して上述した音声記録プログラム123と同様の音声データの符号化処理をサブプロセッサ32に実行させるための音声符号化モジュール151、音声データの符号化処理をメインプロセッサ31に実行させるための音声符号化ライブラリ関数152、映像データの符号化処理をサブプロセッサ32に実行させるための映像符号化モジュール161−1乃至161−3、および、映像データの符号化処理をメインプロセッサ31に実行させるための映像符号化ライブラリ関数162−1乃至162−3などを有している。なお、図7の例においては図示していないが、実際には、他のモジュールやライブラリ関数なども有している。
In the case of the example in FIG. 7, the
映像符号化ライブラリ関数162−1乃至162−3は、サブプロセッサ32において映像符号化モジュール161−1乃至161−3によりそれぞれ実行される映像データの符号化処理の結果と同等の処理結果がメインプロセッサ31においても得られるように、映像符号化モジュール161−1乃至161−3に合わせてそれぞれ生成されたプログラムである。 The video encoding library functions 162-1 to 162-3 have processing results equivalent to the results of the video data encoding processing executed by the video encoding modules 161-1 to 161-3 in the sub-processor 32, respectively. As shown in FIG. 31, the programs are generated in accordance with the video encoding modules 161-1 to 161-3.
ここで、サブプロセッサ32のローカルストレージ42は、メインプロセッサ31がモジュールを実行するメインメモリ12の容量よりかなり小さく構成されている。このため、メインプロセッサ31のモジュールは、サブプロセッサ32のローカルストレージ42の容量に合わせた実行単位で生成されるため、映像符号化処理のように、処理数の多い処理のモジュールの場合には、複数のモジュールに分けて構成される。
Here, the local storage 42 of the
したがって、サブプロセッサ32の資源が獲得された場合、記録プログラム121は、映像符号化モジュール161−1をサブプロセッサ32のローカルストレージ42にロードし、映像符号化モジュール161−1を、キックコマンドおよびプログラムカウンタを用いて実行させる。サブプロセッサ32において、映像符号化モジュール161−1が実行された場合、映像符号化モジュール161−1は、映像データの符号化処理を実行し、実行結果を、DMAC33を介して、メインメモリ12の所定領域に格納し、その後、実行を完了したことを記録プログラム121に通知する。
Therefore, when the resource of the
これに対応して、記録プログラム121は、映像符号化モジュール161−2をサブプロセッサ32のローカルストレージ42にロードし、映像符号化モジュール161−2を、キックコマンドおよびプログラムカウンタを用いて実行させる。以降、説明は省略するが、映像符号化モジュール161−3についても、同様に実行される。
In response to this, the
一方、サブプロセッサ32の資源が獲得されなかった場合、記録プログラム121は、映像符号化ライブラリ関数162−1をメインプロセッサ31のメインメモリ12にロードし、映像符号化ライブラリ関数162−1を実行する。メインプロセッサ31において、映像符号化ライブラリ関数162−1が実行された場合、映像符号化ライブラリ関数162−1は、映像データの符号化処理を実行し、実行結果を、DMAC33を介して、メインメモリ12の所定領域に格納し、その後、実行を完了したことを記録プログラム121に通知する。
On the other hand, when the resource of the sub-processor 32 is not acquired, the
これに対応して、記録プログラム121は、映像符号化ライブラリ関数162−2をメインプロセッサ31のメインメモリ12にロードし、映像符号化ライブラリ関数162−2を実行する。以降、説明は省略するが、映像符号化ライブラリ関数162−3についても、同様に実行される。
In response to this, the
以上のように、1つの処理が複数のモジュールまたはライブラリで構成される場合には、すべてのモジュールまたはライブラリが一通り終了するまでの処理が繰り返し続けられる。 As described above, when one process is composed of a plurality of modules or libraries, the processes until all the modules or libraries are completed are repeated.
なお、図7の例においては、映像符号化モジュールおよび映像符号化ライブラリ関数が3つにより構成される場合を説明したが、モジュールおよびライブラリ関数の個数は、3つに限定されず、実際には、さらに多くのモジュールおよびライブラリ関数により構成される。 In the example of FIG. 7, the case where the video encoding module and the video encoding library function are configured by three has been described. However, the number of modules and library functions is not limited to three, and actually It consists of more modules and library functions.
また、映像符号化モジュール161−1および映像符号化モジュール161−2が並列処理可能な場合には、サブプロセッサ23の資源が利用できれば、1つの映像符号化モジュール161の処理を待たなくても、2つ平行して実行されるようにしてもよい。 Further, when the video encoding module 161-1 and the video encoding module 161-2 can be processed in parallel, if the resources of the sub-processor 23 can be used, the processing of one video encoding module 161 can be waited for. Two may be executed in parallel.
次に、図8のフローチャートを参照して、情報処理装置1の音声データの記録処理を説明する。例えば、ユーザが操作入力部15を操作するなどして、音声記録プログラム123の起動を要求すると、メインプロセッサ31は、記録部13からメインメモリ12に、音声記録プログラム123をロードし、OS111の制御の下で実行する。
Next, the audio data recording process of the
音声記録プログラム123は、ステップS11において、音声入力ドライバ132を制御し、入力部16を構成するマイクロフォンから音声を入力させ、ステップS12に進む。すなわち、ステップS11において、音声入力ドライバ132は、音声記録プログラム123からの要求に対応するOS111の制御の下、入力部16を構成するマイクロフォンの音声入力を制御し、音声データを入力し、DMAC33を制御し、メインメモリ12の第1の所定領域に記録する。
In step S11, the
音声記録プログラム123は、ステップS12において、音声データの符号化処理を実行し、ステップS13に進む。この音声データの符号化処理は、図9のフローチャートを参照して詳しく後述するが、ステップS12の処理において、サブプロセッサ32またはメインプロセッサ31により音声データが符号化され、符号化されたデータがメインメモリ12の第2の所定領域に格納される。
In step S12, the
音声記録プログラム123は、ステップS13において、記録制御ドライバ133を制御し、符号化されたデータを記録部13に記録させ、ステップS14に進む。すなわち、ステップS13において、記録制御ドライバ133は、DMAC33を制御し、第2の所定領域から符号化されたデータを読み出し、DC34を制御し、記録部13に記録させる。
In step S13, the
例えば、ユーザは、操作入力部15を操作して、音声データの記録終了を要求する。これに対応して、音声記録プログラム123は、ステップS14において、操作入力部15を介して、ユーザの記録終了要求を入力したか否かを判定し、操作入力部15を介して、ユーザの記録終了要求を入力したと判定した場合、音声データの記録処理を終了する。音声記録プログラム123は、ステップS14において、ユーザの記録終了要求をまだ入力していないと判定した場合、ステップS11に戻り、それ以降の処理を繰り返す。
For example, the user operates the
次に、図9のフローチャートを参照して、図8のステップS12の音声データの符号化処理を詳しく説明する。 Next, the audio data encoding process in step S12 of FIG. 8 will be described in detail with reference to the flowchart of FIG.
音声記録プログラム123は、ステップS31において、入力部16を構成するマイクロフォンからの音声データを符号化するため、サブプロセッサの資源をOS111に要求し、ステップS32に進む。
In step S31, the
OS111は、ステップS32において、音声記録プログラム123からの資源獲得の要求に応じて、音声符号化処理を実行することが可能なサブプロセッサ32の資源があるか否かを判定し、音声符号化処理を実行することが可能なサブプロセッサ32の資源がある場合には、そのサブプロセッサ32の資源を獲得し、ロックするとともに、その判定結果を音声記録プログラム123に供給し、ステップS33に進む。
In step S <b> 32, the
音声記録プログラム123は、OS111からの資源があるという判定結果に応じて、ステップS33において、OS111により資源が獲得されたサブプロセッサ32に音声符号化モジュール151をロードし、ステップS34に進む。すなわち、音声記録プログラム123は、DMAC33を制御し、メインメモリ12から音声符号化モジュール151を読み出させ、サブプロセッサ32のローカルストレージ42に、読み出させた音声符号化モジュール151を書き込ませる。
The
音声記録プログラム123は、ステップS34において、サブプロセッサ32に、キックコマンドおよびプログラムカウンタを出力し、音声符号化モジュール151を実行させ、ステップS35に進む。
In step S34, the
これにより、サブプロセッサ32において音声符号化モジュール151が実行される。すなわち、音声符号化モジュール151は、DMAC33を制御し、メインメモリ12の第1の所定領域にある音声データを読み出させ、読み出された音声データに所定の符号化処理を実行する。そして、音声符号化モジュール151は、DMAC33を制御し、符号化されたデータを、メインメモリ12の第2の所定領域に格納させ、実行を完了したことを音声記録プログラム123に通知する。
Thereby, the
ステップS35において、音声記録プログラム123は、メインプロセッサ31における自スレッドの実行優先度を退避し、実行優先順位を最高に設定し、ステップS36において、サブプロセッサ32からの実行完了通知があるまで待機している。すなわち、メインプロセッサ31において、音声記録プログラム123が実行優先順位を最高にして、待ち状態に入るため、メインプロセッサ31は、実行可能状態にあった別のスレッドに、実行権をプリエンプトし、実行状態にさせる。これにより、メインプロセッサ31においては、別のスレッドの実行が開始される。
In step S35, the
サブプロセッサ32からの実行完了が音声記録プログラム123に通知されると、音声記録プログラム123は、ステップS36において、サブプロセッサ32からの実行完了通知があったと判定し、実行可能状態になり、ステップS37に進む。すなわち、音声記録プログラム123は、実行優先順位が最高であるため、すぐに実行状態となり、ステップS36において、自スレッドの実行優先度を、ステップS35において退避しておいたものに戻し、ステップS38に進む。これにより、メインメモリ12の第2の所定領域に格納された符号化データの利用が可能になる。
When the
音声記録プログラム123は、符号化処理が完了すると、OS111に、サブプロセッサ32の資源の開放を要求するので、ステップS38において、OS111は、サブプロセッサ32の資源を開放し、符号化処理を終了し、図8のステップS12に戻り、ステップS13に進む。
When the encoding process is completed, the
一方、例えば、すべてのサブプロセッサ32が他の処理を実行していたり、他の処理が予約されている場合、OS111は、ステップS32において、音声符号化処理を実行することが可能なサブプロセッサ32の資源がないと判定し、その判定結果を音声記録プログラム123に供給し、ステップS39に進む。
On the other hand, for example, when all the sub-processors 32 are executing other processes or other processes are reserved, the
音声記録プログラム123は、ステップS39において、メインメモリ12の音声符号化ライブラリ関数152をロードし、ステップS40において、ロードした音声符号化ライブラリ関数152を実行させる。すなわち、音声記録プログラム123は、DMAC33を制御し、メインメモリ12の音声符号化モジュール151を読み出させ、実行する。
The
これにより、メインプロセッサ31において、音声符号化ライブラリ関数152が実行される。すなわち、音声符号化ライブラリ関数152は、DMAC33を制御し、メインメモリ12の第1の所定領域にある音声データを読み出させ、読み出された音声データに所定の符号化処理を実行する。そして、音声符号化ライブラリ関数152は、DMAC33を制御し、符号化されたデータを、メインメモリ12の第2の所定領域に格納させ、実行を完了したことを音声記録プログラム123に通知し、符号化処理を終了し、図8のステップS12に戻り、ステップS13に進む。
As a result, the speech encoding library function 152 is executed in the
以上により、メインメモリ12の第2の所定領域に格納された符号化データの利用が可能になる。すなわち、ステップS40の処理の結果、ステップS34の音声符号化モジュール151と同様の結果が得られる。
As described above, the encoded data stored in the second predetermined area of the
なお、図8の例においては、説明の便宜上、1の符号化処理が終了した場合にサブプロセッサ32の資源を開放するように説明したが、実際には、音声データの記録処理が終了するまで(すなわち、入力される音声データのすべての符号化処理が終了するまで)、サブプロセッサ32の資源は、ロックされ開放されない。
In the example of FIG. 8, for convenience of explanation, it has been described that the resource of the sub-processor 32 is released when one encoding process is completed, but actually, until the recording process of the audio data is completed. The resource of the
以上のように、サブプロセッサ32が実行するモジュールだけでなく、モジュールの実行単位で、サブプロセッサ32と同じ結果が得られるライブラリ関数を生成しておき、サブプロセッサ32の資源が獲得できない場合に、そのライブラリ関数を、情報処理装置1の管理などを実行するメインプロセッサ31で実行させるようにしたので、サブプロセッサ32の資源が空いていなくても、ユーザの要求に応じて、優先させたい処理などをすぐに実行することができる。
As described above, not only the module executed by the sub-processor 32 but also a library function that produces the same result as the sub-processor 32 is generated in the module execution unit, and the resource of the sub-processor 32 cannot be acquired. Since the library function is executed by the
したがって、メインプロセッサとサブプロセッサを臨機応変に用いることが可能になり、情報処理装置1全体のスループットの改善やパフォーマンスの向上を実現することができる。
Therefore, the main processor and sub-processor can be used in a flexible manner, and the throughput and performance of the
なお、上記説明においては、音声データの記録処理を用いて説明したが、もちろん、これに限ったことではない。また、上記説明においては、情報処理装置がスタンドアローンで動作する場合の処理を説明したが、ソフトウェアセルにもサブプロセッサ32が実行するモジュールだけでなく、そのモジュールの実行単位で、サブプロセッサ32と同じ結果が得られるライブラリ関数を含むようにしておくことにより、ネットワークを介して、他の情報処理装置1にも、上述した処理を実行させることが可能であるし、逆に、他の情報処理装置1から送信されてきたソフトウェアセルに応じて、上述した処理を実行することも可能である。
In the above description, the audio data recording process has been described. However, the present invention is not limited to this. In the above description, the processing when the information processing apparatus operates stand-alone has been described. However, not only the module executed by the sub-processor 32 but also the sub-processor 32 in the execution unit of the module in the software cell. By including a library function that can obtain the same result, it is possible to cause the other
以上により、情報処理装置1全体は、もちろんのこと、通信システム全体のスループットの改善やパフォーマンスの向上を実現することができる。
As described above, the entire
また、上記説明においては、サブプロセッサ32の資源の有無により、メインプロセッサ31での実行を可能にする場合を説明したが、サブプロセッサ32の資源の有無に拘らず、メインプロセッサ31での実行を最優先するようにしてもよい。
Further, in the above description, the case where execution by the
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム格納媒体からインストールされる。 The series of processes described above can be executed by hardware, but can also be executed by software. When a series of processing is executed by software, a program constituting the software may execute various functions by installing a computer incorporated in dedicated hardware or various programs. For example, it is installed from a program storage medium in a general-purpose personal computer or the like.
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム格納媒体は、図1に示されるように、磁気ディスク51(フレキシブルディスクを含む)、光ディスク52(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク53(MD(Mini-Disc)(商標)を含む)、もしくは半導体メモリ54などのリムーバブル記録媒体、または、プログラムが一時的もしくは永続的に格納される記録部13−1または13−2などにより構成される。すなわち、このようなリムーバブル記録媒体は、いわゆるパッケージソフトウェアとして提供することができる。
As shown in FIG. 1, a program storage medium for storing a program installed in a computer and executable by the computer includes a magnetic disk 51 (including a flexible disk), an optical disk 52 (CD-ROM (Compact Disc -Read Only Memory), DVD (Digital Versatile Disc) included), magneto-optical disk 53 (including MD (Mini-Disc) (trademark)), or removable recording medium such as
また、プログラムは、上述したようなリムーバブル記録媒体から情報処理装置1にインストールされる他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、情報処理装置1に無線で転送したり、 LAN(Local Area Network)、インターネットといったネットワークを介して、情報処理装置1に有線で転送し、情報処理装置1においては、そのようにして転送されてくるプログラムを、通信部18で受信し、内蔵する記録部13−1または13−2にインストールすることができる。
In addition to being installed in the
なお、本明細書において、フローチャートに示されるステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。 In the present specification, the steps shown in the flowcharts include not only processes performed in time series according to the described order, but also processes executed in parallel or individually even if not necessarily performed in time series. Is included.
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。 In the present specification, the term “system” represents the entire apparatus constituted by a plurality of apparatuses.
1−1乃至1−3 情報処理装置,2 ネットワーク,11 情報処理コントローラ,12 メインメモリ,13−1および13−2 記録部,15 操作入力部,16 入力部,18 通信部,31 メインプロセッサ,32−1乃至32−3 サブプロセッサ,33 DMAC,34 DC,35 キー管理テーブル記憶部,41,42−1乃至42−3 ローカルストレージ,101 制御プログラム,102 機能プログラム,103 デバイスドライバ,111 OS,123 音声記録プログラム,131 操作入力ドライバ,132 音声入力ドライバ,133 記録制御ドライバ,151 音声符号化モジュール,162 音声符号化ライブラリ関数 1-1 to 1-3 Information processing device, 2 network, 11 information processing controller, 12 main memory, 13-1 and 13-2 recording unit, 15 operation input unit, 16 input unit, 18 communication unit, 31 main processor, 32-1 to 32-3 Sub-processor, 33 DMAC, 34 DC, 35 Key management table storage unit, 41, 42-1 to 42-3 Local storage, 101 Control program, 102 Function program, 103 Device driver, 111 OS, 123 voice recording program, 131 operation input driver, 132 voice input driver, 133 recording control driver, 151 voice coding module, 162 voice coding library function
Claims (6)
第1のプログラムに基づいて前記データ処理を実行する、少なくとも1の第1の処理手段と、
装置全体を管理する処理を実行する第2の処理手段と、
前記第1の処理手段において、前記第1のプログラムの実行に必要な計算資源が空いているか否かを判定する資源判定手段と、
前記資源判定手段により前記第1の処理手段において、前記第1のプログラムの実行に必要な計算資源が空いていないと判定された場合、前記第2の処理手段を、前記第1のプログラムと等価な結果が得られる第2のプログラムも実行するように制御する処理制御手段と
を備えることを特徴とする情報処理装置。 In an information processing apparatus that executes data processing,
At least one first processing means for executing the data processing based on a first program;
Second processing means for executing processing for managing the entire apparatus;
In the first processing means, resource determining means for determining whether or not calculation resources necessary for executing the first program are available;
If the first processing means determines that the calculation resources necessary for executing the first program are not available by the resource determination means, the second processing means is equivalent to the first program. An information processing apparatus comprising: a process control unit that performs control so as to execute a second program that obtains a correct result.
ことを特徴とする請求項1に記載の情報処理装置。 The information processing apparatus according to claim 1, wherein the data processing is processing of video data or audio data.
ことを特徴とする請求項1に記載の情報処理装置。 The processing control unit executes the first program when the resource determining unit determines that the first processing unit has free computing resources necessary for executing the first program. The information processing apparatus according to claim 1, further comprising: controlling the first processing unit.
第1のプログラムに基づいて前記データ処理を実行する、少なくとも1の第1の処理手段において、前記第1のプログラムの実行に必要な計算資源が空いているか否かを判定する資源判定ステップと、
前記資源判定ステップの処理により前記第1の処理手段において、前記第1のプログラムの実行に必要な計算資源が空いていないと判定された場合、装置全体を管理する処理を実行する第2の処理手段を、前記第1のプログラムと等価な結果が得られる第2のプログラムも実行するように制御する処理制御ステップと
を含むことを特徴とする情報処理方法。 In an information processing method of an information processing apparatus that executes data processing,
A resource determination step for determining whether or not a calculation resource necessary for executing the first program is available in at least one first processing unit that executes the data processing based on a first program;
A second process for executing a process for managing the entire apparatus when it is determined in the first process means that the calculation resource necessary for the execution of the first program is not free by the process of the resource determination step. An information processing method comprising: a process control step for controlling the means to execute a second program that obtains a result equivalent to the first program.
第1のプログラムに基づいて前記データ処理を実行する、少なくとも1の第1の処理手段において、前記第1のプログラムの実行に必要な計算資源が空いているか否かを判定する資源判定ステップと、
前記資源判定ステップの処理により前記第1の処理手段において、前記第1のプログラムの実行に必要な計算資源が空いていないと判定された場合、装置全体を管理する処理を実行する第2の処理手段を、前記第1のプログラムと等価な結果が得られる第2のプログラムも実行するように制御する処理制御ステップと
を含むことを特徴とするプログラムが記録されている記録媒体。 A recording medium on which a program for causing a computer to perform data processing is recorded,
A resource determination step for determining whether or not a calculation resource necessary for executing the first program is available in at least one first processing unit that executes the data processing based on a first program;
A second process for executing a process for managing the entire apparatus when it is determined in the first process means that the calculation resource necessary for the execution of the first program is not free by the process of the resource determination step. And a processing control step for controlling the means to execute a second program that obtains a result equivalent to the first program. A recording medium on which the program is recorded.
第1のプログラムに基づいて前記データ処理を実行する、少なくとも1の第1の処理手段において、前記第1のプログラムの実行に必要な計算資源が空いているか否かを判定する資源判定ステップと、
前記資源判定ステップの処理により前記第1の処理手段において、前記第1のプログラムの実行に必要な計算資源が空いていないと判定された場合、装置全体を管理する処理を実行する第2の処理手段を、前記第1のプログラムと等価な結果が得られる第2のプログラムも実行するように制御する処理制御ステップと
を含むことを特徴とするプログラム。 A program that causes a computer to perform data processing,
A resource determination step for determining whether or not a calculation resource necessary for executing the first program is available in at least one first processing unit that executes the data processing based on a first program;
A second process for executing a process for managing the entire apparatus when it is determined in the first process means that the calculation resource necessary for the execution of the first program is not free by the process of the resource determination step. And a processing control step for controlling the means so as to execute a second program that obtains a result equivalent to the first program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004147245A JP2005332009A (en) | 2004-05-18 | 2004-05-18 | Information processing apparatus and method, recording medium, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004147245A JP2005332009A (en) | 2004-05-18 | 2004-05-18 | Information processing apparatus and method, recording medium, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005332009A true JP2005332009A (en) | 2005-12-02 |
Family
ID=35486655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004147245A Withdrawn JP2005332009A (en) | 2004-05-18 | 2004-05-18 | Information processing apparatus and method, recording medium, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005332009A (en) |
-
2004
- 2004-05-18 JP JP2004147245A patent/JP2005332009A/en not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8103771B2 (en) | Distributing processing apparatus, method, and system | |
RU2616545C2 (en) | Working set swap, using sequentially ordered swap file | |
US20050193085A1 (en) | Information processing system, information processing method, and computer program | |
JP2007257566A (en) | Hash value producing program, storage management program and storage system | |
JP2006164216A (en) | Structure of shared partition for operation system and method therefor | |
JP5426576B2 (en) | Data input / output method and apparatus using virtualization technology | |
KR101119870B1 (en) | Information processing system and method | |
JP2006031481A (en) | Information processing system, information processing method, and computer program | |
US7970137B2 (en) | Content reproduction apparatus, content recording apparatus, network system, and content recording/reproduction method | |
KR20070037697A (en) | Data transfer method, data transfer source apparatus, data transfer destination apparatus, storage medium for recording data transfer program and storage medium for recording transferred-data recording program | |
US8413149B2 (en) | Priority based processor reservations | |
JP2005332009A (en) | Information processing apparatus and method, recording medium, and program | |
JP2000341635A (en) | Recording method for hierarchical buffer memory and hierarchical buffer memory structure and data reproduction method and device therefor and video data edition system and computer readable recording medium and system on chip type integrated device | |
JP4295638B2 (en) | Media processing device | |
JP4349189B2 (en) | Network system, program recording reservation method, and information processing apparatus | |
US20110197202A1 (en) | Handling Messages in a Computing Device | |
KR20100050098A (en) | Image processing apparatus and control method thereof | |
JP2005352909A (en) | Information processing device, method therefor, recording medium thereof, and reservation processing program | |
WO2004017200A1 (en) | Information processing method and program and recording medium for implementing the method | |
JP2004102701A (en) | Information processor, information processing method, program, and storage medium | |
JP2005339401A (en) | Information processor and control method thereof, information processing controller, information processing unit and control method thereof, and computer program | |
JP2005235246A (en) | Server apparatus | |
JP2005251163A (en) | Information processing device, information processing method, information processing system and information processing program | |
JP2005301607A (en) | Information processor, information processing system, and information processing method | |
JP4337642B2 (en) | Information processing system, information processing apparatus and method, recording medium, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20070807 |