JP2014021540A - ディジタルシグナルプロセッサシステム、ディジタルシグナルプロセッサシステム起動装置およびディジタルシグナルプロセッサのブート方法 - Google Patents

ディジタルシグナルプロセッサシステム、ディジタルシグナルプロセッサシステム起動装置およびディジタルシグナルプロセッサのブート方法 Download PDF

Info

Publication number
JP2014021540A
JP2014021540A JP2012156548A JP2012156548A JP2014021540A JP 2014021540 A JP2014021540 A JP 2014021540A JP 2012156548 A JP2012156548 A JP 2012156548A JP 2012156548 A JP2012156548 A JP 2012156548A JP 2014021540 A JP2014021540 A JP 2014021540A
Authority
JP
Japan
Prior art keywords
dsp
card
data file
digital signal
cards
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012156548A
Other languages
English (en)
Inventor
Noriyuki Ogawa
憲之 小川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2012156548A priority Critical patent/JP2014021540A/ja
Publication of JP2014021540A publication Critical patent/JP2014021540A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】互換性のない複数種のDSPカードを用いると、プログラム更新のコストが高い。
【解決手段】一実施形態によれば、複数のDSPICの各DSP種別の情報およびDSP種別間で実行の互換性のない複数種類の実行プログラムを対応付けしたデータファイルをDSP種別毎に記憶する記録媒体13と、記録媒体13のデータファイルがロードされる記憶装置20、内部メモリ21を持つDSP23およびバスブリッジ27を有するDSPカード11と、このDSPカード11と同じ構成のDSPカード12と、DSPカード11、12へ記録媒体13からのデータファイルを送信するホストCPU15と、ホストCPU15に、何れかのDSPカード11、12上のDSP23、33のDSP種別に対応するデータファイルおよびDSP23、33への起動開始指令を送信させる遠隔端末19とを備えるDSPシステム1が提供される。
【選択図】図1

Description

