JPS6257067A - Address generating circuit - Google Patents

Address generating circuit

Info

Publication number
JPS6257067A
JPS6257067A JP19792185A JP19792185A JPS6257067A JP S6257067 A JPS6257067 A JP S6257067A JP 19792185 A JP19792185 A JP 19792185A JP 19792185 A JP19792185 A JP 19792185A JP S6257067 A JPS6257067 A JP S6257067A
Authority
JP
Japan
Prior art keywords
counter
index
pointer
input terminal
base
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
JP19792185A
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 JP19792185A priority Critical patent/JPS6257067A/en
Publication of JPS6257067A publication Critical patent/JPS6257067A/en
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

PURPOSE:To attain generation of address suitable for vertual shift used frequently in filtering by using a control signal to a base counter as a clear signal to an index counter selectively. CONSTITUTION:In the case of the indirect addressing mode, the level of a mode input terminal 10 goes to 0. When a load instruction of the base counter 1 is inputted via control inputs 7, 8, 9, the base counter 1 is set to a data fed to a data bus input terminal 6 at the leading of a clock. When the load instruction to an index counter 2 via the control inputs 7, 8, 9, the load instruction to the index counter 2 from a control section 4 is outputted and the index counter 2 is set to a data fed to a data bus input terminal 6 at the leading of the clock. The adder 3 adds the outputs of the base counter 1 and the index counter 2 to output an effective address. As to the mode realizing efficiently the virtual shift, the level of the mode input terminal 10 is brought into 1.

Description

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

〔従来の技術〕[Conventional technology]

