JPS6211970A - Address generating circuit - Google Patents

Address generating circuit

Info

Publication number
JPS6211970A
JPS6211970A JP15202085A JP15202085A JPS6211970A JP S6211970 A JPS6211970 A JP S6211970A JP 15202085 A JP15202085 A JP 15202085A JP 15202085 A JP15202085 A JP 15202085A JP S6211970 A JPS6211970 A JP S6211970A
Authority
JP
Japan
Prior art keywords
counter
pointer
base
index
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
JP15202085A
Other languages
Japanese (ja)
Inventor
Hidenobu Harasaki
原崎 秀信
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 JP15202085A priority Critical patent/JPS6211970A/en
Publication of JPS6211970A publication Critical patent/JPS6211970A/en
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)

Abstract

PURPOSE:To produce an address suited to a virtual shift with small instruction length by providing a means which clears the 2nd counter to '0' with the control signal of the 1st counter and an adder which adds the outputs of both counters. CONSTITUTION:When the shift average filtering is carried out, a base counter load command is supplied to a control part 4 via control input terminals 7, 8 and 9 for a base counter 1 which produces first the value of a base pointer. The part 4 delivers a load command to the counter 1 and a clear instruction to an index counter 2. Then the counter 1 is set to the data 0Fh applied to a data bus input terminal 6 with the rise of the clock applied to a clock input terminal 5. While the counter 2 is cleared. Both outputs 0Fh and 00h of counters 1 and 2 are added together by an adder 3 and an effective address 0Fh is delivered. Thus the reference is possible to the present input sample.

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明はディジタル信号9n、環プロセッサのアドレス
発生回路に関するものである。
DETAILED DESCRIPTION OF THE INVENTION (Field of Industrial Application) The present invention relates to a digital signal 9n and an address generation circuit for a ring processor.

(従来の技術の間圧点) ディジタル信号処理プロセッサは一般に入力部、演算部
、記憶部、制御部などで構成され、モデム、ディジタル
フィルタ、コーデック(CODEC)。
(Previous Technology Point) A digital signal processing processor is generally composed of an input section, an arithmetic section, a storage section, a control section, etc., and includes a modem, a digital filter, and a codec (CODEC).

エコーキャンセラ、音声認識、音声合成、音声分析等の
種々の分野に用いられている。
It is used in various fields such as echo cancellers, speech recognition, speech synthesis, and speech analysis.

これらの応用分野、特にフィルタリングにおいて、過去
数サンプルのデータに演算を施す時、標本化されたデー
タを111L位時間毎にメモリ」−で移動させる必要が
ある。しかし現在の信号処理プロセッサのアーキテクチ
ャではメモリ間転送は非常に時間がかかるため、実際は
仮想シフト(バーチャルシフト)によってデータは動か
さずにデータポインタを動かすことで実現する。第2図
は仮想シフトの概念を説明する図である。
In these application fields, especially in filtering, when performing calculations on past several sample data, it is necessary to move the sampled data in the memory every 111L times. However, with current signal processing processor architectures, memory-to-memory transfers take a very long time, so they are actually achieved by moving data pointers without moving the data using virtual shifts. FIG. 2 is a diagram explaining the concept of virtual shift.

例えば、 y(t)=(x(t−3)十x(t−2)+x(t−1
)+x(t))/4   (1)で表わされる移動平均
フィルタの場合、ある時刻tの出力y(t)を計算する
ために過去3サンプルx(t−3)。
For example, y(t)=(x(t-3) x(t-2)+x(t-1
)+x(t))/4 In the case of the moving average filter represented by (1), the past three samples x(t-3) are used to calculate the output y(t) at a certain time t.

x(t−2)、x(t−1)と現在のデータx(t)が
メモリーににあるとする。そして、その時ポインタDP
はx(t)を指しているものとする。この時、アドレッ
シングモードとしてポインタDPによる間接アドレッシ
ングが可能であれば、各サンプルはこのポインタT)P
を−1ずつ歩進することにより読み出すことができる。
Assume that x(t-2), x(t-1) and current data x(t) are in memory. And then pointer DP
is assumed to point to x(t). At this time, if indirect addressing using pointer DP is possible as the addressing mode, each sample is
It can be read by incrementing by -1.

