JP2007200090A - Semiconductor processor - Google Patents
Semiconductor processor Download PDFInfo
- Publication number
- JP2007200090A JP2007200090A JP2006018762A JP2006018762A JP2007200090A JP 2007200090 A JP2007200090 A JP 2007200090A JP 2006018762 A JP2006018762 A JP 2006018762A JP 2006018762 A JP2006018762 A JP 2006018762A JP 2007200090 A JP2007200090 A JP 2007200090A
- Authority
- JP
- Japan
- Prior art keywords
- data
- transfer
- entry
- circuit
- entries
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 239000004065 semiconductor Substances 0.000 title claims abstract description 20
- 238000012546 transfer Methods 0.000 claims abstract description 211
- 230000005540 biological transmission Effects 0.000 claims abstract description 24
- 238000012545 processing Methods 0.000 claims description 107
- 230000004913 activation Effects 0.000 claims 2
- 238000004364 calculation method Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 21
- 239000000872 buffer Substances 0.000 description 12
- 238000000034 method Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 239000011159 matrix material Substances 0.000 description 4
- 101100257073 Schizosaccharomyces pombe (strain 972 / ATCC 24843) cwf5 gene Proteins 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Landscapes
- Static Random-Access Memory (AREA)
- Microcomputers (AREA)
- Memory System (AREA)
Abstract
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
また、特許文献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
また、特許文献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
この特許文献3においては、また、演算器と、共通データバスとを設け、この共通のデータバスを、所定数単位で分割し、各分割されたグループ内のプロセッサエレメントにおいて分割共通データバスを介してデータを転送して、総和値算出およびピーク値算出などの演算を高速に実行することを図る。
In this
また、特許文献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
また、特許文献5(特開2003−186854号公報)は、プロセッサエレメントの内部データを外部からモニタすることを目的とするSIMD型プロセッサを開示する。この特許文献5に示される構成においては、各プロセッサエレメントにおいて演算レジスタの内容を複写して格納するミラーレジスタを設け、プロセッサエレメントをアドレス指定することにより、このミラーレジスタに対し外部からアクセス可能とする。
処理対象のデータ量が非常に多い場合には、専用の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
この特許文献1において、さらに、演算処理時において、プロセッサエレメントの演算データを、異なるプロセッサエレメント間で転送する場合、マルチプレクサを用いて、所定の範囲のプロセッサエレメント(±3隣接プロセッサエレメント)の間でデータ転送を行なう構成が示されている。このマルチプレクサにより、各プロセッサエレメントにおいて、異なる列のプロセッサエレメントのレジスタのデータを選択して演算処理を行なう。データ転送時各マルチプレクサにおいて選択経路を同じとするために、各プロセッサエレメントのレジスタファイルのレジスタの出力線が結合される共通データバス線が異なる(1つの列のレジスタを、7隣接演算器で択一的に使用するために、隣接列のレジスタが異なるバス線に接続される)。このレジスタファイルの出力信号線と共通データバスの接続
に応じて、各マルチプレクサと共通データバスのバス線との接続が変更される。このため、各プロセッサエレメント内においてマルチプレクサに対する配線が複雑となり、配線が錯綜するという問題が生じる。また、ある列のレジスタのデータを転送することの出来る範囲は、固定されており、任意のプロセッサエレメント間でのデータ転送を行う構成は示されていない。
In this
特許文献2においては、データ転送を高速に行なうために、各プロセッサエレメントに選択信号を与え、選択されたプロセッサエレメントに対してデータの書込/読出を行なう。この特許文献2においても、レジスタファイル内のレジスタに対するデータの書込/読出を行なう構成に加えて、異なる列のプロセッサエレメント間のデータ転送時には、特許文献1と同様にマルチプレクサが用いられる。従って、内部の配線が錯綜するという問題が生じ、また、任意のプロセッサエレメント間でデータを転送することは困難である。
In
特許文献3に示される構成においては、プロセッサエレメントに共通に設けられるデータバスを複数のセグメントに分割し、各分割データバスを介して演算器間でデータを転送する。しかしながら、この場合、1つのプロセッサエレメントから別のプロセッサエレメントに対するデータ転送が、各分割データバスにおいて実行されて、順次加算などの処理が行なわれており、各プロセッサエレメントが、有効な演算処理を各サイクルにおいて行なわれてはいない。従って、総和値演算またはピーク値演算などの処理においては適用することができるものの、通常のコピー操作などのデータ転送を行なって演算処理を行なう構成に対しては適用することは、困難である。また、この特許文献3においても、分割データバスのデータ線の選択は、マルチプレクサを用いて行なわれており、特許文献1および2と同様に、内部配線が錯綜するという問題が生じる。
In the configuration disclosed in
また、特許文献4に示される構成においては、プロセッサエレメントをアドレス指定して、グローバルプロセッサのレジスタのデータを、選択されたプロセッサエレメント内のレジスタに転送している。しかしながら、この特許文献4においても、プロセッサエレメント間のデータ転送はマルチプレクサを用いて行なわれており、特許文献1から3と同良いうに内部配線が錯綜し、またデータの転送範囲が制限される。
In the configuration disclosed in
特許文献5に示される構成においては、単に、レジスタファイル内にミラーレジスタを設けて、外部からこのミラーレジスタのデータを、演算処理時においてもモニタすることを図っている。プロセッサエレメント間のデータ転送は、先の特許文献1から4と同様、マルチプレクサを用いて実行されているだけであり、内部配線が錯綜し、また、データ転送範囲が制限される。
In the configuration disclosed in
一般に、演算器が複数個設けられている並列演算器において、任意の演算器間でデータ転送を行なう場合、転送距離に応じて、各プロセッサエレメントの演算器にデータ転送配線を複数配置する必要があり、配線面積が増大する。この結果、上述の特許文献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
それゆえ、この発明の目的は、任意の演算器間でデータを高速に転送することのできる小占有面積の転送回路を備える半導体演算処理装置を提供することである。 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
システムLSI2は、内部システムバス7に並列に結合される基本演算ブロックFB1−FBhと、これらの基本演算ブロックFB1−FBhの処理動作を制御するホストCPU8と、信号処理システム1の外部からの入力信号INを内部処理用データに変換する入力ポート9と、内部システムバス7から与えられた内部出力データを受けて、システム外部への出力データOUTを生成する出力ポート10を含む。これらの入力ポート9および出力ポート10は、たとえばライブラリ化されたIP(インテレクチャル・プロパティ)ブロックで構成され、データ/信号の入出力に必要な機能を実現する。
The
システムLSI2は、さらに、基本演算ブロックFB1−FBhからの割込要求を受付け、ホストCPU8に対して割込を通知する割込コントローラ11と、ホストCPU8の各処理に必要な制御動作を行なうCPU周辺12と、基本演算ブロックFB1−FBhからの転送要求に従って外部メモリに対するデータ転送を行なうDMA(ダイレクト・メモリ・アクセス)コントローラ13と、ホストCPU8またはDMAコントローラ13からの指示に従って、外部システムバス3に接続されるメモリ4−6に対するアクセス制御を行なう外部バスコントローラ14と、ホストCPU8のデータ処理を補助する専用ロジック15とを含む。
The
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
基本演算ブロック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
主演算回路20は、複数のメモリセルが行列状に配列されかつ複数のエントリに分割されるメモリセルマット30と、メモリセルマット30のエントリに対応して配置され、指定された演算処理を行なう演算器(ALU)31と、演算器31間のデータ転送経路を設定するALU間相互接続用スイッチ回路32を含む。
The main
基本的に、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
ALU間相互接続用スイッチ回路32により、演算器31の接続経路が切換えられ、異なったエントリのデータの演算が可能となる。各エントリに異なるデータを格納し、演算器31により並列演算処理を行なうことにより、高速にデータ処理を行なうことができる。
The inter-ALU
コントローラ22は、マイクロ命令メモリ21に格納されるマイクロ命令に従って、マイクロプログラム方式に従った動作を行なう。このマイクロプログラム動作に必要なワークデータが、ワークデータメモリ23に格納される。
The
システムバスI/F24により、ホストCPU8またはDMAコントローラ13が、メモリセルマット30、コントローラ22内の制御レジスタ、マイクロ命令メモリ21およびワークデータメモリ23へアクセスすることが可能となる。
The system bus I /
基本演算ブロック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
各割付けられたアドレスに従って、ホストCPU8およびDMAコントローラ13が、アクセス対象の基本演算ブロックFBi(FB1−FBhのいずれか)を識別し、該アクセス対象の基本演算ブロックに対するアクセスを実行する。
According to each assigned address, the
図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
エントリERYそれぞれに対応して、演算器(ALU)31が、演算処理ユニット35において配置される。この演算器31は、加算、論理積、一致検出(EXOR)、および反転(NOT)などの演算を実行することができる。
Corresponding to each entry ERY, an arithmetic unit (ALU) 31 is arranged in the
エントリERYと対応の演算器31との間でのデータのロード(メモリセルマット30から演算処理ユニット35へのデータの転送)およびストア(演算処理ユニット35からメモリセルマット30へのデータの転送および格納)を行なって演算処理を実行する。エントリERYには、多ビットデータの各ビットが格納される。
Data load (transfer of data from the
演算器ユニット35に対してALU相互接続用スイッチ回路32が配置される。このALU相互接続用スイッチ回路32により演算器31間のデータ転送を実現する。
An ALU
演算器31は、ビットシリアルな態様(多ビットデータワードをビット単位で逐次処理する態様)で演算処理を実行する。演算処理ユニット35においては、データワードについてビットシリアル態様でかつ複数のエントリERYのデータが並行して処理されるエントリパラレルな態様でデータの演算処理が実行される。
The
このエントリ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
主演算回路20において演算を行なう場合には、基本的に、先ず、エントリERY各々に演算対象のデータを格納する。次いで、格納されたデータのある桁のビットをすべてのエントリERYについて並列に読出して、対応の演算器31へ転送(ロード)する。二項演算の場合には、各エントリERYにおいて、別のデータワードのビットに対しても同様の転送を行なった後、各演算器31において2入力演算を行なう。この演算処理結果は、演算器31から対応のエントリERY内の所定の領域に再書込(ストア)される。
When the main
図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
図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
演算は、下位側ビットから順にビットシリアル態様で行なわれる。また、エントリ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
この加算処理は、次いで、上位ビット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
図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
マシンサイクル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
マシンサイクル(k+2)において、演算器31の加算器(ADD)において、読出されたデータビットa[i]およびb[i]の加算処理が行なわれる。マシンサイクル(k+3)において、この加算結果c[i]が、対応のエントリの対応のビット位置に書込まれる。
In the machine cycle (k + 2), the adder (ADD) of the
次のマシンサイクル(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
メモリセルマット30と演算器31の間のデータビットの転送に、それぞれ1マシンサイクルが必要とされ、演算器31において1マシンサイクルの演算サイクルが必要とされる。したがって、1ビットデータの加算および加算結果の格納を行なうために、4マシンサイクルが必要となる。メモリセルマット30を、複数のエントリERYに分割し、各エントリに演算対象データの組をそれぞれ格納し、対応の演算器31においてビットシリアル態様で演算処理を行なう方式の特徴は、1つ1つのデータ演算には、比較的多くのマシンサイクルが必要とされるものの、処理すべきデータ量が非常に多い場合には、演算の並列度を高くすることにより高速データ処理を実現することができるということである。
Transfer of data bits between the
たとえば、演算対象のデータワードのビット幅が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
[演算器の構成1]
図6は、図1に示す演算器(31)の構成および1つの演算器に関連する部分の構成を概略的に示す図である。図6において、演算器(ALU)31は、指定された演算処理を行なう算術演算論理回路50と、対応のエントリから読出されたデータまたは算術演算論理回路50の演算処理結果データまたは対応のエントリへ転送するデータを一時的に格納するXレジスタ54と、加演算処理時のキャリーまたはボローを格納するCレジスタ56と、この算術演算論理回路50の演算処理の禁止を指定するマスクデータを格納するMレジスタ58を含む。
[
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
エントリと演算器の間には、センスアンプ62およびライトドライバ60が設けられる。これらのセンスアンプ62およびライトドライバ60は、対応のエントリのビット線対BLPに結合される。センスアンプ62は、対応のエントリのメモリセルから読出されるデータを増幅し、その増幅データを内部データ転送線200を介してXレジスタ54へ転送する。ライトドライバ60は、Xレジスタ54に格納されたデータをバッファ処理して、対応のエントリのメモリセルへ対応のビット線対BLPを介して書込む。
A
この算術演算論理回路50は、加算(ADD)、論理積(AND)、論理和(OR)、排他的論理和(EXOR)、反転(NOT)等の演算を実行することができ、その演算内
容が、先の図5に示すコントローラ22からの制御信号(ALU制御)により設定される。Mレジスタ58に格納されるマスクデータにより、この演算器31における演算処理動作を選択的にイネーブル/ディスエーブルする。この演算マスク機能を利用することにより、仮に全エントリが利用されない場合においても、有効エントリに対してのみ演算を実行して、正確な処理を行なうことができる。また、不必要な演算を停止させることにより、消費電流を低減することができる。
This arithmetic
Xレジスタ50は、また、ALU間相互接続スイッチ回路32に含まれるALU間接続回路65を介して他の演算器(ALU)に接続される。このALU間接続回路65の構成については、後に詳細に説明する。このALU間接続回路65の転送機能により、メモリマット内のさまざまな物理位置に格納されているデータに対する演算を実現することができ、演算の自由度を高くすることができる。
The
図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
[演算の構成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
演算器(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
この演算器31は、対応のエントリのメモリセルからのロードデータの一時保存を行ないかつ演算途中の結果の一時保存を行なうXレジスタ54が設けられる。二項演算処理時
においては、Xレジスタ54に第1の演算データビットが格納されたとき、次の(別の)演算データビットが、この演算器31に直接対応のメモリセルマットのエントリから与えられて演算処理が実行される。このXレジスタ50は、ALU間接続用スイッチ回路を介して他の演算器(ALU)と接続され、異なる演算器間でデータ転送を行なうことができる。
The
演算器(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
選択反転回路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
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
全加算器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
ゲート223および224は、Vレジスタ208およびNレジスタ207の格納値がともに“1”のときに、指定された演算処理を実行し(データ転送動作を行ない)、それ以外においては、ハイインピーダンスを出力する(出力ハイインピーダンス状態となる)。
全加算器211のキャリー入力Cinおよび全加算器210のキャリー出力Coに対して設けられるスイッチ225は、1ビット単位での演算処理を行なう場合に、全加算器210のキャリー出力Coを切離し、全加算器211のキャリー入力CinをCレジスタ56に接続する。
A
この演算器31においては、Xレジスタ54、XHレジスタ220およびXLレジスタ221が、他のエントリの対応のレジスタとデータ転送を行なう機能を有する。
In this
この変更例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
図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
スイッチ回路SWbが、全加算器211の入力Bと内部データ線226とを切離す。スイッチ225は、全加算器210のキャリー出力Coと全加算器210のキャリー入力Cinとを分離する。Cレジスタ56が、スイッチ225を介して全加算器210のキャリー入力Cinに結合される。ゲート回路224の出力はスイッチ回路SWfにより内部データ線228に結合される。
Switch circuit SWb disconnects input B of
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,
メモリセルマットにおいては、偶数エントリ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
図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
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
in is coupled to C register 56 via
減算演算を、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
メモリセルマット内のエントリにおいて、内部データ線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
図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
このデータ転送配線300は、エントリと交差する方向(第2の方向)において1列に整列して配置され、かつエントリの延在方向(第1の方向)においては、データ出力部305が1エントリずれるようにアレイ状に配置される。このデータ転送配線300は、最遠のデータ送出部が、±4エントリ離れたエントリに対応する位置であり、自身を含んで9エントリごとに、データ転送配線300が、第2の方向に整列して配置される。
The
この各エントリからのデータを受けて出力するデータ出力部および転送先のエントリにデータを与えるデータ送出部を別々に設けることにより、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
上述のように、データの転送量に応じて配線を個々に配置するのではなく、1つのデータ転送配線300において、複数のデータ移動量の組を実現し、各エントリ対応の演算器において、選択的に送出部からの信号を取込むことにより、エントリそれぞれにおいて、並列にデータの転送を行なうことができ、また、配線レイアウト面積を低減することができる。また、このエントリ間データ移動量の組を複数個設けることにより、任意のエントリ間移動を、比較的少ないサイクル数で実現することができる。
As described above, instead of individually arranging the wiring according to the data transfer amount, a single
たとえば、データにおいて、±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
したがって、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
配線レイアウト面積の余裕に応じて、1本のデータ転送配線300の実現するデータ移動量の組をより多く設けることにより、任意のエントリ間データ移動を比較的少ないサイクル数で実現することができる。
By providing a larger number of sets of data movement amounts realized by one
図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
3, when data shift transfer of +1, +2, and +4 is performed from the
一方、メモリセルマットの他方端のエントリ2045−2047に対して設けられるデータ転送配線300においては、マイナス方向のデータ転送時、最初のエントリ0に戻って、データを転送する必要がある。このため、マイナスシフト用の配線330nをメモリセルマットの他方端から一方端に配設し、各データ転送配線300のマイナス方向のデータシフトを実現する。これにより、エントリ2045−2047に対して設けられるデータ出力部305に対し、各マイナス方向のシフト用送出XN1、XN2およびXN4を、それぞれ配置することができ、各データ転送配線300において、±1、±2、および±4のデータ転送シフトを実現することができる。
On the other hand, in the
なお、このデータシフト用の配線330pおよび330nは、転送経路300を構成する配線と別の配線層の配線で形成されてもよい。また、このシフト用配線330nおよび330pにより接続される送出部XP1、XP2、およびXP4およびXN1、XN2およびXN4は、それぞれ、データ転送配線300の平行四辺形領域の底部の空き領域(三角形状の領域)に配設されてもよい。
The
いずれの場合においても、このエントリ0ないし2047において、リング状にデータを移動させることができ、任意の方向に向かって、任意のデータエントリ間データ移動を実現することができる。
In any case, in the
図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
一方、Xレジスタ54、XHレジスタ220およびXLレジスタ221が、それぞれ、出力ノード305a、305hおよび305lを介してデータ転送配線300a、300hおよび300lに結合される。これらの転送配線300a、300hおよび300lは、それぞれ、最大データ移動量のエントリ部まで延在し、その経路の途中で、他のエントリにもデータを転送する。他のエントリにおいて、この接続部350a、350hおよび350lにより、データ移動量の配線が選択される。
On the other hand,
演算器31の構成は、先の図8に示す演算器の構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
The configuration of the
これらの接続部350a、350hおよび350lにおいて、データ移動量に応じて対応のエントリを選択する必要がある。この対応の他のエントリを選択するために、接続部350a、350hおよび350lそれぞれにおいて、スイッチ回路が設けられる。
In these
図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
図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
スイッチ回路360は、他のエントリそれぞれに対応して設けられる選択スイッチゲートPSQ256…PSQ1、NSQ1、…NSQ256を含む。これらの選択スイッチゲートPSQ256−PSQ1,NSQ1−NSQ256が、それぞれ、エントリ選択信号ECM_EN_kに従って対応のデータ転送配線上の出力信号ECM_IN_kを選択して、この対応のデータ転送配線上の入力信号に従って内部ノードNDを駆動する。
これらの選択スイッチングゲート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
スイッチ回路360は、さらに、プリチャージ指示信号/ECM_PRCに従って内部ノードNDを電源電圧レベルにプリチャージするPチャネルMOSトランジスタPQ1と、内部ノードND上の信号を反転するインバータIV1と、インバータIV1の出力信号に従って選択的に導通して、内部ノードNDを電源電圧レベルに駆動するPチャネルMOSトランジスタPQ2と、インバータIV1の出力信号を反転して、このスイッチ回路360の出力信号を生成するインバータIV2を含む。
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
図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
クロックサイクル♯1においては、転送動作は行なわれず、転送イネーブル信号ECM_ENはLレベルである。この状態においては、セレクタ362は、対応のエントリからのデータを選択する状態に設定され、また、トライステートバッファ364は、出力ハイインピーダンス状態にある。Xレジスタ54には、データD[i]が格納されている。
In
クロックサイクル♯2において、転送イネーブル信号ECM_ENが活性状態のHレベルに設定される。応じて、セレクタ362が、スイッチ回路360の出力信号を選択する状態に設定され、また、トライステートバッファ364が、活性化される。これにより、Xレジスタ54に保持されているデータD[i]に従って、転送出力信号ECM_OUTがデータD[i]に対応する状態に設定される。
In
この転送出力信号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
クロックサイクル♯2において、クロック信号CLKXの立下がりに従って、プリチャージ指示信号/ECM_PRCがHレベルの非活性状態となり、また、これと並行して、エントリ選択信号ECM_EN_+1が活性化される。このエントリ選択信号ECM_EN_+1の活性化時には、既に、隣接エントリ(i+1)からトライステートバッファ364を介してデータ転送配線に転送された出力データECM_IN_+1が確定状態にある。従って、スイッチ回路360からの出力データが、転送データECM_IN_+1に対応する状態となる。
In
すなわち、隣接エントリ(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
Xレジスタ54は、次のクロックサイクル♯3において、クロック信号CLKXが立上がるとラッチ状態となり、その保持データが、転送データD[i+1]に応じた状態に設定される。このクロックサイクル♯3において、プリチャージ指示信号/ECM_PRCが再びLレベルの活性状態とされ、スイッチ回路360のインバータIV2からの出力信号が再びHレベルとなる。また、転送イネーブル信号ECM_ENが非活性状態のLレベルとなり、トライステートバッファ364が出力ハイインピーダンス状態となり、また、セレクタ362が対応のエントリからのデータをXレジスタ54へ転送する状態に設定される。
In the next
Xレジスタ54は、通常のラッチ回路またはフリップフロップで構成され、クロック信号CLKXが立ち上がると、内部のデータをラッチする状態に設定されれば良い。クロック信号CLKXの立ち上がり時において、スイッチ回路360が、プリチャージ状態とされ、その出力信号が初期化されても、Xレジスタ54には、このスイッチ回路360からの初期化信号の影響を受けることなく、確実に、転送データがラッチされる。
The
この図18に示すように、転送サイクル♯2において、エントリiからのデータD[i]を対応のデータ出力部から送信データECM_Outとしてデータ転送配線を介して転送し、次のクロックサイクル♯3において、隣接エントリから転送されたデータD[i+1]をXレジスタ54に保持することができる。
As shown in FIG. 18, in
なお、このエントリ間のデータ移動量は、隣接エントリ間のデータ移動に限定されず、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
[実施の形態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
図19に示すALU間接続回路65の他の構成は、図17に示すALU間接続回路65の構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
The other configuration of the
図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
クロックサイクル♯2において、対応のエントリからのデータの読出が実施される。この読出時においては、先の図4において説明したビットシリアル演算時と同様にして実行される。すなわち、メモリセルマットにおいてアドレスポインタに従ってワード線が選択され、ついで、センスアンプが活性化され、選択メモリセルのデータが、演算器に向かって転送される(ロード命令が実行される)。
In
このクロックサイクル♯2において、また、データ読出と並行して、クロック信号CLKXの立上がりと同期して、転送イネーブル信号ECM_ENおよび転送ロードイネーブル信号ECM_LD_ENが活性状態に設定される。プリチャージ指示信号/EMC_PRCは、活性状態にある。応じて、対応のエントリから読出されたデータが、セレクタ370において選択され、トライステートバッファ364により増幅されて、転送出力データECM_OUTとして、対応のエントリから読出データD[i]に対応するデータが出力される。
In
次いで、このクロックサイクル♯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
このクロックサイクル♯2においてクロック信号CLKXがLレベルに立下がると、Xレジスタ54は、スルー状態となり、与えられたデータを取り込む。クロックサイクル♯3において、クロック信号CLKXがHレベルに立上がると、Xレジスタ54が、取り込んだデータをラッチし、その保持データが、データD[i+1]に確定する。
When clock signal CLKX falls to L level in
したがって、この場合、クロックサイクル♯2において、メモリセルマットからのデータ読出と、エントリ間通信を行なったことになる。これにより、Xレジスタ54に、一旦転送データを保持させる動作が不要となり、エントリ間通信に要するクロックサイクル数を低減することができる。
In this case, therefore, data read from the memory cell mat and inter-entry communication are performed in
以上のように、Xレジスタ54をバイパスして、対応のエントリからのデータに従って、転送データを生成して、データ転送配線経路のデータ出力部へ転送することにより、X
レジスタに転送データを格納するサイクルが不要となり、高速のエントリ間通信を実現することができる。
As described above, by bypassing the
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
また、演算器の構成としては、Xレジスタ、XHレジスタおよびXLレジスタを含む図8に示す構成の場合、およびXレジスタのみがデータ転送用に設けられる図6に示す構成のいずれが用いられても良い。演算器内のデータ転送用のレジスタに対して図17または図19に示す構成を設ける。 Further, 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. 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 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 演算処理システム、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 Tchigeto, 370 selector.
Claims (6)
前記エントリに対応して配置され、各々が与えられたデータに対して演算処理を行なう複数の演算器、および
前記複数のエントリ間でデータを転送する転送回路を備え、
前記転送回路は、
前記エントリに対応して配置され、各々が対応のエントリのデータを異なる複数の別のエントリのいずれかに転送する複数の転送配線経路を備え、各前記転送配線経路は、前記対応のエントリのデータを受けるデータ出力部と、前記異なる複数の別のエントリそれぞれに結合される複数のデータ送出部とを有し、転送データが前記データ出力部から前記データ送出部に向かって転送される、半導体演算処理装置。 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 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 A data output unit that receives data and a plurality of data transmission units coupled to each of the plurality of different different entries, and transfer data is transferred from the data output unit toward the data transmission unit Processing equipment.
各前記演算器は、レジスタ回路を含み、
前記転送回路は、さらに、
各前記エントリに対応して配置され、対応の複数の転送配線経路の送出部に結合され、選択信号に従って1つの送出部を選択し、該選択された送出部の転送配線経路上を伝達された信号に対応する信号を生成するスイッチ回路と、
対応のエントリからのデータと前記スイッチ回路の出力データとを受け、転送指示に従って前記スイッチ回路の出力データを前記レジスタ回路へ転送し、かつ転送不指示に従って前記対応のエントリからのデータを前記レジスタ回路へ転送する選択回路と、
前記転送指示に従って前記レジスタ回路からの保持データを対応の転送経路の出力部に伝達する伝達回路とを備える、請求項1記載の半導体演算処理装置。 In the transfer circuit, a plurality of transfer wiring path sending sections 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 semiconductor arithmetic processing device according to claim 1, further comprising: a transmission circuit that transmits the held data from the register circuit to an output unit of a corresponding transfer path in accordance with the transfer instruction.
各前記演算器は、レジスタ回路を含み、
前記転送回路は、さらに、
エントリに対応して配置され、対応の複数の転送配線経路の送出部に結合され、選択信号に従って1つの送出部を選択し、該選択された送出部の伝達信号に対応する信号を生成するスイッチ回路と、
前記対応のエントリからのデータと前記スイッチ回路の出力データとを受け、転送指示に従って前記スイッチ回路の出力データを前記レジスタ回路へ転送しかつ転送不指示に従って前記対応のエントリからのデータを前記レジスタ回路へ転送する第1の選択回路と、
前記レジスタ回路の保持データと前記対応のエントリからのデータとを受け、選択転送指示信号の活性化に従って対応のエントリからのデータを転送する第2の選択回路と、
前記転送指示に従って前記第2の選択回路から与えられたデータを対応の転送経路の出力部に伝達する伝達回路とを備える、請求項1記載の半導体演算処理装置。 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;
The semiconductor arithmetic processing device according to claim 1, further comprising: a transmission circuit configured to transmit data provided from the second selection circuit to an output unit of a corresponding transfer path in accordance with the transfer instruction.
プリチャージ指示信号の活性化に従って内部ノードをプリチャージするプリチャージ素子と、
前記複数の送出部それぞれに対応して設けられ、エントリ選択信号と対応の送出部の信号に従って前記内部ノードを選択的に前記プリチャージ電圧と異なる電圧レベルに駆動す
る複数の選択スイッチゲートとを備える、請求項3または4に記載の半導体演算処理装置。 The switch circuit is
A precharge element for precharging the internal node 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; 5. A semiconductor processing unit according to claim 3 or 4.
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 true JP2007200090A (en) | 2007-08-09 |
JP4989899B2 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) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018220849A1 (en) * | 2017-06-02 | 2018-12-06 | ウルトラメモリ株式会社 | Semiconductor module |
JP2020091933A (en) * | 2018-12-03 | 2020-06-11 | 三星電子株式会社Samsung Electronics Co.,Ltd. | Semiconductor memory device employing pim and operating method thereof |
Citations (14)
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 |
JPH1166033A (en) * | 1997-08-22 | 1999-03-09 | Nippon Telegr & Teleph Corp <Ntt> | Pe array device and associated memory block |
JP2001084229A (en) * | 1999-09-10 | 2001-03-30 | Ricoh Co Ltd | Simd-type processor |
JP2001202351A (en) * | 2000-01-19 | 2001-07-27 | Ricoh Co Ltd | 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 |
JP2002513181A (en) * | 1998-04-29 | 2002-05-08 | アトメル・コーポレイション | 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 |
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 |
JP2002207707A (en) * | 2001-01-11 | 2002-07-26 | Ricoh Co Ltd | Simd type micro-processor having function for selecting constant |
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 |
JP2004525440A (en) * | 2000-12-19 | 2004-08-19 | ピコチップ デザインズ リミテッド | Processor architecture |
JP2005050337A (en) * | 2003-07-23 | 2005-02-24 | Hewlett-Packard Development Co Lp | Non-volatile memory parallel processor |
-
2006
- 2006-01-27 JP JP2006018762A patent/JP4989899B2/en not_active Expired - Fee Related
Patent Citations (14)
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 |
JPH1166033A (en) * | 1997-08-22 | 1999-03-09 | Nippon Telegr & Teleph Corp <Ntt> | Pe array device and associated memory block |
JP2002513181A (en) * | 1998-04-29 | 2002-05-08 | アトメル・コーポレイション | 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 |
JP2001084229A (en) * | 1999-09-10 | 2001-03-30 | Ricoh Co Ltd | Simd-type processor |
JP2001202351A (en) * | 2000-01-19 | 2001-07-27 | Ricoh Co Ltd | 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 |
JP2004525440A (en) * | 2000-12-19 | 2004-08-19 | ピコチップ デザインズ リミテッド | 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 |
JP2002207707A (en) * | 2001-01-11 | 2002-07-26 | Ricoh Co Ltd | Simd type micro-processor having function for selecting constant |
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 |
JP2005050337A (en) * | 2003-07-23 | 2005-02-24 | Hewlett-Packard Development Co Lp | Non-volatile memory parallel processor |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018220849A1 (en) * | 2017-06-02 | 2018-12-06 | ウルトラメモリ株式会社 | Semiconductor module |
JPWO2018220849A1 (en) * | 2017-06-02 | 2020-04-16 | ウルトラメモリ株式会社 | Semiconductor module |
JP2020091933A (en) * | 2018-12-03 | 2020-06-11 | 三星電子株式会社Samsung Electronics Co.,Ltd. | Semiconductor memory device employing pim and operating method thereof |
JP7044750B2 (en) | 2018-12-03 | 2022-03-30 | 三星電子株式会社 | Semiconductor memory device that adopts PIM and its operation method |
Also Published As
Publication number | Publication date |
---|---|
JP4989899B2 (en) | 2012-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11775296B2 (en) | Mask patterns generated in memory from seed vectors | |
US8089819B2 (en) | Semiconductor device and semiconductor signal processing apparatus | |
US12067401B2 (en) | Stream processor with low power parallel matrix multiply pipeline | |
CN107209665B (en) | Generating and executing control flow | |
US11526355B2 (en) | Smallest or largest value element determination | |
JP4989900B2 (en) | Parallel processing unit | |
US10878856B2 (en) | Data transfer between subarrays in memory | |
US20060101231A1 (en) | Semiconductor signal processing device | |
US20060143428A1 (en) | Semiconductor signal processing device | |
EP1570373A1 (en) | Cellular engine for a data processing system | |
WO2019126758A1 (en) | A unified memory organization for neural network processors | |
JP7264897B2 (en) | Memory device and method for controlling same | |
US20180114551A1 (en) | Apparatuses and methods to selectively perform logical operations | |
US8145804B2 (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 | |
US10147467B2 (en) | Element value comparison in memory | |
JP4989899B2 (en) | Semiconductor processing unit | |
JP2007004542A (en) | Semiconductor signal processing device | |
JP7136343B2 (en) | Data processing system, method and program | |
JPS62156742A (en) | Data writing control system | |
JP2011192305A (en) | Semiconductor signal processor | |
JP4916151B2 (en) | Parallel computing device | |
US10043570B1 (en) | Signed element compare in memory | |
JP2006260381A (en) | Arithmetic processing unit | |
JPH03104087A (en) | Memory with arithmetic function |
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 | Request for written amendment filed |
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 |