[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2006344153A - Information processing system - Google Patents

Information processing system Download PDF

Info

Publication number
JP2006344153A
JP2006344153A JP2005171270A JP2005171270A JP2006344153A JP 2006344153 A JP2006344153 A JP 2006344153A JP 2005171270 A JP2005171270 A JP 2005171270A JP 2005171270 A JP2005171270 A JP 2005171270A JP 2006344153 A JP2006344153 A JP 2006344153A
Authority
JP
Japan
Prior art keywords
accelerator
cpu
main cpu
processing
control command
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
Application number
JP2005171270A
Other languages
Japanese (ja)
Inventor
Yoshiaki Hashimoto
良昭 橋本
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2005171270A priority Critical patent/JP2006344153A/en
Publication of JP2006344153A publication Critical patent/JP2006344153A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Advance Control (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide an information processing system that can cause a peripheral device processor to take over part of the work of a host processor. <P>SOLUTION: The information processing system 10 includes a main CPU 20, an accelerator 40, and a peripheral device 60 having a local CPU 30. The main CPU 20 determines whether or not to request the local CPU to control the accelerator, and if determining to make the request to the local CPU 30, instructs the local CPU 30 on control command content to be given to the accelerator 40. The local CPU 30 gives to the accelerator 40 a control command to the accelerator 40 stored in a predetermined memory 50 according to the instruction from the main CPU 20. The accelerator 40 executes processing corresponding to the given control command. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、情報処理システムに関する。   The present invention relates to an information processing system.

メインCPU、アクセラレータ、周辺装置を含む情報処理システムにおいて、メインCPUの業務、周辺装置の業務はシステムを構築した際には決められており、周辺装置用プロセッサがアイドル状態でも、ホストプロセッサの業務を肩代わりすることはない。   In an information processing system that includes a main CPU, an accelerator, and peripheral devices, the operations of the main CPU and peripheral devices are determined when the system is built. There is no replacement.

ここで周辺装置用プロセッサがアイドル状態である場合に、ホストプロセッサの業務の一部を周辺装置用プロセッサに肩代わりさせれば、システム全体の処理能力の向上につなげることができる。   Here, when the peripheral device processor is in an idle state, if a part of the operation of the host processor is taken over by the peripheral device processor, the processing capacity of the entire system can be improved.

しかし周辺装置用プロセッサがホストプロセッサと同等の機能を有しない場合や、アクセラレータに対するインターフェースが異なる場合にはホストプロセッサの業務の一部を周辺装置用プロセッサに肩代わりさせることは困難であるという問題点があった。   However, when the peripheral device processor does not have the same function as the host processor, or when the interface to the accelerator is different, it is difficult to transfer part of the host processor's work to the peripheral device processor. there were.

本発明は以上のような問題点に鑑みてなされたものであり、その目的とするところは、ホストプロセッサの業務の一部を周辺装置用プロセッサに肩代わりさせることが可能な情報処理システムの提供を目的とする。   The present invention has been made in view of the problems as described above, and an object of the present invention is to provide an information processing system capable of taking over a part of the work of a host processor by a processor for a peripheral device. Objective.

(1)本発明は、
メインCPUと所与の機能を提供するアクセラレータとローカルCPUを有する周辺装置を含む情報処理システムであって、
前記メインCPUは、アクセラレータ制御処理手段を含み、
アクセラレータ制御処理手段は、
アクセラレータの制御をローカルCPUに依頼するか否かを判断するための判断手段と、
ローカルCPUに依頼しないと判断した場合には、所与のメモリに格納されているアクセラレータに対する制御コマンドを自らアクセラレータに与え、
ローカルCPUに依頼すると判断した場合には、ローカルCPUに対してアクセラレータに与える制御コマンド内容を指示し、
前記ローカルCPUは、メインCPUからの指示に基づき、所与のメモリに格納されているアクセラレータに対する制御コマンドをアクセラレータに与え、
アクセラレータは、与えれた制御コマンドに対応した処理を実行する(ホストからでも、周辺装置からでも同じインターフェースで動く)制御コマンド実行部を含むことを特徴とする。
(1) The present invention
An information processing system including a peripheral device having a main CPU, an accelerator providing a given function, and a local CPU,
The main CPU includes accelerator control processing means,
Accelerator control processing means
Determining means for determining whether to request the local CPU to control the accelerator;
If it is determined not to request to the local CPU, the control command for the accelerator stored in the given memory is given to the accelerator by itself.
If it is determined to request the local CPU, the control command content to be given to the accelerator is instructed to the local CPU,
The local CPU gives a control command for the accelerator stored in a given memory to the accelerator based on an instruction from the main CPU,
The accelerator includes a control command execution unit that executes processing corresponding to a given control command (moves from the host or the peripheral device through the same interface).

判断手段は、例えばメインCPUが所定の判断アルゴリズムのプログラムを実行することで実現することができる。   The determination means can be realized, for example, by the main CPU executing a program of a predetermined determination algorithm.

所与のメモリには、
ローカルCPUは周辺装置(ペリフェラル)を制御するためのもので、メインCPUと同等の機能を有するものではない。
For a given memory,
The local CPU is for controlling peripheral devices (peripherals) and does not have the same function as the main CPU.

アクセラレータの制御コマンドはAPI(アプリケーションインターフェース)で定義されている。   The accelerator control command is defined by an API (application interface).

アクセラレータの制御コマンド実行部は、API(アプリケーションインターフェース)で定義されたアクセラレータの制御コマンドを受け取るとその制御コマンドを解析して実行するドライバーとして機能する。アクセラレータの制御コマンド実行部は、メインCPUとローカルCPUに対しては同じインターフェースで動作する(すなわちアクセラレータの制御コマンドをメインCPUで発行してもローカルCPUで発行しても同じ処理が行われるように構成されている)。   When receiving an accelerator control command defined by an API (application interface), the accelerator control command execution unit functions as a driver that analyzes and executes the control command. The accelerator control command execution unit operates with the same interface for the main CPU and the local CPU (that is, the same processing is performed regardless of whether the accelerator control command is issued by the main CPU or the local CPU). It is configured).

本発明によればスレーブプロセッサがアイドルな時や、メインCPUの処理が込んでいるときには処理を分散させることができるので、アクセラレータを使用する業務においてシステムの処理速度の向上を図ることができる。   According to the present invention, since the processing can be distributed when the slave processor is idle or when the processing of the main CPU is busy, the processing speed of the system can be improved in the business using the accelerator.

(2)本発明の情報処理システムは、
前記メインCPUおよび前記ローカルCPUからアクセス可能で、アクセラレータに対する制御コマンドが記憶されたメモリを含み、
前記メインCPUは、
ローカルCPUに依頼すると判断した場合には、アクセラレータに与える制御コマンドが格納された前記メモリ上のアドレスをローカルCPUに対して指示し、
前記ローカルCPUは、メインCPUからの指示された前記メモリ上のアドレスから制御コマンドを読み出して、アクセラレータに対する制御コマンドを与えることを特徴とする。
(2) The information processing system of the present invention
A memory that is accessible from the main CPU and the local CPU and that stores a control command for an accelerator;
The main CPU is
If it is determined that the request is made to the local CPU, the address on the memory where the control command to be given to the accelerator is stored is instructed to the local CPU,
The local CPU reads a control command from an address on the memory instructed by a main CPU, and gives a control command to the accelerator.

本発明によれば、メインCPUがローカルCPUに依頼すると判断した場合には、制御コマンドが格納されたアドレスを指示するだけでよいので処理が簡単である。   According to the present invention, when it is determined that the main CPU requests the local CPU, the processing is simple because it is only necessary to indicate the address where the control command is stored.

(3)本発明の情報処理システムは、
前記判断手段は、
メインCPUの処理予定または処理内容に基づき、アクセラレータの制御依頼の可否を判断する手段を含むことを特徴とする。
(3) The information processing system of the present invention
The determination means includes
It includes means for determining whether or not an accelerator control request can be made based on a processing schedule or processing content of the main CPU.

例えばメインCPUの処理予定または処理内容に演算負荷の高い処理がはいっている場合に、ローカルCPUにアクセラレータの制御依頼を行うようにしてもよい。   For example, an accelerator control request may be made to the local CPU when a process with a high calculation load is included in the process schedule or process contents of the main CPU.

(4)本発明の情報処理システムは、
前記判断手段は、
ローカルCPU装置に対してアクセラレータの制御依頼の問い合わせを行い、問い合わせに対する応答結果に基づきアクセラレータの制御依頼の可否を判断する手段を含むことを特徴とする。
(4) The information processing system of the present invention
The determination means includes
It includes means for inquiring an accelerator control request to the local CPU device, and determining whether or not an accelerator control request can be made based on a response result to the inquiry.

(5)本発明の情報処理システムは、
前記判断手段は、
周辺装置の使用状況に基づきアクセラレータの制御依頼の可否を判断する手段を含むことを特徴とする。
(5) The information processing system of the present invention
The determination means includes
It includes means for determining whether or not an accelerator control request can be made based on the usage status of the peripheral device.

周辺装置の使用状況とは、例えばメインCPUが周辺装置を使用しているかどうか等に基づき判断するようにしてもよい。   The usage status of the peripheral device may be determined based on, for example, whether or not the main CPU is using the peripheral device.

またメインCPUが参照可能なエリアに周辺装置の稼動状況または、処理依頼の受付可能か否かを示すレジスタを有し、
ローカルCPUは、自己の稼動状況に基づき前記レジスタを更新し、
前記メインCPUの判断手段は、
前記レジスタに基づき処理依頼の可否を判断するようにしてもよい。
In addition, in the area that can be referred to by the main CPU, there is a register indicating whether the operation status of the peripheral device or the processing request can be accepted,
The local CPU updates the register based on its operating status,
The determination means of the main CPU is:
Whether or not a processing request can be made may be determined based on the register.

例えば周辺装置が処理可能かどうかを示すフラグレジスタを有し、メインCPUはフラグレジスタを参照するような構成でもよい。   For example, it may be configured to have a flag register indicating whether or not the peripheral device can process, and the main CPU refers to the flag register.

(6)本発明の情報処理システムは、
少なくともメインCPUと周辺装置とアクセラレータとメモリに接続された第1のバスと、
少なくとも周辺装置とアクセラレータとメモリに接続された第2のバスを含み、
メインCPUがアクセラレータの制御を行う場合には第1のバスを使用し、
ローカルCPUがアクセラレータの制御を行う場合には第2のバスを使用することを特徴とする。
(6) The information processing system of the present invention
A first bus connected to at least a main CPU, peripheral devices, an accelerator, and a memory;
A second bus connected to at least the peripheral device, the accelerator, and the memory;
When the main CPU controls the accelerator, use the first bus,
The second bus is used when the local CPU controls the accelerator.

このようにするとメインCPUとローカルCPUのバスの使用が競合しないので、スムーズな分散処理を行うことができる。   In this way, the use of the buses of the main CPU and the local CPU does not compete with each other, so that smooth distributed processing can be performed.

1.集積回路装置
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。
1. Integrated Circuit Device Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the drawings.

以下では様々な画像データを管理するサーバーにネットワークで接続しており、画像データからリアルタイムに3D画像を生成しモニターに表示する(第1の機能)システム、画像データから数値情報を検出し、これを元にある計算を行い、計算結果を3D画像にスーパーインポーズすること(第2の機能)が可能なシステム、生成した表示画像データは暗号化してサーバーに格納しておく事(第3の機能)が可能なシステムを例にとり説明する。   In the following, a network is connected to a server that manages various image data, a 3D image is generated from the image data in real time and displayed on a monitor (first function), numerical information is detected from the image data, and this is detected. A system capable of performing a calculation based on the above and superimposing the calculation result into a 3D image (second function), and encrypting the generated display image data and storing it in a server (third A system capable of functioning will be described as an example.

図1は、本実施の形態の情報処理システムについて説明するための図である。   FIG. 1 is a diagram for explaining the information processing system according to the present embodiment.

本実施の形態の情報処理システム10は、メインCPU20、アクセラレータ(ここでは画像処理アクセラレータ40、暗号化処理アクセラレータ42、圧縮/伸長処理アクセラレータ44等)、周辺装置(ここではネットワークコントローラ60、HDDコントローラ62、USBコントローラ64、グラフィックコントローラ66、その他のコントローラ68等を含む)を含む。   The information processing system 10 according to the present embodiment includes a main CPU 20, an accelerator (here, an image processing accelerator 40, an encryption processing accelerator 42, a compression / decompression processing accelerator 44, etc.), peripheral devices (here, a network controller 60, an HDD controller 62). USB controller 64, graphic controller 66, other controller 68, etc.).

また本実施の形態の情報処理システム10は、IOP(I/O-Processor)/バスブリッジ回路30を含む。IOP(I/O-Processor)/バスブリッジ回路30は、IOP(I/O-Processor)とバスブリッジ回路を1つのブロックにまとめたもので、別々のブロックとして記載した場合との構成上の差異はない。ここでIOP(I/O-Processor)は、元々は周辺装置60、62、64、66内に存在するローカルCPUをIOP(I/O-Processor)として独立して記載したもので、周辺装置60、62、64、66内に存在するローカルCPUであってもよい。   The information processing system 10 according to the present embodiment includes an IOP (I / O-Processor) / bus bridge circuit 30. The IOP (I / O-Processor) / bus bridge circuit 30 is a combination of the IOP (I / O-Processor) and the bus bridge circuit in one block. There is no. Here, the IOP (I / O-Processor) is a local CPU originally described in the peripheral devices 60, 62, 64, 66 as IOP (I / O-Processor), and is independently described. , 62, 64, 66 may be a local CPU.

また本実施の形態の情報処理システム10は、メインCPU20およびIOP(ローカルメモリ)30からアクセス可能なメモリ50を含むようにしてもよい。   The information processing system 10 according to the present embodiment may include a memory 50 accessible from the main CPU 20 and the IOP (local memory) 30.

また本実施の形態の情報処理システム10は、メインCPU20と周辺装置60、62、64、66、68とアクセラレータ40、42、44とメモリ50に接続されたメインバス(第1のバス)70と、周辺装置60、62、64、66、68とアクセラレータ40、42、44とメモリに接続されたI/Oバス(第2のバス)を含むようにしてもよい。   The information processing system 10 according to the present embodiment includes a main CPU 20, peripheral devices 60, 62, 64, 66, 68, accelerators 40, 42, 44, and a main bus (first bus) 70 connected to the memory 50. Peripheral devices 60, 62, 64, 66, 68, accelerators 40, 42, 44, and an I / O bus (second bus) connected to the memory may be included.

画像処理アクセラレータ40は、デジタル画像の変換処理を行う。   The image processing accelerator 40 performs a digital image conversion process.

暗号化処理アクセラレータ42は、個人情報、コンテンツデータ等の暗号化処理を行う。   The encryption processing accelerator 42 performs encryption processing of personal information, content data, and the like.

圧縮/伸長処理アクセラレータ44は、ファイルの圧縮/伸張処理を行う。   The compression / decompression processing accelerator 44 performs file compression / decompression processing.

ネットワークコントローラ60は、Eathernet、無線LANコントローラーである。   The network controller 60 is an Eathernet or wireless LAN controller.

HDDコントローラ62は、ATA、S-ATA、MTのコントローラーである。   The HDD controller 62 is an ATA, S-ATA, or MT controller.

USBコントローラ64は、USB/UARTコントローラーである。   The USB controller 64 is a USB / UART controller.

グラフィックコントローラー66は、グラフィックコントロールやモニター出力のためのコントローラである。   The graphic controller 66 is a controller for graphic control and monitor output.

他のコントローラ68は、例えばGPIOやkeybordやmause等のためのコントローラである。   The other controller 68 is, for example, a controller for GPIO, keyboard, or mause.

本実施の形態のメインCPU20は、アクセラレータ制御処理手段を含む。アクセラレータ制御処理手段は、アクセラレータ(ここでは画像処理アクセラレータ40、暗号化処理アクセラレータ42、圧縮/伸長処理アクセラレータ44等)の制御をメインCPU20が自ら行うか、周辺装置(ここでは周辺装置のローカルCPUであるIOP/バスブリッジ回路30)に行わせるかを判断するための判断手段と、メインCPU20が自ら制御すると判断した場合には、所与のメモリ50に格納されているアクセラレータに対する制御コマンドを自らアクセラレータに対し発行することで、アクセラレータを動作させる処理をおこない、周辺装置に行わせると判断した場合には、周辺装置に対してアクセラレータに発行する制御コマンド内容を指示する。   The main CPU 20 of the present embodiment includes accelerator control processing means. The accelerator control processing means controls the accelerator (here, the image processing accelerator 40, the encryption processing accelerator 42, the compression / decompression processing accelerator 44, etc.) by the main CPU 20 itself, or a peripheral device (here, the local CPU of the peripheral device). When the main CPU 20 determines that the IOP / bus bridge circuit 30) is to perform control, and the main CPU 20 determines to control the accelerator itself, the control command for the accelerator stored in the given memory 50 is transmitted to the accelerator itself. Is issued to the peripheral device, the processing for operating the accelerator is performed, and if it is determined that the peripheral device is to perform the processing, the control device content to be issued to the accelerator is instructed to the peripheral device.

