JPH0415764A - Image processor - Google Patents
Image processorInfo
- Publication number
- JPH0415764A JPH0415764A JP11182890A JP11182890A JPH0415764A JP H0415764 A JPH0415764 A JP H0415764A JP 11182890 A JP11182890 A JP 11182890A JP 11182890 A JP11182890 A JP 11182890A JP H0415764 A JPH0415764 A JP H0415764A
- 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
Links
- 230000015654 memory Effects 0.000 claims abstract description 276
- 238000004364 calculation method Methods 0.000 claims description 55
- 238000004891 communication Methods 0.000 claims description 50
- 238000000034 method Methods 0.000 abstract description 83
- 239000000872 buffer Substances 0.000 description 52
- 238000010586 diagram Methods 0.000 description 32
- 230000002457 bidirectional effect Effects 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 238000003672 processing method Methods 0.000 description 5
- 230000001934 delay Effects 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- GVBNSPFBYXGREE-UHFFFAOYSA-N Visnadine Natural products C1=CC(=O)OC2=C1C=CC1=C2C(OC(C)=O)C(OC(=O)C(C)CC)C(C)(C)O1 GVBNSPFBYXGREE-UHFFFAOYSA-N 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 241000282412 Homo Species 0.000 description 1
- 229910017435 S2 In Inorganic materials 0.000 description 1
- 125000001246 bromo group Chemical group Br* 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Landscapes
- Image Processing (AREA)
Abstract
Description
【発明の詳細な説明】
[産業上の利用分野]
本発明は、複数のメモリブロックからなる画像メモリに
記憶されている画像データを、複数の演算要素により各
メモリブロック単位で独立して同時に並行処理できる画
像処理装置に関するものである。Detailed Description of the Invention [Industrial Application Field] The present invention processes image data stored in an image memory consisting of a plurality of memory blocks simultaneously and independently for each memory block using a plurality of calculation elements. The present invention relates to an image processing device capable of processing images.
[従来の技術]
一般に、画像データは文書データ等に比べて大量の情報
量を含むため、このような画像データを処理する画像処
理装置では、画像データの数値計算等のために大きな演
算能力が要求される。このため、従来より、画像処理に
内在する空間的、時間的な並列性を有効に活用すること
により、演算の効率を上げることを目的とした種々の画
像処理装置が提案されている。[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.
「情報処理J (Vol、28.No、1 、 pp
、 19〜26)によれば、これら画像処理装置におい
て採用されている基本方式を、以下の4つに分類してい
る。"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)局所並列処理方式
画像データの局所性を利用して各画素を処理して、この
処理を全画素に対し、順々に施していく方式である。例
えば、注目画素と、その画素の縦・横・斜方向に隣接す
る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 sequentially applied to all pixels. For example, a pixel of interest and 8 pixels adjacent to that pixel in the vertical, horizontal, and diagonal directions make up a total of 9 pixels (a pixel matrix area consisting of 3 pixels each vertically and horizontally centered on the pixel of interest; this is called a window). ) to perform spatial filtering, the window is shifted to the right one pixel column at a time while processing the entire image.
(3)パイプライン方式
画像データの基本的な処理を行なう演算器を直列に接続
してバイブラインを形成し、このバイブラインの中を次
々と画素を転送してい(ことにより処理を進める方式で
ある。(3) Pipeline method Arithmetic units that perform basic processing of image data are connected in series to form a vibe line, and pixels are transferred one after another within this vibe line (this method allows the processing to proceed). 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 Vibration line 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 Vibration line formed by the arithmetic unit.
上述したように、(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
2x512程度の画素数で十分であるが、電子出版等の
プリントであれば、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.
また、画像演算の処理スピードに関しても、フライト・
シミュレータの様なリアルタイム性を要求されるものか
ら、電子出版の如く対話的な処理で人間がいらだたない
程度の時間に間に合えばよいもののように多少差がある
。また、演算の種類に応じて、アクセス可能な画像デー
タの領域が可変であることも望ましい。Also, 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 conventional example, and an object of the present invention is to provide an image processing device that can process image data stored in a memory in parallel in memory block units using a plurality of programmable calculation elements. do.
[課題を解決するための手段]
上記目的を達成するために本発明の画像処理装置は以下
の様な構成からなる。即ち、
プログラム可能な複数の演算要素と、前記演算要素同士
を接続する交信手段と、複数のメモリブロックに分割さ
れ、前記メモリブロックのそれぞれは前記演算要素のそ
れぞれより独立してアクセス可能な画像メモリ手段と、
前記演算要素のそれぞれを独立して動作させるとともに
、前記演算要素により前記画像メモリ手段を前記メモリ
ブロック単位でアクセスするか、或は前記メモリブロッ
クの最小画素単位でアクセスするように制御する制御手
段とを備える。[Means for Solving the Problems] In order to achieve the above object, an image processing apparatus of the present invention has the following configuration. That is, a plurality of programmable arithmetic elements, communication means for connecting the arithmetic elements, and an image memory divided into a plurality of memory blocks, each of the memory blocks being independently accessible from each of the aforesaid arithmetic elements. means and
a control means for controlling each of the arithmetic elements to operate independently and for controlling the image memory means to be accessed by the arithmetic element in units of the memory block or in units of the smallest pixel of the memory block; Equipped with
[作用]
以上の構成において、画像メモリ手段は、複数のメモリ
ブロックに分割され、これらメモリブロックのそれぞれ
はプログラム可能な複数の演算要素のそれぞれより独立
してアクセス可能である。[Operation] In the above configuration, the image memory means is divided into a plurality of memory blocks, and each of these memory blocks can be independently accessed by each of the plurality of programmable calculation elements.
そして、これら演算要素のそれぞれを独立して動作させ
るとともに、これら演算要素によりその画像メモリ手段
をメモリブロック単位でアクセスするか、或はメモリブ
ロックの最小画素単位でアクセスするように制御するこ
とができる。Each of these calculation elements can be operated independently, and the image memory means can be controlled to be accessed in units of memory blocks or in units of the smallest pixel of the memory block. .
また、好適な実施態様によれば、演算要素のそれぞれの
優先順位を設定し、これら演算要素よりの、その画像メ
モリ手段へのアクセス要求が競合したときには、その優
先順位に従ってアクセス可能な演算要素を決定するよう
にしている。Further, according to a preferred embodiment, a priority order is set for each of the calculation elements, and when requests from these calculation elements to access the image memory means conflict, accessible calculation elements are selected according to the priority order. I'm trying to decide.
[実施例]
以下、添付図面を参照して本発明の好適な実施例を詳細
に説明する。[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を制御するバス接続・交換制御部105、シス
テムバス116とのインターフェース(I/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 denotes 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 105 that controls this bus connection/exchange unit 106, and an interface (I/F) unit 10 with the system bus 116.
9 and an interface (I/F) unit 108 with a high-speed bus 117 for high-speed data transfer.
110はモニタデイスプレィ111に表示する画像デー
タを保持するビデオメモリで、システムバス116及び
高速バス117とに接続されている。112はプリンタ
・インターフェース部(■/F)であり、これを介して
プリンタ114がシステムバス116と高速バス117
に接続されている。113はスキャナ・インターフェー
ス(工/F)部であり、これを介してイメージスキャナ
(リーグ)115が、システムバス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 an image scanner (LEAGUE) 115 is connected to a system bus 116 and a high-speed bus 117.
〈並列処理部103の説明〉
次に、並列処理部103の演算部104の各演算要素へ
、メインCPUl0Iよりプログラムをロードする方法
について説明する。以下、第1図及び第2図を参照して
説明する。<Description of Parallel Processing Unit 103> Next, a method of loading a program from the main CPU I0I 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の各演算要素(PUO〜PU3) 211
a〜dのプログラムメモリ(、PM)に格納されるべ
きプログラムは、予めメインCPUl0Iにより開発さ
れ、各プロセッサ212a〜212d(PROC)で実
行可能なコード形式で作成されている。これらプログラ
ムは、外部記憶装置102に記憶されており、メインC
PU 101により、システムバス116からシステム
バスI/F109を経由して各プロセッサに渡される。Each calculation element (PUO to PU3) of the calculation unit 104 211
The programs to be stored in the program memories (, PM) of a to d are developed in advance by the main CPU I0I and created in a code format executable by each of the processors 212a to 212d (PROC). These programs are stored in the external storage device 102 and are
The PU 101 passes the data 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は、各
自に対応したプログラムをメインCPU 101より受
けとると、順次各自のプログラムメモリ(PM)の所定
のアドレスに書込んでいく機能を有している。Each of these processors (PROC) 212 a = d has its own program memory (PM) 213
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) when it receives the program corresponding to it from the main CPU 101. ing.
く演算部の説明〉
第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 depending on the signal level of the boot method instruction line when the reset signal is input, the R
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本)、及び外部の通信
路と接続するための外部通信用交換部コネクタ1005
への8本の通信線、及びパラレル/シリアル変換器10
04のシリアル入出力線が接続されている。また、パラ
レル/シリアル変換器1003のシリアル入出力側が、
通信路交換制御部1001に接続されている。これらパ
ラレル/シリアル変換器1003.1004(7)パラ
レル入出力側は共に、システムバス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 1005 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 (7) are both connected to the system bus 116 via the system bus I/FIO9. Note that the parallel input/output addresses of the parallel/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を通して、プロセッサ
2128〜212dのうちのいずれかのプロセッサのい
ずれかの通信路に設定されて使用される。そして残りの
プロセッサは、パラレル/シリアル変換器1004に接
続されたプロセッサを介し、他の通信路を経由して通信
路変換部1002に接続させる。この際、その設定され
たプロセッサと残りのプロセッサのいずれかとの間に別
のプロセッサが介在してもよい。この状態で、メインC
PUl01は、ダウンロードのデータをシステムバス1
16、システムバスI/F109.パラレル/シリアル
変換器1004.通信路交換部1002を経由して、所
望のプロセッサに転送する。そして、プログラムデータ
転送が終了すると、そのプログラムが実行される。The main CPU 10I has a system bus 116°, a 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 any one of the processors 2128 to 212d through the communication path conversion unit 1002 and used. The remaining processors are connected to the communication path conversion unit 1002 via other communication paths via the processors 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 bus 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, the 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 manufactured 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 used as units. Each calculation element performs processing as follows. 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とメインCP U’ 101との間で制御コマンドや
ステータスをやりとりするためのレジスタであるa 2
10 a〜210pはデータメモリ107を分割したブ
ロックメモリを表す。A functional block diagram of the parallel processing unit 103 that realizes the above two methods is shown in FIG.
A2 is a register for exchanging control commands and status between A2 and the main CPU' 101.
10a to 210p represent block memories into which the data memory 107 is divided.
本実施例の説明を容易にするために、データメモリ部1
07の容量を16Mバイトとし、データメモリ部107
を等分にMBO−MB15に16分割し、演算部104
における演算要素(Pt]0〜pu3)を4個とする。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-MB15, and the arithmetic unit 104
The number of calculation elements (Pt]0 to pu3) in is assumed to be four.
211a〜211dは演算部104を構成する4つの演
算要素であり、各演算要素の中には212a−dの演算
プロセッサ(以下単にプロセッサと呼ぶ)とプロセッサ
を駆動するためのプログラムと一時的に小容量のデータ
を格納するための小容量メモリ(以下、これをプログラ
ムメモリと呼ぶ)213a−dをそれぞれ1つずつ有し
ている。215はシステムバス116と高速バス117
のバスインターフェース部108.109と、データメ
モリ部107どの間を接続するインターフェースバスで
ある。216a〜pは各ブロックメモリ210a〜pと
演算部104との間のデータをやりとりするメモリバス
、217a−dはプロセッサバスである。214,21
8.219,220,221,222,223はいずれ
も制御信号線であり、レジスタ200に接続されている
制御信号線のうち、信号線214はシステムバスインタ
ーフェース部109と、信号線218はバス接続・交換
制御部105(以下、バスコントローラと略す)と、信
号線220は演算部104と、信号線222は高速バス
インターフェース部108とを結び、これら制御信号綿
はコマンドやステータスのやりとりを行っている。更に
、バスコントローラ105に接続されている制御信号線
のうち、信号線219は演算部104と、信号線221
はバス接続・交換部106(以下、バスセレクタと略す
)と、信号線223はデータメモリ部107とを接続し
て、同様のやりとりを行っている。Reference numerals 211a to 211d are four computing elements that constitute the computing unit 104, and each computing element includes an arithmetic processor 212a to 212d (hereinafter simply referred to as a processor), a program for driving the processor, and a temporarily small processor. 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. 216a to 216p are memory buses for exchanging data between each block memory 210a to 210p and the calculation unit 104, and 217a to d are processor buses. 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 105 (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 signals 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は、メインCPUI O1から画像デ
ータやプログラムをロードして動作する。Initialization of Parallel Computing Unit> The parallel computing unit 103 operates by loading image data and programs from the main CPU I O1.
メインCPU 101は最初に並列演算部103の初期
化を行う。メインCPUl0Iはシステムバスインター
フェース部109及び信号線214を介してレジスタ2
00に初期化コマンドを書き込む。そこで、レジスタ2
00は初期化コマンドを信号線218,219,220
,221,222を介して高速バスインターフェース部
1o8.バスコントローラ105.パスセレクタ106
及び演算部104の各演算器211a−dに送り、各々
を初期化する。各演算要素211a−dの各ブログラム
メモリ213a〜dへの、メインCPU101からのプ
ロセッサの初期化プログラムのダウンロード、及びプロ
セッサ間の通信路手段の設定については別項で後述する
。The main CPU 101 first initializes the parallel calculation unit 103. The main CPU 10I is connected to the register 2 via the system bus interface section 109 and the signal line 214.
Write the initialization command to 00. Therefore, register 2
00 is the initialization command signal line 218, 219, 220
, 221, 222 to the high-speed bus interface unit 1o8. Bus controller 105. Path selector 106
and is sent to each of the arithmetic units 211a to 211d of the arithmetic unit 104 to initialize each of them. The downloading of the processor initialization program from the main CPU 101 to the program memories 213a to 213d of the respective calculation elements 211a to 211d and the setting of communication path means between the 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 connected 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(黄色)1M(マゼンタ色)、C(シアン色)、Bk
(黒色)の4色で表し、各色8ビットデータで表す。デ
ータメモリ部107の容量は全部で16Mバイトである
ため、画像サイズは2048X2048となり、そのア
ドレス領域は000000H−FFFFFFH(Hは1
6進数を表わしている)となる。Here, to simplify the explanation, data for one pixel is Y (yellow), 1M (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側から、これらメモリブロックをアクセスする場合
は、前述の0OOOOOH−FFFFFFHのアドレス
にて行う。ブロックメモリ210a−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 buses 216a-p, respectively. And interface bus 2
When these memory blocks are accessed from the 15 side, the above-mentioned address 0OOOOOH-FFFFFFH is used. The memory allocation of block memories 210a-p is as shown in FIG. The dotted lines indicate the order of addresses as viewed from the interface bus 215.
大かっこ“[]”で示されたアドレスは各画素の7色デ
ータ1バイトを格納しであるデータメモリ107のアド
レスを示している。実線はメモJバス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 Memo J buses 216a-p. Further, the address indicated by the arrow brackets "<>°" indicates the address where 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-p and processor buses 217a-d, the configuration of each bus will be described 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 16 Mbytes. Therefore, the address width is 24 bits and the data width is 32 bits.
次に、メモリバス216a”□pは、メモリブロックの
アクセス時に使用されるため、各メモリブロックのアド
レス空間に対応して1Mバイトである。従って、アドレ
ス幅は20ビツト、データ幅を8ビツトとする。最後に
プロセッサバス217a −dの構成はメモリバス21
6a〜pと同様な構成とする。Next, since the memory bus 216a"□p is used when accessing memory blocks, it is 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 the processor buses 217a-d is the memory bus 21
The configuration is similar to 6a to 6p.
〈ブロックアクセス方式〉
ブロックアクセス方式は、各プロセッサ212a %
dがブロックメモリ210a−pの内から複数のブロッ
クメモリを占有してアクセスする方式である。即ち、1
つのブロックメモリが同時に2つ以上のプロセッサから
アクセスされることはないようにする。ここで、プロセ
ッサPROC212a〜212dからみた場合、16M
バイトの全アドレス空間をアドレッシングできるように
するために、各プロセッサでは24ビツトのアドレスを
生成する。そこで、前述のプロセッサバス217a〜2
17dのアドレス20ビツトの上位に、第6図に示すよ
うにメモリブロック番号を示す4ビツトを付加して、2
4ビツトのアドレッシングを可能とする。<Block access method> In the block access method, each processor 212a%
d is a method in which a plurality of block memories from among the block memories 210a-p are occupied and accessed. That is, 1
To prevent one block memory from being accessed by more than one processor at the same time. Here, when viewed from the processors PROC212a to 212d, 16M
To be able to address the entire address space of bytes, each processor generates 24-bit addresses. Therefore, the aforementioned processor buses 217a-2
As shown in FIG. 6, 4 bits indicating the memory block number are added to the upper part of the 20 bits of address 17d.
Enables 4-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 so that the pixel data requested by each processor can be obtained.
It is connected to one of the corresponding processor buses 217a-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 Path Selector 106> The configuration of the path selector 106 will be described below with reference to FIGS. 7 and 8.
パスセレクタ106の内部は双方向のセレクタを含むデ
ータ部と、1方向のセレクタを含むアドレス部とに分離
できる。第7図はパスセレクタ106のデータ部のブロ
ック図であり、第8図は同じ(パスセレクタ106のア
ドレス部のブロック図である。The inside of the path selector 106 can be separated into a data section including bidirectional selectors and an address section including unidirectional selectors. 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 indicate latch circuits for correcting data timing deviations due to delays in each element. 302 and 303 are selector sections.
双方向バッファ300において、306a−tは、制御
信号DIRB310が“0”で導通、“1”で高インピ
ーダンス状態になる負動作バッファ、307 a −p
は制御信号DIRBが“1”で導通、“0”で高インピ
ーダンス状態になる正動作バッファである。また、セレ
クタ部302の3088”I)は4人力のうちから1つ
を選択して出力する4−1セレクタであり、セレクタ部
303の309a−pは、1人力を4出力のうちの1つ
を選択して出力する1−4セレクタである。In the bidirectional buffer 300, 306a-t are negative operation buffers that are conductive when the control signal DIRB 310 is "0" and are in a high impedance state when the control signal DIRB310 is "1"; 307a-p
is a direct operation buffer that is conductive when the control signal DIRB is "1" and enters a high impedance state when the control signal DIRB is "0". Further, 3088''I) of the selector section 302 is a 4-1 selector that selects and outputs one out of four human power, and 309a-p of the selector section 303 selects one of the four outputs from one human power. This is a 1-4 selector that selects and outputs.
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 of the processor buses 217a to 217d through which data passes; for example, the data line 314a indicates the data line of the processor bus 217a. The same applies to 314b to 314d 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 control the output of each bidirectional buffer 300, 305 depending on whether the processors 212a-d are requesting a write or read from the memory block 210a=p. 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とし、各メモリブロックに対してプロ
セッサの個数分の信号幅(この場合は、l 6X4=6
4ビット幅)である。信号線313を通る信号名を5E
LWとし、5ELRと同様の信号幅(この場合は、64
ビツト)である。Additionally, signal lines 312 and 313 are connected to processors 212a-d.
A selector signal is sent to switch the connection between selector sections 302 and 303 depending on which of the memory blocks 210a to 210p is being accessed. 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, l 6X4=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は各素子
の遅延によるデータのタイミングずれを補正するための
ラッチ回路である。1301a〜1301dは1人力を
16出力のうちから1つの出力を選択して出力する1−
16セレクタである。In FIG. 8, 1300a to 1300d and 1302 are latch circuits for correcting data timing deviations due to delays in each element. 1301a to 1301d select and output one output from 16 outputs using one person's power 1-
16 selector.
1303a”−dはプロセッサバス217a−dのうち
アドレス情報が通るアドレス線である。ここで、例えば
アドレス線1303aはプロセッサバス217aのアド
レス線であり、プロセッサ212aと接続されている。1303a''-d are address lines through which address information passes among the processor buses 217a-d. Here, for example, the address line 1303a is an address line of the processor bus 217a, and is connected to the processor 212a.
この信号名をPAOとする。以下、アドレス線1303
b−dについても同様である。また、1304a〜pは
メモリバス216a〜dのうちのアドレスが通るアドレ
ス線を示し、例えばアドレス111304 aはメモリ
ブロック210aにアドレスを供給する。以下、同様に
アドレス線1304b−pのそれぞれは、メモリブロッ
ク210b〜pのそわぞれにアドレスをイ共糸合してい
る。This signal name is PAO. Below, address line 1303
The same applies to b-d. Further, 1304a-p indicate address lines through which addresses of the memory buses 216a-d pass, and for example, address 111304a supplies an address to the memory block 210a. Similarly, each of the address lines 1304b to 1304p has an address connected to each of the memory blocks 210b to 210p.
第9図は1−16セレクタ1301a=dの構成を示す
ブロック図であり、セレクタ1301a〜dはいずれも
同じ構成であるので、1−16セレクタ1301aを例
にして説明する。FIG. 9 is a block diagram showing the configuration of the 1-16 selector 1301a=d. Since the selectors 1301a to 1301d all have the same configuration, the 1-16 selector 1301a will be explained as an example.
1800はプロセッサバス217aのアドレス線である
。1801a=pは各メモリバス216a〜pのアドレ
ス部に通じている。1802a〜pは20ビツトの出力
に対して同時に制御線SELが“1″で導通、“O”で
高インピーダンスとなる正動作バッファである。180
3はバスコントローラ105から入力される制御信号線
(SEL)であり、これによって正動作バッファ180
2a〜pが制御される。この制御線に出力される信号は
、正動作バッファ1802aに入る制御線をMSBとし
、1802pに入る制御線をLSBとして、ブロック図
に従って順に1ビツトずつならべた信号である。1800 is an address line of the processor bus 217a. 1801a=p communicates with the address portion of each memory bus 216a-p. Reference numerals 1802a to 1802p are direct-operation buffers that are simultaneously conductive when the control line SEL is "1" and high impedance when the control line SEL is "O" for 20-bit output. 180
3 is a control signal line (SEL) input from the bus controller 105, which causes the direct operation buffer 180 to
2a-p are controlled. The signals outputted to the control lines are sequentially arranged bit by bit according to the block diagram, with the control line entering the normal operation buffer 1802a being the MSB and the control line entering the normal operation buffer 1802p being the LSB.
〈パスセレクタ106の動作〉
以上の構成を基づいて、バスセレクタ106の動作につ
いて例を挙げて説明する。<Operation of Path Selector 106> Based on the above configuration, the operation of the bus selector 106 will be explained by giving an example.
まず最初に、プロセッサ2128〜212dがメモリブ
ロック107からブロックアクセス方式によりデータを
読込む方法について述べる。First, a method for the processors 2128 to 212d 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を経てバスコントローラ
105に送られる。この場合、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 is “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 105 via the signal line 219. In this case, the R/W signal is
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に送られる。この制御信号は、パ
スセレクタ1O6のアドレス部とデータ部に分割して送
られ、データ部では信号名DIRB、DIRP、5EL
Rとして送られ、アドレス部では信号名5ELAとして
送られる。この場合は読込みであるから、双方向バッフ
ァ300,305に与えられる信号のDIRB及びDI
RPにおいて、プロセッサ212aに接続される正動作
バッファ307qと負動作バッファ306qに入力され
る信号は°゛O”であり、メモリブロック210aに接
続される正動作バッファ307aと負動作バッファ30
6aに入力される信号も“0”である。こうして、ブロ
モ・ンサバス217aのデータ糸束314aとデータバ
ス216aのデータ41313 aとを接続する。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 sent divided into an address part and a data part of the path selector 1O6, 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 signal input to the positive operation buffer 307q and the negative operation buffer 306q connected to the processor 212a is °゛O'', and the signal input to the positive operation buffer 307a and the negative operation buffer 30 connected to the memory block 210a is
The signal input to 6a is also "0". In this way, the data yarn bundle 314a of the bromo bus 217a and the data 41313a 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”
で導通、“0”で高インピーダンスとする正動作バッフ
ァである。その出力線402a−dのそれぞれは、ラッ
チ回路304を介して負動作バッファ306q−tに接
続されている。400a to 400d are control lines 4 from the bus controller 105.
03a-d simultaneously sets “1” to 8 input bits
This is a direct-operation buffer that is conductive at 0 and high impedance at 0. 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の403aに°°1
°°を、403b〜dに°’ o ”を入力する。これ
と同時に、セレクタ部303内の他のセレクタ309b
−pの制御線403aに°゛0°“を送ってその出力を
禁止することにより、バス上での衝突をさける。Therefore, in order to connect the data line 314a of the processor bus and the data line 313a of the memory bus, it is necessary to
°° and °'o'' are input into 403b to 403d.At the same time, other selectors 309b in the selector section 303
-p's control line 403a to inhibit its output, a collision on the bus is avoided.
一方、アドレス部ではプロセッサバス217aのアドレ
ス部の1303aとメモリバス216aのアドレス部の
1304aとの接続を1−16セレクタ1301aで切
り換える。また、バスコントローラ105は制御線22
3を介してブロックメモリ210aを読出しモードにす
る。即ち、1−16セレクタ1301aに入る信号線3
13の入力の一部が16ビツトの信号線1803 (第
9図)であり、この16ビツトの信号線のMSB(最上
位ビット)が°1”で、他ビットが“0”となる。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
A part of the 13 inputs is a 16-bit signal line 1803 (FIG. 9), and the MSB (most significant bit) of this 16-bit signal line is 1, and the other bits are 0.
以上をまとめると、プロセッサ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, the data is input to the processor 212a from the data thread bundle on the processor bus 217a.
以下、同じブロックメモリ(210a)内の任意のアド
レスにアクセスを行う場合は、プロセッサ2128はた
だ単にアドレスを発行して読出したデータを受けとるだ
けでよい。こうして、同一ブロックメモリへのアクセス
を終了し、他のブロックメモリにアクセスを変更する場
合は、プロセッサ212aはバスコントローラ105に
対してアクセス終了信号を送る。Hereinafter, when accessing an arbitrary address within the same block memory (210a), the processor 2128 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.
次に、プロセッサ212a〜212dがメモリブロック
にデータを書込む場合について説明する。ここでは、プ
ロセッサ212aからアドレスとデータを発行して、メ
モリブロック210pの°“999 ”番地に1バイト
のデータを書込む場合を例にして説明する。Next, a case in which the processors 212a to 212d write data to a memory block will be described. Here, an example will be explained in which the processor 212a issues an address and data and writes 1 byte of data to address 999 of the memory block 210p.
まず、プロセッサ212aが第6図に示すようなアドレ
スを発行する。この場合のアドレスデー夕は“FOO9
99H″である。このアドレスの上位4ビツトと、R/
Wモード信号(この場合は書込みモード)及びアクセス
モード信号(この場合はブロックアクセスモード)をバ
スコントローラ105に送る。バスコントローラ105
はブロックに対するアクセスの衝突の有無を判断し、プ
ロセッサ212aにアクセス可又はウェイト信号を送る
。アクセス可信号を受けとったプロセッサ212aはバ
ス−コントローラ105にアクセス開始信号を送り、メ
モリブロック210pへのアクセスを開始する。First, the processor 212a issues an address as shown in FIG. In this case, the address data is “FOO9”.
99H''.The upper 4 bits of this address and R/
A W mode signal (in this case, write mode) and an access mode signal (in this case, block access mode) are sent to the bus controller 105. 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. Processor 212a, which has received the access enable signal, sends an access start signal to bus controller 105 to start accessing 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のデータ線a1apとを接続する。バスコントローラ
105は4−1セレクタ308pに対して信号5ELW
を信号線312を通して制御する。4−1セレクタ30
8pは他のセレクタ308a〜0と同じ構成である。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.
Connect it to the data line a1ap 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 to 3080.
第11図はそのセレクタ308pの構成を示すブロック
図である。FIG. 11 is a block diagram showing the configuration of the selector 308p.
第11図において、500a−dは制御信号線403a
−dにより°“1°゛が入力された場合は8ビツトを同
時に導通させ、“0°゛が入力された場合は8ビット同
時に高インピーダンス状態にする正動作バッファである
。501はメモリバス216Pのデータ線であり、50
2a−dはそれぞれがプロセッサバス217a−dのデ
ータ線である。従って、ブロセ゛ソサバス217aのデ
ータ糸束とメモリバス216pのデータ線を結線するた
めには、まず4−1セレクタ308pへのバスコントロ
ーラ105からの制御信号5ELWのうち、信号線40
3aのみが“1”で、403b〜dが“0″でなければ
ならない。また、バスコントローラ105は制御線22
3(第2図)を介してブロックメモリ210pを書込み
モードにする。In FIG. 11, 500a-d are control signal lines 403a
-d is a direct operation buffer that turns on 8 bits at the same time when 1° is input, and puts 8 bits into a high impedance state at the same time when 0° is input. 501 is a data line of the memory bus 216P;
2a-d are data lines of processor buses 217a-d, respectively. Therefore, in order to connect the data thread bundle of the processor bus 217a and the data line of the memory bus 216p, first, the control signal 5ELW from the bus controller 105 to the 4-1 selector 308p is sent to the signal line 40.
Only 3a must be "1" and 403b to 403d must be "0". In addition, the bus controller 105
3 (FIG. 2) to put the block memory 210p into write mode.
その後に書込むべきデータがプロセッサ212aによっ
て発行され、プロセッサバス217aのデータ線314
aを通り、正動作バッファ307qを経由してラッチ3
04に一旦ラッチされる。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.
It is once latched to 04.
次にこのデータは4−1セレクタ308pに供給され、
データ11502a(第11図)を通り正動作バッファ
500aを経由し、データ線501を通ってラッチ回路
301(第7図)にラッチされる。その後、このデータ
は双方向バッファ300の正動作バッファ307pを経
由し、メモリバス216pのデータ糸束313pを通っ
てメモリブロック210pに到達し、そのメモリブロッ
クの所定の番地“999°゛に書込まれる。This data is then supplied to the 4-1 selector 308p,
The data 11502a (FIG. 11) passes through the normal operation buffer 500a, passes through the data line 501, and is latched by the latch circuit 301 (FIG. 7). After that, this data passes through the normal operation buffer 307p of the bidirectional buffer 300, passes through the data thread bundle 313p of the memory bus 216p, reaches the memory block 210p, and is written to a predetermined address "999°" in the memory block. It will be done.
以下、同じブロックメモリ内の任意のアドレスにアクセ
スを行う場合は、プロセッサ212aはただ単にアドレ
スを発行してデータを出力するだけでよ(、同一メモリ
ブロックへのアクセスを終了し、他のブロックメモリに
アクセスを変更する場合は、プロセッサ212aはバス
コントローラ105に対し、アクセス終了信号を送る。Hereinafter, when accessing an arbitrary address within the same block memory, the processor 212a simply issues the address and outputs the data. When changing the access, the processor 212a sends an access end signal to the bus controller 105.
次に、メモリブロックの画素をアクセスする場合につい
て述べる。ここではプロセッサ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.
プロセッサ2128〜212dのそれぞれが画素値の格
納されているメモリアドレスを発行する。これにより、
各プロセッサよりの24ビツトアドレスの上位4ビツト
、R/Wモード信号(各プロセッサで異なる)、アクセ
スモード信号(この場合は画素アクセスモード)がバス
コントローラ105に送られ、バスコントローラ105
は各画素を含むブロック単位に、画素アクセスのクロッ
ク毎にアクセスの衝突の有無を判断し、各プロセッサに
アクセス可又はウェイトの信号を信号線219を経て送
出する。更に、アクセス可となったプロセッサのプロセ
ッサバスと、その相手のメモリブロックのメモリバスと
を接続するように、バスセレクタ106とデータメモリ
部107に対して制御信号を信号線221,223を介
して送る。これら制御信号を受取ったバスセレクタ10
6とデータメモリ部107は、前述したブロックアクセ
ス時と同様に、メモリバスとプロセッサバスとを接続す
る。Each of processors 2128-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, control signals are sent to the bus selector 106 and the data memory unit 107 via signal lines 221 and 223 so as to connect the processor bus of the processor that has become accessible to the memory bus of the other memory block. send. 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 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から出されたメモ
リブロック番号を格納しておくためのバッファである。The bus controller 105 receives the upper 4 bits of the address issued 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 bus selector 106 and the data memory section 107. sends a signal to control the 601
A-d are buffers for storing memory block numbers issued from each processor 212a''-d.
バッファ601aはプロセッサ212aから出力された
メモリブロック番号を格納する。以下、バッファ601
b−dのそれぞれも、各プロセッサ212b〜dよりの
ブロック番号を記憶しており、より詳しく説明するとバ
ッファ601aはプロセッサ212aが読出す領域と書
込む領域とを同時に占有して処理を行えるように、読出
すブロックメモリの番号と書込むブロックメモリの番号
とを格納する。Buffer 601a stores the memory block number output from processor 212a. Below, buffer 601
Each of b to d also stores the block number from each processor 212b to 212d, and to explain in more detail, the buffer 601a is designed 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に入
力するための信号線である。609aNd、611a−
d、613a % dは各プロセッサからの読出しメモ
リブロック番号を、610a=d、612a 〜d、6
14a % dは各プロセッサからの書込みメモリブロ
ック番号を各々の後段に送る信号線である。618a
y dは各プロセッサ212a−dに対してアクセス可
またはウェイト信号を出力するための信号線、617は
メインCPUl0Iで決められた各プロセッサのアクセ
ス優先順位を優先順位保持器606に送る信号線である
。619は衝突検出器605からの衝突の有無をコント
ローラ607に伝える信号線である。620はコントロ
ーラ607からアクセス可又はウェイト信号を伝える信
号線である。621はデータメモリ部107の各メモリ
ブロック210a−pにR/W信号を送る信号線である
。608a-d each correspond to each processor 212a-d.
This is a signal line for inputting the block memory number, etc. required by the controller. 627 is a signal line for inputting an R/W signal from each of the processors 212a-d, and 628 is a signal line for inputting an access start or end signal and an access mode signal to the buffers 601a-d. 609aNd, 611a-
d, 613a % d is the read memory block number from each processor, 610a=d, 612a to d, 6
14a%d are signal lines for sending write memory block numbers from each processor to the respective subsequent stages. 618a
yd is a signal line for outputting an accessible or wait signal to each processor 212a to 212d, and 617 is a signal line for sending the access priority of each processor determined by the main CPU I0I to the priority holder 606. . 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-p 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の番号“O″′を格納する。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 "O"' of the memory block 210a, is stored in 01a and 601b.
次に、同様にして信号線627を介してバッファへの書
込みモードをセットし、書込むメモリブロック番号、即
ちバッファ601aには“F。Next, the write mode to the buffer is similarly set via the signal line 627, and "F" is set to the memory block number to be written, that is, the buffer 601a.
(メモリブロック210pを示す)を、バッファ601
bには”2M (メモリブロック210cを示す)
を格納する。その後、信号線628を介してバッファ6
01a、601bをブロック・アクセスモードに設定す
る。即ち、アクセス開始信号によってメモリブロック番
号を信号線609a、b、610a、bに初めて送出し
、アクセス終了信号が入力されるまで、これを保持し続
ける。(indicating the memory block 210p), the buffer 601
b is “2M” (representing memory block 210c)
Store. After that, the buffer 6
01a and 601b are set to block access mode. That is, the memory block number is sent to the signal lines 609a, b, 610a, b for the first time in response to the access start signal, and continues to be held until the access end signal is input.
この状態で、バッファ601a及び601bにプロセッ
サ212a及び212bからアクセス開始信号が入力さ
れると、信号線609a、b、610a、bを介して各
ブロックメモリ番号が遅延器602及び衝突検出器60
5に供給される。これにより、衝突検出器605は各ブ
ロックメモリ番号を比較して衝突の有無を調べる。この
例ではメモリブロック210aへのアクセスで衝突があ
ったことがわかる。そこで、衝突を起こしているプロセ
ッサの番号を信号線619を介してコントローラ607
に送る。ここで、優先順位保持器606には予めメイン
CPUI O1からシステムバスインタフェース部10
9.信号4!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 has the main CPUI O1 to the system bus interface section 10 in advance.
9. Signal 4!214. Register 200. Signal line 218
(Above, shown in FIG. 2), the priority order at the time of collision is stored. 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は信号!1618a、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 is a signal! An access enable signal is sent to the processors 212a, 212c, and 212d via the signal line 618a, 618c, and 618d, and a wait signal is sent to the processor 212b via the 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−lセレク
タ309a (第7図)がプロセッサ212aとメモリ
ブロック210aとを接続するように制御する。また、
信号線312の信号5ELWにより、1−4セレクタ3
08pがプロセッサ212aとメモリブロック210p
とを接続するように制御する。さらに、信号IS 13
05の信号5ELAの中でR/W信号が読出しモードの
とき、プロセッサバス217aのアドレス線1303a
がメモリバス216aのアドレス線1304a(第8図
)とが接続されるように、R/W信号が書込みモードの
ときプロセッサバス217aのアドレス糸1i1130
3aがメモリバス216pのアドレス線1304pとが
接続されるように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 is the processor 212a and memory block 210p
and control the connection. Furthermore, the signal IS 13
When the R/W signal is in the read mode in the signal 5ELA of 05, the address line 1303a of the processor bus 217a
When the R/W signal is in the write mode, the address line 1i 1130 of the processor bus 217a is connected to the address line 1304a (FIG. 8) of the memory bus 216a.
3a controls the 1-16 selectors 1301a-d so that they are connected to the address line 1304p of the memory bus 216p.
また、信号線310の信号DIRBは負動作バッファ3
06aを導通させ、かつ正動作バッファ307pを導通
させる。信号線311の信号DIRPのデータ1131
4aに関してはR/W信号が読比しモードのときは、デ
ータ1i314aの負動作バッファを導通させ(即ち°
’0”)、逆に書込みモードのときは正動作バッファを
導通させる(即ち”l”)。更に、信号線621のRW
傷信号16ビツトの信号であり、各メモリブロック21
0 a ”−p 4: 1ビツトずつ接続されており、
各プロセッサからのR/W信号を、アクセスされたメモ
リブロックに送出している。こうして、アクセス終了信
号が信号線628を介してバッファ6゜1aまたは60
1bに入力されると、バッファ内に蓄積されている次の
メモリブロックの番号が信号線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 1131 of signal DIRP on signal line 311
Regarding 4a, when the R/W signal is in the reading comparison mode, the negative operation buffer of data 1i 314a is made conductive (i.e., °
'0'), and conversely, in the write mode, the normal operation buffer is made conductive (that is, 'l').Furthermore, the RW
The flaw signal is a 16-bit signal, and is applied to each memory block 21.
0 a ”-p 4: Connected 1 bit at a time,
The R/W signal from each processor is sent to the accessed memory block. In this way, the access end signal is transmitted via the signal line 628 to the buffer 6.1a or 60.
1b, the number of the next memory block stored in the buffer is sent 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を画素アクセスモード
に設定する。次にプロセッサ212aと212bは信号
線608a、608bを介してアクセスするメモリブロ
ック番号をバッファ601a、601bに格納する。そ
の後、信号線609a、b、610a、610bを介し
て各メモリブロック番号が遅延器602及び衝突検出器
605に供給−される。衝突検出器605はブロックア
クセス時と同様にして、同じメモリブロックへのアクセ
ス要求が衝突したかを検出する。Processors 212a and 212b first set buffers 601a and 601b to pixel access mode via signal line 628. Next, processors 212a and 212b store memory block numbers to be accessed via signal lines 608a and 608b in buffers 601a and 601b. 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 memory blocks 210a to 210a.
210p and processors 212a to 212d are configured as units. Therefore, when changing the scale of the system, it is sufficient to simply increase or decrease the number of these circuits. By preparing only the required amount of these circuits in advance and actually implementing them, it is possible to easily change the memory capacity and the number of processors. It is also possible to modularize the periphery, memory block, and its periphery so that the memory capacity and the number of processors can be changed as necessary.
なお、前述した回路構成以外に、タイミング合せのため
のラッチ回路の増設や削除等のハードウェアの変更も可
能であり、実施例中におけるバス衝突検出、優先順位に
よるバス衝突回避はこれに限定されず、他の検出回路に
よって行ってもかまわない。また、複数のプロセッサが
完全に同時に同じ画素を読出す場合については、この実
施例を用いて行うことも可能であり、この場合デコーダ
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. Alternatively, other detection circuits may be used. Further, in the case where a plurality of processors read out the same pixel completely at the same time, it is also possible to use this embodiment, and in this case, the control may be changed by the decoder 604.
[ブロックアクセス活用のアプリケーション例]ここで
は、本実施例の演算部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 uses the surface color of this object to
This method determines the pixel value of each pixel, and repeats the same search method for each pixel on the screen. Note that each pixel can be searched independently of the other. As can be easily inferred from FIG. 13, images can be processed in parallel in units of blocks, with small areas of a plurality of images being treated as blocks.
第14図はこの扱う画像のサイズが2048画素X20
48画素より構成され、512画素×512画素よりな
る16の正方小領域に分割されている。これら16個の
正方小領域は、MBO−MB15と番号付けられて区別
されている。In Figure 14, the size of the image to be handled is 2048 pixels x 20
It is composed of 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個の領域に分割してなるそれぞれ5BO−
5B15と名付けられたスクリーン上の小領域のことで
ある。これらスクリーン上の小領域5BO−3B15が
、それぞれ前記第14図のMBO〜MB15に対応して
いる。212a〜212dの4個のプロセッサのそれぞ
れ4本まで使用可能なシリアル通信手段は、プログラム
がメインCPUl0Iより通信路交換制御部1゜01(
第3図)を制御することによって、第15図の様に設定
される。Here, the screen area refers to screen 1 in FIG.
101 divided into 16 areas, each with 5BO-
It is a small area on the screen named 5B15. These small areas 5BO-3B15 on the screen correspond to MBO to MB15 in FIG. 14, respectively. Up to four serial communication means can be used for each of the four processors 212a to 212d.
3), settings are made as shown in FIG. 15.
第15図において、14o1はプロセッサ212aとプ
ロセッサ212bの間を結ぶシリアル通信路を示す。同
様に、14o2はプロセッサ212bとプロセッサ21
2cとの間を結ぶシリアル通信路、1403はプロセッ
サ212cとプロセッサ212dとの間を結ぶシリアル
通信路、1404はプロセッサ212dとプロセッサ2
12aとの間を結ぶシリアル通信路、14o5はプロセ
ッサ212aとプロセッサ212cとの間を結ぶシリア
ル通信路、1406はプロセッサ212bとプロセッサ
212dとの間を結ぶシリアル通信路を示している。尚
、1400は第3図のパラレル/シリアル変換器100
4とプロセッサ212aとの間を結ぶシリアル通信路を
示す。並列処理部103は、この通信路1400を通じ
て、メインCPLIIOIよりプログラム及びデータを
ダウンロードされ、また必要に応じてメインCPU 1
01と交信するものである。In FIG. 15, 14o1 indicates a serial communication path connecting the processor 212a and the processor 212b. Similarly, 14o2 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 212d and processor 2.
12a, 14o5 is a serial communication path between processors 212a and 212c, and 1406 is a serial communication path between processors 212b and 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 1 through this communication path 1400, and also downloads programs and data from the main CPU 1 as necessary.
It communicates with 01.
以下、第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, and processor 212d has SB3.
SB7. SBI 1,5B15 is allocated as an implicit processing area.
ステップS1で処理を開始する。プロセッサ212aの
暗黙の処理領域として割付けられている小領域SBO,
SB4.SB8,5B12(7)各ブロック毎に、未処
理の領域であるが否かを示すフラグ(以下、各々SBO
処理フラグ、SB4処理フラグ、SB8処理フラグ、5
B12処理フラグと呼ぶ)が用意されている。Processing starts in step S1. A small area SBO allocated as an implicit processing area of the processor 212a,
SB4. SB8, 5B12 (7) For each block, a flag indicating whether or not it is an unprocessed area (hereinafter, each SBO
Processing flag, SB4 processing flag, SB8 processing flag, 5
B12 processing flag) is prepared.
ステップS2では、これらのフラグを全てリセットして
、SBO,SB4.SB8,5B12は全て未処理の状
態であるとしてフラグを初期化する。ステップS3では
、第17図に示すフローチャートに従って、未処理の小
領域(以下、空領域と呼ぶ)を探す。In step S2, all these flags are reset and SBO, SB4 . Flags of SB8 and 5B12 are initialized assuming that they are all 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. Furthermore, if there is an empty area in any 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 exists. Reset the flag to indicate that there is no empty space.
ステップ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で空き領域がないときはステップ$
11に進む。この時は、プロセッサ212aに暗黙に割
当てられた小領域はすべて未処理状態ではなくなった状
況である。ここで、他のプロセッサに対し、空領域の存
在を尋ねるために、尋ねるべき他のプロセッサの番号を
間合せプロセッサ番号レジスタにセットする。次にステ
ップS12に進み、間合せプロセッサ番号レジスタで指
定されたプロセッサに対して、空領域の有無を間合せ、
他のプロセッサに空領域が有れば、その空領域のレンダ
リング処理を行なう。空領域がなければ、ステップS1
2の処理を終えてステップS13へ進む。ステップS1
2では更に、以上の処理中に他のプロセッサより空領域
の問合せがあった場合に空領域は無い旨を返答している
。On the other hand, if there is no free space in step S4, step $
Proceed to step 11. 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では、またもう一つの他のプロセッ
サ番号を間合せプロセッサ番号レジスタにセットし、ス
テップ316で、ステップ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 316, 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へ戻る。ステップ326
で空領域が無い場合にはステップ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 reply, the process goes 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 time available from another processor in step S27, the process advances to step S29, where the empty area of the other processor received in response is subjected to rendering processing, and the process returns to step S22. Step 326
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 series of processes 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内のデータメモリ107に格納
されている画像データを、モニタデイスプレィ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 image data stored in data memory 107 in calculation unit 103 on monitor display 111, transfer of image data from data memory to video frame memory will be performed. The process of transferring image data to the computer 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及び、システムバスI/F109部を合
わせたものである。107は演算部内のデータメモリ部
で、演算のための画像データを格納するメモリ部である
。説明を簡単にするために本実施例では、2048X2
048画素。1010 is 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は、例えば
CRT表示装置等のモニタであり、アナログ信号に従っ
て画像を表示する。本実施例では、モニタの解像度を1
280x1024画素とする。Further, 1013'' is a display converter, which performs D/A conversion of the digital video image data stored in the video frame memory 1012 into an analog image.111 is a monitor such as a CRT display device, for example, and Display the image.In this example, the resolution of the monitor is set to 1.
The number of pixels is 280x1024.
先ず、動作概略について説明すると、操作者は転送した
いデータメモリ部内の先頭アドレス、転送領域の主走査
/副走査方向の画素数、及び転送先のビデオフレームメ
モリ内の先頭アドレス等、この転送処理に必要な情報を
図示しないキーボードやマウスに代表されるポインティ
ングデバイス等を用いて指定する。これらの情報を基に
、メインcpu i o iがシステムバス116を通
して該当する並列処理部103内のアドレス発生器10
10及びビデオフレームメモリ110内のアドレス発生
器1011にその旨を指示し、高速画像転送バス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 i o i sends an address to the address generator 10 in the corresponding parallel processing unit 103 through the system bus 116.
10 and the address generator 1011 in the video frame memory 110 to that effect, and the high-speed image transfer bus 117
Transfer image data at high speed via
以下、詳細に動作原理を説明する。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はROW
(行)カウンタであり、転送のための垂直同期(V−s
ync)信号10215によってYレジスタ10205
の内容をロードし、その後は同じく転送のための水平同
期(H−3ync)信号10214によって1インクリ
メントされる。10204はXレジスタで、画像データ
の転送開始Xアドレスを保持する。10202はカラム
(列)カウンタであり、H−Sync信号10214に
よってXレジスタ10204の内容をロードし、その後
は転送のためのクロック(CLK)信号10213によ
って1インクリメントされる。10207.10208
はシフタで、それぞれ指令によって各カウンタ1020
2,10203の出力(内部発生アドレス)をシフトす
る。10206は制御レジスタであり、カラムカウンタ
10202.行カウンタ10203の出力を何れの方向
に何ビットシフトするかの情報を保持している。即ち、
レジスタ10206=Oなら“0″ビツト、=−1なら
下位方向に“1”ビット、=1なら上位方向に“1°。On the other hand, 10205 is a Y register, which holds the Y address at which image data transfer starts. 10203 is ROW
(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 (H-3 sync) signal 10214 for transfer. Reference numeral 10204 denotes an X register that holds an X address at which to start transferring image data. A column counter 10202 loads the contents of the X register 10204 in response to an H-Sync signal 10214, and is then incremented by 1 in response to a clock (CLK) signal 10213 for transfer. 10207.10208
is a shifter, which controls each counter 1020 according to a command.
Shift the output (internally generated address) of 2, 10203. 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, it is a "0" bit, if = -1, it is a "1" bit in the lower direction, and if =1, it is "1 degree" in the upper direction.
ビットシフトする。以下、同様である。Shift bits. The same applies hereafter.
また、10209.10210はレジスタで、シフタ1
0207,10208を通過したアドレス情報に加える
べきアドレスデータを夫々保持する。10211.10
212は加算器であり、シフタ10207,10208
を通過したアドレス情報とレジスタ10209.102
10の内容を夫々加算する。Also, 10209.10210 is a register, shifter 1
Address data to be added to the address information passed through 0207 and 10208 is held respectively. 10211.10
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
2.16の内容がXレングスレジスタ10218の内容
より小さい間は論理ルベルの信号を出力する。1022
2はAND回路であり、比較器10220及び1021
7の出力が共に論理ルベルの間はRAMlO12に対し
てチップイネーブル信号CEを出力する。従って、この
CE倍信号出力されている間は、ストローブ信号に同期
して画像データをRAMlO12に書込むことができる
。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 2.16 are smaller than the contents of the X length register 10218, a logical level signal is output. 1022
2 is an AND circuit, and comparators 10220 and 1021
While both outputs of 7 are at the logic level, a chip enable signal CE is output to the RAMIO12. Therefore, while this CE multiplied signal is being output, image data can be written to the RAMIO 12 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) A pixel area is transferred 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転送開始アドレスMPX10200=高
速画像転送バス接続MPX10201=内部アドレス使
用
レジスタ10206=0
レジスタ10209、レジスタ10210=OXレング
スレジスタ10218=1280Yレングスレジスタ1
0221=1024[ビデオフレームメモリ]
Xレジスタ10204=O
Yレジスタ10203=O
MP10203=O高速画像転送バス接続MPX102
01=内部アドレス使用
レジスタ10206,10209.10210二〇
Xレングスレジスタ10218=1280Yレングスレ
ジスタ10221=1024このように初期設定した後
、メインCPUl01がスタートをかけると、データメ
モリ部107のアドレスX、Yで始まる(1280X1
024)画素分の画像データがビデオフレームメモリ1
012の番地(0,O)で始まるエリアに高速画像デー
タ転送される。[Data memory section] register 1
0221=1024 [Video frame memory] 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 20 Start (1280X1
024) Image data for pixels is stored in video frame memory 1
High-speed image data is transferred to the area starting at address (0, O) of 012.
〈間引き転送〉
演算部103内のデータメモリ部107の任意の(12
80X1024)画素分の領域を1/2に間引きして、
ビデオフレームメモリ1012に転送する。この場合は
、メインCPUI 01は以下のように初期設定をする
。<Thinning transfer> Any (12
Thin out the area of 80x1024) pixels to 1/2,
Transfer to video frame memory 1012. In this case, the main CPU 01 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
MPXO203=O高XO203=O高速;0
Xレングスレジスタ10218=1280Yレングスレ
ジスタ10221=1024このように初期設定した後
、メインCPUl01がスタートをかけると、データメ
モリ部107のアドレスX,Yで始まる(1280X1
024)画素分の画像データがビデオフレームメモリ1
012の番地(0,O)で始まるエリアに間弓き転送さ
れる。この間引きは、データメモリ部107のX,Y共
に、上位方向への1ビツトシフトであるため、X,Y方
向にそれぞれ1/2である。[Data memory section] Register 10221=1024 [Video frame memory] X register 10204=O Y register 10203=O MPXO203=O high XO203=O high speed; 0 starts at addresses X and Y of the data memory section 107 (1280X1
024) Image data for pixels is stored in video frame memory 1
It is temporarily transferred to the area starting at address (0, O) of 012. This thinning is a 1-bit shift in the upper direction in both the X and Y directions of the data memory section 107, so that the data is 1/2 in each of the X and Y directions.
〈k回分側転送〉
この項では、画像データをに回に分けて転送する場合を
考える。<K times side transfer> In this section, we will consider the case where image data is transferred in parts.
第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回目は口印の全部の如(して順に
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 first time transfers all of the x marks, and the fourth time transfers all of the mouth marks (thus, four screens are transferred in order. When the first transfer ends, the monitor 111 displays a schematic image of the entire O mark. can be grasped quickly.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)で始まる(
1 280X l 024)画素分の画像データをビデ
オフレームメモリ1012のアドレス(0,O)で始ま
るエリアに等倍で転送するもので、K=4回とする。こ
の場合はメインCP’UIO1は以下の初期設定をする
。尚、特に記載しない場合は上述実施例と同様に考える
。<Four division equal size transfer> Starts at the address (0.0) of the data memory section 107 (
1 280X l 024) Image data for pixels is transferred at the same size to the area starting at address (0, O) of the video frame memory 1012, and K=4 times. In this case, the main CP'UIO1 performs 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レジスタ1 0203=O
xレングスレジスタ10218=1280Yレングスレ
ジスタ10221=1024レジスタ10206=O
MP10206=O高速画儂転送バス接続MPX102
01=内部アドレス使用
[データメモリ部]
Xレジスタ10204=O
Yレジスタ10205=0
レジスタ10206=+ル
ラスタ10209.10210(7)内容は転送1回ご
とに異なる。[Video frame memory] X register 10204=0 Y register 1 0203=O
01=Use of internal address [Data memory section]
画像データ○印の転送時は、
レジスタ10209=0
レジスタ10210=0
画像データΔ印の転送時は、
レジスタ10209=ル
ジメタ10210=0
画像データX印の転送は、
レジスタ10209=0
レジスタ10210=1
画像データロ印の転送時は、
レジスタ10209=ル
ラスタ10210=1
〈4分割間引き転送〉
この場合はX、Y共に1/2倍であり、K=4回とする
。この場合はメインCPUl0Iは以下のように初期設
定をする。When transferring image data marked with ○, register 10209=0 Register 10210=0 When transferring image data marked with Δ, register 10209=Lujimeta 10210=0 When transferring image data marked with X, register 10209=0 Register 10210=1 Image When transferring data row marks, register 10209 = raster 10210 = 1 <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 10I is initialized 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=0
画像データΔ印の転送時は、
レジスタ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 10210=0 When transferring image data marked Δ, register 10209=2 Register 10210=0 When transferring image data marked with X, register 10209=0 Register 10210=2 Image 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のデータメモリ1゜7の画像サイズは、モ
ニタデイスプレィ111の解像度、更には、ビデオメモ
リ110のデータサイズに係らず、任意のサイズのデー
タメモリ、例えば1024X1024画素、2048x
2048画素、4096X4096画素等を接続するこ
とができる。As in the system of this embodiment, by distributing the data memory section 107 and the video memory 110 and waiting, the image size of the data memory 1.7 of the parallel processing section 103 can be adjusted to the resolution of the monitor display 111, and even , regardless of the data size of the video memory 110, a data memory of any size, for example 1024×1024 pixels, 2048×
2048 pixels, 4096×4096 pixels, etc. can be connected.
[大容量外部記憶装置からデータメモリへの画像データ
の転送]
ここでは、大容量外部記憶装置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.
先ず、操作者が処理したい画像データファイル名、画像
データの主走査、副走査方向の画素数、転送先のデータ
メモリ部内のアドレス等、この処理に必要な情報を図示
しないキーボード等で指定する。これに−より、メイン
CPU 101が大容量外部記憶装置102内の該当す
る画像データファイルをアクセスして画像データを読出
し、システムバス116を経由して、データメモリ部1
07内の該当するアドレスにデータメモリ部107内の
画像データに従って、画像データを書込む。First, the operator specifies information necessary for this processing, such as the name of the image data file 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 (not shown) or the like. 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 stores the image data in the data memory section 1 via the system bus 116.
Image data is written to the corresponding address in 07 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.
先ずCPUI O1は、ステップ、S41で指定された
ファイルをオーブンし、ステップS42で指定されたデ
ータメモリ内の先頭アドレスを計算する。その後ステッ
プS45で、■ライン分の画像データ、本実施例の場合
は主走査方向の画素数(R,G、Bのバイト数=3バイ
ト)をシステムバス116から読込み、ステップS46
でデータメモリ107上に1ライン分の画像データを書
込む。次にステップS47で、ラインの先頭アドレスを
計算する。この処理を、副走査方向のライン数分繰り返
した後、ステップS44で1画面の走査線・に応じた回
数だけ繰返すとステップS49に進み、オーブンしてい
る画像データファイルをクローズして処理を終了する。First, the CPU O1 opens the file specified in step S41, and calculates the starting address in the data memory specified in step S42. Thereafter, in step S45, the image data for line 1, 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
One line of image data is written onto the data memory 107. Next, in step S47, the start address of the line is calculated. After repeating this process for the number of lines in the sub-scanning direction, in step S44, the process proceeds to step S49, where the image data file being opened is closed and the process ends. do.
本実施例では、画像データをロードする場合で説明した
が、画像データの格納も行なえることは容易に推察でき
る。また、外部記憶装置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 Examples> 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 has 4 bytes. The above three types of processing are sequentially processed, consisting of "color conversion processing" of image data 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 image data. Consider the case. Each processing flow is shown as a flowchart of program memories 213a-c in FIG. 23.
説明を簡単にするために、処理する画像データのサイズ
は1024x1024画素、1画素4バイト構成とし、
またデータメモリ部107内の1つのブロックメモリの
サイズは、1Mバイト(512X512画素×4バイト
)とする。処理される画像データは予めシステムバスや
高速画像データ転送バスを通して、例えばデータメモリ
部lO7内のブロックメモリM B O(210a)、
M B 1 (210b)、 M B 4 (210
e)、 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.
Furthermore, the size of one block memory in the data memory section 107 is assumed to be 1 Mbyte (512×512 pixels×4 bytes). The image data to be processed is transferred in advance to the block memory MBO (210a) in the data memory unit IO7, for example, through a system bus or a high-speed image data transfer bus.
M B 1 (210b), M B 4 (210
e), 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データへの変換処理」を行なう旨を2
図示しないキーボード等で指定するものとする。またブ
ロックメモリを使用するプロセッサのデータメモリの割
付けの指定は、本実施例ではプロセッサ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 performs "color conversion processing", and the processor 21
2b performs "enlargement processing", and processor 212c performs rRGB processing.
2. Confirm that the data will be converted to YMC data.
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 specifies, for example, four blocks of MB2, 3, and 6.7 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 above section [Downloading programs to each processor]. 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に格納されている画像データを前記[ブロックアク
セス方式]の項に記載されている方式に基づいてアクセ
スして画像データを読出す。そして、プログラムメモリ
213aに格納されているプログラムコードに従った所
定の処理、例えば本実施例の場合は、第23図内の21
3aで示されたフローチャートに則した色変換処理を行
なう。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 and read out based on the method described in the above [Block access method] section. Then, a predetermined process according to the program code stored in the program memory 213a, for example, in the case of this embodiment, is carried out at 21 in FIG.
Color conversion processing is performed in accordance with the flowchart shown in 3a.
その後、プロセッサ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 inputted 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 section of [Block access method].
本実施例に示すように、各プロセッサが有するシリアル
通信路を使用することにより、複数のプロセッサをパイ
プライン的に接続した処理が可能となる。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].
以上説明したように本実施例によれば、演算処理部とデ
ータメモリ部の間に、バス接続・交換部及びバス接続・
交換制御部を設けたことにより、画像演算の並列化に柔
軟性の高い並列演算部が構成できた。また、並列演算部
とは別にビデオフレームメモリを有することにより、シ
ステムで扱う画像サイズが、デイスプレィ装置に依存し
ない構成を可能としている。また、高速イメージ転送バ
スで画像データの転送を行なうことにより、画像の転送
に要する時間をも節約することが可能となった。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 constructed. 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, image data stored in a memory can be processed in parallel in memory block units using a plurality of programmable calculation elements.
第1図は本実施例の画像処理システムの概略構成を示す
ブロック図、
第2図は並列演算部の構成をさらに詳細に説明した図、
第3図はプロセッサ間のシリアル通信路の交換・制御部
を示すブロック図、
第4図はデータメモリ部のアドレマツビングを説明する
ための図、
第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図
第10図
第11図
第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 addressing 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 path selector, Figure 9 is a detailed diagram of the 1-16 selector, and Figure 10 is a diagram showing details of the 1-16 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 explaining the principle of the ray tracing method, Figure 14 is a memory block. 15 is a diagram for explaining the connection state of the serial communication path of the processor, 16 is a flowchart for explaining parallel calculation processing using block access, and 17 is a diagram for searching for an empty area and 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. FIG. 20 is a flowchart showing the process of setting a number. is a conceptual diagram for explaining the transfer of image data from the data memory to the video frame memory, FIG. 21 is a detailed diagram of the address generator, FIG. 22 is a conceptual diagram for explaining thinning transfer, and FIG. 23 is for other purposes. FIG. 2 is a conceptual diagram illustrating pipeline processing in the embodiment. In the figure, 101... Main CPU, 102... Large capacity external storage device, 103... Parallel processing unit, 104...
Parallel calculation unit, 105... Bus connection/exchange control unit (bus controller), 106... Bus connection/exchange unit (bus selector), 107... Data memory unit, 108...
・System bus I/F section, 109...High-speed bus I
/F section, 110... Video memory section, 111... Video display, 115... Image scanner, 1
16... System bus, 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 Figure 10 Figure 11 Figure 22
Claims (4)
素同士を接続する交信手段と、 複数のメモリブロックに分割され、前記メモリブロック
のそれぞれは前記演算要素のそれぞれより独立してアク
セス可能な画像メモリ手段と、前記演算要素のそれぞれ
を独立して動作させるとともに、前記演算要素により前
記画像メモリ手段を前記メモリブロック単位でアクセス
するか、或は前記メモリブロックの最小画素単位でアク
セスするように制御する制御手段と、 を備えることを特徴とする画像処理装置。(1) A plurality of programmable computing elements, a communication means for connecting the computing elements, and an image divided into a plurality of memory blocks, each of the memory blocks being independently accessible from each of the computing elements. The memory means and the arithmetic element are operated independently, and the image memory means is controlled by the arithmetic element to be accessed in units of the memory block or in units of the smallest pixel of the memory block. An image processing device comprising: a control means for controlling;
順位を設定し、前記演算要素より前記画像メモリ手段へ
のアクセス要求が競合したときには前記優先順位に従つ
てアクセス可能な演算要素を決定するようにしたことを
特徴とする請求項第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 image memory means conflict. The image processing apparatus according to claim 1, characterized in that the image processing apparatus is configured as follows.
ログラムを作成し、前記制御プログラムを各演算要素に
ダウンロード可能なプログラムロード手段を更に含むこ
とを特徴とする請求項第1項に記載の画像処理装置。(3) The image according to claim 1, wherein the control means further includes program loading means that creates a control program for each of the calculation elements and is capable of downloading the control program to each calculation element. Processing equipment.
量はそれぞれ独立に変更可能であることを特徴とする請
求項第1項に記載の画像処理装置。(4) The image processing apparatus according to claim 1, wherein the number of calculation elements and the capacity of the image memory means can be changed independently.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11182890A JPH0415764A (en) | 1990-05-01 | 1990-05-01 | Image processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11182890A JPH0415764A (en) | 1990-05-01 | 1990-05-01 | Image processor |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0415764A true JPH0415764A (en) | 1992-01-21 |
Family
ID=14571188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11182890A Pending JPH0415764A (en) | 1990-05-01 | 1990-05-01 | Image processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0415764A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014149691A (en) * | 2013-02-01 | 2014-08-21 | Renesas Mobile Corp | Semiconductor device and data processing method thereof |
KR20170031733A (en) * | 2014-09-17 | 2017-03-21 | 인텔 코포레이션 | Technologies for adjusting a perspective of a captured image for display |
-
1990
- 1990-05-01 JP JP11182890A patent/JPH0415764A/en active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014149691A (en) * | 2013-02-01 | 2014-08-21 | Renesas Mobile Corp | Semiconductor device and data processing method thereof |
US9978117B2 (en) | 2013-02-01 | 2018-05-22 | Renesas Electronics Corporation | Semiconductor apparatus and high speed image data processing |
KR20170031733A (en) * | 2014-09-17 | 2017-03-21 | 인텔 코포레이션 | Technologies for adjusting a perspective of a captured image for display |
JP2017525052A (en) * | 2014-09-17 | 2017-08-31 | インテル コーポレイション | Technology that adjusts the field of view of captured images for display |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5430885A (en) | Multi-processor system and co-processor used for the same | |
US5237686A (en) | Multiprocessor type time varying image encoding system and image processor with memory bus control table for arbitration priority | |
US5263169A (en) | Bus arbitration and resource management for concurrent vector signal processor architecture | |
US6025854A (en) | Method and apparatus for high speed image acquisition | |
US5781201A (en) | Method for providing improved graphics performance through atypical pixel storage in video memory | |
US4949280A (en) | Parallel processor-based raster graphics system architecture | |
US5940087A (en) | Graphic processing apparatus and method | |
EP0397180A2 (en) | Multiprocessor type time varying image encoding system and image processor | |
US20060161720A1 (en) | Image data transmission method and system with DMAC | |
US6731406B1 (en) | Segmented multilevel screening for printing files in a page description language | |
JP2001084229A (en) | Simd-type processor | |
JP4106083B2 (en) | Architecture for computing devices | |
EP0752694B1 (en) | Method for quickly painting and copying shallow pixels on a deep frame buffer | |
EP0910014B1 (en) | Program loading method and apparatus | |
US6754733B2 (en) | Shared memory architecture for increased bandwidth in a printer controller | |
JPH0415764A (en) | Image processor | |
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 | |
US20060259657A1 (en) | Direct memory access (DMA) method and apparatus and DMA for video processing | |
JP3484056B2 (en) | Data transfer device and data transfer system | |
JPH0415743A (en) | Parallel arithmetic unit | |
JPH03205985A (en) | Multiprocessor type moving image encoder and bus control method | |
US5513364A (en) | Data transfer device and multiprocessor system | |
JPH0765180A (en) | Data transfer controller | |
EP0745242B1 (en) | Variable data processor allocation and memory sharing |