(57)【要約】【課題】デジタルシグナルプロセッサのプログラムデータの変更に対する柔軟性と耐タンパ性とを両立させることができる、デジタルシグナルプロセッサシステムおよび信号処理装置を提供することである。【解決手段】実施形態のデジタルシグナルプロセッサシステムにおいて、第１のデジタルシグナルプロセッサおよび第２のデジタルシグナルプロセッサそれぞれが、不揮発性メモリから起動プログラムデータを読み込んで実行し第１起動すると、第１のデジタルシグナルプロセッサが、外部装置から復号命令を受け付け可能な状態になり、その後、復号命令を受信すると、揮発性メモリに記憶された暗号化プログラムデータを復号部によって復号させ、外部装置から取り込む起動命令にしたがって、第２のデジタルシグナルプロセッサに、復号されたプログラムデータを実行させて第２起動するよう起動制御し、復号されたプログラムデータを実行し第２起動する。【選択図】図１
2015141500.tif 000002
【特許請求の範囲】
【請求項１】
第１のデジタルシグナルプロセッサと、
第２のデジタルシグナルプロセッサと、
前記第１のデジタルシグナルプロセッサおよび前記第２のデジタルシグナルプロセッサを第１起動させるための起動プログラムデータを記憶する不揮発性メモリと、
外部装置により転送される、暗号化されたプログラムデータである暗号化プログラムデータが記憶される揮発性メモリと、
前記暗号化プログラムデータを復号する復号部と、
を備え、
前記第１のデジタルシグナルプロセッサおよび前記第２のデジタルシグナルプロセッサそれぞれが、前記不揮発性メモリから前記起動プログラムデータを読み込んで実行し前記第１起動すると、前記第１のデジタルシグナルプロセッサが、前記外部装置から復号命令を受け付け可能な状態になり、その後、前記復号命令を受信すると、前記揮発性メモリに記憶された前記暗号化プログラムデータを前記復号部によって復号させ、前記外部装置から取り込む起動命令にしたがって、前記第２のデジタルシグナルプロセッサに、前記復号されたプログラムデータを実行させて第２起動するよう起動制御し、前記復号されたプログラムデータを実行し前記第２起動する、
デジタルシグナルプロセッサシステム。
【請求項２】
前記復号部は、前記暗号化プログラムデータの転送に伴って前記外部装置から転送される復号鍵を用いて前記暗号化プログラムデータを復号する、
請求項１記載のデジタルシグナルプロセッサシステム。
【請求項３】
前記第２のデジタルシグナルプロセッサを複数備え、
前記第１起動した前記第１のデジタルシグナルプロセッサが、前記第１起動した前記複数の第２のデジタルシグナルプロセッサを順次起動制御する、
請求項１または２いずれか記載のデジタルシグナルプロセッサシステム。
【請求項４】
前記第１起動した前記第１のデジタルシグナルプロセッサが、前記第１起動した前記複数の第２のデジタルシグナルプロセッサのいずれかを選択して起動制御する、
請求項３記載のデジタルシグナルプロセッサシステム。
【請求項５】
請求項１から請求項４いずれか一項記載のデジタルシグナルプロセッサシステムと、
前記外部装置と、
を備える信号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、デジタルシグナルプロセッサシステムおよび信号処理装置に関する。
【背景技術】
【０００２】
複数のデジタルシグナルプロセッサ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ；ＤＳＰ）とフラッシュＲＯＭ（Ｆｌａｓｈ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）とを搭載したＤＳＰカードが知られている。ＤＳＰカードに搭載された複数のＤＳＰは、フラッシュＲＯＭから読み込んだプログラムデータを実行することにより、デジタル信号処理を行う。従来のＤＳＰカードでは、信号処理の目的に応じてプログラムデータを選択したり上位バージョンに更新したりできる、プログラムデータの変更に対する柔軟性と、耐タンパ性とを両立させることが困難であった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−７１１０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、デジタルシグナルプロセッサのプログラムデータの変更に対する柔軟性と耐タンパ性とを両立させることができる、デジタルシグナルプロセッサシステムおよび信号処理装置を提供することである。
【課題を解決するための手段】
【０００５】
実施形態のデジタルシグナルプロセッサシステムは、第１のデジタルシグナルプロセッサと、第２のデジタルシグナルプロセッサと、不揮発性メモリと、揮発性メモリと、復号部とを持つ。不揮発性メモリは、前記第１のデジタルシグナルプロセッサおよび前記第２のデジタルシグナルプロセッサを第１起動させるための起動プログラムデータを記憶する。揮発性メモリは、外部装置から転送される暗号化プログラムデータを記憶する。復号部は、前記暗号化プログラムデータを復号する。そして、前記第１のデジタルシグナルプロセッサおよび前記第２のデジタルシグナルプロセッサそれぞれが、前記不揮発性メモリから前記起動プログラムデータを読み込んで実行し前記第１起動すると、前記第１のデジタルシグナルプロセッサが、前記外部装置から復号命令を受け付け可能な状態になり、その後、前記復号命令を受信すると、前記揮発性メモリに記憶された前記暗号化プログラムデータを前記復号部によって復号させ、前記外部装置から取り込む起動命令にしたがって、前記第２のデジタルシグナルプロセッサに、前記復号されたプログラムデータを実行させて第２起動するよう起動制御し、前記復号されたプログラムデータを実行し前記第２起動する。
【図面の簡単な説明】
【０００６】
【図１】実施形態のデジタルシグナルプロセッサシステムおよび信号処理装置を含む信号処理システム全体の構成図。
【図２】ファイルサーバの処理手順の一例を示すフローチャート。
【図３】ＣＰＵカードの処理手順の一例を示すフローチャート。
【図４】ＣＰＵカードの処理手順の一例を示すフローチャート。
【図５】ＤＳＰカードのマスタＤＳＰの起動の処理手順の一例を示すフローチャート。
【図６】ＤＳＰカードのマスタＤＳＰの起動の処理手順の一例を示すフローチャート。
【図７】ＤＳＰカードのスレーブＤＳＰの起動の処理手順の一例を示すフローチャート。
【発明を実施するための形態】
【０００７】
以下、実施形態のデジタルシグナルプロセッサシステムを、図面を参照して説明する。
図１は、実施形態のデジタルシグナルプロセッサシステムおよび信号処理装置を含む信号処理システム全体の構成図である。同図に示すように、信号処理システムは、ファイルサーバ１００と、信号処理装置５０とを含む。ファイルサーバ１００と信号処理装置５０とは、ネットワーク２００を介して接続される。
【０００８】
ネットワーク２００は、例えば、インターネットプロトコル（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ；ＩＰ）により通信可能なコンピュータネットワークである。ネットワーク２００は、有線によるネットワークおよび無線によるネットワークの組み合わせであってもよいし、いずれかであってもよい。
【０００９】
図１に示すように、ファイルサーバ１００は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１０１と、暗号化部１０２と、ＬＡＮコントローラ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ  Ｃｏｎｔｒｏｌｌｅｒ）１０３と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０４と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０５とを備える。
【００１０】
ＨＤＤ１０１は、信号処理装置５０に搭載されるデジタルシグナルプロセッサが実行するためのプログラムデータ（ＤＳＰプログラムデータ）をファイル化して記憶する。ＨＤＤ１０１は、ＤＳＰによる信号処理目的別に、複数種類のプログラムデータを記憶している。
ＣＰＵ１０４は、ＲＡＭ１０５に展開された信号処理装置管理プログラムのコードを実行することにより、後述する信号処理装置５０の管理処理を行う。ＬＡＮコントローラ１０３は、ＣＰＵ１０４の制御に基づいて、信号処理装置５０と通信を行う。
【００１１】
暗号化部１０２は、ＨＤＤ１０１に格納された複数種類のプログラムデータの中から、ユーザによって選択されたプログラムデータを暗号化して暗号化プログラムデータを生成し、この暗号化プログラムデータをＲＡＭ１０５に記憶する。暗号化部１０２は、例えば、転置法によってプログラムデータの暗号化を行う。
なお、暗号化部１０２は、ハードウェアにより実現されてもよいし、ＣＰＵ１０４が実行するソフトウェアにより実現されてもよい。
【００１２】
信号処理装置５０の管理処理として、ファイルサーバ１００は、例えばユーザの操作によって選択されたプログラムデータを暗号化し、暗号化プログラムデータを生成する。また、ファイルサーバ１００は、生成した暗号化プログラムデータと、この暗号化プログラムデータを復号するための復号鍵とを、信号処理装置５０に送信する。また、ファイルサーバ１００は、信号処理装置５０に暗号化プログラムデータを復号させるための復号命令を信号処理装置５０に送信する。また、ファイルサーバ１００は、信号処理装置５０から復号結果を受信した後、ＤＳＰにプログラムデータを実行させるための起動命令を信号処理装置５０に送信する。
【００１３】
図１に示すように、信号処理装置５０は、ＣＰＵカード４０（外部装置）と、ＤＳＰカード１０−１と、ＤＳＰカード１０−２とを備える。ＣＰＵカード４０と、ＤＳＰカード１０−１と、ＤＳＰカード１０−２とは、バス２０を介して接続されている。バス２０は、例えば、ＶＭＥバス（ＶＥＲＳＡｍｏｄｕｌｅ  Ｅｕｒｏｃａｒｄ  Ｂｕｓ）である。
【００１４】
なお、以下の説明において、ＤＳＰカード１０−１とＤＳＰカード１０−２とを区別しないで述べる場合は、単にＤＳＰカード１０（デジタルシグナルプロセッサシステム）と記載する場合がある。本実施形態において、信号処理装置５０は、２枚のＤＳＰカード１０を備える例であるが、ＤＳＰカード１０の枚数は２枚に限定されず、１枚でもよいし、３枚以上でもよい。
【００１５】
図１に示すように、ＣＰＵカード４０は、ホストＣＰＵ３０と、ＲＡＭＤＩＳＫ３１とを備える。
【００１６】
ホストＣＰＵ３０は、ファイルサーバ１００とＤＳＰカード１０とを中継する処理部であり、また、ＲＡＭＤＩＳＫ３１の制御部である。ホストＣＰＵ３０には、ＲＡＭＤＩＳＫ３１が接続されている。ホストＣＰＵ３０は、制御プログラムを実行することによって動作する。この制御プログラムは、ホストＣＰＵ３０に内蔵されていてもよいし、ファイルサーバ１００からホストＣＰＵ３０にダウンロードされてもよい。
【００１７】
ホストＣＰＵ３０は、ファイルサーバ１００が送信した暗号化プログラムデータを受信すると、この暗号化プログラムデータをＲＡＭＤＩＳＫ３１に記憶（ロード）させる。また、ホストＣＰＵ３０は、ＲＡＭＤＩＳＫ３１から暗号化プログラムデータを読み出して、この暗号化プログラムデータをＤＳＰカード１０に送信する。また、ホストＣＰＵ３０は、ファイルサーバ１００が送信した復号鍵を受信すると、この復号鍵を内蔵するメモリに記憶させる。また、ホストＣＰＵ３０は、そのメモリから復号鍵を読み出して、この復号鍵をＤＳＰカード１０に送信する。
【００１８】
ＲＡＭＤＩＳＫ３１は、機械的な駆動部を具備しない大容量の外部記憶装置である。ＲＡＭＤＩＳＫ３１は、例えば、揮発性の半導体メモリにより構成されたソリッドステートドライブである。ＣＰＵカード４０に搭載されるＲＡＭＤＩＳＫ３１をソリッドステートドライブにより実現することにより、信号処理装置５０を、機械的な駆動部を具備しない装置のみで構成することができる。この構成により、信号処理装置５０の耐震性および防塵性を向上させることができる。
【００１９】
図１に示すように、ＤＳＰカード１０−１は、ＤＳＰ１−１（第１のデジタルシグナルプロセッサ）と、ＤＳＰ１−２（第２のデジタルシグナルプロセッサ）と、バスブリッジ３と、ＲＡＭ４と、復号部５と、ＲＯＭ６とを備える。ＲＡＭ４は、バス９を介してバスブリッジ３に接続されている。ＤＳＰ１−１とＤＳＰ１−２とは、バス７を介してバスブリッジ３に接続されている。復号部５とＲＯＭ６とは、バス８を介してバスブリッジ３に接続されている。
【００２０】
ＤＳＰカード１０−２も、ＤＳＰカード１０−１と同様の構成を有する。よって、本実施形態では、ＤＳＰカード１０−１についてその構成の詳細を説明する。
【００２１】
ＤＳＰ１−１は、マスタＤＳＰとも呼ばれる。また、ＤＳＰ１−２は、スレーブＤＳＰとも呼ばれる。ＤＳＰカード１０には、１個のマスタＤＳＰが搭載される。本実施形態では、ＤＳＰカード１０は、１個のスレーブＤＳＰ（ＤＳＰ１−２）を備える例であるが、スレーブＤＳＰの個数は１個に限定されず、２個以上でもよい。なお、以下の説明において、ＤＳＰ１−１とＤＳＰ１−２とを区別しないで述べる場合は、単にＤＳＰ１と記載する場合がある。
【００２２】
ＲＯＭ６は、ＤＳＰ１−１およびＤＳＰ１−２を起動（第１起動）させるための起動プログラムデータを記憶する。ＲＯＭ６は、例えば、フラッシュＲＯＭ（Ｆｌａｓｈ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の不揮発性メモリにより実現される。
ＲＡＭ４は、ホストＣＰＵ３０により転送される暗号化プログラムデータを格納する揮発性メモリである。また、ＲＡＭ４は、復号部５がＲＡＭ４に記憶された暗号化プログラムを復号することによって得られたプログラムデータを記憶する。
【００２３】
バスブリッジ３は、バス２０と、ＤＳＰカード１０内部のバス７、バス８、およびバス９との間でバスプロトコルを変換するためのバスプロトコル変換部である。また、バスブリッジ３は、ＣＰＵカード４０が転送する復号鍵を記憶するための記憶領域を有する。信号処理装置５０に電源が投入された後、バスブリッジ３の当該記憶領域は、例えば“０（ゼロ）”に初期化される。
【００２４】
図１に示すように、ＤＳＰ１−１およびＤＳＰ１−２それぞれは、内部メモリと、ＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）とを内蔵する。内部メモリは、揮発性メモリである。ＤＳＰ１は、ＲＯＭ６から内部メモリに読み込んだ起動プログラムデータを実行することにより起動（第１起動）する。
ＤＳＰ１−１およびＤＳＰ１−２それぞれが、ＲＯＭ６から起動プログラムデータを読み込んで実行し第１起動すると、ＤＳＰ１−１（マスタＤＳＰ）は、ＣＰＵカード４０から復号命令を受け付け可能な状態になり、その後、復号命令を受信すると、ＲＡＭ４に記憶された暗号化プログラムデータを復号部５によって復号させ、復号されたプログラムデータをＲＡＭ４に記憶させる。
そして、ＤＳＰ１−１は、ＣＰＵカード４０から取り込む起動命令にしたがって、ＲＡＭ４からＤＳＰ１−２（スレーブＤＳＰ）の内部メモリに、ＤＭＡＣを用いてプログラムデータを読み込ませて、このプログラムデータを実行させて起動（第２起動）するよう起動制御する。
そして、ＤＳＰ１−１は、ＲＡＭ４からＤＳＰ１−１自身の内部メモリに、ＤＭＡＣを用いてプログラムデータを読み込んで、このプログラムデータを実行し起動（第２起動）する。
【００２５】
これにより、ＤＳＰ１−１およびＤＳＰ１−２は、起動プログラムデータの実行によって一旦起動（第１起動）した後、リセット動作を伴うことなく、ＲＡＭ４に展開されたプログラムデータを実行するための第２起動を行うことができる。
【００２６】
次に、本実施形態における信号処理システムの動作について説明する。
図２は、ファイルサーバ１００の処理手順の一例を示すフローチャートである。ファイルサーバ１００のＣＰＵ１０４が信号処理装置管理プログラムを実行することにより、ファイルサーバ１００は、同図のフローチャートにしたがった処理を行う。
【００２７】
ステップＳ１において、暗号化部１０２は、ユーザによって選択されたプログラムデータを暗号化して暗号化プログラムデータを生成し、この暗号化プログラムデータと暗号化に用いた鍵（復号に用いる復号鍵）とをＲＡＭ１０５に記憶させる。
次に、ステップＳ２において、ＬＡＮコントローラ１０３は、ＲＡＭ１０５に記憶された暗号化プログラムデータをＣＰＵカード４０に送信する。
次に、ステップＳ３において、ＬＡＮコントローラ１０３は、暗号化プログラムデータを復号するための復号鍵をＣＰＵカード４０に送信する。
なお、ステップＳ２の処理とステップＳ３の処理との順序は、逆であってもよい。
【００２８】
次に、ステップＳ４において、ＬＡＮコントローラ１０３は、復号命令をＣＰＵカード４０に送信する。
次に、ＬＡＮコントローラ１０３がＣＰＵカード４０から復号結果を受信すると（ステップＳ５：ＹＥＳ）、ステップＳ６において、ＬＡＮコントローラ１０３は、起動命令をＣＰＵカード４０に送信する。
【００２９】
図３および図４は、ＣＰＵカード４０の処理手順の一例を示すフローチャートである。ＣＰＵカード４０のホストＣＰＵ３０が制御プログラムを実行することにより、ＣＰＵカード４０は、図３および図４のフローチャートにしたがった処理を行う。
ステップＳ１１において、ホストＣＰＵ３０は、ファイルサーバ１００のＬＡＮコントローラ１０３が送信した暗号化プログラムデータを受信し、この暗号化プログラムをＲＡＭＤＩＳＫ３１に記憶させる。
次に、ステップＳ１２において、ホストＣＰＵ３０は、ＬＡＮコントローラ１０３が送信した復号鍵を受信し内蔵するメモリに記憶させる。
【００３０】
ホストＣＰＵ３０は、ファイルサーバ１００から復号命令を受信すると（ステップＳ１３：ＹＥＳ）、ＲＡＭＤＩＳＫ３１から読み出した暗号化プログラムデータを、各ＤＳＰカード１０のＲＡＭ４に転送（ロード）する（ステップＳ１４〜ステップＳ１６）。このとき、ＤＳＰ１はＲＡＭ４に対するアクセスを行わず、バス７に対してフローティング状態となっている。
【００３１】
次に、ホストＣＰＵ３０は、内蔵するメモリに記憶された復号鍵を、各ＤＳＰカード１０のバスブリッジ３に転送（ロード）する（ステップＳ１７〜ステップＳ１９）。
次に、ホストＣＰＵ３０は、ファイルサーバ１００から復号命令を受信したことにしたがって、復号命令を各ＤＳＰカード１０のＤＳＰ１−１（ホストＤＳＰ）に送信する（ステップＳ２０〜ステップＳ２２）。
【００３２】
次に、ホストＣＰＵ３０は、各ＤＳＰカード１０から復号結果を受信すると（ステップＳ２３：ＹＥＳ）、ステップＳ２４において、その復号結果をファイルサーバ１００に送信する。
次に、ホストＣＰＵ３０は、ファイルサーバ１００から起動命令を受信すると（ステップＳ２５：ＹＥＳ）、起動命令を各ＤＳＰカード１０のＤＳＰ１−１（ホストＤＳＰ）に送信する（ステップＳ２６〜ステップＳ２８）。
【００３３】
図５および図６は、ＤＳＰカード１０のマスタＤＳＰ（ＤＳＰ１−１）の起動の処理手順の一例を示すフローチャートである。
【００３４】
ステップＳ３１において、ＤＳＰ１−１は、ＲＯＭ６から起動プログラムデータを読み込んで実行を開始する。起動プログラムデータの実行を開始したＤＳＰ１−１は、ＲＡＭ４に対するアクセスを行わず、バス７に対してフローティング状態となっている。
次に、ＤＳＰ１−１は、ＣＰＵカード４０から復号命令を受信すると（ステップＳ３２：ＹＥＳ）、ステップＳ３３において、バスブリッジ３から復号鍵を取り込む。
【００３５】
次に、ＤＳＰ１−１は、取り込んだ復号鍵の値と起動プログラムデータの実行により得られる初期値とを比較する。そして、ＤＳＰ１−１は、復号鍵の値と初期値とが等しくない場合（ステップＳ３４：ＹＥＳ）はステップＳ３５の処理に移し、復号鍵の値と初期値とが等しい場合（ステップＳ３５：ＮＯ）はステップＳ３８の処理に移す。復号鍵の値と初期値（例えば“０（ゼロ）”）とが等しい場合とは、バスブリッジ３における復号鍵の記憶領域に復号鍵がロードされていないことを示し、言い換えると、復号しないことを示す。
【００３６】
ステップＳ３５において、ＤＳＰ１−１は、入力アドレスとデータサイズと出力アドレスとを復号部５に設定し、ＲＡＭ４に記憶された暗号化プログラムデータを復号部５により復号させ、復号されたプログラムデータをＲＡＭ４に記憶させる。このとき、スレーブＤＳＰ（ＤＳＰ１−２）は、ＲＡＭ４に対するアクセスを行わず、バス７に対してフローティング状態となっている。
次に、ステップＳ３６において、ＤＳＰ１−１は、バスブリッジ３に記憶された復号鍵を削除する。具体的に、例えば、ＤＳＰ１−１は、バスブリッジ３における復号鍵の記憶領域に“０（ゼロ）”を書き込む。
【００３７】
次に、ステップＳ３７において、ＤＳＰ１−１は、復号結果をＣＰＵカード４０に送信する。具体的に例えば、暗号化プログラムデータの復号処理が正常終了した場合、ＤＳＰ１−１は、正常終了を表す復号結果をＣＰＵカード４０に送信する。一方、暗号化プログラムデータの復号処理が異常終了した場合、ＤＳＰ１−１は、異常終了を表す復号結果をＣＰＵカード４０に送信する。
【００３８】
ＤＳＰ１−１は、ＣＰＵカード４０から起動命令を受信すると（ステップＳ３８：ＹＥＳ）、起動命令をスレーブＤＳＰ（ＤＳＰ１−２）に送信する（ステップＳ３９〜ステップＳ４１）。このとき、スレーブＤＳＰ（ＤＳＰ１−２）は、ＲＡＭ４に対するアクセスを行わず、バス７に対してフローティング状態となっている。
ただし、スレーブＤＳＰが複数ある場合に、ＤＳＰ１−１は、第１起動した複数のスレーブＤＳＰを順次、起動制御する。
【００３９】
次に、ステップＳ４２において、ＤＳＰ１−１は、内蔵するＤＭＡＣのＤＭＡ転送完了ベクタに、内部メモリの先頭アドレスを設定する。
次に、ステップＳ４３において、ＤＳＰ１−１は、ＤＭＡＣを用いて、ＲＡＭ４から復号されたプログラムデータを内部メモリに転送（ロード）する。
次に、ステップＳ４４において、ＤＳＰ１−１は、ＤＭＡＣからのＤＭＡ転送完了割り込みを受けて、ロードされたプログラムデータの先頭から実行を開始する（第２起動）。
【００４０】
図７は、ＤＳＰカード１０のスレーブＤＳＰ（ＤＳＰ１−２）の起動の処理手順の一例を示すフローチャートである。
【００４１】
ステップＳ５１において、ＤＳＰ１−２は、ＲＯＭ６から起動プログラムデータを読み込んで実行を開始する。起動プログラムデータの実行を開始したＤＳＰ１−２は、ＲＡＭ４に対するアクセスを行わず、バス７に対してフローティング状態となっている。
次に、ＤＳＰ１−２は、ＤＳＰ１−１からの起動命令を受信すると（ステップＳ５２：ＹＥＳ）、ステップＳ５３において、ＤＳＰ１−２は、内蔵するＤＭＡＣのＤＭＡ転送完了ベクタに、内部メモリの先頭アドレスを設定する。
次に、ステップＳ５４において、ＤＳＰ１−２は、ＤＭＡＣを用いて、ＲＡＭ４から復号されたプログラムデータを内部メモリに転送（ロード）する。
次に、ステップＳ５５において、ＤＳＰ１−２は、ＤＭＡＣからのＤＭＡ転送完了割り込みを受けて、ロードされたプログラムデータの先頭から実行を開始する。
【００４２】
以上、詳述したとおり、実施形態のＤＳＰカード１０は、マスタＤＳＰであるＤＳＰ１−１と、スレーブＤＳＰであるＤＳＰ１−２と、ＤＳＰ１−１およびＤＳＰ１−２を第１起動させるための起動プログラムデータを記憶するＲＯＭ６と、ＣＰＵカード４０により転送される、暗号化されたプログラムデータである暗号化プログラムデータが記憶されるＲＡＭ４と、暗号化プログラムデータを復号する復号部５とを備える。そして、ＤＳＰカード１０は、ＤＳＰ１−１およびＤＳＰ１−２それぞれが、ＲＯＭ６から起動プログラムデータを読み込んで実行し第１起動すると、ＤＳＰ１−１が、ＣＰＵカード４０から復号命令を受け付け可能な状態になる。その後、ＤＳＰ１−１は、復号命令を受信すると、ＲＡＭ４に記憶された暗号化プログラムデータを復号部５によって復号される。そして、ＤＳＰ１−１は、ＣＰＵカード４０から取り込む起動命令にしたがって、ＤＳＰ１−２に、復号されたプログラムデータを実行させて第２起動するよう起動制御し、復号されたプログラムデータを実行し第２起動する。
【００４３】
この構成により、ＤＳＰカード１０は、ＤＳＰ１−１およびＤＳＰ１−２を第１起動させるための起動プログラムデータのみを予めＲＯＭ６に記憶させ、信号処理を行わせるための暗号化プログラムデータおよび復号後のプログラムデータをＲＡＭ４に記憶させることになる。よって、信号処理用のプログラムデータはＲＯＭ６に記憶されないため、ＲＯＭ６の記憶容量を圧迫することがなく、また、リバースエンジニアリングによってＲＯＭ６からプログラムデータが読み出されることがない。信号処理用のプログラムデータは、ＲＡＭ４に展開されるため、信号処理装置５０の電源が落とされた場合やＤＳＰカード１０が抜き取られた場合にＲＡＭ４から消滅する。よって、ＤＳＰカード１０として、プログラムデータに対する耐タンパ性が高い。また、ＣＰＵカード４０は、任意の暗号化プログラムデータをＲＡＭ４にロードすることができるため、信号処理の目的に応じてプログラムデータを選択できる柔軟性が高い。
【００４４】
なお、ＤＳＰカード１０に複数のスレーブＤＳＰが搭載されている場合、マスタＤＳＰ（ＤＳＰ１−１）が、第１起動した複数のスレーブＤＳＰのいずれかを選択して起動制御するようにしてもよい。
この構成により、信号処理の目的に応じた回路規模のデジタルシグナルプロセッサシステムを実現することができる。
【００４５】
また、復号部５は、複数種類の復号処理方法の中から復号鍵の内容に応じた種類の復号処理方法を選択するように構成してもよい。
この構成により、復号部５自体の耐タンパ性をより高めることができる。
【００４６】
以上説明した少なくともひとつの実施形態によれば、ＤＳＰ１−１およびＤＳＰ１−２それぞれが、ＲＯＭ６から起動プログラムデータを読み込んで実行し第１起動すると、ＤＳＰ１−１が、ＣＰＵカード４０から復号命令を受け付け可能な状態になり、その後、復号命令を受信すると、ＲＡＭ４に記憶された暗号化プログラムデータを復号部５によって復号させ、ＣＰＵカード４０から取り込む起動命令にしたがって、ＤＳＰ１−２に、復号されたプログラムデータを実行させて第２起動するよう起動制御し、復号されたプログラムデータを実行し第２起動することにより、ＤＳＰ１−１およびＤＳＰ１−２のプログラムデータの変更に対する柔軟性と耐タンパ性とを両立させることができる。
【００４７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００４８】
１−１…ＤＳＰ、１−２…ＤＳＰ、３…バスブリッジ、４…ＲＡＭ、５…復号部、６…ＲＯＭ、７…バス、８…バス、９…バス、１０−１…ＤＳＰカード（デジタルシグナルプロセッサシステム）、１０−２…ＤＳＰカード（デジタルシグナルプロセッサシステム）、２０…バス、３０…ホストＣＰＵ、３１…ＲＡＭＤＩＳＫ、４０…ＣＰＵカード、５０…信号処理装置、１００…ファイルサーバ、１０１…ＨＤＤ、１０２…暗号化部、１０３…ＬＡＮコントローラ、１０４…ＣＰＵ、１０５…ＲＡＭ、２００…ネットワーク
【図１】
2015141500.tif 000003
【図２】
2015141500.tif 000004
【図３】
2015141500.tif 000005
【図４】
2015141500.tif 000006
【図５】
2015141500.tif 000007
【図６】
2015141500.tif 000008
【図７】
2015141500.tif 000009