そしてアクセラレータ40、42、44は、受け取った制御コマンドに対応した処理を実行する(ホストからでも、周辺装置からでも同じインターフェースで動く)制御コマンド実行部を含む。   The accelerators 40, 42, and 44 include a control command execution unit that executes processing corresponding to the received control command (moves from the host or the peripheral device through the same interface).

ここで前記判断手段は、メインCPUが例えばメモリ50等に記憶された判断処理用プログラムを実行することでソフトウエア的に実現することができる。   Here, the determination means can be realized in software by the main CPU executing a determination processing program stored in the memory 50, for example.

周辺装置60、62、64、66、68は、周辺装置の動作を制御するためのローカルCPU(ここではIOP/バスブリッジ回路30)を含み、前記ローカルCPU30は、メインCPU20からの指示に基づき、所与のメモリ50に格納されているアクセラレータ40、42、44に対する制御コマンドを与えると、アクセラレータ40、42、44に制御コマンドで指示された処理を実行する。   Peripheral devices 60, 62, 64, 66, 68 include a local CPU (here, IOP / bus bridge circuit 30) for controlling the operation of the peripheral device, and the local CPU 30 is based on an instruction from main CPU 20, When a control command is given to the accelerators 40, 42, 44 stored in a given memory 50, the accelerator 40, 42, 44 executes the process instructed by the control command.

