JPH04260955A - Microcomputer - Google Patents
MicrocomputerInfo
- Publication number
- JPH04260955A JPH04260955A JP15268191A JP15268191A JPH04260955A JP H04260955 A JPH04260955 A JP H04260955A JP 15268191 A JP15268191 A JP 15268191A JP 15268191 A JP15268191 A JP 15268191A JP H04260955 A JPH04260955 A JP H04260955A
- Authority
- JP
- Japan
- Prior art keywords
- dma
- transfer
- information
- data
- storage means
- 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.)
- Granted
Links
- 230000002093 peripheral effect Effects 0.000 claims abstract description 33
- 230000004044 response Effects 0.000 claims description 14
- 230000002401 inhibitory effect Effects 0.000 abstract 1
- 238000000034 method Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 208000033748 Device issues Diseases 0.000 description 1
- 102100035589 Distal membrane-arm assembly complex protein 2 Human genes 0.000 description 1
- 101100490184 Drosophila melanogaster Ack gene Proteins 0.000 description 1
- 101000930307 Homo sapiens Distal membrane-arm assembly complex protein 2 Proteins 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005764 inhibitory process Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Landscapes
- Bus Control (AREA)
Abstract
Description
【0001】0001
【産業上の利用分野】本発明はマイクロコンピュータに
関し、特にダイレクトメモリアクセス(DMA)コント
ローラを内蔵したマイクロコンピュータに関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to microcomputers, and more particularly to microcomputers incorporating a direct memory access (DMA) controller.
【0002】0002
【従来の技術】高機能化,高速化の要求の伴ない近年の
マイクロコンピュータは割込みコントローラ,タイマ,
カウンタ,シリアルデータ通信装置等の様々な周辺ユニ
ットを内蔵している。このような周辺ユニットとメモリ
との間でデータ転送が必要となるが、かかるデータ転送
を中央処理装置(CPU)によりソフトウェア(プログ
ラム)の介在で実行するとデータ処理効率が低下する。
そこで、周辺ユニットとメモリとの間のデータ転送をC
PUの代わりにDMAコントローラで実行させることが
一般的である。[Background Art] Modern microcomputers, which are required to have higher functionality and higher speeds, have interrupt controllers, timers, etc.
It incorporates various peripheral units such as counters and serial data communication devices. Data transfer is required between such peripheral units and memory, but if such data transfer is performed by a central processing unit (CPU) with the intervention of software (program), data processing efficiency decreases. Therefore, data transfer between peripheral units and memory is
It is common to have the DMA controller execute this instead of the PU.
【0003】DMAコントローラは、アクセスすべきメ
モリのアドレス情報をストアするアドレスレジスタ、転
送すべきデータ数をストアするターミナルカウンタレジ
スタ、およびデータ転送方向やメモリアドレスの更新方
向等の制御データをストアする制御レジスタを有し、こ
れらレジスタにはCPUにより必要な情報が初期設定さ
れる。周辺ユニットがDMAコントローラに対しデータ
転送を要求すると、DMAコントローラはCPUからバ
スの使用権を得て周辺ユニットとメモリとの間でデータ
転送を実行する。データ転送が終了するとDMAコント
ローラはバス使用権をCPUに渡し次のデータ転送要求
の待ち状態となる。かくして転送されたデータ数がター
ミナルカウンタレジスタに設定されたデータ数に達する
と、DMAコントローラはCPUに対し割込み要求を発
行する。同要求にもとづきCPUは割込み処理ルーチン
を実行し、上記レジスタに対し必要な情報を再設定し、
次のデータ転送を許可状態とする。The DMA controller includes an address register that stores address information of the memory to be accessed, a terminal counter register that stores the number of data to be transferred, and a control register that stores control data such as the data transfer direction and memory address update direction. It has registers, and necessary information is initially set in these registers by the CPU. When the peripheral unit requests data transfer from the DMA controller, the DMA controller obtains the right to use the bus from the CPU and executes the data transfer between the peripheral unit and memory. When the data transfer is completed, the DMA controller hands over the right to use the bus to the CPU and enters a waiting state for the next data transfer request. When the number of data thus transferred reaches the number of data set in the terminal counter register, the DMA controller issues an interrupt request to the CPU. Based on the request, the CPU executes the interrupt processing routine, resets the necessary information in the above register, and
Enables the next data transfer.
【0004】0004
【発明が解決しようとする課題】DMAコントローラは
、CPUに対して割込み要求を発行した時点から次のデ
ータ転送に必要な情報が再設定される時点までの期間は
データ転送禁止状態となるが、この禁止期間に周辺ユニ
ットがデータ転送要求を発行する場合がある。かかる要
求は受け付けられず保留される。データ転送禁止期間の
長さはDMAコントローラからの割込み要求の優先順位
や同コントローラがサポートする転送チャンネル数に依
存しているが、データ転送禁止期間が長いとデータ転送
要求が保留されている周辺回路がその保留期間に再度デ
ータ転送要求を発行する状態となり得る。例えばシリア
ルデータ受信装置では、所定ビット数のデータを受信す
る毎にデータ転送要求を発行するが、前のデータがメモ
リに転送されないうちに次のデータの受信が完了すると
前のデータは破壊されてしまい受信オーバーランエラー
が発生する。他の例としてシリアルデータ受信装置では
、次に送信すべきデータが転送されずに送信アンダーラ
ンエラーが発生する。受信オーバーランエラーや送信ア
ンダーランエラーはシリアル回線が高速になるぼど発生
しやすくなる。受信/送信データバッファの段数を増加
しても、その段数以上にデータ転送が保留されるとやは
りエラーが生じるし、高速なシリアル回線に見合うよう
に十分にバッファ段数を増加するとハードウェアの増大
をもたらす。[Problem to be Solved by the Invention] The DMA controller is in a data transfer prohibited state during the period from the time when it issues an interrupt request to the CPU until the time when the information necessary for the next data transfer is reset. A peripheral unit may issue a data transfer request during this prohibited period. Such requests will not be accepted and will be put on hold. The length of the data transfer prohibition period depends on the priority of interrupt requests from the DMA controller and the number of transfer channels supported by the controller, but if the data transfer prohibition period is long, the peripheral circuit where the data transfer request is pending may be in a state where it issues a data transfer request again during the suspension period. For example, a serial data receiving device issues a data transfer request every time it receives a predetermined number of bits of data, but if the reception of the next data is completed before the previous data is transferred to memory, the previous data is destroyed. Eventually, a reception overrun error occurs. As another example, in a serial data receiving device, data to be transmitted next is not transferred and a transmission underrun error occurs. Reception overrun errors and transmission underrun errors are more likely to occur as serial lines become faster. Even if you increase the number of receive/transmit data buffer stages, errors will still occur if data transfer is suspended for more than that number of stages, and if you increase the number of buffer stages sufficiently to match the high-speed serial line, the hardware will increase. bring.
【0005】したがって、本発明の目的は、現在のデー
タ転送実行状態の終了から次のデータ転送実行状態の開
始までの期間を実質的になくしたDMAコントローラを
有するマイクロコンピュータを提供することにある。SUMMARY OF THE INVENTION Accordingly, an object of the present invention is to provide a microcomputer with a DMA controller that substantially eliminates the period from the end of the current data transfer execution state to the start of the next data transfer execution state.
【0006】本発明の他の目的は、周辺ユニットからの
データ転送要求の保留によるエラーの発生を防止するこ
とができるDMAコントローラを内蔵したマイクロコン
ピュータを提供することにある。Another object of the present invention is to provide a microcomputer with a built-in DMA controller that can prevent errors from occurring due to pending data transfer requests from peripheral units.
【0007】本発明のさらに他の目的は、高速シリアル
回線のためのシリアルデータ通信装置をサポートできる
DMAコントローラを内蔵したマイクロコンピュータを
提供することにある。Still another object of the present invention is to provide a microcomputer with a built-in DMA controller that can support a serial data communication device for high-speed serial lines.
【0008】[0008]
【課題を解決するための手段】本発明によるマイクロコ
ンピュータは、CPUと周辺ユニットからのデータ転送
要求にもとづき同ユニットとメモリとの間のデータ転送
を実行するDMAコントローラとを備え、DMAコント
ローラは、現在のDMA転送を実行するに必要な第1の
情報をストアする第1の記憶手段と、上記現在のDMA
転送の終了後に起動すべき次のDMA転送に必要な第2
の情報をストアする第2の記憶手段と、上記第1の情報
を用いて上記データ転送要求にもとづきデータ転送を実
行する実行手段と、転送されたデータ数が上記第1の情
報を用いて転送すべきデータ数に達したときに上記実行
手段に上記第2の情報を用いてデータ転送を実行できる
ようにするとともにCPUに対し割込み要求を発行する
手段とを有しており、上記実行手段は周辺ユニットから
のその後のデータ転送要求にもとづき上記第2の情報を
用いてデータ転送を実行することを特徴としている。[Means for Solving the Problems] A microcomputer according to the present invention includes a CPU and a DMA controller that executes data transfer between the peripheral unit and memory based on a data transfer request from the peripheral unit, and the DMA controller includes: a first storage means for storing first information necessary to execute the current DMA transfer;
The second DMA transfer necessary for the next DMA transfer that should be started after the transfer is completed.
a second storage means for storing information on the data; an execution means for executing data transfer based on the data transfer request using the first information; and means for enabling the execution means to execute data transfer using the second information and issuing an interrupt request to the CPU when the desired number of data is reached, the execution means It is characterized in that data transfer is executed using the second information based on subsequent data transfer requests from peripheral units.
【0009】かかる構成により、転送したデータが判定
数に達して現在のDMA転送が終了すると、実行手段は
第2の情報によるDMA転送の実行可能状態となる。し
たがって、CPUによるDMA転送に必要な情報の再設
定を待つことなく、周辺ユニットからひき続き発行され
るデータ転送要求に応答して周辺ユニットとメモリとの
間のデータ転送を実行することができる。With this configuration, when the number of transferred data reaches the determined number and the current DMA transfer ends, the execution means becomes ready to execute the DMA transfer based on the second information. Therefore, data transfer between the peripheral unit and memory can be executed in response to data transfer requests that are successively issued from the peripheral unit without waiting for the CPU to reset the information necessary for DMA transfer.
【0010】一方、CPUは現在のDMA転送の終了に
より発生される割込み要求にもとづきプログラム実行を
中断し、上記次のDMA転送の終了後に起動すべきその
次のDMA転送に必要な第3の情報をDMAコントロー
ラに供給する。この第3の情報は、上記第2の情報が第
2の記憶手段から第1の記憶手段にコピーされたときは
第2の記憶手段にストアされ、実行手段が第2の記憶手
段との間でやりとりするときは第1の記憶手段にストア
される。On the other hand, the CPU interrupts program execution based on an interrupt request generated by the end of the current DMA transfer, and obtains third information necessary for the next DMA transfer to be activated after the completion of the next DMA transfer. is supplied to the DMA controller. This third information is stored in the second storage means when the second information is copied from the second storage means to the first storage means, and is stored between the execution means and the second storage means. When exchanging information, the information is stored in the first storage means.
【0011】[0011]
【実施例】以下、図面を参照しながら本発明の実施例を
詳述する。Embodiments Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
【0012】図1は本発明の第1実施例によるマイクロ
コンピュータ100を用いて構成されたマイクロコンピ
ュータシステムを示すブロック図である。本マイクロコ
ンピュータ100はCPU10と周辺ユニットとしての
DMAコントローラ(DMAC)20,割込みコントロ
ーラ(INTC)30,シリアルデータ受信ユニット4
0およびタイマ,カウンタ等の他のユニット50を有す
る。これらは同一の半導体基板上に構成され内部バス6
0で相互接続されている。FIG. 1 is a block diagram showing a microcomputer system constructed using a microcomputer 100 according to a first embodiment of the present invention. This microcomputer 100 includes a CPU 10, a DMA controller (DMAC) 20 as peripheral units, an interrupt controller (INTC) 30, and a serial data receiving unit 4.
0 and other units 50 such as timers and counters. These are configured on the same semiconductor substrate, and the internal bus 6
0 and interconnected.
【0013】CPU10はシステムバス130を介して
接続されたプログラムメモリ110から命令をフェッチ
して実行しオペランドデータに対する処理を行う。シス
テムバス130にはデータメモリ120も接続されてい
る。The CPU 10 fetches and executes instructions from a program memory 110 connected via a system bus 130 to process operand data. Data memory 120 is also connected to system bus 130 .
【0014】INTC30はDMAC20および周辺ユ
ニット50からの割込み要求信号23、51を含む複数
の割込み要求信号を受け、二つ以上の割込み要求が同時
に発生した場合は予じめ定められた優先順位に従ってそ
のうちの一つを選択し、CPU10に対し割込み処理要
求信号31を発生するとともに割込みベクタ番号32を
供給する。かかる割込み処理要求にもとづきCPU10
は実行中のプログラム処理を一時中断し、そのときのプ
ログラムカウンタ,プログラムステータスワード,汎用
レジスタ(すべて図示せず)をセーブして割込み処理ル
ーチンを実行する。The INTC 30 receives a plurality of interrupt request signals including the interrupt request signals 23 and 51 from the DMAC 20 and the peripheral unit 50, and when two or more interrupt requests occur simultaneously, one of them is selected according to a predetermined priority order. , and generates an interrupt processing request signal 31 and supplies an interrupt vector number 32 to the CPU 10. Based on this interrupt processing request, the CPU 10
temporarily interrupts the program processing being executed, saves the program counter, program status word, and general-purpose registers (all not shown), and executes the interrupt processing routine.
【0015】シリアルデータ受信ユニット40は、外部
からシリアル回線150を介して供給されるシリアルデ
ータを受信する。シリアルデータはシフトレジスタ40
5に順に取り込まれる。所定ビット数(例えば、8ビッ
ト)のデータを受信すると、同データはバッファレジス
タ404に転送され、シフトレジスタ405は次のシリ
アルデータの受信に入る。バッファレジスタ404にデ
ータが転送されると、受信制御部401はDMA転送要
求信号42をアクティブにしDMA20にデータ転送を
要求する。バッファレジスタ404に転送されたデータ
が、シリアルデータ転送の1フレームの終了を示すEO
F(End Of Flame)コードのときは、
ブロック切換信号41をアクティブにしてDMAC20
にブロック切換を要求する。EOFコードを受信したこ
とや受信データにエラーが発生したことはステータスレ
ジスタ402に記録される。受信制御部401はDMA
C20からのデータ出力指示信号25に同期してバッフ
ァレジスタ404の内容を内部バス60に出力する。ま
た、DMAC20からのステータスセーブ指示信号24
に応答してステータスレジスタ402内の内容をステー
タスセーブレジスタ403にセーブする。Serial data receiving unit 40 receives serial data supplied from the outside via serial line 150. Serial data is in shift register 40
5 in order. When a predetermined number of bits (for example, 8 bits) of data is received, the data is transferred to the buffer register 404, and the shift register 405 starts receiving the next serial data. When the data is transferred to the buffer register 404, the reception control unit 401 activates the DMA transfer request signal 42 and requests the DMA 20 to transfer the data. The data transferred to the buffer register 404 reaches EO indicating the end of one frame of serial data transfer.
For F (End Of Flame) code,
The block switching signal 41 is activated and the DMAC 20
request block switching. The fact that the EOF code has been received or that an error has occurred in the received data is recorded in the status register 402. The reception control unit 401 uses DMA
The contents of buffer register 404 are output to internal bus 60 in synchronization with data output instruction signal 25 from C20. In addition, the status save instruction signal 24 from the DMAC 20
In response to this, the contents of the status register 402 are saved in the status save register 403.
【0016】DMAC20は転送制御部201を有し、
同制御部201はカレントレジスタブロック202にス
トアされている制御情報にもとづき、ユニット40とメ
モリ120間のDMAデータ転送を実行する。レジスタ
ブロック202にストアされている制御情報は、データ
の転送回数を示す転送回数情報、メモリ120のアクセ
スアドレスを示すメモリアドレス情報、および制御/状
態情報を有する。制御/状態情報には、DMAデータ転
送の方向(すなわち、メモリから周辺ユニットあるいは
周辺ユニットからメモリ、本実施例ではシリアル受信ユ
ニット40からメモリ120への転送)、メモリアドレ
スの更新方向、DMA転送要求を受け付けてよいかどう
かを示す転送要求受付許可情報を有し、さらに、DMA
転送を次のブロックへ続けて実行してよいかどうかを示
すブロック継続指示情報を含んでいる。DMAC20は
さらに本発明に従って、ネクストレジスタブロック20
3およびセーブレジスタブロック204を有する。ネク
ストレジスタブロック203には現在のDMA転送の終
了後に次に実行すべきDMA転送に必要な情報、すなわ
ち、次のDMA転送の転送回数情報、メモリアドレス情
報および制御/状態情報をストアする。セーブレジスタ
ブロック204はカレントレジスタブロック202の転
送回数情報と制御/状態情報とがセーブされる。転送制
御部201はCPU10に対してホールド要求(HLD
RQ)信号21を出力しCPU10からホールドアクノ
レッジ(HLDACK)信号22を受けてバス60、1
30の使用権を得、シリアル受信ユニット40からメモ
リ120へデータ転送を実行する。データ転送を実行す
る毎にカレントレジスタブロック202の転送回数は1
減算されるとともにメモリアドレス202が更新される
。転送回数が0となる、すなわち転送したデータ数が現
在のDMA転送により指定されたデータ数に達するか又
はユニット40からFOFコード受信にもとづくブロッ
クの切換要求信号41がアクティブとなると、カレント
レジスタブロック202の転送回数情報と制御/状態情
報がセーブレジスタブロック204にセーブされる。
そして、セーブした制御/状態情報に含まれるブロック
継続指示情報が「継続」を指示しているときは、ネクス
トレジスタブロック203の内容がカレントレジスタブ
ロック202にコピーされ、割込み要求信号23が発生
される。ブロック継続指示情報が「非継続」を指示して
いるときは、ネクストレジスタブロック203からカレ
ントレジスタブロック232へのコピーが行われること
なく割込み要求信号23が発生される。[0016] The DMAC 20 has a transfer control unit 201,
The control unit 201 executes DMA data transfer between the unit 40 and the memory 120 based on the control information stored in the current register block 202. The control information stored in register block 202 includes transfer count information indicating the number of data transfers, memory address information indicating the access address of memory 120, and control/status information. The control/status information includes the direction of DMA data transfer (i.e., from memory to peripheral unit or from peripheral unit to memory, in this example from serial receiving unit 40 to memory 120), memory address update direction, and DMA transfer request. It has transfer request acceptance permission information indicating whether or not to accept the DMA.
Contains block continuation instruction information indicating whether or not transfer can be continued to the next block. DMAC 20 further includes a next register block 20 according to the present invention.
3 and a save register block 204. The next register block 203 stores information necessary for the next DMA transfer to be executed after the current DMA transfer ends, that is, transfer count information, memory address information, and control/status information for the next DMA transfer. The save register block 204 saves the transfer number information and control/state information of the current register block 202. The transfer control unit 201 issues a hold request (HLD) to the CPU 10.
RQ) signal 21 and receives a hold acknowledge (HLDACK) signal 22 from the CPU 10, the bus 60,1
30 and executes data transfer from the serial receiving unit 40 to the memory 120. Each time data transfer is executed, the number of transfers of the current register block 202 is 1.
At the same time, the memory address 202 is updated. When the number of transfers becomes 0, that is, when the number of transferred data reaches the number of data specified by the current DMA transfer, or when the block switching request signal 41 based on reception of the FOF code from the unit 40 becomes active, the current register block 202 Transfer count information and control/state information are saved in the save register block 204. Then, when the block continuation instruction information included in the saved control/state information instructs "continuation", the contents of the next register block 203 are copied to the current register block 202, and an interrupt request signal 23 is generated. . When the block continuation instruction information indicates "non-continuation", the interrupt request signal 23 is generated without copying from the next register block 203 to the current register block 232.
【0017】データメモリ120はCPU10によって
処理されるべきおよび処理されたオペランドデータをス
トアするが、さらに、シリアルデータ受信ユニット40
によって受信されたデータが転送されるべきN個のブロ
ック122,124,…,126を有する。これらブロ
ックの夫々に対応してブロック制御データエリア123
,125,…,127が設けられている。ブロック制御
データエリアの夫々は、対応するブロックのサイズを示
す転送回数データエリアと、対応するブロックの先頭ア
ドレスを示すメモリアドレスデータエリアと、対応する
ブロックと受信ユニット40間のDMA転送における制
御/状態データエリアと、受信ユニット40のステータ
スセーブレジスタ403の内容が転送されるべき周辺状
態セーブデータエリア、他のブロックのための制御デー
タエリアの先頭アドレスをストアするネクストアドレス
データエリアとを有する。データメモリ120はさらに
制御データエリアアドレスをストア領域121を有する
。Data memory 120 stores operand data to be and have been processed by CPU 10, but also stores operand data to be processed by CPU 10, and also stores operand data to be processed by CPU 10.
It has N blocks 122, 124, . . . , 126 to which data received by is to be transferred. Block control data area 123 corresponds to each of these blocks.
, 125, . . . , 127 are provided. Each of the block control data areas includes a transfer count data area indicating the size of the corresponding block, a memory address data area indicating the start address of the corresponding block, and control/state of DMA transfer between the corresponding block and the receiving unit 40. It has a data area, a peripheral status save data area to which the contents of the status save register 403 of the receiving unit 40 are to be transferred, and a next address data area that stores the start address of the control data area for other blocks. The data memory 120 further has a storage area 121 for storing control data area addresses.
【0018】以下、図2および図3に示した動作フロー
も参照して本マイクロコンピュータの具体的動作を詳述
する。The specific operation of this microcomputer will be described below in detail with reference to the operation flows shown in FIGS. 2 and 3.
【0019】CPUはDMAC20を起動する前に初期
設定を行なう。すなわち、第1乃至第Nブロック122
,124,…,126をデータメモリ120に割り当●
、対応するブロック制御データエリア123,125,
…127に前述してデータを書込む。なお、第1乃至第
(N−1)ブロック制御データエリアのDMA制御/状
態データにおけるブロック継続指示情報は「継続」を指
示し、第Nブロック制御データエリアのそれは「非継続
」を指示しているとする。また、第1ブロック制御デー
タエリアのネクストアドレスデータには第2ブロック制
御データエリアの先頭番地が、第2ブロック制御データ
エリアのそれには第3ブロック制御データエリアの先頭
番地が、そして第(N−1)ブロック制御データエリア
のそれには第Nブロック制御データエリアの先頭番地が
設定されるとする。制御データエリアアドレス121は
第1ブロック制御データエリア123の先頭番地が設定
される。CPU40はまたシリアルデータ受信ユニット
40にシリアルデータ受信に必要な情報、例えばシリア
ル回線150のスピードを設定しシリアル受信を許可す
る。そして、DMAC20のネクストレジスタブロック
203に第2ブロック制御データエリア125の転送回
数データ,メモリアドレスデータ,DMA制御/状態デ
ータを設定し、カレントレジスタブロック202に第1
ブロック制御データエリア123の転送回数データ,メ
モリアドレスデータ,DMA制御/状態データを設定し
てDMAC20を起動する。CPU10はひき続きプロ
グラムメモリ10から命令をフェッチし実行する。The CPU performs initial settings before starting the DMAC 20. That is, the first to Nth blocks 122
, 124,..., 126 are assigned to the data memory 120●
, corresponding block control data areas 123, 125,
... 127, the data is written as described above. Note that the block continuation instruction information in the DMA control/status data of the first to (N-1) block control data areas instructs "continuation", and that of the Nth block control data area instructs "non-continuation". Suppose there is. Further, the next address data of the first block control data area contains the start address of the second block control data area, that of the second block control data area contains the start address of the third block control data area, and the (N-th) 1) It is assumed that the start address of the Nth block control data area is set in that of the block control data area. The control data area address 121 is set to the starting address of the first block control data area 123. The CPU 40 also sets information necessary for serial data reception, such as the speed of the serial line 150, in the serial data reception unit 40, and permits serial reception. Then, the transfer count data, memory address data, and DMA control/status data of the second block control data area 125 are set in the next register block 203 of the DMAC 20, and the first
The transfer count data, memory address data, and DMA control/status data in the block control data area 123 are set, and the DMAC 20 is activated. CPU 10 continues to fetch and execute instructions from program memory 10.
【0020】一方、起動されたDMAC20は図2に示
した動作フローに従って動作する。すなわち、シリアル
データ受信ユニット40からのEOFコード受信にとも
なうブロック切換要求信号41がアクティブかどうか調
べ(251)、データ転送要求信号42がアクティブか
どうか調べる(252)。On the other hand, the activated DMAC 20 operates according to the operation flow shown in FIG. That is, it is checked whether the block switching request signal 41 accompanying the reception of the EOF code from the serial data receiving unit 40 is active (251), and it is checked whether the data transfer request signal 42 is active (252).
【0021】シリアルデータ受信ユニット40も起動さ
れており、シリアル回線150を介して送信されるシリ
アルデータを受信している。所定ビット数のデータを受
信すると、そのデータがEOFコードか通常のデータか
を調べ、信号41か又は42を発生する。The serial data receiving unit 40 has also been activated and is receiving serial data transmitted via the serial line 150. When data of a predetermined number of bits is received, it is checked whether the data is an EOF code or normal data, and a signal 41 or 42 is generated.
【0022】シリアルデータ受信ユニット40がデータ
転送要求信号42を発生したとすると、転送制御部20
1はHLDRQ信号21をアクティブにしてバス60、
130の使用権をCPU10に要求する(253)。C
PU10は実行中のプログラム処理を一時中断し内部を
ホールド状態としてHLDACK信号22をDMAC2
0に返す。転送制御部201はアクティブレベルのHL
DACK信号22を検出すると(254)、カレントレ
ジスタブロック202のメモリアドレスをバス60、1
30を介してデータメモリ120に供給するとともにデ
ータ出力指示信号25を発生してシリアルデータ受信ユ
ニット40に受信データをバス60に出力せしめる。か
くして、受信データはメモリ120内の第1ブロック1
22の先頭アドレスに転送される(255)。転送後、
HLDRQ信号21を取下げバス使用権をCPU10に
戻す。転送制御部201はカレントレジスタブロック2
02のメモリアドレスを更新して書き戻し、転送回数デ
ータから1つ減算して書き戻す(257)。所望なら更
新したアドレスを第1ブロック122のアクセスアドレ
スとしてもよい。転送制御部201は減算した転送回数
が零かどうか判定し(258)、零でなければステップ
251に戻る。かかる処理はデータ転送要求信号42が
アクティブになる毎に実行される。Assuming that the serial data receiving unit 40 generates the data transfer request signal 42, the transfer control unit 20
1 activates the HLDRQ signal 21 and connects the bus 60;
130 is requested from the CPU 10 (253). C
The PU 10 temporarily suspends the program processing being executed, puts the internal device in a hold state, and sends the HLDACK signal 22 to the DMAC 2.
Return to 0. The transfer control unit 201 has an active level of HL.
When the DACK signal 22 is detected (254), the memory address of the current register block 202 is transferred to the bus 60, 1.
30 to the data memory 120 and generates a data output instruction signal 25 to cause the serial data receiving unit 40 to output the received data to the bus 60. Thus, the received data is stored in the first block 1 in the memory 120.
It is transferred to the first address of No. 22 (255). After transfer,
The HLDRQ signal 21 is withdrawn and the right to use the bus is returned to the CPU 10. The transfer control unit 201 is the current register block 2
The memory address of 02 is updated and written back, one is subtracted from the transfer count data and written back (257). The updated address may be used as the access address for the first block 122, if desired. The transfer control unit 201 determines whether the subtracted number of transfers is zero (258), and returns to step 251 if it is not zero. Such processing is executed every time the data transfer request signal 42 becomes active.
【0023】ブロック切換要求信号41が発生されるか
又は転送回数が零なる、すなわち、第1ブロック122
が受信データで満たされると、ステップ259に処理が
移る。すなわち、カレントレジスタブロック202の転
送回数情報と制御/状態情報とがセーブレジスタブロッ
ク204にセーブされる。転送制御部201はセーブさ
れた制御/状態情報の中のブロック継続指示情報を判定
する(260)。本説明では同情報は「継続」を指示し
ているので、ステップ261に移り、ネクストレジスタ
ブロック203の内容がカレントレジスタブロック20
2にコピーされる。かくして、DMAC20は、CPU
10による再設定を待つことなく、シリアルデータ受信
ユニット40とメモリ120の第2ブロック124との
DMA転送を実行できる状態となる。転送制御部201
はこの後、周辺セーブ信号24と割込み要求信号23を
発生し、ステップ251に移行する。したがって、この
後、シリアルデータ受信ユニット40がデータ転送要求
信号42を発生すると、受信データは第2ブロック12
4に転送されることになる。When the block switching request signal 41 is generated or the number of transfers becomes zero, that is, when the first block 122
When is filled with received data, processing moves to step 259. That is, the transfer number information and control/state information of the current register block 202 are saved in the save register block 204. The transfer control unit 201 determines block continuation instruction information in the saved control/state information (260). In this explanation, since the same information instructs "continue", the process moves to step 261, and the contents of the next register block 203 are changed to the current register block 20.
Copied to 2. Thus, the DMAC20
A state is reached in which DMA transfer between the serial data receiving unit 40 and the second block 124 of the memory 120 can be performed without waiting for resetting by the serial data receiving unit 10. Transfer control unit 201
Thereafter, it generates a peripheral save signal 24 and an interrupt request signal 23, and proceeds to step 251. Therefore, after this, when the serial data receiving unit 40 generates the data transfer request signal 42, the received data is transferred to the second block 12.
It will be transferred to 4.
【0024】一方、周辺セーブ信号24に応答して受信
制御部401はステータスレジスタ402の内容をステ
ータスセーブレジスタ403にセーブする。On the other hand, in response to the peripheral save signal 24, the reception control section 401 saves the contents of the status register 402 in the status save register 403.
【0025】INTC30はDMAC20からの割込み
要求信号23に応答してCPU10に割込み処理要求を
発生する。CPU10は同要求にもとづきプログラム実
行を中断し、中断したプログラム実行の再開に必要な情
報をデータメモリ120のスタック領域(図示せず)に
退避させ、図3の割込み処理ルーチンを実行する。The INTC 30 generates an interrupt processing request to the CPU 10 in response to the interrupt request signal 23 from the DMAC 20. Based on the request, the CPU 10 interrupts program execution, saves information necessary for resuming the interrupted program execution to the stack area (not shown) of the data memory 120, and executes the interrupt processing routine of FIG. 3.
【0026】この割込み処理ルーチンにおいて、CPU
10はまず受信ユニット40内のステータスセーブレジ
スタ132からセーブされたステータス情報を読込み(
301)、受信データや受信状態にエラーが発生してい
るかどうかをチェックする(302)。エラーが発生し
ておれば、エラー処理303として、DMAC20およ
びデータ受信ユニット40の動作を止め、シリアルデー
タの送信元にデータの再送信を要求するとともにDMA
C20,ユニット40の再設定を行なう。エラー発生が
なければ、ステータスセーブレジスタ403の内容を第
1ブロック制御データエリア123の周辺状態セーブデ
ータエリアに転送し、DMA20のセーブレジスタブロ
ック204の内容を同エリア123の転送回数データエ
リアおよびDMA制御/状態データエリアに転送する(
304)。この処理のために、制御データエリアアドレ
ス121としてデータエリア123の先頭アドレスがス
トアされており、同アドレスと各ブロックにおける各デ
ータエリアの予じめ定まったオフセット量とから各デー
タエリアのアドレスが算出される。勿論、DMAC20
および受信ユニット40内の各レジスタのアドレスは予
じめ定まっている。そして、第1ブロック制御データエ
リア123のネクストアドレスデータ、すなわち第2ブ
ロック制御データエリアの先頭アドレスが制御データエ
リアアドレス121として設定される。次に、第1ブロ
ック制御データエリア123にセーブされたDMA制御
/状態データのブロック継続指示情報を判定する(30
5)。本説明では同情報は「継続」を指示しているので
、新たに設定された制御データエリアアドレス121と
第2ブロック制御データエリア125内のネクストアド
レスデータとを利用して、第3ブロック制御データエリ
ア(図示せず)内の転送回数データ,メモリアドレスデ
ータおよびDMA制御/状態データをDMAC20のネ
クストレジスタブロック203に転送する(306)。In this interrupt processing routine, the CPU
10 first reads the saved status information from the status save register 132 in the receiving unit 40 (
301), and checks whether an error has occurred in the received data or reception status (302). If an error has occurred, as error processing 303, the operation of the DMAC 20 and the data receiving unit 40 is stopped, the serial data transmission source is requested to retransmit the data, and the DMA
C20 and unit 40 are reset. If no error occurs, the contents of the status save register 403 are transferred to the peripheral status save data area of the first block control data area 123, and the contents of the save register block 204 of the DMA 20 are transferred to the transfer count data area of the same area 123 and the DMA control data area. /Transfer to status data area (
304). For this process, the start address of the data area 123 is stored as the control data area address 121, and the address of each data area is calculated from the same address and a predetermined offset amount for each data area in each block. be done. Of course, DMAC20
The addresses of each register in the receiving unit 40 are determined in advance. Then, the next address data of the first block control data area 123, that is, the start address of the second block control data area is set as the control data area address 121. Next, the block continuation instruction information of the DMA control/state data saved in the first block control data area 123 is determined (30
5). In this explanation, since the information instructs "continuation", the newly set control data area address 121 and the next address data in the second block control data area 125 are used to create the third block control data Transfer count data, memory address data, and DMA control/status data in an area (not shown) are transferred to the next register block 203 of the DMAC 20 (306).
【0027】図2に戻って、ステップ260でブロック
継続指示情報が「非継続」を指示しているときは、転送
制御部201はネクストレジスタブロック203の内容
をカレントレジスタ202にコピーすることなく信号2
4と23を発生し、DMAC20はCPU10にはデー
タ再設定の待ち状態となりDMA転送禁止状態となる。
したがって、図3に示したCPUの割込み処理ルーチン
では、ステップ305の次はステップ307に移り、第
2および第3ブロック制御データエリア内の転送回数デ
ータ,メモリアドレスデータおよびDMA制御/状態デ
ータがカレントレジスタブロック202およびネクスト
レジスタブロック203にそれぞれ転送され、DMAC
20が再起動される。Returning to FIG. 2, when the block continuation instruction information instructs "non-continuation" in step 260, the transfer control unit 201 transmits the signal without copying the contents of the next register block 203 to the current register 202. 2
4 and 23, the DMAC 20 enters a waiting state for data resetting in the CPU 10, and enters a DMA transfer prohibited state. Therefore, in the CPU interrupt processing routine shown in FIG. 3, the process moves to step 307 after step 305, and the transfer count data, memory address data, and DMA control/status data in the second and third block control data areas are set to the current state. are transferred to the register block 202 and next register block 203, respectively, and the DMAC
20 is restarted.
【0028】ステップ306又は307の実行後、CP
U10は第1ブロック122に転送されたデータに対す
る処理を実行する(308)。実行後、データメモリ1
20から退避しておいた情報を復帰し、中断されていた
プログラムを再開する。After executing step 306 or 307, the CP
U10 performs processing on the data transferred to the first block 122 (308). After execution, data memory 1
The information saved from 20 is restored and the interrupted program is restarted.
【0029】各ブロック制御データエリアにはセーブレ
ジスタブロック204の転送回数情報も転送されるので
、上述したブロック切換がFOEコードの受信によるブ
ロック切換要求信号41により実行された場合でも、各
ブロックにいくつのデータが転送されているのか判定で
きる。Since the information on the number of transfers of the save register block 204 is also transferred to each block control data area, even if the above-mentioned block switching is executed in response to the block switching request signal 41 upon reception of the FOE code, the number of transfers for each block is also transferred. It can be determined whether data is being transferred.
【0030】このように、ブロック継続指示情報を「継
続」にしておけば、所定数のデータが転送されるか又は
FOEコードが受信されても、DMAC20は次のブロ
ックへのデータ転送許可状態となるので、受信オーバー
ランエラーが発生することを防止できる。[0030] In this way, if the block continuation instruction information is set to "continue", even if a predetermined number of data is transferred or a FOE code is received, the DMAC 20 will be in the data transfer permission state to the next block. Therefore, it is possible to prevent reception overrun errors from occurring.
【0031】本マイクロコンピュータ100がシリアル
データ送信ユニットも内蔵するときは、同ユニットのた
めのカレントレジスタブロック,ネクストレジスタブロ
ックおよびセーブレジスタブロックをDMAC20内に
さらに用意し、送信ユニットと受信ユニットのためのデ
ータ転送を時分割的に実行することにより受信オーバー
ランエラーおよび送信アンダーランエラーの両方とも防
止できる。When the present microcomputer 100 also incorporates a serial data transmitting unit, a current register block, a next register block, and a save register block for this unit are further prepared in the DMAC 20, and a serial data transmitting unit and a receiving unit are also provided. By performing data transfer in a time-division manner, both reception overrun errors and transmission underrun errors can be prevented.
【0032】図4を参照すると、本発明の第2実施例に
よるマイクロコンピュータ101は、シリアルデータ受
信ユニット40とローカルメモリ400との間のDMA
転送を実行するDMAC20を有する。なお、図1と同
一構成部は同じ番号で示して説明を省略する。DMAC
20,受信ユニット40およびローカルメモリ400は
ローカルバス450で相互接続されている。受信ユニッ
ト40がデータ転送要求を発行すると、転送制御部20
1はHLDRQ信号21およびHLDACK信号22に
より、ローカルバス450を管理するプロセッサ(図示
せず)からローカルバスの使用権を得て、受信ユニット
40からローカルメモリ400へデータを転送する。Referring to FIG. 4, the microcomputer 101 according to the second embodiment of the present invention has a DMA interface between the serial data receiving unit 40 and the local memory 400.
It has a DMAC 20 that performs transfer. Note that the same components as those in FIG. 1 are indicated by the same numbers and the description thereof will be omitted. DMAC
20, receiving unit 40 and local memory 400 are interconnected by a local bus 450. When the receiving unit 40 issues a data transfer request, the transfer control unit 20
1 obtains the right to use the local bus from a processor (not shown) that manages the local bus 450 using the HLDRQ signal 21 and the HLDACK signal 22, and transfers data from the receiving unit 40 to the local memory 400.
【0033】かかる構成では、図3に示したCPU10
の割込み処理ルーチンがDMA転送により一時中断され
ることがないので、CPUの処理効率をさらに高めるこ
とができる。ローカルメモリ400もマイクロコンピュ
ータ101の管理下にあり、ローカルバス450をDM
A転送の専用バスとして用いれば、転送制御部201は
信号21,22を用いることなくDMA転送を実行でき
る。In such a configuration, the CPU 10 shown in FIG.
Since the interrupt processing routine is not temporarily interrupted by DMA transfer, the processing efficiency of the CPU can be further improved. The local memory 400 is also under the control of the microcomputer 101, and the local bus 450 is
If used as a dedicated bus for A transfer, the transfer control unit 201 can perform DMA transfer without using the signals 21 and 22.
【0034】なお、図3の割込み処理ルーチンはプログ
ラムメモリ110にストアされていてユーザーが比較的
自由に変更できる。たとえば、エラーチェック(302
)およびデータ処理(308)はすべてのブロック12
2,124,…,126へのデータ転送終了後に一括し
て実行してもよい。ただし、ステップ304乃至306
はブロック継続を指示する限り実行した方が好ましい。The interrupt processing routine shown in FIG. 3 is stored in the program memory 110 and can be changed relatively freely by the user. For example, error checking (302
) and data processing (308) in all blocks 12
2, 124, . . . , 126 may be executed all at once after the data transfer to 2, 124, . However, steps 304 to 306
It is preferable to execute this as long as it instructs block continuation.
【0035】ところで、図3の割込み処理ルーチンの実
行にあたっては、まずCPU10は中断されたプログラ
ム実行のその時点での状態、すなわちプログラムカウン
タ(PC)、プログラムステータスワード(PSW)お
よび汎用レジスタの内容をデータメモリ120にセーブ
し、割込み処理ルーチンの実行後にセーブした内容を復
帰してプログラムを再開させるという所謂オーバーヘッ
ドを伴なう。かかるオーバーヘッドをなくしまたDMA
C20からの割込み要求にもとづく処理のうちの定格的
なものをマイクロコンピュータ自体があたかもハードウ
ェアの一部として実行すれば、処理効率はさらに高まり
またユーザーのプログラム負担を軽減することができる
。By the way, in executing the interrupt processing routine shown in FIG. 3, the CPU 10 first checks the current state of the interrupted program execution, that is, the contents of the program counter (PC), program status word (PSW), and general-purpose registers. This involves the so-called overhead of saving the data in the data memory 120 and restoring the saved content after executing the interrupt processing routine to restart the program. Eliminating this overhead and using DMA
If the microcomputer itself executes the rated processing based on the interrupt request from the C20 as if it were part of the hardware, processing efficiency can be further increased and the burden on the user's program can be reduced.
【0036】そのための構成を第3実施例として図5に
示す。なお、図5には本実施例では、マイクロコンピュ
ータのCPU15とINTC30のみが示されており、
その他の構成は図1と同一であるので省略している。本
CPU15はマイクロプログラム制御方法を採用してあ
り、プログラムメモリ110にストアされた各命令は対
応する一連のマイクロ命令(すなわち、マイクロプログ
ラム)を実行することによりこの機能が達成される。マ
イクロプログラムはユーザーからは見えないので、ユー
ザーにとっては完全にハードウェアの一部である。A configuration for this purpose is shown in FIG. 5 as a third embodiment. In addition, in this embodiment, only the CPU 15 and INTC 30 of the microcomputer are shown in FIG.
The other configurations are the same as those in FIG. 1, so they are omitted. The present CPU 15 employs a microprogram control method, and each instruction stored in the program memory 110 executes a corresponding series of microinstructions (ie, a microprogram) to achieve this function. Since the microprogram is invisible to the user, it is completely part of the hardware for the user.
【0037】すなわち、プログラムカウンタ(PC)1
51の内容はアドレスバスドライバ153を介してバス
60、130に転送され、それによってプログラムメモ
リ110から読み出された命令はデータバッファ154
を介して命令レジスタ(IR)155に一時ストアされ
る。IR155からの命令はデコーダ156で解読され
て実行部158に供給される。実行部はマイクロプログ
ラムメモリ1585を有し、マイクロプログラムポイン
タ1584に解読された命令が有するマイクロアドレス
がセットされることにより、一連のマイクロ命令が読み
出され実行される。実行部158はさらに算術論理演算
ユニット(ALU)1581、その演算状態を一時スト
アするプログラムステータスワード(PSW)1582
、テンポラリレジスタ1583を有し、汎用レジスタ1
57とも協働して一連のマイクロ命令が実行されること
により、IR155にストアされた命令の機能が遂行さ
れる。実行部158から出力される制御信号群159は
命令実行のためのシーケンスコントロール信号である。That is, program counter (PC) 1
The contents of 51 are transferred to buses 60, 130 via address bus driver 153, whereby the instructions read from program memory 110 are transferred to data buffer 154.
It is temporarily stored in the instruction register (IR) 155 via the instruction register (IR) 155. Instructions from the IR 155 are decoded by a decoder 156 and supplied to an execution unit 158. The execution unit has a microprogram memory 1585, and a series of microinstructions is read and executed by setting the microaddress of the decoded instruction in the microprogram pointer 1584. The execution unit 158 further includes an arithmetic logic unit (ALU) 1581 and a program status word (PSW) 1582 that temporarily stores the operation status thereof.
, has a temporary register 1583, and has a general-purpose register 1
The functions of the instructions stored in the IR 155 are performed by executing a series of microinstructions in cooperation with the IR 157. A control signal group 159 output from the execution unit 158 is a sequence control signal for executing instructions.
【0038】マイクロプログラムメモリ1585には本
実施例に従ってマクロサービスマイクロプログラム15
86がストアされている。マクロサービスについては後
で詳述する。このマクロサービスプログラム1586は
、INTC30からの割込み要求がマクロサービス要求
を指定しているときに起動される。The microprogram memory 1585 stores the macro service microprogram 15 according to this embodiment.
86 are stored. Macro services will be explained in detail later. This macro service program 1586 is activated when an interrupt request from INTC 30 specifies a macro service request.
【0039】すなわち、INTC30は、DMAC20
からの割込み要求をマクロサービスとして処理するか通
常のベクタ割込みとして処理するかを指定するフラグ3
3を有している。フラグ33がセットされたときはマク
ロサービスが指定され、クリアされたときにはベクタ割
込みが指定される。INTC30は、割込み要求を受け
ると、実行部158に割込み処理要求信号31を発生す
るとともに割込みモード情報32−1をIR155にス
トアする。さらにベクタ番号情報32−2を実行部15
8に供給する。割込みモード情報32−1を解読した結
果、ベクタ割込みが指定されておれば、ベクタ番号情報
32−2から割込み処理ルーチンの先頭番地を得、PC
151,PSW1582,汎用レジスタ157の内容を
データメモリ120にセーブして、PCに上記先頭番地
を設定して割込み処理ルーチンを実行する。一方、割込
みモード情報32−1がマクロサービスを指定している
ときは、ベクタ番号32−2からマクロサービスマイク
ロプログラム1582の先頭マイクロアドレスを得、こ
れをポインタ1584に設定してマイクロプログラムを
実行する。このとき、PC151,PSW1582,汎
用レジスタ157の内容はセーブされずにそのままの状
態とされ、かつそれらの内容の更新は禁止される。[0039] That is, INTC30 is DMAC20
Flag 3 that specifies whether to process the interrupt request from as a macro service or a normal vector interrupt.
It has 3. When flag 33 is set, macro service is designated, and when cleared, vectored interrupt is designated. When INTC 30 receives an interrupt request, it generates interrupt processing request signal 31 to execution unit 158 and stores interrupt mode information 32-1 in IR 155. Furthermore, the vector number information 32-2 is sent to the execution unit 15.
Supply to 8. As a result of decoding the interrupt mode information 32-1, if a vectored interrupt is specified, the start address of the interrupt processing routine is obtained from the vector number information 32-2, and the PC
151, PSW 1582, and the contents of the general-purpose register 157 are saved in the data memory 120, the above-mentioned start address is set in the PC, and the interrupt processing routine is executed. On the other hand, when the interrupt mode information 32-1 specifies macro service, the start micro address of the macro service micro program 1582 is obtained from the vector number 32-2, this is set in the pointer 1584, and the micro program is executed. . At this time, the contents of the PC 151, PSW 1582, and general-purpose register 157 are not saved and remain as they are, and updating of these contents is prohibited.
【0040】次に、動作につき詳述する。CPU15は
図1で述べたようにプログラムメモリ110にストアさ
れたプログラムを実行することによりデータメモリ12
0,シリアルデータ受信ユニット40およびDMAC2
0に初期設定を実行する。ただし、本実施例では、DM
A制御/状態情報としてマクロサービスの後に続けてC
PU15をベクタ割込み処理に移行させるベクタ割込み
要求指定情報も含まれている。本説明では、第1乃至第
(N−1)ブロックではベクタ割込要求は指定されず、
第Nブロックで指定されている。また、第1乃至第(N
−1)ブロックではブロック継続指定情報は「継続」と
なっており、第Nブロックでは「非継続」となっている
。さらに本実施例では上記初期設定時にINTC30の
フラグ33はセットされる。かかる初期設定後、CPU
15は引き続きプログラムメモリ110から命令フェッ
チして実行する。Next, the operation will be explained in detail. The CPU 15 executes the program stored in the program memory 110 as described in FIG.
0, serial data receiving unit 40 and DMAC2
Perform initialization to 0. However, in this embodiment, DM
A Following the macro service as control/state information, C
It also includes vector interrupt request designation information that causes the PU 15 to transition to vector interrupt processing. In this explanation, vector interrupt requests are not specified in the first to (N-1) blocks;
It is specified in the Nth block. In addition, the first to (N
-1) In the block, the block continuation designation information is "continuation", and in the Nth block, it is "non-continuation". Furthermore, in this embodiment, the flag 33 of the INTC 30 is set at the time of the initial setting. After such initial settings, the CPU
15 continues to fetch instructions from the program memory 110 and execute them.
【0041】一方、DMAC20は図2で示したフロー
に従って動作しており、所定ビット数のデータが受信さ
れる毎に同データは受信ユニット40からデータメモリ
120の第1ブロック122にDMA転送される。そし
て、カレントレジスタブロック202の転送回数データ
が零となるか又はFOFコードが受信されると、本説明
では、カレントレジスタ202の転送回数データおよび
制御/状態データがセーブレジスタブロック204にセ
ーブされ、ネクストレジスタブロック203の内容がカ
レントレジスタブロック202にコピーされる(図の2
59乃至261)、その後、周辺セーブ指示信号24が
発生されるとともに割込み要求信号23が発生される。On the other hand, the DMAC 20 operates according to the flow shown in FIG. 2, and each time data of a predetermined number of bits is received, the data is transferred by DMA from the receiving unit 40 to the first block 122 of the data memory 120. . Then, in this explanation, when the transfer count data of the current register block 202 becomes zero or the FOF code is received, the transfer count data and control/state data of the current register 202 are saved in the save register block 204, and the next The contents of register block 203 are copied to current register block 202 (see 2 in the figure).
59 to 261), then the peripheral save instruction signal 24 is generated and the interrupt request signal 23 is generated.
【0042】フラグ33がセットされているので、IN
TC30は割込み要求信号23に応答してマクロサービ
スモード指定情報32−1をIR155に転送する。か
くして、マクロサービスマイクロプログラムがPC15
1,PSW1582,汎用レジスタ157の内容をセー
ブすることなくそのままにした状態で起動される。この
マクロサービスマイクロプログラムのフローチャートが
図6に示されている。すなわち、データメモリ120の
制御データエリアアドレス121の値を使ってステータ
スセーブレジスタ403の内容とDMAC20のセーブ
レジスタブロック204の内容が第1ブロック制御デー
タエリア123の対応する領域にそれぞれ転送される(
601)。セーブされたDMA制御/状態データのうち
のブロック継続指示情報がチェックされる(602)。
本説明では「継続」指示となっているので、第1ブロッ
ク制御データエリア123のネクストアドレスデータが
エリアアドレス121として設定され(603)、同ア
ドレスと第2ブロック制御データエリア125のネクス
トアドレスデータ2を利用して、第3ブロック制御デー
タエリアの転送回数データ,メモリアドレスデータおよ
びDMA制御/状態データがDMAC20のネクストレ
ジスタブロック203に転送される(604)。この後
、第1ブロック制御データエリア123に転送されたD
MA制御/状態データのうちのベクタ割込み要求指示情
報がチェックされる(605)。本説明では、ベクタ割
込み要求をしないので、マクロサービスを終了する。Since flag 33 is set, IN
The TC 30 transfers the macro service mode designation information 32-1 to the IR 155 in response to the interrupt request signal 23. Thus, the macro service microprogram is
1. Startup is performed with the contents of the PSW 1582 and general-purpose register 157 left as they are without being saved. A flowchart of this macro service microprogram is shown in FIG. That is, the contents of the status save register 403 and the contents of the save register block 204 of the DMAC 20 are transferred to the corresponding areas of the first block control data area 123 using the value of the control data area address 121 of the data memory 120 (
601). Block continuation instruction information in the saved DMA control/state data is checked (602). In this explanation, since the instruction is "Continue", the next address data of the first block control data area 123 is set as the area address 121 (603), and the next address data 2 of the same address and the second block control data area 125 is set as the area address 121 (603). Using this, the transfer count data, memory address data, and DMA control/status data in the third block control data area are transferred to the next register block 203 of the DMAC 20 (604). After this, D transferred to the first block control data area 123
Vector interrupt request instruction information in the MA control/state data is checked (605). In this explanation, since no vector interrupt request is made, the macro service is ended.
【0043】マクロサービスが終了すると、PC151
,PSW1582,汎用レジスタ157の更新が許可さ
れ、中断されたプログラムの実行が再開される。プログ
ラムの中断および再開にともなうオーバーベッドが生じ
ないので、CPUの処理効率はさらに高まる。[0043] When the macro service ends, the PC 151
, PSW 1582, and general-purpose register 157 are permitted to be updated, and execution of the interrupted program is resumed. CPU processing efficiency is further increased because there is no overbed caused by program interruption and restart.
【0044】上記ステップ602で「非継続」が指定さ
れておれば、ステップ605に移行する。このステップ
でベクタ割込み要求が指定されておれば、フラグ33が
クリアされ(606)、マクロサービスを終了する。If "non-continuation" is specified in step 602, the process moves to step 605. If a vector interrupt request is specified in this step, the flag 33 is cleared (606) and the macro service is ended.
【0045】フラグ33がクリアされることにより、I
NTC30はベクタ割込みモードコード32−1を再度
IR/55に設定し、この結果、ユーザープログラムに
よる割込みルーチンが起動される。By clearing the flag 33, I
NTC 30 sets vector interrupt mode code 32-1 to IR/55 again, which causes the user program interrupt routine to be activated.
【0046】この割込みルーチンによる処理は、各ブロ
ックに対応するブロック継続指示情報および/又はベク
タ割込み要求指示情報に応じて様々な処理が考えられる
。本説明では、第Nブロック126へのデータ転送後に
、ベクタ割込みが起動されるので、その割込み処理ルー
チンで、各ブロックでの周辺状態セーブデータにもとづ
くエラーチェックおよび各データに対する処理が一括し
て実行される。Various processes can be considered for the processing by this interrupt routine depending on the block continuation instruction information and/or vector interrupt request instruction information corresponding to each block. In this explanation, a vectored interrupt is activated after data is transferred to the Nth block 126, so the interrupt processing routine executes error checking based on the peripheral state save data in each block and processing for each data at once. be done.
【0047】このように、本実施例によれば、DMAC
20とデータメモリ120間の必要なデータ転送がマイ
クロプログラムによるマクロサービスとしてマイクロコ
ンピュータのハードウェアの一部として実行されるので
、データ処理の実行効率がさらに高まり、かつユーザー
に対しプログラム作成の負担を軽減することができる。As described above, according to this embodiment, the DMAC
Since the necessary data transfer between 20 and the data memory 120 is executed as part of the microcomputer hardware as a macro service by a microprogram, the execution efficiency of data processing is further increased and the burden of program creation is reduced to the user. It can be reduced.
【0048】本実施例においても、図4に従ってDMA
C20が受信ユニット40とローカルメモリ400との
間のDMA転送を実行させることができる。In this embodiment as well, the DMA is performed according to FIG.
C20 may perform DMA transfers between receiving unit 40 and local memory 400.
【0049】[0049]
【発明の効果】以上のとおり、本発明によれば、DMA
転送のブロックの切り替えを数クロックという非常に高
速に実行できて転送禁止期間が極めて短縮化でき、DM
A転送要求の発行期間が短かい場合にも対処することが
できる。[Effects of the Invention] As described above, according to the present invention, the DMA
Switching of transfer blocks can be performed at a very high speed of several clocks, and the transfer inhibition period can be extremely shortened.
It is also possible to deal with cases where the A transfer request issuance period is short.
【0050】本発明は上記実施例に限定されず、適宜変
更できることは明らかである。例えば、ネクストレジス
タブロック203をカレントレジスタブロック202に
コピーする代わりに、転送制御部201が参照すべきレ
ジスタをマルチプレクサでネクストレジスタブロック2
03となるように切替てもよい。このとき、次の情報は
レジスタブロック202にロードされ、これがネクスト
レジスタブロックとなる。It is clear that the present invention is not limited to the above embodiments and can be modified as appropriate. For example, instead of copying the next register block 203 to the current register block 202, a register to be referenced by the transfer control unit 201 is copied to the next register block 202 using a multiplexer.
It may be switched to 03. At this time, the next information is loaded into register block 202, which becomes the next register block.
【図1】本発明の第1実施例によるマイクロコンピュー
タを用いたシステムブロック図である。FIG. 1 is a system block diagram using a microcomputer according to a first embodiment of the present invention.
【図2】図1で示したDMACの動作フローチャートで
ある。FIG. 2 is an operation flowchart of the DMAC shown in FIG. 1;
【図3】図1で示したマイクロコンピュータの割込み処
理ルーチンの一例を示すフローチャートである。FIG. 3 is a flowchart showing an example of an interrupt processing routine of the microcomputer shown in FIG. 1;
【図4】本発明の第2実施例によるシステムブロック図
である。FIG. 4 is a system block diagram according to a second embodiment of the present invention.
【図5】本発明の第3実施例によるマイクロコンピュー
タのCPUを示すブロック図である。FIG. 5 is a block diagram showing a CPU of a microcomputer according to a third embodiment of the present invention.
【図6】図5で示したCPUのマクロサービスマイクロ
プログラムのフローチャートである。FIG. 6 is a flowchart of a macro service microprogram of the CPU shown in FIG. 5;
Claims (7)
送要求に応答して前記周辺ユニットおよびメモリ間のデ
ータ転送を実行するDMAコントローラとを備え、前記
DMAコントローラは、現在のDMA転送を実行するに
必要な第1の情報をストアする第1の記憶手段と、前記
現在のDMA転送の終了後に起動すべき次のDMA転送
に必要な第2の情報をストアする第2の記憶手段と、前
記第1の情報を用いて前記データ転送要求に応答してデ
ータ転送を実行する実行手段と、前記第1の情報を用い
たDMA転送の終了状態に応答して前記実行手段に前記
第2の情報を用いてデータ転送を実行できるようにする
とともに前記CPUに対し割込み要求を発行する手段と
を有し、前記実行手段はその後の前記データ転送要求に
応答して前記第2の情報を用いてデータ転送を実行する
ことを特徴とするマイクロコンピュータ。1. A DMA controller that executes data transfer between the peripheral unit and memory in response to a data transfer request from a CPU and a peripheral unit, wherein the DMA controller is configured to perform data transfer between the peripheral unit and memory, and the DMA controller is configured to perform data transfer between the peripheral unit and memory in response to a data transfer request from a CPU and a peripheral unit. a first storage means for storing first information, a second storage means for storing second information necessary for the next DMA transfer to be activated after the completion of the current DMA transfer; an execution means for executing data transfer in response to the data transfer request using the information; and an execution means for executing the data transfer in response to the completion state of the DMA transfer using the first information; and means for issuing an interrupt request to the CPU, and the executing means executes the data transfer using the second information in response to the subsequent data transfer request. A microcomputer characterized by executing.
て前記次のDMA転送の終了後に起動すべきさらに次の
DMA転送に必要な第3の情報を前記DMAコントロー
ラに設定する手段を有し、前記DMAコントローラの前
記実行手段は前記第2の情報を用いたDMA転送が終了
すると前記第3の情報を用いてその後の前記データ転送
要求に応答したデータ転送を実行することを特徴とする
請求項1記載のマイクロコンピュータ。2. The CPU includes means for setting, in the DMA controller, third information necessary for a further next DMA transfer to be activated after the completion of the next DMA transfer in response to the interrupt request; 2. The execution means of the DMA controller, when the DMA transfer using the second information is completed, uses the third information to execute subsequent data transfer in response to the data transfer request. 1. The microcomputer according to 1.
スを指定するプログラムカウンタと命令実行状態をスト
アするプログラムステータスワードとをさらに有し、前
記CPUの前記手段は、前記第3の情報の前記DMAコ
ントローラへの設定を前記プログラムカウンタおよび前
記プログラムステータスワードの内容を退避することな
くそのままの状態に保持したまま行うことを特徴とする
請求項2記載のマイクロコンピュータ。3. The CPU further comprises a program counter for specifying an address of an instruction to be executed and a program status word for storing an instruction execution status, and the means of the CPU is configured to read the third information from the DMA. 3. The microcomputer according to claim 2, wherein settings are made to the controller while the contents of the program counter and the program status word are maintained as they are without being saved.
辺ユニットおよびメモリ間のデータ転送を実行するDM
Aコントローラとを備え、前記DMAコントローラは前
記データ転送を行う実行手段と、前記実行手段が前記デ
ータ転送を行うに必要な情報をストアする第1の記憶手
段と、次に起動すべきDMA転送に必要な情報をストア
する第2の記憶手段と、前記第1の記憶手段にストアさ
れている情報を用いたDMA転送の終了状態に応答して
前記第2の記憶手段のストア情報を前記第1の記憶手段
にコピーし前記実行手段にコピーされた情報を用いたD
MA転送を実行できる状態にする手段とを有することを
特徴とするマイクロコンピュータ。4. A DM that executes data transfer between the CPU and peripheral units and memory in response to a data transfer request.
A controller, the DMA controller includes an execution means for performing the data transfer, a first storage means for storing information necessary for the execution means to perform the data transfer, and a first storage means for storing information necessary for the execution means to perform the data transfer, and a first storage means for storing information necessary for the execution means to perform the data transfer, and a second storage means for storing necessary information; and a second storage means for storing necessary information; D using the information copied to the storage means of and copied to the execution means.
1. A microcomputer comprising: means for enabling MA transfer.
ストア情報が前記第1の記憶手段にコピーされると、さ
らに次に起動すべきDMA転送に必要な情報を第2の記
憶手段にストアする手段を有することを特徴とする請求
項4記載のマイクロコンピュータ。5. When the store information in the second storage means is copied to the first storage means, the CPU further stores information necessary for the next DMA transfer to be activated into the second storage means. 5. The microcomputer according to claim 4, further comprising means for storing.
MAと記す)転送要求信号を発行し、かつ処理完了時に
DMA転送終了指示信号を発行し、かつ前記処理完了時
または状態退避指示信号の検出時に内部状態を退避し記
憶する状態退避記憶手段を含む周辺回路と、少なくとも
DMA転送継続指示情報を含むDMA制御情報記憶部と
DMA転送回数記憶部とを含む第1,第2,第3の3種
のDMA制御記憶手段と、前記DMA転送要求信号を検
知すると前記周辺回路とメモリとの間でDMA転送を行
うとともに前記第2のDMA制御記憶手段内のDMA転
送回数記憶部の値を更新し、前記更新の結果所定の値に
なるかまたは前記DMA転送終了指示信号を検知するか
のいずれかが発生しかつ前記第2のDMA制御記憶手段
内のDMA転送継続指示情報が有効であれば前記第2の
DMA制御記憶手段の内容を前記第3のDMA制御記憶
手段に、続いて前記第1のDMA制御記憶手段の内容を
第2のDMA制御記憶手段に転送するとともに前記状態
退避指示信号を発行する制御手段とを有するDMA転送
手段とを有することを特徴とするマイクロコンピュータ
。[Claim 6] Direct memory access (hereinafter referred to as D
A state saving storage means that issues a transfer request signal (denoted as MA), issues a DMA transfer end instruction signal when processing is completed, and saves and stores the internal state when the processing is completed or when a state saving instruction signal is detected. a peripheral circuit, first, second, and third types of DMA control storage means including at least a DMA control information storage section including DMA transfer continuation instruction information and a DMA transfer number storage section; and a DMA transfer request signal. When detected, a DMA transfer is performed between the peripheral circuit and the memory, and the value of the DMA transfer number storage section in the second DMA control storage means is updated, and if the update results in a predetermined value or the DMA If either a transfer end instruction signal is detected and the DMA transfer continuation instruction information in the second DMA control storage means is valid, the contents of the second DMA control storage means are transferred to the third DMA control storage means. DMA transfer means having a DMA control storage means and a control means for subsequently transferring the contents of the first DMA control storage means to a second DMA control storage means and issuing the state save instruction signal. A microcomputer featuring:
ための第1のバスと、前記DMA転送手段がDMA転送
を行なうための第2のバスとをさらに有することを特徴
とする請求項6記載のマイクロコンピュータ。7. The apparatus according to claim 6, further comprising a first bus for the central processing means to perform data processing, and a second bus for the DMA transfer means to perform DMA transfer. microcomputer.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3152681A JP2871171B2 (en) | 1990-06-25 | 1991-06-25 | Microcomputer |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2-165915 | 1990-06-25 | ||
JP16591590 | 1990-06-25 | ||
JP2-237416 | 1990-09-07 | ||
JP23741690 | 1990-09-07 | ||
JP3152681A JP2871171B2 (en) | 1990-06-25 | 1991-06-25 | Microcomputer |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04260955A true JPH04260955A (en) | 1992-09-16 |
JP2871171B2 JP2871171B2 (en) | 1999-03-17 |
Family
ID=27320324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3152681A Expired - Fee Related JP2871171B2 (en) | 1990-06-25 | 1991-06-25 | Microcomputer |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2871171B2 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6329868A (en) * | 1986-07-23 | 1988-02-08 | Nec Corp | Dma controller |
JPS63239549A (en) * | 1987-03-27 | 1988-10-05 | Hitachi Ltd | Data chaining control system |
-
1991
- 1991-06-25 JP JP3152681A patent/JP2871171B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6329868A (en) * | 1986-07-23 | 1988-02-08 | Nec Corp | Dma controller |
JPS63239549A (en) * | 1987-03-27 | 1988-10-05 | Hitachi Ltd | Data chaining control system |
Also Published As
Publication number | Publication date |
---|---|
JP2871171B2 (en) | 1999-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0464615B1 (en) | Microcomputer equipped with DMA controller | |
EP0166272B1 (en) | Processor bus access | |
EP0524530B1 (en) | DMA controller | |
JP3055917B2 (en) | Data transfer control device | |
US5469577A (en) | Providing alternate bus master with multiple cycles of bursting access to local bus in a dual bus system including a processor local bus and a device communications bus | |
EP1063594B1 (en) | An interrupt controller and a microcomputer incorporating this controller | |
EP0290942B1 (en) | Guest machine execution control system for virtual machine system | |
JP4168281B2 (en) | Parallel processing system, interconnection network, node and network control program | |
US20030172215A1 (en) | Interrupt- controller | |
JP2594600B2 (en) | Single chip microcomputer | |
JP2871171B2 (en) | Microcomputer | |
JPH06131294A (en) | Data transfer device | |
JPH02284253A (en) | Data transfer device | |
JPH0764886A (en) | Processor provided with serial interface device | |
JP2872042B2 (en) | Shared memory access method | |
JPS6352240A (en) | Data processor | |
JP2583169B2 (en) | Operation program switching method for communication processing device | |
JPH0378661B2 (en) | ||
JPH0424733B2 (en) | ||
JPS5939766B2 (en) | multiplexer channel equipment | |
JPS58158746A (en) | Information processing device | |
JPS6240749B2 (en) | ||
JPH10240713A (en) | Microcomputer | |
JPH03188547A (en) | Data transfer controller | |
JPH04172551A (en) | Information processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |