JPS63101936A - Microprogram execution control system - Google Patents
Microprogram execution control systemInfo
- Publication number
- JPS63101936A JPS63101936A JP61246737A JP24673786A JPS63101936A JP S63101936 A JPS63101936 A JP S63101936A JP 61246737 A JP61246737 A JP 61246737A JP 24673786 A JP24673786 A JP 24673786A JP S63101936 A JPS63101936 A JP S63101936A
- Authority
- JP
- Japan
- Prior art keywords
- address
- register
- microprogram
- processing
- execution start
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims description 20
- 230000008569 process Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 9
- 230000004044 response Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 230000010365 information processing Effects 0.000 description 2
- 101150022075 ADR1 gene Proteins 0.000 description 1
- 101100023372 Oryza sativa subsp. japonica MIF4 gene Proteins 0.000 description 1
- 101100071611 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) HSP60 gene Proteins 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
Landscapes
- Bus Control (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
【発明の詳細な説明】
〔目次〕
概要
産業上の利用分野
従来の技術
発明が解決しようとする問題点
問題点を解決するための手段(第1図)作用
実施例
(a)一実施例の構成の説明(第2図)(b)一実施例
の動作の説明(第3図、第4図、第5図、第6図)
(c)他の実施例の説明
発明の効果
〔概要〕
処理要求の順序によってマイクロプログラムの実行開始
アドレスを可変とするため、処理要求に対し、マイクロ
プログラム処理部の処理終了に対して次の処理要求の実
行開始アドレスをレジスタにセットし、且つ処理要求に
応じて実行アドレス生成回路がマイクロプログラム処理
部にレジスタの実行開始アドレスを出力するようにした
ものである。[Detailed description of the invention] [Table of contents] Overview Industrial field of application Conventional technology Problems to be solved by the invention Means for solving the problems (Fig. 1) Working example (a) One example Explanation of the configuration (Figure 2) (b) Explanation of the operation of one embodiment (Figures 3, 4, 5, and 6) (c) Explanation of other embodiments Effects of the invention [Summary] In order to make the execution start address of the microprogram variable depending on the order of processing requests, the execution start address of the next processing request is set in a register when the processing of the microprogram processing section is completed in response to the processing request, and In response, the execution address generation circuit outputs the execution start address of the register to the microprogram processing section.
本発明は、マイクロプログラムの実行によって処理要求
に対する処理を行う情報処理装置において、処理要求の
順序に応じてマイクロプログラムの実行開始アドレスを
可変とすることができるマイクロプログラム実行制御方
式に関する。The present invention relates to a microprogram execution control method in which an execution start address of a microprogram can be made variable according to the order of processing requests in an information processing apparatus that processes processing requests by executing microprograms.
マイクロプログラム制御方式は、情報処理装置に広く用
いられている。このようなマイクロプログラム制御にお
いては、近年の多種多様の処理が求められ、マイクロプ
ログラムの実行開始アドレスを処理要求に従って変化し
て処理を実行することが求められている。Microprogram control methods are widely used in information processing devices. In such microprogram control, a wide variety of processing is required in recent years, and it is required to execute processing by changing the execution start address of the microprogram according to processing requests.
従来のマイクロプログラム制御においては、同一の処理
要求に対しては、実行開始アドレスは一定であった。In conventional microprogram control, the execution start address is constant for the same processing request.
又、処理要求に対しメインルーチン実行中に、割込み等
の別の処理要求があると、メインルーチンを中断し、中
断アドレスをレジスタに退避し、別の処理要求に応じた
サブルーチンに飛んで、これを実行し、その後レジスタ
の中断アドレスに復帰し、メインルーチンを実行して処
理終了となるものであった。Also, if another processing request such as an interrupt occurs while the main routine is being executed in response to a processing request, the main routine is interrupted, the interruption address is saved in a register, and the subroutine corresponding to the other processing request is jumped to. , then return to the interrupt address in the register, execute the main routine, and end the process.
従って、処理要求に対し、マイクロプログラムの実行開
始アドレスを可変とするには、複数の処理要求を設定す
る必要があった。Therefore, in order to make the execution start address of a microprogram variable in response to a processing request, it is necessary to set a plurality of processing requests.
例えば、二次元データのDMA (ダイレクトメモリア
クセス)制御においては、処理要求である転送要求に対
しメモリアクセスのためのアドレス生成を行う必要があ
るが、転送要求の順序に応じてアドレス生成演算を変え
るべく、マイクロプログラムの実行開始アドレスを変化
させなければならない。For example, in DMA (direct memory access) control of two-dimensional data, it is necessary to generate addresses for memory access in response to transfer requests, which are processing requests, but the address generation operation is changed depending on the order of the transfer requests. Therefore, the execution start address of the microprogram must be changed.
このような処理要求の順序に応じてマイクロプログラム
の実行開始アドレスを変化させる必要がある場合に、従
来の技術では、同一の処理要求でありながら、1回目の
処理要求、2回目の処理要求・−というように処理要求
を別々に分解して入力させる必要があり、処理要求元の
負荷が大となるばかりか、処理要求線も複数要し、処理
が複雑となるという問題が生じていた。When it is necessary to change the execution start address of a microprogram according to the order of processing requests, conventional technology has been able to change the execution start address of a microprogram depending on the order of processing requests. - It is necessary to input the processing requests separately, which not only increases the load on the processing request source but also requires multiple processing request lines, complicating the processing.
本発明は、処理要求の順序に応じて容易にマイクロプロ
グラムの実行開始アドレスを可変とすることのできるマ
イクロプログラム実行制御方式を提供することを目的と
する。SUMMARY OF THE INVENTION An object of the present invention is to provide a microprogram execution control method that can easily vary the execution start address of a microprogram according to the order of processing requests.
第1図は本発明の原理説明図である。 FIG. 1 is a diagram explaining the principle of the present invention.
図中、15はレジスタであり、マイクロプログラムの実
行開始アドレスがセットされるもの、30はマイクロプ
ログラム実行アドレス生成回路であり、処理要求に応じ
てレジスタ15の実行開始アドレスを後述するマイクロ
プログラム処理部に出力するもの、31はマイクロプロ
グラム処理部であり、与えられた実行開始アドレスから
マイクロプログラムを読出して実行するとともに、処理
要求に対する処理終了に対して次の処理要求の実行開始
アドレスをレジスタ15にセットするものである。In the figure, 15 is a register in which the execution start address of the microprogram is set, and 30 is a microprogram execution address generation circuit, which is a microprogram processing unit that generates the execution start address of the register 15 according to a processing request. 31 is a microprogram processing unit that reads and executes a microprogram from a given execution start address, and also stores the execution start address of the next processing request in the register 15 when the processing for the processing request is completed. It is something to set.
本発明では、マイクロプログラム処理部31が処理要求
に対する処理終了によって、次の処理要求の実行開始ア
ドレスをレジスタ15にセントするようにしているので
、例えば、第1図(B)に示す如く、第1回目の処理要
求に対してA番地、第2回目の処理要求に対してB番地
、第3回目の処理要求に対してC番地というように、マ
イクロプログラムの実行開始アドレスを処理要求の順序
に応じて可変とすることができる。In the present invention, when the microprogram processing unit 31 finishes processing a processing request, it stores the execution start address of the next processing request in the register 15. For example, as shown in FIG. The execution start address of the microprogram is set in the order of processing requests, such as address A for the first processing request, address B for the second processing request, address C for the third processing request, and so on. It can be made variable depending on the situation.
従って、複雑なマイクロプログラム制御を行う場合でも
、同一の処理要求によって容易に実現できる。Therefore, even when performing complex microprogram control, it can be easily realized using the same processing request.
(a)一実施例の構成の説明
第2図は本発明の一実施例構成図であり、2チヤネルの
二次元DMAC(ダイレクト・アクセス・メモリ制御回
路)に適用した例を示している。(a) Description of the configuration of an embodiment FIG. 2 is a configuration diagram of an embodiment of the present invention, and shows an example applied to a two-channel two-dimensional DMAC (direct access memory control circuit).
図中、第1図で示したものと同一のものは同一の記号で
示してあり、10は第1のレジスタ部であり、二次元空
間の横幅がセットされるものであり、10aはチャネル
0の第1のレジスタ、10bはチャネル1の第1のレジ
スタ、11はXレジスタ部であり、アクセスすべき領域
の横幅XLRがセットされるものであり、llaはチャ
ネルOのXレジスタ、11bはチャネル1のXレジスタ
、11c、lidは各々マルチプレクサであり、各々チ
ャネル0.1のXレジスタlla、llbの入力のため
のもの、12はYレジスタ部であり、アクセスすべき領
域の縦幅YLRがセットされるものであり、12aはチ
ャネルOのYレジスタ、12bはチャネル1のYレジス
タ、12c、12dは各々マルチプレクサであり、各々
チャネルO1lのYレジスタ12a、12bの入力のた
めのもの、13はアドレスレジスタ部であり、アクセス
すべき領域の先頭実アドレスがセットされるものであり
、13aはチャネル0のアドレスレジスタ、13bはチ
ャネルlのアドレスレジスタ、13c、13dは各々マ
ルチプレクサであり、各々アドレスレジスタ13a、1
3bの入力のためのもの、13eはマルチプレクサであ
り、アドレスレジスタ13a、13bの出力選択のため
のものである。In the figure, the same parts as those shown in FIG. 10b is the first register of channel 1, 11 is the X register section, where the width XLR of the area to be accessed is set, lla is the X register of channel O, 11b is the channel The X register 1, 11c, and lid are multiplexers, respectively, for inputting the X registers lla and llb of channel 0.1, and the Y register 12 is set to the vertical width YLR of the area to be accessed. 12a is the Y register of channel O, 12b is the Y register of channel 1, 12c and 12d are multiplexers each for inputting the Y registers 12a and 12b of channel O1l, and 13 is an address. This is a register section in which the first real address of the area to be accessed is set. 13a is an address register for channel 0, 13b is an address register for channel 1, 13c and 13d are multiplexers, and each address register 13a ,1
3b is an input, and 13e is a multiplexer for selecting the output of address registers 13a and 13b.
14は動作モードレジスタであり、CPUの指定した動
作モード(アドレス更新モード、データ転送単位、リー
ド/ライトなど)を保持するためのものであり、チャネ
ルO用の動作モードレジスタ14aと、チャネル1用の
動作モードレジスタ14bとを有するもの、15は前述
のプログラムレジスタであり、チャネル毎のマイクロプ
ログラム実行開始アドレスを保持するものであり、チャ
ネルO用のプログラムレジスタ15aと、チャネル1用
のプログラムレジスタ15bとを有するものである。Reference numeral 14 denotes an operation mode register, which is used to hold the operation mode specified by the CPU (address update mode, data transfer unit, read/write, etc.). 15 is the aforementioned program register which holds the microprogram execution start address for each channel, and includes a program register 15a for channel O and a program register 15b for channel 1. It has the following.
30は前述のマイクロプログラム実行アドレス生成回路
(以下CBGと称す)であり、DMA転送要求信号DR
QO,、DRQIを受信すると、動作モードレジスタ1
4a、14bと、プログラムレジスタ15a、15bの
値によりマイクロプログラムの実行開始アドレスを後述
するシーケンス制御回路に与えるもの、31は前述のマ
イクロプログラム処理部としてのシーケンス制御回路で
あり、CBG30からの実行開始アドレスに従い、マイ
クロプログラム制御により後述するレジスタ更新制御回
路、メモリインターフェイス制御回路にレジスタ更新指
示やメモリアクセス指示を行うものであり、CBG30
からの実行開始アドレスにより内部プログラムカウンタ
に従って続出しアドレスを発生するシーケンサ31aと
、二次元アドレス生成のためのマイクロプログラムを格
納するプログラムメモリ (ROM)3 l bと、R
OM31bから読出された内容(命令、データ)をレジ
スタ更新制御回路32、シーケンサ31a、プログラム
レジスタ15a、15b、メモリインターフェイス制御
回路等に分配するパイプラインレジスタ31cを有して
いるものであり、32はレジスタ更新制御回路(以下R
OPと称す)であり、シーケンス制御回路31 (パイ
プラインレジスタ31c)より与えられる指示によって
、レジスタ10a、10b、lla、llb、12a、
12b、13a、13bの内容を取込み、加減算して、
レジスタlla、llb、12a、12b、13a、1
3bの内容を更新し、且つレジスタlla、11b、1
2a、12bの内容を判定し、シーケンス制御回路31
のシーケンサ31aに通知するものである。尚、これら
30.31.32によってDMAClの二次元アドレス
生成回路3を構成する。30 is the aforementioned microprogram execution address generation circuit (hereinafter referred to as CBG), which generates the DMA transfer request signal DR.
When receiving QO, DRQI, operation mode register 1
4a, 14b and the values of the program registers 15a, 15b to give a microprogram execution start address to a sequence control circuit (to be described later); 31 is a sequence control circuit as the microprogram processing section mentioned above, which starts execution from CBG 30; According to the address, register update instructions and memory access instructions are given to the register update control circuit and memory interface control circuit, which will be described later, under microprogram control.
A sequencer 31a that generates successive addresses according to an internal program counter based on an execution start address from , a program memory (ROM) 3lb that stores a microprogram for two-dimensional address generation,
It has a pipeline register 31c that distributes the contents (instructions, data) read from the OM 31b to the register update control circuit 32, sequencer 31a, program registers 15a, 15b, memory interface control circuit, etc.; Register update control circuit (hereinafter referred to as R)
OP), and registers 10a, 10b, lla, llb, 12a,
Take the contents of 12b, 13a, 13b, add and subtract,
Registers lla, llb, 12a, 12b, 13a, 1
3b and registers lla, 11b, 1
The contents of 2a and 12b are determined and the sequence control circuit 31
This is to notify the sequencer 31a. Note that these 30, 31, and 32 constitute the two-dimensional address generation circuit 3 of DMACl.
4はメモリインターフェイス制御回路(以下MIFと称
す)であり、シーケンス制御回路31(パイプラインレ
ジスタ31C)からの指示に従い、メモリのアクセス制
御を行うものであり、例えば、転送要求元に転送要求R
EQに対し応答ACK、転送終了DTCを、メモリ2に
リード/ライト指示R/W、リード/ライトタイミング
TR/Wを発するものである。Reference numeral 4 denotes a memory interface control circuit (hereinafter referred to as MIF), which performs memory access control according to instructions from the sequence control circuit 31 (pipeline register 31C). For example, it sends a transfer request R to a transfer request source.
It issues a response ACK to the EQ, a transfer end DTC, a read/write instruction R/W to the memory 2, and a read/write timing TR/W.
この実施例では、イメージデータという二次元構造を持
つデータをDMA転送するためアドレス更新制御が、バ
イト、ワードなどの1回の転送処理後のアドレス更新量
を、転送するデータの位置によって変えるため、複雑な
ものとなり、又イメージデータの転送順を正常(Z型)
アクセス、回転(N型)アクセス、反転(逆Z型)アク
セス等に応じて変化できるように、マイクロプログラム
制御によって行うようにしたものである。In this embodiment, since data having a two-dimensional structure called image data is transferred by DMA, the address update control changes the address update amount after one transfer process, such as byte or word, depending on the position of the data to be transferred. It becomes complicated, and the order of image data transfer is correct (Z type)
This is done by microprogram control so that it can change depending on the access, rotational (N-type) access, inversion (inverted Z-type) access, etc.
そして、マイクロプログラムによるアドレス更新処理は
、転送要求DRQO,DRQIの到来毎に行われ、バイ
ト、ワードなどの単位に区切られることから、後述する
第4図及び第5図に示す如く、い(つかに分割され、分
割されたマイクロプログラムの実行順序は、転送要求の
順序に従って変化させて、所望のアドレス更新処理がで
きるようにしている。Address update processing by the microprogram is performed each time a transfer request DRQO or DRQI arrives, and is divided into bytes, words, etc. The execution order of the divided microprograms is changed according to the order of transfer requests so that desired address update processing can be performed.
即ち、マイクロプログラムは、通常は転送要求待ち状態
で、転送要求を受信したら、要求のあったチャネルの処
理プログラムを部分的に実行し、1回の転送終了後、再
び転送要求待ち状態に復帰する制御が行われる。That is, the microprogram is normally in a state of waiting for a transfer request, and when it receives a transfer request, it partially executes the processing program for the requested channel, and after one transfer is completed, it returns to the state of waiting for a transfer request. Control takes place.
(b)一実施例の動作の説明 第3図は本発明による一実施例システム構成図である。(b) Description of operation of one embodiment FIG. 3 is a system configuration diagram of an embodiment according to the present invention.
図中、第1図及び第2図で示したものと同一のものは同
一の記号で示してあり、1はDMAC。In the figure, the same components as those shown in FIGS. 1 and 2 are indicated by the same symbols, and 1 is DMAC.
2はメモリであり、5はプロセッサであり、マイクロプ
ロセッサで構成されるもの、6はリード/ライトコント
ローラ(以下RWCと称す)であり、DMA転送して得
たイメージデータを処理してDMA転送でメモリ2へ書
込むもの、A−BUSはアドレスバスであり、D−BU
Sはデータバスである。2 is a memory, 5 is a processor, which is composed of a microprocessor, and 6 is a read/write controller (hereinafter referred to as RWC), which processes the image data obtained by DMA transfer and performs DMA transfer. What writes to memory 2, A-BUS is an address bus, and D-BU
S is a data bus.
このシステムでは、プロセッサ5がDMAClに動作モ
ード、画面の横幅WDROSWDR1、アクセス領域の
横幅XLRO1XLR1、縦幅YLRO,YLRI、先
頭実アドレスADRO1ADR1をセントし、且つRW
C6に起動をかけ、以降、RWC6がリードなら転送要
求REQO。In this system, the processor 5 sets the operation mode, the screen width WDROSWDR1, the access area width XLRO1XLR1, the height YLRO, YLRI, and the first real address ADRO1ADR1 in DMACl, and
After starting C6, if RWC6 is read, transfer request REQO.
ライトなら転送要求REQIを発することによってDM
AClがサイクルスチールにより、生成した二次元デー
タの実アドレスでメモリ2をアクセスし、且つリード/
ライト指示R/W、そのタイミングTR/Wでメモリ2
をアクセスし、RWC6とメモリ2間でデータのやりと
りを行わせるものである。If it is a write, DM is sent by issuing a transfer request REQI.
ACl accesses memory 2 with the real address of the generated two-dimensional data by stealing the cycle, and performs read/write operations.
Write instruction R/W, memory 2 at that timing TR/W
The RWC 6 and the memory 2 exchange data by accessing the RWC 6 and the memory 2.
第4図及び第5図は本発明の一実施例処理フロー図であ
り、プログラムメモリ31bに格納されたZ型アクセス
のマイクロプログラムの構成を示し、第4図はA番地か
ら始まるマイクロプログラム、第5図(A)はB番地か
ら始まるマイクロプログラム、第5図(B)はC番地か
ら始まるマイクロプログラムを示している。このプログ
ラムは、チャネル毎にプログラムメモリ31bに用意さ
れている。4 and 5 are process flow diagrams of one embodiment of the present invention, showing the structure of a Z-type access microprogram stored in the program memory 31b. FIG. 4 shows a microprogram starting from address A, 5(A) shows a microprogram starting from address B, and FIG. 5(B) shows a microprogram starting from address C. This program is prepared in the program memory 31b for each channel.
以下、第6図の一次元メモリ2に格納された二次元構造
を持つデータをメモリ2上の別領域に転送する場合、例
えば、アドレス6番地から始まる二次元データa−fを
アドレス20番地からa′〜f′の如く、チャネルOを
データのリードにチャネルlをデータのライトに使用し
て、転送するものについて説明する。Hereinafter, when data having a two-dimensional structure stored in the one-dimensional memory 2 in FIG. Transfers such as a' to f' in which channel O is used for reading data and channel I is used for writing data will be explained.
このため、プロセッサ5は、データバスD−BUSを介
しDMAClのモードレジスタ14aにリード指示、ア
ドレス更新モードをZ型指示、バイト転送指示を、モー
ドレジスタ14bにライトモード指示、Z型アドレス更
新モード指示、バイト転送指示を行う。又、レジスタ1
0a、10bには画面の横幅WDRO=WDR1−r5
Jを、Xレジスタlla、llbには転送データの大き
さの横幅XLRO−XLR1= r3Jを、Yレジスタ
12a、12bには転送データの大きさの縦幅YLRO
=YLR1−r2Jを、アドレスレジスタ13aには転
送元の先頭アドレスADRO=「6」を、アドレスレジ
スタ13bには転送先の先頭アドレスADR1= r2
0Jを設定する。Therefore, the processor 5 issues a read instruction, a Z-type address update mode instruction, and a byte transfer instruction to the DMACl mode register 14a via the data bus D-BUS, and a write mode instruction and Z-type address update mode instruction to the mode register 14b. , issues a byte transfer instruction. Also, register 1
0a and 10b have the screen width WDRO=WDR1-r5
J, X registers lla and llb have the horizontal width XLRO-XLR1=r3J of the transfer data size, and Y registers 12a and 12b have the vertical width YLRO of the transfer data size.
=YLR1-r2J, the address register 13a has the transfer source start address ADRO="6", and the address register 13b has the transfer destination start address ADR1=r2.
Set 0J.
以上の設定を行った後に、プロセッサ1はRWC6に起
動をかける。After performing the above settings, the processor 1 activates the RWC 6.
RWC6はDRQOをDMAClに通知し、データのリ
ードを要求する。RWC6 notifies DMACl of DRQO and requests data read.
DMAClでは、CBG30がモードレジスタ14aの
アドレス更新モードからマイクロプログラムの実行開始
アドレスを決定し、マイクロプログラム実行アドレスを
シーケンサ31aに出力する。この場合、Z型アドレス
更新モードのためA番地が実行アドレスとして指示され
、第4図の処理が開始される。In DMACl, the CBG 30 determines the microprogram execution start address from the address update mode of the mode register 14a, and outputs the microprogram execution address to the sequencer 31a. In this case, because of the Z-type address update mode, address A is designated as the execution address, and the process shown in FIG. 4 is started.
■ シーケンサ31aはプログラムカウンタにA番地を
ロードし、プログラムメモリ31bの当該番地のマイク
ロプログラムを読出す。(2) The sequencer 31a loads address A into the program counter and reads the microprogram at the corresponding address from the program memory 31b.
このマイクロプログラムはメモリアクセス開始を示し、
デコーダ機能を果たすパイプラインレジスタ31Cから
は、MIF4へアクセス開始命令が、マルチプレクサ1
3eにはアドレスレジスタ13aの内容ADRO出力指
示が、ROP32には、Xレジスタ1la(llb)の
内容更新、(XLR−1)→XLRが指示される。This microprogram indicates the start of memory access,
The pipeline register 31C, which performs the decoder function, sends an access start instruction to the MIF4 to the multiplexer 1.
3e is instructed to output the content ADRO of the address register 13a, and the ROP32 is instructed to update the content of the X register 1la (llb), (XLR-1)→XLR.
これによって、チャネル0のアドレスレジスタ13aの
実アドレスが出力されるとともに、MIF4からリード
指示、リードタイミングがメモリ2へ与えられ、更に、
ROP32はXレジスタ11aの内容XLROを取り込
み、(XLRO−1)の演算を行い、マルチプレクサl
lcを介し、Xレジスタllaを(XLRO−1)に更
新する。As a result, the real address of the address register 13a of channel 0 is output, a read instruction and read timing are given from the MIF 4 to the memory 2, and further,
ROP32 takes in the content XLRO of the X register 11a, performs the operation (XLRO-1), and sends the multiplexer
Update the X register lla to (XLRO-1) via lc.
■ シーケンサ31aのプログラムカウンタの歩進によ
り、次の番地がプログラムメモリ31bに与えられ、パ
イプラインレジスタ31cからはROP32にXLR=
1、即ち次回の転送データが横方向の最終データかを判
定する指示が与えられる。- By incrementing the program counter of the sequencer 31a, the next address is given to the program memory 31b, and XLR= is sent from the pipeline register 31c to the ROP32.
1, that is, an instruction is given to determine whether the next transfer data is the final data in the horizontal direction.
ROP32は、Xレジスタllaの内容XLROを取り
込み、XLRO=1かを判定し、シーケンサ31aに通
知する。The ROP 32 takes in the content XLRO of the X register lla, determines whether XLRO=1, and notifies the sequencer 31a.
■ シーケンサ31aは、XLRO≠1なら、次番地を
プログラムメモリ31bに与える。これによって、パイ
プラインレジスタ31cからシーケンサ31aにメモリ
アクセス終了がMIF4から通知されているかを判定す
るよう指示される。(2) If XLRO≠1, the sequencer 31a gives the next address to the program memory 31b. As a result, the pipeline register 31c instructs the sequencer 31a to determine whether the MIF 4 has notified the end of memory access.
シーケンサ31aは、メモリアクセス通知を待ち、メモ
リアクセス通知があると、プログラムカウンタを歩進さ
せ、プログラムメモリ31bを読出す。The sequencer 31a waits for a memory access notification, and upon receiving the memory access notification, increments the program counter and reads the program memory 31b.
この内容は、アドレス更新命令であり、パイプラインレ
ジスタ31cよりROP32に、(ADH+1)−AD
Rを指示する。This content is an address update instruction, and (ADH+1)-AD
Instruct R.
ROP32は、アドレスレジスタ13aの内容ADRO
を取り込み、(ADRO+1)の演算を行い、マルチプ
レクサ13Cを介し、アドレスレジスタ13aを(AD
RO+1)に更新する。ROP32 is the content ADRO of address register 13a.
is fetched, performs the operation of (ADRO+1), and sets the address register 13a to (ADRO+1) via the multiplexer 13C.
Update to RO+1).
更に、シーケンサ31aは、プログラムカウンタを歩進
させ、プログラムメモリ31bを読出す。Furthermore, the sequencer 31a increments the program counter and reads the program memory 31b.
この内容はプログラムレジスタ更新を示し、パイプライ
ンレジスタ31cより、チャネルOのプログラムレジス
タ15aに次の転送要求DRQO第4図の実行開始番地
Aをセットする。This content indicates update of the program register, and the execution start address A of the next transfer request DRQO in FIG. 4 is set in the program register 15a of channel O from the pipeline register 31c.
次に、シーケンサ31aはプログラムカウンタを歩進さ
せ、プログラムメモリ31bを読出すと、パイプライン
レジスタ31cよりシーケンサ31aにCBG30のア
ドレスへの分岐命令が与えられ、シーケンサ31aはC
BG30のアドレスへ分岐する。CBG30は1回の転
送要求に対し、プログラム実行アドレス出力後は、マイ
クロプログラム内のノン・オペレーション(Non
・0peration)命令が格納されているアドレス
を出力するから、シーケンサ31aは、プログラムメモ
リ31bの出力によってノン・オペレーション状態とな
り、1回の転送要求に対するアドレス更新処理を終了し
、転送要求待ちとなる。Next, the sequencer 31a increments the program counter and reads the program memory 31b. Then, the pipeline register 31c gives the sequencer 31a a branch instruction to the address of the CBG 30, and the sequencer 31a
Branch to the address of BG30. After outputting the program execution address for one transfer request, CBG30 outputs the non-operation (Non-operation) within the microprogram.
Since the address where the 0operation) instruction is stored is output, the sequencer 31a enters a non-operation state due to the output of the program memory 31b, completes address update processing for one transfer request, and waits for a transfer request.
■ 一方、ステップ■で、シーケンサ31aはXLRO
=1と通知されると、次回の転送データは次行のデータ
(図ではd)であるから、分岐しくジャンプし)、プロ
グラムカウンタをジャンプ分歩進させる。これによって
プログラムメモリ31bを読出す。■ On the other hand, in step ■, the sequencer 31a
When notified that =1, the next transfer data is data in the next line (d in the figure, so a branch jump is made) and the program counter is incremented by the jump amount. This reads the program memory 31b.
これは、次回の転送データが縦方向の最終データかを判
定するYLR=1の判定命令のため、パイプラインレジ
スタ31Cを介し、ROP32にこの判定命令が与えら
れる。This is a determination instruction for YLR=1 that determines whether the next transfer data is the final data in the vertical direction, so this determination instruction is given to the ROP 32 via the pipeline register 31C.
ROP32は、Yレジスタ12aの内容を取り込み、Y
LRO=1かを判定し、シーケンサ31aに通知する。The ROP32 takes in the contents of the Y register 12a and stores the contents of the Y register 12a.
It is determined whether LRO=1 or not, and the sequencer 31a is notified.
■ シーケンサ3゛1aは、YLRO≠1なら、プログ
ラムカウンタを歩進させ、その内容を続出し、実行する
。即ち、ステップ■と同様、メモリアクセス終了判定命
令を実行し、アドレス更新命令を実行し、更に、プログ
ラムレジスタ更新命令を実行して、プログラムレジスタ
15aに今度は次の転送要求のマイクロプログラム実行
開始アドレスとしてB番地をセットする。次に、CBG
分岐命令を実行し、ノン・オペレーション状態となり、
前述と同様処理終了となる。(2) If YLRO≠1, the sequencer 3'1a increments the program counter, reads the contents one after another, and executes them. That is, as in step (2), a memory access end determination instruction is executed, an address update instruction is executed, and a program register update instruction is executed, and the microprogram execution start address of the next transfer request is stored in the program register 15a. Set address B as . Next, C.B.G.
Executes a branch instruction, enters a non-operation state,
The process ends in the same way as above.
■ 一方、ステップ■で、シーケンサ31aは、YLR
O=1と通知されると、次回の転送データが縦方向の最
終データであるから、ジャンプし、プログラムカウンタ
をジャンプ分歩進させ、プログラムメモリ31bを読出
し、実行する。■ On the other hand, in step ■, the sequencer 31a
When notified that O=1, the next transfer data is the final data in the vertical direction, so it jumps, increments the program counter by the jump amount, reads out the program memory 31b, and executes it.
即ち、ステップ■、■と同様に、メモリアクセス終了判
定命令を実行し、アドレス更新命令を実行し、更にプロ
グラムレジスタ更新命令を実行して、プログラムレジス
タ15aに今度は次の転送要求のマイクロプログラム実
行開始アドレスとしてC番地をセントする。次にCBG
分岐命令を実行し、ノン・オペレーション状態となり、
前述と同様処理終了となる。That is, in the same way as in steps ① and ②, a memory access end determination instruction is executed, an address update instruction is executed, a program register update instruction is executed, and the microprogram execution for the next transfer request is written to the program register 15a. Set address C as the starting address. Next, CBG
Executes a branch instruction, enters a non-operation state,
The process ends in the same way as above.
CBG30はDRQOの到来毎にマイクロプログラム実
行開始アドレスをシーケンサ31aに与えてマイクロプ
ログラムを実行せしめる。即ち、最初のDRQO(モー
ドレジスタへの設定直後のDRQであることにより判断
する)に対してはA番地を、以降のDRQOに対しては
プログラムレジスタ15aの内容をプログラム実行アド
レスとして与える。The CBG 30 gives a microprogram execution start address to the sequencer 31a every time a DRQO arrives, and causes the sequencer 31a to execute the microprogram. That is, address A is given to the first DRQO (determined by the DRQ immediately after setting in the mode register), and the contents of the program register 15a are given as the program execution address to subsequent DRQOs.
このため、シーケンス制御回路31はA番地がプログラ
ム実行開始アドレスとして与えられると、第4図の処理
を実行し、プログラム実行開始アドレスとしてB番地が
与えられると、第5図(A)C番地が与えられると第5
図(B)の処理が実行される。Therefore, when address A is given as the program execution start address, the sequence control circuit 31 executes the process shown in FIG. 4, and when address B is given as the program execution start address, the sequence control circuit 31 executes the process shown in FIG. given and fifth
The process shown in Figure (B) is executed.
即ち、B番地が与えられると、第5図(A)に示す如く
、プログラムメモリ31bからステップ■ト同様に、M
IF4へのアクセス開始命令、アドレスレジスタ13a
(13b)の出力命令が、Yレジスタ12a(12b)
の内容更新命令(YLR−1)−YLRlが更にXレジ
スタ1la(1l b)の初期値命令が出力される。こ
れによって、チャネルOのアドレスレジスタ13aの実
アドレスの出力、MIF4からのリード指示、リードタ
イミング出力され、更に、ROP32はYレジスタ12
a (チャネル0)の内容をYLROを取り込み、(Y
LRO−1)の演算を行い、マルチプレクサ12Gを介
し、Yレジスタ12aを(YLRO−1)に更新し、X
レジスタ12aを初期値(第6図では「3」)に更新す
る。That is, when address B is given, as shown in FIG. 5(A), from the program memory 31b, step
Instruction to start accessing IF4, address register 13a
(13b) output instruction is sent to Y register 12a (12b)
The content update instruction (YLR-1)-YLRl is further output, as is the initial value instruction for the X register 1la (1lb). As a result, the real address of the address register 13a of channel O, the read instruction from the MIF 4, and the read timing are output.
a The contents of (channel 0) are imported into YLRO, and (Y
LRO-1), updates the Y register 12a to (YLRO-1) via the multiplexer 12G, and
The register 12a is updated to the initial value ("3" in FIG. 6).
以下、プログラムカウンタの歩道に従い、プログラムメ
モリ31bの内容が次々と読出され、実行される。Thereafter, the contents of the program memory 31b are successively read out and executed according to the progress of the program counter.
即ち、メモリアクセス終了判定命令が実行され、次にア
ドレス更新命令が実行され、プログラムレジスタ更新命
令が、更にCBGアドレス分岐命令が実行され、処理終
了となる。That is, the memory access end determination instruction is executed, then the address update instruction is executed, the program register update instruction is executed, and then the CBG address branch instruction is executed, and the process ends.
この時、アドレス更新は、アドレスレジスタ13a(1
3b)の内容ADHはADR+ (WDR−XLR+1
)に更新され、例えば、第6図では、データCからのデ
ータdのアドレスに、プログラムレジスタ更新は次の転
送要求の実行開始アドレスとしてA番地に更新される。At this time, the address update is performed in the address register 13a (1
The content of 3b) ADH is ADR+ (WDR-XLR+1
), and for example, in FIG. 6, the address of data d from data C is updated, and the program register update is updated to address A as the execution start address of the next transfer request.
又、C番地から与えられると、第5図(B)に示す如く
、プログラムメモリ31bからステップ■と同様に、M
IF4へのアクセス開始命令、アドレスレジスタ13a
の出力命令が、Xレジスタ11a(llb)の内容更新
命令(XLR−1)−XLR,Yレジスタ12a(12
b)の内容更新命令(YLR−1)−YLRが出力され
、同様に実行される。Also, when given from address C, as shown in FIG. 5(B), from the program memory 31b, M
Instruction to start accessing IF4, address register 13a
The output instruction is the instruction to update the contents of the X register 11a (llb) (XLR-1) -
The content update command (YLR-1)-YLR of b) is output and executed in the same manner.
以下、プログラムカウンタの歩進に従い、プログラムメ
モリ31bの内容が次々と読出され、実行される。即ち
、メモリアクセス終了判定命令が、次にMIF4への転
送終了通知指示命令が、CBGアドレス分岐命令が実行
され、処理終了となる。Thereafter, as the program counter advances, the contents of the program memory 31b are successively read out and executed. That is, the memory access end determination instruction, then the transfer end notification instruction instruction to the MIF 4, and the CBG address branch instruction are executed, and the process ends.
同様に、チャネル1のライトの転送要求DRQ1が到来
すると同一の動作がチャネル1用のレジスタ10b、l
lb、12b、13b、14b。Similarly, when a write transfer request DRQ1 for channel 1 arrives, the same operation is performed in registers 10b and l for channel 1.
lb, 12b, 13b, 14b.
15bを用いて行われる。15b.
従って、第6図の例では、最初の転送要求DRQOによ
って、A番地が実行アドレスとして与えられ、第4図の
ステップ■、■、■が行われ、データaのアドレス「5
」の出力、横幅XLROの更新(r3J−r2J)次ア
ドレス「6」の計算、プログラムレジスタ15aへの次
転送要求に対する実行アドレスAのセットが行われる。Therefore, in the example shown in FIG. 6, address A is given as the execution address by the first transfer request DRQO, steps ■, ■, and ■ in FIG. 4 are performed, and the address "5" of data a is
'', the width XLRO is updated (r3J-r2J), the next address "6" is calculated, and the execution address A is set for the next transfer request to the program register 15a.
以降は、プログラムレジスタ15aの実行アドレスによ
って動作が再開し、次の転送要求DRQOで、A番地が
実行開始アドレスとして与えられ、第4図のステップ■
、■、■、■が行われ、データbのアドレス「6」の出
力、横幅XLROの更新(r2J−NJ)、次アドレス
「7」の計算、プログラムレジスタ15aの次転送要求
に対する実行開始アドレスB番地のセントが行われ、更
に3回目の転送要求DRQOで、B番地が実行開始アド
レスとして与えられ、第5図(A)の処理により、デー
タCのアドレス「7」の出力、次行のデータ転送のため
縦幅YLROの更新(r2J−「1」)、横幅XLRO
の初期値「3」に更新を行い、更に次転送データdのア
ドレスを(ADR+ (WDR−XLR+1)) 、即
ち(7+5−3+1)=10を計算し、次転送要求に対
する実行開始アドレスA番地のセットを行う。Thereafter, the operation is restarted according to the execution address of the program register 15a, and in the next transfer request DRQO, address A is given as the execution start address, and step ① in FIG.
, ■, ■, ■ are performed, outputting address "6" of data b, updating width XLRO (r2J-NJ), calculating next address "7", execution start address B for next transfer request of program register 15a. The address is sent, and in the third transfer request DRQO, address B is given as the execution start address. Through the process shown in FIG. Update height YLRO (r2J - "1"), width XLRO for transfer
is updated to the initial value "3", and then the address of the next transfer data d is calculated as (ADR+ (WDR-XLR+1)), that is, (7+5-3+1)=10, and the execution start address A for the next transfer request is calculated. Do a set.
第4回目の転送要求DRQOに対しては、ステップ■、
■、■が実行され、又、第5回目の転送要求DRQOに
対してはステップ■、■、■、■が実行され、第6回目
の転送要求DRQOに対しては、第5図(B)の処理が
実行される。For the fourth transfer request DRQO, step ■,
Steps ■, ■ are executed, and steps ■, ■, ■, ■ are executed for the fifth transfer request DRQO, and steps ■, ■, ■, ■ are executed for the sixth transfer request DRQO, and as shown in FIG. 5(B) processing is executed.
従って、レジスタ10.11,12.13へのデータセ
ットにより、二次元空間の任意の領域、XLR,YLR
で定義される領域のデータをDMA転送できる。Therefore, by setting data to registers 10.11 and 12.13, any region in two-dimensional space, XLR, YLR
Data in the area defined by can be transferred by DMA.
RWC6がチャネルOを使用し、転送要求DRQOでリ
ードのDMA転送をD M A C1にメモリ2からR
WC6に行わせ、次にチャネル1を使用し、転送要求D
RQ1でライトのデータ転送をDMAClにRWC6か
らメモリ2に交互に行わせれば、第6図の如(、メモリ
2のアドレス5からa、b、c、d、e、fを、アドレ
ス20からのa゛、b′、C′、d′、e′、f゛にD
MA転送できる。即ち、二次元のデータ転送がプロセッ
サ5の1回の起動で可能となる。RWC6 uses channel O and transfers read DMA transfer from memory 2 to R with transfer request DRQO to DMA C1.
WC6, then use channel 1 and transfer request D
If RQ1 causes DMACl to perform write data transfer alternately from RWC6 to memory 2, as shown in FIG. D to a゛, b′, C′, d′, e′, f゛
MA transfer is possible. That is, two-dimensional data transfer is possible with one activation of the processor 5.
又、この実施例では、アドレス更新モードを設定できる
から、前述のZ型モードのみならず、N型モード等を選
択でき、イメージデータの回転、反転等、種々のイメー
ジデータの処理がDMA転送で可能となる。In addition, in this embodiment, since the address update mode can be set, not only the Z-type mode mentioned above but also the N-type mode etc. can be selected, and various image data processing such as rotation and inversion of image data can be performed by DMA transfer. It becomes possible.
しかも、アドレス更新モードに従った一連のアドレス更
新処理が、第4図及び第5図の如(分割され、実行順序
が不定でも、転送要求の受信後、処理プログラムを部分
的に実行し、1回の転送処理終了後、次の転送要求に対
する再開アドレスをプログラムカウンタ15によって知
ることができ、同一の転送要求の順序に応じてマイクロ
プログラムの実行開始アドレスを変え、複雑なアドレス
更新処理を行うことができる。Moreover, the series of address update processing according to the address update mode is performed as shown in FIGS. 4 and 5 (even if the processing program is divided and the execution order is undefined, after receiving the transfer request, the processing program is partially executed, After the transfer process is completed, the restart address for the next transfer request can be known by the program counter 15, and the execution start address of the microprogram is changed according to the order of the same transfer request, thereby performing complex address update processing. Can be done.
更に、チャネル0.1に対し、これを独立にでき、実行
開始アドレスを変えるものであっても円滑に1つのシー
ケンス制御回路(マイクロプログラム処理部)31で2
チヤネルの処理が可能となる。Furthermore, this can be made independent of channel 0.1, and even if the execution start address is changed, two sequence control circuits (microprogram processing units) 31 can be used smoothly.
Channel processing becomes possible.
(c)他の実施例の説明
上述の実施例では、2チヤネルのDMACの適用につい
て説明したが、1チヤネルのものであってもよく、アド
レス更新モードも1種類に限らず、複数種類をもっても
よく、又RWC6がリード/ライトを交互に行わず、リ
ードを複数回行ってからライトを複数回行うようにして
もよい。(c) Description of other embodiments In the embodiments described above, the application of a two-channel DMAC was explained, but it may also be a one-channel one, and the address update mode is not limited to one type, but may have multiple types. Alternatively, the RWC 6 may not perform read/write alternately, but may perform read multiple times and then write multiple times.
又、マイクロプログラム処理をDMACにおける、アド
レス更新処理について説明したが、これに限らず他の処
理にも適用できる。Furthermore, although the microprogram processing has been described with respect to address update processing in the DMAC, the present invention is not limited to this and can be applied to other processing.
以上本発明を実施例により説明したが、本発明は本発明
の主旨に従い種々の変形が可能であり、本発明からこれ
らを排除するものではない。Although the present invention has been described above using examples, the present invention can be modified in various ways according to the gist of the present invention, and these are not excluded from the present invention.
以上説明した様に、本発明によれば、実行開始アドレス
を保持するレジスタを設け、処理要求に対する処理終了
に応じて、次の処理要求の実行アドレスをセットしてい
るので、処理要求の順序に応じてマイクロプログラムの
実行開始アドレスを可変とすることができるという効果
を奏し、複雑な処理を同一の処理要求の順で種々に実行
できるという効果を奏し、マイクロプログラム処理を多
様に実行できる。As explained above, according to the present invention, a register is provided to hold the execution start address, and the execution address of the next processing request is set according to the completion of processing for the processing request. This has the effect that the execution start address of the microprogram can be made variable according to the requirements, and the effect that complex processing can be executed in various ways in the order of the same processing request is achieved, so that the microprogram processing can be executed in a variety of ways.
第1図は本発明の原理説明図、
第2図は本発明の一実施例構成図、
第3図は本発明のための一実施例システム構成図、
第4図及び第5図は本発明の一実施例処理フロー図、
第6図は本発明の一実施例動作説明図である。
図中、1−・・DMAC,2−メモリ、3 ・−・二次
元アドレス生成回路、
15〜・プログラムレジスタ、
30 − マイクロプログラム実行アドレス生成回路
、
31 − シーケンス制御回路(マイクロプログラム
処理部)。Figure 1 is a diagram explaining the principle of the present invention, Figure 2 is a configuration diagram of an embodiment of the invention, Figure 3 is a diagram of a system configuration of an embodiment of the invention, and Figures 4 and 5 are diagrams of the invention. Process Flowchart of an Embodiment FIG. 6 is an explanatory diagram of the operation of an embodiment of the present invention. In the figure, 1--DMAC, 2-memory, 3--two-dimensional address generation circuit, 15--program register, 30--microprogram execution address generation circuit, 31--sequence control circuit (microprogram processing section).
Claims (1)
読出して実行するマイクロプログラム処理部(31)と
、 該マイクロプログラムの実行開始アドレスを保持するレ
ジスタ(15)と、 処理要求に応じて該レジスタ(15)の実行開始アドレ
スを該マイクロプログラム処理部(31)に出力する実
行アドレス生成回路(30)とを有し、 該マイクロプログラム処理部(31)の処理終了に対し
て、次の処理要求の実行開始アドレスを該レジスタ(1
5)にセットすることにより、該処理要求の順序に応じ
て実行開始アドレスを可変とすることを 特徴とするマイクロプログラム実行制御方式。[Claims] A microprogram processing unit (31) that reads and executes a microprogram from a given execution start address; a register (15) that holds the execution start address of the microprogram; It has an execution address generation circuit (30) that outputs the execution start address of the register (15) to the microprogram processing section (31), and when the processing of the microprogram processing section (31) is completed, the next execution address is output. The execution start address of the processing request is set in the register (1
5) A microprogram execution control method characterized in that the execution start address is made variable according to the order of the processing requests by setting the above.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61246737A JPS63101936A (en) | 1986-10-17 | 1986-10-17 | Microprogram execution control system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61246737A JPS63101936A (en) | 1986-10-17 | 1986-10-17 | Microprogram execution control system |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS63101936A true JPS63101936A (en) | 1988-05-06 |
Family
ID=17152899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP61246737A Pending JPS63101936A (en) | 1986-10-17 | 1986-10-17 | Microprogram execution control system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS63101936A (en) |
-
1986
- 1986-10-17 JP JP61246737A patent/JPS63101936A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS59154564A (en) | Programmable controller | |
JPS63101936A (en) | Microprogram execution control system | |
JPS6398056A (en) | Dma control circuit | |
JPS6334658A (en) | Dma controller for image processor | |
JPS5972532A (en) | Data transfer control method | |
JPH03288906A (en) | Instruction executing system for pc | |
JPH06282657A (en) | Graphic display method and device | |
JPH01311357A (en) | I/o instruction control circuit | |
JPH09134326A (en) | Computer system | |
JP2704011B2 (en) | Drawing processor | |
JPH04114238A (en) | Information processor | |
JPS62293372A (en) | Master and slave processor | |
JPH06332790A (en) | Memory space controlling method and memory device | |
JPH01140272A (en) | Picture processor | |
JPS61123937A (en) | Data drive type control system | |
JPH03242749A (en) | Semiconductor integrated circuit device | |
JPS63303440A (en) | Measuring instrument | |
JPH0218622A (en) | Numerical arithmetic processor | |
JPH01169564A (en) | Inter-processor synchronizing system | |
JPS6217250B2 (en) | ||
JPH0896112A (en) | Image data processor and information system using the same | |
JPH08115214A (en) | Digital signal processor | |
JPH04347762A (en) | Multi-processor system which is roughly connected with system bus | |
JPH06161781A (en) | Method and processor for information processing | |
JPH04172551A (en) | Information processor |