またメインCPU20および前記ローカルCPU30からアクセス可能なメモリ50にアクセラレータ40、42、44に対する制御コマンドを記憶させるようにしてもよい。そして、メインCPU20は、周辺装置(ここではローカルCPUであるIOP/バスブリッジ回路30)に対してアクセラレータに発行する制御コマンド内容を前記メモリ50上の制御コマンドのアドレスで指示するようにしてもよい。前記ローカルCPU(ここではIOP/バスブリッジ回路30)は、メインCPU20からの指示されたメモリ上のアドレスから制御コマンドを読み出して、アクセラレータ40、42、44に対する制御コマンドを発行するようにしてもよい。   Control commands for the accelerators 40, 42, and 44 may be stored in the memory 50 accessible from the main CPU 20 and the local CPU 30. The main CPU 20 may instruct the peripheral device (here, IOP / bus bridge circuit 30 which is a local CPU) the contents of the control command issued to the accelerator by the address of the control command on the memory 50. . The local CPU (here, the IOP / bus bridge circuit 30) may read a control command from an address on the memory instructed by the main CPU 20 and issue a control command to the accelerators 40, 42, and 44. .

また判断手段は、周辺装置(ここではローカルCPUであるIOP/バスブリッジ回路30)に対して処理依頼の問い合わせを行い、応答結果に基づき処理依頼の可否を判断するようにしてもよい。   Further, the determination means may inquire of the processing request to the peripheral device (here, the IOP / bus bridge circuit 30 which is the local CPU), and determine whether the processing request is possible based on the response result.

また前記判断手段は、周辺装置(ここではローカルCPUであるIOP/バスブリッジ回路30)の使用状況に基づき処理依頼の可否を判断するようにしてもよい。   The determination means may determine whether or not a processing request is possible based on the usage status of the peripheral device (here, the IOP / bus bridge circuit 30 which is a local CPU).

またメインCPUが参照可能なエリア(ここでは例えばメモリ50)に周辺装置60、62、64、66、68の稼動状況または、処理依頼の受付可能か否かを示すレジスタを有し、ローカルCPU(ここではIOP/バスブリッジ回路30)は、周辺装置60、62、64、66、68の稼動状況に基づき前記レジスタを更新し、メインCPU20は、レジスタに基づき処理依頼の可否を判断するようにしてもよい。   Further, an area (in this case, for example, the memory 50) that can be referred to by the main CPU has a register that indicates whether the peripheral devices 60, 62, 64, 66, and 68 are operating or whether processing requests can be accepted. Here, the IOP / bus bridge circuit 30) updates the register based on the operating status of the peripheral devices 60, 62, 64, 66, and 68, and the main CPU 20 determines whether or not a processing request is possible based on the register. Also good.

またメインCPU20がアクセラレータ40、42、44の制御を行う場合にはメインバス(第1のバス)を使用し、ローカルCPU(ここではIOP/バスブリッジ回路30)がアクセラレータ40、42、44の制御を行う場合にはI/Oバス(第2のバス)を使用するようにしてもよい。   When the main CPU 20 controls the accelerators 40, 42, and 44, the main bus (first bus) is used, and the local CPU (here, the IOP / bus bridge circuit 30) controls the accelerators 40, 42, and 44. When performing this, an I / O bus (second bus) may be used.

図2は比較例の情報処理システムについて説明するための図である。   FIG. 2 is a diagram for explaining an information processing system of a comparative example.

比較例の情報処理システム10’は、メインCPU20’アクセラレータ(ここでは画像処理アクセラレータ40’、暗号化処理アクセラレータ42’、圧縮/伸長処理アクセラレータ44’等)、周辺装置(ここではネットワークコントローラ60’、HDDコントローラ62’、USBコントローラ64’、グラフィックコントローラ66’、その他のコントローラ68’等を含む)を含む。   The information processing system 10 ′ of the comparative example includes a main CPU 20 ′ accelerator (here, image processing accelerator 40 ′, encryption processing accelerator 42 ′, compression / decompression processing accelerator 44 ′, etc.), peripheral devices (here, network controller 60 ′, HDD controller 62 ′, USB controller 64 ′, graphic controller 66 ′, other controller 68 ′, etc.).

また比較例の形態の情報処理システム10’は、IOP(I/O-Processor)/バスブリッジ回路30’を含む。IOP(I/O-Processor)/バスブリッジ回路30’は、IOP(I/O-Processor)とバスブリッジ回路を1つのブロックにまとめたもので、別々のブロックとして記載した場合との構成上の差異はない。ここでIOP(I/O-Processor)は、元々は周辺装置60’、62’、64’、66’内に存在するローカルCPUをIOP(I/O-Processor)として独立して記載したもので、周辺装置60’、62’、64’、66’内に存在するローカルCPUであってもよい。   The information processing system 10 'according to the comparative example includes an IOP (I / O-Processor) / bus bridge circuit 30'. The IOP (I / O-Processor) / bus bridge circuit 30 'is a configuration in which the IOP (I / O-Processor) and the bus bridge circuit are combined into one block and are described as separate blocks. There is no difference. Here, the IOP (I / O-Processor) is a local CPU that originally exists in the peripheral devices 60 ′, 62 ′, 64 ′, 66 ′ and is described independently as an IOP (I / O-Processor). It may be a local CPU existing in the peripheral devices 60 ′, 62 ′, 64 ′, 66 ′.

比較例の情報処理システム10’では、アクセラレータ40’、42’、44’は、メインバス(第1のバス)のみに接続されている。   In the information processing system 10 ′ of the comparative example, the accelerators 40 ′, 42 ′, and 44 ′ are connected only to the main bus (first bus).

また比較例の情報処理システム10’は、メインCPU20からはアクセス可能であるが、IOP(ローカルCPU)30’からはアクセス不可能なメモリ50’を含む。   The comparative information processing system 10 ′ includes a memory 50 ′ that is accessible from the main CPU 20 but not accessible from the IOP (local CPU) 30 ′.

これに対し本実施の形態では、IOP(ローカルCPU)30が処理を実行する際に、メインバス(第1のバス)70を使用しないように、アクセラレータ40、42、44とメインメモリ50にIOバス(第2のバス)80からのインターフェイス41,43、45、54を設けている。したがってメインメモリ50に有って、IOP(ローカルメモリ)30がそのまま使用可能なものは、メインCPU20から格納先の指定をもらうことのみで(データ自体の転送はしなくてよい形式)で、後述するコマンドリスト(アクセラレータが実行するAPI)の受け渡しを行うことができる。   In contrast, in the present embodiment, when the IOP (local CPU) 30 executes processing, the accelerators 40, 42, and 44 and the main memory 50 are provided with IOs so that the main bus (first bus) 70 is not used. Interfaces 41, 43, 45 and 54 from the bus (second bus) 80 are provided. Therefore, the only memory in the main memory 50 that can be used as it is by the IOP (local memory) 30 is that the main CPU 20 only receives a storage destination designation (a format that does not require the data itself to be transferred). The command list (API executed by the accelerator) can be transferred.

図2のアクセラレータ40’、42’、44’は元々APIを用意しているが、通常はドライバーレベルのソフトウエアが存在し、上位プログラムが発したAPIで定義したコードをアクセラレーターのHW制御に落として実行している。この為比較例では、APIを実行するCPUをメインCPU以外に変える場合、例えばIOP(ローカルCPU)30’に変える場合には、変える側のCPU(ここではIOP(ローカルCPU)30’)にドライバーがインストールしてある必要がある。 これに対し本実施の形態では、ドライバーが存在しなくても、処理を記述した一塊のコードをデータとして扱うので(図14参照)、IOP(ローカルCPU)30は、アクセラレータの例えばコマンドポートに単にデータを書き込むことで一連の処理を実行させることができる。   The accelerators 40 ', 42', and 44 'in FIG. 2 originally have APIs, but usually there is driver level software, and the code defined by the API issued by the host program is used for HW control of the accelerator. Dropping and running. For this reason, in the comparative example, when the CPU that executes the API is changed to other than the main CPU, for example, when the CPU is changed to the IOP (local CPU) 30 ′, the driver is changed to the changing CPU (here, the IOP (local CPU) 30 ′). Must be installed. On the other hand, in the present embodiment, even if there is no driver, a batch of codes describing processing is handled as data (see FIG. 14), so the IOP (local CPU) 30 is simply connected to the command port of the accelerator, for example. A series of processes can be executed by writing data.

すなわち上記APIとドライバーの組合わせで言えば、アクセラレーター40、42、44側が最初からドライバー機能を有していて、データとしてAPIのコードを書き込めば後の処理はアクセラレーター内で完結することができるように構成する。   That is, in terms of the combination of the above API and driver, the accelerators 40, 42, and 44 have a driver function from the beginning, and if the API code is written as data, the subsequent processing can be completed within the accelerator. Configure as you can.

図3はメインCPUがローカルCPUにアクセラレータの制御を依頼する処理の一例について説明するための図である。   FIG. 3 is a diagram for explaining an example of processing in which the main CPU requests the local CPU to control the accelerator.

ここでは、ホストCPU120、メモリ150、周辺装置160、アクセラレータ140は、システムバス170に接続され、周辺装置160とアクセラレータ140はシステムバスを介さずにやり取り可能に構成されている。周辺装置160は周辺装置制御用のローカルCPU130とローカルメモリ132を含む。   Here, the host CPU 120, the memory 150, the peripheral device 160, and the accelerator 140 are connected to the system bus 170, and the peripheral device 160 and the accelerator 140 are configured to be able to exchange without going through the system bus. The peripheral device 160 includes a local CPU 130 and a local memory 132 for controlling peripheral devices.

メインCPUは、アクセラレータの制御をローカルCPUに依頼するか否かを判断し、ローカルCPUに依頼すると判断した場合には、ローカルCPUに対してアクセラレータに与える制御コマンド内容を指示する。例えばメインCPUに数値計算処理がある場合等にアクセラレータの制御をローカルCPUに依頼するようにしてもよい。   The main CPU determines whether or not to request the local CPU to control the accelerator. If the main CPU determines to request the local CPU, the main CPU instructs the local CPU on the contents of the control command to be given to the accelerator. For example, when the main CPU has numerical calculation processing, the control of the accelerator may be requested to the local CPU.

メインCPUがアクセラレータの一連の処理のためのコマンドと必要なデータまたはデータのあるエリアの指定情報をローカルメモリ転送して、アクセラレータの制御を依頼する(S1参照)。なお例えばメインCPUとローカルCPUからともにアクセス可能なメモリに、コマンドと必要なデータまたはデータのあるエリアの指定情報をおくことができれば、ローカルCPUに対してメモリ上のアドレスを指定するようにしてもよい。   The main CPU transfers a command for a series of processing of the accelerator and necessary data or designation information of an area having data to the local memory, and requests control of the accelerator (see S1). For example, if a command and necessary data or designation information of an area with data can be placed in a memory accessible from both the main CPU and the local CPU, an address on the memory may be designated for the local CPU. Good.

ローカルCPU130は、メインCPUからの指示に基づき、所与のメモリに格納されているアクセラレータに対する制御コマンドをアクセラレータに与える。ここではローカルCPUは、ローカルメモリ132に転送されたコマンドと必要なデータまたはデータエリアの指示情報からアクセラレータに指示を与える
(S2参照)。
The local CPU 130 gives a control command for the accelerator stored in a given memory to the accelerator based on an instruction from the main CPU. Here, the local CPU gives an instruction to the accelerator from the command transferred to the local memory 132 and the necessary data or data area instruction information (see S2).

アクセラレータは、与えれた制御コマンドに対応した処理を実行する。そして処理終了信号、処理結果をローカルCPUに返す(S3参照)。   The accelerator executes processing corresponding to the given control command. Then, the processing end signal and the processing result are returned to the local CPU (see S3).

ローカルCPU130はすべてのコマンドが実行し終わると、終了と処理結果または処理結果の格納エリア情報をCPUに返す(S4参照)。   When all the commands have been executed, the local CPU 130 returns the end and the processing result or the storage area information of the processing result to the CPU (see S4).

