JP4989899B2 - Semiconductor processing unit - Google Patents

Semiconductor processing unit Download PDF

Info

Publication number
JP4989899B2
JP4989899B2 JP2006018762A JP2006018762A JP4989899B2 JP 4989899 B2 JP4989899 B2 JP 4989899B2 JP 2006018762 A JP2006018762 A JP 2006018762A JP 2006018762 A JP2006018762 A JP 2006018762A JP 4989899 B2 JP4989899 B2 JP 4989899B2
Authority
JP
Japan
Prior art keywords
data
transfer
entry
entries
circuit
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.)
Expired - Fee Related
Application number
JP2006018762A
Other languages
Japanese (ja)
Other versions
JP2007200090A (en
Inventor
英行 野田
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2006018762A priority Critical patent/JP4989899B2/en
Publication of JP2007200090A publication Critical patent/JP2007200090A/en
Application granted granted Critical
Publication of JP4989899B2 publication Critical patent/JP4989899B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Static Random-Access Memory (AREA)
  • Microcomputers (AREA)
  • Memory System (AREA)

Description

この発明は、半導体演算処理装置に関し、特に、複数のエントリに分割される半導体メモリと、各エントリに対応して設けられる演算器とを有する半導体演算処理装置に関する。より特定的には、この発明は、半導体演算処理装置内において演算器間のデータ転送を小占有面積で高速に行なうための構成に関する。   The present invention relates to a semiconductor arithmetic processing apparatus, and more particularly to a semiconductor arithmetic processing apparatus having a semiconductor memory divided into a plurality of entries and an arithmetic unit provided corresponding to each entry. More specifically, the present invention relates to a configuration for performing high-speed data transfer between arithmetic units in a semiconductor arithmetic processing apparatus with a small occupation area.

近年の携帯端末機器の普及に伴い、音声および画像のような大量のデータを高速に処理するデジタル信号処理の重要性が高くなってきている。このデジタル信号処理には、一般に、専用の半導体装置としてDSP(デジタル・シグナル・プロセッサ)が用いられることが多い。フィルタ演算などのデータ処理においては、積和演算を繰返す演算処理が多い。したがって、一般に、DSPの構成においては、乗算回路、加算回路および累算用のレジスタが設けられる。このような専用のDSPを用いると、積和演算を1マシンサイクルで実行することが可能となり、高速演算処理が可能となる。   With the recent widespread use of portable terminal devices, the importance of digital signal processing for processing a large amount of data such as sound and images at a high speed has increased. In this digital signal processing, a DSP (digital signal processor) is often used as a dedicated semiconductor device in general. In data processing such as filter calculation, there are many calculation processes that repeat product-sum calculation. Therefore, in general, in the configuration of the DSP, a multiplication circuit, an addition circuit, and an accumulation register are provided. If such a dedicated DSP is used, the product-sum operation can be executed in one machine cycle, and high-speed operation processing is possible.

また、このような大量のデータに対し同じ演算を実行する画像処理などの用途において、SIMD(シングル・インストラクション・ストリーム・マルチプル・データ・ストリーム:Single Instruction Stream Multiple Data Stream)型プロセッサが用いられることも多い。このSIMD型プロセッサにおいては、複数のプロセッサエレメントが設けられ、これらの複数のプロセッサエレメントにおいて、同一の演算処理をそれぞれ異なるデータに対して実行する。したがって複数のプロセッサエレメントが並行して演算処理を実行するため、大量のデータを高速で処理することが可能である。   In addition, a SIMD (Single Instruction Stream Multiple Data Stream) type processor may be used in such applications as image processing for performing the same operation on a large amount of data. Many. In this SIMD type processor, a plurality of processor elements are provided, and the same arithmetic processing is executed for different data in each of the plurality of processor elements. Therefore, since a plurality of processor elements execute arithmetic processing in parallel, a large amount of data can be processed at high speed.

このようなSIMD型プロセッサにおいて、各プロセッサエレメントに対して、異なるデータを高速で格納することを図る構成が、特許文献1(特開2002−207707号公報に示されている。この特許文献1においては、グローバルプロセッサから、複数のデータバスを各プロセッサエレメントに対して配置する。各プロセッサエレメントは、これらの複数のデータバスのうちのどれかのデータバスを選択する信号を、プロセッサエレメント番号に従って形成し、対応のデータバスのデータを選択して、プロセッサエレメント内のAレジスタに格納する。特許文献1においては、画像処理におけるディザ処理において、各画素列に対応するしきい値を各列ごとにプロセッサエレメント内に格納して、ディザ処理におけるしきい値との比較動作を高速化することを図る。   In such a SIMD type processor, a configuration for storing different data at high speed for each processor element is disclosed in Japanese Patent Laid-Open No. 2002-207707. Allocates a plurality of data buses from the global processor to each processor element, and each processor element forms a signal for selecting one of the plurality of data buses according to the processor element number. Then, the data on the corresponding data bus is selected and stored in the A register in the processor element.In Patent Document 1, in the dither processing in the image processing, the threshold value corresponding to each pixel column is set for each column. Stored in the processor element and ratio to threshold in dither processing It aims to speed up the operation.

また、特許文献2(特開2001−84229号公報)においては、異なるデータビット幅に柔軟に対応してデータ処理を実行することを目的とするSIMD型プロセッサが開示されている。この特許文献2に示される構成においては、プロセッサエレメントをアドレス指定可能とし、このアドレス指定されたプロセッサエレメントの内部レジスタとデータ転送バスとの間でデータを転送する。また、このプロセッサエレメントは、レジスタファイルのレジスタと、演算器アレイの演算器とを有し、このレジスタファイル内のレジスタの数を、処理データビット幅に応じて調整することにより、処理データのビット幅変更に対応することを図る。   Patent Document 2 (Japanese Patent Application Laid-Open No. 2001-84229) discloses a SIMD type processor for executing data processing in a flexible manner corresponding to different data bit widths. In the configuration disclosed in Patent Document 2, the processor element can be addressed, and data is transferred between the internal register of the addressed processor element and the data transfer bus. The processor element has a register of the register file and an arithmetic unit of the arithmetic unit array. By adjusting the number of registers in the register file according to the processing data bit width, Try to accommodate width changes.

また、特許文献3(特開2002−207706号公報)は、少ない回路規模で、総和値演算およびピーク検出を行なうことを目的とするSIMD型プロセッサを開示する。この特許文献3に示される構成においては、プロセッサエレメントの演算器それぞれに対応して、マルチプレクサを設け、このマルチプレクサにより、レジスタファイルの対応のレジスタおよび対応のレジスタの7隣接列のいずれかを選択する。このマルチプレクサによ
り、演算データおよび演算結果データをプロセッサエレメント間で転送する。
Patent Document 3 (Japanese Patent Application Laid-Open No. 2002-207706) discloses a SIMD type processor aiming to perform summation calculation and peak detection with a small circuit scale. In the configuration shown in Patent Document 3, a multiplexer is provided corresponding to each of the processor elements of the processor element, and the multiplexer selects either the corresponding register of the register file or the seven adjacent columns of the corresponding register. . The multiplexer and the operation result data are transferred between the processor elements by this multiplexer.

この特許文献3においては、また、演算器と、共通データバスとを設け、この共通のデータバスを、所定数単位で分割し、各分割されたグループ内のプロセッサエレメントにおいて分割共通データバスを介してデータを転送して、総和値算出およびピーク値算出などの演算を高速に実行することを図る。   In this Patent Document 3, an arithmetic unit and a common data bus are provided, the common data bus is divided by a predetermined number unit, and the processor elements in each divided group are connected via the divided common data bus. Thus, the data is transferred, and calculations such as the sum value calculation and peak value calculation are executed at high speed.

また、特許文献4(特開2001−202351号公報)は、画像データ処理を、高速に実行することを目的とする構成を開示する。この特許文献4に示される構成においては、プロセッサエレメントをアドレス指定可能とし、グローバルプロセッサからアドレス信号に従ってプロセッサエレメントをアドレス指定してこのプロセッサエレメント内の演算レジスタにデータを格納する。必要なプロセッサエレメントに対してのみデータ転送を行うことによりデータ転送時間を短縮することを図る。   Japanese Patent Application Laid-Open No. 2001-202351 discloses a configuration for performing image data processing at high speed. In the configuration disclosed in Patent Document 4, a processor element can be addressed, the processor element is addressed in accordance with an address signal from a global processor, and data is stored in an arithmetic register in the processor element. Data transfer time is shortened by transferring data only to necessary processor elements.

また、特許文献5(特開2003−186854号公報)は、プロセッサエレメントの内部データを外部からモニタすることを目的とするSIMD型プロセッサを開示する。この特許文献5に示される構成においては、各プロセッサエレメントにおいて演算レジスタの内容を複写して格納するミラーレジスタを設け、プロセッサエレメントをアドレス指定することにより、このミラーレジスタに対し外部からアクセス可能とする。
特開2002−207707号公報 特開2001−84229号公報 特開2002−207706号公報 特開2001−202351号公報 特開2003−186854号公報
Patent Document 5 (Japanese Patent Laid-Open No. 2003-186854) discloses a SIMD type processor for the purpose of monitoring internal data of a processor element from the outside. In the configuration disclosed in Patent Document 5, a mirror register for copying and storing the contents of the operation register is provided in each processor element, and the mirror register can be accessed from the outside by addressing the processor element. .
JP 2002-207707 A JP 2001-84229 A JP 2002-207706 A JP 2001-202351 A JP 2003-186854 A

処理対象のデータ量が非常に多い場合には、専用のDSPを用いても、性能を飛躍的に向上させることは困難である。例えば、演算対象のデータが1万組ある場合、1つ1つのデータの組に対する演算を1マシンサイクルで実行することが出来たとしても、最低でも1万マシンサイクル必要となる。また、DSPを利用する場合、処理性能は動作周波数に大きく依存するため、高速処理を優先する場合、消費電力が増大する。   When the amount of data to be processed is very large, it is difficult to dramatically improve the performance even if a dedicated DSP is used. For example, if there are 10,000 sets of calculation target data, even if the calculation for each data set can be executed in one machine cycle, at least 10,000 machine cycles are required. Further, when using a DSP, the processing performance largely depends on the operating frequency, and therefore power consumption increases when priority is given to high-speed processing.

特許文献1に示されるSIMD型プロセッサにおいては、グローバルプロセッサから延びる複数のデータバスを設け、各プロセッサエレメント内において、そのプロセッサエレメント番号に応じてデータバスを選択して、選択データバスのデータをレジスタに格納する。これにより、画素アレイの画素位置に応じたしきい値データを対応のプロセッサエレメントに格納して、所定サイズの画素マトリクスに対してフィルタ処理を行う。グローバルプロセッサからのデータを、並行してプロセッサエレメントに転送して格納して、データ転送サイクル数を低減することを図る。   In the SIMD type processor shown in Patent Document 1, a plurality of data buses extending from the global processor are provided, and in each processor element, the data bus is selected according to the processor element number, and the data of the selected data bus is registered. To store. As a result, threshold data corresponding to the pixel position of the pixel array is stored in the corresponding processor element, and filter processing is performed on a pixel matrix of a predetermined size. Data from the global processor is transferred and stored in parallel to the processor element to reduce the number of data transfer cycles.

この特許文献1において、さらに、演算処理時において、プロセッサエレメントの演算データを、異なるプロセッサエレメント間で転送する場合、マルチプレクサを用いて、所定の範囲のプロセッサエレメント(±3隣接プロセッサエレメント)の間でデータ転送を行なう構成が示されている。このマルチプレクサにより、各プロセッサエレメントにおいて、異なる列のプロセッサエレメントのレジスタのデータを選択して演算処理を行なう。データ転送時各マルチプレクサにおいて選択経路を同じとするために、各プロセッサエレメントのレジスタファイルのレジスタの出力線が結合される共通データバス線が異なる(1つの列のレジスタを、7隣接演算器で択一的に使用するために、隣接列のレジスタが異なるバス線に接続される)。このレジスタファイルの出力信号線と共通データバスの接続
に応じて、各マルチプレクサと共通データバスのバス線との接続が変更される。このため、各プロセッサエレメント内においてマルチプレクサに対する配線が複雑となり、配線が錯綜するという問題が生じる。また、ある列のレジスタのデータを転送することの出来る範囲は、固定されており、任意のプロセッサエレメント間でのデータ転送を行う構成は示されていない。
In this Patent Document 1, in addition, when the arithmetic data of a processor element is transferred between different processor elements at the time of arithmetic processing, a multiplexer is used between processor elements (± 3 adjacent processor elements) in a predetermined range. A configuration for performing data transfer is shown. With this multiplexer, in each processor element, the data of the registers of the processor elements in different columns is selected to perform arithmetic processing. In order to make the selection path the same in each multiplexer during data transfer, the common data bus line to which the output line of the register of the register file of each processor element is coupled is different (one column register is selected by seven adjacent arithmetic units). For single use, adjacent column registers are connected to different bus lines). The connection between each multiplexer and the bus line of the common data bus is changed according to the connection between the output signal line of the register file and the common data bus. For this reason, the wiring for the multiplexer is complicated in each processor element, and the wiring is complicated. Further, the range in which the data of the register in a certain column can be transferred is fixed, and a configuration for transferring data between arbitrary processor elements is not shown.

特許文献2においては、データ転送を高速に行なうために、各プロセッサエレメントに選択信号を与え、選択されたプロセッサエレメントに対してデータの書込/読出を行なう。この特許文献2においても、レジスタファイル内のレジスタに対するデータの書込/読出を行なう構成に加えて、異なる列のプロセッサエレメント間のデータ転送時には、特許文献1と同様にマルチプレクサが用いられる。従って、内部の配線が錯綜するという問題が生じ、また、任意のプロセッサエレメント間でデータを転送することは困難である。   In Patent Document 2, in order to perform data transfer at high speed, a selection signal is given to each processor element, and data is written / read to / from the selected processor element. Also in this Patent Document 2, in addition to the configuration for writing / reading data to / from the register in the register file, a multiplexer is used in the same manner as in Patent Document 1 at the time of data transfer between processor elements in different columns. Therefore, there arises a problem that internal wiring is complicated, and it is difficult to transfer data between arbitrary processor elements.

特許文献3に示される構成においては、プロセッサエレメントに共通に設けられるデータバスを複数のセグメントに分割し、各分割データバスを介して演算器間でデータを転送する。しかしながら、この場合、1つのプロセッサエレメントから別のプロセッサエレメントに対するデータ転送が、各分割データバスにおいて実行されて、順次加算などの処理が行なわれており、各プロセッサエレメントが、有効な演算処理を各サイクルにおいて行なわれてはいない。従って、総和値演算またはピーク値演算などの処理においては適用することができるものの、通常のコピー操作などのデータ転送を行なって演算処理を行なう構成に対しては適用することは、困難である。また、この特許文献3においても、分割データバスのデータ線の選択は、マルチプレクサを用いて行なわれており、特許文献1および2と同様に、内部配線が錯綜するという問題が生じる。   In the configuration disclosed in Patent Document 3, a data bus provided in common to processor elements is divided into a plurality of segments, and data is transferred between arithmetic units via each divided data bus. However, in this case, data transfer from one processor element to another processor element is executed in each divided data bus and processing such as sequential addition is performed, and each processor element performs effective arithmetic processing. It is not done in the cycle. Therefore, although it can be applied to processing such as total value calculation or peak value calculation, it is difficult to apply to a configuration in which calculation processing is performed by performing data transfer such as a normal copy operation. Also in Patent Document 3, the selection of the data line of the divided data bus is performed by using a multiplexer, and similarly to Patent Documents 1 and 2, there is a problem that internal wiring is complicated.

また、特許文献4に示される構成においては、プロセッサエレメントをアドレス指定して、グローバルプロセッサのレジスタのデータを、選択されたプロセッサエレメント内のレジスタに転送している。しかしながら、この特許文献4においても、プロセッサエレメント間のデータ転送はマルチプレクサを用いて行なわれており、特許文献1から3と同良いうに内部配線が錯綜し、またデータの転送範囲が制限される。   In the configuration disclosed in Patent Document 4, the processor element is addressed, and the data of the global processor register is transferred to the register in the selected processor element. However, also in this Patent Document 4, data transfer between processor elements is performed using a multiplexer, the internal wiring is complicated as in Patent Documents 1 to 3, and the data transfer range is limited.

特許文献5に示される構成においては、単に、レジスタファイル内にミラーレジスタを設けて、外部からこのミラーレジスタのデータを、演算処理時においてもモニタすることを図っている。プロセッサエレメント間のデータ転送は、先の特許文献1から4と同様、マルチプレクサを用いて実行されているだけであり、内部配線が錯綜し、また、データ転送範囲が制限される。   In the configuration disclosed in Patent Document 5, a mirror register is simply provided in a register file, and data in the mirror register is monitored from the outside even during arithmetic processing. The data transfer between the processor elements is executed only by using a multiplexer as in the above-described Patent Documents 1 to 4, and the internal wiring is complicated, and the data transfer range is limited.

一般に、演算器が複数個設けられている並列演算器において、任意の演算器間でデータ転送を行なう場合、転送距離に応じて、各プロセッサエレメントの演算器にデータ転送配線を複数配置する必要があり、配線面積が増大する。この結果、上述の特許文献1から5に示されるように、レジスタファイルと演算器アレイとの間の配線占有面積が大きくなり、また配線レイアウトが錯綜するという問題が生じる。   In general, in a parallel arithmetic unit provided with a plurality of arithmetic units, when transferring data between arbitrary arithmetic units, it is necessary to arrange a plurality of data transfer wirings in the arithmetic units of each processor element according to the transfer distance. Yes, the wiring area increases. As a result, as shown in Patent Documents 1 to 5 described above, there are problems that the wiring occupation area between the register file and the arithmetic unit array becomes large and the wiring layout is complicated.

それゆえ、この発明の目的は、任意の演算器間でデータを高速に転送することのできる小占有面積の転送回路を備える半導体演算処理装置を提供することである。   SUMMARY OF THE INVENTION Therefore, an object of the present invention is to provide a semiconductor arithmetic processing apparatus including a transfer circuit having a small occupation area that can transfer data between arbitrary arithmetic units at high speed.

この発明の特定的な目的は、メモリアレイが複数のエントリに分割され、各エントリに対応して演算器が設けられる半導体演算処理装置において、この演算器間またはエントリ間でのデータ転送を配線面積の増大を伴うことなく高速で行なうことの出来る転送回路を実現することである。   A specific object of the present invention is to provide a wiring area for transferring data between arithmetic units or between entries in a semiconductor processing unit in which a memory array is divided into a plurality of entries and an arithmetic unit is provided for each entry. It is to realize a transfer circuit that can be performed at a high speed without increasing the number of.

この発明に係る半導体演算処理装置は、各々が複数のメモリセルを有する複数のエントリに分割されるメモリアレイと、これらのエントリに対応して配置され、各々が与えられたデータに対して演算処理を行なう複数の演算器と、複数のエントリ間でデータを転送する転送回路を含む。この転送回路は、エントリに対応して配置され、各々が対応のエントリのデータを異なる複数の別のエントリのいずれかに転送する複数の転送配線経路を備える。各転送配線経路は、対応のエントリのデータを受けて出力するデータ出力部と、異なる複数の別のエントリに結合される複数のデータ送出部とを有する。転送データが、各転送配線経路においてデータ出力部からデータ送出部に向かって転送される。   A semiconductor arithmetic processing apparatus according to the present invention includes a memory array that is divided into a plurality of entries each having a plurality of memory cells, and arranged corresponding to these entries, each of which performs arithmetic processing on given data. And a transfer circuit for transferring data between a plurality of entries. The transfer circuit includes a plurality of transfer wiring paths that are arranged corresponding to the entries and each transfer data of the corresponding entry to one of a plurality of different different entries. Each transfer wiring path includes a data output unit that receives and outputs data of a corresponding entry, and a plurality of data transmission units coupled to different different entries. The transfer data is transferred from the data output unit toward the data transmission unit in each transfer wiring path.

エントリ間でのデータ転送に、転送経路用いる。この転送経路は、各々が、対応のエントリのデータと複数の別のエントリへのデータを転送するデータ送出部とを有する。したがって、データ送出部を各転送経路において選択することにより、複数のエントリ間において並行してデータ転送を行なうことができ、高速データ転送を実現することができる。   A transfer path is used for data transfer between entries. Each of the transfer paths includes data of a corresponding entry and a data transmission unit that transfers data to a plurality of different entries. Therefore, by selecting the data transmission unit in each transfer path, data transfer can be performed in parallel between a plurality of entries, and high-speed data transfer can be realized.

また、各転送経路においてデータ出力部とデータ送出部とを個々別々に設けることにより、マルチプレクサを用いてデータ転送経路を設定する構成に比べて配線レイアウトが簡略化される。   In addition, by providing the data output unit and the data transmission unit separately in each transfer path, the wiring layout is simplified compared to a configuration in which the data transfer path is set using a multiplexer.

また、この転送経路を介してエントリ間で順次データを転送することにより、任意の距離はなれたエントリ間でのデータ転送を実現することが出来る。   Also, by sequentially transferring data between entries via this transfer path, data transfer between entries separated by an arbitrary distance can be realized.

[全体の構成]
図1は、この発明に従う半導体演算処理装置が適用される処理システムの全体構成を概略的に示す図である。図1において、信号処理システム1は、各種処理を実行する演算機能を実現するシステムLSI2と、システムLSI2と外部システムバス3を介して接続される外部メモリとを含む。この外部メモリは、大容量メモリ4と、高速メモリ5と、システム立上げ時の命令などの固定情報を格納する読出専用メモリ(リード・オンリー・メモリ:ROM)6を含む。大容量メモリ4は、たとえばクロック同期型ダイナミック・ランダム・アクセス・メモリ(SDRAM)で構成され、高速メモリ5は、たとえばスタティック・ランダム・アクセス・メモリ(SRAM)で構成される。
[Overall configuration]
FIG. 1 is a diagram schematically showing an overall configuration of a processing system to which a semiconductor processing device according to the present invention is applied. In FIG. 1, the signal processing system 1 includes a system LSI 2 that realizes an arithmetic function for executing various processes, and an external memory connected to the system LSI 2 via an external system bus 3. The external memory includes a large-capacity memory 4, a high-speed memory 5, and a read-only memory (read-only memory: ROM) 6 that stores fixed information such as instructions at the time of system startup. The large-capacity memory 4 is composed of, for example, a clock synchronous dynamic random access memory (SDRAM), and the high-speed memory 5 is composed of, for example, a static random access memory (SRAM).

システムLSI2は、内部システムバス7に並列に結合される基本演算ブロックFB1−FBhと、これらの基本演算ブロックFB1−FBhの処理動作を制御するホストCPU8と、信号処理システム1の外部からの入力信号INを内部処理用データに変換する入力ポート9と、内部システムバス7から与えられた内部出力データを受けて、システム外部への出力データOUTを生成する出力ポート10を含む。これらの入力ポート9および出力ポート10は、たとえばライブラリ化されたIP(インテレクチャル・プロパティ)ブロックで構成され、データ/信号の入出力に必要な機能を実現する。   The system LSI 2 includes basic operation blocks FB1 to FBh coupled in parallel to the internal system bus 7, a host CPU 8 that controls processing operations of these basic operation blocks FB1 to FBh, and input signals from the outside of the signal processing system 1. It includes an input port 9 that converts IN to internal processing data, and an output port 10 that receives internal output data given from the internal system bus 7 and generates output data OUT to the outside of the system. These input port 9 and output port 10 are constituted by, for example, library IP (intellectual property) blocks, and realize functions necessary for data / signal input / output.

システムLSI2は、さらに、基本演算ブロックFB1−FBhからの割込要求を受付け、ホストCPU8に対して割込を通知する割込コントローラ11と、ホストCPU8の各処理に必要な制御動作を行なうCPU周辺12と、基本演算ブロックFB1−FBhからの転送要求に従って外部メモリに対するデータ転送を行なうDMA(ダイレクト・メモリ・アクセス)コントローラ13と、ホストCPU8またはDMAコントローラ13からの指示に従って、外部システムバス3に接続されるメモリ4−6に対するアクセス制御を行なう外部バスコントローラ14と、ホストCPU8のデータ処理を補助する専用ロジック15とを含む。   The system LSI 2 further receives an interrupt request from the basic operation blocks FB1 to FBh, notifies the host CPU 8 of the interrupt, and a CPU peripheral that performs a control operation necessary for each processing of the host CPU 8. 12, a DMA (direct memory access) controller 13 for transferring data to an external memory in accordance with a transfer request from the basic operation blocks FB1 to FBh, and an external system bus 3 in accordance with an instruction from the host CPU 8 or the DMA controller 13 The external bus controller 14 that performs access control to the memory 4-6 and the dedicated logic 15 that assists the data processing of the host CPU 8 are included.

CPU周辺12は、タイマおよびシリアルIO(入出力)などのホストCPU8におけるプログラムおよびデバッグの用途に必要な機能を備える。専用ロジック15は、たとえばIPブロックで構成され、既存の機能ブロックを用いて必要な処理機能を実現する。これらの機能ブロック9−15は、内部システムバス7に接続される。また、DMAコントローラ13には、基本演算ブロックFB1−FBhからのDMA要求信号が与えられる。   The CPU peripheral 12 has functions necessary for program and debugging purposes in the host CPU 8 such as a timer and serial IO (input / output). The dedicated logic 15 is configured by, for example, an IP block, and implements a necessary processing function using an existing function block. These functional blocks 9-15 are connected to the internal system bus 7. The DMA controller 13 is given a DMA request signal from the basic operation blocks FB1-FBh.

基本演算ブロックFB1−FBhは、同一構成を有するため、図1においては、基本演算ブロックFB1の構成を代表的に示す。   Since basic operation blocks FB1-FBh have the same configuration, FIG. 1 representatively shows the configuration of basic operation block FB1.

基本演算ブロックFB1は、実際のデータの演算処理を行なう主演算回路20と、この主演算回路20における演算処理を指定するマイクロ命令を格納するマイクロ命令メモリ21と、マイクロ命令メモリ21からのマイクロ命令に従って主演算回路20の演算処理を制御するコントローラ22と、コントローラ22の中間処理データまたは作業データを格納するワークデータメモリ23と、基本演算ブロックFB1の内部と内部システムバス7との間でデータ/信号の転送を行なうシステムバスインターフェイス(I/F)24とを含む。   The basic arithmetic block FB1 includes a main arithmetic circuit 20 that performs arithmetic processing on actual data, a microinstruction memory 21 that stores microinstructions that specify arithmetic processing in the main arithmetic circuit 20, and a microinstruction from the microinstruction memory 21. Controller 22 for controlling the arithmetic processing of the main arithmetic circuit 20, the work data memory 23 for storing intermediate processing data or work data of the controller 22, and the data / data between the basic arithmetic block FB1 and the internal system bus 7. And a system bus interface (I / F) 24 for transferring signals.

主演算回路20は、複数のメモリセルが行列状に配列されかつ複数のエントリに分割されるメモリセルマット30と、メモリセルマット30のエントリに対応して配置され、指定された演算処理を行なう演算器(ALU)31と、演算器31間のデータ転送経路を設定するALU間相互接続用スイッチ回路32を含む。   The main arithmetic circuit 20 is arranged corresponding to the memory cell mat 30 in which a plurality of memory cells are arranged in a matrix and divided into a plurality of entries, and the entry of the memory cell mat 30 is performed. An arithmetic unit (ALU) 31 and an ALU interconnection switch circuit 32 for setting a data transfer path between the arithmetic units 31 are included.

基本的に、1エントリに多ビットデータの各ビットが格納される。演算器(ALU)31は、対応のエントリからのデータビットをシリアルに受けて演算処理を行ない、その処理結果をメモリセルマット30の指定されたエントリ(たとえば対応のエントリ)にシリアルに格納する。   Basically, each bit of multi-bit data is stored in one entry. The arithmetic unit (ALU) 31 receives the data bits from the corresponding entry in serial and performs arithmetic processing, and stores the processing result serially in a designated entry (for example, corresponding entry) of the memory cell mat 30.

ALU間相互接続用スイッチ回路32により、演算器31の接続経路が切換えられ、異なったエントリのデータの演算が可能となる。各エントリに異なるデータを格納し、演算器31により並列演算処理を行なうことにより、高速にデータ処理を行なうことができる。   The inter-ALU interconnection switch circuit 32 switches the connection path of the arithmetic unit 31 and enables calculation of data of different entries. By storing different data in each entry and performing parallel arithmetic processing by the arithmetic unit 31, data processing can be performed at high speed.

コントローラ22は、マイクロ命令メモリ21に格納されるマイクロ命令に従って、マイクロプログラム方式に従った動作を行なう。このマイクロプログラム動作に必要なワークデータが、ワークデータメモリ23に格納される。   The controller 22 performs an operation according to the microprogram method in accordance with the microinstruction stored in the microinstruction memory 21. Work data necessary for this microprogram operation is stored in the work data memory 23.

システムバスI/F24により、ホストCPU8またはDMAコントローラ13が、メモリセルマット30、コントローラ22内の制御レジスタ、マイクロ命令メモリ21およびワークデータメモリ23へアクセスすることが可能となる。   The system bus I / F 24 enables the host CPU 8 or the DMA controller 13 to access the memory cell mat 30, the control register in the controller 22, the microinstruction memory 21, and the work data memory 23.

基本演算ブロックFB1−FBhには、異なるアドレス領域(CPUアドレス領域)が割付けられる。同様、基本演算ブロックFB1−FBh内のメモリセルマット30、コントローラ22内の制御レジスタ、マイクロ命令メモリ21、およびワークデータメモリ23についても、それぞれ異なるアドレス(CPUアドレス)が割付けられる。したがって、これらの基本演算ブロックFB1−FBhそれぞれにおいて、異なる内容のマイクロ命令を格納することにより、異なる演算処理を並行して実行することができる。また、基本演算ブロックFB1−FBhにおいて、異なるアドレス領域のデータについて同一の演算処理が行なわれるように、マイクロ命令メモリ21に同一の演算内容のマイクロ命令が格納されてもよい。また、マイクロ命令メモリ21においては、マイクロ命令が格納される
ものの、マクロ命令が格納されていても良い。
Different address areas (CPU address areas) are allocated to the basic operation blocks FB1 to FBh. Similarly, different addresses (CPU addresses) are assigned to the memory cell mat 30 in the basic operation blocks FB1 to FBh, the control register in the controller 22, the microinstruction memory 21, and the work data memory 23, respectively. Therefore, different arithmetic processes can be executed in parallel by storing microinstructions having different contents in each of these basic arithmetic blocks FB1-FBh. In the basic operation blocks FB1 to FBh, microinstructions having the same operation content may be stored in the microinstruction memory 21 so that the same operation processing is performed on data in different address areas. The microinstruction memory 21 may store microinstructions but may store macroinstructions.

各割付けられたアドレスに従って、ホストCPU8およびDMAコントローラ13が、アクセス対象の基本演算ブロックFBi(FB1−FBhのいずれか)を識別し、該アクセス対象の基本演算ブロックに対するアクセスを実行する。   According to each assigned address, the host CPU 8 and the DMA controller 13 identify the basic arithmetic block FBi to be accessed (any one of FB1 to FBh) and execute access to the basic arithmetic block to be accessed.

図2は、図1に示す基本演算ブロックFB1−FBhそれぞれに含まれる主演算回路20の要部の構成を概略的に示す図である。図2において、メモリセルマット30において、メモリセルMCが行列状に配列される。このメモリセルマットは、m個のエントリERYに分割される。エントリERYがnビットのビット幅を有する。このメモリセルマット30においては、m個のエントリERYに共通にワード線が配設され、各エントリ個々に、ビット線が配設される。基本的に、1つのエントリERYは、この1列(ビット線延在方向)に整列するメモリセルMCで構成される。したがって、エントリERYの数は、メモリセルマットのビット線の数で決定される。   FIG. 2 schematically shows a configuration of a main part of main arithmetic circuit 20 included in each of basic arithmetic blocks FB1-FBh shown in FIG. In FIG. 2, in the memory cell mat 30, memory cells MC are arranged in a matrix. This memory cell mat is divided into m entries ERY. The entry ERY has a bit width of n bits. In this memory cell mat 30, a word line is provided in common for m entries ERY, and a bit line is provided for each entry. Basically, one entry ERY is composed of memory cells MC aligned in this one column (bit line extending direction). Therefore, the number of entries ERY is determined by the number of bit lines of the memory cell mat.

エントリERYそれぞれに対応して、演算器(ALU)31が、演算処理ユニット35において配置される。この演算器31は、加算、論理積、一致検出(EXOR)、および反転(NOT)などの演算を実行することができる。   Corresponding to each entry ERY, an arithmetic unit (ALU) 31 is arranged in the arithmetic processing unit 35. The computing unit 31 can perform operations such as addition, logical product, coincidence detection (EXOR), and inversion (NOT).

エントリERYと対応の演算器31との間でのデータのロード(メモリセルマット30から演算処理ユニット35へのデータの転送)およびストア(演算処理ユニット35からメモリセルマット30へのデータの転送および格納)を行なって演算処理を実行する。エントリERYには、多ビットデータの各ビットが格納される。   Data load (transfer of data from the memory cell mat 30 to the arithmetic processing unit 35) and store (data transfer from the arithmetic processing unit 35 to the memory cell mat 30) and between the entry ERY and the corresponding arithmetic unit 31 Store) to execute the arithmetic processing. Each bit of the multi-bit data is stored in the entry ERY.