一実施形態はディジタルシグナルプロセッサ(DSP)システム、ディジタルシグナルプロセッサシステム起動装置およびディジタルシグナルプロセッサのブート方法に関する。
複数枚のDSPカードを搭載した産業用機器などは、機器の出荷前や出荷後、DSPカード上のフラッシュROMのプログラムを更新する場合が存在する。一枚のDSPカードは複数のDSPと、外部メモリと、プログラム格納用のフラッシュROMとを持つ。複数枚のDSPカード上の各DSPのプログラムは、各DSPカードのフラッシュROMに格納されており、各DSPは起動時に自身が実行するプログラムを読込み、処理を開始する。従来、DSP内部メモリを有効に活用できるDSPシステム及びそのブート方法が知られている(例えば特許文献1参照)。起動時間を短縮させるディジタルシグナルプロセッサ制御装置システムが知られている(例えば特許文献2参照)。
DSP実行プログラムを変更するためにはフラッシュROMの更新が必須である。DSPの内部メモリのメモリ容量は不足している。DSPは信号処理プログラムとフラッシュROM更新制御プログラムとの両方を同時に内蔵することができない。専用のフラッシュROM書込み用装置を用いる必要がある等、容易にプログラム更新ができない。
特開2007−102544号公報 特開2004−86416号公報 特開2010−277361号公報
ANSI/VITA 1.1−1997,VME64 Extensions
しかし、DSPはCPUのように基本ソフトウェア(以下、OSと呼ぶ)を利用できないため、DSPカード毎にROMブートを実行しなければならない。互いに互換性のないデータファイルをカード種別毎に選択し、千枚以上のDSPカード基板を人が個別にブートすることは到底できないか、あるいは極めて作業効率が悪い。例えば製造時期の異なる2種類のDSPカードにはそれぞれ新旧別個のハードウェアのDSPICが実装されており、これらのDSPカード間ではDSPの実行プログラムの互換性がない。互いに互換性のないDSPカードが混在している場合、各DSPカードのROMデータをこれらのDSPカードのカード種別に応じて選択して書替えること、及び複数枚のDSPカードをそれぞれブートすることは容易でない。
このような課題を解決するため、一実施形態によれば、複数のDSPICの各プロセッサ種別の情報およびこれらのプロセッサ種別間で実行の互換性のない複数種類の実行プログラムを対応付けしたデータファイルを前記プロセッサ種別毎に記憶する記録媒体と、この記録媒体の前記データファイルがロードされる記憶装置、この記憶装置の前記実行プログラムを取込む内部メモリを持つDSP、およびこれらの記憶装置及びDSPにバス接続されたバスブリッジをそれぞれが有する複数枚のDSPカードと、これらのDSPカードへ前記記録媒体からの前記データファイルを送信するホストCPUと、このホストCPUに何れかのDSPカード上の前記DSPの前記プロセッサ種別に対応する前記データファイルおよび前記DSPへの起動開始指令を送信させる遠隔端末と、を備えるディジタルシグナルプロセッサシステムが提供される。
また、別の一実施形態によれば、複数のDSPICの各プロセッサ種別の情報およびこれらのプロセッサ種別間で実行の互換性のない複数種類の実行プログラムを対応付けしたデータファイルを前記プロセッサ種別毎に記憶する記録媒体と、この記録媒体の前記データファイルがロードされる記憶装置、この記憶装置の前記実行プログラムを取込む内部メモリを持つDSP、およびこれらの記憶装置及びDSPにバス接続されたバスブリッジをそれぞれが有する複数枚のDSPカードと、前記DSPカードに対してこのDSPカード上の前記DSPの前記プロセッサ種別に対応する前記データファイルおよび前記DSPへの起動開始指令を送信するホストCPUと、を備えるディジタルシグナルプロセッサ起動装置が提供される。
また、別の一実施形態によれば、複数のDSPICの各プロセッサ種別の情報およびこれらのプロセッサ種別間で実行の互換性のない複数種類の実行プログラムを対応付けしたデータファイルを前記プロセッサ種別毎に記憶する記録媒体を設けるステップと、複数枚のDSPカード上の記憶装置に対して、これらのDSPカード上のDSPの前記プロセッサ種別に対応する前記データファイルを前記記録媒体よりロードするステップと、各DSPカード上の前記DSPに対して起動開始指令を送り、前記DSPを前記データファイルによって起動させるステップと、を備えるディジタルシグナルプロセッサのブート方法が提供される。
一実施形態に係るディジタルシグナルプロセッサシステムの構成図である。 (a)、(b)は一実施形態に係るディジタルシグナルプロセッサシステムの複数のDSPが用いるデータファイルのファイル構造例を示す図である。 一実施形態に係るディジタルシグナルプロセッサシステムのDSPカード上のDSPのブート手順を説明するためのフローチャートである。 一実施形態に係るディジタルシグナルプロセッサシステムのDSPカード上の別のDSPのブート手順を説明するためのフローチャートである。 一実施形態に係るディジタルシグナルプロセッサシステムのホストCPUのブート制御手順を説明するためのフローチャートである。 実施形態に係るディジタルシグナルプロセッサシステムの遠隔端末のブート制御手順を説明するためのフローチャートである。
以下、実施の形態に係るディジタルシグナルプロセッサシステム、ディジタルシグナルプロセッサシステム起動装置およびディジタルシグナルプロセッサのブート方法について、図1乃至図6を参照しながら説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。
図1は一実施形態に係るディジタルシグナルプロセッサシステムの構成図である。DSPシステム1はそれぞれN個のDSPを搭載したM枚のDSPカードによって演算実行される信号処理システムである。これらのDSPカードはカード上のフラッシュROMから信号処理演算用の実行プログラムを読込み、ディジタルフィルタ処理やFFT処理などの信号処理演算を行う。同図はMが2の例を示しており、DSPシステム1は、それぞれ新バージョンの実行プログラムで動作するN個のDSPICを有するDSPカード11と、それぞれ古いバージョンの実行プログラムで動作するN個のDSPICを有するDSPカード12とを混在させて備えている。DSPシステム1は、DSPカード11、12上の各DSPIC用の実行プログラムをこれらの2種類のカード種別に応じて書替えし、これらのDSPカード11、12上の全てのDSPICを遠隔的にリブート(再起動)可能になっている。
DSPシステム1は、2種類のDSPICの各プロセッサ種別の情報(以下、DSP種別情報と言う)およびこれらのDSP種別間で実行の互換性のない2種類の実行プログラムを対応付けしたデータファイルをDSP種別毎に記憶する記録媒体13を備えている。DSP種別とは、物理的に異なるハードウェアを持つDSPIC(DSP_Aと表記されたもの)及びDSPIC(DSP_Bと表記されたもの)を言い、例えば製造時期の異なる新旧2種類のDSPICを指す。実行プログラムとは信号処理の演算手順を記述したプログラムを言う。互換性のない2種類の実行プログラムは新旧2種類のバージョンの異なる実行プログラムであり、DSP_A用のプログラム及びDSP_B用のプログラムを指す。
更にDSPシステム1は、DSPカード11、12をバス接続するVMEバス14と、これらのDSPカード11、12へ記録媒体13からのデータファイルを送信するホストCPU15と、このホストCPU15のデータ領域としてのメモリ16及びホストCPU15を搭載したCPUカード17と、このCPUカード17に接続されたネットワーク18と、ネットワーク18を介してこのホストCPU15にDSPカード11上のDSP23及びDSPカード12上のDSP33の何れかのDSP種別に対応するデータファイルおよびDSP23、33への起動開始指令を送信させる遠隔端末19とを備えている。
記録媒体13はプログラムデータファイル(データファイル)を記録したCD−ROMあるいはDVDである。図2(a)はDSP_A(1)〜DSP_A(N)が用いるプログラムデータファイルのファイル構造例を示す図である。既述の用語はそれらと同じ用語を表す。同図に示すように、DSP_A用のプログラムデータファイル40は、起動プログラムであるイニシャルプログラムローダ(Initial Program Loader[以下、IPLと言う])部41と、N個のDSP用の各実行ファイル42とを有する。このIPL部41はある一定のバイト数から構成されるブート用制御プログラムを有する。ブート用制御プログラムはDSPメーカが提供するプログラムを用いる。IPL部41は数バイトの空き領域43を持つ。その空き領域43に、プログラムに対応するDSP種別を示したテキストデータが予め書込まれている。テキストデータとは"ADSP−DSP−A"というアスキー文字列を言う。DSP種別がDSP_Aであることを示す情報が埋込まれている。
図2(b)はDSP_B(1)〜DSP_B(N)が用いるプログラムデータファイルのファイル構造例を示す図である。同様にDSP_B用のプログラムデータファイル44は、IPL部45と、N個の他のDSP用の実行ファイル46とを有する。IPL部45も一定バイト数のブート用制御プログラムを格納しており、数バイトの空き領域47を持つ。この空き領域47に"ADSP−DSP−B"というアスキー文字列が予め書込まれている。これらのDSP_A用のIPL部41とDSP_B用のIPL部45とはそれぞれ互換性を有しておらず、DSP_A用の実行ファイル46とDSP_B用の実行ファイル42ともそれぞれ互換性を有していない。DSP_A(1)〜A(N)と、DSP_B(1)〜B(N)とは与えられた演算を実行する点で同じであるが、DSP_A(1)〜A(N)及びDSP_B(1)〜B(N)のハードウェア構造は異なっているため、DSP_A及びDSP_Bのうちの何れか一方用のプログラムデータファイルを他方は解釈実行できないものである。
図1の一枚目のDSPカード11は記録媒体13のデータファイルがロードされる外部記憶装置20(記憶装置)と、それぞれ内部メモリ21及びDMAコントローラ22を持つN個(Nは例えば5)のDSP(DSP_A)23と、各DMAコントローラ22に接続される第1のデータバス24と、この第1のデータバス24、外部記憶装置20に接続される第2のデータバス25及び第3のデータバス26にそれぞれ接続されたバスプロトコル変換機能部27(バスブリッジ)と、このバスプロトコル変換機能部27に第3のデータバス26を介して接続されたフラッシュROM28とを備えている。
外部記憶装置20はDRAMであり、ページメモリのような大容量の記憶領域を有する。各DSP23の内部メモリ21は小容量の記憶領域を有する。DMAコントローラ22はDMA転送によって外部記憶装置20の実行プログラムをこの内部メモリ21に取込む。DSP_A(1)〜DSP_A(N)はN個のDSP23を表す。
バスプロトコル変換機能部27はバス幅やデータ転送単位が異なるデータバス24、25、26及びVMEバス14の間で、これらのバスのプロトコルに応じてデータをプロトコル変換して転送するバスブリッジとして機能し、VMEインターフェース機能も併せ持つ。
バスプロトコル変換機能部27はDSPカード11のカード種別を識別するためのレジスタ値を保持するレジスタ29を有する。DSPカード11のカード種別と、DSPカード12のカード種別とで異なる固有なレジスタ値をレジスタ29は保持する。このレジスタ29には非特許文献1において定義されたCR/CSR(Configuration ROM and Control Status Register)レジスタが用いられる。VMEバス14によってホストCPU15がDSPカード11、12及びこのホストCPU15間の共有メモリ空間で一連のアドレスを割付けする。一連のアドレスにホストCPU15がアクセス可能にされている。レジスタ29への値の書込み及びレジスタ29からの値の読出しはバスプロトコル変換機能部27、各DSP23、及びホストCPU15によって行われる。
フラッシュROM28の本来の機能は、各DSP23の信号処理用の実行プログラムを保持することである。各実行プログラムはDSPカード11が起動された後、各DMAコントローラ22によりそれぞれの内部メモリ21へ転送されるようにされている。起動後、各DSP23は、内部メモリ21に記憶された実行プログラムの計算命令に従って割当てられたDSPソフトウェアの演算処理を行うようになっている。DSPカード11は、同一種のDSP23、及び複数個のDSPICから構成されていることから、ブート対象のDSP23は1個又は複数N個存在する。
二枚目のDSPカード12は、記録媒体13のデータファイルがロードされる外部記憶装置30(記憶装置)と、それぞれ内部メモリ31及びDMAコントローラ32を持つN個のDSP(DSP_B)33と、各DMAコントローラ32に接続されるデータバス34と、データバス34、35、36にそれぞれ接続されたバスプロトコル変換機能部37と、このバスプロトコル変換機能部37にデータバス36を介して接続されたフラッシュROM38とを備えている。このバスプロトコル変換機能部37はレジスタ39を有し、このレジスタ39はDSPカード12のカード種別を識別するためのレジスタ値を保持する。レジスタ39への値の書込み及びレジスタ39からの値の読出しはバスプロトコル変換機能部37、各DSP33、及びホストCPU15によって行われる。DSP_B(1)〜DSP_B(N)はN個のDSP33を表す。
DSPカード11、12はともに図示しない同一のVMEバックプレーン上のスロットに別々に挿込まれ、これらのカード間でこのVMEバックプレーンを共有している。VMEバックブレーンとは、箱形のシャーシの背面側に設けられプレーン面上にVMEバス14を布線して成る背板を言う。バックプレーンには複数本のピンが設けられている。これらのピンによる論理値をDSPカード11上のバスプロトコル変換機能部27とDSPカード12上のバスプロトコル変換機能部37が読込み、バスプロトコル変換機能部27、37はそれぞれバックプレーン上でのDSPカード11、12の物理的なスロット位置情報を取得可能になっている。
VMEバス14は複数のスロット間を接続するバスである。VMEバス14はDSPカード11、12のメモリ資源を用いてこれらのメモリ資源どうしでVME共有メモリ空間を構築し、このメモリ空間アドレスを、DSPカード11、12及びホストCPU15へ参照可能にしている。
ホストCPU15はVMEバス14からバスプロトコル変換機能部27が読出したレジスタ29の値をDSPカード11に固有なカード種別情報として収集する。ホストCPU15はVMEバス14からバスプロトコル変換機能部37が読出したレジスタ39の値をDSPカード12に固有なカード種別情報として収集する。ホストCPU15は収集したカード種別情報を遠隔端末19へ通知する。また、このホストCPU15はVMEバス14からDSPカード11のスロット位置情報と、DSPカード12のスロット位置情報とを集める。ホストCPU15は各スロット位置情報及びレジスタ値によって、VME規格に準拠した重複のないアドレス割付けを行う。ホストCPU15はスロット毎に異なる開始アドレスを持つベースアドレス値を割当てる等によって共通のメモリ空間をDSPカード11、12に参照可能にさせている。
CPUカード17はDSPカード11、12が挿込まれた2つのスロットとは異なる別スロットに挿込まれた状態でVMEバス14にバス接続されている。ホストCPU15は記録媒体13からのデータファイルをDSPカード11、12へ送信する。メモリ16は例えばRAMディスクであり、ホストCPU15のデータ領域としてメモリ空間をこのホストCPU15に提供している。メモリ16にはホストCPU15用のOS及び遠隔端末19との通信用のアプリケーションプログラムを記憶している。ネットワーク18はLAN(local area network)である。
遠隔端末19は例えばパソコンである。遠隔端末19は記録媒体13からファイルを読出すためのメディア再生装置を内蔵し又は外付けしている。遠隔端末19は各バスプロトコル変換機能部27、37およびホストCPU15を介して各カード種別情報を収集する。遠隔端末19は収集したカード種別情報により、DSPカード11上のDSP23及びDSPカード12上のDSP33のうちの何れかに対応するDSP種別を持つプログラムデータファイルを記録媒体13から選択するようにしている。
また、遠隔端末19はホストCPU15から、どのスロットにどのカード種別のDSPカード11、12が挿さっているか、及びどのスロットが空いているかという情報を収集する。遠隔端末19は複数のスロット番号と、カード属性情報とを対応付けした一覧表10を生成する。カード属性情報とはDSPカード11、12及びCPUカード17のカード種別を表す情報、あるいはカードが挿さっていないカード無しを表す情報を言う。一覧表10とはパソコンRAMに生成されるテーブルデータである。一覧表10をDSPシステム1の起動後に遠隔端末19が作成する。
また、DSP起動装置2(実施の形態に係るディジタルシグナルプロセッサ起動装置)は、上記記録媒体13と、上記DSPカード11、12と、上記ホストCPU15とを備えて構成される。
また、本実施形態に係るディジタルシグナルプロセッサのブート方法は、上記記録媒体13を設けるステップと、DSPカード11上の外部記憶装置20及びDSPカード12上の外部記憶装置30に対して、DSP23又はDSP33のDSP種別に対応するプログラムデータファイルをこの記録媒体13よりロードするステップと、DSPカード11上のDSP23、DSPカード12上のDSP33に対して起動開始指令を送り、各DSP23及び各DSP33このプログラムデータファイルによって起動させるステップとをDSPシステム1が実行するものである。プログラムデータファイルをロードするステップでは、各DSPカード11、12のカード種別情報を収集するステップと、カード種別情報に対応するDSP23又はDSP33のDSP種別を持つプログラムデータファイルを選択するステップとをDSPシステム1が実行する。
本実施形態に係るブート方法は、プロセッサ内部にプログラム及びデータ格納用内部メモリ21、31を持つDSP23、33にあって、予めDSP23、33内で実行される実行プログラムが、遠隔端末19、もしくはホストCPU15によって揮発性の外部記憶装置20、30にロードされたプログラムデータファイルを用いて行われる方法である。このブート方法は、遠隔端末19、もしくはホストCPU15から出力された起動開始指令を元に、複数5個のDSP23及び5個のDSP33を協調的かつ一斉に再起動する。また、このブート方法は、ホストCPU15がDSPカード11、12上のDSP種別を、直接VMEバス14を介して収集することにより、DSP種別に対応したプログラムデータファイルを自動判別することを可能としている。
上述の構成の本実施形態に係るディジタルシグナルプロセッサシステムのDSPカード11、12内における再起動の動作例について、図3から図6を参照して詳細に説明する。以下、DSPカード11上のN個のDSP23のうち、先頭のDSP23をDSP_A(1)と呼び、及び2個目からN個目のDSP23をそれぞれDSP_A(2)からDSP_A(N)と呼ぶことがある。DSPカード12上の先頭のDSP33をDSP_B(1)と呼び、2個目からN個目のDSP33をそれぞれDSP_B(2)からDSP_B(N)と呼ぶことがある。
[1]DSP_A(2)〜DSP_A(N)及びDSP_B(2)〜DSP_B(N)のブート方法
図3は本実施形態に係るDSPシステム1が対象とするDSPカード11上のDSP_A(2)のブート手順を説明するためのフローチャートである。電源が投入された後、ステップA1においてDSP_A(2)は、図1(1)に示すとおりフラッシュROM28からプログラムをロードして内部メモリ21に取込みして起動する。ステップA2において、DSP_A(2)は起動した後、DSP_A(1)が発行する起動指令の受信を待つ(NOルート参照)。このとき、DSP_A(2)〜DSP_A(N)は何れもデータバス24及び外部記憶装置20へアクセスしない。
ステップA2において、図1(6)に示すとおり、DSP_A(1)が出力した起動指令をDSP_A(2)が受信した場合、YESルートを通り、ステップA3において、DMAコントローラへ転送アドレスとそのサイズを指定する。
更に、ステップA4において、DSP_A(2)は読込んだプログラム先頭番地に実行を移すため、内蔵DMAコントローラ22の転送完了割込みベクタを内部メモリ21の先頭番地に設定する。
以上の準備が終わったら、ステップA5において、DSP_A(2)はDMAコントローラ22を起動し、DSP_A(2)を停止状態にする。このステップA5においてDMAコントローラ22は、設定に従って内部メモリ21へプログラムの転送を行う。最後にステップA6において、DSP_A(2)はDMA転送完了割込みを受けると、内部メモリ21の先頭アドレスを実行する。プログラムの再起動が実施される。
また、DSPカード11上のDSP_A(3)〜DSP_A(N)のブート方法も、図3のDSP_A(2)のブート方法と同じである。DSPカード12上のDSP_B(2)〜DSP_B(N)のブート方法もDSP_A(2)のブート方法と同じである。
[2]DSP_A(1)及びDSP_B(1)のブート方法
DSPカード11の先頭のDSP23、即ちDSP_A(1)のブート方法を図4に示す。
図4は本実施形態のDSPシステム1が対象とするDSP_A(1)のブート手順を説明するためのフローチャートである。
電源投入後、ステップB1において、DSP_A(1)は、図1(1)に示すとおりフラッシュROM28からプログラムをロードしてこのプログラムにより起動する。起動後、ステップB2においてDSP_A(1)は、ホストCPU15を経由した遠隔端末19が発行する起動指令を待つ(NOルート参照)。このステップB2では、DSP_A(1)はデータバス24及び外部記憶装置20へアクセスしない。
一方ステップB2でのDSP_A(1)が待機中、遠隔端末19は、次の2つの方法により、DSP用プログラムをDSPカード11内の外部記憶装置20にロードする。
(I)図1(4)に示すとおり、遠隔端末19は一旦ホストCPU15にプログラムを転送した後、ホストCPU15に対して起動指令を出力する。ホストCPU15は図1(5)に示すとおり、VMEバス14を経由してDSPカード11内の外部記憶装置20にプログラムをロードする。次にバスプロトコル変換機能部27により、ホストCPU15は、DSPカード11の外部記憶装置20や、DSPカード11の内部バスであるデータバス24、25、26を意識せず、ホストCPU15自身が属するVMEバス14を用いてプログラムの転送を行う。
(II)遠隔端末19は、プログラムのロードが完了した時点で、ホストCPU15を経由してDSP_A(1)へ起動指令を出力する。図4のステップB2においてDSP_A(1)が起動指令を受信した場合、YESルートを通り、ステップB3からステップB6の繰返しループ処理を行う。
繰返しループ処理ではDSP_A(1)は、DSP個数Nを最大値とする繰返し変数iをNにセットし(ステップB3)、DSP_A(i)が再ブート対象のDSPであるかどうかを判定し(ステップB4)、DSP_A(i)が再ブート対象のDSPである場合、YESルートを通り、DSP_A(1)はDSP_A(i)に対して起動指令を発行する(ステップB5)。DSP_A(1)は"1"と付されたルートを通り、繰返し変数iを減らして、ステップB4の処理を行う。また、ステップB4においてDSP_A(i)が再ブート対象のDSPでない場合、NOルートを通り、DSP_A(1)は繰返し変数iを減らして(ステップB6)、ステップB4の処理を行う。また、ステップB6では、DSP_A(1)は繰返し変数iを減らした後の繰返し変数iの値を各i値において1に達したかどうかを判定しており、繰返し変数iが1になると、繰返しループ処理を抜ける。
ステップB3からステップB6の繰返しループ処理により図1(7)に示すとおり、DSP_A(1)はDSPカード11内の他のDSP_A(2)〜DSP_A(N)へ宛ててデータバス24に起動指令を出力する。このとき、DSP_A(2)〜DSP_A(N)は何れも、データバス24及び外部記憶装置20へアクセスしていないので、DSP_A(1)がDSP_A(2)〜DSP_A(N)のそれぞれに起動指令を出力する際、データバス24の排他制御を考慮しなくて良い。DSP_A(2)〜DSP_A(N)は、DSP_A(1)から起動指令を受信した後、図1(6)に示すとおり、外部記憶装置20に格納されたプログラムをそれぞれの内部メモリ21へ読込む。DSP_A(2)〜DSP_A(N)は読込んだ先頭番地にジャンプしてプログラムを実行する。最後に、DSP_A(1)は図1(6)に示すとおり、外部記憶装置20に格納されたプログラムを内部メモリ21へ読込み、読込んだ先頭番地にジャンプしてプログラムを実行する。
仮に現在実行中のプログラムをDSP_A(1)〜DSP_A(N)が上書きした場合、これらのDSP_A(1)〜DSP_A(N)はその実行が停止をしてしまう。そのため、DSP_A(1)〜DSP_A(N)がそれぞれ内蔵するDMAコントローラ22を用いるとともに、プログラムの読込みに先立って、DSP_A(1)〜DSP_A(N)は何れも各動作を一旦停止する。
ステップB7において、更に読込んだ先頭番地に実行を移すため、DSP_A(1)は内蔵のDMAコントローラ22のDMA転送完了割込みベクタを内部メモリ21の先頭番地に設定する。DMA転送完了割込みベクタとは割込み処理プログラムのポインタを言う。以上の準備が終わったら、DSP_A(1)はDMAコントローラ22を起動し、このDSP_A(1)を停止状態にする。ステップB8においてDMAコントローラ22は、設定に従って外部記憶装置20から内部メモリ21へプログラムの転送を行う。最後にステップB9においてDSP_A(1)はDMA転送完了割込みを受けてプログラムの再起動を実施する。
DSP_A(1)は上書きされたプログラムの先頭に記述されたポインタにより処理を開始する。DSP_A(1)のリブートが完了する。DSP_A(1)は、起動指令を出力するDSP_A(2)〜DSP_A(N)を選択できるため、DSPカード11上の任意のDSP23のみ再起動をかけることが可能となる。
DSP_A(1)はマスタDSPとして動作し、他のDSP_A(2)〜DSP_A(N)はスレーブDSPとして動作しており、マスタDSPがスレーブDSPへ指令を通知し終わった後、マスタDSP自身も再ブートする。ホストCPU15からDSPカード11の外部記憶装置20に実行ファイルを送る段階と、ホストCPU15からブート開始指令を受信してDSP23側のソフトウェアで再ブートすることとの二段階によりブートが行われる。
DSPカード12の先頭のDSP33、即ちDSP_B(1)のブート方法は図4の例と同じである。
[3]ホストCPU15による制御方法
ホストCPU15における、DSPカードの起動制御方法を図5に示す。図5はホストCPU15のブート制御手順を説明するためのフローチャートである。
ステップC1において遠隔端末19は、図1(2)、(3)に示すとおり、ホストCPU15を介して、VMEバス14上のDSPカード種別を収集する。遠隔端末19は、図1(4)に示すとおり、ホストCPU15上のデータ領域へプログラムを転送し、ステップC2においてこのプログラムをホストCPU15は受信する。
例えば遠隔端末19はFTPによりホストCPU15に必要な転送プログラムを送る。遠隔端末19は一覧表10により全てのDSPカード種別のプログラムデータファイルをputしていく。FTPによりファイルを遠隔端末19が送り終えると、遠隔端末19は起動指令を送るタイミングを迎える。ホストCPU15が起動指令を遠隔端末19から受信するときには既にメモリ16には遠隔端末19からのFTPにより必要なファイルは全部揃っている状態にされる。VMEバス14上でのファイルの転送は1ファイル当たり、100m秒程度かかる。シャーシ1つ当たり最大20枚の互いに互換性のないDSPカードが存在したとすると、数秒もかからずに完了する。
ステップC3において、ホストCPU15は遠隔端末19から出力される起動指令を受信したかどうかを判定する。ステップC3において起動指令を受信しない間、ホストCPU15は待機する(NOルート参照)。ステップC3において起動指令をホストCPU15が受信すると、YESルートを通り、ステップC4において、ホストCPU15はメモリ16のデータ領域からプログラムデータファイルを読込む。
引き続きホストCPU15はステップC5からステップC7の繰返しループ処理を行う。繰返しループ処理ではホストCPU15はDSPカードのカード枚数Mを最大値とする繰返し変数i(iは図4の例とは異なる)をMにセットし(ステップC5)、ホストCPU15は図1(5)に示すとおり、データバス25を経由してDSPカード12の外部記憶装置30と、DSPカード11の外部記憶装置20とにそれぞれプログラムをロードする(ステップC6、ステップC7)。このとき、DSPカード12上の全てのDSP33は外部記憶装置30に対するアクセスを行わないため、外部記憶装置30の排他処理が不要となる。DSPカード11上の全てのDSP32は外部記憶装置20に対するアクセスを行わないため、外部記憶装置20の排他処理も不要となる。DSPカード11、12内のバスプロトコル変換機能部27、37により、ホストCPU15は、DSPカード11の外部記憶装置20、DSPカード12の外部記憶装置30、これらのDSPカード11内のデータバス24、25、26及びDSPカード12内のデータバス34、35、36を意識せず、ホストCPU15自身が属するVMEバス14を用いてプログラムの転送を行う。
更に、ホストCPU15は、プログラムのロードが完了した時点で、対象DSPカード11内のDSP_A(1)及びDSPカード12のDSP_B(1)へ起動指令を出力する(ステップC8、ステップC9、ステップC10)。
[4]遠隔端末19によるホストCPU15の制御方法
遠隔端末19による、ホストCPU15の制御方法を図6に示す。図6は本実施形態が対象とする遠隔端末19のブート制御手順を説明するためのフローチャートである。
ステップD1において遠隔端末19は、ホストCPU15が収集した全てのカード種別情報を受信する。このステップD1の後、遠隔端末19は一覧表10を生成しておく。ステップD2において、遠隔端末は受信したカード種別情報に従って、対応するプログラムファイルをホストCPU15へ転送する。転送が完了次第、遠隔端末19はステップD3からステップD5の繰返しループ処理を行う。繰返しループ処理では遠隔端末19はDSPカードのカード枚数Mを最大値とする繰返し変数i(iは図4及び図5の何れの例とも異なる)をMにセットし(ステップD3)、対象となるDSPカード一枚毎に、再起動命令を送信し、処理を終了する(ステップD4、ステップD5)。
以上のように、DSPシステム1では、プロセッサ種別を含むIPL41、45をプログラムデータファイルに組込んで、DSPカード11、12側でブートするようにするため、互換性のないDSPカード11、12間でプログラム再起動の自動化ができるようになる。
一般にDSPは信号処理に特化した様々な機能を有しているため、従来ハードウェアで構成されていた多くの信号処理機能をソフトウェア化してきている。通常、DSPが使用可能なメモリ資源はCPUのメモリ資源と比べて乏しいため、DSPはCPUのように基本ソフトウェア(OS)を利用することや、複雑な処理を実行することができない。このため、DSPが行う信号処理は、ディジタルフィルタ処理やFFT処理などの固定した信号処理を各DSPに割付けし、DSP間は専用の高速通信バスを用いて接続する分散方式のDSP構成や、あるいは巡回的並列処理又はラウンドロビン方式のDSP構成を取って行われている。DSP構成は例えば複数個のDSPと、外部記憶装置と、プログラム格納用のフラッシュROMとを持つDSPカードを複数枚備える(例えば特許文献3の図7、図8参照)。複数個のDSPのプログラムは、フラッシュROMに格納されており、各DSPは起動時に自身が実行するプログラムを読込み、処理を開始するようにしている。
このため、DSP実行プログラムを変更するためにはフラッシュROMの更新が必須である。しかしDSPが使用できる内部メモリの容量が小さいことから、DSPシステムは、DSP単体に単純で固定的な処理を割当てておき、DSPを複数個まとめたDSPカード単位で必要な処理を実現させている。各フラッシュROMに保存されるプログラムは、問題が発生しない限り固定され続けることから、更新する必要性がなかった。
現在は更に半導体技術の進歩によってDSPが使用できるメモリの容量が増えてきている。DSPがより複雑な処理を実行できるようになったことから、従来CPUが行ってきた処理をDSPで置き換えて実行する機器も出てきた。それに伴い、実行するプログラムを目的に応じて選択するという要望が出てきている。例えば複数のDSPマイクロプログラム部品を内部メモリにロードし必要な機能を任意に選択して実行するDSP装置等が知られている。しかし、プログラムの保存にフラッシュROMを用いているため、内部メモリの容量の制限から保存可能なプログラムの数に限りがある。また、DSPが使用できるメモリの容量が十分に大きくはないことから、フラッシュROMの更新制御プログラムを内蔵できず、そのためフラッシュROMの更新も自由にできなかった。
複数枚のDSPカードを搭載した産業用機器などは、この機器の出荷前や出荷後、DSPカード上のフラッシュROMのプログラムを更新する必要が生じる場合がある。DSP実行プログラムを変更するためにはフラッシュROMの更新が必須である。しかし、DSPの内部メモリのメモリ容量不足のため、DSPは信号処理プログラムとフラッシュROM更新制御プログラムとの両方を同時に内蔵することができない。プログラム更新のためには、DSPメーカが提供する専用のフラッシュROM書込み専用装置をDSPカードに接続し、この専用装置から対象DSPへフラッシュROM書込みプログラムをロードし、このDSPがフラッシュROMを更新するという手法が使われることもある。もっともこの更新手法では、DSPカードと専用のフラッシュROM書込み用装置とを直接接続して作業を行う必要があるため、作業効率を高めるには、高額な専用機材を多数保有しておく必要がある。更新対象のフラッシュROMの個数と専用機材を購入する費用とを考慮すると、多数の専用機材を導入することは現実的ではない。一方、専用機材の導入台数が少数台であると、DSPカードの枚数が数十枚から数百枚である場合、作業効率が悪くなる。数千枚では技術者はもはや手に負えない状況に直面する。専用のフラッシュROM書込み用装置を用いる等、容易にプログラム更新ができなかった。
あるいはプログラム更新の別の手法としては、DSPカード上のDSPの起動プログラムの読出しアドレスを選択するためのDIPスイッチを、人が切替えることによってフラッシュROM書込みプログラムを強制的に起動する手法が存在する。DIPスイッチの切替えを用いた更新手法では、DIPスイッチの切替えの再設定や、電源の投入及び切断などの各操作を行う必要がある。機器に組込まれたDSPカードの枚数が数百枚にも上る場合、作業効率が悪くなる。千枚を越えると、到底手作業は行えない。機器の運用が一旦開始されると、DSPカードを機器から抜いてDIPスイッチを切替えることができない。
これに対して本実施形態に係るディジタルシグナルプロセッサシステムおよびディジタルシグナルプロセッサのブート方法によれば、リセットを伴わないブート機能を実現できるため、プログラムを順次再起動することで、必要な処理を行うことができる。また、外部記憶装置20を用いることでDSP_A(1)〜DSP_A(N)間のプログラムのインターフェースを取ることもできる。外部記憶装置30によりDSP_B(1)〜DSP_B(N)間のプログラムのインターフェースを取ることができる。更にシャーシ内にプログラム互換性がない複数種のDSPカード11、12が混在する場合でも、ホストCPU15がDSPカード種別の収集及び、それに対応した書込みデータファイルを自動選別することができるようになる。
また、DSP起動装置2は遠隔端末19の機能をCPUカード17に実装した装置であり、DSP起動装置2によってもブート機能を実現できる。数千枚よりも少ない数枚から数十枚のDSPカードを同時に一括ブートする場合、DSP起動装置2は遠隔端末19を設けずに上記例と同等の一括自動ブートを実行することができる。DSP起動装置2によっても個別にDSPカードをブートする作業に比べて大幅に作業効率を改善することができる。
以上のように、本実施形態に係るディジタルシグナルプロセッサシステム、ディジタルシグナルプロセッサシステム起動装置およびディジタルシグナルプロセッサのブート方法によれば、互いに互換性のない複数種のDSPカード11、12間でプログラム再起動を自動化できる。
(変形例)
また、図1の一枚づつ2種別(図1のDSPカード11、12により構成)の例と異なり、DSPシステム1はDSPカード11の枚数と、DSPカード12の枚数とは何れも複数枚であってもよい。
DSPカード10はVMEバス14に属する複数枚のDSPカード群が一種類(図1のDSPカード11のみで構成)だけの場合、あるいは3種類以上が混在している場合にも対応しており、ROMブートの自動化を行える。3種類以上のDSPカードが混在とは、一枚づつ複数種別のDSPカードが挿さっていること、又は複数枚づつ複数種別のDSPカードが挿さっていることを言う。3種類以上のDSPカードが混在し及び各ソフトウェアの互換性がない場合でも、遠隔端末19は上記一枚づつ2種類の例と実質同じようにして各DSPカードからカード種別情報を収集することにより、ブートを自動化できる。
上記実施形態では、1台のラック内のシャーシにDSPカード11、12及びCPUカード17が設けられた例であり、ホストCPU15は1つのシャーシについての一覧表10を生成するようにしていた。DSPシステム1はそれぞれが複数枚のDSPカードが挿さったシャーシを持つ複数台のラックを接続して成る構成であってもよい。この場合、遠隔端末19は各ラックに予めIPアドレスを割当てしておく。遠隔端末19はラック番号を表すIPアドレスと、ラック内のスロット位置情報と、スロット番号毎のカード属性情報とを収集し、これらを対応付けて一覧表10を起動後作成するようにする。例えばカード総枚数Mが1000以上でありカード種別が2であり且つ複数のシャーシを接続してこれらの千枚のDSPカードからDSPシステム1が構成されているとする。DSP_A用のプログラムで動作するDSPカードと、DSP_B用のプログラムで動作するDSPカードと、これらのDSP_A、DSP_Bとは全く無関係のカードとがそれぞれ何枚づつシャーシのスロットに挿さっているかを示す情報を1台の遠隔端末19が収集し一覧表10を生成する。これによっても、上記例と実質同じようにしてDSPシステム1は任意のラックの所望するDSPカードのフラッシュROMを自動で書替え起動することが可能になる。
上記実施形態では、記録媒体13はホストCPU15に接続されていたが、この記録媒体13はネットワークの何れかのノードに接続されてもよく、このホストCPU15が参照するようにしてもよい。記録媒体13は例えばUSBメモリのように可搬型の媒体としてホストCPU15が参照可能に構成されてもよい。あるいは記録媒体13は例えば拡張ボード等によりホストCPU15とバス接続されてもよく、このホストCPU15が拡張ボードを介してこの記録媒体13を参照してもよい。
いくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
1…DSPシステム(ディジタルシグナルプロセッサシステム)、2…DSP起動装置(ディジタルシグナルプロセッサ起動装置)、10…一覧表、11,12…DSPカード、13…記録媒体、14…VMEバス、15…ホストCPU、16…メモリ、17…CPUカード、18…ネットワーク、19…遠隔端末(遠隔操作端末)、20,30…外部記憶装置(記憶装置)、21,31…内部メモリ、22,32…DMAコントローラ、23,33…DSP、24,25,26,34,35,36…データバス、27,37…バスプロトコル変換機能部(バスブリッジ)、28,38…フラッシュROM、29,39…レジスタ、40,44…プログラムデータファイル(データファイル)、41,45…IPL部、42,46…実行ファイル、43,47…空き領域。