ディジタル信号処理プロセッサは一般に入力部−1演算
部、記憶部、制御部などで構成され、モデム、ディジタ
ルフィルタ、コーデック(CODEC>、エコーキャン
セラ、音声認識、音声合成、音声分析等の種々の分野に
用いられている。
Digital signal processing processors generally consist of an input section, a calculation section, a storage section, a control section, etc., and are used in various fields such as modems, digital filters, codecs, echo cancellers, speech recognition, speech synthesis, and speech analysis. It is used.

これらの応用分野、特にフィルタリングにおいて、過去
数サンプルのデータに演算を施す時、標本化されたデー
タを1単位時間毎にメモリ上で移動させる必要がある。
In these application fields, particularly in filtering, when performing operations on past several sample data, it is necessary to move the sampled data on memory every unit time.

しかし現在の信号処理プロセッサのアーキテクチャでは
メモリ間転送は非常に゛時間がかかるため、実際は仮想
シフト(バーチャルシフト)によってデータは動かさず
にデータポインタを動かすことで実現する。
However, in the current architecture of signal processing processors, memory-to-memory transfer takes a very long time, so it is actually achieved by moving the data pointer without moving the data using a virtual shift.

第2図は仮想シフトの概念を説明する図である。FIG. 2 is a diagram explaining the concept of virtual shift.

例えば、 y(L)=(x(L−3)+x(t−2)+x(t−1
)+x(t))/4   (1)で表わせれる移動平均
フィルタの場き、ある時刻tの出力y (t)を計算す
るために過去3サンプルx(t−3)、x(t−2>、
x(t、−1>と現在のデータX(し)とがメモリ上に
あるとする。
For example, y(L)=(x(L-3)+x(t-2)+x(t-1
)+x(t))/4 In the case of a moving average filter expressed as (1), in order to calculate the output y(t) at a certain time t, the past three samples x(t-3), x(t-2 >,
Assume that x(t, -1> and current data X(shi) are on the memory.

そして、その時ポインタDPはx(t)を指しているも
のとする。この時、アドレッシングモードとしてポイン
タDPによる間接アドレッシングが可能であれば、各サ
ンプルはこのポインタDPを=1ずつ歩進することによ
り読み出すことができる。しかし、ポインタDPを動か
してしまったために、時刻t+1の入力データx(t+
1>を格納するアドレスは別にもう一つのポインタを持
つか、また計算に用いたデータを個数より別途計算しな
ければならない。
It is assumed that the pointer DP is pointing to x(t) at that time. At this time, if indirect addressing using the pointer DP is possible as the addressing mode, each sample can be read by incrementing the pointer DP by 1. However, because the pointer DP has been moved, the input data x(t+
1> must have another pointer, or the data used for calculation must be calculated separately from the number of items.

別にもう一つのポインタを持った場合は、新しいデータ
の格納のためそのポインタの値を歩進し、先のポインタ
DPに初期データとして別のポインタの値をロードする
という2段階の操作が必要である。またポインタDPの
初期データをデータ個数より別途計算する場合は、ポイ
ンタDPからnを引くという複雑な回路を設けなければ
ならない。
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 DP. be. Furthermore, if the initial data of the pointer DP is calculated separately from the number of data items, a complicated circuit must be provided to subtract n from the pointer DP.

このような欠点を解決する方法として、公知の信号処理
プロセッサ(例えば富士通製MB8764)はポインタ
の値とインストラクションのりチラルフィールドとの和
によって実効アドレスを出力するいわゆるインデックス
修飾アドレッシングを採用している。インデックス修飾
アドレッシングによって命令実行という点では最大効率
が得られるが、インストラクション中にポインタからの
オフセット値を与えるリテラルフィールドを必要とする
ために、全体のインストラクション長が長くなってしま
うとう別の欠点を持つ4例えば、一つのプロセッサに一
つのメモリしか持たない場合はよいが、数個のメモリに
対して個々に目標のポインタ機構を持つシステムの場合
は、それぞれにインストラクションフィールドが必要で
あり、インストラクション長が非常に長くなる。
As a method for solving these drawbacks, a known signal processor (for example, MB8764 manufactured by Fujitsu) employs so-called index-qualified addressing in which an effective address is output by the sum of a pointer value and an instruction field. Although index-qualified addressing provides maximum efficiency in terms of instruction execution, it has another drawback: it requires a literal field to provide an offset value from the pointer during the instruction, which increases the overall instruction length. 4 For example, it is fine if one processor has only one memory, but if the system has a pointer mechanism with individual targets for several memories, an instruction field is required for each, and the instruction length is It becomes very long.

インストラクション長を短く抑えるには従来方法として
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つ
のポインタの値の和によってメモリを参照する方法があ
る。汎用のマイクロコンピュータであるインテル808
6では、前者の2ポインタとしてSIとDIを持ち、後
者の2ポインタとしてBX十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 808, a general-purpose microcomputer
6 has SI and DI as the former two pointers, and has an indirect addressing mode such as BX+SI as the latter two pointers.

前者の2ポインタはデータのメモリ間転送等に便利であ
るが、信号処理プロセッサのアーキテクチャはメモリ間
転送ができるだけ少なくするようになっていることと矛
盾する。
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.

先に示したバーチャルシフトは後者の2ポインタによる
間接アドレッシングによって比較的効率よく実現される
。まず、現在の入力データを示すポインタ値をベースポ
インタであるBXに持たせ、過去のデータの参照はイン
デックスポインタであるSIをゼロから−1ずつ歩進し
て参照する。このアドレッシング方法によれば、一つの
出力を得るためのプログラムはインデックスポインタS
Iをゼロより順次変更するのみでよく、データのメモリ
上の実際のアドレスには依存しなくなる。そして一つの
出力が計算できた後にベースポインタであるBXを一つ
歩進し、インデックスポインタZlをゼロにすることで
また次の出力の計算が行なえる。
The virtual shift described above is relatively efficiently realized by the latter indirect addressing using two pointers. First, the base pointer BX has a pointer value indicating the current input data, and past data is referenced by incrementing the index pointer SI by -1 from zero. According to this addressing method, a program to obtain one output uses index pointer S
It is only necessary to change I sequentially from zero, and it is no longer dependent on the actual address of the data in memory. After one output has been calculated, the base pointer BX is incremented by one and the index pointer Zl is set to zero, so that the next output can be calculated.

〔発明が解決しようとする問題点〕[Problem that the invention seeks to solve]

汎用のマイクロコンピュータでは上記従来の方法によっ
てうまく実現されるが、信号処理用のマイクロプロセッ
サはその演算の高速化のため、バイグラインアーキテク
チャを採用しており、途切れることなくデータを演算部
に供給しなければならない。
In general-purpose microcomputers, the conventional method described above can be successfully implemented, but in order to speed up the calculations, signal processing microprocessors adopt a big-line architecture, which supplies data to the calculation unit without interruption. There must be.

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

本発明の目的は、インストラクション長を短くでき、か
つ前記バーチャルシフトを効率よく実現するアドレス発
生回路を提供することである。
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.

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

本発明の回路は、第1のカウンタと、第2のカウンタと
、前記第1のカウンタに対する計数制御信号により前記
第2のカウンタの内容を選択的にゼロにクリアするクリ
ア手段と、前記第1のカウンタの出力と前記第2のカウ
ンタの出力とを加算する加算器を含んで構成される6 〔実施例〕 次に本発明の実施例について図面を参照して説明する。
The circuit of the present invention includes a first counter, a second counter, clearing means for selectively clearing the contents of the second counter to zero by a counting control signal for the first counter, and [Example] Next, an example of the present invention will be described with reference to the drawings.

先に(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−1) 、x (t−2>を順に参照して
累算する。このようなメモリアクセスにおいて、ある時
刻の出力を計算するのに必要なメモリ上のサンプルの先
頭番地(y(t)の計算においてはX(t)、y (t
+1>においてはx(t+1)、同様に、y(t+2>
においてはx(t、+2>)をベースポインタで示し、
その残りのサンプルについてはベースポインタからのオ
フセットを与えるインデックスポインタによってベース
ポインタの値を修飾することによって参照する。このよ
うな2つのポインタの和による間接アドレッシングでは
、はとんどのステップではインデックスポインタの更新
のみが行なわれている。また、ベースポインタを変更し
た場合は、インデックスポインタをゼロにすることが多
い。このことに着目してベースポインタの値を保持する
カウンタの歩進信号とインデックスポインタの値を保持
するカウンタのクリア端子をスイッチを介して接続する
ことで、このスイッチが開いている時は、通常の2ポイ
ンタによるアドレス発生回路であり、また、スイッチを
閉じた時にはベースポインタを更新した場合は自動的に
インデックスポインタはゼロクリアされることによって
ポインタの移動すべてがひとつのインストラクションに
よって実現でき、しかも2つのポインタの内どちらか一
方しか変更しないのでインストラクション長は1ポイン
タ分のフィールドとどちらのポインタを変更するか、ま
た、スイッチを開くか閉じるかを示す計2ビットだけで
よい。更に、スイ・ソチを開くか閉じるがというビット
は通常インストラクション毎には必要ないので、モード
フリップフロ・ツブを接続することでインストラクショ
ンのフィールドを割り充てる必要は必ずしもない。
FIG. 3 shows an example of the order of memory access when performing the moving average filtering shown in equation (1) above. y(
At the time of calculation of 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>, x(t-3>) are referred to in order and accumulated. Next, for the calculation of y(t+1>, the address is set to address z+1 where x(t+1) should be stored. , enter and store the input sample x(t+1), and similarly x(t
), x (t-1), x (t-2>) are sequentially referenced and accumulated. In such memory access, the first address ( In calculating y(t), X(t), y(t
+1>, then x(t+1); similarly, y(t+2>
In, x(t, +2>) is indicated by a base pointer,
The remaining samples are referenced by modifying the value of the base pointer with an index pointer that provides 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. Focusing on this, by connecting the increment signal of the counter that holds the base pointer value and the clear terminal of the counter that holds the index pointer value through a switch, when this switch is open, This is an address generation circuit using two pointers. Furthermore, when the switch is closed and the base pointer is updated, the index pointer is automatically cleared to zero, so all pointer movement can be achieved with one instruction. Since only one of the pointers is changed, the instruction length only requires a field for one pointer and two bits indicating which pointer to change and whether to open or close the switch. Furthermore, since the bit for opening or closing the switch is not normally required for each instruction, it is not necessarily necessary to allocate the field of the instruction by connecting the mode flip-flop tab.

第1図は本発明の1実施例を示すブロック図である。第
1図のアドレス発生回路はベースカウンタ1に、インデ
ックスカウンタ2と、加算器3と、制御部4と、カウン
タのクロック入力端子5と、カウンタ値ロードのための
データバス入力端子6と、制御入力端子7.8および9
と、モード入力端子10とから構成される。ベースカウ
ンタ1はロード、アップ、ダウンのいずれかの信号が低
レベルである時、クロックの立ち上がりでロード、+1
、−1するアップ・ダウンカウンタで、インデックスカ
ウンタ2も同様にロード、アップ、ダウン、それにクリ
アつきのアップ・ダウンカウンタである。制御部4につ
いては後で詳細に述べる。
FIG. 1 is a block diagram showing one embodiment of the present invention. The address generation circuit of FIG. 1 includes a base counter 1, an index counter 2, an adder 3, a control section 4, a clock input terminal 5 of the counter, a data bus input terminal 6 for loading the counter value, and a control section 4. Input terminals 7.8 and 9
and a mode input terminal 10. When the load, up, or down signal is low level, base counter 1 is loaded and +1 at the rising edge of the clock.
, -1, and the index counter 2 is also an up/down counter with load, up, down, and clear functions. The control unit 4 will be described in detail later.

まず、先に述べたインテル8086のBX十S[と同様
な2ポインタによる間接アドレッシングモードについて
説明する。この場合はモード入力端子10を°°0′°
にする、 制御部カフ、8.9を介してベースカウンタ1のロード
命令が入力されると、ベースカウンタ1は′クロックの
立ち上がりによってデータバス入力端子6に加えられた
データに設定される。
First, an indirect addressing mode using two pointers similar to the Intel 8086 BX1S[ mentioned above will be explained. In this case, mode input terminal 10 is set to °°0'°
When a load command for the base counter 1 is input through the control unit cuff 8.9, the base counter 1 is set to the data applied to the data bus input terminal 6 at the rising edge of the clock.

次に、制御部カフ、8.9を介してインデックスポイン
タ2のロード命令が入力されると、制御部4からのイン
デックスカウンタ2I\のロード命令が出力され、イン
デックスカウンタ2はクロックの立ち上がりによってデ
ータバス入力端子6に加えられたデータに設定される。
Next, when a load command for index pointer 2 is input through the control unit cuff 8.9, a load command for index counter 2I\ is output from the control unit 4, and index counter 2 is loaded with data by the rising edge of the clock. It is set to the data applied to the bus input terminal 6.

加算器3はベースカウンタ1及びインデックスカウンタ
2の出力を加算して実効アドレスを出力する。
Adder 3 adds the outputs of base counter 1 and index counter 2 and outputs an effective address.

次に、仮想シフトを効率よく実現できるモードについて
説明する。この場合はモード入力端子10を′1°“に
する。例として、先に(+)式で示した移動平均フィル
タリングを行なう場合について第1図の回路で2つのカ
ウンタ、加算器、及び出力される実効アドレスのビット
長がすべて8ビツトである場合の動作を説明する。以後
の説明で用いる数値で最後に(h)が付加されているも
のはすべて16進数である。
Next, a mode that can efficiently implement a virtual shift will be described. In this case, the mode input terminal 10 is set to ``1°''.As an example, when performing the moving average filtering shown in equation (+) above, the circuit shown in Figure 1 uses two counters, an adder, and an output signal. The operation will be explained when the bit length of all effective addresses is 8 bits.The numerical values used in the following explanation are all hexadecimal numbers with (h) added at the end.

第4図に示すようにメモリ上の0F(h)番地にx(t
)が、0E(h)番地にx(t−1>が、0E)(h)
番地にx(t−2)が、oc(h)番地にx(t−3>
が格納されているとする。
As shown in Figure 4, x(t
) is at address 0E(h) and x(t-1> is 0E)(h)
x(t-2) at address oc(h), x(t-3>
Suppose that is stored.

゛   最初に、ベースポインタの値を発生するベース
カウンタ1は、制御入力端子7.8.9を介してベース
カウンタロード及インデックスカウンタクリア指令が制
御部4に入力され、制御部4がらはベースカウンタ1へ
のロード命令と、インデックスカウンタ2へのクリア命
令が出力され、クロック入力端子5に加えられたクロッ
クの立ち上がりによって、ベースカウンタ1ではデータ
バス入力端子6に加えられたデータ“OF” (h)に
設定され、インデックスカウンタ2はクリアされる。
゛ First, the base counter 1 that generates the value of the base pointer receives the base counter load and index counter clear commands to the control unit 4 through the control input terminals 7, 8, and 9, and the control unit 4 outputs the base counter 1. A load command to index counter 1 and a clear command to index counter 2 are output, and with the rise of the clock applied to clock input terminal 5, base counter 1 outputs the data “OF” (h) applied to data bus input terminal 6. ), and index counter 2 is cleared.

そしてベースカウンタ1の出力“OF”” (h)と、
インデックスカウンタ2の出力“00”(h)は加算器
3で加算され実効アドレス゛’OF’(I])が出力さ
れx (t)を参照することができる。
And the output “OF” (h) of base counter 1,
The output "00" (h) of the index counter 2 is added by the adder 3, and an effective address "'OF' (I]) is outputted so that x (t) can be referred to.

次に、制御入力端子7,8.9を介してインデックスポ
インタのデクリメント指令が入力され、制御部4からは
インデックスカウンタ2へのダウン命令のみが発生され
、クロック入力端子5に加えられたクロックの立ち上が
りによって、インテ・ソクスカウンタ2は一1歩進され
、“FF” (h)になる、そして加算器3ではベース
カウンタ1の出力“OF” (l〕〉とインデックスカ
ウンタ2の出力“FF” (h)を加算し“OR”(h
)を実効アドレスとして出力するにのようにして、X(
t−1>は参照できる。
Next, a command to decrement the index pointer is input through the control input terminals 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 clock input terminal 5 is At the rising edge, the inte-sock counter 2 is incremented by one step and becomes "FF" (h), and the adder 3 outputs the output "OF" (l) of the base counter 1 and the output "FF" of the index counter 2. (h) is added and “OR” (h
) as an effective address, and output X(
t-1> can be referenced.

また次も同様に、制御入力端子7.8.9を介してイン
デックスポインタのデクリメント指令が入力され、制御
部4からはインデックスカウンタ2へのダウン命令のみ
が発生され、クロック入力端子5に加えられたクロック
の立ち上がりによって、インテ・ソクスカウンタ2は一
1歩進され“l?E”  (h)になる、そして加算器
3ではベースカウンタ1の出力“’OF”(h)とイン
デックスカウンタの出力“FB”(h)を加算し“OD
” (h)を実効アドレスとして出力する。このように
して、X (t−2)は参照できる。
Next, 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 unit 4, which is applied to the clock input terminal 5. At the rising edge of the clock, inte-sock counter 2 is incremented by one step and becomes "l?E" (h), and in adder 3, the output "'OF" (h) of base counter 1 and the output of index counter are incremented by one step. Add “FB” (h) and “OD”
" (h) is output as an effective address. In this way, X (t-2) can be referenced.

また次も同様に、制御入力端子7,8.9を介してイン
デックスポインタのデクリメント指令が入力され、制御
部4がらはインデックスカウンタ2へのダウン命令のみ
が発生され、クロック入力端子5に加えられたクロ・ツ
クの立ち上がりによって、インデックスカウンタ2は一
1歩進され、°“F D” (h)にな、る2そして加
算器3ではベースカウンタ1の出力“OF” (h)と
インテ・ソクスカウンタの出力“FD“(h)を加算し
“Oc”(h)を実効アドレスとして出力する。このよ
うにして、x(t−3)は参照できる。
Next, similarly, a command to decrement the index pointer is input via the control input terminals 7, 8.9, and the control unit 4 generates only a down command to the index counter 2, which is applied to the clock input terminal 5. With the rise of the clock, the index counter 2 is incremented by one step and becomes "F D" (h)2, and the adder 3 uses the output "OF" (h) of the base counter 1 and the integer. The output "FD" (h) of the sox counter is added and "Oc" (h) is output as an effective address. In this way, x(t-3) can be referenced.

このようにして、x (t)、x (t−1)、 x(
t−2> 、 x (t、−3)は参照され、これらの
総和を計算して4で割ることによって移動平均フィルタ
出力y (t)が求まる。
In this way, x (t), x (t-1), x(
t-2>, x (t, -3) are referenced, and the moving average filter output y (t) is found by calculating the sum of these and dividing by 4.

次にy(t+1>の出方を求めるなめに、X(t+1)
が入力され、メモリの’10” (h)番地に格納する
必要がある。そこで、制御入力端子7、s、9.10を
介してベースポインタインクリメント及インデックスカ
ウンタクリア指令が入力され、制v4F4がらはベース
カウンタ11\−のアップ信号と、インデックスカウン
タ2へのクリア信号が発生され、クロック入力端子5に
加えられたクロ・ツクの立ち上がりによって、ベースカ
ウンタ1の内容を一歩進し“1o” (h)とすると同
時にインデックスカウンタ2にクリアを指令する。
Next, in order to find out how y(t+1>), use X(t+1)
is input and needs to be stored at address '10' (h) in memory.Then, base pointer increment and index counter clear commands are input via control input terminals 7, s, and 9.10, and control v4F4 is input. An up signal for the base counter 11\- and a clear signal for the index counter 2 are generated, and the content of the base counter 1 is advanced one step by the rising edge of the clock applied to the clock input terminal 5, and becomes "1o" ( At the same time as h), the index counter 2 is commanded to clear.

このクリア信号によってインデックスカウンタ2の内容
は°“00” (l〕)になり、加算器3ではベースカ
ウンタ1の出力“1o” (h)とインデックスカウン
タ2の出方″oo” (h)を加算し、実効アドレス“
10” (h)を出方する。この−命令によって5先程
までx(t−3)の格納された°’QC”(h)番地を
示していたものが、X(t+1)の格納アドレスである
°“1o” (1〕)番地に変更される。
With this clear signal, the content of index counter 2 becomes °“00” (l), and adder 3 converts the output of base counter 1 “1o” (h) and the output of index counter 2 “oo” (h). Add the effective address “
10" (h). With this - instruction, the address that was pointing to the °'QC" (h) address where x(t-3) was stored until now is now the storage address of X(t+1). The address is changed to a certain "1o" (1) address.

以後光と同様にインデックスカウンタ2をデクリメント
しx (t) 、x (t−1) 、x (tニー2>
を参照することで、y (t+1 )の計算に必要な3
つの値を取り出すことができる。
After that, index counter 2 is decremented in the same way as for light, and x (t), x (t-1), x (t knee 2>
3 required to calculate y (t+1) by referring to
One value can be retrieved.

第5図は第1図の制御部4の詳細例である。参照数字1
00.101は2−4デコーダ(テキサスインストルメ
ンツ社の74LS139相当品)、参照・数字102は
インバータ、参照数字103は負論理入力のORゲート
(テキサスインストルメンツ社の74LS10相当品)
、参照数字104はNANDゲート(テキサスインスト
ルメンツ者の74LSOO相当品)、参照数字7.8.
9は制御入力端子、参照数字10はモード入力端子、参
照数字107,108.109はベースカウンタ1への
制御信号端子であり、それぞれ、up。
FIG. 5 is a detailed example of the control section 4 shown in FIG. 1. Reference number 1
00.101 is a 2-4 decoder (equivalent to Texas Instruments' 74LS139), reference number 102 is an inverter, reference number 103 is an OR gate with negative logic input (equivalent to Texas Instruments' 74LS10)
, reference number 104 is a NAND gate (equivalent to Texas Instruments' 74LSOO), reference number 7.8.
Reference numeral 9 is a control input terminal, reference numeral 10 is a mode input terminal, reference numerals 107, 108, and 109 are control signal terminals to the base counter 1, respectively.

DOWN、LOADに接続され、参照数字11o。Connected to DOWN, LOAD, reference numeral 11o.

111.112.113はインデックスカウンタ2への
制御信号端子であり、それぞれUP、DOWN、LOA
D、CLEARに接続されている。
111, 112, and 113 are control signal terminals for index counter 2, respectively UP, DOWN, and LOA.
D. Connected to CLEAR.

制御入力端子9は第1図のベースカウンタ1への制御信
号を生成する2−4デコーダ100のイネーブル端子に
インバータ102を介して接続され。
The control input terminal 9 is connected via an inverter 102 to an enable terminal of a 2-4 decoder 100 which generates a control signal to the base counter 1 of FIG.

インデックスカウンタ2への制御信号を生成する2−4
デコーダ101のイネーブル端子には直接接続される。
2-4 generating a control signal to index counter 2;
It is directly connected to the enable terminal of decoder 101.

前記制御入力端子9はベースカウンタ1とインデックス
カウンタ2との更新を選択するビット入力であり、制御
入力端子9が“0゛′である時はインデックスカウンタ
1が、“1”である時はベースカウンタ2が選択される
。制御入力端子7,8はカウンタのモード制御を示す2
ビツトで、“00゛の時はカウンタの値は更新されず(
NOP)、“01″の時はデータバスの値をカウンタに
ロードしくLOAD)、“10″の時はカウンタを−1
歩進しくDOWN)、そして“11”の時はカウンタを
+1歩進する(UP)、ベースカウンタ1への制御信号
を生成する2−4デコータ100のYl、Y2.Y3出
力は負論理入力のORゲート103を介し、その後、N
ANDゲート104を介してインデックスカウンタ2へ
のクリア信号として接続されている。NANDゲート1
04の他方の入力は制御端子入力10と接続されていて
、制御入力端子10に“1”が加えられていてかつベー
スカウンタ1の更新が行なわれた時は、自動的にインデ
ックスカウンタのクリアが行なわれる。
The control input terminal 9 is a bit input for selecting the update of the base counter 1 and the index counter 2, and when the control input terminal 9 is "0'', the index counter 1 is input, and when the control input terminal 9 is "1", the base counter 1 is input. Counter 2 is selected. Control input terminals 7 and 8 indicate mode control of the counter 2.
When the bit is “00”, the counter value is not updated (
NOP), when "01", load the data bus value to the counter (LOAD), when "10", load the counter by -1
Y1, Y2 . of the 2-4 decoder 100 generates a control signal to the base counter 1. Y3 output is passed through OR gate 103 with negative logic input, and then N
It is connected as a clear signal to the index counter 2 via an AND gate 104. NAND gate 1
The other input of 04 is connected to control terminal input 10, and when "1" is added to control input terminal 10 and base counter 1 is updated, the index counter is automatically cleared. It is done.

前記実施例では、ベースカウンタをインクリメントし、
インデックスカウンタをデクリメント卜することによっ
てバーチャルシフトを実現したが。
In the above embodiment, the base counter is incremented;
A virtual shift was achieved by decrementing the index counter.

メモリのアドレスのふりかたを逆にすることで、ベース
カウンタはデクリメント、インデックスカウンタはイン
クリメントするように変更することら可能である9また
、ベースポインタに現在の入力サンプルのアドレスを持
たせるのではなく、参照すべき最も過去のサンプルのア
ドレスを持たせることによて、ベースカウンタ、インデ
ックスカウンタ共に+1ずつ歩進するカウンタで参照す
ることができる。この方法によれば、2つのカウンタは
アップ・ダウンカウンタでなく、一方向のみのカウンタ
で実現することができる。また、2っのポインタを同方
向に動かず場合でも、メモリのアドレスのふりかたを逆
にすることによってベースカウンタ、インデックスカウ
ンタ共に−1ずつ歩進するカウンタで実現することがで
きる。これらの変更はすべて本発明に含まれる。
By reversing the way memory addresses are assigned, it is possible to change the base counter to be decremented and the index counter to be incremented.9Also, it is possible to make the base pointer hold the address of the current input sample. By providing the address of the most past sample to be referenced, both the base counter and the index counter can be referenced by a counter that increments by +1. According to this method, the two counters can be implemented as unidirectional counters instead of up/down counters. Furthermore, even if the two pointers do not move 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.

前記実施例では外部からの制御入力信号線は4本の場合
を示したがエンコードした制御入力信号を使用し前記制
御回路にモード変換用の7リツプフロツプを内蔵してお
けば2つのカウンタの制御のための信号7種類にモード
変換用の制御信号を加え計8種類となり信号線は3本で
すむ。
In the above embodiment, the number of control input signal lines from the outside is four, but if encoded control input signals are used and the control circuit has a built-in 7 lip-flop for mode conversion, the control of two counters can be performed. In addition to the 7 types of signals for mode conversion, there are 8 types in total, including the control signal for mode conversion, and only 3 signal lines are required.

〔発明の効果〕〔Effect of the invention〕

本発明にはベースカウンタへの制御信号を選択的にイン
デックスカウンタへのクリア信号としてら用いることに
よって、インストラクション長を長くする必要がなく、
また、2つのポインタを更新するための余計なインスト
ラクションを挿入することなく、フィルタリング等によ
く用いられるバーチャルシフトに適したアドレスを発生
させることができるという効果がある。
In the present invention, by selectively using the control signal to the base counter as a clear signal to the index counter, there is no need to increase the instruction 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 to update two pointers.

面画の簡単な説明 第1図は本発明の1実施例を示すブロック図、第2図は
仮想シフトを説明する図、第3図は原理を説明する図、
第4図はメモリへのデータ格納状態を示す図、第5図は
実施例の一部の詳細図である。
Brief explanation of screen images 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 the principle,
FIG. 4 is a diagram showing the state of data storage in the memory, and FIG. 5 is a detailed diagram of a part of the embodiment.

1・・・ベースカウンタ、2・・・インデックスカウン
タ、3・・・加算器、4・・・制御部、5・・・タロツ
ク入力端子、6・・・データバス入力端子、7.8.9
・・・制御入力端子、10・・・モード入力端子。
DESCRIPTION OF SYMBOLS 1...Base counter, 2...Index counter, 3...Adder, 4...Control unit, 5...Tarlock input terminal, 6...Data bus input terminal, 7.8.9
...Control input terminal, 10...Mode input terminal.

案l朋 52図 簡すJ−t             vf亥J尤子l
アドレス              アドレス帝りt
           田陳−」宅干l′1PJ5図 刺卿入力
Plan 1 52 diagrams J-t vf 亥J尼子l
Address Address Empire
Tian Chen-” Takuboshi l’1 PJ5 illustration input

Claims (1)

【特許請求の範囲】 第1のカウンタと、 第2のカウンタと、 前記第1のカウンタに対する計数制御信号により前記第
2のカウンタの内容を選択的にゼロにクリアするクリア
手段と、 前記第1のカウンタの出力と前記第2のカウンタの出力
とを加算する加算器とを含むことを特徴とするアドレス
発生回路。
[Scope of Claims] A first counter, a second counter, clearing means for selectively clearing the contents of the second counter to zero by a counting control signal for the first counter, and the first counter. An address generation circuit comprising: an adder that adds the output of the counter and the output of the second counter.
JP19792185A 1985-09-06 1985-09-06 Address generating circuit Pending JPS6257067A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP19792185A JPS6257067A (en) 1985-09-06 1985-09-06 Address generating circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19792185A JPS6257067A (en) 1985-09-06 1985-09-06 Address generating circuit

Publications (1)

Publication Number Publication Date
JPS6257067A true JPS6257067A (en) 1987-03-12

Family

ID=16382489

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19792185A Pending JPS6257067A (en) 1985-09-06 1985-09-06 Address generating circuit

Country Status (1)

Country Link
JP (1) JPS6257067A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11556303B2 (en) 2020-09-25 2023-01-17 Kabushiki Kaisha Kawai Gakki Seisakusho Digital signal processing device and control method of digital signal processing device
US11816026B2 (en) 2020-10-13 2023-11-14 Kabushiki Kaisha Kawai Gakki Seisakusho Digital signal processing device and control method of digital signal processing device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11556303B2 (en) 2020-09-25 2023-01-17 Kabushiki Kaisha Kawai Gakki Seisakusho Digital signal processing device and control method of digital signal processing device
US11816026B2 (en) 2020-10-13 2023-11-14 Kabushiki Kaisha Kawai Gakki Seisakusho Digital signal processing device and control method of digital signal processing device

Similar Documents

Publication Publication Date Title
US4236206A (en) Central processor unit for executing instructions of variable length
US4156910A (en) Nested data structures in a data driven digital data processor
US4156903A (en) Data driven digital data processor
EP0073419B1 (en) Dynamically programmable processing element
US4524416A (en) Stack mechanism with the ability to dynamically alter the size of a stack in a data processing system
US4862407A (en) Digital signal processing apparatus
EP0068764A2 (en) Vector processing units
US3593306A (en) Apparatus for reducing memory fetches in program loops
US3943495A (en) Microprocessor with immediate and indirect addressing
EP0185215A2 (en) Forth-like language microprocessor
KR19980032264A (en) Vector processor programming and parallel programming of asymmetric dual processors with vector processor and RISC processor
JPS6242296B2 (en)
Baba et al. The MPG system: A machine-independent efficient microprogram generator
US4454580A (en) Program call method and call instruction execution apparatus
IE77511B1 (en) Address processor for a signal processor
US4156909A (en) Structured data files in a data driven digital data processor
US4156908A (en) Cursive mechanism in a data driven digital data processor
JPS6257067A (en) Address generating circuit
US4974157A (en) Data processing system
KR940006916B1 (en) Microprocessor with selective cache memory
EP0240606A2 (en) Pipe-line processing system and microprocessor using the system
US4800491A (en) Register-stack apparatus
JPS6211970A (en) Address generating circuit
US4323978A (en) Arithmetic element based on the DDA principle
WO2001016712A1 (en) Digital signal processing apparatus and method for controlling the same