(57)【要約】【課題】ＤＳＰ実行ファイルにおいて、同一の処理内容にもかかわらず、複数のＤＳＰカードそれぞれについて一部のパラメータが異なる場合においても、一種類の実行ファイルで対応できるディジタルシグナルプロセッサシステムを提供する。【解決手段】複数のＤＳＰ用実行プログラム及び各実行プログラムを起動する複数のコマンドを含むデータファイルを記憶する第１外部記憶装置５及びＣＰＵ４を有するＣＰＵカード６と、データファイルを記憶する第２外部記憶装置１５、初期化プログラムを記憶するＲＯＭ１７、複数個のＤＳＰ１１を有するＤＳＰカード２とを備え、このＤＳＰカード２の第１のＤＳＰ１１はＲＯＭブートした後、起動指令を通知されると、第２〜第Ｎの各ＤＳＰ１１に対して起動指令を順に発行し、第２〜第Ｎの各ＤＳＰ１１は実行プログラムを内部メモリ９の先頭番地へ読込み、ＣＰＵカード６が作成したコマンドを取得後、必要な処理を実行する。【選択図】図１
2011059787.tif 000002
【特許請求の範囲】
【請求項１】
複数のディジタル信号処理用の実行プログラムおよびそれぞれこれらの実行プログラムを起動するための複数のコマンドを含むデータファイルを記憶する第１外部記憶装置、及びこのデータファイルの転送及び起動指令の通知を行うＣＰＵを有するＣＰＵカードと、
このＣＰＵカードとバス接続されたインターフェース部、このインターフェース部を介して受信した前記データファイルを記憶する第２外部記憶装置、初期化プログラムを記憶するＲＯＭ、それぞれ内部メモリを有しこの内部メモリに前記実行プログラムを取込み所与のＤＳＰプログラムを生成して実行する複数個のＤＳＰを有するＤＳＰカードと、を備え、
このＤＳＰカードのいずれかのＤＳＰは前記ＲＯＭからブートした後、前記ＣＰＵから前記起動指令を通知されると、他のＤＳＰに対して起動指令を順に発行し、前記他のＤＳＰは前記第２外部記憶装置の前記データファイルに含まれる前記コマンドに基づき前記実行プログラムを前記内部メモリの先頭番地へ読込みこの先頭番地からこの実行プログラムを実行することを特徴とするディジタルシグナルプロセッサシステム。
【請求項２】
前記データファイルのコマンドは、前記実行プログラムのプログラム名、および前記実行プログラムに与えられるコマンドライン引数を含み、
前記他のＤＳＰは、これらのプログラム名およびコマンドライン引数に基づいて前記実行プログラムから前記ＤＳＰプログラムを生成することを特徴とする請求項１記載のディジタルシグナルプロセッサシステム。
【請求項３】
複数のディジタル信号処理用の実行プログラムおよびそれぞれこれらの実行プログラムを起動するための複数のコマンドを含むデータファイルを記憶する第１外部記憶装置、およびこのデータファイルの転送及び起動指令の通知を行うＣＰＵを有するＣＰＵカードを設けるステップと、
このＣＰＵカードとバス接続されたインターフェース部、このインターフェース部を介して受信した前記データファイルを記憶する第２外部記憶装置、初期化プログラムを記憶するＲＯＭ、それぞれ内部メモリを有しこの内部メモリに前記実行プログラムを取込み所与のＤＳＰプログラムを生成して実行する複数個のＤＳＰを有するＤＳＰカードを設けるステップと、
前記ＤＳＰカードの各ＤＳＰが前記ＲＯＭからブートし、前記初期化プログラムが起動指令待ちをするステップと、
いずれかのＤＳＰの前記初期化プログラムが起動指令を受けると、他のＤＳＰが前記第２外部記憶装置の前記データファイルに含まれる前記コマンドに基づき順番に前記実行プログラムを前記内部メモリの先頭番地へ読込みこの先頭番地からこの実行プログラムを実行するステップとを備えたことを特徴とするディジタルシグナルプロセッサの立ち上げ方法。
【請求項４】
前記ＣＰＵカードを設けるステップにおいて前記第１外部記憶装置が記憶する前記データファイルのコマンドは、前記実行プログラムのプログラム名、および前記実行プログラムに与えられるコマンドライン引数を含み、
前記実行プログラムを実行するステップにおいて、前記他のＤＳＰは、これらのプログラム名およびコマンドライン引数に基づいて前記実行プログラムから前記ＤＳＰプログラムを生成することを特徴とする請求項３記載のディジタルシグナルプロセッサの立ち上げ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はディジタルシグナルプロセッサシステムおよびディジタルシグナルプロセッサの立ち上げ方法に関する。
【背景技術】
【０００２】
図７は信号処理装置の構成例を示す図である。信号処理装置４９は、フラッシュＲＯＭを搭載した市販のＤＳＰカード５０と、このＤＳＰカード５０が装着される拡張スロット５１や図示しないマザーボードを有するパソコン５２とを備える。ＤＳＰカード５０は、Ｎ個のＤＳＰ５３と、これらのＤＳＰ５３にデータバス５４を介して接続されたＤＳＰ用のフラッシュＲＯＭ５５と、各ＤＳＰ５３の計算結果を記憶する外部メモリ５６と、パソコン５２とのインターフェース処理するＰＣＩ（Peripheral Component Interconnect）−ＤＳＰブリッジ５７とを備えている。フラッシュＲＯＭ５５は、Ｎ個のＤＳＰ５３の計算命令を記述した各プログラムを格納する。このフラッシュＲＯＭ５５から各ＤＳＰ５３は起動時に自身が実行するプログラムを読込む。
【０００３】
パソコン５２のマザーボードには、ＰＣＩ−ＤＳＰブリッジ５７に接続されるＰＣＩバス５８と、このＰＣＩバス５８に接続されるＰＣＩ−ホストブリッジ５９と、データバス６０を介してこのＰＣＩ−ホストブリッジ５９と接続されるＣＰＵ６１と、データバス６２を介してＰＣＩ−ホストブリッジ５９と接続された外部メモリ６３とが設けられている。更にＰＣＩ−ホストブリッジ５９にはデータバス６４を介してＣＰＵ６１用のフラッシュＲＯＭ６５と、ディスプレイコントローラ等の周辺デバイス６６と、ＤＳＰメーカが提供するドライバ及びアプリケーションが記憶されたＨＤＤ（ハードディスクドライブ）６７とが接続されている。ＰＣＩバス５８にはＶＭＥバス６９に接続されたＰＣＩ−ＶＭＥブリッジ６８が接続されている。
【０００４】
パソコン５２及びＤＳＰ５３の間の通信は、ＨＤＤ６７のドライバ及びアプリケーションをＣＰＵ６１が実行することにより実施される。ＤＳＰカード５０上の各ＤＳＰ５３間の通信は、各ＤＳＰ５３自身が持つ独自通信機能を用いることで行われる。
【０００５】
ＤＳＰは、信号処理に特化した様々な機能を有しているため、従来ハードウェアで構成していた多くの信号処理機能をソフトウェア化してきた。通常、ＤＳＰはＣＰＵと比べて使用可能なメモリ資源が乏しいため、ＣＰＵのような基本ソフトウェア（以下、ＯＳと呼ぶ）が利用できない。このため、ＯＳが提供するコマンドライン引数機能が、ＤＳＰに無い。従って、ＰＣであれば一本のプログラムとコマンドライン引数機能により、プログラム内の任意処理を実行できるが、コマンドライン引数機能が無いＤＳＰは、処理別にプログラムを分割する必要がある。加えて、ＤＳＰがＲＯＭブートを使用する場合、ＲＯＭ更新によってプログラムを変更する必要があった。このため、図７に示すとおり、ＤＳＰが行う信号処理は、ディジタルフィルタ処理やＦＦＴ処理などの固定した信号処理を割り当て、ＣＰＵは周辺デバイスの制御や、ＰＣＩ／ＶＭＥバスを用いたデータ転送を実行するなど、互いに補完の関係を持たせていた。
【０００６】
プロセッサによるプログラム実行技術に関しては、従来、メインプロセッサの起動後にサブプロセッサに任意のプログラムを実行させることが可能な起動制御方法が知られている（特許文献１参照）。特許文献１に記載の起動制御方法は、パーソナルコンピュータ、サーバコンピュータ、あるいは各種電子機器のための組み込みシステムにおける方法であり、起動対象は汎用ＣＰＵである。コンピュータシステムの立ち上げ手法に関しては、コンピュータシステムの機能を拡張するための回路を搭載した拡張ボードを接続可能なコンピュータシステムの立ち上げ方式が知られている（特許文献２参照）。特許文献２に記載の立ち上げ方式は、コンピュータシステムのＣＰＵ、拡張ボードのＲＯＭフォーマット仕様に関係なく、拡張ボードをコンピュータシステム立ち上げ時に使用することを可能とする。これらの特許文献１、２に記載の技術は、ＤＳＰの内部メモリのようにメモリ容量が小さいものではない。両者とも、起動対象が汎用CPUであることから、使用可能なメモリ容量はDSPの内部メモリ容量に比べて大きく、要求性能の許す範囲内でOSを使うことが可能なものである。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−９９７０４号公報
【特許文献２】特開平１０−９１４５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従来は、ＤＳＰが使用可能なメモリ容量が小さいことから、ＤＳＰ単体は単純で固定的な処理を割当て、それを複数個まとめたＤＳＰカードという単位で、目的の処理を実行させていた。従って、ＤＳＰカード上のフラッシュＲＯＭに保存するプログラムは、問題が発生しない限り固定であることから、更新する必要がなかった。つまり、ＣＰＵから見ると、ＤＳＰは演算に特化した補助プロセッサであった。また、処理規模も小さいことから、信号処理装置は市販のＤＳＰカードが１〜１０枚程度であり、実行プログラム本数も少ないため、フラッシュＲＯＭの更新も容易であった。
【０００９】
しかし、現在は、半導体技術の進歩により、ＤＳＰが使用できるメモリ容量が増え、より複雑な処理を実行できるようになった。さらに、処理規模の増大から、１台の信号処理装置で市販のＤＳＰカードを１０〜数１００枚使用する場合もでてきた。
【００１０】
一方、ＤＳＰ用のプログラムは処理内容が同一にもかかわらず、データ入力のチャネル本数や、共有メモリの割り当てアドレスなど、一部のパラメータが異なるため、それぞれ異なる実行ファイルを作成していた。このため、実行プログラムの本数が多いことから、構成管理やフラッシュＲＯＭ更新が負担になっていた。
【００１１】
そこで、本発明は、上記の事情に鑑み、ＤＳＰブート機能にコマンドライン引数機能を付加することで、似て非なる実行プログラムを一本化し、製造、維持業務の効率化を図るディジタルシグナルプロセッサシステム、及びディジタルシグナルプロセッサの立ち上げ方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
このような課題を解決するため、本発明の一態様によれば、複数のディジタル信号処理用の実行プログラムおよびそれぞれこれらの実行プログラムを起動するための複数のコマンドを含むデータファイルを記憶する第１外部記憶装置、及びこのデータファイルの転送及び起動指令の通知を行うＣＰＵを有するＣＰＵカードと、このＣＰＵカードとバス接続されたインターフェース部、このインターフェース部を介して受信した前記データファイルを記憶する第２外部記憶装置、初期化プログラムを記憶するＲＯＭ、それぞれ内部メモリを有しこの内部メモリに前記実行プログラムを取込み所与のＤＳＰプログラムを生成して実行する複数個のＤＳＰを有するＤＳＰカードと、を備え、このＤＳＰカードのいずれかのＤＳＰは前記ＲＯＭからブートした後、前記ＣＰＵから前記起動指令を通知されると、他のＤＳＰに対して起動指令を順に発行し、前記他のＤＳＰは前記第２外部記憶装置の前記データファイルに含まれる前記コマンドに基づき前記実行プログラムを前記内部メモリの先頭番地へ読込みこの先頭番地からこの実行プログラムを実行することを特徴とするディジタルシグナルプロセッサシステムが提供される。
【００１３】
また、本発明の別の一態様によれば、複数のディジタル信号処理用の実行プログラムおよびそれぞれこれらの実行プログラムを起動するための複数のコマンドを含むデータファイルを記憶する第１外部記憶装置、およびこのデータファイルの転送及び起動指令の通知を行うＣＰＵを有するＣＰＵカードを設けるステップと、このＣＰＵカードとバス接続されたインターフェース部、このインターフェース部を介して受信した前記データファイルを記憶する第２外部記憶装置、初期化プログラムを記憶するＲＯＭ、それぞれ内部メモリを有しこの内部メモリに前記実行プログラムを取込み所与のＤＳＰプログラムを生成して実行する複数個のＤＳＰを有するＤＳＰカードを設けるステップと、前記ＤＳＰカードの各ＤＳＰが前記ＲＯＭからブートし、前記初期化プログラムが起動指令待ちをするステップと、いずれかのＤＳＰの前記初期化プログラムが起動指令を受けると、他のＤＳＰが前記第２外部記憶装置の前記データファイルに含まれる前記コマンドに基づき順番に前記実行プログラムを前記内部メモリの先頭番地へ読込みこの先頭番地からこの実行プログラムを実行するステップとを備えたことを特徴とするディジタルシグナルプロセッサの立ち上げ方法が提供される。
【発明の効果】
【００１４】
本発明によれば、同一処理にもかかわらず、共有メモリベースアドレスや入出力チャネル数が異なる場合でも実行ファイルを一本化することが可能となり、その製造や維持が容易となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態に係るディジタルシグナルプロセッサシステムを含む信号処理システムの構成図である。
【図２】（ａ）はブート用データファイルのファイル構造を示す図であり、（ｂ）は文字列データの一例を示す図である。
【図３】スレーブＤＳＰのブート方法を説明するためのフローチャートである。
【図４】マスタＤＳＰのブート方法を説明するためのフローチャートである。
【図５】ホストＣＰＵによるＤＳＰカードに対するブート制御手順を説明するための第１のフローチャートである。
【図６】ホストＣＰＵによるＤＳＰカードに対するブート制御手順を説明するための第２のフローチャートである。
【図７】従来の信号処理装置の構成例を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態に係るディジタルシグナルプロセッサシステムおよびディジタルシグナルプロセッサの立ち上げ方法について、図１乃至図６を参照しながら説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。
【００１７】
本発明の実施の形態に係るディジタルシグナルプロセッサシステムは信号処理システムであり、それぞれが複数個のＤＳＰを設けた複数枚のＤＳＰカードと、ＣＰＵを設けたＣＰＵカードと、Ｉ／Ｏ用のカードとがバックプレーンに装着されて構成されている。この信号処理システムは、いずれかのＤＳＰカードに入力された入力データに対して、各ＤＳＰカードの各ＤＳＰが、これらのＤＳＰに割当てられた信号処理演算を実行することによって、信号処理演算結果をいずれか他のＤＳＰカードから出力するようにしている。
【００１８】
信号処理システムの構成は、箱状のシャーシと、このシャーシの背面側に設けられＶＭＥバスをシャーシ内側の面上に布線したバックプレーンと、それぞれこのバックプレーン上に面上等間隔に配列して設けられた複数個のコネクタと、これらのコネクタのうちの最左端側のコネクタに差込まれたＣＰＵカードと、このＣＰＵカードが差込まれたコネクタ以外の他のコネクタに差込まれた複数枚のＤＳＰカードとから成る。
【００１９】
シャーシの天井板の内側面、底板の内側面、各コネクタ口、及びシャーシ正面側開口端面によって囲まれる空間がスロットを形成し、各スロットにＣＰＵカード及びＤＳＰカードが挿入される。ＣＰＵカードと各ＤＳＰカードとがそれぞれのスロットに装着されることにより、これらのＣＰＵカード及び複数のＤＳＰカードはＶＭＥバスに収容接続されるようになっている。
【００２０】
また、本実施形態に係るディジタルシグナルプロセッサの立ち上げ方法は、複数のＤＳＰカード間でほぼ同じデータ構造を有する１種類のブート用データファイルを用いて、ＣＰＵがこれらのＤＳＰカード上の複数個のＤＳＰを再起動させるための方法である。このブート用データファイルは、起動用プログラムであるＩＰＬ（Ｉｎｉｔｉａｌ  Ｐｒｏｇｒａｍ  Ｌｏａｄｅｒ）と、複数個のＤＳＰ個別の実行プログラムと、後述する引数とを含む。
【００２１】
ＣＰＵが各ＤＳＰカードに対してブート用データファイルを送り、ＤＳＰカード側のいずれかのＤＳＰが他のＤＳＰを呼び、他のＤＳＰがブート完了後、この引数に基づき処理を継続する。ＣＰＵが転送するブート用データファイルの転送先は、１枚のＤＳＰカード又は複数例えば２０枚分のＤＳＰカード全てである。
【００２２】
図１は信号処理システムの構成図である。信号処理システム１は、それぞれＤＳＰプログラムを実行するＮ枚のＤＳＰカード２と、これらのＤＳＰカード２が接続されるＶＭＥバス３と、このＶＭＥバス３に接続されたホストＣＰＵ４及び外部記憶装置５（第１外部記憶装置）を有するＣＰＵカード６とを備えている。信号処理システム１には、システム外の制御装置７と通信する入出力用のＩＯカード８が接続されている。
【００２３】
ＤＳＰカード２はフラッシュメモリを搭載しており、このフラッシュメモリから信号処理演算用の実行ファイルを読込み、ディジタルフィルタ処理やＦＦＴ処理などの信号処理演算を行う。ＤＳＰカード２は、それぞれ内部メモリ９及びＤＭＡコントローラ１０を持つＮ個（Ｎは例えば５）のＤＳＰ１１と、各ＤＭＡコントローラ１０に接続される第１のデータバス１２と、このデータバス１２に接続されたバスプロトコル変換機能部１３（インターフェース部）と、このバスプロトコル変換機能部１３に第２のデータバス１４を介して接続された外部記憶装置１５（第２外部記憶装置）と、バスプロトコル変換機能部１３に第３のデータバス１６を介して接続されたフラッシュＲＯＭ１７（ＲＯＭ）と、このデータバス１６に接続された低速周辺デバイス１８とを備えている。更にＤＳＰカード２は、バスプロトコル変換機能部１３に第４のデータバス１９を介して接続された高速周辺デバイス２０と、このデータバス１９に接続されたＶＭＥ−ＰＣＩブリッジ２１とを備えている。
【００２４】
各ＤＳＰ１１の内部メモリ９は小容量の記憶領域を有する。これらのプロセッサ内部の内部メモリ９はプログラム及びデータを格納する。ＤＳＰ１１は内部メモリ９に実行ファイルを取込み、実行する。ＤＭＡコントローラ１０はこの内部メモリ９に記憶されるデータをＤＭＡ転送するものである。ＤＳＰ＿１〜ＤＳＰ＿ＮはＮ個のＤＳＰ１１を表す。
【００２５】
バスプロトコル変換機能部１３はバス幅やデータ転送単位が異なるデータバス１２、１４、１６、１９の間で、これらのバスのプロトコルに応じてデータをプロトコル変換してから転送するバスブリッジとして機能する。
【００２６】
このバスプロトコル変換機能部１３には図示しない複数のレジスタが実装されている。いずれかのレジスタはカード識別情報を保持する。このカード識別情報は、ＶＭＥバス３を介してホストＣＰＵ４によって読出され収集されるようにされている。ホストＣＰＵ４は各ＤＳＰカード２から得られるカード識別情報によってＤＳＰカード２を識別可能になっている。
【００２７】
外部記憶装置１５はホストＣＰＵ４からのソフトウェアファイルを記憶する揮発性の記憶装置である。信号処理システム１では、この外部記憶装置１５が起動用のメモリとしてブート用のプログラムを各ＤＳＰ１１に渡す。外部記憶装置１５にはページメモリのような大容量のメモリが用いられている。
【００２８】
フラッシュＲＯＭ１７は、各ＤＳＰ１１の初期化プログラムを保持する。各プログラムはＤＳＰカード２に電源が投入されたときに、各ＤＭＡコントローラ１０によりそれぞれの内部メモリ９へ転送されるようになっている。本実施形態では、信号処理用のプログラムは、ＣＰＵカード６からＤＳＰカード２へ転送された後、第１のＤＳＰ１１によって他のＤＳＰ１１へ分配される。各ＤＳＰ１１は、分配されたプログラムの計算命令にしたがって割当てられたＤＳＰソフトウェアの演算処理を行うようになっている。
【００２９】
低速周辺デバイス１８は、メッセージ出力用のデバイスである。例えば低速周辺デバイス１８は、各ＤＳＰ１１から出力されるパラレルのメッセージを受信しそれぞれのメッセージのシリアルデータを出力する。データバス１９はＰＣＩバスである。高速周辺デバイス２０は高い転送速度でデータ転送を行う。ＶＭＥ−ＰＣＩブリッジ２１はＶＭＥバス３、データバス１９間をインターフェース処理する。
【００３０】
ＤＳＰカード２は、同一種のＤＳＰ１１、及び複数個のＤＳＰＩＣから構成されていることから、ブート対象のＤＳＰ１１は１個または複数Ｎ個存在する。Ｎ枚のＤＳＰカード２の構成はいずれも同じである。これらのＤＳＰカード２はともに同一のＶＭＥバックプレーンを共有している。
【００３１】
また、ＣＰＵカード６の外部記憶装置５は、それぞれＮ枚のＤＳＰカード２の５個のＤＳＰ１１用の５×Ｎ個の実行ファイルと、ホストＣＰＵ４が実行するプログラムとを格納する。外部記憶装置５には記憶容量の大きいメモリが用いられる。この外部記憶装置５に記憶されたアプリケーションプログラムは、１枚のＤＳＰカード２について、５個のＤＳＰ１１用の実行ファイルを、これらの実行ファイルの相対アドレス位置を示す引数と一緒にまとめた一種類のブート用データファイルを作成し、作成したブート用データファイルを外部記憶装置５に保存しておくようにしている。このアプリケーションプログラムは、Ｎ枚の全てのＤＳＰカード２について、これらのＤＳＰカード上の５個のＤＳＰ１１用の実行ファイル及び引数をまとめたブート用データファイルを作成し、Ｎ枚全てのＤＳＰカード２に送るようになっている。
【００３２】
アプリケーションプログラムは、Ｎ枚のＤＳＰカード２の各種情報の収集と、これらのＤＳＰカード２への起動指令の通知との各機能も有する。このアプリケーションプログラムは、Ｎ枚のＤＳＰカード２のカード識別情報を収集し、バックプレーンに装着されたＤＳＰカード２の全てに対し、起動指令を出力可能になっている。
【００３３】
図２（ａ）はブート用データファイルのファイル構造を示す図であり、いずれか１枚のＤＳＰカード２へ転送されるファイル例が示されている。ブート用データファイル２２は、各ＤＳＰ１１用の実行ファイル（ディジタル信号処理用の実行プログラム）を記憶する領域２３と、全ＤＳＰ１１間で共通のＩＰＬ２４と、各ＤＳＰ１１用のコマンドライン引数を記憶する領域２５とに分かれている。各コマンドライン引数は実行プログラムを起動するためのコマンドの一つとして機能する。
【００３４】
各実行ファイルは領域２３の各サブ領域に記憶されている。これらの実行ファイルは、各ＤＳＰ１１により解釈されて実行される信号処理演算用のコードである。ＩＰＬ２４は一定のバイト数から構成されるブート用制御プログラムである。ＩＰＬ２４にはＤＳＰメーカが提供するプログラムが用いられている。領域２５の各サブ領域内には文字列データが記憶されている。文字列はホストＣＰＵ４からＤＳＰ１１へ与えられる指令を表す。
【００３５】
図２（ｂ）は文字列データの一例を示す図であり、領域２５中の０番目のＤＳＰ１１（ＤＳＰ＿０）用のサブ領域内の文字列データが示されている。同図には、ＶＭＥブートの起動文字列が例えば“ｔｅｓｔ  −ｎ  ５０  −ｂ”とした場合において、この起動文字列中の各文字が格納されるアドレスと、各文字の相対アドレスとが示されている。“ｔｅｓｔ”は実行ファイル名（実行プログラムのプログラム名）である。“−ｎ  ５０  −ｂ”は例えばあるサブルーチン処理を５０回繰り返す旨を指定する情報である。実行ファイル名から１個空けてスペースが記述されている。起動文字列には、ブート用データファイル２２内における先頭番地０ｘ００００００００に対する各実行ファイルの相対的番地が含まれる。各ＤＳＰ１１は、これらの実行ファイル名、コマンドライン引数に基づいて実行ファイルからＤＳＰプログラムを生成するようになっている。
【００３６】
ホストＣＰＵ４は文字データを８ビット単位で処理可能である。ホストＣＰＵ４は１バイトの文字データを１文字ずつ扱えるため、４文字分の文字データを３２ビット幅の１本の演算レジスタに格納して演算する。ＤＳＰ１１はデータを３２ビット単位で処理するため、同じ４文字分の文字データを３２ビット幅の４本の演算レジスタに格納して演算を行う。仕様上、ＤＳＰ１１は３２ビット幅の演算レジスタのうち、ＬＳＢ側８ビットを使う。
【００３７】
本実施形態では、予めホストＣＰＵ４が文字列データをＤＳＰ１１が直接読込可能なフォーマットに変換しておく。ホストＣＰＵ４は、図２（ａ）に示すとおり、変換後の文字列データと、各文字列データの相対アドレス位置を示す引数と、ＤＳＰ１１用の実行ファイルとを一つにまとめたブート用データファイル２２を作成しておく。ＤＳＰカード２は、このブート用データファイル２２を起動指令としてホストＣＰＵ４から受信すると、ブート用データファイル２２から引数を抽出し、引数が示す相対アドレス位置に存在する文字データを順番に取出して実行するようにしている。各ＤＳＰ１１の数だけ、ＤＳＰ１１毎にＤＳＰ１１の数だけ異なる引数を与えることができるようにされている。
【００３８】
ＤＳＰ１１が実行可能なプログラムのソースコードでは、ホストＣＰＵ４と異なり、文字型変数のビット幅が32bit幅である。このため、ホストＣＰＵ４は、コマンドライン引数を8bitから32bitにフォーマット変換すると共に、ａｒｖｇ領域に保存される相対アドレスデータを、ＤＳＰ１１に併せた32bitワードアドレスとして格納するようにしている。
【００３９】
ａｒｇｃ及び＊ａｒｇｖ[]はＣ言語ソースコード中のメイン関数ｍａｉｎ（）において用いられる引数の例と同じである。ａｒｇｃは、コマンドラインから入力されるパラメータの個数を格納する整数型の変数である。＊ａｒｇｖ［］は、コマンドラインから入力されるパラメータを格納するキャラクタ型のポインタ配列である。引数をコンソール入力する場合の例について述べると、実行ファイル名がｔｅｓｔである場合、“ｔｅｓｔ  −ｎ  ５０  −ｂ”に含まれるパラメータの数は、“ｔｅｓｔ”、“−ｎ”、“５０”、“−ｂ”の４つであるため、ａｒｇｃには値“４”が格納される。配列ａｒｇｖ［］の第０番目（＝ａｒｇｖ［０］）には文字列“ｔｅｓｔ”のアドレスが格納される。第１番目（＝ａｒｇｖ［１］）には文字列“−ｎ”のアドレスが格納される。第２番目（＝ａｒｇｖ［２］）には文字列“５０”のアドレスが格納される。第３番目（＝ａｒｇｖ［３］）には文字列“−ｂ”のアドレスが格納される。
【００４０】
本実施形態に係る信号処理システム１では、＊ａｒｇｖ［０］が、文字列“ｔｅｓｔ”中の先頭の文字“ｔ”のアドレスを示すようにしている。文字“ｔ”のアドレスがａｒｇｃを起点にした相対アドレスにより表されるようにされている。相対アドレスがワード単位で指定されるようにされている。ユーザが設定するコマンドライン引数のデータがホストＣＰＵ４において８ビット幅から３２ビット幅に延ばされ、３２ビット幅にされたコマンドライン引数データがＤＳＰ１１において解釈されるようになっている。ＤＳＰカード２側に、この記述を解釈する機能を実装することによって、ファイル名及び引数をコンソール入力する例と同じように、信号処理システム１に、パラメータの受け渡し機能を実現させるようになっている。
【００４１】
また、本実施形態に係るディジタルシグナルプロセッサの立ち上げ方法は、ＤＳＰカード２側で各ＤＳＰ１１がＲＯＭブートし、初期化プログラムが起動指令待ちを行い、第１のＤＳＰ１１の初期化プログラムが起動指令を受けると、他の第２〜第Ｎの各ＤＳＰ１１が順番に実行ファイルを内部メモリ９の先頭番地へ読込みこの先頭番地からこの実行プログラムを実行するものである。
【００４２】
上述の構成の本実施形態に係る信号処理システム１のＤＳＰカード２における第１のＤＳＰ１１（ＤＳＰ＿１）から第ＮのＤＳＰ１１（ＤＳＰ＿Ｎ）を再起動させるための動作フローチャートを、図３から図６を参照して説明する。この信号処理システム１は、第１のＤＳＰ１１はマスタＤＳＰとして機能させ、第２のＤＳＰ１１〜第ＮのＤＳＰ１１はいずれもスレーブＤＳＰとして機能させるようにしている。例えば５個のＤＳＰＩＣに設けられた複数本のＩＣピンの論理値をＤＳＰ１１自身が読込むことにより、各ＤＳＰ１１はマスタ又はスレーブとして動作する。第２のＤＳＰ１１（ＤＳＰ＿２）から第ＮのＤＳＰ１１のブート方法を図３に示す。
【００４３】
（１）第２のＤＳＰ１１〜第ＮのＤＳＰ１１の各ブート方法
図３は第２のＤＳＰ１１のブート方法を説明するためのフローチャートである。ステップＡ１において第２のＤＳＰ１１へ電源が投入される。ステップＡ２において図１（１）に示すとおりこのＤＳＰ１１はフラッシュＲＯＭ１７より初期設定用のプログラムを内部メモリ９にロードする。
【００４４】
ステップＡ３において、第２のＤＳＰ１１は第１のＤＳＰ１１が発行する起動指令を待つ。このとき、第２のＤＳＰ１１はデータバス１２へのアクセス、及び外部記憶装置１５へのアクセスのいずれも行わない。起動指令を第２のＤＳＰ１１が受信しない間はＮＯルートを通り、このＤＳＰ１１は待ち続ける。
【００４５】
ステップＡ３において、第２のＤＳＰ１１が第１のＤＳＰ１１より起動指令を受信した場合、ＹＥＳルートを通り、ステップＡ４において、図１（５）に示すとおり、第２のＤＳＰ１１は、外部記憶装置１５に格納されたプログラムを内部メモリ９へ読込む。第２のＤＳＰ１１は、読込んだ先頭番地にジャンプしてプログラムを実行する。
【００４６】
第２のＤＳＰ１１はプログラムを読込むに先立って準備を行う。即ち、第２のＤＳＰ１１が読込んだプログラムに自分自身の実行を移すため、ＤＭＡコントローラ１０の転送完了割込みベクタを内部メモリ９の先頭番地に設定する。また、第２のＤＳＰ１１は自分自身の動作を一旦停止する。この準備が終わったら、第２のＤＳＰ１１はＤＭＡコントローラ１０を起動し、自身を停止状態にする。ＤＭＡコントローラ１０は、設定に従って内部メモリ９へプログラムの転送を行う。転送を完了するとＤＭＡコントローラ１０は転送完了割込みベクタを内部メモリ９の先頭番地に設定する。第２のＤＳＰ１１はＤＭＡ転送完了割込みを受けてプログラムの再起動を行う。
【００４７】
ステップＡ５では、第２のＤＳＰ１１は、新たなプログラムを実行した際、外部記憶装置１５の記憶領域内に設けられたコマンドライン引数領域のアドレスから引数データを取得し、その内容に従った処理を実行する。
【００４８】
第３のＤＳＰ１１〜第ＮのＤＳＰ１１のブート方法も、第２のＤＳＰ１１のブート方法と同じである。
【００４９】
このように、第２〜第Ｎの各ＤＳＰ１１における立ち上げ方式は、ROMブートされたプログラムが、続いて実行すべきプログラムをプログラム格納用の内部メモリ９の先頭番地へ読込み、その後、先頭番地から次プログラムの読込みと実行とを行う。これらのプロセッサ内部のプログラム格納領域が有効利用される。
【００５０】
（２）第１のＤＳＰ１１（ＤＳＰ＿１）のブート方法
図４は第１のＤＳＰ１１のブート方法を説明するための図である。図４（ａ）のステップＢ１において、マスタである第１のＤＳＰ１１へ電源が投入される。ステップＢ２において、このＤＳＰ１１は、図１（１）に示すとおり、フラッシュＲＯＭ１７からプログラムを読込み起動する。起動後、ステップＢ３において、ＣＰＵカード６が発行する起動指令を待つ。このとき、ＤＳＰ１１はデータバス１２及び外部記憶装置１５のいずれへもアクセスしない。ステップＢ３において、起動指令を第１のＤＳＰ１１が受信しない間はＮＯルートを通り、待機を続ける。
【００５１】
一方、バスプロトコル変換機能部１３のバスプロトコル変換機能により、ＣＰＵカード６は、ＤＳＰカード２の外部記憶装置１５や、ＤＳＰカード２内のバスを意識せず、ＣＰＵカード６自身が属するデータバスであるＶＭＥバス３を用いてプログラムとコマンドライン引数データとを転送する。ＣＰＵカード６は、プログラムとコマンドライン引数データとの転送を完了した時点で、図１（３）に示すとおり、第１のＤＳＰ１１へ起動指令を出力する。
【００５２】
ステップＢ３において、起動指令を第１のＤＳＰ１１が受信した場合、ＹＥＳルートを通り、ステップＢ４に進み、Ｎ個の実行ファイル２３及び１個のＩＰＬ２４（プログラム部）と、Ｎ個のコマンドライン引数とを各々外部記憶装置１５のＮ箇所の決められた記憶領域へコピーする。第１のＤＳＰ１１は、Ｎ個のＤＳＰ１１についてそれぞれ実行ファイル２３及びコマンドライン引数をコピーした先の記憶領域のアドレス値を記憶する。
【００５３】
ステップＢ５において、第１のＤＳＰ１１は、コマンドライン引数データによって示されるargv[0］〜ａｒｇｖ［N]の相対アドレスに、外部記憶装置１５へ転送した後のアドレス値をそれぞれ加算する。第１のＤＳＰ１１はＮ個の相対アドレスにＮ個のアドレス値を加算することで、Ｎ個のＤＳＰ１１がそれぞれアクセス可能なＮ個の絶対アドレスを算出し、これを設定する。
【００５４】
その後、図４（ｂ）のステップＢ６において、第１のＤＳＰ１１は繰り返し変数ｉ（ｉ＜Ｎ）をＤＳＰ数Ｎに設定し、ステップＢ７において、この第１のＤＳＰ１１はｉ番目のＤＳＰ１１が再ブートされる対象のＤＳＰ１１であるかどうかを判定する。ｉ番目のＤＳＰ１１が再ブート対象のＤＳＰ１１である場合、ＹＥＳルートを通り、ステップＢ８において、第１のＤＳＰ１１はｉ番目のＤＳＰ１１に対し、起動指令を発行する。再ブート対象でないＤＳＰ１１については、ステップＢ７においてＮＯルートを通り、ステップＢ９に進む。
【００５５】
ステップＢ８において、図１（４）に示すとおり、第１のＤＳＰ１１は、ＤＳＰカード２内の他のＤＳＰ１１へ起動指令を出力する。このとき、第２〜第Ｎの各ＤＳＰ１１は、データバス１２及び外部記憶装置１５のいずれにもアクセスしていないので、起動指令を第１のＤＳＰ１１が出力する際、データバス１２の排他制御を考慮しなくて良い。
【００５６】
第２〜第Ｎの各ＤＳＰ１１は、第１のＤＳＰ１１から起動指令を受信した後、図１（５）に示すとおり、外部記憶装置１５に格納されたプログラムをそれぞれの内部メモリ９へ読込む。第２〜第Ｎの各ＤＳＰ１１は、プログラムとして各実行ファイルを取込む。第２〜第Ｎの各ＤＳＰ１１は、読込んだ各先頭番地にジャンプしてプログラムを実行する。第２〜第Ｎの各ＤＳＰ１１は、外部記憶装置１５の記憶領域内に設けられたコマンドライン引数用の領域２５のアドレスから引数データを取得し、その内容に従った処理を実行する。
【００５７】
最後に、ステップＢ１０において、第１のＤＳＰ１１は、図１（５）に示すとおり、外部記憶装置１５に格納されたプログラムを自己の内部メモリ９へ読込み、読込んだ先頭番地にジャンプしてプログラムを実行する。
【００５８】
第１のＤＳＰ１１によるプログラムの読込みは、ＤＳＰ１１が内蔵するＤＭＡコントローラ１０を用いると共に、このＤＳＰ１１自身を一旦停止する。さらに、第１のＤＳＰ１１は、読込んだプログラムを自身に実行させるため、ＤＭＡコントローラ１０の転送完了割込みベクタを内部メモリ９の先頭番地に設定する。この準備が終わったら、第１のＤＳＰ１１はＤＭＡコントローラ１０を起動し、ＤＳＰ１１自身を停止状態にする。ＤＭＡコントローラ１０は、設定に従って内部メモリ９へプログラムの転送を行う。第１のＤＳＰ１１はＤＭＡ転送完了割込みを受けてプログラムの再起動を実施する。
【００５９】
ステップＢ１１において、第１のＤＳＰ１１は、他ＤＳＰ１１と同様、外部記憶装置１５内の領域２５のアドレスから引数データを取得し、その内容に従った処理を実行する。
【００６０】
このように、第１のＤＳＰ１１における立ち上げ方式は、ROMブートされたプログラムが、続いて実行すべきプログラムを内部メモリ９の先頭番地へ読込み、その後、先頭番地から次プログラムの読込みと実行とを行う。このプロセッサ内部のプログラム格納領域が有効利用される。
【００６１】
（３）ＣＰＵカード６によるＤＳＰカード２の起動方法
ＣＰＵカード６がＤＳＰカード２を起動するための制御方法について図５及び図６を参照して説明する。図５及び図６は、ホストＣＰＵ４によるＤＳＰカード２に対するブート制御手順を説明するためのフローチャートである。
【００６２】
図５（ａ）にて処理が開始される。ホストＣＰＵ４も自分自身のハードウェアの設定など必要な処理を実行する必要があるため、ＣＰＵカード６のＲＯＭ６ａから立ち上がり、必要な処理を行う。
【００６３】
ステップＣ１においてホストＣＰＵ４はブートを開始するかどうかの判定を行う。一例として、予め設計されたシーケンスで定められたタイミングでブート指令が出力されることによりブートが開始する。或いは人の操作に基づきアプリケーションプログラムがブート指令を出すことによりブートが開始する。そのタイミング条件が満たされなければホストＣＰＵ４は待ち続ける（ステップＣ１のＮＯルート）。タイミング条件が満たされたとホストＣＰＵ４が判定すると、ＹＥＳルートを通り、ホストＣＰＵ４はＤＳＰカード２のブートを開始する。
【００６４】
以下のステップＣ３からステップＣ６において、ＣＰＵカード６は、あらかじめ外部記憶装置５に保存してある、コマンドライン引数を示す文字列データについて、全ＤＳＰ１１が直接読込み可能なフォーマットに変換する。このフォーマット変換用のソフトウェアは予めＣＰＵカード６の外部記憶装置５に記憶されている。ステップＣ２において、ホストＣＰＵ４は繰り返し変数ｊ（ｊ＜Ｎ）を、例えば２０本にセットする。
【００６５】
次に、ステップＣ３において、ホストＣＰＵ４は、外部記憶装置５のデータ領域より、プログラムデータｊを読込む。ステップＣ４において、ホストＣＰＵ４は、データ領域より、コマンドライン引数データｊを読込む。ステップＣ５において、ホストＣＰＵ４は、文字列データを、各ＤＳＰ１１が受領することが可能なデータ形式のコマンドライン引数に変換する。その後、ステップＣ６において、図２に示すとおり、変換後の文字列データとＤＳＰ１１用実行ファイルプログラムとを一つにまとめた、ブート用データファイル２２をホストＣＰＵ４は作成する。ステップＣ７において繰り返し変数ｉがＤＳＰカード２のカード枚数分にセットされる。ステップＣ８において、図１（２）に示すとおり、ホストＣＰＵ４は、ＶＭＥバス３経由でＤＳＰカード２内の外部記憶装置１５に、ブート用データファイル２２をプログラムデータｊとして転送する。ステップＣ９において、繰り返し変数ｉがインクリメントされる。
【００６６】
ブート用データファイル２２はＤＳＰカード２において高速周辺デバイス２０を介して外部記憶装置１５に書込まれる。
【００６７】
また、バスプロトコル変換機能部１３のバスプロトコル変換機能により、ＣＰＵカード６は、ＤＳＰカード２の外部記憶装置１５や、ＤＳＰカード２内のバスを意識せず、バスプロトコル変換機能部１３自身が属するデータバス１９や、データバス１６を用いてプログラムの転送を行える。
【００６８】
引き続き、ホストＣＰＵ４は、ブート用データファイル２２の転送が完了した時点で、図６（ａ）のステップＣ１０においてホストＣＰＵ４は繰り返し変数ｉをＤＳＰカード２の枚数としてセットし、ステップＣ１１において、図１（３）に示すとおり、第１のＤＳＰ１１へ起動指令を出力する。ステップＣ１２においてホストＣＰＵ４はインクリメント処理を行った後、ステップＣ１０に戻り、全てのＤＳＰカード２に対して起動指令を通知する。
【００６９】
以下のステップＣ１３からステップＣ１５までの処理において、ホストＣＰＵ４は、各ＤＳＰカード２がブート完了時に出力するアンサーをこれらのＤＳＰカード２から取得する。ホストＣＰＵ４はＤＳＰカード２の枚数を変数ｉにセットし（ステップＣ１３）、このｉ番目のＤＳＰカード２がブート完了かどうかを判定する（ステップＣ１４）。ブート失敗の場合はＮＯルートを通り、ブート成功の場合はＹＥＳルートを通り、インクリメント処理を行う（ステップＣ１５）。
【００７０】
ホストＣＰＵ４からＤＳＰカード２へのプログラムの転送の完了と、ホストＣＰＵ４からＤＳＰカード２への再ブート開始指令とが、時間的に連続するよう、このホストＣＰＵ４のアプリケーションプログラムは指令を出す。５個のＤＳＰ１１が再ブートした時は、ホストＣＰＵ４はデータバス２へのアクセスを完了しているため、再ブートは問題なく行われる。ブートに使用するプログラム数に応じて、これらの処理を繰り返すこともできる。図５（ａ）のステップＣ２に対応する繰り返し処理は図６（ｂ）のステップＣ１６において終える。
【００７１】
最後に、図６（ｂ）のステップＣ１７において、ホストＣＰＵ４は自分自身を起動し、処理を実行する。
【００７２】
以上を総括すると、ホストＣＰＵ４はカード識別情報によりシャーシに装着された各ＤＳＰカード２のカード枚数を予め得ており、実行ファイルと、コマンドライン引数とを１パックにして作成したブート用データファイルを各スロットに転送する。各ＤＳＰカード２上の５個のＤＳＰ１１は初期化プログラムを起動指令を受けるよりも先にロードしておき、初期化処理を済ませ、ホストＣＰＵ４からの起動指令を通知されることを待っている。起動通知命令をマスタのＤＳＰ１１が受けると、このマスタのＤＳＰ１１は、外部記憶装置１５のブート用データファイル２２を読込み、各引数を元に５個分の実行ファイルの格納アドレスを生成し、全ＤＳＰ１１が解釈可能な形式の実行ファイルデータにフォーマット変換する。マスタのＤＳＰ１１は５個の実行ファイルデータの並び替えを行い、スレーブＤＳＰ１１に起動指令を発行する。これにより、全てのＤＳＰ１１が起動する。
【００７３】
同様に、信号処理システム１のシャーシに装着された全てのＤＳＰカード２について、ホストＣＰＵ４は、ブート用データファイル２２を転送し起動開始指令を出す。これにより、全てのＤＳＰカード２が起動する。ホストＣＰＵ４は、全てのＤＳＰカード２が起動したことを確認した後、ＣＰＵカード６自身に必要なカード処理を開始する。このようにして、信号処理システム１は立ち上がり、信号処理システム１のモードが運用モードになる。この状態で、信号処理システム１はディジタルフィルタ処理やＦＦＴ処理などの信号処理演算を行う。
【００７４】
例えば産業用機器として用いられる信号処理システム１は数十台のシャーシを結線し、数百枚のＤＳＰカード２から構成されるＤＳＰ構成をとることがある。各ＤＳＰカード２に搭載されるＤＳＰ１１の演算プログラムや起動プログラムを作成した後、これらのプログラムを全てのＤＳＰ１１に漏れなく確実に実装する場合、ソフトウェアの種類が一本で済むことによって全てのＤＳＰカード２の試験や確認作業の作業効率を大幅に向上させることができる。１種類のソフトウェア内に予め各ＤＳＰ１１毎の引数を記述しておき、このソフトウェアをＣＰＵ４から一括して全てのＤＳＰカード２へ与え、これらのＤＳＰカード２上で処理を分岐させるという仕組みが実現できる。
【００７５】
本実施形態に係る信号処理システム１によれば、ソフトウェアが１本化されているため、このソフトウェア内に、ＤＳＰカード２のカード番号によって個別に入力チャネルのイネーブル／ディスイネーブル処理を記述しておくこともできる。これにより、ＤＳＰの起動システムにより製造コストを低減させることができるようになる。
【００７６】
このようにして、本実施形態に係るディジタルシグナルプロセッサシステムおよびディジタルシグナルプロセッサの立ち上げ方法によれば、ＤＳＰカード２と同一のＶＭＥバックプレーンを共有するホストＣＰＵ４によって、対象となるＤＳＰカード２の各ＤＳＰ１１に対して、ＤＳＰ固有のコマンドライン引数及び実行ファイルを与えることが出来るようになる。
【００７７】
このため、１種類の実行プログラムと、それぞれ異なるコマンドライン引数とを用いることで、複雑な周辺デバイスの設定処理や計算に用いる大量の初期値データ作成など、様々な処理を選択的に実行できるようになる。また、実行プログラム種類の数が最低限で済むことから、製造や、維持管理が省力化できるようになる。
【００７８】
尚、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。上記の実施形態での文字列データは種々変更可能である。
【００７９】
また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【符号の説明】
【００８０】
１…信号処理システム（ディジタルシグナルプロセッサシステム）、２…ＤＳＰカード、３…ＶＭＥバス、４…ホストＣＰＵ（ＣＰＵ）、５…外部記憶装置（第１外部記憶装置）、６…ＣＰＵカード、６ａ…ＲＯＭ、７…制御装置、８…ＩＯカード、９…内部メモリ、１０…ＤＭＡコントローラ、１１…ＤＳＰ、１２，１４，１６，１９…データバス、１３…バスプロトコル変換機能部（インターフェース部）、１５…外部記憶装置（第２外部記憶装置）、１７…フラッシュＲＯＭ（ＲＯＭ）、１８…低速周辺デバイス、２０…高速周辺デバイス、２１…ＶＭＥ−ＰＣＩブリッジ、２２…ブート用データファイル、２３，２５…領域、２４…ＩＰＬ。
【図１】
2011059787.tif 000003
【図２】
2011059787.tif 000004
【図３】
2011059787.tif 000005
【図４】
2011059787.tif 000006
【図５】
2011059787.tif 000007
【図６】
2011059787.tif 000008
【図７】
2011059787.tif 000009