しかし、ポインタDPを動かしてしまったために、時刻
t+1の入力データx(t+1)を格納するアドレスは
別にもう一つのポインタを持つか、また計算に用いたデ
ータの個数より別途計算しなければならない。別にもう
一つのポインタを持った場合は、新しいデータの格納の
ためそのポインタの値を歩進し、先のポインタに初期デ
ータとして別のポインタの値をロードするという2段階
の操作が必要である。またポインタ10の初期データを
データ個数より別途計算する場合は、ポインタ10から
nを引くという複雑な回路を設けなければならない。
However, since the pointer DP has been moved, the address for storing the input data x(t+1) at time t+1 must have another pointer or must be calculated separately based on the number of data used in the calculation. If you have another pointer, a two-step operation is required: incrementing the value of that pointer to store new data, and loading the value of the other pointer as initial data into the previous pointer. . Further, if the initial data of the pointer 10 is to be calculated separately from the number of data, a complicated circuit must be provided to subtract n from the pointer 10.

このような欠点を解決する方法として、富士通の信号処
理プロセッサ(MB8764汎用ディジタル信号処理用
LSIユーザ・マニュアル昭和59年4月発行)はポイ
ンタの値とインストラクションのリテラルフィードの和
によって実効アドレスを出力するいわゆるインデックス
修飾アドレッシングを採用している。インデックス修飾
アドレッシングによって命令実行という点では最大効率
が得られるが、インストラクション中にポインタからの
オフセット値を与えるリテラルフィールドを必要とする
ために、全体のインストラクション長が長くなってしま
うという別の欠点を持つ。例えば、一つのプロセッサに
一つのメモリしか持たない場合はよいが、数個のメモリ
に対して個々に11標のポインタ機構を持つシステムの
場合は、それぞれにインストラクションフィールドが必
要でありインストラクション長が非常に長くなる。
As a way to solve these drawbacks, Fujitsu's signal processing processor (MB8764 General Purpose Digital Signal Processing LSI User Manual, published in April 1982) outputs an effective address by the sum of the pointer value and the literal feed of the instruction. It uses so-called index-qualified addressing. Although index-qualified addressing provides maximum efficiency in terms of instruction execution, it has the additional disadvantage of increasing the overall instruction length by requiring a literal field to provide an offset value from the pointer during the instruction. . For example, it is fine if one processor has only one memory, but if the system has a pointer mechanism with 11 points for several memories, an instruction field is required for each, and the instruction length becomes very large. becomes longer.

インストラクション長を短く抑えるには従来方法として
2つのポインタを持つアドレス発生回路が利用できる。
In order to keep the instruction length short, an address generation circuit having two pointers can be used as a conventional method.

この場合、2つのポインタを別々に用いる方法と、2つ
のポインタの値の和によってメモリを参照する方法があ
る。汎用のマイクロコンピュータで゛あるインテル80
86(ザ8086ブツク産報出版1983年3月発行)
では、前者の2ポインタとしてSIとDIを持ち、後者
の2ポインタとしてBX +Sr等の間接アドレッシン
グモードをもつ。前者の2ポインタはデータのメモリ間
転送等に便利であるが、信号処理プロセッサのアーキテ
クチャはメモリ間転送ができるだけ少なくするようにな
っていることと矛盾する。先に示したバーチャルシフト
は後者の2ポインタによる間接アドレッシングによって
比較的効率よく実現される。まず、現在の入力データを
示すポインタ値をベースポインタであるBXに持たせ、
過去のデータの参照はインデックスポインタであるSI
をゼロから−1ずつ歩進して参照する。このアドレッシ
ング方法によれば、一つの出力を得るためのプログラム
はインデックスポインタSIをゼロより順次変更するの
みでよく、データのメモリ上の実際のアドレスには依存
しなくなる。
In this case, there are a method of using two pointers separately and a method of referencing the memory by the sum of the values of the two pointers. Intel 80, a general-purpose microcomputer
86 (published by The 8086 Book Sanpo Publishing in March 1983)
In this case, the former two pointers are SI and DI, and the latter two pointers have an indirect addressing mode such as BX+Sr. The former two-pointer is convenient for transferring data between memories, but it contradicts the fact that the architecture of signal processing processors is designed to minimize the number of transfers between memories. The virtual shift described above is relatively efficiently realized by the latter indirect addressing using two pointers. First, set the base pointer BX to have a pointer value indicating the current input data,
Reference to past data is an index pointer SI
is referenced by incrementing by -1 from zero. According to this addressing method, a program for obtaining one output only needs to sequentially change the index pointer SI from zero, and is no longer dependent on the actual address of data in memory.

