JPH0415743A - Parallel arithmetic unit - Google Patents

Parallel arithmetic unit

Info

Publication number
JPH0415743A
JPH0415743A JP11182790A JP11182790A JPH0415743A JP H0415743 A JPH0415743 A JP H0415743A JP 11182790 A JP11182790 A JP 11182790A JP 11182790 A JP11182790 A JP 11182790A JP H0415743 A JPH0415743 A JP H0415743A
Authority
JP
Japan
Prior art keywords
memory
processor
data
bus
signal
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
Application number
JP11182790A
Other languages
Japanese (ja)
Inventor
Yoshihiro Ishida
良弘 石田
Miyuki Enokida
幸 榎田
Mitsuru Maeda
充 前田
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP11182790A priority Critical patent/JPH0415743A/en
Publication of JPH0415743A publication Critical patent/JPH0415743A/en
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

PURPOSE:To attain the parallel arithmetic operations at a high speed by connecting the arithmetic elements to each other and actuating these elements independently of each other for an access given to a memory means. CONSTITUTION:The programs of the arithmetic elements (PU0 - PU3) 211a - d of an arithmetic part 104 which are stored in a program memory PM are previously developed by a main CPU 101 and produced in the practicable code forms by the processors 212a - d (PROC). These produced programs are stored in an external storage 102 and then transferred to the processors 212a - d by the CPU 101 through a system bus 116 and a system bus I/F 109. These processors have own their program memories PM 213a - d respectively. Then each of the processors receives its own program from the CPU 101 and writes the program in a prescribed address of its own PM. Thus the parallel arithmetic operations are attained at a high speed.

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、並列処理動作を特徴とする並列演算装置に関
するものである。
DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a parallel arithmetic device characterized by parallel processing operations.

[従来の技術] 一般に、画像データは文書データ等に比べて大量の情報
量を含むため、このような画像データを処理する画像処
理装置では、画像データの数値計算等のために大きな演
算能力が要求される。このため、従来より、画像処理に
内在する空間的、時間的な並列性を有効に活用すること
により、演算の効率を上げることを目的とした種々の画
像処理装置が提案されている。
[Prior Art] In general, image data contains a large amount of information compared to document data, etc., so image processing devices that process such image data require large computing power to perform numerical calculations on the image data. required. For this reason, various image processing apparatuses have been proposed in the past for the purpose of increasing the efficiency of calculation by effectively utilizing the spatial and temporal parallelism inherent in image processing.

r情報処理J  (Vol、28.No、1 、 pp
、 19〜26)によれば、これら画像処理装置におい
て採用されている基本方式を、以下の4つに分類してい
る。
r Information Processing J (Vol, 28. No, 1, pp
, 19-26), the basic methods employed in these image processing apparatuses are classified into the following four types.

(1)完全並列処理方式 演算要素を画素対応に2次元状に配置して、同時に全画
素を処理する方式である。通常、データ転送のため、演
算要素は隣接する演算要素と互いに接続されている。
(1) Fully parallel processing method This is a method in which calculation elements are arranged two-dimensionally corresponding to pixels and all pixels are processed simultaneously. Typically, computing elements are interconnected with adjacent computing elements for data transfer.

(2)局所並列処理方式 画像データの局所性を利用して各画素を処理して、この
処理を全画素に対し、順々に施していく方式である0例
えば、注目画素と、その画素の縦・横・斜方向に隣接す
る8画素よりなる合計9画素(注目画素を中心とした縦
・横各3画素よりなる画素マトリクス領域で、これを窓
と呼ぶ)を用いて、空間フィルタリングを行なう場合で
は、この窓を1画素列づつ右にずらしながら画像全体に
対する処理を進めてゆくものである。
(2) Local parallel processing method This is a method in which each pixel is processed using the locality of image data, and this processing is applied to all pixels in turn. Spatial filtering is performed using a total of 9 pixels (a pixel matrix area consisting of 3 pixels each vertically and horizontally, with the pixel of interest as the center; this is called a window), consisting of 8 pixels adjacent in the vertical, horizontal, and diagonal directions. In this case, processing for the entire image is proceeded by shifting this window to the right one pixel column at a time.

(3)パイプライン方式 画像データの基本的な処理を行なう演算器を直列に接続
してパイプラインを形成し、このパイプラインの中を次
々と画素を転送していくことにより処理を進める方式で
ある。
(3) Pipeline method A method in which arithmetic units that perform basic processing of image data are connected in series to form a pipeline, and processing proceeds by transferring pixels one after another through this pipeline. be.

(4)マルチプロセッサ方式 複数の演算モジュールあるいは汎用のプロセッサを結合
したマルチプロセッサ型のシステムである。
(4) Multiprocessor system This is a multiprocessor type system that combines multiple arithmetic modules or general-purpose processors.

[発明が解決しようとする課題] しかしながら、上記従来例では以下に述べるような問題
がある。
[Problems to be Solved by the Invention] However, the above conventional example has the following problems.

まず、(1)の完全並列処理方式では、同時に全画素を
処理するため、画素数分の演算要素が必要となる。この
ため、装置全体が大規模化しがちである。このような大
規模化を避けようとするには演算要素を簡素化する必要
があり、これにより扱える画像演算が特定されたり、プ
ログラミングが複雑になるといった不具合がある。さら
に、各演算要素に各画素を分配するためのオーバヘット
も大きくなる。
First, in the completely parallel processing method (1), all pixels are processed at the same time, so calculation elements equal to the number of pixels are required. For this reason, the entire device tends to become large-scale. In order to avoid such an increase in scale, it is necessary to simplify the calculation elements, which causes problems such as specifying image calculations that can be handled and complicating programming. Furthermore, the overhead for distributing each pixel to each calculation element also increases.

(2)の局所並列処理方式に於いては、実行できる処理
が予めハードウェアの構成により決まってしまうため、
画像処理に対する柔軟性が乏しいという欠点がある。
In the local parallel processing method (2), the processing that can be executed is determined in advance by the hardware configuration, so
The disadvantage is that there is little flexibility in image processing.

(3)のパイプライン処理方式では、演算器が構成する
パイプラインの流れに従わないような画像処理は実行で
きないなどの、柔軟性に乏しいという欠点がある。
The pipeline processing method (3) has the drawback of poor flexibility, such as the inability to perform image processing that does not follow the flow of the pipeline configured by the arithmetic units.

上述したように、(1)〜(3)の方式では、ハードウ
ェアレベルが特定の画像処理用に定められたものである
ため、画像処理内容に柔軟性が乏しいという欠点がある
As described above, in the methods (1) to (3), the hardware level is determined for specific image processing, so there is a drawback that there is little flexibility in the content of image processing.

(4)のマルチプロセッサ方式では、汎用のプロセッサ
や、任意のプログラム可能な複数の演算モジュールを複
数結合して構成されており、扱える処理内容には柔軟性
が高い。しかし、このマルチプロセッサ方式においても
、以下に述へる観点から問題が残る。即ち、画像処理の
アプリケーション分野により、扱う画像のサイズ(画素
数)はまちまちである。例えば、TV画像であれば51
2×512程度の画素数で十分であるが、電子出版等の
プリントであれば、4096x4096程度の画素数が
要求される。更に、印刷用の版下を作成する場合であれ
ば、更に大きな画素数をもった画像サイズに対応するこ
とが望まれる。加えて、モニタ用のデイスプレィの画像
サイズを、処理する画像データサイズとは独立して設定
できることが望ましい。
The multiprocessor system (4) is configured by combining a general-purpose processor or a plurality of arbitrarily programmable calculation modules, and is highly flexible in the processing content that can be handled. However, even in this multiprocessor system, problems remain from the viewpoints described below. That is, the size (number of pixels) of images to be handled varies depending on the application field of image processing. For example, if it is a TV image, 51
A pixel count of about 2 x 512 is sufficient, but for prints such as electronic publications, a pixel count of about 4096 x 4096 is required. Furthermore, when creating a block for printing, it is desirable to support image sizes with even larger numbers of pixels. In addition, it is desirable to be able to set the image size of the monitor display independently of the image data size to be processed.

また、画像演算の処理スピードに関しても、フライト・
シミュレータの様なリアルタイム性を要求されるものか
ら、電子出版の如く対話的な処理で人間がいらだたない
程度の時間に間に合えばよいもののように多少差がある
。また、演算の種類に応じて、アクセス可能な画像デー
タの領域が可変であることも望ましい。
In addition, regarding the processing speed of image calculations, flight
There are some differences, such as those that require real-time performance such as simulators, and those that require interactive processing such as electronic publishing that can be completed within a time that does not irritate humans. It is also desirable that the accessible image data area be variable depending on the type of calculation.

以上性べてきた議論の如く、画像処理装置は、そのアプ
リケーション分野により、 1、処理できる画像サイズ。
As discussed above, image processing devices vary depending on their application field: 1. Image size that can be processed.

2、演算能力と演算要素数。2. Computing power and number of computing elements.

3、処理できる画像サイズと独立して可変できるモニタ
用の画像サイズ。
3. Image size for the monitor that can be changed independently of the image size that can be processed.

4、各演算要素からアクセスできる画像データ領域等が
、自由に設定できるものであることが望ましい。
4. It is desirable that the image data area etc. that can be accessed from each calculation element can be freely set.

また、扱える処理内容には柔軟性の高い前述のマルチプ
ロセッサ方式においても、上述1〜4の観点から見ると
その構成には不満があった。
Further, even in the multiprocessor system described above, which is highly flexible in terms of the processing content that can be handled, its configuration is unsatisfactory from the viewpoints 1 to 4 above.

本発明は上記従来例に鑑みてなされたもので、処理でき
る各種データの演算の柔軟性を有する並列演算装置を提
供することを目的とする。
The present invention has been made in view of the above-mentioned conventional example, and an object of the present invention is to provide a parallel arithmetic device having flexibility in arithmetic operations on various types of data that can be processed.

[課題を解決するための手段] 上記目的を達成するために本発明の並列演算装置は以下
の様な構成からなる。即ち、 複数のプログラム可能な演算要素と、前記演算要素同士
を接続する交信手段と、前記演算要素のそれぞれより独
立してアクセス可能なメモリ手段と、前記演算要素のそ
れぞれを独立して動作させるとともに、前記演算要素に
よる前記メモリ手段へのアクセスを制御する制御手段と
を備える。
[Means for Solving the Problems] In order to achieve the above object, a parallel processing device of the present invention has the following configuration. That is, a plurality of programmable arithmetic elements, communication means for connecting the arithmetic elements, memory means independently accessible from each of the arithmetic elements, and operating each of the arithmetic elements independently; , and control means for controlling access to the memory means by the arithmetic element.

[作用] 以上の構成において、複数のプログラム可能な演算要素
同士を接続する交信手段を有し、またこれら演算要素の
それぞれより独立してメモリ手段をアクセスできる。こ
れら演算要素のそれぞれを独立して動作させるとともに
、これら演算要素によるメモリ手段へのアクセスを制御
する。
[Operation] The above configuration has communication means for connecting a plurality of programmable computing elements, and each of these computing elements can independently access the memory means. Each of these computing elements is operated independently, and access to the memory means by these computing elements is controlled.

[実施例] 以下、添付図面を参照して本発明の好適な実施例を詳細
に説明する。
[Embodiments] Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

〈画像処理装置の説明 (第1図)〉 第1図は本実施例の画像処理装置の概略構成を示すブロ
ック図である。
<Description of Image Processing Apparatus (FIG. 1)> FIG. 1 is a block diagram showing a schematic configuration of the image processing apparatus of this embodiment.

同図において、101はシステム全体を制御するメイン
CPUである。102は画像データ等を格納する大容量
の外部記憶装置である。103は並列処理部を示し、複
数の演算要素より成る演算部104と、処理する画像デ
ータ等を保持するデータメモリ部107と、並列処理部
103とデータメモリ部107との間のバス群を接続・
交換するバス接続・交換部106、このバス接続・交換
部106を制御するバス接続・交換制御部1o5、シス
テムバス116とのインターフェース(1/F)部10
9及び高速データ転送用の高速バス117どのインター
フェース(I/F)部108等より構成されている。
In the figure, 101 is a main CPU that controls the entire system. 102 is a large-capacity external storage device that stores image data and the like. Reference numeral 103 indicates a parallel processing unit, which connects a calculation unit 104 consisting of a plurality of calculation elements, a data memory unit 107 that holds image data to be processed, etc., and a group of buses between the parallel processing unit 103 and the data memory unit 107.・
A bus connection/exchange unit 106 to be replaced, a bus connection/exchange control unit 1o5 that controls this bus connection/exchange unit 106, and an interface (1/F) unit 10 with the system bus 116.
9, a high-speed bus 117 for high-speed data transfer, and an interface (I/F) section 108.

110はモニタデイスプレィ111に表示する画像デー
タを保持するビデオメモリで、システムバス116及び
高速バス117とに接続されている。112はプリンタ
・インターフェース部(■/F)であり、これを介して
プリンタ114がシステムバス116と高速バス117
に接続されている。113はスキャナ・インターフェー
ス(工/F)部であり、これを介してイメージスキャナ
(リーダ)】15が、システムバス116及び高速バス
117に接続されている。
A video memory 110 holds image data to be displayed on a monitor display 111, and is connected to a system bus 116 and a high-speed bus 117. 112 is a printer interface section (■/F), through which the printer 114 is connected to the system bus 116 and the high-speed bus 117.
It is connected to the. Reference numeral 113 denotes a scanner interface (F/F) unit, through which the image scanner (reader) 15 is connected to a system bus 116 and a high-speed bus 117.

く並列処理部103の説明〉 次に、並列処理部103の演算部104の各演算要素へ
、メインCPU 101よりプログラムをロードする方
法について説明する。以下、第1図及び第2図を参照し
て説明する。
Description of Parallel Processing Unit 103 Next, a method of loading a program from the main CPU 101 to each calculation element of the calculation unit 104 of the parallel processing unit 103 will be described. This will be explained below with reference to FIGS. 1 and 2.

第2図は並列処理部103の概略構成を示すブロック図
である。
FIG. 2 is a block diagram showing a schematic configuration of the parallel processing unit 103.

演算部104の各演算要素(PtlO〜Pυ3)211
a〜dのプログラムメモリ(PM)に格納されるべきプ
ログラムは、予めメインCPU 101により開発され
、各プロセッサ2128〜212d(PROC)で実行
可能なコード形式で作成されている。これらプログラム
は、外部記憶装置102に記憶されており、メインCP
tJ 101により、システムバス116からシステム
バスI/F109を経由して各プロセッサに渡される。
Each calculation element (PtlO to Pυ3) 211 of the calculation unit 104
The programs to be stored in the program memories (PM) of a to d are developed in advance by the main CPU 101 and created in a code format executable by each of the processors 2128 to 212d (PROC). These programs are stored in the external storage device 102 and are
tJ 101, the data is passed from the system bus 116 to each processor via the system bus I/F 109.

これらプロセッサ(PROC) 212 a〜dのそれ
ぞれは、独自のプログラムメモリ(PM)213 a−
dを有しており、各プロセッサ212a−dは、各自に
対応したプログラムをメインCPUl01より受けとる
と、順次各自のプログラムメモリ(PM)の所定のアド
レスに書込んでいく機能を有している。
Each of these processors (PROC) 212 a-d has its own program memory (PM) 213 a-
Each of the processors 212a to 212d has a function of sequentially writing the corresponding program to a predetermined address in its own program memory (PM) upon receiving the program corresponding to it from the main CPU 101.

く演算部の説明〉 第3図は演算部104の各プロセッサを接続する通信路
の状態を示した図である。
Description of Computing Unit> FIG. 3 is a diagram showing the state of communication paths connecting each processor of the computing unit 104.

各プロセッサ(PROC)には、それぞれ4本のシリア
ル通信路が、バスとは別に接続されており、これらシリ
アル通信路は、各プロセッサ間での交信をするのが主な
官途であるが、その他にメインCPU 101よりの各
プロセッサへのプログラムのダウンロードにも使用され
る。これらプロセッサ2128〜212dには、図示し
ないリセット信号線及びブート方法を選択するブート法
指示線がある。これらリセット信号線を介してリセット
信号が入力されると、各プロセッサは初期化され、リセ
ット信号が入力された時のブート法指示線の信号レベル
によって、ブートな特定のアドレスに割りつけられたR
OMから行なうか、もしくはシリアル通信路から入力さ
れるデータによりブートを行なうかを選択動作する機能
を有している。
Four serial communication paths are connected to each processor (PROC) separately from the bus, and the main purpose of these serial communication paths is to communicate between each processor, but there are other It is also used to download programs from the main CPU 101 to each processor. These processors 2128 to 212d have a reset signal line (not shown) and a boot method instruction line for selecting a boot method. When a reset signal is input through these reset signal lines, each processor is initialized, and the R assigned to a specific address for booting is determined by the signal level of the boot method instruction line when the reset signal is input.
It has a function to select whether to perform booting from OM or by data input from a serial communication path.

本実施例では、後者のシリアル通信路を用いてブートを
行う方法をとっており、このような機能を有するプロセ
ッサとしては、例えばInmos社製のトランスピユー
タ等が代表として挙げられる。
In this embodiment, the latter method of booting is performed using the serial communication path, and a representative example of a processor having such a function is a transputer manufactured by Inmos.

第3図において、1000は通信路を任意に交換できる
スイッチ回路で、通信路交換部1002と、通信路交換
制御部1001より構成される。
In FIG. 3, reference numeral 1000 denotes a switch circuit that can arbitrarily exchange communication paths, and is composed of a communication path exchange section 1002 and a communication path exchange control section 1001.

