JPH1166033A - Pe array device and associated memory block - Google Patents

Pe array device and associated memory block

Info

Publication number
JPH1166033A
JPH1166033A JP24195397A JP24195397A JPH1166033A JP H1166033 A JPH1166033 A JP H1166033A JP 24195397 A JP24195397 A JP 24195397A JP 24195397 A JP24195397 A JP 24195397A JP H1166033 A JPH1166033 A JP H1166033A
Authority
JP
Japan
Prior art keywords
register
associative memory
array device
addition
function
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.)
Granted
Application number
JP24195397A
Other languages
Japanese (ja)
Other versions
JP3627953B2 (en
Inventor
Takeshi Ikenaga
剛 池永
Takeshi Ogura
武 小倉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP24195397A priority Critical patent/JP3627953B2/en
Publication of JPH1166033A publication Critical patent/JPH1166033A/en
Application granted granted Critical
Publication of JP3627953B2 publication Critical patent/JP3627953B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

PROBLEM TO BE SOLVED: To add the data of all processing elements(PE) consisting of a PE array device at high speed even without providing any special additional hardware outside the PE array device. SOLUTION: This PE device is provided with (w) [(w) is an arbitrary natural number] pieces of PE 24, shift operation enabled hit flag register 25, function shared register 26 operable as pipeline register or counter, and (n) [(n) is a natural number >=2] pieces of associated memory blocks 20 having control circuits 27 and an inter-block dedicated bus 14 is provided for connecting the associated memory blocks 20. The control circuit 27 selects either a means for operating the function shared register 26 or a means for operating the function shared register 26 as the pipeline register for transferring data between the associated memory blocks 20 or as the counter for counting the number of hit flags.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、画像処理システム
等の様々な超並列型計算装置を構成するための超並列型
プロセッシングエレメントアレイ装置(PEアレイ装
置)に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a massively parallel processing element array device (PE array device) for configuring various massively parallel computing devices such as an image processing system.

【0002】[0002]

【従来の技術】ネットワークサービスのビジュアル化、
高付加価値化によって、高度な画像処理、音響処理、知
識処理の必要性が高まっている。ところで、上記のよう
な処理は、一般に膨大な処理性能が要求されるので、ノ
イマンアーキテクチャに基づいた既存のマイクロプロセ
ッサ、信号処理プロセッサを使用したのでは、実行困難
な場合が多い。
2. Description of the Related Art Visualization of network services,
The need for advanced image processing, sound processing, and knowledge processing is increasing due to the added value. By the way, the above-described processing generally requires enormous processing performance, and therefore, it is often difficult to execute the processing using an existing microprocessor or signal processing processor based on the Neumann architecture.

【0003】上記のような処理の有効な装置として、超
並列型PEアレイ装置が知られている。この超並列型P
Eアレイ装置は、種々の論理、算術演算処理を行うPE
(プロセッシングエレメント)を多数搭載し、単一命令
ストリーム・複数データストリーム方式(SIMD)に
よって、1つの制御回路から各PEに対して単一の命令
列を与え、これによって、各PEが上記演算処理を同時
に実行することができる機構を有する装置である。
[0003] A super-parallel PE array device is known as an effective device for the above-described processing. This massively parallel P
The E-array device is a PE that performs various logic and arithmetic operations.
(Processing elements), a single instruction stream / multiple data stream system (SIMD) provides a single instruction sequence to each PE from one control circuit, thereby allowing each PE to perform the above-described arithmetic processing. Is a device having a mechanism capable of executing the same at the same time.

【0004】また、連想メモリが知られている(参考文
献:Ogura,T.et al."A 20-kbit Associative Memory LS
I for Artificial Intelligence Machines", IEEE J.So
lid-State Circuits, Vol.24, No.4,pp.1014-1020 Aug.
1989)。この連想メモリは、上記のような超並列型PE
アレイ装置を極めて少ないハード量で実現できる集積回
路である。
[0004] An associative memory is also known (reference: Ogura, T. et al. "A 20-kbit Associative Memory LS").
I for Artificial Intelligence Machines ", IEEE J.So
lid-State Circuits, Vol. 24, No. 4, pp. 1014-1020 Aug.
1989). This associative memory is a massively parallel PE as described above.
This is an integrated circuit that can realize an array device with an extremely small amount of hardware.