そして一つの出力が計算できた後にベースポインタであ
るBXを一つ歩進し、インデックスポインタSIをゼロ
にすることでまた次の出力の計算が行なえる。汎用のマ
イクロコンピュータではこの方法によってうまく実現さ
れるが、信号処理用のマイクロプロセッサはその演算の
高速化のため、パイプラインアーキテクチャを採用して
おり、途切れることなくデータを演算部に供給すること
がプロセッサの能力を最大限に活用する方法である。
After one output has been calculated, the base pointer BX is incremented by one and the index pointer SI is set to zero, so that the next output can be calculated. This method is successfully implemented in general-purpose microcomputers, but signal processing microprocessors use a pipeline architecture to speed up calculations, making it possible to supply data to the calculation unit without interruption. This is a way to make the most of the processor's capabilities.

このため、先のBX+STのアドレッシングによるフィ
ルタリングの例において、一つの出力の計算が終了した
時点でベースポインタBXとインデックスポインタS■
のそれぞれを更新する必要があることが問題点となる。
Therefore, in the previous example of filtering using BX+ST addressing, when the calculation of one output is completed, the base pointer BX and index pointer S
The problem is that each of them needs to be updated.

(発明の目的) 本発明の目的は、インストラクション長を短くでき、か
つ前記バーチャルシフトを効率よく実現するアドレス発
生回路を提供することである。
(Object of the Invention) An object of the present invention is to provide an address generation circuit that can shorten the instruction length and efficiently implement the virtual shift.

(発明の構成) 本発明は、第1のカウンタと、第2のカウンタと、前記
第1のカウンタの制御信号により前記第2のカウンタの
内容をゼロにクリアする手段と、前記第1のカウンタの
出力と前記第2のカウンタの出力を加算する加算器によ
って少なくとも構成される。
(Structure of the Invention) The present invention includes a first counter, a second counter, means for clearing the contents of the second counter to zero by a control signal of the first counter, and and the output of the second counter.

(発明の原理) 先に(1)式で示した移動平均フィルタリングを行なう
際のメモリアクセスの順序の一例を第3図に示す。y(
t)の計算の時点では、現在の入力サンプルx(t)を
2番地に格納すると共に過去3サンプルの値、x(t−
1)、x(t−2)、x(t−3)を順に参照して累算
する。次にはy(t+1)の計算のためにアドレスをx
(t+1)を格納すべきZ+1番地に移動し、入力サン
プルx(t+1.)を入力して格納し、同様にx(t)
、x(t−11x(t−2)を順に参照して累算する。
(Principle of the Invention) FIG. 3 shows an example of the order of memory access when performing the moving average filtering shown in equation (1) above. y(
t), the current input sample x(t) is stored at address 2, and the values of the past three samples, x(t-
1), x(t-2), and x(t-3) are sequentially referenced and accumulated. Next, to calculate y(t+1), set the address to x
Move (t+1) to address Z+1 where it should be stored, input and store the input sample x(t+1.), and similarly store x(t).
, x(t-11x(t-2)) in order.

このようなメモリアクセスにおいて、ある時刻の出力を
計算するのに必要なメモリーにのサンプルの先頭番地(
y(t)の計算においてはx(t)、 y(t+1.)
においてはx(t+1.)、同様に、y7t+2.)に
おいてはx(t+2))をベースポインタで示し、その
残りのサンプルについてはベースポインタからのオフセ
ットを与えるインデックスポインタによってベースポイ
ンタの値を修飾することによって参照する。このような
2つのポインタの和による間接アドレッシングでは、は
とんどのステップではインデックスポインタの更新のみ
が行なわれている。また、ベースポインタを変更した場
合は、インデックスポインタをゼロにすることが多い。
In such memory access, the starting address of the sample in the memory required to calculate the output at a certain time (
In calculating y(t), x(t), y(t+1.)
For x(t+1.), similarly, for y7t+2. ), x(t+2)) is indicated by a base pointer, and the remaining samples are referenced by modifying the value of the base pointer with an index pointer giving an offset from the base pointer. In such indirect addressing using the sum of two pointers, only the index pointer is updated in most steps. Furthermore, when the base pointer is changed, the index pointer is often set to zero.