通信路交換部1002には、各プロセッサよりのそれぞ
れか4本からなる通信路(計16本)、及び外部の通信
路と接続するための外部通信用交換部コネクタl○05
への8本の通信線、及びパラレル/シリアル変換器10
04のシリアル入出力線が接続されている。また、パラ
レル/シリアル変換器1003のシリアル入出力側が、
通信路交換制御部1001に接続されている。これらパ
ラレル/シリアル変換器1003.1004のパラレル
入出力側は共に、システムバスI/FIO9を介してシ
ステムバス116に接続されている。なお、パラレル/
シリアル変換器1003及び1004のパラレル入出力
アドレスは、それぞれシステムバスのアドレス空間上の
相異なる、所定のアドレスに割り付けられている。
The communication path exchange unit 1002 includes four communication paths (16 in total) from each processor, and an external communication exchange unit connector l○05 for connecting to an external communication path.
8 communication lines to and parallel/serial converter 10
04 serial input/output line is connected. In addition, the serial input/output side of the parallel/serial converter 1003 is
It is connected to the communication path exchange control unit 1001. The parallel input/output sides of these parallel/serial converters 1003 and 1004 are both connected to the system bus 116 via the system bus I/FIO9. In addition, parallel/
The parallel input/output addresses of serial converters 1003 and 1004 are respectively assigned to different predetermined addresses on the address space of the system bus.

メインCPUl0Iは、システムハス116゜システム
バスI/F109、パラレル/シリアル変換器1003
を介して、通信路交換制御部1001に指示を与え、通
信路交換部1002の通信路の接続状態を設定する。こ
のとき、パラレル/シリアル変換器1004のシリアル
入出力は、通信路変換部1002を通して、プロセッサ
212a〜212dのうちのいずれかのプロセッサのい
ずれかの通信路に設定されて使用される。そして残りの
プロセッサは、パラレル/シリアル変換器1004に接
続されたプロセッサを介し、他の通信路を経由して通信
路変換部10o2に接続させる。この際、その設定され
たプロセッサと残りのプロセッサのいずれかとの間に別
のプロセッサが介在してもよい。この状態で、メインC
PUl01は、ダウンロードのデータをシステムバス1
16、システムハスI/F109.パラレル/シリアル
変換器1004.通信路交換部1002を経由して、所
望のプロセッサに転送する。そして、プログラムデータ
転送が終了すると、そのプログラムか実行される。
The main CPU 10I has a system bus 116° system bus I/F 109, and a parallel/serial converter 1003.
An instruction is given to the communication path switching control unit 1001 via the communication path switching unit 1001 to set the connection state of the communication path of the communication path switching unit 1002. At this time, the serial input/output of the parallel/serial converter 1004 is set to a communication path of one of the processors 212a to 212d through the communication path conversion unit 1002 and used. The remaining processors are connected to the communication path converter 10o2 via another communication path via the processor connected to the parallel/serial converter 1004. At this time, another processor may be interposed between the set processor and any of the remaining processors. In this state, main C
PUl01 transfers downloaded data to system bus 1.
16, System Has I/F109. Parallel/serial converter 1004. The data is transferred to a desired processor via the communication path exchange unit 1002. Then, when the program data transfer is completed, that program is executed.

スイッチ回路1000の機能を有する回路素子としては
、例えばInmos社製のリンクスイッチCOO4か有
り、またパラレル/シリアル変換器1003及び100
4の機能を有する回路素子としては、例えばInmos
社製のリンクアダプタCO12等が挙げられる。
Examples of circuit elements having the function of the switch circuit 1000 include a link switch COO4 made by Inmos, and parallel/serial converters 1003 and 100.
As a circuit element having the function of 4, for example, Inmos
For example, the link adapter CO12 manufactured by Co., Ltd. is available.

〈並列処理部103の構成〉 本実施例では、演算部104の演算要素がデ−タメモリ
107をアクセスするために、データメモリ107のア
ドレス領域を複数個の小領域に分割し、この小領域を単
位として各演算要素が処理を行うようにしている。この
場合、これら小領域のそれぞれを各演算要素が占有する
方式と、各演算要素がデータメモリ領域の任意の位置の
画素をアクセスする方式とを実現するように構成されて
いる。以下、データメモリ領域をブロックメモリと呼び
、ブロックを占有するアクセス方式をブロックアクセス
方式、任意の画素をアクセスする方式を画素アクセス方
式と呼ぶことにする。
<Configuration of the parallel processing unit 103> In this embodiment, in order for the calculation elements of the calculation unit 104 to access the data memory 107, the address area of the data memory 107 is divided into a plurality of small areas, and these small areas are Each calculation element performs processing as a unit. In this case, the system is configured to realize a system in which each calculation element occupies each of these small areas, and a system in which each calculation element accesses a pixel at an arbitrary position in the data memory area. Hereinafter, the data memory area will be called a block memory, the access method that occupies a block will be called a block access method, and the method that accesses an arbitrary pixel will be called a pixel access method.

以上の2方式を実現する並列処理部103の機能ブロッ
ク図が第2図に示されており、200は並列処理部10
3とメインCPU 101との間で制御コマンドやステ
ータスをやりとりするためのレジスタである。210a
〜210pはデータメモリ107を分割したブロックメ
モリを表す。
A functional block diagram of the parallel processing unit 103 that realizes the above two methods is shown in FIG.
This is a register for exchanging control commands and status between the CPU 3 and the main CPU 101. 210a
~210p represents a block memory obtained by dividing the data memory 107.

本実施例の説明を容易にするために、データメモリ部1
07の容量を16Mバイトとし、データメモリ部107
を等分にMBO−M815に16分割し、演算部104
における演算要素(PUO−PI3)を4個とする。2
11a 〜211dは演算部lO4を構成する4つの演
算要素であり、各演算要素の中には212a〜dの演算
プロセッサ(以下単にプロセッサと呼ぶ)とプロセッサ
を駆動するためのプログラムと一時的に小容量のデータ
を格納するための小容量メモリ(以下、これをプログラ
ムメモリと呼ぶ)213a−dをそれぞれ1つずつ有し
ている。215はシステムバス116と高速バス117
のバスインターフェース部108.109と、データメ
モリ部107どの間を接続するインターフェースバスで
ある。2168〜pは各ブロックメモリ210a=pと
演算部104との間のデータをやりとりするメモリバス
、217aNdはプロセッサバスである。214.21
8.219,220,221,222,223はいずれ
も制御信号線であり、レジスタ200に接続されている
制御信号線のうち、信号線214はシステムバスインタ
ーフェース部109と、信号線218はバス接続・交換
制御部1o5(以下、バスコントローラと略す)と、信
号線220は演算部104と、信号線222は高速バス
インターフェース部108とを結び、これら制御信号線
はコマンドやステータスのやりとりを行っている。更に
、バスコントローラ105に接続されている制御信号線
のうち、信号線219は演算部104と、信号線221
はバス接続・交換部106(以下、バスセレクタと略す
)と、信号線223はデータメモリ部107とを接続し
て、同様のやりとりを行っている。
To facilitate the explanation of this embodiment, data memory section 1
07 has a capacity of 16 Mbytes, and the data memory section 107
is equally divided into 16 MBO-M815, and the arithmetic unit 104
The number of calculation elements (PUO-PI3) in is assumed to be four. 2
Reference numerals 11a to 211d are four computing elements that constitute the computing unit IO4, and each computing element includes arithmetic processors 212a to 212d (hereinafter simply referred to as processors), a program for driving the processors, and a temporarily small Each of them has one small capacity memory (hereinafter referred to as program memory) 213a to 213d for storing a large amount of data. 215 is the system bus 116 and high-speed bus 117
This is an interface bus that connects the bus interface sections 108 and 109 of the data memory section 107 and the data memory section 107. 2168-p are memory buses for exchanging data between each block memory 210a=p and the calculation unit 104, and 217aNd is a processor bus. 214.21
8. 219, 220, 221, 222, and 223 are all control signal lines. Among the control signal lines connected to the register 200, the signal line 214 is connected to the system bus interface unit 109, and the signal line 218 is connected to the bus.・The exchange control unit 1o5 (hereinafter abbreviated as bus controller), the signal line 220 connects the calculation unit 104, and the signal line 222 connects the high-speed bus interface unit 108, and these control signal lines exchange commands and status. There is. Further, among the control signal lines connected to the bus controller 105, the signal line 219 is connected to the arithmetic unit 104, and the signal line 221
Connects the bus connection/exchange unit 106 (hereinafter abbreviated as bus selector) and the signal line 223 connects the data memory unit 107 to perform similar exchanges.

く並列演算部の初期化〉 並列演算部103は、メインCPUl0Iから画像デー
タやプログラムをロードして動作する。
Initialization of Parallel Computing Unit> The parallel computing unit 103 operates by loading image data and programs from the main CPU I0I.

メインCPU I O1は最初に並列演算部103の初
期化を行う。メインCPU 101はシステムバスイン
ターフェース部109及び信号線214を介してレジス
タ200に初期化コマンドを書き込む。そこで、レジス
タ200は初期化コマンドを信号線218,219,2
20,221.222を介して高速バスインターフェー
ス部108.バスコントローラ1o5.パスセレクタ1
06及び演算部104の各演算器211a−dに送り、
各々を初期化する。各演算要素211a−dの各プログ
ラムメモリ213a−dへの、メインCPU101から
のプロセッサの初期化プログラムのダウンロード、及び
プロセッサ間の通信路手段の設定については別項で後述
する。
The main CPU IO1 first initializes the parallel calculation unit 103. The main CPU 101 writes an initialization command to the register 200 via the system bus interface section 109 and the signal line 214. Therefore, the register 200 sends the initialization command to the signal lines 218, 219, 2.
20, 221, and 222 via the high-speed bus interface unit 108. Bus controller 1o5. path selector 1
06 and each arithmetic unit 211a-d of the arithmetic unit 104,
Initialize each. The downloading of the processor initialization program from the main CPU 101 to each program memory 213a-d of each calculation element 211a-d and the setting of communication path means between processors will be described later in a separate section.

以上の初期化によって、インターフェースバス215は
システムバスインターフェース部109とデータメモリ
部107との間で接続状態にされ、アドレスやデータは
全てリセットされる。その後、メインCPU 101に
よりシステムバス116、またはインターフェースバス
215を高速バスインターフェース部108に切換えて
、外部より画像データをデータメモリ部107に書き込
む。
By the above initialization, the interface bus 215 is brought into a connected state between the system bus interface section 109 and the data memory section 107, and all addresses and data are reset. Thereafter, the main CPU 101 switches the system bus 116 or the interface bus 215 to the high-speed bus interface section 108, and writes image data into the data memory section 107 from the outside.

くデータメモリ部107の構成〉 データメモリ部107はインターフェースバス215か
ら見て連続したアドレスとなっている。
Configuration of Data Memory Section 107> The data memory section 107 has consecutive addresses when viewed from the interface bus 215.

