JP3139310B2 - Digital signal processor - Google Patents
Digital signal processorInfo
- Publication number
- JP3139310B2 JP3139310B2 JP06274425A JP27442594A JP3139310B2 JP 3139310 B2 JP3139310 B2 JP 3139310B2 JP 06274425 A JP06274425 A JP 06274425A JP 27442594 A JP27442594 A JP 27442594A JP 3139310 B2 JP3139310 B2 JP 3139310B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- bus
- dma
- program
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Bus Control (AREA)
- Microcomputers (AREA)
Description
【0001】[0001]
【産業上の利用分野】この発明は、ディジタル・シグナ
ル・プロセッサ(DSP)等の演算に供されるデータを
外部装置から内部のデータメモリにダイレクト・メモリ
・アクセス(DMA)転送するディジタル信号処理装置
及びそのダイレクト・メモリ・アクセス制御方法に関す
る。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a digital signal processor for transferring data used for operation of a digital signal processor (DSP) or the like from an external device to an internal data memory by direct memory access (DMA). And its direct memory access control method.
【0002】[0002]
【従来の技術】画像処理装置や音源装置等で使用される
DSPは、内部に備えられたデータRAM(ランダム・
アクセス・メモリ)に外部から供給される係数データ及
び信号データを一旦格納し、内部の乗算器及びALU
(算術論理ユニット)でこれらのデータの演算処理を実
行したのち、その演算結果をデータRAMに格納し外部
に出力することにより、フィルタリング等の各種処理を
実行する。この種のDSPでは、内部に備えられるデー
タRAMの容量に限りがあるため、演算処理に供される
係数データや信号データは、演算処理の合間に外部のメ
モリ等からDMA転送によって補充され、演算処理結果
についても、演算処理の合間に外部のメモリ等に逐次D
MA転送される。従来、DSPの内部のメモリと外部装
置との間のDMA転送は、DSPの外部に設けられたホ
ストCPUがDSPの演算実行状況に合わせてDMA転
送を制御するDMAコントローラを制御することにより
なされている。2. Description of the Related Art A DSP used in an image processing device, a sound source device, and the like is provided with a data RAM (random data storage) provided therein.
Access memory) temporarily stores coefficient data and signal data supplied from outside, and stores the internal multiplier and ALU
After the arithmetic processing of these data is executed by the (arithmetic logic unit), various processing such as filtering is executed by storing the arithmetic result in the data RAM and outputting it to the outside. In this type of DSP, since the capacity of a data RAM provided inside is limited, coefficient data and signal data to be provided for arithmetic processing are supplemented by DMA transfer from an external memory or the like during arithmetic processing, and arithmetic processing is performed. The processing results are also stored in an external memory, etc.
MA transfer is performed. 2. Description of the Related Art Conventionally, DMA transfer between a memory inside a DSP and an external device is performed by a host CPU provided outside the DSP controlling a DMA controller that controls the DMA transfer in accordance with a calculation execution state of the DSP. I have.
【0003】[0003]
【発明が解決しようとする課題】しかしながら、このよ
うにホストCPUでDMAコントローラの制御、即ちD
SPと外部装置との間のDMA転送を制御すると、ホス
トCPUによるDMA転送と、DSPの演算処理の間の
連係のための時間的なロスが、DSPとホストCPUの
双方に発生するという問題がある。例えば、DSPが現
有データの演算処理を終了し、次のデータを必要とした
ときには、DSPが演算を中断してホストCPUに割り
込みをかける。ホストCPUは、この割り込みを受け
て、DMAコントローラにDMA起動を要求し、データ
転送を行う。データ転送終了後、ホストCPUはDSP
に演算を再開させる。このように、DSP側では演算中
断のロスタイムが発生し、ホストCPU側では割り込み
処理の負荷が発生する。However, control of the DMA controller by the host CPU, that is, D
When the DMA transfer between the SP and the external device is controlled, there is a problem that a time loss for the cooperation between the DMA transfer by the host CPU and the arithmetic processing of the DSP occurs in both the DSP and the host CPU. is there. For example, when the DSP finishes the operation of the existing data and needs the next data, the DSP interrupts the operation and interrupts the host CPU. In response to the interrupt, the host CPU requests the DMA controller to start DMA, and performs data transfer. After the data transfer is completed, the host CPU
To restart the operation. As described above, a loss time of the interruption occurs on the DSP side, and a load of the interrupt processing occurs on the host CPU side.
【0004】この発明は、このような問題点に鑑みなさ
れたもので、CPUとの連係による時間的なロスの発生
を無くし、システム全体のデータ処理効率を向上させる
ことができるディジタル信号処理装置及びそのダイレク
ト・メモリ・アクセス制御方法を提供することを目的と
する。SUMMARY OF THE INVENTION The present invention has been made in view of such a problem, and a digital signal processing apparatus and a digital signal processing apparatus which can eliminate the occurrence of a time loss due to cooperation with a CPU and improve the data processing efficiency of the entire system. An object of the present invention is to provide a direct memory access control method.
【0005】[0005]
【課題を解決するための手段】この発明に係るディジタ
ル信号処理装置は、外部バスとの間でデータの送受が可
能な第1のバスと、演算処理のためのデータを転送する
複数の第2のバスと、これらのバスのうちの任意のバス
に対してそれぞれ個別にアクセス可能な複数のデータメ
モリと、これらデータメモリのうち前記第2のバスとア
クセス可能な複数のデータメモリ間でデータを演算処理
する演算処理手段と、この演算処理手段を制御する演算
命令を含むプログラムを格納するプログラムメモリと、
このプログラムメモリから順次命令を読み出して各部を
制御する命令解読手段とを備え、前記外部バスを介して
CPUと接続されると共に前記CPUによって起動され
て所定のディジタル信号処理を実行するディジタル信号
処理装置において、前記プログラムメモリに格納される
プログラムは、前記演算命令の合間にダイレクト・メモ
リ・アクセス実行用のDMA命令を配置させたものであ
り、前記命令解読手段は、前記DMA命令を解読する
と、前記CPUとは独立に外部のDMA制御手段を起動
して前記第1のバスに接続されたデータメモリと外部装
置との間のダイレクト・メモリ・アクセスを開始させる
と共に、次の演算命令によって引き続き前記演算処理手
段を制御して、前記第1のバスに接続されたデータメモ
リに対するダイレクト・メモリ・アクセスの実行と並行
して前記第2のバスに接続された複数のデータメモリ間
での演算処理の実行を制御することを特徴とする。A digital signal processing apparatus according to the present invention is capable of transmitting and receiving data to and from an external bus.
Transfer the data for arithmetic processing to the first bus
A plurality of second buses and any of these buses
Multiple data sources that can be individually accessed for
Memory and the second bus of these data memories.
Data processing between multiple accessible data memories
Processing means for performing the calculation, and calculation for controlling the processing means
A program memory for storing a program including instructions,
Instructions are read out sequentially from this program memory and each part is
Command decoding means for controlling, via the external bus
Connected to the CPU and started by the CPU
Digital signal that performs predetermined digital signal processing
In the processing device, the program is stored in the program memory.
The program is written directly between the operation instructions.
DMA instruction for re-access execution
And the command decoding means decodes the DMA command.
And activates external DMA control means independently of the CPU
And a data memory connected to the first bus and an external device.
Initiates direct memory access to
With the next operation instruction,
Controlling a stage to store data memos connected to said first bus.
Parallel with execution of direct memory access to memory
Between a plurality of data memories connected to the second bus
The execution of the arithmetic processing in is controlled .
【0006】[0006]
【0007】[0007]
【作用】この発明に係るディジタル信号処理装置によれ
ば、ディジタル信号処理装置の内部のプログラムに、演
算命令と共にDMA命令を含ませておき、このプログラ
ムの実行過程で、DMA命令が解読された場合に、外部
のDMA制御手段を起動してDMA転送を実行させるよ
うにしているので、ホストCPUがDMA転送に全く関
与する必要がない。このため、CPUに対する割り込み
も不要となり、CPUの負荷が軽減される。また、ディ
ジタル信号処理装置から直接DMAを起動することがで
きるので、ディジタル信号処理装置での中断時間も短縮
される。SUMMARY OF] According to the digital signal processing apparatus according to the present invention, within the program of the digital signal processing apparatus, operation instruction previously moistened with DMA commands with, during execution of the program, if the DMA instruction is decrypted Furthermore, since the external DMA control means is activated to execute the DMA transfer, the host CPU does not need to be involved in the DMA transfer at all. Therefore, an interrupt to the CPU is not required, and the load on the CPU is reduced. Further, since DMA can be started directly from the digital signal processing device, the interruption time in the digital signal processing device is also reduced.
【0008】また、この発明に係るディジタル信号処理
装置によれば、複数のバスのうちの任意のバスに対して
それぞれ個別にアクセス可能な複数のデータメモリを備
え、演算処理のためにデータを読み書きするデータメモ
リとDMA転送されるデータメモリとを独立させると共
に、演算命令の合間にDMA命令を配置させたプログラ
ムを実行させることにより、あるデータメモリに対する
DMAの実行中に他のデータメモリをアクセスして演算
処理を実行させることができるので、データ処理効率を
更に向上させることができる。Further, according to the digital signal processing device of the present invention, a plurality of data memories which can individually access any of the plurality of buses are provided, and data is read and written for arithmetic processing. The data memory to be DMA-transferred and the data memory to be DMA-transferred are made independent, and a program in which a DMA instruction is arranged between operation instructions is executed to access another data memory during execution of DMA for one data memory. As a result, the data processing efficiency can be further improved.
【0009】[0009]
【実施例】以下、図面を参照して、この発明の実施例に
ついて説明する。図1は、この発明の一実施例に係るゲ
ーム機器のシステム構成を示すブロック図である。この
システムは、システム・コントロール・ユニット(以
下、SCUと呼ぶ)1によって調停される3つのバス
2,3,4に、各種の機能要素を接続して構成されてい
る。バス2には、システム全体の制御を司るCPU5
と、このCPU5の作業領域を提供するワークRAM6
と、システム起動時の処理プログラムを記憶したブート
ROM(リード・オンリー・メモリ)7とが接続されて
いる。バス3には、ゲームROM9等のゲームソースが
接続されている。バス4には、画像プロセッサ11と音
源プロセッサ12とが接続されている。Embodiments of the present invention will be described below with reference to the drawings. FIG. 1 is a block diagram showing a system configuration of a game machine according to one embodiment of the present invention. This system is configured by connecting various functional elements to three buses 2, 3, and 4 arbitrated by a system control unit (hereinafter, referred to as SCU) 1. The bus 2 has a CPU 5 for controlling the entire system.
And a work RAM 6 for providing a work area for the CPU 5
And a boot ROM (read only memory) 7 which stores a processing program at the time of system startup. A game source such as a game ROM 9 is connected to the bus 3. An image processor 11 and a sound source processor 12 are connected to the bus 4.
【0010】SCU1には、バス2,3,4の切換え制
御を実行するバスコントローラ21と、内部のメモリと
外部の回路との間でデータ、プログラム等をDMA転送
するDMAコントローラ22と、内部のメモリに格納さ
れた係数データと信号入力データとの積和演算処理を実
行するDSP23とが設けられている。The SCU 1 includes a bus controller 21 for executing switching control of the buses 2, 3, and 4, a DMA controller 22 for performing DMA transfer of data and programs between an internal memory and an external circuit, and an internal controller. A DSP 23 for executing a product-sum operation of the coefficient data and the signal input data stored in the memory is provided.
【0011】図2は、DSP23の更に詳細な構成を示
すブロック図である。このDSP23には、図面上では
0,1,2,3の番号が付加された4つのデータRAM
30,31,32,33が備えられている。これらのデ
ータRAM30〜33は、4つの独立したバス34,3
5,36,37からそれぞれ独立にアクセスが可能にな
っている。即ち、4つのバス34〜37のうち、D0バ
ス34は、双方向バッファ38を介してバスコントロー
ラ21に接続されており、バスコントローラ21を介し
て外部のバス2,3,4との間でデータのやりとりが行
えるようになっている。D1バス35、Xバス36、Y
バス37は、DSP23の内部の演算用バスであるが、
そのうちD1バス35は、DMAコントローラ22にも
接続されている。FIG. 2 is a block diagram showing a more detailed configuration of the DSP 23. The DSP 23 has four data RAMs numbered 0, 1, 2, and 3 in the drawing.
30, 31, 32, and 33 are provided. These data RAMs 30 to 33 have four independent buses 34, 3
5, 36 and 37 can access each independently. That is, of the four buses 34 to 37, the D0 bus 34 is connected to the bus controller 21 via the bidirectional buffer 38, and communicates with the external buses 2, 3, and 4 via the bus controller 21. Data can be exchanged. D1 bus 35, X bus 36, Y
The bus 37 is an arithmetic bus inside the DSP 23,
The D1 bus 35 is also connected to the DMA controller 22.
【0012】各データRAM30〜33のアドレス端子
には、各データRAM30〜33毎に設けられてD1バ
ス35に共通に接続されたアドレスカウンタ(CT)4
0,41,42,43からのアドレスと、D0バス34
に接続された外部からの共通メモリアクセスに使用され
るアドレスレジスタ(RA)44からのアドレスのいず
れか一方が、それぞれ選択回路45,46,47,48
で選択されて与えられる。また、各データRAM30〜
33には、D0バス34上のデータとD1バス35上の
データのうち、選択回路50,51,52,53で選択
されたいずれか一方のデータが格納される。また、各デ
ータRAM30〜33からは、4つのバス34〜37の
うち、ゲート回路54,55,56,57を介して選択
された任意のバスにデータが読み出される。Address terminals of the data RAMs 30 to 33 are provided with an address counter (CT) 4 provided for each of the data RAMs 30 to 33 and commonly connected to the D1 bus 35.
0, 41, 42, and 43 and the D0 bus 34
One of the addresses from the address register (RA) 44 used for the external common memory access connected to the selectors 45, 46, 47, and 48 respectively.
Is selected and given. In addition, each data RAM 30-
33 stores any one of the data on the D0 bus 34 and the data on the D1 bus 35 selected by the selection circuits 50, 51, 52, and 53. From each of the data RAMs 30 to 33, data is read out to an arbitrary bus selected from the four buses 34 to 37 via the gate circuits 54, 55, 56, and 57.
【0013】プログラムRAM60は、このDSP23
の実行を規定するプログラムを記憶するメモリで、外部
の例えばワークRAM7からバス2、バスコントローラ
21、双方向バッファ38及びD0バス34を介してD
MA転送されたプログラムを記憶する。プログラムRA
M60のアドレスは、プログラムカウンタ(PC)61
によって与えられる。PC値は、初期設定時には、外部
のCPU5からD0バス34及び選択回路68を介して
TOPレジスタ63に格納され、プログラムのDMA転
送時は、D1バス35及び選択回路68を介して格納さ
れ、DMA実行に先だって選択回路62を介してTOP
レジスタ63に退避される。The program RAM 60 stores the DSP 23
Is a memory for storing a program that defines the execution of the program.
The program transferred by the MA is stored. Program RA
The address of M60 is a program counter (PC) 61
Given by The PC value is stored in the TOP register 63 from the external CPU 5 via the D0 bus 34 and the selection circuit 68 during the initial setting, and is stored via the D1 bus 35 and the selection circuit 68 during the DMA transfer of the program. Prior to execution, TOP via the selection circuit 62
It is saved in the register 63.
【0014】PC値に従ってプログラムRAM60から
読み出された命令コードは、フェッチ回路64でフェッ
チされ、命令デコーダ65で解読される。命令デコーダ
65は、この解読結果に基づいてDSP23の各部を制
御すると共に、E,V,C,Sの各種フラグ66を書き
換える。また、命令デコーダ65は、DMAコントロー
ラ22に対するパラメータの設定やDMAの起動制御も
実行する。この場合、フェッチ回路64にフェッチされ
たパラメータは、ゲート回路67及びD1バス35を介
してDMAコントローラ22に転送される。また、PC
値及び各種のフラグ66は、選択回路68を介してTO
Pレジスタ63及びD0,D1バス34,35から供給
されたり、書き換えられたりすると共に、ゲート回路6
9及びD0バス34を介して外部に転送される。The instruction code read from the program RAM 60 according to the PC value is fetched by the fetch circuit 64 and decoded by the instruction decoder 65. The instruction decoder 65 controls each unit of the DSP 23 based on the decoding result, and rewrites various flags 66 of E, V, C, and S. The instruction decoder 65 also performs setting of parameters for the DMA controller 22 and control of starting DMA. In this case, the parameters fetched by the fetch circuit 64 are transferred to the DMA controller 22 via the gate circuit 67 and the D1 bus 35. Also, PC
The value and various flags 66 are stored in the TO
It is supplied from the P register 63 and the D0 and D1 buses 34 and 35 and is rewritten.
9 and transferred via the D0 bus 34 to the outside.
【0015】乗算器71は、選択回路72で選択され、
RXレジスタ73に格納されたD1バス35上又はXバ
ス36上のデータと、RYレジスタ74に格納されたY
バス37上のデータとを乗算する。その乗算結果は、上
位ビットがPHレジスタ75、下位ビットが選択回路7
6を介してPLレジスタ77に格納される。PLレジス
タ77には、D1バス35、Xバス36上のデータも選
択回路76で選択されて格納されるようになっている。
ALU78は、PH,PLレジスタ75,77に格納さ
れたデータと、ACH,ACLレジスタ79,80に格
納されたデータとを加算する。その加算結果は、上位ビ
ットがACHレジスタ79に、下位ビットが選択回路8
1を介してACLレジスタ80に格納されると共に、シ
フトレジスタ82及びゲート回路83介してD1データ
に出力される。この構成により、積和演算等の演算処理
を実行することができる。The multiplier 71 is selected by a selection circuit 72,
The data on the D1 bus 35 or the X bus 36 stored in the RX register 73 and the Y stored in the RY register 74
The data on the bus 37 is multiplied. The result of the multiplication is that the upper bit is the PH register 75 and the lower bit is
6, and is stored in the PL register 77. The data on the D1 bus 35 and the X bus 36 are also selected by the selection circuit 76 and stored in the PL register 77.
The ALU 78 adds the data stored in the PH and PL registers 75 and 77 and the data stored in the ACH and ACL registers 79 and 80. As a result of the addition, the upper bits are stored in the ACH register 79 and the lower bits are stored in the selection circuit 8.
1 and is output to the D1 data via the shift register 82 and the gate circuit 83 while being stored in the ACL register 80. With this configuration, it is possible to execute arithmetic processing such as a product-sum operation.
【0016】次に、このシステムの動作について説明す
る。CPU5が、先ず、ワークRAM6に格納されてい
るDSP23の実行用のプログラムをDSP23のプロ
グラムRAM60に転送する。このとき、DSP23の
プログラムRAM60の容量には制限があるので、プロ
グラムRAM60が記憶可能な量だけプログラムが転送
される。次に、CPU5は、DSP23のプログラムを
起動するPC値をPC61に転送する。更に、実行フラ
グEXを1にして、プログラムを開始させる。Next, the operation of this system will be described. First, the CPU 5 transfers the execution program of the DSP 23 stored in the work RAM 6 to the program RAM 60 of the DSP 23. At this time, since the capacity of the program RAM 60 of the DSP 23 is limited, the program is transferred by an amount that the program RAM 60 can store. Next, the CPU 5 transfers the PC value for activating the program of the DSP 23 to the PC 61. Further, the execution flag EX is set to 1 to start the program.
【0017】DSP23のプログラムが起動されたら、
以後はCPU5の制御によらず、DSP23が独立して
以下の処理を実行する。図3は、プログラムRAM60
に格納されたプログラムの一例を示す図、図4はそのプ
ログラムにより実行される処理の内容を示すフローチャ
ートである。When the program of the DSP 23 is started,
After that, the DSP 23 independently executes the following processing without depending on the control of the CPU 5. FIG. 3 shows the program RAM 60.
And FIG. 4 is a flowchart showing the contents of processing executed by the program.
【0018】まず、起動直後においては、データRAM
30〜33に係数パラメータ、演算用信号データ等のD
SP処理に必要なデータが全く格納されていない状態で
あるため、これらのデータをデータRAM30〜33に
格納する必要がある。このため、プログラムの先頭番地
“0”に、DMACパラメータ設定命令を配置し、続い
てDMA命令、DMA終了確認命令を配置する。命令デ
コーダ65は、DMACパラメータ設定命令を解読する
と、続くDMACパラメータをD1バス35に出力する
と共に、DMAコントローラ22にレジスタライト信号
を出力する。DMACパラメータは、例えば、転送元ア
ドレス、転送先アドレス及び転送ワード数からなり、転
送元アドレスとして例えばワークRAM6の係数データ
の格納領域の先頭番地、転送ワード数として係数データ
数がDMAコントローラ22に設定され、転送先アドレ
スとしてデータRAM30の先頭番地がアドレスカウン
タ40に設定される。そして、命令デコーダ65がDM
A命令を解読すると、DMAコントローラ22にDMA
スタート信号が出力される。これにより、DMAコント
ローラ22は、外部のワークRAM6から内部のデータ
RAM30へ係数データのDMA転送を実行する(S
1)。First, immediately after startup, the data RAM
30 to 33 include the coefficient parameters, the signal data for calculation, etc.
Since no data required for the SP processing is stored at all, it is necessary to store these data in the data RAMs 30 to 33. For this reason, a DMAC parameter setting instruction is arranged at the start address “0” of the program, followed by a DMA instruction and a DMA end confirmation instruction. When decoding the DMAC parameter setting command, the command decoder 65 outputs the following DMAC parameter to the D1 bus 35 and outputs a register write signal to the DMA controller 22. The DMAC parameters include, for example, a transfer source address, a transfer destination address, and a transfer word number. For example, the start address of the coefficient data storage area of the work RAM 6 is set as the transfer source address, and the coefficient data number is set as the transfer word number in the DMA controller 22. Then, the start address of the data RAM 30 is set in the address counter 40 as the transfer destination address. Then, the instruction decoder 65 sets the DM
When the A instruction is decoded, the DMA
A start signal is output. Thus, the DMA controller 22 executes the DMA transfer of the coefficient data from the external work RAM 6 to the internal data RAM 30 (S
1).
【0019】DMAが開始されると、TOフラグは
“1”になり、以後、DMAコントローラ22からDM
A終了信号が出力されるまで、TOフラグは“1”を維
持する。続く、DMA終了確認命令では、このTOフラ
グが“0”になるまで、待ち状態となる(S2)。同様
の処理により、データRAM31に外部から演算入力デ
ータをDMA転送する(S3,S4)。When the DMA is started, the TO flag becomes "1".
The TO flag maintains "1" until the A end signal is output. In the subsequent DMA end confirmation command, the system waits until the TO flag becomes "0" (S2). By the same processing, the operation input data is DMA-transferred from the outside to the data RAM 31 (S3, S4).
【0020】更に、同様の処理により、データRAM3
2に外部から演算入力データをDMA転送するが(S
5)、この状態では、既にデータRAM30,31に係
数データ及び演算入力データがそれぞれ格納されている
ので、これらのデータ間の演算処理は実行可能である。
そこで、データRAM32に対するDMA転送が開始さ
れたら、直ちにデータRAM30に格納された係数デー
タと、データRAM31に格納された演算入力データと
を、乗算器71及びALU78を使用して積和演算処理
し、その演算結果をデータRAM33に格納する処理を
実行する(S6)。この場合、図5(a)に示すよう
に、バス上でデータが衝突しないように、データRAM
32へのDMA転送はD0バス34を介して行い、デー
タRAM30からの係数データの読み出しはXバス3
6、データRAM31からの演算入力データの読み出し
はYバス37をそれぞれ介して行い、データRAM33
への演算結果の書き込みはD1バス35を介して行うと
いうように、各データの転送経路をそれぞれ独立させ
る。これにより、データRAM32へのDMA転送とデ
ータRAM30,31,33による演算処理とを並列に
実行することができる。Further, by the same processing, the data RAM 3
2, the operation input data is DMA-transferred from outside (S
5) In this state, since the coefficient data and the operation input data are already stored in the data RAMs 30 and 31, respectively, the operation processing between these data can be executed.
Therefore, as soon as the DMA transfer to the data RAM 32 is started, the coefficient data stored in the data RAM 30 and the operation input data stored in the data RAM 31 are subjected to a product-sum operation using the multiplier 71 and the ALU 78. A process of storing the calculation result in the data RAM 33 is executed (S6). In this case, as shown in FIG. 5A, the data RAM is used to prevent data collision on the bus.
DMA transfer to the data RAM 30 is performed via the D0 bus 34, and reading of coefficient data from the data RAM 30 is performed on the X bus 3
6. The operation input data is read from the data RAM 31 via the Y bus 37, respectively.
The transfer result of each data is made independent so that the calculation result is written through the D1 bus 35. Thus, the DMA transfer to the data RAM 32 and the arithmetic processing by the data RAMs 30, 31, 33 can be executed in parallel.
【0021】一連の演算処理が終了した時点で、DMA
終了確認命令が実行される(S7)。図3に示すよう
に、DMA終了確認時T1では、DMA処理が終了(T
2で終了)しているケースが殆どであり、次の命令の待
ち時間は実質的に無くなる。次に、データRAM33に
格納された演算結果を、D0バス34を介して外部にD
MA転送する(S8)。この様子を図5(b)に示す。
DMA終了確認がなされたら(S9)、データRAM3
1への演算入力データのDMA転送を開始し(S1
0)、続いてデータRAM30の係数データとデータR
AM32の演算入力データとの演算処理を実行し、その
演算結果をデータRAM33に格納する(S11)。こ
の様子を図5(c)に示す。演算処理終了後、DMA終
了の確認がなされたら(S12)、データRAM33に
格納された演算結果を外部にDMA転送する(S1
3)。DMA終了確認がなされたら(S14)、以後、
ステップS5〜S14を繰り返す。When a series of arithmetic processing is completed, the DMA
An end confirmation command is executed (S7). As shown in FIG. 3, at the time of confirming the end of the DMA T1, the DMA processing is completed (T
In most cases, the waiting time for the next instruction is substantially eliminated. Next, the operation result stored in the data RAM 33 is transmitted to the outside via the D0 bus 34.
MA transfer is performed (S8). This situation is shown in FIG.
When the DMA end is confirmed (S9), the data RAM 3
1 starts the DMA transfer of the operation input data to S1 (S1).
0), followed by the coefficient data and data R in the data RAM 30.
The arithmetic processing with the arithmetic input data of AM32 is executed, and the arithmetic result is stored in the data RAM 33 (S11). This state is shown in FIG. After completion of the arithmetic processing, if the end of the DMA is confirmed (S12), the arithmetic result stored in the data RAM 33 is DMA-transferred externally (S1).
3). When the DMA end is confirmed (S14),
Steps S5 to S14 are repeated.
【0022】また、例えば、図6に示すように、データ
RAM33から外部へのDMA転送時に、データRAM
30に格納された係数データとデータRAM32に格納
された演算入力データとを演算処理し、その演算結果を
データRAM31に格納する処理を並行させる。そし
て、データRAM33のDMA転送が終了する時点T3
を見計らって、DMA終了確認命令を配置させ、続いて
外部からデータRAM33に新たな演算入力データをD
MA転送するようにしてもよい。このときの、データの
流れを図7に示す。演算処理の時間に比べてDMA転送
時間が十分に短い場合、図7(b),(c)でそれぞれ
示すデータRAM33に対する2回のDMA転送と演算
処理とを並行させることにより、更に効率の良い処理が
可能である。この場合、次の演算処理は、データRAM
30とデータRAM33とで行い、その間、データRA
M31のデータを入れ替えることになる。For example, as shown in FIG. 6, when DMA transfer is performed from the data RAM 33 to the outside,
The arithmetic processing is performed on the coefficient data stored in the data RAM 30 and the operation input data stored in the data RAM 32, and the processing of storing the operation result in the data RAM 31 is performed in parallel. Then, the time T3 at which the DMA transfer of the data RAM 33 ends.
In response to this, a DMA end confirmation instruction is arranged, and new operation input data is externally stored in the data RAM 33 from D.
MA transfer may be performed. FIG. 7 shows the data flow at this time. If the DMA transfer time is sufficiently shorter than the operation processing time, two DMA transfers to the data RAM 33 shown in FIGS. 7B and 7C, respectively, and the operation processing are performed in parallel, so that the efficiency is further improved. Processing is possible. In this case, the next arithmetic processing is performed in the data RAM
30 and the data RAM 33, during which the data RA
The data of M31 will be replaced.
【0023】なお、以上の処理では、DMA終了を確認
する命令をプログラム中に挿入したが、特にDMA転送
と演算処理とを同時に実行させる場合、DMAに要する
時間が予め分かっていれば、DMA開始からDMA転送
に要する時間だけ経過した時点で指していると予想され
るPC値よりも後に、次のDMA転送命令や演算命令を
配置しておくことにより、DMA終了確認命令を省くこ
ともできる。In the above processing, an instruction for confirming the end of the DMA is inserted into the program. In particular, when the DMA transfer and the arithmetic processing are performed simultaneously, if the time required for the DMA is known in advance, the start of the DMA is performed. By arranging the next DMA transfer instruction or operation instruction after the PC value expected to be pointed at the time when the time required for the DMA transfer has elapsed from the above, the DMA end confirmation instruction can be omitted.
【0024】ところで、以上の処理を実現するために
は、各データRAM30〜33にアドレスを与えるアド
レスカウンタ(CT)40〜43の値は、DSP23の
内部の命令によって書換可能であり、この内部及びDM
Aコントローラ22の双方からインクリメント可能であ
ることが必要である。このようにDSP23とDMAコ
ントローラ22の双方からCT40〜43の値を制御可
能であると、DMA転送と演算処理とを並行させるとい
うシステムの性格上、ソフトウェアの記述によっては、
DMA転送中のデータRAMと、演算命令でアクセスさ
れるデータRAMとの重複(オーバーヘッド)が発生す
ることがある。そこで、各データRAM30〜33にア
ドレスを与えるCT40〜43のそれぞれに、そのデー
タRAMがDMA転送のために選択されたことを示すS
EL0〜SEL3フラグを設けると共に、図2に示した
回路に図8に示すようなオーバーヘッド防止回路を追加
することが望ましい。By the way, in order to realize the above processing, the values of the address counters (CT) 40 to 43 for giving the addresses to the respective data RAMs 30 to 33 can be rewritten by an instruction inside the DSP 23. DM
It must be incrementable from both A controllers 22. If the values of CTs 40 to 43 can be controlled by both the DSP 23 and the DMA controller 22 in this manner, depending on the description of software, depending on the nature of the system in which DMA transfer and arithmetic processing are performed in parallel,
Overlap (overhead) may occur between the data RAM during the DMA transfer and the data RAM accessed by the operation instruction. Therefore, each of the CTs 40 to 43 for giving an address to each of the data RAMs 30 to 33 has an S indicating that the data RAM has been selected for the DMA transfer.
It is desirable to provide the EL0 to SEL3 flags and to add an overhead prevention circuit as shown in FIG. 8 to the circuit shown in FIG.
【0025】このオーバーヘッド防止回路では、DMA
Cパラメータから得られるDATARAM選択信号と、
命令デコーダ65からのDMA開始信号とのAND出力
をゲート回路90〜93で得、各ゲート回路90〜93
の“1”出力でフリップフロップ回路94〜97をセッ
トし、DMAコントローラ22から出力されるDMA終
了信号でフリップフロップ回路94〜97をリセットす
る。これにより、データRAM30〜33のうち、DM
A実行中のデータRAMに対応したフリップフロップ9
4〜97から“1”出力が得られる。このフリップフロ
ップ94〜97の出力であるSEL0〜3のフラグに基
づき、ゲート回路100〜103で、命令デコーダ65
から出力される各データRAM30〜33のアクセス信
号をゲートすれば、DMA実行中に命令デコーダ65か
らアクセス指示されたデータRAMに対応するゲート回
路100〜103から“1”が出力される。これをゲー
ト回路104で検出したら、PC待機信号を出力してプ
ログラムカウンタ61を停止させ、プログラムの実行を
待機させる。これにより、DMA実行中のデータRAM
に対応するアドレスカウンタ40〜43の書換も含め
て、そのデータRAMに対するいかなるアクセスも不可
能になる。この構成によれば、オーバーヘッドを意識せ
ずにプログラムを記述することができる。In this overhead prevention circuit, the DMA
A DATARAM selection signal obtained from the C parameter;
An AND output with the DMA start signal from the instruction decoder 65 is obtained by the gate circuits 90 to 93, and the gate circuits 90 to 93
The flip-flop circuits 94 to 97 are set by the "1" output of the CPU, and the flip-flop circuits 94 to 97 are reset by the DMA end signal output from the DMA controller 22. As a result, of the data RAMs 30 to 33, the DM
A flip-flop 9 corresponding to the data RAM in execution
"1" output is obtained from 4-97. Based on the flags of SEL0 to SEL3 output from the flip-flops 94 to 97, the gate circuits 100 to 103 cause the instruction decoder 65
When the access signal of each of the data RAMs 30 to 33 output from the gate is gated, "1" is output from the gate circuits 100 to 103 corresponding to the data RAM to which the access is instructed by the instruction decoder 65 during DMA execution. When this is detected by the gate circuit 104, a PC standby signal is output to stop the program counter 61 and wait for the execution of the program. Thereby, the data RAM during the execution of the DMA
No access to the data RAM is possible, including rewriting of the address counters 40 to 43 corresponding to the data RAM. According to this configuration, a program can be described without considering the overhead.
【0026】次に、プログラムのDMA転送について説
明する。前述したように、DSP23に内蔵されたプロ
グラムRAM60に容量的な制限があると、DSP23
が実行すべき全てのプログラムを一度にプログラムRA
M60に格納することができない。そこで、DSP23
のプログラム中に、図9に示すような、プログラムRA
M60へのプログラムのDMA転送命令を記述する。こ
のプログラムのDMA命令が実行された場合の処理を図
10に示す。Next, DMA transfer of a program will be described. As described above, if the program RAM 60 incorporated in the DSP 23 has a capacity limitation, the DSP 23
All programs to be executed at once
Cannot be stored in M60. Therefore, DSP23
During the program RA, as shown in FIG.
A DMA transfer instruction of the program to M60 is described. FIG. 10 shows the processing when the DMA instruction of this program is executed.
【0027】プログラムのDMA命令が実行されると、
まず、現在のPC値がTOPレジスタ63に退避される
(S21)。即ち、このDMA命令実行時点でフェッチ
回路64には、次のDMACパラメータ設定命令がプリ
フェッチされているので、PC値は、DMACパラメー
タ設定命令の次のアドレス(図9のN)を指している。
TOPレジスタ63には、このNが格納されることにな
る。続くDMACパラメータ設定命令によって、転送元
アドレス、転送先アドレス及び転送命令数がDMAコン
トローラ22に設定され、プログラムカウンタ61に転
送先アドレスが設定される(S22)。次に、設定され
た命令数が外部からD0バス34を介してプログラムR
AM60にDMA転送される(S23)。例えば、転送
先アドレスを図9に示すように、DMACパラメータ設
定命令の次の番地Nに設定した場合には、DMACパラ
メータ設定命令の次の番地から新たな命令A,B,…が
順番に格納されていくことになる。そして、設定された
数のDMA転送が終了したら、TOPレジスタ63に退
避されていたPC値をプログラムカウンタ61にセット
する(S24)。以後、DMACパラメータ設定命令の
次の命令Aからプログラムの実行が再開されることにな
る。When the DMA instruction of the program is executed,
First, the current PC value is saved in the TOP register 63 (S21). That is, since the next DMAC parameter setting instruction has been prefetched into the fetch circuit 64 at the time of execution of the DMA instruction, the PC value indicates the next address (N in FIG. 9) of the DMAC parameter setting instruction.
This N is stored in the TOP register 63. By the following DMAC parameter setting command, the transfer source address, the transfer destination address and the number of transfer commands are set in the DMA controller 22, and the transfer destination address is set in the program counter 61 (S22). Next, the set instruction number is externally transmitted to the program R via the D0 bus 34.
The data is DMA-transferred to the AM 60 (S23). For example, when the transfer destination address is set to the next address N of the DMAC parameter setting command as shown in FIG. 9, new commands A, B,... Are stored in order from the next address of the DMAC parameter setting command. Will be done. When the set number of DMA transfers are completed, the PC value saved in the TOP register 63 is set in the program counter 61 (S24). Thereafter, the execution of the program is restarted from the instruction A following the DMAC parameter setting instruction.
【0028】このように、DSP23自身のプログラム
によって、自分のプログラムをDMA転送することによ
り、プログラムRAM60の容量に拘らず、CPU5の
負担を全く増すことなしに、どのような長いプログラム
でも連続して実行させることができる。As described above, by transferring the own program by DMA using the program of the DSP 23 itself, regardless of the capacity of the program RAM 60, any long program can be continuously performed without increasing the load on the CPU 5 at all. Can be executed.
【0029】[0029]
【発明の効果】以上述べたように、この発明によれば、
ディジタル信号処理装置の内部のプログラムに、演算命
令と共にDMA命令を含ませておき、このプログラムの
実行過程で、DMA命令が解読された場合に、外部のD
MA制御手段を起動してDMA転送を実行させるように
しているので、ホストCPUがDMA転送に全く関与す
る必要がなく、CPUの負荷が軽減されると共に、ディ
ジタル信号処理装置から直接DMAを起動することがで
きるので、ディジタル信号処理装置での中断時間も短縮
されるという効果を奏する。As described above, according to the present invention,
A DMA instruction is included in a program inside the digital signal processing device together with an operation instruction, and when the DMA instruction is decoded during the execution of this program, an external D
Since the MA control means is activated to execute the DMA transfer, the host CPU does not need to be involved in the DMA transfer at all and the load on the CPU is reduced, and the DMA is started directly from the digital signal processing device. Therefore, there is an effect that the interruption time in the digital signal processing device is also reduced.
【図1】 この発明の一実施例に係るゲーム機器のシス
テム構成を示すブロック図である。FIG. 1 is a block diagram showing a system configuration of a game machine according to one embodiment of the present invention.
【図2】 同システムにおけるDSPの詳細ブロック図
である。FIG. 2 is a detailed block diagram of a DSP in the system.
【図3】 同システムにおけるプログラムRAMに格納
されるプログラムの一例を示す図である。FIG. 3 is a diagram showing an example of a program stored in a program RAM in the system.
【図4】 同プログラムにより実行される処理の内容を
示すフローチャートである。FIG. 4 is a flowchart showing the contents of processing executed by the program.
【図5】 同処理におけるデータの流れを説明するため
の図である。FIG. 5 is a diagram for explaining a data flow in the same processing.
【図6】 同システムにおけるプログラムRAMに格納
されるプログラムの他の例を示す図である。FIG. 6 is a diagram showing another example of a program stored in a program RAM in the system.
【図7】 同プログラムにより実行される処理における
データの流れを説明するための図である。FIG. 7 is a diagram for explaining a data flow in processing executed by the program.
【図8】 同システムにおけるオーバーヘッド防止回路
の回路図である。FIG. 8 is a circuit diagram of an overhead prevention circuit in the same system.
【図9】 同システムにおけるプログラムのDMA転送
命令を用いたプログラムの例を示す図である。FIG. 9 is a diagram showing an example of a program using a DMA transfer instruction of the program in the same system.
【図10】 同プログラムによって実行される処理を示
すフローチャートである。FIG. 10 is a flowchart showing processing executed by the program.
1…システム・コントロール・ユニット、2,3,4…
バス、5…CPU、6…ワークRAM、7…ブートRO
M、9…ゲームROM、11…画像プロセッサ、12…
音源プロセッサ、21…バスコントローラ、22…DM
Aコントローラ、23…ディジタル・シグナル・プロセ
ッサ、30〜33…データRAM、34…D0バス、3
5…D1バス、36…Xバス、37…Yバス、40〜4
3…アドレスカウンタ、44…アドレスレジスタ、60
…プログラムRAM、61…プログラムカウンタ、64
フェッチ回路、65…デコーダ、71…乗算器、78…
ALU1: System control unit, 2, 3, 4 ...
Bus 5, CPU, 6 Work RAM, 7 Boot RO
M, 9: Game ROM, 11: Image processor, 12 ...
Sound source processor, 21 bus controller, 22 DM
A controller, 23 digital signal processor, 30 to 33 data RAM, 34 D0 bus, 3
5 D1 bus, 36 X bus, 37 Y bus, 40-4
3 ... Address counter, 44 ... Address register, 60
... Program RAM, 61 ... Program counter, 64
Fetch circuit, 65 ... decoder, 71 ... multiplier, 78 ...
ALU
フロントページの続き (56)参考文献 特開 平3−265932(JP,A) 特開 昭61−271555(JP,A) 特開 平2−129724(JP,A) 特開 昭61−151776(JP,A) 特開 平2−59845(JP,A) 特開 昭63−231367(JP,A) 特開 平8−115291(JP,A) 米国特許5765025(US,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/30 - 9/42 Continuation of the front page (56) References JP-A-3-2695932 (JP, A) JP-A-61-271555 (JP, A) JP-A-2-129724 (JP, A) JP-A-61-151776 (JP) , A) JP-A-2-59845 (JP, A) JP-A-63-131367 (JP, A) JP-A-8-115291 (JP, A) US Patent 5765025 (US, A) (58) (Int.Cl. 7 , DB name) G06F 9/30-9/42
Claims (1)
第1のバスと、 演算処理のためのデータを転送する複数の第2のバス
と、 これらのバスのうちの任意のバスに対してそれぞれ個別
にアクセス可能な複数のデータメモリと、 これらデータメモリのうち前記第2のバスとアクセス可
能な複数のデータメモリ間でデータを演算処理する演算
処理手段と、 この演算処理手段を制御する演算命令を含むプログラム
を格納するプログラムメモリと、 このプログラムメモリから順次命令を読み出して各部を
制御する命令解読手段とを備え、 前記外部バスを介してCPUと接続されると共に前記C
PUによって起動されて所定のディジタル信号処理を実
行する ディジタル信号処理装置において、 前記プログラムメモリに格納されるプログラムは、前記
演算命令の合間にダイレクト・メモリ・アクセス実行用
のDMA命令を配置させたものであり、 前記命令解読手段は、前記DMA命令を解読すると、前
記CPUとは独立に外部のDMA制御手段を起動して前
記第1のバスに接続されたデータメモリと外部装置との
間のダイレクト・メモリ・アクセスを開始させると共
に、次の演算命令によって引き続き前記演算処理手段を
制御して、前記第1のバスに接続されたデータメモリに
対するダイレクト・メモリ・アクセスの実行と並行して
前記第2のバスに接続された複数のデータメモリ間での
演算処理の実行を制御することを特徴とするディジタル
信号処理装置。1. A first bus capable of transmitting and receiving data to and from an external bus, a plurality of second buses for transferring data for arithmetic processing, and an arbitrary bus among these buses. A plurality of data memories individually accessible to each other, arithmetic processing means for arithmetically processing data among the plurality of data memories accessible to the second bus among the data memories, and controlling the arithmetic processing means wherein C and program memory for storing a program including a computation instruction, and an instruction decode means for controlling each unit sequentially reads out the instruction from the program memory, it is connected to the CPU via the external bus to
Activated by PU to perform predetermined digital signal processing
In the digital signal processing device to be executed, the program stored in the program memory is one in which a DMA instruction for executing direct memory access is arranged between the operation instructions. When you decode the instructions, before
Independently of the CPU, the external DMA control means is activated to start direct memory access between the data memory connected to the first bus and the external device, and to continue the above operation by the next operation instruction. The arithmetic processing means is controlled to execute arithmetic processing between a plurality of data memories connected to the second bus in parallel with execution of direct memory access to the data memory connected to the first bus. A digital signal processor for controlling execution.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP06274425A JP3139310B2 (en) | 1994-10-13 | 1994-10-13 | Digital signal processor |
TW083110504A TW266275B (en) | 1994-10-13 | 1994-11-14 | Digital signal processing device and its direct memory access control process |
US08/542,729 US5765025A (en) | 1994-10-13 | 1995-10-13 | Digital signal processor with on board program having arithmetic instructions and direct memory access instructions for controlling direct memory access thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP06274425A JP3139310B2 (en) | 1994-10-13 | 1994-10-13 | Digital signal processor |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08115213A JPH08115213A (en) | 1996-05-07 |
JP3139310B2 true JP3139310B2 (en) | 2001-02-26 |
Family
ID=17541500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP06274425A Expired - Fee Related JP3139310B2 (en) | 1994-10-13 | 1994-10-13 | Digital signal processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3139310B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018160180A (en) * | 2017-03-23 | 2018-10-11 | 富士通株式会社 | Information processing system, information processor, and method for controlling information processing system |
-
1994
- 1994-10-13 JP JP06274425A patent/JP3139310B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH08115213A (en) | 1996-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0464615B1 (en) | Microcomputer equipped with DMA controller | |
US5765025A (en) | Digital signal processor with on board program having arithmetic instructions and direct memory access instructions for controlling direct memory access thereof | |
JPS6040067B2 (en) | Distributed control multiprocessing system | |
JP4226085B2 (en) | Microprocessor and multiprocessor system | |
US4095268A (en) | System for stopping and restarting the operation of a data processor | |
JP3139310B2 (en) | Digital signal processor | |
JP3168845B2 (en) | Digital signal processor | |
JPH0855097A (en) | Data processing system and its memory access method | |
JP3127737B2 (en) | Digital signal processor | |
KR930006516B1 (en) | Dta processing system | |
JPH056281A (en) | Information processor | |
JP3323341B2 (en) | Emulation processor and emulator equipped with it | |
JPS6158861B2 (en) | ||
JPH04280334A (en) | One chip microcomputer | |
JP2883488B2 (en) | Instruction processing unit | |
JPS59144955A (en) | Information processor | |
JP2883489B2 (en) | Instruction processing unit | |
JPH07302255A (en) | Semiconductor integrated circuit device, processor for emulating the same and emulator | |
JP2002182901A (en) | Coprocessor data access controller, its method and its instruction format | |
JP2871171B2 (en) | Microcomputer | |
JPH05334233A (en) | Data transferring device | |
JPS62190544A (en) | Higher link unit for programmable controller | |
JPH0425581B2 (en) | ||
JPH0786792B2 (en) | Information processing equipment | |
JPH09160786A (en) | Microprocessor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081215 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081215 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091215 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101215 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101215 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111215 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111215 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121215 Year of fee payment: 12 |
|
LAPS | Cancellation because of no payment of annual fees |