演算器ユニット35に対してALU相互接続用スイッチ回路32が配置される。このALU相互接続用スイッチ回路32により演算器31間のデータ転送を実現する。   An ALU interconnection switch circuit 32 is arranged for the arithmetic unit 35. This ALU interconnection switch circuit 32 realizes data transfer between the arithmetic units 31.

演算器31は、ビットシリアルな態様(多ビットデータワードをビット単位で逐次処理する態様)で演算処理を実行する。演算処理ユニット35においては、データワードについてビットシリアル態様でかつ複数のエントリERYのデータが並行して処理されるエントリパラレルな態様でデータの演算処理が実行される。   The arithmetic unit 31 performs arithmetic processing in a bit serial mode (a mode in which multi-bit data words are sequentially processed in units of bits). In the arithmetic processing unit 35, the data arithmetic processing is executed in a bit serial manner with respect to the data word and in an entry parallel manner in which the data of the plurality of entries ERY are processed in parallel.

このエントリERYのビット幅を変更することにより、データワードの語構成が異なる場合においても、演算サイクル数(アドレスポインタの範囲)を変更するだけで、データ処理を実行することができる。また、エントリ数mを多くすることにより、大量のデータを一括して演算処理することができる。   By changing the bit width of this entry ERY, data processing can be executed only by changing the number of operation cycles (range of address pointer) even when the word structure of the data word is different. Further, by increasing the number of entries m, a large amount of data can be collectively processed.

