JP2011192305A - Semiconductor signal processor - Google Patents

Semiconductor signal processor Download PDF

Info

Publication number
JP2011192305A
JP2011192305A JP2011123214A JP2011123214A JP2011192305A JP 2011192305 A JP2011192305 A JP 2011192305A JP 2011123214 A JP2011123214 A JP 2011123214A JP 2011123214 A JP2011123214 A JP 2011123214A JP 2011192305 A JP2011192305 A JP 2011192305A
Authority
JP
Japan
Prior art keywords
data
memory
arithmetic
circuit
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2011123214A
Other languages
Japanese (ja)
Inventor
Motoki Higashida
基樹 東田
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 JP2011123214A priority Critical patent/JP2011192305A/en
Publication of JP2011192305A publication Critical patent/JP2011192305A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To achieve a processor for efficiently performing arithmetic processing of a large amount of data at high speed. <P>SOLUTION: Arithmetic processing instructions to a main arithmetic circuit (20) are stored in a form of a microprogram in a micro-instruction memory (21), and the operation control of the main arithmetic circuit is carried out under the control of a controller 22 according to the microprogram. In the main arithmetic circuit (20), a memory cell mat (30) is divided into entries each storing a plurality of bits of data, and arithmetic and logic units (ALUs) are arranged corresponding to the respective entries. Arithmetic processing is carried out between the entries and the ALUs in a bit serial mode in parallel to the respective entries. The large amount of data can be efficiently processed according to a microprogram control system. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

この発明は、半導体信号処理装置に関し、特に、高速に大量のデータの演算処理を行なう半導体メモリを用いた信号処理用集積回路装置の構成に関する。   The present invention relates to a semiconductor signal processing device, and more particularly to a configuration of an integrated circuit device for signal processing using a semiconductor memory that performs arithmetic processing of a large amount of data at high speed.

近年、携帯端末機器の普及に伴い、音声および画像のような大量のデータを高速に処理するデジタル信号処理の重要性が高くなってきている。このようなデジタル信号処理には、一般に、専用の半導体装置としてDSP(デジタル・シグナル・プロセサ)が用いられる。音声および画像データに対するデジタル信号処理においては、フィルタ処理などのデータ処理が行なわれ、このような処理においては積和演算を繰返す演算処理が多い。したがって、一般に、DSPの構成においては、乗算回路、加算回路および累算用のレジスタが設けられる。このような専用のDSPを用いると、積和演算を1マシンサイクルで実行することが可能となり、高速演算処理が可能となる。   In recent years, with the 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 high speed has increased. For such digital signal processing, a DSP (Digital Signal Processor) is generally used as a dedicated semiconductor device. In digital signal processing for audio and image data, data processing such as filter processing is performed, and in such processing, there are many arithmetic processes that repeat product-sum operations. 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.

このような積和演算を行なう際に、レジスタファイルを利用する構成が、特許文献1(特開平6−324862号公報)に示されている。この特許文献1においては、レジスタファイルに格納された2項のオペランドデータを読出して演算器で加算した後、書込データレジスタを介してレジスタファイルに加算結果を書込む。この特許文献1に示される構成においては、レジスタファイルに対して書込アドレスおよび読出アドレスを同時に与えてデータの書込およびデータの読出を並行に行なうことにより、データの書込サイクルおよびデータの読出サイクルを別々に設けて演算処理する構成に比べて処理時間を短縮することを図る。   Japanese Patent Laid-Open No. 6-324862 discloses a configuration in which a register file is used when performing such product-sum operation. In Patent Document 1, two operand data stored in a register file are read and added by an arithmetic unit, and then the addition result is written into the register file via a write data register. In the configuration shown in Patent Document 1, a write address and a read address are simultaneously given to a register file, and data writing and data reading are performed in parallel, whereby data writing cycle and data reading are performed. The processing time is shortened compared to a configuration in which a cycle is provided separately to perform arithmetic processing.

また、大量のデータを高速で処理することを意図する構成が、特許文献2(特開平5−197550号公報)に示されている。この特許文献2に示される構成においては、複数の演算装置を並列に配置し、それぞれの演算装置にメモリを内蔵する。各演算装置において個々にメモリアドレスを生成することにより、並列演算を高速で行なうことを図る。   A configuration intended to process a large amount of data at high speed is disclosed in Patent Document 2 (Japanese Patent Laid-Open No. 5-197550). In the configuration shown in Patent Document 2, a plurality of arithmetic devices are arranged in parallel, and a memory is built in each arithmetic device. By individually generating a memory address in each arithmetic unit, parallel arithmetic is performed at high speed.

また、画像データのDCT変換(離散コサイン変換)などの処理を高速に行なうことを目的とする信号処理装置が、特許文献3(特開平10−74141号公報)に示されている。この特許文献3に示される構成においては、画像データがビットパラレルかつワードシリアルなシーケンスで、すなわちワード(画素データ)単位で入力されるため、直列/並列変換回路を用いてワードパラレルかつビットシリアルなデータ列に変換してメモリアレイに書込む。メモリアレイに対応して配置される演算器(ALU)へデータを転送して並列処理を実行する。メモリアレイは、画像データブロックに応じてブロックに分割されており、各ブロックにおいて対応の画像ブロックを構成する画像データがメモリアレイの行ごとにワード単位で格納される。   Further, a signal processing apparatus that aims to perform processing such as DCT transformation (discrete cosine transformation) of image data at high speed is disclosed in Patent Document 3 (Japanese Patent Laid-Open No. 10-74141). In the configuration disclosed in Patent Document 3, since image data is input in a bit-parallel and word-serial sequence, that is, in units of words (pixel data), it is word-parallel and bit-serial using a serial / parallel conversion circuit. Convert to data string and write to memory array. Data is transferred to an arithmetic unit (ALU) arranged corresponding to the memory array to execute parallel processing. The memory array is divided into blocks according to image data blocks, and image data constituting the corresponding image block in each block is stored in units of words for each row of the memory array.

この特許文献3に示される構成においては、メモリアレイ対応の演算器との間でワード(1つの画素に対応するデータ)単位でデータを転送する。各ブロック個々に対応の演算器において同一処理を転送されたワードに対して実行することにより、DCT変換などのフィルタ処理を高速で実行することを図る。演算処理結果は、再びメモリアレイに書込み、再度、並列/直列変換を行なってビットシリアルかつワードパラレルデータをビットパラレルかつワードシリアルなデータに変換して1ラインごとのデータを順次出力する。通常の処理においては、データのビット位置の変換は行なわれず、演算器において通常の演算処理を複数のデータに対して並列に実行する。   In the configuration shown in Patent Document 3, data is transferred in units of words (data corresponding to one pixel) to an arithmetic unit corresponding to a memory array. By executing the same processing on the transferred word in an arithmetic unit corresponding to each block, it is possible to execute filter processing such as DCT conversion at high speed. The result of the arithmetic processing is written again into the memory array, parallel / serial conversion is performed again to convert bit serial and word parallel data into bit parallel and word serial data, and data for each line is sequentially output. In normal processing, bit position conversion of data is not performed, and normal arithmetic processing is performed in parallel on a plurality of data in an arithmetic unit.

また、複数の異なる演算処理を並行して実行すること目的とするデータ処理装置が特許文献4(特開2003−114797号公報)に示されている。この特許文献4に示される構成においては、各々その機能が限定された複数の論理モジュールをマルチポート構成のデータメモリに接続する。これらの論理モジュールとマルチポートデータメモリとの接続においては、論理モジュールが接続されるマルチポートメモリのポートおよびメモリが制限されており、したがって、各論理モジュールがマルチポートメモリへアクセスしてデータの読出および書込を行なうことのできるアドレス領域が、制限される。各論理モジュールで演算を行なった結果は、アクセスが許可されたメモリに書込み、これらのマルチポートメモリを介して順次データを論理モジュールを介して転送することにより、パイプライン的にデータ処理を行なうことを図る。   Further, Patent Document 4 (Japanese Patent Application Laid-Open No. 2003-114797) discloses a data processing apparatus intended to execute a plurality of different arithmetic processes in parallel. In the configuration disclosed in Patent Document 4, a plurality of logic modules each having a limited function are connected to a multi-port data memory. The connection between these logic modules and the multi-port data memory limits the ports and memories of the multi-port memory to which the logic modules are connected. Therefore, each logic module accesses the multi-port memory and reads data. And the address area where writing can be performed is limited. The result of the operation in each logic module is written in the memory to which access is permitted, and the data is processed in a pipeline manner by sequentially transferring the data through the logic module via these multi-port memories. Plan.

特開平6−324862号公報JP-A-6-324862 特開平5−197550号公報Japanese Patent Laid-Open No. 5-197550 特開平10−74141号公報Japanese Patent Laid-Open No. 10-74141 特開2003−114797号公報JP 2003-114797 A

処理対象のデータ量が非常に多い場合には、専用のDSPを用いても、性能を飛躍的に向上させることは困難である。たとえば、演算対象のデータが1万組ある場合、1つ1つのデータに対する演算を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, when there are 10,000 sets of calculation target data, even if the calculation for each piece of data can be executed in one machine cycle, at least 10,000 cycles are required for the calculation. Therefore, in the configuration in which the product-sum operation is performed using the register file as shown in Patent Document 1, although each processing is performed at a high speed, the data processing is performed in series. As the number increases, the processing time increases in proportion to this, and high-speed processing cannot be realized. In addition, when such a dedicated DSP is used, the processing performance greatly depends on the operating frequency. Therefore, when high-speed processing is prioritized, power consumption increases.

また、この特許文献1に示されるようなレジスタファイルおよび演算器を利用する場合、ある用途に特化して設計されることが多く、演算ビット幅および演算回路の構成等が固定される。したがって、他の用途に転用する場合には、そのビット幅および演算回路の構成を設計し直す必要があり、複数の演算処理用途に柔軟に対応することができなくなるという問題が生じる。   Further, when using a register file and an arithmetic unit as disclosed in Patent Document 1, it is often designed specifically for a certain application, and the arithmetic bit width and the configuration of the arithmetic circuit are fixed. Therefore, when diverting to other applications, it is necessary to redesign the bit width and the configuration of the arithmetic circuit, and there arises a problem that it becomes impossible to flexibly cope with a plurality of arithmetic processing applications.

また、特許文献2に示される構成においては、演算装置個々にメモリが内蔵されており、各演算装置において異なるメモリアドレス領域をアクセスして処理を行なう。しかしながら、データメモリと演算装置とは別々の領域に配置されており、論理モジュール内において演算装置とメモリとの間でアドレスを転送してデータアクセスを行なう必要があり、データ転送に時間を要し、このためマシンサイクルを短縮することができなくなり、高速処理を行なうことができなくなるという問題が生じる。   Further, in the configuration shown in Patent Document 2, each arithmetic device has a built-in memory, and each arithmetic device accesses a different memory address area for processing. However, the data memory and the arithmetic unit are arranged in different areas, and it is necessary to transfer data between the arithmetic unit and the memory in the logic module to perform data access, which takes time. As a result, the machine cycle cannot be shortened and high-speed processing cannot be performed.

また、特許文献3に示される構成においては、画像データのDCT変換などの処理を高速化することを図っており、画面1ラインの画素データを1行のメモリセルに格納して行方向に整列する画像ブロックに対して並列に処理を実行している。したがって、画像の高精細化のために1ラインの画素数が増大した場合、メモリアレイが膨大なものとなる。たとえば、1画素のデータが8ビットで1ラインの画素数が512個の場合でも、メモリアレイの1行においてはメモリセルの数が8・512=4Kビットとなり、1行のメモリセルが接続される行選択線(ワード線)の負荷が大きくなり、高速でメモリセルを選択してデータを演算部とメモリセルとの間で転送することができなくなり、応じて高速処理を実現することができなくなるという問題が生じる。   In the configuration disclosed in Patent Document 3, the processing such as DCT conversion of image data is speeded up, and pixel data of one line of the screen is stored in one row of memory cells and aligned in the row direction. Processing is executed in parallel on the image block to be processed. Therefore, when the number of pixels in one line increases for high definition of the image, the memory array becomes enormous. For example, even if the data of one pixel is 8 bits and the number of pixels in one line is 512, the number of memory cells in one row of the memory array is 8 · 512 = 4K bits, and the memory cells in one row are connected. The load on the row selection line (word line) increases, and it becomes impossible to select a memory cell at high speed and transfer data between the arithmetic unit and the memory cell, thereby realizing high-speed processing accordingly. The problem of disappearing arises.

また、特許文献3においては、メモリセルアレイを演算回路群両側に配置する構成は示されているものの、具体的なメモセルアレイの構造は示されておらず、また演算回路において演算器をアレイ状に配置することは示されているものの、どのように演算器群を配置するかの詳細については何ら示されていない。   Further, Patent Document 3 shows a configuration in which the memory cell arrays are arranged on both sides of the arithmetic circuit group, but does not show a specific structure of the memo cell array, and the arithmetic units are arranged in an array in the arithmetic circuit. Although the arrangement is shown, no details are given on how to arrange the arithmetic units.

また、特許文献4に示される構成においては、複数のマルチポートデータメモリと、これらのマルチポートデータメモリに対してアクセス領域が制限される複数の低機能の演算器(ALU)とが設けられている。しかしながら、この演算器(ALU)とメモリとは別の領域に配置されており、配線容量などにより高速でデータを転送することができず、パイプライン処理を実行しても、このパイプラインのマシンサイクルを短縮することができなくなるという問題が生じる。   In the configuration disclosed in Patent Document 4, a plurality of multi-port data memories and a plurality of low-function arithmetic units (ALUs) whose access areas are restricted for these multi-port data memories are provided. Yes. However, the arithmetic unit (ALU) and the memory are arranged in different areas, and data cannot be transferred at high speed due to wiring capacity or the like. Even if pipeline processing is executed, this pipeline machine The problem arises that the cycle cannot be shortened.

また、これらの特許文献1から4においては、演算処理対象のデータの語構成が異なる場合、どのように対応するかについては何ら検討していない。   Further, in these Patent Documents 1 to 4, no consideration is given to how to deal with the case where the word structure of the data to be processed is different.

それゆえ、この発明の目的は、高速で大量のデータを処理することのできる半導体信号処理装置を提供することである。   SUMMARY OF THE INVENTION An object of the present invention is to provide a semiconductor signal processing apparatus capable of processing a large amount of data at high speed.

この発明の他の目的は、データの語構成および演算内容にかかわらず高速で演算処理を実行することのできる半導体信号処理装置を提供することである。   Another object of the present invention is to provide a semiconductor signal processing apparatus capable of executing arithmetic processing at high speed irrespective of the word configuration of data and the content of the arithmetic operation.

この発明のさらに他の目的は、柔軟に処理内容を変更することのできる演算機能内蔵半導体信号処理装置を提供することである。   Still another object of the present invention is to provide a semiconductor signal processing device with a built-in arithmetic function that can change processing contents flexibly.

この発明に係る半導体信号処理装置は、行列状に配列される複数のメモリセルを有しかつ各々が複数のメモリセルを有する複数のエントリに分割されるメモリアレイと、このメモリアレイの各エントリに対応して配置される複数の演算回路とを含む主演算回路と、マイクロ命令を格納するマイクロ命令メモリと、このマイクロ命令メモリからのマイクロ命令に従って、メモリアレイおよび複数の演算回路に対する動作制御を行なう制御回路を備える。   A semiconductor signal processing device according to the present invention includes a memory array having a plurality of memory cells arranged in a matrix and divided into a plurality of entries each having a plurality of memory cells, and each entry of the memory array. A main arithmetic circuit including a plurality of arithmetic circuits arranged correspondingly, a microinstruction memory for storing microinstructions, and controlling the operation of the memory array and the plurality of arithmetic circuits according to the microinstructions from the microinstruction memory. A control circuit is provided.

メモリアレイを複数のエントリに分割し、各エントリに対して演算回路を配置する。このメモリアレイおよび演算回路の間のデータ転送およびデータの書込/読出および演算処理は、マイクロ命令メモリからのマイクロ命令に従って動作制御を行なっており、通常のワイヤードロジックと同程度の速度で処理を実行することができる。また、マイクロプログラム命令により、その演算処理内容を適用用途に応じて変更することができ、異なる演算内容に対して柔軟に対応することができる。   The memory array is divided into a plurality of entries, and an arithmetic circuit is arranged for each entry. The data transfer between the memory array and the arithmetic circuit, the data writing / reading, and the arithmetic processing are controlled according to the microinstruction from the microinstruction memory, and the processing is performed at a speed similar to that of normal wired logic. Can be executed. In addition, the contents of the arithmetic processing can be changed according to the application purpose by the microprogram instruction, so that different arithmetic contents can be flexibly dealt with.

また、複数のエントリに対して並列に演算処理を実行するため、大量のデータの高速演算処理を実現することができる。   In addition, since arithmetic processing is executed in parallel for a plurality of entries, high-speed arithmetic processing of a large amount of data can be realized.

また、各エントリに同一のデータワードを格納し、ビットシリアル態様で対応の演算回路で演算処理を行なう構成とすることにより、データの語構成(ビット幅)の変更に対しても大幅なハードウェアの変更を行なうことなく対応して、演算処理を行なうことができる。   In addition, by storing the same data word in each entry and performing arithmetic processing in a corresponding arithmetic circuit in a bit serial manner, a large amount of hardware can be used for changing the data word configuration (bit width). Accordingly, the arithmetic processing can be performed without changing the above.

この発明の実施の形態1に従う信号処理システムの構成を概略的に示す図である。It is a figure which shows schematically the structure of the signal processing system according to Embodiment 1 of this invention. 図1に示す主演算回路の要部の構成を示す図である。It is a figure which shows the structure of the principal part of the main arithmetic circuit shown in FIG. 図1に示すメモリマットに含まれるメモリセルの構成の一例を示す図である。FIG. 2 is a diagram showing an example of a configuration of a memory cell included in the memory mat shown in FIG. 1. 図1に示す主演算回路の処理動作を示す図である。It is a figure which shows the processing operation of the main arithmetic circuit shown in FIG. 図4に示す処理動作の処理シーケンスを示す図である。It is a figure which shows the process sequence of the processing operation shown in FIG. この発明の実施の形態1に従う基本演算ブロックの構成を概略的に示す図である。It is a figure which shows roughly the structure of the basic arithmetic block according to Embodiment 1 of this invention. この発明の実施の形態1におけるマイクロプログラムの一例を示す図である。It is a figure which shows an example of the microprogram in Embodiment 1 of this invention. 図7に示すアドレス更新の動作を示すタイミング図である。FIG. 8 is a timing chart showing an address update operation shown in FIG. 7. 図6に示すALUの構成の一例を示す図である。It is a figure which shows an example of a structure of ALU shown in FIG. この発明の実施の形態2に従う基本演算ブロックの構成を概略的に示す図である。It is a figure which shows roughly the structure of the basic arithmetic block according to Embodiment 2 of this invention. この発明の実施の形態2において用いられるマイクロプログラムの一例を示す図である。It is a figure which shows an example of the microprogram used in Embodiment 2 of this invention. 図11に示すマイクロプログラムの処理動作を示すフロー図である。It is a flowchart which shows the processing operation of the microprogram shown in FIG. この発明の実施の形態3に従う基本演算ブロックの構成を概略的に示す図である。It is a figure which shows roughly the structure of the basic arithmetic block according to Embodiment 3 of this invention. 図13に示すメモリセルマットに含まれるメモリセルの構成の一例を示す図である。FIG. 14 is a diagram showing an example of a configuration of memory cells included in the memory cell mat shown in FIG. 13. 図13に示すALUの構成の一例を概略的に示す図である。It is a figure which shows roughly an example of a structure of ALU shown in FIG. 図13に示す主演算回路のデータ転送動作を模式的に示す図である。It is a figure which shows typically the data transfer operation | movement of the main arithmetic circuit shown in FIG. この発明の実施の形態3における半導体信号処理装置のマイクロプログラムの一例を示す図である。It is a figure which shows an example of the microprogram of the semiconductor signal processing apparatus in Embodiment 3 of this invention. この発明の実施の形態4における画像データ処理の一例を示す図である。It is a figure which shows an example of the image data process in Embodiment 4 of this invention. この発明の実施の形態4に従う半導体信号処理装置の要部の構成を概略的に示す図である。It is a figure which shows roughly the structure of the principal part of the semiconductor signal processing apparatus according to Embodiment 4 of this invention. この発明の実施の形態4に従う半導体信号処理装置のデータ処理シーケンスを示すフロー図である。It is a flowchart which shows the data processing sequence of the semiconductor signal processing apparatus according to Embodiment 4 of this invention. 図20に示す処理シーケンスにおけるデータの流れを模式的に示す図である。It is a figure which shows typically the flow of the data in the processing sequence shown in FIG. この発明の実施の形態4におけるメモリセルマットにおける格納データおよび転送データの領域を模式的に示す図である。It is a figure which shows typically the area | region of the storage data and transfer data in the memory cell mat in Embodiment 4 of this invention. この発明の実施の形態5に従う演算回路の構成を概略的に示す図である。It is a figure which shows roughly the structure of the arithmetic circuit according to Embodiment 5 of this invention. 図23に示す主演算回路の具体的構成を示す図である。FIG. 24 is a diagram showing a specific configuration of the main arithmetic circuit shown in FIG. 23. この発明の実施の形態6に従う半導体信号処理装置の構成を概略的に示す図である。It is a figure which shows roughly the structure of the semiconductor signal processing apparatus according to Embodiment 6 of this invention. 図25に示すメモリセルマットのデータ格納領域の割付けを概略的に示す図である。FIG. 26 schematically shows allocation of data storage areas of the memory cell mat shown in FIG. 25. この発明の実施の形態7に従う半導体信号処理装置の構成を概略的に示す図である。It is a figure which shows roughly the structure of the semiconductor signal processing apparatus according to Embodiment 7 of this invention. 図27に示す転置回路の構成を概略的に示す図である。FIG. 28 schematically shows a configuration of a transposition circuit shown in FIG. 27. 図28に示す転置回路のデータ転送動作を示すフロー図である。FIG. 29 is a flowchart showing a data transfer operation of the transposition circuit shown in FIG. 28. この発明の実施の形態7における転置回路のデータ転送時のデータの流れを模式的に示す図である。It is a figure which shows typically the data flow at the time of the data transfer of the transposition circuit in Embodiment 7 of this invention. 図28に示す転置メモリに含まれるメモリセルの構成の一例を示す図である。FIG. 29 is a diagram illustrating an example of a configuration of a memory cell included in the transposition memory illustrated in FIG. 28.

[実施の形態1]
図1は、この発明に従う半導体信号処理装置が用いられる処理システムの全体構成を概略的に示す図である。図1において、信号処理システム1は、各種処理を実行する演算機能を実現するシステムLSI2と、システムLSI2と外部システムバス3を介して接続される外部メモリとを含む。この外部メモリは、大容量メモリ4と、高速メモリ5と、立上げ時の命令などの固定情報を格納する読出専用メモリ(リード・オンリー・メモリ:ROM)6を含む。大容量メモリ4は、たとえばクロック同期型ダイナミック・ランダム・アクセス・メモリ(SDRAM)で構成され、高速メモリ5は、たとえばスタティック・ランダム・アクセス・メモリ(SRAM)で構成される。
[Embodiment 1]
FIG. 1 is a diagram schematically showing an overall configuration of a processing system in which a semiconductor signal processing device according to the present invention is used. 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 an instruction at 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と、内部システムバス7に結合され、これらの基本演算ブロックFB1−FBhの処理動作を制御するホストCPU8と、このシステム1の外部からの入力信号INを内部処理用データに変換する入力ポート9と、内部システムバス7から与えられた出力データを受けて、システム外部への出力信号OUTを生成する出力ポート10を含む。これらの入力ポート9および出力ポート10は、たとえばライブラリ化されたIP(インテレクチャル プロパティ:Intellectual Property)ブロックで構成され、データ/信号の入出力に必要な機能を実現する。   The system LSI 2 includes basic operation blocks FB1-FBh that are coupled in parallel to the internal system bus 7, a host CPU 8 that is coupled to the internal system bus 7 and controls processing operations of these basic operation blocks FB1-FBh, and this system 1 includes an input port 9 that converts an external input signal IN into internal processing data, and an output port 10 that receives output data supplied from the internal system bus 7 and generates an output signal OUT to the outside of the system. . The input port 9 and the output port 10 are configured by, for example, an IP (Intellectual Property) block formed as a library, and realize functions necessary for data / signal input / output.

システムLSI2は、さらに、基本演算ブロックFP1−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 signal from the basic operation blocks FP1-FBh and 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 basic operation blocks FB1 to FBh, and an external system bus 3 in accordance with an instruction from CPU 8 or DMA controller 13 An external bus controller 14 for controlling access to the memory 4-6 and a dedicated logic 15 for assisting 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 a program and debugging use 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. According to the 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 basic arithmetic block FB1 and the internal system bus 7. A system bus interface (I / F) 24 for transferring data / signals is included.

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

基本的にメモリセルマット30の各行が1エントリを構成し、1エントリに多ビットデータの各ビットが格納される。演算器(以下、適宜、ALUと称す)31は、したがって、対応のエントリからのデータをビットシリアルに受けて演算処理を行ない、処理結果をメモリセルマット30の指定されたエントリ(たとえば対応のエントリ)に格納する。   Basically, each row of the memory cell mat 30 constitutes one entry, and each bit of multi-bit data is stored in one entry. Therefore, the arithmetic unit (hereinafter referred to as ALU as appropriate) 31 receives the data from the corresponding entry in bit serial and performs arithmetic processing, and the processing result is assigned to the specified entry (for example, the corresponding entry) of the memory cell mat 30. ).

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

コントローラ22は、マイクロ命令メモリ21に格納されるマイクロ命令に従ってマイクロプログラム方式に従った動作を行なう。マイクロプログラム動作に必要なワークデータが、ワークデータメモリ23に格納される。   The controller 22 performs an operation in accordance with the microprogram method in accordance with the microinstruction stored in the microinstruction memory 21. Work data necessary for the 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 allows 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に同一の演算内容のマイクロ命令が格納されてもよい。   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. Accordingly, different arithmetic processes can be executed in parallel by storing microinstructions having different contents in each of the basic arithmetic blocks FB1 to 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.

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

図2は、図1に示す基本演算ブロックFB1−FBhそれぞれに含まれる主演算回路20の要部の構成を概略的に示す図である。図2において、メモリセルマット30においては、メモリセルMCが行列状に配列される。メモリセルMCが、m個のエントリERYに分割される。エントリERYは、nビットのビット幅を有する。基本的に、1つのエントリERYは、1列に整列するメモリセルMCで構成される。したがって、この場合、エントリERYの数は、メモリセルマット30の行すなわちビット線の数で決定される。   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 memory cell mat 30, memory cells MC are arranged in a matrix. Memory cell MC is divided into m entries ERY. The entry ERY has a bit width of n bits. Basically, one entry ERY is composed of memory cells MC aligned in one column. Therefore, in this case, the number of entries ERY is determined by the number of rows of memory cell mats 30, that is, the number of bit lines.

演算処理ユニット群35においては、エントリERYそれぞれに対してALU31が設けられる。このALU31は、加算、論理積、一致検出(EXOR)、および反転(NOT)などの演算を実行することができる。   In the arithmetic processing unit group 35, an ALU 31 is provided for each entry ERY. The ALU 31 can execute operations such as addition, logical product, coincidence detection (EXOR), and inversion (NOT).

エントリERYと対応のALU31との間でデータのロード(メモリセルマット30から演算処理ユニット群35へのデータの転送)およびストア(演算処理ユニット群35からメモリセルマット30へのデータの転送格納)を行なって演算処理を実行する。エントリERYには、多ビットデータの各ビットが格納され、ALU31は、ビットシリアルな態様(多ビットデータワードをビット単位で処理する態様)で演算処理を実行する。演算処理ユニット群35においては、データワードについてビットシリアル態様でかつ複数のエントリERYが並行して処理されるエントリパラレルな態様でデータの演算処理が実行される。   Data load (transfer of data from the memory cell mat 30 to the arithmetic processing unit group 35) and store (data transfer storage from the arithmetic processing unit group 35 to the memory cell mat 30) between the entry ERY and the corresponding ALU 31 To perform arithmetic processing. Each bit of multi-bit data is stored in the entry ERY, and the ALU 31 executes arithmetic processing in a bit-serial manner (a manner in which a multi-bit data word is processed in units of bits). In the arithmetic processing unit group 35, data arithmetic processing is executed in a bit serial manner for data words and in an entry parallel manner in which a plurality of entries ERY are processed in parallel.

エントリERYのビット幅を変更することにより、データワードの語構成が異なる場合にも演算サイクル数(アドレスポインタの範囲)を変更するだけで、データ処理を実行することができる。また、エントリ数mを多くすることにより、大量のデータを一括して演算処理することができる。   By changing the bit width of the 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.

図3は、図2に示すメモリセルMCの構成の一例を示す図である。図3において、メモリセルMCは、電源ノードとストレージノードSN1の間に接続されかつそのゲートがストレージノードSN2に接続されるPチャネルMOSトランジスタ(絶縁ゲート型電界効果トランジスタ)PQ1と、電源ノードとストレジノードSN2の間に接続されかつそのゲートがストレージノードSN1に接続されるPチャネルMOSトランジスタPQ2と、ストレージノードSN1と接地ノードの間に接続されかつそのゲートがストレージノードSN2に接続されるNチャネルMOSトランジスタNQ1と、ストレージノードSN2と接地ノードの間に接続されかつそのゲートがストレージノードSN1に接続されるNチャネルMOSトランジスタNQ2と、ワード線WL上の電位に応答してストレージノードSN1およびSN2を、それぞれ、ビット線BLおよび/BLに接続するNチャネルMOSトランジスタNQ3およびNQ4とを含む。   FIG. 3 is a diagram showing an example of the configuration of the memory cell MC shown in FIG. In FIG. 3, a memory cell MC includes a P-channel MOS transistor (insulated gate field effect transistor) PQ1 connected between a power supply node and a storage node SN1 and having a gate connected to the storage node SN2, a power supply node, and a storage node. P-channel MOS transistor PQ2 connected between SN2 and its gate connected to storage node SN1, and N-channel MOS transistor connected between storage node SN1 and ground node and connected to storage node SN2 NQ1, N-channel MOS transistor NQ2 connected between storage node SN2 and ground node and having its gate connected to storage node SN1, and storage nodes SN1 and SN1 in response to the potential on word line WL The SN2, respectively, and an N-channel MOS transistors NQ3 and NQ4 connected to the bit lines BL and / BL.

この図3に示すメモリセルMCは、フルCMOS(相補MOS)構成のSRAMセルであり、高速でデータの書込/読出を行なうことができる。このSRAMセルを利用することにより、メモリセルマット30において、記憶データのリフレッシュを行なう必要がなく、動作制御が容易となり、演算処理を高速で実行することができる。   Memory cell MC shown in FIG. 3 is an SRAM cell having a full CMOS (complementary MOS) structure, and data can be written / read at high speed. By using this SRAM cell, it is not necessary to refresh stored data in the memory cell mat 30, operation control is facilitated, and arithmetic processing can be executed at high speed.

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

図4は、図2に示す主演算回路20における演算操作を模式的に示す図である。図4においては、2ビット幅のデータワードaおよびbの加算を行なって、データワードcを生成する。エントリERYには、演算対象の組をなすデータワードaおよびbがともに格納される。   FIG. 4 is a diagram schematically showing an arithmetic operation in the main arithmetic circuit 20 shown in FIG. In FIG. 4, 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.

図4においては、第1行目のエントリERYに対するALU31においては、10B+01Bの加算が行なわれ、2行目のエントリERYに対するALU31においては、00B+11Bの演算が行なわれる。ここで、末尾の“B”は、2進数を示す。3行目のエントリERYに対するALU31においては、11B+10Bの演算が行なわれる。同様に、各エントリERYに格納されたデータワードaおよびbの加算が実行される。   In FIG. 4, 10B + 01B is added in ALU 31 for entry ERY in the first row, and 00B + 11B is calculated in ALU 31 for entry ERY in the second row. Here, “B” at the end indicates a binary number. In the ALU 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]を対応のALU31へ転送する。次いで、データワードbの下位ビットb[0]を対応のALU31へ転送する。ALU31において、これらの与えられた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. First, the lower bit a [0] of the data word a is transferred to the corresponding ALU 31 in the entry ERY. Next, the lower bit b [0] of the data word b is transferred to the corresponding ALU 31. The ALU 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, in the entry ERY in the first row, “1” is written at the position of bit c [0].

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

加算演算においては、桁上がりが生じる可能性があり、この桁上がり(キャリー)の値がビットc[2]の位置に書込まれる。これにより、データワードaおよびbの加算が、すべてのエントリERYにおいて完了し、その結果がデータcとして各エントリERYにおいて格納される。エントリとしてたとえば1024エントリを準備した場合、1024組のデータの加算を並列に実行することができる。   In the addition operation, a carry may occur, and the carry value is written at the bit c [2] position. 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.

図5は、この加算演算処理時の内部タイミングを模式的に示す図である。以下、図5を参照して、加算演算の内部タイミングについて説明する。この加算演算処理においては、ALU31に含まれる2ビット加算器(ADD)が利用される。   FIG. 5 is a diagram schematically showing the internal timing during this addition operation processing. 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 ALU 31 is used.

図5において、“Read”は、メモリセルマット30から演算対象のデータビットを読出して対応のALU31に転送する動作(ロード)または動作命令を示し、“Write”は、ALU31の演算結果データを対応のエントリERYの対応のビット位置に書込む動作(ストア)または動作命令を示す。   In FIG. 5, “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 the corresponding ALU 31, and “Write” corresponds to the operation result data of the ALU 31. Indicates an operation (store) or operation instruction to be written in the corresponding bit position of the entry ERY.

マシンサイクルkにおいて、データビットa[i]がメモリセルマット30から読出され、次のマシンサイクル(k+2)で、次の演算対象のデータビットb[i]が読出され(Read)、ALU31の加算器(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 + 2), the next data bit b [i] to be calculated is read (Read), and the ALU 31 is added. Is provided to each device (ADD).

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

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

メモリセルマット30とALU31の間のデータビットの転送に、それぞれ1マシンサイクルが必要とされ、ALU31において1マシンサイクルの演算サイクルが必要とされる。したがって、1ビットデータの加算および加算結果の格納を行なうために、4マシンサイクルが必要となる。メモリセルマット30を複数のエントリERYに分割し、各エントリに演算対象データの組をそれぞれ格納し、対応のALU31においてビットシリアル態様で演算処理を行なう方式の特徴は、1つ1つのデータ演算には、比較的多くのマシンサイクルが必要とされるものの、処理すべきデータ量が非常に多い場合には、演算の並列度を高くすることにより高速データ処理を実現することができるということである。   One machine cycle is required for the transfer of data bits between the memory cell mat 30 and the ALU 31, and one machine cycle is required in the ALU 31. 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 operation target data is stored in each entry, and the operation processing is performed in a bit serial manner in the corresponding ALU 31. If a relatively large number of machine cycles are required, but the amount of data to be processed is very large, high-speed data processing can be realized by increasing the degree of parallelism of operations. .

たとえば、演算対象のデータワードのビット幅がNの場合、各エントリの演算には、4・Nマシンサイクルが必要となる。演算対象のデータワードのビット幅は、8ビットから64ビット程度である。エントリ数mを、たとえば1024と大きくすることにより、並列演算処理時に、たとえば8ビットデータの場合、32マシンサイクルで1024個の演算結果を得ることができ、1024組のデータをシーケンシャルに処理する場合に比べて大幅に処理時間を短縮することができる。   For example, when the bit width of the data word to be calculated is N, 4 · N machine cycles are required for the calculation 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 adapted to various applications having various data configurations.

図6は、基本演算ブロックFBiにおけるコントローラ22の構成を示す図である。この基本演算ブロックFBiにおいて、主演算回路20においては、先の図1に示す構成と同様、メモリセルマット30、演算処理ユニット群35およびALU間相互接続用スイッチ回路32が設けられる。この図6においては、メモリセルマット30と演算処理ユニット群35の間に設けられる書込/読出回路38を併せて示す。この書込/読出回路38は、エントリERYそれぞれに対応して設けられるセンスアンプおよびライトドライバSAWを含む。このメモリセルマット30において、列方向に延在してエントリERYに共通にワード線が配設され、各エントリそれぞれにおいてビット線が対をなして配置される。図6においては、メモリセルマット30の列(ワード線)および行(ビット線)を選択するための回路は示していない。   FIG. 6 is a diagram showing a configuration of the controller 22 in the basic calculation block FBi. In this basic arithmetic block FBi, the main arithmetic circuit 20 is provided with a memory cell mat 30, an arithmetic processing unit group 35, and an ALU interconnection switch circuit 32 as in the configuration shown in FIG. In FIG. 6, a write / read circuit 38 provided between the memory cell mat 30 and the arithmetic processing unit group 35 is also shown. Write / read circuit 38 includes a sense amplifier and a write driver SAW provided corresponding to each entry ERY. In memory cell mat 30, word lines are provided in common in entries ERY extending in the column direction, and bit lines are arranged in pairs in each entry. In FIG. 6, a circuit for selecting a column (word line) and a row (bit line) of memory cell mat 30 is not shown.

コントローラ22は、マイクロ命令メモリ21からフェッチしたデータをデコードし、各種制御信号を生成する命令デコーダ40と、マイクロ命令メモリ21へのアドレスを生成するプログラムカウンタ41と、このプログラムカウンタ41のカウント値を更新するPC(プログラムカウント)計算ユニット42と、複数の汎用レジスタRxを含む汎用レジスタ群43と、汎用レジスタ群43の汎用レジスタの内容に対して条件判断などの演算を実行する演算回路(ALU)44と、この基本演算ブロックFBiの各種制御情報を格納する制御レジスタ群45を含む。制御レジスタ群45は、演算器(ALU)44の実行結果を格納する制御レジスタ(ステータスレジスタ)45sと、割込コントローラ44およびDMAコントローラ13と通信を行なう出力ポートレジスタ45oおよび入力ポートレジスタ45iを含む。   The controller 22 decodes the data fetched from the microinstruction memory 21, generates an instruction decoder 40 for generating various control signals, a program counter 41 for generating an address to the microinstruction memory 21, and the count value of the program counter 41. A PC (program count) calculation unit 42 to be updated, a general-purpose register group 43 including a plurality of general-purpose registers Rx, and an arithmetic circuit (ALU) that performs operations such as condition judgment on the contents of the general-purpose registers in the general-purpose register group 43 44 and a control register group 45 for storing various control information of the basic operation block FBi. The control register group 45 includes a control register (status register) 45s for storing the execution result of the arithmetic unit (ALU) 44, an output port register 45o and an input port register 45i for communicating with the interrupt controller 44 and the DMA controller 13. .

コントローラ22は、さらに、メモリセルマット30に対するアドレスを計算するアドレス計算ユニット46と、このアドレス計算ユニット46により計算されたアドレスを格納して主演算回路20へ与えるアドレスレジスタ群47を含む。このアドレスレジスタ群47は、エントリ内の各データに対するアドレスを生成するアドレスレジスタAxを含む。   The controller 22 further includes an address calculation unit 46 that calculates an address for the memory cell mat 30, and an address register group 47 that stores the address calculated by the address calculation unit 46 and supplies the address to the main arithmetic circuit 20. The address register group 47 includes an address register Ax that generates an address for each data in the entry.

マイクロ命令メモリ21には、必要とされるシーケンス処理がコード化されたマイクロプログラムが格納される。命令デコーダ40が、このマイクロ命令メモリ21からフェッチしたマイクロ命令をデコードし、コントローラ22内の各モジュールに対する制御信号生成し、また主演算回路20に対する制御信号を生成する。いわゆるファームウェアにっより、高速で必要とされる処理を実行することができる。図6において、命令デコーダ40から、書込/読出回路38に含まれるセンスアンプ/ライトドライバSAWに対する読出/書込制御信号(RW制御)と、演算処理ユニット群35に含まれるALU31に対する実行すべき演算内容を指示するALU制御信号と、ALU間相互接続用スイッチ回路32における接続を制御するスイッチ制御信号を代表的に示す。   The microinstruction memory 21 stores a microprogram in which necessary sequence processing is encoded. The instruction decoder 40 decodes the microinstruction fetched from the microinstruction memory 21, generates a control signal for each module in the controller 22, and generates a control signal for the main arithmetic circuit 20. The so-called firmware can execute the required processing at high speed. In FIG. 6, the instruction decoder 40 should execute the read / write control signal (RW control) for the sense amplifier / write driver SAW included in the write / read circuit 38 and the ALU 31 included in the arithmetic processing unit group 35. An ALU control signal for instructing calculation contents and a switch control signal for controlling connection in the ALU interconnection switch circuit 32 are shown representatively.

このコントローラ22には、また汎用レジスタ群43とワークデータメモリ23の間でデータのロード/ストアを行なうためのメモリインターフェイス(I/F)48が設けられる。   The controller 22 is also provided with a memory interface (I / F) 48 for loading / storing data between the general-purpose register group 43 and the work data memory 23.

図1に示すホストCPU(8)は、制御レジスタ群45に含まれるステータスレジスタ45sの格納データにより、コントローラ22の実行状態を監視し、この基本演算ブロックFBiの動作状況を確認する。コントローラ22は、システムバスインターフェイス24を介して、ホストCPU(8)から制御権を手渡されて、この基本演算ブロックFBi内の処理動作を制御する。   The host CPU (8) shown in FIG. 1 monitors the execution state of the controller 22 based on the data stored in the status register 45s included in the control register group 45, and confirms the operation status of the basic operation block FBi. The controller 22 is handed a control right from the host CPU (8) via the system bus interface 24, and controls the processing operation in the basic arithmetic block FBi.

図7は、図4に示す加算演算処理に対応するマイクロ命令で記述されるマイクロプログラムの一例を示す図である。図7において、マイクロプログラムの行番号の次に、実行されるマイクロ命令を示す。プログラム命令列における“//”は、次の命令列に対する処理内容を規定する見出しである。各命令行に対応して、右側の“//”の次に、対応の命令の処理内容を示すコメントが付される。マイクロ命令として実行されるのは、図7において、行番号の次に示される命令である。   FIG. 7 is a diagram showing an example of a microprogram described by microinstructions corresponding to the addition operation processing shown in FIG. In FIG. 7, the microinstruction to be executed is shown next to the line number of the microprogram. “//” in the program instruction sequence is a header that defines the processing content for the next instruction sequence. Corresponding to each instruction line, a comment indicating the processing content of the corresponding instruction is added after “//” on the right side. In FIG. 7, the instruction shown next to the line number is executed as a microinstruction.

“LD Ax,♯imm”命令は、アドレスレジスタ群47に含まれるアドレスレジスタAxに定数値♯immを設定する命令である。   The “LD Ax, #imm” instruction is an instruction for setting a constant value #imm in the address register Ax included in the address register group 47.

“LD Rx,♯imm”命令は、汎用レジスタ群43に含まれる汎用レジスタRxに定数値♯immを設定する命令である。   The “LD Rx, #imm” instruction is an instruction for setting a constant value #imm in the general purpose register Rx included in the general purpose register group 43.

“LD Outport,♯imm”命令は、制御レジスタ群45に含まれる出力ポートレジスタ45oに定数値♯immを設定する命令である。   The “LD Output, #imm” command is a command for setting a constant value #imm in the output port register 45 o included in the control register group 45.

“Set Idle”は、制御レジスタ群45のステータスレジスタ(制御レジスタ)45sに空き状態を示すアイドルビットを設定する命令である。   “Set Idle” is an instruction to set an idle bit indicating an empty state in the status register (control register) 45 s of the control register group 45.

“Inc Ax”命令は、アドレスレジスタAxに対する1加算命令である。
“BNE Rx,Label”命令は、汎用レジスタRxのレジスタ値が0以外の場合、“Label”が示す命令に分岐することを示す分岐命令である。
The “Inc Ax” instruction is an instruction for adding 1 to the address register Ax.
The “BNE Rx, Label” instruction is a branch instruction indicating branching to the instruction indicated by “Label” when the register value of the general-purpose register Rx is other than 0.

“Add Rx,♯imm”命令は、汎用レジスタRxの格納値に定数値♯immを加する命令である。この加算は、符号付きで実施され、定数値♯immとして負の数を指定することができる。   The “Add Rx, #imm” instruction is an instruction for adding a constant value #imm to the stored value of the general-purpose register Rx. This addition is performed with a sign, and a negative number can be designated as the constant value #imm.

