(57)【特許請求の範囲】
【請求項１】
データの書き込みおよび読み出しが可能なメモリと、
前記メモリへのデータの書き込みおよび／又は読み出しの開始指令を出力する主制御部と、
少なくとも前記メモリへのデータの書き込み又は読み出しを行い、該データの書き込み又は読み出しが終了すると終了通知を出力する複数のＤＭＡ制御回路と、
前記各ＤＭＡ制御回路をそれぞれ起動させる複数の起動指令部を有し、
前記各起動指令部は、前記主制御部からの開始指令又は前記各ＤＭＡ制御回路からの終了通知に応答してＤＭＡ制御回路を起動し、
前記起動したＤＭＡ回路はデータの書き込み又は読出し処理が終了する毎に他のＤＭＡ制御回路に対して終了通知を行い、当該ＤＭＡ回路は終了通知がくるまではバーストアクセス動作をしないように設定されているデータ処理装置において、
前記各ＤＭＡ制御回路の任意の２つ以上のＤＭＡ制御回路を並列グループ化するための並列グループ化回路を備え、該並列グループ化回路により並列化した１つのＤＭＡ制御回路が前記メモリへの書き込み又は読み出し処理を行っているデータを他の並列化したＤＭＡ制御回路が前記メモリへの書き込みプロセス又は読出しプロセスにおいて取得可能にし、
前記並列グループ化したＤＭＡ回路の何れか１のＤＭＡ制御回路がマスターに、他のＤＭＡ制御回路がスレーブにそれぞれ設定され、スレーブ側に設定されたＤＭＡ回路のメモリへのアクセス信号線を無効化することを特徴とするデータ処理装置。
【請求項２】
請求項１に記載のデータ処理装置において、前記並列グループ化する複数のＤＭＡ制御回路の中で、最もデータ処理に時間を要するＤＭＡ制御回路をマスターに設定することを特徴とするデータ処理装置。
【請求項３】
請求項１又は２に記載のデータ処理装置において、前記並列グループ化回路は、前記主制御部からの指令に基づいて、並列グループ化するＤＭＡ制御回路のメモリデータ線およびコマンド信号線のそれぞれを接続することを特徴とするデータ処理装置。
【請求項４】
請求項１又は２に記載のデータ処理装置において、前記並列グループ化回路は、前記各ＤＭＡ制御回路にセレクタを設けると共にデータバスを共通化し、前記主制御部からの指令に基づいて必要なＤＭＡ制御回路をアクティブにするものであることを特徴とするデータ処理装置。
【請求項５】
請求項１又は２に記載のデータ処理装置において、前記並列グループ化回路は、前記各ＤＭＡ制御回路に対応する入出力装置側のコントロール信号線を接続するものであることを特徴とするデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ダイレクトメモリアクセス（略称ＤＭＡ）方式によってデータを転送することができるデータ処理装置に関する。
【背景技術】
【０００２】
複写装置、スキャナー装置、プリンタ装置およびファクシミリ装置などの機能を１つにまとめた複合装置などに搭載されてイメージデータを処理するデータ処理装置では、近年、カラー化の対応が行われており、データ処理の高速化が要求されていることから、ダイレクトメモリアクセス（Direct  Memory  Access、略称ＤＭＡ）方式によるデータ転送によってデータ処理の高速化が図られている。
【０００３】
上述したデータ処理装置の従来技術として、例えば、図６に示すものがある。この従来技術のデータ処理装置は、主制御部であるＣＰＵ１と、メモリ２と、３つの内部ブロック３とを含む。各内部ブロック３は、レジスタ６と、メモリ処理部であるＤＭＡ制御回路４とを含む。図７は、ＣＰＵ１のＤＭＡ関連動作を説明するためのフローチャートである。
【０００４】
レジスタ６には、ＣＰＵ１からの設定条件が与えられる。ＤＭＡ制御回路４は、レジスタ６に記憶されている設定条件に基づいて、メモリ２へのデータの書き込みおよびメモリ２からのデータの読み出しの少なくとも一方を行う。ＤＭＡ制御回路４は、ＣＰＵ１からの起動指令に応答して起動する。ＤＭＡ制御回路４は、メモリ２へのデータの書き込みおよびメモリ２からのデータの読み出しの少なくとも一方が終了すると、割り込み要求をＣＰＵ２に与える。
【０００５】
このようなデータ処理装置では、各ＤＭＡ制御回路４によるメモリ２へのデータの書き込みおよびメモリ２からのデータの読み出しの少なくとも一方が終了する毎に、各ＤＭＡ制御回路４からＣＰＵ１に割り込み要求が与えられる。ＣＰＵ１は、割り込み要求を与えられると、次に起動されるべきＤＭＡ制御回路４のレジスタ設定を行い、そのＤＭＡ制御回路４に起動指令を与える。これによって各ＤＭＡ制御回路４が順次、起動される。
【０００６】
上記従来のデータ処理装置の場合、各ＤＭＡ制御回路４を順次、起動するにあたって、各ＤＭＡ制御回路４は、メモリ２へのデータの書き込みおよびメモリ２からのデータの読み出しの少なくとも一方が終了する毎に、割り込み要求をＣＰＵ１に与え、ＣＰＵ１は、割り込み要求を与えられると、次に起動されるべきＤＭＡ制御回路４のレジスタ設定を行い、そのＤＭＡ制御回路４に起動指令を与える必要がある。したがってＣＰＵの処理負荷が発生し、ＣＰＵのパフォーマンスが低下してしまうという問題がある。
【０００７】
このような問題を解決するものとして、出願人は特許文献１に示すデータ処理装置を提案している。
以下、特許文献１に示されている先行技術（以下、「先行技術」と表現する。）について詳しく説明する。図８は、先行技術におけるデータ処理装置を簡略化して示したブロック図である。ＤＭＡ方式によってＣＰＵを介さずに、メモリへのデータの書き込みおよびメモリからのデータの読み出しの少なくとも一方を行うことができるデータ処理装置２０は、ＣＰＵ１と、メモリ２と、複数（図の例では３つ）のＤＭＡ制御回路２４と、複数（本実施の形態では３つ）のセレクタ回路２５とを含む。
【０００８】
メモリ処理部である各ＤＭＡ制御回路２４は、共通のメモリ２にアクセスするもので、各ＤＭＡ制御回路２４は、メモリ２へのデータの書き込みおよびメモリ２からのデータの読み出しを行い、書き込みおよび読み出しの少なくとも一方が終了すると、終了通知を出力する。各ＤＭＡ制御回路２４は、各セレクタ回路２５からの起動指令に応答して、メモリ２へのデータの書き込みおよびメモリ２からのデータの読み出しの少なくとも一方を開始する。
【０００９】
ＣＰＵ１は、メモリ２へのデータの書き込みおよびメモリ２からのデータの読み出しの開始指令を出力する。またＣＰＵ１は、このＣＰＵ１からの開始指令および各ＤＭＡ制御回路２４からの終了通知のいずれを選択するかを示す選択指令を出力する。各セレクタ回路２５は、ＣＰＵ１からの開始指令または各ＤＭＡ制御回路２４からの終了通知のいずれかに応答して起動指令を出力する。各セレクタ回路２５が、ＣＰＵ１からの開始指令および各ＤＭＡ制御回路２４からの終了通知のいずれに応答するかは、ＣＰＵからの選択指令によって決まる。
【００１０】
図９は、各ＤＭＡ制御回路２４によるメモリ２へのデータの書き込みおよびメモリ２からのデータの読み出しの一例を説明するための図である。第１のＤＭＡ制御回路２４ａはメモリ２へデータを書き込むように設定され、開始アドレスがＡ番地に設定され、転送バイト数がＮバイトに設定される。第２のＤＭＡ制御回路２４ｂはメモリ２からデータを読み出すように設定され、開始アドレスがＡ番地に設定され、転送バイト数がＮバイトに設定される。第３のＤＭＡ制御回路２４ｃはメモリ２へデータを書き込むように設定され、開始アドレスがＢ番地に設定され、転送バイト数がＭバイトに設定される。
【００１１】
また、各セレクタ２５において、第１のセレクタ回路２５ａはＣＰＵ１からの開始指令に応答して起動指令を出力するように設定される。第２のセレクタ回路２５ｂは第１のＤＭＡ制御回路２４ａからの終了通知に応答して起動指令を出力するように設定される。第３のセレクタ回路２５ｃは第２のＤＭＡ制御回路２４ｂからの終了通知に応答して起動指令を出力するように設定される。
【００１２】
このように各ＤＭＡ制御回路２４および各セレクタ回路２５が設定されるとき、ＣＰＵ１が開始指令を出力すると、第１のセレクタ回路２５ａはＣＰＵ１からの開始指令に応答して起動指令を出力する。第１のＤＭＡ制御回路２４ａは第１のセレクタ回路２５ａからの起動指令に応答して起動し、メモリ２へデータを書き込む。このときデータはメモリ２のＡ番地から順にＮバイト分、書き込まれる。第１のＤＭＡ制御回路２４ａはメモリ２へのデータの書き込みを終了すると、終了通知を出力する。
【００１３】
第２のセレクタ回路２５ｂは第１のＤＭＡ制御回路２４ａからの終了通知に応答して起動指令を出力する。第２のＤＭＡ制御回路２４ｂは第２のセレクタ回路２５ｂからの起動指令に応答して起動し、メモリ２からデータを読み出す。このときデータはメモリ２のＡ番地から順にＮバイト分、読み出される。第２のＤＭＡ制御回路２４ｂはメモリ２からのデータの読み出しを終了すると、終了通知を出力する。
第３のセレクタ回路２５ｃは、第２のＤＭＡ制御回路２４ｂからの終了通知に応答して起動指令を出力する。第３のＤＭＡ制御回路２４ｃは、第３のセレクタ回路２５ｃからの起動指令に応答して起動し、メモリ２へデータを書き込む。このときデータは、メモリ２のＢ番地から順にＭバイト分、書き込まれる。
【００１４】
図１０は、データ処理装置２０の全体の構成を示すブロック図、図１１は内部ブロック３３の詳細を示すブロック図である。データ処理装置２０は、メモリ２と、メモリ２を制御するメモリコントローラ９と、アービタ＆セレクタ８と、後述する複数（図示の例では３つ）の内部ブロック３３ａ〜３３ｃと、ＣＰＵ１とを含む。メモリコントローラ９と各内部ブロック３３との間に介在するアービタ＆セレクタ８は、各内部ブロック３３のいずれか１つを選択し、選択した内部ブロック３３にバス使用権を割り当てる。
【００１５】
内部ブロック３３は、ＤＭＡ制御回路２４と、セレクタ回路２５とを含み、ＤＭＡ制御回路２４は、アービタ＆セレクタ８を介してメモリコントローラ９を制御し、これによってメモリ２へのデータの書き込みおよびメモリ２からのデータの読み出しの少なくとも一方を行うことができ、例えば、スキャン入力のための機能、圧縮・伸長入出力ための機能、回転入出力のための機能およびレーザ出力のための機能のいずれか１つを有する。
【００１６】
ＣＰＵ１は、ＣＰＵアドレスＣＰＵ＿ＡＤＲとＣＰＵデータＣＰＵ＿ＤＡＴＡをレジスタ３６に与える。ＣＰＵアドレスＣＰＵ＿ＡＤＲは、レジスタ３６のアドレスを示し、ＣＰＵデータＣＰＵ＿ＤＡＴＡは、制御回路３７、ＤＭＡ制御回路２４およびセレクタ回路２５の設定条件を示す。またＣＰＵ１は、ＣＰＵデータＣＰＵ＿ＤＡＴＡをレジスタ３６から与えられる。このＣＰＵデータＣＰＵ＿ＤＡＴＡは、制御回路３７、ＤＭＡ制御回路２４およびセレクタ回路２５のステータスを示す。
【００１７】
レジスタ３６は、ＣＰＵアドレスＣＰＵ＿ＡＤＲをデコードし、書き込み時にはＣＰＵアドレスＣＰＵ＿ＡＤＲによって指定されるアドレスにＣＰＵデータＣＰＵ＿ＤＡＴＡをラッチする。またレジスタ３６は、読み出し時にはＣＰＵアドレスＣＰＵ＿ＡＤＲによって指定されるアドレスから、ＣＰＵデータＣＰＵ＿ＤＡＴＡを転送する。
【００１８】
制御回路３７は、レジスタ３６に記憶されている制御回路３７の設定条件に基づいてデータを演算する。また制御回路３７は、この制御回路３７のステータスをレジスタ３６に与える。制御回路３７は、入出力装置３８を制御する。制御回路３７は、入出力装置３８へデータを与える。また制御回路３７はデータを記憶するバッファ回路を含み、入出力装置３８からデータを与えられる。
【００１９】
例えば、第１の内部ブロック３３ａが、スキャン入力のための機能を有する内部ブロックであるとき、制御回路３７は、タイミング生成回路と、バッファ回路とを含む。タイミング生成回路は、入出力装置３８である画像読取部によって原稿から読み取られるスキャンデータをリードするタイミングを生成する。バッファ回路は、スキャンデータを記憶する。
【００２０】
ＤＭＡ制御回路２４は、レジスタ３６に記憶されているＤＭＡ制御回路２４の設定条件に基づいて、データを転送する。ＤＭＡ制御回路２４の設定条件は、開始アドレスと、転送バイト数とを示す。ＤＭＡ制御回路２４は、このＤＭＡ制御回路２４のステータスをレジスタ３６に与える。ＤＭＡ制御回路２４は、後述のセレクタ回路２５からの起動指令Ｄ＿ＴＲＧ１に応答して起動する。ＤＭＡ制御回路２４は、制御回路３７内のバッファ回路に記憶されるデータを読み出して、このデータをメモリ２に書き込む。あるいはＤＭＡ制御回路２４は、メモリ２に記憶されるデータを読み出して、このデータを制御回路３７内のバッファ回路に書き込む。
【００２１】
詳細に述べると、ＤＭＡ制御回路２４は、ＤＭＡアドレスＤＭＡ＿ＡＤＲ１をアービタ＆セレクタ３２を介してメモリコントローラ３１に与える。このＤＭＡアドレスＤＭＡ＿ＡＤＲ１は、メモリ２のアドレスを示す。ＤＭＡ制御回路２４は、ＤＭＡ制御信号ＤＭＡ＿ＣＯＮＴ１をアービタ＆セレクタ８を介してメモリコントローラ９に与える。このＤＭＡ制御信号ＤＭＡ＿ＣＯＮＴ１は、メモリ２への書き込み指令およびメモリ２からの読み出し指令を示す。またＤＭＡ制御回路２４は、ＤＭＡ制御信号ＤＭＡ＿ＣＯＮＴ１をアービタ＆セレクタ８を介してメモリコントローラ９から与えられる。このＤＭＡ制御信号ＤＭＡ＿ＣＯＮＴ１は、メモリコントローラ９のステータスを示す。
【００２２】
このようなＤＭＡ制御回路２４は、ＤＭＡアドレスＤＭＡ＿ＡＤＲ１によってメモリ２のアドレスを指定する。そしてＤＭＡ制御回路２４は、ＤＭＡ制御信号ＤＭＡ＿ＣＯＮＴ１によって書き込みおよび読み出しの少なくとも一方を指令する。このようにして、ＤＭＡ制御回路２４は、メモリ２の指定されるアドレスへのデータの書き込みおよびメモリ２の指定されるアドレスからのデータの読み出しの少なくとも一方を行うことができる。このデータが、図１１におけるＤＭＡデータＤＭＡ＿ＤＡＴＡに相当する。
【００２３】
ＤＭＡ制御回路２４は、メモリ２へのデータの書き込みおよびメモリ２からのデータの読み出しの少なくとも一方が終了すると、終了通知ＤＭＡ＿ＥＮＤ１を出力するとともに、割り込み要求ＩＮＴＲ１を出力する。前記ＤＭＡ制御回路２４の設定条件は、割り込み要求ＩＮＴＲ１をマスクするか否かをも示す。割り込み要求ＩＮＴＲ１がマスクされるとき、ＤＭＡ制御回路２４は、前記書き込みおよび読み出しの少なくとも一方が終了しても、割り込み要求ＩＮＴＲ１を出力しない。
【００２４】
割り込み要求ＩＮＴＲ１は、ＯＲ回路３９に与えられる。ＯＲ回路３９には、各内部ブロック３３のＤＭＡ制御回路２４からの割り込み要求ＩＮＴＲ１〜ＩＮＴＲ３が与えられる。ＯＲ回路３９は、これらの割り込み要求ＩＮＴＲ１〜ＩＮＴＲ３のいずれか１つが与えられると、割り込み要求ＩＮＴＲを出力する。この割り込み要求ＩＮＴＲは、ＣＰＵ１に与えられる。
【００２５】
セレクタ回路２５は、レジスタ３６に記憶されているセレクタ回路２５の設定条件である選択指令に基づいて、起動指令を出力する。セレクタ回路２５は、ＣＰＵ１からレジスタ３６を介して与えられる開始指令ＤＭＡ＿ＴＲＧ１、ならびに第２および第３の内部ブロック３３ｂ，３３ｃの各ＤＭＡ制御回路２４からの終了通知ＤＭＡ＿ＥＮＤ２，ＤＭＡ＿ＥＮＤ３のいずれか１つに応答して起動指令Ｄ＿ＴＲＧ１を出力する。
【００２６】
図１２は、ＣＰＵ１のＤＭＡ関連動作を説明するためのフローチャートである。同図は、各ＤＭＡ制御回路２４が、第１のＤＭＡ制御回路２４ａ、第２のＤＭＡ制御回路２４ｂ、第３のＤＭＡ制御回路２４ｃの順で起動されることを想定している。
【００２７】
所定の動作開始指令が入力されるとＣＰＵ１はＤＭＡ関連動作を開始し、ステップＳ１１で各内部ブロック３３の制御回路３７の設定条件を各内部ブロック３３のレジスタ３６に与えることによって、各内部ブロック３３の制御回路３７のレジスタ設定を行い、ステップＳ２に進む。
【００２８】
ステップＳ１２で、第１のＤＭＡ制御回路２４ａの設定条件を第１の内部ブロック３３ａのレジスタ３６に与えることによって、第１のＤＭＡ制御回路２４ａのレジスタ設定を行い、ステップＳ１３で、第２のＤＭＡ制御回路２４ｂの設定条件を第２の内部ブロック３３ｂのレジスタ３６に与えることによって、第２のＤＭＡ制御回路２４ｂのレジスタ設定を行い、ステップＳ１４で、第３のＤＭＡ制御回路２４ｃの設定条件を第３の内部ブロック３３ｃのレジスタ３６に与えることによって、第３のＤＭＡ制御回路２４ｃのレジスタ設定を行う。これらのステップＳ１２〜Ｓ１４では、開始アドレスおよび転送バイト数などが設定される。
【００２９】
ステップＳ１５で、各セレクタ回路２５の設定条件である選択指令を、各内部ブロック３３のレジスタ３６に与え、ステップＳ１６に進む。図５においては、第１の内部ブロック３３ａのレジスタ３６には、ＣＰＵ１からの開始指令を選択することを示す選択指令が与えられる。第２の内部ブロック３３ｂのレジスタ３６には、第１のＤＭＡ制御回路２４ａからの終了通知を選択することを示す選択指令が与えられる。第３の内部ブロック３３ｃのレジスタ３６には、第２のＤＭＡ制御回路２４ｂからの終了通知を選択することを示す選択指令が与えられる。このようにＣＰＵ１は、各内部ブロック３３のレジスタ３６に選択指令を与えることによって、各ＤＭＡ制御回路２４を連携するための連携設定を行う。
【００３０】
ステップＳ１６で、各内部ブロック３３のレジスタ３６に対して、不要な割り込み要求をマスクするための設定を行い、ステップＳ１７に進む。不要な割り込み要求とは、起動されるべき各ＤＭＡ制御回路２４のうち、最後に起動されるＤＭＡ制御回路２４を除く残余のＤＭＡ制御回路２４からの割り込み要求である。図５においては、第１および第２のＤＭＡ制御回路２４ａ，２４ｂからの割り込み要求がマスクされる。
【００３１】
ステップＳ１７で、開始指令を出力し、これによって第１のＤＭＡ制御回路２４ａの開始ビットを設定してステップＳ１８に進む。ステップＳ１８で、ＤＭＡ制御回路２４による割り込み要求、図１２においては第３のＤＭＡ制御回路２４ｃによる割り込み要求を与えられるとＤＭＡ関連動作を終了する。
【００３２】
前記ステップＳ１７で、ＣＰＵ１が開始指令を出力すると、ＣＰＵ１からの開始指令に応答して、第１のセレクタ回路２５ａが起動指令を出力する。第１のＤＭＡ制御回路２４ａは、第１のセレクタ回路２５ａからの起動指令に応答して起動する。この第１のＤＭＡ制御回路２４ａからの終了通知に応答して第２のセレクタ回路２５ｂが起動指令を出力する。第２のＤＭＡ制御回路２４ｂは、第２のセレクタ回路２５ｂからの起動指令に応答して起動する。この第２のＤＭＡ制御回路２４ｂからの終了通知に応答して第３のセレクタ回路２５ｃが起動指令を出力する。第３のＤＭＡ制御回路２４ｃは、第３のセレクタ回路２５ｃからの起動指令に応答して起動する。第３のＤＭＡ制御回路２４ｃは、メモリ２へのデータの書き込みおよびメモリ２からのデータの読み出しの少なくとも一方が終了すると、割り込み要求を出力する。割り込み要求は、ＯＲ回路３９に与えられる。ＯＲ回路３９は、割り込み要求をＣＰＵ１に与える。
【００３３】
このようにＣＰＵ１が開始指令を出力してから、ＣＰＵ１が割り込み要求を与えられるまでの間、ＣＰＵ１を介さずに、各ＤＭＡ制御回路２４によって、メモリへデータを書き込むとともに、メモリからデータを読み出すことができる。この間、ＣＰＵ１は、別の処理を実行することができる。
【００３４】
以上のような先行技術によれば、各セレクタ回路２５はＣＰＵ１からの開始指令だけでなく、各ＤＭＡ制御回路２４からの終了通知にも応答して起動指令を出力することができる。したがって各セレクタ回路２５のいずれか１つにＣＰＵ１からの開始指令が与えられると、他のセレクタ回路２５にはＣＰＵ１からの開始指令が与えられなくても、各セレクタ回路２５は、各ＤＭＡ制御回路２４を順次、起動させることができる。
【００３５】
換言すると、ＣＰＵ１を介さずに、各ＤＭＡ制御回路２４を連携させることができる。したがって、それまでの従来技術のように、各ＤＭＡ制御回路によるメモリへのデータの書き込みおよびメモリからのデータの読み出しの少なくとも一方が終了する毎に、各ＤＭＡ制御回路からＣＰＵに割り込み要求を与え、ＣＰＵから開始指令を出力する必要がなくなるのでＣＰＵの処理負荷を軽減することができ、ＣＰＵのパフォーマンスの低下を防ぐことができる。
【００３６】
しかしながら、同じデータに対して複数の処理ブロックが一連の処理を行う場合、同じアドレスのデータを複数の処理ブロックで読んだり、一つの処理ブロックが書き込んだデータを別の処理ブロックが読んだりすることが処理の手順として予め分かっている場合であっても、上記先行技術では一つのＤＭＡによる読み出し又は書き込みが終了してからでないと次のＤＭＡの動作は開始することできないので、さらなる高速化を図るには限界があった。
【００３７】
なお、複数のＤＭＡデバイスがメモリの同じ時アドレス上のデータを同時に読み取り可能にする先行技術として、異なるＩＯバスに接続された複数のＤＭＡデバイスが同じメモリアドレスのデータを読み出そうとしていることを検出した場合にメモリバスから複数のＩＯバスへデータを転送するブリッジで行うようにしたものがある（特許文献２）。しかし、この従来技術は、偶々ＤＭＡデバイスが同じメモリアドレスのデータを読み出そうとしていることを検出した場合だけ実行されるものであり、また、読み出し後のそれぞれの転送先のデータ処理速度が異なっている場合に適用することは困難である。
【特許文献１】特願２００４−３６３２１１号
【特許文献２】特開平１１−１３４２８７号公報
【発明の開示】
【発明が解決しようとする課題】
【００３８】
本発明は、上述のごとき事情に鑑みてなされたものであり、同じアドレスのデータを複数の処理ブロックで読んだり、一つの処理ブロックが書き込んだデータを別の処理ブロックが読んだりすることが処理の手順として予め分かっているような場合に、複数の処理ブロックの処理速度が異なっていても、他のＤＭＡ制御回路が同じデータを取得できるようにして、さらなるデータ処理の高速化やメモリバスの効率的利用が可能なデータ処理装置を提供することを目的としてなされたものである。
【課題を解決するための手段】
【００３９】
上記課題を解決するために、以下の技術手段を有する。
第１の技術手段は、データの書き込みおよび読み出しが可能なメモリと、前記メモリへのデータの書き込みおよび／又は読み出しの開始指令を出力する主制御部と、少なくとも前記メモリへのデータの書き込み又は読み出しを行い、該データの書き込み又は読み出しが終了すると終了通知を出力する複数のＤＭＡ制御回路と、前記各ＤＭＡ制御回路をそれぞれ起動させる複数の起動指令部を有し、前記各起動指令部は、前記主制御部からの開始指令又は前記各ＤＭＡ制御回路からの終了通知に応答してＤＭＡ制御回路を起動し、前記起動したＤＭＡ回路はデータの書き込み又は読出し処理が終了する毎に他のＤＭＡ制御回路に対して終了通知を行い、当該ＤＭＡ回路は終了通知がくるまではバーストアクセス動作をしないように設定されているデータ処理装置において、前記各ＤＭＡ制御回路の任意の２つ以上のＤＭＡ制御回路を並列グループ化するための並列グループ化回路を備え、該並列グループ化回路により並列化した１つのＤＭＡ制御回路が前記メモリへの書き込み又は読み出し処理を行っているデータを他の並列化したＤＭＡ制御回路が前記メモリへの書き込みプロセス又は読出しプロセスにおいて取得可能にし、前記並列グループ化したＤＭＡ回路の何れか１のＤＭＡ制御回路がマスターに、他のＤＭＡ制御回路がスレーブにそれぞれ設定され、スレーブ側に設定されたＤＭＡ回路のメモリへのアクセス信号線を無効化することを特徴とする。
【００４０】
第２の技術手段は、第１の技術手段のデータ処理装置において、前記並列グループ化する複数のＤＭＡ制御回路の中で、最もデータ処理に時間を要するＤＭＡ制御回路をマスターに設定することを特徴とする。
【００４４】
第３の技術手段は、第１又は第２の技術手段のデータ処理装置において、前記並列グループ化回路は、前記主制御部からの指令に基づいて、並列グループ化するＤＭＡ制御回路のメモリデータ線およびコマンド信号線のそれぞれを接続することを特徴とする。
【００４５】
第４の技術手段は、第１又は第２の技術手段のデータ処理装置において、前記並列グループ化回路は、前記各ＤＭＡ制御回路にセレクタを設けると共にデータバスを共通化し、前記主制御部からの指令に基づいて必要なＤＭＡ制御回路をアクティブにするものであることを特徴とする。
【００４６】
第５の技術手段は、第１又は第２の技術手段のデータ処理装置において、前記並列グループ化回路は、前記各ＤＭＡ制御回路に対応する入出力装置側のコントロール信号線を接続するものであることを特徴とする。
【発明の効果】
【００４７】
本発明によれば、複数のＤＭＡ制御回路で同じデータを扱うことによりさらなるデータ処理の高速化が可能となり、しかも、効率的にメモリバスを使用することができる。
また、ＣＰＵから見たＤＭＡ回路の数を減らすことができる。
さらに、ＤＭＡグループ内でお互いの処理速度を影響せずに取りこぼしなくデータ処理を完了することができる。
【発明を実施するための最良の形態】
【００４８】
以下、本発明について図面を参照しながら説明する。なお、上述した先行技術と同じ部分については説明を省略する。
図１は、本発明の一実施形態に係るデータ処理装置を簡略化して示したブロック図である。
データ処理装置１０は、ＣＰＵ１と、メモリ２と、複数のＤＭＡ制御回路１４と、複数のセレクタ回路１５とを含む。以下、各ＤＭＡ制御回路１４を第１〜第３のＤＭＡ制御回路１４ａ〜１４ｃと記載する場合がある。また各セレクタ回路１５を第１〜第３のセレクタ回路１５ａ〜１５ｃと記載する場合がある。
【００４９】
図１の実施形態は、３つのＤＭＡ制御回路のうち２つのＤＭＡ制御回路１４ａ、１４ｂをグループ化した例を示したもので、第１のＤＭＡ制御回路１４ａおよび第２のＤＭＡ制御回路１４ｂから終了信号が出力されるとＡＮＤ回路１８の出力信号により第３のセレクタ１５ｃから第３のＤＭＡ制御回路１４ｃに起動信号が入力され、第３のＤＭＡ制御回路１４ｃにおける処理が終了すると第１のセレクタ１５ａに終了信号が入力され、次の処理ブロックの開始信号が第１のＤＭＡ制御回路１４ａに入力されることを示している。
【００５０】
図２は、本実施形態に係るデータ処理装置の全体構成を示すブロック図である。データ処理装置１０は、ＣＰＵ１と、メモリ２と、ＤＭＡ制御回路を含む複数（図示の例では３つ）の内部ブロック１３ａ〜１３ｃと、メモリ２を制御するメモリコントローラ９と、アービタ＆セレクタ８とを含み、第１の内部ブロック１３ａと第２内部ブロック１３ｂがグループ化されている。
【００５１】
図３は、本実施形態に係るデータ処理装置における要部を詳細に示した図である。図の例は、メモリへのデータの書き込み／読み出しの際に、第１のＤＭＡ制御回路１４ａと第２のＤＭＡ制御回路１４ｂで同時に並行処理を行えるようにしたもので、第１のＤＭＡ制御部１４ａのメモリデータ線およびコマンド信号線は、ＣＰＵからの制御信号ＣＰＵ＿ＣＯＮＴに応じて動作するＳＷ１を介して第２のＤＭＡ制御回路１４ｂのメモリデータ線およびコマンド信号線と接続線Ｌ１、Ｌ２により接続される。
ＤＭＡ制御回路を並列グループ化するやり方としては、これ以外にも、例えば、バスを同一にしてＤＭＡにチップセレクトを設け、必要なＤＭＡをアクティブにするようにしてもよい。つまり、個別に動作させる場合はＤＭＡを１つずつアクティブにし、並列動作させる場合はグループ化するＤＭＡを複数アクティブにすることにより同様の動作を行わせることができる。
【００５２】
図４は、ＣＰＵ１のＤＭＡ関連動作およびＤＭＡ側の動作を説明するためのフローチャートである。所定の動作開始指令が入力されるとＣＰＵ１はＤＭＡ関連動作を開始し、ステップＳ１で各内部ブロック１３の制御回路１７の設定条件を、各内部ブロック１３のレジスタ１６に与えることによって各内部ブロック１３の制御回路１７のレジスタ設定を行う。
次いで、ステップＳ２で、第１のＤＭＡ制御回路１４ａの設定条件を第１の内部ブロック１３ａのレジスタ１６に与えることによって第１のＤＭＡ制御部１４ａのレジスタ設定を行い、ステップＳ３で第２のＤＭＡ制御回路１４ｂの設定条件を第２の内部ブロック１３ｂのレジスタ１６に与えることによって第２のＤＭＡ制御回路１４ｂのレジスタ設定を行い、ステップＳ４で第３のＤＭＡ制御回路１４ｃの設定条件を第３の内部ブロック１３ｃのレジスタ１６に与えることによって第３のＤＭＡ制御回路１４ｃのレジスタ設定を行う。これらのステップＳ２〜Ｓ４では、開始アドレスおよび転送バイト数などが設定される。
【００５４】
ステップＳ５では、ＣＰＵ１からの制御信号ＣＰＵ＿ＣＯＮＴによりスイッチＳＷ１が閉じられて第１のＤＭＡ制御回路１４ａと第２のＤＭＡ制御回路１４ｂのメモリデータ線およびコマンド信号線２とが接続線Ｌ１，Ｌ２により接続され、いずれか一方のＤＭＡ制御回路をマスターにして他方のＤＭＡ制御回路をスレーブにするための設定がなされ、第１のＤＭＡ制御回路１４ａと第２のＤＭＡ制御回路１４ｂとの並列グループ化が行われる。また、ステップＳ５では、図３の例示でスレーブに設定された第２のＤＭＡ制御回路１４ｂがメモリへアクセスするための信号線を無効化する設定も行われる。
【００５５】
ステップＳ６で、ＣＰＵ１は、各セレクタ回路１５の設定条件である選択指令を各内部ブロック１３のレジスタ１６に与える。図４においては、第１の内部ブロック１３ａのレジスタ１６ａおよび第２の内部ブロック１３ｂのレジスタ１６ｂには、ＣＰＵ１からの開始指令を選択することを示す選択指令が与えられる。
【００５６】
また、図３には示されていないが、第３の内部ブロック１３ｃのレジスタ１６ｃには、第１のＤＭＡ制御回路１４ａおよび第２のＤＭＡ制御回路１４ｂからの終了信号によりＡＮＤ回路１８から出力される終了通知を選択することを示す選択指令が与えられる。このようにＣＰＵ１は、各内部ブロック１３のレジスタ１６に選択指令を与えることによって、各ＤＭＡ回路１４を連携するための連携設定を行う。
【００５７】
さらに、ステップＳ６で、ＣＰＵ１は、各内部ブロック１３のレジスタ１６に対して、不要な割り込み要求をマスクするための設定を行う。不要な割り込み要求とは、起動されるべき各ＤＭＡ回路１４のうち、最後に起動されるＤＭＡ回路以外のＤＭＡ回路からの割り込み要求である。図４においては、第１および第２のＤＭＡ回路１４ａ，１４ｂからの割り込み要求がマスクされる。割り込み要求は、ＯＲ回路１９に与えられ、ＯＲ回路１９は割り込み要求をＣＰＵ１に与える。
【００５８】
なお、ステップＳ６で、図３の例示でマスターに設定された第１のＤＭＡ制御回路１４ａがグループの中で最も処理に時間を要するもの、例えば、スキャナーによる画像データの取り込み処理等を選択するように予め設定しておけば、第１のＤＭＡ制御回路１４ａは第２のＤＭＡ制御回路１４ｂからの終了通知を必要とせずにバーストアクセス動作を行うことができる。つまり、第２のＤＭＡ制御回路１４ｂの処理時間が第１にＤＭＡ制御回路１４ａの処理時間よりも必ず短かいことが確実ならば第２のＤＭＡ制御回路１４ｂは、データ処理が終わる毎に第１のＤＭＡ制御回路１４ａに対し終了通知をする必要がなくなる。
【００５９】
ステップＳ７で、ＣＰＵ１は開始指令を出力し、これによって第１のＤＭＡ制御回路１４ａと第２のＤＭＡ制御回路１４ｂの開始ビットを設定し、ステップＳ８で第１のＤＭＡ制御回路１４ａおよび第２のＤＭＡ制御回路１４ｂによるデータ転送が実行され、データ転送が終了すると（ステップＳ９）、ステップＳ１０で第１のＤＭＡ制御回路１４ａから終了通知が出力される。
【００６０】
ステップＳ１１で、第１のＤＭＡ制御回路１４ａからの終了通知によって第３のＤＭＡ制御回路１４ｃがスタートし、ステップＳ１２で第３のＤＭＡ制御回路１４ｃによるデータ転送が実行され、データ転送が終了すると（ステップＳ１３）と、ステップＳ１４で第３のＤＭＡ制御回路１４ｃから終了通知が出力される。
【００６１】
ステップＳ１５で、第３のＤＭＡ制御回路１４ｃすなわち最後のＤＭＡ制御回路による割り込み要求がＣＰＵ１に与えられるとＤＭＡ関連動作を終了する。
【００６２】
図５は、他の実施形態を示したもので、スイッチＳＷ２ＤＭＡ制御回路に対応した入出力側に設け各信号線を接続可能にしたものである。このように構成した場合、入出力装置からのデータの授受においても、複数のＤＭＡ制御回路で共用することが可能となる。
【００６３】
このようにＣＰＵ１が開始指令を出力してから、ＣＰＵ１に割り込み要求を与えられるまでの間、ＣＰＵ１を介さずに第１のＤＭＡ制御回路１４ａによってメモリへのデータの書き込み又はメモリからのデータを読み出す、と同時に第２のＤＭＡ制御回路１４ｂは、第１のＤＭＡ制御回路１４aがメモリ２に書き込もうとしているデータ、又はメモリ２から読み出しデータを取得し、そのデータをメモリ２の別のアドレスに書き込んだり、あるいは、制御回路１７ｂのバッファに転送することが可能となる。
したがって、同じデータを同時に利用することにより、リード動作を減らし効率的にメモリバスを使用することができ、また、ＣＰＵからみたＤＭＡの数を減らすことができる。
【図面の簡単な説明】
【００６４】
【図１】本発明の一実施形態に係るデータ処理装置を簡略化して示すブロック図である。
【図２】データ処理装置の全体構成を示すブロック図である。
【図３】データ処理装置の要部の構成を示す図である。
【図４】ＣＰＵのＤＭＡ関連動作およびＤＭＡ側の動作を説明するためのフローチャートである。
【図５】本発明の他の実施形態に係るデータ処理装置の要部の構成を示す図である。
【図６】従来技術のデータ処理装置の構成を示すブロック図である。
【図７】従来技術におけるＣＰＵのＤＭＡ関連動作を示すフローチャートである。
【図８】本発明の先行技術に係るデータ処理装置を簡略化して示すブロック図である。
【図９】ＤＭＡ制御回路によるメモリへのデータの書き込みおよびメモリからのデータの読み出しの一例を説明するための図である。
【図１０】本発明の先行技術に係るデータ処理装置の全体の構成を示すブロック図である。
【図１１】本発明の先行技術に係るデータ処理装置の内部ブロックの構成を示すブロック図である。
【図１２】本発明の先行技術に係るデータ処理装置のＣＰＵのＤＭＡ関連動作を説明するためのフローチャートである。
【符号の説明】
【００６５】
１…ＣＰＵ、２…メモリ、８…アービタ＆セレクタ、９…メモリコントローラ、１０…データ処理装置、１３…内部ブロック、１４…ＤＭＡ制御回路、１５…セレクタ、１６…レジスタ、１７…制御回路、１８…ＡＮＤ回路、１９…ＯＲ回路。
【図１】
0004446968.tif 000002
【図２】
0004446968.tif 000003
【図３】
0004446968.tif 000004
【図４】
0004446968.tif 000005
【図５】
0004446968.tif 000006
【図６】
0004446968.tif 000007
【図７】
0004446968.tif 000008
【図８】
0004446968.tif 000009
【図９】
0004446968.tif 000010
【図１０】
0004446968.tif 000011
【図１１】
0004446968.tif 000012
【図１２】
0004446968.tif 000013