このことに着目して、ベースポインタの値を保持するカ
ウンタの歩進信号とインデックスポインタの値を保持す
るカウンタのクリア端子を接続することで、ベースポイ
ンタを更新した場合は自動的にインデックスポインタは
ゼロクリアされることによってポインタの移動すべてが
ひとつのインストラクションによって実現でき、しかも
2つのポインタの内どちらか−JjL、か変更l−ない
ので゛インストラクション長は1ポインタ分のフィール
ドとどちらのポインタを変更するかを示す1ビットたけ
でよい。
Focusing on this, by connecting the increment signal of the counter that holds the base pointer value to the clear terminal of the counter that holds the index pointer value, the index pointer will automatically change when the base pointer is updated. By clearing to zero, all pointer movements can be realized with one instruction, and since either of the two pointers -JjL, or l- is not changed, the instruction length is the field for one pointer and which pointer is changed. Only one bit is required to indicate.

(実施例) 第1図は、本発明の1実施例を示すブロック図である。(Example) FIG. 1 is a block diagram showing one embodiment of the present invention.

同図において1はベースカウンタ、2はインデックスカ
ウンタ、3は加算器、4は制御部、5はカウンタのクロ
ック入力端子、6はカウンタ値ロードのためのデータバ
ス入力端子、7.8.9は制御入力端子である。ベース
カウンタ1はロード、アップ、ダウンのいずれかの信号
が低レベルである時、クロックの立ち上がりで゛ロード
、+]、−1するアップ・ダウンカウンタで゛、2も同
様にロード、アップ、ダウン、それにクリアつきのアッ
プ・ダウンカウンタである。制御部4については後で詳
細に述べる。
In the figure, 1 is a base counter, 2 is an index counter, 3 is an adder, 4 is a control section, 5 is a clock input terminal of the counter, 6 is a data bus input terminal for loading the counter value, and 7.8.9 is a data bus input terminal for loading the counter value. This is a control input terminal. Base counter 1 is an up/down counter that loads, +], or -1 at the rising edge of the clock when any of the load, up, or down signals is at a low level. , and an up/down counter with a clear function. The control unit 4 will be described in detail later.

先に(1)式で示した移動平均フィルタリングを行なう
場合について第1図の回路で2つのカウンタ、加算器、
及び出力される実効アドレスのビット長がすべて8ビツ
トである場合の動作について第4図をも参照して説明す
る。以後の説明で用いる数値で最後に(h)が付加され
ているものはすべて16進数である。第4図に示すよう
にメモリーLの0F(h)番地にx(t)が、0E(h
)番地にx(t−1)が、on(h)番地にx(t−2
)が、oc(h)番地にx(t−3)があるとする。最
初に、ベースポインタの値を発生するベースカウンタ1
は、制御入力端子7.8.9を介してベースカウンタロ
ード指令が制御部4に入力され、制御部4からはベース
カウンタ1へのロード命令と、インデックカウンタ2へ
のクリア命令が出力され、タロツク入力端子5に加えら
れたクロックの立ち」二がりによって、ベースカウンタ
1ではデータバス入力端子6に加えられたデータ゛’0
F(h)”に設定され、インデックスカウンタ2はクリ
アされる。そしてベースカウンタ1の出力”0F(h)
’”とインデックスカウンタ2の出力”oo(h)”は
加算器3で加算され実効アドレス” ”0F(h)”が
出力されx(t)を参照することができる。次に、制御
入力端子7.8.9を介してインデックスポインタのデ
クリメント指令が入力され、制御部4からはインデック
スカウンタ2へのダウン命令のみが発生され、タロツク
入力端子5に加えられたクロックの立ち上がりによって
、インデックスカウンタ2は一1歩進され、”FF(h
)”になる。そして加算器3ではベースカウンタ1の出
力゛ゝ0F(h)”とインデックスカウンタ2の出力”
FF(h)”を加算し、”0E(h)”を実効アドレス
として出力する。このようにして、x(t−1,)は参
照できる。また次も同様に、制御入力端子7,8゜9を
介してインデックスポインタのデクリメント指令が入力
され、制御部4からはインデックスカウンタ2へのダウ
ン命令のみが発生され、クロック入力端子5に加えられ
たクロックの立ち−にかりによって、インデックスカウ
ンタ2は一1歩進され、”EE(h)”になる。そして
加算器3ではベースカウンタ1の出力”0F(h)とイ
ンデックスカウンタの出力”FE(h)”を加算し、”
0D(h)”を実効アドレスとして出力する。このよう
にして、x(t−2)は参照できる。
When performing the moving average filtering shown in equation (1) above, the circuit shown in Figure 1 uses two counters, an adder,
The operation when the bit length of the output effective address is all 8 bits will be explained with reference to FIG. All numerical values used in the following explanation with (h) added at the end are hexadecimal numbers. As shown in FIG. 4, x(t) is located at address 0F(h) of memory L.
) address x(t-1), on(h) address x(t-2)
) is assumed to have x(t-3) at address oc(h). First, base counter 1 generates the value of the base pointer.
A base counter load command is input to the control unit 4 through the control input terminals 7.8.9, and the control unit 4 outputs a load command to the base counter 1 and a clear command to the index counter 2. Based on the rise and fall of the clock applied to the tarlock input terminal 5, the base counter 1 receives the data ``0'' applied to the data bus input terminal 6.
F(h)" and the index counter 2 is cleared. Then, the output of the base counter 1 is "0F(h)".
``'' and the output ``oo(h)'' of the index counter 2 are added together by an adder 3, and an effective address ``0F(h)'' is output, which allows x(t) to be referenced. Next, a command to decrement the index pointer is input via the control input terminal 7.8.9, and only a down command to the index counter 2 is generated from the control unit 4, and the clock applied to the tarock input terminal 5 is At the rising edge, the index counter 2 is incremented by 11 steps and becomes "FF(h
)".Adder 3 outputs base counter 1's output "0F(h)" and index counter 2's output "0F(h)".
FF(h)" and outputs "0E(h)" as the effective address. In this way, x(t-1,) can be referenced. Similarly, next time, control input terminals 7 and 8 A command to decrement the index pointer is input through the input terminal 9, and only a down command to the index counter 2 is issued from the control unit 4. is incremented by one step and becomes "EE(h)". Then, adder 3 adds the output "0F(h)" of base counter 1 and the output "FE(h)" of the index counter.
0D(h)" as an effective address. In this way, x(t-2) can be referenced.

また次も同様に、制御入力端子7.8.9を介してイン
デックスポインタのデクリメント指令が入力され、制御
部4からはインデックスカウンタ2へのダウン命令のみ
が発生され、タロツク入力端子5に加えられたクロック
の立ち一ヒがりによって、インデックスカウンタ2は一
1歩進され、”FD(h)”になる。そして加算器3で
はベースカウンタ1の出力”0F(b)’”とインデッ
クカウンタの出力”FD(h)”を加算し’oc(h)
”を実効アドレスとして出力する。このようにして、x
(t−3)は参照できる。このようにして、x(t)、
x(t−1)、x(t−2)、x(t−3)は参照され
、これらの総和を計算して4で割ることによって移動平
均フィルタ出力y(t)が求まる。次にy(t+1)の
出力を求めるために、x(t+1)が入力され、メモリ
の’10”h番地に格納する必要がある。そこで、制御
入力端子7゜8.9を介してベースポインタのインクリ
メント指令が入力され、制御部4からはベースカウンタ
1へのアップ信号と、インデックスカウンタ2へのクリ
ア信号が発生され、クロック入力端子5に加えられたク
ロックの立ち上がりによって、ベースカウンタ1の内容
を一歩進し°’] (’1(h)”とすると同時にイン
デックスカウンタ2にクリアを指令する。このクリア信
号によってインデックスカウンタ2の内容は’on(h
)”になり、加算器3ではベースカウンタ1の出力”1
0(h)”インデックスカウンタ2の出力”00(h)
”を加算し、実効アドレス゛’10(h)”を出力する
。この−命令によって、先程までx(t−3)の格納さ
れた’oc(h)”番地を示していたものが、x(t+
1)の格納アドレスである’to(h)”番地に変更さ
れる。以後光と同様にインデックスカウンタ2をデクリ
メントしx(t)、 x(t−1)。
Similarly, a command to decrement the index pointer is input via the control input terminals 7.8.9, and only a down command to the index counter 2 is generated from the control section 4, which is applied to the tally input terminal 5. As the clock rises and falls, the index counter 2 is incremented by 11 steps and becomes "FD(h)". Then, the adder 3 adds the output "0F(b)'" of the base counter 1 and the output "FD(h)" of the index counter to form 'oc(h)'.
” as the effective address. In this way, x
(t-3) can be referred to. In this way, x(t),
x(t-1), x(t-2), and x(t-3) are referenced, and the moving average filter output y(t) is determined by calculating the sum of these and dividing by 4. Next, in order to obtain the output of y(t+1), x(t+1) is input and needs to be stored at address '10''h in the memory. An increment command is input, and the control unit 4 generates an up signal to the base counter 1 and a clear signal to the index counter 2.The contents of the base counter 1 are changed by the rising edge of the clock applied to the clock input terminal 5. At the same time, the index counter 2 is commanded to clear.By this clear signal, the contents of the index counter 2 are set to 'on(h)''.
)”, and in adder 3, the output of base counter 1 is “1”.
0(h)”Output of index counter 2”00(h)
'' is added and the effective address ``10(h)'' is output. With this - instruction, the address that previously indicated 'oc(h)' where x(t-3) was stored is changed to x(t+
1) is changed to 'to(h)', which is the storage address.After that, the index counter 2 is decremented to x(t), x(t-1) in the same way as for light.

x(t−2)を参照することで、y(t+1)の計算に
必要な3つの値を取り出すことができる。
By referring to x(t-2), three values necessary for calculating y(t+1) can be extracted.

第5図は第1図の制御部4の構成例を示す図である。1
00.101は2−4デコーダ(テキサスインストルメ
ンツ社製74LS139あるいはその相当品)、102
はインバータ、103は負論理入力、負論理出力のOR
ゲート(テキサスインストルメンツ社製74.LSl 
1あるいはその相当品)で7.8.9は制御入力端子、
107.1.08゜109はベースカウンタへの制御信
号端子であり、それぞれ、UP、DOWN、LOAD+
、:接続サレ、110.111.。
FIG. 5 is a diagram showing an example of the configuration of the control section 4 shown in FIG. 1. 1
00.101 is a 2-4 decoder (Texas Instruments 74LS139 or equivalent), 102
is an inverter, 103 is an OR of negative logic input and negative logic output.
Gate (Texas Instruments 74.LSl)
1 or its equivalent) and 7.8.9 is the control input terminal,
107.1.08°109 are control signal terminals to the base counter, UP, DOWN, LOAD+, respectively.
, : connection sale, 110.111. .

112、113はインデックスカウンタへの制御信号端
子であり、それぞれ、UP、 DOWN、 LOAD、
 CLEARに接続されている。制御入力端子9は第1
図のベースカウンタ1への制御信号を生成する2−4デ
コーダ100のイネーブル端子にインバータ102を介
して接続され、インデックスカウンタ2への制御信号を
生成する2−4デコータ101のイネーブル端子には直
接接続される。前記制御入力端子9はベースカウンタと
インデックスカウンタの更新を選択するビットであり、
端子9が′0″である時はインデックカウンタが、11
111である時はベースカウンタが選択される。
112 and 113 are control signal terminals to the index counter, respectively UP, DOWN, LOAD,
Connected to CLEAR. Control input terminal 9 is the first
It is connected via an inverter 102 to the enable terminal of a 2-4 decoder 100 that generates a control signal to the base counter 1 in the figure, and directly to the enable terminal of a 2-4 decoder 101 that generates a control signal to the index counter 2. Connected. The control input terminal 9 is a bit for selecting update of the base counter and index counter,
When terminal 9 is '0'', the index counter is 11.
When it is 111, the base counter is selected.

制御入力端子7,8はカウンタのモード制御を示す2ビ
ツトで、+40011の時はカウンタの値は更新されず
(NOP)、 ”01’”の時はデータバスの値をカウ
ンタにロードする(LOAD)、 ”10”′の時はカ
ウンタを一1歩進する(DOWN)、そして’11”の
時はカウンタを+1歩進する(UP)。ベースカウンタ
への制御信号を生成する2−4デコータ1のYl、 Y
2. Y3出力は負論理入力、負論理出力のORゲート
103を介してインデックスカウンタへのクリア信号と
して接続されていて、ベースカウンタの更新が行なわれ
た時は、自動的にインデックスカウンタのクリアが行な
われる。
Control input terminals 7 and 8 are 2 bits that indicate mode control of the counter; when +40011, the counter value is not updated (NOP), and when it is "01", the data bus value is loaded into the counter (LOAD). ), when it is "10", the counter is incremented by one step (DOWN), and when it is "11", the counter is incremented by +1 (UP). 2-4 decoder that generates the control signal to the base counter. 1 Yl, Y
2. The Y3 output is connected as a clear signal to the index counter via an OR gate 103 with negative logic input and negative logic output, and when the base counter is updated, the index counter is automatically cleared. .

以」二のようにして、本発明が実施できる。The present invention can be implemented in the following manner.

前記実施例では、ベースカウンタをインクリメントし、
インデックスカウンタをデクリメントすることによって
バーチャルシフトを実現したが、メモリのアドレスふり
かたを逆にすることで、ベースカウンタはデクリメント
、インデックスカウンタはインクリメントするように変
更することも可能である。
In the above embodiment, the base counter is incremented;
The virtual shift was realized by decrementing the index counter, but by reversing the memory address assignment method, it is also possible to change the base counter to be decremented and the index counter to be incremented.

また、ベースポインタに現在の入力サンプルのアドレス
を持たせるのではなく、参照すべき最も過去のサンプル
のアドレスを持たせることによって、ベースカウンタ、
インデックスカウンタ共に+1ずつ歩進するカウンタで
参照することができる。この方法によれば、2つのカウ
ンタはアップ・ダウンカウンタでなく、一方向のみのカ
ウンタで実現することができる。
In addition, instead of having the base pointer have the address of the current input sample, by having the address of the most past sample to be referenced, the base counter,
Both index counters can be referenced by counters that increment by +1. According to this method, the two counters can be implemented as unidirectional counters instead of up/down counters.

また、2つのポインタを同方向に動かす場合でも、メモ
リのアドレスのふりかたを逆にすることによってベース
カウンタ、インデックスカウンタ共に−1ずつ歩進する
カウンタで実現することができる。これらの変更はすべ
て本発明に含まれる。
Furthermore, even when two pointers are moved in the same direction, by reversing the allocation of memory addresses, both the base counter and the index counter can be realized by counters that increment by -1. All these modifications are included in the present invention.

(発明の効果) 本発明の効果は、ベースカウンタへの制御信号をインデ
ックスカウンタへのクリア信号としても用いることによ
って、インス■・ラクション長を長くする必要がなくな
る点にある。また、2つのポインタを更新するための余
計なインストラクションを挿入することなく、フィルタ
リング等によく用いられるバーチャルシフトに適したア
ドレスを発生させることができるという利点も生ずる。
(Effects of the Invention) An advantage of the present invention is that by using the control signal to the base counter as a clear signal to the index counter, it is no longer necessary to lengthen the instant action length. Another advantage is that an address suitable for virtual shift, which is often used for filtering, etc., can be generated without inserting an extra instruction for updating two pointers.

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

