説明

データ処理装置

【課題】 簡素な構成で、複数のコントローラ間での排他処理によるバス効率の低下を抑制することができるデータ処理装置を提供する。
【解決手段】 複合装置10において、コントローラ100は、割込要求元および割込要求先毎に割当てられた複数の割込要求領域を含むレジスタ110と、信号線156a〜156dを介して各割込要求先と接続される出力端子122a〜122dと、割込要求領域への割込信号発生要求のバス150を介した書き込みに伴って、対応する割込要求先に出力端子を介して割込信号を出力する割込信号出力部120と、を有し、各コントローラ300〜500は、割込情報を記憶するメモリ310〜510と、割込処理を行う場合、割込要求先のメモリ310〜510に割込情報を、およびレジスタ110における割込要求先に対応する割込要求領域に割込信号発生要求を、バス150を介して書き込むPCIC306〜506と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理装置に関し、特に、ホストコントローラおよびバスを介して接続される複数のデバイスコントローラを備えたデータ処理装置に関する。
【背景技術】
【0002】
従来、ホストコントローラと複数のデバイスコントローラ間を接続する代表的なバスとして、PCI(Peripheral Components Interconnect)バスがある。従来のPCIバスは、ホストコントローラに対して専用線を用いて割り込みの通知が可能である。従来、PCIバスは、パーソナルコンピュータにおいて、I/Oデバイスを接続するために作成されたものであるため、割込信号は、各デバイスからホストコントローラ方向への割込信号にのみ対応していた。
【0003】
PCIバスを組み込みシステムに採用する場合、ホストコントローラから各デバイスへの割り込み、さらに各デバイス間での相互割り込み信号が必要となってくる。このような組み込みシステムとして、たとえば、特許文献1に記載されたものがある。同文献に記載されたシステムは、PCIバス経由で、割込メッセージを書き込むメモリ回路およびこのメモリ回路への書き込みの完了を検知して割込要求信号をCPU(Central Processing Unit)に対して発生する割込要求発生回路を有するMCC(Multi-processor Communication Controller)を設け、CPUに対して割り込みを通知する。
【0004】
ところで、PCIバスでは、一つのターゲットデバイスに対して複数のマスタデバイスからアクセスがある場合がある。つまり、あるデバイスが書いたステータス値を別の処理を行っている最中に別のデバイスがバス権を取得し、そのステータス値を上書きしてしまう可能性がある。よってアクセスの排他制御が必要となる。このような排他制御の従来技術として、PCIバス規格にあるLOCK#信号を使用する方法や、レジスタ上に1ビットの情報を用意し、この論理によってあるマスタが処理を行っている最中であることを示し、他のマスタからのアクセスを開始させない方法などがある(特許文献2)。
【特許文献1】特開平1−133169号公報
【特許文献2】特表平9−508227号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、上記従来技術において、LOCK#信号は、ホスト−PCIブリッジ間やPCIブリッジ−PCIブリッジ間での排他的データ転送に使用されるもので有効となるが、通常のデバイスからのLOCK#信号は無視されてしまい、デバイス間の排他処理には使用できない。また、情報ビットを設ける方法では、処理を行う前に必ずこのビットをリードして状態を確認する必要があるため、アクセスサイクルが増え、バス転送効率を低下させる要因となる。
【0006】
本発明は上記事情に鑑みてなされたものであり、その目的とするところは、簡素な構成で、複数のコントローラ間での排他処理によるバス効率の低下を抑制することができるデータ処理装置を提供することにある。
【課題を解決するための手段】
【0007】
本発明によれば、ホストコントローラおよび前記ホストコントローラにバスを介して接続されるデバイスコントローラを備えたデータ処理装置において、
前記ホストコントローラは、
割込要求先および割込要求先毎にそれぞれ割り当てられ、前記バスを介して各コントローラから割込信号発生要求を書込可能な複数の割込要求領域を含む割込コントロールレジスタと、
割込要求先毎にそれぞれ割り当てられ、信号線を介して各割込要求先と個別に接続される複数の出力端子と、
前記割込要求領域への割込信号発生要求の書き込みに伴って、対応する割込要求先に前記出力端子を介して割込信号を出力する割込信号出力部と、を有し、
前記デバイスコントローラは、
割込情報を記憶する割込情報記憶部と、
割込要求先となるコントローラに対して割込処理を行う場合、割込要求先の前記割込情報記憶部に前記バスを介して割込情報を書き込むとともに、前記割込コントロールレジスタにおける割込要求先に対応する割込要求領域に前記バスを介して割込信号発生要求を書き込む制御部と、
を備えたことを特徴とするデータ処理装置が提供される。
【0008】
ここで、割込コントロールレジスタから出力される割込信号は、信号線を介してピアツーピアで電気的に接続される各コントローラに入力される。
【0009】
この発明によれば、割込要求元および割込要求先の各組み合わせに対して個別に割込要求領域が割り当てられ、一つの組み合わせに対して、一つの割込要求領域を割り当てた割込コントロールレジスタを設けたので、複数の割込要求元からの割込信号発生要求の書き込みが競合した場合でも、他の割込要求元によって上書きされてしまうことを防止できる。すなわち、コントローラ間の排他制御を、バスのパフォーマンスを落とすことなく実現できる。
【0010】
上記データ処理装置において、前記デバイスコントローラは、前記信号線を介して割込信号を受信する割込信号受信部と、前記割込信号受信部により割込信号を受信したとき、前記割込情報記憶部の前記割込情報を読み出し、前記割込情報に基づいて、所定の処理を実行する処理部と、を備えることができる。
【0011】
ここで、割込情報とは、たとえば、割込要因、コマンド、データを含む。この構成によれば、デバイスコントローラからターゲットのデバイスに対して割込要求を行い、割込情報を伝達し、所定の処理を行わせることができる。
【0012】
上記データ処理装置において、前記割込信号出力部は、各割込要求領域において、割込要求先毎に異なるビット位置に割り当てられた機能ビットと前記出力端子とを接続するものとすることができる。
【0013】
この構成によれば、一つの割込要求領域において、割込信号発生要求が書き込まれた場合に論理が変化、たとえば、正論理から負論理に変化する機能ビットの位置を、割込要求元毎にずらすことで、他のコントローラによって機能ビットが上書きされることを防止できる。すなわち、他のコントローラがアドレスを間違って割込信号発生要求を書き込んだとしても、コントローラ毎に機能ビットの位置を異ならせているため、他のコントローラによって機能ビットの論理が変えられてしまうのを防止できる。
【0014】
上記データ処理装置において、前記ホストコントローラは、割込要求先となるコントローラに対して割込処理を行う場合、割込要求先の前記割込情報記憶部に前記バスを介して割込情報を書き込むとともに、前記割込コントロールレジスタにおける割込要求先に対応する割込要求領域に割込信号発生要求を書き込む制御部を備えることができる。
【0015】
上記データ処理装置において、前記ホストコントローラは、割込情報を記憶する割込情報記憶部と、前記信号線を介して割込信号を受信する割込信号受信部と、前記割込信号受信部により割込信号を受信したとき、前記割込情報記憶部の前記割込情報を読み出し、前記割込情報に基づいて、所定の処理を実行する処理部と、を備えることができる。
上記データ処理装置において、前記バスはPCIバスとすることができる。
【0016】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0017】
本発明によれば、簡素な構成で、複数のコントローラ間での排他処理によるバス効率の低下を抑制することができるデータ処理装置が提供される。
【発明を実施するための最良の形態】
【0018】
(第一の実施の形態)
図1は、本発明の実施の形態に係るデータ処理装置のブロック図である。本実施形態において、データ処理装置は、ホストコントローラ(MFPコントローラ100)、および複数のデバイスコントローラ、たとえば、通信コントローラ300、コピーコントローラ400、プリンタコントローラ500などを含む複合装置10、たとえば、MFP(Multi Functional Peripheral)である。
【0019】
本実施形態において、ホストコントローラ(MFPコントローラ100)およびホストコントローラにバス(PCIバス150a、150b)を介して接続されるデバイスコントローラ(通信コントローラ300、コピーコントローラ400、プリンタコントローラ500)を備えたデータ処理装置(複合装置10)において、ホストコントローラ(MFPコントローラ100)は、割込要求先毎にそれぞれ割り当てられ、バスを介して各コントローラから割込信号発生要求を書込可能な複数の割込要求領域を含む割込コントロールレジスタ(割込コントロールレジスタ110)と、割込要求先毎にそれぞれ割り当てられ、信号線(信号線156a、156b、156c、156d)を介して各割込要求先と個別に接続される複数の出力端子(出力端子122a、122b、122c、122d、122e)と、割込要求領域への割込信号発生要求の書き込みに伴って、対応する割込要求先に出力端子を介して割込信号を出力する割込信号出力部(割込信号出力部120)と、を有し、デバイスコントローラ(通信コントローラ300、コピーコントローラ400、プリンタコントローラ500)は、割込情報を記憶する割込情報記憶部(メモリ310、410、510)と、割込要求先となるコントローラに対して割込処理を行う場合、割込要求先の割込情報記憶部にバスを介して割込情報を書き込むとともに、割込コントロールレジスタにおける割込要求先に対応する割込要求領域にバスを介して割込信号発生要求を書き込む制御部(PCIC306、406、506)と、を備える。
【0020】
なお、図1において、本発明の本質に関わらない部分の構成については省略してある。また、複合装置10の各構成要素は、任意のコンピュータのCPU、メモリ、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスクなどの記憶ユニット、ネットワーク接続用インタフェースを中心にハードウェアとソフトウェアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。以下説明する各図は、ハードウェア単位の構成ではなく、機能単位のブロックを示している。
【0021】
詳細には、複合装置10は、MFPコントローラ100と、通信コントローラ300と、コピーコントローラ400と、プリンタコントローラ500と、を備える。MFPコントローラ100は、複合装置10の本体装置のコントローラであり、複合装置10全体を制御する。通信コントローラ300は、複合装置10と、パーソナルコンピュータなどの他の装置との通信インタフェース部として機能する。コピーコントローラ400は、複合装置10の画像処理を行うコントローラであり、スキャナなどが読み取った画像データや通信コントローラ300が受信したファクシミリ原稿の画像データの処理を行う。プリンタコントローラ500は、複合装置10の印刷出力処理を行うコントローラであり、たとえば、コピーコントローラ400で処理された画像データを印刷出力処理する。
【0022】
MFPコントローラ100および通信コントローラ300は、プライマリPCIバス150aを介して接続され、コピーコントローラ400およびプリンタコントローラ500は、セカンダリPCIバス150bを介してPCICブリッジ154を経由してプライマリPCIバス150aに接続され、MFPコントローラ100および通信コントローラ300と接続される。本実施形態において、プライマリPCIバス150aおよびセカンダリPCIバス150bは、32ビット、66MHzのバスである。なお、本実施形態において、PCICブリッジ154を用いて2つのプライマリPCIバス150aおよびセカンダリPCIバス150bを接続した構成としたが、バス構成は一例であり、1つのPCIバスのみで構成することもできる。なお、以下、プライマリPCIバス150aおよびセカンダリPCIバス150bは、PCIバス150と呼ぶ。
【0023】
MFPコントローラ100は、CPU102と、割込コントローラ(INTC)104と、PCIコントローラ(PCIC)106と、割込コントロールレジスタ110と、メモリ130と、を備え、CPU102、PCIコントローラ106、割込コントロールレジスタ110、およびメモリ130は、ホストシステムバス140を介して接続される。
【0024】
CPU102は、MFPコントローラ100の各要素とともにMFPコントローラ100全体を制御する。PCIコントローラ106は、PCIバス150に接続され、PCIバス150を介して他のコントローラとの通信を制御する。
【0025】
割込コントローラ104は、MFPコントローラ100の割込コントロールレジスタ110の対応する割込信号出力端子122aに信号線156aを介して接続される割込信号入力端子(/INTxx)を有し、割込信号を受信し、CPU102に割込要求を通知する。CPU102は、割込コントローラ104から割込要求が通知されたとき、後述するメモリ130の割込情報記憶部の割込情報を読み出し、割込情報に基づいて、所定の処理を実行する。
【0026】
PCIコントローラ106は、割込要求先となるコントローラに対して割込処理を行う場合、割込要求先の割込情報記憶部(後述)にPCIバス150を介して割込情報を書き込むとともに、割込コントロールレジスタ110における割込要求先に対応する割込要求領域に割込信号発生要求を書き込む。割込要求先に対応する割込要求領域との関係は、後述する割付テーブルに記憶されている。PCIコントローラ106は、割込要求を行う場合、割付テーブルにアクセスし、割込要求先に対応する割込要求領域(アドレス)を取得し、割込コントロールレジスタ110の該当する割込要求領域にPCIバス150を介して割込信号発生要求を書き込む。
【0027】
割込処理の例としては、たとえば、通信コントローラ300に外部から画像データが入力され、その画像データをプリンタにて印字する場合に発生する「通信コントローラ300からコピーコントローラ400への割込処理」および「コピーコントローラ400からプリンタコントローラ500への割込処理」がある。これらの割込処理が実行されて、PCIバス150を介した画像データの転送が実行される。
【0028】
詳細には、通信コントローラ300は、LANまたはPSTN(公衆電話回線)を介して画像データが入力されると、コピーコントローラ400に対する割込処理を実行する。この割込処理によって、メモリ410を利用して通信コントローラ300からコピーコントローラ400への画像データの転送が実行される。コピーコントローラ400は画像データに対する画像処理を実行する。
【0029】
その後、コピーコントローラ400からプリンタコントローラ500に対する割込処理を実行し、コピーコントローラ400からプリンタコントローラ500への画像データの転送が実行される。プリンタコントローラ500は、コピーコントローラ400から転送されてきた画像データに基づいてプリンタを制御する。
【0030】
また、CPU102が処理を行った後、必要に応じて、割込要求元のコントローラに対して、処理終了を通知する。このときの処理終了通知も、上述したように、PCIバス150を介して割込コントロールレジスタ110の該当する割込要求領域に割込信号発生要求を書き込むことにより行うことができる。
【0031】
割込コントロールレジスタ110は、図2に示すように、割込要求先毎にそれぞれ割り当てられた複数の割込要求領域(図中、「/HINT0」〜「/HINT4」の出力端子名称で示される。)を含む。この割込要求領域には、ホストシステムバス140を介してMFPコントローラ100から、またはPCIバス150を介して通信コントローラ300、コピーコントローラ400およびプリンタコントローラ500から、割込信号発生要求が書込可能である。
【0032】
図1に戻り、割込信号出力部120は、割込要求先毎にそれぞれ割り当てられ、信号線156a〜156dを介して各割込要求先と個別に接続される複数の割込信号出力端子122a〜122dおよび122e(予備端子)を有する。割込信号出力部120は、割込コントロールレジスタ110の割込要求領域への割込信号発生要求の書き込みに伴って、対応する割込要求先に出力端子122a〜122dを介して割込信号を出力する。
【0033】
詳細には、割込信号出力部120には、複数の出力端子122a〜122e、たとえば、CPU102に信号線156aを介して接続される端子122a、通信コントローラ300に信号線156bを介して接続される端子122b、コピーコントローラ400に信号線156cを介して接続される端子122c、プリンタコントローラ500に信号線156dを介して接続される端子122dおよび予備の端子122eが設けられている。このように、割込信号出力部120から出力される割込信号は、信号線156a、156b、156c、156dを介してピアツーピアで電気的に接続される各コントローラに入力される。
【0034】
本実施形態において、割込要求領域のサイズは1ワードであり、割込信号発生要求時は、該当する割込要求領域のアドレスを指定し、所定のデータを書き込む構成となっているが、これに限定されない。たとえば、割込要求領域をビット単位で指定する構成とすることもできる。
【0035】
本実施形態において、割込信号出力部120は、割込信号としてワンショット信号を出力し、各コントローラは、エッジトリガ方式により割込信号の受信有無を検出する。
【0036】
たとえば、割込コントロールレジスタ110に割込信号発生要求を2回書き込み(たとえば、0→1→0)、ワンショット信号を生成し、割込信号を出力する。各割込コントローラ104、304、404、504が、この割込信号をエッジトリガ方式で検出する。
【0037】
図3に、割込要求先と割込要求領域のアドレスの割付テーブルの一例を示す。割付テーブル190は、割込要求先のコントローラ毎に、MFPコントローラ100の割込コントロールレジスタ110の割込要求領域のアドレスが対応付けて記憶される。割付テーブル190は、後述するメモリ130に格納される。なお、電源投入時にMFPコントローラ100から各コントローラに対して、PCIバス150を介して割付テーブル190を通知することができる。
【0038】
また、本実施形態において、割込コントロールレジスタ110は、MFPコントローラ100に設けた構成としたが、これに限定されない。PCIバス150上から書き込み可能であればよい。
【0039】
図1に戻り、メモリ130は、割込情報を記憶する割込情報記憶部(不図示)を含み、詳細には、データエリア132と、コマンドエリア134と、サブコンフィグレーションエリア136と、割付テーブル格納エリア138と、を含む。ここで、割込情報とは、たとえば、割込要因、コマンド、データを含む。メモリ130は、PCIメモリ空間に割り当てられており、PCIバス150を介して、他のコントローラからデータの書き込みが可能である。割付テーブル格納エリア138には、上述の割付テーブル190が格納される。MFPコントローラ100は、割込要求先のメモリの割込情報記憶部において、割込情報を書き込むべきエリア(アドレス)を記憶する書込領域テーブル(不図示)を含む。PCIコントローラ106は、割込要求先のコントローラのメモリの割込情報記憶部に、割込情報を書き込む場合、この書込領域テーブルに従って、自身用に割り当てられたエリアを取得し、そのエリアに書き込みを行う。たとえば、電源投入時にMFPコントローラ100から各コントローラに対して、PCIバス150を介して書込領域テーブルを通知することができる。
【0040】
通信コントローラ300は、CPU302と、割込コントローラ(INTC)304と、PCIコントローラ(PCIC)306と、メモリ310と、を含む。CPU302、PCIコントローラ306、およびメモリ310は、ローカルバス320を介して接続される。
【0041】
CPU302は、通信コントローラ300の各要素とともに、通信コントローラ300全体を制御する。割込コントローラ304は、MFPコントローラ100の割込信号出力部120の割込信号出力端子122bに信号線156bを介して接続される割込信号入力端子(/INTxx)を有し、割込信号を受信し、CPU302に割込要求を通知する。CPU302は、割込コントローラ304から割込要求が通知されたとき、後述するメモリ310の割込情報記憶部の割込情報を読み出し、割込情報に基づいて、所定の処理を実行する。
【0042】
メモリ310は、割込情報を記憶する割込情報記憶部(不図示)を含み、詳細には、データエリア312と、コマンドエリア314と、サブコンフィグレーションエリア316と、割付テーブル格納エリア318と、を含む。ここで、割込情報とは、たとえば、割込要因、コマンド、データを含む。メモリ310は、PCIメモリ空間に割り当てられており、PCIバス150を介して、他のコントローラからデータの書き込みが可能である。割付テーブル格納エリア318には、上述の割付テーブル190がMFPコントローラ100からPCIバス150を介して通知され、格納される。通信コントローラ300は、割込要求先の割込情報記憶部において、割込情報を書き込むべきエリア(アドレス)を記憶する書込領域テーブル(不図示)を含む。PCIコントローラ306は、割込要求先のコントローラのメモリの割込情報記憶部に、割込情報を書き込む場合、この書込領域テーブルに従って、自身用に割り当てられたエリアを取得し、そのエリアに書き込みを行う。
【0043】
PCIコントローラ306は、PCIバス150に接続され、MFPコントローラ100、コピーコントローラ400、およびプリンタコントローラ500と通信を制御する。具体的には、PCIコントローラ306は、割込要求先となるコントローラに対して割込処理を行う場合、割込要求先のメモリの割込情報記憶部にPCIバス150を介して割込情報を書き込むとともに、割込コントロールレジスタ110における割込要求先に対応する割込要求領域にPCIバス150を介して割込信号発生要求を書き込む。PCIコントローラ306は、割込情報を書き込む場合、書込領域テーブルに従って、自身用に割り当てられたエリアを取得し、そのエリアに割込情報の書き込みを行う。また、PCIコントローラ306は、割込要求を行う場合、メモリ310の割付テーブル格納エリア318に記憶されている割付テーブル190にアクセスし、割込要求先に対応する割込要求領域(アドレス)を取得し、割込コントロールレジスタ110の該当する割込要求領域にPCIバス150を介して割込信号発生要求を書き込む。
【0044】
コピーコントローラ400は、DSP(Digital Signal Processor)402と、割込コントローラ(INTC)404と、PCIコントローラ(PCIC)406と、メモリ410と、を含む。DSP402、PCIコントローラ406、およびメモリ410は、ローカルバス420を介して接続される。
【0045】
DSP402は、コピーコントローラ400の各要素とともに、コピーコントローラ400全体を制御する。割込コントローラ404は、MFPコントローラ100の割込信号出力部120の割込信号出力端子122cに信号線156cを介して接続される割込信号入力端子(/INTxx)を有し、割込信号を受信し、DSP402に割込要求を通知する。DSP402は、割込コントローラ404から割込要求が通知されたとき、メモリ410の割込情報記憶部の割込情報を読み出し、割込情報に基づいて、所定の処理を実行する。
【0046】
PCIコントローラ406は、PCIバス150に接続され、MFPコントローラ100、通信コントローラ300、およびプリンタコントローラ500との間の通信を、PCICブリッジ154およびPCIバス150を介して制御する。PCIコントローラ406の機能は、上述のPCIコントローラ306と同様である。メモリ410もメモリ310と同様である。
【0047】
プリンタコントローラ500は、CPU502と、割込コントローラ(INTC)504と、PCIコントローラ(PCIC)506と、メモリ510と、を含む。CPU502、PCIコントローラ506、およびメモリ510は、ローカルバス520を介して接続される。
【0048】
CPU502は、プリンタコントローラ500の各要素とともに、プリンタコントローラ500全体を制御する。割込コントローラ504は、MFPコントローラ100の割込信号出力部120の割込信号出力端子122dに信号線156dを介して接続される割込信号入力端子(/INTxx)を有し、割込信号を受信し、CPU502に割込要求を通知する。CPU502は、割込コントローラ504から割込要求が通知されたとき、メモリ510の割込情報記憶部の割込情報を読み出し、割込情報に基づいて、所定の処理を実行する。
【0049】
PCIコントローラ506は、PCIバス150に接続され、MFPコントローラ100、コピーコントローラ400、およびプリンタコントローラ500との間の通信を、PCICブリッジ154およびPCIバス150を介して制御する。PCIコントローラ506の機能は、上述のPCIコントローラ306と同様である。メモリ510もメモリ310と同様である。
【0050】
このように構成された複合装置10の動作について、以下に説明する。図4は、図1の複合装置10の動作の一例を示すフローチャートである。以下、図1乃至図4を用いて説明する。ここでは、複合装置10に対して、パーソナルコンピュータ(PC)からのプリントデータの印刷要求が行われた場合を例に説明する。
【0051】
まず、図1の通信コントローラ300に対して、PCからプリントデータの転送開始の割込処理が発生する。ローカルバス320を介してCPU302が割込要求を受け付ける(S11)。CPU102は、割込要求先がプリンタコントローラ500であることを判別し、書込領域テーブルからプリンタコントローラ500のメモリ510の割込情報記憶部の自身用に割り当てられたエリアのアドレスを取得し、PCIコントローラ306およびPCIバス150を介して、プリンタコントローラ500のメモリ510の割込情報記憶部にアクセスし、自身用に割り当てられたエリアに割込情報の書き込みを行う(S13)。プリンタコントローラ500において、PCIバス150経由で、PCIコントローラ506を介してメモリ510の割込情報記憶部に割込情報が書き込まれる(S31)。
【0052】
一方、通信コントローラ300において、CPU302が、割付テーブル190にアクセスし、割込要求先のアドレスを取得する(S15)。ここでは、プリンタコントローラ500への割込処理であるので、図3の割付テーブル190からプリンタコントローラ500に対応するアドレス「0x0000000C」を取得する。PCIコントローラ306は、PCIバス150を経由して、MFPコントローラ100の割込コントロールレジスタ110のアドレス、すなわちステップS15で取得したアドレス「0x0000000C」にアクセスし、プリンタコントローラ500への割込信号発生要求を書き込む(S17)。ここで、割込信号発生要求は、レベルLからHへのワンショット信号としてPCIバス150を介して通信コントローラ300からMFPコントローラ100の割込コントロールレジスタ110に書き込まれる。
【0053】
MFPコントローラ100において、割込コントロールレジスタ110のアドレス「0x0000000C」の割込要求領域(/HINT3)に割込信号発生要求が書き込まれると、対応する割込信号出力端子122dから信号線156dを介してプリンタコントローラ500に割込信号が出力される(S53)。
【0054】
そして、プリンタコントローラ500において、割込コントローラ504が割込信号を、信号線156dを介して受信すると(S33のYES)、CPU502がメモリ510にアクセスし、割込情報記憶部の割込情報を読み出す(S35)。
【0055】
つづいて、CPU502は、読み出された割込情報からコマンドおよびデータを取得する(S37)。ステップS37で取得したコマンドおよびデータに従って、CPU502が割込処理を行う(S39)。
【0056】
以上説明したように、本発明の実施形態のデータ処理装置によれば、各デバイスコントローラへの割込が発生したとき、MFPコントローラ100のCPU102を介さずに、割込コントロールレジスタ110の該当領域に割込信号発生要求を書き込むことで、該当するコントローラに割込信号を出力することができるので、ホストコントローラのCPUの負荷を軽減できる。また、各デバイスコントローラには、割込コントロールレジスタを設ける必要がなく、各デバイス間の信号線も最小限に抑えることができる。
【0057】
(第二の実施の形態)
本発明の実施の形態に係る複合装置10は、上記実施形態とは、割込コントロールレジスタが、割込要求元および割込要求先毎にそれぞれ割り当てられた割込要求領域を有する点で相違している。その他の構成については、図1の複合装置10と同様である。図5は、本実施形態の複合装置10の割込コントロールレジスタ210の構成の一例を示す図である。
【0058】
本実施形態のデータ処理装置(複合装置10)において、ホストコントローラは、割込要求先および割込要求先毎にそれぞれ割り当てられ、バスを介して各コントローラから割込信号発生要求を書込可能な複数の割込要求領域(アドレス212)を含む割込コントロールレジスタ(割込コントロールレジスタ210)と、割込要求先毎にそれぞれ割り当てられ、信号線(156a〜156d)を介して各割込要求先と個別に接続される複数の出力端子(122a〜122e)と、割込要求領域への割込信号発生要求の書き込みに伴って、対応する割込要求先に出力端子を介して割込信号を出力する割込信号出力部(割込信号出力部120)と、を有し、デバイスコントローラは、割込情報を記憶する割込情報記憶部(メモリ310、メモリ410、メモリ510)と、割込要求先となるコントローラに対して割込処理を行う場合、割込要求先の割込情報記憶部にバスを介して割込情報を書き込むとともに、割込コントロールレジスタにおける割込要求先に対応する割込要求領域にバスを介して割込信号発生要求を書き込む制御部(CPU302、DSP402、CPU502)と、を備える。
【0059】
図5に示すように、割込コントロールレジスタ210は、要求元216および要求先218毎にそれぞれ割り当てられた割込要求領域を備えている。すなわち、割込コントロールレジスタ210において、要求元216および要求先218の組み合わせに対して、それぞれ個別に割込要求領域が割り当てられている。各割込要求領域には、それぞれ個別にアドレス212およびレジスタ名称214が割り当てられている。すなわち割込コントロールレジスタ210において、一つのアドレス212に、一つのレジスタ名称214および一つの割込要求領域が対応している。本実施形態においては、各割込要求領域は、32ビットである。割込要求元のコントローラは、割込信号発生要求を行う場合、該当する割込要求領域のアドレス212を指定し、割込信号発生要求を書き込み構成となっている。
【0060】
割込要求元のコントローラから、割込要求先に対応する割込要求領域に割込信号発生要求が書き込まれると、それに伴って、割込要求先のコントローラに割込信号が出力されるようになっている。すなわち、割込要求元のコントローラは、他のコントローラに割込信号発生要求を行う場合には、MFPコントローラ100の割込コントロールレジスタ210における所定の割込要求領域、自身に割り当てられた割込要求先に対応する領域に、割込信号発生要求を書き込む。この割込信号発生要求の書き込みに伴って、対応する出力端子から割込要求先のコントローラに割込信号が出力される。
【0061】
なお、本実施形態において、割込コントロールレジスタ210は、MFPコントローラ100に設けた構成としたが、これに限定されない。PCIバス150上から書き込み可能であればよい。
【0062】
図6は、割込信号出力部120における複数の出力端子114と出力先116との対応関係を示す図である。また、図7は、割込信号発生回路の回路構成の一例を示す図である。割込信号出力部120には、出力端子毎、すなわち割込要求先毎にそれぞれ図7の割込信号発生回路が設けられている(本実施形態では、xは0〜4で、5つの割込信号発生回路を有する。)。割込信号発生回路は、2つのAND回路180およびAND回路182を備えている。AND回路180には、割込要求領域(INTCxA〜INTCxE)の状態が入力される。AND回路182には、AND回路180の出力と、マスク信号(INTMSK)のNOT信号とが入力される。AND回路182の出力は、出力信号(/HINTx)に接続される。このような構成により、5つの割込要求領域(INTCxA〜INTCxE)のうち、いずれかの割込要求領域に割込信号発生要求が書き込まれれば、それに伴って、AND回路182の出力、すなわち、出力端子(/HINTx)から割込信号が出力されるようになっている。
【0063】
ここで、INTCxA〜INTCxEの論理は、割込信号発生要求がないとき、常時「1」である。マスク信号(INTMSK)は、割込信号の発生を停止する必要がある期間は「1」とする。すなわち、AND回路182への入力は、反転するので、「0」となる。また、マスク信号(INTMSK)を「0」とすると、AND回路182への入力は「1」となり、/HINTxの論理は、AND回路180の出力論理にのみ支配される状態となる。INTCxA〜INTCxEの全てが「1」のときは、AND回路180の出力は「1」となり、AND回路182の出力も「1」となり、割込信号はオフとなる。INTCxA〜INTCxEのいずれか1つ以上が「0」となれば、AND回路180およびAND回路182の出力が「0」となり、割込信号が発生することとなる。
【0064】
この構成により、一つの割込要求先に対して、割込要求元のいずれかのコントローラから割込信号発生要求の書き込みがあれば、その割込要求先に対応する出力端子から割込信号が出力されることとなる。
【0065】
また、本実施形態において、割込信号出力部120は、各割込要求領域において、割込要求先毎に異なるビット位置に割り当てられた機能ビットと出力端子とを接続することができる。図8は、要求元184毎に、割込コントロールレジスタ210に書き込まれる割込要求の値186の一例を示す図である。本実施形態において、割込コントロールレジスタ210の割込要求領域はそれぞれ、割込要求元毎に異なるビット位置に割り当てられた機能ビットおよび、機能ビット以外の書込禁止のビットを有することができる。これらの値186は、デバイス毎に記憶されており、割込要求時に、各デバイスがこの値186を割込コントロールレジスタ210に書き込む。このように、要求元毎に異なるビット位置に機能ビットを割り当て、機能ビット以外を書込禁止とすることにより、他のデバイスによって上書きされることを防止することができる。さらに、要求先毎に、異なる機能ビットを割り当てることもできる。
【0066】
ここで、各デバイスコントローラ(通信コントローラ300、コピーコントローラ400、プリンタコントローラ500)は、割込コントロールレジスタ210における割込要求元および割込要求先と割込要求領域との対応関係を記憶する割付テーブル290を含む。図9は、本実施形態の通信コントローラ300における割付テーブル290の一例を示す図である。このように、各デバイスコントローラは、割込コントロールレジスタ210において、割込要求元および割込要求先に応じて、割込信号発生要求を書き込むべきアドレスを記憶する。
【0067】
各デバイスコントローラのPCIコントローラは、割込要求を行う場合、この割付テーブルにアクセスし、自コントローラおよび割込要求先に対応するアドレスを取得し、割込コントロールレジスタ210の該当する割込要求領域にPCIバス150を介して割込信号発生要求を書き込む。この割付テーブル290は、たとえば、MFPコントローラ100から各デバイスコントローラに対して、PCIバス150を介して通知することができる。各デバイスコントローラは、メモリ内に割付テーブル290を格納することができる。
【0068】
このように構成された本実施形態の複合装置10の動作について、以下に説明する。なお、本実施形態の複合装置10の動作は、上記実施形態の図4に示したフローチャートと同様であるので、同じ図4並びに、図1、図5乃至図9を用いて説明する。ここでも、複合装置10に対して、パーソナルコンピュータ(PC)からのプリントデータの印刷要求が行われた場合を例に説明する。
【0069】
本実施形態の複合装置10の動作は、上記実施形態の複合装置10の動作と、ステップS15およびステップS17における割込コントロールレジスタ210への割込信号発生要求の書き込み動作が相違する。ステップS15およびステップS17おいて、通信コントローラ300が図9の割付テーブル290を使用して、プリンタコントローラ500に対応するアドレス「0xB9000040」を取得し(S15)、PCIバス150を経由して、図5のMFPコントローラ100の割込コントロールレジスタ210のアドレス212、すなわちステップS15で取得したアドレス「0xB9000040」にアクセスし、プリンタコントローラ500への割込信号発生要求を割込要求領域「INTC3B」に書き込む(S17)。なお、ここで書き込まれる値は、図8に示すように、通信コントローラ300の値186の「0x00000002」である。
【0070】
また、MFPコントローラ100において、図5の割込コントロールレジスタ210のアドレス「0xB9000040」のレジスタ「INTC3B」に割込要求が書き込まれると(S51)、図7のAND回路180および回路182を介して割込信号出力端子(/HINT3)から割込信号が出力される。この割込信号は、図1の信号線156dを介してプリンタコントローラ500に入力される(S53)。
【0071】
以上説明したように、本発明の実施形態のデータ処理装置によれば、複数の割込要求元および複数の割込要求先毎にそれぞれ割り当てられた複数の割込要求領域をそれぞれ一つのアドレスに割り当てた割込コントロールレジスタ210を設けたので、各デバイスからの割込要求を、MFPコントローラ100のCPUを介さずに、割込コントロールレジスタ210の一つのアドレスに対応している該当領域に書き込むことで、該当するコントローラに割込信号を出力することができるので、ホストコントローラ(MFPコントローラ100)のCPUの負荷を軽減できる。
【0072】
割込要求元および割込要求先の各組み合わせに対して個別に割込要求領域が割り当てられ、一つの組み合わせに対して、一つの割込要求領域が割り当てられているので、複数の割込要求元からの割込信号発生要求の書き込みが競合した場合でも、他の割込要求元によって上書きされてしまうことを防止できる。すなわち、コントローラ間の排他制御を、バスのパフォーマンスを落とすことなく実現できる。
【0073】
また、一つの割込要求領域において、割込信号発生要求が書き込まれた場合に論理が変化、たとえば、正論理から負論理に変化する機能ビットの位置を、割込要求元毎にずらすことで、他のコントローラによって機能ビットが上書きされることを防止できる。図7において、各割込要求領域の機能ビットの論理が、AND回路180に入力される。すなわち、機能ビット以外の予約ビット(リードオンリービット)の論理は、AND回路180に入力されないこととなる。よって、他のコントローラがアドレスを間違って割込信号発生要求を書き込んだとしても、割込要求元のコントローラ毎に機能ビットの位置を異ならせているため、他のコントローラによって機能ビットの論理が変えられてしまうのを防止できる。
【0074】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
【0075】
たとえば、上記実施形態では、割込信号発生要求は、一度の書き込み(たとえば、0→1)とし、割込信号出力部において、ハード的にワンショットの割込信号を生成する方法もある。この場合、割込信号発生要求を書き込むためのバスの占有が一度で済むという効果がある。なお、エッジトリガ方式では、割込信号受信部は、信号線の論理レベルが変化した瞬間のみ割込信号の発生を認識することになる。
【0076】
また、上記実施形態では、割込信号の検出をエッジトリガ方式としていたが、この割込信号の検出をレベルトリガ方式とすることもできる。この場合、割込信号受信部は、割込信号がアサート状態である限り、常に割込信号が発生していると認識することになる。
【図面の簡単な説明】
【0077】
【図1】本発明の実施の形態に係る複合装置の構成を示すブロック図である。
【図2】図1の割込コントロールレジスタの構造の一例を示す図である。
【図3】図1の割付テーブルの構造の一例を示す図である。
【図4】図1の複合装置の動作の一例を示すフローチャートである。
【図5】本実施形態の複合装置の割込コントロールレジスタの構成の一例を示す図である。
【図6】本実施形態の複合装置の割込信号出力部における複数の出力端子と出力先との対応関係を示す図である。
【図7】本実施形態の複合装置の割込信号発生回路の回路構成の一例を示す図である。
【図8】本実施形態の複合装置における割込コントロールレジスタに、要求元毎に書き込まれる割込要求の値の一例を示す図である。
【図9】本実施形態の通信コントローラにおける割付テーブルの一例を示す図である。
【符号の説明】
【0078】
10 複合装置
100 MFPコントローラ
102 CPU
104 割込コントローラ
106 PCIコントローラ
110 割込コントロールレジスタ
120 割込信号出力部
122a〜122e 出力端子
130 メモリ
132 データエリア
134 コマンドエリア
136 サブコンフィグレーションエリア
138 割付テーブル格納エリア
140 ホストシステムバス
150a プライマリPCIバス
150b セカンダリPCIバス
154 PCICブリッジ
156a〜156d 信号線
190 割付テーブル
210 割込コントロールレジスタ
290 割付テーブル
300 通信コントローラ
302 CPU
304 割込コントローラ
306 PCIコントローラ
310 メモリ
312 データエリア
314 コマンドエリア
316 サブコンフィグレーションエリア
318 割付テーブル格納エリア
320 ローカルバス
400 コピーコントローラ
402 DSP
404 割込コントローラ
406 PCIコントローラ
410 メモリ
412 データエリア
414 コマンドエリア
416 サブコンフィグレーションエリア
418 割付テーブル格納エリア
420 ローカルバス
500 プリンタコントローラ
502 CPU
504 割込コントローラ
506 PCIコントローラ
510 メモリ
512 データエリア
514 コマンドエリア
516 サブコンフィグレーションエリア
518 割付テーブル格納エリア
520 ローカルバス