Claims (6)

  1. 複数のDSPICの各プロセッサ種別の情報およびこれらのプロセッサ種別間で実行の互換性のない複数種類の実行プログラムを対応付けしたデータファイルを前記プロセッサ種別毎に記憶する記録媒体と、
    この記録媒体の前記データファイルがロードされる記憶装置、この記憶装置の前記実行プログラムを取込む内部メモリを持つDSP、およびこれらの記憶装置及びDSPにバス接続されたバスブリッジをそれぞれが有する複数枚のDSPカードと、
    これらのDSPカードへ前記記録媒体からの前記データファイルを送信するホストCPUと、
    このホストCPUに何れかのDSPカード上の前記DSPの前記プロセッサ種別に対応する前記データファイルおよび前記DSPへの起動開始指令を送信させる遠隔端末と、
    を備えるディジタルシグナルプロセッサシステム。
  2. 前記複数枚のDSPカードの前記バスブリッジはそれぞれ各DSPカードのカード種別情報を保持し、
    前記遠隔端末は、各バスブリッジおよび前記ホストCPUを介して各カード種別情報を収集し、収集した前記カード種別情報に対応する前記プロセッサ種別を持つ前記データファイルを選択する請求項1記載のディジタルシグナルプロセッサシステム。
  3. 複数のDSPICの各プロセッサ種別の情報およびこれらのプロセッサ種別間で実行の互換性のない複数種類の実行プログラムを対応付けしたデータファイルを前記プロセッサ種別毎に記憶する記録媒体と、
    この記録媒体の前記データファイルがロードされる記憶装置、この記憶装置の前記実行プログラムを取込む内部メモリを持つDSP、およびこれらの記憶装置及びDSPにバス接続されたバスブリッジをそれぞれが有する複数枚のDSPカードと、
    前記DSPカードに対してこのDSPカード上の前記DSPの前記プロセッサ種別に対応する前記データファイルおよび前記DSPへの起動開始指令を送信するホストCPUと、
    を備えるディジタルシグナルプロセッサ起動装置。
  4. 前記複数枚のDSPカードの前記バスブリッジはそれぞれ各DSPカードのカード種別情報を保持し、
    前記ホストCPUは、各バスブリッジを介して各カード種別情報を収集し、収集した前記カード種別情報に対応する前記プロセッサ種別を持つ前記データファイルを選択する請求項3記載のディジタルシグナルプロセッサ起動装置。
  5. 複数のDSPICの各プロセッサ種別の情報およびこれらのプロセッサ種別間で実行の互換性のない複数種類の実行プログラムを対応付けしたデータファイルを前記プロセッサ種別毎に記憶する記録媒体を設けるステップと、
    複数枚のDSPカード上の記憶装置に対して、これらのDSPカード上のDSPの前記プロセッサ種別に対応する前記データファイルを前記記録媒体よりロードするステップと、
    各DSPカード上の前記DSPに対して起動開始指令を送り、前記DSPを前記データファイルによって起動させるステップと、を備えるディジタルシグナルプロセッサのブート方法。
  6. 前記データファイルをロードするステップでは、
    各DSPカードのカード種別情報を収集するステップと、
    前記カード種別情報に対応する前記プロセッサ種別を持つ前記データファイルを選択するステップと、を備える請求項5記載のディジタルシグナルプロセッサのブート方法。
