JP2004054850A - ディジタルシグナルプロセッサおよび演算装置 - Google Patents
ディジタルシグナルプロセッサおよび演算装置 Download PDFInfo
- Publication number
- JP2004054850A JP2004054850A JP2002215264A JP2002215264A JP2004054850A JP 2004054850 A JP2004054850 A JP 2004054850A JP 2002215264 A JP2002215264 A JP 2002215264A JP 2002215264 A JP2002215264 A JP 2002215264A JP 2004054850 A JP2004054850 A JP 2004054850A
- Authority
- JP
- Japan
- Prior art keywords
- address
- instruction
- memory
- module
- stored
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【解決手段】仕様変更および機能追加に伴って命令の変更が生じる場合に、変更が生じた命令のみを前記ランダムアクセスメモリ2Bに新たに格納し、アドレス管理メモリ2Cに格納されている変更が生じる前の命令の前記リードオンリメモリ2A上のアドレスの替わりに、変更を施した命令のランダムアクセスメモリ2B上のアドレスをアドレス管理メモリ2Cに格納し、アドレス管理メモリ2Cを用いて各命令のアドレスを演算処理部1がアドレス管理する。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、命令を格納する命令メモリが変更不可能なリードオンリメモリと変更可能なランダムアクセスメモリとからなるディジタルシグナルプロセッサに関し、特にファームウェアの修正を柔軟に行えるディジタルシグナルプロセッサに関する。
【0002】
【従来の技術】
以下、従来のディジタルシグナルプロセッサ(以下、DSPという。)について図11または図12に基づいて説明する。図11は従来のDSPの全体ブロック構成図、図12は従来のDSPにおける動作説明図を示す。
【0003】
前記図11において従来のDSPは、命令に従って処理を行う演算処理部1と、リードオンリメモリ2A(以下「リードオンリメモリ」を「ROM」と略す)およびランダムアクセスメモリ2B(以下「ランダムアクセスメモリ」を「RAM」と略す)からなり命令を格納する命令メモリ2と、ROM3AおよびRAM3Bからなり各種定数を格納するテーブルメモリ3と、RAMからなり情報を一時的に保持するデータメモリ4と、前記命令メモリ2に格納される命令を演算処理部1が認識可能な形式に復号する命令復号部5と、入出力部6とを備える構成である。
【0004】
前記命令メモリ2は、図12に示すように、前記ROM2AにサブルーチンとなるmoduleA、moduleC、moduleDおよびmoduleBが格納され、前記RAM2Bにメインルーチンが格納されているものである。
前記データメモリ4の一部を、アドレスを格納するためのアドレス保持領域4aに割り当てる。
前記演算処理部1が「call」の処理により、現在実行している処理のアドレスに1インクリメントとした値を実行対象とする命令の名前に対応付けてアドレス保持領域4aに格納し、「call」の引数となっている命令を実行対象とする。ここで、「call」の引数となる各命令のアドレスは固定的に対応付けられている。
【0005】
まず、動作としては、命令復号部5がメインルーチンを読み出し、演算処理部1がメインルーチン上の処理を順次実行する。このメインルーチン上の処理で、アドレス2Bに位置する「call moduleA」の処理により、演算処理部1が現在実行している処理のアドレス2Bに1インクリメントとした値を実行対象とするmoduleAに対応付けてアドレス保持領域4aに格納し、ROM2A上の命令moduleAを実行対象とする(矢印a101)。「call moduleA」は、ROM2AにおけるmoduleAの先頭アドレス1Eの情報を含む。
【0006】
従ってそのアドレス1Eから始まるmoduleAを実行対象とし、演算処理部1がmoduleA上の処理を順次実行する。このmoduleA上の処理で、アドレス1Fに位置する「call moduleC」の処理により、演算処理部1が現在実行しているmoduleA上のアドレス1Fに1インクリメントとした値を実行対象とするmoduleCに対応付けてアドレス保持領域4aに格納し、ROM2A上の命令moduleCを実行対象とする(矢印a102)。「call moduleC」は、ROM2AにおけるmoduleCの先頭アドレス1Gの情報を含む。
【0007】
従ってそのアドレス1Gから始まるmoduleCを実行対象とし、moduleC上の処理を順次実行する。このmoduleC上の処理で、アドレス1Hに位置する「call moduleD」の処理により、演算処理部1が現在実行しているmoduleC上のアドレス1Hに1インクリメントとした値を実行対象とするmoduleDに対応付けてアドレス保持領域4aに格納し、ROM2A上の命令moduleDを実行対象とする(矢印a103)。「call moduleD」は、ROM2AにおけるmoduleDの先頭アドレス1Jの情報を含む。
【0008】
従ってそのアドレス1Jから始まるmoduleDを実行対象とし、moduleD上の処理を順次実行し、moduleD上の最後の処理「return」により、演算処理部1がアドレス保持領域4aに保持したmoduleDに対応付けたアドレス1H+1に実行対象を戻す(矢印a104)。moduleCに戻り、アドレス1H+1以降のmoduleCの処理を順次実行し、moduleCの最後の処理「return」により、演算処理部1がアドレス保持領域4aに保持したmoduleCに対応付けたアドレス1F+1に実行対象を戻す(矢印a105)。moduleAに戻り、アドレス1F+1以降のmoduleAの処理を順次実行し、moduleAの最後の処理「return」により、演算処理部1がアドレス保持領域4aに保持したmoduleAに対応付けたアドレス2B+1に実行対象を戻す(矢印a106)。
【0009】
メインルーチンに戻り、アドレス2B+1以降のメインルーチンの処理を順次実行し、このメインルーチン上の処理で、アドレス2Cに位置する「call moduleB」の処理により、演算処理部1が現在実行しているメインルーチン上のアドレス2Cに1インクリメントとした値を実行対象とするmoduleBに対応付けてアドレス保持領域4aに格納し、ROM2A上の命令moduleBを実行対象とする(矢印a107)。moduleBを実行対象とし、moduleB上の処理を順次実行し、moduleB上の最後の処理「return」により、演算処理部1がアドレス保持領域4aに保持したmoduleBに対応付けたアドレス2C+1に実行対象を戻す(矢印a108)。以後、演算処理部1がメインルーチン上のアドレス2C+1以下の処理を順次実行する。
【0010】
【発明が解決しようとする課題】
従来のDSPは以上のように構成され、ROM2A、3Aに格納するそれぞれの命令、テーブルデータを先行開発した後、RAM2B、3Bの書き込みを含めたDSP設計、仕様変更および機能追加のファーム開発を並行して進めることができる。しかし、仕様変更等に伴い変更が生じる一部の命令及びテーブルデータの読み出し態様によっては、変更しない命令及びテーブルデータも変更した命令及びテーブルデータと共にRAM2B、3Bに格納する必要が出てくる。
【0011】
以下、問題の所存を明確にするべく、前記従来のDSPに対する処理の機能追加について具体的に説明する。図13は従来のDSPにおける命令変更後の動作説明図を示す。ここでは、moduleD上の機能αのあとに機能γを挿入する場合について説明する。なお、従来のDSPの構成自体の変更はない。
【0012】
前記命令メモリ2は、図13に示すように、ROM2AがROMの特質上により変更できないため依然前記ROM2AにmoduleA、moduleC、moduleD、moduleBが格納されており、一方前記RAM2Bにメインルーチンの他に、新たにmoduleA´、moduleC´、moduleD´が格納されているものである。新たにRAM2Bに格納されたmoduleA´、moduleC´は、それぞれmoduleA、moduleCと同一の処理をするものであり、moduleD´はmoduleD上の機能αのあとに機能γを挿入したものである。また、メインルーチン上の変更は、アドレス2Bに位置する処理「call moduleA」から「call moduleA´」へ変更するのみである。
【0013】
動作の説明について詳細は省くが大まかに説明すると、演算処理部1により、メインルーチンが実行され、メインルーチン上の処理によりmoduleA´を実行対象とし(矢印a101)「call moduleA´」に示されるRAM2Bに格納されたmoduleA´の先頭アドレス2Gを読み出し、moduleA´が実行され、moduleA´上の処理によりmoduleC´を実行対象とし(矢印a102)「call moduleC´」に示されるRAM2Bに格納されたmoduleC´の先頭アドレス2Iを読み出し、moduleC´が実行され、moduleC´上の処理によりmoduleD´を実行対象とし(矢印a103)「call moduleD´」に示されるRAM2Bに格納されたmoduleD´の先頭アドレス2Kを読み出し、moduleD´が実行され、機能αの次に機能γが実行され、moduleC´に実行対象を戻して(矢印a104)残りのmoduleC´が実行され、moduleA´に実行対象を戻して(矢印a105)残りのmoduleA´が実行され、メインルーチンに実行対象を戻して(矢印a106)残りのメインルーチンが実行され、moduleBに実行対象を戻して(矢印a107)、moduleBが実行され、メインルーチンに実行対象を戻して(矢印a108)、以後メインルーチン上の処理を順次実行する。
【0014】
従来のDSPは、このように一見すると冗長な変更をRAM2Bに施さなければ仕様変更等に伴う変更に対応できず、変更の大きさが予見できなければできないほど、ROMより高価なRAMを余分に備えなければならないという問題を有する。ここで、一般に、命令が下位であれば下位であるほど、つまり、命令の中で呼び出される命令の階層が深ければ深いほど、冗長な変更を施さなければならない。
【0015】
本発明は、上記課題を解決するためになされたもので、仕様又は機能に変更が生じた場合でも出来るだけ小さな変更を施すことで対応でき、変更を想定した余分なRAMの記録容量をできるだけ小さくしたDSPを提供することを目的とする。
【0016】
【課題を解決するための手段】
本発明に係るディジタルシグナルプロセッサは、変更不可能なリードオンリメモリ及び変更可能なランダムアクセスメモリからなり命令を格納する命令メモリと、前記命令により処理される情報を一時的に保持するデータメモリと、前記命令に基づいて情報の処理を実行する演算処理部とを備えたディジタルシグナルプロセッサにおいて、前記命令メモリに格納される命令のアドレスをランダムアクセスメモリからなるアドレス管理メモリに格納し、前記演算処理部が当該アドレス管理メモリに格納されている命令のアドレスを用いて動作するものである。このように本発明においては、前記命令メモリから命令を読み出して命令中の処理を演算処理部が実行し、命令中に命令を呼び出す処理があった場合に、演算処理部が呼び出す命令のアドレスを前記アドレス管理メモリから読み出し、当該アドレスに基づいて呼び出す命令を実行しているので、仕様変更および機能追加に伴って命令の変更が生じる場合に、変更が生じた命令のみを前記ランダムアクセスメモリに新たに格納し、アドレス管理メモリに格納されている変更が生じる前の命令の前記リードオンリメモリ上のアドレスの替わりに、変更を施した命令のランダムアクセスメモリ上のアドレスをアドレス管理メモリに格納し、アドレス管理メモリを用いて各命令のアドレスを演算処理部がアドレス管理することで、ランダムアクセスメモリ上の領域を出来るだけ消費せずに変更に対応することができ、変更を想定した余分なランダムアクセスメモリをできるだけ小さくすることができ、コスト、消費電力およびスペースの低減化を可能とすることができる。
【0017】
また、本発明に係るディジタルシグナルプロセッサは必要に応じて、前記ランダムアクセスメモリに格納される命令をメインルーチンとすると共に、前記リードオンリメモリに格納される複数命令を前記メインルーチンの命令に対するサブルーチンとし、前記サブルーチンである複数の命令を変更する場合に、当該変更に係る命令を前記ランダムアクセスメモリに格納し、前記変更に係る命令のアドレスを前記ランダムアクセスメモリのアドレス管理メモリに格納するものである。このように本発明においては、まず命令メモリからメインルーチンを読み出してメインルーチン中の処理を演算処理部が実行し、メインルーチン中にサブルーチンを呼び出す処理があった場合に、演算処理部が呼び出すサブルーチンのアドレスを前記アドレス管理メモリから読み出し、当該アドレスに基づいて呼び出す命令を実行しているので、仕様変更および機能追加に伴って命令の変更が生じる場合に、変更が生じたサブルーチンのみを前記ランダムアクセスメモリに新たに格納し、アドレス管理メモリに格納されている変更が生じる前のサブルーチンの前記リードオンリメモリ上のアドレスの替わりに、変更を施したサブルーチンのランダムアクセスメモリ上のアドレスをアドレス管理メモリに格納し、アドレス管理メモリを用いて各サブルーチンのアドレスを演算処理部がアドレス管理することで、ランダムアクセスメモリ上の領域を出来るだけ消費せずに変更に対応することができ、変更を想定した余分なランダムアクセスメモリをできるだけ小さくすることができ、コスト、消費電力およびスペースの低減化を可能とすることができる。
【0018】
また、本発明に係るディジタルシグナルプロセッサは必要に応じて、前記演算処理部が前記アドレス管理メモリの命令のアドレスを用いて情報の処理を実行するか、又は前記ランダムアクセスメモリ及びリードオンリメモリに格納される命令内の移動先情報を用いて情報の処理を実行するかを切り替えて実行するものである。このように本発明においては、演算処理部が命令のアドレスをアドレス管理メモリから読み出して情報の処理を実行することも、演算処理部が前記ランダムアクセスメモリ及びリードオンリメモリに格納される命令を構成する移動先情報を用いて情報の処理をすることも切り替えて選択的にできるので、仕様変更および機能追加に伴って命令を変更した後に、演算処理部がアドレス管理メモリを用いて変更後の命令のみを実行するだけではなく、演算処理部がアドレス管理メモリを用いず変更前の命令を実行することもできる。
【0019】
また、本発明に係るディジタルシグナルプロセッサは必要に応じて、前記演算処理部が前記アドレス管理メモリの命令のアドレスを用いて動作するか否かの各命令のフラグを前記ランダムアクセスメモリのフラグ領域に格納し、前記演算処理部が命令毎に当該フラグに基づいて動作するものである。このように本発明においては、命令毎のフラグをフラグ領域に格納し、このフラグに基づいてフラグに対応する命令に関してアドレス管理メモリの命令のアドレスを用いて演算処理部が動作するか否かを決定して動作しているので、仕様変更および機能追加に伴って命令を変更した後に、変更後の命令のみを実行するだけではなく、フラグの設定によっては変更前の命令を命令毎に実行することもできる。
【0020】
また、本発明に係る演算装置は、書き換え可能でない第1のメモリと、書き換え可能な第2のメモリと、該第1のメモリに格納されたプログラムの実行を行う演算処理部とを備えた演算装置において、該第1のメモリに格納されたいづれかの1のプログラムの命令文に前記第2のメモリの所定アドレスを特定する情報を含め、該アドレスに対応する前記第2のメモリの記録領域に前記第1のメモリに格納された前記1のプログラムの他のプログラムの先頭又は他のアドレスを格納し、前記演算処理部は、前記1のプログラムの命令文に含まれる前記所定のアドレス情報に従って、前記先頭又は他のアドレスを読み出し、前記第1のメモリの該先頭又は他のアドレスからの前記1のプログラムの他のプログラムの実行に移行するものである。このように本発明においては、予め第1のメモリに格納された複数のプログラムの各命令を適宜組み合わせて新たなプログラムとして実行でき、予め格納された複数のプログラムのいづれかを変更する場合に変更後の命令をRAMに格納し、この変更後の命令と変更に係るプログラムとを組み合わせて新たなプログラムとして実施できる。
【0021】
【発明の実施の形態】
(本発明の第1の実施形態)
本発明の第1の実施形態に係るDSPについて図1ないし図3に基づいて説明する。図1は本実施形態に係るDSPの全体構成ブロック図、図2は本実施形態に係るDSPにおける動作説明図、図3は本実施形態に係るDSPにおける命令変更後の動作説明図を示す。
前記図1において本実施形態に係るDSPは、命令に従って処理を行う演算処理部1と、変更不可能なROM2Aおよび変更可能なRAM2Bからなり命令を格納する命令メモリ2と、ROM3AおよびRAM3Bからなり各種定数を格納するテーブルメモリ3と、RAMからなり情報を一時的に保持するデータメモリ4と、前記命令メモリ2の命令を演算処理部1が認識可能な形式に復号する命令復号部5と、入出力部6とを備える従来のDSPと同様の構成に加えて、命令メモリ2がRAMからなるアドレス管理用のアドレス管理メモリ2Cを有し、演算処理部1がこのアドレス管理メモリ2Cを用いてアドレス管理を行うアドレス制御部7を有する構成である。
【0022】
前記命令メモリ2は、図2に示すように、前記RAM2Bにメインルーチンが(尚、RAM2Bには前記ROM2Aに格納されたmoduleA、moduleC、moduleD、moduleBを変更した後の命令も格納するための領域がある。)格納される。また、前記アドレス管理メモリ2CにはROM2Aに格納された命令のアドレス(先頭アドレス)が格納される。尚、RAM2Bに変更後のmoduleA等を格納した場合、アドレス管理メモリ2Cの対応アドレスを変更後のmoduleの先頭アドレスとして書き換え可能である。さらに、前記ROM2Aに前記メインルーチンに対してサブルーチンとして機能するmoduleA、moduleC、moduleD、moduleBが格納されているものである。
【0023】
前記アドレス制御部7が「call」の処理により、現在実行している処理のアドレスに1インクリメントとした値を実行対象とする命令の名前に対応付けてアドレス保持領域4aに格納し、「call」の引数となっている命令に対応するアドレスをアドレス管理メモリ2Cから読み出し、この読み出したアドレスを用いてその命令を実行対象とする。
【0024】
まず、動作としては、命令復号部5がメインルーチンを読み出し、演算処理部1がメインルーチン上の処理を順次実行する。このメインルーチン上の処理で、アドレス2Bに位置する「call moduleA」の処理により、アドレス制御部7が現在実行している処理のアドレス2Bに1インクリメントとした値を実行対象とするmoduleAに対応付けてアドレス保持領域4aに格納し、moduleAに対応するアドレスをアドレス管理メモリ2Cから読み出し、この読み出したアドレスを用いてROM2A上の命令moduleAを実行対象とする(矢印a101)。
【0025】
moduleAを実行対象とし、演算処理部1がmoduleA上の処理を順次実行する。このmoduleA上の処理で、アドレス1Fに位置する「call moduleC」の処理により、アドレス制御部7が現在実行している処理のアドレス1Fに1インクリメントとした値を実行対象とする命令であるmoduleCに対応付けてアドレス保持領域4aに格納し、moduleCに対応するアドレスをアドレス管理メモリ2Cから読み出し、この読み出したアドレスを用いてROM2A上の命令moduleCを実行対象とする(矢印a102)。
【0026】
moduleCを実行対象とし、moduleC上の処理を順次実行する。このmoduleC上の処理で、アドレス1Hに位置する「call moduleD」の処理により、アドレス制御部7が現在実行している処理のアドレス1Hに1インクリメントとした値を実行対象とする命令であるmoduleDに対応付けてアドレス保持領域4aに格納し、moduleDに対応するアドレスをアドレス管理メモリ2Cから読み出し、この読み出したアドレスを用いてROM2A上の命令moduleDを実行対象とする(矢印a103)。
【0027】
moduleDを実行対象とし、moduleD上の処理を順次実行し、moduleD上の最後の処理「return」により、アドレス制御部7がアドレス保持領域4aに保持したmoduleDに対応付けたアドレス1H+1に実行対象を戻す(矢印a104)。moduleCに戻り、アドレス1H+1以降のmoduleCの処理を順次実行し、moduleCの最後の処理「return」により、アドレス制御部7がアドレス保持領域4aに保持したmoduleC上のアドレス1F+1に実行対象を戻す(矢印a105)。moduleAに戻り、アドレス1F+1以降のmoduleAの処理を順次実行し、moduleAの最後の処理「return」により、アドレス制御部7がアドレス保持領域に保持したmoduleAに対応付けたアドレス2B+1に実行対象を戻す(矢印a106)。
【0028】
メインルーチンに実行対象を戻し、アドレス2B+1以降のメインルーチンの処理を順次実行し、このメインルーチン上の処理で、アドレス2Cに位置する「call moduleB」の処理により、アドレス制御部7が現在実行しているメインルーチン上のアドレス2Cに1インクリメントとした値を実行対象とする命令であるmoduleBに対応付けてアドレス保持領域4aに格納し、moduleBに対応するアドレス1Kをアドレス管理メモリ2Cから読み出し、読み出したアドレス1Kを用いてmoduleBを実行対象とする(矢印a107)。moduleBを実行対象とし、moduleB上の処理を順次実行し、moduleB上の最後の処理「return」により、アドレス制御部7がアドレス保持領域に保持したmoduleBに対応付けたアドレス2C+1に実行対象を戻す(矢印a108)。以後、演算処理部1がメインルーチン上のアドレス2C+1以下の処理を順次実行する。
【0029】
次に、本実施形態に係るDSPに対する処理の機能追加およびその追加後の動作について具体的に説明する。図3は本実施形態に係るDSPにおける命令変更後の動作説明図を示す。ここでは、従来の技術との比較が出来るように従来の技術で説明したときと同様に、moduleD上の機能αのあとに機能γを挿入する場合について説明する。
前記命令メモリ2は、図3に示すように、ROM2AがROMの特質上により変更できないため依然前記ROM2AにmoduleA、moduleC、moduleD、moduleBが格納されており、一方前記RAM2Bにメインルーチンの他に、新たにmoduleD´のみが格納されているものである。新たにRAM2Bに格納されたmoduleD´はmoduleD上の機能αのあとに機能γを挿入したものである。なお、メインルーチン上の変更はない。
【0030】
動作の説明について詳細は省くが大まかに説明すると(図3参照)、演算処理部1により、メインルーチンが実行され、メインルーチン上の処理によりmoduleAを実行対象とし(矢印a101)、moduleAが実行され、moduleA上の処理によりmoduleCを実行対象とし(矢印a102)、moduleCが実行され、moduleC上の処理によりmoduleDを実行対象とせずmoduleD´を実行対象とし(矢印a103)、moduleD´が実行され、機能αの次に機能γが実行され、moduleCに実行対象を戻して(矢印a104)残りのmoduleCが実行され、moduleAに実行対象を戻して(矢印a105)残りのmoduleAが実行され、メインルーチンに実行対象を戻して(矢印a106)残りのメインルーチンが実行され、moduleBを実行対象とし(矢印a107)、moduleBが実行され、メインルーチンに実行対象を戻して(矢印a108)、以後メインルーチン上の処理を順次実行する。
【0031】
このように本実施形態に係るDSPによれば、命令メモリ2の一部を各命令のアドレスを格納するためのアドレス管理メモリ2Cに割り当て、前記演算処理部1のアドレス制御部7が現在実行している処理のアドレス位置に1インクリメントとした値を実行対象とする命令の名前に対応付けてアドレス保持領域4aに格納し、「call」の引数となっている命令に対応するアドレスをアドレス管理メモリ2Cから読み出し、読み出したアドレスを用いてこの命令を実行対象としているので、仕様変更および機能追加に伴う命令の変更が生じても、変更が生じた命令のみをRAM2Bに新たに格納し、アドレス管理メモリ2Cに格納されている変更が生じる前の命令(ここではmoduleD)のROM2A上のアドレスの替わりに、変更を施した命令(ここではmoduleD´)のRAM2B上のアドレスをアドレス管理メモリ2Cに格納しており、アドレス管理メモリ2Cを用いて各命令のアドレスをアドレス管理することで、RAM2B上の領域を出来るだけ消費せずに変更に対応することができ、変更を想定した余分なRAMをできるだけ小さくすることができ、コスト、消費電力およびスペースの低減化を可能とすることができる。
【0032】
なお、本実施形態に係るDSPにおいて、演算処理部1がアドレス制御部7を有しているが、アドレス制御部7が演算処理部1から分離した構成とすることもできる。
また、本実施形態に係るDSPにおいて、命令メモリ2がアドレス管理メモリ2Cを有しているが、アドレス管理メモリ2Cが命令メモリ2から分離した構成とすることもできる。
また、本実施形態に係るDSPにおいて、アドレス制御部7が「call」の処理により、現在実行している処理のアドレスに1インクリメントとした値を実行対象とする命令の名前に対応付けてアドレス保持領域4aに格納しているが、「call」の処理により、対象とする命令の名前に対応付けずに現在実行している処理のアドレスに1インクリメントとした値をアドレス保持領域に4aに格納することもでき、アドレス保持領域4aをスタックとして使用することができる。
【0033】
(本発明の第2の実施形態)
本発明の第2の実施形態に係るDSPについて図4ないし図6に基づいて説明する。図4は本実施形態に係るDSPにおけるアドレス制御部7の動作フローチャート、図5および図6は本実施形態に係るDSPにおける動作説明図を示す。本実施形態に係るDSPは、前記第1の実施形態に係るDSPと同様な構成であり、この構成に加えて、前記アドレス制御部7が「jump」の処理により、「jump」の引数となっている命令に対応するアドレスをアドレス管理メモリ2Cから読み出し、読み出したアドレスを用いてこの命令を実行対象とすることを異にするものである。つまり、「call」の処理と「jump」の処理とでは、現在実行している処理のアドレス位置をアドレス保持領域7に保持するかしないかの違いがある。
【0034】
「call」の処理と「jump」の処理とに関するアドレス制御部7の動作について、フローチャートで示すと図4となる。まず、アドレス制御部7は、処理が「call」または「jump」かどうか否かを判断し(ステップ1)、処理が「call」または「jump」でないと判断した場合に処理が「return」であるかどうか否か判断する(ステップ5)。アドレス制御部7は、ステップ1において、処理が「call」または「jump」であると判断した場合は、更に、処理が「call」であるか否かについて判断し(ステップ2)、処理が「call」であると判断した場合に現在実行している処理のアドレスに1インクリメントとした値を実行対象とする命令に対応付けてアドレス保持領域4aに格納する(ステップ3)。ステップ2で処理が「call」でないと判断した後に、または、ステップ3の後に、引数となっている命令に対応するアドレスをアドレス管理メモリ2Cから読み出す(ステップ4)。ステップ5において、処理が「return」であると判断した場合、アドレス保持領域4aに保持した命令に対応付けたアドレスを読み出す(ステップ6)。
【0035】
前記命令メモリ2に、図5に示すように、前記ROM2Aにmoduleα、moduleβが格納され、前記RAM2Bにメインルーチンが格納されているものである場合についての動作を以下説明する。
まず、動作としては、メインルーチンから始まり、演算処理部1がメインルーチン上の処理を順次実行する。このメインルーチン上の処理で、アドレス2Bに位置する「jump moduleα」の処理により、アドレス制御部7がmoduleαに対応するアドレスをアドレス管理メモリ2Cから読み出し、この読み出したアドレスを用いてROM2A上の命令moduleαを実行対象とする(矢印a101)。
【0036】
moduleαを実行対象とした後、演算処理部1がmoduleα上の処理を順次実行する。このmoduleα上の処理で、アドレス1Fに位置する「jump moduleβ」の処理により、アドレス制御部7がmoduleβに対応するアドレスをアドレス管理メモリ2Cから読み出し、この読み出したアドレスを用いてROM2A上の命令moduleβを実行対象とする(矢印a102)。以後、演算処理部1がmoduleβ以下の処理を順次実行する。
【0037】
次に、図6に示すように図5の動作と比べて、前記ROM2A中のmoduleαのアドレス1Fに位置する処理を、「jump moduleβ」から「call moduleβ」へ替えた場合に、つまり、callとjumpとの処理が混合した場合について説明する。
まず、動作としては、メインルーチンから始まり、演算処理部1がメインルーチン上の処理を順次実行する。このメインルーチン上の処理で、アドレス2Bに位置する「jump moduleα」の処理により、アドレス制御部7がmoduleαに対応するアドレスをアドレス管理メモリ2Cから読み出し、この読み出したアドレスを用いてROM2A上の命令moduleαを実行対象とする(矢印a101)。
【0038】
moduleαを実行対象とし、演算処理部1がmoduleα上の処理を順次実行する。このmoduleα上の処理で、アドレス1Fに位置する「call moduleβ」の処理により、アドレス制御部7が現在実行している処理のアドレス1Fに1インクリメントとした値を実行対象とする命令であるmoduleβに対応付けてアドレス保持領域4aに格納し、moduleβに対応するアドレスをアドレス管理メモリ2Cから読み出し、この読み出したアドレスを用いてROM2A上の命令moduleβを実行対象とする(矢印a102)。moduleβを実行対象とし、moduleβ上の処理を順次実行し、moduleβ上の最後の処理「return」により、演算処理部1がアドレス保持領域に保持したmoduleβに対応付けたアドレス1F+1に実行対象を戻す(矢印a103)。以後、演算処理部1がmoduleα以下の処理を順次実行する。
【0039】
このように本実施形態に係るDSPによれば、命令メモリ2一部を各命令のアドレスを格納するためのアドレス管理メモリ2C割り当て、前記アドレス制御部7が「call」の処理を実行する場合に、現在実行している処理のアドレスに1インクリメントとした値を実行対象とする命令に対応付けてアドレス保持領域4aに格納し、「call」の引数となっている命令に対応するアドレスをアドレス管理メモリ2Cから読み出し、読み出したアドレスを用いて命令を実行対象とし、一方「jump」の処理を実行する場合に、「jump」の引数となっている命令に対応するアドレスをアドレス管理メモリ2Cから読み出し、読み出したアドレスを用いて命令を実行対象としているので、「call」だけでなく「jump」等の命令を呼び出す処理を処理演算部1がアドレス制御部7を介して実行することで、仕様変更および機能追加に伴う命令の変更が生じても、RAM2B上の領域を出来るだけ消費せずに変更に対応することができ、変更を想定した余分なRAMをできるだけ小さくすることができ、コスト、消費電力およびスペースの低減化を可能とすることができる。
【0040】
(本発明の第3の実施形態)
本発明の第3の実施形態に係るDSPについて図7ないし図10に基づいて説明する。図7は本実施形態に係るDSPの全体構成ブロック図、図8は本実施形態に係るDSPにおけるアドレス制御部7の動作フローチャート、図9および図10は本実施形態に係るDSPにおける動作説明図を示す。
本実施形態に係るDSPは、前記第2の実施形態に係るDSPと同様な構成であり、この構成に加えて、図7に示すように、命令メモリ2がRAMからなり複数のフラグからなるフラグ領域2Dを有し、アドレス制御部7がこのフラグ領域2Dを用いて命令毎にアドレス制御部7を使用して動作するかしないかを判断して動作する構成である。
【0041】
また、前記アドレス制御部7は、命令中の「call」(または「jump」)の処理がある場合に、「call」(または「jump」)の引数となっている命令に対応するフラグをフラグ領域2Dから読み出し、この読み出したフラグに基づいて、アドレス制御部7を使用して「call」(または「jump」)の処理を実行するか、若しくは、アドレス制御部7を使用せずに「call」(または「jump」)の処理を実行するかを命令毎に判断する。
【0042】
「call」の処理と「jump」の処理とに関するアドレス制御部7の動作についてのフローチャートを示す図4に本実施形態に係るアドレス制御部7のフラグ領域2Dを用いた動作を追加したものが図8である。まず、アドレス制御部7は、処理が「call」または「jump」かどうか否かを判断し(ステップ1)、処理が「call」または「jump」でないと判断した場合に処理が「return」であるかどうか否か判断する(ステップ5)。アドレス制御部7は、ステップ1において、処理が「call」または「jump」であると判断した場合は、「call」または「jump」の引数となっている命令に対応するフラグをフラグ領域2Dから読み出し(ステップ11)、このフラグがonであるか否かを判断する(ステップ12)。アドレス制御部7がフラグがonでないと判断した場合にアドレス制御部7の処理を終了し、フラグがonであると判断した場合に、更に、処理が「call」であるか否かについて判断する(ステップ2)。以下、前記第2の実施形態でした図4の説明と同様のフローとなる。
【0043】
前記命令メモリ2は、図9に示すように、前記ROM2AにmoduleA、moduleC、moduleDおよびmoduleBが格納され、前記RAM2Bにメインルーチンおよび命令変更後のmoduleD´が格納され、前記フラグ領域2DにmoduleA、moduleC、moduleDおよびmoduleBのフラグが全て「on(1)」になっている場合、moduleA、moduleC、moduleDおよびmoduleBが「call」または「jump」の引数となって「call」または「jump」が処理されるとき、アドレス制御部7がアドレス管理メモリ2Cを用いてアドレス管理して動作するので、命令変更前のmoduleDでなく命令変更後のmoduleD´が実行対象とされ、実行される。
【0044】
次に、図10に示すように、前記フラグ領域2DのmoduleDのフラグのみoff(0)にした場合、moduleA、moduleCおよびmoduleBが「call」または「jump」の引数となって「call」または「jump」が処理されるとき、アドレス制御部7がアドレス管理メモリ2Cを用いてアドレス管理して動作し、一方、moduleDが「call」または「jump」の引数となって「call」または「jump」が処理されるとき、アドレス制御部7がアドレス管理せずに動作するので、命令変更後のmoduleD´でなく命令変更前のmoduleDが実行対象とされて実行される。
【0045】
このように本実施形態に係るDSPによれば、命令メモリ2がRAMからなる複数のフラグからなるフラグ領域2Dを有し、アドレス制御部7がこのフラグ領域2Dを用いて命令毎にアドレス管理メモリ2Cを使用して動作するかしないかを判断して動作するので、命令毎に変更前の命令、または、変更後の命令を実行するかしないかを柔軟に決定することができる。
【0046】
なお、本実施形態に係るDSPにおいては、フラグの状態が「on(1)」および「off(0)」の2つであるが、フラグの状態を複数持たせることもでき、命令変更前の命令および命令変更後の命令だけでなく命令変更前の命令よりも前の命令にも対応することができ、フラグの状態によってこの命令変更前の命令よりも前の命令を実行することもできる。
また、本実施形態に係るDSPにおいては、フラグを設定する処理を置くこともでき、各命令中に命令を呼び出す処理を置く前に、フラグを設定する処理を置き、変更前の命令、または、変更後の命令のどちらを実行するのかを実行途中で変更することができる。
【0047】
(その他の実施形態)
前記各実施形態に係るDSPにおいては、常にアドレス制御部7を動作させ、「call」の処理により、現在実行している処理のアドレスに1インクリメントとした値をジャンプする命令に対応付けてアドレス保持領域4aに格納し、「call」の引数となっている命令に対応するアドレスをアドレス管理メモリ2Cから読み出し、この読み出したアドレスを用いてその命令を実行対象としているが、アドレス制御部7を使用するかしないかのスイッチを演算処理部1に備えることもでき、スイッチの切り替えにより、アドレス制御部7を使用する場合に仕様変更等に伴う命令変更後の命令を実行することができ、さらに、アドレス制御部7を使用しない場合に仕様変更等に伴う命令変更前の命令を実行することができる。ここでは、命令変更前の命令および命令変更後の命令の2段階としているが、スイッチの切り替えを多段階として複数のモードを持たせることもできる。さらに、このスイッチを演算処理部1に備えた構成となっているが、スイッチを演算処理部1から分離した構成とすることもできる。
【0048】
【発明の効果】
以上のように本発明においては、前記命令メモリから命令を読み出して命令中の処理を演算処理部が実行し、命令中に命令を呼び出す処理があった場合に、演算処理部が呼び出す命令のアドレスを前記アドレス管理メモリから読み出し、当該アドレスに基づいて呼び出す命令を実行しているので、仕様変更および機能追加に伴って命令の変更が生じる場合に、変更が生じた命令のみを前記ランダムアクセスメモリに新たに格納し、アドレス管理メモリに格納されている変更が生じる前の命令の前記リードオンリメモリ上のアドレスの替わりに、変更を施した命令のランダムアクセスメモリ上のアドレスをアドレス管理メモリに格納し、アドレス管理メモリを用いて各命令のアドレスを演算処理部がアドレス管理することで、ランダムアクセスメモリ上の領域を出来るだけ消費せずに変更に対応することができ、変更を想定した余分なランダムアクセスメモリをできるだけ小さくすることができ、コスト、消費電力およびスペースの低減化を可能とすることができるという効果を奏する。
【0049】
また、本発明においては、まず命令メモリからメインルーチンを読み出してメインルーチン中の処理を演算処理部が実行し、メインルーチン中にサブルーチンを呼び出す処理があった場合に、演算処理部が呼び出すサブルーチンのアドレスを前記アドレス管理メモリから読み出し、当該アドレスに基づいて呼び出す命令を実行しているので、仕様変更および機能追加に伴って命令の変更が生じる場合に、変更が生じたサブルーチンのみを前記ランダムアクセスメモリに新たに格納し、アドレス管理メモリに格納されている変更が生じる前のサブルーチンの前記リードオンリメモリ上のアドレスの替わりに、変更を施したサブルーチンのランダムアクセスメモリ上のアドレスをアドレス管理メモリに格納し、アドレス管理メモリを用いて各サブルーチンのアドレスを演算処理部がアドレス管理することで、ランダムアクセスメモリ上の領域を出来るだけ消費せずに変更に対応することができ、変更を想定した余分なランダムアクセスメモリをできるだけ小さくすることができ、コスト、消費電力およびスペースの低減化を可能とすることができるという効果を有する。
【0050】
また、本発明においては、演算処理部が命令のアドレスをアドレス管理メモリから読み出して情報の処理を実行することも、演算処理部が前記ランダムアクセスメモリ及びリードオンリメモリに格納される命令を構成する移動先情報を用いて情報の処理をすることも切り替えて選択的にできるので、仕様変更および機能追加に伴って命令を変更した後に、演算処理部がアドレス管理メモリを用いて変更後の命令のみを実行するだけではなく、演算処理部がアドレス管理メモリを用いず変更前の命令を実行することもできるという効果を有する。
【0051】
また、本発明においては、命令毎のフラグをフラグ領域に格納し、このフラグに基づいてフラグに対応する命令に関してアドレス管理メモリに格納された命令のアドレスを用いてアドレス制御部が動作するか否かを決定して動作しているので、仕様変更および機能追加に伴って命令を変更した後に、変更後の命令のみを実行するだけではなく、フラグの設定によって変更前の命令を命令単位ごとに実行することもできるという効果を有する。
【0052】
また、本発明においては、予め第1のメモリに格納された複数のプログラムの各命令を任意に組み合わせて新たなプログラムとして実行できるという効果を有する。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係るDSPの全体構成ブロック図である。
【図2】本発明の第1の実施形態に係るDSPにおける動作説明図である。
【図3】本発明の第1の実施形態に係るDSPにおける命令変更後の動作説明図である。
【図4】本発明の第2の実施形態に係るDSPにおけるアドレス制御部の動作フローチャートである。
【図5】本発明の第2の実施形態に係るDSPにおける動作説明図である。
【図6】本発明の第2の実施形態に係るDSPにおける動作説明図である。
【図7】本発明の第3の実施形態に係るDSPの全体構成ブロック図である。
【図8】本発明の第3の実施形態に係るDSPにおけるアドレス制御部の動作フローチャートである。
【図9】本発明の第3の実施形態に係るDSPにおける動作説明図である。
【図10】本発明の第3の実施形態に係るDSPにおける動作説明図である。
【図11】従来のDSPの全体ブロック構成図である。
【図12】従来のDSPにおける動作説明図である。
【図13】従来のDSPにおける命令変更後の動作説明図である。
【符号の説明】
1 演算処理部
2 命令メモリ
2A、3A ROM
2B、3B RAM
2C アドレス管理メモリ
2D フラグ領域
3 テーブルメモリ
4 データメモリ
4a アドレス保持領域
5 命令復号部
6 入出力部
7 アドレス制御部
8 スイッチ
Claims (5)
- 変更不可能なメモリ及び変更可能なアクセスメモリからなり命令を格納する命令メモリと、前記命令に基づいて情報の処理を実行する演算処理部とを備えたディジタルシグナルプロセッサにおいて、
前記命令メモリに格納される命令のアドレスをランダムアクセスメモリからなるアドレス管理メモリに格納し、前記演算処理部が当該アドレス管理メモリに格納されている命令のアドレスを用いて動作することを
特徴とするディジタルシグナルプロセッサ。 - 前記請求項1に記載のディジタルシグナルプロセッサにおいて、
前記ランダムアクセスメモリに格納される命令をメインルーチンとすると共に、前記リードオンリメモリに格納される複数命令を前記メインルーチンの命令に対するサブルーチンとし、
前記サブルーチンである複数の命令を変更する場合に、当該変更に係る命令を前記ランダムアクセスメモリに格納し、
前記変更に係る命令のアドレスを前記ランダムアクセスメモリのアドレス管理メモリに格納することを
特徴とするディジタルシグナルプロセッサ。 - 前記請求項1または2に記載のディジタルシグナルプロセッサにおいて、
前記演算処理部が前記アドレス管理メモリの命令のアドレスを用いて情報の処理を実行するか、又は前記ランダムアクセスメモリ及びリードオンリメモリに格納される命令内の移動先情報を用いて情報の処理を実行するかを切り替えて実行することを
特徴とするディジタルシグナルプロセッサ。 - 前記請求項1ないし3のいずれかに記載のディジタルシグナルプロセッサにおいて、
前記演算処理部が前記アドレス管理メモリの命令のアドレスを用いて動作するか否かの各命令のフラグを前記ランダムアクセスメモリのフラグ領域に格納し、前記演算処理部が命令毎に当該フラグに基づいて動作することを
特徴とするディジタルシグナルプロセッサ。 - 書き換え可能でない第1のメモリと、書き換え可能な第2のメモリと、該第1のメモリに格納されたプログラムの実行を行う演算処理部とを備えた演算装置において、
該第1のメモリに格納されたいづれかの1のプログラムの命令文に前記第2のメモリの所定アドレスを特定する情報を含め、
該アドレスに対応する前記第2のメモリの記録領域に前記第1のメモリに格納された前記1のプログラムの他のプログラムの先頭又は他のアドレスを格納し、前記演算処理部は、前記1のプログラムの命令文に含まれる前記所定のアドレス情報に従って、前記先頭又は他のアドレスを読み出し、前記第1のメモリの該先頭又は他のアドレスからの前記1のプログラムの他のプログラムの実行に移行することを
特徴とする演算装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002215264A JP2004054850A (ja) | 2002-07-24 | 2002-07-24 | ディジタルシグナルプロセッサおよび演算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002215264A JP2004054850A (ja) | 2002-07-24 | 2002-07-24 | ディジタルシグナルプロセッサおよび演算装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004054850A true JP2004054850A (ja) | 2004-02-19 |
Family
ID=31937339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002215264A Pending JP2004054850A (ja) | 2002-07-24 | 2002-07-24 | ディジタルシグナルプロセッサおよび演算装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004054850A (ja) |
-
2002
- 2002-07-24 JP JP2002215264A patent/JP2004054850A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2011095952A (ja) | ファームウェア更新方法および電子機器 | |
JP2004054850A (ja) | ディジタルシグナルプロセッサおよび演算装置 | |
JP2008129851A (ja) | 演算処理装置 | |
JP2001256061A (ja) | 情報記憶装置 | |
JP2002041310A (ja) | クラス動的バインドシステムおよび方法 | |
JPH0713758A (ja) | 命令デコード方法 | |
JP2004118669A (ja) | 制御装置及び制御方法並びに制御ソフトウェア | |
JPH11110224A (ja) | 言語処理装置及び方法、並びに情報記憶媒体 | |
JP2006048090A (ja) | データ処理方法、プログラムおよびコンピュータ | |
JPH11259308A (ja) | プログラマブルコントローラ | |
JP2022083141A (ja) | 制御装置および処理方法 | |
JP2573391B2 (ja) | プログラマブルコントローラ | |
JPH0876990A (ja) | カメラ用制御回路 | |
JPH06187140A (ja) | 処理装置 | |
JPS61182135A (ja) | 処理選択方法 | |
JPH1011320A (ja) | 計算機等の処理装置におけるromプログラムモニタ装置 | |
JPH08212083A (ja) | 割り込み処理装置 | |
JPH10232772A (ja) | プログラム変更装置 | |
JP2006313560A (ja) | マイクロコンピュータ制御システム | |
KR20010067336A (ko) | 데이터 처리 장치 및 그 제어 방법 | |
JP2003280905A (ja) | 情報処理システム、情報処理端末、外部記憶装置、情報処理端末制御用プログラム及び外部記憶装置制御用プログラム | |
JP2001188532A (ja) | 自動演奏装置、データ記録方法、自動再生方法、及び記録媒体 | |
JPH11288371A (ja) | インサーキットエミュレータ | |
JP2001075798A (ja) | 情報処理装置 | |
JPH09224107A (ja) | 複写機におけるプログラム処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Effective date: 20050602 Free format text: JAPANESE INTERMEDIATE CODE: A621 |
|
A977 | Report on retrieval |
Effective date: 20071019 Free format text: JAPANESE INTERMEDIATE CODE: A971007 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071030 |
|
A521 | Written amendment |
Effective date: 20071227 Free format text: JAPANESE INTERMEDIATE CODE: A523 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080205 |