説明

時分割方式による割り込み制御回路および割り込み制御方法

【課題】複数の割り込み要求が同時に発生した場合であっても割り込み要求を消失させることなく受け付けることができる割り込み制御回路および方法を提供する。
【解決手段】複数の割り込み処理部(107)と、複数の周辺機能回路(50)からの複数の割り込み要求を時分割方式により受け付ける割り込み要求受付インタフェース(101)と、受け付けられた複数の割り込み要求に対して複数の割り込み処理部をそれぞれ割り当てる割り込み処理分配部(105)と、複数の割り込み処理部の割り込み処理の結果を通常処理用プロセッサ(10)と共有するようにシステム共通記憶部(30)に書き込むライトバックアクセス調停部(108)を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はCPU(Central Processing Unit)等のプロセッサを含むシステムに係り、特に割り込み要求に応じて割り込み制御を行なう制御回路および方法に関する。
【背景技術】
【0002】
一般的な割り込み制御回路では、周辺機能回路から同時に複数の割り込み要求が発生した場合、割り込み要求の優先度に従ってCPUで順次処理を行う必要があり、CPUへの負荷が大きい。特に、SoC(System on Chip)マイコンでは、チップ外部の周辺回路で実現している機能をチップ内部に取り込みワンチップ上で様々な機能を実現できるようになっているが、割り込み処理がCPUに集中しており、割り込みが競合して発生する状況ではCPUの処理能力が低下する原因となっている。
【0003】
割り込みの応答性を向上させる技術としては、たとえば特許文献1に、通常処理CPUと割り込み処理専用のCPUとを設けて通常タスクと割り込みタスクとを分離して処理するシステムが提案されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平4−33130号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上述した特許文献1に開示されたシステムでは、割り込み発生時に割り込み専用のCPUが通常の処理とは独立して割り込み処理を実行するだけであり、複数の割り込み要求が競合した場合、処理の中断あるいは処理が実行されない場合が発生しうる。
【0006】
そこで、本発明の目的は、複数の割り込み要求が同時に発生した場合であっても割り込み要求を消失させることなく受け付けることができる割り込み制御回路および割り込み制御方法を提供することにある。
【課題を解決するための手段】
【0007】
本発明による割り込み制御回路は、通常処理用プロセッサおよび複数の周辺機能回路を含むシステムにおける割り込み制御回路であって、複数の割り込み処理手段と、前記複数の周辺機能回路からの複数の割り込み要求を時分割方式により受け付ける割り込み要求受付手段と、前記受け付けられた複数の割り込み要求に対して前記複数の割り込み処理手段をそれぞれ割り当てる割り込み処理分配手段と、前記複数の割り込み処理手段の割り込み処理の結果を前記通常処理用プロセッサと共有するようにシステム共通記憶部に書き込む制御手段と、を有することを特徴とする。
【0008】
本発明による割り込み制御方法は、通常処理用プロセッサおよび複数の周辺機能回路を含むシステムにおける割り込み制御方法であって、前記複数の周辺機能回路からの複数の割り込み要求を時分割方式により受け付け、前記受け付けられた複数の割り込み要求に対して複数の割り込み処理手段をそれぞれ割り当て、前記複数の割り込み処理手段の割り込み処理の結果を前記通常処理用プロセッサと共有するようにシステム共通記憶部に書き込む、ことを特徴とする。
【発明の効果】
【0009】
本発明によれば、複数の割り込み要求が同時に発生した場合であっても割り込み要求を消失させることなく受け付けることができる。
【図面の簡単な説明】
【0010】
【図1】図1は本発明の第1実施形態による割り込み制御回路の構成を示すブロック図である。
【図2】図2は本実施形態における割り込み要因発生から割り込み処理待ち合わせまでの動作を示すフローチャートである。
【図3】図3(A)は割り込み要求受付インタフェースの構成を示すブロック図であり、図3(B)は割り込み要求受付インタフェースの動作を説明するためのタイミングチャートである。
【図4】図4は本実施形態における割り込み処理部の決定から割り込み処理実行までの動作を示すフローチャートである。
【図5】図5は本実施形態における割り込み処理部選択回路の動作を説明するための模式図である。
【図6】図6は本実施形態における割り込み処理部からシステム共通RAMへのアクセス要求が競合した場合の調亭方法を示すタイミングチャートである。
【図7】図7は、図6に示す調亭方法における優先度の変化を示す模式図である。
【図8】図8は図1に示す割り込み制御回路における全体的動作を説明するためのタイミングチャートである。
【図9】図9は本発明の第2実施形態による割り込み制御回路の構成を示すブロック図である。
【図10】図10は図9に示すシステムの動作を説明するためのタイミングチャートである。
【発明を実施するための形態】
【0011】
本発明によれば、割り込み要求受付時に割り込み要求を時分割管理することで、割り込み要求を消失させることなく受け付けることができる。また、受け付けた割り込み要求は複数の割り込み処理部に分散し並列に割り込み処理を行うことで、それぞれの処理を中断することなく最小限の遅延で全ての処理を完了することが可能となる。より具体的には、通常処理のプロセッサ以外に、割り込み処理専用の簡易プロセッサを複数個実装することで負荷分散を行い、プロセッサでの通常処理を中断することなく、割り込み処理を並列で実行する。たとえば割り込み要求を時分割方式によるタイムスロットで管理し、割り込み要求が同時に発生した場合でも割り込み要求を消失することなく受け付けることが可能となる。さらに、複数の割り込み処理結果をアクセス調停してシステム共通記憶部にライトバックすることで、競合することなくプロセッサ側と割り込み処理結果を共有することができる。以下、本発明の実施形態について図面を参照しながら詳細に説明する。
【0012】
1.第1実施形態
1.1)回路構成
図1に示すように、CPU10は周辺制御バス20を通して、システム共通RAM(Random Access Memory)30、システム共通ROM(Read Only Memory)40および複数の周辺機能回路50(#1〜#N)と接続している。このようなCPUシステムにおいて、本発明の第1実施形態による割り込み制御回路100は、周辺制御バス20、システム共通RAM30および複数の周辺機能回路50(#1〜#N)に接続されている。
【0013】
割り込み制御回路100は、N個の周辺機能回路50(#1〜#N)にそれぞれ対応するN個の割り込み要求受付インタフェース101(#1〜#N)、タイムスロット基準パルス生成部102、アドレス変換テーブル103、処理待ち合わせバッファ104、割り込み処理分配部105、割り込み処理部選択部106、複数の割り込み処理部107(#1〜#M)、ライトバックアクセス調停部108、ライトバックアクセス用バス109、および、複数の割り込み処理部107(#1〜#M)に対応した複数のハンドラRAM110を有する。
【0014】
割り込み要求受付インタフェース101(#1〜#N)は、それぞれ対応する周辺機能回路50からの割り込み要求を受け付け、周辺割り込み要求信号に時分割多重してアドレス変換テーブル103へ出力する。複数の割り込み要求を時分割で多重するので割り込み競合による割り込み要求の消失を回避することができる。
【0015】
タイムスロット基準パルス生成部102は、各割り込み要求受付インタフェース101の同期用のタイムスロット基準パルスとアドレス変換テーブル103を参照するためのタイムスロット番号とを生成する。アドレス変換テーブル103は、割り込み要求時のタイムスロット番号を入力し、そのタイムスロット番号をハンドラアドレスへ変換して処理待ち合わせバッファ104へ出力する。処理待ち合わせバッファ104は、アドレス変換テーブル104から入力したハンドラアドレスを一旦格納し、割り込み処理が開始されるまで保持する。
【0016】
割り込み処理部分配部105は、処理待ち合わせバッファ104に格納されたハンドラアドレスを読み出し、割り込み処理部選択部106で選択された割り込み処理部へハンドラアドレスと割り込み要求とを通知する。割り込み処理部選択部106は、各割り込み処理部の状態を監視し、次に割り込み要求を通知するべき割り込み処理部の選択を行う。
【0017】
割り込み処理部107(#1〜#M)は、通知されたハンドラアドレスに従ってハンドらRAM110からプログラムのフェッチを行い、割り込み処理を実行するプロセッサユニットである。この割り込み処理の結果は、ライトバックアクセス調停部108のアクセス調停に従って、ライトバックアクセス用バス109を通してデュアルポートのシステム共通RAM30へライトバックされる。
【0018】
ライトバックアクセス調停部108は、複数の割り込み処理部107(#1〜#M)からのアクセス要求をラウンドロビン方式で調停し、決定した割り込み処理部へアクセス権を与える。また、割り込み処理部からの読み出し/書き込みコマンドに対応しシステム共通RAM30からのデータ読み出しおよび書き込みを行う。
【0019】
ハンドラRAM110は、システム共通ROM40上の割り込み処理用のハンドラプログラムを格納し、割り込み処理部107からのプログラムフェッチによるバス競合を回避する。尚、各割り込み処理部のハンドラRAM110は、同じアドレスでメモリマップにマッピングされる構成をとり、ハンドラプログラムは、CPU10のスタートアッププログラムによりシステム初期化時にシステム共通ROM40のプログラム領域からハンドラRAM110の全てに同じプログラムを一括で転送する。
【0020】
なお、上述した割り込み処理分配部105、割り込み処理部選択部106、複数の割り込み処理部107(#1〜#M)およびライトバックアクセス調停部108は、メモリに記録されたプログラムをプログラム制御プロセッサ上で実行することにより同等の機能を実現することもできる。
【0021】
1.2)動作
上述した割り込み制御回路100の時分割方式による動作は、a)割り込み要因の発生から処理の待ち合わせまで、b)割り込み処理部の決定から割り込み処理の実行まで、およびc)割り込み処理結果のライトバックまで、の3つに大別できる。以下、図面を参照しながら詳細に説明する。
【0022】
a)割り込み要因の発生から処理の待ち合わせまで
図2に示すように、周辺機能回路50にて発生した割り込み要因は、割り込み要求受付インタフェース101で時分割多重され、アドレス変換テーブル103にてハンドラアドレスに変換された後、処理待ち合わせバッファ104へ格納される。
【0023】
図3(A)に示すように、各割り込み要求受付インタフェース101にはタイムスロット判定用カウンタ101−1および割り込み要求多重信号生成部101−2が設けられ、タイムスロット判定用カウンタ101−1はタイムスロット基準パルスにより動作してカウンタ値を出力する。割り込み要求多重信号生成部101−2は、周辺機能回路から割り込み要求が発生すると、予め決められた自己の出力タイミングを示す所定カウンタ値で割り込み要求多重信号を出力し、OR回路により他の割り込み要求受付インタフェースからの割り込み要求多重信号と時分割多重され、周辺割り込み要求信号を生成する。
【0024】
図3(B)に示すように、タイムスロット判定用カウンタ101−1は、タイムスロット基準パルス生成部102からのタイムスロット基準パルスに同期してカウント動作を行う。また、割り込み要求受付インタフェース101は自身に設定されているタイムスロット番号のタイミングで周辺割り込み要求を通知する。図3(B)では、割り込み要求受付インタフェース#Xの動作タイミングを示しており、タイムスロット判定用カウンタ101−1がXとなった時に周辺割り込み要求を通知する。
【0025】
b)割り込み処理部の決定から割り込み処理の実行まで
次に、割り込み処理部107の決定から割り込み処理実行までの動作を図4および図5を用いて説明する。
【0026】
割り込み処理部選択部106は、次に処理要求を通知する割り込み処理部107の選択を行い、割り込み処理分配部105は、選択された割り込み処理部107へ割り込み要求とハンドラアドレスを通知する。
【0027】
図4に示すように、割り込み処理分配部105は、全ての割り込み処理部がBusy状態または処理待ち合わせバッファ104に処理待ちのハンドラアドレスが格納されていない場合は割り込み要求の通知は行なわない。処理要求の通知を受けると、割り込み処理部107は現在の処理状況をBusy状態に更新し、通知されたハンドラアドレスによりプログラムをフェッチして割り込み処理を実行する。割り込み処理部107は割り込み処理実行完了後、再度処理状況をReady状態に更新する。
【0028】
図5に示すように、割り込み処理部選択部106は、Ready状態の割り込み処理部107のうち、固定優先で最も優先度の高い割り込み処理部を選択し、選択された割り込み処理部の番号を割り込み処理分配部105へ通知する。ここでは、Ready状態の割り込み処理部107のうち最も優先度の高いものとして割り込み処理部#yが選択されている。また全ての処理部がBusy状態である場合は最も優先度の低い#0番が選択されることで、割り込み処理分配部105において全処理部がBusy状態であることが判る仕組みとなっている。
【0029】
c)割り込み処理結果のライトバックまで
最後に割り込み処理と処理結果のライトバック動作について説明する。割り込み処理部107はローカルに持つハンドラRAM110のハンドラアドレスからプログラムをフェッチし処理を実行する。ハンドラRAM110にはシステム初期化時にシステム共通ROM30よりプログラムをコピーしておく必要がある。割り込み処理の実行結果はシステム共通RAM30へ書き込み、CPU10およびその他の割り込み処理部110との間で処理結果の情報共有を行なう。
【0030】
図6に示すように、割り込み処理部107からシステム共通RAM30へアクセスする場合、複数の割り込み処理部107からのアクセス要求が競合する可能性がある。そこで、ライトバックアクセス調停部108は、割り込み処理部107からのアクセス要求が競合した場合、それらのアクセス要求を調停し、競合しないように割り込み処理部107を順次決定してバスの使用権(アクセス権)を与える。アクセス権を得た割り込み処理部107は次の1クロック時間で読み出し/書き込みコマンドを実行し、システム共通RAM30へアクセスを行なう。
【0031】
アクセス要求を調停には、図7に示すように、一度アクセス権を与えた割り込み処理部の優先度が最低となるラウンドロビン方式を採用することができる。これにより図6に示すように、複数の割り込み処理部がアクセス権を順次付与され、それに従ってシステム共通RAM30へのアクセスを競合することなく実行することができる。
【0032】
1.3)効果
以上述べたように、本発明の第1実施形態によれば、割り込み処理回路107を使用しCPU10の処理と平行して割り込み処理を行うので、CPU10による通常処理を停止することなく割り込みの処理を行うことができる。
【0033】
また、タイムスロットにより各割り込み要求の受付タイミングをずらしているので、複数の割り込み要求が同時に発生したとしてもタイムスロットの基本周期時間内で確実に発生した割り込み要求を受け付けることが可能となる。
【0034】
なお、図8に示すように、システムに破綻がなく最も効果的に動作するのはタイムスロットの基本周期が最短の処理時間である処理Cより短い場合であり、輻輳が発生しても要求を消失することなく、且つ処理A,B,Cの処理時間を合計した時間よりも短い時間で全ての処理を完了することが可能となる。特に、既存のSoC(System on Chip)マイコンでは割り込み発生時に割り込み処理はCPUでのみ実行されるので、多数の割り込みが同時に発生した輻輳状態ではCPUに負荷が集中して通常処理が停止する可能性がある。本実施形態によれば、このような通常処理の停止を起こすことなく複数の割り込み要求を受け付けて処理することが可能となる。
【0035】
2.第2実施形態
上述した第1実施形態では、図1に示すように、複数の割り込み要求を1本の周辺割り込み要求信号に時分割多重しているので、割り込みの種類が増えた場合にタイムスロットを増やして対応することになる。このためタイムスロットが1周する周期が長くなり、その結果、割り込み通知が遅くなる。そこで、本発明の第2実施形態による割り込み制御回路100aは、周辺機能回路50をいくつかにグループ化し、それぞれのグループで割り込み要求信号を多重化することでタイムスロットの数を抑える構成を採用する。
【0036】
図9に示すように、割り込み制御回路100aでは、N個の割り込み要求受付インタフェース101(#1〜#N)が2つのグループG1およびG2に分けられ、それぞれのグループから周辺割り込み要求信号G1とG2が生成される。周辺割り込み要求信号G1とG2は、図3で説明したようにタイムスロットによる時分割多重により生成される。
【0037】
割り込み制御回路100aには、グループに対応するアドレス変換テーブル103g1、103g2と、処理待ち合わせバッファ104g1、104g2が設けられ、それぞれハンドアドレスが割り込み処理分配部105によって処理待ち合わせバッファ104g1、104g2から読みだされる。アドレス変換テーブル103g1、103g2および処理待ち合わせバッファ104g1、104g2の機能は、第1実施形態のアドレス変換テーブル103および処理待ち合わせバッファ104と同様であり、またその他の機能ブロックも第1実施形態と同様であるから同じ参照番号を付して説明は省略する。
【0038】
なお、図9に示すシステムでは、周辺機能回路60(#0)および既存割り込み制御部70が設けられ、即時処理が必要な割り込み要求に対して既存の割り込み制御部70により処理する構成となっている。
【0039】
図10に示すように、割り込み処理Aに要する時間がタイムスロットの基本周期より短い場合は、割り込み要求Aを受け付けられず無駄な処理待ち時間が発生してしまう。この処理待ち時間が許されないような即時処理が必要な割り込みに関しては、既存の割り込み制御部70により処理することで対処することができる。
【産業上の利用可能性】
【0040】
本発明はSoC(System on Chip)マイコン等のプロセッサシステム一般に適用可能である。
【符号の説明】
【0041】
10 CPU
20 周辺制御バス
30 システム共通RAM
40 システム共通ROM
50 周辺機能回路(#1〜#N)
100 割り込み制御回路
101 割り込み要求受付インタフェース(#1〜#N)
102 タイムスロット基準パルス生成部
103 アドレス変換テーブル
104 処理待ち合わせバッファ
105 割り込み処理分配部
106 割り込み処理部選択部
107 割り込み処理部(#1〜#M)
108 ライトバックアクセス調停部
109 ライトバックアクセス用バス
110 ハンドラRAM

【特許請求の範囲】
【請求項1】
通常処理用プロセッサおよび複数の周辺機能回路を含むシステムにおける割り込み制御回路であって、
複数の割り込み処理手段と、
前記複数の周辺機能回路からの複数の割り込み要求を時分割方式により受け付ける割り込み要求受付手段と、
前記受け付けられた複数の割り込み要求に対して前記複数の割り込み処理手段をそれぞれ割り当てる割り込み処理分配手段と、
前記複数の割り込み処理手段の割り込み処理の結果を前記通常処理用プロセッサと共有するようにシステム共通記憶部に書き込む制御手段と、
を有することを特徴とする割り込み制御回路。
【請求項2】
前記割り込み要求受付手段が、前記複数の周辺機能回路を予め複数のグループに分けておき、グループごとに複数の割り込み要求を時分割方式により受け付け、前記割り込み処理分配手段が、前記複数のグループからの割り込み要求に対して前記複数の割り込み処理手段をそれぞれ割り当てる、ことを特徴とする請求項1に記載の割り込み制御回路。
【請求項3】
前記制御手段が、前記複数の割り込み処理手段の各々の割り込み処理の結果に対して前記システム共通記憶部へのアクセス権を付与するアクセス調停手段を有する、ことを特徴とする請求項1または2に記載の割り込み制御回路。
【請求項4】
通常処理用プロセッサおよび複数の周辺機能回路を含むシステムにおける割り込み制御方法であって、
前記複数の周辺機能回路からの複数の割り込み要求を時分割方式により受け付け、
前記受け付けられた複数の割り込み要求に対して複数の割り込み処理手段をそれぞれ割り当て、
前記複数の割り込み処理手段の割り込み処理の結果を前記通常処理用プロセッサと共有するようにシステム共通記憶部に書き込む、
ことを特徴とする割り込み制御方法。
【請求項5】
前記複数の周辺機能回路を予め複数のグループに分けておき、グループごとに複数の割り込み要求を時分割方式により受け付け、前記複数のグループからの割り込み要求に対して前記複数の割り込み処理手段をそれぞれ割り当てる、ことを特徴とする請求項4に記載の割り込み制御方法。
【請求項6】
前記複数の割り込み処理手段の各々の割り込み処理の結果に対して前記システム共通記憶部へのアクセス権を付与することで前記システム共通記憶部に書き込む、ことを特徴とする請求項4または5に記載の割り込み制御方法。
【請求項7】
通常処理用プロセッサおよび複数の周辺機能回路を含むシステムにおける割り込み制御回路としての機能をプログラム制御プロセッサ上で実現するためのプログラムであって、
複数の割り込み処理機能と、
前記複数の周辺機能回路からの複数の割り込み要求を時分割方式により受け付ける割り込み要求受付機能と、
前記受け付けられた複数の割り込み要求に対して前記複数の割り込み処理手段をそれぞれ割り当てる割り込み処理分配機能と、
前記複数の割り込み処理手段の割り込み処理の結果を前記通常処理用プロセッサと共有するようにシステム共通記憶部に書き込む制御機能と、
を前記プログラム制御プロセッサ上で実現することを特徴とするプログラム。

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


【公開番号】特開2013−73297(P2013−73297A)
【公開日】平成25年4月22日(2013.4.22)
【国際特許分類】
【出願番号】特願2011−210128(P2011−210128)
【出願日】平成23年9月27日(2011.9.27)
【出願人】(000232254)日本電気通信システム株式会社 (586)