説明

ダイレクトメモリアクセス制御装置、ダイレクトメモリアクセス制御システム、プログラム、画像処理装置および複合機

【課題】、DMA実行中の転送元および転送領域へのメモリアクセスによる誤動作継続防止を目的とする。
【解決手段】同一のシステムバスを用いて、DMAおよびメモリアクセスの転送制御を行うDMAコントローラであって、DMAにおける転送元のアドレス範囲、およびDMAにおける転送先のアドレス範囲が格納される各レジスタ22〜25と、メモリアクセスにおけるデータ転送を行うためのアドレスが、システムバス上に指定されると、指定されたアドレスが、DMAの転送元のアドレス範囲内、もしくはDMAの転送先のアドレス範囲内のアドレスである場合、メモリアクセスにおけるデータは、不正アクセスである旨の不正アクセス警告信号を出力する不正アクセス検出回路1と、を有することを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ダイレクトメモリアクセスに用いられるダイレクトメモリアクセス制御装置、ダイレクトメモリアクセス制御システム、プログラム、画像処理装置および複合機の技術に関するものである。
【背景技術】
【0002】
従来、ダイレクトメモリアクセス(Direct Memory Access:以下、DMAと称する)の動作において、DMA実行中では、システムバスが、DMAコントローラにバス権を与えている。そのため、プロセッサを含むその他の周辺回路はシステムバスから切り離され、アクセスすることができない。
しかし、近年、システム性能向上のため、周辺I/O(Input/Output)デバイスに対するDMA動作など、低速のDMA動作に関しては、DMA終了アドレスに到達するまでの期間であっても、より優先度の高いデバイスからのバスアクセス要求に対しては、バス権をDMAコントローラから他のデバイスに渡すことが一般的になってきた。
したがって、DMA起動中であっても、プロセッサや他のDMAコントローラによるシステムバスへのアクセスが発生する場合がある。
【0003】
特許文献1には、以下の方法で、DMAライト(Write)による主記憶装置への書き込みが、CPU(プロセッサ)からの読み出しに追い越されて、不正データが読み出されたり、データが失われるのを防ぐアクセス制御装置が開示されている。すなわち、特許文献1に記載のアクセス制御装置は、DMAによる画像処理において、DMA制御装置(DMAコントローラ)が最後のデータの書き込みを終了し、この書込データをメモリ制御装置内のバッファに滞留させる。そして、アクセス制御装置は、メモリへのデータの書き込みが完全に終了する前に、該メモリ領域へのCPUによるアクセスが発生した場合、DMA制御装置によりメモリ書き込み要求の発生しているメモリアドレスと、CPUによるアクセス要求が出されたメモリアドレスとを比較する。比較の結果、メモリアドレスが一致していた場合、アクセス制御装置は、メモリ制御装置内バッファに滞留しているデータ書き込みが終了するまでCPUによるアクセスを制限する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平6−231032号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載のアクセス制御では、CPU(プロセッサ)からのアクセス要求アドレスと、アクセス制御装置内のバッファに溜まっているデータ書き込み要求アドレスとの比較のみを行っているため、DMAが停止する前のDMA転送先領域への不正アクセスや、DMA転送元領域への不正アクセスに対しては効果がないという問題がある。
【0006】
本発明は、このような問題を解決するためになされたものであり、DMA実行中の転送元および転送領域へのメモリアクセスによる誤動作継続防止を可能とすることを目的とする。
【課題を解決するための手段】
【0007】
前記した課題を解決するため、本発明は、同一のシステムバスを用いて、DMAおよびメモリアクセスの転送制御を行うDMA制御装置であって、前記DMAにおける転送元のアドレス範囲、および前記DMAにおける転送先のアドレス範囲が格納される記憶手段と、前記メモリアクセスにおけるデータ転送を行うためのアドレスが、前記システムバス上に指定されると、前記指定されたアドレスが、前記DMAの転送元のアドレス範囲内、もしくは前記DMAの転送先のアドレス範囲内のアドレスである場合、前記メモリアクセスにおけるデータは、不正アクセスである旨の不正アクセス警告信号を出力する不正アクセス検出手段と、を有することを特徴とする。
【発明の効果】
【0008】
本発明によれば、DMA実行中の転送元および転送領域へのメモリアクセスによる誤動作継続防止が可能となる。
【図面の簡単な説明】
【0009】
【図1】第1実施形態に係る不正アクセス検出回路の構成例を示す図である。
【図2】第1実施形態に係る画像処理装置の構成例を示す図である。
【図3】第1実施形態に係るDMAコントローラの構成例を示す図である。
【図4】DMAコントローラにおける処理の流れを示すフローチャートである(その1)。
【図5】DMAコントローラにおける処理の流れを示すフローチャートである(その2)。
【図6】第1実施形態に係る不正アクセス検出処理の流れを示すフローチャートである。
【図7】第2実施形態に係るDMA制御システムの構成例を示す図である。
【図8】第2実施形態に係るDMA制御システムにおける処理の流れを示すフローチャートである。
【図9】第2実施形態に係る割込処理の流れを示すフローチャートである。
【図10】第1実施形態および第2実施形態に係る画像処理装置およびDMA制御システムを搭載した複合機の斜視概略図である。
【発明を実施するための形態】
【0010】
以下に、図面を参照して本発明によるDMA制御装置、DMA制御システムの実施形態について説明する。なお、一方のDMAコントローラ(ダイレクトメモリアクセス)によるDMAと、他方のDMAコントローラ(メモリアクセス)によるDMAとは速度が異なり、双方のDMAが同時期に実行されることも前提としている。なお、他方のDMAコントローラによるDMAは、DMAに限らず一般的なメモリアクセスでもよい。
【0011】
《第1実施形態》
まず、図1〜図6を参照して、本発明に係る第1実施形態を説明する。なお、本実施形態におけるDMAは、スキャナから送られてくる画像データや、ホストインタフェースから送られてくる画像データ、PC(Personal Computer)から送られてくる画像データなどを対象とすることを想定している。
【0012】
(不正アクセス検出回路の構成)
図1は、第1実施形態に係る不正アクセス検出回路の構成例を示す図である。
不正アクセス検出回路(不正アクセス検出手段)1は、図2および図3に示すDMAコントローラ2に含まれるものである。
不正アクセス検出回路1は、4つのアドレス比較器11(11a〜11d)、転送元用ANDゲート12、転送先用ANDゲート13およびORゲート14を有する。
アドレス比較器11aは、DMAコントローラ2に含まれるDMA転送元開始アドレスレジスタ22の転送元開始アドレスと、アドレスバス81(図3)から送られたバスアドレスとを比較する機能を有する。
アドレス比較器11bは、DMAコントローラ2に含まれるDMA転送元終了アドレスレジスタ23の転送元終了アドレスと、アドレスバス81(図3)から送られたバスアドレスとを比較する機能を有する。
アドレス比較器11cは、DMAコントローラ2に含まれるDMA転送先開始アドレスレジスタ24の転送先開始アドレスと、アドレスバス81(図3)から送られたバスアドレスとを比較する機能を有する。
アドレス比較器11dは、DMAコントローラ2に含まれるDMA転送先終了アドレスレジスタ25の転送先終了アドレスと、アドレスバス81(図3)から送られたバスアドレスとを比較する機能を有する。
DMA起動中信号53は、自身のDMAコントローラ2がDMA起動中である場合に「P」すなわち「1」となる信号である。DMA読出アクセス信号51は、自身のDMAコントローラ2による読み出しが発生したとき「N」すなわち「0」となる信号である。DMA書込アクセス信号52は、自身のDMAコントローラ2による書き込みが発生したとき「N」すなわち「0」となる信号である。
【0013】
転送元用ANDゲート12は、図3で後記するDMA転送元アドレスレジスタ26から入力されるDMA読出アクセス信号51と、図3で後記するDMA転送先アドレスレジスタ27から入力されるDMA書込アクセス信号52と、図3で後記するDMAコントローラ制御レジスタ21から入力されるDMA起動中信号53と、アドレス比較器11aからの比較結果信号と、アドレス比較器11bからの比較結果信号との5つの信号の論理積を出力する機能を有する。
また、転送先用ANDゲート13は、図3で後記するDMA転送元アドレスレジスタ26から入力されるDMA読出アクセス信号51と、図3で後記するDMA転送先アドレスレジスタ27から入力されるDMA書込アクセス信号52と、図3で後記するDMAコントローラ制御レジスタ21から入力されるDMA起動中信号53と、アドレス比較器11cからの比較結果信号と、アドレス比較器11dからの比較結果信号との5つの信号の論理積を出力する機能を有する。
【0014】
ORゲート14は、転送元用ANDゲート12からの出力と、転送先用ANDゲート13からの出力との論理和を不正アクセス警告信号として出力する機能を有する。
なお、不正アクセス検出回路1の動作の詳細は、図6を参照して後記する。
【0015】
(画像処理装置の構成)
図2は、第1実施形態に係る画像処理装置の構成例を示す図である。
画像処理装置100は、DMAコントローラ2(DMAコントローラA2a,DMAコントローラB2b)と、プロセッサ3(プロセッサA3a,プロセッサB3b)と、I/O装置4(I/O装置A4a,I/O装置B4b)と、主記憶装置6を制御する主記憶装置コントローラ5と、ディスプレイなどの表示装置(表示手段)7とを有してなる。
各DMAコントローラ2と、プロセッサ3と、I/O装置4、主記憶装置コントローラ5と、表示装置7とは、システムバス8を介して互いに接続されている。
DMAコントローラ2は、DMA読出・書込アクセス信号や、不正アクセス警告信号などをシステムバス8へ出力する。
なお、図2において、DMAコントローラ2、I/O装置4が、2台ずつ記載されているが、これに限らず、3台以上でもよい。また、プロセッサ3は1台でもよい。
なお、DMAコントローラA2aが行うDMAがダイレクトメモリアクセス、DMAコントローラB2bが行うDMAがメモリアクセスである。
【0016】
(DMAコントローラの構成)
図3は、第1実施形態に係るDMAコントローラの構成例を示す図である。
DMAコントローラ(DMA制御装置)2は、不正アクセス検出回路1、DMAコントローラ制御レジスタ21、DMA転送元開始アドレスレジスタ(記憶手段)22、DMA転送元終了アドレスレジスタ(記憶手段)23、DMA転送先開始アドレスレジスタ(記憶手段)24、DMA転送先終了アドレスレジスタ(記憶手段)25、DMA転送元アドレスレジスタ26、DMA転送先アドレスレジスタ27およびDMAデータバッファ28を有してなる。
【0017】
また、システムバス8は、データを転送するためのデータバス82と、データの転送元あるいは転送先のアドレスを転送するためのアドレスバス81とから構成されており、不正アクセス検出回路1には、アドレスバス81からバスアドレス(データの書込・読込場所を示すアドレス)が入力され、さらに不正アクセス検出回路1から不正アクセス警告信号がデータバス82へ出力される。
【0018】
不正アクセス検出回路1については図1で説明したため、説明を省略する。
DMAコントローラ制御レジスタ21には、DMAコントローラ2を全体制御する制御パラメータが格納されている。制御パラメータは、特にアイドル状態からの起動・停止を制御しており、DMAコントローラ2の起動中、DMAコントローラ2はDMA起動中信号53(実際は「1」の信号)を不正アクセス検出回路1へ出力し、停止中(アイドル状態)では「0」を出力する。
【0019】
DMA転送元開始アドレスレジスタ22は、DMAにおけるデータの転送元(例えば、I/O装置4)のアドレス範囲のうち、開始(先頭)アドレスであるDMA転送元開始アドレスを格納しており、このDMA転送元開始アドレスを不正アクセス検出回路1が取り込むように構成されている。
DMA転送元終了アドレスレジスタ23は、DMAにおけるデータの転送元のアドレス範囲のうち、終了(最後尾)アドレスであるDMA転送元終了アドレスを格納しており、このDMA転送元終了アドレスを不正アクセス検出回路1が取り込むように構成されている。
【0020】
DMA転送先開始アドレスレジスタ24は、DMAにおけるデータの転送先(例えば、主記憶装置6)のアドレス範囲のうち、開始(先頭)アドレスであるDMA転送先開始アドレスを格納しており、このDMA転送先開始アドレスを不正アクセス検出回路1が取り込むように構成されている。
DMA転送先終了アドレスレジスタ25は、DMAにおけるデータの転送先のアドレス範囲のうち、終了(最後尾)アドレスであるDMA転送先終了アドレスを格納しており、このDMA転送先終了アドレスを不正アクセス検出回路1が取り込むように構成されている。
【0021】
DMA転送元アドレスレジスタ26には、DMAにおけるデータの転送元(例えば、I/O装置4)のアドレスであるDMA転送元アドレスが格納されている。DMAコントローラ2は、このDMA転送元アドレスを、DMA転送元開始アドレスからDMA転送元終了アドレスまで変化させつつ、アドレスバス81へ送るとともに、不正アクセス検出回路1へDMA読出アクセス信号51を送る機能を有する。
DMA転送先アドレスレジスタ27には、DMAにおけるデータの転送先(例えば、主記憶装置6)のアドレスであるDMA転送先アドレスが格納されている。DMAコントローラ2は、このDMA転送先アドレスを、DMA転送先開始アドレスからDMA転送先終了アドレスまで変化させつつ、アドレスバス81へ送るとともに、不正アクセス検出回路1へDMA書込アクセス信号52を送る機能を有する。
【0022】
DMAデータバッファ28は、データバス82から送られたDMAの転送データと、アドレスバス81から送られた、DMAのデータが有効であることを示すDMA受付信号を格納する機能を有する。
【0023】
(DMAコントローラの処理)
次に、図1〜図3を参照しつつ、図4〜図6に沿ってDMAコントローラ2および不正アクセス検出回路1における処理を説明する。
図4および図5は、DMAコントローラにおける処理の流れを示すフローチャートである。なお、図4および図5の処理のうち、ステップS101とステップS102はプロセッサによる処理であり、ステップS103以降はDMAコントローラ2による処理である。また、ステップS105およびステップS109の処理は、制御対象となっているデバイス(I/O装置4および主記憶装置コントローラ5)による処理である。
DMAを開始する場合、まずプロセッサ3は、予め設定されているDMAコントローラ2(DMAコントローラ2a側)に対して、DMAの転送データ(DMAデータ)を読み出すための転送元アドレス範囲およびDMAデータを書き込むための転送先アドレス範囲を読み込む(図4のS101)。
そして、プロセッサ3は、DMAコントローラ2のDMA転送元開始アドレスレジスタ22に開始アドレスを書き込み、DMAコントローラ2のDMA転送元終了アドレスレジスタ23に終了アドレスを書き込むことで、転送元アドレス範囲を設定する。
同様に、プロセッサ3は、DMAコントローラ2のDMA転送先開始アドレスレジスタ24に開始アドレスを書き込み、DMAコントローラ2のDMA転送先終了アドレスレジスタ25に終了アドレスを書き込むことで、転送先アドレス範囲を設定する。
次に、I/O装置4の起動タイミングに応じてプロセッサ2が制御レジスタ21を通してアイドル状態となっていたDMAコントローラ2(DMAコントローラ2a側)を起動する(S102)。
【0024】
起動されたDMAコントローラ2は、DMAコントローラ制御レジスタ21から不正アクセス検出回路1に入力されるDMA起動中信号53を「1」とし(S103)、DMAを開始する。
なお、本実施形態では、前記したようにDMA起動中信号53の「1」がDMAコントローラ2が起動中であることを示し、「0」がアイドル中であることを示すものとする。
【0025】
DMAコントローラ2(DMAコントローラ2a側)は、起動直後であれば、DMA転送元開始アドレスレジスタ22の内容を、DMA転送元アドレスレジスタ26にコピーし、システムバス8(アドレスバス81)に対してDMA転送元アドレスを出力し、読出先のデバイス(例えば、I/O装置4など)に読出アクセスを要求する(S104)。このとき、不正アクセス検出回路1にDMA読出アクセス信号51が入力される。
【0026】
読出アクセスの要求を受けたI/O装置4は、読出アクセス信号に含まれるDMA転送元アドレスに該当するデータを読み出し、読み出したデータをシステムバス8(データバス82)へ出力する(S105)。
データバス82に出力されたデータは、DMAコントローラ2(DMAコントローラ2a側)のデータバッファ28に一時的に保存される。
【0027】
次に、DMAコントローラ2(DMAコントローラ2a側)は、I/O装置4からの読出状態信号に基づいてDMAの読出対象となっているDMAデータの読み出しが完了したか否かを判定する(S106)。
ステップS106の結果、読み出しが完了していない場合(S106→No)、読出対象のデバイスのコントローラはステップS105を繰り返す。
ステップS106の結果、読み出しが完了している場合(S106→Yes)、DMAコントローラ2は、DMA転送元アドレスレジスタ26のDMA転送元アドレスを1増加させ(S107)、さらに、読出アクセスを解除して、次の読出アクセスの要求に備える。
【0028】
次に、DMAコントローラ2(DMAコントローラ2a側)は、起動直後であれば、DMA転送先開始アドレスレジスタ24の内容を、DMA転送先アドレスレジスタ26にコピーし、システムバス8(アドレスバス81)に対してDMA転送先アドレスを出力し、書込先のデバイス(例えば、主記憶装置コントローラ5など)に書込アクセスを要求する(図5のS108)。このとき、不正アクセス検出回路1にDMA書込アクセス信号52が入力される。
【0029】
書込アクセスの要求を受けた主記憶装置コントローラ5は、書込アクセス信号に含まれるDMA転送先アドレスに該当するデータを書き込む(S109)。
【0030】
次に、DMAコントローラ2は、I/O装置4からの信号に基づいてDMAの書込対象となっているDMAデータの書き込みが完了したか否かを判定する(S110)。
ステップS110の結果、書き込みが完了していない場合(S110→No)、主記憶装置コントローラ5はステップS109を繰り返す。
ステップS110の結果、書き込みが完了している場合(S110→Yes)、DMAコントローラ2は、DMA転送先アドレスレジスタ27のDMA転送先アドレスを1増加させ(S111)、さらに書込アクセスを解除して、主記憶装置コントローラ5に書込アクセスを解除させ、次の書込アクセスの要求に備える。
【0031】
そして、DMAコントローラは、DMA転送元アドレスがDMA転送元終了アドレスの値であるか、またはDMA転送先アドレスがDMA転送先終了アドレスの値であるか否かを判定する(S112)。
DMA転送元アドレスがDMA転送元終了アドレスの値でなく、かつDMA転送先アドレスがDMA転送先終了アドレスの値でない場合(S112→No)、DMAコントローラ2は図4のステップS104へ処理を戻す。
DMA転送元アドレスがDMA転送元終了アドレスの値であるか、またはDMA転送先アドレスがDMA転送先終了アドレスの値である場合(S112→Yes)、プロセッサ3はDMAコントローラ2をアイドル状態にし、処理を終了させる。DMAコントローラ2がアイドル状態となるとともに、DMA起動中信号53は「0」となる。
【0032】
(不正アクセス検出回路における処理)
図6は、第1実施形態に係る不正アクセス検出処理の流れを示すフローチャートである。なお、また、図6の処理は図4および図5の処理とパラレルに行われる処理である。
不正アクセス検出回路1は、自デバイスのDMAが起動中であるか否かを判定する(S301)。自デバイスとは、この場合、例えば不正アクセス検出回路1自身が搭載されているDMAコントローラ2である。
ステップS301の結果、自デバイスのDMAが起動中でない場合(S301→No)、不正アクセス検出回路1は「0」を出力する(S309)。
ステップS301の結果、自デバイスが起動中である場合(S301→Yes)、不正アクセス検出回路1は自デバイスのDMA読出アクセス信号51であるか否かを判定する(S302)。
【0033】
ステップS302の結果、自デバイスのDMA読出アクセス信号51である場合(S302→Yes)、不正アクセス検出回路1は「0」を出力する(S309)。
ステップS302の結果、自デバイスのDMA読出アクセス信号51でない場合(S302→No)、不正アクセス検出回路1は自デバイスのDMA書込アクセス信号52であるか否かを判定する(S303)。
ステップS303の結果、自デバイスのDMA書込アクセス信号52である場合(S303→Yes)、不正アクセス検出回路1は「0」を出力する(S309)。
【0034】
ステップS303の結果、自デバイスのDMA書込アクセス信号52でない場合(S303→No)、アドレス比較器11aが、アドレスバス81を介して入力された、他方のDMAコントローラ2などから送られたバスアドレスと、DMA転送元開始アドレスレジスタ22のDMA転送元開始アドレスとを比較し、バスアドレスがDMA転送元開始アドレス以上であるか否かを判定する(S304)。なお、自デバイスがDMAコントローラA2aだとすると、他デバイスはDMAコントローラB2bや、プロセッサA3aや、プロセッサB3bなどが該当する。
【0035】
ステップS304の結果、バスアドレスがDMA転送元開始アドレス未満であれば(S304→No)、不正アクセス検出回路1はステップS306へ処理を進める。
ステップS304の結果、バスアドレスがDMA転送元開始アドレス以上であれば(S304→Yes)、アドレス比較器11bが、アドレスバス81から入力されたバスアドレスと、DMA転送元終了アドレスレジスタ23のDMA転送元終了アドレスとを比較し、バスアドレスがDMA転送元終了アドレス以下であるか否かを判定する(S305)。
【0036】
ステップS305の結果、バスアドレスがDMA転送元終了アドレス以下であれば(S305→Yes)、アドレス比較器11bは「1」を転送元用ANDゲート12へ出力し(S308)、バスアドレスがDMA転送元終了アドレスより大きければ(S305→No)、アドレス比較器11cは、アドレスバス81から入力されたバスアドレスと、DMA転送先開始アドレスレジスタ24のDMA転送先開始アドレスとを比較し、バスアドレスがDMA転送先開始アドレス以上であるか否かを判定する(S306)。
ステップS306の結果、バスアドレスがDMA転送先開始アドレス未満であれば(S306→No)、アドレス比較器11cは「0」を転送先用ANDゲート13へ出力する(S309)。
【0037】
ステップS306の結果、バスアドレスがDMA転送先開始アドレス以上であれば(S306→Yes)、アドレス比較器11dが、アドレスバス81から入力されたバスアドレスと、DMA転送先終了アドレスレジスタ25のDMA転送先終了アドレスとを比較し、バスアドレスがDMA転送先終了アドレス以下であるか否かを判定する(S307)。
ステップS307の結果、バスアドレスがDMA転送先終了アドレス以下であれば(S307→Yes)、アドレス比較器11dは「1」を転送先用ANDゲート13へ出力し(S308)、バスアドレスがDMA転送先終了アドレスより大きければ(S307→No)、アドレス比較器11dは「0」を転送先用ANDゲート13へ出力する(S309)。
【0038】
そして、転送元用ANDゲート12は、入力された転送元関連信号の論理積を算出し、算出結果をORゲート14へ出力する。ここで、転送元関連信号とは、アドレス比較器11a,11bから出力された比較結果と、DMA起動中信号53と、DMA読出アクセス信号51と、DMA書込アクセス信号52とである。
ここで、DMA読出アクセス信号51とDMA書込アクセス信号52は負論理であり、DMAコントローラ2自身のアクセスを除外するために入力されている。
【0039】
以上の動作により、バスアドレスがDMA転送元開始アドレスからDMA転送元終了アドレスまでの範囲内にあり、かつDMAコントローラ2が起動中であり、さらにバスアドレスがDMAコントローラ2自身のアクセスではない場合、転送元用ANDゲート12は「1」を出力する。一方、バスアドレスがDMA転送元開始アドレスからDMA転送元終了アドレスまでの範囲外であったり、DMAコントローラ2が停止中、またはDMAコントローラ2自身のアクセスが発生している場合、転送元用ANDゲート12は「0」を出力する。
【0040】
そして、転送先用ANDゲート13は、入力された転送先関連信号の論理積を算出し、算出結果をORゲート14へ出力する。ここで、転送先関連信号とは、アドレス比較器11c,11dから出力された比較結果と、DMA起動中信号53と、DMA読出アクセス信号51と、DMA書込アクセス信号52とである。
ここで、DMA読出アクセス信号51とDMA書込アクセス信号52は負論理であり、DMAコントローラ2自身のアクセスを除外するために入力されている。
【0041】
以上の動作により、バスアドレスがDMA転送先開始アドレスからDMA転送先終了アドレスまでの範囲内にあり、かつDMAコントローラ2が起動中であり、さらに、バスアドレスがDMAコントローラ2自身のアクセスではない場合、転送先用ANDゲート13は「1」を出力する。一方、バスアドレスがDMA転送先開始アドレスからDMA転送先終了アドレスまでの範囲外であったり、DMAコントローラ2が停止中、またはDMAコントローラ2自身のアクセスが発生している場合、転送先用ANDゲート13は「0」を出力する(S309)。
【0042】
そして、ORゲート14は、転送元用ANDゲート12の出力と、転送先用ANDゲート13の出力の論理和を算出し、この論理和を不正アクセス警告信号としてデータバス82に出力し、主記憶装置6上にフラグを立てる。
すなわち、不正アクセス警告信号は、自デバイスのDMAが起動中で、バスアドレスが自デバイスのDMA読出または書込ではなく、他のデバイスが持つ他方のDMAコントローラなどにより送られた他デバイスバスアドレスと判断され、さらにバスアドレスの範囲が自デバイスのDMA転送元開始から終了の範囲またはバスアドレスの範囲が自身のDMA転送先開始から終了の範囲にあてはまる場合に「1」を出力する(S308)。一方、自デバイスのDMAが未使用またはバスアドレスが自デバイスのDMA読出または書込によるもの、またはバスアドレスの範囲が自身のDMA転送元開始から終了の範囲外、またはバスアドレスの範囲が自身のDMA転送先開始から終了の範囲外の場合に「0」を出力する(S309)。
そして、コントローラ3は、定期的に主記憶装置6に書き込まれた不正アクセス警告信号、またはフラグを監視し、不正アクセスを示す「1」の情報である場合は、表示装置7にアラート表示を行わせ、DMAコントローラA2aおよびDMAコントローラB2bにDMA処理を中断させ、処理を終了する。
【0043】
第1実施形態によれば、DMA転送元アドレス範囲、DMA転送先アドレス範囲に対する不正アクセスを検出できる。すなわち、DMAが停止する前のDMA転送先領域への不正アクセスや、DMA転送元領域への不正アクセスを検出することができる。
【0044】
《第2実施形態》
これまでの技術では、複数のDMA制御装置が動作しているときにおいて、DMA転送領域が重なってしまう場合についても誤動作を防ぐことはできないという問題がある。
次に、図7〜図9を参照して、このような問題を解決するための本発明に係る第2実施形態を説明する。
【0045】
(DMA制御システムの構成)
図7は、第2実施形態に係るDMA制御システムの構成例を示す図である。
さらに、システムバス8には不正アクセス検出用ORゲート92からの出力によって、割り込みの発生を検知する割込コントローラ93が接続されている。
【0046】
不正アクセス検出用ORゲート92は、複数のDMAコントローラ2から出力される不正アクセス警告信号の論理和を算出し、論理和の結果をバスアクセス状態出力回路91へ出力すると共に、システムバス8を介して割込コントローラ93へ割込信号を出力する機能を有する。
バスアクセス状態出力回路91には、各DMAコントローラ2から入力された、DMAの対象となっているデバイスに対するDMA読出アクセス信号51およびDMA書込アクセス信号52(まとめて、バスアクセス要求信号と称する)が常時入力されており、不正アクセス検出用ORゲート92から出力された信号が「1」であるとき、バスアクセス要求信号の入力状態を主記憶装置6などの記憶媒体に保存し、プロセッサ3からバスアクセス要求信号の状態出力の指示を受けると、システムバス8へ保存しているバスアクセス要求信号の入力状態を出力する機能を有する。
【0047】
(DMA制御システムの処理)
次に、図7を参照しつつ、図8に沿ってDMA制御システムの処理を説明する。
図8は、第2実施形態に係るDMA制御システムにおける処理の流れを示すフローチャートである。
不正アクセス検出用ORゲート92には、複数のDMAコントローラ2から不正アクセス警告信号が入力されており、不正アクセス検出用ORゲート92は、これらの各不正アクセス警告信号の論理和を算出し(S401)、算出結果をバスアクセス状態出力回路91へ出力する。
バスアクセス状態出力回路91は、不正アクセス検出用用ORゲート14から送られた論理和が「1」であるか否かを判定する(S402)。つまり、バスアクセス状態出力回路91は、少なくとも1台のDMAコントロ一ラがDMA不正アクセスを検知し、不正アクセス警告信号「1」を出力したか否かを判定する。
ステップS402の結果、論理和が「0」である場合(S402→No)、DMA制御システム9はステップS401へ処理を戻す。
ステップS402の結果、論理和が「1」である場合(S402→Yes)、バスアクセス状態出力回路91は、バスアクセス要求信号の状態を主記憶装置6などの記憶媒体に保存し(S403)、システムバス8を介して割込信号を割込コントローラ93へ送信し(S404)、DMA制御システム9はステップS401へ処理を戻す。
【0048】
図9は、第2実施形態に係る割込処理の流れを示すフローチャートである。
割込コントローラ93が割込信号を受信することによって、割込発生を検知すると、その旨をプロセッサ3へ通知し、プロセッサ3は、バスアクセス状態出力回路91にバスアクセス要求信号状態の出力を指示する。すると、バスアクセス状態出力回路91は、保存しているバスアクセス要求信号の状態をシステムバス8へ出力する(S501)。
そして、表示装置7(図2)が、システムバス8を介して取得したバスアクセス要求信号の状態を表示する(S502)。
【0049】
以上のように第2実施形態によれば、第1実施形態におけるDMA不正アクセスの検出・表示(アラート表示)に加え、複数のDMA制御装置が動作しているときにおいて、DMA転送領域が重なってしまう場合についても誤動作を防ぐことに加え、その発生要因も表示することができ、画像処理装置100のプログラムのデバッグに有益な情報を得ることができる。
【0050】
また、本実施形態では、不正アクセス検出回路1や、DMAコントローラ2をCPUを内蔵したハードウェアで構成してあるが、ソフトウェアで実現してもよい。例えば、PCにおけるROM(Read Only Memory)や、HD(Hard Disk)に格納されたプログラムが、RAM(Random Access Memory)に展開され、CPUによって実行されることによって、不正アクセス検出回路1や、DMAコントローラ2を具現化してもよい。このようなプログラムをPCで実行することにより、PCを不正アクセス検出回路1や、DMAコントローラ2のシミュレータとして使用することができる。
【0051】
《複合機》
図10は、第1実施形態および第2実施形態に係る画像処理装置およびDMA制御システムを搭載した複合機の斜視概略図である。
複合機200は、大別して、読取ユニット201、表示ユニット202、制御ユニット203、印刷ユニット204、操作パネルユニット205、通信ユニット206を有している。
読取ユニット201は、LED(Light Emitting Diode)(線状光源)やCCD(Charge Coupled Device)などの読取センサを有するスキャナ装置であり、原稿を読み取って電気信号に変換し、さらにイメージデータに変換する機能を有する。なお、読取ユニット201は、図2のI/O装置4に相当するものである。
制御ユニット203には、複合機200を制御するための処理装置が内蔵されており、例えば図2のDMAコントローラ2、プロセッサ3、主記憶装置コントローラ5、主記憶装置6、図7のDMA制御システム9などが内蔵されている。
【0052】
印刷ユニット204は、電子写真方式を利用したのプリンタ装置であり、読取ユニット201で読み取られた画像データや、通信ユニット206が受信した通信回線や外部インタフェースからのデータを印刷する機能を有する。なお、印刷ユニット204は、図2のI/O装置4に相当するものである。
操作パネルユニット205は、画像処理条件の各種設定や装置の状態等を表示する表示ユニット202と、装置への命令を入力するための操作ユニットとを備えている。なお、表示ユニット202は、図2の表示装置7に相当する構成であり、操作ユニットは、図2のI/O装置4に相当するものである。
また、通信ユニット206は、PCなど、他の機器が接続される箇所であり、図2のI/O装置4に相当するものである。なお、通信ユニット206は複合機200の背面に配置されているため、図10では隠れている。
【0053】
なお、第1実施形態において、不正アクセス検出回路1をDMAコントローラ2内部に持たせたが、主記憶装置コントローラ5や図示しないバスコントローラに搭載してもよい。
また、本実施形態における画像処理装置100は、プリンタ(インパクトプリンタ、インクジェットプリンタ)、ファクシミリ、スキャナ、またはそれらの複合装置、PCなど、DMA機能を有する電子機器一般においても適応可能である。
【符号の説明】
【0054】
1 不正アクセス検出回路(不正アクセス検出手段)
2 DMAコントローラ(DMA制御装置)
3 プロセッサ
4 I/O装置
5 主記憶装置コントローラ
6 主記憶装置
7 表示装置(表示手段)
8 システムバス
9 DMA制御システム
11(11a〜11d) アドレス比較器
12 転送元用ANDゲート
13 転送先用ANDゲート
14 ORゲート
21 DMAコントローラ制御レジスタ
22 DMA転送元開始アドレスレジスタ(記憶手段)
23 DMA転送元終了アドレスレジスタ(記憶手段)
24 DMA転送先開始アドレスレジスタ(記憶手段)
25 DMA転送先終了アドレスレジスタ(記憶手段)
26 DMA転送元アドレスレジスタ
27 DMA転送先アドレスレジスタ
28 DMAデータバッファ
51 DMA読出アクセス信号
52 DMA書込アクセス信号
53 DMA起動中信号
81 アドレスバス
82 データバス
91 バスアクセス状態出力回路(DMA不正アクセス要因出力手段)
92 不正アクセス検出用ORゲート
93 割込コントローラ
100 画像処理装置
200 複合機
201 読取ユニット
202 表示ユニット
203 制御ユニット
204 印刷ユニット
205 操作パネルユニット
206 通信ユニット