第1図は本発明の1実施例を示すブロック図、第2図は
仮想シフトを説明する図、第3図は本発明の詳細な説明
する図、第4図は実施例の説明に必要な図、第5図は実
施例の一部の詳細図である。 図において、1はベースカウンタ、2はインデックスカ
ウンタ、3は加算器、4は制御部、5はクロック入力端
子、6はカウンタ値のロードのためのデータバス入力端
子、7.8.9は制御入力端子である。 A−1図 71−2図
FIG. 1 is a block diagram showing one embodiment of the present invention, FIG. 2 is a diagram explaining virtual shift, FIG. 3 is a diagram explaining details of the present invention, and FIG. 4 is a diagram showing necessary explanations of the embodiment. FIG. 5 is a detailed view of a part of the embodiment. In the figure, 1 is a base counter, 2 is an index counter, 3 is an adder, 4 is a control section, 5 is a clock input terminal, 6 is a data bus input terminal for loading the counter value, 7.8.9 is a control This is an input terminal. A-1 Figure 71-2

Claims (1)

【特許請求の範囲】[Claims] 第1のカウンタと、第2のカウンタと、前記第1のカウ
ンタに対する計数制御信号により前記第2のカウンタの
内容をゼロにクリアする手段と、前記第1のカウンタの
出力と前記第2のカウンタの出力を加算する加算器によ
って少なくとも構成されるアドレス発生回路。
a first counter, a second counter, means for clearing the contents of the second counter to zero by a count control signal for the first counter, and an output of the first counter and the second counter; an address generation circuit comprising at least an adder that adds the outputs of the address generation circuit;
JP15202085A 1985-07-09 1985-07-09 Address generating circuit Pending JPS6211970A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP15202085A JPS6211970A (en) 1985-07-09 1985-07-09 Address generating circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP15202085A JPS6211970A (en) 1985-07-09 1985-07-09 Address generating circuit

Publications (1)

Publication Number Publication Date
JPS6211970A true JPS6211970A (en) 1987-01-20

Family

ID=15531302

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15202085A Pending JPS6211970A (en) 1985-07-09 1985-07-09 Address generating circuit

Country Status (1)

Country Link
JP (1) JPS6211970A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63201790A (en) * 1987-02-12 1988-08-19 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン Graphic display system
US5006692A (en) * 1989-05-18 1991-04-09 Mitsubishi Denki K.K. Wire electrode supplying device for use in a wire cut electric discharge machining apparatus

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63201790A (en) * 1987-02-12 1988-08-19 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン Graphic display system
US5006692A (en) * 1989-05-18 1991-04-09 Mitsubishi Denki K.K. Wire electrode supplying device for use in a wire cut electric discharge machining apparatus

Similar Documents

Publication Publication Date Title
US4067058A (en) Workspace addressing system
US6732132B2 (en) Digital signal processor and digital signal processing system incorporating same
CN104375972A (en) Microprocessor integrated configuration controller for configurable math hardware accelerators
KR100272622B1 (en) Data processing device
JPH0444970B2 (en)
US4974157A (en) Data processing system
JPS6211970A (en) Address generating circuit
US5390306A (en) Pipeline processing system and microprocessor using the system
US4602330A (en) Data processor
EP0381059A2 (en) Arithmetic element controller
US4723258A (en) Counter circuit
JPS6257067A (en) Address generating circuit
JPS59178544A (en) Memory access circuit
JPS62107339A (en) Instruction constituting method for microcomputer
JPS58158745A (en) Pipeline control type information processing device
JPH0477349B2 (en)
JP2741869B2 (en) Inverse coordinate transformation processor
JPS62111362A (en) Data processor
JPH01255933A (en) Sweeping-out control system
JP2629899B2 (en) Tag branching device
JPS6017131B2 (en) memory control circuit
JPH0740195B2 (en) Electronic musical instrument
JPH04333153A (en) Data processor
JPS59742A (en) Access processing system of data arrangement
JPH01140807A (en) Processor for digital signal processing