図4、図5はメインCPUの処理の流れについて説明するための図である。   4 and 5 are diagrams for explaining the processing flow of the main CPU.

図4はグラフィックアクセラレータの制御と暗号化処理アクセラレータの制御はメインCPUが行う場合のフローチャート図である。   FIG. 4 is a flowchart when the main CPU controls the graphic accelerator and the encryption processing accelerator.

まず、ブロックデータの読み出しを行う(ステップS10)。   First, block data is read (step S10).

次に画像処理アクセラレータ制御処理を行う(ステップS20)。本例は画像処理アクセラレータをメインCPUが自ら制御すると判断した場合であり、メモリに格納されている画像処理アクセラレータに対する制御コマンドを自ら画像処理アクセラレータに対し発行することで、画像処理アクセラレータを動作させる処理をおこなう。画像処理アクセラレータの処理の具体的な処理の内容は図7で説明する。   Next, an image processing accelerator control process is performed (step S20). In this example, the main CPU determines that the image processing accelerator is to be controlled by itself. Processing for operating the image processing accelerator by issuing a control command for the image processing accelerator stored in the memory to the image processing accelerator. To do. Details of the processing of the image processing accelerator will be described with reference to FIG.

次に第1の機能を実現するための処理としては画像処理後の画像データの画像表示を行う(ステップS50)。画像表示は、IOバス上のグラフィックコントローラが実行する。画像表示の具体的な処理の内容は図11で説明する。   Next, as a process for realizing the first function, image display of image data after image processing is performed (step S50). The graphic display on the IO bus executes the image display. The specific processing contents of the image display will be described with reference to FIG.

次に第2の機能を実現するための処理としてはまず暗号化処理(ステップS30)を行う。本例は暗号化処理アクセラレータをメインCPUが自ら制御すると判断した場合であり、メモリに格納されている暗号化処理アクセラレータに対する制御コマンドを自ら暗号化処理アクセラレータに対し発行することで、暗号化処理アクセラレータを動作させる処理をおこなう。暗号化処理アクセラレータの処理の具体的な処理の内容は図6で説明する。   Next, as a process for realizing the second function, an encryption process (step S30) is first performed. In this example, it is determined that the main CPU controls the encryption processing accelerator by itself, and the encryption processing accelerator is issued by issuing a control command for the encryption processing accelerator stored in the memory to the encryption processing accelerator. Perform processing to operate. Details of the processing of the encryption processing accelerator will be described with reference to FIG.

次にデータ送信処理(ステップS40)を行う。データ送信処理の具体的な処理の内容は図9で説明する。   Next, data transmission processing (step S40) is performed. Details of the data transmission process will be described with reference to FIG.

図5はグラフィックアクセラレータの制御と暗号化処理アクセラレータの制御をメインCPUがローカルCPUに指示する場合のフローチャート図である。   FIG. 5 is a flowchart when the main CPU instructs the local CPU to control the graphic accelerator and the encryption processing accelerator.

図5では数値計算が入りメインCPUの負荷が重くなり、グラフィックアクセラレータの制御と暗号化処理アクセラレータの制御(ステップS120、S130の処理)をIOP(ローカルCPU)に指示するという設定である。   In FIG. 5, numerical calculation is performed and the load on the main CPU becomes heavy, and the setting is to instruct the IOP (local CPU) to control the graphic accelerator and the encryption processing accelerator (steps S120 and S130).

一般に数値計算は、気象解析用、建築物の構造解析用、建築物等の破壊シミュレーション等いろいろあり、プログラムで実行する必要があるので、IOP(ローカルCPU)には数値計算を依頼できないないという設定である。   In general, there are various types of numerical calculations, such as for weather analysis, structural analysis of buildings, destruction simulation of buildings, etc., and since it must be executed by a program, it is not possible to request numerical calculations from the IOP (local CPU) It is.

まず、ブロックデータの読み出しを行う(ステップS110)。   First, block data is read (step S110).

ここでは、ステップS150〜S170の処理がはいるので、数値計算が入りメインCPUの負荷が重くなるため、アクセラレータの制御を周辺装置に行わせると判断する。   Here, since the processing in steps S150 to S170 is performed, numerical calculation is performed and the load on the main CPU becomes heavy, so that it is determined that the accelerator is controlled by the peripheral device.

そこでまず画像処理アクセラレータ制御処理を行う(ステップS120)。本例は画像処理アクセラレータの制御を周辺装置に行わせると判断した場合であり、周辺装置(ここではIOP(ローカルCPU))に対して画像処理アクセラレータに発行する制御コマンド内容を指示する。制御コマンドの内容の指示は、例えば画像処理アクセラレータに対する制御コマンドが格納されたメモリのアドレスを指示することでも行うことができる。   Therefore, first, an image processing accelerator control process is performed (step S120). In this example, it is determined that the peripheral device is to be controlled by the image processing accelerator, and the control command to be issued to the image processing accelerator is instructed to the peripheral device (here, IOP (local CPU)). The contents of the control command can be instructed by, for example, instructing the address of the memory storing the control command for the image processing accelerator.

IOP(ローカルCPU)は、メインCPUからの指示に基づき、所与のメモリに格納されている画像処理アクセラレータに対する制御コマンドを発行することで、画像処理アクセラレータを動作させる処理をおこなう。画像処理アクセラレータの処理の具体的な処理の内容は図7で説明する。   The IOP (local CPU) performs processing for operating the image processing accelerator by issuing a control command for the image processing accelerator stored in a given memory based on an instruction from the main CPU. Details of the processing of the image processing accelerator will be described with reference to FIG.

次に第2の機能を実現するための処理としてはまず暗号化処理(ステップS130)を行う。本例は暗号化処理アクセラレータの制御を周辺装置に行わせると判断した場合であり、周辺装置(ここではIOP(ローカルCPU))に対して暗号化処理アクセラレータに発行する制御コマンド内容を指示する。制御コマンドの内容の指示は、例えば画像処理アクセラレータに対する制御コマンドが格納されたメモリのアドレスを指示することでも行うことができる。   Next, as a process for realizing the second function, an encryption process (step S130) is first performed. In this example, it is determined that the peripheral processing device is to be controlled by the encryption processing accelerator, and the control command to be issued to the encryption processing accelerator is instructed to the peripheral device (here, IOP (local CPU)). The contents of the control command can be instructed by, for example, instructing the address of the memory storing the control command for the image processing accelerator.

IOP(ローカルCPU)は、メインCPUからの指示に基づき、所与のメモリに格納されている暗号化処理アクセラレータに対する制御コマンドを発行することで、暗号化処理アクセラレータを動作させる処理をおこなう。暗号化処理処理アクセラレータの処理の具体的な処理の内容は図8で説明する。   The IOP (local CPU) performs a process for operating the encryption processing accelerator by issuing a control command to the encryption processing accelerator stored in a given memory based on an instruction from the main CPU. Details of the processing of the encryption processing accelerator will be described with reference to FIG.

次にデータ送信処理(ステップS140)を行う。データ送信処理の具体的な処理の内容は図9で説明する。   Next, data transmission processing (step S140) is performed. Details of the data transmission process will be described with reference to FIG.

また図5ではスーパーインポーズ(第3の機能)を実現するためにステップS150〜S160の処理を行い、画像表示(第1の機能)の為のデータを生成するためにステップS170〜S180の処理を行う。   Further, in FIG. 5, the processes of steps S150 to S160 are performed to realize the superimpose (third function), and the processes of steps S170 to S180 are performed to generate data for image display (first function). I do.

まず数値データ抽出処理を行う(ステップS150)。数値データ抽出処理の具体的な内容は図10に示す。これはプログラムで実行するためメインCPUが行う。   First, numerical data extraction processing is performed (step S150). The specific contents of the numerical data extraction process are shown in FIG. This is performed by the main CPU because it is executed by a program.

次に数値計算処理を行う(ステップS160)。数値計算処理の具体的な内容は図11に示す。これはプログラムで実行するためメインCPUが行う。   Next, numerical calculation processing is performed (step S160). The specific contents of the numerical calculation process are shown in FIG. This is performed by the main CPU because it is executed by a program.

次に画像合成処理を行う(ステップS170)。画像合成はIOバス上のグラフィックコントローラが実行する。画像表示の具体的な処理の内容は図12で説明する。   Next, image composition processing is performed (step S170). Image composition is executed by the graphic controller on the IO bus. The specific processing contents of the image display will be described with reference to FIG.

次に第1の機能を実現するための処理としては画像処理後の画像データの画像表示を行う(ステップS180)。画像表示は、IOバス上のグラフィックコントローラが実行する。画像表示の具体的な処理の内容は図13で説明する。   Next, as a process for realizing the first function, image display of image data after image processing is performed (step S180). The graphic display on the IO bus executes the image display. The specific processing contents of the image display will be described with reference to FIG.

図6は、ブロックデータの読み出し処理について説明するためのフローチャート図である。   FIG. 6 is a flowchart for explaining block data read processing.

まずネットワークコントローラーのチャネルを指定し、サーバーからのデータ転送をIOPに要求(ステップS210)。   First, the channel of the network controller is specified, and data transfer from the server is requested to the IOP (step S210).

データが終了するまで、IOPがネットワークコントローラーを制御し、データをサーバーから読出しメインメモリに格納する(ステップS220)。   Until the data is completed, the IOP controls the network controller, reads the data from the server, and stores it in the main memory (step S220).

データが終了するとIOPはメインCPUに割込みをかける(ステップS240)。   When the data is finished, the IOP interrupts the main CPU (step S240).

CPUは、データ転送終了処理を行う(ステップS250)。   The CPU performs a data transfer end process (step S250).

図7は、画像処理アクセラレータの処理について説明するためのフローチャート図である。   FIG. 7 is a flowchart for explaining the processing of the image processing accelerator.

画像処理アクセラレータは、DMACに対しての指示、ジオメトリエンジンへの指示、レンダリングエンジンに対しての指示、ピクセルエンジンに対しての指示等の処理を行う。   The image processing accelerator performs processing such as an instruction to the DMAC, an instruction to the geometry engine, an instruction to the rendering engine, and an instruction to the pixel engine.

まず3D画像生成指示コマンド設定を行う (ステップS310)。ここでジオメトリエンジン、レンダリングエンジン、ピクセルエンジンに対して処理の指示を行う。   First, a 3D image generation instruction command is set (step S310). Here, processing instructions are given to the geometry engine, rendering engine, and pixel engine.

次に元データの格納先を指定する(ステップS320)。   Next, the storage destination of the original data is designated (step S320).

次に処理データの格納先を指定する (ステップS330)。   Next, the storage destination of the processing data is designated (step S330).

次に終了条件の指定を行う(ステップS340)。終了条件の指定は、データサイズにより行うようにしてもよいし、制限時間等により行うようにしてもよい。   Next, an end condition is designated (step S340). The designation of the end condition may be performed according to the data size, or may be performed according to a time limit or the like.

次に処理開始指示を行う(ステップS350)。   Next, a process start instruction is given (step S350).

そして終了条件が成立するまで、視点情報の送信を行う(ステップS360)。ここで視点情報はジオメトリエンジンの入力となる。なお視点情報とは、例えば画像を見ながらマウス等の操作で指示される情報である。   The viewpoint information is transmitted until the end condition is satisfied (step S360). Here, the viewpoint information is input to the geometry engine. The viewpoint information is information instructed by operating a mouse or the like while viewing an image, for example.

終了条件が成立すると、CPUは終了処理を行う(ステップS370、S380)。   When the termination condition is satisfied, the CPU performs termination processing (steps S370 and S380).

図8は、暗号化処理について説明するためのフローチャート図である。   FIG. 8 is a flowchart for explaining the encryption process.

暗号化処理は、処理開始時に入力する鍵により行われる。データのブロック単位で暗号化するものとする。   The encryption process is performed using a key input at the start of the process. It is assumed that data is encrypted in block units.

まず鍵情報の設定を行う(ステップS410)。   First, key information is set (step S410).

次にDMACの設定(データ入力エリアおよびデータ出力エリアの指定)を行う(ステップS420)。   Next, the DMAC is set (designation of data input area and data output area) (step S420).

次に暗号処理開始許可の指示を行う (ステップS430)。   Next, an instruction for permission to start encryption processing is given (step S430).

次にDMACを起動する(ステップS440)。   Next, the DMAC is activated (step S440).

そして暗号化処理アクセラレータが全データについてブロック単位で暗号化処理を行うと、CPUは終了処理を行う(ステップS450、S470)。   When the encryption processing accelerator performs encryption processing for all data in units of blocks, the CPU performs end processing (steps S450 and S470).

図9は、データ送信処理について説明するためのフローチャート図である。   FIG. 9 is a flowchart for explaining the data transmission process.

まずネットワークコントローラーのチャネルを指定し、サーバーへのデータ転送を指示する(ステップS510)。   First, the channel of the network controller is designated, and data transfer to the server is instructed (step S510).

データが終了するまで、IOPがネットワークコントローラーを制御し、データをメインメモリから読出しサーバーに転送する(ステップS520、S530)。 データが終了すると、CPUに割込みをかける(ステップS540)。   Until the data is completed, the IOP controls the network controller and reads the data from the main memory and transfers it to the server (steps S520 and S530). When the data is finished, the CPU is interrupted (step S540).

CPUはデータ転送終了処理を行う(ステップS550)。   The CPU performs a data transfer end process (step S550).

図10は、数値データ抽出処理について説明するためのフローチャート図である。   FIG. 10 is a flowchart for explaining the numerical data extraction process.

データが終了するまで以下の処理を繰り返し行う。   The following processing is repeated until the data is completed.

まず元データの読出しを行う(ステップS610)。   First, the original data is read (step S610).

次に数値データの検出を行う(ステップS620)。   Next, numerical data is detected (step S620).

データのタイムスタンプと数値を所定のメモリエリアに書き込む(ステップS630)。   The time stamp and numerical value of the data are written in a predetermined memory area (step S630).

図11は、数値計算処理について説明するためのフローチャート図である。   FIG. 11 is a flowchart for explaining the numerical calculation process.

抽出データが終了するまで、以下の処理を繰り返す。   The following processing is repeated until the extraction data is completed.

まず抽出データの組を読み出す(ステップS710)。   First, a set of extracted data is read (step S710).

次にデータを元に計算する( ステップS720)。   Next, calculation is performed based on the data (step S720).

次に対応させるタイムスタンプと共に計算結果をメモリに格納(ステップS730)。   Next, the calculation result is stored in the memory together with the time stamp to be associated (step S730).

図12は、画像合成・画像表示処理について説明するためのフローチャート図である。   FIG. 12 is a flowchart for explaining image composition / image display processing.

この処理はIOバスに接続されたグラフィックコントローラが実行する事になる。データはグラフィックアクセラレータから自動的に投げられ、数値データは、CPUが書き込んでくる。   This processing is executed by the graphic controller connected to the IO bus. Data is automatically thrown from the graphic accelerator, and numerical data is written by the CPU.

処理が終了するまで以下の処理を繰り返す。   The following processing is repeated until the processing is completed.

まずグラフィックアクセラレータからの画像データの取込を行う(ステップS810)。   First, image data is fetched from the graphic accelerator (step S810).

次に数値データの取込を行う(ステップS820)。   Next, numerical data is taken in (step S820).

