(57)【要約】    【課題】  割り込みを有効に処理することのできるデータ転送バスシステムを提供。    【解決手段】  AMBA（高度マイクロコントローラバスシステム)のAHBバス102には、ARM CPU 110に接続されたAHBバスインタフェース112と、AHBバスアービタ114と、AHB-APBブリッジ122と、高性能周辺装置124と、バスリクエスト優先度判定回路100とが接続されて、AHB-APBブリッジ122はさらに周辺バスAPB 104を介してタイマ150およびUART 152等が接続されている。割込コントローラ132は、タイマ150およびUART 152等からの割込要求信号(INTREQ1〜INTREQ3)を入力して割込信号(CPUINT)をARM CPU 110とバスリクエスト優先度判定回路100とに出力し、割り込みとバスリクエストとの優先順位に従って高性能周辺装置124のバスリクエストを発生するか否かの制御を行なう。【選択図】        図１
2007058716.tif 000002
【特許請求の範囲】
【請求項１】
複数のバスマスタを接続するデータ転送バスシステムにおいて、該システムは、
前記複数バスマスタのうち、主バスマスタとなり、データ転送、データ受信およびスレーブ制御を行なう第１の制御手段と、
該第１の制御手段に接続するデータバスと、
該データバスに接続され、前記複数バスマスタのうち、前記主バスマスタ以外のバスマスタとなり、データ転送、データ受信およびスレーブ制御を行なう第２の制御手段と、
前記第１の制御手段および前記第２の制御手段のバスリクエスト信号を受け付けて、いずれかにバスマスタ権利を与えるバスアービタ手段と、
前記第２の制御手段のバスマスタ権利の優先度判定を行う優先度判定手段とを含み、
該優先度判定手段は、第２の制御手段からのバスリクエスト信号と、各周辺装置からの複数の割込信号を受け付けて、該複数の割込信号に対し優先度を設定するレジスタと、
前記優先度を設定するためのレジスタ情報に従って、前記第２の制御手段からのリクエスト信号と、各周辺装置からの複数の割込信号との優先度判定を行い、前記第２の制御手段のバスリクエスト信号を前記バスアービタ手段に通知するか否かを判定する判定手段とを含むことを特徴とするデータ転送バスシステム。
【請求項２】
請求項１に記載のデータ転送バスシステムにおいて、該システムは、前記第１の制御手段に前記割込信号を出力する割込制御手段を有し、
前記優先度判定手段は、前記第２の制御手段からのバスリクエスト信号と、前記割込信号とにより前記優先度判定を行うことを特徴とするデータ転送バスシステム。
【請求項３】
請求項１に記載のデータ転送バスシステムにおいて、前記優先度判定手段は、前記第２の制御手段からのバスリクエスト信号と、各周辺装置からの複数の割込信号要求とにより前記優先度判定を行うことを特徴とするデータ転送バスシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステム内のデータ転送バスシステムに関するものである。
【背景技術】
【０００２】
データ転送バスシステムに関するもので、代表的なものとしてARM社によって定義されたAMBA（高度マイクロコントローラバスシステム)が挙げられる。このAMBAは、高性能AHBバスと、中程度の性能の周辺バスAPBとの２本の主バスを有している。標準的なものとしてAHBバスは主メモリ・バスであり、AMBAはRAMとROMとを備える。
【０００３】
このAMBAの基本システムは、大量のデータを転送する高性能周辺装置が必要な場合は、この周辺装置も高性能AHBバス上に置くように規定されている。
【０００４】
AMBA標準システムは、主メモリ・バスの高度高性能バス（AHB）と、中程度の性能の高度周辺装置バス（APB）との２本の主バスを有する。AHBバスは、AHBバスインタフェースを介してARM CPU と、ランダム・アクセス・メモリ（RAM）と、リード・オンリー・メモリ（ROM）とを結合する接続である。
【０００５】
この基本システムにおいて大量のデータを転送するために高性能周辺装置が必要な場合には、この高性能周辺装置も高性能AHBバス上に置く。
【０００６】
これら２台のARM CPUと高性能周辺装置との各マスタ間のバス・アクセス権は、AHBバス・アービタによって調停する。
【０００７】
たとえば、高性能周辺装置がAHBバスのAHBバス権を得て、マスタとして各スレーブへのアクセスを行うときは、高性能周辺装置はバスリクエスト信号（HBUSREQ）をAHBバス・アービタに送り、AHBバスアービタからのアクノリッジ信号(HGRANT)を高性能周辺装置が受け取ってから高性能周辺装置は各スレーブへのアクセスを行なう。なお、AHBバス・アービタは、AHBバス・デコーダと選択線とを介して種々のスレーブ装置へのアクセスを制御する。
【０００８】
また、高度高性能バス（AHB）と分離するために第2のバスを用いて、単一アービタを用いることが提案されている。この第2のバスを高度周辺装置バス（APB）と呼ぶ。APBバスはAHBバスと同様に動作する。APBバスは、AHB・APBバス・ブリッジを介してAHBバスに接続する。AHB・APBバス・ブリッジはAHBバスのスレーブである。またUARTおよびタイマなどの中程度の性能の周辺装置は全て周辺バス上に置かれる。
【０００９】
また、UARTおよびタイマ等の周辺装置からの割込要求信号(INTREQ)は割込コントローラに通知され、割り込みの優先度判断後にARM CPU に割込信号(CPUINT)として通知されることにより、ARM CPUは割込処理を実行する。
【００１０】
【特許文献１】特開２００２−１２３４８４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、高性能周辺装置をAHBバス上に置くと、高性能周辺装置がAHBバスを制御しているときは、ARM CPUはその間処理を行なうことができない。とくに、UARTおよびタイマなどの周辺装置からの割り込みに対し、ARM CPUは即座に応答し処理を行なうことが望ましい。しかし、高性能周辺装置からのバスリクエストが頻繁に発生すると、バスリクエストの優先度の方が割込要求の優先度より高いので、ARM CPUはUARTおよびタイマなどの周辺装置からの割り込みを受け付けられなくなるという問題が生じる場合があった。この結果、システムとして正常動作できない。
【００１２】
また、割り込みを受け付けるためにバスリクエスト間隔を一定期間空けるように構成した場合には、システムのパフォーマンスが低下するという問題があった。
【００１３】
このように従来例では、優先度の低い要求に対しては、バスの使用権を与えることがなかなかできず、割り込みを有効に処理することが困難であった。
【００１４】
本発明は、割り込みを有効に処理することのできるデータ転送バスシステムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明は上述の課題を解決するために、複数のバスマスタを接続するデータ転送バスシステムにおいて、このシステムは、複数バスマスタのうち、主バスマスタとなり、データ転送、データ受信およびスレーブ制御を行なう第１の制御手段と、第１の制御手段に接続するデータバスと、データバスに接続され、複数バスマスタのうち、主バスマスタ以外のバスマスタとなり、データ転送、データ受信およびスレーブ制御を行なう第２の制御手段と、第１の制御手段および第２の制御手段のバスリクエスト信号を受け付けて、いずれかにバスマスタ権利を与えるバスアービタ手段と、第２の制御手段のバスマスタ権利の優先度判定を行う優先度判定手段とを含み、優先度判定手段は、第２の制御手段からのリクエスト信号と、各周辺装置からの複数の割込信号を受け付けて、複数の割込信号に対し優先度を設定するレジスタと、優先度を設定するためのレジスタ情報に従って、第２の制御手段からのリクエスト信号と、各周辺装置からの複数の割込信号との優先度判定を行い、第２の制御手段のバスリクエスト信号をバスアービタ手段に通知するか否かを判定する判定手段とを含むことを特徴とする。
【発明の効果】
【００１６】
本発明によれば、第２の制御手段とバスアービタ手段との間に優先度判定手段を備えて、第２の制御手段にて頻繁に発生するバスリクエスト信号に対し、割り込み処理を優先させることが可能となる。したがって、バスリクエストの優先度が割込要求の優先度よりも高い場合の問題を解決し、システムとして正常な動作が保証される。
【００１７】
また、バスリクエストと各割込要求信号に対し、個別に優先度を設定するための優先度判定手段を設けることにより、割込処理中に第２の制御手段のバスリクエストを発生させることが可能となり、また頻繁に発生する第２の制御手段のバスリクエストに対し、さらに優先度の高い割込処理を優先させることが可能となる。したがってさらにシステムパフォーマンスが向上される。
【発明を実施するための最良の形態】
【００１８】
次に添付図面を参照して本発明によるデータ転送システムの実施例を詳細に説明する。本発明によるデータ転送システムの実施例は、たとえばARM社によって定義されたAMBA（高度マイクロコントローラバスシステム)に適用される。図１を参照すると、AMBAにバスリクエスト優先度判定回路100を備えたAMBA 10が示されている。以下の説明において、本発明の理解に直接関係のない部分は、図示および説明を省略する。また、信号は、その現れる接続線の参照符号にて特定する。
【００１９】
図示するようにAMBA 10は、主メモリ・バスである高性能AHBバス102と、中程度の性能の周辺バスAPB 104を備えている。標準的なものとしてAHBバス102は、主メモリ・バスであり、AHBバス102は、ARM CPU 110に接続されたAHBバスインタフェース112と、AHBバスアービタ114に接続されたAHBバスデコーダ116と、RAM 118と、ROM 120 と、AHB-APBブリッジ122と、大量のデータを転送する高性能周辺装置124と、バスリクエスト優先度判定回路100とを接続し、それぞれを結合する。また、AHBバスアービタ114と、AHBバスデコーダ116と、RAM 118と、ROM 120 と、AHB-APBブリッジ122と、高性能周辺装置124と、バスリクエスト優先度判定回路100とはそれぞれ選択線126が接続される。
【００２０】
AHB-APBブリッジ122はさらに周辺バスAPB 104を介してタイマ150とUART 152を接続している。これらタイマ150とUART 152は後述の割込コントローラ132に対して割込要求信号(INTREQ)をそれぞれ接続線154,156を介して出力する。
【００２１】
ARM CPU 110と高性能周辺装置124とはそれぞれマスタ装置であり、これらの間のバス・アクセス権はAHBバス・アービタ114にて調停する。ARM CPU 110および高性能周辺装置124はそれぞれデータ転送、データ受信およびスレーブ制御を行なう制御機能を有している。
【００２２】
たとえば高性能周辺装置124がAHBバス権を得てマスタとして各スレーブへのアクセスを行うときは、高性能周辺装置124はバスリクエスト信号（HBUSREQIN）を信号線130を介してバスリクエスト優先度判定回路100に送る。バスリクエスト優先度判定回路100には、割り込みとバスリクエストの優先順位をあらかじめソフトウェアにて設定しておき、バスリクエスト優先度判定回路100は、優先順位に従って高性能周辺装置124のバスリクエストを発生するか否かの制御を行なう。
【００２３】
バスリクエスト優先度判定回路100およびARM CPU 110には、割込コントローラ132から割込信号(CPUINT)が信号線134を介して供給される。割込コントローラ132には、上述の割込要求信号(INTREQ1,INTREQ2)がそれぞれ信号線154,156を介して入力されるほかに外部装置から割込要求信号(INTREQ)が信号線158を介して入力される。ARM CPU 110に割込信号(CPUINT)が供給されると、ARM CPU 110は割り込み処理を実行する。
【００２４】
バスリクエスト優先度判定回路100の内部構成例を図２に示す。バスリクエスト優先度判定回路100は、図示するようにAHBバス102および選択線126を介してARM CPU 110からアクセス可能な優先度設定レジスタ136と、このレジスタ136に接続され、高性能周辺装置124から出力されるバスリクエスト信号(HBUSREQIN)を保留するための保留論理を有する優先判定回路138を備えている。優先判定回路138はその判定結果を反映したバスリクエスト信号（HBUSREQOUT）をバスリクエスト優先度判定回路100の出力として出力する。
【００２５】
図１に戻って、バスリクエスト優先度判定回路100の出力は、AHBバスアービタ114に接続されている。AHBバスアービタ114は、信号線140を介してバスリクエスト優先度判定回路100から与えられるバスリクエスト信号（HBUSREQOUT）に従って調停動作を行う。
【００２６】
高性能周辺装置124は、信号線160を介してAHBバスアービタ114から送られるアクノリッジ信号(HGRANT)を受け取ってから各スレーブへのアクセスを行なう。なお、AHBバス・アービタ114は、AHBバス・デコーダ116と選択線126を介して種々のスレーブ装置へのアクセスを制御する。
【００２７】
またAMBA 10は高度周辺装置バス（APB） 104は、AHBバス102と同様に動作する。APBバス104は、AHB-APBバス・ブリッジ122を介してAHBバス102に接続する。AHB-APBバス・ブリッジ122はAHBバス102のスレーブである。またタイマ150およびUART 152などの中程度の性能の周辺装置はすべてAPB 104に接続される。
【００２８】
以上の構成で本実施例におけるAMBA 10の動作を説明する。まず、図２に示した優先度設定レジスタ136は、制御信号126とAHBバス102にてARM CPU 110からのアクセスが可能な状態にて、高性能周辺装置124からのバスリクエスト(HBUSREQIN)よりもARM CPU 110からの割り込みを優先させたいときは“１”に設定し、割り込みよりもバスリクエストを優先させたいときは“０”に設定する。
【００２９】
この場合、たとえば、割込要求信号を発生させて所定時間経過してもバスの使用権が与えられないときに、優先度設定レジスタ136は“０”から“１”に設定する。次いで割込処理が終了すると優先度設定レジスタ136は、“１”から“０”に戻すとよい。また所定時間を認識するために、割込要求信号の発生タイミングにてカウントを開始し、所定カウント経過後に優先度設定レジスタ136の設定を変更させる監視回路を備えるとよい。
【００３０】
優先度設定レジスタ136に“０”が設定されているときは、優先判定回路138は、割込発生の有無に関わらずバスリクエスト(HBUSREQIN)をそのままスルーしてバスリクエスト(HBUSREQOUT)をイネーブル“１”にする。つまり、この場合、バスリクエスト優先度判定回路100は、AHBバスアービタ114ヘ有意のバスリクエスト(HBUSREQOUT)を出力する。
【００３１】
また優先度設定レジスタ136に“１”が設定されているときは、次の動作を行う。まず、割り込みが発生していないときは、バスリクエスト(HBUSREQIN)がイネーブル“１”になるとバスリクエスト(HBUSREQOUT)はイネーブル“１”になって、AHBバスアービタ114へバスリクエストを出力する。
【００３２】
なお、バスリクエスト(HBUSREQOUT)のイネーブル“１”中に割り込みが発生した場合は、即座にバスリクエストHBUSREQOUTをデイセーブル（“０”）にして、AHBバスアービタ114に対するバスリクエストを中断する。
【００３３】
割り込みが発生しているときは、バスリクエスト(HBUSREQIN)がイネーブル“１”になってもバスリクエスト(HBUSREQOUT)はデイセーブル“０”のままにして、AHBバスアービタ114ヘバスリクエストを出力しない。
【００３４】
以上のように図１および図２に示した第１の実施例によれば、バスリクエスト優先度判定手段100を高性能周辺装置124とAHBバスアービタ114との間に設けることにより、高性能周辺装置124にて頻繁に発生するバスリクエストに対し、割り込み処理を優先させることが可能となる。つまり、バスリクエスト要求の優先度の方が割込要求の優先度より高い場合の問題を排除することができ、システムとして正常な動作を保証することができる。
【００３５】
次に図３を参照して本発明によるデータ転送システムの他の実施例を説明する。図３を参照すると本発明が適用された第２の実施例のAMBA 300が示されている。図示するように、本実施例におけるAMBA 300は、図１に示した第１の実施例におけるバスリクエスト優先度判定回路100に対し、割込コントローラ132からの割込信号(CPUINT 134)に代えて、割込要求信号(INTREQ1, INTREQ2, INTREQ3)を信号線154,156,158からそれぞれ入力させる構成に相当する。
【００３６】
図１に示した第１の実施例では、バスリクエストと割り込みとのいずれかをを優先させる構成であるが、割り込みをトリガとしてバスリクエストを発生させる場合もある。したがって図３に示す実施例では複数の割込要求とバスリクエストに対する優先付けを可能にしたものである。
【００３７】
図３に示すように本実施例におけるバスリクエスト優先度判定回路302には、割込要求信号(INTREQ1, INTREQ2, INTREQ3)が入力され、またバスリクエスト優先度判定回路302の出力140はAHBバスアービタ114に接続されている点で図１に示した第１の実施例の構成と異なり、その他の構成については第１の実施例と同様の構成でよい。
【００３８】
バスリクエスト優先度判定回路302の内部構成例を図４に示す。図示するようにバスリクエスト優先度判定回路302は、それぞれAHBバス102および選択線126に接続される複数の優先度設定レジスタ310〜316を有している。各優先度設定レジスタ310〜316は、割込要求信号(INTREQ1, INTREQ2, INTREQ3)と、高性能周辺装置124から出力されるバスリクエスト(HBUSREQIN)に対して個別に優先度を割り当てる複数のレジスタであり、本実施例では優先判定を行う信号線が４4本あるため、優先度設定レジスタ310〜316を４つ用意する。なお、優先度を示す値として、優先度低の“優先度０”ないし優先度高の“優先度３”を設定可能とする。たとえば、割込要求(INTREQ2)に“優先度０”を設定し、バスリクエスト(HBUSERQIN)に“優先度１”を設定し、割込要求(INTREQ3)に“優先度３”を設定したものとして説明する（優先度：INTREQ2＜HBUSERQIN＜INTREQ3）。
【００３９】
この場合、割込要求(INTREQ3)よりもバスリクエスト(HBUSREQIN)の方が優先度が高いので、割込要求(INTREQ3)による割込処理中に、優先判定回路320は、バスリクエスト(HBUSERQOUT)を発生する（イネーブル“１”）ことが可能である。なお、バスリクエスト(HBUSERQOUT)がイネーブル“１”中に、さらに優先度が高い割込要求(INTREQ3)が発生した場合は、優先判定回路320は、即座にバスリクエスト(HBUSERQOUT)をディセーブル“１”にしてAHBバスアービタ114に対するバスリクエストを中断する。
【００４０】
以上説明したように第２の実施例によれば、バスリクエストと各割り込みに対し、個別に優先度を設定するためのバスリクエスト優先度判定手段302を設けることで、割込処理中に高性能周辺装置124のバスリクエストを発生させることが可能となり、また頻繁に発生する高性能周辺装置124のバスリクエストに対し、さらに優先度の高い割込処理を優先させることが可能となる。したがって、第１の実施例に対しさらにシステムパフォーマンスの向上が可能である。
【００４１】
以上説明した各実施例は、たとえばAMBAを代表とするデータシステムを採用するシステムLSIに適用可能である。なお、各実施例では、CPU以外のAHBバスマスタを１つ取り上げて説明したが、複数のバスマスタを有するシステムLSIにも適用可能である。たとえば第２の実施例における優先度設定レジスタ310〜316は、バスマスタ数に応じて数を増やすとよい。また、第２の実施例における割込本数についても、４種類に限らず、さらに複数の割り込みから選択可能にしてもよい。そのため、優先度設定レジスタ数はバスリクエスト数、割り込み数に応じて増減するとよく、優先度設定の範囲についても“優先度０〜３”に限らず、必要に応じ増減することができる。また、優先度設定については、たとえば、バスリクエストと割り込みの優先度が同ーの場合は、必要に応じてどちらかを優先させるように任意にインプリメントするとよい。
【図面の簡単な説明】
【００４２】
【図１】本発明が適用されたAMBAの実施例を示すブロック図である。
【図２】図１に示す実施例におけるバスリクエスト優先度判定回路の内部構成例を示すブロック図である。
【図３】本発明が適用されたAMBAの他の実施例を示すブロック図である。
【図４】図３に示す実施例におけるバスリクエスト優先度判定回路の他の内部構成例を示すブロック図である。
【符号の説明】
【００４３】
10  AMBA（高度マイクロコントローラバスシステム）
100  バスリクエスト優先度判定回路
102  AHBバス
104  APBバス
110  ARM CPU
112  AHBバスインタフェース
114  AHBバスアービタ
124  高性能周辺装置
【図１】
2007058716.tif 000003
【図２】
2007058716.tif 000004
【図３】
2007058716.tif 000005
【図４】
2007058716.tif 000006