ここで、説明を簡単にするために、1画素分のデータを
Y(黄色)9M(マゼンタ色)、C(シアン色)、Bk
(黒色)の4色で表し、各色8ビットデータて表す。デ
ータメモリ部107の容量は全部で16Mバイトである
ため、画像サイズは2048X2048となり、そのア
ドレス領域は000000H−FFFFFFH(Hは1
6進数を表わしている)となる。
Here, to simplify the explanation, data for one pixel is Y (yellow), 9M (magenta), C (cyan), Bk
(black), and each color is represented by 8-bit data. Since the total capacity of the data memory section 107 is 16M bytes, the image size is 2048X2048, and its address area is 000000H-FFFFFFH (H is 1
(represents a hexadecimal number).

このデータメモリ部107のデータ構造を示したのが第
4図である。Y、M、C,Bは各色のデータを表し、(
)内の数は画像データにおける画素位置を示している。
FIG. 4 shows the data structure of this data memory section 107. Y, M, C, B represent the data of each color, (
The numbers in ) indicate pixel positions in the image data.

データメモリ107の各メモリブロックはデュアルポー
トメモリで構成され、各ブロックメモリの各ボートはイ
ンターフェースハス215とメモリバス216a−pに
各々接続されている。そして、インターフェースバス2
15側から、これらメモリブロックをアクセスする場合
は、前述の○○○0OOH〜FFFFFFHのアドレス
にて行う。ブロックメモリ21Oa −pのメモリ上の
割り付けは、第5図に示す通りである。点線はインター
フェースバス215より見たアドレスの順番を示す。
Each memory block of data memory 107 is configured as a dual port memory, and each port of each block memory is connected to interface bus 215 and memory bus 216a-p, respectively. And interface bus 2
When accessing these memory blocks from the 15 side, it is done using the addresses from ○○○0OOH to FFFFFFH described above. The memory allocation of block memories 21Oa-p is as shown in FIG. The dotted lines indicate the order of addresses as viewed from the interface bus 215.

大かっこ”[]”で示されたアドレスは各画素の7色デ
ータ1バイトを格納しであるデータメモリ107のアド
レスを示している。実線はメモリバス216a−pから
見たアドレスの順番を示す。また、矢かつこ“く 〉“
で示されたアドレスは、メモリブロック2101におけ
る各画素の7色データ1バイトを格納しているアドレス
を示している。
The address shown in square brackets "[]" indicates the address of the data memory 107 which stores 1 byte of seven color data for each pixel. The solid lines indicate the order of addresses as seen from memory buses 216a-p. Also, Yakatsuko "ku 〉"
The address indicated by is an address in which one byte of seven-color data of each pixel in the memory block 2101 is stored.

く内部バスの構成〉 第2図に示したように、並列処理部103の内部バスと
して、インターフェースバス215と、メモリハス21
6a〜p及びプロセッサバス217a〜dがあるが、以
下にそれぞれのバスの構成を説明する。
Configuration of Internal Bus> As shown in FIG. 2, the internal buses of the parallel processing unit 103 include an interface bus 215 and a memory bus 21.
6a to 6p and processor buses 217a to 217d, and the configuration of each bus will be explained below.

まず、インターフェースバス215において、アドレス
、データの幅は最大でシステムハスと同じ構成であって
もよいが、ここではアドレス空間を16Mハイドとする
。従って、アドレス幅24ビツト、データ幅32ビツト
とする。
First, in the interface bus 215, the address and data widths may have the same configuration as the system bus at maximum, but here the address space is 16M hide. Therefore, the address width is 24 bits and the data width is 32 bits.

次に、メモリバス216a〜pは、メモリブロックのア
クセス時に使用されるため、各メモリブロックのアドレ
ス空間に対応して1Mバイトである。従って、アドレス
幅は20ビツト、データ幅を8ビツトとする。最後にプ
ロセッサバス217a〜dの構成はメモリバス216a
−pと同様な構成とする。
Next, since the memory buses 216a to 216p are used when accessing the memory blocks, they are 1M byte corresponding to the address space of each memory block. Therefore, the address width is 20 bits and the data width is 8 bits. Finally, the configuration of processor buses 217a to 217d is memory bus 216a.
- The configuration is similar to that of p.

くブロックアクセス方式〉 ブロックアクセス方式は、各プロセッサ212a −d
がブロックメモリ210a−pの内から複数のブロック
メモリを占有してアクセスする方式である。即ち、1つ
のブロックメモリが同時に2つ以上のプロセッサからア
クセスされることはないようにする。ここで、プロセッ
サPROC212a〜212dからみた場合、16Mバ
イトの全アドレス空間をアドレッシングできるようにす
るために、各プロセッサでは24ビツトのアドレスを生
成する。そこで、前述のプロセッサバス217a〜21
7dのアドレス20ビツトの上位に、第6図に示すよう
にメモリブロック番号を示す4ビツトを付加して、24
ビツトのアドレッシングを可能とする。
Block access method> The block access method is based on each processor 212a-d.
This is a method in which a plurality of block memories from among the block memories 210a-p are occupied and accessed. That is, one block memory is not accessed by two or more processors at the same time. Here, when viewed from the processors PROC 212a to 212d, each processor generates a 24-bit address in order to be able to address the entire address space of 16 Mbytes. Therefore, the aforementioned processor buses 217a to 217
As shown in FIG. 6, 4 bits indicating the memory block number are added to the upper part of the 20 bits of the address 7d to make the address 24.
Allows bit addressing.

このようなアドレスがプロセッサバス217a〜217
dに出力されると、前述のメモリブロック番号、即ちア
ドレス上位4ビツトをバスコントローラ105に送付す
る。これにより、バスコントローラ105はメモリブロ
ック番号に従ってバスセレクタ106を切換えることに
より、各プロセッサが所望のメモリブロックにアクセス
することができる。もし、同一のメモリブロックに複数
のプロセッサがアクセスしようとした時は、予め設定さ
れた優先順位に従って優先順位が最も高いプロセッサが
占有し、他のプロセッサは待ち状態になるか、他のプロ
セッサの要求を他のメモリブロックへ切り換える等の動
作を行う。
Such addresses are used on processor buses 217a to 217.
d, the aforementioned memory block number, ie, the upper 4 bits of the address, is sent to the bus controller 105. Thereby, the bus controller 105 switches the bus selector 106 according to the memory block number, thereby allowing each processor to access a desired memory block. If multiple processors try to access the same memory block, the processor with the highest priority will occupy it according to the preset priority order, and the other processors will either go into a waiting state or respond to requests from other processors. Perform operations such as switching the memory block to another memory block.

く画素アクセス方式〉 画素アクセス方式は、プロセッサ212a−dのそれぞ
れがデータメモリ部107の領域の任意画素をアクセス
する方式である。即ち、1つの画素が同時に2つ以上の
プロセッサからアクセスされることかないようにする。
Pixel Access Method> The pixel access method is a method in which each of the processors 212a to 212d accesses an arbitrary pixel in the area of the data memory section 107. That is, one pixel is prevented from being accessed by two or more processors at the same time.

プロセッサ212a〜dにより生成されるアドレスデー
タは、ブロックアクセス方式と同様の24ビツトである
。このように生成されたアドレスの上位4ビツトをバス
コントローラ105に、残りの下位ビットをプロセッサ
バス(217a〜217d)に送信する。
The address data generated by processors 212a-d is 24 bits similar to the block access method. The upper 4 bits of the address generated in this way are transmitted to the bus controller 105, and the remaining lower bits are transmitted to the processor bus (217a to 217d).

これにより、各プロセッサが同一のメモリブロックをア
クセスしない場合には、バスコントローラ105は各プ
ロセッサが要求する画素データが得られるように、パス
セレクタ106によってメモリバス216a−pと、対
応するプロセッサバス217a−dのいずれかとを接続
する。
As a result, when each processor does not access the same memory block, the bus controller 105 uses the path selector 106 to connect the memory bus 216a-p and the corresponding processor bus 217a so that the pixel data requested by each processor can be obtained. - Connect to either of d.

もし、同一のメモリブロック内の画素に複数のプロセッ
サがアクセスしようとした時は、予め設定された優先順
位に従って優先順位の高いプロセッサがそのメモリブロ
ックをアクセスし、他のプロセッサは待ち状態になる。
If multiple processors attempt to access pixels in the same memory block, the processor with the higher priority accesses the memory block according to a preset priority order, and the other processors enter a wait state.

そして、次のクロックでその優先順位に従って、タイム
シェアリングでメモリブロックがアクセスされる。
Then, in the next clock, the memory block is accessed by time sharing according to the priority order.

くハスセレクタ106の構成〉 以下、ハスセレクタ106の構成を第7図及び第8図を
参照して説明する。
Configuration of Lotus Selector 106> The configuration of the lotus selector 106 will be described below with reference to FIGS. 7 and 8.

ハスセレクタ106の内部は双方向のセレクタを含むデ
ータ部と、1方向のセレクタを含むアドレス部とに分離
できる。第7図はパスセレクタ106のデータ部のブロ
ック図であり、第8図は同じくパスセレクタ106のア
ドレス部のブロック図である。
The inside of the lotus selector 106 can be separated into a data section including a bidirectional selector and an address section including a unidirectional selector. FIG. 7 is a block diagram of the data section of the path selector 106, and FIG. 8 is a block diagram of the address section of the path selector 106.

まず、データ部の構成について説明する。第7図におい
て、300,305はデータの流れる方向を制御する双
方向バッファである。301,304は各素子の遅延に
よるデータのタイミングずれを補正するためのラッチ回
路である。302゜303はセレクタ部である。
First, the configuration of the data section will be explained. In FIG. 7, 300 and 305 are bidirectional buffers that control the direction in which data flows. Reference numerals 301 and 304 are latch circuits for correcting data timing deviations due to delays in each element. 302 and 303 are selector sections.

双方向バッファ300において、306a−tは、制御
信号D I RB310が“○”で導通、“l”で高イ
ンピーダンス状態になる負動作バッファ、307a〜p
は制御信号DIRBが“1”て導通、“O”で高インピ
ーダンス状態になる正動作バッファである。また、セレ
クタ部302の308a”pは4人力のうちから1つを
選択して出力する4−1セレクタであり、セレクタ部3
03の309a〜pは、1入力を4出力のうちの1つを
選択して出力する1−4セレクタである。
In the bidirectional buffer 300, 306a-t are negative operation buffers 307a-p that are conductive when the control signal DI RB 310 is "○" and are in a high impedance state when it is "l".
is a normal operation buffer that is conductive when the control signal DIRB is "1" and becomes a high impedance state when the control signal DIRB is "O". In addition, 308a''p of the selector section 302 is a 4-1 selector that selects and outputs one out of four human forces.
03, 309a to 309p are 1-4 selectors that select one of four outputs from one input and output the selected one.

313a〜pはメモリバス216a−pのうちのデータ
が通るデータ線を示し、例えばデータ線313aはメモ
リブロック210aからメモリバス216aへのデータ
線である。以下、313b〜pについても同様である。
313a-p indicate data lines through which data of the memory buses 216a-p pass; for example, data line 313a is a data line from memory block 210a to memory bus 216a. The same applies to 313b to 313p below.

また、314a〜dはプロセッサハス217a−dのう
ちデータが通るデータ線で、例えばデータ線314aは
プロセッサバス217aのデータ線を示している。以下
、314b−dについても同様である。
Further, 314a to 314d are data lines through which data passes among the processor buses 217a to 217d, and for example, the data line 314a indicates the data line of the processor bus 217a. The same applies to 314b-d below.

310.311,312,313はバスコントローラ1
05からの制御信号線で、信号線310と311はプロ
セッサ212a〜dがメモリブロック210a−pに対
して書込みを要求しているか、読込みを要求しているか
によって、各双方向バッファ300.305の方向性を
決定している。なお、信号線310を通る信号名をDI
RBとし、16ビツト幅とする。また信号線311を通
る信号名をDIRPとし、4ビット幅とする。
310.311, 312, 313 are bus controller 1
05, signal lines 310 and 311 are used to control each bidirectional buffer 300. It determines the direction. Note that the name of the signal passing through the signal line 310 is DI.
It is assumed to be RB and has a width of 16 bits. Further, the name of the signal passing through the signal line 311 is DIRP, and the width is 4 bits.

さらに信号線312と313はプロセッサ212a −
dかメモリブロック210a−pのいずれにアクセスし
ているかによって、セレクタ部302と303における
接続を切換えるセレクタ信号を送る。信号線312を通
る信号名を5ELRとし、各メモリブロックに対してプ
ロセッサの個数分の信号幅(この場合は、16X4=6
4ビット幅)である。信号線313を通る信号名を5E
LWとし、5ELRと同様の信号幅(この場合は、64
ビツト)である。
Furthermore, the signal lines 312 and 313 are connected to the processor 212a -
d or memory blocks 210a-p is being accessed, a selector signal is sent to switch the connection between selector sections 302 and 303. The signal name passing through the signal line 312 is 5ELR, and the signal width is equal to the number of processors for each memory block (in this case, 16X4=6
4 bit width). The name of the signal passing through signal line 313 is 5E.
LW and the signal width similar to 5ELR (in this case, 64
bit).

次に、第8図を参照してバスセレクタ106のアドレス
部について説明する。
Next, the address section of the bus selector 106 will be explained with reference to FIG.

第8図において、1300a−d、1302は各素子の
遅延によるデータのタイミングずれを補正するためのラ
ッチ回路である。1301 a〜1301dは1人力を
16出力のうちから1つの出力を選択して出力する1−
16セレクタである。
In FIG. 8, 1300a-d and 1302 are latch circuits for correcting data timing deviations due to delays in each element. 1301a to 1301d are 1- outputs that select one output from 16 outputs using one person's power.
16 selector.

1303a−dはプロセッサバス217a〜dのうちア
ドレス情報が通るアドレス線である。ここで、例えばア
ドレス線1303aはプロセッサバス217aのアドレ
ス線であり、プロセッサ212aと接続されている。こ
の信号名をPAOとする。以下、アドレス線1303b
−dについても同様である。また、1304a−pはメ
モリバス216a〜dのうちのアドレスが通るアドレス
線を示し、例えばアドレス線1304aはメモリブロッ
ク210aにアドレスを供給する。以下、同様にアドレ
ス線]、304b−pのそれぞれは、メモリブロック2
10b〜pのそれぞれにアドレスを供給している。
1303a-d are address lines through which address information passes among the processor buses 217a-d. Here, for example, address line 1303a is an address line of processor bus 217a, and is connected to processor 212a. This signal name is PAO. Below, address line 1303b
The same applies to -d. Further, 1304a-p indicates address lines through which addresses of the memory buses 216a-d pass, and for example, address line 1304a supplies an address to the memory block 210a. Similarly, address lines] and 304b-p are memory blocks 2 and 304b-p.
An address is supplied to each of 10b to 10p.

第9図は1−16セレクタ1301a−dの構成を示す
ブロック図であり、セレクタ1301a〜dはいずれも
同じ構成であるので、1−16セレクタ1301aを例
にして説明する。
FIG. 9 is a block diagram showing the configuration of the 1-16 selectors 1301a-d. Since the selectors 1301a-d all have the same configuration, the 1-16 selector 1301a will be explained as an example.

1800はプロセッサバス217aのアドレス線である
*  1801 a−pは各メモリバス216aA−p
のアドレス部に通じている。1802a〜pは20ビツ
トの出力に対して同時に制御線SELが“1”で導通、
“0”で高インピーダンスとなる正動作バッファである
。18o3はバスコントローラ105から入力される制
御信号線(SEL)であり、これによって正動作バッフ
ァ1802a〜pが制御される。この制御線に出力され
る信号は、正動作バッファ1802aに入る制御線をM
SBとし、1802pに入る制御線をLSBとして、ブ
ロック図に従って順に1ビツトずつならべた信号である
1800 is the address line of the processor bus 217a * 1801 a-p is the address line of each memory bus 216aA-p
It leads to the address part of. 1802a to 1802p are conductive when the control line SEL is "1" at the same time for the 20-bit output,
This is a direct operation buffer with high impedance at “0”. 18o3 is a control signal line (SEL) input from the bus controller 105, and the normal operation buffers 1802a to 1802p are controlled by this. The signal output to this control line connects the control line entering the normal operation buffer 1802a to M
This is a signal in which the control line entering 1802p is designated as SB and the control line entering 1802p is designated as LSB, and the bits are arranged one bit at a time according to the block diagram.

くパスセレクタ106の動作〉 以上の構成を基づいて、バスセレクタ106の動作につ
いて例を挙げて説明する。
Operation of Bus Selector 106> Based on the above configuration, the operation of the bus selector 106 will be explained using an example.

まず最初に、プロセッサ212a〜212ciがメモリ
ブロック107からブロックアクセス方式によりデータ
を読込む方法について述べる。
First, a method for the processors 212a to 212ci to read data from the memory block 107 using a block access method will be described.

ここでは、プロセッサ212aがメモリブロック210
aの100H番地から1バイトデータを読込む場合につ
いて説明する。まず、プロセッサ212aが第6図に示
すような24ビツトのアドレスを発行する。この場合、
アドレスデータは“000100□”となる。このアド
レスの上位4ビツトと、読込みモードか書込みモードか
を知らせるR/W信号と、アクセスを知らせるアクセス
モード信号は、信号線219を経てバスコントローラ1
05に送られる。この場合、R/W信号は読込みを、ア
クセスモード信号はブロックアクセスを示している。
Here, the processor 212a is connected to the memory block 210
A case will be described in which 1 byte data is read from address 100H of a. First, processor 212a issues a 24-bit address as shown in FIG. in this case,
The address data becomes "000100□". The upper 4 bits of this address, the R/W signal that indicates read mode or write mode, and the access mode signal that indicates access are sent to the bus controller 1 via signal line 219.
Sent to 05. In this case, the R/W signal indicates reading, and the access mode signal indicates block access.

ここで、バスコントローラ105はアクセスの衝突の有
無を判断し、衝突がない場合はアクセス可であることを
表す信号をプロセッサ212aに送る。衝突がある場合
、衝突した他のプロセッサとの優先順位を比較して、も
し他のプロセッサよりもプロセッサ212aの優先順位
が高いときはアクセス可であることを表わす信号をプロ
セッサ212aに送り、逆にプロセッサ212aの方が
優先順位が低ければ、プロセッサ212aにアクセス待
ちを表すウェイト信号が送られる。
Here, the bus controller 105 determines whether there is an access conflict, and if there is no conflict, sends a signal indicating that access is possible to the processor 212a. If there is a conflict, the priorities of the processor 212a are compared with those of other processors that have conflicted, and if the priority of the processor 212a is higher than that of the other processor, a signal indicating that access is possible is sent to the processor 212a, and vice versa. If the processor 212a has a lower priority, a wait signal indicating that it is waiting for access is sent to the processor 212a.

アクセス可信号を受けとったプロセッサ212aはバス
コントローラ105に対しアクセス開始信号を送り、メ
モリブロック210aへのアクセスを開始する。バスコ
ントローラ105は必要な制御信号が信号線221を経
てパスセレクタ106に送られる。この制御信号は、パ
スセレクタ106のアドレス部とデータ部に分割して送
られ、データ部では信号名DIRB、DIRP、5EL
Rとして送られ、アドレス部では信号名5ELAとして
送られる。この場合は読込みであるから、双方向バッフ
ァ300,305に与えられる信号のDIRB及びDI
RPにおいて、プロセッサ212aに接続される正動作
バッファ307qと負動作バッファ306qに入力され
る信号は”0°゛であり、メモリブロック210aに接
続される正動作バッファ307aと負動作バッファ30
6aに入力される信号も“0”である。こうして、ブロ
セ゛ソサバス217aのデータ系泉314aとデータバ
ス216aのデータ線313aとを接続する。
The processor 212a that has received the access enable signal sends an access start signal to the bus controller 105 to start accessing the memory block 210a. The bus controller 105 sends necessary control signals to the path selector 106 via the signal line 221. This control signal is divided and sent to the path selector 106 into an address part and a data part, and the data part has signal names DIRB, DIRP, and 5EL.
It is sent as R, and in the address part it is sent as signal name 5ELA. Since this is a read, the DIRB and DI signals given to the bidirectional buffers 300 and 305
In RP, the signals input to the positive operation buffer 307q and the negative operation buffer 306q connected to the processor 212a are "0°", and the signals input to the positive operation buffer 307a and the negative operation buffer 30 connected to the memory block 210a are "0°".
The signal input to 6a is also "0". In this way, the data system spring 314a of the browser bus 217a and the data line 313a of the data bus 216a are connected.

セレクタ部303の1−4セレクタ309aのブロック
図を第10図に示す。
A block diagram of the 1-4 selector 309a of the selector section 303 is shown in FIG.

400a〜dはバスコントローラ105からの制御線4
03a=dによって入力8ビツトに対して同時に“1”
で導通、”○”で高インピーダンスとする正動作バッフ
ァである。その出力線402a−dのそれぞれは、ラッ
チ回路304を介して負動作バッファ306q−tに接
続されている。
400a to 400d are control lines 4 from the bus controller 105.
03a=d makes it “1” for 8 input bits at the same time
This is a direct-operation buffer that is conductive when the value is ``○'' and has high impedance when it is ``○''. Each of its output lines 402a-d is connected via a latch circuit 304 to negative operation buffers 306q-t.

そこで、プロセッサバスのデータ線314aとメモリバ
スのデータ線313aとを接続するためには、1−4セ
レクタ309aに入る制御線313の4038に“1”
を、403b〜dにO”を入力する。これと同時に、セ
レクタ部303内の他のセレクタ309b−Pの制御線
403aに“O”を送ってその出力を禁止することによ
り、バス上での衝突をさける。
Therefore, in order to connect the data line 314a of the processor bus and the data line 313a of the memory bus, 4038 of the control line 313 entering the 1-4 selector 309a must be set to "1".
"O" is input to 403b to 403d. At the same time, "O" is sent to the control line 403a of the other selectors 309b to 309P in the selector unit 303 to inhibit their output. Avoid collisions.

