JP2004355543A - 情報処理装置および割り込み通知方法 - Google Patents
情報処理装置および割り込み通知方法 Download PDFInfo
- Publication number
- JP2004355543A JP2004355543A JP2003155468A JP2003155468A JP2004355543A JP 2004355543 A JP2004355543 A JP 2004355543A JP 2003155468 A JP2003155468 A JP 2003155468A JP 2003155468 A JP2003155468 A JP 2003155468A JP 2004355543 A JP2004355543 A JP 2004355543A
- Authority
- JP
- Japan
- Prior art keywords
- interrupt
- status
- output
- controller
- memory
- 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
【課題】I/O装置で発生した割り込み発生要因をプロセッサに効率よく通知する。
【解決手段】I/O装置それぞれからの割り込み出力信号629,639は、割り込みコントローラ650に入力される。割り込みコントローラ650は、I/O装置それぞれからの割り込み出力信号629,639の発生に応じて、プロセッサ610に対して割り込み出力信号659を発生する。I/O装置それぞれからのステータス出力信号628,638は、I/OステータスDMAコントローラ690に入力される。I/OステータスDMAコントローラ690は、ステータス出力信号628,638をそれぞれ監視し、その更新が行われる度に、当該更新されたステータス出力信号の内容を示すステータス更新情報をDMA転送によってメモリ641上の所定の記憶領域に順次転送する。
【選択図】 図1
【解決手段】I/O装置それぞれからの割り込み出力信号629,639は、割り込みコントローラ650に入力される。割り込みコントローラ650は、I/O装置それぞれからの割り込み出力信号629,639の発生に応じて、プロセッサ610に対して割り込み出力信号659を発生する。I/O装置それぞれからのステータス出力信号628,638は、I/OステータスDMAコントローラ690に入力される。I/OステータスDMAコントローラ690は、ステータス出力信号628,638をそれぞれ監視し、その更新が行われる度に、当該更新されたステータス出力信号の内容を示すステータス更新情報をDMA転送によってメモリ641上の所定の記憶領域に順次転送する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は割り込み機能を有する情報処理装置および同装置で用いられる割り込み通知方法に関する。
【0002】
【従来の技術】
一般に、パーソナルコンピュータのような情報処理装置においては、I/O(Input/Output)装置におけるイベントの発生をプロセッサに通知するために、割り込みが用いられている。
【0003】
このような割り込み機能を有するシステムにおいては、I/O装置からの割り込み出力の発生は割り込みコントローラによって検出され、その割り込みコントローラによってプロセッサに割り込み信号が発生される。割り込み信号を受けたプロセッサは割り込み処理を開始する。割り込み処理では、まず、割り込み出力を発生したI/O装置が判別され、その後、そのI/O装置で発生した割り込み発生要因それぞれに対応する処理が逐次実行される。
【0004】
また、I/O装置からの割り込み出力の発生を示す情報を割り込みパケットとしてバスを介して伝送するシステムも知られている(例えば、特許文献1参照)。この特許文献1のシステムにおいては、割り込み要求および割り込みリセットそれぞれに対応する割り込みパケット・プロトコルが定義されている。
【0005】
【特許文献1】
特開平7−105031号公報
【0006】
【発明が解決しようとする課題】
ところで、割り込み処理の中で、I/O装置で発生した割り込み発生要因それぞれに対応する処理を逐次実行するためには、ある割り込み発生要因に対応する処理が完了する度にI/O装置のステータスレジスタをリードして、新たな割り込み発生要因が発生しているかどうかを判別することが必要となる。
【0007】
通常、I/O装置は低速のI/Oバスに接続されているので、I/O装置のステータスレジスタを参照するためのリードサイクルの実行には多くの時間を要することとなる。
【0008】
特に、リード動作中にプロセッサが停止して他の処理ができないシステムでは、I/O装置のステータスレジスタをリードする動作によるレイテンシの増大により、プロセッサの動作効率を悪化させ、システム全体の性能を悪化させるという問題が発生する。
【0009】
本発明はこのような事情を考慮してなされたものであり、I/O装置で発生した割り込み発生要因をプロセッサに効率よく通知することが可能な情報処理装置および割り込み通知方法を提供することを目的とする。
【0010】
【課題を解決するための手段】
上述の課題を解決するため、本発明の情報処理装置は、プログラムおよびデータが格納されるメモリと、前記メモリに格納されたプログラムを実行するプロセッサと、I/O装置からの割り込み出力の発生に応じて、前記プロセッサに割り込み信号を発生する割り込み制御手段と、割り込み発生要因を示す前記I/O装置のステータス信号を監視し、前記ステータス信号の更新に応じて、当該更新されたステータス信号の内容を示すステータス更新情報をDMA転送によって前記メモリに転送するステータス更新情報転送手段とを具備することを特徴とする。
【0011】
この情報処理装置においては、割り込み発生要因を示すI/O装置のステータス信号の監視がステータス更新情報転送手段によって行われており、I/O装置からの割り込み出力の発生に応じて割り込み制御手段からプロセッサに割り込み信号が発生されるだけでなく、ステータス信号の更新に応じて、その更新されたステータス信号の内容を示すステータス更新情報がDMA転送によってステータス更新情報転送手段からメモリに自動的に転送される。したがって、I/O装置のステータスレジスタを参照することなく、I/O装置で発生した割り込み発生要因をプロセッサに通知することができるので、プロセッサは、メモリを参照するだけで、I/O装置で発生した割り込み発生要因それぞれに対応する処理を逐次実行することが可能となる。
【0012】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を説明する。
図1には、本発明の一実施形態に係る情報処理装置のシステム構成が示されている。この情報処理装置は例えばパーソナルコンピュータのようなコンピュータであり、図示のように、プロセッサ610、I/O装置620,630、メモリコントローラ640、メモリ641、I/Oコントローラ642、割り込みコントローラ650、およびI/OステータスDMA(Direct Memory Access)コントローラ690を備えている。
【0013】
プロセッサ610は本コンピュータの動作を制御するCPUであり、メモリ641に格納された各種プログラムを実行する。プロセッサ610はプロセッサバスから構成される超高速バス646を介してメモリコントローラ640に接続されている。メモリコントローラ640はメモリ641に対するアクセス制御を実行するデバイスである。またこのメモリコントローラ640は、超高速バス646と高速バス647との間を双方向で接続するバスブリッジとしても機能する。メモリ641は本コンピュータの主記憶であり、プロセッサ610によって実行される各種プログラムおよびデータを格納する。
【0014】
I/Oコントローラ642はI/Oバス648上の各種デバイスを制御するデバイスであり、高速バス647とそれよりも低速のI/Oバス648との間を双方向で接続するバスブリッジとしても機能する。I/Oバス648上には、図示のように、I/O装置(A)620、I/O装置(B)630、割り込みコントローラ650、およびI/OステータスDMAコントローラ690が接続されている。
【0015】
I/O装置(A)620,I/O装置(B)630それぞれからの割り込み出力信号629,639は、割り込みコントローラ650に入力される。割り込みコントローラ650は、I/O装置(A)620,I/O装置(B)630それぞれからの割り込み出力信号629,639の発生に応じて、プロセッサ610に対して割り込み出力信号659を発生する。すなわち、I/O装置(A)620,I/O装置(B)630それぞれの割り込み出力信号629,639のアサートは、割り込みコントローラ650により検出され、そしてプロセッサ610への割り込み出力信号659により通知される。
【0016】
I/O装置(A)620,I/O装置(B)630それぞれからのステータス出力信号628,638は、I/OステータスDMAコントローラ690に入力される。これらステータス出力信号628,638は、I/O装置(A)620,I/O装置(B)630それぞれの割り込み発生要因を示すステータス信号である。I/OステータスDMAコントローラ690は、ステータス出力信号628,638をそれぞれ監視し、各ステータス出力信号628,638毎に、その更新が行われる度に、当該更新されたステータス出力信号の内容を示すステータス更新情報をDMA転送によってメモリ641上の所定の記憶領域に順次転送する。メモリ641上には、ステータス更新情報を蓄積するための2つの記憶領域が予め割り当てられている。一方の記憶領域はI/O装置(A)620に関するステータス更新情報の蓄積に利用され、他方の記憶領域はI/O装置(B)630に関するステータス更新情報の蓄積に利用される。
【0017】
次に、図2および図3を参照して、I/O装置(A)620,I/O装置(B)630それぞれの構成を説明する。
【0018】
図2に示されているように、I/O装置(A)620は、例えば3ビットの内部ステータスをステータスレジスタ422で保持し、いずれかのステータスビットがセットされると、割り込み信号出力制御部423によって割り込み出力信号629をアサートする。各ステータスビットはI/O装置(A)620内で発生した割り込み発生要因の種類に対応している。また、I/O装置(A)620は、その内部ステータスをステータス出力信号628として、I/OステータスDMAコントローラ690に出力する。割り込み出力信号629およびステータス出力信号628の出力は、I/O装置(A)620内に設けられたコントロールレジスタ421によって各ステータスビット毎に許可/禁止される。
【0019】
ステータスレジスタ422にセットされたステータスビットは、そのステータスビットに対応する割り込み処理が完了した時点でプロセッサ610によってリセットされる。
【0020】
I/O装置(B)630もI/O装置(A)620と同じ構成である。すなわち、図3に示されているように、I/O装置(B)630も、例えば3ビットの内部ステータスをステータスレジスタ432で保持し、いずれかのステータスビットがセットされると、割り込み信号出力制御部433によって割り込み出力信号639をアサートする。また、I/O装置(B)630は、その内部ステータスをステータス出力信号638として、I/OステータスDMAコントローラ690に出力する。割り込み出力信号639およびステータス出力信号638の出力は、I/O装置(B)630内に設けられたコントロールレジスタ431によって各ステータスビット毎に許可/禁止される。
【0021】
次に、図4を参照して、I/OステータスDMAコントローラ690の構成および動作について説明する。
【0022】
I/OステータスDMAコントローラ690は、I/O装置(A)620,I/O装置(B)630それぞれに対応するステータス更新検出部792,892を備えている。ステータス更新検出部792は、I/O装置(A)620からのステータス出力信号628を監視してその更新を検出し、またステータス更新検出部892は、I/O装置(B)630からのステータス出力信号638を監視してその更新を検出する。ステータス更新検出部792,892それぞれからのステータス更新検出の通知はアービタ処理部793によって調停される。即ち、ステータス更新検出部792,892の各々は、対応するI/O装置からのステータス出力信号628,638の更新を検出すると、ステータス更新検出信号792aをアービタ処理部793に通知することにより、更新されたステータス信号の内容を示すステータス更新情報の出力許可をアービタ処理部793に要求する。
【0023】
今、アービタ処理部793によってステータス更新検出部792に対してステータス更新情報の出力が許可されたとする。この場合、ステータス更新DMA出力通知信号792bがアービタ処理部793からステータス更新検出部792に供給される。ステータス更新検出部792は、それに対応するアドレス生成部(ADDR)796を用いてDMAアドレス796aを生成してそれをアドレス出力制御部794aに出力すると共に、その時点におけるステータス信号の最新の更新内容を示すステータス更新情報を更新ステータス792dとしてデータ出力制御部794bに出力する。これにより、更新ステータスを含むデータは、アドレス出力制御部794aおよびデータ出力制御部794bの制御の下、アドレス生成部796によって生成されたDMAアドレス796aで指定されるメモリ641上の記憶領域にDMA転送される。
【0024】
アドレス生成部(ADDR)796によって生成されるDMAアドレスの初期値は、I/O装置(A)620のステータス更新情報を蓄積するためにメモリ641上に予め割り当てられた更新ステータス記憶領域の先頭位置を示すメモリアドレス、例えば0x1000であり、ステータス更新検出部792からの更新ステータスの出力の度に自動的にカウントアップされる。ここで“0x”は、16進表示であること示している。DMAアドレスの初期値は、例えば、コントロールレジスタ791を介してアドレス生成部(ADDR)796に設定することができる。
【0025】
アービタ処理部793によってステータス更新検出部892に対してステータス更新情報の出力が許可された場合にも同様の動作が実行され、アドレス生成部(ADDR)896によって生成されたDMAアドレスがアドレス出力制御部794aに出力されると共に、その時点におけるステータス信号の最新の更新内容を示すステータス更新情報が更新ステータスとしてステータス更新検出部892からデータ出力制御部794bに出力される。アドレス生成部(ADDR)896によって生成されるDMAアドレスの初期値は、I/O装置(B)630のステータス更新情報を蓄積するためにメモリ641上に予め割り当てられた更新ステータス記憶領域の先頭位置を示すメモリアドレス、例えば0x2000であり、ステータス更新検出部892からの更新ステータスの出力の度に自動的にカウントアップされる。
【0026】
次に、図5のタイミングチャートを参照して、本実施形態における割り込み通知処理の動作を具体的に説明する。
【0027】
I/OステータスDMAコントローラ690は、I/O装置(A)620からのステータス出力信号628によってI/O装置(A)620のステータス更新(“000”−>”001”)、すなわち割り込み出力信号629のアサート、を検出すると、“001”を更新ステータスとして含み、且つDMA転送によるデータの識別子として最上位ビットをセットした1バイトの更新ステータスデータを、予め設定されているDMAアドレス“0x1000”にDMA転送する(a)。更新ステータスは、更新前ステータスと更新後ステータスとの差分であり、セットされたステータスビットを示す。メモリアドレス0x1000で指定されるメモリ641上の記憶位置には、図6に示すように、“0b10000_001”が格納される。ここで“0b”は2進信号を示している。DMA転送先のメモリ641上のバイトデータは、あらかじめ0b00000000で初期化しておき、DMA転送によって最上位ビットがセットされたデータと区別できるようにしておく。
【0028】
I/OステータスDMAコントローラ690は、I/O装置(A)620からのステータス出力信号628によってI/O装置(A)620のステータス更新(“001”−>“011”)、すなわち第2ステータスビットがセットされたことを検出すると、DMAアドレス0x1001に更新ステータス(“010”)を含む更新ステータスデータをDMA転送する(b)。これにより、メモリアドレス0x1001で指定されるメモリ641上の記憶位置には、図6に示すように、“0b10000_010”が格納される。
【0029】
I/OステータスDMAコントローラ690は、I/O装置(B)630からのステータス出力信号638によってI/O装置(B)630のステータス更新(“000”−>“001”)、すなわち割り込み出力信号639のアサートを検出し、I/O装置(A)620に対する場合と同様にして、DMAアドレス0x2000へDMA転送を行う時点での更新ステータス(“101”)を含む更新ステータスデータをDMA転送する(c)。これにより、メモリアドレス0x2000で指定されるメモリ641上の記憶位置には、図6に示すように、“0b10000_101”が格納される。
【0030】
I/OステータスDMAコントローラ690は、I/O装置(B)630からのステータス出力信号638によってI/O装置(B)630のステータス更新(“101”−>“111”)、すなわち第2ステータスビットがセットされたことを検出すると、DMAアドレス0x2001へ更新ステータス(“010”)を含む更新ステータスデータをDMA転送する(d)。これにより、メモリアドレス0x2001で指定されるメモリ641上の記憶位置には、図6に示すように、“0b10000_010”が格納される。
【0031】
I/OステータスDMAコントローラ690は、I/O装置(A)620からのステータス出力信号628によってI/O装置(A)620のステータス更新(“010”−>“100”)、すなわち第1ステータスビットがセットされたことを検出すると、DMAアドレス0x1002へ更新ステータス(“100”)を含む更新ステータスデータをDMA転送する(e)。これにより、メモリアドレス0x1002で指定されるメモリ641上の記憶位置には、図6に示すように、“0b10000_100”が格納される。
【0032】
I/OステータスDMAコントローラ690は、I/O装置(A)620からのステータス出力信号628によってI/O装置(A)620のステータス更新(“100”−>“000”)、つまり全てのステータスビットのクリアを検出すると、I/O装置(A)620で発生した割り込み発生要因それぞれに対応する処理が全て完了したことをプロセッサ610に通知するために、DMAアドレス0x1003へ更新ステータス(“000”)を含む更新ステータスデータをDMA転送する(f)。これにより、メモリアドレス0x1003で指定されるメモリ641上の記憶位置には、図6に示すように、“0b10000_000”が格納される。
【0033】
I/OステータスDMAコントローラ690は、I/O装置(B)630からのステータス出力信号638によってI/O装置(B)630のステータス更新(“010”−>“011”)、つまり第3ステータスビットがセットされたことを検出すると、DMAアドレス0x2002へ更新ステータス(“001”)を含む更新ステータスデータをDMA転送する(g)。これにより、メモリアドレス0x2002で指定されるメモリ641上の記憶位置には、図6に示すように、“0b10000_001”が格納される。
【0034】
I/OステータスDMAコントローラ690は、I/O装置(B)630からのステータス出力信号638によってI/O装置(B)630のステータス更新(“001”−>“000”)、つまり全てのステータスビットのクリアを検出すると、I/O装置(B)630で発生した割り込み発生要因それぞれに対応する処理が全て完了したことをプロセッサ610に通知するために、DMAアドレス0x2003へ更新ステータス(“000”)を含む更新ステータスデータをDMA転送する(h)。これにより、メモリアドレス0x2003で指定されるメモリ641上の記憶位置には、図6に示すように、“0b10000_000”が格納される。
【0035】
次に、プロセッサ610によって実行される割り込み処理の動作例を説明する。
【0036】
(0) プロセッサ610は割り込みコントローラ650からの割り込み出力信号659のアサートを検出すると、割り込み処理ソフトウェアを呼び出す。
【0037】
(1) 割り込み処理ソフトウェアは、割り込みコントローラ650のステータスレジスタを参照して割り込み出力信号をアサートしているI/O装置を判別し、そのI/O装置に対応するI/O装置処理ソフトウェアを呼び出す。
【0038】
(2) I/O装置処理ソフトウェアは、それに対応するI/O装置用に割り当てられたメモリ641上の記憶領域から更新ステータスデータをリードする。そして、新たにセットされた更新ステータスに対応する処理を実行し、その処理が完了するたびに該当するI/O装置内のステータスレジスタのステータスビットをリセットする。
【0039】
(3) I/O装置処理ソフトウェアは、更新ステータスデータによって全てのステータスのクリアが確認されると、処理を終了する。
【0040】
(4) もし割り込みコントローラ650からの割り込み出力信号659がアサートされ続けていれば、割り込み処理ソフトウェアは割り込みコントローラ650のステータスレジスタを参照して、割り込み出力信号をアサートしている他のI/O装置を判別し、そのI/O装置に対応するI/O装置処理ソフトウェアを呼び出す。
【0041】
(5) I/O装置処理ソフトウェアは、それに対応するI/O装置用に割り当てられたメモリ641上の記憶領域から更新ステータスデータをリードする。そして、新たにセットされた更新ステータスに対応する処理を実行し、その処理が完了するたびに該当するI/O装置内のステータスレジスタのステータスビットをリセットする。
【0042】
(6) I/O装置処理ソフトウェアは、更新ステータスデータによって全てのステータスのクリアが確認されると、処理を終了する。
【0043】
以上のように、本実施形態によれば、I/OステータスDMAコントローラ690によって更新ステータスデータを自動的にメモリ641にDMA転送することにより、プロセッサ610はI/O装置のステータスレジスタを参照することなく、割り込み発生要因を調べることが出来る。よって、プロセッサ610は、メモリ641を参照するだけで、I/O装置で発生した割り込み発生要因それぞれに対応する処理を逐次実行することが可能となる。
【0044】
次に、図7乃至図11を参照して、本発明の第2実施形態を説明する。
図7には、第2実施形態に係るコンピュータのシステム構成が示されている。この第2実施形態においては、第1実施形態で説明した割り込みコントローラが割り込み出力コントローラ170と割り込み入力コントローラ160とに分割されており、各I/O装置からの割り込み出力の発生は割り込みパケットによって割り込み出力コントローラ170から割り込み入力コントローラ160に転送される。以下、このコンピュータの構成を具体的に説明する。
【0045】
すなわち、図7に示されているように、このコンピュータは、プロセッサ110、I/O装置(A)120、I/O装置(B)130、メモリコントローラ140、メモリ141、I/Oコントローラ142、割り込み入力コントローラ160、割り込み出力コントローラ170、およびI/OステータスDMAコントローラ180を備えている。
【0046】
プロセッサ110は本コンピュータの動作を制御するCPUであり、メモリ141に格納された各種プログラムを実行する。プロセッサ141はプロセッサバスから構成される超高速バス146を介してメモリコントローラ140に接続されている。メモリコントローラ140はメモリ141に対するアクセス制御および割り込み入力コントローラ160への割り込みパケット転送を実行するデバイスである。このメモリコントローラ140は、超高速バス146と高速バス147との間を双方向で接続するバスブリッジとして機能する。メモリ141は本コンピュータの主記憶であり、プロセッサ110によって実行される各種プログラムおよびデータを格納する。
【0047】
I/Oコントローラ142はI/Oバス148上の各種デバイスを制御するデバイスであり、高速バス147とそれよりも低速のI/Oバス148との間を双方向で接続するバスブリッジとしても機能する。I/Oバス148上には、図示のように、I/O装置(A)120、I/O装置(B)130、割り込み出力コントローラ170、およびI/OステータスDMAコントローラ180が接続されている。
【0048】
I/O装置(A)120,I/O装置(B)130それぞれからの割り込み出力信号129,139は、割り込み出力コントローラ170に入力される。またI/O装置(A)120,I/O装置(B)130それぞれからのステータス出力信号128,138は、割り込み出力コントローラ170およびI/OステータスDMAコントローラ180の双方に入力される。これらステータス出力信号628,638は、I/O装置(A)120,I/O装置(B)130それぞれの割り込み発生要因を示すステータス信号である。
【0049】
I/O装置(A)120,I/O装置(B)130からの割り込み出力信号129,139それぞれのアサートは、割り込み出力コントローラ170により検出され、I/O装置からの割り込み信号出力の検出に関する情報は割り込みパケットとしてI/Oバス148に出力され、I/Oコントローラ142、高速バス147、メモリコントローラ140を経由して割り込み入力コントローラ160に転送される。
【0050】
割り込み入力コントローラ160は、割り込みパケットを受信すると、その受信した割り込みパケットをプロセッサ110からアクセス可能なように蓄積するとともに、割り込みパケットを入力したことを割り込み出力信号169によりプロセッサ110に通知する。またI/O装置(A)120,I/O装置(B)130からの割り込み出力信号129,139がアサートされている間、I/OステータスDMAコントローラ180は、割り込み出力を発生したI/O装置毎に、そのステータス信号128,138を監視し、ステータス出力信号の更新が行われる度に、当該更新されたステータス出力信号の内容を示すステータス更新情報をDMA転送によってメモリ141上の所定の記憶領域に順次転送する。メモリ141上には、ステータス更新情報を蓄積するための2つの記憶領域が予め割り当てられている。一方の記憶領域はI/O装置(A)120に関するステータス更新情報の蓄積に利用され、他方の記憶領域はI/O装置(B)130に関するステータス更新情報の蓄積に利用される。また、割り込み出力コントローラ170およびI/OステータスDMAコントローラ180は、通知信号195によって互いの状態を相手に通知することができる。
【0051】
I/O装置(A)120,I/O装置(B)130の構成は、図2、図3で説明したI/O装置(A)620,I/O装置(B)630それぞれと同一である。
【0052】
次に、図8を参照して、割り込み出力コントローラ170、I/OステータスDMAコントローラ180、および割り込み入力コントローラ160それぞれの構成と、それらの動作について説明する。
【0053】
割り込み出力コントローラ170は、I/O装置(A)120,I/O装置(B)130それぞれに対応する割り込み出力検出部472,572を備えている。割り込み出力検出部472はI/O装置(A)120からの割り込み出力信号129のアサートを検出し、また割り込み出力検出部572はI/O装置(B)130からの割り込み出力信号139のアサートを検出する。割り込み出力検出部472,572の各々は、対応するI/O装置からの割り込み出力信号129,139のアサートを検出すると、割り込み出力検出信号472aをアービタ処理部473に通知して、割り込みパケットの出力をアービタ処理部473に要求する。アービタ処理部473は、割り込み出力検出部472,572それぞれからの要求を一つずつ割り込みパケット出力制御部474に通知して、割り込み信号出力をアサートしたI/O装置に関する割り込みパケットを、割り込みパケット出力制御部474にI/Oバス148上に出力させる。割り込みパケットには、割り込み出力信号のアサートを検出した割り込み出力検出部472または572に対応するI/O装置を示すI/O識別子と、当該I/O装置からのステータス出力信号の内容が含まれる。
【0054】
割り込みパケット出力制御部474からあるI/O装置に関する割り込みパケットを出力すると、アービタ処理部473は、当該I/O装置に対応する割り込み出力検出部472または572に対して割り込みパケット出力通知信号472bを出力して割り込みパケットを出力したことを通知すると共に、I/OステータスDMAコントローラ180内に設けられた当該I/O装置に対応するステータス更新検出部482または582に割り込みパケット出力通知信号475を出力して割り込みパケットを出力したことを通知する。
【0055】
割り込み入力コントローラ160は、割り込み出力コントローラ170から送られてきた割り込みパケットを入力し、それを割り込みパケット検出蓄積部462に蓄積するとともに、プロセッサ110への割り込み出力信号169をアサートして、割り込みパケットを入力したこと、つまりI/O装置(A)120またはI/O装置(B)130から割り込み出力信号が発生されたことをプロセッサ110に通知する。割り込みパケット検出蓄積部462には複数の割り込みパケットを蓄積することができる。また、割り込みパケット検出蓄積部462は、プロセッサ110からアクセスできるように構成されている。割り込み出力信号169の発生は、コントロールレジスタ461によって許可/禁止することができる。
【0056】
I/OステータスDMAコントローラ180には、I/O装置(A)120,I/O装置(B)130それぞれに対応するステータス更新検出部482,582が設けられている。これらステータス更新検出部482,582は、割り込み出力コントローラ170より割り込みパケット出力通知信号475による通知を受けると、対応するI/O装置(A)120,I/O装置(B)130からのステータス出力信号128,138の監視、つまりステータス出力信号128,138の更新検出を開始する。ステータス更新検出部482,582それぞれからのステータス更新検出の通知はアービタ処理部483によって調停される。即ち、ステータス更新検出部482,582の各々は、対応するI/O装置からのステータス出力信号128,138の更新を検出すると、ステータス更新検出信号482aをアービタ処理部483に通知することにより、更新されたステータス信号の内容を示すステータス更新情報の出力許可をアービタ処理部483に要求する。
【0057】
今、アービタ処理部483によってステータス更新検出部482に対してステータス更新情報の出力が許可されたとする。この場合、ステータス更新DMA出力通知信号482bがアービタ処理部483からステータス更新検出部482に供給される。ステータス更新検出部482は、それに対応するアドレス生成部(ADDR)486を用いてDMAアドレス486aを生成してそれをアドレス出力制御部484aに出力すると共に、その時点におけるステータス信号の最新の更新内容を示すステータス更新情報を更新ステータス482dとしてデータ出力制御部484bに出力する。これにより、更新ステータスを含むデータは、アドレス出力制御部484aおよびデータ出力制御部484bの制御の下、アドレス生成部486によって生成されたDMAアドレス486aで指定されるメモリ141上の記憶領域にDMA転送される。
【0058】
アドレス生成部(ADDR)486によって生成されるDMAアドレスの初期値は、I/O装置(A)120のステータス更新情報を蓄積するためにメモリ141上に予め割り当てられた更新ステータス記憶領域の先頭位置を示すメモリアドレス、例えば0x1000であり、ステータス更新検出部482からの更新ステータスの出力の度に自動的にカウントアップされる。DMAアドレスの初期値は、例えば、コントロールレジスタ481を介してアドレス生成部(ADDR)486に設定することができる。
【0059】
また、ステータス更新検出部482は、I/O装置(A)120からのステータス出力信号128によって全てのステータスビットがクリアされたことを検出した場合には、そのことを示す更新ステータスを含むデータをメモリ141上にDMA転送するとともに、全てのステータスビットがクリアされたことをステータスクリアDMA出力信号485によって割り込み出力コントローラ170の割り込み出力検出部472に通知する。
【0060】
アービタ処理部483によってステータス更新検出部582に対してステータス更新情報の出力が許可された場合にも同様の動作が実行され、アドレス生成部(ADDR)586によって生成されたDMAアドレスがアドレス出力制御部484aに出力されると共に、その時点におけるステータス信号の最新の更新内容を示すステータス更新情報が更新ステータスとしてステータス更新検出部582からデータ出力制御部484bに出力される。アドレス生成部(ADDR)586によって生成されるDMAアドレスの初期値は、I/O装置(B)130のステータス更新情報を蓄積するためにメモリ141上に予め割り当てられた更新ステータス記憶領域の先頭位置を示すメモリアドレス、例えば0x2000であり、ステータス更新検出部582からの更新ステータスの出力の度に自動的にカウントアップされる。
【0061】
また、ステータス更新検出部582は、I/O装置(B)130からのステータス出力信号138によって全てのステータスビットがクリアされたことを検出した場合には、そのことを示す更新ステータスを含むデータをメモリ141上にDMA転送するとともに、全てのステータスビットがクリアされたことをステータスクリアDMA出力信号によって割り込み出力コントローラ170の割り込み出力検出部572に通知する。
【0062】
次に、図9のタイミングチャートを参照して、本第2実施形態における割り込み通知処理の動作を具体的に説明する。
【0063】
割り込み出力コントローラ170は、I/O装置(A)120に対応する割り込み出力検出部472により、I/O装置(A)120からの割り込み出力信号129のアサートを検出すると、I/OステータスDMAコントローラ180に設けられたI/O装置(A)120に対応するステータス更新検出部482からのステータスクリアDMA出力通知信号がアサートされていることを条件に、I/O装置(A)120からのステータス出力信号の情報(“001”)とI/O装置(A)120の識別子とを含む割り込みパケットを割り込み入力コントローラ160へ出力する(a)。これにより、割り込み入力コントローラ160の割り込みパケット検出蓄積部462には、図10に示すように、I/O装置(A)120からの割り込み出力に関する割り込みパケットの情報が格納される。
【0064】
割り込み出力コントローラ170は、I/O装置(A)120に対応する割り込みパケット出力通知信号475をアサートする。これにより、I/OステータスDMAコントローラ180は、割り込み出力信号を発生したI/O装置(A)120に対応するステータス更新の検出を開始するとともに、ステータスクリアDMA出力通知信号485をデアサートする。
【0065】
I/OステータスDMAコントローラ180は、I/O装置(A)120からのステータス出力信号128によってI/O装置(A)120のステータス更新(“001”−>“011”)、すなわち第2ステータスビットがセットされたことを検出すると、“010”を更新ステータスとして含み、且つDMA転送によるデータの識別子として最上位ビットをセットした1バイトの更新ステータスデータを、予め設定されているDMAアドレス“0x1000”にDMA転送する(b)。更新ステータスは、更新前ステータスと更新後ステータスとの差分であり、セットされたステータスビットを示す。メモリアドレス0x1000で指定されるメモリ141上の記憶位置には、図11に示すように、“0b10000_010”が格納される。DMA転送先のメモリ141上のバイトデータは、あらかじめ0b00000000で初期化しておき、DMA転送によって最上位ビットがセットされたデータと区別できるようにしておく。
【0066】
割り込み出力コントローラ170は、I/O装置(B)130に対応する割り込み出力検出部572により、I/O装置(B)130からの割り込み出力信号139のアサートを検出すると、I/OステータスDMAコントローラ180に設けられたI/O装置(B)130に対応するステータス更新検出部582からのステータスクリアDMA出力通知信号がアサートされていることを条件に、I/O装置(B)130からのステータス出力信号の情報(“101”)とI/O装置(B)130の識別子とを含む割り込みパケットを割り込み入力コントローラ160へ出力する(c)。これにより、割り込み入力コントローラ160の割り込みパケット検出蓄積部462には、図10に示すように、I/O装置(B)130からの割り込み出力に関する割り込みパケットの情報が格納される。
【0067】
割り込み出力コントローラ170は、I/O装置(B)130に対応する割り込みパケット出力通知信号をアサートする。これにより、I/OステータスDMAコントローラ180は、割り込み出力信号を発生したI/O装置(B)130に対応するステータス更新の検出を開始するとともに、I/O装置(B)130に対応する割り込み出力検出部572へのステータスクリアDMA出力通知信号をデアサートする。
【0068】
I/OステータスDMAコントローラ180は、I/O装置(B)130からのステータス出力信号138によってI/O装置(B)130のステータス更新(“101”−>“111”)、つまり第2ステータスビットがセットされたことを検出すると、I/O装置(A)120に対応する場合と同様にして、DMAアドレス0x2000へ更新ステータス(“010”)を転送する(d)。これにより、メモリアドレス0x2000で指定されるメモリ141上の記憶位置には、図11に示すように、“0b10000_010”が格納される。
【0069】
I/OステータスDMAコントローラ180は、I/O装置(A)120からのステータス出力信号128によってI/O装置(A)120のステータス更新(“010”−>“100”)、つまり第1ステータスビットがセットされたことを検出すると、DMAアドレス0x1001へ更新ステータス(“100”)を転送する(e)。これにより、メモリアドレス0x1001で指定されるメモリ141上の記憶位置には、図11に示すように、“0b10000_100”が格納される。
【0070】
I/OステータスDMAコントローラ180は、I/O装置(A)120からのステータス出力信号128によってI/O装置(A)120のステータスクリア(“100”−>“000”)を検出すると、DMAアドレス0x1002へ更新ステータス(“000”)を転送する(f)。これにより、メモリアドレス0x1002で指定されるメモリ141上の記憶位置には、図11に示すように、“0b10000_000”が格納される。そして、I/OステータスDMAコントローラ180は、I/O装置(A)120に対応するステータスクリアDMA出力信号をアサートし、割り込み出力コントローラ170は対応する割り込みパケット出力通知信号をデアサートする。
【0071】
I/OステータスDMAコントローラ180は、I/O装置(B)130からのステータス出力信号138によってI/O装置(B)130のステータス更新(“010”−>“011”)、つまり第3ステータスビットがセットされたことを検出すると、DMAアドレス0x2001へ更新ステータス(“001”)を転送する(g)。これにより、メモリアドレス0x2001で指定されるメモリ141上の記憶位置には、図11に示すように、“0b10000_001”が格納される。
【0072】
I/OステータスDMAコントローラ180は、I/O装置(B)130からのステータス出力信号138によってI/O装置(B)130のステータスクリア(“001”−>“000”)を検出すると、DMAアドレス0x2002へ更新ステータス(“000”)を転送する(h)。これにより、メモリアドレス0x2002で指定されるメモリ141上の記憶位置には、図11に示すように、“0b10000_000”が格納される。そして、I/OステータスDMAコントローラ180は、I/O装置(B)130に対応するステータスクリアDMA出力信号をアサートし、割り込み出力コントローラ170は対応する割り込みパケット出力通知信号をデアサートする。
【0073】
次に、プロセッサ110によって実行される割り込み処理の動作例を説明する。
(0) プロセッサ110は割り込み入力コントローラ160からの割り込み出力信号169のアサートを検出すると、割り込み処理ソフトウェアを呼び出す。
【0074】
(1) 割り込み処理ソフトウェアは、割り込み入力コントローラ160のコントロールレジスタ461により割り込み出力信号169の発生を禁止する。
(2) 割り込み処理ソフトウェアは、割り込み入力コントローラ160の割り込みパケット検出蓄積部462の割り込みパケットデータをリードして、割り込み出力を発生したI/O装置を判別し、対応するI/O装置処理ソフトウェアを呼び出す。
【0075】
(3.1) I/O装置処理ソフトウェアは、対応するI/O装置のコントロールレジスタにより割り込み出力信号を禁止する。
(3.2) I/O装置処理ソフトウェアは、割り込み処理ソフトウェアから割り込みパケットデータ中のステータスを受け取り、セットされている各ステータスに対応する処理を行う。そして、各ステータスに対応する処理が完了する度に、該当するI/O装置内の対応するステータスレジスタのステータスビットをリセットする。
【0076】
(3.3) I/O装置処理ソフトウェアは、それに対応するI/O装置用に割り当てられたメモリ641上の記憶領域から更新ステータスデータをリードする。そして、新たにセットされた更新ステータスに対応する処理を実行し、その処理が完了するたびに該当するI/O装置内のステータスレジスタのステータスビットをリセットする。
【0077】
(3.4) I/O装置処理ソフトウェアは、更新ステータスデータによって全てのステータスのクリアが確認されると、対応するI/O装置のコントロールレジスタにより割り込み出力信号を許可する。そしてI/O装置処理ソフトウェアは、その処理を終了する。
【0078】
(4) 割り込み処理ソフトウェアは、割り込み入力コントローラ160のコントロールレジスタにより割り込み出力信号169の発生を許可すると同時に処理を終了する。
【0079】
以上のように、本第2実施形態によれば、I/OステータスDMAコントローラ180によって更新ステータスデータを自動的にメモリ141にDMA転送するだけでなく、割り込み出力信号を発生したI/O装置を示す情報を割り込みパケットとして割り込み出力コントローラ170から割り込み入力コントローラ160に転送することにより、割り込み出力信号を発生したI/O装置の判別についても効率よく実行することが可能となる。
【0080】
なお、本第2実施形態においては、更新ステータスを割り込みパケットに付加して割り込み入力コントローラ160に転送したが、全ての更新ステータスをI/OステータスDMAコントローラ180によるDMA転送によってメモリ141に転送するようにしてもよい。
【0081】
また、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【0082】
【発明の効果】
以上説明したように、本発明によれば、I/O装置で発生した割り込み発生要因をプロセッサに効率よく通知することが可能となる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係る情報処理装置の構成を示すブロック図。
【図2】同実施形態の情報処理装置で使用されるI/O装置(A)の構成例を示す図。
【図3】同実施形態の情報処理装置で使用されるI/O装置(B)の構成例を示す図。
【図4】同実施形態の情報処理装置で使用されるI/OステータスDMAコントローラの構成例を示すブロック図。
【図5】同実施形態の情報処理装置における割り込み通知処理の動作を示すタイミングチャート。
【図6】同実施形態の情報処理装置のメモリに格納された更新ステータスデータの例を示す図。
【図7】本発明の第2実施形態に係る情報処理装置の構成を示すブロック図。
【図8】同第2実施形態に係る情報処理装置で使用される割り込み出力コントローラ、I/OステータスDMAコントローラ、および割り込み入力コントローラそれぞれの構成を示すブロック図。
【図9】同第2実施形態の情報処理装置における割り込み通知処理の動作を示すタイミングチャート。
【図10】同第2実施形態の情報処理装置の割り込み入力コントローラに蓄積される割り込みパケットの例を示す図。
【図11】同第2実施形態の情報処理装置のメモリに格納された更新ステータスデータの例を示す図。
【符号の説明】
110,610…プロセッサ、120,130,620,630…I/O装置、141,641…メモリ、160…割り込み入力コントローラ、170…割り込み出力コントローラ、180,690…I/OステータスDMAコントローラ、650…割り込みコントローラ。
【発明の属する技術分野】
本発明は割り込み機能を有する情報処理装置および同装置で用いられる割り込み通知方法に関する。
【0002】
【従来の技術】
一般に、パーソナルコンピュータのような情報処理装置においては、I/O(Input/Output)装置におけるイベントの発生をプロセッサに通知するために、割り込みが用いられている。
【0003】
このような割り込み機能を有するシステムにおいては、I/O装置からの割り込み出力の発生は割り込みコントローラによって検出され、その割り込みコントローラによってプロセッサに割り込み信号が発生される。割り込み信号を受けたプロセッサは割り込み処理を開始する。割り込み処理では、まず、割り込み出力を発生したI/O装置が判別され、その後、そのI/O装置で発生した割り込み発生要因それぞれに対応する処理が逐次実行される。
【0004】
また、I/O装置からの割り込み出力の発生を示す情報を割り込みパケットとしてバスを介して伝送するシステムも知られている(例えば、特許文献1参照)。この特許文献1のシステムにおいては、割り込み要求および割り込みリセットそれぞれに対応する割り込みパケット・プロトコルが定義されている。
【0005】
【特許文献1】
特開平7−105031号公報
【0006】
【発明が解決しようとする課題】
ところで、割り込み処理の中で、I/O装置で発生した割り込み発生要因それぞれに対応する処理を逐次実行するためには、ある割り込み発生要因に対応する処理が完了する度にI/O装置のステータスレジスタをリードして、新たな割り込み発生要因が発生しているかどうかを判別することが必要となる。
【0007】
通常、I/O装置は低速のI/Oバスに接続されているので、I/O装置のステータスレジスタを参照するためのリードサイクルの実行には多くの時間を要することとなる。
【0008】
特に、リード動作中にプロセッサが停止して他の処理ができないシステムでは、I/O装置のステータスレジスタをリードする動作によるレイテンシの増大により、プロセッサの動作効率を悪化させ、システム全体の性能を悪化させるという問題が発生する。
【0009】
本発明はこのような事情を考慮してなされたものであり、I/O装置で発生した割り込み発生要因をプロセッサに効率よく通知することが可能な情報処理装置および割り込み通知方法を提供することを目的とする。
【0010】
【課題を解決するための手段】
上述の課題を解決するため、本発明の情報処理装置は、プログラムおよびデータが格納されるメモリと、前記メモリに格納されたプログラムを実行するプロセッサと、I/O装置からの割り込み出力の発生に応じて、前記プロセッサに割り込み信号を発生する割り込み制御手段と、割り込み発生要因を示す前記I/O装置のステータス信号を監視し、前記ステータス信号の更新に応じて、当該更新されたステータス信号の内容を示すステータス更新情報をDMA転送によって前記メモリに転送するステータス更新情報転送手段とを具備することを特徴とする。
【0011】
この情報処理装置においては、割り込み発生要因を示すI/O装置のステータス信号の監視がステータス更新情報転送手段によって行われており、I/O装置からの割り込み出力の発生に応じて割り込み制御手段からプロセッサに割り込み信号が発生されるだけでなく、ステータス信号の更新に応じて、その更新されたステータス信号の内容を示すステータス更新情報がDMA転送によってステータス更新情報転送手段からメモリに自動的に転送される。したがって、I/O装置のステータスレジスタを参照することなく、I/O装置で発生した割り込み発生要因をプロセッサに通知することができるので、プロセッサは、メモリを参照するだけで、I/O装置で発生した割り込み発生要因それぞれに対応する処理を逐次実行することが可能となる。
【0012】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を説明する。
図1には、本発明の一実施形態に係る情報処理装置のシステム構成が示されている。この情報処理装置は例えばパーソナルコンピュータのようなコンピュータであり、図示のように、プロセッサ610、I/O装置620,630、メモリコントローラ640、メモリ641、I/Oコントローラ642、割り込みコントローラ650、およびI/OステータスDMA(Direct Memory Access)コントローラ690を備えている。
【0013】
プロセッサ610は本コンピュータの動作を制御するCPUであり、メモリ641に格納された各種プログラムを実行する。プロセッサ610はプロセッサバスから構成される超高速バス646を介してメモリコントローラ640に接続されている。メモリコントローラ640はメモリ641に対するアクセス制御を実行するデバイスである。またこのメモリコントローラ640は、超高速バス646と高速バス647との間を双方向で接続するバスブリッジとしても機能する。メモリ641は本コンピュータの主記憶であり、プロセッサ610によって実行される各種プログラムおよびデータを格納する。
【0014】
I/Oコントローラ642はI/Oバス648上の各種デバイスを制御するデバイスであり、高速バス647とそれよりも低速のI/Oバス648との間を双方向で接続するバスブリッジとしても機能する。I/Oバス648上には、図示のように、I/O装置(A)620、I/O装置(B)630、割り込みコントローラ650、およびI/OステータスDMAコントローラ690が接続されている。
【0015】
I/O装置(A)620,I/O装置(B)630それぞれからの割り込み出力信号629,639は、割り込みコントローラ650に入力される。割り込みコントローラ650は、I/O装置(A)620,I/O装置(B)630それぞれからの割り込み出力信号629,639の発生に応じて、プロセッサ610に対して割り込み出力信号659を発生する。すなわち、I/O装置(A)620,I/O装置(B)630それぞれの割り込み出力信号629,639のアサートは、割り込みコントローラ650により検出され、そしてプロセッサ610への割り込み出力信号659により通知される。
【0016】
I/O装置(A)620,I/O装置(B)630それぞれからのステータス出力信号628,638は、I/OステータスDMAコントローラ690に入力される。これらステータス出力信号628,638は、I/O装置(A)620,I/O装置(B)630それぞれの割り込み発生要因を示すステータス信号である。I/OステータスDMAコントローラ690は、ステータス出力信号628,638をそれぞれ監視し、各ステータス出力信号628,638毎に、その更新が行われる度に、当該更新されたステータス出力信号の内容を示すステータス更新情報をDMA転送によってメモリ641上の所定の記憶領域に順次転送する。メモリ641上には、ステータス更新情報を蓄積するための2つの記憶領域が予め割り当てられている。一方の記憶領域はI/O装置(A)620に関するステータス更新情報の蓄積に利用され、他方の記憶領域はI/O装置(B)630に関するステータス更新情報の蓄積に利用される。
【0017】
次に、図2および図3を参照して、I/O装置(A)620,I/O装置(B)630それぞれの構成を説明する。
【0018】
図2に示されているように、I/O装置(A)620は、例えば3ビットの内部ステータスをステータスレジスタ422で保持し、いずれかのステータスビットがセットされると、割り込み信号出力制御部423によって割り込み出力信号629をアサートする。各ステータスビットはI/O装置(A)620内で発生した割り込み発生要因の種類に対応している。また、I/O装置(A)620は、その内部ステータスをステータス出力信号628として、I/OステータスDMAコントローラ690に出力する。割り込み出力信号629およびステータス出力信号628の出力は、I/O装置(A)620内に設けられたコントロールレジスタ421によって各ステータスビット毎に許可/禁止される。
【0019】
ステータスレジスタ422にセットされたステータスビットは、そのステータスビットに対応する割り込み処理が完了した時点でプロセッサ610によってリセットされる。
【0020】
I/O装置(B)630もI/O装置(A)620と同じ構成である。すなわち、図3に示されているように、I/O装置(B)630も、例えば3ビットの内部ステータスをステータスレジスタ432で保持し、いずれかのステータスビットがセットされると、割り込み信号出力制御部433によって割り込み出力信号639をアサートする。また、I/O装置(B)630は、その内部ステータスをステータス出力信号638として、I/OステータスDMAコントローラ690に出力する。割り込み出力信号639およびステータス出力信号638の出力は、I/O装置(B)630内に設けられたコントロールレジスタ431によって各ステータスビット毎に許可/禁止される。
【0021】
次に、図4を参照して、I/OステータスDMAコントローラ690の構成および動作について説明する。
【0022】
I/OステータスDMAコントローラ690は、I/O装置(A)620,I/O装置(B)630それぞれに対応するステータス更新検出部792,892を備えている。ステータス更新検出部792は、I/O装置(A)620からのステータス出力信号628を監視してその更新を検出し、またステータス更新検出部892は、I/O装置(B)630からのステータス出力信号638を監視してその更新を検出する。ステータス更新検出部792,892それぞれからのステータス更新検出の通知はアービタ処理部793によって調停される。即ち、ステータス更新検出部792,892の各々は、対応するI/O装置からのステータス出力信号628,638の更新を検出すると、ステータス更新検出信号792aをアービタ処理部793に通知することにより、更新されたステータス信号の内容を示すステータス更新情報の出力許可をアービタ処理部793に要求する。
【0023】
今、アービタ処理部793によってステータス更新検出部792に対してステータス更新情報の出力が許可されたとする。この場合、ステータス更新DMA出力通知信号792bがアービタ処理部793からステータス更新検出部792に供給される。ステータス更新検出部792は、それに対応するアドレス生成部(ADDR)796を用いてDMAアドレス796aを生成してそれをアドレス出力制御部794aに出力すると共に、その時点におけるステータス信号の最新の更新内容を示すステータス更新情報を更新ステータス792dとしてデータ出力制御部794bに出力する。これにより、更新ステータスを含むデータは、アドレス出力制御部794aおよびデータ出力制御部794bの制御の下、アドレス生成部796によって生成されたDMAアドレス796aで指定されるメモリ641上の記憶領域にDMA転送される。
【0024】
アドレス生成部(ADDR)796によって生成されるDMAアドレスの初期値は、I/O装置(A)620のステータス更新情報を蓄積するためにメモリ641上に予め割り当てられた更新ステータス記憶領域の先頭位置を示すメモリアドレス、例えば0x1000であり、ステータス更新検出部792からの更新ステータスの出力の度に自動的にカウントアップされる。ここで“0x”は、16進表示であること示している。DMAアドレスの初期値は、例えば、コントロールレジスタ791を介してアドレス生成部(ADDR)796に設定することができる。
【0025】
アービタ処理部793によってステータス更新検出部892に対してステータス更新情報の出力が許可された場合にも同様の動作が実行され、アドレス生成部(ADDR)896によって生成されたDMAアドレスがアドレス出力制御部794aに出力されると共に、その時点におけるステータス信号の最新の更新内容を示すステータス更新情報が更新ステータスとしてステータス更新検出部892からデータ出力制御部794bに出力される。アドレス生成部(ADDR)896によって生成されるDMAアドレスの初期値は、I/O装置(B)630のステータス更新情報を蓄積するためにメモリ641上に予め割り当てられた更新ステータス記憶領域の先頭位置を示すメモリアドレス、例えば0x2000であり、ステータス更新検出部892からの更新ステータスの出力の度に自動的にカウントアップされる。
【0026】
次に、図5のタイミングチャートを参照して、本実施形態における割り込み通知処理の動作を具体的に説明する。
【0027】
I/OステータスDMAコントローラ690は、I/O装置(A)620からのステータス出力信号628によってI/O装置(A)620のステータス更新(“000”−>”001”)、すなわち割り込み出力信号629のアサート、を検出すると、“001”を更新ステータスとして含み、且つDMA転送によるデータの識別子として最上位ビットをセットした1バイトの更新ステータスデータを、予め設定されているDMAアドレス“0x1000”にDMA転送する(a)。更新ステータスは、更新前ステータスと更新後ステータスとの差分であり、セットされたステータスビットを示す。メモリアドレス0x1000で指定されるメモリ641上の記憶位置には、図6に示すように、“0b10000_001”が格納される。ここで“0b”は2進信号を示している。DMA転送先のメモリ641上のバイトデータは、あらかじめ0b00000000で初期化しておき、DMA転送によって最上位ビットがセットされたデータと区別できるようにしておく。
【0028】
I/OステータスDMAコントローラ690は、I/O装置(A)620からのステータス出力信号628によってI/O装置(A)620のステータス更新(“001”−>“011”)、すなわち第2ステータスビットがセットされたことを検出すると、DMAアドレス0x1001に更新ステータス(“010”)を含む更新ステータスデータをDMA転送する(b)。これにより、メモリアドレス0x1001で指定されるメモリ641上の記憶位置には、図6に示すように、“0b10000_010”が格納される。
【0029】
I/OステータスDMAコントローラ690は、I/O装置(B)630からのステータス出力信号638によってI/O装置(B)630のステータス更新(“000”−>“001”)、すなわち割り込み出力信号639のアサートを検出し、I/O装置(A)620に対する場合と同様にして、DMAアドレス0x2000へDMA転送を行う時点での更新ステータス(“101”)を含む更新ステータスデータをDMA転送する(c)。これにより、メモリアドレス0x2000で指定されるメモリ641上の記憶位置には、図6に示すように、“0b10000_101”が格納される。
【0030】
I/OステータスDMAコントローラ690は、I/O装置(B)630からのステータス出力信号638によってI/O装置(B)630のステータス更新(“101”−>“111”)、すなわち第2ステータスビットがセットされたことを検出すると、DMAアドレス0x2001へ更新ステータス(“010”)を含む更新ステータスデータをDMA転送する(d)。これにより、メモリアドレス0x2001で指定されるメモリ641上の記憶位置には、図6に示すように、“0b10000_010”が格納される。
【0031】
I/OステータスDMAコントローラ690は、I/O装置(A)620からのステータス出力信号628によってI/O装置(A)620のステータス更新(“010”−>“100”)、すなわち第1ステータスビットがセットされたことを検出すると、DMAアドレス0x1002へ更新ステータス(“100”)を含む更新ステータスデータをDMA転送する(e)。これにより、メモリアドレス0x1002で指定されるメモリ641上の記憶位置には、図6に示すように、“0b10000_100”が格納される。
【0032】
I/OステータスDMAコントローラ690は、I/O装置(A)620からのステータス出力信号628によってI/O装置(A)620のステータス更新(“100”−>“000”)、つまり全てのステータスビットのクリアを検出すると、I/O装置(A)620で発生した割り込み発生要因それぞれに対応する処理が全て完了したことをプロセッサ610に通知するために、DMAアドレス0x1003へ更新ステータス(“000”)を含む更新ステータスデータをDMA転送する(f)。これにより、メモリアドレス0x1003で指定されるメモリ641上の記憶位置には、図6に示すように、“0b10000_000”が格納される。
【0033】
I/OステータスDMAコントローラ690は、I/O装置(B)630からのステータス出力信号638によってI/O装置(B)630のステータス更新(“010”−>“011”)、つまり第3ステータスビットがセットされたことを検出すると、DMAアドレス0x2002へ更新ステータス(“001”)を含む更新ステータスデータをDMA転送する(g)。これにより、メモリアドレス0x2002で指定されるメモリ641上の記憶位置には、図6に示すように、“0b10000_001”が格納される。
【0034】
I/OステータスDMAコントローラ690は、I/O装置(B)630からのステータス出力信号638によってI/O装置(B)630のステータス更新(“001”−>“000”)、つまり全てのステータスビットのクリアを検出すると、I/O装置(B)630で発生した割り込み発生要因それぞれに対応する処理が全て完了したことをプロセッサ610に通知するために、DMAアドレス0x2003へ更新ステータス(“000”)を含む更新ステータスデータをDMA転送する(h)。これにより、メモリアドレス0x2003で指定されるメモリ641上の記憶位置には、図6に示すように、“0b10000_000”が格納される。
【0035】
次に、プロセッサ610によって実行される割り込み処理の動作例を説明する。
【0036】
(0) プロセッサ610は割り込みコントローラ650からの割り込み出力信号659のアサートを検出すると、割り込み処理ソフトウェアを呼び出す。
【0037】
(1) 割り込み処理ソフトウェアは、割り込みコントローラ650のステータスレジスタを参照して割り込み出力信号をアサートしているI/O装置を判別し、そのI/O装置に対応するI/O装置処理ソフトウェアを呼び出す。
【0038】
(2) I/O装置処理ソフトウェアは、それに対応するI/O装置用に割り当てられたメモリ641上の記憶領域から更新ステータスデータをリードする。そして、新たにセットされた更新ステータスに対応する処理を実行し、その処理が完了するたびに該当するI/O装置内のステータスレジスタのステータスビットをリセットする。
【0039】
(3) I/O装置処理ソフトウェアは、更新ステータスデータによって全てのステータスのクリアが確認されると、処理を終了する。
【0040】
(4) もし割り込みコントローラ650からの割り込み出力信号659がアサートされ続けていれば、割り込み処理ソフトウェアは割り込みコントローラ650のステータスレジスタを参照して、割り込み出力信号をアサートしている他のI/O装置を判別し、そのI/O装置に対応するI/O装置処理ソフトウェアを呼び出す。
【0041】
(5) I/O装置処理ソフトウェアは、それに対応するI/O装置用に割り当てられたメモリ641上の記憶領域から更新ステータスデータをリードする。そして、新たにセットされた更新ステータスに対応する処理を実行し、その処理が完了するたびに該当するI/O装置内のステータスレジスタのステータスビットをリセットする。
【0042】
(6) I/O装置処理ソフトウェアは、更新ステータスデータによって全てのステータスのクリアが確認されると、処理を終了する。
【0043】
以上のように、本実施形態によれば、I/OステータスDMAコントローラ690によって更新ステータスデータを自動的にメモリ641にDMA転送することにより、プロセッサ610はI/O装置のステータスレジスタを参照することなく、割り込み発生要因を調べることが出来る。よって、プロセッサ610は、メモリ641を参照するだけで、I/O装置で発生した割り込み発生要因それぞれに対応する処理を逐次実行することが可能となる。
【0044】
次に、図7乃至図11を参照して、本発明の第2実施形態を説明する。
図7には、第2実施形態に係るコンピュータのシステム構成が示されている。この第2実施形態においては、第1実施形態で説明した割り込みコントローラが割り込み出力コントローラ170と割り込み入力コントローラ160とに分割されており、各I/O装置からの割り込み出力の発生は割り込みパケットによって割り込み出力コントローラ170から割り込み入力コントローラ160に転送される。以下、このコンピュータの構成を具体的に説明する。
【0045】
すなわち、図7に示されているように、このコンピュータは、プロセッサ110、I/O装置(A)120、I/O装置(B)130、メモリコントローラ140、メモリ141、I/Oコントローラ142、割り込み入力コントローラ160、割り込み出力コントローラ170、およびI/OステータスDMAコントローラ180を備えている。
【0046】
プロセッサ110は本コンピュータの動作を制御するCPUであり、メモリ141に格納された各種プログラムを実行する。プロセッサ141はプロセッサバスから構成される超高速バス146を介してメモリコントローラ140に接続されている。メモリコントローラ140はメモリ141に対するアクセス制御および割り込み入力コントローラ160への割り込みパケット転送を実行するデバイスである。このメモリコントローラ140は、超高速バス146と高速バス147との間を双方向で接続するバスブリッジとして機能する。メモリ141は本コンピュータの主記憶であり、プロセッサ110によって実行される各種プログラムおよびデータを格納する。
【0047】
I/Oコントローラ142はI/Oバス148上の各種デバイスを制御するデバイスであり、高速バス147とそれよりも低速のI/Oバス148との間を双方向で接続するバスブリッジとしても機能する。I/Oバス148上には、図示のように、I/O装置(A)120、I/O装置(B)130、割り込み出力コントローラ170、およびI/OステータスDMAコントローラ180が接続されている。
【0048】
I/O装置(A)120,I/O装置(B)130それぞれからの割り込み出力信号129,139は、割り込み出力コントローラ170に入力される。またI/O装置(A)120,I/O装置(B)130それぞれからのステータス出力信号128,138は、割り込み出力コントローラ170およびI/OステータスDMAコントローラ180の双方に入力される。これらステータス出力信号628,638は、I/O装置(A)120,I/O装置(B)130それぞれの割り込み発生要因を示すステータス信号である。
【0049】
I/O装置(A)120,I/O装置(B)130からの割り込み出力信号129,139それぞれのアサートは、割り込み出力コントローラ170により検出され、I/O装置からの割り込み信号出力の検出に関する情報は割り込みパケットとしてI/Oバス148に出力され、I/Oコントローラ142、高速バス147、メモリコントローラ140を経由して割り込み入力コントローラ160に転送される。
【0050】
割り込み入力コントローラ160は、割り込みパケットを受信すると、その受信した割り込みパケットをプロセッサ110からアクセス可能なように蓄積するとともに、割り込みパケットを入力したことを割り込み出力信号169によりプロセッサ110に通知する。またI/O装置(A)120,I/O装置(B)130からの割り込み出力信号129,139がアサートされている間、I/OステータスDMAコントローラ180は、割り込み出力を発生したI/O装置毎に、そのステータス信号128,138を監視し、ステータス出力信号の更新が行われる度に、当該更新されたステータス出力信号の内容を示すステータス更新情報をDMA転送によってメモリ141上の所定の記憶領域に順次転送する。メモリ141上には、ステータス更新情報を蓄積するための2つの記憶領域が予め割り当てられている。一方の記憶領域はI/O装置(A)120に関するステータス更新情報の蓄積に利用され、他方の記憶領域はI/O装置(B)130に関するステータス更新情報の蓄積に利用される。また、割り込み出力コントローラ170およびI/OステータスDMAコントローラ180は、通知信号195によって互いの状態を相手に通知することができる。
【0051】
I/O装置(A)120,I/O装置(B)130の構成は、図2、図3で説明したI/O装置(A)620,I/O装置(B)630それぞれと同一である。
【0052】
次に、図8を参照して、割り込み出力コントローラ170、I/OステータスDMAコントローラ180、および割り込み入力コントローラ160それぞれの構成と、それらの動作について説明する。
【0053】
割り込み出力コントローラ170は、I/O装置(A)120,I/O装置(B)130それぞれに対応する割り込み出力検出部472,572を備えている。割り込み出力検出部472はI/O装置(A)120からの割り込み出力信号129のアサートを検出し、また割り込み出力検出部572はI/O装置(B)130からの割り込み出力信号139のアサートを検出する。割り込み出力検出部472,572の各々は、対応するI/O装置からの割り込み出力信号129,139のアサートを検出すると、割り込み出力検出信号472aをアービタ処理部473に通知して、割り込みパケットの出力をアービタ処理部473に要求する。アービタ処理部473は、割り込み出力検出部472,572それぞれからの要求を一つずつ割り込みパケット出力制御部474に通知して、割り込み信号出力をアサートしたI/O装置に関する割り込みパケットを、割り込みパケット出力制御部474にI/Oバス148上に出力させる。割り込みパケットには、割り込み出力信号のアサートを検出した割り込み出力検出部472または572に対応するI/O装置を示すI/O識別子と、当該I/O装置からのステータス出力信号の内容が含まれる。
【0054】
割り込みパケット出力制御部474からあるI/O装置に関する割り込みパケットを出力すると、アービタ処理部473は、当該I/O装置に対応する割り込み出力検出部472または572に対して割り込みパケット出力通知信号472bを出力して割り込みパケットを出力したことを通知すると共に、I/OステータスDMAコントローラ180内に設けられた当該I/O装置に対応するステータス更新検出部482または582に割り込みパケット出力通知信号475を出力して割り込みパケットを出力したことを通知する。
【0055】
割り込み入力コントローラ160は、割り込み出力コントローラ170から送られてきた割り込みパケットを入力し、それを割り込みパケット検出蓄積部462に蓄積するとともに、プロセッサ110への割り込み出力信号169をアサートして、割り込みパケットを入力したこと、つまりI/O装置(A)120またはI/O装置(B)130から割り込み出力信号が発生されたことをプロセッサ110に通知する。割り込みパケット検出蓄積部462には複数の割り込みパケットを蓄積することができる。また、割り込みパケット検出蓄積部462は、プロセッサ110からアクセスできるように構成されている。割り込み出力信号169の発生は、コントロールレジスタ461によって許可/禁止することができる。
【0056】
I/OステータスDMAコントローラ180には、I/O装置(A)120,I/O装置(B)130それぞれに対応するステータス更新検出部482,582が設けられている。これらステータス更新検出部482,582は、割り込み出力コントローラ170より割り込みパケット出力通知信号475による通知を受けると、対応するI/O装置(A)120,I/O装置(B)130からのステータス出力信号128,138の監視、つまりステータス出力信号128,138の更新検出を開始する。ステータス更新検出部482,582それぞれからのステータス更新検出の通知はアービタ処理部483によって調停される。即ち、ステータス更新検出部482,582の各々は、対応するI/O装置からのステータス出力信号128,138の更新を検出すると、ステータス更新検出信号482aをアービタ処理部483に通知することにより、更新されたステータス信号の内容を示すステータス更新情報の出力許可をアービタ処理部483に要求する。
【0057】
今、アービタ処理部483によってステータス更新検出部482に対してステータス更新情報の出力が許可されたとする。この場合、ステータス更新DMA出力通知信号482bがアービタ処理部483からステータス更新検出部482に供給される。ステータス更新検出部482は、それに対応するアドレス生成部(ADDR)486を用いてDMAアドレス486aを生成してそれをアドレス出力制御部484aに出力すると共に、その時点におけるステータス信号の最新の更新内容を示すステータス更新情報を更新ステータス482dとしてデータ出力制御部484bに出力する。これにより、更新ステータスを含むデータは、アドレス出力制御部484aおよびデータ出力制御部484bの制御の下、アドレス生成部486によって生成されたDMAアドレス486aで指定されるメモリ141上の記憶領域にDMA転送される。
【0058】
アドレス生成部(ADDR)486によって生成されるDMAアドレスの初期値は、I/O装置(A)120のステータス更新情報を蓄積するためにメモリ141上に予め割り当てられた更新ステータス記憶領域の先頭位置を示すメモリアドレス、例えば0x1000であり、ステータス更新検出部482からの更新ステータスの出力の度に自動的にカウントアップされる。DMAアドレスの初期値は、例えば、コントロールレジスタ481を介してアドレス生成部(ADDR)486に設定することができる。
【0059】
また、ステータス更新検出部482は、I/O装置(A)120からのステータス出力信号128によって全てのステータスビットがクリアされたことを検出した場合には、そのことを示す更新ステータスを含むデータをメモリ141上にDMA転送するとともに、全てのステータスビットがクリアされたことをステータスクリアDMA出力信号485によって割り込み出力コントローラ170の割り込み出力検出部472に通知する。
【0060】
アービタ処理部483によってステータス更新検出部582に対してステータス更新情報の出力が許可された場合にも同様の動作が実行され、アドレス生成部(ADDR)586によって生成されたDMAアドレスがアドレス出力制御部484aに出力されると共に、その時点におけるステータス信号の最新の更新内容を示すステータス更新情報が更新ステータスとしてステータス更新検出部582からデータ出力制御部484bに出力される。アドレス生成部(ADDR)586によって生成されるDMAアドレスの初期値は、I/O装置(B)130のステータス更新情報を蓄積するためにメモリ141上に予め割り当てられた更新ステータス記憶領域の先頭位置を示すメモリアドレス、例えば0x2000であり、ステータス更新検出部582からの更新ステータスの出力の度に自動的にカウントアップされる。
【0061】
また、ステータス更新検出部582は、I/O装置(B)130からのステータス出力信号138によって全てのステータスビットがクリアされたことを検出した場合には、そのことを示す更新ステータスを含むデータをメモリ141上にDMA転送するとともに、全てのステータスビットがクリアされたことをステータスクリアDMA出力信号によって割り込み出力コントローラ170の割り込み出力検出部572に通知する。
【0062】
次に、図9のタイミングチャートを参照して、本第2実施形態における割り込み通知処理の動作を具体的に説明する。
【0063】
割り込み出力コントローラ170は、I/O装置(A)120に対応する割り込み出力検出部472により、I/O装置(A)120からの割り込み出力信号129のアサートを検出すると、I/OステータスDMAコントローラ180に設けられたI/O装置(A)120に対応するステータス更新検出部482からのステータスクリアDMA出力通知信号がアサートされていることを条件に、I/O装置(A)120からのステータス出力信号の情報(“001”)とI/O装置(A)120の識別子とを含む割り込みパケットを割り込み入力コントローラ160へ出力する(a)。これにより、割り込み入力コントローラ160の割り込みパケット検出蓄積部462には、図10に示すように、I/O装置(A)120からの割り込み出力に関する割り込みパケットの情報が格納される。
【0064】
割り込み出力コントローラ170は、I/O装置(A)120に対応する割り込みパケット出力通知信号475をアサートする。これにより、I/OステータスDMAコントローラ180は、割り込み出力信号を発生したI/O装置(A)120に対応するステータス更新の検出を開始するとともに、ステータスクリアDMA出力通知信号485をデアサートする。
【0065】
I/OステータスDMAコントローラ180は、I/O装置(A)120からのステータス出力信号128によってI/O装置(A)120のステータス更新(“001”−>“011”)、すなわち第2ステータスビットがセットされたことを検出すると、“010”を更新ステータスとして含み、且つDMA転送によるデータの識別子として最上位ビットをセットした1バイトの更新ステータスデータを、予め設定されているDMAアドレス“0x1000”にDMA転送する(b)。更新ステータスは、更新前ステータスと更新後ステータスとの差分であり、セットされたステータスビットを示す。メモリアドレス0x1000で指定されるメモリ141上の記憶位置には、図11に示すように、“0b10000_010”が格納される。DMA転送先のメモリ141上のバイトデータは、あらかじめ0b00000000で初期化しておき、DMA転送によって最上位ビットがセットされたデータと区別できるようにしておく。
【0066】
割り込み出力コントローラ170は、I/O装置(B)130に対応する割り込み出力検出部572により、I/O装置(B)130からの割り込み出力信号139のアサートを検出すると、I/OステータスDMAコントローラ180に設けられたI/O装置(B)130に対応するステータス更新検出部582からのステータスクリアDMA出力通知信号がアサートされていることを条件に、I/O装置(B)130からのステータス出力信号の情報(“101”)とI/O装置(B)130の識別子とを含む割り込みパケットを割り込み入力コントローラ160へ出力する(c)。これにより、割り込み入力コントローラ160の割り込みパケット検出蓄積部462には、図10に示すように、I/O装置(B)130からの割り込み出力に関する割り込みパケットの情報が格納される。
【0067】
割り込み出力コントローラ170は、I/O装置(B)130に対応する割り込みパケット出力通知信号をアサートする。これにより、I/OステータスDMAコントローラ180は、割り込み出力信号を発生したI/O装置(B)130に対応するステータス更新の検出を開始するとともに、I/O装置(B)130に対応する割り込み出力検出部572へのステータスクリアDMA出力通知信号をデアサートする。
【0068】
I/OステータスDMAコントローラ180は、I/O装置(B)130からのステータス出力信号138によってI/O装置(B)130のステータス更新(“101”−>“111”)、つまり第2ステータスビットがセットされたことを検出すると、I/O装置(A)120に対応する場合と同様にして、DMAアドレス0x2000へ更新ステータス(“010”)を転送する(d)。これにより、メモリアドレス0x2000で指定されるメモリ141上の記憶位置には、図11に示すように、“0b10000_010”が格納される。
【0069】
I/OステータスDMAコントローラ180は、I/O装置(A)120からのステータス出力信号128によってI/O装置(A)120のステータス更新(“010”−>“100”)、つまり第1ステータスビットがセットされたことを検出すると、DMAアドレス0x1001へ更新ステータス(“100”)を転送する(e)。これにより、メモリアドレス0x1001で指定されるメモリ141上の記憶位置には、図11に示すように、“0b10000_100”が格納される。
【0070】
I/OステータスDMAコントローラ180は、I/O装置(A)120からのステータス出力信号128によってI/O装置(A)120のステータスクリア(“100”−>“000”)を検出すると、DMAアドレス0x1002へ更新ステータス(“000”)を転送する(f)。これにより、メモリアドレス0x1002で指定されるメモリ141上の記憶位置には、図11に示すように、“0b10000_000”が格納される。そして、I/OステータスDMAコントローラ180は、I/O装置(A)120に対応するステータスクリアDMA出力信号をアサートし、割り込み出力コントローラ170は対応する割り込みパケット出力通知信号をデアサートする。
【0071】
I/OステータスDMAコントローラ180は、I/O装置(B)130からのステータス出力信号138によってI/O装置(B)130のステータス更新(“010”−>“011”)、つまり第3ステータスビットがセットされたことを検出すると、DMAアドレス0x2001へ更新ステータス(“001”)を転送する(g)。これにより、メモリアドレス0x2001で指定されるメモリ141上の記憶位置には、図11に示すように、“0b10000_001”が格納される。
【0072】
I/OステータスDMAコントローラ180は、I/O装置(B)130からのステータス出力信号138によってI/O装置(B)130のステータスクリア(“001”−>“000”)を検出すると、DMAアドレス0x2002へ更新ステータス(“000”)を転送する(h)。これにより、メモリアドレス0x2002で指定されるメモリ141上の記憶位置には、図11に示すように、“0b10000_000”が格納される。そして、I/OステータスDMAコントローラ180は、I/O装置(B)130に対応するステータスクリアDMA出力信号をアサートし、割り込み出力コントローラ170は対応する割り込みパケット出力通知信号をデアサートする。
【0073】
次に、プロセッサ110によって実行される割り込み処理の動作例を説明する。
(0) プロセッサ110は割り込み入力コントローラ160からの割り込み出力信号169のアサートを検出すると、割り込み処理ソフトウェアを呼び出す。
【0074】
(1) 割り込み処理ソフトウェアは、割り込み入力コントローラ160のコントロールレジスタ461により割り込み出力信号169の発生を禁止する。
(2) 割り込み処理ソフトウェアは、割り込み入力コントローラ160の割り込みパケット検出蓄積部462の割り込みパケットデータをリードして、割り込み出力を発生したI/O装置を判別し、対応するI/O装置処理ソフトウェアを呼び出す。
【0075】
(3.1) I/O装置処理ソフトウェアは、対応するI/O装置のコントロールレジスタにより割り込み出力信号を禁止する。
(3.2) I/O装置処理ソフトウェアは、割り込み処理ソフトウェアから割り込みパケットデータ中のステータスを受け取り、セットされている各ステータスに対応する処理を行う。そして、各ステータスに対応する処理が完了する度に、該当するI/O装置内の対応するステータスレジスタのステータスビットをリセットする。
【0076】
(3.3) I/O装置処理ソフトウェアは、それに対応するI/O装置用に割り当てられたメモリ641上の記憶領域から更新ステータスデータをリードする。そして、新たにセットされた更新ステータスに対応する処理を実行し、その処理が完了するたびに該当するI/O装置内のステータスレジスタのステータスビットをリセットする。
【0077】
(3.4) I/O装置処理ソフトウェアは、更新ステータスデータによって全てのステータスのクリアが確認されると、対応するI/O装置のコントロールレジスタにより割り込み出力信号を許可する。そしてI/O装置処理ソフトウェアは、その処理を終了する。
【0078】
(4) 割り込み処理ソフトウェアは、割り込み入力コントローラ160のコントロールレジスタにより割り込み出力信号169の発生を許可すると同時に処理を終了する。
【0079】
以上のように、本第2実施形態によれば、I/OステータスDMAコントローラ180によって更新ステータスデータを自動的にメモリ141にDMA転送するだけでなく、割り込み出力信号を発生したI/O装置を示す情報を割り込みパケットとして割り込み出力コントローラ170から割り込み入力コントローラ160に転送することにより、割り込み出力信号を発生したI/O装置の判別についても効率よく実行することが可能となる。
【0080】
なお、本第2実施形態においては、更新ステータスを割り込みパケットに付加して割り込み入力コントローラ160に転送したが、全ての更新ステータスをI/OステータスDMAコントローラ180によるDMA転送によってメモリ141に転送するようにしてもよい。
【0081】
また、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【0082】
【発明の効果】
以上説明したように、本発明によれば、I/O装置で発生した割り込み発生要因をプロセッサに効率よく通知することが可能となる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係る情報処理装置の構成を示すブロック図。
【図2】同実施形態の情報処理装置で使用されるI/O装置(A)の構成例を示す図。
【図3】同実施形態の情報処理装置で使用されるI/O装置(B)の構成例を示す図。
【図4】同実施形態の情報処理装置で使用されるI/OステータスDMAコントローラの構成例を示すブロック図。
【図5】同実施形態の情報処理装置における割り込み通知処理の動作を示すタイミングチャート。
【図6】同実施形態の情報処理装置のメモリに格納された更新ステータスデータの例を示す図。
【図7】本発明の第2実施形態に係る情報処理装置の構成を示すブロック図。
【図8】同第2実施形態に係る情報処理装置で使用される割り込み出力コントローラ、I/OステータスDMAコントローラ、および割り込み入力コントローラそれぞれの構成を示すブロック図。
【図9】同第2実施形態の情報処理装置における割り込み通知処理の動作を示すタイミングチャート。
【図10】同第2実施形態の情報処理装置の割り込み入力コントローラに蓄積される割り込みパケットの例を示す図。
【図11】同第2実施形態の情報処理装置のメモリに格納された更新ステータスデータの例を示す図。
【符号の説明】
110,610…プロセッサ、120,130,620,630…I/O装置、141,641…メモリ、160…割り込み入力コントローラ、170…割り込み出力コントローラ、180,690…I/OステータスDMAコントローラ、650…割り込みコントローラ。
Claims (6)
- プログラムおよびデータが格納されるメモリと、
前記メモリに格納されたプログラムを実行するプロセッサと、
I/O装置からの割り込み出力の発生に応じて、前記プロセッサに割り込み信号を発生する割り込み制御手段と、
割り込み発生要因を示す前記I/O装置のステータス信号を監視し、前記ステータス信号の更新に応じて、当該更新されたステータス信号の内容を示すステータス更新情報をDMA転送によって前記メモリに転送するステータス更新情報転送手段とを具備することを特徴とする情報処理装置。 - 前記ステータス更新情報転送手段は、
前記ステータス更新情報を前記メモリ上の所定の記憶領域に書き込むためのメモリアドレスを発生する手段を含むことを特徴とする請求項1記載の情報処理装置。 - 前記割り込み制御手段は、
前記I/O装置からの割り込み出力の発生に応じて、前記I/O装置から割り込み出力が発生したことを示す割り込みパケットを前記情報処理装置のバス上に出力する第1の割り込みコントローラと、
前記第1の割り込みコントローラから前記バスを介して転送される前記割り込みパケットに応じて、前記プロセッサに割り込み信号を発生する第2の割り込みコントローラとを含むことを特徴とする請求項1記載の情報処理装置。 - プログラムおよびデータが格納されるメモリと、
前記メモリに格納されたプログラムを実行するプロセッサと、
複数のI/O装置それぞれからの割り込み出力の発生に応じて、割り込み出力を発生したI/O装置を示す割り込みパケットをバス上に出力する第1の割り込みコントローラと、
前記第1の割り込みコントローラから前記バスを介して転送される前記割り込みパケットを受信及び蓄積すると共に、前記割り込みパケットの受信に応じて前記プロセッサに割り込み信号を発生する第2の割り込みコントローラと、
割り込み発生要因を示す前記複数のI/O装置それぞれのステータス信号を監視し、前記割り込み出力を発生したI/O装置のステータス信号の更新に応じて、当該更新されたステータス信号の内容を示すステータス更新情報を、前記割り込み出力を発生したI/O装置に対応する前記メモリ上の記憶領域にDMA転送によって転送するステータス更新情報転送手段とを具備することを特徴とする情報処理装置。 - I/O装置で発生した割り込み発生要因をプロセッサに通知する割り込み通知方法であって、
I/O装置からの割り込み出力の発生に応じて、前記プロセッサに割り込み信号を発生するステップと、
割り込み発生要因を示す前記I/O装置のステータス信号が更新される度に当該更新されたステータス信号の内容を示すステータス更新情報をDMA転送によって前記メモリに転送することにより、前記I/O装置の割り込み発生要因を前記プロセッサに通知するステップとを具備することを特徴とする割り込み通知方法。 - 複数のI/O装置それぞれで発生した割り込み発生要因をプロセッサに通知する割り込み通知方法であって、
前記複数のI/O装置それぞれからの割り込み出力の発生を検出する第1の割り込みコントローから第2の割り込みコントローラに、前記割り込み出力を発生したI/O装置を示す割り込みパケットをバスを介して転送するステップと、
前記第1の割り込みコントローラから前記第2の割り込みコントローラに転送される前記割り込みパケットを前記第2の割り込みコントローラ内に蓄積すると共に、前記プロセッサに割り込み信号を発生するステップと、
前記割り込み出力を発生したI/O装置のステータス信号が更新される度に当該更新されたステータス信号の内容を示すステータス更新情報を前記割り込み出力を発生したI/O装置に対応する前記メモリ上の記憶領域にDMA転送によって転送することにより、前記各I/O装置毎に当該I/Oの割り込み発生要因を前記プロセッサに通知するステップとを具備することを特徴とする割り込み通知方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003155468A JP2004355543A (ja) | 2003-05-30 | 2003-05-30 | 情報処理装置および割り込み通知方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003155468A JP2004355543A (ja) | 2003-05-30 | 2003-05-30 | 情報処理装置および割り込み通知方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004355543A true JP2004355543A (ja) | 2004-12-16 |
Family
ID=34049823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003155468A Pending JP2004355543A (ja) | 2003-05-30 | 2003-05-30 | 情報処理装置および割り込み通知方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004355543A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006137234A1 (ja) * | 2005-06-01 | 2006-12-28 | Sony Corporation | 情報処理装置および情報処理方法、並びにプログラム |
JP2008535099A (ja) * | 2005-03-28 | 2008-08-28 | マイクロソフト コーポレーション | 拡張割込み制御装置および合成割込みソースに関するシステムおよび方法 |
JP2012190414A (ja) * | 2011-03-14 | 2012-10-04 | Ricoh Co Ltd | データ転送システム及びデータ転送方法 |
-
2003
- 2003-05-30 JP JP2003155468A patent/JP2004355543A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008535099A (ja) * | 2005-03-28 | 2008-08-28 | マイクロソフト コーポレーション | 拡張割込み制御装置および合成割込みソースに関するシステムおよび方法 |
WO2006137234A1 (ja) * | 2005-06-01 | 2006-12-28 | Sony Corporation | 情報処理装置および情報処理方法、並びにプログラム |
JP2007012021A (ja) * | 2005-06-01 | 2007-01-18 | Sony Corp | 情報処理装置および情報処理方法、並びにプログラム |
US8412871B2 (en) | 2005-06-01 | 2013-04-02 | Sony Corporation | Information processing apparatus, information processing method, and program |
JP2012190414A (ja) * | 2011-03-14 | 2012-10-04 | Ricoh Co Ltd | データ転送システム及びデータ転送方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW432284B (en) | Recovery mechanism for l1 data cache parity errors | |
JP2010117872A (ja) | 割込検出装置および情報処理システム | |
US10379931B2 (en) | Computer system | |
US20130019032A1 (en) | Apparatus and method for generating interrupt signal that supports multi-processor | |
JP2007058716A (ja) | データ転送バスシステム | |
JP4711410B2 (ja) | 半導体集積回路 | |
JP2004355543A (ja) | 情報処理装置および割り込み通知方法 | |
JP3446653B2 (ja) | データ転送装置 | |
JP2004078683A (ja) | コンピュータシステムおよび共有メモリ制御方法 | |
US20080005389A1 (en) | Direct memory access controller | |
JP3936408B2 (ja) | 情報処理方法及び情報処理装置 | |
JP2005085079A (ja) | データ転送制御装置 | |
JP2009258984A (ja) | 情報処理装置およびロード制御方法 | |
JP2015014962A (ja) | 演算装置、演算方法、及びプログラム | |
US20060136617A1 (en) | Data transfer apparatus and data transfer method | |
JP2007208696A (ja) | 暗号処理回路及び印刷装置 | |
JP2005346164A (ja) | データ処理装置およびデータ転送制御方法 | |
JP2005301714A (ja) | マルチcpuシステム、そのデータ転送方法、及びそのプログラム | |
TWI830145B (zh) | 傳感裝置的中斷處理方法及其積體電路 | |
JP2006011645A (ja) | 半導体集積回路 | |
JP2009157731A (ja) | 仮想計算機システムおよび仮想計算機システムの制御方法 | |
JP5334173B2 (ja) | データ転送システム及びリトライ制御方法 | |
JP2010140440A (ja) | バス調停装置 | |
JP2005242929A (ja) | 共有メモリのアクセス方法及びデータ処理装置 | |
JP2008198098A (ja) | 情報処理装置 |