(57)【特許請求の範囲】
【請求項１】
マイクロプログラムを格納するマイクロプログラムメモリと、
各ステップごとに前記マイクロプログラムメモリから１ステップ分のマイクロ命令を読み出して出力する読出手段と、
各ステップごとに前記読出手段が出力するマイクロ命令のうちの一部のフィールドを順次格納し、所定ステップごとに並列に出力する直列並列変換手段と、
該直列並列変換手段から前記所定ステップごとに出力される並列化されたマイクロコードにより制御される処理部と、
前記各ステップごとに前記読出手段が出力するマイクロ命令のうちの前記一部のフィールドを除いた残りのフィールドにより制御される他の処理部と
を有することを特徴とするディジタル信号処理装置。
【請求項２】
前記一部のフィールドは、外部ＲＡＭに対するアクセスを制御するためのフィールドであり、前記直列並列変換手段から前記所定ステップごとに出力される並列化されたマイクロコードにより制御される処理部は、前記外部ＲＡＭをアクセスするアクセス回路であることを特徴とする前記請求項１記載のディジタル信号処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はマイクロプログラム制御を用いたディジタル信号処理装置（ＤＳＰ：Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）に関する。
【０００２】
【従来の技術】
フィルター操作や変復調操作などの実時間信号処理をディジタル値の代数演算によって高精度かつ高安定に行なうことのできるＤＳＰが、オーディオ信号やビデオ信号の処理、音声情報処理などの多くの分野で用いられている。
電子楽器などの楽音発生装置においても、発生した楽音に所定の効果を付加するエフェクタとしてＤＳＰが利用されている。電子楽器におけるこのような処理は常にサンプリング周期（ＤＡＣサイクル）に同期して行われなければならず、このような場合に適用して好適なＤＳＰが本出願人により提案されている（特開平５−１５０９７７号公報）。
【０００３】
この本出願人により提案されたＤＳＰによれば、マイクロプログラムが固定数のステップにより記述されており、かつ、１サンプリング周期でこのマイクロプログラムの全てのステップを順次読み出して処理を行なうようになされているため、当該マイクロプログラムは必ず所定の周期毎に実行されることとなり、実時間の信号処理が保証されるとともにプログラム作成段階においてプログラムの実行時間を容易に把握することができる。
【０００４】
【発明が解決しようとする課題】
近年の半導体技術の進歩に伴い、音源部と前述したＤＳＰとを単一の半導体チップ上に集積すること、あるいは、音源部とＤＳＰと中央処理装置（ＣＰＵ）とを集積することが行われるようになっている。このような場合には、半導体チップのサイズを縮小することがコストの低減のために求められ、ＤＳＰにおけるマイクロプログラムを格納する領域のサイズを縮小することが望まれている。
【０００５】
そこで、本発明は、マイクロプログラム制御によるディジタル信号処理装置において、マイクロプログラムを格納するメモリの容量を節約してハードウエア量を節減するとともに、コストダウンを図ることを目的としている。
【０００６】
【課題を解決するための手段】
上記目的を達成するために、本発明のディジタル信号処理装置は、マイクロプログラムを格納するマイクロプログラムメモリと、各ステップごとに前記マイクロプログラムメモリから１ステップ分のマイクロ命令を読み出して出力する読出手段と、各ステップごとに前記読出手段が出力するマイクロ命令のうちの一部のフィールドを順次格納し、所定ステップごとに並列に出力する直列並列変換手段と、該直列並列変換手段から前記所定ステップごとに出力される並列化されたマイクロコードにより制御される処理部と、前記各ステップごとに前記読出手段が出力するマイクロ命令のうちの前記一部のフィールドを除いた残りのフィールドにより制御される他の処理部とを有するものである。
また、前記一部のフィールドは、外部ＲＡＭに対するアクセスを制御するためのフィールドであり、前記直列並列変換手段から前記所定ステップごとに出力される並列化されたマイクロコードにより制御される処理部は、前記外部ＲＡＭをアクセスするアクセス回路とされているものである。
【０００７】
マイクロコードのうち外部メモリへのアクセスを制御するためのフィールドなどの所定のフィールドについては、当該処理の実行を所定の時間間隔をもって実行するものとし、各ステップに格納されているマイクロコードを直列並列変換手段を用いて並列化し、複数ステップ分のマイクロコードを並列化したマイクロコードを当該処理部に供給する。これにより、各ステップにおけるマイクロコードのビット長を短くすることが可能となり、制御記憶の容量を削減することができる。
【０００８】
【発明の実施の形態】
本発明のディジタル信号処理装置（ＤＳＰ）について説明する前に、まず、このＤＳＰが用いられる装置の一例である電子楽器について図４を参照して説明する。
図４において、１はこの電子楽器の全体の動作を制御するＣＰＵ、２は楽音発生装置の動作時の経過時間を示したり、特定の間隔でタイマ割込を発生するタイマ、３は外部ＭＩＤＩ機器からＭＩＤＩ端子４を介して入力されるＭＩＤＩメッセージを取り込んだり、この電子楽器内で生成されたＭＩＤＩメッセージをＭＩＤＩ端子４を介して外部ＭＩＤＩ機器へ出力するためのＭＩＤＩインターフェース回路、５は鍵盤６の操作信号が直列データとして入出力されるシリアル入出力回路（シリアルＩ／Ｏ）、７はパネル表示器および操作子８におけるパネル表示器に表示される画像データを出力するとともに、パネルスイッチをスキャンしてその操作信号を取り込むためのパラレル入出力回路（パラレルＩ／Ｏ）である。また、９は前記ＣＰＵ１の動作を制御する制御プログラムが格納されているプログラムメモリ、１０は前記ＣＰＵ１により使用されるワークメモリである。
【０００９】
１１は波形メモリ方式による音源部であり、各発音チャンネルで生成される楽音を制御する楽音制御データなどが格納される音源レジスタ、該音源レジスタに格納されている周波数ナンバパラメータや音色パラメータに基づいて楽音信号を形成する。すなわち、複数の発音チャンネル（例えば、３２チャンネル）のチャンネル毎の読み出しアドレスを生成し、該読み出しアドレスに基づいて補間処理に必要な各発音チャンネルの波形サンプルデータを波形メモリ１２から読み出し、該読み出された各発音チャンネルの波形サンプルデータの補間処理を行う読出補間回路、および、読出補間回路から出力される各発音チャンネルの波形サンプルデータに音量エンベロープ等を付与するＥＧ付与部などが含まれている。なお、この音源部としては波形メモリ方式のものに限られることはなく、他の方式の音源を用いることができる。
【００１０】
１３は各発音チャンネルの波形サンプルデータをミキシングしてサンプリング周期毎の楽音波形データを生成すると共に、コーラス、リバーブ、バリエーション等のエフェクト処理を該楽音波形データに付与するＤＳＰである。また、１４は、エコーやリバーブなどの遅延を必要とするエフェクトを付与するときに、当該楽音波形データを書き込み所定時間後に読み出すことにより所要の遅延を行うための、遅延メモリ（外部ＲＡＭ）である。さらに、１５は前記ＤＳＰ１３からサンプリング周期毎に出力される楽音波形データをアナログ信号に変換するデジタルアナログ変換器（ＤＡＣ）、１６は該ＤＡＣ１５の出力を増幅し音響信号として放出するサウンドシステムである。さらにまた、１７は前記各部を接続するＣＰＵバスである。
【００１１】
このように構成されている電子楽器の動作について説明する。
鍵盤６からシリアル入出力回路５を介して押鍵情報が取り込まれたり、ＭＩＤＩイベントの発音タイミングとなったときに、ＣＰＵ１は入力された演奏情報に応じて、チャンネルアサイン、パラメータ変換などを行ういわゆる音源ドライバ処理を実行し、音源部の割り当てたチャンネルに対する変換したパラメータと発音開始指示（ノートオン）などの音源パラメータを音源レジスタに書き込む。すなわち、ノートオンイベントが入力された場合は、ＣＰＵ１はノートオンイベントに基づいた新たな楽音を生成できるように、まず、発音チャンネルを割り当て、音源レジスタの割り当てたチャンネルの記憶領域にノートナンバ、音色情報（メモリ読み出し区間）、ベロシティ（音量情報）等の音源パラメータをセットする。また、ノートオフイベントが入力された場合は、当該ノートオフイベントに基づいた発音停止を行えるように音源パラメータを音源レジスタにセットする。なお、これらの指示はＣＰＵ１がプログラムメモリ９に記憶されている音源ドライバ処理プログラムを実行することにより行われる。
【００１２】
一方、前記音源部１１では楽音生成処理が実行される。この楽音生成処理では、読出補間回路が１サンプリング周期を等分した時分割チャンネルタイミングに従って前記音源レジスタにセットされている各チャンネルのノートナンバに対応した周波数情報を累算し、その累算値と音色情報に基づいて波形メモリ１２に対する読み出しアドレスを作成する。次いで、作成された読み出しアドレスの整数部に従って、前記波形メモリ１２にアクセスすることにより、各チャンネルに必要な波形サンプルデータを読み出し、バッファに格納する。これにより、作成された読み出しアドレスの小数部に従って波形サンプルデータを補間して算出するために必要な数の波形サンプルデータがバッファに用意される。そして、バッファに用意されている各チャンネルの波形サンプルデータから、作成された読み出しアドレスの小数部に従って補間された波形サンプルデータが算出される。なお、補間処理は前記時分割チャンネルタイミングでチャンネル毎に行われる。
【００１３】
前記読出補間回路から出力された補間処理後の各チャンネルの波形サンプルデータは、ＥＧ付与部において音源レジスタにセットされている当該チャンネルの音量情報および音色情報に応じたエンベロープが付与される。さらにエンベロープが付与された各チャンネルの波形サンプルデータはＤＳＰ１３に入力される。そして、ＤＳＰ１３において、各チャンネルの波形サンプルデータがミキシングされると共に、コーラス、リバーブ、バリエーション等のエフェクト処理が施されることにより、サンプリング周期毎の楽音データが生成される。また、エフェクト処理時に楽音データの遅延が必要な場合は、ＤＳＰ１３は、その外部に設けられた遅延メモリ１４に当該楽音データを書き込み所定時間後にそれを読み出すことにより遅延メモリ１４を遅延手段として使用している。そして、ＤＳＰ１３から１サンプリング周期毎に出力される楽音データはＤＡＣ１５においてアナログ楽音信号に変換され、ＤＡＣ１５により変換されたアナログ楽音信号はサウンドシステム１６において増幅されて発音される。
【００１４】
なお、この図には示されていないが、マイクロフォンなどのアナログ波形入力部から入力されるアナログ信号をデジタルデータに変換するアナログデジタル変換器（ＡＤＣ）を設け、該ＡＤＣによりディジタル化された音声データ等も前記ＤＳＰ１３に入力し、該ＤＳＰ１３において前述した楽音データにミキシングするようにすることもできる。
【００１５】
図１は前記ＤＳＰ１３の内部構成の一例を示すブロック図である。この図において、２０はマイクロプログラム供給部であり、その内部にマイクロプログラムを格納しているマイクロプログラムメモリ（制御記憶）を有しており、各クロックサイクル毎に一つのマイクロ命令を読み出し、各処理部に対し当該マイクロコードを供給することにより、対応する処理を実行させるように構成されている。なお、マイクロプログラムメモリに格納されているマイクロプログラムのステップ数は任意のものとすることができるが、ここでは、５１２ステップのマイクロ命令からなるマイクロプログラムがマイクロプログラムメモリに格納されている場合を例にとって説明する。すなわち、１ＤＡＣサイクルで、前記５１２ステップのマイクロ命令が実行されるようになされている。
【００１６】
２１は第１のセレクタであり、前記音源部１１から入力する楽音信号とデータバス３０上のデータを選択して入出力ＲＡＭ（Ｉ／ＯＲＡＭ）２２に入力するためのセレクタである。２２は入出力ＲＡＭであり、セレクタ２１を通して入力されるデータおよびＤＡＣ１５へ出力するデータが格納される。２３はデータバス３０に接続されているテンポラリＲＡＭであり、演算の途中結果などが格納される。２４は第２のセレクタであり、入出力ＲＡＭ２２およびテンポラリＲＡＭ２３の出力が入力され、そのいずれかを選択して乗算部２６の一方の入力に供給するためのセレクタである。
【００１７】
２５は係数レジスタおよび補間部であり、演算に用いる所定の係数値を格納するとともに必要な場合にはその補間演算を行なうものである。２６は乗算部であり、セレクタ２４を介して入力されるデータと係数レジスタおよび補間部２５から入力されるデータとを高速に乗算する乗算器である。２７は第３のセレクタであり、前記入出力ＲＡＭ２２、テンポラリＲＡＭ２３およびデータバス３０からの出力が入力され、そのいずれかを選択して加算部２８に出力するものである。２８は加算部であり、セレクタ２７の出力と乗算部２６の出力とを加算する加算器である。２９は加算部２８の出力を必要に応じてシフト処理するためのシフタである。シフタ２９の出力はデータバス３０に接続されている。また、３１は前述した遅延メモリ（外部ＲＡＭ）１４にアクセスするときのアドレスを制御する外部ＲＡＭアドレス制御部、３２は外部ＲＡＭアドレス制御部３１から供給されるアドレスに基づいて、外部ＲＡＭ１７にアクセスする外部ＲＡＭアクセス回路である。
【００１８】
このように構成されたＤＳＰ１３において、前記マイクロプログラム供給部２０から各演算部、制御部およびゲートなどに供給されるマイクロコードに応じて各演算部、制御部およびゲートなどが制御されることにより、各サンプリング周期毎に前記音源部１１から入力される楽音信号およびデータバス３０に出力される演算結果データが、係数レジスタおよび補間部２５から供給される係数値と演算されたり、必要に応じて外部ＲＡＭ１４に書き込まれ所定時間後に読み出されて所定時間の遅延を与えられることにより、前記音源部１１から入力する前記楽音信号に対し所定のフィルタ演算処理や波形遅延を使用したリバーブやコーラス等の処理が施されて、各サンプリング周期毎に該処理の施された楽音信号がＤＡＣ１５に出力される。
【００１９】
前述のようにマイクロプログラムメモリに格納されているマイクロプログラムのステップ数を５１２ステップとし、例えば、４８ｋＨｚのサンプリング周期にこの５１２ステップが実行されるとすると１ステップ当たりの時間は４０ｎｓｅｃであり、同じ周期で外部ＲＡＭ１４をアクセスするためには非常に高速な外部ＲＡＭが必要になる。そのため、より遅い外部ＲＡＭを使用できるようにするため、本発明では、外部ＲＡＭへのアクセスを所定ステップ、例えば整数ｎの倍数に相当するステップにおいてのみ実行させるようにしている。ここで、ｎは、２以上の整数とすることができる。
【００２０】
従来のＤＳＰにおいては、外部ＲＡＭへのアクセスを制御するためのフィールドは、例えば、外部ＲＡＭへの書き込み／読み出しを指示するための１ビット、そして、書き込みデータの態様を規定するインデックス付きオプションの指示に１あるいは２ビットの合計２〜３ビットからなるフィールドとされていた。しかしながら、本発明においては、前述のように外部ＲＡＭへのアクセスを所定のステップにおいてのみ実行するようにしているため、以下に説明するように、外部ＲＡＭへのアクセスを制御するフィールドのビット数を１ビットに短縮することが可能となる。
【００２１】
以下、このことについて、図２に示す前記マイクロプログラム供給部２０の要部の一構成例および図３に示すマイクロプログラムの記述例を参照して説明する。
マイクロプログラム供給部２０には、前述のようにマイクロプログラムメモリが設けられており、このマイクロプログラムメモリには、図３のマイクロプログラムの記述例に示すように、第０ステップ〜第５１１ステップの合計５１２ステップのマイクロ命令が記憶されている。各マイクロ命令は、図１に示したＤＳＰ１３内部の各処理部にそれぞれ対応した制御信号を含む複数のフィールドから構成されている。図３に示した例では、第１のセレクタ２１、第２のセレクタ２４、第３のセレクタ２７、乗算器２６、テンポラリＲＡＭ２３、シフタ２９および外部ＲＡＭアクセス回路に対応するフィールドのみが記載されているが、このほかに、入出力ＲＡＭ２２、加算部２８等に対するフィールドが設けられている。この図に示すように、本発明においては、前記外部ＲＡＭアクセス回路に対応するフィールドは、１ビットの大きさとされている。
【００２２】
このマイクロプログラム供給部には、クロックパルスΦを０から５１１までカウントするアドレスカウンタが設けられており、各サンプリング周期（ＤＡＣサイクル）の開始時点で０から計数を開始し、計数値が５１１のときに１ＤＡＣサイクルが終了するようになされている。このアドレスカウンタの出力により、前記マイクロプログラムメモリから当該ステップのマイクロ命令が読み出され、各フィールドのマイクロコードがそれぞれ対応する処理部に印加されるようになされている。
【００２３】
図２は、各ステップごとに読み出されるマイクロコードを当該処理部に供給するための回路の一構成例である。
この図において、３４、３５および３６はシフトレジスタの単位段であり、この３４〜３６により、直列並列変換手段となる３段構成の直列入力並列出力のシフトレジスタが構成されている。そして、各シフトレジスタの単位段には、前述したクロックパルスΦがシフトクロックとして印加されており、該クロックパルスΦの３倍の周期のパルス（Φ／３）が並列出力パルスとして印加されている。すなわち、パルスΦが３回発生する毎に、パルスΦ／３が１回発生する。そして、前記シフトレジスタの第１段３４には前記外部ＲＡＭアクセス部向けのマイクロコードが入力され、各ステップごとに前記クロックパルスΦに同期して順次後段にシフトされる。そして、図３中に破線で囲んで示した３ステップ分の当該外部ＲＡＭアクセス部向けのマイクロコードが前記シフトレジスタの各段３４〜３６に格納されたときに、前記パルスΦ／３により、各段に格納されているマイクロコードが並列に読み出され、前記外部ＲＡＭアドレス制御部３１および外部ＲＡＭアクセス回路３２に印加される。
【００２４】
これにより、外部ＲＡＭアドレス制御部３１および外部ＲＡＭアクセス回路３２において、当該３ビットからなるマイクロコードに基づいて、外部ＲＡＭ１４に対する読み出しあるいは書き込みおよびインデックス付きオプションの選択を行うこととなる。例えば、３の倍数に対応するステップのマイクロコードにより前記外部ＲＡＭ１４への読み出し／書き込みを指示し、（３の倍数−１）と（３の倍数−２）に対応する２ステップ分のマイクロコードでインデックス付きオプションを指示するようにする。この２ビットのインデックス付きオプションで、外部ＲＡＭ１４に対する書き込みデータの態様を規定することができる。例えば、複数の圧縮方式で圧縮されたデータを外部ＲＡＭに読み書きするようにした場合の圧縮の有無や圧縮方式を指定するようにしたり、浮動小数点データを読み書きするようにした場合の書き込みデータにおける指数部のビット数を指定したりすることができる。このように、外部ＲＡＭ１４へのアクセスは、Φ／３クロックに同期して、すなわち、３の倍数に対応するステップで実行されることとなる。
【００２５】
また、前記マイクロプログラムメモリから読み出される他の処理部向けのマイクロコードは、必要に応じて所定クロック分だけ遅延を与える遅延手段３７を介して当該処理部に供給されるようになされている。これは、例えば、乗算部２６に対して所定の乗算の実行を指示するマイクロコードと、加算器２８に対して前記乗算結果を用いた加算を指示するマイクロコードとが同一ステップに記述されているときに、加算器２８に対する指示を乗算器２６による乗算結果が出力されるタイミングまで遅延させて供給するようにするためのものである。このように遅延手段３７を設けることにより、同一の処理に対するマイクロプログラムを同一ステップに記述することができるようになり、容易にマイクロプログラムを作成することができるようになる。なお、このような遅延処理が不要なマイクロコードは遅延を受けることなく、当該処理部に供給される。
【００２６】
このように、本発明によれば、マイクロ命令の各ステップには１ビットのマイクロコードを格納しておき、シフトレジスタからなる直列並列変換手段を用いて、複数ステップ分のマイクロコードを並列のマイクロコードに変換して当該処理部に供給するようにしているので、各ステップにおけるマイクロ命令のビット長を短縮することができる。
【００２７】
なお、以上の説明においては、外部ＲＡＭへのアクセスを３の倍数に対応するステップにおいて実行するものとしたが、これに限られることはなく、２以上の任意の整数の倍数に対応するステップで実行するようにできる。
また、前述の実施の形態においては、外部ＲＡＭへのアクセスを制御するフィールドを対象としたが、これに限られることはなく、所定数のステップごとに実行すればよい処理に対応するフィールドであれば、全く同様に適用することが可能である。
さらに、前述の実施の形態においては、電子楽器に搭載されるＤＳＰを例にとって説明したが、これに限られることはなく、マイクロプログラム制御の処理装置であれば、いかなるものにも同様に適用することが可能である。
【００２８】
【発明の効果】
本発明は以上のように構成されているので、マイクロ命令の命令長を縮減することができ、マイクロプログラムメモリの容量を節減することが可能とる。したがって、マイクロプログラムメモリのサイズを縮小することができ、ＬＳＩを作成する場合におけるコストの低減を図ることが可能となる。
また、同一のサイズを使用することができる場合には、従来よりも多くのマイクロプログラムを格納することが可能となり、より多くのマイクロプログラムを格納することができるようになる。エフェクト用のＤＳＰの場合には多彩なエフェクトを付与することができるようになる。
【図面の簡単な説明】
【図１】本発明のＤＳＰの一実施の形態の内部構成を示すブロック図である。
【図２】本発明のＤＳＰの一実施の形態におけるマイクロプログラム供給部２０の要部の一構成例を示すブロック図である。
【図３】マイクロプログラムの一記述例を示す図である。
【図４】ＤＳＰが用いられる電子楽器の構成例を示すブロック図である。
【符号の説明】
１  ＣＰＵ、２  タイマ、３  ＭＩＤＩ入出力回路、４  ＭＩＤＩ端子、５  シリアル入出力回路、６  鍵盤、７  パラレル入出力回路、８  パネル表示器および操作子、９  プログラムメモリ、１０  ワークＲＡＭ、１１  音源部、１２  波形メモリ、１３  ディジタル信号処理装置（ＤＳＰ）、１４  遅延メモリ（外部ＲＡＭ）、１５  デジタルアナログ変換器（ＤＡＣ）、１６  サウンドシステム、１７  ＣＰＵバス、２０  マイクロプログラム供給部、２１、２４、２７  セレクタ、２２  入出力ＲＡＭ、２３  テンポラリＲＡＭ、２５  係数レジスタおよび補間部、２６  乗算部、２８  加算部、２９  シフタ、３０  データバス、３１  外部ＲＡＭアドレス制御部、３２  外部ＲＡＭアクセス回路、３７  遅延回路、３４〜３６  シフトレジスタ
【図１】
0003610759.tif 000002
【図２】
0003610759.tif 000003
【図３】
0003610759.tif 000004
【図４】
0003610759.tif 000005