(57)【要約】【課題】信号処理の内容変更を柔軟且つ簡単に行うことが可能な信号処理装置を提供する。【解決手段】命令ＲＯＭ１１に所定の一連の処理として実行されるプログラムモジュールが複数格納されており、その実行順序を、データＲＡＭ１３にプログラムモジュールの格納アドレスを指定する制御情報を書き込むことで制御する。制御情報は、プログラムモジュールを実行すべき順番に格納アドレスを配列してなり、その順番に従ってプログラムモジュールが読み出されて、演算処理が行われる。【選択図】図１
2008276578.tif 000002
【特許請求の範囲】
【請求項１】
複数のプログラムモジュールが格納された第１記憶手段と、
前記プログラムモジュールを実行すべき順番に該プログラムモジュールの前記第１記憶手段における格納アドレスを配列した制御情報が外部制御装置によって書き込まれる第２記憶手段と、
前記第２記憶手段に書き込まれた制御情報に従ってプログラムモジュールを読み出す読出し手段と、
を具備し、前記読み出されたプログラムモジュールに従って所定の演算処理を行う
ことを特徴とする信号処理装置。
【請求項２】
外部制御装置によってプログラムモジュールが書き込まれる第３記憶手段を更に具備し、
前記第２記憶手段には、前記第１および第３記憶手段の各プログラムモジュールを実行すべき順番に該プログラムモジュールの前記第１または第３記憶手段における格納アドレスを配列した制御情報が書き込まれる
ことを特徴とする請求項１に記載の信号処理装置。
【請求項３】
前記プログラムモジュールは、プログラムモジュール本体と１または複数の関数モジュールからなり、該プログラムモジュール本体および該関数モジュール毎に前記第１または第３記憶手段に格納されることを特徴とする請求項１または請求項２に記載の信号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は信号処理装置に係り、特に、信号処理の内容が変更可能な信号処理装置に関する。
【背景技術】
【０００２】
ＤＳＰ（デジタルシグナルプロセッサ）等の信号処理装置は、一般に、読出し専用のＲＯＭに予め信号処理内容を規定したプログラムが書き込まれており、このＲＯＭに書き込まれているプログラムに従って、所定の信号処理を実現する。しかし、ＤＳＰを製品として出荷する際に上記プログラムの全てのバグを取り切ることは難しく、出荷後にバグを修正する必要が生じることがあり、また、ＤＳＰに追加の機能を持たせたいという要求もある。
これに対応するために、信号処理装置において信号処理の内容を後から変更できるようにする技術が従来提案されている。
【０００３】
例えば、図５を参照して、信号処理の内容が変更可能な従来の信号処理装置では、命令ＲＯＭに第１のプログラムが格納されており、命令ＲＡＭに第１のプログラムを補完する第２のプログラムを格納するとともに、レジスタに第１と第２のプログラムの分岐を制御する命令分岐情報を格納する（特許文献１参照）。命令分岐情報として、具体的には、第１のプログラムの分岐元を示すアドレス「ａ−１番地」と、第２のプログラムへの分岐先を示すアドレス「ｃ番地」と、第１のプログラムへの復帰先を示すアドレス「ｂ＋１番地」が設定される。これにより、第１のプログラムがａ−１番地まで実行された後に処理は第２のプログラムのｃ番地へ移り、第２のプログラムがｃ番地からｄ番地（ｄ番地には終了を示す命令コードが格納されている）まで実行され、その後処理は第１のプログラムのｂ＋１番地へ復帰する。こうして、第１のプログラムのａ番地からｂ番地までが第２のプログラムのｃ番地からｄ番地までに置換されることで、信号処理の内容が事後的に変更可能とされる。
【０００４】
また、信号処理の内容が変更可能な従来の信号処理装置の他の例としては、図６に示すようなものが存在する。この信号処理装置では、命令ＲＯＭに制御用プログラムモジュール１と複数のプログラムモジュール１，２，…が格納されており、制御用プログラムモジュール１に記述されている実行順に従って、各プログラムモジュール１，２，…が実行されるようになっている。なお、プログラムモジュールは、プログラムが実行される際の所定の処理単位であり、複数のプログラムモジュールの集合として１つのプログラムが構成される。そして、命令ＲＯＭの上記プログラム（制御用プログラムモジュール１、およびプログラムモジュール１，２，…）を修正または機能追加する場合には、命令ＲＡＭに当該修正または追加機能に相当するプログラムモジュール３と新たな制御用プログラムモジュール２を格納する。この新たな制御用プログラムモジュール２に命令ＲＯＭの制御用プログラムモジュール１から制御を移すことにより、制御用プログラムモジュール２に記述されている実行順に従って、各プログラムモジュール１，２，３，…が実行される。こうして、新たに制御用プログラムモジュール２を作成し命令ＲＡＭに格納することで、信号処理の内容を事後的に変更可能とする。
【特許文献１】特開２００４−１３３６０２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記したような従来の信号処理装置においては、信号処理の内容変更を柔軟且つ簡単に行うことが難しいという問題がある。
即ち、図５に示したものは、第１のプログラムの一部を第２のプログラムで置き換えたり、第１のプログラムの途中に第２のプログラムを挿入したりするものであって、第１のプログラム自体は、命令ＲＯＭの番地順に命令コードが書かれている通りの順番で、その処理が実行されていくようになっている。そのため、第１のプログラムの内部処理の順番を変更しようとする場合には、例えば、変更する部分に相当する第２のプログラムを命令ＲＡＭに格納するとともに、第１のプログラムから第２のプログラムへの分岐・復帰を制御する命令分岐情報をレジスタ等に設定する必要がある。このように、プログラム設計者は第２のプログラムと命令分岐情報の両方を新たに作成しなければならないため、第１のプログラムの内部処理の順番変更は複雑になり、柔軟性に欠ける。そして、順番を変更する部分が増えるほど、作成すべき第２のプログラムと命令分岐情報は増加し、順番変更の複雑さも増大していってしまう。
【０００６】
また、図６に示したものにおいては、命令ＲＯＭに格納されている各プログラムモジュール１，２，…の実行順を変更したり、修正用または機能追加用のプログラムモジュール３を追加したりする際には、それぞれに対応した制御用プログラムモジュール２を逐一作成して命令ＲＡＭに格納することが必要となる。このため、命令ＲＯＭのプログラム変更は簡単ではなかった。
【０００７】
本発明は上記の点に鑑みてなされたものであり、その目的は、信号処理の内容変更を柔軟且つ簡単に行うことが可能な信号処理装置を提供することにある。
【課題を解決するための手段】
【０００８】
本発明は上記の課題を解決するためになされたものであり、複数のプログラムモジュールが格納された第１記憶手段と、前記プログラムモジュールを実行すべき順番に該プログラムモジュールの前記第１記憶手段における格納アドレスを配列した制御情報が外部制御装置によって書き込まれる第２記憶手段と、前記第２記憶手段に書き込まれた制御情報に従ってプログラムモジュールを読み出す読出し手段と、を具備し、前記読み出されたプログラムモジュールに従って所定の演算処理を行うことを特徴とする信号処理装置である。
【０００９】
この発明において、第１記憶手段（例えば読出し専用の命令ＲＯＭ）に所定の一連の処理として実行されるプログラムモジュールが複数格納されており、その実行順序を、第２記憶手段（例えば書換え可能なデータＲＡＭ）にプログラムモジュールの格納アドレスを指定する制御情報を書き込むことで制御する。制御情報は、プログラムモジュールを実行すべき順番に格納アドレスを配列してなり、その順番に従ってプログラムモジュールが読み出されて、演算処理が行われる。
したがって、本発明によれば、第１記憶手段には各プログラムモジュールを任意の順番（任意のアドレス）に格納してよく、所望の順番にプログラムモジュールのアドレスを配列した制御情報を作成して第２記憶手段に書き込むことで、各プログラムモジュールを当該所望の順番で実行させることができる。これにより、プログラムモジュールの実行順序を変更しようとする場合にも、第１記憶手段に一切手を加えることなく、また実行順序の変更を反映した修正プログラムや実行順序を変更させるための制御用プログラムを新たに作成することを必要とせずに、制御情報におけるアドレスの配列を修正するだけで、プログラムモジュールの実行順序の変更に対応することが可能である。このように、本発明によれば、信号処理の内容変更を柔軟且つ簡単に行うことが可能となる。
【００１０】
また、上記信号処理装置において、外部制御装置によってプログラムモジュールが書き込まれる第３記憶手段を更に具備し、前記第２記憶手段には、前記第１および第３記憶手段の各プログラムモジュールを実行すべき順番に該プログラムモジュールの前記第１または第３記憶手段における格納アドレスを配列した制御情報が書き込まれることを特徴とする。
【００１１】
この発明によれば、第３記憶手段（例えば書換え可能な命令ＲＡＭ）に追加や差替え用のプログラムモジュールを新たに格納して、制御情報を第３記憶手段の当該プログラムモジュールのアドレスをも含んだものとすることで、プログラムの修正や機能追加にも柔軟且つ簡単に対応することが可能である。
【００１２】
また、上記信号処理装置において、前記プログラムモジュールは、プログラムモジュール本体と１または複数の関数モジュールからなり、該プログラムモジュール本体および該関数モジュール毎に前記第１または第３記憶手段に格納されることを特徴とする。
【００１３】
この発明によれば、プログラムモジュール本体ではなく関数モジュール単位で信号処理の内容変更を柔軟且つ簡単に行うことが可能である。
【発明の効果】
【００１４】
本発明によれば、信号処理装置において、信号処理の内容変更を柔軟且つ簡単に行うことが可能となる。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照しながら本発明の実施形態について詳しく説明する。
図１は、本発明の一実施形態による信号処理装置であるＤＳＰ（デジタルシグナルプロセッサ）の機能的な構成を示したブロック図である。ＤＳＰ１０は、命令ＲＯＭ１１と、命令ＲＡＭ１２と、データＲＡＭ１３と、読出しアドレス制御部１４と、プログラム読出し部１５と、演算処理部１６と、を含んで構成される。
【００１６】
命令ＲＯＭ（リードオンリメモリ）１１は、読出し専用の記憶装置であり、ここにＤＳＰ１０が実施する信号処理の内容を規定したプログラムが予め格納されている。このプログラムは、実行時に所定の処理単位となるプログラムモジュールが複数集まって構成されたものである。命令ＲＯＭ１１には、各プログラムモジュールがプログラムモジュール毎に所定のアドレスに配置されて格納される。これらプログラムモジュールが順次読み出されて演算処理部１６で実行されることにより、ＤＳＰ１０の信号処理が実現される。
【００１７】
なお、ここで、各プログラムモジュールの実行順は後述するようにデータＲＡＭ１３の制御情報によって制御するので、各プログラムモジュールが配置されるアドレスは、プログラムモジュールの実際の実行順とは無関係となっていてよい（例えば、後に実行されるプログラムモジュールを、先に実行されるプログラムモジュールよりも番地の小さいアドレスに配置してもよい）。
また、プログラムモジュールは、プログラムモジュール本体と、当該プログラムモジュールで呼び出して利用するいくつかの関数モジュールとから構成されるものであってもよい。
【００１８】
命令ＲＡＭ（ランダムアクセスメモリ）１２は、随時書込み可能な記憶装置であり、ここには、ＤＳＰ１０が実施する信号処理の内容を規定したプログラムであってその信号処理の内容を変更・修正・追加等するためのプログラムが、事後的に、外部の制御装置であるホストシステム２０によって書き込まれる。このプログラムは、上記変更・修正・追加等に係る処理部分に対応したプログラムモジュール（あるいはプログラムモジュール本体と関数モジュール、若しくは関数モジュールのみ）である。命令ＲＡＭ１２には、命令ＲＯＭ１１と同様に、プログラムモジュールがプログラムモジュール毎に所定のアドレスに配置されて書き込まれる。
【００１９】
データＲＡＭ１３は、随時書込み可能な記憶装置であり、ここには、命令ＲＯＭ１１と命令ＲＡＭ１２に格納されたプログラムモジュールの実行すべき順序を制御するための制御情報がホストシステム２０によって書き込まれる。制御情報は、プログラムモジュールの命令ＲＯＭ１１または命令ＲＡＭ１２における格納アドレスがその実行順に従って配列されて構成された情報である。この制御情報に示されたアドレスの順番に沿って命令ＲＯＭ１１または命令ＲＡＭ１２から順次プログラムモジュールが読み出されることで、各プログラムモジュールの実行順序が制御される。
【００２０】
読出しアドレス制御部１４は、データＲＡＭ１３へアクセスして上記の制御情報を取得し、取得した制御情報に示されているアドレスを１つずつ順にプログラム読出し部１５へ指示する。
プログラム読出し部１５は、読出しアドレス制御部１４から指示されたアドレスに従って、命令ＲＯＭ１１または命令ＲＡＭ１２からプログラムモジュールを読み出して、読み出したプログラムモジュールを演算処理部１６へ渡す。
演算処理部１６は、プログラム読出し部１５から供給されたプログラムモジュールを供給された順に実行していく。
【００２１】
このような構成により、ＤＳＰ１０は、制御情報に示されたアドレスの順番に従って命令ＲＯＭ１１または命令ＲＡＭ１２のプログラムモジュールを実行することで、所定の信号処理を実現する。したがって、制御情報をなすアドレスを適宜変更することにより、柔軟且つ簡単に信号処理の内容を変更することができる。例えば、命令ＲＯＭ１１に格納済みのプログラムモジュールの一部についてその実行順を変えるというプログラム修正を行う場合には、その部分のプログラムモジュールのアドレスの順番を変更した制御情報を作成して、データＲＡＭ１３に書き込む（データＲＡＭ１３を更新）するだけでよい。また、命令ＲＯＭ１１に格納済みのあるプログラムモジュールを交換するプログラム修正を行う場合には、当該プログラムモジュールの修正版を命令ＲＡＭ１２に書き込むとともに、制御情報における当該プログラムモジュールのアドレスを（修正前の命令ＲＯＭ１１のものから）命令ＲＡＭ１２の上記書き込まれたアドレスに修正すればよい。さらに、ＤＳＰ１０に新たな機能（処理）を追加する場合には、同様に、当該機能に対応した新たなプログラムモジュールを命令ＲＡＭ１２に書き込むとともに、制御情報に当該新たなプログラムモジュールを書き込んだ命令ＲＡＭ１２のアドレスを追加で設定すればよい。
【００２２】
図２と図３は、命令ＲＯＭ１１、命令ＲＡＭ１２、およびデータＲＡＭ１３の具体的な構成例を示した図である。
図２において、命令ＲＯＭ１１には、プログラムモジュール１，２，３，４，５がそれぞれアドレスａ，ｂ，ｃ，ｄ，ｅ番地を先頭として格納されている。そして、データＲＡＭ１３の制御情報は、構成例１の場合、これらプログラムモジュールの格納アドレスがアドレスａ，ｂ，ｄ，ｅ，ｃの順に配列されてなる。したがって、この例では、命令ＲＯＭ１１内のプログラムモジュールがアドレスａ，ｂ，ｄ，ｅ，ｃ番地の順に読み出される結果、プログラムモジュールは１，２，４，５，３の順に実行されることになる。
【００２３】
ここで、例えばプログラムモジュール１と２の実行順を変更するには、構成例２のように、データＲＡＭ１３の制御情報において最初の２つのアドレスａとｂの順番を入れ替えればよい。命令ＲＯＭ１１は変更する必要がない。
また、命令ＲＯＭ１１のプログラムモジュール２を修正したいときは、修正版のプログラムモジュール２Ａを作成して命令ＲＡＭ１２の例えばアドレスｆ番地へ書き込み、データＲＡＭ１３の制御情報を構成例３のように修正すればよい（アドレスｂをアドレスｆに書き換える）。
また、構成例１のプログラムモジュール２と４の間に新しいプログラムモジュールＸを追加するには、このプログラムモジュールＸを命令ＲＡＭ１２の例えばアドレスｇ番地へ書き込み、データＲＡＭ１３の制御情報を構成例４のように修正すればよい（アドレスｂとｄの間にアドレスｇを挿入する）。
【００２４】
このように、データＲＡＭ１３の制御情報を適宜修正するとともに、必要に応じて命令ＲＡＭ１２にプログラムモジュールを格納することで、柔軟に且つ簡単にＤＳＰ１０が実施する信号処理の内容を変更することができる。
【００２５】
次に図３は、プログラムモジュールがプログラムモジュール本体と関数モジュールとからなる場合の構成例を示している。
図３において、命令ＲＯＭ１１には、プログラムモジュール１，２がアドレスａ，ｂ番地を先頭として格納されているとともに、関数モジュールＡ１，Ｂ１，Ｃ１，Ａ２，Ｂ２がそれぞれアドレスｐ，ｑ，ｒ，ｓ，ｔ番地を先頭として格納されている。また、命令ＲＡＭ１２には、例えば機能追加用のプログラムモジュール３がアドレスｃ番地を先頭として格納されるとともに、命令ＲＯＭ１１の関数モジュールＢ２の修正版である関数モジュールＢ２´がアドレスｕ番地を先頭として格納されている。ここで、プログラムモジュール１は関数モジュールＡ１，Ｂ１，およびＣ１を呼び出して利用し、プログラムモジュール３は関数モジュールＡ２，Ｂ２，およびＣ１を呼び出して利用するものとする。
そして、データＲＡＭ１３の制御情報は、各プログラムモジュールと各関数モジュールの格納アドレスが、アドレスａ，ｐ，ｑ，ｒ，ｃ，ｓ，ｕ，ｒの順に配列されてなる。これにより、ＤＳＰ１０の信号処理の内容を、関数モジュールの単位で柔軟且つ簡単に変更することが可能となっている。
【００２６】
なお、上記説明において、制御情報はプログラムモジュールや関数モジュールが格納されている先頭アドレスにより構成されているとしたが、これに加えて、各モジュールが格納されている終了アドレスをも含むように構成して、プログラム読出し部１５はこの終了アドレスにより各モジュールを読み出す終了位置を把握するようにしてもよい。
【００２７】
図４は、ＤＳＰ１０の動作の流れを示すフローチャートである。
まず、ＤＳＰ１０の停止中に、ホストシステム２０によってデータＲＡＭ１３へ制御情報が書き込まれ、また必要に応じて命令ＲＡＭ１２へプログラムモジュールや関数モジュールが書き込まれる（ステップＳ１）。
【００２８】
次に、ホストシステム２０によってＤＳＰ１０が起動されると（ステップＳ２）、読出しアドレス制御部１４がデータＲＡＭ１３から制御情報のアドレスを取得し、そのアドレスをプログラム読出し部１５へ指示する（ステップＳ３）。これを受けて、プログラム読出し部１５は指示されたアドレス（命令ＲＯＭ１１または命令ＲＡＭ１２）からプログラムモジュールあるいは関数モジュールを読み出して、演算処理部１６へ渡す（ステップＳ４）。
【００２９】
演算処理部１６は供給されたプログラムモジュールまたは関数モジュールを実行し（ステップＳ５）、その実行が終了すると、読出しアドレス制御部１４はデータＲＡＭ１３の制御情報にまだ読み出していないアドレスがあるか否かをチェックする（ステップＳ６）。まだ読み出していないアドレスがある場合は、再びステップＳ３からステップＳ６までの動作を繰り返す。そして、制御情報のアドレスが全て読み出されてそれに対応するプログラムモジュールまたは関数モジュールの実行が終了すると、ＤＳＰ１０は動作を終了する。
【００３０】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
【００３１】
例えば、制御情報に同一のプログラムモジュールの格納アドレスを複数設定するようにすることで、当該プログラムモジュール自体は命令ＲＯＭ１１または命令ＲＡＭ１２に１つだけ格納しつつ当該プログラムモジュールを１の信号処理の中で複数回読み出して実行するようにすることができる。具体的には、図２において例えばデータＲＡＭ１３の制御情報をアドレスａ，ａ，ａのようにすると（アドレスａの３回繰り返し）、プログラムモジュール１を３回実行する信号処理が実現できるが、命令ＲＯＭ１１にはプログラムモジュール１は１つだけ格納されたままの状態でよい。したがって、命令ＲＯＭ１１や命令ＲＡＭ１２の使用量を少なくすることができ、メモリを効率的に利用できる。
【００３２】
なお、命令ＲＯＭ１１や命令ＲＡＭ１２やデータＲＡＭ１３は、ＤＳＰ１０の外部に設ける構成としてもよい。
【図面の簡単な説明】
【００３３】
【図１】本発明の一実施形態による信号処理装置であるＤＳＰの機能的な構成を示したブロック図である。
【図２】命令ＲＯＭ、命令ＲＡＭ、およびデータＲＡＭの具体的な構成例を示した図である。
【図３】命令ＲＯＭ、命令ＲＡＭ、およびデータＲＡＭの具体的な構成例（関数モジュールを含む構成）を示した図である。
【図４】ＤＳＰの動作の流れを示すフローチャートである。
【図５】従来の信号処理装置における信号処理の内容を変更可能とするメモリ構成の一例である。
【図６】従来の信号処理装置における信号処理の内容を変更可能とするメモリ構成の別の例である。
【符号の説明】
【００３４】
１０…ＤＳＰ（信号処理装置）  １１…命令ＲＯＭ  １２…命令ＲＡＭ  １３…データＲＡＭ  １４…読出しアドレス制御部  １５…プログラム読出し部  １６…演算処理部  ２０…ホストシステム
【図１】
2008276578.tif 000003
【図２】
2008276578.tif 000004
【図３】
2008276578.tif 000005
【図４】
2008276578.tif 000006
【図５】
2008276578.tif 000007
【図６】
2008276578.tif 000008