【特許請求の範囲】
【請求項1】
ホストコントローラおよび前記ホストコントローラにバスを介して接続されるデバイスコントローラを備えたデータ処理装置において、
前記ホストコントローラは、
割込要求先および割込要求先毎にそれぞれ割り当てられ、前記バスを介して各コントローラから割込信号発生要求を書込可能な複数の割込要求領域を含む割込コントロールレジスタと、
割込要求先毎にそれぞれ割り当てられ、信号線を介して各割込要求先と個別に接続される複数の出力端子と、
前記割込要求領域への割込信号発生要求の書き込みに伴って、対応する割込要求先に前記出力端子を介して割込信号を出力する割込信号出力部と、を有し、
前記デバイスコントローラは、
割込情報を記憶する割込情報記憶部と、
割込要求先となるコントローラに対して割込処理を行う場合、割込要求先の前記割込情報記憶部に前記バスを介して割込情報を書き込むとともに、前記割込コントロールレジスタにおける割込要求先に対応する割込要求領域に前記バスを介して割込信号発生要求を書き込む制御部と、
を備えたことを特徴とするデータ処理装置。
【請求項2】
請求項1に記載のデータ処理装置において、
前記デバイスコントローラは、
前記信号線を介して割込信号を受信する割込信号受信部と、
前記割込信号受信部により割込信号を受信したとき、前記割込情報記憶部の前記割込情報を読み出し、前記割込情報に基づいて、所定の処理を実行する処理部と、
を備えたことを特徴とするデータ処理装置。
【請求項3】
請求項1または2に記載のデータ処理装置において、
前記割込信号出力部は、各割込要求領域において、割込要求先毎に異なるビット位置に割り当てられた機能ビットと前記出力端子とを接続するものであることを特徴とするデータ処理装置。
【請求項4】
請求項1乃至3いずれかに記載のデータ処理装置において、
前記ホストコントローラは、
割込要求先となるコントローラに対して割込処理を行う場合、割込要求先の前記割込情報記憶部に前記バスを介して割込情報を書き込むとともに、前記割込コントロールレジスタにおける割込要求先に対応する割込要求領域に割込信号発生要求を書き込む制御部を備えたことを特徴とするデータ処理装置。
【請求項5】
請求項1乃至4いずれかに記載のデータ処理装置において、
前記ホストコントローラは、
割込情報を記憶する割込情報記憶部と、
前記信号線を介して割込信号を受信する割込信号受信部と、
前記割込信号受信部により割込信号を受信したとき、前記割込情報記憶部の前記割込情報を読み出し、前記割込情報に基づいて、所定の処理を実行する処理部と、
を備えたことを特徴とするデータ処理装置。
【請求項6】
請求項1乃至5いずれかに記載のデータ処理装置において、
前記バスはPCIバスであることを特徴とするデータ処理装置。

【図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


【公開番号】特開2007−18253(P2007−18253A)
【公開日】平成19年1月25日(2007.1.25)
【国際特許分類】
【出願番号】特願2005−199034(P2005−199034)
【出願日】平成17年7月7日(2005.7.7)
【出願人】(000006297)村田機械株式会社 (4,916)
【Fターム(参考)】