JP2004038333A - データ転送システム - Google Patents
データ転送システム Download PDFInfo
- Publication number
- JP2004038333A JP2004038333A JP2002191397A JP2002191397A JP2004038333A JP 2004038333 A JP2004038333 A JP 2004038333A JP 2002191397 A JP2002191397 A JP 2002191397A JP 2002191397 A JP2002191397 A JP 2002191397A JP 2004038333 A JP2004038333 A JP 2004038333A
- Authority
- JP
- Japan
- Prior art keywords
- bus
- memory access
- direct memory
- data transfer
- dma
- 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
Images
Landscapes
- Bus Control (AREA)
Abstract
【課題】付加回路を設けたりDMA転送周期をプログラムで考慮することなくデータ転送を効率的に行う。
【解決手段】インターバルレジスタ9に記憶されているDMA動作許可期間毎にDMA動作イネーブル信号がON/OFFされる。バスアービタ13は、ON状態のバス使用要求信号が供給されている間、DMA動作イネーブル信号の状態を調べ、ON状態であればシステムバス14の使用権をDMAコントローラ15に優先的に与え、メモリ11と入出力装置12の間で複数のブロックを継続してデータ転送させる。一方、DMA動作イネーブル信号がOFF状態となると、システムバス14の使用権をCPU10に優先的に与えることによって、DMAデータ転送は中断されると共に、システムバス14の使用権をCPU10に開放する。このときでも、CPU10のシステムバスへのアクセスが無くなれば、DMAコントローラ15がシステムバスを使用できる。
【選択図】 図1
【解決手段】インターバルレジスタ9に記憶されているDMA動作許可期間毎にDMA動作イネーブル信号がON/OFFされる。バスアービタ13は、ON状態のバス使用要求信号が供給されている間、DMA動作イネーブル信号の状態を調べ、ON状態であればシステムバス14の使用権をDMAコントローラ15に優先的に与え、メモリ11と入出力装置12の間で複数のブロックを継続してデータ転送させる。一方、DMA動作イネーブル信号がOFF状態となると、システムバス14の使用権をCPU10に優先的に与えることによって、DMAデータ転送は中断されると共に、システムバス14の使用権をCPU10に開放する。このときでも、CPU10のシステムバスへのアクセスが無くなれば、DMAコントローラ15がシステムバスを使用できる。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、主記憶装置と周辺装置間のデータ転送をダイレクトメモリアクセス(Direct Memory Access:DMA)方式で行うデータ転送システムに関する。
【0002】
【従来の技術】
パーソナルコンピュータやワークステーションなどに利用されているプロセッサでは、一般に、主記憶装置と周辺装置との間のデータ転送にDMA方式を用いている。DMA方式では、CPUはダイレクトメモリアクセス制御装置にデータ転送を要求すれば、主記憶装置と周辺装置との間のデータ転送はダイレクトメモリアクセス制御装置が制御することとなり、CPUはデータ転送に関与する必要がなく、他の処理を行うことができるようになる。
【0003】
DMA方式において、連続するメモリアドレスにわたって一連のデータ転送をシングル転送モードで実行することも可能である。しかし、シングル転送モードでは、1ブロックのデータの転送を終了する度にCPUにバスを開放するため、特にDMA転送するデータ量が大きい場合には、主記憶装置と周辺装置間でのデータ転送を終了するまでに時間がかかり、データ転送を効率的に行えないという問題がある。
【0004】
連続するメモリアドレスにわたって一連のデータ転送を実行する場合のデータ転送を高速化するため、バースト転送モードと呼ばれる技法が知られている。ところで、DMA方式においては、CPUとダイレクトメモリアクセス制御装置とが共有しているバスの取得についてはCPUよりもダイレクトメモリアクセス制御装置に優先権があるが、バースト転送モードでは全ブロックのデータの転送を終了するまでCPUにバスを開放しない。このため、ダイレクトメモリアクセス制御装置がバスの使用権を独占してしまい、CPUが割込み処理にてデータ転送を行うことができず、データを損失してしまうということが生じ得る。
【0005】
そこで、バースト転送モードでデータ転送を行いつつ、CPUにもバスを開放することによって、この種の問題の解消を図った技法が考案されてきている。特開平4−306745に記載されている「半導体メモリ装置」(従来技術1)では、ダイレクトメモリアクセス制御装置は、データ転送中に割込み信号が入ると、DMAによるデータ転送を中断し、CPUに所定の信号を送ってバスを開放する。これにより、CPUが直ちに割り込み処理に取りかかることができる。
【0006】
CPUが割込み処理を行っている間、ダイレクトメモリアクセス制御装置において、DMA実行セットフラグをセット状態のままとしておき、レングスカウンタ,ソースアドレス発生部,ディスティネーションアドレス発生部は、データ転送の中断直前のデータ(パラメータ)を保持し続ける。そして、割込み処理が終了して、CPUからDMA実行指令信号が与えられると、ダイレクトメモリアクセス制御装置の制御部はDMA実行フラグ(ここでは、セット状態)を参照し、このフラグの状態に従って中断直前のパラメータを基にデータ転送を再開する。
【0007】
また、特開2000−90045に記載されている「データ転送システム、ダイレクトメモリアクセス制御装置及び方法、並びに記録媒体」では、ダイレクトメモリアクセス制御装置は、設定したDMA動作許可期間に合わせてDMA動作イネーブル信号を生成し、CPUからON状態のDMA転送要求信号が供給されている間、DMA動作イネーブル信号の状態を調べ、ON状態であればバスの使用権をCPUに対して要求してデータ転送を行う。一方、DMA動作イネーブル信号がOFF状態となると、DMA転送中断信号によりデータ転送を中断すると共に、バスの使用権をCPUに開放する。
【0008】
【発明が解決しようとする課題】
しかしながら、上述の従来技術1では、例えば、センサが一定期間ONしたらとか、複数の条件が真となったらとかいうイベント毎にCPUによる処理が必要な場合には、それを割込み処理として行うには、ハードウェアによる回路を設け、その回路でイベントを認識し、割込み信号としてCPUおよびDMAコントローラに入力する必要があるため、回路が大型となり、高コストとなるという問題がある。一方、割込み処理をソフトウェアで処理するとした場合には、イベントが起こる周期に合わせてDMA転送回数を設定し、この転送回数でデータ転送を終了し、バスをCPUに開放しなくてはならない。このため、プログラムの作成時に、これらの配慮が必要となり、そのプログラムを作成するプログラマに負担がかかるという問題点がある。
【0009】
また、従来技術2では、バスの使用権は、DMA動作イネーブル信号がON状態であればダイレクトメモリアクセス制御装置、DMA動作イネーブル信号がOFF状態であればCPUと定まっているため、DMA動作イネーブル信号がOFF状態でCPUにバスが開放される間は、CPU処理が終了してもDMA転送を行えないので、データ転送の効率化という点で問題がある。
【0010】
本発明は、上記全ての従来技術の問題点を解消するためになされたものであり、データ転送を効率的に行うと共に、DMA転送周期をプログラムで考慮したりしなくてもバスを独占することなくDMA方式でのデータ転送を可能とするデータ転送システムを提供することを目的とする。
【0011】
【課題を解決するための手段】
上記目的を達成するため、本発明のデータ転送システムは、それぞれがバスに接続されたプロセッサと、主記憶装置と、周辺装置と、プロセッサとバスの使用権を競合し主記憶装置と周辺装置との間のバスを介したデータ転送を制御するDMA制御装置とを備えるデータ転送システムにおいて、DMA制御装置が発生するDMAイネーブル信号がオン状態になったと判定したときに、バスの使用権をCPU優先からDMA優先に切り替える手段と、DMAイネーブル信号がオフ状態になったと判定したときに、バスの使用権をDMA優先からCPU優先に切り替える手段とを備えてバスの使用権を調停するバスアービタを設け、DMA制御装置は、所定の周期毎にオン状態とオフ状態とが繰り返されるDMAイネーブル信号を発生するDMAイネーブル信号発生手段と、主記憶装置と周辺装置との間のDMAによるデータ転送が要求されているときに、優先権にしたがってバスの使用権を獲得するバス使用権獲得手段と、バス使用権獲得手段がバスの使用権を獲得しているときに、主記憶装置と周辺装置との間で要求に従ってデータ転送をさせるデータ転送手段を備えることを特徴とする。
【0012】
上記データ転送システムでは、バスアービタは、DMAイネーブル信号に従って、周期的にバスの使用権の優先順位を切り替える。データ転送手段は、DMAイネーブル信号がオン状態になっていれば、バスの使用権がDMA優先となるため、バスの使用権を獲得し続け、複数ブロックのデータ転送を継続して行うことも可能である。このため、主記憶装置と周辺装置との間のデータ転送を効率的に行うことができる。
【0013】
また、DMAイネーブル信号がオフ状態となれば、バスの使用権がプロセッサ優先となるため、一連のデータ転送の途中でプロセッサに割込みが生じたとしても、一連のデータ転送の終了を待つことなく、プロセッサがその割込み処理を行えることとなる。さらに、一連のデータ転送途中でのバスの使用権の開放のため、データ転送の周期を考慮する必要もなく、プログラムの作成が容易になる。そして、DMAイネーブル信号がオフ状態でもプロセッサのアクセスが無くなれば、バスの使用権はDMAコントローラへ切り替えられる。
【0014】
【発明の実施の形態】
以下、添付図面を参照して本発明の実施の形態について説明する。
【0015】
【実施例の構成】
図1は、本発明のデータ転送システムの一実施例を示すブロック図である。図示するように、このデータ転送システムは、システムバス14にそれぞれ接続された、CPU(Central Processing Unit)10と、メモリ11と、入出力装置(以下、「I/O」と記す)12と、バスアービタ13と、DMAコントローラ15とから構成されている。CPU10,バスアービタ13およびDMAコントローラ15はバスインタフェース1を介してシステムバス14に接続される。
【0016】
バスアービタ13は、システムバス14の使用権をCPU10とDMAコントローラ15とのいずれに与えるかを調停する。CPU10は、メモリ11に格納されている命令の一部を格納するキャッシュメモリを有し、DMAコントローラ15がシステムバス14の使用権を獲得しているときでも、このキャッシュメモリ中の命令を実行することができる。CPU10は、所定の命令の実行時、あるいはキャッシュミス発生時などにおいてシステムバス14の使用が必要となる。
【0017】
メモリ11は、半導体メモリなどによって構成され、CPU10が実行するプログラムやプログラムの実行に必要となるデータを格納する。I/O12は、例えば、磁気ディスク装置,プリンタあるいは外部のネットワークとの通信を行う通信装置などによって構成される。
【0018】
バスインタフェース部1は、CPU10からのアクセスにより各レジスタ3,5,7,9のデータをリード/ライトする。バスインタフェース部1は、システムバス14に対しCPU10から受け取ったアドレスへデータをリード/ライトするための制御信号を出力してデータの転送を行う。同様に、DMAコントローラ15から受け取ったアドレスへ転送すべきデータをリード/ライトするための制御信号を出力し、このデータの転送時に、メモリ11またはI/O12から読み出したデータを保持し、また、保持したデータを出力してメモリ11またはI/O12に書き込む。
【0019】
DMAコントローラ15は、バスインタフェース部1を使用してメモリ11とI/O12との間のDMAデータ転送を制御するもので、それぞれ専用のハードウェアによって構成されるアドレス制御部2と、転送アドレスレジスタ3と、カウント制御部4と、転送回数レジスタ5と、DMAユニット制御部6と、制御レジスタ7と、イネーブル制御部8と、インターバルレジスタ9とを備えている。
【0020】
転送アドレスレジスタ3は、DMA転送要求信号TYに先だちバスインタフェース1を介して、CPU10から渡された、転送すべきデータの転送元(メモリ11またはI/O12)のアドレスと、転送先(I/O12またはメモリ11)のアドレスとを格納する。
【0021】
アドレス制御部2は、転送アドレスレジスタ3に格納されているデータの転送元および転送先のアドレスを、データのリード/ライト動作に合わせてバスインタフェース部1に出力する。アドレス制御部2は、転送アドレスレジスタ3に格納されているデータの転送元および転送先のアドレスを、データの転送に合わせて変化(インクリメント/デクリメント)または固定させる。
【0022】
転送回数レジスタ5は、DMA転送要求信号に先だちバスインタフェース部1を介して、CPU10から渡されたリード/ライト動作の回数、すなわち転送すべきデータの個数を格納する。
【0023】
カウント制御部4は、リード/ライト動作の回数、すなわち転送されたデータのブロックの個数をカウントする。カウント制御部4は、カウントしたリード/ライト動作の回数が転送回数レジスタ5に格納されている値と等しくなったときに、データの転送を終了させDMA転送終了信号TSをCPU10に出力する。DMA転送終了信号TSは、後述するDMAユニット制御部6にも供給され、これによりDMAユニット制御部6はバスアービタ13へのDMAバス使用要求信号Y2を取り下げる。
【0024】
制御レジスタ7は、DMA転送要求信号TYに先だってバスインタフェース1を介してCPU10から渡された転送モード(シングル転送モード/バースト転送モード)を格納する。
【0025】
DMAユニット制御部6は、CPU10からのDMA転送要求信号TYを受け付け、制御レジスタ7に格納されている転送モードに従って、メモリ11とI/O12との間のデータ転送を制御する。DMAユニット制御部6は、DMA転送要求信号TYの状態によってデータ転送を行わせるために必要となるシステムバス14の使用権の獲得をバスアービタ13に対して要求する。
【0026】
インターバルレジスタ9は、イネーブル制御部8によって参照されるイネーブル制御ON/OFFビットを有している。インターバルレジスタ9は、システムの初期化時などにCPU10から予め渡されたDMA動作許可周期を格納する。
【0027】
イネーブル制御部8は、インターバルレジスタ9に格納されたDMA動作許可周期とDMA転送要求信号TYに応じてDMA動作イネーブル信号ENをONにする。イネーブル制御部8は、DMAイネーブル信号ENをバスアービタ13に供給し、DMA方式によるデータ転送の期間に制限をかける。イネーブル制御部8は、イネーブル制御ON/OFFビットがONで、インターバルレジスタ9にDMA動作許可周期が格納されているときに、DMA動作イネーブル信号ENをONにする。なお、イネーブル制御ON/OFFビットがOFFの時は、DMA動作イネーブル信号ENはON状態になる。
【0028】
【実施例の動作】
以下、本実施例によるDMAデータ転送動作について、図2のタイミングチャートと図3および図4のフローチャートとを参照して説明する。図3はバスアービタ13、図4はDMAコントローラ15の処理を示す。
【0029】
CPU10は、プログラムを実行すると、DMAコントローラ15のDMAユニット制御部6にDMA転送要求信号TYを送る。また、CPU10は、転送元と転送先のアドレス,リード/ライト動作の回数,転送モードおよびDMA動作許可周期をDMAコントローラ15に送る。これらのデータは、バスインタフェース部1によって、それぞれ対応するレジスタ3,5,7,9に書き込まれる。
【0030】
先ず、ON状態のDMA転送要求信号TYがDMAコントローラ15に入力すると(図4のステップB1でYES)、イネーブル制御部8はDMA動作イネーブル信号ENの生成を開始し(ステップB15)、DMAユニット制御部6はON状態のバス使用要求信号Y2をバスアービタ13に送る(ステップB3)。当初は、DMA動作イネーブル信号ENを生成中ではない(ステップB2でNO)からである。
【0031】
バスアービタ13は、DMAコントローラ15からのバス使用要求信号(以下、「DMAバス使用要求信号」と記す)Y2がONの場合(図3のステップA1でYES)、DMA動作イネーブル信号ENの状態を監視する。そして、DMA動作イネーブル信号ENがONの場合には(ステップA2でYES)、DMAコントローラ15にシステムバス14の使用優先権を付与し、DMAコントローラ15に対するバス使用許可信号(以下、「DMAバス使用許可信号」と記す)K2をONとする(ステップA3)。
【0032】
DMAコントローラ15では、バスアービタ13からのDMAバス使用許可信号K2(ステップA3)はDMAユニット制御部6に入力する。ON状態のDMAバス使用許可信号K2を受け取った(図4のステップB4でYES)DMAユニット制御部6は、DMA動作が終了するまでの間(ステップB8でNO)、アドレス制御部2から転送アドレスをバスインタフェース部1経由でメモリ11およびI/O12に出力し(ステップB5)、1ブロックのデータ転送(ステップB6)を繰り返す。
【0033】
この間、アドレス制御部2は、転送アドレスレジスタ3からデータの転送元および転送先のアドレスを読み出し、バスインタフェース部1に出力する。バスインタフェース部1は、メモリ11とI/O12のうちの転送元アドレスから1ブロック分のデータを、I/O12とメモリ11のうちの転送先アドレスに転送させる。
【0034】
そして、バスインタフェース部1から1ブロック分のデータ転送の終了が伝えられると、アドレス制御部2は、転送アドレスレジスタ3に格納されている転送元および転送先のアドレスを1ブロック分インクリメントする(ステップB7)。なお、場合によってはインクリメントする代わりに、デクリメントしたり、一方が固定とする例もある。また、カウント制御部4に対して、転送回数レジスタ5に格納されているリード/ライト動作の回数をカウントさせる。
【0035】
カウント制御部4は、カウントしたリード/ライト動作の回数と転送回数レジスタ5に格納されているリード/ライト動作の回数とが等しくなったかどうかを調べることによって、転送すべきデータをすべて転送終了したかどうかを判定する(ステップB8)。その結果、転送すべきデータを全て転送し終えていない場合は(ステップB8でNO)、更に、制御レジスタ7に格納されているモードがシングル転送モードであるかどうかを判定する(ステップB9)。そして、シングル転送モードでない場合には(ステップB9でNO)、ステップB1に回帰して上述の処理を繰り返す(ステップB1〜ステップB9)。なお、この場合には、DMA動作イネーブル信号ENは生成中(ステップB2でYES)である。
【0036】
これに対して、シングル転送モードである場合には(ステップB9でYES)、DMAユニット制御部6はイネーブル制御部8によるDMA動作イネーブル信号ENの生成を終了させるとともに(ステップB10)、DMAバス使用要求信号Y2をOFFとしてから(ステップB11)、ステップB1に回帰する。これは、複数ブロックのデータ転送を複数回のシングル転送によって実行するケースである。
【0037】
また、DMA動作が終了すると(ステップB8でYES)、カウント制御部4はON状態のDMA転送終了信号TSをCPU10に出力し(ステップB12)、DMAユニット制御部6はバス使用要求信号Y2をOFFにし(ステップB13)、イネーブル制御部8はDMA動作イネーブル信号ENの生成を終了する(ステップB14)。これにより、バスアービタ13は、システムバス14の使用権をDMAコントローラ15からCPU10に開放する。そして、一連の処理を終了する。
【0038】
一方、DMAバス使用要求信号Y2がOFFの場合は(図3のステップA1でNO)、CPU10にシステムバス14の使用の優先権を付与する。この場合には、CPU10からのバス使用要求信号(以下、「CPUバス使用要求信号」と記す)Y1がONになると(ステップA6でYES)、CPU10に対するバス使用許可信号(以下、「CPUバス使用許可信号」と記す)K1をONとする(ステップA5)。なお、バス使用要求信号Y1がないときは(ステップA6でNOS)、システムバス14は使用されない。
【0039】
また、DMAバス使用要求信号Y2がONであり(図3のステップA1でYES)、かつDMA動作イネーブル信号ENがOFFの場合は(ステップA2でNO)、CPU10にシステムバス14の使用の優先権を付与する。この場合には、DMAコントローラ15はシステムバス14を使用不可であるので、システムバス14の使用権をDMAコントローラ15からCPU10に開放して、バスアービタ13のシステムバス使用権の調停により、DMAコントローラ15がシステムバス14を使用できるまで待機するのである。
【0040】
この状態下で、バス使用要求信号Y1がONの場合(ステップA4でYES)、バス使用許可信号K1をONとする(ステップA5)。CPUバス使用要求信号Y1がないときは(ステップA4でNO)、DMAバス使用許可信号K2がONとされる(ステップA5)。このように、DMAイネーブル信号ENがOFF状態であっても、CPU10からのアクセスが無くなれば、システムバス14の使用権はDMAコントローラ15へ切り替えられるため、データ転送をより一層効率的に行うことができる。
【0041】
次に、システムバス14の使用権がCPU10とDMAコントローラ15とのいずれに与えられるかを、図2のタイミングチャートを参照して時系列的に説明する。
【0042】
先ず、DMA転送要求信号TYがOFF状態であるタイミングt1以前は、CPU10にシステムバス14の使用権が割り当てられている。タイミングt1においてDMA転送要求信号TYがON状態となり、DMAユニット制御部6に入力すると、インターバルレジスタ9にセットされているDMA動作許可周期によって、イネーブル制御部8はDMA動作イネーブル信号ENをON状態にする。これにより、バスアービタ13が、バス使用権をDMA優先に切り替えることによって、システムバス14の使用権がDMAコントローラ15に割り当てられる。
【0043】
DMA動作許可期間が経過するタイミングt2になると、イネーブル制御部8は、DMA動作イネーブル信号ENをOFF状態にする。これにより、バスアービタ13が、バス使用権をCPU優先に切り替えることによってデータ転送を中断すると共に、システムバス14の使用権がCPU10に割り当てられる。再びDMA動作許可期間が経過するタイミングt3になると、イネーブル制御部8は、DMAイネーブル信号ENをON状態にする。これにより、バスアービタ13が、バス使用権をDMA優先に切り替えることによってシステムバス14の使用権がDMAコントローラ15に割り当てられる。
【0044】
同様にして、タイミングt3〜t4の間はDMAコントローラ15優先に、タイミングt4〜t5の間はCPU10優先に、タイミングt5〜t6の間はDMAコントローラ15優先に、それぞれシステムバス14の使用権が割り当てられる。そして、タイミングt6においてリード/ライト動作の回数が規定回数に達すると、カウント制御部4は、DMA転送終了信号TSを出力する。
【0045】
ここで、DMA方式でのデータ転送が行われている期間であるタイミングt1〜t6の間のいずれかのタイミングにおいて、例えば、キャッシュミスなどによってCPU10にバス使用要因が発生したとする。この場合、CPU10は、システムバス14の使用権が割り当てられているタイミングt2〜t3、あるいはタイミングt4〜t5の間にキャッシュリプレースの処理を行うことができる。また、DMA動作許可期間を1ブロックのデータを転送するのに必要な時間の2倍以上に設定することで、タイミングt1〜t2、タイミングt3〜t4、あるいはタイミングt5〜t6のそれぞれの間に複数ブロックのデータを連続して転送することができる。
【0046】
そして、バス使用権がCPU優先となっているタイミングt2〜t3、あるいはタイミングt4〜t5の間であっても、CPU10のシステムバス14へのアクセスが無くなれば、DMAコントローラ15がシステムバス14を使用することも可能であるため、システムバス14を有効に活用できる。図2では、タイミングt7〜t9の間はDMA動作イネーブル信号ENがOFFのため、バス使用権がCPU優先の筈であるが、それまでON状態を維持してきたCPUバス使用要求信号Y1がタイミングt8でOFFとなっっている。このため、ON状態を維持しているDMA転送要求信号TYの存在により、タイミングt8〜t9の間もバスの使用権はDMAとなる。
【0047】
以上説明したように、この実施の形態のコンピュータ装置では、ハードウェア的に付加回路を設けなくても、また、ソフトウェア的にDMA転送周期を考慮しなくても、DMAコントローラ15がメモリ11とI/O12との間でデータをバースト転送している間に、システムバス14の使用権をCPU10に開放することができる。これにより、バーストモードでのデータ転送の間にCPU10に割り込みなどの要因が発生したとしても、CPU10は、データ転送の終了まで待機させられることなく、割り込み処理などの処理を行うことができる。
【0048】
また、DMA動作イネーブル信号ENがON状態である間は、複数ブロックのデータを連続して転送することが可能である。このため、シングル転送に比べて、システムバス14の使用権の獲得と開放に要する時間を全体として短くすることができる。したがって、メモリ11とI/O12との間のデータ転送をシングル転送よりも効率よく行うことができる。
【0049】
なお、上記の実施例では、メモリ11とI/O12との間におけるDMA転送について説明したが、本発明は、メモリとメモリと間のDMA転送にも適用することができる。また、DMA転送要求信号TYはCPU10とI/O12のいずれからも入力し得る。
【0050】
また、上述のバスアービタ13の処理とDMAコントローラ15の処理は、それぞれを構成するコンピュータにおいてプログラムを実行することによって行うことができる。各プログラムの処理内容は、図3と図4のフローチャートに示すとおりである。
【0051】
【発明の効果】
以上説明したように、本発明によれば、バスアービタがDMA動作イネーブル信号に基づいてシステムバスの使用優先権を調停する構成としたため、付加回路を設けたりDMA転送周期をプログラムで考慮することなく、主記憶装置と周辺装置間等のデータ転送を効率的に行うことができるという効果を得ることができる。
【図面の簡単な説明】
【図1】本発明のデータ転送装置の一実施例を示すブロック図
【図2】図1に示した実施例においてシステムバスの使用権の割り当てを示すタイミングチャート
【図3】図1に示した実施例におけるバスアービタの処理を示すフローチャート
【図4】図1に示した実施例におけるDMAコントローラの処理を示すフローチャート
【符号の説明】
1 バスインタフェース部
2 アドレス制御部
3 転送アドレスレジスタ
4 カウント制御部
5 転送回数レジスタ
6 DMAユニット制御部
7 制御レジスタ
8 イネーブル制御部
9 インターバルレジスタ
10 CPU
11 メモリ
12 入出力装置(I/O)
13 バスアービタ
14 システムバス
15 DMAコントローラ
【発明の属する技術分野】
本発明は、主記憶装置と周辺装置間のデータ転送をダイレクトメモリアクセス(Direct Memory Access:DMA)方式で行うデータ転送システムに関する。
【0002】
【従来の技術】
パーソナルコンピュータやワークステーションなどに利用されているプロセッサでは、一般に、主記憶装置と周辺装置との間のデータ転送にDMA方式を用いている。DMA方式では、CPUはダイレクトメモリアクセス制御装置にデータ転送を要求すれば、主記憶装置と周辺装置との間のデータ転送はダイレクトメモリアクセス制御装置が制御することとなり、CPUはデータ転送に関与する必要がなく、他の処理を行うことができるようになる。
【0003】
DMA方式において、連続するメモリアドレスにわたって一連のデータ転送をシングル転送モードで実行することも可能である。しかし、シングル転送モードでは、1ブロックのデータの転送を終了する度にCPUにバスを開放するため、特にDMA転送するデータ量が大きい場合には、主記憶装置と周辺装置間でのデータ転送を終了するまでに時間がかかり、データ転送を効率的に行えないという問題がある。
【0004】
連続するメモリアドレスにわたって一連のデータ転送を実行する場合のデータ転送を高速化するため、バースト転送モードと呼ばれる技法が知られている。ところで、DMA方式においては、CPUとダイレクトメモリアクセス制御装置とが共有しているバスの取得についてはCPUよりもダイレクトメモリアクセス制御装置に優先権があるが、バースト転送モードでは全ブロックのデータの転送を終了するまでCPUにバスを開放しない。このため、ダイレクトメモリアクセス制御装置がバスの使用権を独占してしまい、CPUが割込み処理にてデータ転送を行うことができず、データを損失してしまうということが生じ得る。
【0005】
そこで、バースト転送モードでデータ転送を行いつつ、CPUにもバスを開放することによって、この種の問題の解消を図った技法が考案されてきている。特開平4−306745に記載されている「半導体メモリ装置」(従来技術1)では、ダイレクトメモリアクセス制御装置は、データ転送中に割込み信号が入ると、DMAによるデータ転送を中断し、CPUに所定の信号を送ってバスを開放する。これにより、CPUが直ちに割り込み処理に取りかかることができる。
【0006】
CPUが割込み処理を行っている間、ダイレクトメモリアクセス制御装置において、DMA実行セットフラグをセット状態のままとしておき、レングスカウンタ,ソースアドレス発生部,ディスティネーションアドレス発生部は、データ転送の中断直前のデータ(パラメータ)を保持し続ける。そして、割込み処理が終了して、CPUからDMA実行指令信号が与えられると、ダイレクトメモリアクセス制御装置の制御部はDMA実行フラグ(ここでは、セット状態)を参照し、このフラグの状態に従って中断直前のパラメータを基にデータ転送を再開する。
【0007】
また、特開2000−90045に記載されている「データ転送システム、ダイレクトメモリアクセス制御装置及び方法、並びに記録媒体」では、ダイレクトメモリアクセス制御装置は、設定したDMA動作許可期間に合わせてDMA動作イネーブル信号を生成し、CPUからON状態のDMA転送要求信号が供給されている間、DMA動作イネーブル信号の状態を調べ、ON状態であればバスの使用権をCPUに対して要求してデータ転送を行う。一方、DMA動作イネーブル信号がOFF状態となると、DMA転送中断信号によりデータ転送を中断すると共に、バスの使用権をCPUに開放する。
【0008】
【発明が解決しようとする課題】
しかしながら、上述の従来技術1では、例えば、センサが一定期間ONしたらとか、複数の条件が真となったらとかいうイベント毎にCPUによる処理が必要な場合には、それを割込み処理として行うには、ハードウェアによる回路を設け、その回路でイベントを認識し、割込み信号としてCPUおよびDMAコントローラに入力する必要があるため、回路が大型となり、高コストとなるという問題がある。一方、割込み処理をソフトウェアで処理するとした場合には、イベントが起こる周期に合わせてDMA転送回数を設定し、この転送回数でデータ転送を終了し、バスをCPUに開放しなくてはならない。このため、プログラムの作成時に、これらの配慮が必要となり、そのプログラムを作成するプログラマに負担がかかるという問題点がある。
【0009】
また、従来技術2では、バスの使用権は、DMA動作イネーブル信号がON状態であればダイレクトメモリアクセス制御装置、DMA動作イネーブル信号がOFF状態であればCPUと定まっているため、DMA動作イネーブル信号がOFF状態でCPUにバスが開放される間は、CPU処理が終了してもDMA転送を行えないので、データ転送の効率化という点で問題がある。
【0010】
本発明は、上記全ての従来技術の問題点を解消するためになされたものであり、データ転送を効率的に行うと共に、DMA転送周期をプログラムで考慮したりしなくてもバスを独占することなくDMA方式でのデータ転送を可能とするデータ転送システムを提供することを目的とする。
【0011】
【課題を解決するための手段】
上記目的を達成するため、本発明のデータ転送システムは、それぞれがバスに接続されたプロセッサと、主記憶装置と、周辺装置と、プロセッサとバスの使用権を競合し主記憶装置と周辺装置との間のバスを介したデータ転送を制御するDMA制御装置とを備えるデータ転送システムにおいて、DMA制御装置が発生するDMAイネーブル信号がオン状態になったと判定したときに、バスの使用権をCPU優先からDMA優先に切り替える手段と、DMAイネーブル信号がオフ状態になったと判定したときに、バスの使用権をDMA優先からCPU優先に切り替える手段とを備えてバスの使用権を調停するバスアービタを設け、DMA制御装置は、所定の周期毎にオン状態とオフ状態とが繰り返されるDMAイネーブル信号を発生するDMAイネーブル信号発生手段と、主記憶装置と周辺装置との間のDMAによるデータ転送が要求されているときに、優先権にしたがってバスの使用権を獲得するバス使用権獲得手段と、バス使用権獲得手段がバスの使用権を獲得しているときに、主記憶装置と周辺装置との間で要求に従ってデータ転送をさせるデータ転送手段を備えることを特徴とする。
【0012】
上記データ転送システムでは、バスアービタは、DMAイネーブル信号に従って、周期的にバスの使用権の優先順位を切り替える。データ転送手段は、DMAイネーブル信号がオン状態になっていれば、バスの使用権がDMA優先となるため、バスの使用権を獲得し続け、複数ブロックのデータ転送を継続して行うことも可能である。このため、主記憶装置と周辺装置との間のデータ転送を効率的に行うことができる。
【0013】
また、DMAイネーブル信号がオフ状態となれば、バスの使用権がプロセッサ優先となるため、一連のデータ転送の途中でプロセッサに割込みが生じたとしても、一連のデータ転送の終了を待つことなく、プロセッサがその割込み処理を行えることとなる。さらに、一連のデータ転送途中でのバスの使用権の開放のため、データ転送の周期を考慮する必要もなく、プログラムの作成が容易になる。そして、DMAイネーブル信号がオフ状態でもプロセッサのアクセスが無くなれば、バスの使用権はDMAコントローラへ切り替えられる。
【0014】
【発明の実施の形態】
以下、添付図面を参照して本発明の実施の形態について説明する。
【0015】
【実施例の構成】
図1は、本発明のデータ転送システムの一実施例を示すブロック図である。図示するように、このデータ転送システムは、システムバス14にそれぞれ接続された、CPU(Central Processing Unit)10と、メモリ11と、入出力装置(以下、「I/O」と記す)12と、バスアービタ13と、DMAコントローラ15とから構成されている。CPU10,バスアービタ13およびDMAコントローラ15はバスインタフェース1を介してシステムバス14に接続される。
【0016】
バスアービタ13は、システムバス14の使用権をCPU10とDMAコントローラ15とのいずれに与えるかを調停する。CPU10は、メモリ11に格納されている命令の一部を格納するキャッシュメモリを有し、DMAコントローラ15がシステムバス14の使用権を獲得しているときでも、このキャッシュメモリ中の命令を実行することができる。CPU10は、所定の命令の実行時、あるいはキャッシュミス発生時などにおいてシステムバス14の使用が必要となる。
【0017】
メモリ11は、半導体メモリなどによって構成され、CPU10が実行するプログラムやプログラムの実行に必要となるデータを格納する。I/O12は、例えば、磁気ディスク装置,プリンタあるいは外部のネットワークとの通信を行う通信装置などによって構成される。
【0018】
バスインタフェース部1は、CPU10からのアクセスにより各レジスタ3,5,7,9のデータをリード/ライトする。バスインタフェース部1は、システムバス14に対しCPU10から受け取ったアドレスへデータをリード/ライトするための制御信号を出力してデータの転送を行う。同様に、DMAコントローラ15から受け取ったアドレスへ転送すべきデータをリード/ライトするための制御信号を出力し、このデータの転送時に、メモリ11またはI/O12から読み出したデータを保持し、また、保持したデータを出力してメモリ11またはI/O12に書き込む。
【0019】
DMAコントローラ15は、バスインタフェース部1を使用してメモリ11とI/O12との間のDMAデータ転送を制御するもので、それぞれ専用のハードウェアによって構成されるアドレス制御部2と、転送アドレスレジスタ3と、カウント制御部4と、転送回数レジスタ5と、DMAユニット制御部6と、制御レジスタ7と、イネーブル制御部8と、インターバルレジスタ9とを備えている。
【0020】
転送アドレスレジスタ3は、DMA転送要求信号TYに先だちバスインタフェース1を介して、CPU10から渡された、転送すべきデータの転送元(メモリ11またはI/O12)のアドレスと、転送先(I/O12またはメモリ11)のアドレスとを格納する。
【0021】
アドレス制御部2は、転送アドレスレジスタ3に格納されているデータの転送元および転送先のアドレスを、データのリード/ライト動作に合わせてバスインタフェース部1に出力する。アドレス制御部2は、転送アドレスレジスタ3に格納されているデータの転送元および転送先のアドレスを、データの転送に合わせて変化(インクリメント/デクリメント)または固定させる。
【0022】
転送回数レジスタ5は、DMA転送要求信号に先だちバスインタフェース部1を介して、CPU10から渡されたリード/ライト動作の回数、すなわち転送すべきデータの個数を格納する。
【0023】
カウント制御部4は、リード/ライト動作の回数、すなわち転送されたデータのブロックの個数をカウントする。カウント制御部4は、カウントしたリード/ライト動作の回数が転送回数レジスタ5に格納されている値と等しくなったときに、データの転送を終了させDMA転送終了信号TSをCPU10に出力する。DMA転送終了信号TSは、後述するDMAユニット制御部6にも供給され、これによりDMAユニット制御部6はバスアービタ13へのDMAバス使用要求信号Y2を取り下げる。
【0024】
制御レジスタ7は、DMA転送要求信号TYに先だってバスインタフェース1を介してCPU10から渡された転送モード(シングル転送モード/バースト転送モード)を格納する。
【0025】
DMAユニット制御部6は、CPU10からのDMA転送要求信号TYを受け付け、制御レジスタ7に格納されている転送モードに従って、メモリ11とI/O12との間のデータ転送を制御する。DMAユニット制御部6は、DMA転送要求信号TYの状態によってデータ転送を行わせるために必要となるシステムバス14の使用権の獲得をバスアービタ13に対して要求する。
【0026】
インターバルレジスタ9は、イネーブル制御部8によって参照されるイネーブル制御ON/OFFビットを有している。インターバルレジスタ9は、システムの初期化時などにCPU10から予め渡されたDMA動作許可周期を格納する。
【0027】
イネーブル制御部8は、インターバルレジスタ9に格納されたDMA動作許可周期とDMA転送要求信号TYに応じてDMA動作イネーブル信号ENをONにする。イネーブル制御部8は、DMAイネーブル信号ENをバスアービタ13に供給し、DMA方式によるデータ転送の期間に制限をかける。イネーブル制御部8は、イネーブル制御ON/OFFビットがONで、インターバルレジスタ9にDMA動作許可周期が格納されているときに、DMA動作イネーブル信号ENをONにする。なお、イネーブル制御ON/OFFビットがOFFの時は、DMA動作イネーブル信号ENはON状態になる。
【0028】
【実施例の動作】
以下、本実施例によるDMAデータ転送動作について、図2のタイミングチャートと図3および図4のフローチャートとを参照して説明する。図3はバスアービタ13、図4はDMAコントローラ15の処理を示す。
【0029】
CPU10は、プログラムを実行すると、DMAコントローラ15のDMAユニット制御部6にDMA転送要求信号TYを送る。また、CPU10は、転送元と転送先のアドレス,リード/ライト動作の回数,転送モードおよびDMA動作許可周期をDMAコントローラ15に送る。これらのデータは、バスインタフェース部1によって、それぞれ対応するレジスタ3,5,7,9に書き込まれる。
【0030】
先ず、ON状態のDMA転送要求信号TYがDMAコントローラ15に入力すると(図4のステップB1でYES)、イネーブル制御部8はDMA動作イネーブル信号ENの生成を開始し(ステップB15)、DMAユニット制御部6はON状態のバス使用要求信号Y2をバスアービタ13に送る(ステップB3)。当初は、DMA動作イネーブル信号ENを生成中ではない(ステップB2でNO)からである。
【0031】
バスアービタ13は、DMAコントローラ15からのバス使用要求信号(以下、「DMAバス使用要求信号」と記す)Y2がONの場合(図3のステップA1でYES)、DMA動作イネーブル信号ENの状態を監視する。そして、DMA動作イネーブル信号ENがONの場合には(ステップA2でYES)、DMAコントローラ15にシステムバス14の使用優先権を付与し、DMAコントローラ15に対するバス使用許可信号(以下、「DMAバス使用許可信号」と記す)K2をONとする(ステップA3)。
【0032】
DMAコントローラ15では、バスアービタ13からのDMAバス使用許可信号K2(ステップA3)はDMAユニット制御部6に入力する。ON状態のDMAバス使用許可信号K2を受け取った(図4のステップB4でYES)DMAユニット制御部6は、DMA動作が終了するまでの間(ステップB8でNO)、アドレス制御部2から転送アドレスをバスインタフェース部1経由でメモリ11およびI/O12に出力し(ステップB5)、1ブロックのデータ転送(ステップB6)を繰り返す。
【0033】
この間、アドレス制御部2は、転送アドレスレジスタ3からデータの転送元および転送先のアドレスを読み出し、バスインタフェース部1に出力する。バスインタフェース部1は、メモリ11とI/O12のうちの転送元アドレスから1ブロック分のデータを、I/O12とメモリ11のうちの転送先アドレスに転送させる。
【0034】
そして、バスインタフェース部1から1ブロック分のデータ転送の終了が伝えられると、アドレス制御部2は、転送アドレスレジスタ3に格納されている転送元および転送先のアドレスを1ブロック分インクリメントする(ステップB7)。なお、場合によってはインクリメントする代わりに、デクリメントしたり、一方が固定とする例もある。また、カウント制御部4に対して、転送回数レジスタ5に格納されているリード/ライト動作の回数をカウントさせる。
【0035】
カウント制御部4は、カウントしたリード/ライト動作の回数と転送回数レジスタ5に格納されているリード/ライト動作の回数とが等しくなったかどうかを調べることによって、転送すべきデータをすべて転送終了したかどうかを判定する(ステップB8)。その結果、転送すべきデータを全て転送し終えていない場合は(ステップB8でNO)、更に、制御レジスタ7に格納されているモードがシングル転送モードであるかどうかを判定する(ステップB9)。そして、シングル転送モードでない場合には(ステップB9でNO)、ステップB1に回帰して上述の処理を繰り返す(ステップB1〜ステップB9)。なお、この場合には、DMA動作イネーブル信号ENは生成中(ステップB2でYES)である。
【0036】
これに対して、シングル転送モードである場合には(ステップB9でYES)、DMAユニット制御部6はイネーブル制御部8によるDMA動作イネーブル信号ENの生成を終了させるとともに(ステップB10)、DMAバス使用要求信号Y2をOFFとしてから(ステップB11)、ステップB1に回帰する。これは、複数ブロックのデータ転送を複数回のシングル転送によって実行するケースである。
【0037】
また、DMA動作が終了すると(ステップB8でYES)、カウント制御部4はON状態のDMA転送終了信号TSをCPU10に出力し(ステップB12)、DMAユニット制御部6はバス使用要求信号Y2をOFFにし(ステップB13)、イネーブル制御部8はDMA動作イネーブル信号ENの生成を終了する(ステップB14)。これにより、バスアービタ13は、システムバス14の使用権をDMAコントローラ15からCPU10に開放する。そして、一連の処理を終了する。
【0038】
一方、DMAバス使用要求信号Y2がOFFの場合は(図3のステップA1でNO)、CPU10にシステムバス14の使用の優先権を付与する。この場合には、CPU10からのバス使用要求信号(以下、「CPUバス使用要求信号」と記す)Y1がONになると(ステップA6でYES)、CPU10に対するバス使用許可信号(以下、「CPUバス使用許可信号」と記す)K1をONとする(ステップA5)。なお、バス使用要求信号Y1がないときは(ステップA6でNOS)、システムバス14は使用されない。
【0039】
また、DMAバス使用要求信号Y2がONであり(図3のステップA1でYES)、かつDMA動作イネーブル信号ENがOFFの場合は(ステップA2でNO)、CPU10にシステムバス14の使用の優先権を付与する。この場合には、DMAコントローラ15はシステムバス14を使用不可であるので、システムバス14の使用権をDMAコントローラ15からCPU10に開放して、バスアービタ13のシステムバス使用権の調停により、DMAコントローラ15がシステムバス14を使用できるまで待機するのである。
【0040】
この状態下で、バス使用要求信号Y1がONの場合(ステップA4でYES)、バス使用許可信号K1をONとする(ステップA5)。CPUバス使用要求信号Y1がないときは(ステップA4でNO)、DMAバス使用許可信号K2がONとされる(ステップA5)。このように、DMAイネーブル信号ENがOFF状態であっても、CPU10からのアクセスが無くなれば、システムバス14の使用権はDMAコントローラ15へ切り替えられるため、データ転送をより一層効率的に行うことができる。
【0041】
次に、システムバス14の使用権がCPU10とDMAコントローラ15とのいずれに与えられるかを、図2のタイミングチャートを参照して時系列的に説明する。
【0042】
先ず、DMA転送要求信号TYがOFF状態であるタイミングt1以前は、CPU10にシステムバス14の使用権が割り当てられている。タイミングt1においてDMA転送要求信号TYがON状態となり、DMAユニット制御部6に入力すると、インターバルレジスタ9にセットされているDMA動作許可周期によって、イネーブル制御部8はDMA動作イネーブル信号ENをON状態にする。これにより、バスアービタ13が、バス使用権をDMA優先に切り替えることによって、システムバス14の使用権がDMAコントローラ15に割り当てられる。
【0043】
DMA動作許可期間が経過するタイミングt2になると、イネーブル制御部8は、DMA動作イネーブル信号ENをOFF状態にする。これにより、バスアービタ13が、バス使用権をCPU優先に切り替えることによってデータ転送を中断すると共に、システムバス14の使用権がCPU10に割り当てられる。再びDMA動作許可期間が経過するタイミングt3になると、イネーブル制御部8は、DMAイネーブル信号ENをON状態にする。これにより、バスアービタ13が、バス使用権をDMA優先に切り替えることによってシステムバス14の使用権がDMAコントローラ15に割り当てられる。
【0044】
同様にして、タイミングt3〜t4の間はDMAコントローラ15優先に、タイミングt4〜t5の間はCPU10優先に、タイミングt5〜t6の間はDMAコントローラ15優先に、それぞれシステムバス14の使用権が割り当てられる。そして、タイミングt6においてリード/ライト動作の回数が規定回数に達すると、カウント制御部4は、DMA転送終了信号TSを出力する。
【0045】
ここで、DMA方式でのデータ転送が行われている期間であるタイミングt1〜t6の間のいずれかのタイミングにおいて、例えば、キャッシュミスなどによってCPU10にバス使用要因が発生したとする。この場合、CPU10は、システムバス14の使用権が割り当てられているタイミングt2〜t3、あるいはタイミングt4〜t5の間にキャッシュリプレースの処理を行うことができる。また、DMA動作許可期間を1ブロックのデータを転送するのに必要な時間の2倍以上に設定することで、タイミングt1〜t2、タイミングt3〜t4、あるいはタイミングt5〜t6のそれぞれの間に複数ブロックのデータを連続して転送することができる。
【0046】
そして、バス使用権がCPU優先となっているタイミングt2〜t3、あるいはタイミングt4〜t5の間であっても、CPU10のシステムバス14へのアクセスが無くなれば、DMAコントローラ15がシステムバス14を使用することも可能であるため、システムバス14を有効に活用できる。図2では、タイミングt7〜t9の間はDMA動作イネーブル信号ENがOFFのため、バス使用権がCPU優先の筈であるが、それまでON状態を維持してきたCPUバス使用要求信号Y1がタイミングt8でOFFとなっっている。このため、ON状態を維持しているDMA転送要求信号TYの存在により、タイミングt8〜t9の間もバスの使用権はDMAとなる。
【0047】
以上説明したように、この実施の形態のコンピュータ装置では、ハードウェア的に付加回路を設けなくても、また、ソフトウェア的にDMA転送周期を考慮しなくても、DMAコントローラ15がメモリ11とI/O12との間でデータをバースト転送している間に、システムバス14の使用権をCPU10に開放することができる。これにより、バーストモードでのデータ転送の間にCPU10に割り込みなどの要因が発生したとしても、CPU10は、データ転送の終了まで待機させられることなく、割り込み処理などの処理を行うことができる。
【0048】
また、DMA動作イネーブル信号ENがON状態である間は、複数ブロックのデータを連続して転送することが可能である。このため、シングル転送に比べて、システムバス14の使用権の獲得と開放に要する時間を全体として短くすることができる。したがって、メモリ11とI/O12との間のデータ転送をシングル転送よりも効率よく行うことができる。
【0049】
なお、上記の実施例では、メモリ11とI/O12との間におけるDMA転送について説明したが、本発明は、メモリとメモリと間のDMA転送にも適用することができる。また、DMA転送要求信号TYはCPU10とI/O12のいずれからも入力し得る。
【0050】
また、上述のバスアービタ13の処理とDMAコントローラ15の処理は、それぞれを構成するコンピュータにおいてプログラムを実行することによって行うことができる。各プログラムの処理内容は、図3と図4のフローチャートに示すとおりである。
【0051】
【発明の効果】
以上説明したように、本発明によれば、バスアービタがDMA動作イネーブル信号に基づいてシステムバスの使用優先権を調停する構成としたため、付加回路を設けたりDMA転送周期をプログラムで考慮することなく、主記憶装置と周辺装置間等のデータ転送を効率的に行うことができるという効果を得ることができる。
【図面の簡単な説明】
【図1】本発明のデータ転送装置の一実施例を示すブロック図
【図2】図1に示した実施例においてシステムバスの使用権の割り当てを示すタイミングチャート
【図3】図1に示した実施例におけるバスアービタの処理を示すフローチャート
【図4】図1に示した実施例におけるDMAコントローラの処理を示すフローチャート
【符号の説明】
1 バスインタフェース部
2 アドレス制御部
3 転送アドレスレジスタ
4 カウント制御部
5 転送回数レジスタ
6 DMAユニット制御部
7 制御レジスタ
8 イネーブル制御部
9 インターバルレジスタ
10 CPU
11 メモリ
12 入出力装置(I/O)
13 バスアービタ
14 システムバス
15 DMAコントローラ
Claims (6)
- それぞれがバスに接続されたプロセッサと、主記憶装置と、周辺装置と、前記プロセッサと前記バスの使用権を競合し前記主記憶装置と前記周辺装置との間の前記バスを介したデータ転送を制御するダイレクトメモリアクセス制御装置とを備えるデータ転送システムにおいて、
前記ダイレクトメモリアクセス制御装置が発生するダイレクトメモリアクセスイネーブル信号がオン状態になったと判定したときに、前記バスの使用権をCPU優先からDMA優先に切り替える手段と、
前記ダイレクトメモリアクセスイネーブル信号がオフ状態になったと判定したときに、前記バスの使用権をDMA優先からCPU優先に切り替える手段とを備えて前記バスの使用権を調停するバスアービタを設け、
前記ダイレクトメモリアクセス制御装置は、
所定の周期毎にオン状態とオフ状態とが繰り返されるダイレクトメモリアクセスイネーブル信号を発生するダイレクトメモリアクセスイネーブル信号発生手段と、
前記主記憶装置と前記周辺装置との間のダイレクトメモリアクセスによるデータ転送が外部から要求されているときに、前記優先権にしたがって前記バスの使用権を獲得するバス使用権獲得手段と、
前記バス使用権獲得手段が前記バスの使用権を獲得しているときに、前記主記憶装置と前記周辺装置との間で要求に従ってデータ転送をさせるデータ転送手段を備えることを特徴とするデータ転送システム。 - 前記ダイレクトメモリアクセスイネーブル信号の所定の周期は、前記主記憶装置と前記周辺装置との間で1ブロックのデータを転送するのに必要な期間の少なくとも2倍あり、
前記データ転送手段は、前記バス使用権獲得手段が前記バスの使用権を獲得している間、複数のブロックのデータ転送を継続して行わせることを特徴とする請求項1に記載のデータ転送システム。 - 前記ダイレクトメモリアクセスイネーブル信号のオン状態とオフ状態との繰返し周期を外部から受け取る周期受取手段と、
前記周期受取手段が受け取った前記繰返し周期を記憶する周期記憶手段とを備え、
前記ダイレクトメモリアクセスイネーブル信号発生手段は、前記周期記憶手段に記憶されている前記繰返し周期に従ってオン状態とオフ状態とが繰り返される前記ダイレクトメモリアクセスイネーブル信号を発生することを特徴とする請求項1または請求項2に記載のデータ転送システム。 - プロセッサとバスの使用権を競合し主記憶装置と周辺装置との間のバスを介したデータ転送を制御するダイレクトメモリアクセス制御方法であって、
所定の周期毎にオン状態とオフ状態とが繰り返されるダイレクトメモリアクセスイネーブル信号を発生する手順と、
前記ダイレクトメモリアクセスイネーブル信号がオン状態になったと判定したときに、前記バスの使用権をCPU優先からDMA優先に切り替える手順と、
前記ダイレクトメモリアクセスイネーブル信号がオフ状態になったと判定したときに、前記バスの使用権をDMA優先からCPU優先に切り替える手順と、
前記主記憶装置と前記周辺装置との間のダイレクトメモリアクセスによるデータ転送が要求されているときに、前記優先権にしたがって前記バスの使用権を獲得する手順と、
前記バスの使用権を獲得しているときに、前記主記憶装置と前記周辺装置との間で要求に従ってデータ転送をさせる手順とを含むことを特徴とするダイレクトメモリアクセス制御方法。 - プロセッサとダイレクトメモリアクセス制御装置との間におけるバス使用権を調停するバスアービタを構成するコンピュータで実行されるプログラムであって、
前記ダイレクトメモリアクセス制御装置からのバス使用要求の有無を判定するステップと、
前記ダイレクトメモリアクセス制御装置からのバス使用要求があるときに、前記ダイレクトメモリアクセス制御装置が発生するダイレクトメモリアクセスイネーブル信号がオン状態であるかオフ状態であるかを判定するステップと、
前記ダイレクトメモリアクセス制御装置からのバス使用要求が無いか、または前記ダイレクトメモリアクセスイネーブル信号がオフ状態であるときに、前記プロセッサからのバス使用要求の有無を判定するステップと、
前記ダイレクトメモリアクセスイネーブル信号がオン状態であるか、または前記プロセッサからのバス使用要求が無いときに、前記ダイレクトメモリアクセス制御装置に前記バスの使用を許可するステップと、
前記プロセッサからのバス使用要求があるときに前記プロセッサに前記バスの使用を許可するステップとを有することを特徴とするプログラム。 - プロセッサとの間でバスの使用権を競合しバスアービタによる調停の下に前記バスを介したデータ転送を制御するダイレクトメモリアクセス制御装置を構成するコンピュータで実行されるプログラムであって、
データ転送要求があると前記バスアービタへのバス使用要求信号をオンにするステップと、
前記データ転送要求時に設定されるダイレクトメモリアクセス動作許可周期で前記バスアービタへのダイレクトメモリアクセス動作イネーブル信号をオン状態にするステップと、
前記バスアービタからのバス使用許可信号がオン状態になると前記データ転送を実行するステップと、
データ転送が終了すると前記バス使用要求信号をオフ状態にするステップとを有することを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002191397A JP2004038333A (ja) | 2002-06-28 | 2002-06-28 | データ転送システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002191397A JP2004038333A (ja) | 2002-06-28 | 2002-06-28 | データ転送システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004038333A true JP2004038333A (ja) | 2004-02-05 |
Family
ID=31700987
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002191397A Pending JP2004038333A (ja) | 2002-06-28 | 2002-06-28 | データ転送システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004038333A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006059303A (ja) * | 2004-08-24 | 2006-03-02 | Oki Electric Ind Co Ltd | コンピュータシステム |
JP2012003654A (ja) * | 2010-06-21 | 2012-01-05 | Fujitsu Semiconductor Ltd | データ処理システム |
-
2002
- 2002-06-28 JP JP2002191397A patent/JP2004038333A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006059303A (ja) * | 2004-08-24 | 2006-03-02 | Oki Electric Ind Co Ltd | コンピュータシステム |
JP2012003654A (ja) * | 2010-06-21 | 2012-01-05 | Fujitsu Semiconductor Ltd | データ処理システム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7350004B2 (en) | Resource management device | |
US7581054B2 (en) | Data processing system | |
JP5498505B2 (ja) | データバースト間の競合の解決 | |
JP2002278827A (ja) | 共通メモリのメモリ管理システム | |
JP5578713B2 (ja) | 情報処理装置 | |
KR100708096B1 (ko) | 버스 시스템 및 그 실행 순서 조정방법 | |
JP2007219816A (ja) | マルチプロセッサシステム | |
JP2007172112A (ja) | メモリコントローラ | |
JP2002163228A (ja) | 多重コアdsp装置のための外部バス裁定技術 | |
JP2009116702A (ja) | 半導体集積回路 | |
JP2004038333A (ja) | データ転送システム | |
JP2006079394A (ja) | データ処理装置 | |
JP4151362B2 (ja) | バス調停方式、データ転送装置、及びバス調停方法 | |
WO1992006432A1 (en) | Device for controlling bus | |
JPH10320349A (ja) | プロセッサ及び当該プロセッサを用いるデータ転送システム | |
JP4327081B2 (ja) | メモリアクセス制御回路 | |
JP3205992B2 (ja) | ダイレクト・メモリ・アクセス転送制御装置 | |
JP3094944B2 (ja) | アービトレーション方法及びその装置 | |
WO2002093392A1 (fr) | Processeur de donnees | |
JP2000090045A (ja) | データ転送システム、ダイレクトメモリアクセス制御装置及び方法、並びに記録媒体 | |
JP2010113414A (ja) | マルチコアシステム、スレッドスケジューリング方法、プログラム、記憶媒体 | |
JP2004118298A (ja) | データ処理制御装置 | |
JP2000315187A (ja) | メモリ制御装置とメモリ制御方法とその記録媒体 | |
JP2004110742A (ja) | Dmaコントローラ | |
JP2004145593A (ja) | ダイレクトメモリアクセス装置およびバスアービトレーション制御装置、ならびにそれらの制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Effective date: 20050513 Free format text: JAPANESE INTERMEDIATE CODE: A621 |
|
A977 | Report on retrieval |
Effective date: 20080303 Free format text: JAPANESE INTERMEDIATE CODE: A971007 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080328 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080716 |