“MemLd Ax”命令は、主演算回路20に対する制御命令であり、アドレスレジスタAxに格納されたアドレスが示すメモリセルマット30のアドレスから演算処理ユニット群35にデータをロードする命令である。このロードされたデータは、ALU31内に含まれるフリップフロップ(またはレジスタ)により保持される。   The “MemLd Ax” instruction is a control instruction for the main arithmetic circuit 20 and is an instruction for loading data to the arithmetic processing unit group 35 from the address of the memory cell mat 30 indicated by the address stored in the address register Ax. The loaded data is held by a flip-flop (or register) included in the ALU 31.

“MemLdAdd Ax”命令は、アドレスレジスタAxの格納値で示されるメモリセルマット30のアドレスからALU31にデータをロードし、このALU31内に保持された値とロードされたデータとの加算を行なう命令である。加算結果、すなわち和(Sum)とキャリー(Carry)情報は、ALU31内のフリップフロップ(レジスタ)に保持される。   The “MemLdAdd Ax” instruction is an instruction that loads data from the address of the memory cell mat 30 indicated by the stored value of the address register Ax to the ALU 31 and adds the value held in the ALU 31 and the loaded data. is there. The addition result, that is, sum (Sum) and carry information, is held in a flip-flop (register) in the ALU 31.

“MemStSum Ax”命令は、ALU31内の和(Sum)情報を保持したフリップフロップ(レジスタ回路)の内容を、メモリセルマット30内のアドレスレジスタAxが示すアドレス位置に書込む命令である。   The “MemStSum Ax” instruction is an instruction for writing the contents of the flip-flop (register circuit) holding the sum (Sum) information in the ALU 31 to the address position indicated by the address register Ax in the memory cell mat 30.

“MemStCarry Ax”命令は、ALU31内のキャリー(Carry)情報を保持したフリップフロップ(レジスタ回路)の内容を、メモリセルマット30内のアドレスレジスタAxの格納値が示すアドレス位置に書込む命令である。   The “MemStCarry Ax” instruction is an instruction for writing the contents of the flip-flop (register circuit) holding the carry information in the ALU 31 to the address position indicated by the stored value of the address register Ax in the memory cell mat 30. .

各命令の実行には、1命令サイクルが必要である。ただし、命令行において“||”を挟んで1行に併記される命令は、同一命令サイクルにおいて並列に実行される命令であることを示す。以下、図7に示すプログラムの処理内容を説明する。   Execution of each instruction requires one instruction cycle. However, an instruction written together in one line across “||” in an instruction line indicates an instruction executed in parallel in the same instruction cycle. The processing contents of the program shown in FIG. 7 will be described below.

行番号0においては、単に初期設定のコメントが付されているだけであり、処理は実行されない。行番号1において、出力ポートレジスタ45oに、加算演算処理を実行する開始ビット♯Startがロードされる。これにより、出力ポートレジスタ45oの初期化が実行される。   In line number 0, an initial comment is simply added, and the process is not executed. At line number 1, the output bit register 45o is loaded with a start bit #Start for executing addition operation processing. As a result, the output port register 45o is initialized.

行番号2から行番号4において、アドレスレジスタ群47のアドレスレジスタA0、A1、およびA2に、それぞれ、データaおよびbおよび加算結果cのアドレス位置を示すポインタ♯Apos、♯Bpos、および♯Cposがそれぞれ設定される。   In line numbers 2 to 4, address registers A0, A1, and A2 of address register group 47 have pointers #Apos, #Bpos, and #Cpos indicating the address positions of data a and b and addition result c, respectively. Each is set.

行番号5において、汎用レジスタ群43の汎用レジスタR0に、定数値2が格納され、ループ処理を行なう際のループ回数が設定される。このループ処理は、ビットシリアルで処理を行なうため、各加算演算が繰返されることを示す。   At line number 5, a constant value 2 is stored in the general-purpose register R0 of the general-purpose register group 43, and the number of loops when loop processing is performed is set. Since this loop processing is performed in bit serial, it indicates that each addition operation is repeated.

行番号8において、メモリセルマットにおいてアドレスレジスタA0の位置のビットが選択されて、ALU31にロードされる。このロード動作と同一サイクルにおいて、アドレスレジスタA0のポインタが1増分される。   At row number 8, the bit at the position of address register A0 is selected in the memory cell mat and loaded into ALU 31. In the same cycle as this load operation, the pointer of the address register A0 is incremented by one.

行番号9において、メモリセルマットにおいてアドレスレジスタA1のポインタが示すビットb[i]が選択されてALU31にロードされ、ビットa[i]およびb[i]の加算が実行される。このサイクルにおいて、また、アドレスレジスタA1のポインタ値が1増分される。   At row number 9, bit b [i] indicated by the pointer of address register A1 is selected in the memory cell mat and loaded into ALU 31, and addition of bits a [i] and b [i] is executed. Also in this cycle, the pointer value of the address register A1 is incremented by one.

行番号10において、加算結果Sumが、メモリセルマットのアドレスポインタA2が示すビット位置c[i]へ格納される。このときまた、アドレスレジスタA2のポインタ値が1増分される。   In row number 10, the addition result Sum is stored in bit position c [i] indicated by address pointer A2 of the memory cell mat. At this time, the pointer value of the address register A2 is also incremented by one.

行番号11において、汎用レジスタR0の格納値に(−1)が加算され、すなわち、汎用レジスタR0の格納値が1減分され、加算処理が1回行われたことが示される。   In line number 11, (-1) is added to the stored value of the general-purpose register R0, that is, the stored value of the general-purpose register R0 is decremented by 1, indicating that the addition process has been performed once.

行番号12において、汎用レジスタR0の格納値が0と異なる場合には、再び行番号7のループラベルAddLoopへ戻る。汎用レジスタR0の格納値が0の場合には、2ビットの加算処理が完了しているため、次の行番号13の命令へ進む。行番号13は、単に以降の処理内容を示すコメント文であり、処理は実行されない。   If the stored value of the general-purpose register R0 is different from 0 at the line number 12, the process returns to the loop label AddLoop at the line number 7 again. When the stored value of the general-purpose register R0 is 0, since the 2-bit addition process is completed, the process proceeds to the instruction of the next line number 13. Line number 13 is simply a comment statement indicating the contents of subsequent processing, and the processing is not executed.

行番号14において、ALU31のキャリーを格納するフリップフロップ(レジスタ)の保持するビットが、メモリセルマットのアドレスレジスタA2のポインタ値c[2]が示す位置へ格納される。   In the row number 14, the bit held by the flip-flop (register) that stores the carry of the ALU 31 is stored in the position indicated by the pointer value c [2] of the address register A2 of the memory cell mat.

行番号15において、再び、以下の処理内容を示すコメント文が付され、待機状態へ遷移する命令が行なわれることが示される。   In line number 15, a comment sentence indicating the following processing content is added again, indicating that an instruction to transition to the standby state is performed.

行番号16において、処理が完了したため、出力ポートレジスタ45oに、処理が完了したことを示す整数値Finishを設定し、また行番号17において、ステータスレジスタ45sにアイドルビットを設定する。この行番号16および17の処理により、基本演算ブロックFBiは、外部のホストCPU8等に対して、加算演算処理が終了したことを通知する。   Since the process is completed at line number 16, an integer value Finish indicating that the process is completed is set in the output port register 45o, and an idle bit is set in the status register 45s at line number 17. Through the processing of line numbers 16 and 17, the basic operation block FBi notifies the external host CPU 8 and the like that the addition operation processing has been completed.

図8は、図7に示す行番号8から10におけるアドレス値の更新を示すタイミング図である。まず、アドレス計算ユニット46に対し、初期設定命令シーケンスにより、初期アドレスPOS0が設定される。加算処理ループ実行時において、このアドレス計算ユニット46に格納されたアドレスポインタPOS0がアドレスレジスタAxに設定されて格納され、データの転送が実行される(ロード/ストア)。このとき、またアドレス計算ユニット46において、アドレスポインタが更新され次のアドレスPOS1を指定する。次のサイクルにおいて、アドレス計算ユニット46が更新されたポインタPOS1が、アドレスレジスタAxに転送される。以降、必要な演算処理が完了するまでこの加算処理ループAddLoopのループに従って、アドレス計算ユニット46およびアドレスレジスタAxの格納ポインタが、データ転送と並行して更新される。   FIG. 8 is a timing chart showing the update of the address values at the line numbers 8 to 10 shown in FIG. First, an initial address POS0 is set in the address calculation unit 46 by an initial setting instruction sequence. When the addition processing loop is executed, the address pointer POS0 stored in the address calculation unit 46 is set and stored in the address register Ax, and data transfer is executed (load / store). At this time, the address calculation unit 46 updates the address pointer to designate the next address POS1. In the next cycle, the pointer POS1 updated by the address calculation unit 46 is transferred to the address register Ax. Thereafter, the storage pointers of the address calculation unit 46 and the address register Ax are updated in parallel with the data transfer according to the loop of the addition processing loop AddLoop until necessary arithmetic processing is completed.

アドレスレジスタ群4を設け、各演算対象データに対するアドレスポインタApos、Bpos、およびCposをそれぞれ発生しかつ対応のアドレスレジスタに格納することにより、アドレス更新サイクルとデータの転送サイクルを同一サイクルに設定することができ、命令実行に必要なサイクル数を低減することができる。   An address register group 4 is provided, and address pointers Apos, Bpos, and Cpos for each operation target data are generated and stored in corresponding address registers, so that the address update cycle and the data transfer cycle are set to the same cycle. And the number of cycles required for instruction execution can be reduced.

図9は、ALU31の構成の一例を示す図である。図9において、ALU31は、指定された演算処理を行なう算術演算論理回路50と、対応のエントリから読出されたデータを一時的に格納するAフリップフロップ(レジスタ回路)52と、対応のエントリから読出されたデータまたは算術演算論理回路50の演算処理結果データまたはライトドライバへ転送するデータを一時的に格納するXフリップフロップ(レジスタ回路)54と、加減算処理時のキャリーまたはボローを格納するCフリップフロップ(レジスタ回路)56と、算術演算論理回路50の演算処理の禁止を指定するマスクデータを格納するMフリップフロップ(レジスタ回路)58を含む。   FIG. 9 is a diagram illustrating an example of the configuration of the ALU 31. In FIG. 9, an ALU 31 includes an arithmetic operation logic circuit 50 that performs a specified operation process, an A flip-flop (register circuit) 52 that temporarily stores data read from a corresponding entry, and a read from the corresponding entry. X flip-flop (register circuit) 54 for temporarily storing the processed data or the arithmetic processing result data of the arithmetic logic circuit 50 or the data to be transferred to the write driver, and the C flip-flop for storing the carry or borrow at the time of the addition / subtraction processing (Register circuit) 56 and an M flip-flop (register circuit) 58 for storing mask data designating prohibition of arithmetic processing of the arithmetic logic circuit 50.

図6に示すセンスアンプおよびライトドライバSAWは、ビット線対BLPに対応して設けられるライトドライバ60およびセンスアンプ62を含む。ライトドライバ60は、Xフリップフロップ54に格納されたデータをバッファ処理して対応のエントリのメモリセルへ対応のビット線対BLPを介して書込む。センスアンプ62は、対応のエントリのメモリセルから読出されたデータを増幅してAフリップフロップ52またはXフリップフロップ54へその増幅データを内部データ転送線63を介して転送する。Xフリップフロップ54は、内部データ転送線64を介して算術演算論理回路50およびライトドライバ60に結合される。   The sense amplifier and write driver SAW shown in FIG. 6 includes a write driver 60 and a sense amplifier 62 provided corresponding to the bit line pair BLP. The write driver 60 buffers the data stored in the X flip-flop 54 and writes it into the memory cell of the corresponding entry via the corresponding bit line pair BLP. Sense amplifier 62 amplifies the data read from the memory cell of the corresponding entry and transfers the amplified data to A flip-flop 52 or X flip-flop 54 via internal data transfer line 63. X flip-flop 54 is coupled to arithmetic logic circuit 50 and write driver 60 via internal data transfer line 64.

ALU間接続用スイッチ回路32は、ALU31に対して設けられるALU間接続回路65を含む。このALU間接続回路65は、たとえばスイッチマトリックスで構成される。   The inter-ALU connection switch circuit 32 includes an inter-ALU connection circuit 65 provided for the ALU 31. The inter-ALU connection circuit 65 is constituted by a switch matrix, for example.

算術演算論理回路50は、加算(ADD)、論理積(AND)、論理和(OR)、排他的論理和(EXOR:一致検出)、反転(NOT)等の演算を実行することができ、その演算内容が、マイクロ命令に基づいてコントローラ22からの制御信号(図6のALU制御)により設定される。Mフリップフロップ58に格納されるマスクデータは、“0”のときに、ALU31の演算処理動作を停止させ、“1”のときに、このALU31の演算処理動作をイネーブルする。この演算マスク機能を利用することにより、仮に全エントリが利用されない場合においても有効エントリに対してのみ演算を実行することができ、正確な処理を行なうことができるとともに、不必要な演算の実行を停止させることにより、消費電流を低減することができる。   The arithmetic operation logic circuit 50 can execute operations such as addition (ADD), logical product (AND), logical sum (OR), exclusive logical sum (EXOR: coincidence detection), inversion (NOT), etc. The calculation content is set by a control signal (ALU control in FIG. 6) from the controller 22 based on the microinstruction. When the mask data stored in the M flip-flop 58 is “0”, the arithmetic processing operation of the ALU 31 is stopped, and when the mask data is “1”, the arithmetic processing operation of the ALU 31 is enabled. By using this operation mask function, even if not all entries are used, it is possible to execute operations only on valid entries, perform accurate processing, and perform unnecessary operations. By stopping, current consumption can be reduced.

この算術演算論理回路50において、先の2項加算を行なう場合、全加算器を用いて加算を行ない、最終的にCフリップフロップ56に格納されたキャリーを図7に示す行番号14のマイクロ命令に従ってメモリセルマットを対応のビット位置c[2]へ書込む。加算結果SumがXフリップフロップ54に格納される。   In the arithmetic operation logic circuit 50, when the previous binary addition is performed, the addition is performed using a full adder, and finally the carry stored in the C flip-flop 56 is stored in the microinstruction of the line number 14 shown in FIG. To write the memory cell mat into the corresponding bit position c [2]. The addition result Sum is stored in the X flip-flop 54.

以上のように、この発明の実施の形態1に従えば、基本演算ブロックそれぞれにおいてマイクロ命令メモリを設け、このマイクロ命令メモリに格納されたマイクロ命令に従ってデータの転送(ロード/ストア)および演算処理を実行しており、マイクロ命令の変更のみで演算内容を自由に切り換えることができる。   As described above, according to the first embodiment of the present invention, a microinstruction memory is provided in each basic arithmetic block, and data transfer (load / store) and arithmetic processing are performed according to the microinstruction stored in the microinstruction memory. The contents of the operation can be freely switched only by changing the microinstruction.

また、アドレスレジスタおよびアドレス計算ユニットを設けることにより、データ転送動作と並行してアドレス更新を行なうことができ、演算に必要な命令サイクル数を低減することができ、高速処理を実現することができる。   In addition, by providing an address register and an address calculation unit, address updating can be performed in parallel with the data transfer operation, the number of instruction cycles required for computation can be reduced, and high-speed processing can be realized. .

[実施の形態2]
図10は、この発明の実施の形態2に従う基本演算ブロックFBiの構成を概略的に示す図である。この図10に示す基本演算ブロックFBiにおいては、コントローラ22の以下の構成が、先の図6に示す実施の形態1に従うコントローラ22の構成と異なる。すなわち、コントローラ22において、ループ命令実行時ループの開始アドレスを格納する開始アドレスレジスタ70と、ループの終了アドレスを格納する終了アドレスレジスタ72が設けられる。これらの開始アドレスレジスタ70および終了アドレスレジスタ72の格納値は、PC値計算ユニット42へ与えられる。この図10に示すコントローラ22の他の構成は、図6に示すコントローラ22の構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
[Embodiment 2]
FIG. 10 schematically shows a structure of basic operation block FBi according to the second embodiment of the present invention. In basic operation block FBi shown in FIG. 10, the following configuration of controller 22 is different from the configuration of controller 22 according to the first embodiment shown in FIG. That is, the controller 22 is provided with a start address register 70 for storing the start address of the loop at the time of execution of the loop instruction and an end address register 72 for storing the end address of the loop. The stored values of the start address register 70 and the end address register 72 are given to the PC value calculation unit 42. The other configuration of the controller 22 shown in FIG. 10 is the same as the configuration of the controller 22 shown in FIG. 6, and corresponding portions are denoted by the same reference numerals, and detailed description thereof is omitted.

本実施の形態2においては、先の図7に示すマイクロプログラムの行番号11および12に示されるループカウンタの減算処理および分岐処理を、1つの命令で行なうループ命令LOOPを追加する。   In the second embodiment, a loop instruction LOOP is added which performs the subtraction process and branch process of the loop counter indicated by line numbers 11 and 12 of the microprogram shown in FIG. 7 with one instruction.

命令“LOOP Rx,Label”は、次の命令からラベルLabelで示される命令の間を、汎用レジスタRxの格納値で示された回数繰返す命令である。このループ命令LOOPが実行されると、ループ命令の開始アドレスおよび終了アドレスが開始アドレスレジスタ70および終了アドレスレジスタ72にそれぞれ格納される。   The instruction “LOOP Rx, Label” is an instruction that repeats the number of times indicated by the stored value of the general-purpose register Rx between the next instruction and the instruction indicated by the label Label. When the loop instruction LOOP is executed, the start address and end address of the loop instruction are stored in the start address register 70 and the end address register 72, respectively.

PC値計算ユニット42においては、プログラムカウンタ41のカウント値と終了アドレスレジスタ72に格納されるアドレス値とを比較する。このプログラムカウンタ41のカウント値が終了アドレスと一致すると、ループカウンタとして指定された汎用レジスタRxの格納値を1減分する。減算結果が0でない場合には、次のプログラムカウント値として開始アドレスレジスタ70に格納された開始アドレスを設定する。この汎用レジスタRxの格納値が0の場合には、通常の処理と同様、プログラムカウンタ41のカウント値を1増分して次のアドレスの命令を実行する。   The PC value calculation unit 42 compares the count value of the program counter 41 with the address value stored in the end address register 72. When the count value of the program counter 41 matches the end address, the stored value of the general-purpose register Rx designated as the loop counter is decremented by one. If the subtraction result is not 0, the start address stored in the start address register 70 is set as the next program count value. When the stored value of the general-purpose register Rx is 0, the count value of the program counter 41 is incremented by 1 and the instruction at the next address is executed, as in normal processing.

図11は、この発明の実施の形態2に従うループ命令LOOPを用いるマイクロプログラムの一例を示す図である。この図11に示すマイクロプログラムは、図7に示すマイクロプログラムと同じ処理を実行する。   FIG. 11 shows an example of a microprogram using loop instruction LOOP according to the second embodiment of the present invention. The microprogram shown in FIG. 11 executes the same processing as the microprogram shown in FIG.

図11に示すように、行番号5の命令により、汎用レジスタR0に定数2が格納され、ループ回数が指定される。行番号7においてループ命令“LOOP R0,AddLoopLast”が実行される。この場合、ラベル“AddLoopLast:”で示される命令、すなわち第11行の命令MemStSum迄の命令列を、汎用レジスタR0に格納された値(2)が示す回数繰返すことが指定される。この行番号7から行番号10の命令列が、図7に示すマイクロプログラムの命令列と異なる。   As shown in FIG. 11, the instruction of line number 5 stores constant 2 in general-purpose register R0 and designates the number of loops. At line number 7, the loop instruction “LOOP R0, AddLoopLast” is executed. In this case, it is specified that the instruction indicated by the label “AddLoopLast:”, that is, the instruction sequence up to the instruction MemStSum on the eleventh row is repeated the number of times indicated by the value (2) stored in the general-purpose register R0. The instruction sequence from line number 7 to line number 10 is different from the instruction sequence of the microprogram shown in FIG.

図12は、ループ命令LOOPの処理内容を示す図である。以下、図12を参照して、このループ命令の操作内容について説明する。以下の説明においては、図11に示すプログラムの行番号を参照する。   FIG. 12 shows the processing contents of the loop instruction LOOP. Hereinafter, the operation content of the loop instruction will be described with reference to FIG. In the following description, reference is made to the program line numbers shown in FIG.

行番号0から5の命令群においては、先の図7に示す処理と同様の処理が行なわれ、出力ポートレジスタ45oの初期設定およびアドレスレジスタA0−A2および汎用レジスタR0の初期設定が行なわれる。汎用レジスタRx(R0)に、ループ回数2が設定される(ステップS1)。   In the instruction group of line numbers 0 to 5, processing similar to that shown in FIG. 7 is performed, and initialization of output port register 45o and initialization of address registers A0-A2 and general-purpose register R0 are performed. The loop count 2 is set in the general-purpose register Rx (R0) (step S1).

次いで、行番号7において、ループ命令が実行されると(ステップS2)、このループの開始アドレス(行番号8の命令MemLdのアドレス)およびループの終了アドレス(行番号11の命令MemStSumのアドレス)が開始アドレスレジスタ70および終了アドレスレジスタ72にそれぞれ格納される(ステップS3)。このループ命令に到達するまでは、判定ブロックS2においてループ命令が実行されるのを待つ。   Next, when the loop instruction is executed at line number 7 (step S2), the start address of the loop (address of the instruction MemLd of line number 8) and the end address of the loop (address of the instruction MemStSum of line number 11) are obtained. They are stored in the start address register 70 and the end address register 72, respectively (step S3). Until this loop instruction is reached, it waits for execution of the loop instruction in decision block S2.

ループ開始および終了アドレスが格納された後、プログラムカウンタのポインタPCが増分されて(ステップS4)、次の行番号8の命令が実行される(ステップS6)。これにより、アドレスレジスタA0に格納されたアドレスに対応するメモリセルデータがALUにロードされ、またアドレスレジスタA0のポインタが1増分される。   After the loop start and end addresses are stored, the pointer PC of the program counter is incremented (step S4), and the next line number 8 instruction is executed (step S6). As a result, the memory cell data corresponding to the address stored in the address register A0 is loaded into the ALU, and the pointer of the address register A0 is incremented by one.

このステップS6の命令実行と並行して分岐判定がステップS5以降において実行される。いま、PC値計算ユニット42のカウンタ値は、終了アドレスに等しくないため(ステップS5)、プログラムカウンタ41のカウント値PCが1増分され(ステップS4)、次の行番号9の命令MemLdAddが実行される(ステップS6)。この行番号9の命令アドレス(プログラムカウンタ41のカウント値)は、ループ終了アドレスに等しくないため、プログラムカウンタ41のカウント値が1増分されて、次の行番号10のラベルが指定する行番号11の命令が実行される(ステップS4およびS6)。   In parallel with the instruction execution in step S6, branch determination is executed in step S5 and subsequent steps. Since the counter value of the PC value calculation unit 42 is not equal to the end address (step S5), the count value PC of the program counter 41 is incremented by 1 (step S4), and the instruction MemLdAdd of the next line number 9 is executed. (Step S6). Since the instruction address of the line number 9 (count value of the program counter 41) is not equal to the loop end address, the count value of the program counter 41 is incremented by 1, and the line number 11 specified by the label of the next line number 10 is designated. Are executed (steps S4 and S6).

この行番号11の命令のアドレス(プログラムカウンタ41のカウント値)が、終了アドレスレジスタ72に格納される終了アドレスと等しいため、ステップS5における判断結果に従って、汎用レジスタR0に格納されたレジスタ値は1減分される(ステップS7)。   Since the address of the instruction of line number 11 (the count value of the program counter 41) is equal to the end address stored in the end address register 72, the register value stored in the general-purpose register R0 is 1 according to the determination result in step S5. It is decremented (step S7).

次いで、このレジスタ格納値Rxが0に等しいか否かの判断が行なわれる(ステップS8)、まだ1回目であるため、PC値計算ユニット42は、プログラムカウンタ41のカウント値PCを開始アドレスレジスタ70に格納された開始アドレスに設定し(ステップS9)、再びステップS6へ戻る。以降、ステップS4からステップS7の動作が繰返される。   Next, a determination is made as to whether or not the register stored value Rx is equal to 0 (step S8). Since it is still the first time, the PC value calculation unit 42 sets the count value PC of the program counter 41 to the start address register 70. (Step S9), and the process returns to step S6. Thereafter, the operations from step S4 to step S7 are repeated.

ステップS8において、行番号11の命令完了後、汎用レジスタRx(R0)のレジスタ値が0となると、ループ処理が完了したと判定され、PC値計算ユニット42はプログラムカウンタ11のカウント値を1増分する(ステップS10)。これにより、ループ処理が終了し、次の行番号13の命令が行なわれ、キャリーがビット位置c[2]へ書込まれる。   In step S8, when the register value of the general-purpose register Rx (R0) becomes 0 after the instruction of the line number 11 is completed, it is determined that the loop processing is completed, and the PC value calculation unit 42 increments the count value of the program counter 11 by 1. (Step S10). As a result, the loop processing is completed, the next line number 13 instruction is performed, and the carry is written into bit position c [2].

したがって、このループ命令LOOPにおいてループ命令自体は、1回だけ実行され、すなわち1回だけループ状の分岐が行なわれ、第8行から第11行までの3命令がループ処理として実行される。   Therefore, in this loop instruction LOOP, the loop instruction itself is executed only once, that is, a loop-like branch is performed only once, and three instructions from the eighth line to the eleventh line are executed as loop processing.

なお、この終了アドレスの格納としては、行番号10のラベルAddLoopLastに到達したときに、次の命令のアドレスが、終了アドレスレジスタ72に格納されてもよい。ラベル到達時に終了アドレスを格納しても、この行番号10のラベルにより比較ステップS5が実行され、その実行結果に従って行番号11または行番号7への分岐が判定されるため、正確な分岐処理を行なうことができる。   As the storage of the end address, the address of the next instruction may be stored in the end address register 72 when the label AddLoopLast of the line number 10 is reached. Even when the end address is stored when the label arrives, the comparison step S5 is executed with the label of the line number 10, and the branch to the line number 11 or the line number 7 is determined according to the execution result. Can be done.

このループ命令LOOPを追加することにより、図7に示すマイクロプログラムにおける行番号11および12のように、ループ分岐判定のために主演算回路が動作待機状態となるサイクルをなくすことができ(行番号9の命令実行と並行して、ループ分岐判定処理が行なわれる)、最小サイクル数でループ処理を行なうことができる(図12に示すフロー図においては、ステップS5からステップS8が、命令実行ステップS6と並行して実行される)。   By adding this loop instruction LOOP, it is possible to eliminate the cycle in which the main arithmetic circuit is in an operation standby state for loop branch determination (line numbers 11 and 12 in the microprogram shown in FIG. 7). 9 is executed in parallel with the execution of the instruction 9), the loop process can be executed with the minimum number of cycles (in the flowchart shown in FIG. 12, steps S5 to S8 are executed from the instruction execution step S6). Executed in parallel).

以上のように、この発明の実施の形態2に従えば、ループ演算命令を準備しているため、主演算回路が非動作状態となる期間を低減することができ、高速処理が実現される。   As described above, according to the second embodiment of the present invention, since the loop operation instruction is prepared, the period during which the main operation circuit is in the non-operating state can be reduced, and high-speed processing is realized.

[実施の形態3]
図13は、この発明の実施の形態3に従う基本演算ブロックFBiの構成を概略的に示す図である。図13において、主演算回路20において、2つのメモリセルマット30Aおよび30Bが設けられる。これらのメモリセルマット30Aおよび30Bそれぞれに対して、読出/書込回路38Aおよび38Bが設けられる。メモリセルマット30Aおよび30Bは、同一構成を有し、それぞれ複数のエントリERYに分割される。読出/書込回路38Aおよび38Bにおいて、エントリERYそれぞれに対応して、センスアンプおよびライトドライバSAWが設けられる。
[Embodiment 3]
FIG. 13 schematically shows a structure of basic operation block FBi according to the third embodiment of the present invention. In FIG. 13, the main arithmetic circuit 20 is provided with two memory cell mats 30A and 30B. Read / write circuits 38A and 38B are provided for memory cell mats 30A and 30B, respectively. Memory cell mats 30A and 30B have the same configuration and are each divided into a plurality of entries ERY. In read / write circuits 38A and 38B, a sense amplifier and a write driver SAW are provided corresponding to each entry ERY.

これらのメモリセルマット30Aおよび30Bは、互いに分離されたビット線対を介して演算処理ユニット35に含まれる対応のALU31に結合される。したがってこれらのメモリセルマット30Aおよび30Bは、個々にアクセスが可能である。主演算回路20においては、また、先の実施の形態1および2と同様、演算処理ユニット35のALU31間の接続経路を切換えるためのALU間相互接続用スイッチ回路32が設けられる。   These memory cell mats 30A and 30B are coupled to corresponding ALUs 31 included in the arithmetic processing unit 35 through bit line pairs separated from each other. Therefore, these memory cell mats 30A and 30B can be individually accessed. The main arithmetic circuit 20 is also provided with an inter-ALU interconnection switch circuit 32 for switching the connection path between the ALUs 31 of the arithmetic processing unit 35 as in the first and second embodiments.

メモリセルマット30Aおよび30Bの動作を制御するために、アドレス計算ユニット46Aおよび46Bとアドレスレジスタ群47Aおよび47Bが設けられる。アドレス計算ユニット46Aおよびアドレスレジスタ群47Aにより、メモリセルマット30Aに対するアドレスが生成され、アドレス計算ユニット46Bおよびアドレスレジスタ群47Bにより、メモリセルマット30Bに対するアドレスが生成される。メモリセルマット30Aおよび30Bに含まれるメモリセルは、後に説明するように、デュアルポートSRAMメモリセルであり、書込ポートと読出ポートとを有し、これらのアドレスレジスタ群47Aおよび47Bは、各々、書込アドレスおよび読出アドレスを別々に生成する。   In order to control the operation of memory cell mats 30A and 30B, address calculation units 46A and 46B and address register groups 47A and 47B are provided. An address for memory cell mat 30A is generated by address calculation unit 46A and address register group 47A, and an address for memory cell mat 30B is generated by address calculation unit 46B and address register group 47B. As will be described later, the memory cells included in memory cell mats 30A and 30B are dual-port SRAM memory cells, and have a write port and a read port. These address register groups 47A and 47B are respectively Write address and read address are generated separately.

命令デコーダ40は、演算処理ユニット35における演算処理内容を規定するALU制御信号を生成し、またALU間相互接続スイッチ回路32の接続経路を設定するスイッチ制御信号を生成する。この命令デコーダ40は、読出/書込回路38Aおよび38Bに対し、書込制御信号(ライト制御)を生成する。メモリセルは、SRAMセルであり、読出/書込回路においてセンスアンプは、アクセス時センスアンプおよびライトドライバSAWに含まれるセンスアンプが常時活性化され、ライトドライバの活性/非活性のみが、命令デコーダ40からのライト制御信号に従って行なわれる。   The instruction decoder 40 generates an ALU control signal that defines the contents of arithmetic processing in the arithmetic processing unit 35 and generates a switch control signal that sets a connection path of the inter-ALU interconnection switch circuit 32. Instruction decoder 40 generates a write control signal (write control) for read / write circuits 38A and 38B. The memory cell is an SRAM cell. In the read / write circuit, the sense amplifier in the access is always activated by the sense amplifier and the sense amplifier included in the write driver SAW, and only the activation / inactivation of the write driver is determined by the instruction decoder. This is performed in accordance with a write control signal from 40.

この図13に示すコントローラ22の他の構成は、先の実施の形態2における図10に示すコントローラ22の構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。   The other configuration of the controller 22 shown in FIG. 13 is the same as the configuration of the controller 22 shown in FIG. 10 in the second embodiment, and the corresponding parts are denoted by the same reference numerals, and detailed description thereof is omitted. To do.

図14は、図13に示すメモリセルマット30Aおよび30Bに含まれるメモリセルMCの構成の一例を示す図である。図14において、メモリセルMCは、書込ポートと読出ポートとが別々に設けられたデュアルポートメモリセル構造を有する。このメモリセルMCに対しては、読出ワード線RWLおよび書込ワード線WWLが設けられ、また読出ビット線RBLおよび/RBLと書込ビット線WBLおよび/WBLとが設けられる。読出ポートは、読出ワード線RWLの信号電位に応答してストレージノードSN1およびSN2をそれぞれ読出ビット線RBLおよび/RBLに接続するNチャネルMOSトランジスタNQ5およびNQ6を含む。書込ポートは、書込ワード線WWL上の信号電位に応答してストレージノードSN1およびSN2をそれぞれ書込ビット線WBLおよび/WBLに接続するNチャネルMOSトランジスタNQ7およびNQ8を含む。   FIG. 14 shows an example of the configuration of memory cells MC included in memory cell mats 30A and 30B shown in FIG. In FIG. 14, memory cell MC has a dual port memory cell structure in which a write port and a read port are provided separately. For memory cell MC, read word line RWL and write word line WWL are provided, and read bit lines RBL and / RBL and write bit lines WBL and / WBL are provided. Read port includes N channel MOS transistors NQ5 and NQ6 connecting storage nodes SN1 and SN2 to read bit lines RBL and / RBL, respectively, in response to the signal potential of read word line RWL. Write port includes N channel MOS transistors NQ7 and NQ8 connecting storage nodes SN1 and SN2 to write bit lines WBL and / WBL, respectively, in response to a signal potential on write word line WWL.

メモリセルMCのデータ記憶部は、先の実施の形態1において示したものと同様、負荷PチャネルMOSトランジスタPQ1およびPQ2と、ドライブ用NチャネルMOSトランジスタNQ1およびNQ2を含む。   Data storage portion of memory cell MC includes load P-channel MOS transistors PQ1 and PQ2 and drive N-channel MOS transistors NQ1 and NQ2, similarly to those shown in the first embodiment.

この図14に示すデュアルポートメモリセル構造を利用することにより、ビットシリアル態様でデータの演算処理を行なう場合、書込および読出用すなわちストアおよびロードを同時に行なうことができる。演算結果が書込まれる領域は、演算対象のデータが格納される領域とは別に設けられており、選択メモリセルにおいて書込データおよび読出データの衝突の問題は生じず、通常のマルチポートメモリにおけるアドレスアービトレーションの問題は生じない。   By using the dual port memory cell structure shown in FIG. 14, when performing data processing in a bit serial manner, writing and reading, that is, storing and loading can be performed simultaneously. The area where the operation result is written is provided separately from the area where the operation target data is stored, and there is no problem of collision between the write data and the read data in the selected memory cell. There is no address arbitration problem.

図15は、図13に示すメモリセルマット30Aおよび30BのセンスアンプおよびライトドライバSAWおよびALU31の構成を概略的に示す図である。図15において、読出/書込回路38Aにおいては、センスアンプおよびライトドライバSAWは、書込ビット線対WBLPAに結合されるライトドライバ60Aと、読出ビット線対RBLPAに結合されるセンスアンプ62Aを含む。読出/書込回路38BにおいてセンスアンプおよびライトドライバSAWは、書込ビット線対WBLPBに結合されるライトドライバ60Bと、読出ビット線対RBLPBに結合されるセンスアンプ62Bを含む。   FIG. 15 schematically shows configurations of sense amplifiers and write drivers SAW and ALU 31 of memory cell mats 30A and 30B shown in FIG. 15, in read / write circuit 38A, sense amplifier and write driver SAW includes a write driver 60A coupled to write bit line pair WBLPA and a sense amplifier 62A coupled to read bit line pair RBLPA. . In read / write circuit 38B, sense amplifier and write driver SAW includes a write driver 60B coupled to write bit line pair WBLPB and a sense amplifier 62B coupled to read bit line pair RBLPB.

この図15に示すように、メモリセルマット30Aおよび30Bは、演算処理ユニット35(ALU31)を中心として、対称的に配置される。メモリセルマット30Aおよび30Bにおけるビット線対の配線レイアウトを容易とする。   As shown in FIG. 15, memory cell mats 30A and 30B are arranged symmetrically with respect to arithmetic processing unit 35 (ALU 31). The wiring layout of the bit line pairs in the memory cell mats 30A and 30B is facilitated.

ALU31は、先の図9に示すALU31の構成と異なり、センスアンプ62Aの出力データを格納するAフリップフロップ52Aと、センスアンプ62Bの出力データを格納するAフリップフロップ52Bを含む。Xフリップフロップ54は、ライトドライバ60Aおよび60Bに共通に結合される。算術演算論理回路50に対しては、Aフリップフロップ52Aおよびおよび52Bの格納データが演算対象データとして与えられ、演算結果がXフリップフロップ54に格納される。   Unlike the configuration of ALU 31 shown in FIG. 9, ALU 31 includes an A flip-flop 52A that stores output data of sense amplifier 62A and an A flip-flop 52B that stores output data of sense amplifier 62B. X flip-flop 54 is commonly coupled to write drivers 60A and 60B. The arithmetic operation logic circuit 50 is supplied with the data stored in the A flip-flops 52A and 52B as operation target data, and the operation result is stored in the X flip-flop 54.

このALU31においては、また、キャリーまたはボローを格納するCフリップフロップ56およびこのALU31の活性/非活性を示すマスクデータを格納するMフリップフロップ58が設けられる。   The ALU 31 is further provided with a C flip-flop 56 for storing carry or borrow and an M flip-flop 58 for storing mask data indicating activation / inactivation of the ALU 31.

この図15に示すALU31を利用する場合、センスアンプ62Aおよび62Bからのデータのラッチと並行して、Xフリップフロップ54から、ライトドライバ60Aまたは60Bを介して演算結果データを書込むことができる。   When the ALU 31 shown in FIG. 15 is used, operation result data can be written from the X flip-flop 54 via the write driver 60A or 60B in parallel with the latching of data from the sense amplifiers 62A and 62B.

図16は、この主演算回路20に含まれるメモリセルマット30Aおよび30Bの具体的配置を概略的に示す図である。図16に示す主演算回路20においては、演算処理ユニット35の両側に、メモリセルマット30Aおよび30Bが配置される。これらのメモリセルマット30Aおよび30Bが、同一構成を有し、それぞれにおいてデータビット幅がnビットのエントリERYがm個配置される。   FIG. 16 schematically shows a specific arrangement of memory cell mats 30A and 30B included in main operation circuit 20. In FIG. In the main arithmetic circuit 20 shown in FIG. 16, memory cell mats 30 </ b> A and 30 </ b> B are arranged on both sides of the arithmetic processing unit 35. These memory cell mats 30A and 30B have the same configuration, and m entries ERY each having a data bit width of n bits are arranged.

ALU31は、メモリセルマット30Aおよび30Bの対応のエントリのデータについて指定された演算処理を行なう。2項演算を、ALU31がそれぞれ行なう場合、メモリセルマット30Aおよび30Bに各項の演算対象データを格納し、その演算処理結果を、メモリセルマット30Aおよび30Bの一方に格納する。   ALU 31 performs the specified arithmetic processing on the data of the corresponding entries in memory cell mats 30A and 30B. When the ALU 31 performs the two-term operation, the calculation target data of each term is stored in the memory cell mats 30A and 30B, and the calculation processing result is stored in one of the memory cell mats 30A and 30B.

メモリセルMCが、デュアルポートメモリセルであり、このALU31に対する演算対象データの転送(ロード)と、演算結果データの転送(ストア)を並行して行なうことができる。   The memory cell MC is a dual port memory cell, and the transfer (load) of operation target data to the ALU 31 and the transfer (store) of operation result data can be performed in parallel.

図17は、この発明の実施の形態3に従う2項加算演算実行のためのマイクロ命令プログラムの一例を示す図である。以下、図17を参照して、この発明の実施の形態3に従う基本演算ブロックの処理について説明する。   FIG. 17 shows an example of a microinstruction program for executing a binary addition operation according to the third embodiment of the present invention. Hereinafter, with reference to FIG. 17, the processing of the basic operation block according to the third embodiment of the present invention will be described.

この図17に示すマイクロ命令プログラムにおいては、行番号0から5において、先の実施の形態2と同様の処理が実行される。すなわち、行番号2から行番号4の命令“LD Ax,♯imm”により、アドレスポインタA0−A2に、それぞれアクセスすべきデータの先頭アドレス(データの最下位ビットのアドレス)が設定される。一例として、アドレスレジスタA0には、メモリセルマット30Aに対するアドレスが設定され、アドレスレジスタA1には、メモリセルマット30Bに対するアドレスが設定される。演算後のデータcに対するアドレスを格納するアドレスレジスタA2に、メモリセルマット30Aまたは30Bの一方の先頭アドレスを設定する。   In the microinstruction program shown in FIG. 17, the same processing as that in the second embodiment is executed at line numbers 0 to 5. That is, the instruction “LD Ax, #imm” from line number 2 to line number 4 sets the start address of the data to be accessed (address of the least significant bit of the data) in the address pointers A0 to A2. As an example, an address for the memory cell mat 30A is set in the address register A0, and an address for the memory cell mat 30B is set in the address register A1. One address of the memory cell mat 30A or 30B is set in the address register A2 that stores an address for the data c after the calculation.

行番号5の命令“LD R0,♯2”により、制御レジスタR0に、ループ回数(2回)が設定される。   By the instruction “LD R0, # 2” of the line number 5, the loop count (twice) is set in the control register R0.

次いで、行番号7において、ループ命令が実行され、このループ命令の開始アドレス(行番号8の命令のアドレス)に対応するアドレスおよび行番号9の命令に対するアドレスがそれぞれ開始アドレスおよび終了アドレスとして格納される。この場合、マイクロ命令メモリの同一アドレスに、これらの行番号8および9のラベルおよび命令が格納される場合には、開始アドレスおよび終了アドレスは同一アドレスとなる。   Next, at line number 7, a loop instruction is executed, and the address corresponding to the start address of the loop instruction (the address of the instruction at line number 8) and the address for the instruction at line number 9 are stored as the start address and end address, respectively. The In this case, when the labels and instructions of line numbers 8 and 9 are stored at the same address in the microinstruction memory, the start address and the end address are the same address.

この行番号9の命令群においては、加算、加算結果の格納およびアドレスの増分が並行して実行される。すなわち、この行番号9の命令に従って、アドレスレジスタA0の格納するアドレスのメモリセルが読出されて対応のALUに転送され、また、これと並行して、アドレスレジスタA1に格納されるアドレスのメモリセルのデータが、対応のメモリセルマットから読出されて対応のALUに転送される。この転送動作時においては、メモリセルのリードワード線RWLが選択状態へ駆動され、読出ビット線RBLおよび/RBLを介して対応のALUのAフリップフロップ52Aおよび52Bにデータが転送される。   In the instruction group of line number 9, addition, storage of the addition result, and address increment are executed in parallel. That is, according to the instruction of row number 9, the memory cell at the address stored in address register A0 is read out and transferred to the corresponding ALU, and in parallel, the memory cell at the address stored in address register A1 Are read from the corresponding memory cell mat and transferred to the corresponding ALU. In this transfer operation, read word line RWL of the memory cell is driven to a selected state, and data is transferred to A flip-flops 52A and 52B of the corresponding ALU via read bit lines RBL and / RBL.

この転送動作と加算が行なわれた後、その加算結果が同一サイクル内で、アドレスレジスタA2が示すアドレス位置に格納される。この書込時においては、書込ワード線WWLが選択状態へ駆動され、書込ビット線WBLおよび/WBLを介してデータの転送が行なわれる。このロード、加算およびストアが、1マシンサイクル内において前半サイクルでロードおよび加算が行なわれ後半サイクルで、この加算結果(Sum)の転送が行なわれればよい。また、これに代えて、加算結果の格納は、演算対象データのロードの次のサイクルにおいて行われても良い。この場合、次の演算対象データのロードとストアが並行して行われる。   After this transfer operation and addition, the addition result is stored in the address position indicated by the address register A2 in the same cycle. In writing, write word line WWL is driven to a selected state, and data is transferred via write bit lines WBL and / WBL. The load, addition, and store may be performed in the first half cycle within one machine cycle, and the addition result (Sum) may be transferred in the second half cycle. Alternatively, the addition result may be stored in the next cycle of loading the operation target data. In this case, the next calculation target data is loaded and stored in parallel.

このロード、加算およびストア動作実行それぞれと並行して、アドレスレジスタA0、A1およびA2のポインタ値が1増分される。   In parallel with the execution of the load, addition, and store operations, the pointer values of the address registers A0, A1, and A2 are incremented by one.