メモリセルMCは、たとえばCMOS(相補金属‐絶縁膜‐半導体)構成のSRAMセルで構成され、高速でデータの書込/読出を行なう。また、メモリセルMCとして、SRAMセルを利用することにより、メモリセルマット30において記憶データのリフレッシュを行なう必要がなく、動作制御が容易となり、演算処理を高速で実行することができる。   Memory cell MC is formed of, for example, an SRAM cell having a CMOS (complementary metal-insulating film-semiconductor) structure, and performs data writing / reading at high speed. Further, by using an SRAM cell as the memory cell MC, it is not necessary to refresh the stored data in the memory cell mat 30, operation control is facilitated, and arithmetic processing can be executed at high speed.

主演算回路20において演算を行なう場合には、基本的に、先ず、エントリERY各々に演算対象のデータを格納する。次いで、格納されたデータのある桁のビットをすべてのエントリERYについて並列に読出して、対応の演算器31へ転送(ロード)する。二項演算の場合には、各エントリERYにおいて、別のデータワードのビットに対しても同様の転送を行なった後、各演算器31において2入力演算を行なう。この演算処理結果は、演算器31から対応のエントリERY内の所定の領域に再書込(ストア)される。   When the main arithmetic circuit 20 performs an operation, basically, data to be calculated is first stored in each entry ERY. Next, a certain digit of the stored data is read in parallel for all the entries ERY and transferred (loaded) to the corresponding arithmetic unit 31. In the case of binary operation, the same transfer is performed for bits of another data word in each entry ERY, and then 2-input operation is performed in each calculator 31. The calculation processing result is rewritten (stored) from the calculator 31 in a predetermined area in the corresponding entry ERY.

図3は、図2に示す主演算回路20における演算操作の一例を模式的に示す図である。図3において、2ビット幅のデータワードaおよびbの加算を行なって、データワードcを生成する。エントリERYには、演算対象の組をなすデータワードaおよびbがともに格納される。   FIG. 3 is a diagram schematically showing an example of the arithmetic operation in the main arithmetic circuit 20 shown in FIG. In FIG. 3, data words a and b having a 2-bit width are added to generate data word c. The entry ERY stores both data words a and b that form a set to be calculated.

図3において、第1行目のエントリERYに対する演算器31においては、10B+01Bの加算が行なわれ、2行目のエントリERYに対する演算器31においては、00B+11Bの演算が行なわれる。ここで、末尾の“B”は、2進数を示す。3行目のエントリERYに対する演算器31においては、11B+10Bの演算が行なわれる。同様に、エントリERY各々に格納されたデータワードaおよびbの加算が実行される。   In FIG. 3, the calculator 31 for the entry ERY in the first row adds 10B + 01B, and the calculator 31 for the entry ERY in the second row calculates 00B + 11B. Here, “B” at the end indicates a binary number. In the calculator 31 for the entry ERY in the third row, the calculation of 11B + 10B is performed. Similarly, addition of data words a and b stored in each entry ERY is executed.

演算は、下位側ビットから順にビットシリアル態様で行なわれる。また、エントリERYにおいてデータワードaの下位ビットa[0]を対応の演算器31へ転送する。次いで、データワードbの下位ビットb[0]を対応の演算器31へ転送する。演算器31においては、これらの与えられた2ビットデータを用いて加算演算を行なう。この加算演算結果a[0]+b[0]は、データワードcの下位ビットc[0]の位置に書込まれる(ストアされる)。すなわち、1行目のエントリERYにおいて、“1”が、ビットc[0]の位置に書込まれる。   The calculation is performed in a bit serial manner in order from the lower bit. In addition, the lower bit a [0] of the data word a is transferred to the corresponding arithmetic unit 31 in the entry ERY. Next, the lower bit b [0] of the data word b is transferred to the corresponding computing unit 31. The arithmetic unit 31 performs an addition operation using these given 2-bit data. This addition operation result a [0] + b [0] is written (stored) at the position of the lower bit c [0] of the data word c. That is, “1” is written at the position of bit c [0] in entry ERY in the first row.

この加算処理は、次いで、上位ビットa[1]およびb[1]に対しても行ない、その演算結果a[1]+b[1]がビットc[1]の位置に書込まれる。   This addition processing is then performed for the upper bits a [1] and b [1], and the operation result a [1] + b [1] is written at the position of bit c [1].

加算演算においては、桁上がりが生じる可能性がある。この桁上がり(キャリー)の値が、ビットc[2]の位置に書込まれる。これにより、データワードaおよびbの加算が、すべてのエントリERYにおいて完了し、その結果が、データcとして各エントリERYにおいて格納される。エントリとして、たとえば1024エントリを準備した場合、1024組のデータの加算を並列に実行することができる。   A carry may occur in the addition operation. This carry value is written at the position of bit c [2]. Thereby, the addition of the data words a and b is completed in all the entries ERY, and the result is stored as data c in each entry ERY. For example, when 1024 entries are prepared as entries, 1024 sets of data can be added in parallel.

図4は、この加算演算処理時における内部タイミングを模式的に示す図である。以下、図4を参照して、加算演算の内部タイミングについて説明する。この加算演算処理においては、演算器31に含まれる2ビット加算器(ADD)が利用される。   FIG. 4 is a diagram schematically showing the internal timing during the addition calculation process. Hereinafter, the internal timing of the addition operation will be described with reference to FIG. In this addition calculation process, a 2-bit adder (ADD) included in the calculator 31 is used.

図4において、“Read”は、メモリセルマット30から演算対象のデータビットを読出して対応の演算器に転送する動作(ロード)または動作命令を示し、“Write”は、演算器31の演算結果データを対応のエントリERYの対応のビット位置に書込む動作(ストア)または動作命令を示す。   In FIG. 4, “Read” indicates an operation (load) or operation instruction for reading the data bit to be calculated from the memory cell mat 30 and transferring it to a corresponding arithmetic unit, and “Write” indicates an operation result of the arithmetic unit 31. Indicates an operation (store) or operation instruction for writing data to a corresponding bit position of a corresponding entry ERY.

マシンサイクルkにおいて、データビットa[i]がメモリセルマット30から読出され、次のマシンサイクル(k+1)で、次の演算対象のデータビットb[i]が読出され(Read)、演算器31の加算器(ADD)にそれぞれ与えられる。   In the machine cycle k, the data bit a [i] is read from the memory cell mat 30, and in the next machine cycle (k + 1), the next operation target data bit b [i] is read (Read). To the adder (ADD).

マシンサイクル(k+2)において、演算器31の加算器(ADD)において、読出されたデータビットa[i]およびb[i]の加算処理が行なわれる。マシンサイクル(k+3)において、この加算結果c[i]が、対応のエントリの対応のビット位置に書込まれる。   In the machine cycle (k + 2), the adder (ADD) of the arithmetic unit 31 performs addition processing of the read data bits a [i] and b [i]. In the machine cycle (k + 3), this addition result c [i] is written in the corresponding bit position of the corresponding entry.

次のマシンサイクル(k+4)および(k+5)において、次の演算対象のデータビットa[i+1]およびb[i+1]が読出され、演算器31の加算器(ADD)へ転送される。マシンサイクル(k+6)において、演算器31により加算処理が行なわれ、マシンサイクル(k+7)において、加算結果がビット位置c[i+1]へ格納される。   In the next machine cycles (k + 4) and (k + 5), the next operation target data bits a [i + 1] and b [i + 1] are read and transferred to the adder (ADD) of the arithmetic unit 31. In the machine cycle (k + 6), addition processing is performed by the arithmetic unit 31, and the addition result is stored in the bit position c [i + 1] in the machine cycle (k + 7).

メモリセルマット30と演算器31の間のデータビットの転送に、それぞれ1マシンサイクルが必要とされ、演算器31において1マシンサイクルの演算サイクルが必要とされる。したがって、1ビットデータの加算および加算結果の格納を行なうために、4マシンサイクルが必要となる。メモリセルマット30を、複数のエントリERYに分割し、各エントリに演算対象データの組をそれぞれ格納し、対応の演算器31においてビットシリアル態様で演算処理を行なう方式の特徴は、1つ1つのデータ演算には、比較的多くのマシンサイクルが必要とされるものの、処理すべきデータ量が非常に多い場合には、演算の並列度を高くすることにより高速データ処理を実現することができるということである。   Transfer of data bits between the memory cell mat 30 and the arithmetic unit 31 requires one machine cycle, and the arithmetic unit 31 requires one machine cycle. Therefore, 4 machine cycles are required to add 1-bit data and store the addition result. The memory cell mat 30 is divided into a plurality of entries ERY, a set of data to be calculated is stored in each entry, and a calculation process is performed in a bit serial manner in the corresponding calculator 31. Although data operations require a relatively large number of machine cycles, if the amount of data to be processed is very large, high-speed data processing can be realized by increasing the parallelism of the operations. That is.

たとえば、演算対象のデータワードのビット幅がNの場合、各エントリの演算には、4・Nマシンサイクルが必要となる。演算対象のデータワードのビット幅は、8ビットから64ビット程度である。エントリ数mを、たとえば1024と大きくすることにより、並列演算処理時に、たとえば8ビットデータの場合、32マシンサイクルで1024個の演算結果を得ることができ、1024組のデータをシーケンシャルに処理する場合に比べて大幅に処理時間を短縮することができる。   For example, when the bit width of the data word to be operated is N, 4 · N machine cycles are required for the operation of each entry. The bit width of the data word to be calculated is about 8 to 64 bits. When the number of entries m is increased to, for example, 1024, for example, in the case of 8-bit data, 1024 operation results can be obtained in 32 machine cycles, and 1024 sets of data are processed sequentially. The processing time can be greatly shortened compared to.

また、ビットシリアル態様で演算処理を行なっており、処理されるデータのビット幅は固定されないため、種々のデータ構成を有する種々のアプリケーションに容易に適用することができる。   In addition, since the arithmetic processing is performed in the bit serial form and the bit width of the processed data is not fixed, it can be easily applied to various applications having various data configurations.

図5は、図1に示すコントローラ22の制御態様を概略的に示す図である。このコントローラ22に対応して、レジスタ群40が設けられる。このレジスタ群40においては、ポインタレジスタr0−r3が設けられる。演算対象のデータのメモリセルマット30内のアドレスが、これらのポインタレジスタr0−r3に格納される。コントローラ22は、このポインタレジスタr0−r3に格納されるポインタに従って、主演算回路におけるエントリまたはエントリ内位置を指定するアドレスを生成して、メモリセルマット(30)と演算処理ユニット(35)の間のデータ転送(ロード/ストア)を制御する。また、このコントローラ22は、ポインタレジスタr0−r3のポインタに従って、マイクロ命令メモリ21から転送命令が与えられたとき、この演算処理ユニット(35)における演算器(ALU)31間の接続指定情報を設定する。   FIG. 5 is a diagram schematically showing a control mode of the controller 22 shown in FIG. Corresponding to the controller 22, a register group 40 is provided. In this register group 40, pointer registers r0-r3 are provided. The addresses in the memory cell mat 30 of the data to be calculated are stored in these pointer registers r0-r3. The controller 22 generates an address for designating an entry in the main arithmetic circuit or an in-entry position according to the pointer stored in the pointer registers r0 to r3, and between the memory cell mat (30) and the arithmetic processing unit (35). Control data transfer (load / store). The controller 22 sets connection designation information between the arithmetic units (ALU) 31 in the arithmetic processing unit (35) when a transfer instruction is given from the microinstruction memory 21 according to the pointers of the pointer registers r0 to r3. To do.

[演算器の構成1]
図6は、図1に示す演算器(31)の構成および1つの演算器に関連する部分の構成を概略的に示す図である。図6において、演算器(ALU)31は、指定された演算処理を行なう算術演算論理回路50と、対応のエントリから読出されたデータまたは算術演算論理回路50の演算処理結果データまたは対応のエントリへ転送するデータを一時的に格納するXレジスタ54と、加演算処理時のキャリーまたはボローを格納するCレジスタ56と、この算術演算論理回路50の演算処理の禁止を指定するマスクデータを格納するMレジスタ58を含む。
[Configuration 1 of the computing unit]
FIG. 6 is a diagram schematically showing a configuration of the computing unit (31) shown in FIG. 1 and a configuration of a portion related to one computing unit. In FIG. 6, an arithmetic unit (ALU) 31 performs an arithmetic operation logic circuit 50 that performs a specified operation process, and data read from a corresponding entry or operation process result data of the arithmetic operation logic circuit 50 or a corresponding entry. An X register 54 for temporarily storing data to be transferred, a C register 56 for storing a carry or a borrow at the time of addition operation processing, and an M for storing mask data for designating prohibition of the arithmetic processing of the arithmetic operation logic circuit 50 Register 58 is included.

エントリと演算器の間には、センスアンプ62およびライトドライバ60が設けられる。これらのセンスアンプ62およびライトドライバ60は、対応のエントリのビット線対BLPに結合される。センスアンプ62は、対応のエントリのメモリセルから読出されるデータを増幅し、その増幅データを内部データ転送線200を介してXレジスタ54へ転送する。ライトドライバ60は、Xレジスタ54に格納されたデータをバッファ処理して、対応のエントリのメモリセルへ対応のビット線対BLPを介して書込む。   A sense amplifier 62 and a write driver 60 are provided between the entry and the arithmetic unit. Sense amplifier 62 and write driver 60 are coupled to bit line pair BLP of the corresponding entry. Sense amplifier 62 amplifies data read from the memory cell of the corresponding entry, and transfers the amplified data to X register 54 via internal data transfer line 200. The write driver 60 buffers the data stored in the X register 54 and writes the data to the memory cell of the corresponding entry via the corresponding bit line pair BLP.

この算術演算論理回路50は、加算(ADD)、論理積(AND)、論理和(OR)、排他的論理和(EXOR)、反転(NOT)等の演算を実行することができ、その演算内
容が、先の図5に示すコントローラ22からの制御信号(ALU制御)により設定される。Mレジスタ58に格納されるマスクデータにより、この演算器31における演算処理動作を選択的にイネーブル/ディスエーブルする。この演算マスク機能を利用することにより、仮に全エントリが利用されない場合においても、有効エントリに対してのみ演算を実行して、正確な処理を行なうことができる。また、不必要な演算を停止させることにより、消費電流を低減することができる。
This arithmetic operation logic circuit 50 can execute operations such as addition (ADD), logical product (AND), logical sum (OR), exclusive logical sum (EXOR), inversion (NOT), etc. Is set by a control signal (ALU control) from the controller 22 shown in FIG. Based on the mask data stored in the M register 58, the arithmetic processing operation in the arithmetic unit 31 is selectively enabled / disabled. By using this calculation mask function, even when not all entries are used, it is possible to execute an operation only on valid entries and perform accurate processing. In addition, current consumption can be reduced by stopping unnecessary computations.