JP2012156548A 2012-07-12 2012-07-12 ディジタルシグナルプロセッサシステム、ディジタルシグナルプロセッサシステム起動装置およびディジタルシグナルプロセッサのブート方法 Pending JP2014021540A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012156548A JP2014021540A (ja) 2012-07-12 2012-07-12 ディジタルシグナルプロセッサシステム、ディジタルシグナルプロセッサシステム起動装置およびディジタルシグナルプロセッサのブート方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012156548A JP2014021540A (ja) 2012-07-12 2012-07-12 ディジタルシグナルプロセッサシステム、ディジタルシグナルプロセッサシステム起動装置およびディジタルシグナルプロセッサのブート方法

Publications (1)

Publication Number Publication Date
JP2014021540A true JP2014021540A (ja) 2014-02-03

Family

ID=50196398

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012156548A Pending JP2014021540A (ja) 2012-07-12 2012-07-12 ディジタルシグナルプロセッサシステム、ディジタルシグナルプロセッサシステム起動装置およびディジタルシグナルプロセッサのブート方法

Country Status (1)

Country Link
JP (1) JP2014021540A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017134475A (ja) * 2016-01-25 2017-08-03 株式会社東芝 コンピュータシステム、及びソフトウェアの初期インストール方法
JP2019164442A (ja) * 2018-03-19 2019-09-26 株式会社東芝 コンピュータシステムおよびアプリケーション起動方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017134475A (ja) * 2016-01-25 2017-08-03 株式会社東芝 コンピュータシステム、及びソフトウェアの初期インストール方法
JP2019164442A (ja) * 2018-03-19 2019-09-26 株式会社東芝 コンピュータシステムおよびアプリケーション起動方法