【0005】また、2次元PEアレイ装置が知られてい
る。この2次元PEアレイ装置は、上記連想メモリを構
成要素として、数十万個のPEを2次元的に搭載した装
置である(参考文献:Ikenaga,T.et al."CAM2 : A High
ly-parallel 2-D Cellular Automata Architecture for
Real-time and Palm-top Pixel-level Image Processi
ng", Euro-Par '96, Aug. 1996)。
[0005] Also, a two-dimensional PE array device is known. This two-dimensional PE array device is a device in which hundreds of thousands of PEs are two-dimensionally mounted with the above-mentioned associative memory as a constituent element (Reference: Ikenaga, T. et al. "CAM 2 : A High
ly-parallel 2-D Cellular Automata Architecture for
Real-time and Palm-top Pixel-level Image Processi
ng ", Euro-Par '96, Aug. 1996).

【0006】図4は、従来のPEアレイ装置40を示す
図である。
FIG. 4 is a diagram showing a conventional PE array device 40.

【0007】従来のPEアレイ装置40は、図4に示す
ように、マスクレジスタ46、アドレスデコーダ45、
ヒットフラグレジスタ48、W個のPE47、制御回路
44によって構成されている。上記PEアレイ装置40
は、通常のメモリのように、アドレス入出力ポート41
に所定のアドレス(値)を与えることによって、W個の
PE47のうちの任意のPEに対して、データ入出力ポ
ート42を介してデータを読み書きできる機能を有する
ものである。
As shown in FIG. 4, a conventional PE array device 40 has a mask register 46, an address decoder 45,
It comprises a hit flag register 48, W PEs 47, and a control circuit 44. The PE array device 40
Is an address input / output port 41 like a normal memory.
Is provided with a predetermined address (value) so that data can be read from or written to any of the W PEs 47 via the data input / output port 42.

【0008】また、上記従来のPEアレイ装置40は、
データ入出力ポート42から与えられる検索データとP
Eの内容とを並列に照合し、一致したPEに対してヒッ
トフラグを立てるマスク検索機能と、上記ヒットフラグ
が立っているPEに対して、データ入出力ポート42か
ら与えられるデータを並列に書き込む並列部分書き込み
機能とを有する。
Further, the above-mentioned conventional PE array device 40
Search data provided from the data input / output port 42 and P
The content of E is checked in parallel, a mask search function for setting a hit flag for the matched PE, and the data supplied from the data input / output port 42 are written in parallel to the PE on which the hit flag is set. It has a parallel partial write function.

【0009】これら両機能を用いることによって、種々
のデータ転送、論理、算術演算処理を、ワード並列(wo
rd parallel )、ビット直列(bit serial)に実行する
ことができる。また、マスク検索(検索データとPEの
内容とを並列に照合した結果、一致したPEに対してヒ
ットフラグを立てる処理)を行った後、上記ヒットフラ
グレジスタをシフトさせ、並列部分書き込みを行うこと
によって、近傍PE間(ワード間)において、データ転
送を実行することができる。
By using both of these functions, various data transfer, logic, and arithmetic operations can be performed in word parallel (wo
rd parallel), bit serial. Further, after performing a mask search (a process of setting a hit flag for a matched PE as a result of collating the search data and the contents of the PEs in parallel), shifting the hit flag register to perform parallel partial writing. Thus, data transfer can be performed between neighboring PEs (between words).

【0010】[0010]

【発明が解決しようとする課題】しかし、上記従来例に
おいて、上記各PEにおける並列処理機能、または近傍
PE間のデータ転送機能のみを使用した場合、PEアレ
イ装置40を構成する全てのPEのデータを足し合わせ
ることができず、すなわち、グローバルな処理を実現す
ることができない。たとえば、PEアレイ装置40に白
黒画像データが格納され、所定のPEの各データが1で
あるもの(黒画素)の合計数を、PEアレイ装置40に
格納されている全ての白黒画像データについて求めるこ
とができない。
However, in the above conventional example, when only the parallel processing function in each of the PEs or the data transfer function between neighboring PEs is used, the data of all the PEs constituting the PE array device 40 are used. Cannot be added, that is, global processing cannot be realized. For example, black-and-white image data is stored in the PE array device 40, and the total number of pixels (black pixels) in which each data of a predetermined PE is 1 is obtained for all the black-and-white image data stored in the PE array device 40. Can not do.

【0011】上記従来例において、PEアレイ装置40
を構成する全てのPEのデータを足し合わせるために
は、プロセッサまたは加算器等の追加回路を、PEアレ
イ装置40の外部に予め設け、1系統のデータ入出力ポ
ート42を介してPE毎にデータを外部に読み出し、上
記プロセッサまたは加算器等を使用して加算し、これら
の読出し、加算の操作を繰り返す必要がある。
In the above conventional example, the PE array device 40
In order to add up the data of all the PEs constituting the data processing system, an additional circuit such as a processor or an adder is provided in advance outside the PE array device 40, and the data for each PE is provided via one data input / output port 42. Must be read out to the outside, added using the above processor or adder, and the reading and adding operations must be repeated.

【0012】したがって、上記従来例においては、上記
追加回路を設けることによって、ハード量が増大すると
いう問題があり、しかも、システムが複雑化するという
問題があり、また、処理時間が長くなるという問題があ
る。
Therefore, in the above conventional example, there is a problem that the amount of hardware is increased by providing the additional circuit, a problem that the system is complicated, and a problem that the processing time is lengthened. There is.

【0013】画像処理等の様々な超並列アルゴリズムの
中には、全PEのデータを足し合わせる処理を必ず実行
するものが多く存在する。たとえば、モルフォロジーを
用いたパターンスペクトラム算出(参考文献:小畑、モ
ルフォロジー、7章、コロナ社)における面積計算等に
おいて、全PEのデータを足し合わせる処理を必ず実行
する。
Among various massively parallel algorithms such as image processing, there are many which always execute a process of adding data of all PEs. For example, in the area calculation in the pattern spectrum calculation using morphology (reference: Obata, Morphology, Chapter 7, Corona), a process of adding the data of all PEs is always executed.

【0014】また、近年、実時間処理を要求する画像処
理アプリケーションが増え、これらのアプリケーション
に適用するには、アルゴリズム全体の処理時間がビデオ
レート(33ミリ秒)内に収まる必要がある。このため
に、上記全PEのデータを足し合わせる処理を、極めて
短い時間で実現できることが望まれている。
In recent years, image processing applications requiring real-time processing have increased, and to apply to these applications, the processing time of the entire algorithm needs to be within the video rate (33 milliseconds). For this reason, it is desired that the processing of adding the data of all the PEs can be realized in an extremely short time.

【0015】さらに、近年、コンパクトかつ低コストな
画像処理システムへの要求が強く、これを実現するため
には、できるだけシステムの構成要素のハード量が少な
く、簡易な構成な装置が望まれている。
Furthermore, in recent years, there has been a strong demand for a compact and low-cost image processing system, and to realize this, a device with a simple configuration in which the amount of hardware of the system is as small as possible is desired. .

【0016】本発明は、PEアレイ装置の外部に特別な
追加ハードを設けなくても、PEアレイ装置を構成する
全てのPEのデータを高速に加算処理することができる
PEアレイ装置を提供することを目的とするものであ
る。
An object of the present invention is to provide a PE array device which can add data of all PEs constituting the PE array device at high speed without providing any special additional hardware outside the PE array device. It is intended for.

【0017】[0017]

【課題を解決するための手段】本発明は、w個(wは任
意の自然数)のPEと、シフト動作可能なヒットフラグ
レジスタと、パイプラインレジスタまたはカウンタとし
て動作可能な機能共有型レジスタと、制御回路とを有す
るn個(nは2以上の自然数)の連想メモリブロックを
設け、上記連想メモリブロック間を結合するブロック間
専用バスを設けたPEアレイ装置であり、上記制御回路
は、上記連想メモリブロック間のデータ転送用のパイプ
ラインレジスタとして、上記機能共有型レジスタを動作
させる手段と、ヒットフラグの数を数えるカウンタとし
て、上記機能共有型レジスタを動作させる手段とのうち
のいずれか一方の手段を選択する回路であるPEアレイ
装置である。
According to the present invention, there are provided w (where w is an arbitrary natural number) PEs, a hit flag register capable of performing a shift operation, a function sharing type register capable of operating as a pipeline register or a counter, A PE array device provided with n (n is a natural number of 2 or more) associative memory blocks having a control circuit, and a dedicated bus between blocks for connecting the associative memory blocks; One of a means for operating the shared function register as a pipeline register for data transfer between memory blocks, and a means for operating the shared function register as a counter for counting the number of hit flags This is a PE array device which is a circuit for selecting a means.

【0018】[0018]

【発明の実施の形態および実施例】図1は、本発明の一
実施例であるPEアレイ装置10の基本構成を示す図で
ある。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS FIG. 1 is a diagram showing a basic configuration of a PE array device 10 according to one embodiment of the present invention.

【0019】PEアレイ装置10は、図1(1)に示す
ように、n個(nは2以上の自然数)の連想メモリ(C
AM)ブロック20(1) 、20(2) 、……、20(n)
有し、各連想メモリブロック20(1) 、20(2) 、…
…、20(n) 間は、ブロック間専用バス14によって結
合されている。
As shown in FIG. 1A, the PE array device 10 includes n (n is a natural number of 2 or more) associative memories (C
AM) blocks 20 (1) , 20 (2) ,..., 20 (n) , and each associative memory block 20 (1) , 20 (2) ,.
.., 20 (n) are connected by a dedicated bus 14 between blocks.

【0020】連想メモリブロック20(1) は、図1
(2)に示すように、w個(wは任意の自然数)のPE
(ワード)24(1) 、24(2) 、……、24(n) で構成
され、このPEは、単一命令ストリーム・複数データス
トリーム方式(SIMD)のPEとして利用できるもの
である。なお、連想メモリブロック20(2) 、……、2
(n) のそれぞれの構成は、連想メモリブロック20
(1) の上記構成と同様である。したがって、PEアレイ
装置10全体では、n×w個のPE(プロセッシングエ
レメント)を有する。
The associative memory block 20 (1) is shown in FIG.
As shown in (2), w (w is an arbitrary natural number) PEs
(Word) 24 (1) , 24 (2) ,..., 24 (n) , and this PE can be used as a single instruction stream / multiple data stream (SIMD) PE. The associative memory block 20 (2) ,.
0 (n) are associated with the associative memory block 20.
This is the same as the above configuration of (1) . Therefore, the entire PE array device 10 has n × w PEs (processing elements).

【0021】連想メモリブロック20(1) は、図1
(2)に示すように、アドレスデコーダ22と、マスク
レジスタ23と、PE24(1) 、24(2) 、……、24
(n) と、ヒットフラグレジスタ25と、機能共有型レジ
スタ26と、制御部27と、制御線28と、パス切り替
え回路29とによって構成されている。
The associative memory block 20 (1) is shown in FIG.
As shown in (2), the address decoder 22, the mask register 23, and the PEs 24 ( 1) , 24 (2) ,.
(n) , a hit flag register 25, a function sharing type register 26, a control unit 27, a control line 28, and a path switching circuit 29.

【0022】上記のように、連想メモリブロック20
(2) 、……、20(n) の構成は、連想メモリブロック2
(1) の構成と同様であるので、以下では、これらを代
表して連想メモリブロック20として説明する。また、
PE24(1) 、24(2) 、……、24(n) を代表してP
E24として説明する。
As described above, associative memory block 20
The configuration of (2) ,..., 20 (n) is associative memory block 2
Since the configuration is the same as that of 0 (1) , the following description will be made as an associative memory block 20 as a representative. Also,
PE24 (1) , 24 (2) ,..., P on behalf of 24 (n)
This will be described as E24.

【0023】連想メモリブロック20は、データ入出力
ポート11から与える検索データと、PE24(1) 、2
(2) 、……、24(n) の内容とを並列に照合し、この
照合が一致したPEに対してヒットフラグを立てるマス
ク検索機能を有している。また、連想メモリブロック2
0は、ヒットフラグの立っているPEに対して、データ
入出力ポート11から与えるデータを並列に書き込む並
列部分書き込み機能をも有している。いずれの機能も、
処理するビットを、マスクレジスタ23によって限定す
ることができる。これらの機能を用いることによって、
加算を含む種々のデータ転送、論理、算術演算処理をワ
ード並列(word parallel )、ビット直列(bit seria
l)に実行することができる。
The associative memory block 20 stores the search data supplied from the data input / output port 11, the PE 24 (1) ,
4 (2) ,..., And 24 (n) are matched in parallel, and a mask search function is set to set a hit flag for the PEs that match. Also, the associative memory block 2
0 also has a parallel partial write function of writing data given from the data input / output port 11 in parallel to the PE on which the hit flag is set. Both features,
The bits to be processed can be limited by the mask register 23. By using these functions,
Various data transfer, including addition, logic, and arithmetic operations are performed in word parallel and bit serial
l) Can be performed.

【0024】また、連想メモリブロック20は、機能共
有型レジスタ26をカウンタとして動作させ、ヒットフ
ラグ制御線21を介して、ヒットフラグレジスタ25の
内容を順次シフトすることによって、ヒットフラグの数
をカウントする機能を有するものである。上記ヒットフ
ラグレジスタ25のカウント機能は、各連想メモリブロ
ック20で独立して動作させることができる。
The associative memory block 20 counts the number of hit flags by operating the shared function register 26 as a counter and sequentially shifting the contents of the hit flag register 25 via the hit flag control line 21. It has a function to perform. The count function of the hit flag register 25 can be operated independently in each associative memory block 20.

【0025】また、連想メモリブロック20は、パス切
り替え回路29によって、PE24からのパスを機能共
有型レジスタ26に切り替え、機能共有型レジスタ26
をパイプラインレジスタとして動作させる機能を有す
る。この機能を用いることによって、ブロック間専用バ
ス14を介して、隣接連想メモリブロック20間で、P
Eのデータを転送することができる。
The associative memory block 20 switches the path from the PE 24 to the shared function register 26 by the path switching circuit 29, and the shared function register 26
As a pipeline register. By using this function, P between adjacent associative memory blocks 20 via the inter-block dedicated bus 14
E data can be transferred.

【0026】機能共有型レジスタ26は、カウンタであ
りながら、レジスタ部を共有しているので、少ないハー
ド量によって、パイプラインレジスタとカウンタとを実
現することができる。機能共有型レジスタ26は、制御
線によってパイプラインレジスタとカウンタとが切り替
わり、F/Fを共有するものであり、ハード量を少なく
する場合、次のような機能記述によって実現している。
Since the shared function type register 26 is a counter and shares a register portion, a pipeline register and a counter can be realized with a small amount of hardware. The function sharing type register 26 switches between a pipeline register and a counter by a control line and shares an F / F. When the amount of hardware is reduced, the following function description is realized.

【0027】つまり、 出力=レジスタ; if制御線=0 レジスタ<=入力; else if制御線=1 レジスタ<=レジスタ+ヒットフラグのデータ; (つまり制御線が1で、かつ、ヒットフラグのデータ
(0か1)が1の時だけ、カウントアップする)という
機能記述によって、実現している。
That is, output = register; if control line = 0 register <= input; else if control line = 1 register <= register + hit flag data; (that is, the control line is 1 and the hit flag data ( Only when 0 or 1) is 1, the count is incremented).

【0028】制御回路27から出力され、制御線28を
経由する制御信号によって、上記ヒットフラグレジスタ
25のカウント機能とブロック間データ転送機能との2
つの機能が制御される。
The control signal output from the control circuit 27 and passed through the control line 28 allows the hit flag register 25 to perform a counting function and an inter-block data transferring function.
One function is controlled.

【0029】PEアレイ装置10は、プロセッサではな
いので、単独では動作しない。なお、連想メモリブロッ
ク20内の制御回路27は単なる命令デコーダである。
図2に示す命令シーケンスを、PEアレイ装置10の命
令入力ポート13に与えるシーケンサ(図示せず)を、
外部に設ける必要がある。
The PE array device 10 does not operate alone because it is not a processor. The control circuit 27 in the associative memory block 20 is a simple instruction decoder.
A sequencer (not shown) for giving the instruction sequence shown in FIG. 2 to the instruction input port 13 of the PE array device 10
It must be provided outside.

【0030】次に、PEアレイ装置10における全PE
(ワード)の加算処理手順について説明する。
Next, all PEs in the PE array device 10
The (word) addition processing procedure will be described.

【0031】図2は、上記実施例において、1つの連想
メモリ20を構成する全てのPEの内容を加算する処理
手順を示すフローチャートである。
FIG. 2 is a flowchart showing a processing procedure for adding the contents of all the PEs constituting one associative memory 20 in the above embodiment.

【0032】1つの連想メモリ20を構成する全てのP
E(ワード)の加算処理は、ブロック内加算(S10)
とブロック間加算(S20)とに分けて行われる。
All Ps constituting one associative memory 20
The addition process of E (word) is performed by adding in a block (S10).
And inter-block addition (S20).

【0033】まず、ブロック内加算処理(S10)にお
いて、検索マスクを設定する(S11)ことによって、
PEのビットの中で加算すべきデータが格納されている
ビット位置(1ビット)以外のビットをマスクする。そ
して、マスク検索を行い(S12)、各PEに格納され
ている加算すべきデータをヒットフラグレジスタ25に
転送する。
First, in the intra-block addition processing (S10), a search mask is set (S11), whereby
The bits other than the bit position (1 bit) where the data to be added are stored in the PE bits are masked. Then, a mask search is performed (S12), and the data to be added stored in each PE is transferred to the hit flag register 25.

【0034】次に、機能共有型レジスタ26をカウンタ
として動作させ、ヒットフラグレジスタ25をシフトす
ることによって、ヒットフラグの数をカウントする(S
13)。連想メモリブロック20に設けられているPE
の数Wと同じ数W回だけ、上記カウント処理を繰り返す
(S14)。また、各連想メモリブロック20におい
て、上記カウント処理を同時に実行する。最後に、機能
共有型レジスタ26に蓄えられた加算結果を所定のPE
24に書き込む(S15)。上記一連の処理によって、
各連想メモリブロック20毎にPEの加算結果を得るこ
とができる。
Next, the number of hit flags is counted by operating the function sharing type register 26 as a counter and shifting the hit flag register 25 (S
13). PE provided in the associative memory block 20
The above counting process is repeated the same number W times as the number W (S14). In each associative memory block 20, the above-described count processing is simultaneously executed. Finally, the addition result stored in the function sharing type register 26 is stored in a predetermined PE.
24 (S15). By the above series of processing,
An addition result of PE can be obtained for each associative memory block 20.

【0035】ブロック間加算処理(S20)において、
ブロック間転送を行い(S21)、ビットシリアル加算
を行い(S22)、ブロック間転送(S21)とビット
シリアル加算(S22)とを繰り返し、つまり、加算結
果が1つのPEに集約されるまで繰り返し(S23)、
上記連想メモリブロック毎の加算結果をツリー状に集約
しながら加算する。最後に、1つのPEに集約された加
算結果を、PEの読み出しによって、PEアレイ装置1
0の外部に取り出す(S24)。
In the inter-block addition process (S20),
Inter-block transfer is performed (S21), bit-serial addition is performed (S22), and inter-block transfer (S21) and bit-serial addition (S22) are repeated, that is, repeated until the addition result is aggregated in one PE ( S23),
The result of addition for each of the associative memory blocks is added while being aggregated in a tree shape. Finally, the addition results aggregated in one PE are read out of the PE to read the PE array device 1
0 (S24).

【0036】次に、ブロック間加算処理(S20)を詳
細に説明する。
Next, the inter-block addition processing (S20) will be described in detail.

【0037】図3は、上記実施例において、n=4であ
る場合におけるブロック間加算処理(S20)の例を示
す図である。
FIG. 3 is a diagram showing an example of the inter-block addition processing (S20) when n = 4 in the above embodiment.

【0038】ブロック間加算処理(S20)によって、
各連想メモリブロック20の所定のPE(ワード)に蓄
えられたブロック内加算結果A、B、C、Dのうち、加
算結果A、Cを、ブロック間転送によって、右側に隣接
する連想メモリブロック20が有するPEのうちで、加
算結果B、Dを格納しているPE(ワード)のそれぞれ
に転送する。
By the inter-block addition processing (S20),
Of the intra-block addition results A, B, C, and D stored in a predetermined PE (word) of each associative memory block 20, the addition results A and C are transferred to the right side of the associative memory block 20 by inter-block transfer. Are transferred to each of the PEs (words) storing the addition results B and D among the PEs included in.

【0039】この場合、機能共有型レジスタ26をパイ
プラインレジスタとして用い、ブロック間専用バス14
を介して、加算結果A、Cを転送する。次に、マスク検
索、並列部分書き込みの繰り返しによって、A+B(=
E)、C+D(=F)の加算を、ビットシリアルに実行
する。なお、上記転送処理、加算処理を、同時に実行す
るようにしてもよい。
In this case, the function sharing type register 26 is used as a pipeline register, and the dedicated bus 14 between blocks is used.
, The addition results A and C are transferred. Next, by repeating mask search and parallel partial writing, A + B (=
E), and addition of C + D (= F) is executed bit-serial. Note that the transfer processing and the addition processing may be performed simultaneously.

【0040】上記と同様に、加算結果Eのブロック間転
送を2度実行することによって、加算結果Fを格納して
いるPEに転送し、このようにマスク検索と並列部分書
き込みとを繰り返すことによって、加算結果E+F(=
G)をビットシリアルに計算する。この加算結果Gが、
1つの連想メモリ20を構成する全てのPEの加算結果
になる。
In the same manner as described above, the inter-block transfer of the addition result E is performed twice to transfer the addition result F to the PE in which the addition result F is stored, and the mask search and the parallel partial writing are repeated as described above. , The addition result E + F (=
G) is calculated bit-serial. This addition result G is
The result is the sum of all PEs that make up one associative memory 20.

【0041】最後に、PE読出し(ワードの読み出し)
によってPEアレイ装置10の外部に、加算結果Gを取
り出す。連想メモリ20の数nが増えた場合も、上記と
同様な手順によって、ブロック間加算処理(S20)を
実行することができる。
Finally, PE read (word read)
Then, the addition result G is taken out of the PE array device 10. Even when the number n of the associative memories 20 increases, the inter-block addition processing (S20) can be executed by the same procedure as described above.

【0042】ところで、従来のPEアレイ装置40にお
いては、上記のような全PE(ワード)の加算処理を実
行する場合、PEアレイ装置40の外部にプロセッサ等
を設け、1系統しかないデータ入出力ポート42を介し
て、PE毎に読み出し、上記外部のプロセッサ等を用い
て加算を繰り返し実行する必要がある。したがって、全
PE数と同数の処理サイクルが必要であり、処理時間が
長くなり、また、加算を実行するための特別な回路を、
PEアレイ装置40の外部に設ける必要がある。
Incidentally, in the conventional PE array device 40, when performing the above-described addition processing of all PEs (words), a processor or the like is provided outside the PE array device 40, and there is only one system of data input / output. It is necessary to read out for each PE via the port 42 and repeatedly execute addition using the external processor or the like. Therefore, the same number of processing cycles as the total number of PEs are required, the processing time is long, and a special circuit for performing the addition is required.
It must be provided outside the PE array device 40.

【0043】ところが、上記実施例においては、全PE
(ワード)数/nのサイクルで、ブロック内加算処理
(S10)を実行することができ、ブロック転送と加算
とを、log2n回、繰り返すサイクルによって、ブロック
間加算処理(S20)を実行することができる。したが
って、連想メモリ20の数nを増やした場合、従来例で
必要とする処理時間のほぼ1/nの処理時間で、加算処
理を終了することができる。
However, in the above embodiment, all PE
The intra-block addition processing (S10) can be executed in (word) number / n cycles, and the inter-block addition processing (S20) is executed in a cycle in which block transfer and addition are repeated log 2 n times. be able to. Therefore, when the number n of the associative memory 20 is increased, the addition processing can be completed in a processing time of about 1 / n of the processing time required in the conventional example.

【0044】つまり、図3に示す連想メモリブロック2
0の個数n=4である例において、ブロック間転送とビ
ットシリアル加算とを2回繰り返せば、ブロック毎の加
算結果の個数が4→2→1になる。これと同様に、n=
8である場合、ブロック間転送とビットシリアル加算と
を3回繰り返せば、ブロック毎の加算結果の個数が8→
4→2→1になり、n=16である場合、ブロック間転
送とビットシリアル加算とを4回繰り返すことによっ
て、ブロック毎の加算結果の個数が16→8→4→2→
1になる。つまり、ブロック間転送とビットシリアル加
算との繰り返し回数は、log2nで足りる。すなわち、ブ
ロック間加算処理は、nに対して、対数オーダの処理時
間で処理することができ、nを増やせば、ブロック間加
算処理時間は無視できる値になる。
That is, the associative memory block 2 shown in FIG.
In the example where the number of 0s is n = 4, if the inter-block transfer and the bit serial addition are repeated twice, the number of addition results for each block becomes 4 → 2 → 1. Similarly, n =
In the case of 8, if the inter-block transfer and the bit serial addition are repeated three times, the number of addition results per block becomes 8 →
4 → 2 → 1, and when n = 16, the inter-block transfer and the bit serial addition are repeated four times, so that the number of addition results per block is 16 → 8 → 4 → 2 →
Becomes 1. That is, the number of repetitions of the inter-block transfer and the bit serial addition is log 2 n. That is, the inter-block addition processing can be performed in a logarithmic-order processing time for n, and when n is increased, the inter-block addition processing time becomes a negligible value.

【0045】また、上記実施例においては、PEアレイ
装置10に外部装置を設けずに、PEアレイ装置10の
機能のみを用いて、連想メモリ20を構成する全PEの
データに対する加算処理を実行することができる。
In the above embodiment, the addition processing is performed on the data of all the PEs constituting the content addressable memory 20 using only the functions of the PE array device 10 without providing any external device in the PE array device 10. be able to.

【0046】上記実施例において、連想メモリブロック
20間をデータ転送するためのパイプラインレジスタ
(機能共有型レジスタ26)に、カウンタの機能を持た
せ、ヒットフラグレジスタ25のシフト出力を入力する
ことによって、ヒットフラグの数をカウントすることが
できる。これによって、各連想メモリブロック20毎
に、それを構成する全てのPEの加算結果を得ることが
できる。また、上記連想メモリブロック20毎の加算結
果は、ブロック間転送を用いてツリー状にデータを集約
しながら、加算処理を繰り返すことによって、最終的に
は、特定の連想メモリブロック20が有する1つのワー
ドに、全PEの加算データを集めることができる。この
加算データを読み出すことによって、外部に特別な追加
ハードを設けることなく、PEアレイ装置10を構成す
る全てのPEのデータの加算処理を、PEアレイ装置1
0内で実行することができる。
In the above embodiment, the pipeline register (function-shared register 26) for transferring data between the associative memory blocks 20 is provided with a counter function, and the shift output of the hit flag register 25 is input. , The number of hit flags can be counted. Thus, for each associative memory block 20, an addition result of all the PEs constituting the associative memory block 20 can be obtained. The addition result for each of the associative memory blocks 20 is obtained by repeating the addition process while aggregating the data in a tree shape using inter-block transfer, so that one of the specific associative memory blocks 20 is finally obtained. In a word, the addition data of all PEs can be collected. By reading this addition data, the addition processing of the data of all the PEs constituting the PE array apparatus 10 can be performed without providing any special additional hardware externally.
0 can be executed.

【0047】上記処理のうち、ヒットフラグのカウント
処理を、全ての連想メモリブロック20で並列に処理で
き、また連想メモリブロック20間の加算を、ツリー状
に集約しながら行うことによって、短時間で処理でき
る。したがって、従来のように、各PE(ワード)を1
つづつ読み出しながら加算処理する場合と比較すると、
全てのPEのデータの加算処理を短時間で実行すること
ができる。
Of the above processes, the hit flag counting process can be performed in parallel in all the associative memory blocks 20, and the addition between the associative memory blocks 20 is performed in a tree-like manner, thereby shortening the time. Can be processed. Therefore, as in the conventional case, each PE (word) is set to 1
Compared to the case of adding while reading one by one,
The addition processing of the data of all PEs can be executed in a short time.

【0048】[0048]

【発明の効果】本発明によれば、PEアレイ装置の外部
に特別な追加ハードを設けなくても、PEアレイ装置を
構成する全てのPEのデータを加算することができ、し
かも、その加算処理が高速であるという効果を奏する。
According to the present invention, it is possible to add the data of all the PEs constituting the PE array device without providing any special additional hardware outside the PE array device, and to perform the addition process. Is fast.

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

【図1】本発明の一実施例であるPEアレイ装置10の
基本構成を示す図である。
FIG. 1 is a diagram showing a basic configuration of a PE array device 10 according to one embodiment of the present invention.

【図2】上記実施例において、1つの連想メモリ20を
構成する全てのPEの内容を加算する処理手順を示すフ
ローチャートである。
FIG. 2 is a flowchart showing a processing procedure for adding contents of all PEs constituting one associative memory 20 in the embodiment.

【図3】上記実施例において、n=4である場合におけ
るブロック間加算処理(S20)の例を示す図である。
FIG. 3 is a diagram illustrating an example of an inter-block addition process (S20) when n = 4 in the embodiment.

【図4】従来のPEアレイ装置40を示す図である。FIG. 4 is a diagram showing a conventional PE array device 40.

【符号の説明】[Explanation of symbols]

10…PEアレイ装置、 14…ブロック間専用バス、 20…連想メモリブロック、 22…アドレスデコーダ、 23…マスクレジスタ、 24…PE(ワード)、 25…ヒットフラグレジスタ、 26…機能共有型レジスタ、 27…制御部、 29…パス切り替え回路。 DESCRIPTION OF SYMBOLS 10 ... PE array apparatus, 14 ... Bus between blocks, 20 ... Associative memory block, 22 ... Address decoder, 23 ... Mask register, 24 ... PE (word), 25 ... Hit flag register, 26 ... Function sharing type register, 27 ... Control unit, 29 ... Path switching circuit.

Claims (4)

【特許請求の範囲】[Claims] 【請求項1】 w個(wは任意の自然数)のPEと、シ
フト動作可能なヒットフラグレジスタと、パイプライン
レジスタまたはカウンタとして動作可能な機能共有型レ
ジスタと、制御回路とを有するn個(nは2以上の自然
数)の連想メモリブロックと;上記連想メモリブロック
間を結合するブロック間専用バスと;を有し、上記制御
回路は、上記連想メモリブロック間のデータ転送用のパ
イプラインレジスタとして、上記機能共有型レジスタを
動作させる手段と、ヒットフラグの数を数えるカウンタ
として、上記機能共有型レジスタを動作させる手段との
うちのいずれか一方の手段を選択する回路であることを
特徴とするPEアレイ装置。
1. A semiconductor device comprising: w (where w is an arbitrary natural number) PEs; a shift flag-operable hit flag register; a function-shared register operable as a pipeline register or a counter; n is a natural number of 2 or more); an inter-block dedicated bus for connecting the associative memory blocks; and the control circuit serves as a pipeline register for data transfer between the associative memory blocks. A circuit for selecting one of the means for operating the shared function register and the means for operating the shared function register as a counter for counting the number of hit flags. PE array device.
【請求項2】 w個(wは任意の自然数)のPEと;シ
フト動作可能なヒットフラグレジスタと;パイプライン
レジスタまたはカウンタとして動作可能な機能共有型レ
ジスタと;連想メモリブロック間のデータ転送用のパイ
プラインレジスタとして、上記機能共有型レジスタを動
作させる手段と、ヒットフラグの数を数えるカウンタと
して、上記機能共有型レジスタを動作させる手段とのう
ちのいずれか一方の手段を選択する制御回路と;を有す
ることを特徴とする連想メモリブロック。
2. w (where w is an arbitrary natural number) PEs; a hit flag register capable of a shift operation; a shared function register operable as a pipeline register or a counter; and a data transfer between associative memory blocks. A control circuit for selecting one of the means for operating the shared function register as a pipeline register and the means for operating the shared function register as a counter for counting the number of hit flags; and An associative memory block comprising:
【請求項3】 PEのビットの中で加算すべきデータが
格納されているビット位置以外のビットをマスクする検
索マスク設定段階と;各PEに格納されている加算すべ
きデータをヒットフラグレジスタに転送するマスク検索
段階と;機能共有型レジスタをカウンタとして動作さ
せ、上記ヒットフラグレジスタをシフトすることによっ
て、ヒットフラグの数をカウントするヒットフラグ数カ
ウント段階と;連想メモリブロックに設けられているP
Eの数と同じ数だけ、上記カウント段階を繰り返し、ま
た、各連想メモリブロックにおいて、上記カウント処理
を同時に実行するカウント繰り返し段階と;上記機能共
有型レジスタに蓄えられた加算結果を、所定のPEに書
き込む加算結果書き込み段階と;パイプラインレジスタ
として機能させた機能共有型レジスタを介してブロック
間のデータ転送を行うブロック間転送段階と、マスク検
索と並列部分書き込みとを繰り返すことによって実行す
るビットシリアル加算段階とを繰り返すことによって、
上記加算結果を1つの上記PEにツリー状に集約しなが
ら加算する集約加算段階と;上記1つのPEに集約され
た加算結果を、PEアレイ装置の外部に取り出す加算結
果取り出し段階と;を有することを特徴とするPEアレ
イ装置を用いた演算方法。
3. A search mask setting step of masking a bit other than a bit position where data to be added is stored among the bits of the PE; and storing the data to be added stored in each PE in a hit flag register. A mask search step for transferring; a hit flag number counting step for counting the number of hit flags by operating the function sharing type register as a counter and shifting the hit flag register; and a P provided in the associative memory block.
A count repetition step of repeating the count step by the same number as the number of E, and simultaneously executing the count processing in each associative memory block; and adding the addition result stored in the shared function register to a predetermined PE. An addition result writing step for writing data to a block; a block transfer step for transferring data between blocks via a shared function register functioning as a pipeline register; and a bit serial executed by repeating mask search and parallel partial writing. By repeating the addition step,
An aggregation addition step of adding the addition results to the one PE while collecting them in a tree form; and an addition result extracting step of extracting the addition results aggregated in the one PE to the outside of the PE array device. An operation method using a PE array device.
【請求項4】 w個(wは任意の自然数)のPEとシフ
ト動作可能なヒットフラグレジスタとパイプラインレジ
スタまたはカウンタとして動作可能な機能共有型レジス
タと制御回路とを有するn個(nは2以上の自然数)の
連想メモリブロックと、上記連想メモリブロック間を結
合するブロック間専用バスとを有し、上記制御回路は、
上記連想メモリブロック間のデータ転送用のパイプライ
ンレジスタとして、上記機能共有型レジスタを動作させ
る手段と、ヒットフラグの数を数えるカウンタとして、
上記機能共有型レジスタを動作させる手段とのうちのい
ずれか一方の手段を選択する回路であるPEアレイ装置
と;上記連想メモリブロック内の加算処理と上記連想メ
モリブロック間の加算処理とを制御するシークエンサ
と;を有し、上記PEアレイ装置と上記シークエンサと
が命令入力ポートで接続されていることを特徴とする超
並列型演算処理システム。
4. A semiconductor memory device comprising w (where w is an arbitrary natural number) PEs, a hit flag register capable of performing a shift operation, a function-shared register operable as a pipeline register or a counter, and a control circuit (n is 2). A natural number) associative memory block, and an inter-block dedicated bus for connecting the associative memory blocks.
As a pipeline register for data transfer between the associative memory blocks, means for operating the function-shared register, and a counter for counting the number of hit flags,
A PE array device which is a circuit for selecting one of the means for operating the function-sharing type register; and controlling addition processing in the associative memory block and addition processing between the associative memory blocks. And a sequencer, wherein the PE array device and the sequencer are connected by an instruction input port.
JP24195397A 1997-08-22 1997-08-22 PE array device and associative memory block Expired - Fee Related JP3627953B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24195397A JP3627953B2 (en) 1997-08-22 1997-08-22 PE array device and associative memory block

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24195397A JP3627953B2 (en) 1997-08-22 1997-08-22 PE array device and associative memory block

Publications (2)

Publication Number Publication Date
JPH1166033A true JPH1166033A (en) 1999-03-09
JP3627953B2 JP3627953B2 (en) 2005-03-09

Family

ID=17082036

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24195397A Expired - Fee Related JP3627953B2 (en) 1997-08-22 1997-08-22 PE array device and associative memory block

Country Status (1)

Country Link
JP (1) JP3627953B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007200090A (en) * 2006-01-27 2007-08-09 Renesas Technology Corp Semiconductor processor
JP2008524691A (en) * 2004-12-17 2008-07-10 エヌエックスピー ビー ヴィ Arithmetic / logical tree computation
US9129085B2 (en) 2011-07-21 2015-09-08 Renesas Electronics Corporation Memory controller and SIMD processor

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008524691A (en) * 2004-12-17 2008-07-10 エヌエックスピー ビー ヴィ Arithmetic / logical tree computation
US8326909B2 (en) 2004-12-17 2012-12-04 Nxp B.V. Arithmetic or logical operation tree computation
JP2007200090A (en) * 2006-01-27 2007-08-09 Renesas Technology Corp Semiconductor processor
US9129085B2 (en) 2011-07-21 2015-09-08 Renesas Electronics Corporation Memory controller and SIMD processor

Also Published As

Publication number Publication date
JP3627953B2 (en) 2005-03-09

Similar Documents

Publication Publication Date Title
EP3893123B1 (en) Hardware accelerated machine learning
KR100415417B1 (en) Image-processing processor
US7185224B1 (en) Processor isolation technique for integrated multi-processor systems
US11971846B2 (en) Logic unit for a reconfigurable processor
JPH04267466A (en) Parallel processing system and data comparing method
JPH0773149A (en) System and method for data processing
JPS62208158A (en) Multiprocessor system
US20100145992A1 (en) Address Generation Unit Using Nested Loops To Scan Multi-Dimensional Data Structures
JPH04128982A (en) Processor element, processing unit, processor, and method of processing operation
US7409529B2 (en) Method and apparatus for a shift register based interconnection for a massively parallel processor array
US11580055B2 (en) Devices for time division multiplexing of state machine engine signals
US20220391695A1 (en) Tensor dropout in a neural network
KR20070061538A (en) Interconnections in simd processor architectures
US20100146241A1 (en) Modified-SIMD Data Processing Architecture
US9003165B2 (en) Address generation unit using end point patterns to scan multi-dimensional data structures
JP7507304B2 (en) Clearing register data
JP3627953B2 (en) PE array device and associative memory block
US5192882A (en) Synchronization circuit for parallel processing
JP2019220003A (en) Data processing apparatus, data processing method, and program
US7263543B2 (en) Method for manipulating data in a group of processing elements to transpose the data using a memory stack
CN113841134A (en) Processing device with vector transformation execution
US8359455B2 (en) System and method for generating real addresses using a connection ID designating a buffer and an access pattern
RU2134448C1 (en) Homogeneous computing medium with double- layer programmable structure
JP3594212B2 (en) Associative memory
JP2655243B2 (en) Complex vector parallel computer

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20041203

A61 First payment of annual fees (during grant procedure)

Effective date: 20041203

Free format text: JAPANESE INTERMEDIATE CODE: A61

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071217

Year of fee payment: 3

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 4

Free format text: PAYMENT UNTIL: 20081217

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 5

Free format text: PAYMENT UNTIL: 20091217

LAPS Cancellation because of no payment of annual fees