Xレジスタ50は、また、ALU間相互接続スイッチ回路32に含まれるALU間接続回路65を介して他の演算器(ALU)に接続される。このALU間接続回路65の構成については、後に詳細に説明する。このALU間接続回路65の転送機能により、メモリマット内のさまざまな物理位置に格納されているデータに対する演算を実現することができ、演算の自由度を高くすることができる。   The X register 50 is also connected to another arithmetic unit (ALU) via an inter-ALU connection circuit 65 included in the inter-ALU interconnection switch circuit 32. The configuration of the inter-ALU connection circuit 65 will be described in detail later. By the transfer function of the inter-ALU connection circuit 65, it is possible to realize an operation on data stored at various physical positions in the memory mat, and to increase the degree of freedom of the operation.

図7は、ALU命令のうち、エントリ間のデータ移動(Move)を行なう命令を一覧にして示す図である。   FIG. 7 is a diagram showing a list of instructions for moving data between entries among ALU instructions.

命令“ecm.mv.n♯n”は、データ移動命令(Move)における移動量を数値♯nで規定する。したがってこの命令で、Xレジスタ間のデータ転送において、エントリj+nのXレジスタの格納値が、エントリjのXレジスタに格納される。一例として、エントリ移動量nは、0から128の範囲の整数値を取り、最大128ビット離れた位置のエントリ間でデータ移動を行なうことができる。   The instruction “ecm.mv.n # n” defines the movement amount in the data movement instruction (Move) with a numerical value #n. Therefore, with this instruction, in the data transfer between the X registers, the stored value of the X register of entry j + n is stored in the X register of entry j. As an example, the entry movement amount n takes an integer value ranging from 0 to 128, and data movement can be performed between entries at positions separated by a maximum of 128 bits.

命令“ecm.mv.r rx”は、ポインタレジスタrxに格納された値だけエントリ間をデータ移動させる命令である。この命令が実行されると、エントリj+rxのXレジスタの格納値が、エントリjのXレジスタに転送される。   The instruction “ecm.mv.r rx” is an instruction for moving data between entries by the value stored in the pointer register rx. When this instruction is executed, the stored value of the X register of entry j + rx is transferred to the X register of entry j.

このALU命令に従って、ALU間接続回路65における接続経路が設定され、各エントリ対応に設けられる演算器において、Xレジスタを用いて並列に、データ転送が実行される。   In accordance with the ALU instruction, a connection path in the inter-ALU connection circuit 65 is set, and the arithmetic unit provided for each entry executes data transfer in parallel using the X register.

[演算の構成2]
図8は、この発明において利用される演算器31の別の構成を概略的に示す図である。この図8に示す演算器31の構成に対しては、メモリセルマットにおいて1つのエントリERYが、偶数アドレスのデータビットA[2i]を格納する偶数エントリERYeと、奇数アドレスのデータTビットA[2i+1]を格納する奇数エントリERYoとで構成される。偶数エントリERYeおよび奇数エントリERYoの同じアドレスのデータビットに対し、並列に演算処理を実行することにより、処理の高速化を図る。
[Calculation configuration 2]
FIG. 8 is a diagram schematically showing another configuration of the arithmetic unit 31 used in the present invention. For the configuration of the arithmetic unit 31 shown in FIG. 8, one entry ERY in the memory cell mat has an even entry ERYe for storing even-address data bits A [2i] and an odd-address data T bit A [ 2i + 1] and an odd entry ERyo. By executing arithmetic processing in parallel on the data bits at the same address in the even-numbered entry ERYe and the odd-numbered entry ERYo, the processing speed is increased.

演算器(ALU)31においては、演算処理を行なうための縦続される全加算器210および211が、演算処理部として設けられる。全加算器210および211は、それぞれ入力AおよびBに与えられたデータビットを加算し、サム出力Sおよびキャリー出力Coに演算結果を出力する。また、全加算器210は、Cレジスタ56に格納されるデータをキャリー入力CInに受ける。1ビット動作時には、このCレジスタ56のキャリーが、または全加算器211のキャリー入力Cinに与えられる。2ビット並列に処理する2ビット動作時においては、全加算器210のキャリー出力Coが、全加算器211のキャリー入力Cinに伝達される。この全加算器210および211の接続を切り替えることにより、2ビット並列演算および1ビット逐次処理を実行することが出来る。   In the arithmetic unit (ALU) 31, cascaded full adders 210 and 211 for performing arithmetic processing are provided as arithmetic processing units. Full adders 210 and 211 add the data bits applied to inputs A and B, respectively, and output the operation result to sum output S and carry output Co. Full adder 210 receives the data stored in C register 56 at carry input CIn. At the time of 1-bit operation, the carry of the C register 56 or the carry input Cin of the full adder 211 is given. In a 2-bit operation in which 2-bit processing is performed in parallel, the carry output Co of the full adder 210 is transmitted to the carry input Cin of the full adder 211. By switching the connections of the full adders 210 and 211, 2-bit parallel operation and 1-bit sequential processing can be executed.

この演算器31は、対応のエントリのメモリセルからのロードデータの一時保存を行ないかつ演算途中の結果の一時保存を行なうXレジスタ54が設けられる。二項演算処理時
においては、Xレジスタ54に第1の演算データビットが格納されたとき、次の(別の)演算データビットが、この演算器31に直接対応のメモリセルマットのエントリから与えられて演算処理が実行される。このXレジスタ50は、ALU間接続用スイッチ回路を介して他の演算器(ALU)と接続され、異なる演算器間でデータ転送を行なうことができる。
The computing unit 31 is provided with an X register 54 for temporarily storing load data from the memory cell of the corresponding entry and temporarily storing a result in the middle of the operation. At the time of binary operation processing, when the first operation data bit is stored in the X register 54, the next (other) operation data bit is given from the entry of the memory cell mat directly corresponding to the operation unit 31. And the arithmetic processing is executed. The X register 50 is connected to another arithmetic unit (ALU) via an inter-ALU connection switch circuit, and can transfer data between different arithmetic units.

演算器(ALU)31は、さらに、2ビットデータを並列に格納するためのXHレジスタ220およびXLレジスタ221と、Dレジスタ222の格納値に従って、レジスタ54、220および221のデータの組の一方の2ビットを選択するセレクタ(SEL)227と、Fレジスタ205の格納ビットに従ってセレクタ227の選択した2ビットに対する反転/非反転操作を行なう選択反転回路217と、Nレジスタ207とVレジスタ208の格納データに従って、全加算器210および211の出力Sからのデータビットを選択的に出力するゲート223および224を含む。   The arithmetic unit (ALU) 31 further includes one of the data sets of the registers 54, 220, and 221 in accordance with the stored values of the XH register 220 and XL register 221 and the D register 222 for storing 2-bit data in parallel. A selector (SEL) 227 that selects 2 bits, a selection inversion circuit 217 that performs inversion / non-inversion operation on the 2 bits selected by the selector 227 in accordance with the storage bits of the F register 205, and data stored in the N register 207 and the V register 208 , Gates 223 and 224 for selectively outputting data bits from outputs S of full adders 210 and 211 are included.

選択反転回路217の2ビット出力は、全加算器210および211の入力Aへそれぞれ与えられる。XHレジスタ220およびXLレジスタ221は、それぞれ内部データ線226および228を介して奇数エントリERYoの奇数アドレスビットおよび偶数エントリERYeの偶数アドレスビットの転送を行なう。Xレジスタ54は、2ビット/1ビット動作に従って、スイッチ回路SWaおよびSWbにより、内部データ線226および228の一方に選択的に接続される。   The 2-bit output of selective inversion circuit 217 is applied to inputs A of full adders 210 and 211, respectively. XH register 220 and XL register 221 transfer odd address bits of odd entry ERYo and even address bits of even entry ERYe via internal data lines 226 and 228, respectively. X register 54 is selectively connected to one of internal data lines 226 and 228 by switch circuits SWa and SWb according to a 2-bit / 1-bit operation.

Nレジスタ207は、定数値を格納する。Vレジスタ208は、ゲート223および224の転送経路の遮断/接続を制御するマスクビットを格納する。   The N register 207 stores a constant value. The V register 208 stores a mask bit for controlling the interruption / connection of the transfer path of the gates 223 and 224.

全加算器210の入力Bは、内部データ線226に結合され、全加算器210のサム出力Sを受けるゲート223の出力が、また内部データ線226に接続される。全加算器211の入力Bは、スイッチ回路SWcおよびSWdにより、内部データ線226および228の一方に選択的に接続される。全加算器211のサム出力Sからのデータビットゲート224に与えられる。ゲート224の出力は、スイッチ回路SWeおよびSWfに従って、内部データ線226および228の一方に選択的に接続される。これらのスイッチ回路SWa−SWfにより、2ビット並列除算処理を行なう場合の1ビット単位のビットシリアル処理を実行する。   The input B of full adder 210 is coupled to internal data line 226, and the output of gate 223 receiving sum output S of full adder 210 is also connected to internal data line 226. Input B of full adder 211 is selectively connected to one of internal data lines 226 and 228 by switch circuits SWc and SWd. The data is added to the data bit gate 224 from the sum output S of the full adder 211. The output of gate 224 is selectively connected to one of internal data lines 226 and 228 in accordance with switch circuits SWe and SWf. These switch circuits SWa-SWf execute bit serial processing in units of 1 bit when performing 2-bit parallel division processing.

ゲート223および224は、Vレジスタ208およびNレジスタ207の格納値がともに“1”のときに、指定された演算処理を実行し(データ転送動作を行ない)、それ以外においては、ハイインピーダンスを出力する(出力ハイインピーダンス状態となる)。   Gates 223 and 224 execute designated arithmetic processing (perform data transfer operation) when the stored values of V register 208 and N register 207 are both “1”, and otherwise output high impedance. (Output high impedance state).

全加算器211のキャリー入力Cinおよび全加算器210のキャリー出力Coに対して設けられるスイッチ225は、1ビット単位での演算処理を行なう場合に、全加算器210のキャリー出力Coを切離し、全加算器211のキャリー入力CinをCレジスタ56に接続する。   A switch 225 provided for the carry input Cin of the full adder 211 and the carry output Co of the full adder 210 disconnects the carry output Co of the full adder 210 when performing arithmetic processing in units of one bit. The carry input Cin of the adder 211 is connected to the C register 56.

この演算器31においては、Xレジスタ54、XHレジスタ220およびXLレジスタ221が、他のエントリの対応のレジスタとデータ転送を行なう機能を有する。   In this computing unit 31, the X register 54, the XH register 220, and the XL register 221 have a function of performing data transfer with the corresponding registers of other entries.

この変更例2の構成を利用する場合、1つの演算器が2つのエントリに対応して配置される。したがって、1ビット逐次処理に加えて、2ビット並列演算を行なって高速処理を実行することができ、また演算処理ユニットにおいて、余裕を持って演算器31を配置することができる。   When the configuration of the second modification is used, one arithmetic unit is arranged corresponding to two entries. Therefore, in addition to 1-bit sequential processing, 2-bit parallel computation can be performed to execute high-speed processing, and the computing units 31 can be arranged with a margin in the computation processing unit.

図9は、この図8に示す演算器(31)の2ビット演算時におけるALU31の内部の接続を概略的に示す図である。この2ビット演算時、特に2次のブースアルゴリズムに従って乗算を行なう場合、Xレジスタ54は、スイッチ回路SWaを介して内部データ線226に結合される。スイッチ回路SWbは、XLレジスタ54と内部データ線228を切離す状態に設定される。   FIG. 9 is a diagram schematically showing internal connections of the ALU 31 at the time of 2-bit computation of the computing unit (31) shown in FIG. At the time of this 2-bit operation, particularly when multiplication is performed according to the secondary Booth algorithm, the X register 54 is coupled to the internal data line 226 via the switch circuit SWa. Switch circuit SWb is set to a state in which XL register 54 and internal data line 228 are disconnected.

スイッチ回路SWbが、全加算器211の入力Bと内部データ線226とを切離す。スイッチ225は、全加算器210のキャリー出力Coと全加算器210のキャリー入力Cinとを分離する。Cレジスタ56が、スイッチ225を介して全加算器210のキャリー入力Cinに結合される。ゲート回路224の出力はスイッチ回路SWfにより内部データ線228に結合される。   Switch circuit SWb disconnects input B of full adder 211 from internal data line 226. The switch 225 separates the carry output Co of the full adder 210 and the carry input Cin of the full adder 210. C register 56 is coupled to carry input Cin of full adder 210 via switch 225. The output of gate circuit 224 is coupled to internal data line 228 by switch circuit SWf.

2ビット演算時においては、全加算器210および211が並列に動作し、選択反転回路217から与えられるデータビットをそれぞれ内部転送線226および228から転送されるデータビットと加算し、それぞれの加算結果をゲート223および224を介して内部データ線226および228へ出力する。したがって、加算結果は、ビットAj[px]およびAj[px+1]について並列に算出する。ここで、pxおよびpx+1は、ポインタレジスタのポインタ値であり、2ビット並列動作時には、メモリセルマット内において同一のワード線アドレスビットである。   At the time of 2-bit operation, full adders 210 and 211 operate in parallel to add the data bits supplied from selective inversion circuit 217 to the data bits transferred from internal transfer lines 226 and 228, respectively, and the respective addition results Are output to internal data lines 226 and 228 via gates 223 and 224, respectively. Therefore, the addition result is calculated in parallel for the bits Aj [px] and Aj [px + 1]. Here, px and px + 1 are pointer values of the pointer register, and are the same word line address bits in the memory cell mat during 2-bit parallel operation.

メモリセルマットにおいては、偶数エントリERYeおよび奇数エントリERYoにそれぞれ、偶数アドレスA[2i]および奇数アドレスA[2i+1]のデータビットが格納される。ポインタレジスタrxのポインタにより、これらの偶数エントリERYeおよび奇数エントリERYoの同一ビット位置のメモリセルが指定される。したがって、プログラム実行時においてポインタレジスタrxのカウント値が2増分されることにより、奇数エントリERYoおよび偶数エントリERYeにおいて1ビットそのビット位置が上位方向にシフトされる。このポインタレジスタrxのポインタに基づいてメモリセルマットのワード線を選択するアドレスが生成される場合、ワード線の切換により、ポインタレジスタrxのポインタを2増分する構成が実現される。   In the memory cell mat, data bits of even address A [2i] and odd address A [2i + 1] are stored in even entry ERYe and odd entry ERYo, respectively. A memory cell at the same bit position of the even-numbered entry ERYe and the odd-numbered entry ERYo is designated by the pointer of the pointer register rx. Accordingly, when the count value of the pointer register rx is incremented by 2 at the time of program execution, the bit position of the odd entry ERYo and the even entry ERYe is shifted upward by one bit. When an address for selecting the word line of the memory cell mat is generated based on the pointer of the pointer register rx, a configuration in which the pointer of the pointer register rx is incremented by 2 is realized by switching the word line.

演算器31において2つの全加算器210および211を設けて2ビット加算を行なうことにより、たとえばブースアルゴリズムに従う乗算操作時、2ビット単位での部分積生成および前の部分積との加算を行なうことができる。また、加算および減算も、2ビット単位で実行することができ、また1ビット単位で演算を実行することもできる。除算は、被除数のビット位置を1ずつ右シフトして減算を行なう必要があり、1ビット単位で演算を実行する。この1ビット演算を実現するために、スイッチ225が設けられる。   By providing two full adders 210 and 211 in the computing unit 31 and performing 2-bit addition, for example, in a multiplication operation according to the Booth algorithm, partial product generation in units of 2 bits and addition with the previous partial product are performed. Can do. Also, addition and subtraction can be executed in units of 2 bits, and operations can be executed in units of 1 bit. In division, the bit position of the dividend needs to be shifted right by one and subtraction is performed, and the calculation is performed in units of one bit. In order to realize this 1-bit operation, a switch 225 is provided.

図10は、1ビット演算操作時における演算器31の内部接続の一例を概略的に示す図である。1ビット演算の接続時においては、Xレジスタ54が、内部データ線226および228にスイッチ回路SWaおよびSWbを介してそれぞれ接続される。Xレジスタ54の出力が、セレクタ227によりDレジスタ220の格納データに従って選択される。スイッチ回路SWaおよびSWbの接続は、ポインタpx(ポインタレジスタrxのポインタ)により決定される。   FIG. 10 is a diagram schematically showing an example of internal connections of the arithmetic unit 31 during a 1-bit arithmetic operation. When 1-bit operation is connected, X register 54 is connected to internal data lines 226 and 228 via switch circuits SWa and SWb, respectively. The output of the X register 54 is selected by the selector 227 according to the data stored in the D register 220. The connection between the switch circuits SWa and SWb is determined by a pointer px (pointer of the pointer register rx).

