説明

ディジタルシグナルプロセッサシステムおよびディジタルシグナルプロセッサシステムにおける割込み処理方法

【課題】DSPカード上においてDSPは外部割込みを処理できない。
【解決手段】一実施形態によれば、第1データバス16又は第2データバス20、26上に発生し発生要因が異なる複数の割込要求の入力により割込発生の通知を出力する割込み制御部18と、信号処理演算を実行する第1DSP21と、最も優先度の高い外部割込要求を各優先順位により選択する判定処理及び外部割込要求に対応する外部割込み処理を行う第2DSP22とを備え、第2DSP22は一つの期間内で判定処理及び外部割込み処理を繰返し、複数の他の期間内での一つ以上の非同期な外部割込要求のうち最も優先度の高い外部割込要求の処理を他の期間毎に終わらせるディジタルシグナルプロセッサシステム10が提供される。

【発明の詳細な説明】
【技術分野】
【0001】
一実施形態はディジタルシグナルプロセッサシステム(DSP)およびディジタルシグナルプロセッサシステムにおける割込み処理方法に関する。
【背景技術】
【0002】
パソコンに用いられるCPUは使用可能なメモリ容量が大きい。CPUは基本ソフトウェア(以下、OSと呼ぶ)による割込み処理を行う。CPUを対象とした高速割込み応答を実現する技術が知られている(例えば特許文献1、2参照)。
【0003】
DSPは信号処理に特化した様々な機能を有しているため、従来ハードウェアで構成されていた多くの信号処理機能をソフトウェア化している。通常、DSPが使用可能なメモリ資源はCPUのそれと比べて乏しいため、DSPは、CPUのようにOSを利用することや、複雑な処理を実行することができない。このため、DSPが行う信号処理は、ディジタルフィルタ処理やFFT処理などの固定した信号処理を各DSPに割付け、DSP間は専用の高速通信を用いて接続する分散方式のDSP構成や、巡回的並列処理又はラウンドロビン方式のDSP構成を取って行われている(例えば特許文献3参照[図14、図15])。
【0004】
信号処理システムでは、システム全体のタイミングに同期してこのシステムの構成要素が処理を行う。DSPカードは、多種多様な複数の割込みについて、応答制御を行う必要がある。DSPには割込みコントローラを含めて必要な装置が全て用意されており、自IC内で発生する内部割込みについては処理を行える。しかしDSPによる演算処理の適用分野が拡大してきている。この拡大に伴ってVMEバスやPCIバスなど公知規格を有するデータバスをDSPカードに配線し、例えばバスプロトコル変換機能を持つICを介してVMEバス経由で他のDSPカードからの割込みや、あるいはPCIバス経由でCPUからの割込みをDSPが受信処理する信号処理システムが提案されている(例えば特許文献4参照)。
【0005】
DSPは使用できるメモリの容量が小さいことから、DSP単体は単純で固定的な処理を割当て、複数個のDSPをまとめたDSPカードという単位で、必要な処理を実現させている。従って、DSPカード上の割込み発生源はDSPIC自身であり、DSPIC外部からの割込みの発生源が存在しない。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平7−6038号公報
【特許文献2】特開2000−284973号公報
【特許文献3】特開2009−020573号公報
【特許文献4】特開2010−244174号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかし、PCIバスなどを配線したDSPカードでは、このDSPカード上のDSPがDSP以外の割込み発生源からの外部割込みを処理する必要がある。互いに非同期な複数の外部割込要求がPCIバスからDSPカードに入力されたとき、このDSPカードは、PCIバスからの高速応答を要する割込みも、外部バス上のシリアル通信装置(UART)などからの高速応答が不要な割込みも、同一レベルで扱っている。このため、非同期かつ複数の割込み発生に対してDSPカードは適切な割込応答を行えない。
【課題を解決するための手段】
【0008】
このような課題を解決するため、一実施形態によれば、第1データバスと、それぞれこの第1データバスにバスインターフェースを介して接続された複数の第2データバスと、前記第1データバス又は前記第2データバス上に発生し発生要因が異なる複数の割込要求の割込み要因を持つ一種以上の割込要求の入力により割込発生の通知を出力し、前記第1データバスおよび前記複数の第2データバスに接続された割込み制御部と、この割込み制御部から出力される信号処理対象のデータの受信割込発生によってこのデータに対して信号処理演算を実行する少なくとも一つの第1DSPと、前記割込み制御部からの前記通知によりDSP外からの複数の外部割込要求のうち最も優先度の高い外部割込要求を各優先順位により選択する判定処理、およびこの外部割込要求に対応する前記割込みハンドラの実行による外部割込み処理を行う第2DSPと、を備え、この第2DSPは一つの期間内で前記判定処理および前記外部割込み処理を繰返し、複数の他の期間において一つ以上の非同期な外部割込要求のうち前記最も優先度の高い外部割込要求の処理をこれらの他の期間毎に終わらせることを特徴とするディジタルシグナルプロセッサシステムが提供される。
【0009】
また、別の一実施形態によれば、(a)第1データバスあるいはそれぞれこの第1データバスにバスインターフェースを介して接続された複数の第2データバス上に発生し発生要因が異なる複数の割込要求の割込み要因を持つ一種以上の割込要求の入力により割込発生の通知を出力し、(b)前記第2データバス上の第2DSPが、一つの期間内において前記通知によりDSP外からの複数の外部割込要求のうち最も優先度の高い外部割込要求を各優先順位により選択する判定処理と、この外部割込要求に対応する前記割込みハンドラの実行による外部割込み処理とを前記期間が満了するまで繰返し、(c)前記第2DSPが、複数の他の期間内での一つ以上の非同期な外部割込要求のうち前記最も優先度の高い外部割込要求の処理をこれらの他の期間毎に終わらせることを特徴とするディジタルシグナルプロセッサシステムにおける割込み処理方法が提供される。
【図面の簡単な説明】
【0010】
【図1】実施の形態に係るディジタルシグナルプロセッサシステムのブロック図である。
【図2】実施の形態に係るディジタルシグナルプロセッサシステムにおける複数種類の割込み要因、割込み制御部及び第2DSP間の接続関係を示す図である。
【図3】実施の形態に係るディジタルシグナルプロセッサシステムに用いられる第2DSPによる起動処理を説明するためのフローチャートである。
【図4】実施の形態に係るディジタルシグナルプロセッサシステムによる外部割込み処理を説明するためのフローチャートである。
【図5】実施の形態に係るディジタルシグナルプロセッサシステムによる外部割込み処理のタイムチャートの一例を示す図である。
【図6】実施の形態に係るディジタルシグナルプロセッサシステムが行う判定処理に用いられるレジスタ群の一例を示す図である。
【発明を実施するための形態】
【0011】
以下、実施の形態に係るディジタルシグナルプロセッサおよびディジタルシグナルプロセッサにおける割込み処理方法について、図1乃至図6を参照しながら説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。
【0012】
一実施形態に係るディジタルシグナルプロセッサシステムはレーダ装置から周期的に到来する受信信号の信号処理システムであり、それぞれ複数個のDSPを搭載した複数枚のDSPカードにより実行される。一実施形態に係るディジタルシグナルプロセッサシステムにおける割込み処理方法は信号処理システムにおける外部割込み受信処理方法である。この外部割込み受信処理方法は、レーダ装置からの受信完了割込みや、デバッグ用表示データの送信完了割込み、及びCPUボードといった上位装置からの送受信割込みなどの互いに非同期に発生する複数種類の割込要求信号を、このDSPカード上のDSPが受信し、割込み制御を行って処理する方法である。
【0013】
図1は信号処理システムのブロック図である。信号処理システム10は、基本周期毎にレーダ波の受信信号を出力するレーダ装置11と、このレーダ装置11からの受信信号をA/D(アナログtoディジタル)変換するA/D変換器12と、このA/D変換器12からの受信ディジタル信号に対しそれぞれDSPプログラムによって信号処理演算を行うM枚のDSPカード13と、これらのDSPカード13間を接続するVMEバス14と、VMEバス14に接続され各DSPカード13の動作を制御するCPUカード15とを備えている。
【0014】
レーダ装置11は例えば50μsec〜10msecの基本周期毎に繰返して受信信号を出力する。一基本周期とはレーダ装置が送信、受信をそれぞれ1回行うための時間に実質等しい。A/D変換器12は、受信アナログ信号からディジタルビット列を出力し、高速に流れかつ大量のシリアルビット列をDSPカード13へ送込む。
【0015】
複数枚のDSPカード13はそれぞれ基本周期に応じて計算時間を割当てられており、各計算時間内にそれぞれの信号処理演算を完了させるようにしている。これらのDSPカード13は受信データ列を1ビットも取りこぼさずに信号処理演算を実行する。
【0016】
一枚目のDSPカード13は、PCIバス16(第1データバス)と、このPCIバス16に接続されたバスプロトコル変換機能部19(バスインターフェース)と、それぞれPCIバス16にバスプロトコル変換機能部19を介して接続されたデータバス20、26(複数の第2データバス)と、PCIバス16又はデータバス26上に発生し発生要因が異なる複数の割込み要因を持つ一種以上の割込要求の入力により割込発生の通知を出力する外部割込み制御装置18(割込み制御部)と、データバス20上の複数個のDSP21(第1DSP)と、同じくデータバス20に接続され主に外部割込み処理を実行するDSP22(第2DSP)とを備えている。
【0017】
更にDSPカード13は、DSP21、22の内部プログラムの実行結果をこれらのDSP21、22から信号線23を介してパソコン24へ送る汎用のシリアル通信装置25と、このシリアル通信装置25、バスプロトコル変換機能部19及び外部割込み制御装置18を収容する別のデータバス26(第2データバス)と、このデータバス26を介してDSP21、22用の起動プログラムを保持するフラッシュROM27とを備えている。外部割込みとはDSP21、22内部で発生する内部割込みと異なるDSP外からの割込み要求を指す。
【0018】
PCIバス16及びデータバス20上には複数種類の割込発生源が物理的に配置されている。割込発生源としてDSPカード13は、シリアルデータの入出力完了時に割込みを発生させる上記シリアル通信装置25と、A/D変換器12からの受信データの受信完了時に割込みを発生させる高速シリアル通信装置28と、CPUカード15及びDSPカード13間の信号の送受信完了時に割込みを発生させるPCI−VMEブリッジ装置29とを備えている。
【0019】
シリアル通信装置25はUART(Universal Asynchronous Receiver Transmitter)機能を持つICである。シリアル通信装置25はDSP21、22が実行するDSPプログラムのソースコードに埋込まれたプリント文の文字列を出力する。シリアル通信装置25はパソコン24のRS−232Cインターフェース等により低速のシリアルビット列を送信する。
【0020】
高速シリアル通信装置28は割込み要求を出したとき又はその直後に受信データを揮発性の外部記憶装置30に書込む。高速シリアル通信装置28は予め決められた個数のビット列を受信すると、一回の受信完了割込みを出力する。DSPカード13はこのDSPカード13上に発生した複数の外部割込み要求のうち、この高速シリアル通信装置28からの受信データを最も重要なデータとして取扱い、ビット落ちを起こさせずにこの受信データを蓄積するようにしている。高速シリアル通信装置28による受信完了割込みの出力を契機として、DSP21群は一回の信号処理演算を行うようにしている。受信データに対する外部割込み間隔が、レーダ装置11側の一基本周期に合うようにDSPカード上での処理タイミングが合わせられている。
【0021】
PCI−VMEブリッジ装置29は、VMEバス14及びDSPカード13間の転送割込みを発生させる。PCI−VMEブリッジ装置29はCPUカード15上のCPU31からDSPカード13に対して送られた動作制御用の制御信号を受信する。一方DSPカード13からCPUカード15へはバスプロトコル変換機能部19がデータを転送する。
【0022】
また、DSPカード13は、他の割込発生源としてバスプロトコル変換機能部19内に設けられたユーティリティプログラムのウォッチドッグタイマ、温度センサ及び電源監視センサなどを備えてもよい。温度センサは環境温度が上限を越えたときに割込みを上げる。電源監視センサは電源電圧値が閾値を下回ったときに割込みを上げる。
【0023】
外部割込み制御装置18は割込発生通知用の端子33を有する。外部割込み制御装置18は割込み要因を持つ一種以上の割込要求を受信すると、端子33から割込発生を通知する。外部割込み制御装置18の機能はFPGAにより実現される。
【0024】
図2は実施形態に係るディジタルシグナルプロセッサシステムにおける複数例えば32種類の割込み要因、外部割込み制御装置18及びDSP22間の接続関係を示す図である。既述の符号はそれらと同じ要素を表す。INT0〜INT31はDSP外の複数の割込発生源による外部割込要求信号名を表す。例えばINT0〜INT3はPCIバス16用である。INT4〜INT10はVMEバス14用である。INT11〜INT31はシリアル通信装置25や、タイマ割込み、温度センサ、電源監視センサからの割込み等に用いられる。同図の例では最大32種類まで外部割込み要求を外部割込み制御装置18は入力可能になっている。外部割込み制御装置18は、何れかの割込み発生源から入力があった場合、DSP22へ外部割込み発生を通知する。
【0025】
外部割込み制御装置18は、内部に割込みマスクレジスタ34を持ち、この割込みマスクレジスタ34により割込み応答の可否を制御可能になっている。外部割込み制御装置18は内部に割込みステータスレジスタ35を持つ。この割込みステータスレジスタ35により外部割込み制御部18は割込み要因を特定し、割込み発生源をDSP22へ通知可能になっている。外部割込み制御装置18は割込み処理が終了したかどうかを識別する割込みEOI(End Of Interrupt)レジスタ36を持ち、この割込みEOIレジスタ36により割込み発生源毎に割込み処理を終了させるようにしている。これらの割込みマスクレジスタ34、割込みステータスレジスタ35、割込みEOIレジスタ36により、外部割込み制御装置18は複数の外部割込みの入力信号のOR結果をDSP22へ通知可能になっている。
【0026】
割込みマスクレジスタ34、割込みステータスレジスタ35、及び割込みEOIレジスタ36は、同じビット割付けパターンを有する。例えばそれぞれが割込発生源を表す32ビットのハードウェアレジスタをレジスタ34〜36(割込みマスクレジスタ34、割込みステータスレジスタ35、割込みEOIレジスタ36)は用いる。LSBがINT0であり、MSBがINT31を表すように割付けされる。ビット値ハイが割込要求有りを示しビット値ローが割込要求無しを示す。
【0027】
これらのレジスタ34〜36を用いて、外部割込み制御装置18は、32本の信号が並列入力される端子37群の値を取込みしている。
【0028】
また、DSP21、22には何れも端子38が設けられている。端子38はメーカ仕様により予めICに設けられた端子である。外部割込み制御装置18が一個のDSPICの端子38を外部割込みの入力端子として使うことにより、DSP22は外部割込み処理用に動作可能にされる。
【0029】
図1のバスプロトコル変換機能部19は互いにバス幅やデータ転送単位が異なるPCIバス16、データバス20、26、42の間で、これらのバスのプロトコルに応じてデータをプロトコル変換してから転送する。DSPカード13が値データ又は制御データをCPUカード15へ転送する場合、バスプロトコル変換機能部19内のDMAコントローラ32が外部記憶装置30から値データ又は制御データを読出して、読出したデータをCPUカード15へ転送するようにしている。データバス20は全部でN個のDSP21、22を収容する内部バスである。データバス26はシリアル通信装置25を収容する内部バスである。外部記憶装置30は例えばページメモリのような大容量のメモリである。データバス42は内部バスである。
【0030】
信号処理演算用のDSP21は外部割込み制御装置18から出力される信号処理対象のデータの受信割込発生によってこのデータに対して信号処理演算を実行する。DSP21は小容量の記憶領域を有する内部メモリ40と、データをDMA転送するDMAコントローラ41とを有する。内部メモリ40はプログラム及びデータを格納する。DMAコントローラ41はこの内部メモリ40へフラッシュROM27から実行ファイルを取込み実行する。DMAコントローラ41は実行結果のうち必要な結果を外部記憶装置30に書込む。
【0031】
外部割込み処理用のDSP22も内部メモリ40及びDMAコントローラ41を備える。DSP22はこれらのDSP21が演算中、判定処理と外部割込み処理とを実行する。判定処理とは、端子38からの通知信号により一種以上の外部割込要求のうち最も優先度の高い外部割込要求を各優先順位により選択する処理を指す。
【0032】
DSPカード13は、複数N個のDSP21、22から構成されていることから、ブート対象のDSP21、22は1個または複数個存在する。2枚目からM枚目の各DSPカード13の構成は1枚目のDSPカード13の構成と同じである。
【0033】
構造について述べると、信号処理システム10は箱状のシャーシに組込まれている。信号処理システム10は、シャーシと、このシャーシ内面上にVMEバス14を布線したバックプレーンと、それぞれこのバックプレーン上に列設された複数個のスロットと、最左端側のスロットに差込まれた1枚のCPUカード15と、それぞれこのCPUカード15が差込まれたスロット以外のスロットに差込まれたM枚のDSPカード13とを備えて構成されている。各DSPカード13上にPCIバス拡張用のコネクタが設けられ、複数種類の内部バス線がカード基板上に配線されている。
【0034】
上述の構成の信号処理システム10が起動されると、一枚目のDSPカード13上のDSP21、DSP22の各DMAコントローラ41はプログラムを内部メモリ40に転送する。プログラムの記述によりDSP21はスレーブDSPとして機能し、DSP22はマスタDSPとして機能する(以下、DSP22をマスタDSP22と呼び、各DSP21をスレーブDSP21と呼ぶことがある)。
【0035】
DSPカード13内における、ブート手順のフローチャートを図3に示す。図3は実施形態に係るディジタルシグナルプロセッサシステムに用いられるマスタDSP22による起動処理を説明するためのフローチャートである。
【0036】
ステップA1において、マスタDSP22へ電源が投入される。ステップA2において、マスタDSP22は、フラッシュROM27からプログラムを、内部メモリ40へロードする。ステップA3において、予め決められた情報に基づき、外部割込みを受信するため割込みマスクレジスタ34をマスタDSP22は設定する。あるいは外部割込み制御装置18が必要なマスクを解除設定する。
【0037】
割込要求信号INT0〜INT31のうち、一例として、INT0、INT4、INT11及びINT14等を信号処理システム10は使っている。これらのINT0等に対応する割込みマスクレジスタ34のビットのマスクを外部割込み制御装置18は解除する。図6(a)は割込みマスクレジスタ34のマスク例を示す図である。外部割込み制御装置18は、PCIバス16用に割当てしているINT0〜INT3のうちINT0のマスクを高速シリアル通信装置28用に解除する。外部割込み制御装置18は、INT4〜INT10のうちINT4のマスクをPCI−VMEブリッジ装置29用に解除し、INT11のマスクをシリアル通信装置25用に解除する。外部割込み制御装置18は、例えばINT14〜INT17などにタイマ割込みや、温度センサや、電源監視センサからの割込みのビットを割付けし、これらのビットのマスクを解除してもよい。
【0038】
ステップA4においてマスタDSP22はスレーブDSP21とともに演算処理を実行する。各スレーブDSP21はプログラムの計算命令にしたがって割当てられたDSPソフトウェアの演算処理を開始する。例えばディジタルフィルタ処理やFFT処理などの演算を各スレーブDSP21が実行する。
【0039】
この演算処理の実行中、ステップA5においてマスタDSP22は上位装置としてのCPU31から終了指令を受けたかどうかを判定している。ステップA5においてマスタDSP22が終了指令を受けない間、NOルートを通り、マスタDSP22は演算処理を続ける(ステップA4)。ステップA5において、マスタDSP22が終了指令を受けると、YESルートを通り、ステップA6においてマスタDSP22は終了処理を行う。マスタDSP22は、フラッシュROM27からプログラムを起動した後、演算処理を実行し、外部割込みの発生に併せて割込み処理を行える状態にされる。
【0040】
次に、マスタDSP22における、外部割込み処理を図4、図5に示す。図4はマスタDSP22による外部割込み処理を説明するためのフローチャートである。図5はマスタDSP22による外部割込み処理のタイムチャートの一例を示す図である。図5ではDSPカード13内で、割込み(外部割込み要求)1,2,3が発生した例で説明する。割込み優先度は、割込み1>割込み2>割込み3とする。具体例として、割込み1は図1の(2)のように高速シリアル通信装置28の受信完了割込みを表す。割込み2は同図中(1)のようにCPU31からPCI−VMEブリッジ装置29への転送割込みを表す。割込み3は同図中(5)のようにシリアル通信装置25の送信完了割込みを表す。
【0041】
ステップB1において図1の(3)のように外部割込み制御部18は外部割込みの発生を入力される。このステップB1において、同図中の(4)のように、マスタDSP22は外部割込み制御装置18から端子38を介して外部割込み信号を通知される。マスタDSP22は続くステップB2〜ステップB4の外部割込み処理を実行する。まず、ステップB2においてマスタDSP22は割込みステータスレジスタ35をリードする。このリード処理を開始する時点ではDSPカード13の割込み発生状態は図5(a)の状態にある。図5(a)に示すように、時刻t0において割込み1、割込み3が発生しているとする。
【0042】
ステップB3においてマスタDSP22は割込みステータスレジスタ35のビット番号を繰返しの変数iとするfor文の冒頭でビット番号「0」の値をリードする。図6(b)に割込みステータスレジスタ35及び割込みEOIレジスタ36の一例を示す。割込みステータスレジスタ35のビット番号「0」の1をマスタDSP22はリードする。
【0043】
ステップB4においてマスタDSP22はビット値が1か否かを判定する。1である場合、マスタDSP22はYESルートを通り、ステップB5においてマスタDSP22はビット番号「0」に対する割込み処理を実行する。図5(b)に示すように、時刻t1から時刻t2までの間に、マスタDSP22は外部割込み処理を行う。
【0044】
ステップB5ではマスタDSP22は割込み処理を行う。マスタDSP22はユーザハンドラ(割込みハンドラ)1を実行する。図5(c)に示すように、時刻t3から時刻t4までの間に、ビット番号「0」に対応するユーザハンドラ1が実行される。時刻t3から時刻t4は、ユーザハンドラ1によるタスクを完了させるために要する時間である。このステップB5では図6(b)に示すように割込みEOIレジスタ36のビット位置に1を外部割込み制御装置18が書込む。
【0045】
ユーザハンドラ1の実行後、ステップB6において、マスタDSP22は割込み1に対応した割込み終了処理を実行する。図6(c)に示すように外部割込み制御装置18は割込みEOIレジスタ36の対応ビットに0を書くとともに割込みステータスレジスタ35の対応のビットに0を書く。外部割込み制御部18は一旦外部割込み処理を終える。割込み要因の小さい順番にマスタDSP22は処理を行うことから、優先度が最も高い割込み1に対応する処理を確実に行える。
【0046】
時刻t4までに最優先に処理すべき高速シリアル通信装置28の割込み1の処理をマスタDSP22は終える。時刻t3から時刻t4の間に割込み2が発生している。この割込み2を外部割込み制御装置18が取扱って割込み2を割込みステータスレジスタ35に書込みしてある(図6(c))。時刻t4においては外部割込み2、3が発生中であることから、マスタDSP22は再度外部割込み処理を実行する。図4において、マスタDSP22は割込みステータスレジスタ35を再度LSBからリードする(ステップB2)。割込みステータスレジスタ35のビット番号「0」は処理済みでクリアされている。bit(i)のi=0、1、2、3までのfor文において、マスタDSP22は、割込みステータスレジスタ35のビット番号iのビット値がそれぞれローであることをリードし、NOルートを通り、繰返し変数iを1つ増やす(ステップB3、ステップB4、ステップB7)。
【0047】
i=4について、マスタDSP22はビット番号「4」のビット値をリードし(ステップB3、ステップB4)、YESルートを通り、ステップB5において、マスタDSP22は時刻t5から時刻t6の間(図5(b))、ビット番号「4」に対する割込み処理を実行する。ユーザハンドラ(割込みハンドラ)2をマスタDSP22が実行する(図5(d))。ユーザハンドラ2のタスクは時刻t8まで続く。マスタDSP22は割込み2の割込み終了処理を実行する(ステップB6)。図6(d)に示すように、外部割込み制御装置18は割込みEOIレジスタ36及び割込みステータスレジスタ35のそれぞれのビット番号「4」に0を書く。マスタDSP22は一旦外部割込み処理を終える。このように、割込み3が時刻t0で上がっており、この割込み3は割込み2よりも先に上がっているにも関わらず、時刻t4において、後から入った割込み2が割込み3に優先して処理される。マスタDSP22は割込み要因の優先順位が小さい順番に処理を行うことから、時系列に入った割込み2、3間の順番に関わらず割込み2に対応する処理が優先的に処理されるようになる。
【0048】
時刻t8までに割込み1、割込み2の各処理をマスタDSP22は終える。引続き、マスタDSP22は割込み3に対応した処理を行う。マスタDSP22は割込みステータスレジスタ35を再度LSBからリードする(ステップB2)。図6(d)に示すように、割込みステータスレジスタ35のビット番号「0」、「4」は処理済みでクリアされている。bit(i)のi=0〜10までのfor文において、マスタDSP22は、ビット番号iのビット値をリードしていく(ステップB3、ステップB4、ステップB7)。i=11について、マスタDSP22は割込みステータスレジスタ35のビット値をリードする(ステップB3、ステップB4)。ステップB5において時刻t9から時刻t10の間、マスタDSP22はビット番号「11」に対する割込み処理を実行する(図5(b))。時刻t12までの間、ユーザハンドラ(割込みハンドラ)3をマスタDSP22が実行する(図5(e))。引続きマスタDSP22は割込み3について割込み終了処理を実行する(ステップB6)。外部割込み制御装置18は割込みEOIレジスタ36及び割込みステータスレジスタ35のそれぞれのビット番号「11」のビット値をクリアする(図6(e))。全ての外部割込み処理をマスタDSP22は終える。時刻t12においては、3つのEOIが全て発行されている。マスタDSP22は信号処理演算に制御を移す(図3のステップA4)。
【0049】
割込み3について述べると、割込み3の優先順位は割込み1、2の優先順位に比べて低い。図1の(1)〜(4)のように、割込み1、2の処理が終わった後、(5)のように後回しの処理をされる。割込み3はこの割込み3が上がった後、割込みハンドラ1、2の実行終了までずっと待たされ続ける。本実施形態では、シリアル通信装置25が記憶しているデータを最悪取り損ねたとしても、それほど重要でないデータとして割り切って、DSPカード13に動作を続けさせるようにしている。信号処理システム10は、必ず高い優先順位から割込要求を処理していくため、たとえ割込み1が連続して発生した場合でも、信号処理システム10は、全ての割込み1の外部割込み処理を漏れなく実行することができる。以上により、優先度に応じて外部割込み処理を行うことで、DSPカード13は外部割込みの取りこぼしを防ぐことが可能である。
【0050】
従来例に係るディジタルシグナルプロセッサシステムでは、DSPカード上においてDSPがDSP以外を割込み発生源とする外部割込みを処理することができない。互いに非同期な複数の外部割込要求がDSPカードに発生したとき、このDSPカードは、PCIバスなどからの高速応答を要する割込みも、UARTなどからの高速応答が不要な割込みも、同一レベルで扱っている。複数種類の割込み発生に対してDSPカードは高速に割込応答を行えない。
【0051】
現在は、半導体技術の進歩により、DSPが使用できるメモリ容量が増え、より複雑な処理を実行できるようになったことから、従来CPUが行ってきた処理をDSPで置換える信号処理システムが出てきている。これに伴い、DSPカードが公知規格バスをサポートし、公知規格バスからの割込みを出力するバスプロトコル変換機能ICがDSPカード上に設けられるようになってきている。DSPにとっての外部割込み発生源がDSPカード上に存在するようになってきている。
【0052】
従来例に係るディジタルシグナルプロセッサシステムでは、DSPカードが本来取りこぼすことを許されないレーダ装置からの受信データと、それほど重要でないデバッグ用の文字列データとをDSPカードが同列に扱っている。非同期複数の割込要求の発生に対し、DSPカードが全て同じ重要度で処理したとすると、DSPカードは重要でない割込み処理の最中にレーダ装置からの受信割込みが入って受信データを基本周期内に処理を終えない可能性が存在する。
【0053】
これに対して、本実施形態に係るディジタルシグナルプロセッサシステムおよびディジタルシグナルプロセッサシステムにおける割込み処理方法によれば、DSPカード13上においてDSP22が外部割込みを処理することができる。割込要因の種別の数が増大したとしても、各基本周期内で優先度の高い外部割込みの発生を確実に発見して優先度の高い外部割込みを処理できる。DSP22は、各基本周期内で、割込みハンドラの実行終了の都度、i=0に戻ってLSBからfor文を回している。DSP22は必ず優先度の高い高速シリアル通信装置28からの受信割込みが入っているかどうかを判定している。優先順位による評価判定をDSP22が処理の都度実行するため、DSPカード13は非同期複数の外部割込みに対して高速に割込応答を行えるようになる。
【0054】
尚、上記の実施形態は実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。例えば図2では外部割込み発生源は、最大32種類まで登録されているが、外部割込み発生源の種別や個数は種々変更可能である。優先度の高い外部割込要求を選択する判定処理では、優先順位を繰返し評価しているが、この繰返し処理において、図6の割込みマスクレジスタ34、割込みステータスレジスタ35、割込みEOIレジスタ36の割付け方は一例である。プログラム言語の繰返し構造を示す例としてfor文を述べたが、他の言語あるいは他の繰返し構造により繰返し処理を記述してもよい。ビット割付けの仕方を変えること、又は上記3本のレジスタ群と実質同じ機能を有する複数本のレジスタを使うことによって判定処理を実施したに過ぎない実施品に対しても本実施形態に係るディジタルシグナルプロセッサシステムの優位性は何ら損なわれるものではない。
【0055】
いくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0056】
10…信号処理システム(ディジタルシグナルプロセッサシステム)11…レーダ装置、12…A/D変換器、13…DSPカード、14…VMEバス、15…CPUカード、16…PCIバス(第1データバス)、18…外部割込み制御装置(割込み制御部)、19…バスプロトコル変換機能部(バスインターフェース)、20…データバス(第2データバス)、21…DSP(第1DSP)、22…DSP(第2DSP)、23…信号線、24…パソコン、25…シリアル通信装置(割込み制御部)、26…データバス(第2データバス)、27…フラッシュROM、28…高速シリアル通信装置(割込み発生源)、29…PCI−VMEブリッジ装置(割込み発生源)、30…外部記憶装置、31…CPU、32…DMAコントローラ、33…端子、34…割込みマスクレジスタ、35…割込みステータスレジスタ、36…割込みEOIレジスタ、37,38,39…端子、40…内部メモリ、41…DMAコントローラ、42…データバス。