タイムスタンプが一致したら数値データを画像にインポーズする(ステップS830、S840)。   If the time stamps match, the numerical data is imposed on the image (steps S830 and S840).

画像データをフレームメモリに格納する(ステップS850)。   The image data is stored in the frame memory (step S850).

図13は、画像表示処理についてについて説明するためのフローチャート図である。   FIG. 13 is a flowchart for explaining the image display processing.

まずDMAC設定を行う(ステップS910)。   First, DMAC setting is performed (step S910).

次に転送開始指示を行う(ステップS920)。
そしてデータが終了するまでフレームメモリのデータ転送処理を行う(ステップS930、S940)。
Next, a transfer start instruction is issued (step S920).
Then, data transfer processing of the frame memory is performed until the data is finished (steps S930 and S940).

処理が終了したらCPUへ終了割り込みをかける(ステップS940)。   When the process ends, an end interrupt is issued to the CPU (step S940).

図14はメインメモリ上のAPI(制御コマンド)の一例である。   FIG. 14 shows an example of an API (control command) on the main memory.

メインメモリ200はメインCPUおよびローカルCPU(ここではIOP)からアクセス可能で、アクセラレータに対する制御コマンドが記憶されている。   The main memory 200 is accessible from the main CPU and the local CPU (here, IOP), and stores control commands for the accelerator.

アドレス220(0000_1000_0000_1000)から始まるコマンド格納エリア210には、230に示すような画像処理アクセラレータに与える制御コマンド(API)が記憶されている。   A command storage area 210 starting from address 220 (0000_1000_0000_1000) stores a control command (API) to be given to the image processing accelerator as shown at 230.

前記メインCPUは、アクセラレータの制御を周辺装置に行わせると判断した場合には、周辺装置に対してアクセラレータに発行する制御コマンド内容を前記メモリ上の制御コマンドのアドレスで指示し、周辺装置の前記ローカルCPUは、メインCPUからの指示されたメモリ上のアドレスから制御コマンドを読み出して、アクセラレータに対する制御コマンドを発行する。   When the main CPU determines that the peripheral device is to control the accelerator, the main CPU instructs the peripheral device with a control command content to be issued to the accelerator by the address of the control command on the memory, and The local CPU reads the control command from the address on the memory instructed from the main CPU, and issues the control command to the accelerator.

数値計算の負荷が掛かっていない場合は、上記コマンド群はメインCPUによって実行される。メインCPUは、数値計算の指示があると上記コマンドによる指示をローカルCPU(ここではIOP)に任せる為に、対象となるコマンド格納アドレスをローカルCPU(ここではIOP)に伝える。ここではコマンド格納エリアの先頭アドレス220を伝える。   When no numerical calculation load is applied, the command group is executed by the main CPU. When there is an instruction for numerical calculation, the main CPU transmits the command storage address to be processed to the local CPU (here IOP) in order to leave the instruction by the command to the local CPU (here IOP). Here, the start address 220 of the command storage area is transmitted.

ローカルCPU(ここではIOP)、メインCPUからの開始指示で、上記アドレスからコマンドを読み出す。   In response to a start instruction from the local CPU (here, IOP) and the main CPU, the command is read from the address.

最初のデータ240は、制御相手を識別するコードであり、ビット31〜0の8000(242参照)は制御相手が画像処理アクセラレータであることを示す。   The first data 240 is a code for identifying a control partner. Bits 31 to 0 of 8000 (see 242) indicate that the control partner is an image processing accelerator.

ローカルCPU(ここではIOP)は、次のアドレスからコマンドを読出し、ビット63〜48(244参照)が゛CCCC゛でない場合は、そのデータをそのまま画像処理アクセラレータのコマンドポートに書込みを行う事で動作モードの設定が可能となる(設定が可能となるように予め作っておく)。   The local CPU (here IOP) reads the command from the next address, and if bits 63 to 48 (see 244) are not "CCCC", it operates by writing the data as it is to the command port of the image processing accelerator. The mode can be set (created in advance so that it can be set).

ローカルCPU(ここではIOP)は、゛CCCC゛を検出すると(250参照)、対象が現在コマンド実行中のものであれば、次のコード(260参照)をコマンドポートに書きつづける。このデータは逐次更新されるものとする。この状態で画像処理アクセラレータからの終了割込みを待つ。   When the local CPU (here IOP) detects "CCCC" (see 250), if the target is currently executing a command, it continues to write the next code (see 260) in the command port. This data is updated sequentially. In this state, it waits for an end interrupt from the image processing accelerator.

終了割込み発生後、次のコマンドエリアのデータを読出し(270参照)、再び゛CCCC゛があるので付加処理が画像処理アクセラレータにある事を認識し、次のコード(280参照)を読み出す。   After the end interrupt is generated, the next command area data is read (see 270). Since there is “CCCC” again, it is recognized that the additional processing is in the image processing accelerator, and the next code (see 280) is read.

そしてローカルCPU(ここではIOP)は、(l)から(p)のデータを画像処理アクセラレータのコマンドポートに書き込む。   Then, the local CPU (here, IOP) writes the data from (l) to (p) to the command port of the image processing accelerator.

次に(q)を読出し、コマンド終了を認識すると、画像処理アクセラレータからの終了割込みを認識して、メインCPUに割込みをかけ、終了を通知する。   Next, when (q) is read and the end of the command is recognized, the end interrupt from the image processing accelerator is recognized, the main CPU is interrupted, and the end is notified.

メインCPUのみで実行する場合には並列して処理するタスクの切り替えも煩雑に行われるが、本発明によればローカルCPUに処理を任せることでメインCPUは終了割り込みのみの認識ですむことからOSのタスク切り替えに伴う処理のオーバーヘッドを低減する効果がある。   When executed only by the main CPU, switching of tasks to be processed in parallel is complicated, but according to the present invention, the main CPU can recognize only the end interrupt by leaving the processing to the local CPU. This has the effect of reducing the processing overhead associated with task switching.

なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。   In addition, this invention is not limited to this embodiment, A various deformation | transformation implementation is possible within the range of the summary of this invention.

本実施の形態の情報処理システムについて説明するための図。The figure for demonstrating the information processing system of this Embodiment. 比較例の情報処理システムについて説明するための図。The figure for demonstrating the information processing system of a comparative example. メインCPUがローカルCPUにアクセラレータの制御を依頼する処理の一例について説明するための図。The figure for demonstrating an example of the process from which main CPU requests the control of an accelerator to local CPU. グラフィックアクセラレータの制御と暗号化処理アクセラレータの制御をメインCPUが行う場合のフローチャート図。FIG. 5 is a flowchart when the main CPU controls the graphic accelerator and the encryption processing accelerator. グラフィックアクセラレータの制御と暗号化処理アクセラレータの制御をメインCPUがローカルCPUに指示する場合のフローチャート図。FIG. 6 is a flowchart when the main CPU instructs the local CPU to control the graphic accelerator and the encryption processing accelerator. ブロックデータの読み出し処理について説明するためのフローチャート図。FIG. 5 is a flowchart for explaining block data read processing. 画像処理アクセラレータの処理について説明するためのフローチャート図。The flowchart figure for demonstrating the process of an image processing accelerator. 暗号化処理について説明するためのフローチャート図。The flowchart figure for demonstrating an encryption process. データ送信処理について説明するためのフローチャート図。The flowchart figure for demonstrating a data transmission process. 数値データ抽出処理について説明するためのフローチャート図。The flowchart for demonstrating numerical data extraction processing. 数計算処理について説明するためのフローチャート図。The flowchart for demonstrating number calculation processing. 画像合成・画像表示処理について説明するためのフローチャート図。FIG. 6 is a flowchart for explaining image composition / image display processing. 画像表示処理についてについて説明するためのフローチャート図。The flowchart for demonstrating about an image display process. メインメモリ上のAPI(制御コマンド)の一例である。It is an example of API (control command) on the main memory.

符号の説明Explanation of symbols

10、情報処理システム、20 メインCPU、30 IOP/バスブリッジ回路、40 画像処理アクセラレータ、42 暗号化処理アクセラレータ、44 圧縮/伸長処理アクセラレータ、50 メモリ、60 ネットワークコントローラ、62 HDDコントローラ、64 USBコントローラ、66 グラフィックコントローラ、68 その他のコントローラ、70 メインバス(第1のバス)80 I/Oバス(第2のバス)、90 ローカルメモリ 10, information processing system, 20 main CPU, 30 IOP / bus bridge circuit, 40 image processing accelerator, 42 encryption processing accelerator, 44 compression / decompression processing accelerator, 50 memory, 60 network controller, 62 HDD controller, 64 USB controller, 66 graphic controller, 68 other controller, 70 main bus (first bus) 80 I / O bus (second bus), 90 local memory

Claims (6)

メインCPUと所与の機能を提供するアクセラレータとローカルCPUを有する周辺装置を含む情報処理システムであって、
前記メインCPUは、アクセラレータ制御処理手段を含み、
アクセラレータ制御処理手段は、
アクセラレータの制御をローカルCPUに依頼するか否かを判断するための判断手段と、
ローカルCPUに依頼しないと判断した場合には、所与のメモリに格納されているアクセラレータに対する制御コマンドを自らアクセラレータに与え、
ローカルCPUに依頼すると判断した場合には、ローカルCPUに対してアクセラレータに与える制御コマンド内容を指示し、
前記ローカルCPUは、メインCPUからの指示に基づき、所与のメモリに格納されているアクセラレータに対する制御コマンドをアクセラレータに与え、
アクセラレータは、与えれた制御コマンドに対応した処理を実行する制御コマンド実行部を含むことを特徴とする情報処理システム。
An information processing system including a peripheral device having a main CPU, an accelerator providing a given function, and a local CPU,
The main CPU includes accelerator control processing means,
Accelerator control processing means
Determining means for determining whether to request the local CPU to control the accelerator;
If it is determined not to request to the local CPU, the control command for the accelerator stored in the given memory is given to the accelerator by itself.
If it is determined to request the local CPU, the control command content to be given to the accelerator is instructed to the local CPU,
The local CPU gives a control command for the accelerator stored in a given memory to the accelerator based on an instruction from the main CPU,
The accelerator includes a control command execution unit that executes processing corresponding to a given control command.
請求項1において、
前記メインCPUおよび前記ローカルCPUからアクセス可能で、アクセラレータに対する制御コマンドが記憶されたメモリを含み、
前記メインCPUは、
ローカルCPUに依頼すると判断した場合には、アクセラレータに与える制御コマンドが格納された前記メモリ上のアドレスをローカルCPUに対して指示し、
前記ローカルCPUは、メインCPUからの指示された前記メモリ上のアドレスから制御コマンドを読み出して、アクセラレータに対する制御コマンドを与えることを特徴とする情報処理システム。
In claim 1,
A memory that is accessible from the main CPU and the local CPU and that stores a control command for an accelerator;
The main CPU is
If it is determined that the request is made to the local CPU, the address on the memory where the control command to be given to the accelerator is stored is instructed to the local CPU,
The information processing system, wherein the local CPU reads a control command from an address on the memory instructed by a main CPU and gives a control command to an accelerator.
請求項1乃至2のいずれかにおいて、
前記判断手段は、
メインCPUの処理予定または処理内容に基づき、アクセラレータの制御依頼の可否を判断する手段を含むことを特徴とする情報処理システム。
In any one of Claims 1 thru | or 2.
The determination means includes
An information processing system comprising means for determining whether or not an accelerator control request can be made based on a processing schedule or processing content of a main CPU.
請求項1乃至3のいずれかにおいて、
前記判断手段は、
ローカルCPU装置に対してアクセラレータの制御依頼の問い合わせを行い、問い合わせに対する応答結果に基づきアクセラレータの制御依頼の可否を判断する手段を含むことを特徴とする情報処理システム。
In any one of Claims 1 thru | or 3,
The determination means includes
An information processing system comprising means for inquiring an accelerator control request to a local CPU device and determining whether or not an accelerator control request can be made based on a response result to the inquiry.
請求項1乃至4のいずれかにおいて、
前記判断手段は、
周辺装置の使用状況に基づきアクセラレータの制御依頼の可否を判断する手段を含むことを特徴とする情報処理システム。
In any one of Claims 1 thru | or 4,
The determination means includes
An information processing system comprising means for determining whether or not an accelerator control request can be made based on a usage status of a peripheral device.
請求項1乃至5のいずれかにおいて、
少なくともメインCPUと周辺装置とアクセラレータとメモリに接続された第1のバスと、
少なくとも周辺装置とアクセラレータとメモリに接続された第2のバスを含み、
メインCPUがアクセラレータの制御を行う場合には第1のバスを使用し、
ローカルCPUがアクセラレータの制御を行う場合には第2のバスを使用することを特徴とする情報処理システム。
In any one of Claims 1 thru | or 5,
A first bus connected to at least a main CPU, peripheral devices, an accelerator, and a memory;
A second bus connected to at least the peripheral device, the accelerator, and the memory;
When the main CPU controls the accelerator, use the first bus,
An information processing system using a second bus when a local CPU controls an accelerator.
JP2005171270A 2005-06-10 2005-06-10 Information processing system Withdrawn JP2006344153A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005171270A JP2006344153A (en) 2005-06-10 2005-06-10 Information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005171270A JP2006344153A (en) 2005-06-10 2005-06-10 Information processing system

Publications (1)

Publication Number Publication Date
JP2006344153A true JP2006344153A (en) 2006-12-21

Family

ID=37641053

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005171270A Withdrawn JP2006344153A (en) 2005-06-10 2005-06-10 Information processing system

Country Status (1)

Country Link
JP (1) JP2006344153A (en)

Similar Documents

Publication Publication Date Title
US7627697B2 (en) Device using multiple DMA controllers for transferring data between a storage device and multiple processing units
JP3659062B2 (en) Computer system
US20150293774A1 (en) Data processing systems
KR20170013882A (en) A multi-host power controller (mhpc) of a flash-memory-based storage device
JP2005352839A (en) Data communication device
JP2018063505A (en) Memory management control unit, memory management control method and memory management control program
US9565049B2 (en) Communication apparatus, communication method, and computer product for sharing data
JP5876017B2 (en) Peripheral device control apparatus and information processing apparatus
JP3696515B2 (en) Kernel function realization structure, entertainment device including the same, and peripheral device control method using kernel
JP2008146541A (en) Dma transfer system, dma controller and dma transfer method
JP5783348B2 (en) Control device, control program, and image forming apparatus
JP2006344153A (en) Information processing system
JP2009025896A (en) Data processing unit and data processing method
JP4218034B2 (en) Data communication system, data communication method, and data communication program
JP4244028B2 (en) Graphic processor, control processor, and information processing apparatus
JP2005078356A (en) Information processor
JP2005327007A (en) Integrated computer control program, recording medium for recording its program and integrated system
JP2022072452A (en) Information processing device and program
JP2010044703A (en) Method and program for switching task in multi task os
JP2005025294A (en) Input/output request priority controller in two or more systems
JP6940283B2 (en) DMA transfer control device, DMA transfer control method, and DMA transfer control program
JP2007034514A (en) Information processor
JP2007219925A (en) Bus controller, bus control program and recording medium
TW202046136A (en) Data storage system and data storage method
JP2007122089A (en) Computer system, method for starting basic program and loader 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: 20080902