Similar Documents

Publication Publication Date Title
JP5119686B2 (ja) 情報処理装置および設定方法
JP6228177B2 (ja) コンピュータシステムにおけるオペレーティングシステムの通信ネットワーク経由でのロードおよびブートを最適化するための方法、コンピュータプログラム、および装置
US10929149B2 (en) Method and system for updating firmware
JP2007206885A (ja) コンピュータシステム及びシステム起動方法
JP2011100431A (ja) 仮想マシン制御装置及び仮想マシン制御方法
WO2010116473A1 (ja) 管理サーバ、ブートサーバ、ネットワークブートシステム、ネットワークブート方法、ブートイメージ選択プログラムおよびブートイメージ提供プログラム
JP6136127B2 (ja) コントローラ、電子機器及びusbデバイスの制御方法
US9747240B2 (en) Dynamic connection of PCIe devices and functions to an array of hosts
US11314665B2 (en) Information processing system, information processing device, BIOS updating method for information processing device, and BIOS updating program for information processing device
US20130024857A1 (en) Method and system for flexible resource mapping for virtual storage appliances
JP6198843B2 (ja) ハードディスクシステム操作方法、ストレージシステム及びプロセッサ
CN103842980A (zh) 协议中立织物
JP6515462B2 (ja) 情報処理装置、情報処理装置の設定方法及び設定プログラム
JP2014021540A (ja) ディジタルシグナルプロセッサシステム、ディジタルシグナルプロセッサシステム起動装置およびディジタルシグナルプロセッサのブート方法
JPWO2004081791A1 (ja) 仮想計算機システム、仮想計算機システムにおけるファームウェアアップデート方法
CN116627472A (zh) 高速外围组件设备的固件程序升级方法及服务器
JP5846016B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP4791792B2 (ja) デジタルシグナルプロセッサシステムおよびそのブート方法。
JP2011059787A (ja) ディジタルシグナルプロセッサシステムおよびディジタルシグナルプロセッサの立ち上げ方法
JPWO2018216068A1 (ja) ストレージシステム及びマッピング方法
CN115408064A (zh) 支持内核在线更新的方法、服务器和相关设备
WO2021181614A1 (ja) 情報処理装置、操作制御方法および操作制御プログラム
TWI840849B (zh) 計算系統、電腦實施方法及電腦程式產品
AU2021336308B2 (en) Computer system communication via sideband processor
JP2008071107A (ja) Dspカードのフラッシュrom更新方法及びdspカードのフラッシュrom更新装置