特許第6671766号(P6671766)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社沖データの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6671766
(24)【登録日】2020年3月6日
(45)【発行日】2020年3月25日
(54)【発明の名称】割込み処理システム
(51)【国際特許分類】
   G06F 9/48 20060101AFI20200316BHJP
【FI】
   G06F9/48 110G
【請求項の数】3
【全頁数】15
(21)【出願番号】特願2016-86685(P2016-86685)
(22)【出願日】2016年4月25日
(65)【公開番号】特開2017-199049(P2017-199049A)
(43)【公開日】2017年11月2日
【審査請求日】2018年9月12日
(73)【特許権者】
【識別番号】591044164
【氏名又は名称】株式会社沖データ
(74)【代理人】
【識別番号】100110434
【弁理士】
【氏名又は名称】佐藤 勝
(72)【発明者】
【氏名】渡辺 啓介
(72)【発明者】
【氏名】岩橋 啓介
(72)【発明者】
【氏名】山本 万弥
(72)【発明者】
【氏名】小林 隆
(72)【発明者】
【氏名】山脇 康志
(72)【発明者】
【氏名】石田 圭太郎
【審査官】 漆原 孝治
(56)【参考文献】
【文献】 特開2009−009191(JP,A)
【文献】 特開2012−190414(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/48
(57)【特許請求の範囲】
【請求項1】
CPUとASICとが信号線で接続され、CPUがASIC内部の機能モジュールの割込み処理を行う割込み処理システムであって、
前記機能モジュール内の割込みレジスタアドレス及び前記機能モジュール内の割込みレジスタ情報を格納するASIC側メモリ部と、
前記機能モジュール内の割込みレジスタ情報を格納するCPU側メモリ部と、
前記機能モジュール内の割込みを検知する検知部と、
定期的にトリガ信号を出力するタイマ部と、
前記機能モジュール内の割込み発生時又は前記トリガ信号発生時に、前記機能モジュール内の割込みレジスタにアクセスし、割込みレジスタ情報を取得する割込み回路部と、
前記割込み回路部が取得した割込みレジスタ情報と前記ASIC側メモリ部に格納された割込みレジスタ情報とを比較し、その差分を前記ASIC側メモリ部及び前記CPU側メモリ部の割込みレジスタ情報と置き換えるメモリコントローラ部とを備え、
前記CPUは割込み発生時には前記CPU側メモリ部に格納された前記割込みレジスタ情報に基づき割込み処理を実行するものであって、
前記機能モジュール内の割込みレジスタ情報を格納する前記ASIC側メモリ部及び前記CPU側メモリ部のそれぞれの格納領域は、類似した系統の機能モジュール毎にまとめられており、
前記ASIC側メモリ部及び前記CPU側メモリ部の割込みレジスタ情報の置き換えは、所定の転送単位で行われ、
前記機能モジュールは、第1の系統モジュールと、第2の系統モジュールとをもち、
前記第1の系統モジュールに分類され用いられる複数の第1モジュールデータと、前記第2の系統モジュールに分類され用いられる複数の第2のモジュールデータとをもち、
前記ASIC側メモリ部は、前記第1の系統モジュールに分類される前記複数の第1モジュールデータに続けて前記第2の系統モジュールに分類される前記複数の第2モジュールデータを配置し、
前記メモリコントローラ部は、前記複数の第1モジュールデータ又は前記複数の第2モジュールデータを前記所定の転送単位で比較して置き換える様構成され、転送テーブル1単位に変更されたモジュールデータと変更されていないモジュールデータとが含まれる場合、変更されたモジュールデータとともに変更されていないモジュールデータを転送し、変更されたモジュールデータを書き換え、転送テーブル1単位が全て変更されていない場合、未転送とすること
を特徴とする割込み処理システム。
【請求項2】
前記第1の系統モジュール又は前記第2の系統モジュールは、メカ制御系モジュール、画像処理系モジュール、又はIF制御系モジュールの何れかであること
を特徴とする請求項1に記載の割込み処理システム。
【請求項3】
前記信号線は、PCI Expressであること
を特徴とする請求項1又は請求項2に記載の割込み処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、外部CPU(Central Processing Unit)と接続されるASIC(Application Specific Integrated Circuit)内部に実装された割込み処理回路を用いた割込み処理システムに関するものである。
【背景技術】
【0002】
従来、CPUとASICとがPCI(Peripheral Component Interconnect) express等のバスインターフェイスを介して接続された処理回路において、CPUからASCI内部のレジスタへ直接読み出し動作を行うと、レイテンシが大きく、割込み処理のようなリアルタイムでの応答が必要な処理で問題となることがあった。
【0003】
この対策として、例えば、特許文献1では、別途設けた割込み処理回路がCPUの代わりに割込みソースの状態を先行してフェッチし、CPUは割込み処理回路がフェッチした値を読み取ることで常に最速の状態でデータの受け取りを行うことが可能な方法が提案されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−236234号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術に係る割込み処理回路では、割込み処理発生時に当該割込み処理に必要な割込みソースの状態を全てCPU側に転送する必要があり、割込み処理におけるリアルタイムでの応答性の向上といった観点からは満足のいくものではなかった。
【0006】
本発明はこのような実状に鑑みてなされたものであり、本発明の課題は、割込み処理発生時にASIC側からCPU側へのデータ転送量を減じることができ、割込み処理発生時におけるリアルタイムでの応答性の向上を図ることが可能な割込み処理システムを提供することである。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明に係る割込み処理システムは、CPUとASICとが信号線で接続され、CPUがASIC内部の機能モジュールの割込み処理を行う割込み処理システムであって、前記機能モジュール内の割込みレジスタアドレス及び前記機能モジュール内の割込みレジスタ情報を格納するASIC側メモリ部と、前記機能モジュール内の割込みレジスタ情報を格納するCPU側メモリ部と、前記機能モジュール内の割込みを検知する検知部と、定期的にトリガ信号を出力するタイマ部と、前記機能モジュール内の割込み発生時又は前記トリガ信号発生時に、前記機能モジュール内の割込みレジスタにアクセスし、割込みレジスタ情報を取得する割込み回路部と、前記割込み回路部が取得した割込みレジスタ情報と前記ASIC側メモリ部に格納された割込みレジスタ情報とを比較し、その差分を前記ASIC側メモリ部及び前記CPU側メモリ部の割込みレジスタ情報と置き換えるメモリコントローラ部とを備え、前記CPUは割込み発生時には前記CPU側メモリ部に格納された前記割込みレジスタ情報に基づき割込み処理を実行するものであって、前記機能モジュール内の割込みレジスタ情報を格納する前記ASIC側メモリ部及び前記CPU側メモリ部のそれぞれの格納領域は、類似した系統の機能モジュール毎にまとめられており、前記ASIC側メモリ部及び前記CPU側メモリ部の割込みレジスタ情報の置き換えは、所定の転送単位で行われ、前記機能モジュールは、第1の系統モジュールと、第2の系統モジュールとをもち、前記第1の系統モジュールに分類され用いられる複数の第1モジュールデータと、前記第2の系統モジュールに分類され用いられる複数の第2のモジュールデータとをもち、前記ASIC側メモリ部は、前記第1の系統モジュールに分類される前記複数の第1モジュールデータに続けて前記第2の系統モジュールに分類される前記複数の第2モジュールデータを配置し、前記メモリコントローラ部は、前記複数の第1モジュールデータ又は前記複数の第2モジュールデータを前記所定の転送単位で比較して置き換える様構成され、転送テーブル1単位に変更されたモジュールデータと変更されていないモジュールデータとが含まれる場合、変更されたモジュールデータとともに変更されていないモジュールデータを転送し、変更されたモジュールデータを書き換え、転送テーブル1単位が全て変更されていない場合、未転送とすることを特徴としている。
【発明の効果】
【0008】
本発明によれば、割込み処理発生時にASIC側からCPU側へのデータ転送量を減じることができ、割込み処理発生時におけるリアルタイムでの応答性の向上を図ることが可能な割込み処理システムを提供することができる。
【図面の簡単な説明】
【0009】
図1】第1の実施形態に係る割込み処理回路を含む割込み処理システムの構成図である。
図2-1】割込み処理回路の処理動作を説明するフローチャートである。
図2-2】タイマからトリガ信号を受信した際の割込み処理回路の処理動作を説明するフローチャートである。
図2-3】ASIC内部の機能モジュールによる割込みを検知した際の割込み処理回路の処理動作を説明するフローチャートである。
図3】従来技術と第1の実施形態に係るASIC内部の機能モジュールによる割込み発生から割込み処理完了までに要する時間を比較した図である。
図4】第2の実施形態に係る割込み処理回路を含む割込み処理システムの構成図である。
図5】割込みレジスタ情報及びアドレステーブルを説明する模式図である。
図6-1】割込み処理回路の処理動作を説明するフローチャートである。
図6-2】タイマからトリガ信号を受信した際の割込み処理回路の処理動作を説明するフローチャートである。
図6-3】ASIC内部の機能モジュールによる割込みを検知した際の割込み処理回路の処理動作を説明するフローチャートである。
図7】機能モジュール内の割込みレジスタ情報を格納するASIC側メモリ及びCPU側メモリの領域を類似した系統の機能モジュール毎にまとめた場合(a)と、まとめなかった場合(b)とで、ASIC側からCPU側に転送する必要がある機能モジュールの転送回数の違いを説明する図である。
【発明を実施するための形態】
【0010】
以下、本発明の実施形態について図面を参照して説明する。なお、本発明は以下の記述に限定されるものではなく、本発明の要旨を逸脱しない範囲において適宜変更可能である。
【0011】
[第1の実施形態]
図1は、第1の実施形態に係る割込み処理回路を含む割込み処理システム100の構成図である。なお、図1には、説明の便宜上、本実施形態に関する構成のみを記載している。
【0012】
図1に示すように、CPU1100はPCI Expressバス1300を介してASIC1200と接続されている。
【0013】
CPU1100は、CPUコア1101と、ROM(Read Only Memory)コントローラ1102と、PCI Expressコントローラ1103と、割込みコントローラ1104と、メモリコントローラ1105と、内部バス1106とを備える。
【0014】
CPUコア1101は、CPU1100に接続された不揮発性記憶装置であるROM1107に格納された制御プログラムに基づき、システム全体の制御を行う実行部である。また、CPUコア1101は、PCI Expressバス1300を介してASIC1200内部の機能モジュール(1)1205−1〜(N)1205−Nの制御を行う。
【0015】
ROMコントローラ1102は、ROM1107との接続を可能とするインタフェースを備え、ROM1107に格納された制御プログラムをはじめとする各種データの読み取り制御を行う。
【0016】
PCI Expressコントローラ1103は、ASIC1200と接続するPCI Express1300のアクセス制御を行う。
【0017】
割込みコントローラ1104は、PCI Expressコントローラ1103がASIC1200から受信した後述する割込み情報に基づき、CPUコア1101に対して割込み情報を通知する。
【0018】
メモリコントローラ1105は、RAM(Random Access Memory)1108との接続を可能とするインタフェースを備え、RAM1108へのアクセス制御を行う。
【0019】
内部バス1106は、CPUコア1101が出力する命令や、PCI Expressバス1300を介して送受信するデータやRAM1108に保持された割込みレジスタ情報1109等を送受信するための通信路である。
【0020】
RAM1108は、ASIC1200内部の各機能モジュール(1)1205−1〜(N)1205−Nの割込みレジスタ情報1109を保持する。
【0021】
ASIC1200は、PCI Expressコントローラ1201と、割込み処理回路1202と、タイマ1203と、メモリコントローラ1204と、機能モジュール(1)1205−1〜(N)1205−Nと、内部バス1206とを備える。
【0022】
PCI Expressコントローラ1201は、CPU1100と接続するPCI Express1300のアクセス制御を行う。
【0023】
割込み処理回路1202は、タイマ1203からのトリガ信号又は各機能モジュール(1)1205−1〜(N)1205−Nからの割込みを受信する検知部として機能するとともに、CPU1100に先行して各機能モジュールの割込みレジスタ情報を取得する(フェッチする)レジスタリードシーケンサーとして構成される。その他、割込み処理回路1202の詳細な機能については後程説明する。
【0024】
タイマ1203は定期的にトリガ信号を割込み処理回路1202に対して出力する。
【0025】
メモリコントローラ1204は、RAM1207との接続を可能とするインタフェースを備え、RAM1207へのアクセス制御を行う。
【0026】
機能モジュール(1)1205−1〜(N)1205−Nは、例えば、画像処理、I/O(Input/Output)処理、I/F(Interface)処理、モータ制御等を実行する論理回路である。
【0027】
内部バス1206は、PCI Expressバス1300を介して送受信するデータやRAM1207に保持された割込みレジスタ情報1209等を送受信するための通信路である。
【0028】
RAM1207は、前述したCPU1100に接続されたRAM1108と同様に、ASIC1200内部の各機能モジュール(1)1205−1〜(N)1205−Nの割込みレジスタ情報1209を保持するとともに、各機能モジュール(1)1205−1〜(N)1205−Nの割込みレジスタのアドレステーブル1208を保持する。ASIC1200に接続されたRAM1207とCPU1100に接続されたRAM1108とが保持する各機能モジュール(1)1205−1〜(N)1205−Nの割込みレジスタ情報は、割込み処理回路1202の指示によって更新され、同じ値が保持される。
【0029】
次に、本実施形態に係る割込み処理回路の動作について説明する。図2−1は、割込み処理回路1202の処理動作を説明するフローチャートである。
【0030】
まず、図2−1で説明する処理動作の事前処理として、装置起動時にCPUコア1101は、PCI Expressバス1300を介してASIC側のRAM1207に、ASIC1200内部の各機能モジュール(1)1205−1〜(N)1205−Nの割込みレジスタのアドレステーブル1208を格納させる。アドレステーブル1208の格納が完了後、CPUコア1101は、割込み処理回路1202に対して、割込みレジスタ情報を格納するCPU側のRAM1108及びASIC側のRAM1207におけるアドレスを通知するとともに、起動を要求する。
【0031】
ステップS001において、起動した割込み処理回路1202は、アドレステーブル1208をASIC側のRAM1207から読み出し、読み出したアドレステーブル1208に対応する機能モジュール(1)1205−1〜(N)1205−Nの割込みレジスタを読み出すことで現在のレジスタ情報を取得する(ステップS002)。
【0032】
次に、割込み処理回路1202は、PCI Expressバス1300を介して、CPU側のメモリコントローラ1105に、レジスタ情報を格納させるRAMアドレスと現在の機能モジュールの割込みレジスタ情報(割込み情報)を通知する。CPU側のメモリコントローラ1105は、通知された情報を基に、現在の機能モジュールの割込みレジスタ情報をRAM1108に格納させる。また、同時に、割込み処理回路1202は、ASIC側のメモリコントローラ1204にレジスタ情報を格納させるRAMアドレスと現在の機能モジュールの割込みレジスタ情報を通知する。ASIC側のメモリコントローラ1204は、通知された情報を基に、現在の機能モジュールの割込みレジスタ情報をRAM1207に格納させる(ステップS003)。
【0033】
そして、現在のアドレステーブルが最後のアドレステーブルでない場合(ステップS004 NO)、割込み処理回路1202は、読み出し位置を次の機能モジュールのアドレステーブルに移動し(ステップS005)、ステップS001からの処理を繰り返す。
【0034】
一方、現在のアドレステーブルが最後のアドレステーブルである場合(ステップS004 YES)、割込み処理回路1202はタイマ1203からのトリガ信号又はASIC内部の機能モジュール(1)1205−1〜(N)1205−Nによる割込み待ち状態となる(ステップS006)。
【0035】
割込み処理回路1202は、定期的に発生するタイマ1203からのトリガ信号を受信すると(ステップS007 NO)、図2−2のフローチャートで説明する処理を実行する(ステップS009)。そして、当該処理が完了すると、割込み処理回路1202は、再度割込み待ち状態となり、ステップS006からの処理を繰り返す。
【0036】
ところで、割込み処理回路1202は、ASIC内部の機能モジュール(1)1205−1〜(N)1205−Nによる割込みを検知すると(ステップS007 YES)、図2−3のフローチャートで説明する処理を実行する(ステップS008)。そして、当該処理が完了すると、割込み処理回路1202は、再度割込み待ち状態となり、ステップS006からの処理を繰り返す。
【0037】
次に、タイマ1203からトリガ信号を受信した際の割込み処理回路1202の処理動作(図2−1 ステップS009)について図2−2のフローチャートを用いて説明する。
【0038】
タイマ1203からトリガ信号を受信すると、割込み処理回路1202は、図2−1のステップS001の動作と同様に、アドレステーブル1208をASIC側のRAM1207から読み出す(ステップS011)。
【0039】
ステップS012において、割込み処理回路1202は、読み出したアドレステーブルの情報に対応する機能モジュールの前回の割込みレジスタ情報RD(old)をASIC側のRAM1207から読み出す。
【0040】
これと同時に、割込み処理回路1202は、ステップS011で読み出したアドレステーブルの情報に対応する機能モジュールの割込みレジスタ情報を読み出すことで、現在の割込みレジスタ情報RD(new)を取得する(ステップS013)。
【0041】
そして、割込み処理回路1202は、ステップS012で読み出した前回の割込みレジスタ情報RD(old)とステップS013で読み出した現在の割込みレジスタ情報RD(new)とを比較する。ここで、両者に差分が有る場合(ステップS014 YES)、割込み処理回路1202は、CPU側のRAM1108に格納されている割込みレジスタ情報1109及びASIC側のRAM1207に格納されている割込みレジスタ情報1209を現在の割込みレジスタ情報に置き換えるため、PCI Expressバス1300を介して、CPU側のメモリコントローラ1105に、レジスタ情報を格納するRAMアドレスと現在の機能モジュール(1)1205−1〜(N)1205−Nの割込みレジスタ情報を通知する。CPU側のメモリコントローラ1105は通知された情報を基に、現在の機能モジュールの割込みレジスタ情報をRAM1108に格納させる。また、同時に、割込み処理回路1202は、ASIC側のメモリコントローラ1204に、レジスタ情報を格納するRAMアドレスと現在の機能モジュール(1)1205−1〜(N)1205−Nの割込みレジスタ情報を通知する。ASIC側のメモリコントローラ1204は通知された情報を基に、現在の機能モジュールの割込みレジスタ情報をRAM1207に格納させる(ステップS015)。
【0042】
一方、前回の割込みレジスタ情報RD(old)と現在の割込みレジスタ情報RD(new)とで差分が無い場合(ステップS014 NO)、ステップS015で説明した割込みレジスタ情報の置き換え処理は省略される。
【0043】
そして、現在のアドレステーブルが最後のアドレステーブルでない場合(ステップS016 NO)、割込み処理回路1202は、読み出し位置を次の機能モジュールのアドレステーブルに移動し(ステップS017)、ステップS011からの処理を繰り返す。
【0044】
一方、現在のアドレステーブルが最後のアドレステーブルである場合(ステップS016 YES)、割込み処理回路1202はタイマ1203からトリガ信号を受信した際の処理を終了する。
【0045】
次に、ASIC内部の機能モジュール(1)1205−1〜(N)1205−Nによる割込みを検知した際の割込み処理回路1202の処理動作(図2−1 ステップS008)について図2−3のフローチャートを用いて説明する。
【0046】
なお、図2−3のステップS021〜ステップS027(ステップS026 YES以降の処理は除く)までの処理は、図2−2のステップS011〜ステップS017までの処理と同様であるため、ここでの説明は省略する。
【0047】
ステップS026において、現在のアドレステーブルが最後のアドレステーブルである場合(ステップS026 YES)、全てのアドレステーブルを読み終え、機能モジュールの割込みレジスタの処理が終了した後、割込み処理回路1202は、PCI Expressバス1300を介してCPU内部の割込みコントローラ1104に割込みの発生を通知する(ステップS028)。
【0048】
CPU内部の割込みコントローラ1104は、CPUコア1101に対して割込み情報を通知する。CPUコア1101は、割込み情報の通知を受けると、CPU側のRAM1108にあるASIC内部の各機能モジュール(1)1205−1〜(N)1205−Nの割込みレジスタ情報を読み出し、割込み処理を実行する。
【0049】
図3は、従来技術と本実施形態に係るASIC内部の機能モジュールによる割込み発生から割込み処理完了までに要する時間を比較した図である。
【0050】
図3(b)に示すように、割込み発生時に既に転送された割込みソース状態と現在の割込みソース状態とが完全に不一致である場合(差分ヒット率0%)、割込みソース状態を読み出し、CPU側に転送する(データフェッチ処理)時間は図3(a)で示す従来技術と同じであるが、割込み発生時に既に転送された割込みソース状態と現在の割込みソース状態とが50%一致した場合(差分ヒット率50%)、割込みソース状態を読み出し、CPU側に転送する(データフェッチ処理)時間は図3(c)に示すように従来技術と比較して大幅に減少させることができる。
【0051】
以上のように、第1の実施形態によれば、割込み処理回路が定期的にCPU側に割込みソースの状態を転送し、割込み発生時には既に転送された割込みソース状態との差分のみをCPU側に転送するため、割込み発生時におけるASIC側からCPU側へのデータ転送量を減少させることが可能となる。その結果、割込み処理におけるリアルタイムでの応答性を向上させることができる。
【0052】
[第2の実施形態]
図4は、第2の実施形態に係る割り込み処理回路を含む割込み処理システム200の構成図である。なお、第1の実施形態に係る構成と同構成のものについては同一の符号を付してその説明を省略し、異なる構成について説明する。
【0053】
CPU1100に接続されたRAM2108は、ASIC内部の各機能モジュール(1)1205−1〜(N)1205−Nの割込みレジスタ情報2109を保持する。
【0054】
ここで、割込みレジスタ情報2109は、図5(a)に示されるように、画像処理系レジスタ情報2109−1、メカ制御系レジスタ情報2109−2、IF制御系レジスタ情報2109−3といったように、類似した系統の機能モジュール毎にまとめられている。
【0055】
ASIC1200に接続されたRAM2207は、CPU1100に接続されたRAM2108と同様にASIC内部の各機能モジュール(1)1205−1〜(N)1205−Nの割込みレジスタ情報2209を、画像処理系レジスタ情報2209−1、メカ制御系レジスタ情報2209−2、IF制御系レジスタ情報2209−3といったように、類似した系統の機能モジュール毎にまとめて保持するとともに、各機能モジュールの割込みレジスタのアドレステーブル2208を保持する。
【0056】
なお、割込みレジスタのアドレステーブル2208についても、図5(b)に示されるように、画像処理系テーブル2208−1、メカ制御系アドレステーブル2208−2、IF制御系テーブル2208−3といったように、類似した系統の機能モジュール毎にまとめられている。
【0057】
そして、ASIC1200に接続されたRAM2207とCPU1100に接続されたRAM2108とが保持する各機能モジュール(1)1205−1〜(N)1205−Nの割込みレジスタ情報は割込み処理回路2202からの指示によって更新され、同じ値が保持される。
【0058】
次に、本実施形態に係る割込み処理回路の動作について説明する。図6−1は、割込み処理回路2202の処理動作を説明するフローチャートである。
【0059】
なお、本実施形態に係る割込み処理回路2202の処理動作において、第1の実施形態における図2−1で説明した処理動作と同一なものについては同一のステップ番号を付してここでの説明は省略する。
【0060】
ステップS002の処理の後、割込み処理回路2202は、機能モジュールの割込みレジスタ情報をある規定数N分まとめ、PCI Expressバス1300を介してCPU側のメモリコントローラ1105に転送する。
【0061】
転送単位数の機能モジュールの割込みレジスタの読み出しが完了していない場合(ステップS201 NO)、割込み処理回路2202は、読み出し位置を次の機能モジュールのアドレステーブルに移動し(ステップS202)、ステップS001からの処理を繰り返す。
【0062】
一方、転送単位数の機能モジュールの割込みレジスタの読み出しが完了した場合(ステップS201 YES)、割込み処理回路2202は、PCI Expressバス1300を介して、CPU側のメモリコントローラ1105に、レジスタ情報を格納させるRAMアドレスと転送単位分の現在の機能モジュールの割込みレジスタ情報を通知する。CPU側のメモリコントローラ1105は、通知された情報を基に、現在の機能モジュールの割込みレジスタ情報を転送単位分まとめてRAM2108に格納させる。また、同時に、割込み処理回路2202は、ASIC側のメモリコントローラ1204に、レジスタ情報を格納させるRAMアドレスと転送単位分の現在の機能モジュールの割込みレジスタ情報を通知する。ASIC側のメモリコントローラ1204は、通知された情報を基に、現在の機能モジュールの割込みレジスタ情報を転送単位分まとめてRAM2207に格納させる(ステップS203)。
【0063】
次に、タイマ1203からトリガ信号を受信した際の割込み処理回路2202の処理(図6−1 ステップS204)について図6−2のフローチャートを用いて説明する。なお、割込み処理回路2202の処理動作において、第1の実施形態における図2−2で説明した処理動作と同一なものについては同一のステップ番号を付してここでの説明は省略する。
【0064】
ステップS013の処理の後、転送単位数の機能モジュールの割込みレジスタの読み出しが完了していない場合(ステップS211 NO)、割込み処理回路2202は、読み出し位置を次の機能モジュールのアドレステーブルに移動し(ステップS212)、ステップS011からの処理を繰り返す。
【0065】
一方、転送単位数の機能モジュールの割込みレジスタの読み出しが完了した場合(ステップS211 YES)、割込み処理回路2202は、転送単位分の全ての割込みレジスタについて、ステップS012で読み出した前回の割込みレジスタ情報RD(old)とステップS013で読み出した現在の割込みレジスタ情報RD(new)とを比較する。ここで、1つ以上のレジスタ情報で差分が有る場合(ステップS0213 YES)、割込み処理回路2202は、CPU側のRAM2108に格納されている割込みレジスタ情報2109及びASIC側のRAM2207に格納されている割込みレジスタ情報2209を現在の割込みレジスタ情報に置き換えるため、PCI Expressバス1300を介して、CPU側のメモリコントローラ1105に、レジスタ情報を格納するRAMアドレスと転送単位分の現在の機能モジュール(1)1205−1〜(N)1205−Nの割込みレジスタ情報を通知する。CPU側のメモリコントローラ1105は通知された情報を基に、現在の機能モジュールの割込みレジスタ情報を転送単位分まとめてRAM2108に格納させる。また、同時に、割込み処理回路2202は、ASIC側のメモリコントローラ1204に、レジスタ情報を格納するRAMアドレスと転送単位分の現在の機能モジュール(1)1205−1〜(N)1205−Nの割込みレジスタ情報を通知する。ASIC側のメモリコントローラ1204は通知された情報を基に、現在の機能モジュールの割込みレジスタ情報を転送単位分まとめてRAM2207に格納させる(ステップS214)。
【0066】
一方、転送単位分の全てのレジスタについて、前回の割込みレジスタ情報RD(old)と現在の割込みレジスタ情報RD(new)とで差分が無い場合(ステップS213 NO)、ステップS214で説明した割込みレジスタ情報の置き換え処理は省略される。
【0067】
次に、ASIC内部の機能モジュール(1)1205−1〜(N)1205−Nによる割込みを検知した際の割込み処理回路1202の処理(図6−1 ステップS205)について図6−3のフローチャートを用いて説明する。なお、割込み処理回路2202の処理動作において、第1の実施形態における図2−3で説明した処理動作と同一なものについては同一のステップ番号を付してここでの説明は省略する。
【0068】
ステップS023の処理の後、転送単位数の機能モジュールの割込みレジスタの読み出しが完了していない場合(ステップS221 NO)、割込み処理回路2202は、読み出し位置を次の機能モジュールのアドレステーブルに移動し(ステップS222)、ステップS021からの処理を繰り返す。
【0069】
一方、転送単位数の機能モジュールの割込みレジスタの読み出しが完了した場合(ステップS221 YES)、割込み処理回路2202は、転送単位分の全ての割込みレジスタについて、ステップS022で読み出した前回の割込みレジスタ情報RD(old)とステップS023で読み出した現在の割込みレジスタ情報RD(new)とを比較する。ここで、1つ以上のレジスタ情報で差分が有る場合(ステップS0223 YES)、割込み処理回路2202は、CPU側のRAM2108に格納されている割込みレジスタ情報2109及びASIC側のRAM2207に格納されている割込みレジスタ情報2209を現在の割込みレジスタ情報に置き換えるため、PCI Expressバス1300を介して、CPU側のメモリコントローラ1105に、レジスタ情報を格納するRAMアドレスと転送単位分の現在の機能モジュール(1)1205−1〜(N)1205−Nの割込みレジスタ情報を通知する。CPU側のメモリコントローラ1105は通知された情報を基に、現在の機能モジュールの割込みレジスタ情報を転送単位分まとめてRAM2108に格納させる。また、同時に、割込み処理回路2202は、ASIC側のメモリコントローラ1204に、レジスタ情報を格納するRAMアドレスと転送単位分の現在の機能モジュール(1)1205−1〜(N)1205−Nの割込みレジスタ情報を通知する。ASIC側のメモリコントローラ1204は通知された情報を基に、現在の機能モジュールの割込みレジスタ情報を転送単位分まとめてRAM2207に格納させる(ステップS224)。
【0070】
一方、転送単位分の全てのレジスタについて、前回の割込みレジスタ情報RD(old)と現在の割込みレジスタ情報RD(new)とで差分が無い場合(ステップS223 NO)、ステップS224で説明した割込みレジスタ情報の置き換え処理は省略される。
【0071】
図7は、機能モジュール内の割込みレジスタ情報を格納するASIC側メモリ及びCPU側メモリの領域を類似した系統の機能モジュール毎にまとめた場合(図7(a))とまとめなかった場合(図7(b))とで、ASIC側からCPU側に転送する必要がある機能モジュールの転送回数の違いを説明する図である。
【0072】
図7(a)及び図7(b)の場合において、どちらも割込み発生時に、既に転送された割込みソース状態との差分があり、CPU側へ転送する必要がある機能モジュール数は8つである。図7(a)に示す類似した系統の機能モジュール毎にまとめた場合においては、転送単位が機能モジュール4つ毎であるため、転送数は3回で済む。これに対して図7(b)に示す類似した系統の機能モジュール毎にまとめなかった場合においては、5回の転送が必要である。このように、類似した系統の機能モジュール毎にまとめることにより、データ転送効率を向上させることができる。
【0073】
以上のように、第2の実施形態によれば、機能モジュール内の割込みレジスタ情報を格納するASIC側メモリ及びCPU側メモリの領域を類似した系統の機能モジュール毎にまとめることによって、第1の実施形態の効果に加え、CPU側へのデータ転送効率を向上させることが可能となり、割込み処理におけるリアルタイムでの応答性を高めることができる。
【0074】
本発明の実施形態の説明においては、ASICとCPUとの間のバスの例をPCI Expressとして説明したが、本発明はこれに限定されるものではなく、例えば、PCI、USB(Universal Serial Bus)、ローカルバス、SPI(Serial Peripheral Interface)等にも適用可能である。
【符号の説明】
【0075】
100,200 割込み処理回路システム
1100 CPU
1101 CPUコア
1102 ROMコントローラ
1103 PCI Expressコントローラ
1104 割込みコントローラ
1105 メモリコントローラ
1106 内部バス
1107 ROM
1108,2108 RAM
1109,2109 割込みレジスタ情報
1200 ASIC
1201 PCI Expressコントローラ
1202,2202 割込み処理回路
1203 タイマ
1204 メモリコントローラ
1205−1〜N 機能モジュール(1)〜(N)
1206 内部バス
1207,2207 RAM
1208,2208 アドレステーブル
1209,2209 割込みレジスタ情報
図1
図2-1】
図2-2】
図2-3】
図3
図4
図5
図6-1】
図6-2】
図6-3】
図7