一方、アドレス部ではプロセッサバス217aのアドレ
ス部の1303aとメモリハス216aのアドレス部の
1304aとの接続を1−16セレクタ1301aで切
り換える。また、バスコントローラ105は制御線22
3を介してブロックメモリ210aを読出しモードにす
る。即ち、1−16セレクタ1301aに入る信号線3
13の入力の一部が16ビツトの信号線1803(第9
図)であり、この16ビツトの信号線のMSB(最上位
ビット)が“1”で、他ビットが“O”となる。
On the other hand, in the address section, the connection between the address section 1303a of the processor bus 217a and the address section 1304a of the memory bus 216a is switched by a 1-16 selector 1301a. In addition, the bus controller 105
3 to put the block memory 210a into read mode. That is, the signal line 3 entering the 1-16 selector 1301a
Part of the 13th input is the 16-bit signal line 1803 (9th
The MSB (most significant bit) of this 16-bit signal line is "1" and the other bits are "O".

以上をまとめると、プロセッサ212aから発行された
24ビツトアドレスの上位4ビツトがバスコントローラ
105に入力され、そのアドレス下メモリブロックがア
クセス可である場合に、プロセッサバス217aのアド
レス(20ビツト)がバスセレクタ106のラッチ13
00a (第8図)にまずラッチされ、次に1−16セ
レクタ1301aに入力された信号線1305によって
メモリブロック210aを選択し、ラッチ1302にそ
のアドレスがラッチされる。その後、アドレス線130
4aに出力され、メモリバス216aに送られアクセス
される。
To summarize the above, when the upper 4 bits of the 24-bit address issued by the processor 212a are input to the bus controller 105 and the memory block under that address is accessible, the address (20 bits) of the processor bus 217a is input to the bus controller 105. Latch 13 of selector 106
00a (FIG. 8), then the memory block 210a is selected by the signal line 1305 input to the 1-16 selector 1301a, and the address is latched into the latch 1302. Then address line 130
4a and sent to memory bus 216a for access.

一方、メモリブロック210a読み出されたデータはメ
モリバス216aのデータ線からデータ線313aに入
り、負動作バッファ306aを経てラッチ301にラッ
チされる。ラッチされたデータはデータ線を経て、1−
4セレクタ309aに入力され、正動作バッファ400
a (第10図)を通りラッチ304にラッチされる。
On the other hand, data read from memory block 210a enters data line 313a from the data line of memory bus 216a, passes through negative operation buffer 306a, and is latched by latch 301. The latched data passes through the data line, 1-
4 selector 309a, direct operation buffer 400
a (FIG. 10) and is latched by latch 304.

そして負動作バッファ306qを経てデータ線314a
、即ち、プロセッサバス217aのデータ線からプロセ
ッサ212aに入力される。
The data line 314a is then connected to the data line 314a via the negative operation buffer 306q.
That is, it is input to the processor 212a from the data line of the processor bus 217a.

以下、同じブロックメモリ(210a)内の任意のアド
レスにアクセスを行う場合は、プロセッサ212aはた
だ単にアドレスを発行して読出したデータを受けとるだ
けでよい。こうして、同一ブロックメモリへのアクセス
を終了し、他のブロックメモリにアクセスを変更する場
合は、プロセッサ212aはバスコントローラ105に
対してアクセス終了信号を送る。
Hereinafter, when accessing an arbitrary address within the same block memory (210a), the processor 212a only needs to issue an address and receive the read data. In this manner, when the access to the same block memory is terminated and the access is changed to another block memory, the processor 212a sends an access termination signal to the bus controller 105.

次に、プロセッサ2128〜212dがメモリブロック
にデータを書込む場合について説明する。ここでは、プ
ロセッサ212aからアドレスとデータを発行して、メ
モリブロック210pの°“999”番地に1バイトの
データを書込む場合を例にして説明する。
Next, a case in which the processors 2128 to 212d write data to a memory block will be described. Here, an example will be described in which the processor 212a issues an address and data and writes 1 byte of data to the address "999" of the memory block 210p.

まず、プロセッサ212aが第6図に示すようなアドレ
スを発行する。この場合のアドレスデータは“FOO9
99,”である。このアドレスの上位4ビツトとR/W
モード信号(この場合は書込みモード)及びアクセスモ
ード信号(この場合はブロックアクセスモード)をバス
コントローラ105に送る。バスコントローラ105は
ブロックに対するアクセスの衝突の有無を判断し、プロ
セッサ212aにアクセス可又はウェイト信号を送る。
First, the processor 212a issues an address as shown in FIG. In this case, the address data is “FOO9
99,”.The upper 4 bits of this address and R/W
A mode signal (in this case write mode) and an access mode signal (in this case block access mode) are sent to bus controller 105 . The bus controller 105 determines whether there is a conflict in access to the block and sends an access permission or wait signal to the processor 212a.

アクセス可信号を受けとったプロセッサ212aはバス
コントローラ105にアクセス開始信号を送り、メモリ
ブロック210pへのアクセスを開始する。
The processor 212a that has received the access enable signal sends an access start signal to the bus controller 105 and starts accessing the memory block 210p.

まず、バスセレクタ106のデータ部の多方向バッファ
300.305の方向性を定める。まず双方向バッファ
300については、信号DIRBのLSBを“1”とし
、正動作バッファ307pを導通させ、負動作バッファ
306pを高インピーダンスとする。また双方向バッフ
ァ305については信号DIRPのMSBを”1”とし
、正動作バッファ307qを導通させ、負動作バッファ
307Pに高インピーダンスにする。次に、セレクタ部
302の中の4−1セレクタ308pに対してプロセッ
サバス217aのデータ線314aとメモリバス216
aのデータ線313pとを接続する。バスコントローラ
105は4−1セレクタ308pに対して信号5ELW
を信号線312を通して制御する。4−1セレクタ30
8pは他のセレクタ308a−oと同じ構成である。
First, the directionality of the multidirectional buffers 300 and 305 in the data section of the bus selector 106 is determined. First, regarding the bidirectional buffer 300, the LSB of the signal DIRB is set to "1", the positive operation buffer 307p is made conductive, and the negative operation buffer 306p is made high impedance. Further, regarding the bidirectional buffer 305, the MSB of the signal DIRP is set to "1", the positive operation buffer 307q is made conductive, and the negative operation buffer 307P is set to high impedance. Next, the data line 314a of the processor bus 217a and the memory bus 216 are connected to the 4-1 selector 308p in the selector unit 302.
It is connected to the data line 313p of a. The bus controller 105 sends a signal 5ELW to the 4-1 selector 308p.
is controlled through a signal line 312. 4-1 selector 30
8p has the same configuration as the other selectors 308a-o.

第11図はそのセレクタ308pの構成を示すブロック
図である。
FIG. 11 is a block diagram showing the configuration of the selector 308p.

第11図において、500a−dは制御信号線403a
〜dにより“1”が入力された場合は8ビツトを同時に
導通させ、“O”が入力された場合は8ビット同時に高
インピーダンス状態にする正動作バッファである。50
1はメモリバス216Pのデータ線であり、502a=
dはそれぞれがプロセッサバス217a−dのデータ線
である。従って、プロセッサバス217aのデータ線と
メモリバス216pのデータ線を結線するためには、ま
ず4−1セレクタ308pへのバスコントローラ105
からの制御信号5ELWのうち、信号線403aのみが
“1”で、403b−dが“0”でなければならない。
In FIG. 11, 500a-d are control signal lines 403a
It is a direct operation buffer that turns on 8 bits at the same time when "1" is input by ~d, and puts 8 bits into a high impedance state at the same time when "O" is input. 50
1 is the data line of the memory bus 216P, and 502a=
d are data lines of processor buses 217a-d, respectively. Therefore, in order to connect the data line of the processor bus 217a and the data line of the memory bus 216p, first, the bus controller 105 connects the data line of the processor bus 217a to the data line of the memory bus 216p.
Of the control signal 5ELW from the control signal 5ELW, only the signal line 403a must be "1" and the signal lines 403b-d must be "0".

また、バスコントローラ105は制御線223(第2図
)を介してブロックメモリ210pを書込みモードにす
る。
The bus controller 105 also puts the block memory 210p into write mode via the control line 223 (FIG. 2).

その後に書込むべきデータがプロセッサ212aによっ
て発行され、プロセッサバス217aのデータ線314
aを通り、正動作バッファ307qを経由してラッチ3
04に−Hラッチされる。
Data to be written subsequently is issued by processor 212a and is sent to data line 314 of processor bus 217a.
a, and the latch 3 via the direct operation buffer 307q.
-H is latched at 04.

次にこのデータは4−1セレクタ308pに供給され、
データ線502a (第11図)を通り正動作バッファ
500aを経由し、データ線501を通ってラッチ回路
3o1 (第7図)にラッチされる。その後、このデー
タは双方向バッファ300の正動作バッファ307pを
経由し、メモリバス216pのデータ線313pを通っ
てメモリブロック210pに到達し、そのメモリブロッ
クの所定の番地゛999”に書込まれる。
This data is then supplied to the 4-1 selector 308p,
It passes through the data line 502a (FIG. 11), the normal operation buffer 500a, the data line 501, and is latched into the latch circuit 3o1 (FIG. 7). Thereafter, this data passes through the normal operation buffer 307p of the bidirectional buffer 300, passes through the data line 313p of the memory bus 216p, reaches the memory block 210p, and is written to a predetermined address "999" in the memory block.

以下、同じブロックメモリ内の任意のアドレスにアクセ
スを行う場合は、プロセッサ2128はただ単にアドレ
スを発行してデータを出力するだけでよく、同一メモリ
ブロックへのアクセスを終了し、他のブロックメモリに
アクセスを変更する場合は、プロセッサ212aはバス
コントローラ205に対し、アクセス終了信号を送る。
Hereinafter, when accessing an arbitrary address within the same block memory, the processor 2128 only needs to issue an address and output data, and then terminates the access to the same memory block and transfers it to another block memory. When changing the access, the processor 212a sends an access end signal to the bus controller 205.

次に、メモリブロックの画素をアクセスする場合につい
て述べる。ここではプロセッサ212a〜dがデータメ
モリ107領域の中の任意の画素値を読み書きする場合
を例にして説明する。
Next, the case of accessing pixels in a memory block will be described. Here, an example will be described in which the processors 212a to 212d read and write arbitrary pixel values in the data memory 107 area.

プロセッサ212a〜212dのそれぞれが画素値の格
納されているメモリアドレスを発行する。これにより、
各プロセッサよりの24ビツトアドレスの上位4ビツト
、R/Wモード信号(各プロセッサで異なる)、アクセ
スモード信号(この場合は画素アクセスモード)がバス
コントローラ105に送られ、バスコントローラ105
は各画素を含むブロック単位に、画素アクセスのクロッ
ク毎にアクセスの衝突の有無を判断し、各プロセッサに
アクセス可又はウェイトの信号を信号線219を経て送
出する。更に、アクセス可となったプロセッサのプロセ
ッサバスと、その相手のメモリブロックのメモリハスと
を接続するように、パスセレクタ106とデータメモリ
部107に対して制御信号を信号線221,223を介
して送る。これら制御信号を受取ったバスセレクタ10
°6とデータメモリ部107は、前述したブロックアク
セス時と同様に、メモリバスとプロセッサバスとを接続
する。
Each of the processors 212a-212d issues a memory address where a pixel value is stored. This results in
The upper 4 bits of the 24-bit address from each processor, the R/W mode signal (different for each processor), and the access mode signal (pixel access mode in this case) are sent to the bus controller 105.
determines whether or not there is an access collision for each pixel access clock for each block including each pixel, and sends an access permission or wait signal to each processor via the signal line 219. Furthermore, a control signal is sent to the path selector 106 and the data memory unit 107 via the signal lines 221 and 223 so as to connect the processor bus of the processor that has become accessible and the memory bus of the other memory block. . Bus selector 10 receiving these control signals
6 and the data memory unit 107 connect the memory bus and the processor bus as in the case of block access described above.

(以下余白) 〈バスコントローラ105の構成〉 第12図はバスコントローラ105の構成を示すブロッ
ク図である。
(The following is a blank space) <Configuration of the bus controller 105> FIG. 12 is a block diagram showing the configuration of the bus controller 105.

バスコントローラ105は各プロセッサ212a〜dか
ら出されたアドレスの上位4ビツト、即ちメモリブロッ
クの番号、R/W信号、アクセスモード信号、アクセス
開始または終了信号を受取り、パスセレクタ106やデ
ータメモリ部107を制御する信号を送出する。601
a−dは各プロセッサ212a−dから出されたメモリ
ブロック番号を格納しておくためのバッファである。バ
ッファ601aはプロセッサ212aから出力されたメ
モリブロック番号を格納する。以下、バッファ601b
−dのそれぞれも、各プロセッサ212b−dよりのブ
ロック番号を記憶しており、より詳しく説明するとバッ
ファ601aはプロセッサ212aが読出す領域と書込
む領域とを同時に占有して処理を行えるように、読出す
ブロックメモリの番号と書込むブロックメモリの番号と
を格納する。
The bus controller 105 receives the upper 4 bits of the address output from each processor 212a to 212d, that is, the memory block number, R/W signal, access mode signal, and access start or end signal, and receives the path selector 106 and the data memory section 107. sends a signal to control the 601
A-d are buffers for storing memory block numbers output from each processor 212a-d. Buffer 601a stores the memory block number output from processor 212a. Below, the buffer 601b
-d also stores the block number from each processor 212b-d, and to explain in more detail, the buffer 601a is configured so that the processor 212a can simultaneously occupy a read area and a write area to perform processing. Stores the number of the block memory to be read and the number of the block memory to be written.

605はこれらのブロックメモリへの各プロセッサより
のアクセスの衝突を検知する衝突検出器である。606
は衝突が生じた場合にいずれのプロセッサを優先させる
かを記憶しておく優先順位保持器である。607は衝突
の有無とプロセッサの優先順位を入力して、各プロセッ
サに対しアクセス可またはウェイト信号を発生するコン
トローラである。602は衝突検出器605とコントロ
ーラ607による遅延による切換えタイミングの誤差を
なくすための遅延回路である。603はコントローラ6
07によってアクセス可となったプロセッサのメモリブ
ロック番号だけを後段に送るゲートである。604は各
メモリブロック番号とR/W信号を入力し、パスセレク
タ106とメモリブロック210a−pを制御する信号
を生成するデコーダである。
Reference numeral 605 denotes a collision detector that detects collisions of accesses from each processor to these block memories. 606
is a priority holder that stores which processor should be given priority in the event of a conflict. A controller 607 inputs the presence or absence of a conflict and the priority of the processors and generates an access permission or wait signal for each processor. 602 is a delay circuit for eliminating switching timing errors due to delays caused by the collision detector 605 and controller 607. 603 is controller 6
This is a gate that sends only the memory block number of the processor that can be accessed by 07 to the subsequent stage. A decoder 604 receives each memory block number and R/W signal and generates a signal for controlling the path selector 106 and the memory blocks 210a-p.

608a−dのそれぞれは各プロセッサ212a −”
 dより要求されるブロックメモリ番号等を入力する信
号線である。627はプロセッサ212a −dのそれ
ぞれからのR/W信号を、628はアクセス開始−また
は終了信号とアクセスモード信号をバッファ601a〜
dに入力するための信号線である。 609a Nd、
 61.1 a Nd、 613a −dは各プロセッ
サからの読出しメモリブロック番号を、610a−d、
 612aNd、  614a % dは各プロセッサ
からの書込みメモリブロック番号を各々の後段に送る信
号線である。618a −dは各プロセッサ212a−
dに対してアクセス可またはウェイト信号を出力するた
めの信号線、617はメインCPUl0Iで決められた
各プロセッサのアクセス優先順位を優先順位保持器60
6に送る信号線である。619は衝突検出器605から
の衝突の有無をコントローラ607に伝える信号線であ
る。620はコントローラ607からアクセス可又はウ
ェイト信号を伝える信号線である。621はデータメモ
リ部107の各メモリブロック210a〜pにR/W信
号を送る信号線である。
608a-d each correspond to a respective processor 212a-"
This is a signal line for inputting the block memory number etc. requested by d. 627 is an R/W signal from each of the processors 212a to 212d, and 628 is an access start or end signal and an access mode signal to buffers 601a to 601a.
This is a signal line for input to d. 609a Nd,
61.1a Nd, 613a-d are read memory block numbers from each processor, 610a-d,
612aNd and 614a%d are signal lines for sending write memory block numbers from each processor to the respective subsequent stages. 618a-d are each processor 212a-
A signal line 617 is for outputting an accessible or wait signal to d, and 617 is a priority holder 60 that stores the access priority of each processor determined by the main CPU I0I.
This is the signal line sent to 6. Reference numeral 619 is a signal line that transmits the presence or absence of a collision from the collision detector 605 to the controller 607. 620 is a signal line that transmits an accessible or wait signal from the controller 607. A signal line 621 sends an R/W signal to each memory block 210a to 210p of the data memory section 107.

くバスコントローラ105の動作〉 最初にブロックアクセス方式でのアクセスついて説明を
行う。例として、プロセッサ212aがメモリブロック
210aからデータを読出し、ある処理をしてメモリブ
ロック210pに書込むと同時に、プロセッサ212b
がメモリブロック210aからデータを読出し、別処理
をしてメモリブロック210cに書込む場合を例をとっ
て説明する。説明を簡易にするために他の2つのプロセ
ッサ212c、212dよりのアクセス要求はないもの
とする。
Operation of bus controller 105> First, access using the block access method will be explained. As an example, at the same time that processor 212a reads data from memory block 210a, performs some processing, and writes data to memory block 210p, processor 212b
An example will be explained in which the data is read from the memory block 210a, subjected to separate processing, and written to the memory block 210c. To simplify the explanation, it is assumed that there are no access requests from the other two processors 212c and 212d.

プロセッサ212aと212bはまず信号線627を介
して、バッファ601a、601bへ読出しモードをセ
ットし、信号線608aと608bを介してバッファ6
01a及び601bに読出すメモリブロックの番号、即
ちメモリブロック210aの番号“0”を格納する。
The processors 212a and 212b first set the read mode to the buffers 601a and 601b via the signal line 627, and set the read mode to the buffer 601a and 601b via the signal lines 608a and 608b.
The number of the memory block to be read, ie, the number "0" of the memory block 210a, is stored in 01a and 601b.

次に、同様にして信号線627を介してバッファへの書
込みモードをセットし、書込むメモリブロック番号、即
ちバッファ601aには“FM(メモリブロック210
pを示す)を、バッファ601b!::は“2H(メモ
リブロック210cを示す)を格納する。その後、信号
線628を介してバッファ601a、601bをブロッ
ク・アクセスモードに設定する。即ち、アクセス開始信
号によってメモリブロック番号を信号線609a、b、
610a、bに初めて送出し、アクセス終了信号か入力
されるまで、これを保持し続ける。
Next, similarly, the write mode to the buffer is set via the signal line 627, and the memory block number to be written, that is, the buffer 601a, is set to "FM (memory block 210
p), the buffer 601b! :: stores "2H (indicating the memory block 210c). After that, the buffers 601a and 601b are set to block access mode via the signal line 628. That is, the memory block number is set to the signal line 609a by the access start signal. ,b,
It is sent to 610a and 610b for the first time and is held until an access end signal is input.

この状態で、バッファ601a及び601bにプロセッ
サ212a及び212bからアクセス開始信号が入力さ
れると、信号線609a、b、610a、bを介して各
ブロックメモリ番号が遅延器602及び衝突検出器60
5に供給される。これにより、衝突検出器605は各ブ
ロックメモリ番号を比較して衝突の有無を調べる。この
例ではメモリブロック210aへのアクセスで衝突があ
ったことがわかる。そこで、衝突を起こしているプロセ
ッサの番号を信号線619を介してコントローラ607
に送る。ここで、優先順位保持器606には予めメイン
CPU 101からシステムバスインタフェース部10
9.信号線214.レジスタ200.信号線218(以
上、第2図)を介して衝突時の優先順位が格納されてい
る。ここでは、プロセッサ212aが最優先で、以下プ
ロセッサ212b、212c、212dの順に優先順位
が低く設定されているものとする。
In this state, when access start signals are input from the processors 212a and 212b to the buffers 601a and 601b, each block memory number is sent to the delay device 602 and the collision detector 60 through the signal lines 609a, b, 610a, b.
5. As a result, the collision detector 605 compares each block memory number to check whether there is a collision. In this example, it can be seen that there was a collision in accessing the memory block 210a. Therefore, the number of the processor causing the conflict is sent to the controller 607 via the signal line 619.
send to Here, the priority order holder 606 is configured in advance from the main CPU 101 to the system bus interface unit 10.
9. Signal line 214. Register 200. The priority order at the time of collision is stored via the signal line 218 (see above, FIG. 2). Here, it is assumed that the processor 212a has the highest priority, and the processors 212b, 212c, and 212d are given lower priority in this order.

