JP2005301607A - Information processor, information processing system, and information processing method - Google Patents
Information processor, information processing system, and information processing method Download PDFInfo
- Publication number
- JP2005301607A JP2005301607A JP2004115895A JP2004115895A JP2005301607A JP 2005301607 A JP2005301607 A JP 2005301607A JP 2004115895 A JP2004115895 A JP 2004115895A JP 2004115895 A JP2004115895 A JP 2004115895A JP 2005301607 A JP2005301607 A JP 2005301607A
- Authority
- JP
- Japan
- Prior art keywords
- data
- compression
- information processing
- processor
- sub
- 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.)
- Pending
Links
Images
Abstract
Description
本発明は、複数のプロセッサを備えた情報処理装置、そのような情報処理装置がネットワークに接続されて構成された情報処理システム、およびそのような情報処理装置に適用される情報処理方法に関する。 The present invention relates to an information processing apparatus including a plurality of processors, an information processing system configured by connecting such an information processing apparatus to a network, and an information processing method applied to such an information processing apparatus.
従来より、複数のプロセッサ(演算ユニット)を用いて構成されたマルチプロセッサ分散並列処理システム(以下、マルチプロセッサシステムという。)が知られている。そのようなシステムとして、例えば、特許文献1、特許文献2等がある。
このマルチプロセッサシステムでは、システムバスに接続された複数のプロセッサに処理を分散させ、並列に演算処理(信号処理)を行うようになっていることから、単一のプロセッサで信号処理を行った場合と比較して、大幅な演算能力の向上が期待できる。このシステムでは、例えば、各プロセッサが演算器とワークメモリ(以下、ローカルメモリという。)とを含み、各プロセッサがシステムバスを介してメインメモリを共有するように構成される。各プロセッサ内の演算器は、メインメモリからローカルメモリに転送されたデータを使用して演算を実行する。演算器は演算中、ローカルメモリにのみアクセスし、直接メインメモリを参照することはない。演算が終了すると、ローカルメモリ内の演算結果がメインメモリに書き戻される。 In this multiprocessor system, processing is distributed to multiple processors connected to the system bus, and computation processing (signal processing) is performed in parallel. Compared with, a significant improvement in computing power can be expected. In this system, for example, each processor includes an arithmetic unit and a work memory (hereinafter referred to as a local memory), and each processor is configured to share a main memory via a system bus. An arithmetic unit in each processor executes an operation using data transferred from the main memory to the local memory. During the computation, the computing unit accesses only the local memory and does not directly refer to the main memory. When the calculation is completed, the calculation result in the local memory is written back to the main memory.
このような構成をとることで、以下の問題が解決される。
1.メインメモリを共有することによるアクセス競合の防止
2.低速なメインメモリを使うことによるパフォーマンス低下
3.システムバスのトラヒック増加防止
By taking such a configuration, the following problems are solved.
1. 1. Preventing access conflict by sharing
上記したマルチプロセッサシステムでは、メインメモリへのアクセスは演算前後のデータの入出力を行うときにのみ発生する。このとき、データ転送レートが十分に高ければプロセッサの並列度を増すほどシステム全体の処理能力は向上する。 In the multiprocessor system described above, access to the main memory occurs only when data is input / output before and after the calculation. At this time, if the data transfer rate is sufficiently high, the processing capability of the entire system improves as the parallelism of the processors increases.
しかしながら、従来のシステムでは、以下の理由からメインメモリとローカルメモリとの間のデータ転送レートがボトルネックとなり、演算器の並列度に見合った処理能力をシステムから引き出せない可能性がある。 However, in the conventional system, the data transfer rate between the main memory and the local memory becomes a bottleneck for the following reasons, and there is a possibility that the processing capacity corresponding to the degree of parallelism of the arithmetic units cannot be extracted from the system.
1.メインメモリには大容量のものが要求されるので、コストの低いDRAM(ダイナミック・ランダム・アクセス・メモリ)が使われることが多いが、一般的にDRAMのアクセス速度はシステムバスの速度に比べて遅い。
2.システムバスは、各種周辺デバイスからのトランザクションデータの転送にも使用されることから、プロセッサ間のデータ転送またはプロセッサとメインメモリとの間のデータ転送だけがバスを占有する、ということはあり得ず、その結果、十分な転送レートを確保できない。
1. Since the main memory is required to have a large capacity, a low-cost DRAM (dynamic random access memory) is often used, but the DRAM access speed is generally higher than the system bus speed. slow.
2. Since the system bus is also used to transfer transaction data from various peripheral devices, it is impossible for only data transfer between processors or data transfer between the processor and main memory to occupy the bus. As a result, a sufficient transfer rate cannot be secured.
本発明はかかる問題点に鑑みてなされたもので、その目的は、複数のプロセッサを効率的に並列動作させることが可能な情報処理装置、情報処理システムおよび情報処理方法を提供することにある。 The present invention has been made in view of such problems, and an object thereof is to provide an information processing apparatus, an information processing system, and an information processing method capable of efficiently operating a plurality of processors in parallel.
本発明の情報処理装置は、バスと、このバスに共通に接続された複数の演算プロセッサとを備え、各演算プロセッサが、演算器と、演算器による演算結果データを圧縮する機能と、バスを介して取り込んだ入力データを伸長する機能とを有する圧縮伸長器とを有するようにしたものである。 An information processing apparatus according to the present invention includes a bus and a plurality of arithmetic processors commonly connected to the bus. Each arithmetic processor includes an arithmetic unit, a function of compressing arithmetic result data by the arithmetic unit, and the bus. And a compression / decompression unit having a function of decompressing input data fetched through the network.
本発明の情報処理方法は、バスと、このバスに共通に接続された複数の演算プロセッサとを備えた情報処理装置に適用される方法であって、各演算プロセッサにおいて、バスを介して取り込んだ入力データを選択的に伸長し、伸長した入力データを基に演算処理を行い、演算処理の結果である演算結果データに対して選択的に圧縮処理を行ってバス上に送出するようにしたものである。 The information processing method of the present invention is a method applied to an information processing apparatus including a bus and a plurality of arithmetic processors commonly connected to the bus, and each arithmetic processor takes in the data via the bus. Input data is selectively decompressed, arithmetic processing is performed based on the decompressed input data, arithmetic result data that is the result of the arithmetic processing is selectively compressed, and sent to the bus It is.
本発明の情報処理システムは、ネットワークに複数の情報処理装置を接続してなる情報処理システムであって、各情報処理装置は、バスと、このバスに共通に接続された複数の演算プロセッサとを備え、各演算プロセッサが、演算器と、演算器による演算結果データを圧縮する機能と、バスを介して取り込んだ入力データを伸長する機能とを有する圧縮伸長器とを有するようにしたものである。 The information processing system of the present invention is an information processing system in which a plurality of information processing devices are connected to a network, and each information processing device includes a bus and a plurality of arithmetic processors connected to the bus in common. And each arithmetic processor has an arithmetic unit, a compression / decompression unit having a function of compressing operation result data by the arithmetic unit, and a function of expanding input data taken in via the bus. .
本発明の情報処理装置、情報処理システムおよび情報処理方法では、バスを介して取り込んだ入力データが選択的に伸長されると共に、伸長した入力データを基に演算処理が行われる。演算結果である演算結果データに対しては、選択的に圧縮処理が行われ、バス上に送出される。バスを伝送するデータは圧縮されているため、プロセッサ間でのデータ転送量が少なくなる。 In the information processing apparatus, the information processing system, and the information processing method of the present invention, input data taken in via the bus is selectively expanded and arithmetic processing is performed based on the expanded input data. The calculation result data, which is the calculation result, is selectively compressed and sent to the bus. Since the data transmitted through the bus is compressed, the amount of data transferred between processors is reduced.
本発明の情報処理装置、情報処理システムおよび情報処理方法によれば、複数のプロセッサ間でバス上を転送するデータを選択的に圧縮するようにしたので、まったく圧縮処理を行わない場合と比べて、データ量が少なくなり、転送時間を短縮化することができる。この結果、各プロセッサに対するデータ転送時間が演算性能のボトルネックとなるような分散処理システムの場合において、ボトルネック箇所を、転送時間から、圧縮伸張処理も含めた演算処理時間に転換することができる。これにより、複数のプロセッサを効率的に並列動作させてシステム全体の処理能力を向上させることができる。 According to the information processing apparatus, the information processing system, and the information processing method of the present invention, the data transferred on the bus between the plurality of processors is selectively compressed, so that the compression processing is not performed at all. Data amount can be reduced and transfer time can be shortened. As a result, in the case of a distributed processing system in which the data transfer time for each processor is a bottleneck in calculation performance, the bottleneck location can be changed from the transfer time to an operation processing time including compression / decompression processing. . Thereby, a plurality of processors can be efficiently operated in parallel to improve the processing capacity of the entire system.
以下、本発明を実施するための最良の形態(以下、単に実施の形態という。)について、図面を参照して詳細に説明する。 Hereinafter, the best mode for carrying out the present invention (hereinafter simply referred to as an embodiment) will be described in detail with reference to the drawings.
図1は、本発明の一実施の形態に係る情報処理システムの全体構成を表すものである。なお、本発明の一実施の形態に係る情報処理装置および情報処理方法は、この情報処理システムによって具現化されるので、以下併せて説明する。 FIG. 1 shows the overall configuration of an information processing system according to an embodiment of the present invention. Note that an information processing apparatus and an information processing method according to an embodiment of the present invention are embodied by the information processing system, and will be described below.
この情報処理システムは、ネットワーク1と、複数の情報処理装置2,3,4とを含んで構成されている。情報処理装置2〜4は、いずれも同様の構成を有する。以下においては、情報処理装置を代表して、情報処理装置2について説明する。なお、ここに図示した情報処理装置は3台であるが、2台でもよいし、あるいは4台以上あってもよい。
This information processing system includes a
情報処理装置2〜4はそれぞれ、後述するソフトウェアセルを用い、ネットワーク1を介して、他の情報処理装置との間で、各種のコマンドや各情報処理装置が保有する装置情報および必要なプログラム等を送受信する機能を有する。ここで、装置情報とは、例えば、各情報処理装置の電源状況(電源がONであるかOFFであるか)、どんなタイプの情報処理装置か、どんな入出力インターフェースを持っているか、そのインターフェースはそれぞれどれに接続されているか、などを示す情報である。
Each of the
情報処理装置2は、メインプロセッサ21と、メモリコントローラ22と、メインメモリ23と、複数のサブプロセッサ24−1〜24−n(nは正の整数)とを備えている。これらは、1つのマルチプロセッサユニット20を構成している。このマルチプロセッサユニット20は、集積化された1つの集積回路チップとして構成可能である。マルチプロセッサユニット20には、この情報処理システム全体を通して情報処理装置2を一意的に識別できる識別子である情報処理装置IDが割り当てられている。なお、以下の説明において、サブプロセッサ24−1〜24−nをまとめて示す場合には、適宜、これを総称して「サブプロセッサ24」と表記するものとする。
The
情報処理装置2はまた、ディスクコントローラ25と、外部記録装置26と、バスアービタ27と、ネットワーク接続部28とを備えている。メインメモリ23および外部記録装置26を除く各ブロックは、システムバス29によって相互に接続されている。メインメモリ23はメモリコントローラ22に接続され、外部記録装置26はディスクコントローラ25に接続されている。
The
メインプロセッサ21は、サブプロセッサ24によるプログラム実行(データ処理)のスケジュール管理と、マルチプロセッサユニット20の全般的な管理とを行うためのものである。ただし、メインプロセッサ21が管理のためのプログラム以外のプログラムを実行することもある。その場合には、メインプロセッサ21はサブプロセッサ24と同様に機能することになる。メインプロセッサ21は、一時的なワークメモリとしてのローカルメモリ(ローカルストレージ)21Aを有する。
The
メインメモリ23は、メインプロセッサ21およびサブプロセッサ24−1〜24−nによって共有されるものであり、情報処理装置2の機能を司る各種の機能プログラムや処理に必要なデータ(各情報処理装置に関する装置情報を含む。)を記憶するようになっている。メインメモリとしては、例えばDRAM(Dynamic Random Access Memory)のような比較的低速のメモリを使用することも可能である。
The
メモリコントローラ22は、システムバス29とメインメモリ23との間にあって、いわゆるDMAC(Direct Memory Access Controller )として機能し、サブプロセッサ24−1〜24−nが、メインメモリ23に格納されているプログラムおよびデータに直接(メインプロセッサ21を介さずに)アクセスしてDMA(Direct Memory Access)転送を行うことを可能にしている。
The
サブプロセッサ24−1〜24−nは、それぞれ、メインプロセッサ21の制御によって並列的かつ独立にプログラムを実行し、データを処理するようになっている。ただし、必要に応じ、メインプロセッサ21内のプログラムがサブプロセッサ24内のプログラムと連携して動作することもある。後述する機能プログラムもメインプロセッサ21内で動作するプログラムである。
Each of the sub-processors 24-1 to 24-n executes a program in parallel and independently under the control of the
サブプロセッサ24−1は、ローカルメモリ(ローカルストレージ)24A−1と、圧縮伸長器24B−1と、演算器24C−1とを有する。ローカルメモリ24A−1は、演算器24C−1によって一時的なワークメモリとして使用されるものである。圧縮伸長器24B−1は、システムバス29を介してメインメモリ23から転送され入力されたデータに対して必要に応じて伸長処理を行うと共に、ローカルメモリ24A−1に格納された送出対象データ(演算器24C−1による演算結果データ)に対して必要に応じて圧縮処理を行うようになっている。演算器24C−1は、メインメモリ23から入力されてローカルメモリ24A−1に格納されたデータに対して所定の演算処理(信号処理)を行うものである。演算処理としては、例えば、画像処理や音響処理のほか、科学技術計算処理等がある。このサブプロセッサ24−1では、バスアービタ27からバス使用権(後述)を得てメインメモリ23との間でデータ転送を行う際のタイミング制御等は、図示しない制御部によって行われるようになっている。但し、この制御部に代えて、演算器24C−1がそのような制御を行うようにしてもよい。
The sub processor 24-1 includes a local memory (local storage) 24A-1, a compression /
圧縮伸長器24B−1による圧縮アルゴリズムは、「可逆性が保障されるもの」であれば、種類を問わない。その代表的なものとして例えばハフマン符号に代表されるエントロピー符号が考えられる。但し、任意の信号処理に対して信号の発生頻度の偏りを利用した符号化方式を適用するのは困難である。圧縮伸張処理に伴うコストと圧縮効果とを考慮すると、差分予測符号化による圧縮アルゴリズムを採用することが好ましい。例えば、分散並列処理を適用するアプリケーションの一つとして動画に対する画像信号処理が考えられる。この画像信号処理では、通常、画像フレームを複数のマクロブロックと呼ばれる小さなブロックに分割し、マクロブロック単位で信号処理を行う。これを分散並列処理に適用する場合には、各プロセッサにマクロブロックを割り当てて並列演算させることになる。画像信号は空間的、時間的な相関が比較的強いため、予測を用いたデータ圧縮が効果的である。
The compression algorithm by the compression /
なお、サブプロセッサの個数nには特に制限がないが、後述するように、情報処理装置全体としての処理速度の向上のためには、より多くのサブプロセッサを設けることが好ましい。他のサブプロセッサ24−2〜24−nについてもサブプロセッサ24−1と同様の構成である。 The number n of sub-processors is not particularly limited, but as will be described later, it is preferable to provide more sub-processors in order to improve the processing speed of the entire information processing apparatus. The other sub processors 24-2 to 24-n have the same configuration as that of the sub processor 24-1.
ネットワーク接続部28は、いわゆるNIC(Network Interface Card)と呼ばれるLANインターフェース部であり、ネットワーク1を構成するLANケーブルとシステムバス29との間を接続している。
The
外部記録装置26は、情報処理装置2の動作に必要な基本ソフトウェアであるOS(オペレーティングシステム)のほか、後述する機能プログラムやドライバプログラム等のアプリケーションプログラム、および各種のデータを格納するものである。外部記録装置26としては、例えば、ハードディスク装置やリムーバブルハードディスク装置のほか、DVD(DigitalVersatileDisk) 装置、MO(Magneto Optical )ドライブおよびCD±RW(Compact Disc±ReWritable)ドライブ等の光ディスク装置や、メモリディスク、SRAM(Static Random Access Memory )等が用いられる。ディスクコントローラ25は、メインプロセッサ21が外部記録装置26に対してデータの読み書きを行う場合のアクセス制御を行うものである。
The
バスアービタ27は、メインプロセッサ21およびサブプロセッサ24−1〜24−nによるバス使用権を巡る調停処理を行うためのものである。具体的には、バスアービタ27は、各プロセッサからのバス使用要求を受けて、所定のアルゴリズムに従って、1つのプロセッサにのみバス使用権を付与する。これにより、システム29上でのデータの衝突を回避することができるようになっている。
The bus arbiter 27 is for performing arbitration processing for bus use rights by the
上記のように、マルチプロセッサユニット20内の各サブプロセッサ24−1〜24−nは、独立にプログラムを実行し、データを処理するようになっているが、異なるサブプロセッサがメインメモリ23内の同一領域に対して同時に読み出しまたは書き込みを行った場合には、データの不整合を生じる可能性がある。そこで、このマルチプロセッサユニット20では、そのようなデータ不整合を回避するために、以下のような排他的制御を行うようになっている。
As described above, each of the sub processors 24-1 to 24-n in the multiprocessor unit 20 executes a program and processes data independently, but different sub processors are included in the
図2は、メインメモリ23およびローカルメモリ24A−1〜24A−Nにおけるデータ配置構成と、そのアクセス制御方法とを説明するためのものである。
FIG. 2 is a diagram for explaining a data arrangement configuration in the
図2(A)に示したように、メインメモリ23は、複数のメモリロケーションMML0 〜MMLm(mは正の整数)によって構成される。各メモリロケーションMML0 〜MMLm(以下、総称する場合には、単にMMLと表記する。)は、アドレスを指定することによって特定される記憶領域である。各メモリローケーションMMLには、そこに格納されているデータの状態を示す情報を格納するための追加セグメントMSEG0〜MSEGmが割り振られている。各メモリロケーションMMLにはまた、アクセスキーAK0〜AKmも割り振られる。
As shown in FIG. 2A, the
各追加セグメントMSEG0〜MSEGm(以下、総称する場合には、単にMSEGと表記する。)は、F/Eビット、サブプロセッサIDおよびローカルメモリアドレスを含む。 Each additional segment MSEG0 to MSEGm (hereinafter collectively referred to simply as MSEG) includes an F / E bit, a sub processor ID, and a local memory address.
F/Eビットは、以下のように定義される。「F/Eビット=0」は、そのメモリロケーションMMLのデータが、サブプロセッサ24によって読み出されている処理中のデータ、または空き状態であるため最新データではない無効データであり、データの読み出しは不可であるが、書き込みは可能であることを示す。F/Eビットはデータ書き込み後に「F/Eビット=1」に設定されるようになっている。 The F / E bit is defined as follows. “F / E bit = 0” is the data being processed being read by the sub-processor 24 or invalid data that is not the latest data because it is empty, and the data is read out. Indicates that writing is possible. The F / E bit is set to “F / E bit = 1” after data writing.
「F/Eビット=1」は、そのメモリロケーションMMLのデータがサブプロセッサ24によって読み出されておらず、未処理の最新データであることを示す。「F/Eビット=1」の状態のメモリロケーションMMLのデータは、読み出し可能であるが、書き込み不可である。F/Eビットは、サブプロセッサ24によって読み出された後に「F/Eビット=0」に設定されるようになっている。 “F / E bit = 1” indicates that the data in the memory location MML is not read by the sub-processor 24 and is the latest unprocessed data. Data in the memory location MML in the state of “F / E bit = 1” can be read but cannot be written. The F / E bit is set to “F / E bit = 0” after being read by the sub-processor 24.
「F/Eビット=0(読み出し不可/書き込み可)」の状態にあるときに、そのメモリロケーションMMLについて読み出し予約を設定することは可能である。「F/Eビット=0」のメモリロケーションMMLに対する読み出し予約は、サブプロセッサ24が、読み出し予約を行うメモリロケーションMMLの追加セグメントMSEGに、読み出し予約情報としてそのサブプロセッサ24のサブプロセッサIDおよびローカルメモリアドレスを書き込むことで行われる。その後、データ書き込み側のサブプロセッサ24によって、読み出し予約されたメモリロケーションMMLにデータが書き込まれ、「F/Eビット=1(読み出し可/書き込み不可)」に設定されると、そこに書き込まれたデータは、予め読み出し予約情報として追加セグメントMSEGに書き込まれたサブプロセッサIDをもつサブプロセッサ24のローカルメモリアドレスに読み出されるようになっている。このような制御は、複数のサブプロセッサ24−1〜24−nによってデータを多段階に処理する必要がある場合に有効である。前段階の処理を行うサブプロセッサ24が処理済みのデータをメインメモリ23上の所定のアドレスに書き込んだ後、直ちに、後段階の処理を行う別のサブプロセッサ24が前処理後のデータを読み出すことが可能となるからである。
When in the state of “F / E bit = 0 (unreadable / writable)”, it is possible to set a read reservation for the memory location MML. For the read reservation for the memory location MML with the “F / E bit = 0”, the sub-processor 24 adds the sub-processor ID of the sub-processor 24 and the local memory as read reservation information to the additional segment MSEG of the memory location MML for which the read reservation is made This is done by writing an address. Thereafter, the data is written to the memory location MML reserved for reading by the
メインメモリ23には、複数のメモリロケーションの集合からなるサンドボックスSB0,SB1,…等が複数設けられている。各サンドボックスは、メインメモリ23内の領域を画定するものである。各サンドボックスは、各サブプロセッサ24に割り当てられ、その割り当てられたサブプロセッサのみが排他的に使用することができる。すなわち、各サブプロセッサ24は、原則として、自身に割り当てられたサンドボックスを使用できるが、この領域を超えてデータのアクセスを行うことはできないようになっている。
The
図2(B)に示したように、サブプロセッサ24−1内のローカルメモリ24A−1もまた、複数のメモリロケーションSMLによって構成される。各メモリロケーションSMLには、追加セグメントSSEG0〜SSEGk(以下、総称する場合には、単にSSEGと表記する。)が割り振られている。各追加セグメントSSEGは、ビジービットを含む。サブプロセッサ24がメインメモリ23内のデータを自身のローカルメモリ24AのメモリロケーションMMLに読み出すときには、対応するビジービットを1に設定して予約するようになっている。ビジービットが1であるメモリロケーションには、他のデータは格納することができない。ローカルメモリ24Aのメモリロケーションに読み出し後、ビジービットは0になり、任意の目的に使用できるようになる。
As shown in FIG. 2B, the
メインメモリ23の排他的な制御を実現するために、図2(C)に示したようなキー管理テーブルKMTが用いられる。このキー管理テーブルKMTは、例えばメモリコントローラ22内に設けられたSRAM(Static Random Access Memory )等の比較的高速のメモリ(図示せず)に格納される。キー管理テーブルKMT内の各エントリには、サブプロセッサIDとしてのPID1〜PIDn、サブプロセッサキーPK1〜PKn(以下、総称する場合には、単にPKと表記する。)、およびキーマスクKM1〜KMn(以下、総称する場合には、単にKMと表記する。)が含まれる。
In order to realize exclusive control of the
サブプロセッサ24がメインメモリ23を使用する際のプロセスは、以下のとおりである。まず、サブプロセッサ24はメモリコントローラ22に、読み出しまたは書き込みのコマンドを出力する。このコマンドは、自身のサブプロセッサIDと、メインメモリ23における使用要求先アドレスとを含む。メモリコントローラ22は、このコマンドを実行する前に、キー管理テーブルKMTを参照して、使用要求元のサブプロセッサ24のサブプロセッサキーPKを調べる。次に、メモリコントローラ22は、調べた使用要求元のサブプロセッサキーPKと、メインメモリ23内における使用要求先のメモリロケーションMML(図2(A))に割り振られたアクセスキーAKとを比較して、2つのキーが一致した場合にのみ、上記のコマンドを実行する。
The process when the
図2(C)に示したキー管理テーブルKMTのキーマスクKMは、その任意のビットが1になることによって、そのキーマスクKMに関連付けられたサブプロセッサキーPKの対応するビットを「0」または「1」に変化させることができるようになっている。例えば、サブプロセッサキーPKが「1010」であるとすると、原則として、このサブプロセッサキーPKと同じ「1010」というアクセスキーAKを持つサンドボックスSBへのアクセスだけが許容される。しかし、このサブプロセッサキーPKと関連付けられたキーマスクKMが、例えば「0001」に設定されている場合には、このキーマスクKMのうちのビットが「1」に設定された桁についてのみ、サブプロセッサキーPKとアクセスキーAKとの一致判定がマスクされて行われず、その結果、「1010」のみならず、「1011」というアクセスキーAKを持つサンドボックスSBへのアクセスも可能となる。 In the key mask KM of the key management table KMT shown in FIG. 2C, when the arbitrary bit becomes 1, the corresponding bit of the sub processor key PK associated with the key mask KM is set to “0” or It can be changed to “1”. For example, if the sub-processor key PK is “1010”, in principle, only access to the sandbox SB having the same access key AK “1010” as the sub-processor key PK is permitted. However, if the key mask KM associated with the sub-processor key PK is set to “0001”, for example, only the digit in which the bit of the key mask KM is set to “1” The matching determination between the processor key PK and the access key AK is not masked, and as a result, not only “1010” but also the sandbox SB having the access key AK “1011” can be accessed.
次に、各サブプロセッサ24がシステムバス29を介してメインメモリ23との間でデータ転送を行う場合の転送データ構造について説明する。なお、メインプロセッサ21がサブプロセッサとして動作する場合の転送データ構造も同様である。
Next, a transfer data structure when each
図3(A)に示したように、サブプロセッサ24とメインメモリ23との間でシステムバス29上を転送されるデータは、パケット形式のデータ構造を有する。このパケットデータは、パケットヘッダPHとデータ部DPとを含む。パケットヘッダPHは、圧縮状態を示す圧縮モードCMと、データの型(種類)を示すデータタイプDTと、転送先(図示せず)とを含む。データ部DPは、実行すべき処理を指示するコマンドと、その処理に必要なデータとを含む。
As shown in FIG. 3A, data transferred on the system bus 29 between the sub-processor 24 and the
圧縮モードCMは、図3(B)に示したように、例えば4ビットの情報よりなり、そのビット列状態に応じて、「圧縮オフ」,「A方式圧縮」,「B方式圧縮」,「C方式圧縮」,…等の情報を示す。ここで、「圧縮オフ」は、データ部DPのデータが非圧縮データであることを示し、「A方式圧縮」は、データ部DPのデータがA方式で圧縮されたデータであることを示す。データタイプDTは、図3(C)に示したように、例えば4ビットの情報よりなり、そのビット列状態に応じて、データ部DPのデータが「静止画」,「動画」,「音声」,「テキスト」,…等であることを示す。 As shown in FIG. 3B, the compression mode CM includes, for example, 4-bit information, and “compression off”, “A method compression”, “B method compression”, “C” are selected according to the bit string state. Information such as “system compression”,... Here, “compression off” indicates that the data in the data part DP is uncompressed data, and “A method compression” indicates that the data in the data part DP is data compressed by the A method. As shown in FIG. 3C, the data type DT is made up of, for example, 4-bit information, and the data in the data portion DP is “still image”, “moving image”, “audio”, Indicates “text”,...
本実施の形態の情報処理システムにおいては、各情報処理装置2〜5間におけるデータ送受信が、所定のフォーマットを有する制御パケットであるソフトウェアセルを用いて行われるようになっている。具体的には、ある情報処理装置内のマルチプロセッサユニット20に含まれるメインプロセッサ21が、コマンド、プログラムおよび装置情報等を含むデータから構成されたソフトウェアセルを生成し、ネットワークを介して他の情報処理装置と送受信するようになっている。以下、ソフトウェアセルについて説明する。
In the information processing system according to the present embodiment, data transmission / reception between the
図4は、ソフトウェアセルの構成例を表すものである。このソフトウェアセルは、送信元ID11、送信先ID12、応答先ID13、セルインターフェース14、DMA(Direct Memory Access)コマンド15、サブプロセッサプログラム16およびデータ17から構成される。
FIG. 4 shows a configuration example of the software cell. This software cell includes a transmission source ID 11, a
送信元ID11には、ソフトウェアセルの送信元である情報処理装置のIPアドレスおよびその情報処理装置内のマルチプロセッサユニットの情報処理装置ID、さらに、その情報処理装置内のマルチプロセッサユニットが備える各サブプロセッサの識別子(サブプロセッサID)が含まれる。 The transmission source ID 11 includes the IP address of the information processing device that is the transmission source of the software cell, the information processing device ID of the multiprocessor unit in the information processing device, and each sub-unit included in the multiprocessor unit in the information processing device. A processor identifier (sub-processor ID) is included.
送信先ID12および応答先ID13には、それぞれ、ソフトウェアセルの送信先である情報処理装置、およびソフトウェアセルの実行結果の応答先である情報処理装置について、送信元ID11に含まれる情報と同じ情報が含まれる。
The
セルインターフェース14は、ソフトウェアセルの利用に必要な情報であり、グローバルID141、サブプロセッサ数142、サンドボックスサイズ143および前回のソフトウェアセルID144を含む。グローバルID141は、ネットワーク全体を通してそのソフトウェアセルを一意的に識別できるものであり、送信元ID11およびソフトウェアセルの作成または送信の日時(日付および時刻)に基づいて作成されるようになっている。サブプロセッサ数142は、そのソフトウェアセルの実行に必要なサブプロセッサの数を示す。サンドボックスサイズ143は、そのソフトウェアセルの実行に必要なメインメモリ23内のメモリ量およびサブプロセッサ24のローカルメモリ24A内のメモリ量を示す。前回のソフトウェアセルID144は、ストリーミングデータなどのシーケンシャルな実行を要求する1グループのソフトウェアセル内における、前回転送されたソフトウェアセルの識別子である。
The
DMAコマンド15、サブプロセッサプログラム16およびデータ17は、ソフトウェアセルの実行セクション18を構成するものである。DMAコマンド15には、サブプロセッサプログラム16の起動に必要な一連のDMAコマンドが含まれ、サブプロセッサプログラム16には、サブプロセッサ24によって実行されるサブプロセッサプログラムが含まれる。データ17は、このサブプロセッサプログラム16を含むプログラムによって処理されるデータである。
The
DMAコマンド805には、ロードコマンド151、キックコマンド152、ステータス要求コマンド153、ステータス返信コマンド154、機能プログラム実行コマンド155が含まれる。
The DMA command 805 includes a
ロードコマンド151は、メインメモリ23内の情報をサブプロセッサ24内のローカルメモリ24Aにロードするコマンドであり、ロードコマンド本体部151Aのほかに、メインメモリアドレス151B、サブプロセッサID151Cおよびローカルメモリアドレス151Dを含む。メインメモリアドレス151Bは、メインメモリ23内の情報ロード元領域のアドレスを示す。サブプロセッサID151CH、情報のロード先であるサブプロセッサ24の識別子であり、ローカルメモリアドレス151Dは、ローカルメモリ24A内の情報ロード先アドレスを示す。
The
キックコマンド152は、プログラムの実行を開始するコマンドであり、キックコマンド本体部152Aのほかに、サブプロセッサID152Bおよびプログラムカウンタ152Cを含む。サブプロセッサID152Bは、キック対象のサブプロセッサを識別するためのものであり、プログラムカウンタ152Cは、プログラム実行用プログラムカウンタのためのアドレスを与えるものである。
The kick command 152 is a command for starting execution of the program, and includes a sub processor ID 152B and a
ステータス要求コマンド153は、送信先ID12が示す情報処理装置の装置情報を応答先ID13が示す情報処理装置宛に送信することを要求するコマンドである。また、ステータス返信コマンド154は、ステータス要求コマンド153を受信した情報処理装置が、自身の装置情報を、そのステータス要求コマンド153に含まれる応答先ID13が示す情報処理装置に返信するためのコマンドである。DMAコマンド15がステータス返信コマンド154である場合には、実行セクション18のデータ17の領域に装置情報が格納されるようになっている。
The status request command 153 is a command for requesting transmission of the device information of the information processing device indicated by the
機能プログラム実行コマンド155は、ある情報処理装置が他の情報処理装置に対して、機能プログラムの実行を要求するコマンドである。コマンド本体部155Aと、機能プログラムID155Bとを含む。機能プログラム実行コマンド155を受信した情報処理装置内のマルチプロセッサユニット20では、メインプロセッサ21が、機能プログラムID155Bに基づき、起動すべき機能プログラムを識別してメインメモリ23にロードすると共に、そのロードされた機能プログラムを実行するようになっている。
The function
図5はステータス返信コマンド154のデータ構成例を表すものである。このステータス返信コマンド154は、コマンド本体部154Aと、データ部154Bとを含む。データ部154Bは、ステータス要求コマンド153を受信した情報処理装置の装置情報を示すものである。この装置情報は、情報処理装置ID154B−1、情報処理装置種別ID154B−2、MS(マスタ/スレーブ)ステータス154B−3、メインプロセッサ動作周波数154B−4、メインプロセッサ使用率154B−5、サブプロセッサ数154B−6、サブプロセッサID154B−7、サブプロセッサステータス154B−8、サブプロセッサ使用率154B−9、メインメモリ総容量154B−10、メインメモリ使用量154B−11、外部記録部数154B−12、外部記録部ID154B−13、外部記録部種別ID154B−14、外部記録部総容量154B−15および外部記録部使用量154B−16を含む。これらの装置情報は、そのすべてがメインメモリ23内に集約して格納されるようになっている。
FIG. 5 shows a data configuration example of the
情報処理装置ID154B−1は、情報処理装置内のマルチプロセッサユニット20を識別するための識別子であり、ステータス返信コマンド154を送信する情報処理装置を示すものである。情報処理装置ID154B−1は、電源投入時、その情報処理装置内のマルチプロセッサユニット20に含まれるメインプロセッサ21によって生成されるようになっている。具体的には例えば、電源投入時の日時、情報処理装置のIPアドレスおよび情報処理装置内のマルチプロセッサユニット20に含まれるサブプロセッサ24の数などに基づいて生成される。
The information
情報処理装置種別ID154B−2には、その情報処理装置の特徴を表す値が含まれる。情報処理装置の特徴とは、例えば本実施の形態の場合、TV装置、DVDレコーダ、マルチプレーヤなどである。また、情報処理装置種別ID154B−2は、映像音声記録、映像音声再生など、装置の機能を表すものであってもよい。情報処理装置の特徴や機能を表す値は予め決定されているものとし、情報処理装置種別ID154B−2に基づいて、その情報処理装置の特徴や機能を把握することが可能である。
The information processing
MSステータス154B−3は、後述のように各情報処理装置がマスタまたはスレーブのいずれとして動作しているかを表すものである。具体的には例えば、MSステータス154B−8が「0」に設定されている場合にはマスタとして動作していることを示し、「1」に設定されている場合にはスレーブ装置として動作していることを示す。
The
メインプロセッサ動作周波数154B−4は、マルチプロセッサユニット内のメインプロセッサの動作周波数を表す。また、メインプロセッサ使用率154B−5は、そのメインプロセッサで現在実行中の全てのプログラムについての、そのメインプロセッサでの使用率を表す。メインプロセッサ使用率154B−5は、対象メインプロセッサの全処理能力に対する使用中の処理能力の比率を表した値であり、例えばプロセッサの処理能力評価のための単位であるMIPS(Million Instructions Per Second )を単位として算出され、あるいは単位時間あたりのプロセッサ使用時間に基づいて算出されるようになっている。後述のサブプロセッサ使用率154B−9についても同様にして算出されるようになっている。
The main
サブプロセッサ数154B−6は、そのマルチプロセッサユニットが備えるサブプロセッサの数を表し、サブプロセッサID154B−7は、そのマルチプロセッサユニット内の各サブプロセッサを識別するための識別子である。
The number of
サブプロセッサステータス154B−8は、各サブプロセッサの状態を表すものであり、unused(未使用),reserved(予約済み),busy(使用中)などの状態がある。unusedは、そのサブプロセッサが現在使用されてなく、使用の予約もされていない状態を表し、reservedは、現在は使用されていないが、予約されている状態を表し、busyは、現在使用中であることを表すようになっている。
The
サブプロセッサ使用率154B−9は、そのサブプロセッサで現在実行中の、あるいはそのサブプロセッサでの実行が予約されているプログラムについての、そのサブプロセッサでの使用率を表すものである。すなわち、サブプロセッサ使用率154B−9は、サブプロセッサステータスがbusyである場合には、現在の使用率を示し、サブプロセッサステータスがreservedである場合には、後に使用される予定の推定使用率を示す。
The sub
サブプロセッサID154B−7、サブプロセッサステータス154B−8およびサブプロセッサ使用率154B−9は、1つのサブプロセッサ24に対して一組設定されるものであり、1つのマルチプロセッサユニット20内のサブプロセッサ数の組だけ設定されるようになっている。
The
メインメモリ総容量154B−10およびメインメモリ使用量154B−11は、それぞれ、メインメモリ23の総容量および現在使用中の容量を表すものである。
The main memory
外部記録装置数154B−12は、そのマルチプロセッサユニット20に接続されている外部記録装置26の数を表す。外部記録装置ID154B−13は、そのマルチプロセッサユニットに接続されている外部記録装置を一意的に識別する情報である。外部記録装置種別ID154B−14は、その外部記録装置の種類(例えば、ハードディスク、CD±RW、DVD±RW、メモリディスク、SRAM、ROMなど)を表す。また、外部記録装置総容量154B−15および外部記録装置使用量154B−16は、それぞれ、外部記録装置ID154B−13によって識別される外部記録装置26の総容量および現在使用中の容量を表す。
The number of
外部記録装置ID154B−13、外部記録装置種別ID154B−14、外部記録装置総容量154B−15および外部記録装置使用量154B−16は、1つの外部記録装置26に対して一組設定されるものであり、そのマルチプロセッサユニット20に接続されている外部記録装置数の組だけ設定されるようになっている。
The external
次に、情報処理装置2が保有するソフトウェアについて説明する。この情報処理装置2が保有するソフトウェアには、制御プログラム、機能プログラムおよびデバイスドライバがある。これらのソフトウェアは、そのマルチプロセッサユニット20に接続される外部記録装置26に予め記録されており、情報処理装置2に電源が投入されたときに、外部記録装置26から読み出されるようになっている。
Next, software owned by the
制御プログラムは、情報処理システム全体の構成を制御および管理する機能を有し、マルチプロセッサユニット20のメインプロセッサ21が実行するソフトウェアである。この制御プログラムは、MS(マスタ/スレーブ)マネージャおよび能力交換プログラムを含む。MSマネージャは、後述するように各情報処理装置がマスタであるかスレーブであるかという情報を設定する機能を有する。また、能力交換プログラムは、各情報処理装置が保有する装置情報を取得する機能を有する。
The control program is software executed by the
機能プログラムは、情報処理装置2におけるアプリケーション処理動作を担う機能を有し、メインプロセッサ21が実行するソフトウェアである。例えば、記録用プログラム、再生用プログラムおよび素材検索用プログラムなど、その情報処理装置に応じたものを含む。
The function program is software executed by the
デバイスドライバは、マルチプロセッサユニット20のデータ入出力(送受信)用のソフトウェアであり、例えば、放送受信用ドライバ、モニタ出力用ドライバ、ビットストリーム入出力用ドライバ、ネットワーク入出力用ドライバなど、その情報処理装置に応じたものを含む。 The device driver is software for data input / output (transmission / reception) of the multiprocessor unit 20, and includes information processing such as a broadcast reception driver, a monitor output driver, a bitstream input / output driver, and a network input / output driver. Including those according to the device.
次に、以上のような構成の情報処理システムの動作を説明する。 Next, the operation of the information processing system configured as described above will be described.
この情報処理システムでは、情報処理装置2〜4が、図4に示したソフトウェアセルを用いて互いの間で装置情報の送受信を行う。これにより、いずれかの情報処理装置がマスタとして設定され、他の情報処理装置がスレーブとして設定される。各情報処理装置は、定期的にDMAコマンドとしてのステータス要求コマンドを含むソフトウェアセルをネットワーク上の他の情報処理装置に送信してステータス情報を照会することにより、他の情報処理装置の状況を監視する。マスタとして設定された情報処理装置のメインメモリ23には、自装置を含むすべての情報処理装置の装置情報が集約される。各情報処理装置は、ソフトウェアセルを用いて必要な処理を他の情報処理装置に委託し、実行させることができる。
In this information processing system, the
他の情報処理装置からコマンド実行の指示がなされ、または、ユーザからの操作によって直接に処理指示を受けた情報処理装置では、メインプロセッサ21の制御の下、複数のサブプロセッサ24−1〜24−nが、与えられた処理を並列に実行する。このとき、マルチプロセッサユニット20では、メインメモリ23のサンドボックスに関する排他制御が行われる。まず、この排他制御について説明する。
In an information processing apparatus that is instructed to execute a command from another information processing apparatus or receives a processing instruction directly by a user operation, a plurality of sub-processors 24-1 to 24- n executes a given process in parallel. At this time, the multiprocessor unit 20 performs exclusive control related to the sandbox of the
サブプロセッサ24−1〜24−nによってデータを多段階に処理する必要がある場合、図2において説明したようなメモリ構造に基づく制御を行うことによって、前段階の処理を行うサブプロセッサ24と、後段階の処理を行うサブプロセッサ24のみが、メインメモリ23の所定アドレスにアクセスできるようになり、データを保護することができる。
When it is necessary to process data in multiple stages by the sub-processors 24-1 to 24-n, the sub-processor 24 that performs the process in the previous stage by performing control based on the memory structure as described in FIG. Only the sub-processor 24 that performs the subsequent processing can access a predetermined address in the
サブプロセッサ24−1がメインメモリ23を使用する際のプロセスは、以下のとおりである。まず、サブプロセッサ24−1は、メモリコントローラ22に対して、読み出しまたは書き込みのコマンドを出力する。このコマンドには、自身のサブプロセッサIDと、メインメモリ23における使用要求先アドレスとを含める。メモリコントローラ22は、このコマンドを実行する前に、キー管理テーブルKMTを参照して、要求元のサブプロセッサ24−1のサブプロセッサキーPKを調べる。次に、メモリコントローラ22は、調べた要求元のサブプロセッサ24−1のサブプロセッサキーPKと、メインメモリ23内における使用要求先のメモリロケーションMML(図2(A))に割り振られたアクセスキーAKとを比較して、2つのキーが一致した場合にのみ、上記のコマンドを実行する。
The process when the sub processor 24-1 uses the
また、マルチプロセッサユニット20では、キー管理テーブルKMTのキーマスクKMを利用することにより、以下のような制御が可能である。 In the multiprocessor unit 20, the following control is possible by using the key mask KM of the key management table KMT.
すなわち、情報処理装置2の起動直後においては、キーマスクKMの値は全てゼロである。ここでは、メインプロセッサ21内のプログラムはサブプロセッサ24内のプログラムと連携動作するものとする。サブプロセッサ24−1より出力された処理結果データを一旦メインメモリ23に格納し、サブプロセッサ24−2に入力する場合を想定する。この場合、メインメモリ23における格納領域は、どちらのサブプロセッサ24−1,24−2からもアクセス可能である必要がある。そのような場合に、メインプロセッサ21内のプログラムは、キーマスクKMの値を適切に変更し、複数のサブプロセッサ24からアクセスできる領域をメインメモリ23内に設けることにより、サブプロセッサ24による多段階的処理を可能にする。
That is, immediately after the
例えば、以下の手順で多段階処理を行う場合を想定する。
(1)他の情報処理装置からのデータ入力
(2)サブプロセッサ24−1による処理
(3)メインメモリ23内のメモリロケーションSML1への格納
(4)サブプロセッサ24−2による処理
(5)メインメモリ23内のメモリロケーションSML2への格納
For example, a case where multistage processing is performed in the following procedure is assumed.
(1) Data input from other information processing apparatus (2) Processing by sub-processor 24-1 (3) Storage in memory location SML1 in main memory 23 (4) Processing by sub-processor 24-2 (5) Main Store to memory location SML2 in
この場合、例えば、サブプロセッサ24−1のサブプロセッサキーPK=「0100」、メインメモリ23内のメモリロケーションSML1のアクセスキーAK=「0100」、サブプロセッサ24−2のサブプロセッサキーPK=「0101」、メインメモリ23内のメモリロケーションSML2のアクセスキーAK=「0101」という設定であったとすると、このままでは、サブプロセッサ24−2はメインメモリ23内のメモリロケーションSML1にアクセスすることができない。そこで、サブプロセッサ24−2のキーマスクKM2を「0001」に設定することにより、サブプロセッサ24−2によるメインメモリ23内のメモリロケーションSML1へのアクセスを可能にすることができる。
In this case, for example, the sub processor key PK = “0100” of the sub processor 24-1, the access key AK = “0100” of the memory location SML1 in the
次に、図6を参照して、マルチプロセッサユニット20内のサブプロセッサ24による並列処理動作について説明する。図6は、あるサブプロセッサ24がメインメモリ23から読み出したデータに対して所定の演算処理を行った後、その処理結果をメインメモリ23に書き戻す場合の処理手順を表すものである。なお、サブプロセッサ24−1〜24−nにおける各動作はすべて同様であるので、ここでは、代表してサブプロセッサ24−1について説明する。
Next, parallel processing operations performed by the sub-processors 24 in the multiprocessor unit 20 will be described with reference to FIG. FIG. 6 shows a processing procedure when a
サブプロセッサ24−1では、図示しない制御部が、バスアービタ27からバス使用権を得て、演算器24C−1の演算処理に必要なデータをメインメモリ23の所定のメモリロケーションMMLからローカルメモリ24A−1の所定のメモリロケーションSMLに転送する(ステップS101)。このデータは、図3(A)に示したようなパケットデータとして転送される。
In the sub-processor 24-1, a control unit (not shown) obtains the right to use the bus from the bus arbiter 27 and transfers data necessary for the arithmetic processing of the
サブプロセッサ24−1の圧縮伸長器24B−1は、ローカルメモリ24A−1に格納されたデータのパケットヘッダPHを解析してデータ伸張の要否を判定する(ステップS102)。この結果、このデータが圧縮されたものであったときには、伸長処理を行うべきと判定し(ステップS103;Y)、その圧縮モード(図3(B))に対応した方式で伸長処理を行う(ステップS104)。例えば、パケットヘッダPHの圧縮モードCMが「0001」であったとすると、圧縮伸長器24B−1は、そのデータが「A方式」で圧縮されたものであると判定し、その「A方式」に対応した伸長方式「a方式」で伸長処理を行い、その伸長されたデータをローカルメモリ24A−1に書き戻す。一方、圧縮モードCMが「0000」であったときには、非圧縮データであると判定し、伸長処理を行わず(ステップS103;N)、直接、ステップS105の演算処理に移行する。なお、本実施の形態では、パケットヘッダPHのデータタイプDTの情報は使用しないので、不要である。このデータタイプDTは、後述する変形例において使用される。
The compression /
演算器24C−1は、ローカルメモリ24A−1の所定のメモリロケーションSMLに格納されたデータに対して、演算処理を行う(ステップS105)。この演算処理は、予めメインプロセッサ21によって各サブプロセッサ24−1〜24−nに割り当てられたものであり、例えば、画像処理、音響処理および数値演算等である。演算器24C−1は、演算結果を、再びローカルメモリ24A−1の所定のメモリロケーションSMLに格納する。
The
次に、圧縮伸長器24B−1は、ローカルメモリ24A−1に格納された演算結果データに対して圧縮処理を行うことの妥当性を判定する(ステップS106)。データ転送量が多く圧縮する必要がある場合は圧縮をすることが妥当であると判定し(ステップS107;Y)、データ転送量が少なく圧縮する必要がない場合は圧縮をしないことが妥当であると判定する(ステップS107;N)。この判定は、例えば、データ転送所要時間Ttと演算所要時間Tpとの比較結果に基づいて行う。ここで、データ転送所要時間Ttは、圧縮処理をせずにそのままデータをシステムバス29上に送出してメインメモリ23に転送する場合に要する時間である。演算所要時間Tpは、次にバス使用権を獲得しているサブプロセッサ24(例えば24−2)において演算処理に要する時間である。データ転送所要時間Ttと演算所要時間Tpとの関係は静的に見積もることが可能なので、プロセッサ24−1を起動する時点で出力時の圧縮処理の要否を設定し、効果の得られない場合には圧縮処理を行わないようにすることができる。例えば、元々のデータの転送量が少ない一方、演算に長時間を要することから、あるプロセッサが転送処理を終えても他のプロセッサが転送を行える状態にないような場合、データを圧縮して転送することの効果はなく、データをそのまま出力しても全体的なパフォーマンスには影響しない。したがって、例えばTp<Ttであるような場合には、圧縮処理を行わないようにすることで、無駄なエネルギーを消費せずに済む。
Next, the compression /
圧縮伸長器24B−1は、圧縮処理の妥当性ありと判定したときは、ローカルメモリ24A−1のデータに対して圧縮処理を実行し、その結果を、一旦、ローカルメモリ24A−1に書き戻す(ステップS108)。一方、圧縮処理の妥当性なしと判定したときは、圧縮せず、非圧縮データ(ローカルメモリ内の生データ)を選択する(ステップS112)。
When the compression /
圧縮処理を実行した場合、圧縮伸長器24B−1はさらに、圧縮結果を評価する(ステップS109)。この評価は、例えば圧縮前のデータ量と圧縮後のデータ量とを比較することで行う。具体的には、圧縮前データ量に対する圧縮後データ量の比である圧縮率が所定のしきい値を越える場合には、圧縮効果が大きいと判定し(ステップS110;Y)、圧縮データを選択する(ステップS111)。一方、圧縮率が所定のしきい値以下の場合には、圧縮効果が少ないと判定し(ステップS110;N)、非圧縮データを選択する(ステップS112)。
When the compression process is executed, the compression /
このとき、圧縮伸長器24B−1は、上記において選択されたデータを含むデータ部DPにパケットヘッダPHを付加してデータパケット(図3(A))を生成し(ステップS113)、システムバス29上に送出する。このパケットヘッダPHには、圧縮モードとして、圧縮をしたか否かの情報のほか、圧縮した場合にはその圧縮方式の情報が含まれる。この圧縮モードによって転送先のメインメモリ23に圧縮結果を通知することができる。
At this time, the compression /
このようにして、演算器24C−1によって演算処理された演算結果データが、そのまま、または圧縮されてローカルメモリ24−1からメインメモリ23へと転送され、このメインメモリ23における所定のメモリロケーションMMLに格納される(ステップS114)。
In this way, the operation result data calculated by the
ここで、本実施の形態のマルチプロセッサユニット20による特徴的作用を説明する前に、まず図10を参照して、本実施の形態に対する比較例について説明する。 Here, before describing the characteristic operation of the multiprocessor unit 20 of the present embodiment, a comparative example with respect to the present embodiment will be described with reference to FIG.
図10は、比較例における並列処理動作のタイミングを表すものである。この比較例は、各サブプロセッサにおいて圧縮処理をせずにデータ転送を行う場合を想定したものである。横軸は時間を示し、縦軸は並列度(すなわち、並列処理に携わるサブプロセッサの数)を示す。 FIG. 10 shows the timing of the parallel processing operation in the comparative example. This comparative example assumes the case where data transfer is performed without compression processing in each sub-processor. The horizontal axis represents time, and the vertical axis represents the degree of parallelism (that is, the number of sub-processors engaged in parallel processing).
この比較例では、3つのサブプロセッサA,B,Cが並列処理動作を行うものとする。t0の時点で、システムバスに接続されたサブプロセッサAのローカルメモリに対してメインメモリから入力データの転送が行われる。t2の時点で、サブプロセッサAへの入力データの転送が完了し、サブプロセッサAが演算処理を開始するが、これと同時に、サブプロセッサBへのデータ転送(入力)が開始する。サブプロセッサAはt3の時点で演算処理を終えるが、この時点ではサブプロセッサBがデータ転送途中のため、サブプロセッサAはデータ転送(出力)の開始待ちになる。 In this comparative example, it is assumed that three sub-processors A, B, and C perform parallel processing operations. At time t0, input data is transferred from the main memory to the local memory of the sub processor A connected to the system bus. At time t2, transfer of input data to the sub processor A is completed, and the sub processor A starts arithmetic processing. At the same time, data transfer (input) to the sub processor B starts. The sub processor A finishes the arithmetic processing at time t3. At this point, the sub processor A is in the middle of data transfer, so the sub processor A waits for the start of data transfer (output).
t4の時点でサブプロセッサBへのデータ入力が完了し、サブプロセッサBが演算処理を開始するが、これと同時に、サブプロセッサCへのデータ転送(入力)が開始する。サブプロセッサBはt5の時点で演算処理を終えるが、この時点ではサブプロセッサCがデータ転送途中のため、サブプロセッサBはデータ転送(出力)の開始待ちになる。 At time t4, data input to the sub processor B is completed, and the sub processor B starts arithmetic processing. At the same time, data transfer (input) to the sub processor C starts. The sub processor B finishes the arithmetic processing at the time t5. At this time, the sub processor C is in the middle of data transfer, so the sub processor B waits for the start of data transfer (output).
t6の時点でサブプロセッサCへのデータ入力が完了し、サブプロセッサCが演算処理を開始する。この時点でバスが空くので、サブプロセッサAから出力結果が転送される。t7の時点でサブプロセッサCは演算処理を終える。t8の時点でサブプロセッサAからの出力が完了すると、この時点でサブプロセッサBがデータ転送(出力)を開始する。t10の時点でサブプロセッサBからの出力が完了すると、この時点でサブプロセッサCがデータ転送(出力)を開始する。サブプロセッサCからの出力はt12の時点で完了する。 At time t6, data input to the sub processor C is completed, and the sub processor C starts arithmetic processing. Since the bus is free at this time, the output result is transferred from the sub processor A. At time t7, the sub processor C finishes the arithmetic processing. When the output from the sub-processor A is completed at time t8, the sub-processor B starts data transfer (output) at this time. When the output from the sub processor B is completed at time t10, the sub processor C starts data transfer (output) at this time. The output from the sub processor C is completed at time t12.
このように各サブプロセッサがメインメモリを共有しているため、メインメモリとサブプロセッサA,B,C内のローカルメモリとの間のデータ転送は、図10に示したように逐次的に発生する。ここに示した比較例では、t3とt4との間およびt5とt6との間で、メモリ間のデータ転送がボトルネック(支配的)になり、サブプロセッサが待ち状態になっている。したがって、これ以上サブプロセッサの並列度を増やしても処理能力が向上しないことがわかる。 Since each sub-processor shares the main memory in this way, data transfer between the main memory and the local memory in the sub-processors A, B, and C occurs sequentially as shown in FIG. . In the comparative example shown here, the data transfer between the memories becomes a bottleneck (dominant) between t3 and t4 and between t5 and t6, and the sub processor is in a waiting state. Therefore, it can be seen that the processing capability does not improve even if the degree of parallelism of the sub processors is further increased.
これに対して、本実施の形態では、各サブプロセッサに圧縮伸長器24B−1を設けることにより、システムバス29上を転送するデータを圧縮し、バスから受信したデータを伸張する機能を提供する。この機能により、メインメモリ23とサブプロセッサ24内のローカルメモリ14Aとの間の転送データは圧縮され、メモリ間のデータ転送時間がシステム全体のボトルネックになることを解消することが可能になる。以下、図7を参照して本実施の形態における並列処理について説明する。
On the other hand, in the present embodiment, a compression /
図7は、本実施の形態のマルチプロセッサユニット20における並列処理動作のタイミングを表すものである。この例は、サブプロセッサ24−1〜24−4において常に圧縮処理をしたデータを転送する場合を想定したものである。横軸は時間を示し、縦軸は並列度を示す。 FIG. 7 shows the timing of the parallel processing operation in the multiprocessor unit 20 of the present embodiment. In this example, it is assumed that data that is always compressed in the sub-processors 24-1 to 24-4 is transferred. The horizontal axis represents time, and the vertical axis represents the degree of parallelism.
図7では、t0の時点で、システムバスに接続されたサブプロセッサ24−1に対してメインメモリからデータ転送(入力)が行われる。t1の時点でサブプロセッサ24−1へのデータ転送が完了すると、サブプロセッサ24−1がデータの伸張を開始すると同時に、サブプロセッサ24−2に対してデータ転送が開始される。 In FIG. 7, at time t0, data transfer (input) is performed from the main memory to the sub-processor 24-1 connected to the system bus. When the data transfer to the sub-processor 24-1 is completed at the time t1, the sub-processor 24-1 starts data expansion, and at the same time, the data transfer to the sub-processor 24-2 is started.
t2の時点で、サブプロセッサ24−2はデータ転送を完了し、伸張処理を開始する。この時点では、サブプロセッサ24−1は信号処理の途中であってシステムバス29が空いているため、メインメモリ23からサブプロセッサ24−3に対してデータ転送を開始する。
At time t2, the sub processor 24-2 completes data transfer and starts decompression processing. At this time, since the sub processor 24-1 is in the middle of signal processing and the system bus 29 is free, data transfer from the
t3の時点で、サブプロセッサ24−3はデータ転送を完了し、伸張処理を開始する。この時点では、サブプロセッサ24−1は信号処理の途中であってシステムバス29が空いているため、メインメモリ23からサブプロセッサ24−4に対してデータ転送を開始する。
At time t3, the sub processor 24-3 completes data transfer and starts decompression processing. At this time, since the sub-processor 24-1 is in the middle of signal processing and the system bus 29 is free, data transfer from the
t4の時点で、サブプロセッサ24−4はデータ転送を完了し、伸張処理を開始する。この時点では、サブプロセッサ24−1はデータの圧縮処理まで終了しているので、サブプロセッサ24−1からメインメモリ23へ演算結果データが転送される。
At time t4, the sub processor 24-4 completes the data transfer and starts the decompression process. At this time, since the sub processor 24-1 has finished the data compression processing, the operation result data is transferred from the sub processor 24-1 to the
t5の時点では、サブプロセッサ24−1からメインメモリ23への演算結果データの転送出力が完了すると共に、サブプロセッサ24−2からメインメモリ23への演算結果データの転送出力が開始する。t6の時点では、サブプロセッサ24−2からの演算結果データの転送出力が完了すると共に、サブプロセッサ24−3からの演算結果データの転送出力が開始する。t7の時点では、サブプロセッサ24−3からの演算結果データの転送出力が完了すると共に、サブプロセッサ24−4からの演算結果データの転送出力が開始する。そして、t8の時点で、サブプロセッサ24−4からの演算結果データの転送出力が完了する。
At time t5, the transfer output of the operation result data from the sub processor 24-1 to the
本実施の形態の並列処理では、データが圧縮された状態でシステムバス上を転送されるため転送時間は短くなる。一方、演算の前処理としてデータの伸張処理、演算の後処理としてデータの圧縮処理が追加されるため、全体の演算時間は長くなる。結果として、マルチプロセッサユニット20のボトルネック箇所がデータ転送時間から演算時間に転換される。ところが、演算時間の増加による性能低下は、サブプロセッサの並列度を上げることで容易に解決することができる。このため、マルチプロセッサユニット20全体で見ると処理能力が向上する。 In the parallel processing of this embodiment, the transfer time is shortened because the data is transferred on the system bus in a compressed state. On the other hand, since data decompression processing is added as pre-processing of computation and data compression processing is added as post-processing of computation, the overall computation time is increased. As a result, the bottleneck portion of the multiprocessor unit 20 is converted from the data transfer time to the calculation time. However, the performance degradation due to the increase in computation time can be easily solved by increasing the parallelism of the sub processors. For this reason, the processing capability is improved when the multiprocessor unit 20 is viewed as a whole.
ところで、各サブプロセッサでは各種の演算が行われることが想定される。演算によってはデータ量が少なく転送時間がボトルネックにならない場合がある。また、データによっては圧縮してもそれほど効果の得られないものもあり、そのような場合は受信側で伸張処理を行う分、システムのリソースを無駄にすることになる。 By the way, it is assumed that various operations are performed in each sub-processor. Depending on the computation, the amount of data is small and the transfer time may not become a bottleneck. In addition, some data may not be very effective even when compressed, and in such a case, system resources are wasted as much as decompression processing is performed on the receiving side.
図8は、本実施の形態におけるマルチプロセッサユニット20の各サブプロセッサ24−1〜24−nにおいてデータ圧縮の必要なしと判定された場合の動作タイミングを表すものである。 FIG. 8 shows the operation timing when it is determined that data compression is not necessary in each of the sub processors 24-1 to 24-n of the multiprocessor unit 20 in the present embodiment.
この例では、t0の時点でメインメモリからサブプロセッサ24−1に対してデータ転送が行われる。t1の時点でサブプロセッサ24−1へのデータ転送が完了すると、サブプロセッサ24−1はデータの伸張を開始する。これと同時に、サブプロセッサ24−2に対してデータ転送が開始される。t2の時点でサブプロセッサ24−2はデータ転送を完了し、伸張処理を開始する。この時点では、サブプロセッサ24−1は信号処理の途中であってシステムバスが空いているため、サブプロセッサ24−3に対してデータ転送を開始する。t3の時点でサブプロセッサ24−3はデータ転送を完了し、伸張処理を開始する。この時点で、サブプロセッサ24−1は演算を終えているので、圧縮要否判定において、データ圧縮をしないことを決定し、直ちに演算結果の転送を開始する。t4の時点では、サブプロセッサ24−1からのデータ転送が既に完了している。このため、サブプロセッサ24−2は圧縮要否判定において、データ圧縮をしないことを決定し、直ちに演算結果の転送を開始する。t5の時点では、サブプロセッサ24−2からのデータ転送は既に完了している。このため、サブプロセッサ24−3は圧縮要否判定において、データ圧縮をしないことを決定し、直ちに演算結果の転送を開始する。t6の時点で、サブプロセッサ24−3からのデータ転送は完了する。 In this example, data transfer is performed from the main memory to the sub processor 24-1 at time t0. When the data transfer to the sub processor 24-1 is completed at the time t1, the sub processor 24-1 starts data expansion. At the same time, data transfer is started to the sub-processor 24-2. At time t2, the sub processor 24-2 completes the data transfer and starts the decompression process. At this time, since the sub-processor 24-1 is in the middle of signal processing and the system bus is free, data transfer to the sub-processor 24-3 is started. At time t3, the sub processor 24-3 completes data transfer and starts decompression processing. At this point, since the sub-processor 24-1 has finished the calculation, it determines in the compression necessity determination that data compression is not to be performed, and immediately starts the transfer of the calculation result. At time t4, data transfer from the sub-processor 24-1 has already been completed. For this reason, the sub-processor 24-2 determines not to compress data in the determination of whether or not compression is necessary, and immediately starts to transfer the calculation result. At time t5, data transfer from the sub-processor 24-2 has already been completed. For this reason, the sub-processor 24-3 determines that data compression is not performed in the determination of whether compression is necessary, and immediately starts to transfer the calculation result. At time t6, the data transfer from the sub processor 24-3 is completed.
このように、事前に圧縮が効果的かを判定し、処理の要否を決定するように構成することにより、上記のような問題(サブプロセッサのリソースの無駄遣い)を回避することができる。すなわち、元々のデータの転送量が少なく、あるサブプロセッサが転送処理を終えても他のサブプロセッサが転送を行える状態にない(まだ演算処理中である)こともある。このような場合には、データを圧縮して転送する効果はなく、データをそのまま出力しても全体的なパフォーマンスには影響しない。例えば図8において、t4に着目すると、この時点ではサブプロセッサ24−1は転送を終えており、次の転送を開始するために演算の終了待ちになる。これはシステムのボトルネックが転送処理にないことを意味している。したがって、圧縮処理を行う必要はない。演算時間とデータ転送時間の関係は静的に見積もることが可能なので、プロセッサを起動する時点で出力段の圧縮処理有り無しを設定し、効果の得られない圧縮処理を行わないことでプロセッサのリソースの無駄遣いを防ぐことができる。 Thus, by determining whether the compression is effective in advance and determining whether or not the processing is necessary, it is possible to avoid the above-described problem (sub processor resource waste). That is, there is a case where the original data transfer amount is small, and even when one sub processor finishes the transfer process, another sub processor is not ready to perform the transfer (still being processed). In such a case, there is no effect of compressing and transferring the data, and output of the data as it is does not affect the overall performance. For example, in FIG. 8, when attention is paid to t4, the sub-processor 24-1 has finished the transfer at this point, and waits for the end of the calculation in order to start the next transfer. This means that there is no system bottleneck in the transfer process. Therefore, there is no need to perform compression processing. Since the relationship between the computation time and the data transfer time can be estimated statically, the processor resources are set by setting whether or not the output stage compression processing is performed at the time of starting the processor, and not performing the compression processing that is not effective. Can be avoided.
また、一般に、予測符号化によるデータ圧縮処理では、信号間の相関が強いほど圧縮効率が高くなり、相関が弱い場合は差分を伝送するような圧縮方式では圧縮の効果が十分得られない場合がある。この点に関し、本実施の形態では、システムバスに出力する信号を圧縮した後に圧縮結果を評価し、圧縮率があるしきい値を超えていない場合は圧縮前の信号をバスに送信するようにしている。この場合には、データ転送量は減らず、転送元のサブプロセッサでは圧縮処理を行った分だけ無駄なエネルギーを消費したことになるが、その反面、その信号が他のサブプロセッサの入力となったときに伸張処理を行う必要がなくなるため、そのサブプロセッサにおいて、さらなる無駄なエネルギーの消費を防ぐことが可能になる。 In general, in data compression processing by predictive coding, the compression efficiency increases as the correlation between signals increases, and if the correlation is weak, the compression method that transmits the difference may not provide a sufficient compression effect. is there. In this regard, in this embodiment, the compression result is evaluated after the signal output to the system bus is compressed, and if the compression rate does not exceed a certain threshold value, the signal before compression is transmitted to the bus. ing. In this case, the data transfer amount does not decrease, and the transfer-source subprocessor consumes wasted energy for the compression processing, but on the other hand, the signal becomes an input to the other subprocessors. In this case, it is not necessary to perform the decompression process, so that it is possible to prevent further wasteful energy consumption in the sub processor.
なお、圧縮伸長器24B−1におけるデータ圧縮伸張のアルゴリズムおよび実装方法は、マルチプロセッサユニット20の構成に依存するところであり、ハードウェア、ソフトウェアどちらでも実現が可能である。ハードウェアによる実装の場合は、圧縮伸張処理に要する時間が短くて済むため、圧縮伸張処理を隠蔽する(圧縮伸張処理の影響を受けないようにする)ために追加するプロセッサの数( プロセッサの並列度) を少なくすることができる。一方、ソフトウェアによる実装の場合は、転送データの特徴に応じた最適なデータ圧縮方法を適宜選択することが可能であると共に、ハードウェアに変更を加えることなくシステムの演算性能を向上させることができる。
Note that the data compression / decompression algorithm and mounting method in the compression /
以上説明したように、本実施の形態の情報処理装置によれば、以下のような効果がある。
(1)サブプロセッサを効率的に使用することが可能になるのでハードウェアの変更を必要とせずに、動作周波数あたりの演算能力を向上させることが可能になる。
(2)比較例と比べて、同等の演算能力をより低い動作周波数で実現可能になるので、動作電圧を下げることができ、消費電力あたりの演算能力を向上させることができる。
(3)データ圧縮伸張の実装方法には特に制限がないので、システムの要求に応じてハードウェア、ソフトウェアどちらかによる実装を適宜選択できる。
(4)圧縮結果をモニタし、十分な圧縮結果が得られない場合は圧縮前のデータをバスに転送するような仕組みを設けることにより、データが次段のサブプロセッサの入力となった場合に、その次段のサブプロセッサにおける入力段での伸張処理が不要となるため、無駄なエネルギー消費を省くことができる。
As described above, the information processing apparatus according to the present embodiment has the following effects.
(1) Since sub-processors can be used efficiently, it is possible to improve the computing capacity per operating frequency without requiring hardware changes.
(2) Compared with the comparative example, the equivalent computing capability can be realized at a lower operating frequency, so that the operating voltage can be lowered and the computing capability per power consumption can be improved.
(3) Since there is no particular limitation on the method for mounting data compression / decompression, mounting by either hardware or software can be selected as appropriate according to system requirements.
(4) When the compression result is monitored and a sufficient compression result cannot be obtained, a mechanism is provided to transfer the uncompressed data to the bus so that the data is input to the sub processor at the next stage. Since the expansion process at the input stage in the sub-processor at the next stage is not necessary, useless energy consumption can be saved.
以上、実施の形態を挙げて本発明を説明したが、本発明はこの実施の形態に限定されず、種々の変形が可能である。例えば、本実施の形態では、データ圧縮を一旦実行した上でその圧縮処理結果の評価を行い、その結果如何によっては、元のデータ(非圧縮データ)を転送するようにしたが、そのような事後的評価ではなく、例えば図9に示したように、事前に(圧縮前に)評価するようにしてもよい。なお、この図9において、ステップS201〜S207およびS212〜S215の処理は、それぞれ、上記実施の形態(図6)におけるステップS101〜S107およびS111〜S114と同様であり、適宜、説明を省略する。 While the present invention has been described with reference to the embodiment, the present invention is not limited to this embodiment, and various modifications can be made. For example, in the present embodiment, after the data compression is executed once, the compression processing result is evaluated, and depending on the result, the original data (uncompressed data) is transferred. Instead of the ex-post evaluation, for example, as shown in FIG. 9, the evaluation may be performed in advance (before compression). In FIG. 9, steps S201 to S207 and S212 to S215 are the same as steps S101 to S107 and S111 to S114 in the above-described embodiment (FIG. 6), respectively, and description thereof will be omitted as appropriate.
図9に示した変形例では、ステップS207におけるデータ圧縮の妥当性の判定ののち、その圧縮対象となっているデータのタイプを判定し(ステップS208)、その判定結果に応じた処理をする。具体的には、データ入力時にパケットヘッダPHのデータタイプDTから読み取ったビット情報に基づき、そのデータの種類(静止画、動画、音声、テキスト等)を判定する。その設定の結果、そのデータが例えばテキストデータのような圧縮効果の少ない種類のデータであったときには(ステップS209;Y)、圧縮を行わないことを決定し、非圧縮データを選択する(ステップS213)。一方、そのデータが例えば静止画、動画、音響データのような圧縮効果の大きい種類のデータであったときには(ステップS209;N)、圧縮を行うことを決定し、さらにそのデータの種類に応じて圧縮方式を選択し(ステップS210)、その圧縮方式によるデータ圧縮を実行する(ステップS211)。そして、この圧縮されたデータを転送データとして選択し(ステップS212)、これにパケットヘッダPHを付加した上でシステムバス29上に送出する(ステップS214,S215)。このとき、パケットヘッダPHの圧縮モードCMには、圧縮方式に応じて、図3(B)に示したビット情報を設定する。また、パケットヘッダPHのデータタイプDTには、データの種類に応じて、図3(C)に示したビット情報を設定する。 In the modification shown in FIG. 9, after determining the validity of the data compression in step S207, the type of the data to be compressed is determined (step S208), and processing according to the determination result is performed. Specifically, based on the bit information read from the data type DT of the packet header PH at the time of data input, the type of the data (still image, moving image, voice, text, etc.) is determined. As a result of the setting, if the data is a kind of data having a small compression effect such as text data (step S209; Y), it is decided not to perform compression, and uncompressed data is selected (step S213). ). On the other hand, when the data is a kind of data having a large compression effect such as a still image, a moving image, and sound data (step S209; N), it is decided to perform compression, and further according to the kind of the data. A compression method is selected (step S210), and data compression by the compression method is executed (step S211). Then, the compressed data is selected as transfer data (step S212), the packet header PH is added to the data, and the packet data is transmitted to the system bus 29 (steps S214 and S215). At this time, the bit information shown in FIG. 3B is set in the compression mode CM of the packet header PH according to the compression method. Further, the bit information shown in FIG. 3C is set in the data type DT of the packet header PH according to the type of data.
この変形例によれば、事前に圧縮の要否を判定するようにしたので、上記実施の形態の場合のように、一旦圧縮処理はしたものの結局は非圧縮データを転送する、という事態を回避できる。このため、転送元のサブプロセッサにおける無駄なエネルギー消費を回避することができる。 According to this modification, since the necessity of compression is determined in advance, it is possible to avoid a situation in which uncompressed data is eventually transferred although compression processing is performed once as in the case of the above embodiment. it can. For this reason, useless energy consumption in the transfer source sub-processor can be avoided.
なお、上記実施の形態では、メインメモリとサブプロセッサ内のローカルメモリとの間でのデータ転送に適用した場合について説明したが、サブプロセッサ間(ローカルメモリ間)でのデータ転送に適用することも可能である。 In the above embodiment, the case where the present invention is applied to the data transfer between the main memory and the local memory in the sub processor has been described. However, the present invention may be applied to the data transfer between the sub processors (between the local memories). Is possible.
1…ネットワーク、2,3,4…情報処理装置、20…マルチプロセッサユニット、21…メインプロセッサ、22…メモリコントローラ、23…メインメモリ、24−1〜24−n…サブプロセッサ、21A,24A−1〜24A−N…ローカルメモリ、24B−1〜24B−N…圧縮伸長器、24C−1〜24C−N…演算器、27…バスアービタ、28…ネットワーク接続部、29…システムバス、PH…パケットヘッダ、DP…データ部、CM…圧縮モード、DT…データタイプ。
DESCRIPTION OF
Claims (12)
各演算プロセッサが、
演算器と、
前記演算器による演算結果データを圧縮する機能と、前記バスを介して取り込んだ入力データを伸長する機能とを有する圧縮伸長器と
を有することを特徴とする情報処理装置。 A bus, and a plurality of arithmetic processors commonly connected to the bus,
Each arithmetic processor
An arithmetic unit;
An information processing apparatus comprising: a compression / decompression unit having a function of compressing operation result data by the arithmetic unit and a function of expanding input data taken in via the bus.
ことを特徴とする請求項1に記載の情報処理装置。 The compression / decompression unit determines whether or not the compression processing is performed on the calculation result data by the calculation unit, and the calculation result data is used as it is or after the compression processing is performed according to the determination result. The information processing apparatus according to claim 1, wherein the information processing apparatus is sent upward.
ことを特徴とする請求項2に記載の情報処理装置。 Whether the compression / decompression unit performs compression processing on the operation result data to be sent out on the bus based on the magnitude relationship between the operation required time of the arithmetic unit and the data transfer required time on the bus. The information processing apparatus according to claim 2, wherein:
ことを特徴とする請求項3に記載の情報処理装置。 The compression / decompression unit determines whether or not to perform compression processing on the operation result data transmitted on the bus in consideration of the type of the operation result data. Information processing device.
ことを特徴とする請求項2に記載の情報処理装置。 The compression / decompression unit temporarily compresses the operation result data, and based on the compression process result, sends either the operation result data that has been compressed or the operation result data before compression onto the bus. The information processing apparatus according to claim 2, wherein:
ことを特徴とする請求項2に記載の情報処理装置。 The information processing apparatus according to claim 2, wherein the compression / decompression unit further selects a compression processing method when performing compression processing on the operation result data.
ことを特徴とする請求項6に記載の情報処理装置。 The information processing apparatus according to claim 6, wherein the compression / decompression unit selects the compression processing method based on a type of the operation result data.
ことを特徴とする請求項1に記載の情報処理装置。 The compression / decompression unit determines whether or not to perform decompression processing on the input data, and inputs the input data to the arithmetic unit as it is or after performing decompression processing according to the determination result. The information processing apparatus according to claim 1.
ことを特徴とする請求項8に記載の情報処理装置。 The information processing apparatus according to claim 8, wherein the compression / decompression unit further selects a decompression processing method when performing decompression processing on the input data.
ことを特徴とする請求項1に記載の情報処理装置。 The information processing apparatus according to claim 1, wherein the plurality of arithmetic processors include a main processor and a plurality of sub-processors.
各演算プロセッサにおいて、
前記バスを介して取り込んだ入力データを選択的に伸長し、
伸長した入力データを基に演算処理を行い、
前記演算処理の結果である演算結果データに対して選択的に圧縮処理を行って前記バス上に送出する
ことを特徴とする情報処理方法。 A method applied to an information processing apparatus including a bus and a plurality of arithmetic processors commonly connected to the bus,
In each arithmetic processor,
Selectively decompressing input data captured via the bus,
Perform arithmetic processing based on the expanded input data,
An information processing method comprising: selectively compressing operation result data that is a result of the operation processing and sending the result to the bus.
各情報処理装置は、バスと、このバスに共通に接続された複数の演算プロセッサとを備え、
各演算プロセッサが、
演算器と、
前記演算器による演算結果データを圧縮する機能と、前記バスを介して取り込んだ入力データを伸長する機能とを有する圧縮伸長器と
を有することを特徴とする情報処理システム。
An information processing system comprising a plurality of information processing devices connected to a network,
Each information processing apparatus includes a bus and a plurality of arithmetic processors commonly connected to the bus.
Each arithmetic processor
An arithmetic unit;
An information processing system comprising: a compression / decompression unit having a function of compressing operation result data by the arithmetic unit and a function of expanding input data taken in via the bus.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004115895A JP2005301607A (en) | 2004-04-09 | 2004-04-09 | Information processor, information processing system, and information processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004115895A JP2005301607A (en) | 2004-04-09 | 2004-04-09 | Information processor, information processing system, and information processing method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005301607A true JP2005301607A (en) | 2005-10-27 |
Family
ID=35333071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004115895A Pending JP2005301607A (en) | 2004-04-09 | 2004-04-09 | Information processor, information processing system, and information processing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005301607A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4698678B2 (en) * | 2005-11-08 | 2011-06-08 | 株式会社ソニー・コンピュータエンタテインメント | Data communication method, computer and information storage medium |
JP2016213806A (en) * | 2015-05-11 | 2016-12-15 | ヴィア アライアンス セミコンダクター カンパニー リミテッド | Hardware data compressor that maintains sorted symbol list concurrently with input block scanning |
US10027346B2 (en) | 2015-05-11 | 2018-07-17 | Via Alliance Semiconductor Co., Ltd. | Hardware data compressor that maintains sorted symbol list concurrently with input block scanning |
US10601444B2 (en) | 2018-04-13 | 2020-03-24 | Fujitsu Limited | Information processing apparatus, information processing method, and recording medium storing program |
-
2004
- 2004-04-09 JP JP2004115895A patent/JP2005301607A/en active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4698678B2 (en) * | 2005-11-08 | 2011-06-08 | 株式会社ソニー・コンピュータエンタテインメント | Data communication method, computer and information storage medium |
JP2016213806A (en) * | 2015-05-11 | 2016-12-15 | ヴィア アライアンス セミコンダクター カンパニー リミテッド | Hardware data compressor that maintains sorted symbol list concurrently with input block scanning |
US10027346B2 (en) | 2015-05-11 | 2018-07-17 | Via Alliance Semiconductor Co., Ltd. | Hardware data compressor that maintains sorted symbol list concurrently with input block scanning |
US10601444B2 (en) | 2018-04-13 | 2020-03-24 | Fujitsu Limited | Information processing apparatus, information processing method, and recording medium storing program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7191240B2 (en) | Video stream decoding method, device, terminal equipment and program | |
EP1775962A1 (en) | Information processing system, information processing method, and computer program | |
US8239868B2 (en) | Computer system, servers constituting the same, and job execution control method and program | |
CN113504985B (en) | Task processing method and network equipment | |
JP2005235019A (en) | Network system, distributed processing method and information processor | |
EP3364625B1 (en) | Device, system and method for adaptive payload compression in a network fabric | |
US7795955B2 (en) | Semiconductor integrated circuit and power control method | |
JP2000347987A (en) | Dma transfer device | |
JP2006031481A (en) | Information processing system, information processing method, and computer program | |
US20190004808A1 (en) | Centralized memory management for multiple device streams | |
JP4279317B2 (en) | Data processing method and data processing apparatus | |
WO2005116853A1 (en) | Hierarchical processor architecture for video processing | |
US20150121111A1 (en) | System and method for providing multi-user power saving codebook optmization | |
JP2012059152A (en) | System for performing data processing and method for allocating memory | |
JP2005301607A (en) | Information processor, information processing system, and information processing method | |
US20100042754A1 (en) | Data transmitting device and data transmitting method | |
JP5307796B2 (en) | Processing apparatus, processing system, data sharing processing method, and integrated circuit for data sharing processing | |
JP4728083B2 (en) | Media processing device | |
JP2010081332A (en) | Information processing apparatus and method, program, and information processing system | |
JP4584324B2 (en) | Data processing system and component management method | |
JP2005252402A (en) | Contents recording system and contents recording method, and computer program | |
JP4329647B2 (en) | Information processing system, information processing method, and computer program | |
US10838727B2 (en) | Device and method for cache utilization aware data compression | |
KR100755123B1 (en) | Signal processing device and entertainment device | |
JP2005352909A (en) | Information processing device, method therefor, recording medium thereof, and reservation processing program |