ループ命令LOOPを実行しており、先の図12に示すフローと同様の処理が行なわれ、行番号9の命令は、ループ命令の終了アドレスであり、レジスタR0の格納値が1減分されて、そのレジスタ格納値が0と等しいかの判定が行なわれる。1回目の演算処理時においては、制御レジスタR0の格納値は1であり、再び、行番号8に戻って、ラベルAddLoopLastで始まる命令が実行される。   The loop instruction LOOP is executed, the same processing as in the flow shown in FIG. 12 is performed, the instruction of line number 9 is the end address of the loop instruction, and the stored value of the register R0 is decremented by 1. A determination is made as to whether the stored value of the register is equal to zero. At the time of the first calculation process, the stored value of the control register R0 is 1. Again, the processing returns to the line number 8 and the instruction starting with the label AddLoopLast is executed.

2回目のロード、加算およびストア演算が完了すると、再び、汎用レジスタR0の格納値が減分されて、レジスタ値が0でないかの判定が行なわれる。この汎用レジスタR0の格納値はこのときには0となり、ループ命令の実行シーケンスが完了し、プログラムカウンタのカウント値が1増分され、行番号11の命令が実行され、キャリーが、アドレスレジスタA2が指定するメモリセル位置へ格納される。   When the second load, addition, and store operations are completed, the stored value of the general-purpose register R0 is decremented again to determine whether the register value is not 0. The stored value of the general-purpose register R0 is 0 at this time, the execution sequence of the loop instruction is completed, the count value of the program counter is incremented by 1, the instruction of line number 11 is executed, and the carry is designated by the address register A2. Stored in memory cell location.

以降、行番号12から14において、先の実施の形態1および2と同様の処理が行なわれ、制御レジスタへの制御ビットの格納により、加算演算終了の通知が外部のホストCPU等へ行なわれる。   Thereafter, in line numbers 12 to 14, the same processing as in the first and second embodiments is performed, and the completion of the addition operation is notified to an external host CPU or the like by storing the control bit in the control register.

アドレスレジスタ群47Aおよび47Bをそれぞれメモリセルマット30Aおよび30Bに対して別々に設けることにより、この行番号2から行番号4に示されるロード命令を、1サイクルで並行して実行することができる(図17に示すプログラムシーケンスにおいては、これらが順次格納されるように示す)。したがって、このアドレスポインタの設定に要する動作サイクル数を低減することができ、処理サイクル数を低減することができる。これらのアドレスレジスタA0−A2にポインタを設定する場合、マイクロ命令として、行先アドレスにアドレスレジスタA0、A1およびA2をそれぞれ指定し、それぞれに格納されるポインタ値を、制御フィールドに格納し、演算すべき実行命令“LD”をソースオペランドフィールドに格納することにより、容易に実現される。   By separately providing address register groups 47A and 47B for memory cell mats 30A and 30B, the load instructions indicated by line numbers 2 to 4 can be executed in parallel in one cycle ( In the program sequence shown in FIG. 17, it is shown that these are stored sequentially). Therefore, the number of operation cycles required for setting the address pointer can be reduced, and the number of processing cycles can be reduced. When setting pointers in these address registers A0-A2, address registers A0, A1 and A2 are designated as destination addresses as microinstructions, and pointer values stored in the address registers are stored in the control field and operated. This is easily realized by storing the power execution instruction “LD” in the source operand field.

このデュアルポートメモリセルを利用することにより、ループ命令においては、1サイクルで、ロード、加算、およびストアを実行することができ、先の実施の形態2におけるループ命令を利用する処理に比べて、演算処理サイクル数が低減され、処理性能として、3倍の性能のループ処理を実現することができる。   By using this dual port memory cell, in a loop instruction, load, addition, and store can be executed in one cycle. Compared to the process using the loop instruction in the second embodiment, The number of arithmetic processing cycles is reduced, and a loop process with three times the performance can be realized as the processing performance.

なお、このデュアルポートメモリセルが利用される場合、メモリセルマット30Aまたは30Bのみが利用される場合には、読出アドレス用のレジスタと書込アドレス用のレジスタとそれぞれのアドレス計算ユニットを設けることにより、1つのメモリセルマットに対し、ロードとストアを並行して実行することができる。   When this dual port memory cell is used, when only memory cell mat 30A or 30B is used, a read address register and a write address register and respective address calculation units are provided. Load and store can be executed in parallel for one memory cell mat.

以上のように、この発明の実施の形態3に従えば、メモリセルマットを複数のマットに分割し、各分割マットもデュアルポートメモリセルを配置しており、また各メモリセルマットに対してアドレス計算ユニットおよびアドレスレジスタ群を設けており、ロード、演算およびストア操作を同一サイクルで実行することができ、高速処理を実現することができる。   As described above, according to the third embodiment of the present invention, the memory cell mat is divided into a plurality of mats, and each divided mat is also provided with dual port memory cells, and each memory cell mat has an address. A calculation unit and an address register group are provided, and load, calculation, and store operations can be executed in the same cycle, and high-speed processing can be realized.

なお、データのロード、演算およびストアを同一サイクルで実行する場合、例えば、ALU内のフリップフロップをすべてスルー状態に設定して与えられたデータをすべてその出力部を介して転送する構成を利用する。演算処理をスタティックに実行することにより、転送データ(ロードデータ)に対してスタティックに演算処理を行なって演算処理後のデータをライトドライバを介して対象のメモリセルへ転送して書込むことができる。   When data loading, calculation, and store are executed in the same cycle, for example, a configuration is used in which all flip-flops in the ALU are set to the through state and all given data is transferred via the output unit. . By performing the arithmetic processing statically, it is possible to statically perform the arithmetic processing on the transfer data (load data) and transfer and write the data after the arithmetic processing to the target memory cell via the write driver. .

[実施の形態4]
図18は、この発明の実施の形態4において一例として実行される演算処理の内容を概略的に示す図である。この発明の実施の形態4においては、画像データPに対して、フィルタ処理を実行する。すなわち、図18に示すように、注目画素P(i,j)に対し上下左右の隣接画素P(i−1,j)、P(i+1,j)、P(i,j−1)、およびP(i,j+1)を用いて、この図18に示すフィルタマトリクスを適用して、フィルタ後の画素B(i,j)を生成する。すなわち、次式で示されるフィルタ処理を行なって、エッジ強調画像を求める。
[Embodiment 4]
FIG. 18 is a diagram schematically showing the contents of the arithmetic processing executed as an example in the fourth embodiment of the present invention. In the fourth embodiment of the present invention, filter processing is performed on the image data P. That is, as shown in FIG. 18, with respect to the target pixel P (i, j), adjacent pixels P (i−1, j), P (i + 1, j), P (i, j−1), The filter matrix shown in FIG. 18 is applied using P (i, j + 1) to generate a filtered pixel B (i, j). That is, the edge-enhanced image is obtained by performing the filter processing represented by the following equation.

B(i,j)
=5・P(i,j)−P(i−1,j)−P(i+1,j)
−P(i,j−1)−P(i,j+1)
0≦i<N−1、
0≦j<M−1
ここで、NおよびおよびMは、1フレームの画像データの画素行および画素列の数を示す。したがって、このエッジ強調フィルタ処理においては、注目画素P(i,j)に対する処理として、注目画素データに加えて隣接4画素のデータが必要となる。
B (i, j)
= 5 · P (i, j) −P (i−1, j) −P (i + 1, j)
-P (i, j-1) -P (i, j + 1)
0 ≦ i <N−1,
0 ≦ j <M−1
Here, N and M indicate the number of pixel rows and pixel columns of image data of one frame. Therefore, in this edge emphasis filter process, data for four adjacent pixels is required in addition to the target pixel data as a process for the target pixel P (i, j).

図19は、この発明の実施の形態4における信号処理システムの画像データのフィルタ処理に関連する部分の構成を概略的に示す図である。図19において、システムLSI2においては、2つの基本演算ブロックFBAおよびFBBが用いられる。これらの基本演算ブロックFBAおよびFBBは、DMAコントローラ13に対し、DMA転送要求DMARQを出力する。このDMAコントローラ13は、DMA転送要求発生時、外部バスコントローラ14を介して外部システムバス3に結合される大容量メモリ(SDRAM)4のデータを読出し、内部システムバス7を介して基本演算ブロックFBAまたはFBBに必要なデータを転送する。   FIG. 19 is a diagram schematically showing a configuration of a portion related to image data filter processing of the signal processing system according to Embodiment 4 of the present invention. In FIG. 19, in the system LSI 2, two basic operation blocks FBA and FBB are used. These basic operation blocks FBA and FBB output a DMA transfer request DMARQ to the DMA controller 13. When a DMA transfer request is generated, the DMA controller 13 reads data of a large capacity memory (SDRAM) 4 coupled to the external system bus 3 via the external bus controller 14 and reads the basic operation block FBA via the internal system bus 7. Alternatively, necessary data is transferred to the FBB.

このSDRAM4において、処理対象の画像データが格納される。一例として、1フレームの画像データのサイズとして、VGAサイズ(ビデオ・グラフィックス・アレイ)を考える。このVGAでは、640・480画素により1フレームが構成される(M=640、N=480)。演算ブロックFBAおよびFBBは、それぞれ、3行(ライン)の画素(640x3=1920画素)のデータを処理することができると仮定する。この画像データを、SDRAM4に格納し、基本演算ブロックFBAおよびFBBを、パイプライン態様で動作させ、高いスループットでフィルタ演算処理を実行する。   In the SDRAM 4, image data to be processed is stored. As an example, a VGA size (video graphics array) is considered as the size of image data of one frame. In this VGA, one frame is composed of 640 · 480 pixels (M = 640, N = 480). Assume that each of the arithmetic blocks FBA and FBB can process data of three rows (lines) of pixels (640 × 3 = 1920 pixels). This image data is stored in the SDRAM 4, the basic operation blocks FBA and FBB are operated in a pipeline manner, and filter operation processing is executed with high throughput.

このフィルタ演算処理の基本演算ブロックとSDRAM4とのデータ転送のためのマイクロ命令列は、ホストCPU8により実行される。フィルタ処理用のマイクロプログラムは、各基本演算ブロックFBAおよびFBBのマイクロ命令メモリに格納され、対応のコントローラ(21)の制御の下にエッジ強調フィルタ演算処理が実行される。   A basic instruction block for the filter operation processing and a microinstruction sequence for data transfer between the SDRAM 4 are executed by the host CPU 8. The microprogram for filter processing is stored in the microinstruction memory of each basic operation block FBA and FBB, and edge emphasis filter operation processing is executed under the control of the corresponding controller (21).

図20は、この発明の実施の形態4に従う信号処理システムのホストCPUの処理シーケンスを示すフロー図である。以下、図20を参照して、この図19に示す信号処理システムの動作について説明する。   FIG. 20 is a flowchart showing a processing sequence of the host CPU of the signal processing system according to the fourth embodiment of the present invention. The operation of the signal processing system shown in FIG. 19 will be described below with reference to FIG.

ステップST1:
基本演算ブロックFBAに対して3行の画素に対するフィルタ演算のためのマイクロプログラムが、対応のマイクロ命令メモリ(21)に設定される。このマイクロプログラムの設定後、フレームの第0行から第2行の画素データを、SDRAM4から外部バスコントローラ14および内部システムバス7を介して基本演算ブロックFBAのメモリセルマットに転送する。この転送動作が完了すると、基本演算ブロックFBAの演算を起動し、その演算ブロックFBAにおいて、そのマイクロ命令メモリに格納されたマイクロプログラムに従ってフィルタ演算処理が開始される。この転送およびデータのメモリセルマットの格納の完了は、たとえば制御レジスタ群45に含まれるステータスレジスタに格納されるビット値をモニタすることにより参照される。たとえば、図6に示す入力ポートレジスタ45iにデータ転送時ビットがセットされ、この基本演算ブロックFBAにおける演算の待ち合せが指定されてもよい。
Step ST1:
A microprogram for performing a filter operation on the three rows of pixels for the basic operation block FBA is set in the corresponding microinstruction memory (21). After setting the microprogram, the pixel data of the 0th to 2nd rows of the frame are transferred from the SDRAM 4 to the memory cell mat of the basic operation block FBA via the external bus controller 14 and the internal system bus 7. When this transfer operation is completed, the operation of the basic operation block FBA is started, and the filter operation processing is started in the operation block FBA according to the microprogram stored in the microinstruction memory. The completion of the transfer and storage of the memory cell mat of data is referred to by monitoring the bit value stored in the status register included in the control register group 45, for example. For example, a bit at the time of data transfer may be set in the input port register 45i shown in FIG. 6, and the waiting for the calculation in the basic calculation block FBA may be designated.

ステップST2:
基本演算ブロックFBAにおいて、マイクロ命令メモリに格納されたマイクロプログラムに従ってフィルタ演算処理が実行される。基本演算ブロックFBAにおいて第1行の画素に対するフィルタ演算処理が実行されている間に並行して、ホストCPU8は、基本演算ブロックFBBに対し、同様、3行の画素に対するフィルタ演算のためのマイクロプログラムをマイクロ命令メモリへ格納し、また第239行から第241行の画素データをこの基本演算ブロックFBBへSDRAM4から転送し、対応のメモリセルマットに格納する。
Step ST2:
In the basic operation block FBA, filter operation processing is executed in accordance with the microprogram stored in the microinstruction memory. In parallel with the execution of the filter calculation processing for the pixels in the first row in the basic calculation block FBA, the host CPU 8 similarly performs the microprogram for the filter calculation for the pixels in the three rows for the basic calculation block FBB. Are stored in the microinstruction memory, and the pixel data in the 239th to 241st rows are transferred from the SDRAM 4 to the basic operation block FBB and stored in the corresponding memory cell mat.

基本演算ブロックFBAにおいては第1の行の画素に対するフィルタ演算処理が完了すると、DMAコントローラ13に対しDMA転送要求DMARQを発行する。DMA転送要求DMARQは、例えば、制御レジスタ群に含まれる出力ポートレジスタにビットを立てることにより発行される。   In the basic operation block FBA, when the filter operation processing for the pixels in the first row is completed, a DMA transfer request DMARQ is issued to the DMA controller 13. The DMA transfer request DMARQ is issued, for example, by setting a bit in an output port register included in the control register group.

ステップST3:
DMAコントローラ13は、このこの基本演算ブロックFBAからのDMA転送要求を受けると、基本演算ブロックFBAからの演算結果データをSDRAM4に転送し、この転送完了後、第3行の画素データを基本演算ブロックFBAに転送する。基本演算ブロックFBAにおいては、この第0行の画素データ格納領域に、新たに転送された第3行の画素データを順次格納する。これにより、処理の完了した第0行の画素データが、新たな第3行の画素データで置換される。
Step ST3:
When the DMA controller 13 receives the DMA transfer request from the basic operation block FBA, the DMA controller 13 transfers the operation result data from the basic operation block FBA to the SDRAM 4, and after this transfer is completed, the pixel data of the third row is transferred to the basic operation block. Transfer to FBA. In the basic operation block FBA, the newly transferred pixel data of the third row is sequentially stored in the pixel data storage area of the zeroth row. Thereby, the pixel data of the 0th row that has been processed is replaced with the new pixel data of the third row.

また、基本演算ブロックFBAとSDRAM4との間のDMAモードでのデータ転送と並行して、基本演算ブロックFBBにおいて第240行の画素データに対するフィルタ演算が実施される。このフィルタ演算処理完了後、基本演算ブロックFBBは、その出力ポートレジスタを介してDMA転送要求DMARQを発行する。   In parallel with the data transfer in the DMA mode between the basic operation block FBA and the SDRAM 4, a filter operation is performed on the pixel data in the 240th row in the basic operation block FBB. After completion of this filter operation processing, the basic operation block FBB issues a DMA transfer request DMARQ via its output port register.

ステップST4:
基本演算ブロックFBAは、第3行の画素データの転送完了後、第2行の画素に対してフィルタ演算を実行する。一方、基本演算ブロックFBBにおいては、DMA転送要求発行に従って、DMAモードで、第240行の画素についてのフィルタ演算結果をSDRAM4に転送し、その転送完了後、SDRAM4から次の第242行の画素データを受ける。この第242行の画素データは、先に格納された第239行の画素データと置換される。
Step ST4:
The basic operation block FBA performs a filter operation on the pixels in the second row after the transfer of the pixel data in the third row is completed. On the other hand, in the basic operation block FBB, in accordance with the DMA transfer request issuance, the filter operation result for the pixels in the 240th row is transferred to the SDRAM 4 in the DMA mode, and after the transfer is completed, the pixel data of the next 242nd row is transferred from the SDRAM 4. Receive. The pixel data of the 242nd row is replaced with the previously stored pixel data of the 239th row.

ステップST5:
基本演算ブロックFBAにおいて第2行の画素データに対するフィルタ演算処理完了後、DMA転送要求を発行し、DMAコントローラの制御の下に、DMAモードで、基本演算ブロックFBAからSDRAM4に対して、第2行の画素のフィルタ演算結果データが転送される。この転送完了後、SDRAM4は、第4行の画素データを基本演算ブロックFBAに転送する。この新たに転送される第4行の画素データは、基本演算ブロックFBAのメモリセルマットの第1行の画素データ格納領域に格納される。
Step ST5:
After completion of the filter calculation processing for the pixel data of the second row in the basic operation block FBA, a DMA transfer request is issued, and the second row is transferred from the basic operation block FBA to the SDRAM 4 in the DMA mode under the control of the DMA controller. The filter calculation result data of the pixels is transferred. After this transfer is completed, the SDRAM 4 transfers the pixel data of the fourth row to the basic operation block FBA. The newly transferred pixel data of the fourth row is stored in the pixel data storage area of the first row of the memory cell mat of the basic arithmetic block FBA.

一方、基本演算ブロックFBBにおいては、転送された画素データを用いて第241行の画素に対するフィルタ演算処理を実行する。このフィルタ演算処理完了後、DMA転送要求DMARQを発行する。   On the other hand, in the basic calculation block FBB, filter calculation processing is performed on the pixels in the 241st row using the transferred pixel data. After the completion of the filter calculation process, a DMA transfer request DMARQ is issued.

以降、同様の処理がステップST6以降繰返し交互に実行される。
すなわち、ステップST5からステップST481において、ステップST3およびST4の処理が、対象画素ラインを1ずつ増分しつつ239回繰返される。ステップST481の処理完了時において、1画面の画素に対するフィルタ演算処理が完了する。
Thereafter, similar processing is repeatedly performed alternately after step ST6.
That is, in step ST5 to step ST481, the processes in steps ST3 and ST4 are repeated 239 times while incrementing the target pixel line by one. When the process of step ST481 is completed, the filter calculation process for the pixels of one screen is completed.

上述のように、DMA転送および演算処理を、基本演算ブロックFBAおよびFBBにおいて交互に実行することにより、システム全体として、効率的に演算処理を実行することができる。   As described above, by executing the DMA transfer and the arithmetic processing alternately in the basic arithmetic blocks FBA and FBB, the arithmetic processing can be efficiently executed as the entire system.

図21は、この発明の実施の形態4に従う信号処理システムの信号処理シーケンスを模式的に示す図である。図21において、基本演算ブロックFBAおよびFBBにおいて、3ラインの画素についてのエッジ強調フィルタを行なうマイクロ命令がマイクロ命令メモリ21に格納される。コントローラ22は、このマイクロ命令メモリ21に格納されるマイクロプログラムに従って演算処理を実行する。   FIG. 21 schematically shows a signal processing sequence of the signal processing system according to the fourth embodiment of the present invention. In FIG. 21, in the basic operation blocks FBA and FBB, microinstructions for performing edge emphasis filtering on pixels of three lines are stored in the microinstruction memory 21. The controller 22 executes arithmetic processing according to the microprogram stored in the microinstruction memory 21.

SDRAM4においては、まずホストCPUの制御の下に、3ラインの画素データが、基本演算ブロックFBAおよびFBBのメモリセルマット30へそれぞれ格納する。次いで、演算処理ユニット35およびALU間接続用スイッチ回路(ALUスイッチ)20を用いて基本演算ブロックFBAおよびFBBが、各々、対応のコントローラ22の制御の下に演算処理を実行する。   In the SDRAM 4, first, three lines of pixel data are stored in the memory cell mats 30 of the basic operation blocks FBA and FBB, respectively, under the control of the host CPU. Next, the basic arithmetic blocks FBA and FBB each perform arithmetic processing under the control of the corresponding controller 22 using the arithmetic processing unit 35 and the inter-ALU connection switch circuit (ALU switch) 20.

基本演算ブロックFBAおよびFBBは、それぞれ3ラインのエッジ強調フィルタ処理が1行の画素について終了すると、DMA転送モードDMA3およびDMA4に従って、その1ラインのフィルタ演算処理後の画素データをSDRAM4へ転送する。一方、このときまた、SDRAM4からは、次の処理前の画素データの1ラインが、DMA転送モードDMA1およびDMA2に従って基本演算ブロックFBAおよびFBBにそれぞれ転送されて、不用ラインの画素データとの置換が行なわれる。したがって、メモリセルマット30において3ライン(行)の画素データを格納して、フィルタ演算処理が実行される。   The basic operation blocks FBA and FBB transfer the pixel data after the filter operation processing for one line to the SDRAM 4 according to the DMA transfer modes DMA3 and DMA4 when the edge emphasis filter processing for three lines is completed for one row of pixels. On the other hand, at this time, one line of pixel data before the next processing is transferred from the SDRAM 4 to the basic operation blocks FBA and FBB according to the DMA transfer modes DMA1 and DMA2, respectively. Done. Therefore, the pixel data of 3 lines (rows) is stored in the memory cell mat 30 and the filter calculation process is executed.

図22は、このDMA転送時のメモリセルマットのアドレスポインタの変化を示す図である。メモリセルマット30は、一例として4つの領域MA−MDに分割される。分割領域MDは、作業領域であり、中間値を格納する領域として利用される。分割領域MA−MCに、それぞれ異なる行の画素データが格納される。図22(a)に示すように、初期状態時においては、分割領域MA、MBおよびMCの初期アドレスポインタがそれぞれRP0、RP1およびRP2に設定される。この分割領域MA、MBおよびMCには、それぞれ第0行、第1行および第2行の画素データが格納される。アドレスポインタRP1が、フィルタ演算処理対象の画素データの領域を指定し、アドレスポインタRP0が、フィルタ処理対象の画素の上の行の画素の領域を示し、ポインタRP2が、フィルタ演算処理対象の画素ラインの下のラインの画素領域を示す。したがって、この図22(a)においては、ポインタRP1が指定する分割領域MBに格納される画素データに対してフィルタ演算処理が実行される。   FIG. 22 is a diagram showing changes in the address pointer of the memory cell mat during the DMA transfer. Memory cell mat 30 is divided into four areas MA-MD as an example. The divided area MD is a work area and is used as an area for storing intermediate values. Pixel data of different rows are stored in the divided areas MA-MC. As shown in FIG. 22A, in the initial state, the initial address pointers of the divided areas MA, MB, and MC are set to RP0, RP1, and RP2, respectively. In the divided areas MA, MB, and MC, pixel data of the 0th row, the 1st row, and the 2nd row are stored, respectively. The address pointer RP1 designates an area of pixel data to be subjected to filter calculation processing, the address pointer RP0 represents an area of pixels on the row above the pixel to be filtered, and the pointer RP2 represents a pixel line to be subjected to filter calculation processing. The pixel area of the lower line is shown. Accordingly, in FIG. 22A, the filter calculation process is executed on the pixel data stored in the divided area MB designated by the pointer RP1.

DMA転送モード時においては、書込ポインタWPが分割領域MAを指定し、転送ポインタTPが、分割領域MBを指定する。分割領域MBに、フィルタ演算処理後のデータが格納されており、この転送ポインタTPに従って、分割領域MBのフィルタ演算後の画素データが転送される。一方、書込ポインタWPが指定する領域MAに対し次の第3行の画素データが格納される。したがって、この転送完了時において、図22(b)に示すように、処理対象画素を指定するポインタRP1が、分割領域MCを示し、上側ライン画素指定ポインタRP0が分割領域MBを示し、下側ライン画素領域指定ポインタRP2が分割領域MAを示す。これにより、分割領域MCに格納された第2行の画素データについてフィルタ演算処理が実行される。   In the DMA transfer mode, the write pointer WP designates the divided area MA, and the transfer pointer TP designates the divided area MB. Data after the filter calculation processing is stored in the divided area MB, and the pixel data after the filter calculation of the divided area MB is transferred according to the transfer pointer TP. On the other hand, the pixel data of the next third row is stored in the area MA designated by the write pointer WP. Therefore, at the completion of this transfer, as shown in FIG. 22B, the pointer RP1 that designates the pixel to be processed indicates the divided area MC, the upper line pixel designation pointer RP0 indicates the divided area MB, and the lower line The pixel area designation pointer RP2 indicates the divided area MA. Thereby, the filter calculation process is performed on the pixel data of the second row stored in the divided region MC.

この第2行の画素データのフィルタ演算処理実行完了後、転送ポインタTPは、分割領域MCを示しており、書込ポインタWPは、分割領域MBを示す。したがって、この場合には、分割領域MCに格納された第2行の画素データ(フィルタ演算処理後)が転送され、分割領域MBに次の行の第4行の画素データが格納される。この格納後、図22(c)に示すように各ポインタがシフトされ、処理対象領域ポインタRP1が、分割領域MAを示し、上側ライン画素領域指定ポインタRP0が分割領域MCを示し、下側ライン画素領域指定ポインタRP2は分割領域MBを示す。転送ポインタTPがまた分割領域MAを示し、書込ポインタMBが、分割領域MBを示す。したがって、この状態では、ポインタRP1が示す分割領域MAの第3行の画素に対してフィルタ演算実行され、フィルタ演算処理完了後のデータが、分割領域MAに格納される。演算処理完了後、転送ポインタTPに従って分割領域MAの第3行のフィルタ演算後の画素のデータが転送されてSDRAMに格納され、一方、書込ポインタWPが示す分割領域MBに、次の行の第4ラインの画素データが格納される。   After completion of the filter operation processing of the pixel data of the second row, the transfer pointer TP indicates the divided area MC, and the write pointer WP indicates the divided area MB. Therefore, in this case, the pixel data of the second row (after the filter calculation process) stored in the divided region MC is transferred, and the pixel data of the fourth row of the next row is stored in the divided region MB. After this storage, the pointers are shifted as shown in FIG. 22 (c), the processing area pointer RP1 indicates the divided area MA, the upper line pixel area designation pointer RP0 indicates the divided area MC, and the lower line pixels. The area designation pointer RP2 indicates the divided area MB. The transfer pointer TP also indicates the divided area MA, and the write pointer MB indicates the divided area MB. Therefore, in this state, the filter calculation is performed on the pixels in the third row of the divided area MA indicated by the pointer RP1, and the data after the completion of the filter calculation process is stored in the divided area MA. After completion of the arithmetic processing, the pixel data after the filter operation of the third row of the divided area MA is transferred according to the transfer pointer TP and stored in the SDRAM. On the other hand, in the divided area MB indicated by the write pointer WP, The pixel data of the fourth line is stored.

この転送完了後、再びポインタRP0−RP2およびTPおよびWPがシフトし、処理対象領域指定ポインタRP1が分割領域MBを示し、上側ライン画素領域指定ポインタRBP0が、分割領域MAを示し、下側ライン画素領域指定ポインタRP2が分割領域MCを示す。転送ポインタTPが、分割領域MBを示し、書込ポインタWPが、分割領域MCを示す。したがって、この図22(d)に示すポインタの位置は、図22(a)に示すポインタの位置と同じである。したがって、これらのポインタRP0−RP2、TPおよびWPを順次各処理ごとに分割領域のサイズ分シフトすることにより、容易にデータの書込、転送および処理結果の格納を行なうことができる。   After this transfer is completed, the pointers RP0-RP2, TP, and WP are shifted again, the processing target area designation pointer RP1 indicates the divided area MB, the upper line pixel area designation pointer RBP0 indicates the divided area MA, and the lower line pixels The area designation pointer RP2 indicates the divided area MC. The transfer pointer TP indicates the divided area MB, and the write pointer WP indicates the divided area MC. Therefore, the position of the pointer shown in FIG. 22D is the same as the position of the pointer shown in FIG. Therefore, by sequentially shifting these pointers RP0 to RP2, TP, and WP by the size of the divided area for each process, data can be easily written, transferred, and the process result can be stored.

このアドレスポインタの設定は、例えば、汎用レジスタを用い、この各レジスタ内容を順次マイクロプログラム命令の1つの3ラインのエッジ強調フィルタ処理完了時に、それぞれシフトする命令により実現される。   This setting of the address pointer is realized by, for example, an instruction that uses a general-purpose register and sequentially shifts the contents of each register when one 3-line edge emphasis filter process of the microprogram instruction is completed.

なお、この図22(a)−(d)に示すポインタのシフト構成において、転送ポインタTPは、固定された分割領域MDを常時指定し、この分割領域が、常にフィルタ演算処理後の画素データの格納領域として利用されてもよい。転送ポインタTPの制御が簡略化される。   In the pointer shift configuration shown in FIGS. 22A to 22D, the transfer pointer TP always designates a fixed divided area MD, and this divided area always represents the pixel data after the filter calculation process. It may be used as a storage area. Control of the transfer pointer TP is simplified.

次に、エッジ強調フィルタ演算処理の手順としては、種々の処理フローを考えることができる。例えば次の処理フローを考えることができる。処理対象の画素データP(i,j)を5倍する演算処理は、画素データP(i,j)の全ビットを2ビット上位ビット方向にシフトして、図22に示す分割領域MDに格納することにより、4・P(i,j)が算出される。次いで、ポインタRP1が指定する領域に格納された画素データP(i,j)と4・P(i,j)の加算処理を行ない、加算結果を画素データP(i,j)の格納領域に格納する。これにより、5・P(i,j)の乗算処理が実現される。   Next, various processing flows can be considered as the procedure of the edge enhancement filter calculation process. For example, the following processing flow can be considered. In the arithmetic processing for multiplying the pixel data P (i, j) to be processed by 5 times, all the bits of the pixel data P (i, j) are shifted in the upper 2 bits and stored in the divided region MD shown in FIG. As a result, 4 · P (i, j) is calculated. Subsequently, the pixel data P (i, j) and 4 · P (i, j) stored in the area designated by the pointer RP1 are added, and the addition result is stored in the pixel data P (i, j) storage area. Store. As a result, multiplication processing of 5 · P (i, j) is realized.

次いで、同一列の画素P(i−1,j)およびP(i+1,j)の加算を行ない、分割領域MDにデータP(i−1,j)+P(i+1,j)を格納する。次いでこの5・P(i,j)から、分割領域MDに格納されたデータを減算する。減算処理の場合には、2の補数演算を行なうため、まず分割領域MDに格納されたデータをビット値をすべて反転し、次いで1を加算する。−{P(i−1,j)+P(i+1,j)}=A(i,j)が生成される。次いで、これらを加算することにより、5・P(i,j)−A(i,j)が生成される。   Next, the pixels P (i−1, j) and P (i + 1, j) in the same column are added, and data P (i−1, j) + P (i + 1, j) is stored in the divided region MD. Next, the data stored in the divided area MD is subtracted from this 5 · P (i, j). In the case of the subtraction process, in order to perform a 2's complement operation, all the bit values of the data stored in the divided area MD are first inverted, and then 1 is added. -{P (i-1, j) + P (i + 1, j)} = A (i, j) is generated. Next, 5 · P (i, j) −A (i, j) is generated by adding these.

次いで、隣接列の画素データを減算する場合、まずALU間接続用スイッチ回路20により、隣接列のデータを転送するようにALUの経路を切換える。これにより、右側または左側の画素の減算が行なわれ、次いで再びALUスイッチ回路20の接続経路を切換えて、別の隣接列の画素との減算を行なう。これらの一連の処理により、前述のフィルタ演算処理を行なってフィルタ演算処理後の画素データを求めることができる。これらの一連の処理により、ビットシリアル態様で複雑なフィルタ演算処理を実行することができる。   Next, when subtracting the pixel data of the adjacent column, first, the ALU path is switched by the inter-ALU connection switch circuit 20 so as to transfer the data of the adjacent column. As a result, the right or left pixel is subtracted, and then the connection path of the ALU switch circuit 20 is switched again to perform subtraction with another adjacent column of pixels. Through a series of these processes, the pixel data after the filter calculation process can be obtained by performing the filter calculation process described above. By these series of processes, a complicated filter calculation process can be executed in a bit serial manner.

この接続経路の切換および各演算シーケンスは、すべてマイクロ命令メモリに格納されるマイクロプログラムにより規定される。   The switching of the connection path and each operation sequence are all defined by a microprogram stored in the microinstruction memory.

以上のように、この発明の実施の形態4に従えば、複数の基本ブロックと外部の大容量メモリとの間で、DMAモードでデータ転送を行ない、データ転送と演算処理とをパイプライン態様で実行しており、大容量のデータを高速で演算処理することができる。   As described above, according to the fourth embodiment of the present invention, data transfer is performed in a DMA mode between a plurality of basic blocks and an external large-capacity memory, and data transfer and arithmetic processing are performed in a pipeline manner. It is running and can process large amounts of data at high speed.

[実施の形態5]
図23は、この発明の実施の形態5に従う主演算回路20の具体的構成の一例を示す図である。主演算回路20において、メモリセルマット30に配列されるメモリセルMCは、シングルポートSRAMセルである。メモリセル行それぞれに対応してワード線WLが配置され、メモリセル列それぞれに対応してビット線対BLPが配置される。メモリセルMCは、これらのビット線対BLPとワード線WLの交差部に対応して配置される。ワード線WLには、対応の行のメモリセルMCが接続され、ビット線対BLPには、対応の列のメモリセルMCが接続される。
[Embodiment 5]
FIG. 23 shows an example of a specific configuration of main arithmetic circuit 20 according to the fifth embodiment of the present invention. In the main arithmetic circuit 20, the memory cells MC arranged in the memory cell mat 30 are single port SRAM cells. A word line WL is arranged corresponding to each memory cell row, and a bit line pair BLP is arranged corresponding to each memory cell column. Memory cell MC is arranged corresponding to the intersection of bit line pair BLP and word line WL. A memory cell MC in a corresponding row is connected to the word line WL, and a memory cell MC in a corresponding column is connected to the bit line pair BLP.

エントリERYは、ビット線対BLPそれぞれに対応して設けられ、図23に示すメモリセルマット30においては、ビット線対BLP0からBLP(m−1)それぞれに対応してエントリERY0−ERY(m−1)が配置される。ビット線対BLPが対応のエントリERYと対応のALU31との間のデータ転送線として利用される。   Entry ERY is provided corresponding to each bit line pair BLP. In memory cell mat 30 shown in FIG. 23, entries ERY0-ERY (m--) correspond to bit line pairs BLP0 to BLP (m-1), respectively. 1) is arranged. The bit line pair BLP is used as a data transfer line between the corresponding entry ERY and the corresponding ALU 31.

メモリセルマット30のワード線WLに対して、コントローラ22からのアドレス信号またはシステムバスI/F24からのアドレス信号(および制御信号)に従って、演算対象のデータビットが接続されるワード線WLを選択状態へ駆動するロウデコーダ74が設けられる。ワード線WLには、エントリERY0−ERY(m−1)の同一位置のメモリセルが接続されており、ロウデコーダ74により、エントリERY0−ERY(m−1)において同一位置のデータビットを選択する。   A word line WL to which an operation target data bit is connected is selected in accordance with an address signal from the controller 22 or an address signal (and control signal) from the system bus I / F 24 with respect to the word line WL of the memory cell mat 30 A row decoder 74 is provided for driving to. Memory cells at the same position in entries ERY0 to ERY (m−1) are connected to word line WL, and row decoder 74 selects data bits at the same position in entries ERY0 to ERY (m−1). .

演算処理ユニット35においては、ALU31がビット線対BLP0−BLP(m−1)に対応して配置される。   In the arithmetic processing unit 35, the ALU 31 is arranged corresponding to the bit line pair BLP0-BLP (m-1).

演算処理ユニット群35とメモリセルマット30との間に、データのロード/ストアを行なうための読出/書込回路38が設けられる。この読出/書込回路38は、ビット線対BLP0からBLP(m−1)各々に対して設けられるセンスアンプおよびライトドライバをそれぞれ含むセンスアンプ群70とライトドライバ群72を含む。   A read / write circuit 38 for loading / storing data is provided between the arithmetic processing unit group 35 and the memory cell mat 30. Read / write circuit 38 includes a sense amplifier group 70 and a write driver group 72 each including a sense amplifier and a write driver provided for each of bit line pairs BLP0 to BLP (m−1).

読出/書込回路38に対して、システムバスI/F24を介して外部とのデータの受渡しを行なう入出力回路76が設けられる。この入出力回路76により、メモリセルマット30と内部データバスとの間でのデータ転送が行なわれる。メモリセル回路76のデータの入出力ビット幅は、システムバスI/F24のデータビット幅に応じて設定される。   An input / output circuit 76 for exchanging data with the outside via the system bus I / F 24 is provided for the read / write circuit 38. By this input / output circuit 76, data transfer is performed between the memory cell mat 30 and the internal data bus. The data input / output bit width of the memory cell circuit 76 is set according to the data bit width of the system bus I / F 24.

入出力回路76におけるデータビット幅と1つのワード線WLに接続されるエントリのビット幅(m)との調整を行なうためにカラムデコーダ78が設けられる。このカラムデコーダ78からの列選択線CLにより、システムバスI/F24のバス幅に応じたビット線対(センスアンプまたはライトドライバ)が選択される。カラムデコーダ78には、システムバスI/F24から与えられるアドレス信号のうちの下位ビットが与えられる。この下位ビットの数は、システムバスI/F24のバス幅に応じて適当に定められる。   A column decoder 78 is provided to adjust the data bit width in the input / output circuit 76 and the bit width (m) of an entry connected to one word line WL. A bit line pair (sense amplifier or write driver) corresponding to the bus width of the system bus I / F 24 is selected by the column selection line CL from the column decoder 78. The column decoder 78 is supplied with the lower bits of the address signal supplied from the system bus I / F 24. The number of lower bits is appropriately determined according to the bus width of the system bus I / F 24.

列選択線CLにより選択されたエントリが入出力回路76に接続され、システムバスI/F24との間でデータの受渡しが行なわれる。これにより、システムバスI/F24を介してメモリセルマット30に対するデータのアクセスを行なうことができる。   The entry selected by the column selection line CL is connected to the input / output circuit 76, and data is exchanged with the system bus I / F 24. Thereby, data access to memory cell mat 30 can be performed via system bus I / F 24.

図24は、この発明の実施の形態5に従う主演算回路のCPUアドレス割当の一例を示す図である。この図24に示す構成においては、一例として、メモリセルマット30は、64個のエントリERY0−ERY63に分割される。ロウデコーダ74へ与えられる上位アドレスのビット数は、このメモリセルマット30に含まれるワード線の数(エントリのビット幅)に応じて決定される。   FIG. 24 shows an example of CPU address assignment of the main arithmetic circuit according to the fifth embodiment of the present invention. In the configuration shown in FIG. 24, as an example, memory cell mat 30 is divided into 64 entries ERY0 to ERY63. The number of bits of the upper address supplied to the row decoder 74 is determined according to the number of word lines (bit width of the entry) included in the memory cell mat 30.

読出/書込回路38の領域において、入出力回路76に結合される内部データ線IO0−IO3が配置される。入出力回路76は、4ビットデータを転送する。この場合、カラムデコーダ78に対しては、4ビットの下位アドレスが与えられる。エントリERY0−ERY3に対しては、列アドレス“0”が割当てられ、エントリERY4−ERY7に対し列アドレス“1”が割当てられる。以降、同様にしてエントリERY60(図示せず)からエントリERY63に対して列アドレス“f”(16進)が割当てられる。   In the region of read / write circuit 38, internal data lines IO0-IO3 coupled to input / output circuit 76 are arranged. The input / output circuit 76 transfers 4-bit data. In this case, a 4-bit lower address is given to the column decoder 78. A column address “0” is assigned to the entries ERY0 to ERY3, and a column address “1” is assigned to the entries ERY4 to ERY7. Thereafter, the column address “f” (hexadecimal) is assigned from the entry ERY60 (not shown) to the entry ERY63 in the same manner.

したがって、カラムデコーダ78は、1/16選択を行なっており、列選択線CL0の選択時には、エントリERY0−ERY3が選択され、列選択線CL1の選択時には、エントリERY4−ERY7が選択される。同様、列選択線CL15の選択時においては、エントリERY60からERY63が選択される。   Therefore, the column decoder 78 performs 1/16 selection. When the column selection line CL0 is selected, the entries ERY0 to ERY3 are selected, and when the column selection line CL1 is selected, the entries ERY4 to ERY7 are selected. Similarly, when the column selection line CL15 is selected, entries ERY60 to ERY63 are selected.

上位アドレス(たとえば“0xx”)に従って、ロウデコーダ74によりワード線が選択される。   A word line is selected by row decoder 74 in accordance with an upper address (for example, “0xx”).

カラムデコーダ78を用いて、入出力回路76の入出力するデータ転送ビット数をシステムバスI/F24のビット幅と同じとすることにより、外部のホストCPUまたはDMAコントローラが、このメモリセルマット30内のデータにアクセスすることができる。   By using the column decoder 78 to make the number of data transfer bits input / output by the input / output circuit 76 the same as the bit width of the system bus I / F 24, an external host CPU or DMA controller can store the data in the memory cell mat 30. Data can be accessed.

この場合、外部からのアクセス可能なデータは、複数のエントリにまたがる同一ビット位置のデータである。ビットシリアル態様で演算処理を実行する場合、したがって、1つのデータの各ビットが同一エントリに格納されるようにデータ列の並び替えが行なわれる。   In this case, data accessible from the outside is data at the same bit position across a plurality of entries. When the arithmetic processing is executed in the bit serial mode, therefore, the data string is rearranged so that each bit of one data is stored in the same entry.

以上のように、この発明の実施の形態5に従えば、入出力回路のビット幅を、システムバスI/Fのビット幅と同一となるようにカラムデコーダ78の選択列数を設定しており、外部のホストCPUまたはDMAコントローラにより、メモリセルマット30内のデータをアクセスすることができる。   As described above, according to the fifth embodiment of the present invention, the number of selected columns of the column decoder 78 is set so that the bit width of the input / output circuit is the same as the bit width of the system bus I / F. The data in the memory cell mat 30 can be accessed by an external host CPU or DMA controller.

[実施の形態6]
図25は、この発明の実施の形態6に従うシステムLSIの構成を概略的に示す図である。この図25においては、基本演算ブロックFB1の構成のみを具体的に示すが、基本演算ブロックFB1−FBh各々において、コントローラ22からのワークデータをメモリセルマット30へ転送するための切換回路(MUX)80が設けられる。この切換回路(MUX)80は、システムバスI/F24とコントローラ22の一方を、主演算回路20に含まれるメモリセルマット30に結合する。具体的には、この切換回路80が、図23に示す主演算回路内の入出力回路76に結合される。
[Embodiment 6]
FIG. 25 schematically shows a structure of a system LSI according to the sixth embodiment of the present invention. FIG. 25 specifically shows only the configuration of basic operation block FB1, but in each of basic operation blocks FB1-FBh, a switching circuit (MUX) for transferring work data from controller 22 to memory cell mat 30. 80 is provided. The switching circuit (MUX) 80 couples one of the system bus I / F 24 and the controller 22 to the memory cell mat 30 included in the main arithmetic circuit 20. Specifically, switching circuit 80 is coupled to input / output circuit 76 in the main arithmetic circuit shown in FIG.

図25に示すシステムLSIの他の構成は、図1に示すシステムLSIの構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。   The other configuration of the system LSI shown in FIG. 25 is the same as that of the system LSI shown in FIG. 1, and corresponding portions are denoted by the same reference numerals, and detailed description thereof is omitted.

この図25に示す構成においては、メモリセルマット30が、演算対象データ格納領域として利用され、また、コントローラ22のワークデータ格納領域として利用される。したがって、図1等に示すワークデータメモリ(23)が不要となり、チップ面積を低減することができる。   In the configuration shown in FIG. 25, the memory cell mat 30 is used as a calculation target data storage area and is also used as a work data storage area of the controller 22. Therefore, the work data memory (23) shown in FIG. 1 or the like is not necessary, and the chip area can be reduced.

図26は、この発明の実施の形態6におけるメモリセルマット30におけるデータ格納領域の構成を概略的に示す図である。図26において、メモリセルマット30は、演算データを格納する演算データエリア30pと、コントローラ22からのワークデータを格納するワークエリア30wとを含む。演算データエリア30pにおいては、エントリERY(ERYa,ERYb)において、演算対象データDToの各ビットが格納される。一方、ワークエリア30wにおいては、複数のエントリ(ERYa…ERYb)にわたって、同一列に、ワークデータDTwの各ビットが格納される。したがって、演算データエリア30pにおいては、外部データワードのビット位置の並び替えが行なわれたデータが格納され、一方、ワークエリア30wには、コントローラからのワークデータが並び替え処理を受けずに、各ワードが1アドレス位置に格納される。   FIG. 26 schematically shows a structure of a data storage region in memory cell mat 30 in the sixth embodiment of the present invention. 26, memory cell mat 30 includes a calculation data area 30p for storing calculation data and a work area 30w for storing work data from controller 22. In the calculation data area 30p, each bit of the calculation target data DTo is stored in the entry ERY (ERYa, ERYb). On the other hand, in work area 30w, each bit of work data DTw is stored in the same column over a plurality of entries (ERYa... ERYb). Therefore, in operation data area 30p, the data in which the bit positions of the external data words are rearranged is stored, while in work area 30w, the work data from the controller is not subjected to the rearrangement process. A word is stored at one address location.

メモリセルマット30においては、メモリセルマット30のエントリに対し均一にワークエリア30wが割当てられて、ワークデータの格納が行なわれる。したがって、各エントリに対して、演算データ格納部分とワークデータ格納部分とは均等に割当てられ、特定のエントリの領域すべてがワークデータ格納に用いられることがないため、エントリを用いた並列演算処理能力は損なわれない。   In memory cell mat 30, work area 30w is uniformly assigned to the entries of memory cell mat 30, and work data is stored. Therefore, the calculation data storage part and the work data storage part are equally allocated to each entry, and the entire area of a specific entry is not used for work data storage. Will not be damaged.

また、このワークエリア30wにおいては、何らデータの並べ替えを行なう必要がなく、コントローラ22は、通常のワークデータを格納するワークメモリアクセスと同様の操作で、ワークデータDTwをアクセスすることができる。   In the work area 30w, there is no need to rearrange data, and the controller 22 can access the work data DTw by the same operation as the work memory access for storing normal work data.

以上のように、この発明の実施の形態6に従えば、メモリセルマットに対し、コントローラが切換回路を介してアクセス可能となるように構成しており、メモリセルマットを演算データおよびワークデータ格納領域として利用することができ、ワークデータメモリが不要となり、チップ面積を低減することができる。   As described above, according to the sixth embodiment of the present invention, the memory cell mat is configured such that the controller can access the memory cell mat via the switching circuit, and the memory cell mat is stored in the operation data and work data. It can be used as a region, a work data memory becomes unnecessary, and the chip area can be reduced.

[実施の形態7]
図27は、この発明の実施の形態7に従うシステムLSIの構成を概略的に示す図である。図27に示すシステムLSI2においては、基本演算ブロックFB1−FBhそれぞれにおいて、システムバスI/F24と主演算回路20の間に、与えられたデータの行および列の並べ替えを行なう転置回路85と、システムバスI/F24および転置回路85の一方と主演算回路20との間の接続を設定する切換回路(MUX)87が設けられる。この図27においても、基本演算ブロックFB1−FBhは同一構成を有するため、基本演算ブロックFB1の構成を代表的に示す。この図27に示す半導体信号処理装置1の他の構成は、図1に示す半導体信号処理装置の構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
[Embodiment 7]
FIG. 27 schematically shows a structure of a system LSI according to the seventh embodiment of the present invention. In the system LSI 2 shown in FIG. 27, in each of the basic arithmetic blocks FB1 to FBh, a transposition circuit 85 that rearranges the rows and columns of given data between the system bus I / F 24 and the main arithmetic circuit 20, A switching circuit (MUX) 87 for setting a connection between one of system bus I / F 24 and transposition circuit 85 and main arithmetic circuit 20 is provided. Also in FIG. 27, the basic operation blocks FB1 to FBh have the same configuration, and therefore the configuration of the basic operation block FB1 is representatively shown. The other configuration of the semiconductor signal processing device 1 shown in FIG. 27 is the same as that of the semiconductor signal processing device shown in FIG. 1, and corresponding portions are denoted by the same reference numerals, and detailed description thereof is omitted.

転置回路85は、システムバスI/F24からビットパラレルかつワードシリアルな態様で転送されるデータを、ワードパラレルかつビットシリアルな態様で転送して、メモリセルマット30の各エントリに、異なるデータワードの同一位置のビットを並列に書込む。また、転置回路85は、この主演算回路20のメモリセルマット30からワードパラレルかつビットシリアルに転送されるデータ列を転置して、ビットパラレルかつワードシリアルな態様で転送する。これにより、システムバスI/F24とメモリセルマット30におけるデータ転送の整合性をとる。   Transposition circuit 85 transfers data transferred from system bus I / F 24 in a bit-parallel and word-serial manner in a word-parallel and bit-serial manner, and stores different data words in each entry of memory cell mat 30. Write bits in the same position in parallel. The transposition circuit 85 transposes the data string transferred in word parallel and bit serial from the memory cell mat 30 of the main arithmetic circuit 20 and transfers it in a bit parallel and word serial manner. Thereby, consistency of data transfer between the system bus I / F 24 and the memory cell mat 30 is ensured.

なお、図27に示す構成においては、切換回路87が、コントローラ22からのワークデータを選択して主演算回路20に転送するように構成されても良い。この場合、ワークデータメモリ23は不要となる。また、演算対象データを転置する必要のない場合には、切換回路87は、システムバスI/F24を選択して主演算回路20に接続する。   In the configuration shown in FIG. 27, the switching circuit 87 may be configured to select work data from the controller 22 and transfer it to the main arithmetic circuit 20. In this case, the work data memory 23 becomes unnecessary. When it is not necessary to transpose the operation target data, the switching circuit 87 selects the system bus I / F 24 and connects it to the main operation circuit 20.

図28は、図27に示す転置回路85の構成を概略的に示す図である。図28において、転置回路85は、L行L列に配列される記憶素子を有する転置メモリ90と、転置メモリ90とシステムバスI/F24の間のインターフェイスをとるシステムバス転置メモリI/F(インターフェイス)91と、転置メモリ90と内部メモリバスを介して入出力回路76に結合されて、メモリセルマット(30)とのデータ転送のインターフェイスをとるメモリセルマット転置メモリI/F92と、この転置回路85の内部動作に必要な情報を記憶する制御レジスタ群94と、データ転送時のアドレス情報を格納する内部レジスタ群93と、この内部レジスタ群93に含まれる情報に基づいてメモリセルマットに対するアクセス対象のアドレスを計算して主演算回路へ与えるメモリセルマットアドレス計算ユニット95を含む。   FIG. 28 schematically shows a structure of transposition circuit 85 shown in FIG. 28, a transposition circuit 85 includes a transposition memory 90 having storage elements arranged in L rows and L columns, and a system bus transposition memory I / F (interface) that serves as an interface between the transposition memory 90 and the system bus I / F 24. ) 91, a memory cell mat transposed memory I / F 92 coupled to the input / output circuit 76 via the transposed memory 90 and the internal memory bus and serving as an interface for data transfer with the memory cell mat (30), and the transposed circuit 85, a control register group 94 for storing information necessary for internal operation, an internal register group 93 for storing address information at the time of data transfer, and an access target for the memory cell mat based on the information contained in the internal register group 93 A memory cell mat address calculation unit 95 that calculates No.

Lビットデータ単位で、メモリセルマットと転置回路85の間でデータ転送が行なわれ、またLビット単位で転置回路85とシステムバスI/F24との間でデータ転送が行なわれる。メモリ内部バス(図24に示すIO線)および内部システムバス7のビット幅は、Lビットである。   Data transfer is performed between the memory cell mat and the transposition circuit 85 in units of L bits, and data transfer is performed between the transposition circuit 85 and the system bus I / F 24 in units of L bits. The bit widths of the memory internal bus (IO line shown in FIG. 24) and the internal system bus 7 are L bits.

内部レジスタ群93は、内部システムバス7へのアクセス回数のカウント情報を格納するシステムバスアクセス回数カウンタ93aと、メモリセルマットへのアクセス回数のカウント情報を格納するメモリセルマットアクセス回数カウンタ93bを含む。   The internal register group 93 includes a system bus access number counter 93a that stores count information of the number of accesses to the internal system bus 7, and a memory cell mat access number counter 93b that stores count information of the number of accesses to the memory cell mat. .

制御レジスタ群94は、エントリ位置情報を格納するエントリ位置レジスタ94aと、ビット位置情報を格納するビット位置レジスタ94bと、この転置回路85の活性/非活性を決定する制御ビットを格納するイネーブルレジスタ94cと、この転置回路85のデータの書込/読出の方向を設定する情報を格納するリード/ライト方向レジスタ94dを含む。エントリ位置レジスタ94aおよびビット位置レジスタ94bにより、メモリセルマットにおけるエントリ位置およびビット位置情報が指定される。この指定された領域のメモリセルマット内の内容を転置メモ90が保持しており、転置回路85は、データの並べ替えを行なう機能を有するリード/ライトバッファ回路として機能する。   The control register group 94 includes an entry position register 94a for storing entry position information, a bit position register 94b for storing bit position information, and an enable register 94c for storing control bits for determining the activation / inactivation of the transposition circuit 85. And a read / write direction register 94d for storing information for setting the data write / read direction of transposition circuit 85. The entry position register 94a and the bit position register 94b specify entry position and bit position information in the memory cell mat. The transposition memo 90 holds the contents in the memory cell mat of the designated area, and the transposition circuit 85 functions as a read / write buffer circuit having a function of rearranging data.

内部レジスタ群93におけるカウンタレジスタ93aおよび93bのカウント値により、転置メモリ90におけるデータの格納状況が示される。   The storage status of data in transposition memory 90 is indicated by the count values of counter registers 93a and 93b in internal register group 93.

システムバス転置メモリI/F91は、転置回路85と内部システムバス7との間のデータ転送を制御する機能を有し、転置回路85からメモリセルマット(メモリ内部バス)へのデータ転送時には、内部システムバス7と転置メモリ90との間のデータ転送を要求するバスリクエストのウエイト制御を行なう。   The system bus transposition memory I / F 91 has a function of controlling data transfer between the transposition circuit 85 and the internal system bus 7, and at the time of data transfer from the transposition circuit 85 to the memory cell mat (memory internal bus) Wait control of a bus request for requesting data transfer between the system bus 7 and the transposition memory 90 is performed.

メモリセルマットアドレス計算ユニット95は、メモリセルマットへのデータ転送時、エントリ位置レジスタ94aおよびビット位置レジスタ94bに格納された情報に基づいて、データ転送対象のメモリセルマットのアドレスの計算を行ない、主演算回路に転送する(図24に示すロウデコーダ70およびカラムデコーダ4に転送する)。   The memory cell mat address calculation unit 95 calculates the address of the memory cell mat to be transferred based on the information stored in the entry position register 94a and the bit position register 94b during data transfer to the memory cell mat. Transfer to the main arithmetic circuit (transfer to the row decoder 70 and the column decoder 4 shown in FIG. 24).

転置メモリ90は、システムバス転置メモリI/F91とは、Y方向に整列するビットで構成されるデータDTE単位でデータの転送を行なう(X方向に順次データDTEが格納される)。データワードは、同一のエントリに格納されるため、システムバスI/F91は、エントリ単位のデータを転送する。一方、転置メモリ90は、メモリセルマット転置メモリI/F92とのデータ転送時には、X方向に整列するデータビットを用いてデータの転送を行なう。すなわち、転置メモリ90においては、Y方向に整列するデータDTEが、外部アドレス単位のデータであり、メモリセルマットにおいては、同一のエントリに格納されるエントリ単位のデータであり、ワードシリアルビットパラレル単位で転送されるデータが格納される。一方、X方向のデータDTAは、メモリセルマットの複数のエントリにわたるデータであり、メモリセルマットにおいて同一アドレスに格納されるデータであり、ワードパラレルかつビットシリアルに転送され、各エントリの同一位置のビットで構成されるメモリセルマットのアドレス単位のデータである。   Transposition memory 90 performs data transfer with system bus transposition memory I / F 91 in units of data DTE composed of bits aligned in the Y direction (data DTE is sequentially stored in the X direction). Since the data word is stored in the same entry, the system bus I / F 91 transfers data in entry units. On the other hand, transposition memory 90 performs data transfer using data bits aligned in the X direction when transferring data to / from memory cell mat transposition memory I / F 92. That is, in transposition memory 90, data DTE aligned in the Y direction is data in units of external addresses, and in the memory cell mat, data is in units of entries stored in the same entry, and is in word serial bit parallel units. Stores the data to be transferred. On the other hand, the data DTA in the X direction is data over a plurality of entries in the memory cell mat, is data stored at the same address in the memory cell mat, is transferred in word parallel and bit serial, and is stored at the same position in each entry. This is data in the address unit of the memory cell mat composed of bits.

この転置メモリ90において、システムバスとのデータ転送を行なうポートとメモリ内部バスとのデータ転送を行なうポートを別々に設けることにより、X方向データおよびY方向データを並び替えて、データ転送を行なうことができる。次に、内部システムバス7から入出力回路76を介してメモリセルマットへデータを書込む際の、転置回路85の動作を一例として、図29の動作フローを参照して説明する。   In transposition memory 90, by separately providing a port for transferring data to and from the system bus and a port for transferring data to and from the memory internal bus, data transfer is performed by rearranging X-direction data and Y-direction data. Can do. Next, an operation of transposition circuit 85 when data is written from internal system bus 7 to memory cell mat via input / output circuit 76 will be described with reference to the operation flow of FIG. 29 as an example.

フェーズ1:
まず、主演算回路のメモリセルマットの書込対象の先頭のビット位置(ワード線アドレス)およびエントリ位置(ビット線アドレス)をそれぞれ、ビット位置レジスタ94bおよびエントリ位置レジスタ93aに設定する。次いで、リード/ライト方向レジスタ90dに、書込を示すビットを設定する。
Phase 1:
First, the first bit position (word line address) and entry position (bit line address) to be written in the memory cell mat of the main arithmetic circuit are set in the bit position register 94b and the entry position register 93a, respectively. Next, a bit indicating writing is set in the read / write direction register 90d.

この後、イネーブルレジスタ94cに、イネーブルビットを設定し、この転置回路85をイネーブルする。このイネーブルレジスタ94cのイネーブルビットのアサートにより、内部レジスタ群93に含まれるカウンタレジスタ93aおよび93bのカウント値が0に初期化される(ステップSP1)。   Thereafter, an enable bit is set in the enable register 94c to enable the transposition circuit 85. By asserting the enable bit of the enable register 94c, the count values of the counter registers 93a and 93b included in the internal register group 93 are initialized to 0 (step SP1).

フェーズ2:
システムバスI/F24からシステムバス転置メモリI/F91経由で、転置メモリ90に対し、転送データが書込まれる。この転置メモリ90への書込データは、Y方向に整列する多ビットデータDTEとして、転置メモリ90のX方向についての先頭行から順に格納される。この転置メモリ90に対するデータ書込ごとに、システムバスアクセス回数カウンタレジスタ93aのカウント値がインクリメントされる(ステップSP2)。
Phase 2:
Transfer data is written from the system bus I / F 24 to the transposition memory 90 via the system bus transposition memory I / F 91. The write data to the transposition memory 90 is stored in order from the first row in the X direction of the transposition memory 90 as multi-bit data DTE aligned in the Y direction. Each time data is written to the transposition memory 90, the count value of the system bus access number counter register 93a is incremented (step SP2).

フェーズ3:
転置メモリ90の記憶内容がフル状態となるまで、すなわち、システムバスアクセス回数カウンタレジスタ93aのカウント値がメモリ内部バスのバス幅Lに到達するまで、システムバス転置メモリI/F91を介してのデータ書込が行なわれる(ステップSP3)。
Phase 3:
Data through the system bus transposition memory I / F 91 until the storage contents of the transposition memory 90 become full, that is, until the count value of the system bus access count counter register 93a reaches the bus width L of the memory internal bus. Writing is performed (step SP3).

フェーズ4:
転置メモリ90にL回のデータ書込が、内部システムバス7からシステムバスI/F24およびシステムバス転置メモリI/F91を介して行なわれると、転置メモリ90からメモリセルマットへのデータ転送を行なうため、システムバス転置メモリI/F91は、内部システムバス7に対するウエイト制御信号をアサートし、システムバスI/F24に対し、後続のデータ書込を待機させる状態に設定する(ステップSP4)。この転置メモリ90の記憶状況がフル状態となるか否かは、システムバスアクセス回数カウンタレジスタ93aのカウント値をモニタすることにより行なわれる。
Phase 4:
When data is written L times into transposition memory 90 from internal system bus 7 via system bus I / F 24 and system bus transposition memory I / F 91, data is transferred from transposition memory 90 to the memory cell mat. Therefore, the system bus transposition memory I / F 91 asserts a wait control signal for the internal system bus 7 and sets the system bus I / F 24 in a state of waiting for subsequent data writing (step SP4). Whether or not the storage state of the transposition memory 90 is full is determined by monitoring the count value of the system bus access number counter register 93a.

この動作と並行して、メモリセルマット転置メモリI/F92が活性化され、転置メモリ90のX方向に整列するデータDTAを読出し、入出力回路76に対するデータの転送を行なう(ステップSP5)。   In parallel with this operation, memory cell mat transposition memory I / F 92 is activated, data DTA aligned in the X direction of transposition memory 90 is read, and data is transferred to input / output circuit 76 (step SP5).

メモリセルマットアドレス計算ユニット95は、エントリ位置レジスタ94aおよびビット位置レジスタ94bにおよびメモリセルマットアクセス回数カウンタレジスタ93bの格納値に基づいて転送対象のメモリセルマットのアドレスを計算し、このデータ送出に合せて出力する。また、このメモリセルマットへのデータ送出に合せて、メモリセルマット転置メモリI/F92が、メモリセルマットアクセス回数カウンタ93bのカウント値を増分する。   The memory cell mat address calculation unit 95 calculates the address of the memory cell mat to be transferred based on the stored values of the entry position register 94a and the bit position register 94b and the memory cell mat access frequency counter register 93b, and transmits this data. Output together. Further, in accordance with the data transmission to the memory cell mat, the memory cell mat transposition memory I / F 92 increments the count value of the memory cell mat access number counter 93b.

フェーズ5:
転置メモリ90の格納内容が空となるまで、メモリセルマットアクセス回数カウンタレジスタ93bの格納値がLとなるまで、転置メモリ90からメモリセルマット転置メモリI/F92を介してのLビット単位のデータ転送が継続される(ステップSP5、SP6)。
Phase 5:
Until the stored contents of the transposition memory 90 become empty, until the stored value of the memory cell mat access count counter register 93b becomes L, data in L bit units from the transposition memory 90 via the memory cell mat transposition memory I / F 92 The transfer continues (steps SP5 and SP6).

フェーズ6:
図29に示すフロー図の判定ステップSP6において、転置メモリ90の記憶内容が空であると判定されると、すべての転送データが転送されたかの判定が行なわれる(ステップSP7)。転送データが残っている場合には、再び、アクセス回数レジスタカウンタ93aおよび93bのカウント値を初期化して、ついで、図29に示すステップSP2に戻る。このとき、また、エントリ位置レジスタ94aの格納値はL加算される。エントリ位置レジスタ94aの格納値がメモリセルマットのエントリ数を超えた場合には、エントリ位置レジスタ94aの値が0に設定され、メモリセルマットにおいて次のワード線を選択するため、ビット位置レジスタ94bの格納値を1増分する(ステップSP8)。システムバス転置メモリI/F91が、内部システムバスI/F7へのウエイトを解除し、内部システムバス7から転置メモリ90へのデータの書込を再開する。
Phase 6:
If it is determined in the determination step SP6 of the flowchart shown in FIG. 29 that the storage contents of the transposition memory 90 are empty, it is determined whether all transfer data has been transferred (step SP7). If transfer data remains, the count values of the access count register counters 93a and 93b are initialized again, and then the process returns to step SP2 shown in FIG. At this time, L is added to the stored value of the entry position register 94a. When the stored value of the entry position register 94a exceeds the number of entries in the memory cell mat, the value of the entry position register 94a is set to 0, and the next word line is selected in the memory cell mat, so that the bit position register 94b is selected. Is incremented by 1 (step SP8). The system bus transposition memory I / F 91 releases the wait to the internal system bus I / F 7 and resumes writing data from the internal system bus 7 to the transposition memory 90.

次に、前述のフェーズ2からフェーズ6(すなわち図29に示すステップSP2からSP8の動作)が繰返し実行される。   Next, the above-described phase 2 to phase 6 (that is, the operations of steps SP2 to SP8 shown in FIG. 29) are repeatedly executed.

図29に示すステップSP7において、すべてのデータ転送が完了したと判定されると(システムバスI/F24からの転送要求がデアサートされることにより判定される)、データ転送が終了する。これらの一連の処理により、外部からのワードシリアルに転送されるデータをビットシリアルかつワードパラレルなデータに変換して、メモリセルマットに転送することができる。   In step SP7 shown in FIG. 29, when it is determined that all the data transfer has been completed (determined by the deassertion of the transfer request from the system bus I / F 24), the data transfer ends. Through a series of these processes, data transferred from the outside in word serial can be converted into bit serial and word parallel data and transferred to the memory cell mat.

図30は、図27に示すSDRAM4からメモリセルマット30へのデータ転送を模式的に示す図である。図30においては、内部システムバス7のビット幅が4ビットの場合のデータ転送が一例として示される。   FIG. 30 schematically shows data transfer from SDRAM 4 to memory cell mat 30 shown in FIG. In FIG. 30, data transfer when the bit width of the internal system bus 7 is 4 bits is shown as an example.

図30において、4ビットデータA(ビットA3−A0)ないしI(ビットI3−I0)がSDRAM4に格納される。このSDRAM4から内部システムバス7を介して4ビットデータDTE(データI;ビットI3−I0)が転置メモリ90へ転送されて格納される。このSDRAM4からのデータDTEは、同一エントリに格納されるエントリ単位のデータであり、転置メモリ90においては、Y方向にデータビットが格納される。   In FIG. 30, 4-bit data A (bits A3-A0) to I (bits I3-I0) are stored in the SDRAM 4. 4-bit data DTE (data I; bits I3-I0) is transferred from SDRAM 4 to internal memory 90 via internal system bus 7 and stored. The data DTE from the SDRAM 4 is entry unit data stored in the same entry. In the transposition memory 90, data bits are stored in the Y direction.

転置メモリ90からメモリセルマット30へのデータ転送時においては、この転置メモリ90のX方向に整列するデータDTAの各ビットが並行して読出される。データビットE1、F1、G1、H1からなるアドレス単位のデータDTAが、メモリセルマット30のエントリ位置情報および書込ビット位置情報が示す位置に格納される。ビット位置レジスタに格納されるビット位置情報はメモリセルマット30のワード線アドレスとして用いられ、エントリ位置情報は、このメモリセルマット30のビット線アドレスとして用いられる。これらのビット位置情報およびエントリ位置情報が、先の制御レジスタ群94内のエントリ位置レジスタ94aおよびビット位置レジスタ94bに格納される。実際のデータの書込位置を示す書込ビット位置情報は、メモリセルマットアクセス回数カウンタ93bのカウント値とエントリ位置レジスタ94aの情報とビット位置情報94bに格納されるビット位置情報とに基づいてメモリセルマットアドレス計算ユニット95により生成される。   At the time of data transfer from transposition memory 90 to memory cell mat 30, each bit of data DTA aligned in the X direction of transposition memory 90 is read in parallel. Address unit data DTA including data bits E1, F1, G1, and H1 is stored in the positions indicated by the entry position information and the write bit position information of the memory cell mat 30. The bit position information stored in the bit position register is used as the word line address of the memory cell mat 30, and the entry position information is used as the bit line address of the memory cell mat 30. The bit position information and the entry position information are stored in the entry position register 94a and the bit position register 94b in the previous control register group 94. The write bit position information indicating the actual data write position is stored in memory based on the count value of the memory cell mat access count counter 93b, the information in the entry position register 94a, and the bit position information stored in the bit position information 94b. It is generated by the cell mat address calculation unit 95.

この転置メモリ90を用いて、Y方向に同時にデータビットを格納し、次いでX方向に整列するデータビットを読出すことにより、SDRAM4からワードシリアルかつビットパラレルで読出されるエントリ単位のデータDTEを、ワードパラレルかつビットシリアルのアドレス単位のデータDTAに変換してメモリセルマット30へ格納することができる。   By using this transposition memory 90, data bits are stored simultaneously in the Y direction, and then read out the data bits aligned in the X direction. The data DTA can be converted into word parallel and bit serial address unit data DTA and stored in the memory cell mat 30.

メモリセルマット30からデータを読出して内部システムバス7へ転送する場合には、このデータの転送方向が逆となるものの、転置メモリ90の動作メモリセルマットへのデータ書込時と同じである。データ読出時のメモリセルマット30におけるアクセス対象情報が、制御レジスタ94の各レジスタに格納され、リード/ライト方向レジスタ94dに、データ読出を示すビットを設定する。メモリセルマット30から、メモリセルマット30のアドレス単位のデータを読出して転置メモリ90に、Y方向の先頭位置から順次格納する。次いで、転置メモリ90からデータをX方向の先頭位置から順次読出すことにより、メモリセルマット30からワードパラレルかつビットシリアル態様で読出されたデータを、ワードシリアルかつビットパラレルのデータに変換して転送することができる。   When data is read from the memory cell mat 30 and transferred to the internal system bus 7, the data transfer direction is reversed, but the same as when data is written to the operation memory cell mat of the transposition memory 90. Information to be accessed in the memory cell mat 30 at the time of data reading is stored in each register of the control register 94, and a bit indicating data reading is set in the read / write direction register 94d. Data in units of addresses of the memory cell mat 30 is read from the memory cell mat 30 and stored sequentially in the transposition memory 90 from the start position in the Y direction. Next, the data read from the memory cell mat 30 in the word parallel and bit serial form is converted to word serial and bit parallel data by sequentially reading the data from the transposition memory 90 from the head position in the X direction. can do.

図31は、転置メモリ90に含まれるメモリセルの構成の一例を示す図である。この転置メモリ90に含まれるメモリセルは、デュアルポートSRAMセルで構成される。図31において、転置メモリセルは、交差結合される負荷PチャネルMOSトランジスタPQ1およびPQ2と、交差結合されるデータ記憶用のドライブNチャネルMOSトランジスタNQ1およびNQ2を含む。この転置メモリセルは、通常のSRAMセルと同様にインバータラッチ(フリップフロップ素子)をデータ記憶素子として備え、このフリップフロップ素子により、ストレージノードSN1およびSN2に相補データを記憶する。   FIG. 31 is a diagram illustrating an example of a configuration of a memory cell included in the transposition memory 90. The memory cell included in transposition memory 90 is a dual port SRAM cell. In FIG. 31, transposed memory cells include load P-channel MOS transistors PQ1 and PQ2 that are cross-coupled and drive N-channel MOS transistors NQ1 and NQ2 for data storage that are cross-coupled. This transposed memory cell is provided with an inverter latch (flip-flop element) as a data storage element similarly to a normal SRAM cell, and the flip-flop element stores complementary data in storage nodes SN1 and SN2.

転置メモリセルは、さらに、ワード線WLA上の信号電位に応答してストレージノードSN1およびSN2をそれぞれビット線BLAおよび/BLAに結合するNチャネルMOSトランジスタNQA1およびNQ2と、ワード線WLB上の信号電位に応答してストレージノードSN1およびSN2をビット線BLBおよび/BLBに結合するNチャネルMOSトランジスタNQB1およびNQB2を含む。ワード線WLAおよびWLBが直交して配列され、ビット線BLAおよび/BLAがビット線BLBおよびBLBと直交して配列される。   Transposed memory cell further includes N channel MOS transistors NQA1 and NQ2 coupling storage nodes SN1 and SN2 to bit lines BLA and / BLA, respectively, in response to a signal potential on word line WLA, and a signal potential on word line WLB. In response, N channel MOS transistors NQB1 and NQB2 coupling storage nodes SN1 and SN2 to bit lines BLB and / BLB are included. Word lines WLA and WLB are arranged orthogonally, and bit lines BLA and / BLA are arranged orthogonally to bit lines BLB and BLB.

このワード線WLAおよびビット線BLAおよび/BLAで構成される第1のポート(トランジスタNQA1,NQA2)とワード線WLBおよびビット線BLBおよび/BLBで構成される第2のポート(トランジスタNQB1、NQB2)をそれぞれ別々の転置メモリI/Fに結合する。すなわち、たとえば、第1のポート(ワード線WLA,ビット線BLA,/BLA)を内部システムバスとのインターフェイス用のポートとして利用し、第2のポート(ワード線WLBおよびビット線BLB,/BLB)を、メモリデータバスへのアクセス用のポートとして利用する。これにより、転置メモリにおいて行および列の変換を行なってデータアクセスを行なうことができる。   A first port (transistors NQA1, NQA2) constituted by the word line WLA and the bit lines BLA and / BLA and a second port constituted by the word line WLB and the bit lines BLB and / BLB (transistors NQB1, NQB2) Are respectively coupled to separate transposition memory I / Fs. That is, for example, the first port (word line WLA, bit line BLA, / BLA) is used as an interface port with the internal system bus, and the second port (word line WLB and bit line BLB, / BLB). Are used as ports for accessing the memory data bus. As a result, data can be accessed by performing row and column conversion in the transposed memory.

以上のように、この発明の実施の形態7に従えば、システムバスとメモリデータバスとの間に、転送データの行および列の交換を行なう転置回路を用いており、内部システムバスとメモリセルマット間のデータ転送時に、多ビット幅のデータの転置を行なうことができ、このメモリセルマットに対するデータ転送時に必要とされるメモリセルマットへのアクセス回数を低減することができ、データ転送に要する時間を短縮することができ、高速処理が実現される。   As described above, according to the seventh embodiment of the present invention, a transposition circuit for exchanging rows and columns of transfer data is used between the system bus and the memory data bus, and the internal system bus and the memory cell are used. Multi-bit width data can be transposed at the time of data transfer between mats, and the number of accesses to the memory cell mat required at the time of data transfer to the memory cell mat can be reduced. Time can be shortened and high-speed processing is realized.

この発明に従う半導体信号処理装置は、一般の画像または音声データ処理のみならず、大量のデータ処理を行なう半導体信号処理装置に対して適用することができ、デジタル信号処理分野においてこの発明に従う半導体信号処理装置を広く適用することができる。   The semiconductor signal processing apparatus according to the present invention can be applied not only to general image or sound data processing but also to a semiconductor signal processing apparatus that performs a large amount of data processing. In the field of digital signal processing, the semiconductor signal processing apparatus according to the present invention is applicable. The device can be widely applied.

1 半導体信号処理システム、2 システムLSI、3 外部システムバス、4 SDRAM、7 内部システムバス、8 ホストCPU、11 割込コントローラ、13 DMAコントローラ、14 外部バスコントローラ、FB1−FBh 基本演算ブロック、20 主演算回路、21 マイクロ命令メモリ、22 コントローラ、23 ワークデータメモリ、24 システムバスI/F、30 メモリセルマット、31 ALU、32 ALU間相互接続用スイッチ回路、30A,30B メモリセルマット、35 演算処理ユニット、38,38A,38B 読出/書込回路、40 命令デコーダ、41 プログラムカウンタ、42 PC値計算ユニット、43 汎用レジスタ群、45 制御レジスタ群、46,46A,46B アドレス計算ユニット、47,47A,47B アドレスレジスタ群、70 開始アドレスレジスタ、72 終了アドレスレジスタ、SAW センスアンプおよびライトドライバ、74 ロウデコーダ、76 入出力回路、78 カラムデコーダ、80 切換回路(MUX)、85 転置回路、90 転置メモリ、91 システムバス転置メモリI/F、92 メモリセルマット転置メモリI/F、93 内部レジスタ群、94 制御レジスタ群、95 メモリセルマットアドレス計算ユニット。   1 Semiconductor signal processing system, 2 system LSI, 3 external system bus, 4 SDRAM, 7 internal system bus, 8 host CPU, 11 interrupt controller, 13 DMA controller, 14 external bus controller, FB1-FBh basic operation block, 20 main Arithmetic circuit, 21 Microinstruction memory, 22 Controller, 23 Work data memory, 24 System bus I / F, 30 Memory cell mat, 31 ALU, 32 ALU interconnection switch circuit, 30A, 30B Memory cell mat, 35 Arithmetic processing Unit, 38, 38A, 38B read / write circuit, 40 instruction decoder, 41 program counter, 42 PC value calculation unit, 43 general purpose register group, 45 control register group, 46, 46A, 46B address calculation unit 47, 47A, 47B address register group, 70 start address register, 72 end address register, SAW sense amplifier and write driver, 74 row decoder, 76 input / output circuit, 78 column decoder, 80 switching circuit (MUX), 85 transposition circuit, 90 transposition memory, 91 system bus transposition memory I / F, 92 memory cell mat transposition memory I / F, 93 internal register group, 94 control register group, 95 memory cell mat address calculation unit.

Claims (8)

複数のワード線および複数のビット線により行列状に配列される複数のメモリセルを有しかつ各々のビット線方向に複数のメモリセルを有する複数のエントリに分割されるメモリアレイと、前記メモリアレイの各エントリに対応して1個ずつ配置される複数の演算回路とを含む主演算回路、
マイクロ命令を格納するマイクロ命令メモリ、および
前記マイクロ命令メモリからのマイクロ命令に従って、前記メモリアレイおよび前記複数の演算回路に対する動作制御を行なう制御回路を備える演算処理部と、
前記演算処理部へ演算指示を発行する処理装置とを有し、
前記処理装置は前記演算処理部への演算指示の発行に先行して、前記マイクロ命令を前記マイクロ命令メモリへ格納する制御を行ない、
前記複数の演算回路の夫々は、前記マイクロ命令メモリに格納されたマイクロ命令に応じて、対応するエントリの所定のメモリセルに格納されたデータを用いて演算処理を行なうと共に、当該演算処理を実行するか否かを示す情報を格納するレジスタを有する、半導体信号処理装置。
A memory array having a plurality of memory cells arranged in a matrix by a plurality of word lines and a plurality of bit lines and divided into a plurality of entries having a plurality of memory cells in each bit line direction, and the memory array A main arithmetic circuit including a plurality of arithmetic circuits arranged one by one corresponding to each entry of
A microinstruction memory that stores microinstructions, and an arithmetic processing unit that includes a control circuit that performs operation control on the memory array and the plurality of arithmetic circuits according to microinstructions from the microinstruction memory;
A processing device that issues a calculation instruction to the calculation processing unit;
The processor performs control to store the microinstruction in the microinstruction memory prior to issuing the operation instruction to the arithmetic processing unit,
Each of the plurality of arithmetic circuits performs arithmetic processing using data stored in a predetermined memory cell of a corresponding entry in accordance with a microinstruction stored in the microinstruction memory, and executes the arithmetic processing. A semiconductor signal processing device having a register for storing information indicating whether or not to perform.
前記マイクロ命令は、前記メモリアレイと前記複数の演算回路との間のデータの転送を指示するロード/ストア命令と、前記複数の演算回路で実行する演算内容を指示する演算命令とを含む、請求項1記載の半導体信号処理装置。   The micro-instruction includes a load / store instruction for instructing data transfer between the memory array and the plurality of arithmetic circuits, and an arithmetic instruction for instructing arithmetic contents to be executed by the plurality of arithmetic circuits. Item 14. A semiconductor signal processing device according to Item 1. 前記マイクロ命令メモリの一連の演算命令の開始アドレスと終了アドレスとを格納するレジスタ回路をさらに備え、
前記マイクロ命令は、前記開始アドレスと前記終了アドレスとの間の命令を繰返し実行するループ命令を含む、請求項1記載の半導体信号処理装置。
A register circuit for storing a start address and an end address of a series of operation instructions of the microinstruction memory;
The semiconductor signal processing apparatus according to claim 1, wherein the microinstruction includes a loop instruction that repeatedly executes an instruction between the start address and the end address.
前記メモリアレイは、複数のマットに分割され、かつ各前記メモリセルは書込ポートと読出ポートとを有するマルチポートメモリセルであり、
前記制御回路は、各前記メモリマットに対して並行して書込および読出の制御を行なう、請求項1記載の半導体信号処理装置。
The memory array is a multi-port memory cell divided into a plurality of mats, and each of the memory cells has a write port and a read port;
The semiconductor signal processing device according to claim 1, wherein the control circuit controls writing and reading in parallel with respect to each of the memory mats.
前記主演算回路は複数個並列に設けられ、
前記制御回路が各主演算回路に対応して配置され、
前記半導体信号処理装置は、さらに、
各主演算回路に対応して配置され、外部メモリと対応の主演算回路との間でデータ転送を行なうための転送制御回路をさらに備え、
前記転送制御回路は、1つの主演算回路においての演算実行時に別の主演算回路において外部メモリとのデータ転送を行なうように演算と前記外部メモリとの間のデータ転送をパイプライン態様で実行するように対応の主演算回路の動作を制御する、請求項1記載の半導体信号処理装置。
A plurality of the main arithmetic circuits are provided in parallel,
The control circuit is arranged corresponding to each main arithmetic circuit,
The semiconductor signal processing device further includes:
Further provided with a transfer control circuit arranged corresponding to each main arithmetic circuit, for transferring data between the external memory and the corresponding main arithmetic circuit,
The transfer control circuit executes an operation and data transfer between the external memory in a pipeline manner so that the data transfer with the external memory is performed in another main arithmetic circuit when the operation is performed in one main arithmetic circuit. 2. The semiconductor signal processing apparatus according to claim 1, wherein the operation of the corresponding main arithmetic circuit is controlled as described above.
前記主演算回路は、さらに、
前記複数ビット幅より小さいビット幅の内部データバスと、
第1のアドレス信号に従って前記複数のエントリの同一位置のビットを同時に選択するエントリ選択回路と、
第2のアドレス信号に従って、前記複数のエントリの同時に選択されたビットのうち、前記内部バスのバス幅と同数のビットを同時に選択して前記内部データバスに接続するビット選択回路をさらに備える、請求項1記載の半導体信号処理装置。
The main arithmetic circuit further includes:
An internal data bus having a bit width smaller than the plurality of bit widths;
An entry selection circuit for simultaneously selecting bits at the same position of the plurality of entries according to a first address signal;
And a bit selection circuit configured to simultaneously select and connect the same number of bits as the bus width of the internal bus among the simultaneously selected bits of the plurality of entries according to a second address signal. Item 14. A semiconductor signal processing device according to Item 1.
前記主演算回路外部とデータの授受を行なうシステムバスと、
前記システムバスからのデータと前記制御回路からのデータの一方を選択して前記メモリアレイに転送する切換回路をさらに備える、請求項1記載の半導体信号処理装置。
A system bus for exchanging data with the outside of the main arithmetic circuit;
The semiconductor signal processing apparatus according to claim 1, further comprising a switching circuit that selects one of data from the system bus and data from the control circuit and transfers the data to the memory array.
前記半導体信号処理装置は、さらに、
前記主演算回路外部とデータの転送を行なうシステムバスと、
前記システムバスと前記主演算回路との間に配置され、与えられた多ビットデータの並び替えを行なう転置回路をさらに備え、前記転置回路は前記エントリの同一エントリに同一データのビットが格納されるように、前記システムバスからの多ビットデータの転置を行なう、請求項1記載の半導体信号処理装置。
The semiconductor signal processing device further includes:
A system bus for transferring data with the outside of the main arithmetic circuit;
The transposition circuit is further disposed between the system bus and the main arithmetic circuit and rearranges the given multi-bit data, and the transposition circuit stores bits of the same data in the same entry of the entry. The semiconductor signal processing apparatus according to claim 1, wherein multi-bit data is transposed from the system bus.
JP2011123214A 2011-06-01 2011-06-01 Semiconductor signal processor Pending JP2011192305A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011123214A JP2011192305A (en) 2011-06-01 2011-06-01 Semiconductor signal processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011123214A JP2011192305A (en) 2011-06-01 2011-06-01 Semiconductor signal processor

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2004282014A Division JP2006099232A (en) 2004-09-28 2004-09-28 Semiconductor signal processor

Publications (1)

Publication Number Publication Date
JP2011192305A true JP2011192305A (en) 2011-09-29

Family

ID=44797064

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011123214A Pending JP2011192305A (en) 2011-06-01 2011-06-01 Semiconductor signal processor

Country Status (1)

Country Link
JP (1) JP2011192305A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110825312A (en) * 2018-08-10 2020-02-21 北京百度网讯科技有限公司 Data processing device, artificial intelligence chip and electronic equipment
CN111723921A (en) * 2019-03-22 2020-09-29 中科寒武纪科技股份有限公司 Artificial intelligence computing device and related products

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63316167A (en) * 1987-06-01 1988-12-23 アプライド・インテリジェント・システムズ・インコーポレイテッド Parallel processing system and method
JPH01114982A (en) * 1987-10-27 1989-05-08 Internatl Business Mach Corp <Ibm> Simd array processor
JPH03241974A (en) * 1990-02-20 1991-10-29 Nippon Telegr & Teleph Corp <Ntt> Decoding processing system for picture
JPH1026966A (en) * 1994-06-02 1998-01-27 Accelerix Ltd Single chip frame buffer and graphic accelerator
JPH1074141A (en) * 1996-08-30 1998-03-17 Matsushita Electric Ind Co Ltd Signal processor
JP2001216275A (en) * 2000-02-01 2001-08-10 Sony Corp Image processor and image processing method
JP2002297378A (en) * 2001-03-30 2002-10-11 Sanyo Electric Co Ltd Signal processor
JP2004021645A (en) * 2002-06-17 2004-01-22 Canon Inc Image processing device and its control method

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63316167A (en) * 1987-06-01 1988-12-23 アプライド・インテリジェント・システムズ・インコーポレイテッド Parallel processing system and method
JPH01114982A (en) * 1987-10-27 1989-05-08 Internatl Business Mach Corp <Ibm> Simd array processor
JPH03241974A (en) * 1990-02-20 1991-10-29 Nippon Telegr & Teleph Corp <Ntt> Decoding processing system for picture
JPH1026966A (en) * 1994-06-02 1998-01-27 Accelerix Ltd Single chip frame buffer and graphic accelerator
JPH1074141A (en) * 1996-08-30 1998-03-17 Matsushita Electric Ind Co Ltd Signal processor
JP2001216275A (en) * 2000-02-01 2001-08-10 Sony Corp Image processor and image processing method
JP2002297378A (en) * 2001-03-30 2002-10-11 Sanyo Electric Co Ltd Signal processor
JP2004021645A (en) * 2002-06-17 2004-01-22 Canon Inc Image processing device and its control method

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110825312A (en) * 2018-08-10 2020-02-21 北京百度网讯科技有限公司 Data processing device, artificial intelligence chip and electronic equipment
CN110825312B (en) * 2018-08-10 2023-06-23 昆仑芯(北京)科技有限公司 Data processing device, artificial intelligent chip and electronic equipment
CN111723921A (en) * 2019-03-22 2020-09-29 中科寒武纪科技股份有限公司 Artificial intelligence computing device and related products
CN111723921B (en) * 2019-03-22 2024-05-14 中科寒武纪科技股份有限公司 Artificial intelligence computing device and related products

Similar Documents

Publication Publication Date Title
US11288069B2 (en) Systems, methods, and apparatuses for tile store
US20230350674A1 (en) Interruptible and restartable matrix multiplication instructions, processors, methods, and systems
US10153011B2 (en) Multiple register memory access instructions, processors, methods, and systems
EP1582980B1 (en) Context switching method, device, program, recording medium, and central processing unit
US20060101231A1 (en) Semiconductor signal processing device
JP2776132B2 (en) Data processing system with static and dynamic masking of information in operands
US20200159681A1 (en) Information processor with tightly coupled smart memory unit
JP2006164183A (en) Semiconductor signal processing device
JP7264897B2 (en) Memory device and method for controlling same
US8145804B2 (en) Systems and methods for transferring data to maintain preferred slot positions in a bi-endian processor
KR20010072491A (en) Data processor with an arithmetic logic unit and a stack
JP2011192305A (en) Semiconductor signal processor
JP2002544587A (en) Digital signal processor calculation core
JP2690406B2 (en) Processor and data processing system
JP2007004542A (en) Semiconductor signal processing device
JP2007140750A (en) Orthogonal transform circuit
JP3650519B2 (en) Microcomputer
WO2005106647A1 (en) Methods and apparatus for indexed register access
JP4989899B2 (en) Semiconductor processing unit
US20040128475A1 (en) Widely accessible processor register file and method for use
JP4916151B2 (en) Parallel computing device
US20230094414A1 (en) Matrix operation with multiple tiles per matrix dimension
KR20010072490A (en) Data processor comprising a register stack
JP3441847B2 (en) Processor with data memory
JP3299663B2 (en) Arithmetic unit

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130305

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130625