【特許請求の範囲】
【請求項1】
同一のシステムバスを用いて、ダイレクトメモリアクセスおよびメモリアクセスの転送制御を行うダイレクトメモリアクセス制御装置であって、
前記ダイレクトメモリアクセスにおける転送元のアドレス範囲、および前記ダイレクトメモリアクセスにおける転送先のアドレス範囲が格納される記憶手段と、
前記メモリアクセスにおけるデータ転送を行うためのアドレスが、前記システムバス上に指定されると、
前記指定されたアドレスが、前記ダイレクトメモリアクセスの転送元のアドレス範囲内、もしくは前記ダイレクトメモリアクセスの転送先のアドレス範囲内のアドレスである場合、前記メモリアクセスにおけるデータは、不正アクセスである旨の不正アクセス警告信号を出力する不正アクセス検出手段と、
を有することを特徴とするダイレクトメモリアクセス制御装置。
【請求項2】
前記記憶手段は、前記ダイレクトメモリアクセスの転送元のアドレスにおける開始アドレスおよび終了アドレスが記憶され、
前記不正アクセス検出手段は、
前記システムバス上に指定されたアドレスが、前記開始アドレス以上の値であり、かつ前記外部装置からのアドレスが、前記終了アドレス以下の値である場合に、前記不正アクセス警告信号を出力する
ことを特徴とする請求項1に記載のダイレクトメモリアクセス制御装置。
【請求項3】
前記記憶手段は、前記ダイレクトメモリアクセスの転送先のアドレスにおける開始アドレスおよび終了アドレスが記憶され、
前記不正アクセス検出手段は、
前記システムバス上に指定されたアドレスが、前記開始アドレス以上の値であり、かつ前記外部装置からのアドレスが、前記終了アドレス以下の値である場合に、前記不正アクセス警告信号を出力する
ことを特徴とする請求項1に記載のダイレクトメモリアクセス制御装置。
【請求項4】
前記不正アクセス検出手段は、
前記ダイレクトメモリアクセスの転送元のアドレス範囲内、もしくは前記ダイレクトメモリアクセスの転送先のアドレス範囲内のアドレスである場合に加え、前記ダイレクトメモリアクセス制御装置自分自身に対する書込要求および読込要求がない場合に、前記不正アクセス警告信号を出力する
ことを特徴とする請求項1に記載のダイレクトメモリアクセス制御装置。
【請求項5】
前記メモリアクセスは、他のダイレクトメモリアクセスであり、該他のダイレクトメモリアクセスを備える他のデバイスは、他の不正アクセス検出手段を備える
ことを特徴とする請求項1から請求項4のいずれか一項に記載のダイレクトメモリアクセス制御装置。
【請求項6】
請求項1から請求項5のいずれか一項に記載のダイレクトメモリアクセス制御装置を、少なくとも1つ有するダイレクトメモリアクセス制御システムであって、
前記ダイレクトメモリアクセス制御装置のうち、少なくとも1つから前記不正アクセス警告信号を受信したとき、ダイレクトメモリアクセスの対象となっているデバイスに対するバスアクセス要求信号の状態を表示手段へ出力するダイレクトメモリアクセス不正アクセス要因出力手段を有する
ことを特徴とするダイレクトメモリアクセス制御システム。
【請求項7】
請求項1から請求項5のいずれか一項に記載のダイレクトメモリアクセス制御装置の不正アクセス検出手段に係る処理をコンピュータに実行させるためのプログラム。
【請求項8】
請求項6に記載のダイレクトメモリアクセス制御システムのダイレクトメモリアクセス不正アクセス要因出力手段の処理をコンピュータに実行させるためのプログラム。
【請求項9】
請求項1から請求項5のいずれか一項に記載のダイレクトメモリアクセス制御装置を有する
ことを特徴とする画像処理装置。
【請求項10】
請求項6に記載のダイレクトメモリアクセス制御システムを有する
ことを特徴とする画像処理装置。
【請求項11】
読取ユニット、通信ユニット、主記憶装置および印刷ユニットを備える複合機であって、
前記読取ユニットまたは前記通信ユニットから前記主記憶装置まで前記ダイレクトメモリアクセスにより転送し、前記主記憶装置から前記印刷ユニットまで前記メモリアクセスにより転送する請求項1から請求項5のいずれか一項に記載のダイレクトメモリアクセス制御装置を備えることを特徴とする複合機。
【請求項12】
読取ユニット、通信ユニット、主記憶装置および印刷ユニットを備える複合機であって、
前記読取ユニットまたは前記通信ユニットから前記主記憶装置まで前記ダイレクトメモリアクセスにより転送し、前記主記憶装置から前記印刷ユニットまで前記メモリアクセスにより転送する請求項6に記載のダイレクトメモリアクセス制御システムを備えることを特徴とする複合機。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2012−98985(P2012−98985A)
【公開日】平成24年5月24日(2012.5.24)
【国際特許分類】
【出願番号】特願2010−247187(P2010−247187)
【出願日】平成22年11月4日(2010.11.4)
【出願人】(591044164)株式会社沖データ (2,444)
【Fターム(参考)】