JPH076082A - Address generating device - Google Patents
Address generating deviceInfo
- Publication number
- JPH076082A JPH076082A JP14629593A JP14629593A JPH076082A JP H076082 A JPH076082 A JP H076082A JP 14629593 A JP14629593 A JP 14629593A JP 14629593 A JP14629593 A JP 14629593A JP H076082 A JPH076082 A JP H076082A
- Authority
- JP
- Japan
- Prior art keywords
- address
- register
- data
- instruction
- output
- 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
Links
- 230000015654 memory Effects 0.000 claims abstract description 85
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 7
- 101100163849 Arabidopsis thaliana ARS1 gene Proteins 0.000 description 6
- 101100097319 Schizosaccharomyces pombe (strain 972 / ATCC 24843) ala1 gene Proteins 0.000 description 6
- 230000009977 dual effect Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 102100034003 FAU ubiquitin-like and ribosomal protein S30 Human genes 0.000 description 2
- 101000732045 Homo sapiens FAU ubiquitin-like and ribosomal protein S30 Proteins 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】本発明は、複数個のデータメモリ
を有し、そのデータメモリの内容を基にして演算処理を
行なうディジタル計算機に関し、特にデータメモリのア
ドレスを指定するアドレス生成装置に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a digital computer having a plurality of data memories and performing arithmetic processing based on the contents of the data memories, and more particularly to an address generator for designating an address of the data memories.
【0002】[0002]
【従来の技術】半導体技術、マイクロプロセッサアーキ
テクチャなどの進歩により、プロセッサのメモリ空間を
プログラムメモリ空間とデータメモリ空間に分割し、命
令実行の高速化を図るハーバードアーキテクチャを採用
したRISCプロセッサ、ディジタルシグナルプロセッ
サ(以下DSPと称する。)等の実用化が進んでいる。2. Description of the Related Art Due to advances in semiconductor technology and microprocessor architecture, the memory space of a processor is divided into a program memory space and a data memory space, and RISC processor and digital signal processor adopting Harvard architecture for speeding up instruction execution. (Hereinafter referred to as DSP) is being put to practical use.
【0003】特にDSPに関しては、ワンチップ上で容
易に実現でき、斯るDSPによる処理は、アナログ信号
処理に比較して高精度処理が可能であり、またパラメー
タの設定によりフィルタ特性などの任意の特性を安定し
て均一に得られる。さらにDSPの使用により、アナロ
グ構成に比べて部品の精度に起因する微調整を行うこと
が不要であるなどの特徴を有しており、急速に普及が進
んでいる。このDSPの応用範囲は、音声信号処理、通
信信号処理、計測信号処理、画像信号処理、音響処理等
のディジタル信号処理の幅広い分野において利用されて
いる。Particularly, the DSP can be easily realized on one chip, and the processing by the DSP can perform highly accurate processing as compared with the analog signal processing, and the setting of the parameter allows an arbitrary filter characteristic or the like. It is possible to obtain stable and uniform characteristics. Further, the use of the DSP has a feature that it is not necessary to perform fine adjustment due to the precision of parts as compared with the analog configuration, and is rapidly spreading. The application range of the DSP is used in a wide range of digital signal processing such as audio signal processing, communication signal processing, measurement signal processing, image signal processing, and sound processing.
【0004】DSPで前述のディジタル信号処理を行う
場合には、式(1)に示すように、When the above-mentioned digital signal processing is performed by the DSP, as shown in equation (1),
【0005】[0005]
【数1】 [Equation 1]
【0006】の係数(式(1)中のai、biに相当)
とデータ(式(1)中のxi、yiに相当)との積和演
算が大半であり、データはデータメモリに格納されてお
り、一方係数は予めデータメモリにイミディエートデー
タとして書き込まれており、斯る積和演算を行なうディ
ジタル計算機が特開昭63−303452号公報に開示
されている。Coefficient (corresponding to ai and bi in the equation (1))
And the data (corresponding to xi and yi in the equation (1)) are mostly used, and the data is stored in the data memory, while the coefficient is written in the data memory in advance as immediate data. A digital computer for performing such a sum of products operation is disclosed in Japanese Patent Laid-Open No. 63-303452.
【0007】図9は、従来のディジタル計算機における
アドレス生成装置の概略構成図である。FIG. 9 is a schematic configuration diagram of an address generating device in a conventional digital computer.
【0008】図9における1はデータなどが格納されて
いる第1のデータメモリ、2は第1のデータメモリ1の
アドレスを指定する信号が通る第1のアドレスバス、3
は第1のデータメモリ1のデータの交信を行う第1のデ
ータバス、4は演算に用いる係数などが格納されている
第2のデータメモリ、5は第2のデータメモリ4のアド
レスを指定する信号が通る第2のアドレスバス、6は後
述するアキュムレータ16と第2のデータメモリ4との
データ交信を行う第2のデータバス、7は第1のデータ
メモリ1のアドレスを指定する第1のアドレスアロケー
ションユニット、8は第1のアドレスアロケーションユ
ニット7で生成されるアドレスの基となるアドレス値が
格納されている第1のアドレスレジスタ、9は第1のア
ドレスレジスタ8と共に用いられ、第1のアドレスレジ
スタ8のアドレス値に対する増減値が格納されている第
1のオフセットレジスタ、10は第2のデータメモリ4
のアドレスを指定する第2のアドレスアロケーションユ
ニット、11は第2のアドレスアロケーションユニット
10で生成されるアドレスの基となるアドレス値が格納
されている第2のアドレスレジスタ、12は第2のアド
レスレジスタ11と共に用いられ、第2のアドレスレジ
スタ11のアドレス値に対する増減値が格納されている
第2のオフセットレジスタ、13及び14は第1のデー
タバス3、或るいは第2のデータバス6を介して送られ
るデータに基づいて第1のデータメモリ1、或るいは第
2のデータメモリ4の値を読み出して格納する第1及び
第2のデータレジスタ、15は第1のデータレジスタ1
3、及び第2のデータレジスタ14のデータ値の乗算を
行う乗算器、16は乗算器15で乗算された結果を蓄え
るアキュムレータ、17はDSPのクロックパルス波と
なるシステムクロック、18は次に実行されるプログラ
ムのアドレスが格納されているプログラムカウンタ、1
9は命令コードなどのプログラムが格納されているプロ
グラムメモリ、20は命令コードが格納され、解析され
るインストラクションレジスタ、21はプログラムデー
タの転送を行うプログラムバスである。In FIG. 9, 1 is a first data memory in which data and the like are stored, 2 is a first address bus through which a signal designating an address of the first data memory 1 passes, 3
Is a first data bus for exchanging data in the first data memory 1, 4 is a second data memory in which coefficients used for calculation are stored, and 5 is an address of the second data memory 4. A second address bus through which signals pass, a second data bus 6 for communicating data between an accumulator 16 and a second data memory 4 described later, and a first data bus 7 for designating an address of the first data memory 1. An address allocation unit, 8 is a first address register that stores an address value that is a basis of an address generated by the first address allocation unit 7, and 9 is used together with the first address register 8, A first offset register 10 that stores an increase / decrease value for the address value of the address register 8 is a second data memory 4
Second address allocation unit that specifies the address of the address, 11 is a second address register that stores the address value that is the basis of the address generated by the second address allocation unit 10, and 12 is the second address register. A second offset register which is used together with 11 and stores an increase / decrease value for the address value of the second address register 11, 13 and 14 via the first data bus 3 or the second data bus 6. The first and second data registers for reading and storing the value of the first data memory 1 or the second data memory 4 on the basis of the data sent by the first and second data memories 15, 15 is the first data register 1
3, a multiplier that multiplies the data value of the second data register 14, 16 is an accumulator that stores the result of multiplication by the multiplier 15, 17 is a system clock that becomes a clock pulse wave of the DSP, and 18 is the next execution Counter, which stores the address of the program to be saved, 1
9 is a program memory in which programs such as instruction codes are stored, 20 is an instruction register in which instruction codes are stored and analyzed, and 21 is a program bus for transferring program data.
【0009】図10は、データメモリを用いて演算を行
う命令を含むプログラムである。FIG. 10 shows a program including an instruction for performing an operation using a data memory.
【0010】図10におけるn−9,・・・・,n−1,
n,n+1,n+2はプログラムメモリ19のアドレス
を示し、枠内はアドレスに対応するプログラムを示して
いる。また、A0、A1、C0、C1、R0、R1、及
びAccはそれぞれ第1のアドレスレジスタ8、第2の
アドレスレジスタ11、第1のオフセットレジスタ9、
第2のオフセットレジスタ12、第1のデータレジスタ
13、第2のデータレジスタ14、及びアキュムレータ
16を示している。N-10, ..., N-1, in FIG.
n, n + 1, and n + 2 indicate addresses of the program memory 19, and the boxes indicate programs corresponding to the addresses. Further, A0, A1, C0, C1, R0, R1, and Acc are respectively a first address register 8, a second address register 11, a first offset register 9,
The second offset register 12, the first data register 13, the second data register 14, and the accumulator 16 are shown.
【0011】n−9番地の<load A0,2000
H>、n−7番地の<load C0,200H>、n
−5番地の<load A1,2000H>、n−3番
地の<load C1,100H>は、それぞれレジス
タA0,C0,A1,C1に命令コードが格納されてい
るアドレスの次のアドレス、例えばn−9番地の場合
は、n−8番地に格納されているデータを格納する命令
であることを意味する機械語である。<Load A0,2000 at address n-9
H>, n <address C0,200H>, n-7, n
<Load A1, 2000H> at address -5 and <load C1, 100H> at address n-3 are the addresses next to the addresses at which the instruction codes are stored in registers A0, C0, A1, C1, for example, n- The address 9 is a machine language meaning that it is an instruction to store the data stored in the address n-8.
【0012】n−1番地の<move R0,(A0)>
は第1のアドレスレジスタ8に示されるアドレスの内容
を第1のデータレジスタ13に転送する命令であること
を意味する機械語、n番地の<move R1,(A1
+C1)>は第2のアドレスレジスタ11に示されるア
ドレスと第2のオフセットレジスタ12に示されるアド
レスの和が示すアドレスに格納されている内容を第2の
データレジスタ14に転送する命令であることを意味す
る機械語、n+1番地の<mac R0,R1>は第1
のデータレジスタ13の内容と第2のデータレジスタ1
4の内容を乗算し、アキュムレータ16の内容と累積加
算をする命令であることを意味する機械語、<move
(A0+C0),Acc>はアキュムレ−タ16の内容
を第1のアドレスレジスタ8に示されるアドレスと第1
のオフセットレジスタ12に示されるアドレスの和が示
すアドレスに転送する命令であることを意味する機械語
である。<Move R0, (A0)> at address n-1
Is a machine language meaning that it is an instruction to transfer the contents of the address shown in the first address register 8 to the first data register 13, <move R1, (A1 at address n
+ C1)> is an instruction to transfer the contents stored at the address indicated by the sum of the address indicated by the second address register 11 and the address indicated by the second offset register 12 to the second data register 14. Is a machine word that means, <mac R0, R1> at address n + 1 is the first
Contents of the data register 13 of the second data register 1
<Move, a machine language meaning that the instruction is to multiply the contents of 4 and perform cumulative addition with the contents of the accumulator 16.
(A0 + C0), Acc> indicates the contents of the accumulator 16 with the address indicated by the first address register 8 and the first address.
Is a machine language meaning that the instruction is to be transferred to the address indicated by the sum of the addresses indicated by the offset register 12.
【0013】図11は図9に示したディジタル計算機に
おいて図10に示したプログラムを動作させた場合のタ
イミングチャートである。CLKはシステムクロック1
7の波形、PCQはプログラムカウンタ18から出力さ
れる波形、IRQはインストラクションレジスタ20か
ら出力される命令コードの波形、AR0は第1のアドレ
スレジスタ8から出力されるアドレスの波形、AR1は
第2のアドレスレジスタ11から出力されるアドレスの
波形、CR0は第1のオフセットレジスタ9から出力さ
れるアドレスの波形、CR1は第2のオフセットレジス
タ12から出力されるアドレスの波形、AALU0は第
1のアドレスアロケーションユニット7で生成されるア
ドレスの波形、AALU1は第2のアドレスアロケーシ
ョンユニット10で生成されるアドレスの波形、XR0
は第1のデータレジスタ13の波形、XR1は第2のデ
ータレジスタ14の波形、ACCRはアキュムレータ1
6の内容を示す波形である。FIG. 11 is a timing chart when the program shown in FIG. 10 is operated in the digital computer shown in FIG. CLK is the system clock 1
7 waveform, PCQ is a waveform output from the program counter 18, IRQ is a waveform of an instruction code output from the instruction register 20, ARO is a waveform of an address output from the first address register 8, and AR1 is a second waveform. The waveform of the address output from the address register 11, CR0 is the waveform of the address output from the first offset register 9, CR1 is the waveform of the address output from the second offset register 12, and AALU0 is the first address allocation. The waveform of the address generated by the unit 7, AALU1 is the waveform of the address generated by the second address allocation unit 10, XR0
Is the waveform of the first data register 13, XR1 is the waveform of the second data register 14, and ACCR is the accumulator 1
6 is a waveform showing the contents of No. 6.
【0014】ここで、第1のアドレスレジスタ8の内容
は2000H、第1のオフセットレジスタ9の内容は2
00H、第2のアドレスレジスタ11の内容は2000
H、第2のオフセットレジスタ12の内容は100H、
データメモリの2000H番地の内容は500、データ
メモリの2100H番地の内容は30、アキュムレータ
16の内容は5000であるものとし、以下順次、プロ
グラムの流れに従って説明する。Here, the content of the first address register 8 is 2000H and the content of the first offset register 9 is 2.
00H, the content of the second address register 11 is 2000
H, the content of the second offset register 12 is 100H,
Assume that the contents of address 2000H of the data memory are 500, the contents of address 2100H of the data memory are 30, and the contents of accumulator 16 are 5000, which will be sequentially described below according to the flow of the program.
【0015】図10に示される命令<load A0,
2000H>のアドレスn−9がCLKの立ち上がり
(以下CLKと称する。)Aに同期してプログラムカウ
ンタ18に入る。プログラムカウンタ18にアドレスn
−9が入るとプログラムメモリ19からは命令コードが
出力され、その命令コードがインストラクションレジス
タ20においてCLK Bに同期してインストラション
レジスタ20に読み込まれると同時に、インストラクシ
ョンレジスタ20は命令コード<load A0,20
00H>が第1のアドレスレジスタ8に2000Hを格
納する命令であることを解読し、さらにプログラムカウ
ンタ18の値がn−8に更新される。The instruction <load A0, shown in FIG.
The address n-9 of 2000H> enters the program counter 18 in synchronization with the rising edge (hereinafter referred to as CLK) A of CLK. Address n to the program counter 18
When -9 is entered, an instruction code is output from the program memory 19, and the instruction code is read into the instruction register 20 in the instruction register 20 in synchronization with CLK B. At the same time, the instruction register 20 reads the instruction code <load A0, 20
Decoding that 00H> is an instruction for storing 2000H in the first address register 8, the value of the program counter 18 is updated to n-8.
【0016】また、CLK Cに同期して、プログラム
メモリ19のn−8番地に格納されているデータ<20
00H>がプログラムバス21を介して、第1のアドレ
スレジスタ8に格納される。Further, in synchronization with CLK C, the data stored in the program memory 19 at address n-8 <20
00H> is stored in the first address register 8 via the program bus 21.
【0017】以下同様に、C0レジスタに<200H
>、A1レジスタに<2000H>、C1レジスタに<
100H>が格納される。Similarly, <200H is stored in the C0 register.
>, A1 register <2000H>, C1 register <
100H> is stored.
【0018】命令<move R0,(A0)>のアドレ
スn−1がCLK Dに同期してプログラムカウンタ1
8に入る。プログラムカウンタ18にアドレスn−1が
入るとプログラムメモリ19からは命令コードが出力さ
れ、その命令コードがインストラクションレジスタ20
においてCLK Dに同期してインストラクションレジ
スタ20に読み込まれる。The address n-1 of the instruction <move R0, (A0)> is synchronized with CLK D and the program counter 1
Enter 8. When the address n-1 enters the program counter 18, an instruction code is output from the program memory 19, and the instruction code is output to the instruction register 20.
Is read into the instruction register 20 in synchronization with CLK D.
【0019】次にCLK Eに同期してプログラムカウ
ンタ18の値がnに更新されると同時に、インストラク
ションレジスタ20は命令コード<move R0,
(A0)>は第1のアドレスレジスタ8に示されるアドレ
スに従って、第1のデ−タメモリ1に格納されているデ
ータを第1のデ−タレジスタ13に転送する命令である
ことを解読する。Next, in synchronization with CLK E, the value of the program counter 18 is updated to n, and at the same time, the instruction register 20 stores the instruction code <move R0,
(A0)> decodes that it is an instruction to transfer the data stored in the first data memory 1 to the first data register 13 in accordance with the address shown in the first address register 8.
【0020】また、CLK Fに同期して、アドレスn
番地に格納されている命令コード<move R1,
(A1+C1)>がインストラクションレジスタ20に読
み込まれ、解読される。更に、命令コード<move
R0,(A0)>が実行される。以下命令の実行について
説明する。The address n is synchronized with CLK F.
Instruction code stored in the address <move R1,
(A1 + C1)> is read into the instruction register 20 and decoded. Furthermore, the instruction code <move
R0, (A0)> is executed. The execution of instructions will be described below.
【0021】インストラクションレジスタ20において
解読された命令は、コントロール信号(明示せず)を介
して、第1のアドレスアロケーションユニット7に伝達
される。第1のアドレスアロケーションユニット7は、
CLK Fに同期して、第1のアドレスレジスタ8から
アドレス<2000H>を読みだし、第1のアドレスバ
ス2上に出力する。第1のアドレスバス2上のアドレス
が確定すると、第1のデ−タメモリ1は、上記アドレス
に格納されているデータ<500>を第1のデータバス
3に出力する。第1のデータレジスタ13は、CLK
Gに同期して、第1のデータバス3上の内容<500>
を読み込む。従って、第1のデータレジスタ13には、
第1のデータメモリ1の2000H番地に格納されてい
るデータ<500>が格納される。また、第2のアドレ
スアロケーションユニット10は、第2のアドレスレジ
スタ11からアドレス<2000H>を読み出し、更に
第2のオフセットレジスタ12からアドレス<100H
>を読み出し、上記2つのアドレスを加え、アドレス<
2100H>として第2のアドレスバス5上に出力す
る。The instruction decoded in the instruction register 20 is transmitted to the first address allocation unit 7 via a control signal (not explicitly shown). The first address allocation unit 7 is
In synchronization with CLK F, the address <2000H> is read from the first address register 8 and output on the first address bus 2. When the address on the first address bus 2 is determined, the first data memory 1 outputs the data <500> stored at the address to the first data bus 3. The first data register 13 uses CLK
In synchronization with G, the contents on the first data bus 3 <500>
Read. Therefore, in the first data register 13,
The data <500> stored at the address 2000H of the first data memory 1 is stored. Further, the second address allocation unit 10 reads the address <2000H> from the second address register 11, and further reads the address <100H from the second offset register 12.
> Is read, the above two addresses are added, and the address <
2100H> and output to the second address bus 5.
【0022】第2のアドレスバス5上のアドレスが確定
すると、第2のデ−タメモリ4は、上記アドレスに格納
されているデータ<30>を第2のデータバス6に出力
する。第2のデータレジスタ14は、CLK Hに同期
して、第2のデータバス6上の内容<30>を読み込
む。従って、第2のデータレジスタ14には、第2のデ
ータメモリ4の2100H番地に格納されているデータ
<30>が格納される。When the address on the second address bus 5 is determined, the second data memory 4 outputs the data <30> stored at the above address to the second data bus 6. The second data register 14 reads the content <30> on the second data bus 6 in synchronization with CLKH. Therefore, the second data register 14 stores the data <30> stored at the address 2100H of the second data memory 4.
【0023】CLK Iに同期して、命令<mac R
0,R1>が実行される。インストラクションレジスタ
20において解読された命令は、乗算命令であるので、
乗算器15において第1のデータレジスタ13の内容<
500>と第2のデータレジスタ14の内容<30>が
読み込まれ、乗算が行われ、乗算結果<15000>が
計算結果としてアキュムレータ16に蓄積される。この
演算結果は、既にアキュムレータ16に格納されている
データ<5000>と加算され、アキュムレ−タ16に
データ<20000>として格納される。In synchronization with CLK I, the instruction <mac R
0, R1> is executed. Since the instruction decoded in the instruction register 20 is a multiplication instruction,
Contents of the first data register 13 in the multiplier 15 <
500> and the contents <30> of the second data register 14 are read, multiplication is performed, and the multiplication result <15000> is stored in the accumulator 16 as the calculation result. This operation result is added to the data <5000> already stored in the accumulator 16 and stored in the accumulator 16 as the data <20000>.
【0024】次に、CLK Jに同期して、命令<mo
ve (A0+C0),Acc>が実行される。インスト
ラクションレジスタ20において解読された命令が第1
のアドレスアロケーションユニット7に伝達されると第
1のアドレスアロケーションユニット7は、第1のアド
レスレジスタ8からアドレス<2000H>を読み出
し、更に第1のオフセットレジスタ9からアドレス<2
00H>を読み出し、上記2つのアドレスを加え、アド
レス<2200H>として第1のアドレスバス2上に出
力する。Next, in synchronization with CLK J, the instruction <mo
ve (A0 + C0), Acc> is executed. The instruction decoded in the instruction register 20 is the first
Of the first address allocation unit 7, the first address allocation unit 7 reads the address <2000H> from the first address register 8 and further the address <2H from the first offset register 9.
00H> is read, the above two addresses are added, and the address <2200H> is output to the first address bus 2.
【0025】一方、アキュムレ−タ16は、蓄えられて
いるデータ<20000>を第1のデータバス3上に出
力する。第1のアドレスバス2上のアドレス<2200
H>及び第1のアドレスバス2上のデータ<20000
>が確定すると、第1のデ−タメモリ4は、上記アドレ
スの該当する領域にデータ<20000>を格納する。
従って、第1のデータメモリ1の2200H番地のデー
タは<20000>となる。On the other hand, the accumulator 16 outputs the stored data <20000> onto the first data bus 3. Address on first address bus 2 <2200
H> and the data <20000 on the first address bus 2
> Is determined, the first data memory 4 stores the data <20000> in the area corresponding to the above address.
Therefore, the data at the address 2200H in the first data memory 1 becomes <20000>.
【0026】[0026]
【発明が解決しようとする課題】上述のような積和演算
を実行する場合には、データが格納されている第1のデ
ータメモリ1のアドレスと、係数などが格納されている
第2のデータメモリ4のアドレスを夫々アドレスレジス
タに格納しておき、そのアドレス情報を用いて第1のデ
ータメモリ1、及び第2のデータメモリ4からデータレ
ジスタにデータを読み込んだ後に、乗算器において演算
することが行われている。When performing the above product-sum operation, the address of the first data memory 1 in which the data is stored and the second data in which the coefficient and the like are stored. The addresses of the memories 4 are respectively stored in the address registers, and the address information is used to read the data from the first data memory 1 and the second data memory 4 into the data registers, and then the multiplier is operated. Is being done.
【0027】従って、これらの演算を行うには、予めア
ドレスレジスタに該当するアドレス情報を格納しておく
必要があった。通常、このようなアドレス情報はプログ
ラムメモリ20上にイミディエートデータとして格納さ
れているため、1つのアドレスレジスタにアドレス情報
を格納するのに1命令サイクル必要となり、アドレスレ
ジスタの設定に多くの時間を必要としていた。Therefore, in order to perform these calculations, it is necessary to store the corresponding address information in the address register in advance. Usually, such address information is stored in the program memory 20 as immediate data, so one instruction cycle is required to store the address information in one address register, and it takes a lot of time to set the address register. I was trying.
【0028】一方、データと係数などによる累積乗算
は、1命令サイクルで実行可能なハードウェアが供給さ
れているため、乗算を行う際には実際の乗算時間に比べ
て乗算に用いるデータや係数をデータレジスタに格納す
る時間が多くなり、効率よく演算を行うことが難しくな
るという問題点があった。On the other hand, since cumulative multiplication by data and coefficient is provided with hardware capable of executing in one instruction cycle, when performing multiplication, the data and coefficient used for multiplication are compared with the actual multiplication time. There is a problem in that it takes a lot of time to store the data in the data register, which makes it difficult to perform efficient calculation.
【0029】そこで、本発明は前述の問題点に鑑みて為
されたものであり、1つのアドレスレジスタにより、2
つのアドレスアロケーションユニットの各々のアドレス
設定を可能とするアドレス生成装置を提供することを目
的とする。Therefore, the present invention has been made in view of the above-mentioned problems, and one address register is used to
It is an object of the present invention to provide an address generator capable of setting an address of each of two address allocation units.
【0030】[0030]
【課題を解決するための手段】上記問題点を解決するた
めに、本発明のアドレス生成装置は、アドレス情報を格
納するアドレスレジスタと、アドレスレジスタの増減値
が格納されているオフセットレジスタと、アドレスレジ
スタ及びオフセットレジスタのアドレス値からアドレス
を生成する第1のアドレスアロケーションユニットと、
アドレスレジスタ及びオフセットレジスタのアドレス値
から第2のアドレスを生成する第2のアドレスアロケー
ションユニットと、第1及び第2のアドレスアロケーシ
ョンユニットに対して、アドレスレジスタ、及びオフセ
ットレジスタの選択情報が格納されているステータスレ
ジスタと、第1のアドレスアロケーションユニットが出
力するアドレス情報を選択的に出力する第1のアドレス
出力ユニットと、第2のアドレスアロケーションユニッ
トが出力するアドレス情報を選択的に出力する第2のア
ドレス出力ユニットと、を備えることにより、第1のデ
ータメモリ、及び第2のデータメモリのアドレスを1組
のアドレスレジスタ、及びオフセットレジスタにより生
成する機能を有する。In order to solve the above-mentioned problems, an address generator of the present invention comprises an address register for storing address information, an offset register for storing an increment / decrement value of the address register, and an address. A first address allocation unit for generating an address from the address values of the register and offset register;
A second address allocation unit that generates a second address from the address values of the address register and the offset register, and selection information of the address register and the offset register are stored for the first and second address allocation units. A status register, a first address output unit for selectively outputting address information output by the first address allocation unit, and a second address output unit for selectively outputting address information output by the second address allocation unit. By including the address output unit, it has a function of generating the addresses of the first data memory and the second data memory by a set of address registers and offset registers.
【0031】[0031]
【作用】上述の手段によれば、データメモリに対してア
クセスを行う命令がプログラムメモリからインストラク
ションレジスタに読み出されると、インストラクション
レジスタは命令の解読を行う。前記命令実行時には、イ
ンストラクションレジスタのアドレス選択情報により、
アドレス出力ユニットにて生成するアドレスを決定する
ことにより、少なくとも1組のアドレスレジスタにより
2組のアドレス情報を生成する。According to the above means, when an instruction for accessing the data memory is read from the program memory into the instruction register, the instruction register decodes the instruction. At the time of executing the instruction, by the address selection information of the instruction register,
By determining the address to be generated by the address output unit, two sets of address information are generated by at least one set of address registers.
【0032】[0032]
[第1の実施例]図1は本発明のアドレス生成装置を備
えたディジタル計算機の第1の実施例の概略構成図を示
し、同図において、従来例に示す図9と同一機能を有す
るものについては、同一番号を付し、その説明は省略す
る。[First Embodiment] FIG. 1 is a schematic block diagram of a first embodiment of a digital computer equipped with an address generating device of the present invention. In FIG. 1, it has the same function as that of FIG. Are denoted by the same reference numerals, and description thereof will be omitted.
【0033】本発明が従来例と異なる点は、第1のアド
レス出力ユニット22を第1のアドレスアロケーション
ユニット7と第1のデータメモリ1との間に、更に第2
のアドレス出力ユニット23を第2のアドレスアロケー
ションユニット10と第2のデータメモリ4との間に設
けたことである。而して、第1のアドレス出力ユニット
22及び第2のアドレス出力ユニット23はインストラ
クションレジスタ20において解読された命令コードに
応じて、第1のアドレスアロケーションユニット7及び
第2のアドレスアロケーションユニット10から出力さ
れるアドレス情報をゲートする機能を有しており、第1
のアドレス出力ユニット22は、第1のデータメモリ1
及び第2のデータメモリ4への全てのアドレス空間にア
クセスすることを可能とし、第2のアドレス出力ユニッ
ト23は、第1のアドレスアロケーションユニット22
が第1のデータメモリ1にアクセスすると同時に、第2
のアドレスアロケーションユニット23がデータのアク
セスを行う場合に、第2のデータメモリ4のアドレスを
指定し、データ転送を効率よく行うためにアドレスを設
定するものである。The present invention is different from the conventional example in that the first address output unit 22 is provided between the first address allocation unit 7 and the first data memory 1 and the second address output unit 22 is further provided.
That is, the address output unit 23 is provided between the second address allocation unit 10 and the second data memory 4. Thus, the first address output unit 22 and the second address output unit 23 output from the first address allocation unit 7 and the second address allocation unit 10 according to the instruction code decoded in the instruction register 20. It has a function to gate the address information to be
The address output unit 22 of the first data memory 1
And the second address output unit 23 makes it possible to access all address spaces to the second data memory 4 and the first address allocation unit 22.
Simultaneously accesses the first data memory 1 and at the same time
When the address allocation unit 23 of (1) accesses the data, the address of the second data memory 4 is designated, and the address is set to efficiently perform the data transfer.
【0034】尚、第1の実施例においては、第1のデー
タメモリ1のアドレス空間は0〜3FFFH、第2のデ
ータメモリ4のアドレス空間は4000H〜7FFFH
とする。ここで、XXXXHは16進数を表している。In the first embodiment, the address space of the first data memory 1 is 0 to 3FFFH and the address space of the second data memory 4 is 4000H to 7FFFH.
And Here, XXXXXH represents a hexadecimal number.
【0035】図2は本発明のアドレス生成装置を備えた
ディジタル計算機のプログラムの一例を示し、<mov
e R0,(A0),R1,(A0+C0)>は、A0
に示されるアドレスに格納されているデータをR0レジ
スタに転送すると同時に、A0+C0に示されるアドレ
スに格納されているデータをR1レジスタに転送する命
令であることを意味する機械語である。FIG. 2 shows an example of a program of a digital computer provided with the address generating device of the present invention, <mov
e R0, (A0), R1, (A0 + C0)> is A0
It is a machine language meaning that it is an instruction to transfer the data stored in the address indicated by 1 to the R0 register and at the same time, transfer the data stored in the address indicated by A0 + C0 to the R1 register.
【0036】図3は、図2に示すプログラムを実行した
場合のタイミングチャ−トを示し、同図において、従来
例に示す図11と同一機能の波形については、同一番号
を付し、その説明は省略する。FIG. 3 shows a timing chart when the program shown in FIG. 2 is executed. In FIG. 3, waveforms having the same functions as those of FIG. Is omitted.
【0037】AOUT0は第1のアドレス出力ユニット
22から出力される第1のアドレスの波形、AOUT1
は第2のアドレス出力ユニット23から出力される第2
のアドレスの波形である。AOUT0 is the waveform of the first address output from the first address output unit 22, AOUT1
Is the second address output from the second address output unit 23.
Is the waveform of the address.
【0038】図4はインストラクションレジスタ20に
おける命令コードの内容、及び図2に示されたプログラ
ムが実行された場合の命令コードの一部を示す。ARS
0、ARS1はそれぞれ2ビット構成であり、ARS
0、及びARS1が0の場合には第1のアドレスアロケ
ーションユニット7、及び第2のアドレスアロケーショ
ンユニット10は第1のアドレスレジスタ8の値を選択
し、一方ARS0、及びARS1が1の場合には第1の
アドレスアロケーションユニット7、及び第2のアドレ
スアロケーションユニット10は第2のアドレスレジス
タ11の値を選択し、ARS0、及びARS1が2の場
合には第1のアドレスアロケーションユニット7、及び
第2のアドレスアロケーションユニット10は第1のア
ドレスレジスタ8の値と第1のオフセットレジスタ9の
値の和のアドレスを選択し、ARS0、及びARS1が
3の場合には第1のアドレスアロケーションユニット
7、及び第2のアドレスアロケーションユニット10は
第2のアドレスレジスタ11の値と第2のオフセットレ
ジスタ9の値の和のアドレスを選択することを意味す
る。また、DMは命令コードがデュアルデータ転送命令
か否かを意味しており、DMが1の場合はデュアルデー
タ転送命令である。FIG. 4 shows the contents of the instruction code in the instruction register 20 and a part of the instruction code when the program shown in FIG. 2 is executed. ARS
0 and ARS1 each have a 2-bit structure.
0 and ARS1 are 0, the first address allocation unit 7 and the second address allocation unit 10 select the value of the first address register 8, while ARS0 and ARS1 are 1. The first address allocation unit 7 and the second address allocation unit 10 select the value of the second address register 11, and when ARS0 and ARS1 are 2, the first address allocation unit 7 and the second address allocation unit 7 are selected. Address allocation unit 10 selects the address of the sum of the value of the first address register 8 and the value of the first offset register 9, and if ARS0 and ARS1 are 3, the first address allocation unit 7, The second address allocation unit 10 has a second address register. Means to select a value and the address of the sum of the value of the second offset register 9 of motor 11. Further, DM means whether or not the instruction code is a dual data transfer instruction, and when DM is 1, it is a dual data transfer instruction.
【0039】図5は第1のアドレス出力ユニット22の
概略構成図である。221は第1のデータメモリ1のメ
モリ空間領域に格納されているアドレスを指定するアド
レス領域指定部、222は命令コードのDM信号がデュ
アルデータ転送命令である場合には、第1のアドレスア
ロケーションユニット7が出力するアドレスがアドレス
領域指定部221の範囲に属するか否かの判定を行うア
ドレス領域判定部、223はアドレス領域判定部222
が第1のアドレスアロケーションユニット7が出力する
アドレスを範囲外と判定した場合には、新たにアドレス
を生成するアドレス変換部である。FIG. 5 is a schematic block diagram of the first address output unit 22. 221 is an address area designating unit for designating an address stored in the memory space area of the first data memory 1, and 222 is a first address allocation unit when the DM signal of the instruction code is a dual data transfer instruction. The address area determination unit 223, which determines whether the address output by 7 belongs to the range of the address area specification unit 221, the address area determination unit 222 is an address area determination unit 222.
Is an address conversion unit that newly generates an address when it determines that the address output from the first address allocation unit 7 is out of the range.
【0040】図6は第2のアドレス出力ユニット23の
概略構成図である。その機能は第1のアドレス出力ユニ
ット22と同一である。FIG. 6 is a schematic configuration diagram of the second address output unit 23. Its function is the same as that of the first address output unit 22.
【0041】図2に示すプログラムを図1に示すディジ
タル計算機の動作を図3のタイミングチャートに従って
説明する。尚、第1のアドレスレジスタ8及び第1のオ
フセットレジスタ9へのアドレス情報の格納は、従来例
と同じであるので省略する。The operation of the digital computer shown in FIG. 1 for the program shown in FIG. 2 will be described with reference to the timing chart of FIG. The storage of the address information in the first address register 8 and the first offset register 9 is the same as that in the conventional example, and therefore its description is omitted.
【0042】CLK Kに同期して、プログラムカウン
タ18の値がnに更新される。CLK Lに同期して、
インストラクションレジスタ20はプログラムメモリ1
9のn番地に格納されている命令コード<move R
0,(A0),R1,(A0+C0)>を読み込み、命
令コードがデュアルデータ転送命令(A0レジスタに示
されるアドレスに格納されているデータをデータレジス
タR0に転送すると同時に、A0レジスタに格納されて
いるアドレスとC0レジスタに格納されているアドレス
の和の値をアドレス情報とし、そこに格納されているデ
ータをデータレジスタR1に転送すること)であると解
読する。さらに、プログラムカウンタ18の値がn+1
に更新される。The value of the program counter 18 is updated to n in synchronization with CLK K. In synchronization with CLK L,
The instruction register 20 is the program memory 1
Instruction code stored at address n of 9 <move R
0, (A0), R1, (A0 + C0)> is read, and the instruction code is stored in the A0 register at the same time as the dual data transfer instruction (the data stored in the address indicated by the A0 register is transferred to the data register R0). The address value is the sum of the address stored in the C0 register and the address stored in the C0 register, and the data stored therein is transferred to the data register R1). Further, the value of the program counter 18 is n + 1
Will be updated.
【0043】第1のアドレスアロケーションユニット7
は、命令コードからアドレス選択情報ARS0を読み取
る。命令コードから読み取られたアドレス選択情報AR
S0は、A0レジスタに格納された値<2000H>を
第1のアドレスアロケーションユニット7の出力情報と
することを意味するため、第1のアドレスアロケーショ
ンユニット7は、AALU0の値として<2000H>
を出力する。First address allocation unit 7
Reads the address selection information ARS0 from the instruction code. Address selection information AR read from the instruction code
Since S0 means that the value <2000H> stored in the A0 register is used as the output information of the first address allocation unit 7, the first address allocation unit 7 sets <2000H> as the value of AALU0.
Is output.
【0044】第2のアドレスアロケーションユニット1
0は、命令コードからアドレス選択情報ARS1を読み
取る。命令コードから読み取られたアドレス選択情報A
RS1は、A0レジスタに格納された値<2000H>
とC0レジスタに格納された値<200H>の和である
<2100H>を第2のアドレスアロケーションユニッ
ト10の出力情報とすることを意味するため、第2のア
ドレスアロケーションユニット10は、AALU1の値
として<2200H>を出力する。Second address allocation unit 1
0 reads the address selection information ARS1 from the instruction code. Address selection information A read from the instruction code
RS1 is the value stored in the A0 register <2000H>
<2100H>, which is the sum of the value <200H> stored in the C0 register and the value <2100H>, is used as the output information of the second address allocation unit 10. Therefore, the second address allocation unit 10 sets the value of AALU1 as <2200H> is output.
【0045】一方、インストラクションレジスタ20は
解読された命令コードがデュアルデータ転送命令である
ことを第1のアドレス出力ユニット22及び第2のアド
レス出力ユニット23に転送する。第1のアドレス出力
ユニット22のアドレス領域指定部221には、既に第
1のデータメモリ1のアドレス領域を示すデータ(0−
3FFFH)が格納されている。アドレス領域判定部2
22は、上記2つの情報により第1のアドレスアロケー
ションユニット7から出力されるアドレス<2000H
>が第1のデータメモリ1のアドレス空間(0−3FF
FH)内に存在していると判定し、第1のアドレスアロ
ケーションユニット7の出力<2000H>をそのま
ま、第1のアドレス出力ユニット22の出力AOUT0
として<2000H>を出力する。On the other hand, the instruction register 20 transfers the fact that the decoded instruction code is the dual data transfer instruction to the first address output unit 22 and the second address output unit 23. In the address area designating section 221 of the first address output unit 22, data (0-
3FFFH) is stored. Address area determination unit 2
22 is an address <2000H output from the first address allocation unit 7 based on the above two information.
> Is the address space of the first data memory 1 (0-3FF
FH), the output <2000H> of the first address allocation unit 7 remains unchanged, and the output AOUT0 of the first address output unit 22 remains unchanged.
<2000H> is output.
【0046】一方、第2のアドレス出力ユニット23の
アドレス領域指定部231には、既に第2のデータメモ
リ4のアドレス領域を示すデータ(4000H−7FF
FH)が格納されている。アドレス領域判定部232
は、上記2つの情報により第2のアドレスアロケーショ
ンユニット10から出力されるアドレス値<2200H
>が第2のデータメモリのアドレス空間(4000H−
7FFFH)内に存在していないと判定し、その旨をア
ドレス変換部233に伝達する。アドレス変換部233
は、第2のアドレスアロケーションユニット10から出
力されるアドレス値<2200H>を第2のデータメモ
リ4のアドレス空間(4000H〜7FFFH)の該当
するアドレス<6200H=2200H+4000H>
に変換し、出力する。On the other hand, in the address area designating section 231 of the second address output unit 23, the data (4000H-7FF) already indicating the address area of the second data memory 4 is already stored.
FH) is stored. Address area determination unit 232
Is an address value <2200H output from the second address allocation unit 10 according to the above two information.
> Is the address space of the second data memory (4000H-
7FFFH), it is notified to the address conversion unit 233. Address conversion unit 233
Represents the address value <2200H> output from the second address allocation unit 10 as the corresponding address <6200H = 2200H + 4000H> in the address space (4000H to 7FFFH) of the second data memory 4.
And output.
【0047】第1のデータメモリ1、及び第2のデータ
メモリ4は、それぞれ第1のアドレスバス2、及び第2
のアドレスバス5のアドレスが確定すると、第1のデー
タバス3、及び第2のデータバス6は、指定されたアド
レスに格納されている値を各々第1のデータバス3、及
び第2のデータバス6上に出力する。CLK Nに同期
して、第1のデータレジスタ13は第1のデータバス3
の値<500>を、第2のデータレジスタ14は第2の
データバス6の値<30>をそれぞれ取り込む。The first data memory 1 and the second data memory 4 are the first address bus 2 and the second data memory 4, respectively.
When the address of the address bus 5 is determined, the first data bus 3 and the second data bus 6 change the values stored at the specified addresses to the first data bus 3 and the second data, respectively. Output on bus 6. In synchronization with CLK N, the first data register 13 is connected to the first data bus 3
Value <500> of the second data bus 6 and the second data register 14 takes in the value <30> of the second data bus 6.
【0048】命令コード<mac R0,R1>の動作
については、従来例と同じであるので、説明は省略す
る。インストラクションレジスタ20において、命令コ
ード<move (A0+C0),Acc>が解読される
と、インストラクションレジスタ20はシングルデータ
転送命令であることを、第1のアドレスアロケーション
ユニット7に転送する。第1のアドレス出力ユニット2
2は、第1のアドレスアロケーションユニット7の出力
<2200H>が、第1のデータメモリ1のアドレス空
間(0−3FFFH)内に存在していることを判定す
る。インストラクションレジスタ20で解読された命令
は、シングルデータ転送命令であるので、第1のアドレ
ス出力ユニット22は第1のデータメモリ1の空間にア
クセスするアドレスを指定する。従って、第1のアドレ
ス出力ユニット22は、CLK Oに同期して、第1の
アドレスアロケーションユニット7の出力<2200H
>をそのまま、第1のデータメモリ4のアドレスとして
出力する。第1のデータメモリ1のアドレスが確定する
と、CLK Pに同期して、アキュムレータ16の値A
cc<20000>が第1のデータメモリの2200H
番地に格納される。The operation of the instruction code <mac R0, R1> is the same as that of the conventional example, and therefore its explanation is omitted. When the instruction code <move (A0 + C0), Acc> is decoded in the instruction register 20, the instruction register 20 transfers to the first address allocation unit 7 that it is a single data transfer instruction. First address output unit 2
2 determines that the output <2200H> of the first address allocation unit 7 exists in the address space (0-3FFFH) of the first data memory 1. Since the instruction decoded by the instruction register 20 is a single data transfer instruction, the first address output unit 22 specifies the address for accessing the space of the first data memory 1. Therefore, the first address output unit 22 outputs the output of the first address allocation unit 7 <2200H in synchronization with CLK O.
> Is output as it is as the address of the first data memory 4. When the address of the first data memory 1 is determined, the value A of the accumulator 16 is synchronized with CLK P.
cc <20000> is 2200H of the first data memory
It is stored in the address.
【0049】[第2の実施例]図7は本発明の第2の実
施例のディジタル計算機の概略構成図であり、同図にお
いて、従来例に示す図9と同一機能を有するものについ
ては、同一番号を付し、その説明は省略する。[Second Embodiment] FIG. 7 is a schematic block diagram of a digital computer according to a second embodiment of the present invention. In FIG. 7, those having the same functions as those of FIG. The same numbers are attached and the description thereof is omitted.
【0050】本発明が従来例、及び第1の実施例と異な
る点は、第1のアドレスマルチプレクサ24を第1のア
ドレスレジスタ8と第1のアドレスアロケーションユニ
ット7との間に、また第1のオフセットマルチプレクサ
25を第1のオフセットレジスタ9と第1のアドレスア
ロケーションユニット7との間に、第2のアドレスマル
チプレクサ26を第2のアドレスレジスタ11と第2の
アドレスアロケーションユニット10との間に、更に第
2のオフセットマルチプレクサ27を第2のオフセット
レジスタ12と第2のアドレスアロケーションユニット
10との間に夫々設けたことである。The present invention is different from the conventional example and the first embodiment in that the first address multiplexer 24 is provided between the first address register 8 and the first address allocation unit 7, and the first address multiplexer 24 is also provided. An offset multiplexer 25 is provided between the first offset register 9 and the first address allocation unit 7, a second address multiplexer 26 is provided between the second address register 11 and the second address allocation unit 10, and The second offset multiplexer 27 is provided between the second offset register 12 and the second address allocation unit 10, respectively.
【0051】第1のアドレスマルチプレクサ24、及び
第2のアドレスマルチプレクサ26は、命令コードのア
ドレス選択情報に基づいて、第1のアドレスレジスタ
8、或るいは第2のアドレスレジスタ11のいずれか一
方の出力を選択し、第1のオフセットマルチプレクサ2
5、及び第2のオフセットマルチプレクサ27は、命令
コードのアドレス選択情報に基づいて、第1のオフセッ
トレジスタ9、或るいは第2のオフセットレジスタ12
のいずれか一方の出力を選択する。The first address multiplexer 24 and the second address multiplexer 26 are arranged in either the first address register 8 or the second address register 11 based on the address selection information of the instruction code. Select the output, first offset multiplexer 2
5 and the second offset multiplexer 27, based on the address selection information of the instruction code, the first offset register 9 or the second offset register 12
Select one of the outputs.
【0052】図8は第2の実施例の内容を示すプログラ
ムである。FIG. 8 is a program showing the contents of the second embodiment.
【0053】インストラクションレジスタ20におい
て、命令コード<move R0,(A0),R1,
(A1+C1)>が解読され、命令コードのASR0を
0に、ASR1を3に、DMを1に設定する。命令コー
ド<move R0,(A0),R1,(A1+C1)
>が実行される場合について説明する。上記命令が実行
されると、第1のアドレスマルチプレクサ24は命令コ
ードのASR0を参照し、第1のアドレスレジスタ8の
出力AR0、或るいは第2のアドレスレジスタ11の出
力AR1のいずれかを選択し、一方第1のオフセットマ
ルチプレクサ25は命令コードのASR0を参照し、第
1のオフセットレジスタ9の出力CR0、或るいは第2
のオフセットレジスタ12の出力CR1のいずれかを選
択する。In the instruction register 20, the instruction code <move R0, (A0), R1,
(A1 + C1)> is decoded, and the instruction code ASR0 is set to 0, ASR1 is set to 3, and DM is set to 1. Instruction code <move R0, (A0), R1, (A1 + C1)
The case where> is executed will be described. When the instruction is executed, the first address multiplexer 24 refers to the instruction code ASR0 and selects either the output AR0 of the first address register 8 or the output AR1 of the second address register 11. On the other hand, the first offset multiplexer 25 refers to the instruction code ASR0 and outputs the output CR0 of the first offset register 9 or the second offset register 9.
Any one of the outputs CR1 of the offset register 12 is selected.
【0054】命令コードのASR0は0であるので、第
1のアドレスマルチプレクサ24は第1のアドレスレジ
スタ8の出力AR0を、第1のオフセットマルチプレク
サ25は第1のオフセットレジスタ9の出力CR0を選
択する。インストラクションレジスタ20の命令コード
<move R0,(A0),R1,(A1+C1)>
は、第1のアドレスレジスタ8に示されるアドレスの内
容を第1のデータレジスタ13に格納することを意味し
ているので、第1のアドレスアロケーションユニット7
は、第1のアドレスマルチプレクサ24の出力AR0を
出力する。また、ASR1は3であるので、第2のアド
レスマルチプレクサ26においては第2のアドレスレジ
スタ11の出力AR1が選択され、第2のオフセットマ
ルチプレクサ27においては第2のオフセットレジスタ
12の出力CR0が選択される。第2のアドレスアロケ
ーションユニット10は、第2のアドレスレジスタ11
に示されるアドレスと第2のオフセットレジスタ12に
示されるアドレスの和のアドレスとして出力する。Since the instruction code ASR0 is 0, the first address multiplexer 24 selects the output AR0 of the first address register 8 and the first offset multiplexer 25 selects the output CR0 of the first offset register 9. . Instruction code of instruction register 20 <move R0, (A0), R1, (A1 + C1)>
Means that the contents of the address indicated in the first address register 8 are stored in the first data register 13, so that the first address allocation unit 7
Outputs the output AR0 of the first address multiplexer 24. Since ASR1 is 3, the output AR1 of the second address register 11 is selected in the second address multiplexer 26, and the output CR0 of the second offset register 12 is selected in the second offset multiplexer 27. It The second address allocation unit 10 includes a second address register 11
And the address shown in the second offset register 12 is output.
【0055】以上の説明の如く、アドレス生成を効率よ
く行う機能を追加することにより、アドレスレジスタ、
及びオフセットレジスタに定数を読み込む命令を削減す
ることが可能となる。As described above, by adding the function for efficiently generating the address, the address register,
Also, it becomes possible to reduce the number of instructions for reading a constant into the offset register.
【0056】尚、本実施例においては、第1のアドレス
マルチプレクサ24は第1のアドレスレジスタ8を、第
1のオフセットマルチプレクサ24は第1のオフセット
レジスタ9を、第2のアドレスマルチプレクサ26は第
2のアドレスレジスタ11を、更に第2のオフセットマ
ルチプレクサ27は第2のオフセットレジスタ12を選
択するようにしたが、上記選択は命令コードの内容に応
じて任意に選択可能であり、また各アドレスマルチプレ
クサ、及び各オフセットマルチプレクサへの入力は2つ
に限定されるものではなく、少なくとも2つ以上の入力
より選択することができる。In this embodiment, the first address multiplexer 24 is the first address register 8, the first offset multiplexer 24 is the first offset register 9, and the second address multiplexer 26 is the second. , The second offset multiplexer 27 selects the second offset register 12. However, the above selection can be arbitrarily selected according to the content of the instruction code. Also, the number of inputs to each offset multiplexer is not limited to two, and at least two or more inputs can be selected.
【0057】[0057]
【発明の効果】本発明は以上の説明から明らかなよう
に、アドレス出力ユニットを設けることにより、ステー
タスレジスタの内容に応じて、アドレス出力ユニットに
てアドレスを該当するデータメモリのアドレスに変換す
ることにより、1つのアドレスレジスタ、及び1つのオ
フセットレジスタにより2つの異なったアドレスを生成
することが可能となる。従って、データメモリのアドレ
スを指定するためにアドレスレジスタにアドレス情報を
読み込む命令を削減することができるため、演算の高速
化及びプログラム容量の削減が可能となる。As is apparent from the above description, the present invention provides the address output unit so that the address output unit converts the address into the address of the corresponding data memory according to the contents of the status register. This makes it possible to generate two different addresses with one address register and one offset register. Therefore, it is possible to reduce the number of instructions for reading the address information into the address register to specify the address of the data memory, so that it is possible to speed up the operation and reduce the program capacity.
【0058】更に、アドレスレジスタを複数設けて、命
令コードの内容に応じて、アドレスマルチプレクサ、及
びオフセットマルチプレクサにおいて選択することによ
り、様々な組み合わせのアドレスを生成することが可能
となり、命令の削減、及び効率化を行うことができる。Further, by providing a plurality of address registers and selecting them in the address multiplexer and the offset multiplexer according to the content of the instruction code, it is possible to generate addresses in various combinations, reducing the number of instructions, and Efficiency can be improved.
【図1】本発明の第1の実施例に係るアドレス生成装置
を備えたディジタル計算機の概略構成図FIG. 1 is a schematic configuration diagram of a digital computer including an address generation device according to a first embodiment of the present invention.
【図2】本発明のアドレス生成装置を備えたディジタル
計算機におけるデータ転送命令を含んだプログラムを示
す図FIG. 2 is a diagram showing a program including a data transfer instruction in a digital computer provided with the address generation device of the present invention.
【図3】本発明のアドレス生成装置を備えたディジタル
計算機におけるデータ転送命令を実行した場合のタイミ
ングチャートを示す図FIG. 3 is a diagram showing a timing chart when a data transfer instruction is executed in a digital computer provided with the address generation device of the present invention.
【図4】本発明の特徴である命令コードの内容を示す図FIG. 4 is a diagram showing the contents of an instruction code, which is a feature of the present invention.
【図5】本発明の特徴である第1のアドレス出力ユニッ
トの構成図FIG. 5 is a configuration diagram of a first address output unit that is a feature of the present invention.
【図6】本発明の特徴である第2のアドレス出力ユニッ
トの構成図FIG. 6 is a configuration diagram of a second address output unit that is a feature of the present invention.
【図7】本発明の第2の実施例に係るアドレス生成装置
を備えたディジタル計算機の概略構成図FIG. 7 is a schematic configuration diagram of a digital computer including an address generation device according to a second embodiment of the present invention.
【図8】本発明のアドレス生成装置を備えたディジタル
計算機におけるデータ転送命令を含んだプログラムを示
す図FIG. 8 is a diagram showing a program including a data transfer instruction in a digital computer provided with the address generation device of the present invention.
【図9】従来のアドレス生成装置を備えたディジタル計
算機の概略構成図FIG. 9 is a schematic configuration diagram of a digital computer including a conventional address generation device.
【図10】従来のアドレス生成装置を備えたディジタル
計算機におけるデータ転送命令を含んだプログラムを示
す図FIG. 10 is a diagram showing a program including a data transfer instruction in a digital computer having a conventional address generation device.
【図11】従来のアドレス生成装置を備えたディジタル
計算機におけるデータ転送命令を実行した場合のタイミ
ングチャートを示す図FIG. 11 is a diagram showing a timing chart when a data transfer instruction is executed in a digital computer having a conventional address generation device.
1 第1のデータメモリ 2 第1のアドレスバス 4 第2のデータメモリ 5 第2のアドレスバス 7 第1のアドレスアロケーションユニット 8 第1のアドレスレジスタ 9 第1のオフセットレジスタ 10 第2のアドレスアロケーションユニット 11 第2のアドレスレジスタ 12 第2のオフセットレジスタ 20 インストラクションレジスタ 22 第1のアドレス出力ユニット 23 第2のアドレス出力ユニット 24 第1のアドレスマルチプレクサ 25 第1のオフセットマルチプレクサ 26 第2のアドレスマルチプレクサ 27 第2のオフセットマルチプレクサ 1 1st data memory 2 1st address bus 4 2nd data memory 5 2nd address bus 7 1st address allocation unit 8 1st address register 9 1st offset register 10 2nd address allocation unit 11 Second Address Register 12 Second Offset Register 20 Instruction Register 22 First Address Output Unit 23 Second Address Output Unit 24 First Address Multiplexer 25 First Offset Multiplexer 26 Second Address Multiplexer 27 Second Offset multiplexer
フロントページの続き (72)発明者 吉田 昭 大阪府守口市京阪本通2丁目18番地 三洋 電機株式会社内Front page continuation (72) Inventor Akira Yoshida 2-18 Keihan Hondori, Moriguchi City, Osaka Sanyo Electric Co., Ltd.
Claims (3)
ョンレジスタと、演算に用いるデータが格納されている
第1のデータメモリと、該第1のデータメモリに格納さ
れているデータとは異なるデータが格納されている第2
のデータメモリと、前記第1のデータメモリのアドレス
を生成する第1のアドレスアロケーションユニットと、
前記第2のデータメモリのアドレスを生成する第2のア
ドレスアロケーションユニットと、前記第1のアドレス
アロケーションユニット、及び第2のアドレスアロケー
ションユニットで生成されるアドレスの基となるアドレ
スが格納されているアドレスレジスタと、前記第1のア
ドレスアロケーションユニットが出力するアドレスを選
択的に出力する第1のアドレス出力ユニットと、前記第
2のアドレスアロケーションユニットが出力するアドレ
スを選択的に出力する第2のアドレス出力ユニットと、
を備え、 データ転送時においては、前記インストラクションレジ
スタで解読された命令コードのアドレス選択情報に基づ
いて、前記第1のアドレス出力ユニットは前記第1のア
ドレスアロケーションユニットによって出力された第1
のデータメモリのアドレスを、また前記第2のアドレス
出力ユニットは前記第2のアドレスアロケーションユニ
ットによって出力された第2のデータメモリのアドレス
を出力することによって前記第1のデータメモリ、及び
第2のデータメモリのアドレスに該当する2組のアドレ
スを生成することを特徴とするアドレス生成装置。1. An instruction register for reading and decoding an instruction, a first data memory in which data used for operation is stored, and data different from the data stored in the first data memory are stored. The second
Data memory, and a first address allocation unit for generating an address of the first data memory,
A second address allocation unit that generates an address of the second data memory, an address that stores an address that is a basis of an address that is generated by the first address allocation unit and the second address allocation unit. A register, a first address output unit for selectively outputting the address output by the first address allocation unit, and a second address output for selectively outputting the address output by the second address allocation unit. A unit,
In the data transfer, the first address output unit outputs the first address output unit by the first address allocation unit based on the address selection information of the instruction code decoded by the instruction register.
Of the first data memory, and the second address output unit outputs the address of the second data memory output by the second address allocation unit. An address generator, which generates two sets of addresses corresponding to addresses of a data memory.
れ、前記アドレスレジスタの増減値が格納されているオ
フセットレジスタを備え、前記第1のアドレスアロケー
ションユニット、及び第2のアドレスアロケーションユ
ニットは、前記アドレスレジスタ、及びオフセットレジ
スタの出力に基づいてアドレスを生成することを特徴と
する請求項1記載のアドレス生成装置。2. An offset register, which is used as a pair with the address register and stores an increase / decrease value of the address register, wherein the first address allocation unit and the second address allocation unit include the address register. And the address is generated based on the output of the offset register.
ョンレジスタと、演算に用いるデータが格納されている
第1のデータメモリと、該第1のデータメモリに格納さ
れているデータとは異なるデータが格納されている第2
のデータメモリと、前記第1のデータメモリのアドレス
を生成する第1のアドレスアロケーションユニットと、
前記第2のデータメモリのアドレスを生成する第2のア
ドレスアロケーションユニットと、前記第1のアドレス
アロケーションユニットで生成されるアドレスの基とな
るアドレスが格納されている第1のアドレスレジスタ
と、前記第2のアドレスアロケーションユニットで生成
されるアドレスの基となるアドレスが格納されている第
2のアドレスレジスタと、前記第1のアドレスレジスタ
と対として用いられ、前記第1のアドレスレジスタの増
減値が格納されている第1のオフセットレジスタと、前
記第2のアドレスレジスタと対として用いられ、前記第
2のアドレスレジスタの増減値が格納されている第2の
オフセットレジスタと、前記第1のアドレスレジスタ、
或るいは第2のアドレスレジスタの出力を選択する第1
のアドレスマルチプレクサ、及び第2のアドレスマルチ
プレクサと、前記第1のオフセットレジスタ、或るいは
第2のオフセットレジスタの出力を選択する第1のオフ
セットマルチプレクサ、及び第2のオフセットマルチプ
レクサと、を備え、 前記インストラクションレジスタで解読された命令コー
ドのアドレス選択情報に基づいて、前記第1のアドレス
マルチプレクサ、及び第2のアドレスマルチプレクサ
は、前記第1のアドレスレジスタ、或るいは第2のアド
レスレジスタの出力を選択し、また前記第1のオフセッ
トマルチプレクサ、及び第2のオフセットマルチプレク
サは、前記第1のオフセットレジスタ、或るいは第2の
オフセットレジスタの出力を選択することを特徴とする
アドレス生成装置。3. An instruction register for reading and decoding an instruction, a first data memory in which data used for operation is stored, and data different from the data stored in the first data memory are stored. The second
Data memory, and a first address allocation unit for generating an address of the first data memory,
A second address allocation unit that generates an address of the second data memory; a first address register that stores an address that is a basis of an address that is generated by the first address allocation unit; A second address register that stores an address that is the basis of an address generated by the second address allocation unit and the first address register are used as a pair, and the increase / decrease value of the first address register is stored. A first offset register and a second address register, which are used as a pair with the second address register, and store an increase / decrease value of the second address register; and the first address register,
Or the first to select the output of the second address register
Address multiplexer, and a second address multiplexer, and a first offset multiplexer that selects an output of the first offset register or the second offset register, and a second offset multiplexer. Based on the address selection information of the instruction code decoded by the instruction register, the first address multiplexer and the second address multiplexer select the output of the first address register or the second address register. In addition, the first offset multiplexer and the second offset multiplexer select the output of the first offset register or the second offset register.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP14629593A JPH076082A (en) | 1993-06-17 | 1993-06-17 | Address generating device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP14629593A JPH076082A (en) | 1993-06-17 | 1993-06-17 | Address generating device |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH076082A true JPH076082A (en) | 1995-01-10 |
Family
ID=15404453
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP14629593A Pending JPH076082A (en) | 1993-06-17 | 1993-06-17 | Address generating device |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH076082A (en) |
-
1993
- 1993-06-17 JP JP14629593A patent/JPH076082A/en active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3027970B2 (en) | Digital signal processor memory management unit and method | |
| JPH08106375A (en) | Signal processing calculator | |
| US6502182B1 (en) | Digital signal processing device | |
| JPH076082A (en) | Address generating device | |
| US5442125A (en) | Signal processing apparatus for repeatedly performing a same processing on respective output channels in time sharing manner | |
| US5590302A (en) | Device for generating structured addresses | |
| JPH07325581A (en) | Musical sound generator | |
| JP3505907B2 (en) | Signal delay device and digital signal processing device | |
| JP3019767B2 (en) | Digital signal processor | |
| JP3178036B2 (en) | Signal processing device | |
| JP2697619B2 (en) | N-point FFT dedicated processor | |
| JP2684820B2 (en) | Surround circuit | |
| JP3022186B2 (en) | Digital signal processor | |
| JPS6260755B2 (en) | ||
| JPH064400Y2 (en) | Voice analyzer | |
| JPH0719246B2 (en) | Digital signal processor | |
| JP2686234B2 (en) | Digital signal processing device and signal processing method | |
| JPS6310254A (en) | Information processor | |
| JPH07334151A (en) | Effect adding device and musical tone generating device using the same | |
| JP2002116951A (en) | Address generation circuit | |
| JPH1069541A (en) | Picture processor | |
| JP2003122628A (en) | Digital signal processing device, program conversion device, and communication system having digital signal processing device | |
| JPH0991135A (en) | Arithmetic processing device and instruction conversion device | |
| JPH11161634A (en) | Method for executing digital signal processing operation and digital signal processor | |
| JPS6167178A (en) | Image signal processing device |