こうして、コントローラ607はプロセッサ212aと
212bの衝突を知ると、優先順位保持器606の優先
順位を参照してプロセッサ212aにメモリブロック2
10aへのアクセスを認める。そこで、コントローラ6
07は信号線618a、618c、618dを介してプ
ロセッサ212a、212c、212dに対してアクセ
ス可信号を送出するとともに、信号線618bを介して
プロセッサ212bにウェイト信号を送出する。
In this way, when the controller 607 learns of the conflict between the processors 212a and 212b, it refers to the priorities in the priority holder 606 and assigns the memory block 2 to the processor 212a.
Allow access to 10a. Therefore, controller 6
07 sends an access enable signal to the processors 212a, 212c, and 212d via signal lines 618a, 618c, and 618d, and sends a wait signal to the processor 212b via a signal line 618b.

信号線620はこれら4本の信号線を束ねた線であり、
ゲート603にも同様の情報が伝送される。この例では
、信号線613b、614bを除く信号線に対してメモ
リブロック番号が送出される。これを受けてデコーダ6
04は信号線313.312,1305,310,62
1,311に制御信号を送出する。
The signal line 620 is a line that bundles these four signal lines,
Similar information is also transmitted to gate 603. In this example, the memory block number is sent to signal lines other than signal lines 613b and 614b. Upon receiving this, decoder 6
04 is signal line 313, 312, 1305, 310, 62
1,311 to send a control signal.

これらデコーダ604より出力される信号を以下に説明
する。
The signals output from these decoders 604 will be explained below.

まず、信号線313の信号5ELRにより4−1セレク
タ309a (第7図)がプロセッサ212aとメモリ
ブロック210aとを接続するように制御する。また、
信号線312の信号5ELWにより、1−4セレクタ3
08pかプロセッサ212aとメモリブロック210p
とを接続するように制御する。さらに、信号線1305
の信号5ELAの中でR/W信号が読出しモードのとき
、プロセッサハス217aのアドレス線1303aがメ
モリバス216aのアドレス線1304a(第8図)と
が接続されるように、R/W信号が書込みモードのとき
プロセッサバス217aのアドレス線1303aがメモ
リバス216pのアドレス線1.3049とが接続され
るように1−16セレクタ1301a−dに対して制御
を行う。
First, the signal 5ELR on the signal line 313 controls the 4-1 selector 309a (FIG. 7) to connect the processor 212a and the memory block 210a. Also,
The signal 5ELW on the signal line 312 causes the 1-4 selector 3 to
08p or processor 212a and memory block 210p
and control the connection. Furthermore, the signal line 1305
When the R/W signal is in the read mode in signal 5ELA of In mode, the 1-16 selectors 1301a-d are controlled so that the address line 1303a of the processor bus 217a is connected to the address line 1.3049 of the memory bus 216p.

また、信号線310の信号DIRBは負動作バッファ3
06aを導通させ、かつ正動作バッファ307pを導通
させる。信号線311の信号DIRPのデータ線314
aに関してはR/W信号が読出しモードのときは、デー
タ線314aの負動作バッファを導通させ(即ち“o”
)、逆に書込みモードのときは正動作バッファを導通さ
せる(即ち1°′)。更に、信号線621のRW傷信号
16ビツトの信号であり、各メモリブロック210a〜
pに1ビツトずつ接続されており、各プロセッサからの
R/W信号を、アクセスされたメモリブロックに送出し
ている。こうして、アクセス終了信号か信号線628を
介してバッファ601aまたは601bに入力されると
、バッファ内に蓄積されている次のメモリブロックの番
号が信号線609a、b、610a、bに出力される。
Further, the signal DIRB on the signal line 310 is connected to the negative operation buffer 3.
06a is made conductive, and the normal operation buffer 307p is made conductive. Data line 314 of signal DIRP of signal line 311
Regarding a, when the R/W signal is in the read mode, the negative operation buffer of the data line 314a is made conductive (i.e., "o"
), and conversely, in the write mode, the normal operation buffer is made conductive (ie, 1°'). Furthermore, it is a 16-bit RW defect signal on the signal line 621, and is a 16-bit signal for each memory block 210a to 210a.
Each bit is connected to p, and the R/W signal from each processor is sent to the accessed memory block. Thus, when the access end signal is input to buffer 601a or 601b via signal line 628, the number of the next memory block stored in the buffer is output to signal lines 609a, b, 610a, b.

次に、画素アクセス方式でのアクセスの場合について説
明する。例としてプロセッサ212aとプロセッサ21
2bが画素アクセスを行い、説明を簡易にするために他
の2つのプロセッサからのアクセスはないものとする。
Next, the case of access using the pixel access method will be explained. For example, processor 212a and processor 21
2b performs pixel access, and for the sake of simplicity, it is assumed that there is no access from the other two processors.

プロセッサ212aと212bはまず信号線628を介
してバッファ601aと601bを画素アクセスモード
に設定する6次にプロセッサ212aと212bは信号
線608a、608bを介してアクセスするメモリブロ
ック番号をバッファ601a、601bに格納する。そ
の後、信号線609a、b、610a、610bを介し
て各メモリブロック番号が遅延器602及び衝突検出器
605に供給される。衝突検出器605はブロックアク
セス時と同様にして、同じメモリブロックへのアクセス
要求が衝突したかを検出する。
The processors 212a and 212b first set the buffers 601a and 601b to pixel access mode via the signal line 628. Next, the processors 212a and 212b set the memory block number to be accessed to the buffers 601a and 601b via the signal lines 608a and 608b. Store. Thereafter, each memory block number is supplied to the delay device 602 and the collision detector 605 via signal lines 609a, b, 610a, and 610b. The collision detector 605 detects whether access requests to the same memory block collide in the same manner as when accessing a block.

更にこの結果をうけたコントローラ607は、ブロック
アクセス時と同様にして優先順位を参照して各プロセッ
サ及びゲート603にアクセス可又はウェイト信号を送
出する。ゲート603はこれに基づいて、必要とされる
メモリブロック番号をデコーダ604に送り、このデコ
ーダ604はブロックアクセス時と同様にして制御信号
を各信号線に出力する。こうして、プロセッサ212a
と212bは順次にアドレス即ちメモリブロック番号を
生成してバスコントローラ105に出力するため、この
画素毎のタイミングでバスコントローラ105の内部状
態が切換えられる。
Further, upon receiving this result, the controller 607 refers to the priority order and sends an access permission or wait signal to each processor and gate 603 in the same manner as when accessing a block. Based on this, the gate 603 sends the required memory block number to the decoder 604, and the decoder 604 outputs a control signal to each signal line in the same manner as when accessing a block. Thus, processor 212a
and 212b sequentially generate addresses or memory block numbers and output them to the bus controller 105, so the internal state of the bus controller 105 is switched at this timing for each pixel.

くシステム規模の変更〉 各システム内の構成部分は、メモリブロック210a 
〜210p、プロセッサ212a 〜212dを単位に
して構成されている。そこで、システムの規模を変更す
る場合には、これらの回路を増減するだけでよい。これ
らの回路を予め要求される分だけを用意して実際に実装
しておくだけで、簡単にメモリ容量やプロセッサの数を
変更することが可能である。また、これらの回路やプロ
セッサ及びその周辺、メモリブロック及びその周辺をモ
ジュール化しておき、必要に応じてメモリ容量やプロセ
ッサ数を変更できるようにすることも可能である。
Change in system scale> The components within each system are the memory block 210a.
210p and processors 212a to 212d. Therefore, when changing the scale of the system, it is sufficient to simply increase or decrease the number of these circuits. By preparing in advance only the required number of these circuits and actually implementing them, it is possible to easily change the memory capacity and the number of processors. It is also possible to modularize these circuits, processors and their peripheries, and memory blocks and their peripheries so that the memory capacity and the number of processors can be changed as needed.

なお、前述した回路構成以外に、タイミング合せのため
のラッチ回路の増設や削除等のハードウェアの変更も可
能であり、実施例中におけるバス衝突検出、優先順位に
よるバス衝突回避はこれに限定されず、他の検出回路に
よって行ってもかまわない、また、複数のプロセッサが
完全に同時に同じ画素を読出す場合については、この実
施例を用いて行うことも可能であり、この場合デコーダ
604によって制御を変更すればよい。
In addition to the circuit configuration described above, it is also possible to change the hardware, such as adding or removing a latch circuit for timing alignment, and bus collision detection and bus collision avoidance based on priority in the embodiment are limited to this. In addition, in the case where multiple processors read out the same pixel at the same time, it is also possible to use this embodiment, and in this case, the decoder 604 controls the All you have to do is change.

[ブロックアクセス活用のアプリケーション例]ここで
は、本実施例の演算部104の複数の演算要素をバス接
続・交換制御部105及びバス接続・交換部106を用
いてデータメモリ部107と接続・交換する機能を、レ
イトレーシング法で画像を生成する演算を実行する場合
を例に説明する。
[Example of application utilizing block access] Here, a plurality of calculation elements of the calculation unit 104 of this embodiment are connected and exchanged with the data memory unit 107 using the bus connection/exchange control unit 105 and the bus connection/exchange unit 106. The functions will be explained using an example in which an operation to generate an image using the ray tracing method is executed.

レイトレーシング法とは、第13図に示すように、スク
リーン上の各画素を通る視線ごとに、この各視線と最初
に交わる物体を探索し、この物体上の表面色をもって、
それぞれの画素のもつ画素値を決定していくもので、ス
クリーン上の各画素に対して、全く同様な探索法をくり
返す方式である。なお、各画素の間は互いに独立に探索
が可能である。第13図から容易に推測可能な様に、画
像を複数の画像の小領域をブロックとして、ブロック単
位に並列に実行することが可能である。
As shown in Figure 13, the ray tracing method searches for the object that first intersects each line of sight passing through each pixel on the screen, and then searches for the object that first intersects each line of sight, and uses the surface color of this object to
The pixel value of each pixel is determined, and the same search method is repeated for each pixel on the screen. Note that it is possible to search between each pixel independently of each other. As can be easily inferred from FIG. 13, it is possible to process images in parallel in block units, with small areas of a plurality of images being treated as blocks.

第14図はこの扱う画像のサイズが2048画素x画素
48画素より構成され、512画素×512画素よりな
る16の正方小領域に分割されている。これら16個の
正方小領域は、MBO−MB15と番号付けられて区別
されている。
In FIG. 14, the size of the image to be handled is composed of 2048 pixels x 48 pixels, and is divided into 16 square small areas each consisting of 512 pixels x 512 pixels. These 16 square small areas are numbered and distinguished as MBO-MB15.

第2図において、各演算要素211a〜211dに対し
て、レイトレースするに必要となる形状データ、各形状
の配置を表現するデータ、光源データ、視点データ、ス
クリーンの位置、各形状の表面色データ等の3次元の世
界を記述しているデータと、これをレンダリングするア
ルゴリズムを実行するプログラム及び各プロセッサが担
当すべきスクリーン領域が情報としてダウンロードされ
、各プロセッサに独立に配置されているプログラムメモ
リ213a〜213dに対して、前述の方法でそれぞれ
ダウンロードされる。
In FIG. 2, for each calculation element 211a to 211d, shape data necessary for ray tracing, data expressing the arrangement of each shape, light source data, viewpoint data, screen position, and surface color data of each shape. A program memory 213a includes data describing a three-dimensional world, a program for executing an algorithm for rendering the data, and a screen area to be handled by each processor, and is arranged independently in each processor. ~213d, respectively, are downloaded using the method described above.

ここで、スクリーン領域とは、第13図のスクリーン1
101を16個の領域に分割してなるそれぞれSBO〜
5B15と名付けられたスクリーン上の小領域のことで
ある。これらスクリーン上の小領域5BO−SB15が
、それぞれ前記第14図のMBO〜MB15に対応して
いる6212a〜212dの4個のプロセッサのそれぞ
れ4本まで使用可能なシリアル通信手段は、プログラム
がメインCPU 101より通信路交換制御部1001
 (第3図)を制御することによって、第15図の様に
設定される。
Here, the screen area refers to screen 1 in FIG.
Each SBO formed by dividing 101 into 16 areas ~
It is a small area on the screen named 5B15. These small areas 5BO to SB15 on the screen correspond to MBO to MB15 in FIG. 101 to the communication path exchange control unit 1001
(FIG. 3), settings are made as shown in FIG. 15.

第15図において、1401はプロセッサ212aとプ
ロセッサ212bの間を結ぶシリアル通信路を示す。同
様に、1402はプロセッサ212bとプロセッサ21
2Cとの間を結ぶシリアル通信路、1403はプロセッ
サ212Cとプロセッサ212dとの間を結ぶシリアル
通信路、1404はプロセッサ212dとプロセッサ2
12aとの間を結ぶシリアル通信路、1405はプロセ
ッサ212aとプロセッサ212Cとの間を結ぶシリア
ル通信路、1406はプロセッサ212bとプロセッサ
212dとの間を結ぶシリアル通信路を示している。尚
、1400は第3図のパラレル/シリアル変換器100
4とプロセッサ212aとの間を結ぶシリアル通信路を
示す。並列処理部103は、この通信路1400を通じ
て、メインCPU 101よりプログラム及びデータを
ダウンロードされ、また必要に応じてメインCPU 1
o1と交信するものである。
In FIG. 15, 1401 indicates a serial communication path connecting the processor 212a and the processor 212b. Similarly, 1402 is the processor 212b and the processor 21
2C, 1403 is a serial communication path between processor 212C and processor 212d, and 1404 is a serial communication path between processor 212C and processor 2C.
12a, 1405 is a serial communication path between processor 212a and processor 212C, and 1406 is a serial communication path between processor 212b and processor 212d. In addition, 1400 is the parallel/serial converter 100 in FIG.
4 and the processor 212a. The parallel processing unit 103 downloads programs and data from the main CPU 101 through this communication path 1400, and also downloads programs and data from the main CPU 101 as necessary.
It communicates with o1.

以下、第16図〜第18図のフローチャートに基づいて
説明する。第16図はプロセッサ212aに関するプロ
グラムとして表現されている。プロセッサ212aでは
スクリーン上の小領域SBO,SB4.SB8,5B1
2が暗黙の処理領域の分担として定められている。また
、プロセッサ212bにはSBI、SB5.SB9,5
B13が、プロセッサ212CにはSB2.SB6,5
BIO,5B14か、プロセッサ212dにはSB3.
SB7.SBI 1.5B15が暗黙の処理領域として
割り振られている。
The following description will be made based on the flowcharts shown in FIGS. 16 to 18. FIG. 16 is expressed as a program related to the processor 212a. The processor 212a processes small areas SBO, SB4 . SB8,5B1
2 is defined as the implicit processing area allocation. Further, the processor 212b includes SBI, SB5. SB9,5
B13, and SB2.B13 to the processor 212C. SB6,5
BIO, 5B14 or processor 212d has SB3.
SB7. SBI 1.5B15 is allocated as implicit processing area.

ステップS1で処理を開始する。プロセッサ212aの
暗黙の処理領域として割付けられている小領域SBO,
SB4.SB8.SB]2の各ブロック毎に、未処理の
領域であるか否かを示すフラグ(以下、各々SBO処理
フラグ、SB4処理フラグ、SB8処理フラグ、5B1
2処理フラグと呼ぶ)が用意されている。
Processing starts in step S1. A small area SBO allocated as an implicit processing area of the processor 212a,
SB4. SB8. A flag indicating whether or not it is an unprocessed area for each block of [SB]2 (hereinafter, SBO processing flag, SB4 processing flag, SB8 processing flag, 5B1)
2 processing flag) is prepared.

ステップS2では、これらのフラグを全てリセットシテ
、SBO,SB4.SB8.5B12は全て未処理の状
態であるとしてフラグを初期化する。ステップS3では
、第17図に示すフローチャートに従って、未処理の小
領域(以下、空領域と呼ぶ)を探す。
In step S2, all these flags are reset, SBO, SB4 . SB8.5B12 initializes the flags, assuming that all are in an unprocessed state. In step S3, an unprocessed small area (hereinafter referred to as an empty area) is searched for according to the flowchart shown in FIG.

第17図はこの空き領域を探す処理を示すフローチャー
トで、ここでは各小領域に対応したフラグを調べ、リセ
ットされていればその小領域の処理フラグをセットし、
その小領域のブロック番号を処理ブロック番号レジスタ
にセットする。また、小領域の−いずれかに空領域があ
る場合には、空領域の存在を示すフラグ(以下、空領域
存在フラグと呼ぶ)をセットするが、空領域がない場合
には、この空領域存在フラグをリセットして、空領域が
存在しないことを明示する。
FIG. 17 is a flowchart showing the process of searching for this free area. Here, the flag corresponding to each small area is checked, and if it has been reset, the processing flag for that small area is set.
The block number of the small area is set in the processing block number register. Also, if there is an empty area in either of the small areas, a flag indicating the existence of an empty area (hereinafter referred to as an empty area existence flag) is set, but if there is no empty area, this empty area Reset the existence flag to clearly indicate that the empty space does not exist.

ステップS4では、ステップS3で空領域存在フラグの
状態を基に、空き状態があるかないかを判別する。空領
域がある場合にはステップS5へ、ない場合にはステッ
プSllへ進む。ステップS5では、処理ブロック番号
レジスタに格納されている空領域番号で指定される空領
域のレンダリング処理を行なう。次にステップS6に進
み、他のプロセッサからシリアル通信路を経由して、プ
ロセッサ212aのもつ暗黙に割りつけられた処理領域
中に空領域が有るか否かの問い合わせがあったか否かを
判断している。問合せがなかった場合にはステップS3
へ戻り、問合せがあった場合にはステップS7へ進む。
In step S4, it is determined whether or not there is a free space based on the state of the free space existence flag in step S3. If there is an empty area, the process proceeds to step S5; otherwise, the process proceeds to step Sll. In step S5, rendering processing is performed on the empty area specified by the empty area number stored in the processing block number register. Next, the process proceeds to step S6, in which it is determined whether or not there has been an inquiry from another processor via the serial communication path as to whether or not there is an empty area in the implicitly allocated processing area of the processor 212a. There is. If there is no inquiry, step S3
If there is an inquiry, the process goes to step S7.

ステップS7ではステップS3と同様に空領域の存在を
チエツクし、空領域存在フラグを設定する。空領域が存
在した場合は、空領域の番号を空領域番号レジスタに設
定する。次にステップS8に進み、空領域存在フラグに
よりステップS7での判定結果を吟味し、空領域が存在
する場合はステップS9に進み、間合せてきたプロセッ
サへ空領域番号を返答してステップS6に戻る。一方、
空領域が存在しない場合はステップSIOへ進み、空領
域無しであることを間合せてきたプロセッサへ返答して
、ステップS6に戻る。
In step S7, as in step S3, the existence of an empty area is checked and a empty area existence flag is set. If an empty area exists, the empty area number is set in the empty area number register. Next, the process proceeds to step S8, and the determination result in step S7 is examined based on the empty area existence flag. If an empty area exists, the process proceeds to step S9, and the empty area number is returned to the processor that has made an arrangement, and the process proceeds to step S6. return. on the other hand,
If there is no empty area, the process advances to step SIO, where a reply is sent to the processor that has arranged that there is no empty area, and the process returns to step S6.

一方、ステップS4で空き領域がないときはステップS
llに進む。この時は、プロセッサ212aに暗黙に割
当てられた小領域はすべて未処理状態ではなくなった状
況である。ここで、他のプロセッサに対し、空領域の存
在を尋ねるために、尋ねるべき他のプロセッサの番号を
間合せプロセッサ番号レジスタにセットする。次にステ
ップS12に進み、間合せプロセッサ番号レジスタで指
定されたプロセッサに対して、空領域の有無を間合せ、
他のプロセッサに空領域が有れば、その空領域のレンダ
リング処理を行なう。空領域がなければ、ステップS1
2の処理を終えてステップS13へ進む。ステップS1
2では更に、以上の処理中に他のプロセッサより空領域
の問合せがあった場合に空領域は無い旨を返答している
On the other hand, if there is no free space in step S4, step S
Proceed to ll. At this time, all the small areas implicitly allocated to the processor 212a are no longer in an unprocessed state. Here, in order to ask other processors about the existence of empty space, the number of the other processor to be asked is set in the makeshift processor number register. Next, the process advances to step S12, and the presence or absence of an empty area is determined for the processor specified by the temporary processor number register,
If another processor has an empty area, the empty area is rendered. If there is no empty space, step S1
After completing the process of step 2, the process advances to step S13. Step S1
Further, in No. 2, when there is an inquiry about an empty area from another processor during the above processing, the processor replies that there is no empty area.

次に、ステップS13に進み、次に尋ねるべき他のプロ
セッサ番号を間合せプロセッサ番号レジスタにセットす
る。そして、ステップS14で、間合せプロセッサ番号
レジスタにセットされているプロセッサ番号の指すプロ
セッサに対し、ステップS12と同様の処理を行なう。
Next, the process advances to step S13, and the other processor number to be asked next is set in the makeshift processor number register. Then, in step S14, the same process as in step S12 is performed on the processor pointed to by the processor number set in the makeshift processor number register.

次にステップS15では、またもう一つの他のプロセッ
サ番号を間合せプロセッサ番号レジスタにセットし、ス
テップS16で、ステップS12及びステップS14と
同様の処理を行なう。本例では、ステップSllではプ
ロセッサ212bを、ステップS13ではプロセッサ2
12cを、ステップS15ではプロセッサ212dを指
定している。また、ステップS12.S14.S16は
同一の処理内容であり、第18図にその詳細を示す。
Next, in step S15, another processor number is set in the makeshift processor number register, and in step S16, the same processing as in step S12 and step S14 is performed. In this example, the processor 212b is activated in step Sll, and the processor 2 is activated in step S13.
12c, and the processor 212d is specified in step S15. Also, step S12. S14. S16 has the same processing content, and the details are shown in FIG.

第18図は間合せるように指示されたプロセッサに空き
領域があるかどうかを間合せる処理を示すフローチャー
トである。
FIG. 18 is a flowchart showing the process of determining whether or not there is free space in the processor that has been instructed to do so.

まずステップS21で処理を開始すると、ステップS2
2で間合せプロセッサ番号レジスタで指定されたプロセ
ッサへ空き領域があるかを間合せる。ステップS23で
返答の有無を見て、返答がまだ無い場合にはステップS
24へ進む。ステップS24では、他のプロセッサから
空領域の問合せが有るかどうかを判断し、他のプロセッ
サよりの空領域の問合せがあった場合はステップS25
へ進み、間合せて来たプロセッサに対し、空領域は無い
旨を返答してステップS24へ戻る。
First, when the process is started in step S21, step S2
In step 2, it is determined whether there is free space in the processor specified by the make-up processor number register. Check whether there is a response in step S23, and if there is no response yet, step S23
Proceed to 24. In step S24, it is determined whether there is an inquiry about the empty area from another processor. If there is an inquiry about the empty area from another processor, step S25
The process proceeds to step S24, and replies to the processor that has arrived in time that there is no empty space, and returns to step S24.

ステップS24で空領域の問合せが無い場合はステップ
S23へ戻るが返答かあった場合はステップS26へ進
む。ステップS26で空領域があったか否かを判断し、
空領域かある場合にはステップS27へ、無い場合には
ステップS30へ進む。ステップS27では、他のプロ
セッサからの空き領域の問合せがあったか否かを判定し
、問合せが有る場合はステップS28へ進み、間合せて
来たプロセッサに対して、空領域の無い旨を返答してス
テップS27へ戻る。一方、ステップS27で他のプロ
セッサよりの問合せがなかった場合はステップS29に
進み、返答でうけた他のプロセッサの空き領域をレンダ
リング処理してステップS22へ戻る。ステップS26
で空領域が無い場合にはステップS30へ進み、他のプ
ロセッサから、暗黙で割り付けられている領域に空領域
が有るか否かの問い合せを受けたか否かを判断し、問合
せを受けた場合は、ステップS31で空領域が無い旨を
返答してステップS30へ戻る。ステップS30で問合
せを受けていない場合には、運の処理を終了してメイン
ルーチンに戻る。
If there is no inquiry about the empty area in step S24, the process returns to step S23, but if there is a response, the process proceeds to step S26. In step S26, it is determined whether there is an empty area,
If there is an empty area, the process advances to step S27, and if there is no empty area, the process advances to step S30. In step S27, it is determined whether or not there is an inquiry about free space from another processor. If there is an inquiry, the process advances to step S28, and a reply is sent to the incoming processor that there is no free space. Return to step S27. On the other hand, if there is no inquiry from another processor in step S27, the process advances to step S29, where the free space of the other processor received in response is subjected to rendering processing, and the process returns to step S22. Step S26
If there is no empty area, the process proceeds to step S30, where it is determined whether or not an inquiry has been received from another processor as to whether or not there is an empty area in the implicitly allocated area. , in step S31, it replies that there is no empty area and returns to step S30. If no inquiry has been received in step S30, the luck process is ended and the process returns to the main routine.

以上、プロセッサ212aの場合のプログラムを例に説
明をしたが、プロセッサ212b〜プロセツサ212d
に対しても、プログラムも暗黙に割付けられている小領
域が異なり、空領域の有無を間合せるプロセッサ番号が
異なるだけで、全く同様のプログラムで動作するもので
ある。
The above has been explained using the program for the processor 212a as an example, but the program for the processors 212b to 212d has been explained above.
, the program is completely similar, except that the small area that is implicitly allocated to the program is different, and the processor number that determines whether there is an empty area is different.

このようにして、第13図で示されるスクリーン上の各
小領域が全て処理される。
In this way, all the small areas on the screen shown in FIG. 13 are processed.

(以下余白) [データメモリからビデオフレームメモリへの画像デー
タの転送] ここでは、演算部103内のデータメモリ1゜7に格納
されている画像データを、モニタデイスプレィ111に
表示するために、ビデオメモリ110へ画像データを高
速に転送する処理を第1図及び第20図を用いて説明す
る。第20図は、本実施例で必要な部分だけを第1図か
ら抜粋したものである。第1図と同じ動作をするものは
同一番号を付して示している。
(Left below) [Transfer of image data from data memory to video frame memory] Here, in order to display the image data stored in the data memory 1.7 in the calculation unit 103 on the monitor display 111, The process of transferring image data to the video memory 110 at high speed will be explained using FIGS. 1 and 20. FIG. 20 is an excerpt from FIG. 1 of only the parts necessary for this embodiment. Components that operate in the same way as in FIG. 1 are designated by the same numbers.

1010はアドレス発生器であり、第1図内の高速バス
I/F部108及び、システムバス■/F109部を合
わせたものである。107は演算部内のデータメモリ部
で、演算のための画像データを格納するメモリ部である
。説明を簡単にするために本実施例では、2048X2
048画素。
Reference numeral 1010 denotes an address generator, which is a combination of the high-speed bus I/F section 108 and the system bus I/F section 109 in FIG. Reference numeral 107 denotes a data memory section in the calculation section, which is a memory section that stores image data for calculation. In order to simplify the explanation, in this example, 2048X2
048 pixels.

R,G、B画像データは各8ビツトの構成であるとする
。1011はアドレス発生器であり、アドレス発生器1
010と同様のものである。1012はビデオフレーム
メモリであり、111のモニタデイスプレィに表示する
ための画像データを格納するメモリである。説明を簡単
にするため、本実施例では、1280X1024画素、
1画素のR,G、Bは各8ビツトの構成であるとする。
It is assumed that R, G, and B image data each have an 8-bit configuration. 1011 is an address generator, address generator 1
It is similar to 010. A video frame memory 1012 is a memory that stores image data to be displayed on the monitor display 111. To simplify the explanation, in this example, 1280 x 1024 pixels,
It is assumed that R, G, and B of one pixel each have a configuration of 8 bits.

また、1013は表示変換器であり、ビデオフレームメ
モリ1012に蓄積されたデジタルビデオ画像データを
アナログ画像にD/A変換等する。111は、例えばC
RT表示装置等のモニタであり、アナログ信号に従って
画像を表示する。本実施例では、モニタの解像度を12
80X 1024画素とする。
A display converter 1013 performs D/A conversion of digital video image data stored in the video frame memory 1012 into an analog image. 111 is, for example, C
This is a monitor such as an RT display device, and displays images according to analog signals. In this example, the monitor resolution is set to 12
80×1024 pixels.

先ず、動作概略について説明すると、操作者は転送した
いデータメモリ部内の先頭アドレス、転送領域の主走査
/副走査方向の画素数、及び転送先のビデオフレームメ
モリ内の先頭アドレス等、この転送処理に必要な情報を
図示しないキーボードやマウスに代表されるポインティ
ングデバイス等を用いて指定する。これらの情報を基に
、メインCPU1.01がシステムバス116を通して
該当する並列処理部103内のアドレス発生器1010
及びビデオフレームメモリ110内のアドレス発生器1
011にその旨を指示し、高速画像転送バス117を経
由して画像データを高速に転送する。
First, to explain the general operation, the operator enters information such as the start address in the data memory section to be transferred, the number of pixels in the main scanning/sub-scanning direction of the transfer area, and the start address in the video frame memory of the transfer destination, etc. for this transfer process. Necessary information is specified using a pointing device such as a keyboard or mouse (not shown). Based on this information, the main CPU 1.01 issues an address generator 1010 in the corresponding parallel processing unit 103 via the system bus 116.
and address generator 1 in video frame memory 110
011 to that effect, and the image data is transferred at high speed via the high-speed image transfer bus 117.

以下、詳細に動作原理を説明する。The operating principle will be explained in detail below.

第21図は、アドレス発生器1010/1011の構成
を示すブロック図である。
FIG. 21 is a block diagram showing the configuration of address generators 1010/1011.

図において、10200は、双方向のデータマルチプレ
クサ(MPX)であり、システムデータ及び画像データ
の流れを切替える。10201も同様にマルチプレクサ
であり、システムアドレスと内部発生アドレスを切替え
る。並列処理部103は、例えばDRAM等で構成され
、ストローブ信号に従って、画像データを高速に読書き
することができる。
In the figure, 10200 is a bidirectional data multiplexer (MPX) that switches the flow of system data and image data. Similarly, 10201 is a multiplexer and switches between a system address and an internally generated address. The parallel processing unit 103 is composed of, for example, a DRAM, and can read and write image data at high speed according to a strobe signal.

一方、10205はYレジスタであり、画像データの転
送開始Yアドレスを保持する。10203はRON  
(行)カウンタであり、転送のための垂直同期(V−s
ync)信号10215によってYレジスタ10205
の内容をロードし、その後は同じく転送のための水平同
期()I−Sync)信号10214によって1インク
リメントされる。10204はXレジスタで、画像デー
タの転送開始Xアドレスを保持する。10202はカラ
ム1(列)カウンタであり、!−1−5ync信号10
214によってXレジスタ10204の内容をロードし
、その後は転送のためのクロック(CLK)信号1−0
213によって1インクリメントされる。10207.
10208はシフタで、それぞれ指令によって各カウン
タ10202,10203の出力(内部発生アドレス)
をシフトする。10206は制御レジスタであり、カラ
ムカウンタ10202.行カウンタ10203の出力を
何れの方向に何ビットシフトするかの情報を保持してい
る。即ち、レジスタ10206=OならMO”ビット、
=−1なら下位方向に“l”ビット、=1なら上位方向
に“1”ビットシフトする。以下、同様である。
On the other hand, 10205 is a Y register, which holds the Y address at which image data transfer starts. 10203 is RON
(row) counter, vertical synchronization (V-s) for transfer
ync) signal 10215 causes Y register 10205
After that, it is incremented by 1 by the horizontal synchronization (I-Sync) signal 10214 for transfer. Reference numeral 10204 denotes an X register that holds an X address at which to start transferring image data. 10202 is column 1 (column) counter, and ! -1-5 sync signal 10
214 to load the contents of the X register 10204, and then clock (CLK) signals 1-0 for transfer.
It is incremented by 1 by 213. 10207.
10208 is a shifter, which outputs each counter 10202, 10203 according to a command (internally generated address)
shift. 10206 is a control register, and column counter 10202. It holds information on which direction and how many bits to shift the output of the row counter 10203. That is, if register 10206=O, the MO” bit;
If =-1, shift "l" bits in the lower direction, and if =1, shift "1" bits in the upper direction. The same applies hereafter.

また、l○209,10210はレジスタで、シフタ1
0207,10208を通過したアドレス情報に加える
べきアドレスデータを夫々保持する、10211.10
212は加算器であり、シフタ10207,10208
を通過したアドレス情報とレジスタ10209.102
10の内容を夫々加算する。
Also, l○209 and 10210 are registers, and shifter 1
10211.10, which holds address data to be added to the address information passed through 0207 and 10208, respectively.
212 is an adder, and shifters 10207 and 10208
Address information and register 10209.102 passed through
Add the contents of 10 respectively.

一方、10221はYレングスレジスタであり、画像デ
ータの転送Yレングスを保持する。10219はYカウ
ンタであり、■信号10215でクリアされた後、H信
号10214を入力する毎に+1される。10220は
比較器であり、Yカウンタ10219の内容がYレング
スレジスタ10211の内容より小さい間は論理ルベル
の信号を出力する。また、10218はXレングスレジ
スタであり、画像データの転送Xレングスを保持する。
On the other hand, 10221 is a Y length register that holds the transfer Y length of image data. Reference numeral 10219 is a Y counter, which is incremented by 1 each time an H signal 10214 is input after being cleared by the ■ signal 10215. A comparator 10220 outputs a logic level signal while the content of the Y counter 10219 is smaller than the content of the Y length register 10211. Further, 10218 is an X length register which holds the transfer X length of image data.

10216はカウンタで、H信号10214でクリアさ
れ、その後、クロック信号10213を入力する毎に+
1される。10217は比較器であり、Xカウンタ10
216の内容がXレングスレジスタ10218の内容よ
り小さい間は論理ルベルの信号を出力する。10222
はAND回路であり、比較器10220及び10217
の出力か共に論理ルベルの開はRAMlO12に対して
チップイネーブル信号CEを出力する。従って、このC
E傷信号出力されている間は、ストローブ信号に同期し
て画像データをRAM1012に書込むことができる。
10216 is a counter which is cleared by the H signal 10214, and after that, it is cleared every time the clock signal 10213 is input.
1 will be given. 10217 is a comparator, and X counter 10
While the contents of 216 are smaller than the contents of X length register 10218, a logic level signal is output. 10222
is an AND circuit, and comparators 10220 and 10217
The output of the logic level and the opening of the logic level output the chip enable signal CE to the RAMIO12. Therefore, this C
While the E-blemish signal is being output, image data can be written to the RAM 1012 in synchronization with the strobe signal.

以下、転送動作の具体例を説明する。A specific example of the transfer operation will be described below.

く等倍転送〉 演算部103内のデータメモリ部107の任意の(12
80X 1024)画素弁の領域を等倍でビデオフレー
ムメモリ1012に転送する。この場合はメインCPU
 101は、以下の初期設定をする。
Same-size transfer> Arbitrary (12
80X 1024) Transfer the area of the pixel valve to the video frame memory 1012 at the same size. In this case, the main CPU
101 performs the following initial settings.

[データメモリ部] Xレジスタ10204=X転送開始アドレスYレジスタ
10203=Y転送開始アドレスMPX 10200=
高速画像転送バス接続MPX10201=内部アドレス
使用 レジスタ10206=0 レジスタ102o9、レジスタ10210=OXレング
スレジスタ10218=1280Yレングスレジスタ1
0221=1024[ビデオフレームメモリ] XL/ジスタ10204=O Yレジスタ10203=O MPXO203=O高XO203=O高速二〇 Xレングスレジスタ10218=1280Yレングスレ
ジスタ10221=1024このように初期設定した後
、メインCPUl01がスタートをかけると、データメ
モリ部107のアドレスX.Yて始まる(1280X1
024)画素弁の画像データがビデオフレームメモリ1
012の番地(0.0)で始まるエリアに高速画像デー
タ転送される。
[Data memory section] X register 10204=X transfer start address Y register 10203=Y transfer start address MPX 10200=
High-speed image transfer bus connection MPX10201 = Internal address use register 10206 = 0 Register 102o9, register 10210 = OX length register 10218 = 1280Y length register 1
0221=1024 [Video frame memory] XL/Jister 10204=O Y register 10203=O MPXO203=O High XO203=O High speed 20 starts, the address X. of the data memory section 107 is set. Starting with Y (1280X1
024) Image data of pixel valve is stored in video frame memory 1
High-speed image data is transferred to the area starting at address 012 (0.0).

く間引き転送〉 演算部103内のデータメモリ部107の任意の(12
80Xl○24)画素弁の領域を1/2に間引きして、
ビデオフレームメモリ1012に転送する。この場合は
、メインCPU 1 0 1は以下のように初期設定を
する。
Thinning out transfer> Arbitrary (12
80Xl○24) Thin out the pixel valve area to 1/2,
Transfer to video frame memory 1012. In this case, the main CPU 101 initializes as follows.

[データメモリ部コ Xレジスタ10204=X転送開始アドレスYレジスタ
10203=Y転送開始アドレスMPX10200=高
速画像転送バス接続MPX10201=内部アドレス使
用 レジスタ10206=+ル ラスタ10209.10210=O Xレングスレジスタ10218=1280Yレングスレ
ジスタ10221==1024[ビデオフレームメモリ
コ Xレジスター10204 = O Yレジスタ10203=O MP10203=O高速画像転送バス接続MPX102
01=内部アドレス使用 レジスタ10206.10209.10210=O Xレングスレジスタ10218=1280Yレングスレ
ジスタ10221=1024このように初期設定した後
、メインCPU101がスタートをかけると、データメ
モリ部107(7)7ドl/スX、Yで始まる(128
0x1024)画素分の画像データがビデオフレームメ
モリ1012の番地(0,0)で始まるエリアに間引き
転送される。この間引きは、データメモリ部107のX
、Y共に、上位方向への1ビツトシフトであるため、X
、Y方向にそれぞれ1/2である。
[Data memory section Register 10221==1024 [Video frame memory code X register 10204=O Y register 10203=O MP10203=O High-speed image transfer bus connection MPX102
01=Internal address use register 10206.10209.10210=O /Starting with X, Y (128
Image data for pixels (0x1024) is thinned out and transferred to the area starting at address (0,0) of the video frame memory 1012. This thinning is performed by
, Y are both 1-bit shifts in the upper direction, so
, 1/2 in the Y direction.

くに回分側転送〉 この項では、画像データをに回に分けて転送する場合を
考える。
In this section, we will consider the case where image data is transferred in batches.

第22図は本実施例の画像データの転送動作を説明する
概念図である。
FIG. 22 is a conceptual diagram illustrating the image data transfer operation of this embodiment.

図において、1031はデータメモリ部107の一部、
1033はビデオフレームメモリ1012の一部を示す
。尚、ビデオフレームメモリ1012の内容は予めクリ
アしておく。K=4回とすると、データメモリ107の
画像データ1031を(2X2)画素毎にブロック化し
、例えば1回目は○印の全部、2回目はΔ印の全部、3
回目はX印の全部、4回目は0印の全部の如くして順に
4画面を転送する。このように転送すると、1回目の転
送終了時点でモニタ111によりO印から成る全体の概
略画像を素早く把握できる。更に、この時の画像データ
転送に要する時間は、全画像データを転送した場合に比
べ、1/4となる。
In the figure, 1031 is a part of the data memory section 107;
Reference numeral 1033 indicates a part of the video frame memory 1012. Note that the contents of the video frame memory 1012 are cleared in advance. If K=4 times, the image data 1031 in the data memory 107 is divided into blocks for each (2×2) pixels, for example, the first time is all of the ○ marks, the second time is all of the Δ marks, 3
The 4 screens are transferred in order, such as all of the X marks are transferred the first time, all of the 0 marks are transferred the fourth time, and so on. By transferring in this manner, it is possible to quickly grasp the general image of the entire O mark on the monitor 111 at the end of the first transfer. Furthermore, the time required to transfer the image data at this time is 1/4 compared to the case where all image data is transferred.

また別の例として、データメモリ107の画像データ1
032とビデオフレームメモリ1012の画像データ1
033の関係がある。この場合もに=4回であるが、デ
ータメモリ107の画像データ1032を図示のごとく
間引いて転送することにより、ビデオフレームメモリ1
012の画像データ1033はX、Y方向共に1/2に
縮小されたものとなる。
As another example, image data 1 in the data memory 107
032 and image data 1 of video frame memory 1012
There is a relationship of 033. In this case as well, the image data 1032 in the data memory 107 is thinned out and transferred as shown in the figure, so that the video frame memory
The image data 1033 of 012 is reduced to 1/2 in both the X and Y directions.

この時の転送動作の具体例を説明する。A specific example of the transfer operation at this time will be explained.

〈4分割等倍転送〉 データメモリ部107のアドレス(0,0)で始まる(
1280X 1024)画素分の画像データをビデオフ
レームメモリ1012のアドレス(0,O)で始まるエ
リアに等倍で転送するもので、K=4回とする。この場
合はメインCPU 1o1は以下の初期設定をする。尚
、特に記載しない場合は上述実施例と同様に考える。
<Four division equal size transfer> Starts at address (0,0) of data memory section 107 (
Image data for 1280×1024) pixels is transferred to the area starting at address (0, O) of the video frame memory 1012 at the same size, and K=4 times. In this case, the main CPU 1o1 makes the following initial settings. It should be noted that unless otherwise specified, the explanation will be made in the same manner as in the above-mentioned embodiment.

[ビデオフレームメモリ] Xレジスタ10204=0 Yレジスタ10203=0 XレングスL/ジスタ10228=1280Yレングス
レジスタ10221=1024レジスタ10206=O MP10206=O高速画像転送バス接続MPX102
01=内部アドレス使用 [データメモリ部コ Xレジスタ10204=O Yレジスタ10205=0 レジスタ10206=+ル ラスタ10209.10210の内容は転送1回ごとに
異なる。
[Video frame memory] X register 10204 = 0 Y register 10203 = 0
01 = Internal address used [Data memory section X register 10204 = O Y register 10205 = 0 Register 10206 = + The contents of raster 10209.10210 differ for each transfer.

画像データO印の転送時は、 レジスタ10209=0 レジスタ10210=0 画像データΔ印の転送時は、 レジスタ10209=ル レジスタ10210二0 画像データX印の転送は、 レジスタ10209=0 レジスタ10210=1 画像データロ印の転送時は、 レジスタ10209=ル レジスタ10210二1 〈4分割間引き転送〉 この場合はX、Y共に1/2倍であり、K=4回とする
。この場合はメインCPU 101は以下のように初期
設定をする。
When transferring image data marked O, register 10209=0 Register 10210=0 When transferring image data Δ, register 10209=register 1021020 When transferring image data marked X, register 10209=0 Register 10210=1 Image When transferring the data row mark, register 10209 = register 1021021 <Four division thinning transfer> In this case, both X and Y are 1/2 times, and K = 4 times. In this case, the main CPU 101 performs initial settings as follows.

[データメモリ部] レジスタ10206=+2 同じくレジスタ10209.10210の内容は転送1
回ごとに異なる。
[Data memory section] Register 10206 = +2 Similarly, the contents of registers 10209 and 10210 are transfer 1
Different each time.

画像データ○印の転送は、 レジスタ10209=0 レジスタ10210二〇 画像データΔ印の転送時は、 レジスタ10209=2 レジスタ10210=0 画像データX印の転送は、 レジスタ10209=0 レジスタ10210=2 画像データロ印の転送時は、 レジスタ10209=2 レジスタ10210=2 本実施例では、並列演算部103のデータメモリ107
とビデオメモリ110の間での画像データ転送の説明を
したが、並列演算部103が複数個同一システム内に存
在する場合の、データメモリ部間での画像データ転送に
も使用できることは容易に推察できる。
When transferring image data marked with ○, register 10209 = 0. Register 1021020. When transferring image data marked with Δ, register 10209 = 2. Register 10210 = 0. When transferring image data marked with X, register 10209 = 0. Register 10210 = 2. When transferring the data log mark, register 10209 = 2 register 10210 = 2 In this embodiment, the data memory 107 of the parallel operation unit 103
Although we have explained the image data transfer between the video memory 110 and the video memory 110, it is easy to infer that it can also be used to transfer image data between the data memory sections when a plurality of parallel processing sections 103 exist in the same system. can.

また本実施例では、転送する画像データのサイズは、1
280x1024画素で説明したが、このサイズに限ら
ないことも推察できる。更に、分割転送及び、間引き転
送の際の分割数、間引き率もこれに限定するものでない
Furthermore, in this embodiment, the size of the image data to be transferred is 1
Although the explanation has been made using 280x1024 pixels, it can be inferred that the size is not limited to this. Furthermore, the number of divisions and the thinning rate during divided transfer and thinned-out transfer are not limited to these.

本実施例のシステムの様に、データメモリ部107とビ
デオメモリ110とを分散させて待つことにより、並列
演算部103のデータメモリ107の画像サイズは、モ
ニタデイスプレィ111の解像度、更には、ビデオメモ
リ110のデータサイズに係らず、任意のサイズのデー
タメモリ、例えば1024X1024画素、2048x
2048画素、4096x4096画素等を接続するこ
とかできる。
As in the system of this embodiment, by distributing the data memory unit 107 and the video memory 110 and waiting, the image size of the data memory 107 of the parallel processing unit 103 can be adjusted to the resolution of the monitor display 111, Regardless of the data size of the memory 110, a data memory of any size, for example 1024×1024 pixels, 2048×
It is possible to connect 2048 pixels, 4096x4096 pixels, etc.

[大容量外部記憶装置からデータメモリへの画像データ
の転送] ここでは、大容量外部記憶装置102に格納されている
、画像データを並列演算するためにデータメモリ部へ転
送する処理を第1図、及び第19図を用いて説明する。
[Transfer of image data from large-capacity external storage device to data memory] Here, the process of transferring image data stored in the large-capacity external storage device 102 to the data memory unit for parallel calculation will be explained as shown in FIG. , and FIG. 19.

先ず、操作者が処理したい画像データファイル名1、画
像データの主走査、副走査方向の画素数、転送先のデー
タメモリ部内のアドレス等、この処理に必要な情報を図
示しないキーボード等で指定する。これにより、メイン
CPU101が大容量外部記憶装置102内の該当する
画像データファイルをアクセスして画像データを読出し
、システムバス116を経由して、データメモリ部10
7内の該当するアドレスにデータメモリ部107内の画
像データに従って、画像データを書込む。
First, the operator specifies the information necessary for this processing, such as the image data file name 1 to be processed, the number of pixels in the main scanning and sub-scanning directions of the image data, and the address in the data memory section of the transfer destination, using a keyboard or the like (not shown). . As a result, the main CPU 101 accesses the corresponding image data file in the large-capacity external storage device 102, reads out the image data, and transfers the image data to the data memory section 10 via the system bus 116.
Image data is written to the corresponding address in 7 according to the image data in the data memory section 107.

詳細に説明すると、大容量外部記憶装置102には、画
像データが1次元の画像データとして記憶されているも
のとする。また説明を簡単にするために、画像データは
R,G、B各々8ビットで構成され、画素順次に外部記
憶装置102に格納されているものとする。また、デー
タメモリ部107のデータ構造は、1画素24ビツトで
あり、8ビツト毎のR,G、Bの順であるとする。
To explain in detail, it is assumed that image data is stored in the large-capacity external storage device 102 as one-dimensional image data. To simplify the explanation, it is assumed that the image data is composed of 8 bits each of R, G, and B, and is stored in the external storage device 102 in pixel order. It is also assumed that the data structure of the data memory section 107 is one pixel of 24 bits, with R, G, and B in the order of every 8 bits.

この大容量外部記憶装置102に格納されている1次元
画像データを2次元の画像データとしてデータメモリ部
107に格納するためには、第19図に示すフローチャ
ートに従ってメインCPU101が処理を行なう。
In order to store the one-dimensional image data stored in the large-capacity external storage device 102 as two-dimensional image data in the data memory unit 107, the main CPU 101 performs processing according to the flowchart shown in FIG.

先ずCPU 101は、ステップS41で指定されたフ
ァイルをオープンし、ステップS42で指定されたデー
タメモリ内の先頭アドレスを計算する。その後ステップ
S45で、1ライン分の画像データ、本実施例の場合は
主走査方向の画素数(R,G、Bのバイト数=3バイト
)をシステムバス116から読込み、ステップS46で
データメモリ107上に1ライン分の画像データを書込
む6次にステップS47で、ラインの先頭アドレスを計
算する。この処理を、副走査方向のライン数分繰り返し
た後、ステップS44で1画面の走査線に応じた回数だ
け繰返すとステップS49に進み、オーブンしている画
像データファイルをクローズして処理を終了する。
First, the CPU 101 opens the file specified in step S41, and calculates the starting address in the data memory specified in step S42. Thereafter, in step S45, one line of image data, in the case of this embodiment, the number of pixels in the main scanning direction (the number of bytes of R, G, B = 3 bytes) is read from the system bus 116, and in step S46, the data memory 107 One line of image data is written above.Next, in step S47, the start address of the line is calculated. After this process is repeated for the number of lines in the sub-scanning direction, in step S44, the process is repeated the number of times corresponding to the scanning lines of one screen, and then the process proceeds to step S49, where the image data file being opened is closed and the process ends. .

本実施例では、画像データをロードする場合で説明した
が、画像データの格納も行なえることは容易に推察でき
る。また、外部記憶装置102に格納されている画像デ
ータのデータ構造及びデータメモリ107上の画像デー
タ構造は、上記で説明したデータ構造に限るものでない
ことも容易に推察できる。
In this embodiment, the case where image data is loaded has been described, but it can be easily inferred that image data can also be stored. Furthermore, it can be easily inferred that the data structure of the image data stored in the external storage device 102 and the image data structure on the data memory 107 are not limited to the data structure described above.

く他の実施例〉 ここでは、演算部104内にあるプロセッサ212a〜
dを直列に接続し、パイプライン的に接続した場合の動
作を第2図と第23図を用いて説明する。第23図は、
本実施例の概念図である。
Other Embodiments Here, processors 212a to 212a in the calculation unit 104
The operation when d is connected in series and connected in a pipeline manner will be explained using FIGS. 2 and 23. Figure 23 shows
It is a conceptual diagram of this example.

この第23図に於て、第2図と同じ動作を行なうものに
は、同一の番号を付けである。
In FIG. 23, parts that perform the same operations as in FIG. 2 are given the same numbers.

図中、10400.10401は、プロセッサとブロッ
クメモリ間のアクセスを、10402゜10403は、
プロセッサ間のシリアル通信路を示している。この例は
、夫々のプロセッサに別々の処理をさせ、かつ、あるプ
ロセッサの演算結果を別のプロセッサの入力データとし
、それぞれの処理を連続的に行なうものである。
In the figure, 10400.10401 indicates access between the processor and block memory, and 10402° and 10403 indicate access between the processor and block memory.
It shows the serial communication path between processors. In this example, each processor is made to perform separate processing, the calculation result of one processor is used as input data to another processor, and each processing is performed continuously.

この例のアプリケーションとして本実施例では、データ
メモリ部107に格納されているR(レッド)、G(グ
リーン)、B(ブルー) W(付加情報)の各8ビツト
、即ち、1画素4バイトからなる画像データの「色変換
処理」、画像データを「拡大処理」した後にカラープリ
ンタに出力するためにrRGBデータからYMCデータ
への変換処理」からなる以上3種の処理を連続的に処理
する場合を考える。各々の処理フローを、第23図内の
プログラムメモリ213a−cのフローチャートとして
示す。
As an application of this example, in this embodiment, each of 8 bits of R (red), G (green), B (blue), and W (additional information) stored in the data memory unit 107, that is, 1 pixel and 4 bytes, is used. When sequentially processing the above three types of processing, consisting of "color conversion processing" of image data, and "conversion processing from rRGB data to YMC data for outputting to a color printer" after "enlargement processing" of the image data, think of. Each processing flow is shown as a flowchart of program memories 213a-c in FIG. 23.

説明を簡単にするために、処理する画像データのサイズ
は1024x 1024画素、1画素4バイト構成とし
、またデータメモリ部107内の1つのブロックメモリ
のサイズは、1Mバイト(512X512画素×4ハイ
ド)とする。処理される画像データは予めシステムバス
や高速画像データ転送バスを通して、例えばデータメモ
リ部1゜7内のブロックメモリMB○(210a)、 
M B 1 (210b)、 M B 4 (210e
)、 M B 5 (210f)の4つのメモリブロッ
クに転送されているものとする。また夫々の処理プログ
ラムは、外部記憶装置102に既に格納されているもの
とする。
To simplify the explanation, the size of the image data to be processed is 1024 x 1024 pixels, with 4 bytes per pixel, and the size of one block memory in the data memory section 107 is 1 Mbyte (512 x 512 pixels x 4 hides). shall be. The image data to be processed is transferred in advance to the block memory MB○ (210a) in the data memory section 1.7, for example, through a system bus or a high-speed image data transfer bus.
M B 1 (210b), M B 4 (210e
), M B 5 (210f). Further, it is assumed that each processing program has already been stored in the external storage device 102.

先ず、操作者が上記の3種類の画像処理を、例えば、プ
ロセッサ212aか「色変換処理」を、プロセッサ21
2bが「拡大処理」を、プロセッサ212CがrRGB
データからYMCデータへの変換処理」を行なう旨を1
図示しないキーボード等で指定するものとする。またブ
ロックメモリを使用するプロセッサのデータメモリの割
付けの指定は、本実施例ではプロセッサ212aがMB
O,1,4,5から画像データを読出し、プロセッサ2
12cか、例えばMB2,3,6.7の4ブロツクに対
して、演算結果を出力する様に割付ける指定を行なう。
First, the operator performs the above three types of image processing, for example, the processor 212a or the "color conversion process", using the processor 21
2b performs "enlargement processing", processor 212C performs rRGB
1 to the effect that the conversion process from data to YMC data will be performed.
It is assumed that the designation is made using a keyboard (not shown) or the like. In addition, in this embodiment, the processor 212a uses MB
The image data is read from O, 1, 4, and 5, and the processor 2
12c or, for example, the four blocks MB2, 3, and 6.7, are designated to be allocated to output the calculation results.

更にプロセッサのシリアル通信路の設定、本実施例では
、プロセッサ212aの出力側のシリアル通信路をプロ
セッサ212bの入力側のシリアル通信路に、プロセッ
サ212bの出力側のシリアル通信路をプロセッサ21
2Cの入力側のシリアル通信路に接続する旨を指定する
Further, setting the serial communication path of the processor, in this embodiment, the serial communication path on the output side of the processor 212a is connected to the serial communication path on the input side of the processor 212b, and the serial communication path on the output side of the processor 212b is connected to the serial communication path on the input side of the processor 212b.
Specify to connect to the serial communication path on the input side of 2C.

この指定により、メインCPU 101は外部記憶装置
102に格納されている夫々のプログラムを指定された
プロセッサに、前述した[各プロセッサへのプログラム
のダウンロードコの項に説明されている手段を用いてダ
ウンロードする。更に各プロセッサのシリアル通信路の
設定は、前述した[プロセッサの通信路の接続状態の設
定法]の項に説明されている手段を用いて設定する処理
を行なう。
With this designation, the main CPU 101 downloads each program stored in the external storage device 102 to the designated processor using the means described in the section [Downloading programs to each processor] above. do. Furthermore, the serial communication path of each processor is set by using the means described in the above-mentioned section ``Method of Setting Connection Status of Processor Communication Path''.

これらの初期設定後、各々のプロセッサが各々の処理を
開始する。先ずプロセッサ212aがブロックメモリ1
07に格納されている画像データを前記[ブロックアク
セス方式]の項に記載されている方式に基ついてアクセ
スして画像データをS売出す。そして、プログラムメモ
リ213aに格納されているプログラムコートに従った
所定の処理、例えば本実施例の場合は、第23図内の2
138で示されたフローチャートに則した色変換処理を
行なう。
After these initial settings, each processor starts its own processing. First, the processor 212a uses the block memory 1
The image data stored in 07 is accessed based on the method described in the section of [Block access method] and the image data is sold. Then, a predetermined process according to the program code stored in the program memory 213a, for example, in the case of this embodiment, 2 in FIG.
Color conversion processing is performed in accordance with the flowchart shown at 138.

その後、プロセッサ212aの出力側のシリアル通信路
に演算結果の画像データを随時出力される。一方、プロ
セッサ212bは、プロセッサ212aが処理した画像
データ、即ち、入力側のシリアル通信路から随時入力さ
れてくる画像データを読込み、プログラムメモリ213
bに格納されているプログラムコードに従った所定の処
理、本実施例の場合は拡大処理を施し、プロセッサ21
2aと同様に出力側のシリアル通信路に演算結果の画像
データを随時出力する。更に、プロセッサ212cもプ
ロセッサ212bと同様に、シリアル通信路から随時入
力されてくる画像データを読取り、プログラムメモリ2
13cに格納されているプログラムコードに従った所定
の処理、例えば本実施例の場合は、プログラムメモリ2
13cに格納されているRGB−YMC変換を施し、該
当するブロックメモリ内の画素位置に画像データを前記
[ブロックアクセス方式]の項に記載されている方式に
基づいて書込む。
Thereafter, the image data of the calculation result is outputted to the serial communication path on the output side of the processor 212a at any time. On the other hand, the processor 212b reads the image data processed by the processor 212a, that is, the image data that is input from the serial communication path on the input side, and stores it in the program memory 212.
The processor 21 performs predetermined processing according to the program code stored in
Similarly to 2a, the image data of the calculation result is outputted to the serial communication path on the output side at any time. Furthermore, like the processor 212b, the processor 212c also reads image data that is input from the serial communication path from time to time, and stores it in the program memory 2.
13c, a predetermined process according to the program code stored in the program memory 2
The RGB-YMC conversion stored in 13c is performed, and the image data is written to the pixel position in the corresponding block memory based on the method described in the above-mentioned [Block access method] section.

本実施例に示すように、各プロセッサが有するシリアル
通信路を使用することにより、複数のプロセッサをパイ
プライン的に接続した処理が可能となる。
As shown in this embodiment, by using the serial communication path that each processor has, it is possible to perform processing in which a plurality of processors are connected in a pipeline manner.

本実施例では、中間のプロセッサ212bが画像メモリ
を使用しない例を説明したが、画像メモリを使用するよ
うな処理の場合にも対応できることは容易に推察できる
In this embodiment, an example has been described in which the intermediate processor 212b does not use the image memory, but it can be easily inferred that the present invention can also be applied to a case where the intermediate processor 212b uses the image memory.

また本実施例では3個のプロセッサの場合であったが、
この数はこれに限らないことも容易に推察できる。更に
入力側のブロックメモリと出力側のブロックメモリをそ
れぞれ別々の領域で説明したが、同一の領域の場合には
、[バスコントローラの動作]の項で記載している手段
を用いることにより可能となる。ブロックメモリをアク
セスするプロセッサのメモリアクセス方法は、「ブロッ
クアクセス」に限らず、[画素アクセス方式の項に記載
されている方式でも良いことも容易に推察できる。
Also, in this example, there were three processors, but
It can be easily inferred that this number is not limited to this number. Furthermore, although the block memory on the input side and the block memory on the output side have been explained as separate areas, if they are the same area, it is possible to do so by using the means described in the section [Bus controller operation]. Become. It can be easily inferred that the memory access method of the processor that accesses the block memory is not limited to "block access", but may also be the method described in the section [Pixel Access Method].

なお、この実施例では画像処理装置の場合で説明したが
本発明はこれに限定されるものでなく、各種演算装置に
も適用できる。
Note that although this embodiment has been described in the case of an image processing device, the present invention is not limited thereto, and can be applied to various arithmetic devices.

以上説明したように本実施例によれば、演算処理部とデ
ータメモリ部の間に、バス接続・交換部及びバス接続・
交換制御部を設けたことにより、画像演算の並列化に柔
軟性の高い並列演算部が構成できた。また、並列演算部
とは別にビデオフレームメモリを有することにより、シ
ステムで扱う画像サイズが、デイスプレィ装置に依存し
ない構成を可能としている。また、高速イメージ転送バ
スで画像データの転送を行なうことにより、画像の転送
に要する時間をも節約することが可能となった。
As explained above, according to this embodiment, there is a bus connection/exchange unit and a bus connection/exchange unit between the arithmetic processing unit and the data memory unit.
By providing an exchange control section, a parallel operation section with high flexibility for parallelizing image operations can be configured. Furthermore, by having a video frame memory separate from the parallel processing section, it is possible to configure a configuration in which the image size handled by the system does not depend on the display device. Furthermore, by transferring image data using a high-speed image transfer bus, it has become possible to save the time required to transfer images.

[発明の効果] 以上説明したように本発明によれば、各種データ演算の
柔軟性を有し、メモリを有効に活用して高速に並列演算
ができる効果がある。
[Effects of the Invention] As described above, according to the present invention, there is an effect that there is flexibility in various data operations, and that memory can be effectively utilized to perform parallel operations at high speed.

【図面の簡単な説明】[Brief explanation of drawings]

第1図は本実施例の画像処理システムの概略構成を示す
ブロック図、 第2図は並列演算部の構成をさらに詳細に説明した図、 第3図はプロセッサ間のシリアル通信路の交換・制御部
を示すブロック図、 第4図はデータメモリ部の7ドレマツビングを説明する
ための図、 第5図はメモリブロックの概念図、 第6図はプロセッサが発生するアドレスデータの構造を
示す図、 第7図はバスセレクタのデータ信号線の詳細を示す図、 第8図はバスセレクタのアドレス信号線の詳細を示す図
、 第9図は1−16セレクタの詳細図、 第10図は1−4セレクタの詳細図、 第11図は4−1セレクタの詳細図、 第12図はバスコントローラの詳細図、第13図はレイ
トレーシング法の原理を説明するための図、 第14図はメモリブロックの概念図、 第15図はプロセッサのシリアル通信路の接続状態を説
明するための図、 第16図はブロックアクセスによる並列演算処理を説明
するフローチャート、 第17図は空領域を探索し、空領域番号をセットする処
理を示すフローチャート、 第18図は他プロセツサの空領域を探索する処理を示す
フローチャート、 第19図は大容量外部記憶装置からデータメモリへの画
像データ転送を示すフローチャート、第20図はデータ
メモリからビデオフレームメモリへの画像データの転送
を説明する概念図、第21図はアドレス発生器の詳細図
、 第22図は間引き転送を説明するための概念図、そして 第23図は他の実施例のパイプライン処理を説明する概
念図である。 図中、101・・・メインCPU、102・・・大容量
外部記憶装置、103・・・並列処理部、104・・・
並列演算部、105・・・ハス接続・交換制御部(バス
コントローラ)、106・・・ハス接続・交換部(パス
セレクタ)、107・・・データメモリ部、108・・
・システムハスのI/F部、109・・・高速バスのI
/F部、110・・・ビデオメモリ部、111・・・ビ
デオデイスプレィ、115・・・イメージスキャナ、1
16・・・システムハス、117・・・高速バス、20
0・・・レジスタ、212a〜212d・・・プロセッ
サ、601a〜601d・・・バッファ、602・・・
遅延回路、604・・・デコーダ、605・・・衝突検
出器、607・・・コントローラである。 特許出願人   キャノン株式会社 第4図 rSlo 図 第11図 第14図 第19図 r 第20図 第22図
Figure 1 is a block diagram showing the schematic configuration of the image processing system of this embodiment, Figure 2 is a diagram explaining the configuration of the parallel processing unit in more detail, and Figure 3 is the exchange and control of serial communication paths between processors. FIG. 4 is a diagram for explaining the 7-Dremasetting of the data memory section. FIG. 5 is a conceptual diagram of the memory block. FIG. 6 is a diagram showing the structure of address data generated by the processor. Figure 7 is a diagram showing details of the data signal line of the bus selector, Figure 8 is a diagram showing details of the address signal line of the bus selector, Figure 9 is a detailed diagram of the 1-16 selector, and Figure 10 is a diagram showing details of the 1-4 selector. A detailed diagram of the selector. Figure 11 is a detailed diagram of the 4-1 selector. Figure 12 is a detailed diagram of the bus controller. Figure 13 is a diagram for explaining the principle of the ray tracing method. Figure 14 is a diagram of the memory block. Conceptual diagram. Figure 15 is a diagram for explaining the connection state of the serial communication path of the processor. Figure 16 is a flowchart for explaining parallel calculation processing using block access. Figure 17 is a diagram for searching for an empty area and calculating the empty area number. FIG. 18 is a flowchart showing the process of searching for empty space in other processors, FIG. 19 is a flowchart showing image data transfer from a large-capacity external storage device to data memory, and FIG. 21 is a detailed diagram of the address generator, 22 is a conceptual diagram illustrating thinning transfer, and 23 is a conceptual diagram illustrating transfer of image data from data memory to video frame memory. FIG. 2 is a conceptual diagram illustrating pipeline processing in an embodiment. In the figure, 101... Main CPU, 102... Large capacity external storage device, 103... Parallel processing unit, 104...
Parallel calculation unit, 105... Lotus connection/exchange control unit (bus controller), 106... Lotus connection/exchange unit (path selector), 107... Data memory unit, 108...
・System Has I/F section, 109...highway bus I
/F section, 110... Video memory section, 111... Video display, 115... Image scanner, 1
16...System Has, 117...Highway bus, 20
0...Register, 212a-212d...Processor, 601a-601d...Buffer, 602...
Delay circuit, 604...decoder, 605...collision detector, 607...controller. Patent applicant: Canon Co., Ltd. Figure 4 rSlo Figure 11 Figure 14 Figure 19 r Figure 20 Figure 22

Claims (6)

【特許請求の範囲】[Claims] (1)複数のプログラム可能な演算要素と、前記演算要
素同士を接続する交信手段と、 前記演算要素のそれぞれより独立してアクセス可能なメ
モリ手段と、 前記演算要素のそれぞれを独立して動作させるとともに
、前記演算要素による前記メモリ手段へのアクセスを制
御する制御手段と、 を備えることを特徴とする並列演算装置。
(1) A plurality of programmable computing elements, communication means for connecting the computing elements, memory means independently accessible from each of the computing elements, and operating each of the computing elements independently. A parallel arithmetic device comprising: a control means for controlling access to the memory means by the arithmetic element;
(2)前記制御手段は、前記演算要素のそれぞれの優先
順位を設定し、前記演算要素より前記メモリ手段へのア
クセス要求が競合したときには前記優先順位に従つてア
クセス可能な演算要素を決定するようにしたことを特徴
とする請求項第1項に記載の並列演算装置。
(2) The control means sets a priority order for each of the calculation elements, and determines an accessible calculation element according to the priority order when access requests from the calculation elements to the memory means conflict. 2. The parallel computing device according to claim 1, characterized in that:
(3)前記演算要素のそれぞれに制御プログラムをダウ
ンロード可能なプログラムロード手段を更に含むことを
特徴とする請求項第1項に記載の並列演算装置。
(3) The parallel computing device according to claim 1, further comprising program loading means capable of downloading a control program to each of the computing elements.
(4)前記メモリ手段は複数のメモリブロックに分割さ
れており、前記制御手段は前記演算要素のそれぞれに対
して1つ或は複数のメモリブロックを割当てて前記メモ
リブロック毎に優先順位を決定するようにしたことを特
徴とする請求項第2項に記載の並列演算装置。
(4) The memory means is divided into a plurality of memory blocks, and the control means allocates one or more memory blocks to each of the calculation elements and determines the priority order for each memory block. 3. The parallel computing device according to claim 2, wherein the parallel computing device is configured as follows.
(5)前記演算手段による前記メモリ手段の各メモリブ
ロック単位にアクセスするモードと、前記メモリ手段の
最小記憶単位要素毎にアクセスするモードとを設定可能
なアクセス手段を更に有することを特徴とする請求項第
1項に記載の並列演算装置。
(5) A claim further comprising access means capable of setting a mode in which the arithmetic means accesses each memory block unit of the memory means and a mode in which it accesses each minimum storage unit element of the memory means. Parallel computing device according to item 1.
(6)前記演算要素の個数及びメモリ手段の容量はそれ
ぞれ独立に変更可能であることを特徴とする請求項第1
項に記載の並列演算装置。
(6) Claim 1, characterized in that the number of calculation elements and the capacity of the memory means can be changed independently.
Parallel arithmetic device as described in section.
JP11182790A 1990-05-01 1990-05-01 Parallel arithmetic unit Pending JPH0415743A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11182790A JPH0415743A (en) 1990-05-01 1990-05-01 Parallel arithmetic unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11182790A JPH0415743A (en) 1990-05-01 1990-05-01 Parallel arithmetic unit

Publications (1)

Publication Number Publication Date
JPH0415743A true JPH0415743A (en) 1992-01-21

Family

ID=14571160

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11182790A Pending JPH0415743A (en) 1990-05-01 1990-05-01 Parallel arithmetic unit

Country Status (1)

Country Link
JP (1) JPH0415743A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014211867A (en) * 2013-04-01 2014-11-13 株式会社アクセル Communication system and communication method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014211867A (en) * 2013-04-01 2014-11-13 株式会社アクセル Communication system and communication method

Similar Documents

Publication Publication Date Title
US5430885A (en) Multi-processor system and co-processor used for the same
EP0048350B1 (en) Image processing system
US5854620A (en) Method and apparatus for converting monochrome pixel data to color pixel data
EP0086605A2 (en) Image processing system
US6968442B2 (en) Parallel computer with improved access to adjacent processor and memory elements
US4434502A (en) Memory system handling a plurality of bits as a unit to be processed
JPH0642237B2 (en) Parallel processor
JPH06111010A (en) Dram and controller
JPH05233447A (en) Cache memory
JP2001084229A (en) Simd-type processor
US5117468A (en) Image processing system capable of carrying out local processing for image at high speed
US4941107A (en) Image data processing apparatus
US6128733A (en) Program loading method and apparatus
JP2002287947A (en) Image data processing method and device
JPH0415743A (en) Parallel arithmetic unit
JP2006520044A (en) Data processing system with cache optimized for processing data flow applications
US6563505B1 (en) Method and apparatus for executing commands in a graphics controller chip
JPH0415764A (en) Image processor
JP2683489B2 (en) Data transfer control device
JPH03205985A (en) Multiprocessor type moving image encoder and bus control method
US5513364A (en) Data transfer device and multiprocessor system
JP3447820B2 (en) Bus controller
JP4612352B2 (en) Labeling processing apparatus and labeling processing method
JPH07129460A (en) Method and device for processing image
EP0341406A2 (en) Methods and circuit for implementing an arbitrary graph on a polymorphic mesh