JP3723311B2 - Parallel processor - Google Patents

Parallel processor Download PDF

Info

Publication number
JP3723311B2
JP3723311B2 JP03669097A JP3669097A JP3723311B2 JP 3723311 B2 JP3723311 B2 JP 3723311B2 JP 03669097 A JP03669097 A JP 03669097A JP 3669097 A JP3669097 A JP 3669097A JP 3723311 B2 JP3723311 B2 JP 3723311B2
Authority
JP
Japan
Prior art keywords
instruction
type
parallel
arithmetic
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP03669097A
Other languages
Japanese (ja)
Other versions
JPH10232777A (en
Inventor
士朗 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Asahi Kasei Corp
Original Assignee
Asahi Kasei 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 Asahi Kasei Corp filed Critical Asahi Kasei Corp
Priority to JP03669097A priority Critical patent/JP3723311B2/en
Publication of JPH10232777A publication Critical patent/JPH10232777A/en
Application granted granted Critical
Publication of JP3723311B2 publication Critical patent/JP3723311B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、プロセッサの構成に関し、特に、複数の演算器を有し、その複数の演算器を用いて並列の演算を行うことができる並列演算プロセッサに関するものである。
【0002】
【従来の技術】
従来から、コンピュータ・アーキテクチャにおいて、複数の演算器を有し、その演算器を並列に動作することにより、並列演算することは行われている。このような並列動作する例としては、たとえば、種類の異なる演算器(たとえば乗累算器と算術論理演算器)を有するデジタル信号処理プロセッサ(DSP)がある。
【0003】
このような複数の演算器を有するプロセッサの場合は、並列演算を行うために命令語に複数の演算器に対応したフィールドを設け、このフィールドにより同時に複数の演算器の動作を制御している。
【0004】
【発明が解決しようとする課題】
このような構成のプロセッサにおいて、並列演算のネックとなるのは、メモリからデータや命令を取り出すためのメモリ・バスである。このメモリ・バスを複数設けることにより、ネックを少なくすることは行われている。しかし、このメモリ・バスを設けることは、データ長(たとえば16ビット)の導線を設けることであり、チップ上に大きな面積を占めることになり、また外部接続のためのピン等を設ける必要がある。このため、メモリ・バスを増設することは、プロセッサ・チップの面積を増大させ、また、価格を増加することを意味する。
【0005】
また、命令語に並列動作させるために、複数のフィールドを設けることは、命令語を長くし、命令語メモリの効率を下げることを意味する。
【0006】
本発明の目的は、メモリ・バスを増設することなく、並列動作することができるプロセッサを提供することである。
【0007】
また、本発明の目的は、各演算器ごとのフィールドを設けることなく、並列演算を行うことのできるプロセッサを提供することである。
【0008】
【課題を解決するための手段】
上記目的を達成するために、本発明は、相互にバスの競合を起こさない少なくとも2種類の演算命令を有する並列演算プロセッサであって、一方の種類の命令と他方の種類の命令を格納したプログラム・メモリと、前記2種類の命令のうちの前記一方の種類の命令を格納する命令キャッシュと、前記プログラム・メモリから読み出された前記一方の種類の命令と前記他方の種類の命令を選択するデコーダと、前記命令キャッシュから読み出された前記一方の種類の命令と、前記デコーダにより選択された前記一方の種類の命令を選択するセレクタと、該セレクタにより選択された前記一方の種類の命令を実行する第1の演算部と、前記デコーダにより選択された前記の種類の命令を実行する第2の演算部とを有し、前記命令キャッシュから読み出された前記一方の種類の命令を実行する間、前記プログラム・メモリから前記他の種類の命令を独立に実行することを特徴とする。
【0009】
この発明では、命令キャッシュからの命令と、プログラム・メモリからの命令とを全く独立に実行することができるため、1つのプロセッサのなかに、あたかも2つの独立のプロセッサが存在するような処理が可能になる。
【0010】
また、前記バスは少なくとも2本あり、前記一方の種類の演算命令は、前記2本のバスのうち片方のみを用いる命令であるとすることもできる。
【0011】
前記命令キャッシュに格納される命令は、繰り返して用いるループ・プログラムであるとすることもできる。
【0012】
そのうえ、第1の演算部は乗累算部であり、その乗累算部は、複数の乗累算器と、前記乗累算器間に挿入した遅延部と、ローカル・データ・メモリとを有し、前記バスからのデータと前記ローカル・データ・メモリからのデータとを演算することもできる。
【0013】
乗累算部を有するプロセッサにおいては、フィルタの演算に多く利用されており、並列に動作することのできる機会が多く、命令キャッシュを用いることにより並列に処理できることが多く、本発明を有効に利用できる。
【0014】
【発明の実施の形態】
本発明の実施形態を、図面を参照して詳細に説明する。
【0015】
図1は、本発明の並列演算プロセッサの演算部の実施形態の一例を示すブロック図である。図1に示した並列演算プロセッサは、積和を計算することができる乗累算部および算術論理演部を有する信号処理プロセッサ(DSP)を示している。
【0016】
図1において、101および102はバンク構成のデータ・メモリ1およびデータ・メモリ2であり、それぞれメモリ・バス1 103およびメモリバス2104に接続されて、データ・メモリ1 101およびデータ・メモリ2 102とは、独立にアクセスできる構成となっている。110は複数の乗累算器を有する乗累算部、120は算術論理演算器を有する算術論理演算部である。乗累算部110の構成については後で詳しく説明する。算術論理演算部120は、通常のプロセッサが有する演算器の機能を備えている。
【0017】
130は乗累算部110に対する命令デコーダで、140は算術演算部120に対する命令デコーダである。150は命令語を一時的に格納する命令キャッシュである。170は、命令語が格納されており、上記データ・メモリとは独立に読み出すことができるプログラム・メモリである。160は、乗累算部用デコーダに入力する命令語を、命令キャッシュ150から入力するか、プログラム・メモリ170から入力するかを選択するセレクタである。105は、命令語が格納されているプログラム・メモリ170から読み出された命令語を乗累算部用命令デコーダ130、算術論理演算部用命令デコーダ140または命令キャッシュ150のどれに入力するかを選択するためのデコーダである。
【0018】
さて、乗累算部110の構成および動作を詳しく説明する。
【0019】
乗累算部110は、すくなくても2つ以上の乗累算器1〜nの115〜117を備えている。各乗累算器は、aとbの入力に対して、ab+cの積和を計算することができる(cは乗累算器中のレジスタに記憶している値である)。ローカル・データ・メモリ111は、10個程度のデータワード分を記憶できる容量を有するローカル・メモリで、各乗累算器の入力の一方に接続されている。また、各乗累算器間には1サイクルの遅延ができる遅延回路112〜113が挿入されており、ローカルメモリからのデータを遅延している。
【0020】
乗累算部110の動作を説明する。デジタル信号処理でよく利用されているフィルタの場合を例にして説明する。
【0021】
フィルタに用いられる計算式は、yt を出力、xt を入力、αを係数とするとき、
【0022】
【数1】

Figure 0003723311
で表される。この計算式を、上述の乗累算部110で行うことを説明する。なお、kは、正の整数である。
【0023】
さて、計算式の係数α0 ,α1 ,α2 ,α3 ,α4 ,・・・αk をローカルメモリにまず格納しておく。これは、データ・メモリ1またはデータ・メモリ2からローカルメモリへの転送命令を用意しておき、この転送命令を用いることにより行われる。
【0024】
入力データであるxt ,xt+1 ,xt+2 ,xt+3 ,xt+4 ,・・・xt+k は、データ・メモリ1 101からメモリ・バス1 103を介して順次読み出され、乗累算部110に入力される。乗累算部110に入力したデータは、乗累算器1 115,乗累算器2 116,乗累算器n 117に1サイクル遅れて入力される。また、係数α0 ,α1 ,α2 ,α3 ,α4 ,・・・αk は、ローカルメモリ111から順次読み出されて、乗累算器1,乗累算器2,・・・乗累算器nに、同時に入力される。
【0025】
このように、入力されるデータを各乗累算器で計算すると、tのときからkサイクル後に、乗累算器1,2,…,nには、それぞれyt ,yt-1 ,…,yt-n として、
【0026】
【数2】
Figure 0003723311
【0027】
【数3】
Figure 0003723311
【0028】
【数4】
Figure 0003723311
が計算される。なお、xt-n ,…,xt-2 ,xt-1 は、以前に入力したデータが各遅延回路112〜113に残っていたものである。
【0029】
このように、ローカル・メモリおよび遅延回路を用意することにより、データの読み出しは、2本用意されているメモリ・バスの一方のみを利用することで、2入力の演算をn重の並列で行うことができる。しかも、例えば同じフィルタの演算を繰り返し行うときは、最初にフィルタの演算に用いる係数をローカル・メモリに転送すれば、後はその転送された係数を用いることができるので、ローカル・メモリへの転送は、大したオーバーヘッドにはならない。
【0030】
さて、命令キャッシュ150の動作について説明する。この命令キャッシュ150は、セレクタ160により切り替えて、プログラム・メモリ170に代わって、乗累算部用の命令デコーダ130に対して命令を供給できるような構成である。この命令キャッシュには、乗累算部110を用いて、データについては1つのデータ・メモリすなわち1つのメモリ・バスのみを用いる演算する命令を格納する。この様な命令は、例えば、前に説明したようなローカル・メモリを用いた演算を行う命令である。
【0031】
乗累算部110が命令キャッシュ150からの命令により、メモリ・バスの1つを用いて演算を行っているのに並行して、プログラム・メモリ170から他のメモリ・バスを用いて、算術論理演算部で行う演算例えばビット処理やシステム制御処理を行う命令を読み出し、実行することができる。
【0032】
このように、命令キャッシュ150からの命令と、プログラム・メモリ170からの命令とを全く独立に実行することができるため、1つのプロセッサのなかに、あたかも2つの独立のプロセッサが存在するような処理が可能になる。
【0033】
このローカル・メモリに対して格納される命令としては、例えば、乗累算部110を用いて上述の計算式を計算するようなループのプログラムの命令がよい。この様な場合、ループのプログラムを制御するためのリピート(繰り返し)命令により、命令キャッシュを用いて繰り返しを行うかを指定することが多い。
【0034】
図2(a)は、そのリピート命令のフォーマットの1例を示している。
【0035】
リピート命令は、例えば、図2(a)で示すように、命令を識別する命令コード、リピートを行う範囲を示すプログラム・メモリのアドレス(Add)、リピート回数(count)、命令キャッシュを用いるか否かを示すフラグ(F)で構成されている。
【0036】
図2(b)を用いて、どのように図2(a)に示したリピート命令と上述の命令キャッシュを用いて、並列に演算を行うかを説明する。プログラム・メモリ170から読み出した命令がリピート命令であり、命令キャッシュを用いてリピートを行うフラグが立っているとする。このリピート命令で指定されたリピートの範囲が(A)である。プロセッサの制御部は、引き続き命令語をプログラム・メモリから読み出して実行するが、それとともに、読み出したリピートの範囲(A)の命令語を命令キャッシュ150に格納する。そして、リピート範囲(A)のプログラムの読み出しが終了すると、フラグが立っている場合は、そのまま、引き続きプログラム・メモリからの次のアドレスの命令語を読み出して実行する。
【0037】
一方、命令キャッシュからも、リピート命令で指定された回数から1回少ない回数、繰り返し命令語が読み出されて実行される。この命令キャッシュから読み出されている時間の間、プロセッサは、命令キャッシュからの命令とプログラム・メモリからの命令により、並列に動作している。
【0038】
したがって、リピート命令のフラグで命令キャッシュを利用して並列動作を行うことを指定した場合は、ループのプログラムの次のプログラムは、ループを行っている時間の間、並列動作していることを意識して作成する必要がある。図2(b)において、プログラム・メモリ内の(B)と示した部分がその並列動作部分のプログラムに対応している。
【0039】
なお、上記の例では、リピート命令によりフラグを用いて明示的に命令キャッシュを利用することを指定した。しかし、例えば乗累算部を用いるループの場合に必ず命令キャッシュを利用するときは、リピート範囲の乗累算部を用いる命令語を命令キャッシュに必ず転送することにすると、上記で説明したフラグは必要なくなる。
【0040】
上記では、乗累算部を有するデジタル信号処理プロセッサ(DSP)で説明した。これは、デジタル信号処理プロセッサ(DSP)においては、乗累算部110の説明で例示したフィルタの演算に多く利用されており、並列に動作することのできる機会が多く、命令キャッシュ150を用いることにより並列に処理できることが多くなるからである。
【0041】
しかし、上述の命令キャッシュの構成は、複数の演算部を有する汎用のプロセッサにも応用できる。この場合、少なくても命令キャッシュを設けた演算部と他の1つの演算部において、互いにバスの競合がない演算が可能であることが必要である。
【0042】
【発明の効果】
上記の説明のように、本発明は、命令キャッシュからの命令と、プログラム・メモリからの命令とを全く独立に実行することができるため、1つのプロセッサのなかに、あたかも2つの独立のプロセッサが存在するような処理が可能になる。
【0043】
乗累算部を有するプロセッサにおいては、フィルタの演算に多く利用されており、並列に動作することのできる機会が多く、命令キャッシュを用いることにより並列に処理できることが多く、本発明を有効に利用できる。
【図面の簡単な説明】
【図1】本発明の実施形態を示すブロック図である。
【図2】本発明のプロセッサの動作を説明する図である。
【符号の説明】
101,102 データ・メモリ
103,104 メモリ・バス
105 デコーダ
110 乗累算部
111 ローカル・データ・メモリ
112,113 遅延回路
115〜117 乗累算器
120 算術論理演算部
130 乗累算部用命令デコーダ
140 算術論理演算用命令デコーダ
150 命令キャッシュ
160 セレクタ
170 プログラム・メモリ[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a configuration of a processor, and more particularly to a parallel arithmetic processor that has a plurality of arithmetic units and can perform parallel arithmetic using the arithmetic units.
[0002]
[Prior art]
2. Description of the Related Art Conventionally, in a computer architecture, parallel computation has been performed by having a plurality of computing units and operating the computing units in parallel. As an example of such parallel operation, for example, there is a digital signal processor (DSP) having different types of arithmetic units (for example, a multiplier accumulator and an arithmetic logic unit).
[0003]
In the case of such a processor having a plurality of computing units, a field corresponding to the plurality of computing units is provided in the instruction word in order to perform parallel computation, and the operations of the plurality of computing units are controlled simultaneously by this field.
[0004]
[Problems to be solved by the invention]
In the processor having such a configuration, a bottleneck for parallel operation is a memory bus for fetching data and instructions from the memory. By providing a plurality of memory buses, the bottleneck has been reduced. However, providing this memory bus means providing a conductor having a data length (for example, 16 bits), which occupies a large area on the chip, and it is necessary to provide pins for external connection. . For this reason, adding a memory bus means increasing the area of the processor chip and increasing the price.
[0005]
In addition, providing a plurality of fields in order to operate in parallel with an instruction word means that the instruction word is lengthened and the efficiency of the instruction word memory is lowered.
[0006]
An object of the present invention is to provide a processor capable of operating in parallel without adding a memory bus.
[0007]
It is another object of the present invention to provide a processor that can perform parallel operations without providing a field for each arithmetic unit.
[0008]
[Means for Solving the Problems]
In order to achieve the above object, the present invention provides a parallel operation processor having at least two types of operation instructions that do not cause bus contention with each other, the program storing one type of instruction and the other type of instruction - a memory, the two types of instruction cache for storing the one kind of command out of commands, selects an instruction of the instruction and the other kind of the one of the type read from the program memory A decoder, the one type of instruction read from the instruction cache, a selector for selecting the one type of instruction selected by the decoder, and the one type of instruction selected by the selector. It has a first arithmetic unit for executing, a second arithmetic unit for executing the instruction type of the other side selected by the decoder or the instruction cache While executing the one type of instruction read, and executes the other hand the type of instruction from said program memory independently.
[0009]
In the present invention, since instructions from the instruction cache and instructions from the program memory can be executed completely independently, it is possible to perform processing as if there were two independent processors in one processor. become.
[0010]
Further, there may be at least two buses, and the one type of operation instruction may be an instruction using only one of the two buses.
[0011]
The instruction stored in the instruction cache may be a loop program used repeatedly.
[0012]
In addition, the first arithmetic unit is a multiply-accumulate unit, and the multiply-accumulate unit includes a plurality of multiplier-accumulators, a delay unit inserted between the multiplier-accumulators, and a local data memory. It is also possible to calculate data from the bus and data from the local data memory.
[0013]
A processor having a multiply-accumulate unit is often used for filter operations, has many opportunities to operate in parallel, and can often process in parallel by using an instruction cache. it can.
[0014]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described in detail with reference to the drawings.
[0015]
FIG. 1 is a block diagram showing an example of an embodiment of an arithmetic unit of the parallel arithmetic processor of the present invention. The parallel arithmetic processor shown in FIG. 1 is a signal processor (DSP) having a multiply-accumulate unit and an arithmetic logic unit capable of calculating a sum of products.
[0016]
In FIG. 1, reference numerals 101 and 102 denote a bank-structured data memory 1 and data memory 2, which are connected to a memory bus 1 103 and a memory bus 2104, respectively, and the data memory 1 101 and the data memory 2 102 Can be accessed independently. 110 is a multiplication / accumulation unit having a plurality of multiplication / accumulation units, and 120 is an arithmetic / logic operation unit having an arithmetic / logic operation unit. The configuration of the multiplication and accumulation unit 110 will be described in detail later. The arithmetic logic unit 120 has a function of an arithmetic unit included in a normal processor.
[0017]
130 is an instruction decoder for the multiplication and accumulation unit 110, and 140 is an instruction decoder for the arithmetic operation unit 120. An instruction cache 150 temporarily stores instruction words. Reference numeral 170 denotes a program memory in which an instruction word is stored and can be read independently of the data memory. Reference numeral 160 denotes a selector that selects whether an instruction word to be input to the multiplier / accumulation unit decoder is input from the instruction cache 150 or the program memory 170. 105 indicates whether the instruction word read from the program memory 170 in which the instruction word is stored is input to the instruction decoder 130 for the multiply-accumulate unit, the instruction decoder 140 for the arithmetic logic unit, or the instruction cache 150. It is a decoder for selecting.
[0018]
Now, the configuration and operation of the multiplication and accumulation unit 110 will be described in detail.
[0019]
The multiplication / accumulation unit 110 includes at least 115 to 117 of the accumulators 1 to n, at least. Each multiplier-accumulator can calculate a product sum of ab + c for the inputs of a and b (c is a value stored in a register in the multiplier-accumulator). The local data memory 111 is a local memory having a capacity capable of storing about 10 data words, and is connected to one input of each multiplier accumulator. Further, delay circuits 112 to 113 capable of delaying one cycle are inserted between the multipliers and accumulators to delay data from the local memory.
[0020]
The operation of the multiplication and accumulation unit 110 will be described. An example of a filter often used in digital signal processing will be described.
[0021]
The calculation formula used for the filter is when y t is output, x t is input, and α is a coefficient.
[0022]
[Expression 1]
Figure 0003723311
It is represented by It will be described that this calculation formula is performed by the above-described multiplication and accumulation unit 110. Note that k is a positive integer.
[0023]
Now, coefficients α 0 , α 1 , α 2 , α 3 , α 4 ,... Α k are first stored in the local memory. This is performed by preparing a transfer instruction from the data memory 1 or the data memory 2 to the local memory and using this transfer instruction.
[0024]
Input data x t , x t + 1 , x t + 2 , x t + 3 , x t + 4 ,... X t + k are transferred from the data memory 1 101 through the memory bus 1 103. The data are sequentially read and input to the power accumulation unit 110. The data input to the multiplier / accumulator 110 is input to the multiplier / accumulator 1 115, the multiplier / accumulator 2 116, and the multiplier / accumulator n 117 with a delay of one cycle. Also, the coefficients α 0 , α 1 , α 2 , α 3 , α 4 ,... Α k are sequentially read out from the local memory 111, and the multiplier accumulator 1, multiplier accumulator 2,. Simultaneously input to the multiplier accumulator n.
[0025]
In this way, when the input data is calculated by each multiplier accumulator, after k cycles from t, the multiplier accumulators 1, 2,..., N have y t , y t−1 ,. , Y tn ,
[0026]
[Expression 2]
Figure 0003723311
[0027]
[Equation 3]
Figure 0003723311
[0028]
[Expression 4]
Figure 0003723311
Is calculated. Note that x tn ,..., X t−2 , x t−1 are data in which the previously input data remains in the delay circuits 112 to 113.
[0029]
As described above, by preparing the local memory and the delay circuit, data is read out by using only one of the two prepared memory buses, and two-input operations are performed in n-fold in parallel. be able to. Moreover, for example, when performing the same filter operation repeatedly, if the coefficient used for the filter operation is first transferred to the local memory, the transferred coefficient can be used later, so that the transfer to the local memory is possible. Is not much overhead.
[0030]
Now, the operation of the instruction cache 150 will be described. The instruction cache 150 can be switched by the selector 160 and can supply an instruction to the instruction decoder 130 for the multiply-accumulate unit in place of the program memory 170. In this instruction cache, a multiplication / accumulation unit 110 is used to store an instruction to perform an operation using only one data memory, that is, one memory bus. Such an instruction is, for example, an instruction for performing an operation using a local memory as described above.
[0031]
In parallel with the multiplication / accumulation unit 110 performing an operation using one of the memory buses according to an instruction from the instruction cache 150, an arithmetic logic is performed using another memory bus from the program memory 170. It is possible to read out and execute an operation to be performed by the operation unit, for example, an instruction to perform bit processing or system control processing.
[0032]
As described above, since the instruction from the instruction cache 150 and the instruction from the program memory 170 can be executed independently of each other, it is as if there are two independent processors in one processor. Is possible.
[0033]
As an instruction stored in the local memory, for example, an instruction of a loop program that calculates the above-described calculation formula using the multiply-accumulate unit 110 is preferable. In such a case, it is often specified whether to repeat using an instruction cache by a repeat (repeat) instruction for controlling a loop program.
[0034]
FIG. 2A shows an example of the format of the repeat instruction.
[0035]
For example, as shown in FIG. 2A, the repeat instruction uses an instruction code for identifying an instruction, an address (Add) of a program memory indicating a repeat range, the number of repeats (count), and whether an instruction cache is used. It is comprised by the flag (F) which shows.
[0036]
Using FIG. 2 (b), how to perform operations in parallel using the repeat instruction shown in FIG. 2 (a) and the above instruction cache will be described. It is assumed that the instruction read from the program memory 170 is a repeat instruction and a flag for performing repeat using the instruction cache is set. The repeat range designated by this repeat instruction is (A). The control unit of the processor continues to read and execute the instruction word from the program memory, and simultaneously stores the instruction word in the read range (A) in the instruction cache 150. When reading of the program in the repeat range (A) is completed, if the flag is set, the instruction word at the next address from the program memory is continuously read and executed as it is.
[0037]
On the other hand, the instruction word is also read from the instruction cache and executed once less than the number designated by the repeat instruction. During the time being read from this instruction cache, the processor is operating in parallel with instructions from the instruction cache and instructions from the program memory.
[0038]
Therefore, if the repeat instruction flag specifies that the instruction cache is used for parallel operation, the program following the loop program is aware that it is operating in parallel for the duration of the loop. Need to be created. In FIG. 2B, the portion indicated by (B) in the program memory corresponds to the program of the parallel operation portion.
[0039]
In the above example, the use of an instruction cache is explicitly specified using a flag by a repeat instruction. However, for example, when using an instruction cache in a loop using a multiply-accumulate unit, if an instruction word using a multiply-accumulate unit in a repeat range is always transferred to the instruction cache, the flag described above is No longer needed.
[0040]
In the above description, a digital signal processor (DSP) having a multiply-accumulate unit has been described. This is often used in the digital signal processor (DSP) for the calculation of the filter exemplified in the explanation of the multiply-accumulate unit 110, and there are many opportunities to operate in parallel, and the instruction cache 150 is used. This is because the number of processes that can be performed in parallel increases.
[0041]
However, the above-described instruction cache configuration can be applied to a general-purpose processor having a plurality of arithmetic units. In this case, it is necessary that at least the arithmetic unit provided with the instruction cache and the other one arithmetic unit can perform an operation without bus contention.
[0042]
【The invention's effect】
As described above, the present invention can execute instructions from the instruction cache and instructions from the program memory completely independently, so that two independent processors are included in one processor. Processing that exists is possible.
[0043]
A processor having a multiply-accumulate unit is often used for filter operations, has many opportunities to operate in parallel, and can often process in parallel by using an instruction cache, thereby effectively using the present invention. it can.
[Brief description of the drawings]
FIG. 1 is a block diagram showing an embodiment of the present invention.
FIG. 2 is a diagram for explaining the operation of the processor of the present invention.
[Explanation of symbols]
101, 102 Data memory 103, 104 Memory bus 105 Decoder 110 Multiply accumulation unit 111 Local data memory 112, 113 Delay circuit 115-117 Multiply accumulator 120 Arithmetic logic operation unit 130 Multiply accumulator instruction decoder 140 Instruction decoder 150 for arithmetic logic operation Instruction cache 160 Selector 170 Program memory

Claims (5)

相互にバスの競合を起こさない少なくとも2種類の演算命令を有する並列演算プロセッサであって、
一方の種類の命令と他方の種類の命令を格納したプログラム・メモリと、
前記2種類の命令のうちの前記一方の種類の命令を格納する命令キャッシュと、
前記プログラム・メモリから読み出された前記一方の種類の命令と前記他方の種類の命令を選択するデコーダと、
前記命令キャッシュから読み出された前記一方の種類の命令と、前記デコーダにより選択された前記一方の種類の命令を選択するセレクタと、
該セレクタにより選択された前記一方の種類の命令を実行する第1の演算部と、
前記デコーダにより選択された前記の種類の命令を実行する第2の演算部とを有し、
前記命令キャッシュから読み出された前記一方の種類の命令を実行する間、前記プログラム・メモリから前記他の種類の命令を独立に実行することを特徴とする並列演算プロセッサ。
A parallel arithmetic processor having at least two types of arithmetic instructions that do not cause bus contention with each other,
A program memory storing one type of instruction and the other type of instruction ;
An instruction cache for storing instructions said one kind of said two kinds of instructions,
A decoder for selecting the one type of instruction and the other type of instruction read from the program memory;
A selector that selects the one type of instruction read from the instruction cache, and the one type of instruction selected by the decoder;
A first arithmetic unit that executes the one type of instruction selected by the selector ;
And a second arithmetic unit for executing the instruction type of the other side selected by the decoder,
Parallel processor characterized during, performing said other side types of instructions from the program memory independently of executing the one type of instruction read from the instruction cache.
請求項1記載の並列演算プロセッサにおいて、前記バスは少なくとも2本あり、前記一方の種類の演算命令は、前記2本のバスのうち片方のみを用いる命令であることを特徴とする並列演算プロセッサ。  2. The parallel arithmetic processor according to claim 1, wherein there are at least two buses, and the one type of arithmetic instruction is an instruction using only one of the two buses. 請求項1または2記載の並列演算プロセッサにおいて、前記命令キャッシュに格納される命令は、繰り返して用いるループ・プログラムであることを特徴とする並列演算プロセッサ。  3. The parallel arithmetic processor according to claim 1, wherein the instruction stored in the instruction cache is a loop program used repeatedly. 請求項1ないし3のいずれかに記載の並列演算プロセッサにおいて、前記第1の演算部は乗累算部であることを特徴とする並列演算プロセッサ。  4. The parallel arithmetic processor according to claim 1, wherein the first arithmetic unit is a multiply-accumulate unit. 請求項4記載の並列演算プロセッサにおいて、前記乗累算部は、複数の乗累算器と、前記乗累算器間に挿入した遅延部と、ローカル・データ・メモリとを有し、前記バスからのデータと前記ローカル・データ・メモリからのデータとを演算することを特徴とする並列演算プロセッサ。  5. The parallel arithmetic processor according to claim 4, wherein the multiplication / accumulation unit includes a plurality of multiplication / accumulation units, a delay unit inserted between the multiplication / accumulation units, and a local data memory. A parallel processor for calculating data from the local data memory and data from the local data memory.
JP03669097A 1997-02-20 1997-02-20 Parallel processor Expired - Fee Related JP3723311B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP03669097A JP3723311B2 (en) 1997-02-20 1997-02-20 Parallel processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP03669097A JP3723311B2 (en) 1997-02-20 1997-02-20 Parallel processor

Publications (2)

Publication Number Publication Date
JPH10232777A JPH10232777A (en) 1998-09-02
JP3723311B2 true JP3723311B2 (en) 2005-12-07

Family

ID=12476821

Family Applications (1)

Application Number Title Priority Date Filing Date
JP03669097A Expired - Fee Related JP3723311B2 (en) 1997-02-20 1997-02-20 Parallel processor

Country Status (1)

Country Link
JP (1) JP3723311B2 (en)

Also Published As

Publication number Publication date
JPH10232777A (en) 1998-09-02

Similar Documents

Publication Publication Date Title
JP5647859B2 (en) Apparatus and method for performing multiply-accumulate operations
JP3869269B2 (en) Handling multiply accumulate operations in a single cycle
US6349318B1 (en) Arithmetic processor for finite field and module integer arithmetic operations
JP2001516916A (en) Data processing device with digital signal processing capability
JPS6125188B2 (en)
JPH0562387B2 (en)
JP4349265B2 (en) Processor
JP2001027945A (en) Floating point unit using standard mac unit for executing simd operation
Knofel Fast hardware units for the computation of accurate dot products
JPH0850578A (en) Arithmetic and logic unit and control method
KR19980041758A (en) 2-Bit Booth Multiplier with Reduced Data Path Width
JP3723311B2 (en) Parallel processor
JPS62134763A (en) Index applicator for 3 address code
JPH1173408A (en) Arithmetic processing system and its method
JP2003241960A (en) Processor, and computation instruction processing method and computation control method therein
US5822609A (en) Processing circuit for performing a convolution computation
EP1936492A1 (en) SIMD processor with reduction unit
US5650952A (en) Circuit arrangement for forming the sum of products
US6792442B1 (en) Signal processor and product-sum operating device for use therein with rounding function
JPH07219766A (en) Arithmetic processor
JPH06309349A (en) Program-controlled processor
JPH0378083A (en) Double precision arithmetic system and arithmetic unit for sum of products
JP2003244190A (en) Processor for data flow control switch and data flow control switch
JP2654451B2 (en) Data output method
WO2008077803A1 (en) Simd processor with reduction unit

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050606

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050610

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050809

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050902

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050915

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20090922

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100922

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100922

Year of fee payment: 5

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20100922

Year of fee payment: 5

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

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

Free format text: PAYMENT UNTIL: 20100922

Year of fee payment: 5

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

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

Free format text: PAYMENT UNTIL: 20100922

Year of fee payment: 5

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20100922

Year of fee payment: 5

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20110922

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110922

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120922

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130922

Year of fee payment: 8

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

LAPS Cancellation because of no payment of annual fees