JP4174213B2 - Control circuit - Google Patents

Control circuit Download PDF

Info

Publication number
JP4174213B2
JP4174213B2 JP2002003979A JP2002003979A JP4174213B2 JP 4174213 B2 JP4174213 B2 JP 4174213B2 JP 2002003979 A JP2002003979 A JP 2002003979A JP 2002003979 A JP2002003979 A JP 2002003979A JP 4174213 B2 JP4174213 B2 JP 4174213B2
Authority
JP
Japan
Prior art keywords
identification number
processing
processing request
request
dmac
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002003979A
Other languages
Japanese (ja)
Other versions
JP2003208397A (en
JP2003208397A5 (en
Inventor
登 横山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2002003979A priority Critical patent/JP4174213B2/en
Publication of JP2003208397A publication Critical patent/JP2003208397A/en
Publication of JP2003208397A5 publication Critical patent/JP2003208397A5/ja
Application granted granted Critical
Publication of JP4174213B2 publication Critical patent/JP4174213B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、複数の処理要求元とそれらの処理要求を処理要求順に順次処理を行うように制御する制御回路に関するものである。
【0002】
【従来の技術】
ディジタル回路は、複数の処理要求元とそれらの処理要求をある順番に従って順次処理を行うように制御する調停回路を含むことが多い。例えば、複数のDMAコントローラ(ダイレクトメモリアクセスコントローラ;Direct Memory Access Controller(以下、DMAC))が存在し、これらがCPU(中央処理装置)を介さすにメモリをアクセスする場合がそれにあたる。複数のDMACからのメモリヘのアクセス要求は調停回路により、ある一つのアクセス要求が選ばれ、アクセスが終われば次の調停に入る。
【0003】
調停にはいくつかの方式がある。まず、固定優先順位による調停は、処理要求元に固定的な優先順位を与え、それを基に調停する方式であり、回路構成は単純である。例えば、DMAC(0)、DMAC(1)、DMAC(2)、DMAC(3)の4つのDMACが存在し、DMAC(0)の優先順位が最も高く、DMAC(1),DMAC(2)と順次優先順位が低くなり、DMAC(3)が最も低いとする優先順位を与えるものとする。
【0004】
すると、複数のDMACからメモリアクセス要求があった場合には、常に優先順位が高いものが選ばれることとなる。したがって、優先順位の低いDMACの要求は、より優先順位の高いDMACの要求がある限り選ばれることはない。
【0005】
このため、固定優先順位による調停は優先順位の低い処理要求元の処理を長時間保留しても問題がないシステムや各処理要求元からの要求頻度が低く、複数同時の要求がきわめて稀なシステムで採用される。
【0006】
これに対して、処理要求元の処理を長時間保留することが許されないシステムでは、ラウンドロビン方式が用いられることが多い。
【0007】
ラウンドロビン方式では、処理要求元に対する優先順位を動的に変化させる。上述した例と同様に、初期の優先順位として、DMAC(0)の優先順位が最も高く、DMAC(1),DMAC(2)と順次優先順位が低くなり、DMAC(3)が最も低いとする優先順位を与えるものとする。
【0008】
すると、複数のDMACからメモリアクセス要求があった場合には、その時の優先順位が高いものが選ばれる。例えばDMAC(1)からのメモリアクセス要求があればそのアクセスが終了後、DMAC(1)の次に優先順位が高いDMAC(2)の優先順位が最も高くなり、DMAC(1)の優先順位が最も低くなるように、即ち優先順位を高い方からDMAC(2),DMAC(3),DMAC(0),DMAC(1)となるように変更し調停を行い、これを繰り返す。
【0009】
この方式ではある処理要求元が要求を出せば、他の処理要求元がいかなる順番で要求を出したとしても必ず、いずれはその要求は処理される。
【0010】
なお、ラウンドロビン方式は処理要求順には処理されない。例えば、最初にDMAC(0)とDMAC(3)からアクセス要求があった場合、DMAC(0)のアクセス要求が処理される。その処理中にさらにDMAC(1)とDMAC(2)から要求があれは、DMAC(0),DMAC(1),DMAC(2),DMAC(3)の順で処理されることになり、最初に発生したDMAC(3)のアクセス要求は最後に処理されることになる。処理要求元が多くなれば、このような処理要求の保留時間が増大することとなる。
【0011】
このような処理要求の保留が許されない場合には、処理要求順に順次処理を行うことが必要となる。
【0012】
図8は、従来のディジタル回路の構成を示すブロック図であり、特にDMAC(0),DMAC(1),DMAC(2),DMAC(3)の4つのDMACのアクセス要求を処理要求順に順次処理する場合に対応する。
【0013】
図に示すように、2(0),2(1),2(2),2(3)は、同一構成のDMAで、それぞれDMAC(0),DMAC(1),DMAC(2),DMAC(3)に対応し、これら各DMAC(n)2(n)(以下、n=0,1,2,3)の処理要求信号req(n)は、調停回路5に接続され、調停回路5は処理要求順となるように選択信号sel(n)を出力し、同時にバスコントローラ(Bus Controller)1に対してアクセス要求信号reqを出力する。
【0014】
そして、3(0),3(1),3(2),3(3)は、それぞれ論理積回路であり、これら各論理積回路3(n)は、各DMAC(n)2(n)のアドレス信号(実際にはその他に信号が必要となるが、説明のためにアドレス信号で代表する)addr(n)に対して上述したsel(n)の論理積をとり、論理和回路4に出力する。なお、選択されていないDMAC(n)2のアドレス信号addr(n)は論理「0」とする。
【0015】
論理和回路4は、各論理積回路3(n)から入力されるアドレス信号addr(n)の論理和を取り、選択されたDMAC(n)2(n)のアドレス信号addr(n)をアドレス信号addrとしてバスコントローラ1に対して出力する。
【0016】
バスコントローラ1は、調停回路5からのアクセス要求信号reqと論理和回路4からのアドレス信号addrに基づいて図示しないメモリへのアクセスを行い、該メモリのアクセスを完了すると、処理終了信号doneを調停回路5に出力する。
【0017】
調停回路5は、この処理終了信号doneが入力されると、選択されていたMAC(n)2(n)に対してdone(n)を出力して、メモリアクセスが終了したことをDMAC(n)2(n)に知らせる。
【0018】
この調停回路5は、リクエストキュー(Request Queue)51と調停制御回路(Arbiter Contorol Logic)52から構成される。リクエストキュー51の内部には図示しないFIFO(ファーストインファーストアウト)メモリが存在し、アクセス要求が行われたDMAC(n)2の要求元識別番号が書き込まれる。ここで、DMAC(0)2(0),DMAC(1)2(1),DMAC(2)2(2),DMAC(3)2(3)の要求元識別番号を、それぞれ0,1,2,3とする。
【0019】
図9,図10は、図8に示した従来のディジタル回路における処理要求処理時の主信号のタイミングを示すタイミングチャートであり、特に、DMAC(0)とDMAC(3)からアクセス要求があり、DMAC(0)のアクセス要求の処理中にさらにDMAC(1)とDMAC(2)から要求があった場合についての動作に対応する。
【0020】
図に示すように、リクエストキュー51のFIFOメモリは初期状態でエンプティで、notempty信号は「Low」であり、調停制御回路52はreqをアサートにしない。DMAC(0)2(0)とDMAC(3)2(3)からのアクセス要求、req0とreq3がアサートされる(clk1)と、FIFOにはそれらDMACの要求元識別番号である「0」と「3」が書き込まれる(clk2)。
【0021】
同時に、notempty信号が「High」となる(clk2)。調停制御回路52はreqをアサートし(clk3)、FIFOoutが「0」なのでsel0を「High」にする(clk3)。従って、addrにはDMAC(0)2(0)がaddr0に出力するAが出力される。
【0022】
バスコントローラ1はreqのアサートで、アドレスAのメモリへのアクセスを実行し、完了すると、処理終了信号doneをアサートする(clk8)。このメモリアクセス中に、clk6のタイミングで、DMAC(1)2(1)がreq1を、clk8のタイミングでDMAC(2)がreq2をアサートするために、リクエストキュー51のFIFOメモリには、それらの要求元識別番号である「1」と「2」がさらに書き込まれている。
【0023】
調停回路5は処理終了信号doneのアサートで、アクセス要求元であるDMAC(0)2(0)のdone0をアサートし(clk9)、DMAC(0)2(0)はreq0をディアサートする(clk10)。
【0024】
また、調停回路5は処理終了信号doneのアサートで、リクエストキュー51のFIFOメモリからデータを一つ取り去り、再び、notempty信号を参照する。notempty信号は「High」なので、保留されているアクセス要求があることを知る。
【0025】
調停回路5は再び、reqをアサートし、FIFOoutが「3」であることからsel3を「High」にし(clk10)、DMAC(3)2(3)のアクセス要求の処理が開始される。
【0026】
以後、同様にして、タイミングチャートに示すように、DMAC(1)2(1)とDMAC(2)2(2)のアクセス要求の処理が行われる。DMAC(2)2(2)のアクセス要求に対するメモリアクセスが終了した時の処理終了信号doneのアサート(clk29)で、リクエストキュー51のFIFOメモリからデータが一つ取り去られると、FIFOメモリはエンプティ状態に戻り、notempty信号が「Low」に戻る(clk30)。調停回路5はリクエストキュー51への新たな要求元識別番号の書き込みを待つ。
【0027】
以上のように、図8に示した従来のディジタル回路は、DMAC(0)2(0),DMAC(1)2(1),DMAC(2)2(2),DMAC(3)2(3)の4つのDMACのアクセス要求を処理要求順に順次処理することができる。
【0028】
【発明が解決しようとする課題】
しかしながら、図8に示した従来のディジタル回路では、複数のDAMCの要求を要求された順番に処理を行うために、リクエストキュー51を含む調停回路5を必要とするのため、以下のような問題点があった。
【0029】
まず、リクエストキュー51は、FIFOメモリとその周辺回路で構成されるが、周辺回路が複雑である。特に、タイミングチャートのclk2のタイミングのように、同時に複数のDMAC(n)2(n)から要求があった場合の制御は複雑である。上記図8に示した従来のディジタル回路では、DMAC(0)2(0)〜DMAC(3)2(3)の4個の同時要求に対応しなければならないという問題点があった。
【0030】
また、仕様の変更や類似システムの再設計で処理要求元(上記従来例では、DMAC(n)2(n))の数が増加した場合、リクエストキュー51を含む調停回路5の変更が必要であり、再設計は容易ではないという問題点があった。
【0031】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、複数の処理要求元は、それぞれ処理要求発生時には、入力される要求識別番号をラッチし、要求識別番号を更新して出力し、ラッチした要求識別番号と現要求識別番号とが等しくなった場合に選択信号を出力して処理を開始させ、また処理要求識別番号制御部は、次に発生される処理要求に与えるべき新要求識別番号を先頭の処理要求元の要求識別番号入力とし要求識別番号出力を次の要求識別番号入力とし、これを数珠繋ぎになった各処理要求元で繰り返し、最後尾の処理要求元の要求識別番号出力により新要求識別番号出力を更新し、さらに処理要求識別番号制御部は、処理終了通知に基づいて現要求識別番号出力を更新することにより、リクエストキューを含む複雑な回路を備えることのない単純な回路構成により、複数の処理要求元からの処理要求を要求された順番に処理することができ、また処理要求元の数が変更された場合にも再設計を容易に行うことができる制御回路を提供することである。
【0032】
【課題を解決するための手段】
本発明は、複数の処理要求手段と、前記複数の処理要求手段からの処理要求に基づく処理を実行する実行手段と、前記複数の処理要求手段からの処理要求を制御するための制御手段とを有し、前記複数の処理要求手段からの処理要求に基づく処理の実行順序を制御する制御回路において、前記複数の処理要求手段及び前記制御手段は信号線を介して数珠繋ぎ状に接続されており、前記制御手段は、前記処理要求に基づく処理が前記実行手段により実行されたことを示す終了信号を、前記実行手段から受信する終了信号受信手段と、前記受信手段が前記終了信号を受信したことに応じて、実行手段が次に処理すべき処理要求を識別するための第1識別番号を更新して前記複数の処理要求手段に出力する第1識別番号出力手段と、前記複数の処理要求手段による新たな処理要求を識別するための第2識別番号を前記複数の処理要求手段のうち前記制御手段の後段の第1処理要求手段へ出力する第2識別番号出力手段と、前記第2識別番号出力手段により出力された後に前記複数の処理要求手段により転送された前記第2識別番号を受信し、該受信した前記第2識別番号に基づいて前記第2識別番号出力手段が送信すべき前記第2識別番号を更新する更新手段とを有し、前記第1処理要求手段は、前記第2識別番号出力手段から出力される前記第2識別番号を受信する第1受信手段と、前記第1処理要求手段にて前記処理要求が発生した場合に前記第1受信手段により受信された前記第2識別番号をラッチする第1ラッチ手段と、前記第1処理要求手段にて前記処理要求が発生した場合に前記第1受信手段により受信される前記第2識別番号を更新して前記複数の処理要求手段のうち前記第1処理要求手段の後段の第2処理要求手段に転送し、前記第1処理要求手段にて処理要求が発生していない場合には前記第1受信手段により受信される前記第2識別番号を更新することなく前記第2処理要求手段に転送する第1転送手段と、前記第1識別番号出力手段により出力された前記第1識別番号を受信する第2受信手段と、前記第1処理要求手段にて前記処理要求が発生した場合において、前記第1ラッチ手段によりラッチされた前記第2識別番号と前記第2受信手段が受信した前記第1識別番号とが一致した場合に前記処理要求に基づく処理を前記実行手段に実行させるための選択信号を出力する第1選択信号出力手段とを有し、前記第2処理要求手段は、前記第1転送手段から転送される前記第2識別番号を受信する第3受信手段と、前記第2処理要求手段にて前記処理要求が発生した場合に前記第3受信手段により受信された前記第2識別番号をラッチする第2ラッチ手段と、前記第2処理要求手段にて前記処理要求が発生した場合に前記第3受信手段により受信される前記第2識別番号を更新して前記複数の処理要求手段のうち前記第2処理要求手段の後段の第3処理要求手段に転送し、前記第2処理要求手段にて処理要求が発生していない場合には前記第3受信手段により受信される前記第2識別番号を更新することなく前記第3処理要求手段に転送する第2転送手段と、前記第1識別番号出力手段により出力された前記第1識別番号を受信する第4受信手段と、前記第2処理要求手段にて前記処理要求が発生した場合において、前記第2ラッチ手段によりラッチされた前記第2識別番号と前記第4受信手段が受信した前記第1識別番号とが一致した場合に前記処理要求に基づく処理を前記実行手段に実行させるための選択信号を出力する第2選択信号出力手段と、を有することを特徴とする。
【0037】
【発明の実施の形態】
〔第1実施形態〕
以下、図面を参照して本発明を説明する。
【0038】
図1は、本発明の第1実施形態を示すディジタル回路の概略構成を示すブロック図であり、図2は、図1に示す処理要求識別番号制御部6の詳細構成を示すブロック図であり、図3は、図1に示すDMAC(0)102(0)〜DMAC(3)102(3)の詳細構成を示すブロック図であり、図8に示した従来のディジタル回路と同一のものには同一の符号を付してある。
【0039】
図8に示した従来のディジタル回路では、上記の説明のように処理要求元の処理要求は処理要求元に対する処理要求元識別番号で管理されていたが、本実施形態では、処理要求元の処理要求は処理要求元に関係なく、処理要求に対して処理要求識別番号を割り当てて、その処理要求識別番号で管理する。処理要求識別番号は、同時に処理要求が発生する最大数か、それ以上を区別できなければならない。
【0040】
また、処理要求識別番号は順序が決められていなければならない。最後の処理要求識別番号の次は最初の処理要求識別番号とする。図1においては、同時に処理要求が発生する最大数は4なので、処理要求識別番号を0,1,2,3とし、順序は0→1→2→3→0→…として説明する。
【0041】
以下、図1〜図3を参照して、本発明のディジタル回路の構成及び動作について説明する。
【0042】
図1において、cur_reqID信号は現処理要求識別番号を表すものであり、この現処理要求識別番号は次に処理すべき処理要求の処理要求識別番号である。
【0043】
また、new_reqID信号は新処理要求識別番号を表すものであり、この新処理要求識別番号は次に発生する処理要求に対して割り当てる処理要求識別番号である。現処理要求識別番号と新処理要求識別番号は最初の処理要求識別番号に初期化され、ともに決められた順序で変化する。
【0044】
cur_reqID信号とnew_reqID信号は、処理要求識別番号制御部6により制御される。
【0045】
処理要求識別番号制御部6は、図2に示すように非常に単純な構成となっている。
【0046】
図2に示すように、処理要求識別番号制御部6において、処理終了信号done入力がアサートされると、セレクタ62は、処理要求識別番号インクリメンタ(request ID Incrementer)61により次の番号に進められた処理要求識別番号を選択し、フリップフロップ(FF)63に出力する。フリップフロップ(FF)63は、この処理要求番号を現処理要求識別番号を示すcur_reqID信号として更新出力する。
【0047】
この現処理要求識別番号を示すnew_reqID信号は、処理要求識別番号制御部6のnew_reqID_outから出力され、各DMAC(n)102(n)を経由して処理要求識別番号制御部6のnew_reqID_inに戻るものであり、上述したように処理要求識別番号制御部6のフリップフロップ64により、各クロック(clk)毎にnew_reqID_inで更新される。
【0048】
また、DMAC(0)102(0)〜DMAC(3)102(3)は同一構成のDMACである。DMAC(n)102(n)は、図3に示すように、図8に示した従来のDMAC(n)2(n)に加えて、アクセス要求req(n)が発生した時に処理要求識別番号(reqID)をラッチするための処理要求識別番号ラッチ部(request ID Latch)21、処理要求識別番号(reqID)を次の番号に進めるための処理要求識別番号インクリメンタ(request ID Incrementer)22、処理要求識別番号ラッチ部21でラッチされた処理要求識別番号req_IDと現処理要求識別番号cur_reqとを比較するための一致回路23、セレクタ24、論理積回路25,27、reqがアサート開始された時に1クロックだけ「High」となる信号を生成するパルス生成回路(pulse gen.)26が付加された構成である。
【0049】
DMAC(n)102(n)は、アクセス要求が発生すると、req(n)信号がアサートされ、reqID_in(n)に入力されるnew_reqID信号(DMAC(0)102(0)の場合)か前のDMAC(n−1)102(n−1)のreqID_out(n−1)信号(DMAC(0)102(0)以外の場合)の処理要求識別番号を処理要求識別番号ラッチ部21にラッチし、同時にreqID_out(n)として、処理要求識別番号インクリメンタ22によりインクリメントされたreqID_in(n)の処理要求識別番号の次の処理要求識別番号をセレクタ24により選択して出力する。
【0050】
これにより、複数のDMACに同時にアクセス要求が発生した時でもそれらの要求に対して異なる処理要求識別番号が割り当てられる。もちろん、DMAC(n)102(n)はアクセス要求が発生した時以外、すなわちパルス生成回路26の出力が「Low」の時には、reqID_out(n)にはreqID_in(n)と同じ処理要求識別番号を出力する。この切り替えは、セレクタ24にて実現される。そして、処理要求識別番号ラッチ部21にラッチされた処理要求識別番号がその時のアクセス要求に割り当てられた処理要求識別番号である。
【0051】
DMAC(n)102(n)は、アクセス要求中に、その要求に割り当てられた処理要求番号(処理要求識別番号ラッチ部21にラッチされた処理要求識別番号)と処理要求識別番号制御部6が出力する現処理要求識別番号cur_reqIDとが一致すると、一致回路23と論理積回路25により、sel(n)を「High」とする。
【0052】
つまり、次に処理すべきアクセス要求が自身のアクセス要求である時に、sel(n)が「High」となる。なお、論理積回路25はアクセス要求中でない時にsel(n)を「Low」に保つためのものである。
【0053】
また、バスコントローラ1は、各DMAC(n)102(n)のsel(n)の論理和回路104による論理和をreqの入力とし、reqがアサートされると、論理和回路4から出力されるaddrに基づいて、図示しないメモリへのアクセスを開始し、該メモリへのアクセスが完了すると、処理終了信号doneをアサートする。この処理終了信号doneは、全てのDMAC102に送られる。
【0054】
そして、各DMAC(n)102(n)は、論理積回路27により、処理終了信号doneと自身のsel(n)との論理積回路27による論理積出力をdone(n)とし、done(n)がアサートされれば、自身のアクセス要求の処理が完了したことを知り、req(n)をディアサートする。
【0055】
図4,図5は、図1〜図3に示した本発明の第1実施形態を示すディジタル回路における処理要求処理時の主信号のタイミングを示すタイミングチャートであり、特に、DMAC(0)102(0)とDMAC(3)102(3)からアクセス要求があり、DMAC(0)のアクセス要求の処理中にさらにDMAC(1)102(1)とDMAC(2)102(2)から要求があった場合(即ち、図9,図10で示した場合と同一の場合)についての本実施形態における動作に対応する。
【0056】
まず、現処理要求識別番号と新処理要求識別番号を示すcur_reqID信号とnew_reqID信号は最初の処理要求識別番号である「0」に初期化される。
【0057】
DMAC(0)102(0)とDMAC(3)102(3)からのアクセス要求、req0とreq3がアサートされる(clk1)と、それぞれの内部の処理要求識別番号ラッチ部21に処理要求識別番号を示すreqID_in(0)信号「0」とreqID_in(3)信号「1」がラッチされる(clk2)。同時に、新処理要求識別信号を示すnew_reqID信号が「2」に更新される(clk2)。
【0058】
DMAC(0)102(0)では現処理要求識別番号を示すcur_reqID信号が「0」で、自身でラッチした処理要求識別番号「0」と等しいので、sel0を「High」にする(clk2)。従って、addrにはDMAC(0)102(0)がaddr0に出力するAが出力される。
【0059】
バスコントローラ1は、sel0が「High」となることでアクセス要求信号reqがアサートされるので、アドレスAのメモリヘのアクセスを実行し、完了すると、処理終了信号doneをアサートする(clk7)。
【0060】
このメモリアクセス中に、clk6のタイミングで、DMAC(1)102(1)はreq1をアサートし、処理要求識別番号「2」をラッチし、処理要求識別番号を示すreqID信号は「3」に更新される。
【0061】
さらに、clk8のタイミングでDMAC(2)102(2)はreq2をアサートし、処理要求識別番号「3」をラッチし、処理要求識別番号を示すreqID_out(2)信号は「0」に更新される。
【0062】
また、DMAC(0)102(0)は、自身の選択信号sel0が「High」で、処理終了信号doneがアサートされたので(clk7)、req0をディアサートする(clk8)。
【0063】
また、処理要求識別番号制御部6は処理終了信号doneのアサートで、現処理要求識別番号を示すcur_reqID信号を「1」に更新する(clk8)。cur_reqID信号が「1」に更新されると、DMAC(3)102(3)でラッチされた処理要求識別番号「1」と現処理要求識別番号を示すcur_reqID信号「1」が等しくなるので、DMAC(3)102(3)はsel3を「High」にする(clk8)。再び、reqがアサートされ、バスコントローラ1によるDMAC(3)102(3)のアクセス要求の処理が開始される。
【0064】
以後、同様にして、タイミングチャートに示すように、DMAC(1)102(1)とDMAC(2)102(2)のアクセス要求の処理が行われる。
【0065】
以上の構成により、リクエストキューを含む複雑な回路(例えば、図8に示した調停回路5)を設けることなく、複数の処理要求元(DMAC)からの処理要求を処理要求順に順次処理することが可能となる。従って、従来より単純な回路構成となり、また、処理要求元の数の変更に対しても、再設計を容易に行うことができる。
【0066】
〔第2実施形態〕
図6は、本発明の第2実施形態を示すディジタル回路の概略構成を示すブロック図であり、図7は、図6に示すDMAC(0)202(0)〜DMAC(3)202(3)の詳細構成を示すブロック図であり、図1,図3と同一のものには同一の符号を付してある。
【0067】
図6,図7に示すように、DMAC(n)202(n)は、図3に示した本発明の第1実施形態のDMAC102に対して、内部のみで使用していた信号req(n)を外部に出力するように構成したものである。
【0068】
また、上記第1実施形態では、各DMAC(n)102(n)の選択信号sel(n)の論理和信号を論理和回路4で生成し、バスコントローラ1のreq信号としていた。このように構成することで、バスコントローラ1のreq信号がアサートされるタイミングで、バスコントローラ1の入力信号addrにもアクセスすべきメモリのアドレスが確定する。
【0069】
パスコントローラ1がメモリをアクセスする場合、通常まず、バスの使用権を得るために、バスリクエスト(bus request)信号をアサートし、バスの使用許可を示すバスグラント(busgrant)信号がアサートされるのを待ってから、メモリのアクセスを開始する。バスリクエスト信号をアサー卜してから、バスグラント(busgrant)信号がアサートされるまでの間はメモリのアドレスは必要ない。
【0070】
このような場合、図6に示すように各DMAC(n)202(n)の選択信号sel(n)の代わりにアクセス要求信号req(n)の論理和信号を論理和回路4で生成し、バスコントローラ1のreq信号にするように構成しても、addr信号の確定はreq信号のアサートに対して1クロック遅れるが、バスコントローラ1は正常に動作する。
【0071】
従って、本実施形態の構成では、上記第1実施形態で示した構成に比べて、バスコントローラ1でのメモリアクセスの開始を早めることができる。
【0072】
また、上記第1実施形態では、処理要求識別番号を0,1,2,3(0→1→2→3→0→…)のような通常にカウントアップするものとしたが、処理要求識別番号はこれに限られるものではなく、使用する処理要求識別番号はDMAC102(202)内の処理要求識別番号インクリメンタ22と処理要求識別番号制御部6内の処理要求識別番号インクリメンタ61の構成による。
【0073】
例えば、通常のカウンタより単純な回路構成となるジョンソンカウンタを用いれば、処理要求識別番号は00B→01B→11B→10B→00B→…(Bはその前の数字が2進数表示であることを示す)とすることができる。さらに、単純な回路構成のリングカウンタを用いれば、0001B→0010B→0100B→1000B→0001B→…とすることができる。
【0074】
また、上記各実施形態では、4個の処理要求元(DMAC)に対して、処理要求識別番号の個数を4個としていたが、この処理要求番号の個数は4個以上であれば個数に制限はない。例えば、処理要求識別番号を0→1→2→3→4→5→6→7→0→…としても一向に構わない。
【0075】
さらに、後述するように、4個の処理要求元に対して、8個の処理要求識別番号を使用した場合、処理要求元を増やすような変更や再設計の際、処理要求元が8個までであれば、非常に容易なものとなる。
【0076】
以下に、処理要求元(DMAC)の数を増加するような変更について説明する。
【0077】
処理要求元(DMAC)の数が増加して、それまで使用していた処理要求識別番号の個数が足りなくなった場合は、DMAC102(202)内の処理要求識別番号インクリメンタ22と処理要求識別番号制御部6内の処理要求識別番号インクリメンタ61を変更する必要がある。
【0078】
新たな処理要求識別番号が必要とするビット数がそれまで使用していた処理要求識別番号のビット数を越えた時には、DMAC102(202)内のラッチ回路21、セレクタ24、一致回路23や論理積回路25,27と処理要求識別番号制御部6内のフリップフロップ(FF)63,64、セレクタ62をそのビット数に合わせる必要がある。また、最後に論理和回路104の入力数を増加した処理要求元の数に合わせる。このように、全ての変更は機械的に行えるものばかりである。
【0079】
さらに、もし、増加した処理要求元の数が、それまで使用していた処理要求識別番号の個数を越えない場合には、単に論理和回路4の入力数を増加した処理要求元の数に合わせるように変更するのみである。
【0080】
以上説明したように本発明は、従来必要であったリクエストキューを含む複雑な回路(例えば、図8に示した調停回路5)を用いることなく、複数の処理要求元からの処理要求を処理要求順に順次処理することを実現できるので、単純な構成で、小規模にすることができる。また、処理要求元の数の変更に対しても再設計を容易に行うことができる。
【0081】
なお、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
【0082】
また、上記実施形態では、本発明を、複数の処理要求元からのメモリアクセス処理要求に基づいてメモリアクセス処理を実行するディジタル回路に適用する場合について説明したが、本発明は、複数の処理要求元とそれらの処理要求を処理要求順に順次処理を行うように制御するディジタル回路であれば、メモリアクセス処理以外の処理を行う回路にも適用可能である。
【0083】
【発明の効果】
以上説明したように、本発明によれば、リクエストキューを含む複雑な回路を用いることなく、単純な回路構成により、複数の処理要求元からの処理要求を処理要求順に順次処理することができ、また、処理要求元の数の変更に対しても再設計を容易に行うことができる効果を奏する。
【図面の簡単な説明】
【図1】本発明の第1実施形態を示すディジタル回路の概略構成を示すブロック図である。
【図2】図1に示す処理要求識別番号制御部の詳細構成を示すブロック図である。
【図3】図1に示すDMAC(0)〜DMAC(3)の詳細構成を示すブロック図である。
【図4】図1〜図3に示した本発明の第1実施形態を示すディジタル回路における処理要求処理時の主信号のタイミングを示すタイミングチャートである。
【図5】図1〜図3に示した本発明の第1実施形態を示すディジタル回路における処理要求処理時の主信号のタイミングを示すタイミングチャートである。
【図6】本発明の第2実施形態を示すディジタル回路の概略構成を示すブロック図である。
【図7】図6に示すDMAC(0)〜DMAC(3)の詳細構成を示すブロック図である。
【図8】従来のディジタル回路の構成を示すブロック図である。
【図9】図8に示した従来のディジタル回路における処理要求処理時の主信号のタイミングを示すタイミングチャートである。
【図10】図8に示した従来のディジタル回路における処理要求処理時の主信号のタイミングを示すタイミングチャートである。
【符号の説明】
1 バスコントローラ(Bus Cntroller)
3(0)〜3(3) 論理積回路
6 処理要求識別番号制御部(Request ID Cntroller)
21 処理要求識別番号ラッチ部(request ID Latch)
22 処理要求識別番号インクリメンタ(request ID Incrementer)
23 一致回路
24 セレクタ
25 論理積回路
26 パルス生成回路
27 論理積回路
61 処理要求識別番号インクリメンタ(request ID Incrementer)
62 セレクタ
63 フリップフロップ(FF)
64 フリップフロップ(FF)
102(0)〜102(3) DMAコントローラ(DMAC)
104 論理和回路
202(0)〜202(3) DMAコントローラ(DMAC)
[0001]
BACKGROUND OF THE INVENTION
The present invention controls a plurality of processing request sources and their processing requests to be sequentially processed in the order of processing requests. Control circuit It is about.
[0002]
[Prior art]
Digital circuits often include a plurality of processing request sources and an arbitration circuit that controls the processing requests so that the processing requests are sequentially processed in a certain order. For example, there are a plurality of DMA controllers (direct memory access controllers; hereinafter referred to as DMACs), which access memory via a CPU (central processing unit). An access request to a memory from a plurality of DMACs is selected by the arbitration circuit, and one access request is selected. When the access is completed, the next arbitration is entered.
[0003]
There are several methods for mediation. First, arbitration based on a fixed priority is a scheme in which a fixed priority is given to a processing request source and arbitration is performed based on the fixed priority, and the circuit configuration is simple. For example, there are four DMACs, that is, DMAC (0), DMAC (1), DMAC (2), and DMAC (3), and DMAC (0) has the highest priority, and DMAC (1) and DMAC (2) It is assumed that the priority order is sequentially decreased and the priority order that the DMAC (3) is the lowest is given.
[0004]
Then, when there is a memory access request from a plurality of DMACs, one having a higher priority is always selected. Accordingly, a request for a DMAC with a lower priority is not selected as long as there is a request for a DMAC with a higher priority.
[0005]
For this reason, arbitration with a fixed priority order is a system where there is no problem even if processing of a processing request source having a low priority level is held for a long time, or a system in which the number of requests from each processing request source is low and multiple simultaneous requests are extremely rare Adopted.
[0006]
On the other hand, the round robin method is often used in a system that does not allow a processing request source process to be held for a long time.
[0007]
In the round robin method, the priority order for the processing request source is dynamically changed. As in the example described above, as the initial priority, it is assumed that DMAC (0) has the highest priority, DMAC (1), DMAC (2) sequentially lower priority, and DMAC (3) has the lowest priority. Priority shall be given.
[0008]
Then, when there are memory access requests from a plurality of DMACs, the one with the higher priority at that time is selected. For example, if there is a memory access request from DMAC (1), the DMAC (2) having the second highest priority after DMAC (1) has the highest priority after the access is completed, and the priority of DMAC (1) is the highest. Arbitration is performed so that the lowest priority is obtained, that is, the priority order is changed to DMAC (2), DMAC (3), DMAC (0), and DMAC (1), and this is repeated.
[0009]
In this method, if a processing request source issues a request, the request is always processed regardless of the order in which the other processing request sources issue requests.
[0010]
Note that the round robin method is not processed in the order of processing requests. For example, when there is an access request from DMAC (0) and DMAC (3) first, the DMAC (0) access request is processed. If there are further requests from DMAC (1) and DMAC (2) during the processing, they will be processed in the order of DMAC (0), DMAC (1), DMAC (2), DMAC (3). The DMAC (3) access request generated at the end is processed last. As the number of processing request sources increases, the holding time of such processing requests increases.
[0011]
If such processing requests cannot be held, it is necessary to sequentially perform processing in the order of processing requests.
[0012]
FIG. 8 is a block diagram showing the configuration of a conventional digital circuit. In particular, access requests for four DMACs, DMAC (0), DMAC (1), DMAC (2), and DMAC (3), are sequentially processed in the order of processing requests. Corresponds to the case.
[0013]
As shown in the figure, 2 (0), 2 (1), 2 (2), and 2 (3) are DMAs having the same configuration, and DMAC (0), DMAC (1), DMAC (2), and DMAC, respectively. Corresponding to (3), the processing request signal req (n) of each of these DMAC (n) 2 (n) (hereinafter, n = 0, 1, 2, 3) is connected to the arbitration circuit 5, and the arbitration circuit 5 Outputs a selection signal sel (n) so as to be in the order of processing requests, and simultaneously outputs an access request signal req to the bus controller (Bus Controller) 1.
[0014]
In addition, 3 (0), 3 (1), 3 (2), and 3 (3) are AND circuits, and each of these AND circuits 3 (n) is each DMAC (n) 2 (n). The address signal of the address sel (n) is added to the addr (n) of the address signal (represented by the address signal for the sake of explanation, although other signals are actually required). Output. Note that the address signal addr (n) of the DMAC (n) 2 that is not selected is set to logic “0”.
[0015]
The logical sum circuit 4 calculates the logical sum of the address signal addr (n) input from each logical product circuit 3 (n), and addresses the address signal addr (n) of the selected DMAC (n) 2 (n). The signal addr is output to the bus controller 1.
[0016]
The bus controller 1 accesses a memory (not shown) based on the access request signal req from the arbitration circuit 5 and the address signal addr from the OR circuit 4, and when the access to the memory is completed, arbitrates the processing end signal done. Output to the circuit 5.
[0017]
When this processing end signal done is input, the arbitration circuit 5 outputs done (n) to the selected MAC (n) 2 (n), indicating that the memory access has been completed. ) Inform 2 (n).
[0018]
The arbitration circuit 5 includes a request queue 51 and an arbitration control circuit 52. A FIFO (first in first out) memory (not shown) exists in the request queue 51, and the request source identification number of the DMAC (n) 2 for which the access request is made is written. Here, the requester identification numbers of DMAC (0) 2 (0), DMAC (1) 2 (1), DMAC (2) 2 (2), and DMAC (3) 2 (3) are set to 0, 1, respectively. 2 and 3.
[0019]
9 and 10 are timing charts showing timings of main signals at the time of processing request processing in the conventional digital circuit shown in FIG. 8. In particular, there are access requests from DMAC (0) and DMAC (3). This corresponds to the operation when there is a further request from DMAC (1) and DMAC (2) during the processing of the DMAC (0) access request.
[0020]
As shown in the figure, the FIFO memory of the request queue 51 is empty in the initial state, the notempty signal is “Low”, and the arbitration control circuit 52 does not assert req. When access requests from DMAC (0) 2 (0) and DMAC (3) 2 (3), and req0 and req3 are asserted (clk1), the requester identification number of these DMACs is set to “0”. “3” is written (clk2).
[0021]
At the same time, the notempty signal becomes “High” (clk2). The arbitration control circuit 52 asserts req (clk3), and since FIFOout is “0”, sel0 is set to “High” (clk3). Therefore, A which DMAC (0) 2 (0) outputs to addr0 is output to addr.
[0022]
The bus controller 1 executes the access to the memory at the address A by asserting req, and when completed, asserts the processing end signal done (clk8). During this memory access, the DMAC (1) 2 (1) asserts req1 at the timing of clk6, and the DMAC (2) asserts req2 at the timing of clk8. The requester identification numbers “1” and “2” are further written.
[0023]
The arbitration circuit 5 asserts the done0 of DMAC (0) 2 (0), which is the access request source, by asserting the processing end signal done (clk9), and the DMAC (0) 2 (0) deasserts req0 (clk10). ).
[0024]
The arbitration circuit 5 removes one piece of data from the FIFO memory of the request queue 51 by asserting the processing end signal done, and refers to the notempty signal again. Since the notempty signal is “High”, it is known that there is a pending access request.
[0025]
The arbitration circuit 5 asserts req again, and since FIFOout is “3”, sel3 is set to “High” (clk10), and access request processing of DMAC (3) 2 (3) is started.
[0026]
Thereafter, similarly, as shown in the timing chart, access request processing of DMAC (1) 2 (1) and DMAC (2) 2 (2) is performed. When one data is removed from the FIFO memory of the request queue 51 by assertion (clk29) of the processing end signal done when the memory access to the access request of the DMAC (2) 2 (2) is completed, the FIFO memory is in an empty state. The notempty signal returns to “Low” (clk30). The arbitration circuit 5 waits for a new requester identification number to be written to the request queue 51.
[0027]
As described above, the conventional digital circuit shown in FIG. 8 has DMAC (0) 2 (0), DMAC (1) 2 (1), DMAC (2) 2 (2), DMAC (3) 2 (3 ) Four DMAC access requests can be sequentially processed in the order of processing requests.
[0028]
[Problems to be solved by the invention]
However, the conventional digital circuit shown in FIG. 8 requires the arbitration circuit 5 including the request queue 51 in order to process a plurality of DAMC requests in the requested order. There was a point.
[0029]
First, the request queue 51 includes a FIFO memory and its peripheral circuit, but the peripheral circuit is complicated. In particular, the control when there is a request from a plurality of DMAC (n) 2 (n) at the same time as the timing of clk2 in the timing chart is complicated. The conventional digital circuit shown in FIG. 8 has a problem that four simultaneous requests of DMAC (0) 2 (0) to DMAC (3) 2 (3) must be handled.
[0030]
Further, when the number of processing request sources (in the above-described conventional example, DMAC (n) 2 (n)) increases due to specification change or similar system redesign, the arbitration circuit 5 including the request queue 51 needs to be changed. There was a problem that redesign was not easy.
[0031]
The present invention has been made to solve the above-described problems. An object of the present invention is to allow a plurality of processing request sources to latch input request identification numbers when processing requests occur, and When the latched request identification number is equal to the current request identification number, a selection signal is output to start the processing, and the processing request identification number control unit The new request identification number to be given to the request is input as the request identification number of the first processing request source, the request identification number output is input as the next request identification number, and this is repeated at each processing request source connected in a row, and the last processing is performed. The new request identification number output is updated by the request source identification number output, and the processing request identification number control unit updates the current request identification number output based on the processing end notification to With a simple circuit configuration that does not include a complicated circuit, it is possible to process the processing requests from a plurality of processing request sources in the order requested, and even if the number of processing request sources is changed, Easy to design Control circuit Is to provide.
[0032]
[Means for Solving the Problems]
The present invention includes a plurality of processing request means, an execution means for executing processing based on processing requests from the plurality of processing request means, and a control means for controlling processing requests from the plurality of processing request means. And a control circuit for controlling the execution order of processing based on processing requests from the plurality of processing requesting means, wherein the plurality of processing requesting means and the control means are connected via signal lines. Rosary chain And an end signal receiving means for receiving from the execution means an end signal indicating that the processing based on the processing request has been executed by the execution means, and the reception means is the end. First identification number output means for updating a first identification number for identifying a processing request to be processed next by the execution means in response to receiving the signal, and outputting the first identification number to the plurality of processing request means; A second identification number output means for outputting a second identification number for identifying a new process request by the plurality of process request means to a first process request means downstream of the control means among the plurality of process request means; , Receiving the second identification number transferred by the plurality of processing request means after being output by the second identification number output means, and based on the received second identification number, the second identification number output means Updating means for updating the second identification number to be transmitted by And the first processing request means receives the second identification number output from the second identification number output means; When the processing request is generated by the first processing request means First latching means for latching the second identification number received by the first receiving means; and the first receiving means received by the first receiving means when the processing request is generated by the first processing requesting means. 2 When the identification number is updated and transferred to the second process request means subsequent to the first process request means among the plurality of process request means, and no process request is generated in the first process request means Is a first transfer means for transferring the second identification number received by the first receiving means to the second processing request means without updating, and the first identification output by the first identification number output means. Second receiving means for receiving a number; When the processing request is generated by the first processing request unit, Selection for causing the execution means to execute processing based on the processing request when the second identification number latched by the first latch means matches the first identification number received by the second receiving means. First selection signal output means for outputting a signal, wherein the second processing request means is a third receiving means for receiving the second identification number transferred from the first transfer means, When the processing request is generated by the second processing request means Second latch means for latching the second identification number received by the third receiving means; and the second receiving means received by the third receiving means when the processing request is generated by the second processing request means. 2 When the identification number is updated and transferred to the third process request means subsequent to the second process request means among the plurality of process request means, and no process request is generated in the second process request means Is a second transfer means for transferring to the third processing request means without updating the second identification number received by the third receiving means, and the first identification output by the first identification number output means. A fourth receiving means for receiving a number; When the processing request is generated by the second processing request unit, Selection for causing the execution means to execute processing based on the processing request when the second identification number latched by the second latch means matches the first identification number received by the fourth receiving means And a second selection signal output means for outputting a signal.
[0037]
DETAILED DESCRIPTION OF THE INVENTION
[First Embodiment]
The present invention will be described below with reference to the drawings.
[0038]
FIG. 1 is a block diagram showing a schematic configuration of a digital circuit showing a first embodiment of the present invention. FIG. 2 is a block diagram showing a detailed configuration of a processing request identification number control unit 6 shown in FIG. FIG. 3 is a block diagram showing a detailed configuration of DMAC (0) 102 (0) to DMAC (3) 102 (3) shown in FIG. 1, which is the same as the conventional digital circuit shown in FIG. The same reference numerals are given.
[0039]
In the conventional digital circuit shown in FIG. 8, the processing request source processing request is managed by the processing request source identification number for the processing request source as described above, but in this embodiment, the processing request source processing is performed. Regardless of the processing request source, a request is assigned a processing request identification number to the processing request and is managed by the processing request identification number. The processing request identification number must be able to distinguish between the maximum number of processing requests generated at the same time or more.
[0040]
Further, the order of processing request identification numbers must be determined. Next to the last processing request identification number is the first processing request identification number. In FIG. 1, since the maximum number of processing requests that can be generated simultaneously is 4, the processing request identification numbers are 0, 1, 2, 3, and the order is 0 → 1 → 2 → 3 → 0 →.
[0041]
The configuration and operation of the digital circuit of the present invention will be described below with reference to FIGS.
[0042]
In FIG. 1, the cur_reqID signal represents the current processing request identification number, and this current processing request identification number is the processing request identification number of the processing request to be processed next.
[0043]
The new_reqID signal represents a new process request identification number, and this new process request identification number is a process request identification number assigned to a process request to be generated next. The current process request identification number and the new process request identification number are initialized to the first process request identification number, and both change in a predetermined order.
[0044]
The cur_reqID signal and the new_reqID signal are controlled by the processing request identification number control unit 6.
[0045]
The processing request identification number control unit 6 has a very simple configuration as shown in FIG.
[0046]
As shown in FIG. 2, when the processing end signal done input is asserted in the processing request identification number control unit 6, the selector 62 is advanced to the next number by a processing request identification number incrementer (request ID Incrementer) 61. The selected processing request identification number is selected and output to the flip-flop (FF) 63. The flip-flop (FF) 63 updates and outputs this processing request number as a cur_reqID signal indicating the current processing request identification number.
[0047]
The new_reqID signal indicating the current process request identification number is output from new_reqID_out of the process request identification number control unit 6 and returns to the new_reqID_in of the process request identification number control unit 6 via each DMAC (n) 102 (n). As described above, it is updated with new_reqID_in for each clock (clk) by the flip-flop 64 of the processing request identification number control unit 6.
[0048]
DMAC (0) 102 (0) to DMAC (3) 102 (3) are DMACs having the same configuration. As shown in FIG. 3, the DMAC (n) 102 (n) is a processing request identification number when an access request req (n) is generated in addition to the conventional DMAC (n) 2 (n) shown in FIG. A processing request identification number latch unit (request ID Latch) 21 for latching (reqID), a processing request identification number incrementer (request ID incrementer) 22 for advancing the processing request identification number (requestID) to the next number, and processing 1 when the matching circuit 23, selector 24, AND circuits 25, 27, and req for comparing the processing request identification number req_ID latched by the request identification number latch unit 21 with the current processing request identification number cur_req are started to assert. A pulse generation circuit (pulse gen. 26 is additionally configurations.
[0049]
When an access request occurs, the DMAC (n) 102 (n) asserts the req (n) signal, and the new_reqID signal (in the case of DMAC (0) 102 (0)) input to reqID_in (n) Latch the processing request identification number of the reqID_out (n-1) signal of DMAC (n-1) 102 (n-1) (in the case other than DMAC (0) 102 (0)) in the processing request identification number latch unit 21; At the same time, the selector 24 selects and outputs the processing request identification number next to the processing request identification number of reqID_in (n) incremented by the processing request identification number incrementer 22 as reqID_out (n).
[0050]
Thus, even when access requests are simultaneously generated for a plurality of DMACs, different processing request identification numbers are assigned to these requests. Of course, the DMAC (n) 102 (n) has the same processing request identification number as reqID_in (n) for reqID_out (n) except when an access request is generated, that is, when the output of the pulse generation circuit 26 is “Low”. Output. This switching is realized by the selector 24. The processing request identification number latched in the processing request identification number latch unit 21 is the processing request identification number assigned to the access request at that time.
[0051]
The DMAC (n) 102 (n) has a processing request number assigned to the request (processing request identification number latched in the processing request identification number latch unit 21) and the processing request identification number control unit 6 during the access request. When the current processing request identification number cur_reqID to be output matches, the matching circuit 23 and the logical product circuit 25 set sel (n) to “High”.
[0052]
That is, when the next access request to be processed is its own access request, sel (n) becomes “High”. The AND circuit 25 is for keeping sel (n) “Low” when an access request is not being made.
[0053]
In addition, the bus controller 1 takes the logical sum of the sel (n) logical sum circuits 104 of each DMAC (n) 102 (n) as an input of req, and outputs it from the logical sum circuit 4 when req is asserted. Based on the addr, access to a memory (not shown) is started, and when the access to the memory is completed, a processing end signal done is asserted. This processing end signal done is sent to all the DMACs 102.
[0054]
Then, each DMAC (n) 102 (n) uses the logical product circuit 27 to set the logical product output by the logical product circuit 27 of the processing end signal done and its own sel (n) to done (n), and done (n) ) Is asserted, it knows that its own access request has been processed and deasserts req (n).
[0055]
FIGS. 4 and 5 are timing charts showing timings of main signals at the time of processing request processing in the digital circuit showing the first embodiment of the present invention shown in FIGS. 1 to 3, and in particular, DMAC (0) 102. There are access requests from (0) and DMAC (3) 102 (3), and further requests from DMAC (1) 102 (1) and DMAC (2) 102 (2) during the access request processing of DMAC (0). This corresponds to the operation in the present embodiment for the case (that is, the same case as shown in FIGS. 9 and 10).
[0056]
First, the cur_reqID signal and new_reqID signal indicating the current process request identification number and the new process request identification number are initialized to “0” which is the first process request identification number.
[0057]
When access requests from DMAC (0) 102 (0) and DMAC (3) 102 (3) and req0 and req3 are asserted (clk1), the processing request identification number is stored in each internal processing request identification number latch unit 21. ReqID_in (0) signal “0” and reqID_in (3) signal “1” indicating “1” are latched (clk2). At the same time, the new_reqID signal indicating the new process request identification signal is updated to “2” (clk2).
[0058]
In DMAC (0) 102 (0), the cur_reqID signal indicating the current processing request identification number is “0”, which is equal to the processing request identification number “0” latched by itself, so sel0 is set to “High” (clk2). Therefore, A output from DMAC (0) 102 (0) to addr0 is output to addr.
[0059]
Since the access request signal req is asserted when sel0 becomes “High”, the bus controller 1 executes the access to the memory at the address A and, when completed, asserts the processing end signal done (clk7).
[0060]
During this memory access, at the timing of clk6, DMAC (1) 102 (1) asserts req1, latches the processing request identification number “2”, and updates the reqID signal indicating the processing request identification number to “3”. Is done.
[0061]
Further, at the timing of clk8, DMAC (2) 102 (2) asserts req2, latches the processing request identification number “3”, and the reqID_out (2) signal indicating the processing request identification number is updated to “0”. .
[0062]
The DMAC (0) 102 (0) deasserts req0 (clk8) because its selection signal sel0 is “High” and the processing end signal done is asserted (clk7).
[0063]
The processing request identification number control unit 6 updates the cur_reqID signal indicating the current processing request identification number to “1” by asserting the processing end signal done (clk8). When the cur_reqID signal is updated to “1”, the processing request identification number “1” latched by the DMAC (3) 102 (3) becomes equal to the cur_reqID signal “1” indicating the current processing request identification number. (3) 102 (3) sets sel3 to “High” (clk8). Again, req is asserted, and the bus controller 1 starts processing the access request for DMAC (3) 102 (3).
[0064]
Thereafter, similarly, as shown in the timing chart, access request processing of DMAC (1) 102 (1) and DMAC (2) 102 (2) is performed.
[0065]
With the above configuration, processing requests from a plurality of processing request sources (DMAC) can be sequentially processed in the order of processing requests without providing a complicated circuit including a request queue (for example, the arbitration circuit 5 shown in FIG. 8). It becomes possible. Therefore, the circuit configuration is simpler than before, and redesign can be easily performed even when the number of processing request sources is changed.
[0066]
[Second Embodiment]
FIG. 6 is a block diagram showing a schematic configuration of a digital circuit showing a second embodiment of the present invention, and FIG. 7 shows DMAC (0) 202 (0) to DMAC (3) 202 (3) shown in FIG. FIG. 4 is a block diagram showing the detailed configuration of FIG. 1, and the same components as those in FIG. 1 and FIG.
[0067]
As shown in FIGS. 6 and 7, the DMAC (n) 202 (n) is a signal req (n) used only inside the DMAC 102 of the first embodiment of the present invention shown in FIG. Is output to the outside.
[0068]
In the first embodiment, the logical sum signal of the selection signal sel (n) of each DMAC (n) 102 (n) is generated by the logical sum circuit 4 and used as the req signal of the bus controller 1. With this configuration, at the timing when the req signal of the bus controller 1 is asserted, the memory address to be accessed also for the input signal addr of the bus controller 1 is determined.
[0069]
When the path controller 1 accesses the memory, normally, in order to obtain the right to use the bus, first, a bus request signal is asserted, and a bus grant signal indicating permission to use the bus is asserted. Wait for the memory access to begin. No memory address is required between the assertion of the bus request signal and the assertion of the bus grant signal.
[0070]
In such a case, as shown in FIG. 6, the logical sum circuit 4 generates a logical sum signal of the access request signal req (n) instead of the selection signal sel (n) of each DMAC (n) 202 (n), Even if the req signal of the bus controller 1 is used, the determination of the addr signal is delayed by one clock with respect to the assertion of the req signal, but the bus controller 1 operates normally.
[0071]
Therefore, in the configuration of the present embodiment, the start of memory access in the bus controller 1 can be accelerated compared to the configuration shown in the first embodiment.
[0072]
In the first embodiment, the process request identification number is normally counted up as 0, 1, 2, 3 (0 → 1 → 2 → 3 → 0 →...). The number is not limited to this, and the processing request identification number to be used depends on the configuration of the processing request identification number incrementer 22 in the DMAC 102 (202) and the processing request identification number incrementer 61 in the processing request identification number control unit 6. .
[0073]
For example, when a Johnson counter having a simpler circuit configuration than a normal counter is used, the processing request identification number is 00B → 01B → 11B → 10B → 00B →... (B indicates that the previous number is a binary number display. ). Further, if a ring counter having a simple circuit configuration is used, 0001B → 0010B → 0100B → 1000B → 0001B →.
[0074]
In each of the above embodiments, the number of processing request identification numbers is four for four processing request sources (DMACs). However, the number of processing request numbers is limited to four if the number is four or more. There is no. For example, the processing request identification number may be set as 0 → 1 → 2 → 3 → 4 → 5 → 6 → 7 → 0 →.
[0075]
Further, as will be described later, when eight process request identification numbers are used for four process request sources, the number of process request sources is limited to eight when changing or redesigning to increase the process request sources. If so, it will be very easy.
[0076]
Hereinafter, a change that increases the number of processing request sources (DMAC) will be described.
[0077]
When the number of processing request sources (DMAC) increases and the number of processing request identification numbers used so far becomes insufficient, the processing request identification number incrementer 22 and the processing request identification number in the DMAC 102 (202) are used. It is necessary to change the processing request identification number incrementer 61 in the control unit 6.
[0078]
When the number of bits required by the new processing request identification number exceeds the number of bits of the processing request identification number used so far, the latch circuit 21, selector 24, matching circuit 23 and logical product in the DMAC 102 (202) The circuits 25 and 27, the flip-flops (FF) 63 and 64 in the processing request identification number control unit 6, and the selector 62 must be matched to the number of bits. Finally, the number of inputs to the OR circuit 104 is adjusted to the number of processing request sources that have increased. In this way, all changes can only be made mechanically.
[0079]
Furthermore, if the increased number of processing request sources does not exceed the number of processing request identification numbers used so far, the number of inputs of the OR circuit 4 is simply adjusted to the increased number of processing request sources. It is only changed as follows.
[0080]
As described above, according to the present invention, processing requests from a plurality of processing request sources can be processed without using a complicated circuit (for example, the arbitration circuit 5 shown in FIG. 8) including a request queue that has been necessary in the past. Since sequential processing can be realized sequentially, it can be made small with a simple configuration. In addition, redesign can be easily performed even when the number of processing request sources is changed.
[0081]
The present invention may be applied to a system composed of a plurality of devices or an apparatus composed of a single device.
[0082]
In the above-described embodiment, the case where the present invention is applied to a digital circuit that executes memory access processing based on memory access processing requests from a plurality of processing request sources has been described. Any digital circuit that controls the original and their processing requests so as to sequentially process them in the order of processing requests can be applied to a circuit that performs processing other than memory access processing.
[0083]
【The invention's effect】
As described above, according to the present invention, processing requests from a plurality of processing request sources can be sequentially processed in the order of processing requests by using a simple circuit configuration without using a complicated circuit including a request queue. In addition, there is an effect that redesign can be easily performed even when the number of processing request sources is changed.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a schematic configuration of a digital circuit showing a first embodiment of the present invention.
FIG. 2 is a block diagram showing a detailed configuration of a processing request identification number control unit shown in FIG.
3 is a block diagram showing a detailed configuration of DMAC (0) to DMAC (3) shown in FIG. 1. FIG.
4 is a timing chart showing the timing of a main signal during processing request processing in the digital circuit showing the first embodiment of the present invention shown in FIGS. 1 to 3; FIG.
FIG. 5 is a timing chart showing the timing of a main signal at the time of processing request processing in the digital circuit showing the first embodiment of the present invention shown in FIGS. 1 to 3;
FIG. 6 is a block diagram showing a schematic configuration of a digital circuit showing a second embodiment of the present invention.
7 is a block diagram showing a detailed configuration of DMAC (0) to DMAC (3) shown in FIG. 6;
FIG. 8 is a block diagram showing a configuration of a conventional digital circuit.
9 is a timing chart showing the timing of a main signal at the time of processing request processing in the conventional digital circuit shown in FIG.
10 is a timing chart showing the timing of the main signal at the time of processing request processing in the conventional digital circuit shown in FIG. 8. FIG.
[Explanation of symbols]
1 Bus controller (Bus Controller)
3 (0) -3 (3) AND circuit
6 Process Request Identification Number Control Unit (Request ID Controller)
21 Processing request identification number latch part (request ID Latch)
22 Process Request Identification Number Incrementer (request ID Incrementer)
23 Matching circuit
24 selector
25 AND circuit
26 Pulse generation circuit
27 AND circuit
61 Process Request Identification Number Incrementer (request ID Incrementer)
62 Selector
63 Flip-flop (FF)
64 Flip-flop (FF)
102 (0) to 102 (3) DMA controller (DMAC)
104 OR circuit
202 (0) to 202 (3) DMA controller (DMAC)

Claims (4)

複数の処理要求手段と、
前記複数の処理要求手段からの処理要求に基づく処理を実行する実行手段と、
前記複数の処理要求手段からの処理要求を制御するための制御手段とを有し、前記複数の処理要求手段からの処理要求に基づく処理の実行順序を制御する制御回路において、
前記複数の処理要求手段及び前記制御手段は信号線を介して数珠繋ぎ状に接続されており、
前記制御手段は、
前記処理要求に基づく処理が前記実行手段により実行されたことを示す終了信号を、前記実行手段から受信する終了信号受信手段と、
前記受信手段が前記終了信号を受信したことに応じて、実行手段が次に処理すべき処理要求を識別するための第1識別番号を更新して前記複数の処理要求手段に出力する第1識別番号出力手段と、
前記複数の処理要求手段による新たな処理要求を識別するための第2識別番号を前記複数の処理要求手段のうち前記制御手段の後段の第1処理要求手段へ出力する第2識別番号出力手段と
前記第2識別番号出力手段により出力された後に前記複数の処理要求手段により転送された前記第2識別番号を受信し、該受信した前記第2識別番号に基づいて前記第2識別番号出力手段が送信すべき前記第2識別番号を更新する更新手段とを有し、
前記第1処理要求手段は、
前記第2識別番号出力手段から出力される前記第2識別番号を受信する第1受信手段と、
前記第1処理要求手段にて前記処理要求が発生した場合に前記第1受信手段により受信された前記第2識別番号をラッチする第1ラッチ手段と、
前記第1処理要求手段にて前記処理要求が発生した場合に前記第1受信手段により受信される前記第2識別番号を更新して前記複数の処理要求手段のうち前記第1処理要求手段の後段の第2処理要求手段に転送し、前記第1処理要求手段にて処理要求が発生していない場合には前記第1受信手段により受信される前記第2識別番号を更新することなく前記第2処理要求手段に転送する第1転送手段と、
前記第1識別番号出力手段により出力された前記第1識別番号を受信する第2受信手段と、
前記第1処理要求手段にて前記処理要求が発生した場合において、前記第1ラッチ手段によりラッチされた前記第2識別番号と前記第2受信手段が受信した前記第1識別番号とが一致した場合に前記処理要求に基づく処理を前記実行手段に実行させるための選択信号を出力する第1選択信号出力手段とを有し、
前記第2処理要求手段は、
前記第1転送手段から転送される前記第2識別番号を受信する第3受信手段と、
前記第2処理要求手段にて前記処理要求が発生した場合に前記第3受信手段により受信された前記第2識別番号をラッチする第2ラッチ手段と、
前記第2処理要求手段にて前記処理要求が発生した場合に前記第3受信手段により受信される前記第2識別番号を更新して前記複数の処理要求手段のうち前記第2処理要求手段の後段の第3処理要求手段に転送し、前記第2処理要求手段にて処理要求が発生していない場合には前記第3受信手段により受信される前記第2識別番号を更新することなく前記第3処理要求手段に転送する第2転送手段と、
前記第1識別番号出力手段により出力された前記第1識別番号を受信する第4受信手段と、
前記第2処理要求手段にて前記処理要求が発生した場合において、前記第2ラッチ手段によりラッチされた前記第2識別番号と前記第4受信手段が受信した前記第1識別番号とが一致した場合に前記処理要求に基づく処理を前記実行手段に実行させるための選択信号を出力する第2選択信号出力手段と、を有することを特徴とする制御回路。
A plurality of processing request means;
Execution means for executing processing based on processing requests from the plurality of processing request means;
A control circuit for controlling processing requests from the plurality of processing requesting units, and for controlling a processing execution order based on the processing requests from the plurality of processing requesting units,
The plurality of processing request means and the control means are connected in a daisy chain via a signal line,
The control means includes
An end signal receiving means for receiving, from the execution means, an end signal indicating that the processing based on the processing request has been executed by the execution means;
In response to receipt of the end signal by the receiving means, a first identification number for updating a first identification number for identifying a processing request to be processed next by the execution means and outputting the first identification number to the plurality of processing request means. Number output means;
A second identification number output means for outputting a second identification number for identifying a new process request by the plurality of process request means to a first process request means downstream of the control means among the plurality of process request means; ,
The second identification number output means receives the second identification number transferred by the plurality of processing request means after being output by the second identification number output means, and the second identification number output means is based on the received second identification number. Updating means for updating the second identification number to be transmitted ,
The first process request means includes
First receiving means for receiving the second identification number output from the second identification number output means;
First latch means for latching the second identification number received by the first receiving means when the processing request is generated by the first processing request means ;
When the processing request is generated by the first processing requesting unit, the second identification number received by the first receiving unit is updated, and a subsequent stage of the first processing requesting unit among the plurality of processing requesting units. To the second processing request means, and when the processing request is not generated by the first processing request means, the second identification number received by the first receiving means is updated without updating the second identification number. First transfer means for transferring to the processing request means;
Second receiving means for receiving the first identification number output by the first identification number output means;
In the case where the processing request by the first processing request unit occurs, when the first identification number said the latched second identification number the second receiving means has received matches by the first latch means And a first selection signal output means for outputting a selection signal for causing the execution means to execute processing based on the processing request.
The second processing request means includes
Third receiving means for receiving the second identification number transferred from the first transferring means;
Second latch means for latching the second identification number received by the third receiving means when the processing request is generated by the second processing request means ;
When the second processing request means generates the processing request, the second identification number received by the third receiving means is updated, and the second processing request means subsequent to the second processing request means. To the third processing request means, and when the second processing request means does not generate a processing request, the third identification number received by the third receiving means is updated without updating the third identification number. Second transfer means for transferring to the processing request means;
Fourth receiving means for receiving the first identification number output by the first identification number output means;
When the processing request is generated by the second processing request unit, the second identification number latched by the second latch unit matches the first identification number received by the fourth receiving unit. And a second selection signal output means for outputting a selection signal for causing the execution means to execute processing based on the processing request.
前記第1選択信号出力手段又は前記第2選択信号出力手段により出力される選択信号に基づいて、前記実行手段に処理を開始させることを特徴とする請求項1記載の制御回路。  2. The control circuit according to claim 1, wherein the execution unit starts processing based on a selection signal output from the first selection signal output unit or the second selection signal output unit. 前記制御手段は、前記第1識別番号と前記第2識別番号とを、同じ値に初期化することを特徴とする請求項1又は2に記載の制御回路。  The control circuit according to claim 1, wherein the control unit initializes the first identification number and the second identification number to the same value. 前記実行手段は、前記複数の処理要求手段からの処理要求に基づいてメモリアクセス処理を実行することを特徴とする請求項1〜3のいずれか1項に記載の制御回路。  The control circuit according to claim 1, wherein the execution unit executes a memory access process based on processing requests from the plurality of processing request units.
JP2002003979A 2002-01-11 2002-01-11 Control circuit Expired - Fee Related JP4174213B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002003979A JP4174213B2 (en) 2002-01-11 2002-01-11 Control circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002003979A JP4174213B2 (en) 2002-01-11 2002-01-11 Control circuit

Publications (3)

Publication Number Publication Date
JP2003208397A JP2003208397A (en) 2003-07-25
JP2003208397A5 JP2003208397A5 (en) 2005-07-28
JP4174213B2 true JP4174213B2 (en) 2008-10-29

Family

ID=27643427

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002003979A Expired - Fee Related JP4174213B2 (en) 2002-01-11 2002-01-11 Control circuit

Country Status (1)

Country Link
JP (1) JP4174213B2 (en)

Also Published As

Publication number Publication date
JP2003208397A (en) 2003-07-25

Similar Documents

Publication Publication Date Title
KR100932359B1 (en) Switch matrix system with multiple bus arbitrations per cycle with high frequency mediator
US6907478B2 (en) Systems and methods optimizing data transfer throughput of a system on chip
US8838862B2 (en) Data transfer device, method of transferring data, and image forming apparatus
US5822595A (en) Method and apparatus for providing an interrupt handler employing a token window scheme
US6763448B1 (en) Microcomputer and microcomputer system
WO2005119465A1 (en) Data processing unit and bus arbitration unit
JP2010282405A (en) Data processing system
US7296175B2 (en) System on a chip bus with automatic pipeline stage insertion for timing closure
JP3954011B2 (en) Method and computer system for communicating between subsystems
US9984014B2 (en) Semiconductor device
US7073003B2 (en) Programmable fixed priority and round robin arbiter for providing high-speed arbitration and bus control method therein
JP4174213B2 (en) Control circuit
JPH06110829A (en) Bus use request arbiter
US7529960B2 (en) Apparatus, system and method for generating self-generated strobe signal for peripheral device
US5548797A (en) Digital clock pulse positioning circuit for delaying a signal input by a fist time duration and a second time duration to provide a positioned clock signal
US7673091B2 (en) Method to hide or reduce access latency of a slow peripheral in a pipelined direct memory access system
JP4182246B2 (en) Bus sharing system and bus sharing method
JP2008059047A (en) Information processing system and control method therefor
JP2000132505A (en) Bus access method and device therefor, and device and system using the bus access method and device
JP4245852B2 (en) Direct memory access device
KR100487218B1 (en) Apparatus and method for interfacing an on-chip bus
JP4124579B2 (en) Bus control system
JP2002342266A (en) Data processor
JP2007172105A (en) Interruption arbitration system and interruption arbitration method
JP2005157929A (en) Semiconductor device

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041213

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070605

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070806

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20080107

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080129

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080219

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080331

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080513

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080709

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080805

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080818

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110822

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120822

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120822

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130822

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees