JP2004287654A - Dma転送装置 - Google Patents
Dma転送装置 Download PDFInfo
- Publication number
- JP2004287654A JP2004287654A JP2003076972A JP2003076972A JP2004287654A JP 2004287654 A JP2004287654 A JP 2004287654A JP 2003076972 A JP2003076972 A JP 2003076972A JP 2003076972 A JP2003076972 A JP 2003076972A JP 2004287654 A JP2004287654 A JP 2004287654A
- Authority
- JP
- Japan
- Prior art keywords
- dma
- dma transfer
- cpu
- data
- transfer
- 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
【課題】1回のDMA転送の起動により複数回のDMA転送を実行し、かつCPUのポーリングによらずに、複数回のDMA転送の終了をCPUに通知すること。
【解決手段】データを記憶するRAM2と、RAM2にアクセスしてDMA転送をおこなうDMAコントローラ1と、DMAコントローラ1に内蔵され、DMAコントローラ1による1回のDMA転送の対象となるデータの先頭アドレスおよびデータ長をそれぞれ格納する複数のレジスタよりなる起動レジスタ群11と、起動レジスタ群11にアクセスして前記先頭アドレスおよび前記データ長を保存するとともに、DMA転送の起動を決定するCPU3と、DMAコントローラ1に内蔵され、複数回のDMA転送の終了後に、CPU3に対して割り込みを発生する割り込み発生部12と、を具備する。
【選択図】 図1
【解決手段】データを記憶するRAM2と、RAM2にアクセスしてDMA転送をおこなうDMAコントローラ1と、DMAコントローラ1に内蔵され、DMAコントローラ1による1回のDMA転送の対象となるデータの先頭アドレスおよびデータ長をそれぞれ格納する複数のレジスタよりなる起動レジスタ群11と、起動レジスタ群11にアクセスして前記先頭アドレスおよび前記データ長を保存するとともに、DMA転送の起動を決定するCPU3と、DMAコントローラ1に内蔵され、複数回のDMA転送の終了後に、CPU3に対して割り込みを発生する割り込み発生部12と、を具備する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、DMA転送装置に関し、特に表示部、印刷部および撮像部などのハードウェア資源を有し、画像情報のデジタル処理をおこなうデジタル複写機、スキャナ、プリンタまたはファクシミリなどのサービスに必要となる共通的な画像処理、転送装置におけるDMA転送装置に関する。
【0002】
【従来の技術】
従来のDMA転送装置では、複数回のDMA(ダイレクトメモリアクセス)転送をおこなう場合、DMAコントローラは、1回のDMA転送が終わるごとにフラグを立てて、DMA転送の終了をCPUに知らせ、CPUからの再度のDMA起動を待機していた。CPUは、DMAコントローラにDMA転送の起動命令を発行した後、前記フラグを見にいくことにより、1回のDMA転送の終了を知り、再びDMAコントローラにDMA転送の起動命令を発行していた。
【0003】
しかし、上述したようなDMA転送方式では、CPUはフラグレジスタをポーリングし、ループ処理などにより常時前記フラグを読み出す必要がある。そのため、CPUがその他の処理に割り当てることができる時間が短くなり、CPUの処理効率が悪くなってしまう。また、1回のDMA転送ごとにCPUからの起動を待つため、複数回分のDMA転送の速度は遅くなってしまう。
【0004】
そこで、複数回のDMA転送時に、その複数回分のDMA転送に必要な先頭アドレスとデータ長の情報を、複数のレジスタに設定しておき、1回のDMA起動命令に基づいて複数回のDMA転送を実行するようにしたDMAコントローラが公知である(特許文献1参照。)。この特許文献1に開示されたDMAコントローラによれば、CPUの負担を軽減し、より速いDMA転送を実現することができる。
【0005】
【特許文献1】
特開平11−134286号公報
【0006】
【発明が解決しようとする課題】
しかしながら、前記特許文献1に開示された技術では、CPUに複数回のDMA転送の終了を知らせる手段としてフラグを用いているため、CPUはフラグレジスタに対してポーリングをおこなう必要があり、CPUの負担が十分に軽減されているとはいえないという問題点があった。
【0007】
本発明は、上記問題点を解決するためになされたもので、1回のDMA転送の起動により複数回のDMA転送を実行し、かつCPUのポーリングによらずに、複数回のDMA転送の終了をCPUに通知するDMA転送装置を提供することを目的とする。
【0008】
【課題を解決するための手段】
上述した課題を解決し、目的を達成するため、請求項1に記載の発明にかかるDMA転送装置は、データを記憶するメインメモリと、前記メインメモリにアクセスしてDMA転送をおこなうDMA制御手段と、前記DMA制御手段に内蔵され、前記DMA制御手段による1回のDMA転送の対象となるデータを特定する情報をそれぞれ格納する複数のレジスタよりなる起動レジスタ群と、前記起動レジスタ群にアクセスしてDMA転送の対象となるデータを特定する情報を保存するとともに、DMA転送の起動を決定するCPUと、前記DMA制御手段に内蔵され、複数回のDMA転送の終了後に、前記CPUに対して割り込みを発生する割り込み発生手段と、を具備することを特徴とする。
【0009】
この請求項1に記載の発明によれば、CPUが起動レジスタ群の複数のレジスタに、複数回のDMA転送をおこなうために必要な、DMA転送の対象となるデータを特定する情報をそれぞれ格納し、DMA転送の起動を決定すると、一度の起動で、複数のブロックのDMA転送が連続しておこなわれる。また、複数回のDMA転送が終了すると、CPUに対して割り込みが発生する。
【0010】
また、請求項2に記載の発明にかかるDMA転送装置は、データを記憶するメインメモリと、前記メインメモリにアクセスしてDMA転送をおこなうDMA制御手段と、前記DMA制御手段に内蔵され、前記DMA制御手段による1回のDMA転送の対象となるデータを特定する情報をそれぞれ格納する複数のレジスタよりなる起動レジスタ群と、前記起動レジスタ群にアクセスしてDMA転送の対象となるデータを特定する情報を保存するとともに、複数回のDMA転送の起動を決定するCPUと、前記DMA制御手段に内蔵され、1回のDMA転送が終了するごとに、前記CPUに対して割り込みを発生する割り込み発生手段と、を具備することを特徴とする。
【0011】
この請求項2に記載の発明によれば、CPUが起動レジスタ群の複数のレジスタに、複数回のDMA転送をおこなうために必要な、DMA転送の対象となるデータを特定する情報をそれぞれ格納し、DMA転送の起動を決定すると、一度の起動で、複数のブロックのDMA転送が連続しておこなわれる。また、1回のDMA転送が終了するごとに、CPUに対して割り込みが発生する。
【0012】
また、請求項3に記載の発明にかかるDMA転送装置は、請求項1または2に記載の発明において、前記起動レジスタ群はFIFO形式のレジスタ群であることを特徴とする。
【0013】
この請求項3に記載の発明によれば、FIFO形式の起動レジスタ群に、DMA転送の対象となるデータを特定する情報が格納されると、自動的にDMA転送が開始される。そして、その実行中のDMA動作が完全に終了する前に、起動レジスタ群に、新たにDMA転送の対象となるデータを特定する情報が格納されると、実行中のDMA動作を完全に終了させることなく、引き続きつぎのDMA起動がおこなわれる。
【0014】
【発明の実施の形態】
以下に添付図面を参照しながら、本発明にかかるDMA転送装置の好適な実施の形態を詳細に説明する。
【0015】
図1は、本発明にかかるDMA転送装置の構成の一例を示すブロック図である。図1において、符号1は、DMA制御手段としての機能を有するDMAコントローラである。符号2は、メインメモリとなるRAM(ランダム・アクセス・メモリ)である。符号3はCPU(中央処理装置)であり、符号4は、CPU3で実行されるプログラムを格納したROM(リード・オンリー・メモリ)である。符号5はメモリコントローラであり、符号6はI/Oデバイス(入出力装置)である。
【0016】
DMAコントローラ1、CPU3、ROM4およびメモリコントローラ5は、第1のバス7を介して互いに接続されている。RAM2は、第2のバス8を介してメモリコントローラ5に接続されている。I/Oデバイス6は、第3のバス9を介してDMAコントローラ1に接続されている。
【0017】
RAM2とI/Oデバイス6との間のデータの授受は、DMAコントローラ1により制御される。すなわち、DMAコントローラ1は、メモリコントローラ5を介してRAM2からデータを読み出し、そのデータをI/Oデバイス6へDMA転送する。また、DMAコントローラ1は、I/Oデバイス6から供給されたデータを、メモリコントローラ5を介してRAM2へDMA転送し、そのデータをRAM2に書き込む。
【0018】
また、DMAコントローラ1は、起動レジスタ群11と、割り込み発生手段としての機能を有する割り込み発生部12を備えている。図2は、起動レジスタ群11とRAM2との対応関係を模式的に示すブロック図である。図2に示すように、起動レジスタ群11は、第1の先頭アドレスレジスタ13および第1のデータ長レジスタ14よりなる第1ブロックのレジスタ、第2の先頭アドレスレジスタ15および第2のデータ長レジスタ16よりなる第2ブロックのレジスタ、第3の先頭アドレスレジスタ17および第3のデータ長レジスタ18よりなる第3ブロックのレジスタ、・・・を備えている。
【0019】
第1の先頭アドレスレジスタ13には、RAM2の第1のデータバッファ21の先頭アドレスが指定される。第1のデータ長レジスタ14には、第1のデータバッファ21から読み出されるデータの長さが指定される。第2の先頭アドレスレジスタ15および第2のデータ長レジスタ16には、それぞれRAM2の第2のデータバッファ22の先頭アドレスおよびデータ長が指定される。第3の先頭アドレスレジスタ17および第3のデータ長レジスタ18には、それぞれRAM2の第3のデータバッファ23の先頭アドレスおよびデータ長が指定される。以下、図示省略するが、同様である。
【0020】
つぎに、DMAコントローラ1により実行されるDMA転送処理の実施例1を、図3を参照しながら説明する。実施例1では、割り込み発生部12は、複数回のDMA転送の終了後に、CPU3に対して割り込みを発生する機能を備えている。なお、以下の説明では、Nを2以上の整数とする。
【0021】
DMA転送処理が開始されると、まず、CPU3により、起動レジスタ群11内のN個のブロックのレジスタに、それぞれRAM2のN個のデータバッファ21,22,23,・・・に対応する先頭アドレスとデータ長が設定される(ステップS31)。ついで、CPU3からDMA転送開始の命令が発行される。
【0022】
DMAコントローラ1は、DMA転送開始命令を受け取ると(ステップS32)、第1の先頭アドレスレジスタ13と第1のデータ長レジスタ14の格納値に基づいて、第1のデータバッファ21から所望の長さのデータを読み出し、そのデータをI/Oデバイス6へDMA転送する。つづいて、DMAコントローラ1は、第2の先頭アドレスレジスタ15と第2のデータ長レジスタ16の格納値に基づいて、第2のデータバッファ22から所望の長さのデータを読み出し、そのデータをI/Oデバイス6へDMA転送する。
【0023】
このようにして、DMAコントローラ1は、RAM2のN個のデータバッファ21,22,23,・・・のデータをI/Oデバイス6へDMA転送する(ステップS33)。N回のDMA転送が完了すると、DMAコントローラ1は、CPU3に対して割り込みを発生して転送終了を通知し(ステップS34)、DMA転送処理を終了する。
【0024】
つぎに、DMAコントローラ1により実行されるDMA転送処理の実施例2を、図4を参照しながら説明する。実施例2では、割り込み発生部12は、DMA転送が1回終了するごとに、CPU3に対して割り込みを発生する機能を備えている。
【0025】
DMA転送処理が開始されると、まず、CPU3により、起動レジスタ群11内のN個のブロックのレジスタに、それぞれRAM2のN個のデータバッファ21,22,23,・・・に対応する先頭アドレスとデータ長が設定される(ステップS41)。ついで、CPU3からDMA転送開始の命令が発行される。
【0026】
DMAコントローラ1は、DMA転送開始命令を受け取ると(ステップS42)、第1の先頭アドレスレジスタ13と第1のデータ長レジスタ14の格納値に基づいて、第1のデータバッファ21から所望の長さのデータを読み出し、そのデータをI/Oデバイス6へDMA転送する(ステップS43)。そして、DMAコントローラ1は、N個のブロック転送が完了するまで(ステップS44:NO)、CPU3に対して割り込みを発生して、1回のDMA転送が終了したことを通知する(ステップS46)。
【0027】
ついで、DMAコントローラ1は、第2の先頭アドレスレジスタ15と第2のデータ長レジスタ16の格納値に基づいて、第2のデータバッファ22から所望の長さのデータを読み出し、そのデータをI/Oデバイス6へDMA転送する(ステップS43)。そして、DMAコントローラ1は、N個のブロック転送が完了するまで(ステップS44:NO)、CPU3に対して割り込みを発生する(ステップS46)。
【0028】
このように、DMAコントローラ1は、1回のDMA転送と割り込みの発生を繰り返す。そして、DMAコントローラ1は、N回目のDMA転送の完了後(ステップS44:YES)、CPU3に対して割り込みを発生して転送終了を通知し(ステップS45)、DMA転送処理を終了する。
【0029】
このようにすると、CPU3は、現在DMA転送されているデータが何番目のレジスタに設定されているデータバッファのデータであるのかということを認識することができる。
【0030】
つぎに、DMAコントローラ1により実行されるDMA転送処理の実施例3を、図5を参照しながら説明する。実施例3では、起動レジスタ群11はFIFO(ファーストイン・ファーストアウト)形式のレジスタにより構成されている。なお、以下の説明では、LおよびMをNよりも小さい整数とする。
【0031】
DMA転送処理が開始され、CPU3により、起動レジスタ群11内のN個のブロックのレジスタのうち1個に、RAM2の1個のデータバッファ21に対応する先頭アドレスとデータ長が設定されると、DMAコントローラ1は、DMA転送を開始する(ステップS51)。このとき、起動レジスタ群11内のN−1個のブロックのレジスタが空いているので、つづけてN−1個のデータバッファ22,23,・・・に対応する先頭アドレスとデータ長の設定が可能である。
【0032】
N−1個のブロックのレジスタに先頭アドレスとデータ長が設定され、DMAコントローラ1が、M個のデータバッファ22,23,・・・のデータをI/Oデバイス6へDMA転送したときに(ステップS52)、新たにL個のデータをI/Oデバイス6へ転送する必要が生じたとする(ステップS53:YES)。
【0033】
この場合、CPU3は、実行中のDMA転送が終了するのを待たずに、起動レジスタ群11内の空いているブロックのレジスタに、L個分の先頭アドレスとデータ長を追加する(ステップS56)。そして、DMAコントローラ1は、DMA転送をつづけておこなう(ステップS53)。N+L回のDMA転送が完了すると(ステップS53:NO,ステップS54)、DMAコントローラ1は、CPU3に対して割り込みを発生して転送終了を通知し(ステップS55)、DMA転送処理を終了する。
【0034】
このようにすると、DMAの連続起動を自動的におこなうことができ、かつDMA動作を完全に終了させることなく、つぎの連続のDMA起動をおこなうことができる。
【0035】
上述した実施の形態によれば、CPU3が、起動レジスタ群11に複数組みの先頭アドレスおよびデータ長を設定し、DMA転送の起動を決定すると、一度の起動で、複数回のDMA転送が連続しておこなわれる。したがって、DMA転送中のCPU3の負担を軽減することができるとともに、より速いDMA転送を実現することができる。また、複数回のDMA転送が終了すると、CPU3に対して割り込みが発生するので、フラグレジスタに対するCPUのポーリングが不要となり、CPU3の負担をさらに軽減することができる。
【0036】
以上において本発明は、上述した実施の形態に限らず、種々変更可能である。たとえば、実施例2と実施例3を組み合わせて、DMAの連続起動を自動的におこなうとともに、1回のDMA転送が終了するごとに、CPU3に対して割り込みが発生する構成としてもよい。
【0037】
【発明の効果】
以上説明したように、請求項1に記載の発明によれば、1回のDMA転送の起動により複数回のDMA転送を連続して実行し、かつ複数回のDMA転送の終了を割り込み発生によってCPUに通知できるという効果を奏する。
【0038】
また、請求項2に記載の発明によれば、1回のDMA転送の起動により複数回のDMA転送を連続して実行し、かつ1回のDMA転送の終了を割り込み発生によってCPUに通知できるという効果を奏する。
【0039】
また、請求項3に記載の発明によれば、請求項1または2に記載の発明において、DMAの連続起動を自動的におこなうことができるという効果を奏する。
【図面の簡単な説明】
【図1】本発明にかかるDMA転送装置の構成の一例を示すブロック図である。
【図2】本発明にかかるDMA転送装置の起動レジスタ群とメインメモリとの対応関係を模式的に示すブロック図である。
【図3】本発明にかかるDMA転送装置により実行されるDMA転送処理の実施例1を示すフローチャートである。
【図4】本発明にかかるDMA転送装置により実行されるDMA転送処理の実施例2を示すフローチャートである。
【図5】本発明にかかるDMA転送装置により実行されるDMA転送処理の実施例3を示すフローチャートである。
【符号の説明】
1 DMA制御手段(DMAコントローラ)
2 メインメモリ(RAM)
3 CPU
11 起動レジスタ群
12 割り込み発生手段(割り込み発生部)
【発明の属する技術分野】
本発明は、DMA転送装置に関し、特に表示部、印刷部および撮像部などのハードウェア資源を有し、画像情報のデジタル処理をおこなうデジタル複写機、スキャナ、プリンタまたはファクシミリなどのサービスに必要となる共通的な画像処理、転送装置におけるDMA転送装置に関する。
【0002】
【従来の技術】
従来のDMA転送装置では、複数回のDMA(ダイレクトメモリアクセス)転送をおこなう場合、DMAコントローラは、1回のDMA転送が終わるごとにフラグを立てて、DMA転送の終了をCPUに知らせ、CPUからの再度のDMA起動を待機していた。CPUは、DMAコントローラにDMA転送の起動命令を発行した後、前記フラグを見にいくことにより、1回のDMA転送の終了を知り、再びDMAコントローラにDMA転送の起動命令を発行していた。
【0003】
しかし、上述したようなDMA転送方式では、CPUはフラグレジスタをポーリングし、ループ処理などにより常時前記フラグを読み出す必要がある。そのため、CPUがその他の処理に割り当てることができる時間が短くなり、CPUの処理効率が悪くなってしまう。また、1回のDMA転送ごとにCPUからの起動を待つため、複数回分のDMA転送の速度は遅くなってしまう。
【0004】
そこで、複数回のDMA転送時に、その複数回分のDMA転送に必要な先頭アドレスとデータ長の情報を、複数のレジスタに設定しておき、1回のDMA起動命令に基づいて複数回のDMA転送を実行するようにしたDMAコントローラが公知である(特許文献1参照。)。この特許文献1に開示されたDMAコントローラによれば、CPUの負担を軽減し、より速いDMA転送を実現することができる。
【0005】
【特許文献1】
特開平11−134286号公報
【0006】
【発明が解決しようとする課題】
しかしながら、前記特許文献1に開示された技術では、CPUに複数回のDMA転送の終了を知らせる手段としてフラグを用いているため、CPUはフラグレジスタに対してポーリングをおこなう必要があり、CPUの負担が十分に軽減されているとはいえないという問題点があった。
【0007】
本発明は、上記問題点を解決するためになされたもので、1回のDMA転送の起動により複数回のDMA転送を実行し、かつCPUのポーリングによらずに、複数回のDMA転送の終了をCPUに通知するDMA転送装置を提供することを目的とする。
【0008】
【課題を解決するための手段】
上述した課題を解決し、目的を達成するため、請求項1に記載の発明にかかるDMA転送装置は、データを記憶するメインメモリと、前記メインメモリにアクセスしてDMA転送をおこなうDMA制御手段と、前記DMA制御手段に内蔵され、前記DMA制御手段による1回のDMA転送の対象となるデータを特定する情報をそれぞれ格納する複数のレジスタよりなる起動レジスタ群と、前記起動レジスタ群にアクセスしてDMA転送の対象となるデータを特定する情報を保存するとともに、DMA転送の起動を決定するCPUと、前記DMA制御手段に内蔵され、複数回のDMA転送の終了後に、前記CPUに対して割り込みを発生する割り込み発生手段と、を具備することを特徴とする。
【0009】
この請求項1に記載の発明によれば、CPUが起動レジスタ群の複数のレジスタに、複数回のDMA転送をおこなうために必要な、DMA転送の対象となるデータを特定する情報をそれぞれ格納し、DMA転送の起動を決定すると、一度の起動で、複数のブロックのDMA転送が連続しておこなわれる。また、複数回のDMA転送が終了すると、CPUに対して割り込みが発生する。
【0010】
また、請求項2に記載の発明にかかるDMA転送装置は、データを記憶するメインメモリと、前記メインメモリにアクセスしてDMA転送をおこなうDMA制御手段と、前記DMA制御手段に内蔵され、前記DMA制御手段による1回のDMA転送の対象となるデータを特定する情報をそれぞれ格納する複数のレジスタよりなる起動レジスタ群と、前記起動レジスタ群にアクセスしてDMA転送の対象となるデータを特定する情報を保存するとともに、複数回のDMA転送の起動を決定するCPUと、前記DMA制御手段に内蔵され、1回のDMA転送が終了するごとに、前記CPUに対して割り込みを発生する割り込み発生手段と、を具備することを特徴とする。
【0011】
この請求項2に記載の発明によれば、CPUが起動レジスタ群の複数のレジスタに、複数回のDMA転送をおこなうために必要な、DMA転送の対象となるデータを特定する情報をそれぞれ格納し、DMA転送の起動を決定すると、一度の起動で、複数のブロックのDMA転送が連続しておこなわれる。また、1回のDMA転送が終了するごとに、CPUに対して割り込みが発生する。
【0012】
また、請求項3に記載の発明にかかるDMA転送装置は、請求項1または2に記載の発明において、前記起動レジスタ群はFIFO形式のレジスタ群であることを特徴とする。
【0013】
この請求項3に記載の発明によれば、FIFO形式の起動レジスタ群に、DMA転送の対象となるデータを特定する情報が格納されると、自動的にDMA転送が開始される。そして、その実行中のDMA動作が完全に終了する前に、起動レジスタ群に、新たにDMA転送の対象となるデータを特定する情報が格納されると、実行中のDMA動作を完全に終了させることなく、引き続きつぎのDMA起動がおこなわれる。
【0014】
【発明の実施の形態】
以下に添付図面を参照しながら、本発明にかかるDMA転送装置の好適な実施の形態を詳細に説明する。
【0015】
図1は、本発明にかかるDMA転送装置の構成の一例を示すブロック図である。図1において、符号1は、DMA制御手段としての機能を有するDMAコントローラである。符号2は、メインメモリとなるRAM(ランダム・アクセス・メモリ)である。符号3はCPU(中央処理装置)であり、符号4は、CPU3で実行されるプログラムを格納したROM(リード・オンリー・メモリ)である。符号5はメモリコントローラであり、符号6はI/Oデバイス(入出力装置)である。
【0016】
DMAコントローラ1、CPU3、ROM4およびメモリコントローラ5は、第1のバス7を介して互いに接続されている。RAM2は、第2のバス8を介してメモリコントローラ5に接続されている。I/Oデバイス6は、第3のバス9を介してDMAコントローラ1に接続されている。
【0017】
RAM2とI/Oデバイス6との間のデータの授受は、DMAコントローラ1により制御される。すなわち、DMAコントローラ1は、メモリコントローラ5を介してRAM2からデータを読み出し、そのデータをI/Oデバイス6へDMA転送する。また、DMAコントローラ1は、I/Oデバイス6から供給されたデータを、メモリコントローラ5を介してRAM2へDMA転送し、そのデータをRAM2に書き込む。
【0018】
また、DMAコントローラ1は、起動レジスタ群11と、割り込み発生手段としての機能を有する割り込み発生部12を備えている。図2は、起動レジスタ群11とRAM2との対応関係を模式的に示すブロック図である。図2に示すように、起動レジスタ群11は、第1の先頭アドレスレジスタ13および第1のデータ長レジスタ14よりなる第1ブロックのレジスタ、第2の先頭アドレスレジスタ15および第2のデータ長レジスタ16よりなる第2ブロックのレジスタ、第3の先頭アドレスレジスタ17および第3のデータ長レジスタ18よりなる第3ブロックのレジスタ、・・・を備えている。
【0019】
第1の先頭アドレスレジスタ13には、RAM2の第1のデータバッファ21の先頭アドレスが指定される。第1のデータ長レジスタ14には、第1のデータバッファ21から読み出されるデータの長さが指定される。第2の先頭アドレスレジスタ15および第2のデータ長レジスタ16には、それぞれRAM2の第2のデータバッファ22の先頭アドレスおよびデータ長が指定される。第3の先頭アドレスレジスタ17および第3のデータ長レジスタ18には、それぞれRAM2の第3のデータバッファ23の先頭アドレスおよびデータ長が指定される。以下、図示省略するが、同様である。
【0020】
つぎに、DMAコントローラ1により実行されるDMA転送処理の実施例1を、図3を参照しながら説明する。実施例1では、割り込み発生部12は、複数回のDMA転送の終了後に、CPU3に対して割り込みを発生する機能を備えている。なお、以下の説明では、Nを2以上の整数とする。
【0021】
DMA転送処理が開始されると、まず、CPU3により、起動レジスタ群11内のN個のブロックのレジスタに、それぞれRAM2のN個のデータバッファ21,22,23,・・・に対応する先頭アドレスとデータ長が設定される(ステップS31)。ついで、CPU3からDMA転送開始の命令が発行される。
【0022】
DMAコントローラ1は、DMA転送開始命令を受け取ると(ステップS32)、第1の先頭アドレスレジスタ13と第1のデータ長レジスタ14の格納値に基づいて、第1のデータバッファ21から所望の長さのデータを読み出し、そのデータをI/Oデバイス6へDMA転送する。つづいて、DMAコントローラ1は、第2の先頭アドレスレジスタ15と第2のデータ長レジスタ16の格納値に基づいて、第2のデータバッファ22から所望の長さのデータを読み出し、そのデータをI/Oデバイス6へDMA転送する。
【0023】
このようにして、DMAコントローラ1は、RAM2のN個のデータバッファ21,22,23,・・・のデータをI/Oデバイス6へDMA転送する(ステップS33)。N回のDMA転送が完了すると、DMAコントローラ1は、CPU3に対して割り込みを発生して転送終了を通知し(ステップS34)、DMA転送処理を終了する。
【0024】
つぎに、DMAコントローラ1により実行されるDMA転送処理の実施例2を、図4を参照しながら説明する。実施例2では、割り込み発生部12は、DMA転送が1回終了するごとに、CPU3に対して割り込みを発生する機能を備えている。
【0025】
DMA転送処理が開始されると、まず、CPU3により、起動レジスタ群11内のN個のブロックのレジスタに、それぞれRAM2のN個のデータバッファ21,22,23,・・・に対応する先頭アドレスとデータ長が設定される(ステップS41)。ついで、CPU3からDMA転送開始の命令が発行される。
【0026】
DMAコントローラ1は、DMA転送開始命令を受け取ると(ステップS42)、第1の先頭アドレスレジスタ13と第1のデータ長レジスタ14の格納値に基づいて、第1のデータバッファ21から所望の長さのデータを読み出し、そのデータをI/Oデバイス6へDMA転送する(ステップS43)。そして、DMAコントローラ1は、N個のブロック転送が完了するまで(ステップS44:NO)、CPU3に対して割り込みを発生して、1回のDMA転送が終了したことを通知する(ステップS46)。
【0027】
ついで、DMAコントローラ1は、第2の先頭アドレスレジスタ15と第2のデータ長レジスタ16の格納値に基づいて、第2のデータバッファ22から所望の長さのデータを読み出し、そのデータをI/Oデバイス6へDMA転送する(ステップS43)。そして、DMAコントローラ1は、N個のブロック転送が完了するまで(ステップS44:NO)、CPU3に対して割り込みを発生する(ステップS46)。
【0028】
このように、DMAコントローラ1は、1回のDMA転送と割り込みの発生を繰り返す。そして、DMAコントローラ1は、N回目のDMA転送の完了後(ステップS44:YES)、CPU3に対して割り込みを発生して転送終了を通知し(ステップS45)、DMA転送処理を終了する。
【0029】
このようにすると、CPU3は、現在DMA転送されているデータが何番目のレジスタに設定されているデータバッファのデータであるのかということを認識することができる。
【0030】
つぎに、DMAコントローラ1により実行されるDMA転送処理の実施例3を、図5を参照しながら説明する。実施例3では、起動レジスタ群11はFIFO(ファーストイン・ファーストアウト)形式のレジスタにより構成されている。なお、以下の説明では、LおよびMをNよりも小さい整数とする。
【0031】
DMA転送処理が開始され、CPU3により、起動レジスタ群11内のN個のブロックのレジスタのうち1個に、RAM2の1個のデータバッファ21に対応する先頭アドレスとデータ長が設定されると、DMAコントローラ1は、DMA転送を開始する(ステップS51)。このとき、起動レジスタ群11内のN−1個のブロックのレジスタが空いているので、つづけてN−1個のデータバッファ22,23,・・・に対応する先頭アドレスとデータ長の設定が可能である。
【0032】
N−1個のブロックのレジスタに先頭アドレスとデータ長が設定され、DMAコントローラ1が、M個のデータバッファ22,23,・・・のデータをI/Oデバイス6へDMA転送したときに(ステップS52)、新たにL個のデータをI/Oデバイス6へ転送する必要が生じたとする(ステップS53:YES)。
【0033】
この場合、CPU3は、実行中のDMA転送が終了するのを待たずに、起動レジスタ群11内の空いているブロックのレジスタに、L個分の先頭アドレスとデータ長を追加する(ステップS56)。そして、DMAコントローラ1は、DMA転送をつづけておこなう(ステップS53)。N+L回のDMA転送が完了すると(ステップS53:NO,ステップS54)、DMAコントローラ1は、CPU3に対して割り込みを発生して転送終了を通知し(ステップS55)、DMA転送処理を終了する。
【0034】
このようにすると、DMAの連続起動を自動的におこなうことができ、かつDMA動作を完全に終了させることなく、つぎの連続のDMA起動をおこなうことができる。
【0035】
上述した実施の形態によれば、CPU3が、起動レジスタ群11に複数組みの先頭アドレスおよびデータ長を設定し、DMA転送の起動を決定すると、一度の起動で、複数回のDMA転送が連続しておこなわれる。したがって、DMA転送中のCPU3の負担を軽減することができるとともに、より速いDMA転送を実現することができる。また、複数回のDMA転送が終了すると、CPU3に対して割り込みが発生するので、フラグレジスタに対するCPUのポーリングが不要となり、CPU3の負担をさらに軽減することができる。
【0036】
以上において本発明は、上述した実施の形態に限らず、種々変更可能である。たとえば、実施例2と実施例3を組み合わせて、DMAの連続起動を自動的におこなうとともに、1回のDMA転送が終了するごとに、CPU3に対して割り込みが発生する構成としてもよい。
【0037】
【発明の効果】
以上説明したように、請求項1に記載の発明によれば、1回のDMA転送の起動により複数回のDMA転送を連続して実行し、かつ複数回のDMA転送の終了を割り込み発生によってCPUに通知できるという効果を奏する。
【0038】
また、請求項2に記載の発明によれば、1回のDMA転送の起動により複数回のDMA転送を連続して実行し、かつ1回のDMA転送の終了を割り込み発生によってCPUに通知できるという効果を奏する。
【0039】
また、請求項3に記載の発明によれば、請求項1または2に記載の発明において、DMAの連続起動を自動的におこなうことができるという効果を奏する。
【図面の簡単な説明】
【図1】本発明にかかるDMA転送装置の構成の一例を示すブロック図である。
【図2】本発明にかかるDMA転送装置の起動レジスタ群とメインメモリとの対応関係を模式的に示すブロック図である。
【図3】本発明にかかるDMA転送装置により実行されるDMA転送処理の実施例1を示すフローチャートである。
【図4】本発明にかかるDMA転送装置により実行されるDMA転送処理の実施例2を示すフローチャートである。
【図5】本発明にかかるDMA転送装置により実行されるDMA転送処理の実施例3を示すフローチャートである。
【符号の説明】
1 DMA制御手段(DMAコントローラ)
2 メインメモリ(RAM)
3 CPU
11 起動レジスタ群
12 割り込み発生手段(割り込み発生部)
Claims (3)
- データを記憶するメインメモリと、
前記メインメモリにアクセスしてDMA転送をおこなうDMA制御手段と、
前記DMA制御手段に内蔵され、前記DMA制御手段による1回のDMA転送の対象となるデータを特定する情報をそれぞれ格納する複数のレジスタよりなる起動レジスタ群と、
前記起動レジスタ群にアクセスしてDMA転送の対象となるデータを特定する情報を保存するとともに、DMA転送の起動を決定するCPUと、
前記DMA制御手段に内蔵され、複数回のDMA転送の終了後に、前記CPUに対して割り込みを発生する割り込み発生手段と、
を具備することを特徴とするDMA転送装置。 - データを記憶するメインメモリと、
前記メインメモリにアクセスしてDMA転送をおこなうDMA制御手段と、
前記DMA制御手段に内蔵され、前記DMA制御手段による1回のDMA転送の対象となるデータを特定する情報をそれぞれ格納する複数のレジスタよりなる起動レジスタ群と、
前記起動レジスタ群にアクセスしてDMA転送の対象となるデータを特定する情報を保存するとともに、複数回のDMA転送の起動を決定するCPUと、
前記DMA制御手段に内蔵され、1回のDMA転送が終了するごとに、前記CPUに対して割り込みを発生する割り込み発生手段と、
を具備することを特徴とするDMA転送装置。 - 前記起動レジスタ群はFIFO形式のレジスタ群であることを特徴とする請求項1または2に記載のDMA転送装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003076972A JP2004287654A (ja) | 2003-03-20 | 2003-03-20 | Dma転送装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003076972A JP2004287654A (ja) | 2003-03-20 | 2003-03-20 | Dma転送装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004287654A true JP2004287654A (ja) | 2004-10-14 |
Family
ID=33291852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003076972A Pending JP2004287654A (ja) | 2003-03-20 | 2003-03-20 | Dma転送装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004287654A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006157580A (ja) * | 2004-11-30 | 2006-06-15 | Ricoh Co Ltd | 画像処理装置、画像形成装置、画像処理方法、コンピュータプログラム及び記録媒体 |
WO2007099659A1 (ja) * | 2006-03-01 | 2007-09-07 | Matsushita Electric Industrial Co., Ltd. | データ転送装置及びデータ転送方法 |
KR100775406B1 (ko) | 2006-02-28 | 2007-11-12 | 후지쯔 가부시끼가이샤 | Dma 데이터 전송 장치 및 dma 데이터 전송 방법 |
JP2011180653A (ja) * | 2010-02-26 | 2011-09-15 | Oki Joho Systems:Kk | データ転送装置およびデータ転送方法 |
WO2015155850A1 (ja) * | 2014-04-09 | 2015-10-15 | 株式会社日立製作所 | 入出力装置及び方法 |
KR101567198B1 (ko) * | 2013-03-14 | 2015-11-06 | 인피니언 테크놀로지스 아게 | 직접 메모리 접속 제어기를 위한 조건 링크 |
-
2003
- 2003-03-20 JP JP2003076972A patent/JP2004287654A/ja active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006157580A (ja) * | 2004-11-30 | 2006-06-15 | Ricoh Co Ltd | 画像処理装置、画像形成装置、画像処理方法、コンピュータプログラム及び記録媒体 |
KR100775406B1 (ko) | 2006-02-28 | 2007-11-12 | 후지쯔 가부시끼가이샤 | Dma 데이터 전송 장치 및 dma 데이터 전송 방법 |
WO2007099659A1 (ja) * | 2006-03-01 | 2007-09-07 | Matsushita Electric Industrial Co., Ltd. | データ転送装置及びデータ転送方法 |
JPWO2007099659A1 (ja) * | 2006-03-01 | 2009-07-16 | パナソニック株式会社 | データ転送装置及びデータ転送方法 |
US7861012B2 (en) | 2006-03-01 | 2010-12-28 | Panasonic Corporation | Data transmitting device and data transmitting method |
JP2011180653A (ja) * | 2010-02-26 | 2011-09-15 | Oki Joho Systems:Kk | データ転送装置およびデータ転送方法 |
KR101567198B1 (ko) * | 2013-03-14 | 2015-11-06 | 인피니언 테크놀로지스 아게 | 직접 메모리 접속 제어기를 위한 조건 링크 |
US9569384B2 (en) | 2013-03-14 | 2017-02-14 | Infineon Technologies Ag | Conditional links for direct memory access controllers |
WO2015155850A1 (ja) * | 2014-04-09 | 2015-10-15 | 株式会社日立製作所 | 入出力装置及び方法 |
JPWO2015155850A1 (ja) * | 2014-04-09 | 2017-04-13 | 株式会社日立製作所 | 入出力装置及び方法 |
US10013372B2 (en) | 2014-04-09 | 2018-07-03 | Hitachi, Ltd. | Input/output apparatus and method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4065503B2 (ja) | 画像処理装置、画像入出力装置、変倍処理方法、及びメモリ制御方法 | |
JP3529205B2 (ja) | 印刷装置 | |
JP2004287654A (ja) | Dma転送装置 | |
JP3161031B2 (ja) | 画像処理装置 | |
JP5718305B2 (ja) | 画像形成装置 | |
JP3714840B2 (ja) | データ転送方法とデータ転送制御装置 | |
JPH1084447A (ja) | 多機能並行処理型電子装置 | |
JP4034323B2 (ja) | 画像データ処理方法と画像データ処理装置及び画像形成装置 | |
JP3730586B2 (ja) | 画像処理装置 | |
JP2007208696A (ja) | 暗号処理回路及び印刷装置 | |
JP2010282152A (ja) | 画像形成装置 | |
JP2002254729A (ja) | 画像データのdma制御装置 | |
JPH11331528A (ja) | 画像処理装置 | |
JP2018137533A (ja) | 画像処理装置および画像処理方法 | |
JP2011055214A (ja) | 制御装置、画像読取装置、画像形成装置、及び、画像読取装置の制御方法 | |
JP2004246828A (ja) | Dma制御装置及び画像形成装置 | |
JP2001338286A (ja) | 画像処理方法と装置 | |
JP2001331440A (ja) | データ受信処理装置 | |
JP2001225515A (ja) | 印刷装置およびそのメモリクリア方法 | |
JPH09288639A (ja) | 情報処理装置 | |
JP2007008078A (ja) | プリンタシステム | |
JP2009265776A (ja) | 画像処理装置 | |
JP2003242101A (ja) | 拡張カードおよび拡張カードの記憶部へのデータ書き込み方法 | |
JP2011013812A (ja) | メモリシステム | |
JP2006229505A (ja) | 画像処理装置および画像処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Effective date: 20050916 Free format text: JAPANESE INTERMEDIATE CODE: A621 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080501 |
|
A131 | Notification of reasons for refusal |
Effective date: 20080513 Free format text: JAPANESE INTERMEDIATE CODE: A131 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080930 |