JPH07107969B2 - Address generation circuit - Google Patents

Address generation circuit

Info

Publication number
JPH07107969B2
JPH07107969B2 JP27471586A JP27471586A JPH07107969B2 JP H07107969 B2 JPH07107969 B2 JP H07107969B2 JP 27471586 A JP27471586 A JP 27471586A JP 27471586 A JP27471586 A JP 27471586A JP H07107969 B2 JPH07107969 B2 JP H07107969B2
Authority
JP
Japan
Prior art keywords
register
pointer
instruction
circuit
base pointer
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 - Lifetime
Application number
JP27471586A
Other languages
Japanese (ja)
Other versions
JPS63127611A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP27471586A priority Critical patent/JPH07107969B2/en
Publication of JPS63127611A publication Critical patent/JPS63127611A/en
Publication of JPH07107969B2 publication Critical patent/JPH07107969B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はディジタル信号処理プロセッサのアドレス生成
回路に関する。
The present invention relates to an address generation circuit of a digital signal processor.

〔従来の技術〕[Conventional technology]

ディジタル信号処理プロセッサは一般に入出力部、演算
部、制御部などで構成され、その処理能力及び回路規模
等は記憶部(メモリ)を制御するアドレス生成回路に左
右される場合がある。例えば、 y(t)=A0(x(t))+A1(x(t−1))+A2
(x(t−2))+A3(x(t−3)) ……(1) で表されるフィルタ計算の場合、ある時刻tOの出力y
(tO)を計算するために過去の3サンプルx(tO
3),x(tO−2),x(tO−1)と現在のデータx
((tO)とのデータに演算を施す時、標本化されたデー
タを1単位時間毎にメモリ上で移動させるのではなく、
仮想シフトによってデータは動かさずにデータポインタ
(DP)を動かすことにより過去の3サンプルのデータを
読み出すことができる。しかしこの場合、時刻tO+1の
出力y(tO+1)を計算するためには別にもう一つのデ
ータポインタを持つか、計算に用いたデータの個数を別
途計算しなければならず、アドレス生成のための処理が
複雑になってしまう。
A digital signal processor is generally composed of an input / output unit, an arithmetic unit, a control unit, and the like, and its processing capacity and circuit scale may depend on an address generation circuit that controls a storage unit (memory). For example, y (t) = A0 (x (t)) + A1 (x (t-1)) + A2
(X (t-2)) + A3 (x (t-3)) (1) In the case of the filter calculation expressed by (1), the output y at a certain time t O
To calculate (t O ), the past 3 samples x (t O
3), x (t O -2), x (t O -1) and current data x
When performing an operation on the data with ((t O ), instead of moving the sampled data on the memory every unit time,
Data of the past three samples can be read by moving the data pointer (DP) without moving the data by the virtual shift. However, in this case, in order to calculate the output y (t O +1) at the time t O +1, either another data pointer must be provided or the number of data used for the calculation must be calculated separately. The processing for is complicated.

このような問題を解決する方法として、ベースポインタ
(BP)とインデックスポインタ(IP)の2つのポインタ
の和で実行アドレスを生成し、現在の入力データを示す
ポインタ値をベースポインタに持たせ、過去のデータの
参照はインデックスポインタをゼロから1ずつ減らし行
くことにより参照できる(1983年3月に廣済堂産報出版
(株)より発行された文献「ザ8086ブック」参照)。こ
のアドレッシング方法によれば、1つの出力を得るため
のプログラムはインデックスポインタをゼロにして次の
計算を開始するプログラムになる。汎用のマイクロプロ
セッサではこの方法によりうまく実現できるが、信号処
理用マイクロプロセッサは演算の高速化のため、パイプ
ラインアークテクチャを採用しており、途切れることな
くデータを演算部に供給することがプロセッサの能力を
最大限に活用する方法であり、ベースポインタとインデ
ックスポインタをそれぞれ更新しなければならないこと
が問題となる。
As a method of solving such a problem, an execution address is generated by the sum of two pointers of a base pointer (BP) and an index pointer (IP), and a pointer value indicating the current input data is stored in the base pointer, The data can be referred to by decrementing the index pointer by one from zero (see the reference "The 8086 Book" issued by Kosaido Kogyo Publishing Co., Ltd. in March 1983). According to this addressing method, the program for obtaining one output is a program for setting the index pointer to zero and starting the next calculation. Although this method can be successfully implemented in a general-purpose microprocessor, the signal processing microprocessor uses a pipeline architecture to speed up the operation, and it is the ability of the processor to supply data to the operation unit without interruption. This is a method of maximizing the use of the, and the problem is that the base pointer and the index pointer must be updated respectively.

この問題を解決する方法として、ベースポインタが更新
された時にインデックスポインタをゼロにクリアする方
法がある(特公昭60-152020号公報参照)。この方法に
より、入力データは途切れることなく演算部に供給さ
れ、プロセッサの能力を最大限に活用することができ
る。
As a method of solving this problem, there is a method of clearing the index pointer to zero when the base pointer is updated (see Japanese Patent Publication No. 60-202020). By this method, the input data is supplied to the arithmetic unit without interruption, and the capacity of the processor can be utilized to the maximum.

〔発明が解決しようとする問題点〕[Problems to be solved by the invention]

以上述べた従来例では、実行アドレスをベースポインタ
とインデックスポインタの和で生成し、ベースポインタ
更新時にインデックスポインタをゼロにクリアする回路
で構成し、信号処理用プロセッサーの能力を最大限に活
用している。しかし従来例で示した例のように、一つの
入力信号に対しては有効な手段と言えるが次に示す例の
ように、2つの入力信号に対して演算を行う場合、メモ
リを分割して使用したい場合等、アドレス生成のため2
つ以上のベースポインタとインデックスポインタの組を
持つか、あるいは演算によりアドレスを生成する必要が
ある。このため回路規模が大きくなり処理能力が低下す
ることが問題となる。
In the above-mentioned conventional example, the execution address is generated by the sum of the base pointer and the index pointer, and it is configured with a circuit that clears the index pointer to zero when the base pointer is updated to maximize the power of the signal processing processor. There is. However, like the example shown in the conventional example, it can be said that it is an effective means for one input signal, but when performing an operation on two input signals as in the following example, the memory is divided. 2 for address generation when you want to use
It is necessary to have one or more pairs of base pointer and index pointer, or to generate an address by calculation. Therefore, there is a problem that the circuit scale becomes large and the processing capacity is lowered.

例えば、モデム等で用いられる直交検波でが、入力信号
にCOS信号とSIN信号を掛け算した信号x1(t)、x2
(t)に対してフィルタ計算が行われる。このフィルタ
計算は仮に(1)式のように表されるものとすると、 y1(t)=A0(x1(t))+A1(x1(t−1))+A2
(x1(t−2))+A3(x1(t−3)) ……(2) y2(t)=A0(x2(t))+A1(x2(t−1))+A2
(x2(t−2))+A3(x2(t−3)) ……(3) となる。
For example, in quadrature detection used in modems, etc., signals x1 (t), x2 obtained by multiplying an input signal by a COS signal and a SIN signal
A filter calculation is performed on (t). If this filter calculation is expressed as in equation (1), y1 (t) = A0 (x1 (t)) + A1 (x1 (t-1)) + A2
(X1 (t-2)) + A3 (x1 (t-3)) (2) y2 (t) = A0 (x2 (t)) + A1 (x2 (t-1)) + A2
(X2 (t-2)) + A3 (x2 (t-3)) (3).

(2)、(3)式を従来例で処理した場合、ベースポイ
ンタ、インデックスポインタ及びメモリをx1(t)、x2
(t)毎に設け、独立にアドレスを生成する方法が考え
られたが、回路規模が大きくなってしまい実情にそぐわ
ない。一方、(2)式の計算終了後、ベースポインタの
値を記憶しておき、(3)式で必要なベースポインタの
値を記憶しておき、必要な数だけ演算により更新した値
をベースポインタにロードし、このベースポインタの値
とインデックスポインタの値でアドレスを生成する。こ
の手順を繰り返すことで、回路規模を大きくすることな
くアドレスを生成することができる。しかし、この方法
ではベースポインタの記憶、更新演算、ロードという処
理が増え、処理能力低下と言う問題が生じる。
When the expressions (2) and (3) are processed by the conventional example, the base pointer, the index pointer, and the memory are x1 (t), x2.
A method has been considered in which it is provided for each (t) and the address is independently generated, but the circuit scale becomes large, which is not suitable for the actual situation. On the other hand, after the calculation of the formula (2), the value of the base pointer is stored, the value of the base pointer required by the formula (3) is stored, and the value updated by the necessary number of operations is used as the base pointer. The address is generated by the value of this base pointer and the value of the index pointer. By repeating this procedure, the address can be generated without increasing the circuit scale. However, with this method, the processing of storing the base pointer, the update operation, and the load is increased, which causes a problem that the processing capacity is lowered.

〔問題点を解決するための手段〕[Means for solving problems]

本発明のアドレス生成回路は、プログラミング命令によ
り更新が可能なベースポインタとインデックスポインタ
をそれぞれ格納する第1及び第2のレジスタと、ベース
ポインタを一時的に記憶する第3のレジスタを備え、ベ
ースポインタとインデックスポインタの和により必要と
するアドレスを生成するアドレス生成回路において、 インデックスポインタまたはベースポインタの更新命
令、ベースポインタのセーブ命令またはロード命令を入
力し、これらの命令に基づいて第1、第2、第3、第4
の制御信号及び更新データを発生する制御回路と、 前記制御回路に入力される命令がインデックスポインタ
またはベースポインタの更新命令の場合に前記制御回路
から出力される前記第1の制御信号により更新対象とす
るインデックスポインタまたはベースポインタを選択す
る第1の選択回路と、 前記第1の選択回路の出力と前記制御回路からの更新デ
ータとを加算する第1の加算回路と、 前記制御回路に入力される命令がインデックスポインタ
の更新命令の場合に前記制御回路から出力される前記第
3の制御信号により前記第1の加算回路の出力を記憶
し、記憶内容を前記第1の選択回路にインデックスポイ
ンタとして出力する前記第2のレジスタと、 前記制御回路に入力される命令がベースポインタのロー
ド命令またはベースポインタの更新命令の場合に前記制
御回路から出力される前記第2の制御信号によりロード
または更新されるベースポインタを記憶する前記第1の
レジスタと、 前記制御回路に入力される命令がベースポインタのセー
ブ命令の場合に前記制御回路から出力される前記第4の
制御信号により前記第1のレジスタの内容をセーブする
ために記憶する前記第3のレジスタと、 前記制御回路に入力される命令がベースポインタのロー
ド命令またはベースポインタの更新命令の場合に前記制
御回路から出力される前記第4の制御信号により前記制
御回路に入力される命令がベースポインタのロード命令
の場合に前記第3のレジスタの出力を選択し、前記制御
回路に入力される命令がベースポインタの更新命令の場
合に前記第1の加算回路の出力を選択し、選択された出
力を前記第1のレジスタにベースポインタとして出力す
る第2の選択回路と、 前記第1のレジスタの内容と前記第2のレジスタの内容
とを加算しアドレス信号を生成する第2の加算回路とを
備え、 前記プログラミング命令が前記第1のレジスタの内容と
前記第3のレジスタの内容を入れ換える指示である場合
に、前記第2の制御信号と前記第4の制御信号が供給さ
れ、前記第1のレジスタ及び前記第3のレジスタ相互の
ロード及びセーブを同時に実行することを特徴とする。
The address generation circuit of the present invention includes first and second registers that respectively store a base pointer and an index pointer that can be updated by a programming instruction, and a third register that temporarily stores the base pointer. In an address generation circuit that generates a necessary address by the sum of the index pointer and the index pointer, an index pointer or base pointer update instruction, a base pointer save instruction or a load instruction is input, and the first and second instructions are input based on these instructions. , Third, fourth
A control circuit for generating the control signal and the update data, and an object to be updated by the first control signal output from the control circuit when an instruction input to the control circuit is an update instruction of an index pointer or a base pointer. A first selection circuit for selecting an index pointer or a base pointer to be operated, a first addition circuit for adding the output of the first selection circuit and the update data from the control circuit, and the input to the control circuit When the instruction is an index pointer update instruction, the output of the first addition circuit is stored by the third control signal output from the control circuit, and the stored content is output to the first selection circuit as an index pointer. And a second pointer for loading, or an instruction input to the control circuit is a base pointer load instruction or a base pointer. Update instruction, the first register for storing the base pointer loaded or updated by the second control signal output from the control circuit; and the instruction input to the control circuit is the save of the base pointer. In the case of an instruction, the third register is stored to save the contents of the first register by the fourth control signal output from the control circuit, and the instruction input to the control circuit is a base pointer. Output of the third register when the instruction input to the control circuit by the fourth control signal output from the control circuit in the case of the load instruction of the base pointer or the update instruction of the base pointer is the load instruction of the base pointer. Select the output of the first adder circuit when the instruction input to the control circuit is a base pointer update instruction, and select A second selection circuit for outputting the generated output to the first register as a base pointer, and a second addition circuit for adding the contents of the first register and the contents of the second register to generate an address signal. A circuit, wherein the second control signal and the fourth control signal are supplied when the programming instruction is an instruction to exchange the contents of the first register and the contents of the third register, and It is characterized in that the first register and the third register are simultaneously loaded and saved.

〔作用〕 上記(2),(3)式のフィルタ計算を行う際のx1
(t),x2(t)のメモリアクセスについてその作用を
述べる。時刻tOのy1(tO)を計算するのに必要なデータ
x1(tO),x1(tO−1),x1(tO−2),x1(tO−3)の
アクセスはその時のベースポインタの値をBP1とする
と、インデックスポインタIPを0,−1,−2,−3と1つず
つ減らしていき、BP1+IPでメモリのアドレスを示すこ
とにより参照できる。ここで、BP1は第1のレジスタに
格納されているものとする。y1(tO)の計算終了後、BP
1を1増やし、BP1=BP1+1とする。この場合、同時にI
Pはゼロクリアされる。次に、時刻tOのy2(tO)を計算
する時、第1のレジスタにx2(t)に属するベースポイ
ンタの値BP2を記憶している第3のレジスタの内容をロ
ードする。同時に、第3のレジスタに第1のレジスタの
内容(BP1)を格納する。y2(tO)を計算するのに必要
なデータx2(tO),x2(tO−1),x2(tO−2),x2(tO
−3)はBP2+IP(IP=0,−1,−2,−3)で参照するこ
とができる。計算終了後、BP2を1増やしてBP2=BP2+
1とする。第1のレジスタ及び第3のレジスタ相互のロ
ード及びセーブの繰り返しにより、メモリを2分割する
ようなアドレッシングが可能となる。また、第1のレジ
スタ及び第3のレジスタ相互のロードおよびセーブは同
時に行なわれ、1インストラクションで分割操作が可能
であるため処理能力を低下させることはない。なお、レ
ジスタ相互の内容入れ換えは入力データにより制御信号
を発生する制御回路によって制御されるため、レジスタ
の数を増やすことでメモリの多分割が可能となり、より
高度なアドレッシングを行える。
[Operation] x1 when performing the filter calculation of the above formulas (2) and (3)
The operation of the memory access of (t) and x2 (t) will be described. Data required to calculate y1 (t O ) at time t O
The access of x1 (t O ), x1 (t O −1), x1 (t O −2), x1 (t O −3) is 0, − when the base pointer value at that time is BP1. It can be referenced by decrementing by 1, -2, -3 by 1 and showing the memory address with BP1 + IP. Here, it is assumed that BP1 is stored in the first register. After calculation of y1 (t O ), BP
Increase 1 by 1 to set BP1 = BP1 + 1. In this case, I at the same time
P is cleared to zero. Next, when calculating y2 (t O ) at time t O , the contents of the third register storing the value BP2 of the base pointer belonging to x2 (t) are loaded into the first register. At the same time, the content (BP1) of the first register is stored in the third register. Data required to calculate y2 (t O ) x2 (t O ), x2 (t O -1), x2 (t O -2), x2 (t O
-3) can be referred to as BP2 + IP (IP = 0, -1, -2, -3). After calculation, increase BP2 by 1 and BP2 = BP2 +
Set to 1. By repeatedly loading and saving the first register and the third register, it is possible to perform addressing such that the memory is divided into two. The first register and the third register are loaded and saved at the same time, and the division operation can be performed with one instruction, so that the processing capability is not reduced. Since the content exchange between the registers is controlled by the control circuit that generates the control signal according to the input data, the memory can be divided into multiple sections by increasing the number of registers, and more advanced addressing can be performed.

〔実施例〕〔Example〕

次に、本発明の実施例について図面を参照して説明す
る。
Next, embodiments of the present invention will be described with reference to the drawings.

一実施例を示す第1図を参照すると、加算回路2,8、選
択回路3,4、レジスタ5,6,7は8ビット構成である。制御
回路1は入力端子9からデータ100を受ける。データ100
はコマンドデータ2ビットと加算回路2へのデータ101
の8ビットとの計10ビットで構成されているものとす
る。制御回路1に入力されたコマンドデータが00(B:2
進数)の場合、レジスタ5,7の内容を変更しないモード
である。つまり、制御回路1からの制御信号102,104は
レジスタ5,7に対してディスエーブル制御を行なう。コ
マンドデータが01(B)の場合、レジスタ5の内容を更
新するモードである。選択回路4がレジスタ5からの信
号107を選択するように、制御信号105が制御回路1から
出力される。加算回路2への入力信号106としてレジス
タ5の内容が選択出力される。信号106は更新データ101
と加算回路2において加算される。加算回路2からの信
号109は選択回路3で選択されてレジスタ5に出力され
る。この時、制御信号102がイネーブル制御を行ない、
レジスタ5に更新された値の信号110が取り込まれる。
コマンドデータが10(B)の場合、レジスタ6の内容を
更新するモードである。このモードにおいては、選択回
路4がレジスタ6からの信号108を選択出力するように
制御回路1から制御信号105が出力される。加算回路2
への信号106はレジスタ6の内容の信号108となる。信号
106は更新データ101と加算回路2において加算され、加
算結果の信号109がレジスタ6に出力される。この時、
制御信号103はイネーブル制御を行い、レジスタ6には
更新された値の信号109が取り込まれる。コマンドデー
タが11(B)の場合、レジスタ5の内容とレジスタ7の
内容とを入れ換えるモードである。このモードにおいて
は、制御回路1は制御信号104によりレジスタ7に対し
てイネーブル制御を行いレジスタ5からの信号107をレ
ジスタ7に格納させる。これと同時に、入れ換え前のレ
ジスタ7の内容111は選択回路3に入力される。選択回
路3は制御信号104によりレジスタ7の内容111を選択す
るように制御される。レジスタ7の内容111がレジスタ
5に入力され、制御信号102によるイネーブル制御によ
りレジスタ5に格納される。これにより、レジスタ5と
レジスタ7との内容は同時に入れ換えられる。レジスタ
5及びレジスタ6からの信号107,108を入力とする加算
回路8はこれらの信号107,108の和を求め実行アドレス
信号112として出力端子10からメモリに出力する。した
がって、レジスタ5及びレジスタ6の記憶内容の和によ
り実行アドレス信号を生成する場合と仮想時にレジスタ
6及びレジスタ7の記憶内容の和で実行アドレス信号を
生成する場合とをプログラマブルに実現でき、メモリの
効率的な分割使用を可能にする。
Referring to FIG. 1 showing an embodiment, the adder circuits 2 and 8, the selection circuits 3 and 4, and the registers 5, 6 and 7 have an 8-bit configuration. The control circuit 1 receives the data 100 from the input terminal 9. Data 100
Is the command data 2 bits and the data 101 to the adder circuit 2
8 bits and 10 bits in total. The command data input to the control circuit 1 is 00 (B: 2
In the case of a decimal number, this is a mode in which the contents of registers 5 and 7 are not changed. That is, the control signals 102 and 104 from the control circuit 1 perform the disable control for the registers 5 and 7. When the command data is 01 (B), it is a mode for updating the contents of the register 5. The control signal 105 is output from the control circuit 1 so that the selection circuit 4 selects the signal 107 from the register 5. The content of the register 5 is selectively output as the input signal 106 to the adder circuit 2. Signal 106 is update data 101
Is added in the addition circuit 2. The signal 109 from the adder circuit 2 is selected by the selection circuit 3 and output to the register 5. At this time, the control signal 102 performs the enable control,
The signal 110 having the updated value is fetched in the register 5.
When the command data is 10 (B), it is a mode for updating the contents of the register 6. In this mode, the control circuit 1 outputs the control signal 105 so that the selection circuit 4 selectively outputs the signal 108 from the register 6. Adder circuit 2
The signal 106 to is the signal 108 of the contents of the register 6. signal
106 is added to the update data 101 in the adder circuit 2, and the addition result signal 109 is output to the register 6. This time,
The control signal 103 performs enable control, and the signal 109 having the updated value is fetched in the register 6. When the command data is 11 (B), the contents of the register 5 and the contents of the register 7 are exchanged. In this mode, the control circuit 1 controls the register 7 by the control signal 104 to enable the signal 107 from the register 5 to be stored in the register 7. At the same time, the contents 111 of the register 7 before replacement are input to the selection circuit 3. The selection circuit 3 is controlled by the control signal 104 so as to select the content 111 of the register 7. The content 111 of the register 7 is input to the register 5 and stored in the register 5 under the enable control by the control signal 102. As a result, the contents of the register 5 and the register 7 are interchanged at the same time. The adder circuit 8 which receives the signals 107 and 108 from the register 5 and the register 6 calculates the sum of these signals 107 and 108 and outputs the sum as the execution address signal 112 from the output terminal 10 to the memory. Therefore, it is possible to programmatically realize the case where the execution address signal is generated by the sum of the storage contents of the register 5 and the register 6 and the case where the execution address signal is generated at the virtual time by the sum of the storage contents of the register 6 and the register 7. Enables efficient split use.

次に、上記(2),(3)式のフィルタ計算を行う場合
について回路動作を説明する。なお、ここではベースポ
インタBPはレジスタ5に、かつインデックスポインタIP
はレジスタ6に対応するものとする。上記(2),
(3)式の計算に必要な入力データx1(t),x2(t)
のメモリ上の格納アドレスを第2図に示す。第2図に示
すように、メモリ上のOF(H:16進数)番地にx1(t),O
E(H)番地にx1(t−1),OD(H)番地にx1(t−
2),OC(H)番地にx1(t−3),8F(H)番地にx2
(t),8E(H)番地にx2(t−1),8D(H)番地にx2
(t−2),8C(H)番地にx2(t−3)がそれぞれ格
納されているものとする。また、ベースポインタを示す
レジスタ5にはOF(H),インデックスポインタを示す
レジスタ6にはOO(H),レジスタ7には8F(H)がそ
れぞれ格納されているものとする。
Next, the circuit operation in the case of performing the filter calculation of the above formulas (2) and (3) will be described. Here, the base pointer BP is set to the register 5 and the index pointer IP
Corresponds to the register 6. Above (2),
Input data x1 (t), x2 (t) required for calculating equation (3)
FIG. 2 shows the storage addresses on the memory. As shown in Fig. 2, x1 (t), O at OF (H: hexadecimal) on the memory
X1 (t-1) at address E (H), x1 (t- at address OD (H)
2), x1 (t-3) at OC (H), x2 at 8F (H)
X2 at address (t), 8E (H) x2 at address (t-1), 8D (H)
It is assumed that x2 (t-3) is stored in the addresses (t-2) and 8C (H). Further, it is assumed that the register 5 indicating the base pointer stores OF (H), the register 6 indicating the index pointer stores OO (H), and the register 7 stores 8F (H).

まず、(1)式を計算する場合を考える。x1(t)は入
力データ100のコマンドをOO(B)とすることにより、
レジスタ5の内容OF(H)とレジスタ6の内容OO(H)
とを加算したアドレス信号112の値OF(H)で参照でき
る。次に、X1(t−1)は入力コマンド10(B)及び更
新データFF(H)とすることにより、加算回路2の入力
信号101はFF(H)、もう一つの入力信号106はレジスタ
6の内容OO(H)が選択され、その和出力信号109はFF
(H)となりレジスタ6に格納される。この結果、実行
アドレス信号112はレジスタ5の内容OF(H)とレジス
タ6の内容FF(H)との和出力OE(H)となり、x1(t
−1)を参照することができる。この手順を繰り返すこ
とにより、レジスタ6の内容はFF(H)→FE(H)→FD
(H)に更新され、実行アドレス信号112はOE(H)→O
D(H)→OC(H)となり、x1(t−2),x1(t−3)
を参照することができる。ここで、時刻t=tO+1の計
算を行なうための前準備としてレジスタの内容を更新し
ておく。入力コマンドを01(B)及び更新データを01
(H)とすると、加算回路2の入力信号101の内容は01
(H)、もう一方の入力信号106はレジスタ5の内容OF
(H)が選択され、和出力信号109の内容10(H)がレ
ジスタ5に格納されると同時に制御信号103によりレジ
スタ6の内容はゼロクリアされる。
First, consider the case where the formula (1) is calculated. x1 (t) is the command of input data 100 is OO (B),
Contents of register 5 OF (H) and contents of register 6 OO (H)
It can be referred to by the value OF (H) of the address signal 112 obtained by adding and. Next, X1 (t-1) is the input command 10 (B) and the update data FF (H), so that the input signal 101 of the adder circuit 2 is FF (H) and the other input signal 106 is the register 6 Content OO (H) is selected and the sum output signal 109 is FF
It becomes (H) and stored in the register 6. As a result, the execution address signal 112 becomes the sum output OE (H) of the content OF (H) of the register 5 and the content FF (H) of the register 6, and x1 (t
-1) can be referred to. By repeating this procedure, the contents of register 6 become FF (H) → FE (H) → FD.
Is updated to (H), and the execution address signal 112 is OE (H) → O
D (H) → OC (H) becomes x1 (t-2), x1 (t-3)
Can be referred to. Here, the contents of the register are updated as a preparation for the calculation at time t = t O +1. Input command 01 (B) and update data 01
If it is (H), the content of the input signal 101 of the adding circuit 2 is 01.
(H), the other input signal 106 is the contents OF of register 5 OF
(H) is selected, the content 10 (H) of the sum output signal 109 is stored in the register 5, and at the same time, the content of the register 6 is cleared to zero by the control signal 103.

次に、(2)式の計算を行なう場合を考える。入力コマ
ンドを11(B)とすると、レジスタ5の内容10(H)は
レジスタ7に格納され、同時に選択回路3には以前のレ
ジスタ7の内容8F(H)が入力され、制御信号104によ
りレジスタ7の内容の信号111が選択された後、レジス
タ5には8F(H)が格納される。以後、(1)式を計算
する場合と同様の手順で入力コマンド00(B)でx2
(t)を参照することができ、入力コマンド10(B)及
び更新データFF(H)を繰り返すことによりレジスタ6
の内容はFF(H)→FE(H)→FD(H)に更新され、レ
ジスタ5の内容8F(H)との和で示される実行アドレス
信号112は8E(H)→8D(H)→8C(H)となり、x2
(t−1),x2(t−2),x2(t−3)をそれぞれ参照
することができる。ここで、(1)式の計算と同様に時
刻t=tO+1の計算のため、レジスタ5の内容を同一手
順により8F(H)→90(H)に更新しておく。
Next, consider the case where the calculation of the equation (2) is performed. When the input command is 11 (B), the content 10 (H) of the register 5 is stored in the register 7, and at the same time, the content 8F (H) of the previous register 7 is input to the selection circuit 3, and the control signal 104 causes the register 8 to register. After the signal 111 having the contents of 7 is selected, 8F (H) is stored in the register 5. After that, input command 00 (B) x2 in the same procedure as when calculating formula (1).
(T) can be referred to and the register 6 can be obtained by repeating the input command 10 (B) and the update data FF (H).
Contents are updated to FF (H) → FE (H) → FD (H), and the execution address signal 112 indicated by the sum with the contents 8F (H) of the register 5 is 8E (H) → 8D (H) → 8C (H), x2
(T-1), x2 (t-2), x2 (t-3) can be referred to respectively. Here, a renewal (1) for formula calculations as well as the calculation of the time t = t O +1, the content of the register 5 by the same procedure 8F (H) → 90 (H ).

時刻t=tO+1における(1)式を計算する場合につい
て考えると、この計算に属するベースポインタはレジス
タ7に格納してあるため、コマンド11(B)によりレジ
スタ7の内容10(H)をレジスタ5にロードすると同時
にレジスタ5の内容90(H)をレジスタ7に格納する。
以後、前述の手順により時刻t=tO+1における計算に
必要な入力データx1(t),x1(t−2),x1(t−3)
をそれぞれ参照することができる。以後同様な手順によ
り、各時刻における(1),(2)式の計算を行うこと
ができ、メモリの分割作用が可能になる。
Considering the case of calculating the formula (1) at time t = t O +1, the base pointer belonging to this calculation is stored in the register 7, and therefore the command 10 (B) causes the content 10 (H) of the register 7 to be changed. The content 90 (H) of the register 5 is stored in the register 7 at the same time when the register 5 is loaded.
After that, the input data x1 (t), x1 (t-2), x1 (t-3) necessary for the calculation at the time t = t O +1 is calculated by the above-mentioned procedure.
Can be referred to respectively. Thereafter, by the same procedure, the equations (1) and (2) at each time can be calculated, and the dividing operation of the memory becomes possible.

〔発明の効果〕〔The invention's effect〕

以上説明したように本発明によれば、ベースポインタの
内容を記憶しておくレジスタと、このレジスタの内容と
現在のベースポインタの内容を更新したデータとを選択
する選択回路とを設けることにより、メモリの効率的な
分割使用を可能にするアドレス信号の生成を行なえる。
As described above, according to the present invention, by providing the register for storing the contents of the base pointer and the selection circuit for selecting the contents of this register and the data obtained by updating the contents of the current base pointer, It is possible to generate an address signal that enables efficient divided use of the memory.

また、メモリを分割使用するための選択回路の切換え動
作を1インストラクション以内で行なうことができるた
め、メモリを多分割使用したい場合にはレジスタの数を
増やすだけで対応でき、この結果最小規模の回路の追加
によりプロセッサの処理能力を低下させることなくアド
レス信号の生成を行なえる。
Also, since the switching operation of the selection circuit for dividing and using the memory can be performed within one instruction, it is possible to use the memory in multiple division only by increasing the number of registers. As a result, the circuit of the smallest scale can be used. By adding, the address signal can be generated without deteriorating the processing capability of the processor.

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

第1図は本発明の一実施例を示す構成図、第2図は第1
図の動作を説明するためのメモリの状態を示す図であ
る。 1……制御回路、2,8……加算回路、3,4……選択回路、
5,6,7……レジスタ。
FIG. 1 is a block diagram showing an embodiment of the present invention, and FIG.
It is a figure which shows the state of a memory for explaining the operation | movement of a figure. 1 ... control circuit, 2,8 ... adding circuit, 3,4 ... selection circuit,
5,6,7 …… Register.

Claims (1)

【特許請求の範囲】[Claims] 【請求項1】プログラミング命令により更新が可能なベ
ースポインタとインデックスポインタをそれぞれ格納す
る第1及び第2のレジスタと、ベースポインタを一時的
に記憶する第3のレジスタを備え、ベースポインタとイ
ンデックスポインタの和により必要とするアドレスを生
成するアドレス生成回路において、 インデックスポインタまたはベースポインタの更新命
令、ベースポインタのセーブ命令またはロード命令を入
力し、これらの命令に基づいて第1、第2、第3、第4
の制御信号及び更新データを発生する制御回路と、 前記制御回路に入力される命令がインデックスポインタ
またはベースポインタの更新命令の場合に前記制御回路
から出力される前記第1の制御信号により更新対象とす
るインデックスポインタまたはベースポインタを選択す
る第1の選択回路と、 前記第1の選択回路の出力と前記制御回路からの更新デ
ータとを加算する第1の加算回路と、 前記制御回路に入力される命令がインデックスポインタ
の更新命令の場合に前記制御回路から出力される前記第
3の制御信号により前記第1の加算回路の出力を記憶
し、記憶内容を前記第1の選択回路にインデックスポイ
ンタとして出力する前記第2のレジスタと、 前記制御回路に入力される命令がベースポインタのロー
ド命令またはベースポインタの更新命令の場合に前記制
御回路から出力される前記第2の制御信号によりロード
または更新されるベースポインタを記憶する前記第1の
レジスタと、 前記制御回路に入力される命令がベースポインタのセー
ブ命令の場合に前記制御回路から出力される前記第4の
制御信号により前記第1のレジスタの内容をセーブする
ために記憶する前記第3のレジスタと、 前記制御回路に入力される命令がベースポインタのロー
ド命令またはベースポインタの更新命令の場合に前記制
御回路から出力される前記第4の制御信号により前記第
3のレジスタの出力を選択し、前記制御回路に入力され
る命令がベースポインタの更新命令の場合に前記第1の
加算回路の出力を選択し、選択された出力を前記第1の
レジスタにベースポインタとして出力する第2の選択回
路と、 前記第1のレジスタの内容と前記第2のレジスタの内容
とを加算しアドレス信号を生成する第2の加算回路とを
備え、 前記プログラミング命令が前記第1のレジスタの内容と
前記第3のレジスタの内容を入れ換える指示である場合
に、前記第2の制御信号と前記第4の制御信号が供給さ
れ、前記第1のレジスタ及び前記第3のレジスタ相互の
ロード及びセーブを同時に実行することを特徴とするア
ドレス生成回路。
1. A base pointer and an index pointer, comprising first and second registers for respectively storing a base pointer and an index pointer which can be updated by a programming instruction, and a third register for temporarily storing the base pointer. In an address generation circuit for generating a required address by the sum of the following, an index pointer or base pointer update command, a base pointer save command or a load command is input, and the first, second, and third commands are input based on these commands. , 4th
A control circuit for generating the control signal and the update data, and an object to be updated by the first control signal output from the control circuit when an instruction input to the control circuit is an update instruction of an index pointer or a base pointer. A first selection circuit for selecting an index pointer or a base pointer to be operated, a first addition circuit for adding the output of the first selection circuit and the update data from the control circuit, and the input to the control circuit When the instruction is an index pointer update instruction, the output of the first addition circuit is stored by the third control signal output from the control circuit, and the stored content is output to the first selection circuit as an index pointer. And a second pointer for loading, or an instruction input to the control circuit is a base pointer load instruction or a base pointer. Update instruction, the first register for storing the base pointer loaded or updated by the second control signal output from the control circuit; and the instruction input to the control circuit is the save of the base pointer. In the case of an instruction, the third register is stored to save the contents of the first register by the fourth control signal output from the control circuit, and the instruction input to the control circuit is a base pointer. Of the load instruction or the base pointer update instruction, the fourth control signal output from the control circuit selects the output of the third register, and the instruction input to the control circuit updates the base pointer. A second output that selects the output of the first adder circuit in the case of an instruction and outputs the selected output to the first register as a base pointer A selection circuit; and a second adder circuit for adding the contents of the first register and the contents of the second register to generate an address signal, wherein the programming instruction includes the contents of the first register and the contents of the first register. When it is an instruction to replace the contents of the third register, the second control signal and the fourth control signal are supplied, and the first register and the third register are simultaneously loaded and saved. An address generation circuit characterized by:
JP27471586A 1986-11-17 1986-11-17 Address generation circuit Expired - Lifetime JPH07107969B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP27471586A JPH07107969B2 (en) 1986-11-17 1986-11-17 Address generation circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27471586A JPH07107969B2 (en) 1986-11-17 1986-11-17 Address generation circuit

Publications (2)

Publication Number Publication Date
JPS63127611A JPS63127611A (en) 1988-05-31
JPH07107969B2 true JPH07107969B2 (en) 1995-11-15

Family

ID=17545559

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27471586A Expired - Lifetime JPH07107969B2 (en) 1986-11-17 1986-11-17 Address generation circuit

Country Status (1)

Country Link
JP (1) JPH07107969B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2692384B2 (en) * 1990-12-29 1997-12-17 日本電気株式会社 Address generation circuit

Also Published As

Publication number Publication date
JPS63127611A (en) 1988-05-31

Similar Documents

Publication Publication Date Title
EP0551931B1 (en) Digital signal processor comprising address generator accessing data stored in bidirectional space of data memory
JPH0443773A (en) Arithmetic circuit
JPH07107969B2 (en) Address generation circuit
JP2551167B2 (en) Microcomputer
JP3305406B2 (en) Program-controlled processor
JPH10320524A (en) Look-up table device and image generator
JP2592979B2 (en) Integrated circuit device for signal processing
JP3223560B2 (en) Waveform data reading device
JPS6115233A (en) Multiplier
JPH0221774Y2 (en)
JP3130631B2 (en) Digital signal processor
JP2741869B2 (en) Inverse coordinate transformation processor
JPS63111534A (en) Semiconductor integrated circuit
JP3124361B2 (en) Memory data loading device
JP3112676B2 (en) Shift operation circuit
JP3193830B2 (en) Arithmetic circuit
JPH02187374A (en) Color correcting circuit
JPH02222066A (en) Vector processor
JPH0877003A (en) Dsp program parallel process controller
JPS62241039A (en) Logic simulator
JPH0562796B2 (en)
JPS60107151A (en) Vector expanding system
JPH01216426A (en) Microcomputer
JPH04107731A (en) Multiplication circuit
JPH0119293B2 (en)