【特許請求の範囲】
【請求項1】
第1データバスと、
それぞれこの第1データバスにバスインターフェースを介して接続された複数の第2データバスと、
前記第1データバス又は前記第2データバス上に発生し発生要因が異なる複数の割込要求の割込み要因を持つ一種以上の割込要求の入力により割込発生の通知を出力し、前記第1データバスおよび前記複数の第2データバスに接続された割込み制御部と、
この割込み制御部から出力される信号処理対象のデータの受信割込発生によってこのデータに対して信号処理演算を実行する少なくとも一つの第1DSPと、
前記割込み制御部からの前記通知によりDSP外からの複数の外部割込要求のうち最も優先度の高い外部割込要求を各優先順位により選択する判定処理、およびこの外部割込要求に対応する割込みハンドラの実行による外部割込み処理を行う第2DSPと、を備え、
この第2DSPは一つの期間内で前記判定処理および前記外部割込み処理を繰返し、複数の他の期間において一つ以上の非同期な外部割込要求のうち前記最も優先度の高い外部割込要求の処理をこれらの他の期間毎に終わらせることを特徴とするディジタルシグナルプロセッサシステム。
【請求項2】
前記第2DSPは、前記期間内で、前記最も優先度の高い外部割込要求に対する前記外部割込み処理を実行し終えた時点で、前記最も優先度の高い外部割込要求を含む前記一つ以上の非同期な外部割込要求に対する前記判定処理を再度行うことを特徴とする請求項1記載のディジタルシグナルプロセッサシステム。
【請求項3】
第1データバスあるいはそれぞれこの第1データバスにバスインターフェースを介して接続された複数の第2データバス上に発生し発生要因が異なる複数の割込要求の割込み要因を持つ一種以上の割込要求の入力により割込発生の通知を出力し、
前記第2データバス上の第2DSPが、一つの期間内において前記通知によりDSP外からの複数の外部割込要求のうち最も優先度の高い外部割込要求を各優先順位により選択する判定処理と、この外部割込要求に対応する割込みハンドラの実行による外部割込み処理とを前記期間が満了するまで繰返し、
前記第2DSPが、複数の他の期間内での一つ以上の非同期な外部割込要求のうち前記最も優先度の高い外部割込要求の処理をこれらの他の期間毎に終わらせることを特徴とするディジタルシグナルプロセッサシステムにおける割込み処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2013−114483(P2013−114483A)
【公開日】平成25年6月10日(2013.6.10)
【国際特許分類】
【出願番号】特願2011−260463(P2011−260463)
【出願日】平成23年11月29日(2011.11.29)
【出願人】(000003078)株式会社東芝 (54,554)