Fレジスタ205の格納ビット値に従って、選択反転回路217により、加算/減算が実現される。この選択反転器217の出力は、全加算器211の入力Aに与えられる。全加算器210の入力Bは、内部データ線226に接続される。全加算器210のキャリー出力Coが、スイッチ回路225により全加算器210のキャリー入力Cinと分離される。全加算器210のサム出力Sが、ゲート223を介して内部データ線226に結合される。全加算器210は、加算演算には用いられない。全加算器211のキャリー入力C
inが、Cレジスタ56にスイッチ回路225を介して結合される。全加算器の入力Bは、ポインタpxによりスイッチ回路SWcおよびSWdを介して内部データ線226または228に選択的に結合される。また、全加算器211のサム出力Sが、ゲート224およびスイッチ回路SWeおよびSWfを介して選択的に内部データ線226および228に接続される。
Addition / subtraction is realized by the selective inversion circuit 217 according to the stored bit value of the F register 205. The output of the selective inverter 217 is given to the input A of the full adder 211. The input B of the full adder 210 is connected to the internal data line 226. The carry output Co of the full adder 210 is separated from the carry input Cin of the full adder 210 by the switch circuit 225. Sum output S of full adder 210 is coupled to internal data line 226 via gate 223. The full adder 210 is not used for the addition operation. Carry input C of full adder 211
in is coupled to C register 56 via switch circuit 225. The input B of the full adder is selectively coupled to the internal data line 226 or 228 via the switch circuits SWc and SWd by the pointer px. The sum output S of the full adder 211 is selectively connected to the internal data lines 226 and 228 via the gate 224 and the switch circuits SWe and SWf.

減算演算を、2の補数の加算演算により行なう場合には、Cレジスタ56に、初期値として“1”が格納され、Xレジスタ54からのビット値が選択反転回路217により反転される。加算演算を行なう場合には、Cレジスタ56は、初期状態として“0”にクリアされる。   When the subtraction operation is performed by the two's complement addition operation, “1” is stored in the C register 56 as an initial value, and the bit value from the X register 54 is inverted by the selective inversion circuit 217. When the addition operation is performed, the C register 56 is cleared to “0” as an initial state.

メモリセルマット内のエントリにおいて、内部データ線226および227に接続される領域には、連続アドレスのデータビットA[2i]およびA[2i+1]が格納され、内部データ線226および228を介してXレジスタ54に2ビットデータを並列に転送する。ポインタpx[0]の値を逐次切換えることにより、アドレスA[2i]のエントリおよびアドレスA[2i+1]のエントリのデータビットについて、ビットシリアル態様で、加算を行なうことができる。   In the entry in the memory cell mat, data bits A [2i] and A [2i + 1] of continuous addresses are stored in the area connected to internal data lines 226 and 227, and X is transmitted via internal data lines 226 and 228. 2-bit data is transferred to the register 54 in parallel. By sequentially switching the value of the pointer px [0], it is possible to perform addition in a bit serial manner on the data bits of the entry of the address A [2i] and the entry of the address A [2i + 1].

図11は、1ビット動作時のエントリ間データ移動(move)を行なう命令を一覧にして示す図である。このエントリ間(ALU間)データ移動時には、ポインタレジスタrnが用いられる。エントリ間データ移動用ポインタレジスタrnの候補レジスタとして、前述のポインタレジスタr0−r3が設けられる。   FIG. 11 is a diagram showing a list of instructions for performing data movement (move) between entries during 1-bit operation. The pointer register rn is used when data is moved between entries (between ALUs). The aforementioned pointer registers r0 to r3 are provided as candidate registers for the inter-entry data movement pointer register rn.

命令“ecm.mv.n♯n”は、定数n離れたエントリa+nのXレジスタの格納値を、エントリjのXレジスタに転送することを示す命令である。   The instruction “ecm.mv.n # n” is an instruction indicating that the value stored in the X register of entry a + n separated by a constant n is transferred to the X register of entry j.

命令“ecm.mv.r rn”は、レジスタrnの格納値分離れたエントリj+rnのXレジスタの値が、エントリjのXレジスタに転送される操作を示す命令である。   The instruction “ecm.mv.r rn” is an instruction indicating an operation in which the value of the X register of the entry j + rn separated from the stored value of the register rn is transferred to the X register of the entry j.

命令“ecm.swp”は、隣接エントリj+1およびjのXレジスタの格納値を交換する操作を指令する命令である。   The instruction “ecm.swp” is an instruction for instructing an operation for exchanging the stored values of the X registers of the adjacent entries j + 1 and j.

図12は、2ビット動作時の、演算器におけるエントリ間データ移動(move)の操作を指令する命令を一覧にして示す図である。この2ビット操作時においては、命令記述子“ecm2”が、命令記述子“ecm”に代えて用いられる。この命令記述子“ecm2”が指定されると、2ビット単位での演算処理が指定され、XHレジスタおよびXLレジスタ間での並列のデータ転送が行なわれる。各レジスタ間の転送内容の指定には、先の1ビット動作時と同じ命令記述子“mv.n♯n”、“mv.r rn”、および“swp”が用いられる。   FIG. 12 is a diagram showing a list of commands for instructing an operation of data movement between entries (move) in an arithmetic unit during a 2-bit operation. In the 2-bit operation, the instruction descriptor “ecm2” is used in place of the instruction descriptor “ecm”. When this instruction descriptor “ecm2” is designated, arithmetic processing in units of 2 bits is designated, and parallel data transfer is performed between the XH register and the XL register. To specify the transfer contents between the registers, the same instruction descriptors “mv.n # n”, “mv.r rn”, and “swp” as in the previous one-bit operation are used.

[実施の形態1]
図13は、この発明の実施の形態1に従うALU間相互接続スイッチ回路の配線レイアウトを概略的に示す図である。図13において、データの移動量として、±1、±2、および±4の移動量の組を備えるエントリ間通信配線の配線レイアウトを示す。
[Embodiment 1]
FIG. 13 schematically shows a wiring layout of the inter-ALU interconnection switch circuit according to the first embodiment of the present invention. FIG. 13 shows a wiring layout of inter-entry communication wirings having a set of movement amounts of ± 1, ± 2, and ± 4 as data movement amounts.

図13において、エントリn+13からエントリn−13を示す。このデータ転送配線300は、それぞれが対応のエントリからのデータを受けて出力する出力部305と、転送先のエントリへのデータの送出部XP1、XP2およびXP4、XN1、XN2およびXN4を含む。送出部XP1、XP2およびXP4は、それぞれ、+1、+2および+4離れたエントリに対するデータを転送する送出部であり、送出部XN1、XN2およびXN4は、それぞれ−1、−2および−4離れたエントリへデータを転送する送出部である
。従って、1つのデータ転送配線300は、9エントリにわたって延在して配置される。
In FIG. 13, entries n + 13 to n-13 are shown. The data transfer wiring 300 includes an output unit 305 that receives and outputs data from corresponding entries, and data sending units XP1, XP2, and XP4, XN1, XN2, and XN4 to the transfer destination entries. The sending sections XP1, XP2, and XP4 are sending sections that transfer data for entries that are separated by +1, +2, and +4, respectively. The sending sections XN1, XN2, and XN4 are entries that are separated by -1, -2 and -4, respectively. It is a sending part which transfers data to. Accordingly, one data transfer wiring 300 is arranged extending over nine entries.

このデータ転送配線300は、エントリと交差する方向(第2の方向)において1列に整列して配置され、かつエントリの延在方向(第1の方向)においては、データ出力部305が1エントリずれるようにアレイ状に配置される。このデータ転送配線300は、最遠のデータ送出部が、±4エントリ離れたエントリに対応する位置であり、自身を含んで9エントリごとに、データ転送配線300が、第2の方向に整列して配置される。   The data transfer wiring 300 is arranged in a line in the direction intersecting the entry (second direction), and the data output unit 305 has one entry in the extending direction of the entry (first direction). They are arranged in an array so as to be displaced. In this data transfer wiring 300, the farthest data transmission unit corresponds to an entry that is separated by ± 4 entries, and the data transfer wiring 300 is aligned in the second direction every nine entries including itself. Arranged.

この各エントリからのデータを受けて出力するデータ出力部および転送先のエントリにデータを与えるデータ送出部を別々に設けることにより、1つのデータ転送配線300において複数のデータ送出部を設けることにより、1つの配線で複数種類のエントリ間で他通信を実現することが出来る。また、各エントリからのデータの出力部を各転送配線300により、1エントリ、第1の方向においてずらせて配置することにより、効率的に、データ転送路を配線することができる。すなわち、図13に示すように、9エントリにわたって傾斜を有する対辺を有する菱形状の平行四辺形320を第2の方向に順次繰返し配置することにより、配線レイアウトを低減して効率的に、エントリ間通信配線を配置配線することができる。   By separately providing a data output unit that receives and outputs data from each entry and a data transmission unit that provides data to a transfer destination entry, by providing a plurality of data transmission units in one data transfer wiring 300, Other communication can be realized between a plurality of types of entries with one wiring. Further, the data transfer path can be efficiently wired by shifting the output part of the data from each entry by one transfer wiring 300 in the first direction. That is, as shown in FIG. 13, by arranging the parallelograms 320 in the rhombus shape having opposite sides having inclinations over nine entries in order in the second direction, the wiring layout is reduced and the inter-entry can be efficiently performed. Communication wiring can be arranged and wired.

上述のように、データの転送量に応じて配線を個々に配置するのではなく、1つのデータ転送配線300において、複数のデータ移動量の組を実現し、各エントリ対応の演算器において、選択的に送出部からの信号を取込むことにより、エントリそれぞれにおいて、並列にデータの転送を行なうことができ、また、配線レイアウト面積を低減することができる。また、このエントリ間データ移動量の組を複数個設けることにより、任意のエントリ間移動を、比較的少ないサイクル数で実現することができる。   As described above, instead of individually arranging the wiring according to the data transfer amount, a single data transfer wiring 300 realizes a plurality of sets of data movement amounts, and the arithmetic unit corresponding to each entry selects By taking in the signal from the sending unit, data can be transferred in parallel in each entry, and the wiring layout area can be reduced. Further, by providing a plurality of sets of inter-entry data movement amounts, any inter-entry movement can be realized with a relatively small number of cycles.

たとえば、データにおいて、±4エントリ間の移動を、1サイクルで実現する場合には、この送出部XP4およびXN4を選択的に利用する。この場合、図14に示すようなサイクリックなデータ移動が実現される。ただし、図14においては、2048エントリがメモリセルマットにおいて設けられるとしている。   For example, when data is moved between ± 4 entries in one cycle, the sending sections XP4 and XN4 are selectively used. In this case, cyclic data movement as shown in FIG. 14 is realized. However, in FIG. 14, 2048 entries are provided in the memory cell mat.

例えばエントリ0のデータを+4エントリ移動させると、エントリ2044に大使て設けられるXレジスタに転送される。ここで、+移動は、エントリ番号の小さいエントリにデータを転送する方向に設定している。また、エントリ2047のデータを‐4エントリ移動させると、エントリ3のXレジスタに転送される。   For example, when the entry 0 data is moved by +4 entries, the entry 044 is transferred to the X register that is used for the entry 2044. Here, + movement is set in a direction in which data is transferred to an entry with a small entry number. When the data of entry 2047 is moved by -4 entries, it is transferred to the X register of entry 3.

したがって、1隣接エントリ間のデータ転送と同様に、データ転送配線300を用いて、4エントリ離れたエントリへのデータ転送を1マシンサイクルで実現することができる。したがって、たとえば3エントリ離れた位置へのデータ転送時には、2エントリ移動および1エントリ移動を、シフトレジスタを利用して順次データを転送する場合と同様にして、行なうことにより、2サイクルで、データ転送を実現することができる。また、8エントリ離れたエントリへのデータ転送時には、4エントリ移動を2回繰返すことにより、8エントリ間移動が実現される。このシフトレジスタ態様のデータ転送を繰返すことにより、任意の距離(エントリ数)離れたエントリ間でのデータ通信が実現される。   Therefore, similarly to the data transfer between one adjacent entry, the data transfer to an entry separated by four entries can be realized in one machine cycle using the data transfer wiring 300. Therefore, for example, when transferring data to a position separated by three entries, two-entry movement and one-entry movement are performed in the same manner as in the case of sequentially transferring data using a shift register. Can be realized. Further, when transferring data to an entry that is 8 entries apart, the transfer between 8 entries is realized by repeating the 4-entry movement twice. By repeating this data transfer in the shift register mode, data communication between entries separated by an arbitrary distance (number of entries) is realized.

配線レイアウト面積の余裕に応じて、1本のデータ転送配線300の実現するデータ移動量の組をより多く設けることにより、任意のエントリ間データ移動を比較的少ないサイクル数で実現することができる。   By providing a larger number of sets of data movement amounts realized by one data transfer wiring 300 in accordance with the margin of the wiring layout area, data movement between any entry can be realized with a relatively small number of cycles.

図15は、このメモリセルマット端部のエントリ0−5および2044−2047に対するデータ転送配線300の配線レイアウトを概略的に示す図である。このエントリ0−
3においては、そのデータ出力端部305から、+1、+2および+4のデータシフト転送を行なう場合、エントリ2045‐2047方向へ、データをシフトする必要がある。したがって、この場合、プラスシフト用配線330pを用いて、各データ転送配線300の転送経路を、エントリ端部から他方端へ配線する。これにより、エントリ0ないし3のデータ出力部305に対し、それぞれ、プラス方向のシフト用送出部XP1、XP2およびXP4をそれぞれ配置することができる。
FIG. 15 schematically shows a wiring layout of data transfer wiring 300 for entries 0-5 and 2044-2047 at the ends of the memory cell mat. This entry 0-
3, when data shift transfer of +1, +2, and +4 is performed from the data output end 305, it is necessary to shift data in the direction of entries 2045-2047. Therefore, in this case, the transfer path of each data transfer wiring 300 is wired from the entry end to the other end using the plus shift wiring 330p. As a result, plus-direction shift sending sections XP1, XP2 and XP4 can be arranged for the data output sections 305 of entries 0 to 3, respectively.

一方、メモリセルマットの他方端のエントリ2045−2047に対して設けられるデータ転送配線300においては、マイナス方向のデータ転送時、最初のエントリ0に戻って、データを転送する必要がある。このため、マイナスシフト用の配線330nをメモリセルマットの他方端から一方端に配設し、各データ転送配線300のマイナス方向のデータシフトを実現する。これにより、エントリ2045−2047に対して設けられるデータ出力部305に対し、各マイナス方向のシフト用送出XN1、XN2およびXN4を、それぞれ配置することができ、各データ転送配線300において、±1、±2、および±4のデータ転送シフトを実現することができる。   On the other hand, in the data transfer wiring 300 provided for the entries 2045 to 2047 at the other end of the memory cell mat, it is necessary to return to the first entry 0 and transfer data when transferring data in the minus direction. For this reason, a minus shift wiring 330n is provided from the other end of the memory cell mat to one end, thereby realizing a data shift in the minus direction of each data transfer wiring 300. As a result, the transmission outputs XN1, XN2, and XN4 in the minus direction can be respectively arranged for the data output unit 305 provided for the entries 2045-2047. In each data transfer wiring 300, ± 1, Data transfer shifts of ± 2 and ± 4 can be realized.

なお、このデータシフト用の配線330pおよび330nは、転送経路300を構成する配線と別の配線層の配線で形成されてもよい。また、このシフト用配線330nおよび330pにより接続される送出部XP1、XP2、およびXP4およびXN1、XN2およびXN4は、それぞれ、データ転送配線300の平行四辺形領域の底部の空き領域(三角形状の領域)に配設されてもよい。   The data shift wirings 330p and 330n may be formed of wirings in a wiring layer different from the wirings constituting the transfer path 300. The sending sections XP1, XP2, and XP4 and XN1, XN2, and XN4 connected by the shift wirings 330n and 330p are respectively empty areas (triangular areas) at the bottom of the parallelogram area of the data transfer wiring 300. ).

いずれの場合においても、このエントリ0ないし2047において、リング状にデータを移動させることができ、任意の方向に向かって、任意のデータエントリ間データ移動を実現することができる。   In any case, in the entries 0 to 2047, data can be moved in a ring shape, and data movement between any data entries can be realized in any direction.

図16は、図6に示すALU間接続回路65の構成を概略的に示す図である。ALU間接続回路65において、演算器31のXレジスタ54、XHレジスタ220およびXLレジスタ221が、それぞれ、nビット幅の転送配線束340a、340hおよび340lにそれぞれ結合される。このnビット幅の転送配線束340a、340hおよび340lは、それぞれ、他のエントリのからのデータ転送配線300の束である。これらの転送配線束340a、340hおよび340lは、それぞれ、接続部350a、350hおよび350lを介してXレジスタ54、XHレジスタ220およびXLレジスタ221に結合される。   FIG. 16 schematically shows a configuration of inter-ALU connection circuit 65 shown in FIG. In the inter-ALU connection circuit 65, the X register 54, the XH register 220, and the XL register 221 of the arithmetic unit 31 are respectively coupled to transfer wiring bundles 340a, 340h, and 340l having an n-bit width. The n-bit width transfer wiring bundles 340a, 340h and 340l are bundles of data transfer wirings 300 from other entries, respectively. These transfer wiring bundles 340a, 340h and 340l are coupled to X register 54, XH register 220 and XL register 221 via connection portions 350a, 350h and 350l, respectively.

一方、Xレジスタ54、XHレジスタ220およびXLレジスタ221が、それぞれ、出力ノード305a、305hおよび305lを介してデータ転送配線300a、300hおよび300lに結合される。これらの転送配線300a、300hおよび300lは、それぞれ、最大データ移動量のエントリ部まで延在し、その経路の途中で、他のエントリにもデータを転送する。他のエントリにおいて、この接続部350a、350hおよび350lにより、データ移動量の配線が選択される。   On the other hand, X register 54, XH register 220 and XL register 221 are coupled to data transfer lines 300a, 300h and 300l through output nodes 305a, 305h and 305l, respectively. Each of these transfer wirings 300a, 300h, and 300l extends to the entry portion of the maximum data movement amount, and transfers data to other entries along the route. In the other entry, the data movement amount wiring is selected by the connection portions 350a, 350h and 350l.

演算器31の構成は、先の図8に示す演算器の構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。   The configuration of the computing unit 31 is the same as the configuration of the computing unit shown in FIG. 8, and corresponding portions are denoted by the same reference numerals, and detailed description thereof is omitted.

これらの接続部350a、350hおよび350lにおいて、データ移動量に応じて対応のエントリを選択する必要がある。この対応の他のエントリを選択するために、接続部350a、350hおよび350lそれぞれにおいて、スイッチ回路が設けられる。   In these connection portions 350a, 350h, and 350l, it is necessary to select a corresponding entry according to the amount of data movement. In order to select another entry corresponding to this, a switching circuit is provided in each of the connection portions 350a, 350h, and 350l.

図17は、このALU間接続回路65におけるスイッチ回路および関連の部分の構成の
一例を示す図である。1ビットデータ転送時においては、Xレジスタ54を利用する。2ビットデータ転送時にXHレジスタおよびXLレジスタが利用される。他のエントリの演算器のXレジスタ、XHレジスタおよびXLレジスタそれぞれに対して、この図17に示す構成が設けられる。しかしながら、図17においては、図面を簡略化するために、Xレジスタ54に対応する部分の構成のみを代表的に示す。
FIG. 17 is a diagram showing an example of the configuration of the switch circuit and related portions in the inter-ALU connection circuit 65. When transferring 1-bit data, the X register 54 is used. The XH register and the XL register are used during 2-bit data transfer. The configuration shown in FIG. 17 is provided for each of the X register, XH register, and XL register of the arithmetic units of other entries. However, in FIG. 17, only the configuration of the portion corresponding to the X register 54 is representatively shown to simplify the drawing.

図17において、ALU間接続回路65は、他のエントリの選択信号ECM_EM_k(k=1、…256)に従って、対応のデータ出力配線ECM_IN_k上の信号に応じた信号を生成するスイッチ回路360と、転送イネーブル信号ECM_ENに従って、このスイッチ回路360の出力信号と対応のエントリから転送されたデータの一方を選択するセレクタ362と、転送イネーブル信号ECM_ENに従って、Xレジスタ54の保持データに従って出力データECM_OUTを生成するトライステートバッファ364を含む。このトライステートバッファ364により、データ転送配線の出力段305(305a,305h,305l)が駆動される。   In FIG. 17, the inter-ALU connection circuit 65 generates a signal according to the signal on the corresponding data output wiring ECM_IN_k according to the selection signal ECM_EM_k (k = 1,... 256) of another entry, and the transfer. A selector 362 that selects one of the data transferred from the entry corresponding to the output signal of the switch circuit 360 according to the enable signal ECM_EN, and a trie that generates the output data ECM_OUT according to the data held in the X register 54 according to the transfer enable signal ECM_EN. A state buffer 364 is included. The tristate buffer 364 drives the output stage 305 (305a, 305h, 305l) of the data transfer wiring.

スイッチ回路360は、他のエントリそれぞれに対応して設けられる選択スイッチゲートPSQ256…PSQ1、NSQ1、…NSQ256を含む。これらの選択スイッチゲートPSQ256−PSQ1,NSQ1−NSQ256が、それぞれ、エントリ選択信号ECM_EN_kに従って対応のデータ転送配線上の出力信号ECM_IN_kを選択して、この対応のデータ転送配線上の入力信号に従って内部ノードNDを駆動する。   Switch circuit 360 includes select switch gates PSQ256... PSQ1, NSQ1,... NSQ256 provided corresponding to each of the other entries. These selection switch gates PSQ256-PSQ1, NSQ1-NSQ256 select output signal ECM_IN_k on the corresponding data transfer wiring in accordance with entry selection signal ECM_EN_k, respectively, and internal node ND in accordance with the input signal on the corresponding data transfer wiring. Drive.

これらの選択スイッチングゲートPSQ256−PSQ1、NSQ1−NSQ256は、それぞれ、内部ノードNDと接地ノードの間に直列に接続されるNチャネルMOSトランジスタ(絶縁ゲート型電界効果トランジスタ)NQ1およびNQ2を含む。MOSトランジスタNQ1のゲートが、対応の他のエントリからの転送入力信号ECM_IN_kを受け、MOSトランジスタNQ2のゲートに、エントリ選択信号ECM_EN_kを受ける。   These selective switching gates PSQ256-PSQ1, NSQ1-NSQ256 include N channel MOS transistors (insulated gate field effect transistors) NQ1 and NQ2 connected in series between internal node ND and the ground node, respectively. The gate of MOS transistor NQ1 receives transfer input signal ECM_IN_k from another corresponding entry, and the gate of MOS transistor NQ2 receives entry selection signal ECM_EN_k.

したがって、図17に示すスイッチ回路360の構成では、データ転送配線は、最大±256エントリ離れた位置のエントリ間のデータ転送を行なう。このデータ転送配線の途中に設けられる中間の転送量(データ移動量)は、2のべき乗の値で順次設定されてもよい。   Therefore, in the configuration of switch circuit 360 shown in FIG. 17, the data transfer wiring transfers data between entries at positions separated by a maximum of ± 256 entries. The intermediate transfer amount (data movement amount) provided in the middle of the data transfer wiring may be sequentially set as a power of 2.

スイッチ回路360は、さらに、プリチャージ指示信号/ECM_PRCに従って内部ノードNDを電源電圧レベルにプリチャージするPチャネルMOSトランジスタPQ1と、内部ノードND上の信号を反転するインバータIV1と、インバータIV1の出力信号に従って選択的に導通して、内部ノードNDを電源電圧レベルに駆動するPチャネルMOSトランジスタPQ2と、インバータIV1の出力信号を反転して、このスイッチ回路360の出力信号を生成するインバータIV2を含む。   Switch circuit 360 further includes a P channel MOS transistor PQ1 for precharging internal node ND to the power supply voltage level in accordance with precharge instruction signal / ECM_PRC, an inverter IV1 for inverting a signal on internal node ND, and an output signal of inverter IV1 And a P channel MOS transistor PQ2 for driving internal node ND to the power supply voltage level, and an inverter IV2 for inverting the output signal of inverter IV1 and generating an output signal of switch circuit 360.

MOSトランジスタPQ2およびインバータIV1により、いわゆる「ハーフラッチ」が形成される。内部ノードNDは、プリチャージ時、電源電圧レベルにプリチャージされる。選択スイッチゲートPSQkまたはNSQk(k=1−256)は、選択されたときに、内部ノードNDを接地電圧レベルに駆動する。選択スイッチゲートPSQ256−PSQ1、NSQ1−NSQ256を用いて内部ノードNDをいわゆるオープンドレイン方式で駆動する。内部ノードNDがプリチャージ電圧レベルから接地電圧レベル方向へ駆動されるだけであり、データ転送時、高速でデータ転送を行なうことができる。また、各選択スイッチゲートは、2個のトランジスタで構成され、回路のレイアウト面積を低減することができる。   MOS transistor PQ2 and inverter IV1 form a so-called “half latch”. Internal node ND is precharged to the power supply voltage level during precharging. Select switch gate PSQk or NSQk (k = 1-256) drives internal node ND to the ground voltage level when selected. Internal node ND is driven by a so-called open drain method using selection switch gates PSQ256-PSQ1 and NSQ1-NSQ256. Internal node ND is merely driven from the precharge voltage level to the ground voltage level, and data transfer can be performed at a high speed during data transfer. Each selection switch gate is composed of two transistors, and the layout area of the circuit can be reduced.

Xレジスタ54は、クロック信号CLKX(内部の演算処理サイクルを決定するクロック)の立上がりに応答してラッチ状態となる。ここで、図18においては、+1シフト動作時の波形を示す。すなわち、エントリ番号iのエントリに対し、エントリ番号(i+1)のエントリのデータが転送され、隣接エントリ間でのデータ転送が行われる。   The X register 54 is in a latch state in response to the rise of the clock signal CLKX (clock that determines the internal arithmetic processing cycle). Here, in FIG. 18, the waveform at the time of +1 shift operation is shown. That is, the entry number (i + 1) entry data is transferred to the entry number i entry, and data transfer is performed between adjacent entries.

図18は、図17に示すALU間接続回路の動作を示すタイミング図である。以下、図18を参照して、図17に示すALU間接続回路65の動作について説明する。   FIG. 18 is a timing chart showing the operation of the inter-ALU connection circuit shown in FIG. The operation of the inter-ALU connection circuit 65 shown in FIG. 17 will be described below with reference to FIG.

クロックサイクル♯1においては、転送動作は行なわれず、転送イネーブル信号ECM_ENはLレベルである。この状態においては、セレクタ362は、対応のエントリからのデータを選択する状態に設定され、また、トライステートバッファ364は、出力ハイインピーダンス状態にある。Xレジスタ54には、データD[i]が格納されている。   In clock cycle # 1, no transfer operation is performed, and transfer enable signal ECM_EN is at the L level. In this state, selector 362 is set to select data from the corresponding entry, and tristate buffer 364 is in an output high impedance state. The X register 54 stores data D [i].

クロックサイクル♯2において、転送イネーブル信号ECM_ENが活性状態のHレベルに設定される。応じて、セレクタ362が、スイッチ回路360の出力信号を選択する状態に設定され、また、トライステートバッファ364が、活性化される。これにより、Xレジスタ54に保持されているデータD[i]に従って、転送出力信号ECM_OUTがデータD[i]に対応する状態に設定される。   In clock cycle # 2, transfer enable signal ECM_EN is set to an active H level. In response, selector 362 is set to a state for selecting the output signal of switch circuit 360, and tristate buffer 364 is activated. Thereby, the transfer output signal ECM_OUT is set to a state corresponding to the data D [i] according to the data D [i] held in the X register 54.

この転送出力信号ECM_OUTが確定すると、対応のデータ転送配線において出力部からデータが転送され、応じて、各エントリにおいて、個々の転送データ送出部のデータECM_IN_iのデータが確定状態となる。   When the transfer output signal ECM_OUT is determined, data is transferred from the output unit in the corresponding data transfer wiring, and accordingly, the data ECM_IN_i of each transfer data transmission unit is determined in each entry.

この転送出力信号の送信時においては、プリチャージ指示信号/ECM_PRCは、Lレベルであり、スイッチ回路360はプリチャージ状態にある(エントリ選択信号ECM_EN_+1は、非活性状態にある)。   At the time of transmission of this transfer output signal, precharge instruction signal / ECM_PRC is at L level, and switch circuit 360 is in a precharge state (entry selection signal ECM_EN_ + 1 is in an inactive state).

クロックサイクル♯2において、クロック信号CLKXの立下がりに従って、プリチャージ指示信号/ECM_PRCがHレベルの非活性状態となり、また、これと並行して、エントリ選択信号ECM_EN_+1が活性化される。このエントリ選択信号ECM_EN_+1の活性化時には、既に、隣接エントリ(i+1)からトライステートバッファ364を介してデータ転送配線に転送された出力データECM_IN_+1が確定状態にある。従って、スイッチ回路360からの出力データが、転送データECM_IN_+1に対応する状態となる。   In clock cycle # 2, in accordance with the fall of clock signal CLKX, precharge instruction signal / ECM_PRC becomes inactive at the H level, and in parallel with this, entry selection signal ECM_EN_ + 1 is activated. When the entry selection signal ECM_EN_ + 1 is activated, the output data ECM_IN_ + 1 transferred from the adjacent entry (i + 1) to the data transfer wiring via the tristate buffer 364 is already in a definite state. Therefore, the output data from the switch circuit 360 is in a state corresponding to the transfer data ECM_IN_ + 1.

すなわち、隣接エントリ(i+1)からの転送データECM_IN_+1がHレベルのとき、選択スイッチゲートPSQ1において、MOSトランジスタNQ1およびNQ2がともに導通状態となり、ノードNDが接地電圧レベルに駆動される。この状態においては、インバータIV1の出力信号は、Hレベルであり、MOSトランジスタPQ2はオフ状態にあり、ノードNDはLレベルに維持される。一方、隣接エントリ(i+1)からの転送データECM_IN_+1がLレベルのときには、選択スイッチゲートPSQ1は非導通状態であり、ノードNDは、プリチャージ状態の電圧レベルを維持する。ノードNDがHレベルのときには、インバータIV1の出力信号がLレベルとなり、応じて、MOSトランジスタPQ2がオン状態となり、ノードNDは、電源電圧レベルに維持される。   That is, when transfer data ECM_IN_ + 1 from adjacent entry (i + 1) is at the H level, MOS transistors NQ1 and NQ2 are both rendered conductive in selection switch gate PSQ1, and node ND is driven to the ground voltage level. In this state, the output signal of inverter IV1 is at the H level, MOS transistor PQ2 is in the off state, and node ND is maintained at the L level. On the other hand, when transfer data ECM_IN_ + 1 from the adjacent entry (i + 1) is at the L level, the selection switch gate PSQ1 is in a non-conductive state, and the node ND maintains the precharged voltage level. When node ND is at H level, the output signal of inverter IV1 is at L level, and accordingly MOS transistor PQ2 is turned on, and node ND is maintained at the power supply voltage level.

したがって、クロックサイクル♯2のクロック信号CLKXが立下がる後半サイクルにおいて、スイッチ回路360において、隣接エントリ(i+1)からデータ転送配線ECM_IN_+1を介して転送されるデータD[i+1]に応じたデータを生成して、セレクタ362を介してXレジスタ54へ伝達する。   Therefore, in the latter half cycle when clock signal CLKX of clock cycle # 2 falls, switch circuit 360 generates data corresponding to data D [i + 1] transferred from adjacent entry (i + 1) through data transfer wiring ECM_IN_ + 1. To the X register 54 via the selector 362.

Xレジスタ54は、次のクロックサイクル♯3において、クロック信号CLKXが立上がるとラッチ状態となり、その保持データが、転送データD[i+1]に応じた状態に設定される。このクロックサイクル♯3において、プリチャージ指示信号/ECM_PRCが再びLレベルの活性状態とされ、スイッチ回路360のインバータIV2からの出力信号が再びHレベルとなる。また、転送イネーブル信号ECM_ENが非活性状態のLレベルとなり、トライステートバッファ364が出力ハイインピーダンス状態となり、また、セレクタ362が対応のエントリからのデータをXレジスタ54へ転送する状態に設定される。   In the next clock cycle # 3, the X register 54 is in a latched state when the clock signal CLKX rises, and the held data is set in a state corresponding to the transfer data D [i + 1]. In clock cycle # 3, precharge instruction signal / ECM_PRC is again activated to the L level, and the output signal from inverter IV2 of switch circuit 360 again becomes the H level. Further, the transfer enable signal ECM_EN is set to the inactive L level, the tristate buffer 364 is set to the output high impedance state, and the selector 362 is set to a state of transferring data from the corresponding entry to the X register 54.

Xレジスタ54は、通常のラッチ回路またはフリップフロップで構成され、クロック信号CLKXが立ち上がると、内部のデータをラッチする状態に設定されれば良い。クロック信号CLKXの立ち上がり時において、スイッチ回路360が、プリチャージ状態とされ、その出力信号が初期化されても、Xレジスタ54には、このスイッチ回路360からの初期化信号の影響を受けることなく、確実に、転送データがラッチされる。   The X register 54 is configured by a normal latch circuit or flip-flop, and may be set to latch the internal data when the clock signal CLKX rises. Even when the switch circuit 360 is in a precharged state and its output signal is initialized when the clock signal CLKX rises, the X register 54 is not affected by the initialization signal from the switch circuit 360. Certainly, the transfer data is latched.

この図18に示すように、転送サイクル♯2において、エントリiからのデータD[i]を対応のデータ出力部から送信データECM_Outとしてデータ転送配線を介して転送し、次のクロックサイクル♯3において、隣接エントリから転送されたデータD[i+1]をXレジスタ54に保持することができる。   As shown in FIG. 18, in transfer cycle # 2, data D [i] from entry i is transferred as transmission data ECM_Out from the corresponding data output unit via the data transfer wiring, and in next clock cycle # 3. The data D [i + 1] transferred from the adjacent entry can be held in the X register 54.

なお、このエントリ間のデータ移動量は、隣接エントリ間のデータ移動に限定されず、1回の転送動作により、最大256のエントリ間のデータ移動を行なうことができる。   Note that the amount of data movement between entries is not limited to data movement between adjacent entries, and data movement between up to 256 entries can be performed by one transfer operation.

エントリ間のデータ転送移動量が、データ転送配線において設定されたデータ移動量(たとえば±1、±2および±4…±256)と異なる値の場合、この転送サイクルを繰返す(シフトレジスタ態様でデータ転送を行う)ことにより、任意の距離離れたエントリ間のデータ転送(たとえばエントリ+257等の奇数エントリ分離れたエントリとの間での通信)を、実現することができる。これにより、少ないサイクル数で、任意のエントリ間のデータ転送を実現することができる。   When the data transfer movement amount between entries is different from the data movement amount (for example, ± 1, ± 2, and ± 4... ± 256) set in the data transfer wiring, this transfer cycle is repeated (data in the shift register mode). By performing (transfer), data transfer between entries separated by an arbitrary distance (for example, communication with an entry separated by an odd number of entries such as entry +257) can be realized. Thereby, data transfer between arbitrary entries can be realized with a small number of cycles.

また、このエントリ間のデータ転送において、各エントリが並列にデータ転送を行なってデータの取込みを行なっており、効率的なデータ転送を実現することができる。   Further, in the data transfer between the entries, each entry performs data transfer in parallel and takes in data, thereby realizing efficient data transfer.

また、スイッチ回路360においては、オープンドレイン方式でプリチャージされた内部ノードをドライブしており、スイッチ回路360のトランジスタ数を低減することができ、また、高速でデータ転送を行うことが出来る。また、1本のデータ転送配線は、複数のエントリ間データ移動に対応しており、配線領域を低減することができる。   Further, the switch circuit 360 drives an internal node precharged by an open drain method, so that the number of transistors of the switch circuit 360 can be reduced and data transfer can be performed at high speed. In addition, one data transfer wiring corresponds to data movement between a plurality of entries, and the wiring area can be reduced.

[実施の形態2]
図19は、この発明の実施の形態2に従うALU間相互接続スイッチ回路の構成を示す図である。図19においても、1つのエントリに対応して配置されるALU間接続回路の構成を示す。この図19に示すALU間接続回路65は、図17に示すALU間接続回路65と以下の点でその構成が異なる。すなわち、Xレジスタ54とトライステートバッファ364との間に、対応のエントリから読出されたデータとXレジスタ54の保持データとを受けるセレクタ370が設けられる。このセレクタ370は、転送ロードイネーブル信号ECM_LD_ENが活性化されると、対応のエントリから読出したデータを選択してトライステートバッファ364へ与える。この転送ロードイネーブル信号ECM_LD_ENの非活性化時、セレクタ370は、Xレジスタ54の出力するデータを選択してトライステートバッファ364へ与える。
[Embodiment 2]
FIG. 19 shows a configuration of the inter-ALU interconnection switch circuit according to the second embodiment of the present invention. FIG. 19 also shows the configuration of the inter-ALU connection circuit arranged corresponding to one entry. The inter-ALU connection circuit 65 shown in FIG. 19 differs from the inter-ALU connection circuit 65 shown in FIG. 17 in the following points. That is, a selector 370 that receives data read from the corresponding entry and data held in the X register 54 is provided between the X register 54 and the tristate buffer 364. When the transfer load enable signal ECM_LD_EN is activated, the selector 370 selects the data read from the corresponding entry and supplies it to the tristate buffer 364. When the transfer load enable signal ECM_LD_EN is inactivated, the selector 370 selects the data output from the X register 54 and supplies it to the tristate buffer 364.

図19に示すALU間接続回路65の他の構成は、図17に示すALU間接続回路65の構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。   The other configuration of the inter-ALU connection circuit 65 shown in FIG. 19 is the same as the configuration of the inter-ALU connection circuit 65 shown in FIG. 17, and corresponding portions are denoted by the same reference numerals and detailed description thereof is omitted.

図20は、図19に示すALU間相互接続回路のデータ転送動作を示すタイミング図である。この図20においても、隣接エントリ(i+1)からエントリiへのデータ転送時のタイミング図を示す。以下、図20を参照して、図19に示すALU間相互接続回路のデータ転送動作について説明する。   FIG. 20 is a timing chart showing a data transfer operation of the inter-ALU interconnection circuit shown in FIG. FIG. 20 also shows a timing chart at the time of data transfer from the adjacent entry (i + 1) to the entry i. The data transfer operation of the ALU interconnection circuit shown in FIG. 19 will be described below with reference to FIG.

クロックサイクル♯1においては、プリチャージ指示信号/ECM_PRCがLレベルの活性状態であり、一方、転送イネーブル信号ECM_ENおよび転送ロードイネーブル信号ECM_LD_ENは、Lレベルの非活性状態である。セレクタ360は、対応のエントリからのデータを選択する状態に設定され、また、セレクタ370は、Xレジスタ54の保持出力データを選択する状態に設定される。スイッチ回路360は、プリチャージ状態にあり、ノードNDは電源電圧レベルである。   In clock cycle # 1, precharge instruction signal / ECM_PRC is in an active state at an L level, while transfer enable signal ECM_EN and transfer load enable signal ECM_LD_EN are in an inactive state at an L level. The selector 360 is set to select data from the corresponding entry, and the selector 370 is set to select the output data held in the X register 54. Switch circuit 360 is in a precharge state, and node ND is at the power supply voltage level.

クロックサイクル♯2において、対応のエントリからのデータの読出が実施される。この読出時においては、先の図4において説明したビットシリアル演算時と同様にして実行される。すなわち、メモリセルマットにおいてアドレスポインタに従ってワード線が選択され、ついで、センスアンプが活性化され、選択メモリセルのデータが、演算器に向かって転送される(ロード命令が実行される)。   In clock cycle # 2, data is read from the corresponding entry. This reading is executed in the same manner as the bit serial calculation described in FIG. That is, a word line is selected according to the address pointer in the memory cell mat, then the sense amplifier is activated, and the data in the selected memory cell is transferred toward the arithmetic unit (load instruction is executed).

このクロックサイクル♯2において、また、データ読出と並行して、クロック信号CLKXの立上がりと同期して、転送イネーブル信号ECM_ENおよび転送ロードイネーブル信号ECM_LD_ENが活性状態に設定される。プリチャージ指示信号/EMC_PRCは、活性状態にある。応じて、対応のエントリから読出されたデータが、セレクタ370において選択され、トライステートバッファ364により増幅されて、転送出力データECM_OUTとして、対応のエントリから読出データD[i]に対応するデータが出力される。   In clock cycle # 2, and in parallel with data reading, transfer enable signal ECM_EN and transfer load enable signal ECM_LD_EN are set in an active state in synchronization with the rise of clock signal CLKX. Precharge instruction signal / EMC_PRC is in an active state. Accordingly, data read from the corresponding entry is selected by selector 370, amplified by tristate buffer 364, and data corresponding to read data D [i] is output from the corresponding entry as transfer output data ECM_OUT. Is done.

次いで、このクロックサイクル♯2において、クロック信号CLKXの立下がりに同期して、プリチャージ指示信号/ECM_PRCを非活性状態に設定し、またエントリ選択信号ECM_EN_+1を活性状態に設定する。応じて、スイッチ回路360がイネーブルされ、この隣接エントリ(i+1)からデータ転送配線を介して入力部ECM_IN_+1上に伝達されたデータD[i+1]が選択される。このとき、セレクタ362は、転送イネーブル信号ECM_ENに従って、スイッチ回路360の出力信号を選択する状態に設定されており、セレクタ362を介してスイッチ回路360からのデータD[i+1]に応じたデータが、Xレジスタ54へ転送される。   Next, in clock cycle # 2, in synchronization with the fall of clock signal CLKX, precharge instruction signal / ECM_PRC is set to an inactive state, and entry selection signal ECM_EN_ + 1 is set to an active state. Accordingly, the switch circuit 360 is enabled, and the data D [i + 1] transmitted from the adjacent entry (i + 1) to the input unit ECM_IN_ + 1 via the data transfer wiring is selected. At this time, the selector 362 is set to select the output signal of the switch circuit 360 in accordance with the transfer enable signal ECM_EN, and the data corresponding to the data D [i + 1] from the switch circuit 360 via the selector 362 is Transferred to the X register 54.

このクロックサイクル♯2においてクロック信号CLKXがLレベルに立下がると、Xレジスタ54は、スルー状態となり、与えられたデータを取り込む。クロックサイクル♯3において、クロック信号CLKXがHレベルに立上がると、Xレジスタ54が、取り込んだデータをラッチし、その保持データが、データD[i+1]に確定する。   When clock signal CLKX falls to L level in clock cycle # 2, X register 54 enters a through state and takes in the applied data. In clock cycle # 3, when clock signal CLKX rises to H level, X register 54 latches the fetched data, and the retained data is determined as data D [i + 1].

したがって、この場合、クロックサイクル♯2において、メモリセルマットからのデータ読出と、エントリ間通信を行なったことになる。これにより、Xレジスタ54に、一旦転送データを保持させる動作が不要となり、エントリ間通信に要するクロックサイクル数を低減することができる。   In this case, therefore, data read from the memory cell mat and inter-entry communication are performed in clock cycle # 2. As a result, the operation of once holding the transfer data in the X register 54 becomes unnecessary, and the number of clock cycles required for inter-entry communication can be reduced.

以上のように、Xレジスタ54をバイパスして、対応のエントリからのデータに従って、転送データを生成して、データ転送配線経路のデータ出力部へ転送することにより、X
レジスタに転送データを格納するサイクルが不要となり、高速のエントリ間通信を実現することができる。
As described above, by bypassing the X register 54, transfer data is generated according to the data from the corresponding entry, and transferred to the data output unit of the data transfer wiring path.
A cycle for storing transfer data in a register is not required, and high-speed communication between entries can be realized.

なお、このエントリ指定信号ECM_EN_kおよびエントリ転送指示信号ECM_ENおよびプリチャージ指示信号/ECM_PRCは、先の図1に示すコントローラ22からプログラム命令(マイクロ命令メモリ)21に格納された命令に従って生成される。   The entry designation signal ECM_EN_k, the entry transfer instruction signal ECM_EN, and the precharge instruction signal / ECM_PRC are generated according to the instruction stored in the program instruction (microinstruction memory) 21 from the controller 22 shown in FIG.

また、演算器の構成としては、Xレジスタ、XHレジスタおよびXLレジスタを含む図8に示す構成の場合、およびXレジスタのみがデータ転送用に設けられる図6に示す構成のいずれが用いられても良い。演算器内のデータ転送用のレジスタに対して図17または図19に示す構成を設ける。   As the configuration of the arithmetic unit, either the configuration shown in FIG. 8 including the X register, the XH register, and the XL register, or the configuration shown in FIG. 6 in which only the X register is provided for data transfer may be used. good. The configuration shown in FIG. 17 or FIG. 19 is provided for the register for data transfer in the arithmetic unit.

この実施の形態2に従うALU間接続回路の構成においても、1本のデータ転送配線の通信可能エントリ以外のエントリとの間でデータ転送を行う場合、データ転送動作を繰返し実行する。すなわち、転送エントリ選択信号ECM_EN_±jを順次jを設定してデータ転送サイクル(サイクル♯2の動作)を行うことにより、転送データを順次シフトして転送して目標エントリに転送することができ、任意のエントリ間でのデータ通信を実現することができる。   Also in the configuration of the inter-ALU connection circuit according to the second embodiment, when data transfer is performed with an entry other than the communicable entry on one data transfer wiring, the data transfer operation is repeatedly executed. That is, by sequentially setting the transfer entry selection signal ECM_EN_ ± j to j and performing a data transfer cycle (operation in cycle # 2), the transfer data can be sequentially shifted and transferred to the target entry. Data communication between arbitrary entries can be realized.

以上のように、このエントリ間の通信機能を利用することにより、メモリセルマットに格納されたデータを、たとえばバルブシフタを用いた場合と同様に、エントリ間をシフトさせることができ、シフトレジスタを用いたデータ転送と同様のデータ転送動作を実現することができる。このデータ転送機能を利用することにより、データのコピー操作、画像データ処理において画素マトリクスを利用するフィルタ処理等での隣接画素データを利用する演算等を高速で実行することが可能となる。   As described above, by using the communication function between the entries, the data stored in the memory cell mat can be shifted between the entries as in the case of using a valve shifter, for example. Data transfer operation similar to the data transfer that has been performed can be realized. By using this data transfer function, it is possible to execute data copy operations, calculations using adjacent pixel data in filter processing using a pixel matrix in image data processing, and the like at high speed.

この発明は、メモリセルマットが複数のエントリに分割され、エントリに対応して演算器が配置される半導体演算処理装置に適用することにより、小配線レイアウト面積で高速にデータを転送して演算処理を行なう、多機能の高速演算処理装置を実現することができる。   The present invention is applied to a semiconductor arithmetic processing unit in which a memory cell mat is divided into a plurality of entries, and an arithmetic unit is arranged corresponding to the entry, thereby transferring data at high speed with a small wiring layout area. It is possible to realize a multi-functional high-speed arithmetic processing device.

この半導体演算処理装置は、画像データまたは音声データなどの大量のデータの処理用途に適用することにより、フィルタ処理などの、エントリ間のデータを用いて処理を行なう場合に、高速演算処理を実現することができる。   This semiconductor arithmetic processing device is applied to processing a large amount of data such as image data or audio data, thereby realizing high-speed arithmetic processing when processing is performed using data between entries such as filter processing. be able to.

この発明に従うエントリ間転送回路が適用される半導体演算処理装置の全体の構成を概略的に示す図である。1 is a diagram schematically showing an overall configuration of a semiconductor processing unit to which an interentry transfer circuit according to the present invention is applied. FIG. 図1に示す主演算回路の構成を概略的に示す図である。FIG. 2 is a diagram schematically showing a configuration of a main arithmetic circuit shown in FIG. 1. 図2に示す主演算回路における演算シーケンスを模式的に示す図である。FIG. 3 is a diagram schematically showing an arithmetic sequence in the main arithmetic circuit shown in FIG. 2. 図2に示す主演算回路における演算処理シーケンスの内部タイミングを示す図である。FIG. 3 is a diagram showing an internal timing of an arithmetic processing sequence in the main arithmetic circuit shown in FIG. 2. 図1に示すコントローラの制御態様を概略的に示す図である。It is a figure which shows roughly the control aspect of the controller shown in FIG. 図1に示す演算器の構成の一例を示す図である。It is a figure which shows an example of a structure of the calculator shown in FIG. 図6に示す演算器を用いる際のエントリ間データ移動を行なう命令を一覧にして示す図である。FIG. 7 is a diagram showing a list of commands for performing data movement between entries when the arithmetic unit shown in FIG. 6 is used. 図1に示す演算器の他の構成を概略的に示す図である。It is a figure which shows schematically the other structure of the calculator shown in FIG. 図8に示す演算器の2ビット演算時の接続を示す図である。It is a figure which shows the connection at the time of 2-bit calculation of the calculator shown in FIG. 図8に示す演算器の1ビット演算時の内部接続を示す図である。It is a figure which shows the internal connection at the time of 1 bit calculation of the calculator shown in FIG. 図8に示す主演算器を用いるエントリ間データ移動を指定する命令を一覧して示す図である。FIG. 9 is a diagram showing a list of instructions for designating data movement between entries using the main arithmetic unit shown in FIG. 8. 図8に示す演算器の2ビット動作時のエントリ間データ移動の命令を一覧して示す図である。FIG. 9 is a diagram showing a list of data movement instructions between entries when the arithmetic unit shown in FIG. この発明の実施の形態1に従うALU間相互接続スイッチ回路の配線を概略的に示す図である。It is a figure which shows roughly the wiring of the inter-ALU interconnection switch circuit according to Embodiment 1 of this invention. 図13に示す配線レイアウトにおけるXレジスタのデータ転送時のレジスタ値を一覧にして示す図である。FIG. 14 is a diagram showing a list of register values at the time of data transfer of the X register in the wiring layout shown in FIG. 13. 図13に示す配線レイアウトのメモリセルマット両端部のエントリ間のデータ転送経路を概略的に示す図である。FIG. 14 schematically shows a data transfer path between entries at both ends of the memory cell mat in the wiring layout shown in FIG. 13. この発明の実施の形態1に従うALU間相互接続スイッチ回路と演算器との配線接続の構成を概略的に示す図である。It is a figure which shows roughly the structure of the wiring connection of the inter-ALU interconnection switch circuit and arithmetic unit according to Embodiment 1 of this invention. 図16に示すALU間相互接続回路65の構成を概略的に示す図である。FIG. 17 schematically shows a configuration of an ALU interconnection circuit 65 shown in FIG. 16. 図17に示すALU間相互接続回路の動作を示すタイミング図である。FIG. 18 is a timing chart showing an operation of the inter-ALU interconnection circuit shown in FIG. 17. この発明の実施の形態2に従うALU間接続回路(エントリ間転送回路)の構成を概略的に示す図である。It is a figure which shows roughly the structure of the connection circuit between ALUs (inter-entry transfer circuit) according to Embodiment 2 of this invention. 図19に示すALU間相互接続回路の動作を示すタイミング図である。FIG. 20 is a timing diagram showing an operation of the inter-ALU interconnection circuit shown in FIG. 19.

符号の説明Explanation of symbols

1 演算処理システム、2 システムLSI、FB1−FBh 基本演算ブロック、20 主演算回路、30 メモリセルマット、31 演算器(ALU)、32 ALU間相互接続用スイッチ回路、22 コントローラ、54 Xレジスタ、65 ALU間接続回路、300 データ転送配線、XP1,XP2,XP4,XN1,XN2,XN4 転送データ送出部、320 単位配線領域、330p,330n メモリセルエントリ端部間シフト動作用配線、305a,305h,305l 転送データ出力部、340a,340h,340l 転送配線束、350a,350h,350l 転送データ入力部、360 スイッチ回路、362 セレクタ、364 トライステートバッファ、PSQ256,PSQ1,NSQ1,NSQ256 選択スイッチゲート、370 セレクタ。   1 arithmetic processing system, 2 system LSI, FB1-FBh basic arithmetic block, 20 main arithmetic circuit, 30 memory cell mat, 31 arithmetic unit (ALU), 32 ALU interconnection switch circuit, 22 controller, 54 X register, 65 ALU connection circuit, 300 data transfer wiring, XP1, XP2, XP4, XN1, XN2, XN4 transfer data sending section, 320 unit wiring area, 330p, 330n wiring for shifting operation between memory cell entry ends, 305a, 305h, 305l Transfer data output unit, 340a, 340h, 340l Transfer wiring bundle, 350a, 350h, 350l Transfer data input unit, 360 switch circuit, 362 selector, 364 tristate buffer, PSQ256, PSQ1, NSQ1, NSQ256 selection Tchigeto, 370 selector.

Claims (5)

各々が複数のメモリセルを有する複数のエントリに分割されるメモリアレイ、
前記エントリに対応して配置され、各々が与えられたデータに対して演算処理を行なう複数の演算器、および
前記複数のエントリ間でデータを転送する転送回路を備え、
前記転送回路は、
前記エントリに対応して配置され、各々が対応のエントリのデータを異なる複数の別のエントリのいずれかに転送する複数の転送配線経路を備え、各前記転送配線経路は、前記対応のエントリのデータを受けるデータ出力部と、前記異なる複数の別のエントリそれぞれに結合される複数のデータ送出部とを有し、転送データが前記データ出力部から前記データ送出部に向かって転送され、
前記複数の転送配線経路は、第2の方向において整列しかつ第1の方向においては1エントリ分前記データ出力部がずれるように前記第2の方向において複数列に配置される、半導体演算処理装置。
A memory array that is divided into a plurality of entries, each having a plurality of memory cells;
A plurality of arithmetic units arranged corresponding to the entries, each for performing arithmetic processing on given data; and
A transfer circuit for transferring data between the plurality of entries;
The transfer circuit includes:
A plurality of transfer wiring paths arranged corresponding to the entries, each of which transfers the data of the corresponding entry to one of a plurality of different entries, and each of the transfer wiring paths includes data of the corresponding entry Receiving the data output unit and a plurality of data sending units coupled to each of the different plurality of different entries, transfer data is transferred from the data output unit toward the data sending unit,
Wherein the plurality of transfer lines path is aligned in a second direction and in the first direction are arranged in a plurality of rows in the as one entry the data output unit is shifted a second direction, the semi-conductor processing apparatus.
各々が複数のメモリセルを有する複数のエントリに分割されるメモリアレイ、
前記エントリに対応して配置され、各々が与えられたデータに対して演算処理を行なう複数の演算器、および
前記複数のエントリ間でデータを転送する転送回路を備え、
前記転送回路は、
前記エントリに対応して配置され、各々が対応のエントリのデータを異なる複数の別のエントリのいずれかに転送する複数の転送配線経路を備え、各前記転送配線経路は、前記対応のエントリのデータを受けるデータ出力部と、前記異なる複数の別のエントリそれぞれに結合される複数のデータ送出部とを有し、転送データが前記データ出力部から前記データ送出部に向かって転送され、
前記転送回路において、1つのエントリに対応して複数の転送配線経路の送出部が配置され、
各前記演算器は、レジスタ回路を含み、
前記転送回路は、さらに、
各前記エントリに対応して配置され、対応の複数の転送配線経路の送出部に結合され、選択信号に従って1つの送出部を選択し、該選択された送出部の転送配線経路上を伝達された信号に対応する信号を生成するスイッチ回路と、
対応のエントリからのデータと前記スイッチ回路の出力データとを受け、転送指示に従って前記スイッチ回路の出力データを前記レジスタ回路へ転送し、かつ転送不指示に従って前記対応のエントリからのデータを前記レジスタ回路へ転送する選択回路と、
前記転送指示に従って前記レジスタ回路からの保持データを対応の転送経路の出力部に伝達する伝達回路とを備える、半導体演算処理装置。
A memory array that is divided into a plurality of entries, each having a plurality of memory cells;
A plurality of arithmetic units arranged corresponding to the entries, each for performing arithmetic processing on given data; and
A transfer circuit for transferring data between the plurality of entries;
The transfer circuit includes:
A plurality of transfer wiring paths arranged corresponding to the entries, each of which transfers the data of the corresponding entry to one of a plurality of different entries, and each of the transfer wiring paths includes data of the corresponding entry Receiving the data output unit and a plurality of data sending units coupled to each of the different plurality of different entries, transfer data is transferred from the data output unit toward the data sending unit,
In the transfer circuit, a plurality of transfer wiring path sending units are arranged corresponding to one entry,
Each of the arithmetic units includes a register circuit,
The transfer circuit further includes:
Arranged corresponding to each of the entries, coupled to the transmission unit of the corresponding plurality of transfer wiring paths, selected one transmission unit according to the selection signal, and transmitted on the transfer wiring path of the selected transmission unit A switch circuit that generates a signal corresponding to the signal;
The data from the corresponding entry and the output data of the switch circuit are received, the output data of the switch circuit is transferred to the register circuit according to a transfer instruction, and the data from the corresponding entry is transferred to the register circuit according to a transfer non-instruction A selection circuit to transfer to,
The transfer data held from the register circuit in accordance with an instruction and a transmission circuit for transmitting the output of the corresponding transfer path, semiconductors processor.
各々が複数のメモリセルを有する複数のエントリに分割されるメモリアレイ、
前記エントリに対応して配置され、各々が与えられたデータに対して演算処理を行なう複数の演算器、および
前記複数のエントリ間でデータを転送する転送回路を備え、
前記転送回路は、
前記エントリに対応して配置され、各々が対応のエントリのデータを異なる複数の別のエントリのいずれかに転送する複数の転送配線経路を備え、各前記転送配線経路は、前記対応のエントリのデータを受けるデータ出力部と、前記異なる複数の別のエントリそれぞれに結合される複数のデータ送出部とを有し、転送データが前記データ出力部から前記データ送出部に向かって転送され、
前記転送回路において、1つのエントリに対応して複数の転送配線経路の送出部が配置され、
各前記演算器は、レジスタ回路を含み、
前記転送回路は、さらに、
エントリに対応して配置され、対応の複数の転送配線経路の送出部に結合され、選択信号に従って1つの送出部を選択し、該選択された送出部の伝達信号に対応する信号を生成するスイッチ回路と、
前記対応のエントリからのデータと前記スイッチ回路の出力データとを受け、転送指示に従って前記スイッチ回路の出力データを前記レジスタ回路へ転送しかつ転送不指示に従って前記対応のエントリからのデータを前記レジスタ回路へ転送する第1の選択回路と、
前記レジスタ回路の保持データと前記対応のエントリからのデータとを受け、選択転送指示信号の活性化に従って対応のエントリからのデータを転送する第2の選択回路と、
前記転送指示に従って前記第2の選択回路から与えられたデータを対応の転送経路の出力部に伝達する伝達回路とを備える、半導体演算処理装置。
A memory array that is divided into a plurality of entries, each having a plurality of memory cells;
A plurality of arithmetic units arranged corresponding to the entries, each for performing arithmetic processing on given data; and
A transfer circuit for transferring data between the plurality of entries;
The transfer circuit includes:
A plurality of transfer wiring paths arranged corresponding to the entries, each of which transfers the data of the corresponding entry to one of a plurality of different entries, and each of the transfer wiring paths includes data of the corresponding entry Receiving the data output unit and a plurality of data sending units coupled to each of the different plurality of different entries, transfer data is transferred from the data output unit toward the data sending unit,
In the transfer circuit, a plurality of transfer wiring path sending units are arranged corresponding to one entry,
Each of the arithmetic units includes a register circuit,
The transfer circuit further includes:
A switch that is arranged corresponding to an entry, is coupled to a transmission unit of a plurality of corresponding transfer wiring paths, selects one transmission unit according to a selection signal, and generates a signal corresponding to the transmission signal of the selected transmission unit Circuit,
The data from the corresponding entry and the output data of the switch circuit are received, the output data of the switch circuit is transferred to the register circuit according to a transfer instruction, and the data from the corresponding entry is transferred to the register circuit according to a transfer non-instruction A first selection circuit to transfer to
A second selection circuit that receives the data held in the register circuit and the data from the corresponding entry, and transfers the data from the corresponding entry in accordance with the activation of the selection transfer instruction signal;
And a transmission circuit for transmitting the data applied from the second selection circuit in accordance with the transfer instruction to the output of the corresponding transfer path, semiconductors processor.
前記スイッチ回路は、
プリチャージ指示信号の活性化に従って内部ノードを所定のプリチャージ電圧にプリチャージするプリチャージ素子と、
前記複数の送出部それぞれに対応して設けられ、エントリ選択信号と対応の送出部の信号に従って前記内部ノードを選択的に前記プリチャージ電圧と異なる電圧レベルに駆動する複数の選択スイッチゲートとを備える、請求項またはに記載の半導体演算処理装置。
The switch circuit is
A precharge element for precharging the internal node to a predetermined precharge voltage in accordance with the activation of the precharge instruction signal;
A plurality of selection switch gates provided corresponding to each of the plurality of sending units and selectively driving the internal node to a voltage level different from the precharge voltage in accordance with an entry selection signal and a signal from the corresponding sending unit; 4. A semiconductor processing apparatus according to claim 2 or 3 .
各前記選択スイッチゲートは、前記内部ノードと基準電位を与えるノードとの間に直列に接続され、それぞれのゲートに前記エントリ選択信号および前記対応の送出部の信号を受ける第1および第2のトランジスタ素子を備える、請求項記載の半導体演算処理装置。 Each of the selection switch gates is connected in series between the internal node and a node for applying a reference potential, and the first and second transistors receive the entry selection signal and the signal from the corresponding sending unit at the respective gates. The semiconductor arithmetic processing apparatus of Claim 4 provided with an element.
JP2006018762A 2006-01-27 2006-01-27 Semiconductor processing unit Expired - Fee Related JP4989899B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006018762A JP4989899B2 (en) 2006-01-27 2006-01-27 Semiconductor processing unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006018762A JP4989899B2 (en) 2006-01-27 2006-01-27 Semiconductor processing unit

Publications (2)

Publication Number Publication Date
JP2007200090A JP2007200090A (en) 2007-08-09
JP4989899B2 true JP4989899B2 (en) 2012-08-01

Family

ID=38454638

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006018762A Expired - Fee Related JP4989899B2 (en) 2006-01-27 2006-01-27 Semiconductor processing unit

Country Status (1)

Country Link
JP (1) JP4989899B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210018952A1 (en) * 2017-06-02 2021-01-21 Ultramemory Inc. Semiconductor module
KR20200066953A (en) * 2018-12-03 2020-06-11 삼성전자주식회사 Semiconductor memory device employing processing in memory (PIM) and operating method for the same

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04295953A (en) * 1991-03-25 1992-10-20 Nippon Telegr & Teleph Corp <Ntt> Parallel data processor with built-in two-dimensional array of element processor and sub-array unit of element processor
JPH0936328A (en) * 1995-07-14 1997-02-07 Hitachi Ltd Dynamic ram
JP3627953B2 (en) * 1997-08-22 2005-03-09 日本電信電話株式会社 PE array device and associative memory block
US6032248A (en) * 1998-04-29 2000-02-29 Atmel Corporation Microcontroller including a single memory module having a data memory sector and a code memory sector and supporting simultaneous read/write access to both sectors
JP3971535B2 (en) * 1999-09-10 2007-09-05 株式会社リコー SIMD type processor
JP3971543B2 (en) * 2000-01-19 2007-09-05 株式会社リコー SIMD type processor
JP2001273788A (en) * 2000-03-29 2001-10-05 Hitachi Ltd Semiconductor memory
JP2001306395A (en) * 2000-04-25 2001-11-02 Seiko Epson Corp Cache device, semiconductor device, microcomputer, and electronic equipment
GB2370381B (en) * 2000-12-19 2003-12-24 Picochip Designs Ltd Processor architecture
JP2002207706A (en) * 2001-01-09 2002-07-26 Ricoh Co Ltd Simd type micro-processor for calculating totalized value among processor elements and for detecting peak
JP3837293B2 (en) * 2001-01-11 2006-10-25 株式会社リコー SIMD type microprocessor having constant selection function
JP2003186854A (en) * 2001-12-20 2003-07-04 Ricoh Co Ltd Simd processor and verification apparatus thereof
JP2004030438A (en) * 2002-06-27 2004-01-29 Renesas Technology Corp Microcomputer
US7079148B2 (en) * 2003-07-23 2006-07-18 Hewlett-Packard Development Company, L.P. Non-volatile memory parallel processor

Also Published As

Publication number Publication date
JP2007200090A (en) 2007-08-09

Similar Documents

Publication Publication Date Title
US20210004237A1 (en) Generating and executing a control flow
US7791962B2 (en) Semiconductor device and semiconductor signal processing apparatus
US9990967B2 (en) Apparatuses and methods for performing corner turn operations using sensing circuitry
US20210232397A1 (en) Mask patterns generated in memory from seed vectors
US11526355B2 (en) Smallest or largest value element determination
JP4989900B2 (en) Parallel processing unit
US10878856B2 (en) Data transfer between subarrays in memory
US8077492B2 (en) Semiconductor memory device
US20060101231A1 (en) Semiconductor signal processing device
US20060143428A1 (en) Semiconductor signal processing device
US10388333B2 (en) Apparatuses and methods to selectively perform logical operations
RU98110876A (en) NEUROPROCESSOR, DEVICE FOR CALCULATING SATURATION FUNCTIONS, COMPUTING DEVICE AND SUMMER
JP7264897B2 (en) Memory device and method for controlling same
US20110072170A1 (en) Systems and Methods for Transferring Data to Maintain Preferred Slot Positions in a Bi-endian Processor
KR20220051006A (en) Method of performing PIM (PROCESSING-IN-MEMORY) operation, and related memory device and system
JP4989899B2 (en) Semiconductor processing unit
US10622034B2 (en) Element value comparison in memory
JP2007004542A (en) Semiconductor signal processing device
JP2006350907A (en) Simd type microprocessor, data transfer unit, and data conversion unit
JPS62156742A (en) Data writing control system
JP2011192305A (en) Semiconductor signal processor
US10043570B1 (en) Signed element compare in memory
JP2004192405A (en) Simd type processor
JPH0869407A (en) Processor with data memory
JP2006260381A (en) Arithmetic processing unit

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081111

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120228

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120403

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: 20120424

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120501

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees