JP3610759B2 - Digital signal processor - Google Patents

Digital signal processor Download PDF

Info

Publication number
JP3610759B2
JP3610759B2 JP01195498A JP1195498A JP3610759B2 JP 3610759 B2 JP3610759 B2 JP 3610759B2 JP 01195498 A JP01195498 A JP 01195498A JP 1195498 A JP1195498 A JP 1195498A JP 3610759 B2 JP3610759 B2 JP 3610759B2
Authority
JP
Japan
Prior art keywords
output
microprogram
unit
data
ram
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.)
Expired - Fee Related
Application number
JP01195498A
Other languages
Japanese (ja)
Other versions
JPH11203129A (en
Inventor
隆一 河本
和久 岡村
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.)
Yamaha Corp
Original Assignee
Yamaha 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 Yamaha Corp filed Critical Yamaha Corp
Priority to JP01195498A priority Critical patent/JP3610759B2/en
Publication of JPH11203129A publication Critical patent/JPH11203129A/en
Application granted granted Critical
Publication of JP3610759B2 publication Critical patent/JP3610759B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明はマイクロプログラム制御を用いたディジタル信号処理装置(DSP:Digital Signal Processor)に関する。
【0002】
【従来の技術】
フィルター操作や変復調操作などの実時間信号処理をディジタル値の代数演算によって高精度かつ高安定に行なうことのできるDSPが、オーディオ信号やビデオ信号の処理、音声情報処理などの多くの分野で用いられている。
電子楽器などの楽音発生装置においても、発生した楽音に所定の効果を付加するエフェクタとしてDSPが利用されている。電子楽器におけるこのような処理は常にサンプリング周期(DACサイクル)に同期して行われなければならず、このような場合に適用して好適なDSPが本出願人により提案されている(特開平5−150977号公報)。
【0003】
この本出願人により提案されたDSPによれば、マイクロプログラムが固定数のステップにより記述されており、かつ、1サンプリング周期でこのマイクロプログラムの全てのステップを順次読み出して処理を行なうようになされているため、当該マイクロプログラムは必ず所定の周期毎に実行されることとなり、実時間の信号処理が保証されるとともにプログラム作成段階においてプログラムの実行時間を容易に把握することができる。
【0004】
【発明が解決しようとする課題】
近年の半導体技術の進歩に伴い、音源部と前述したDSPとを単一の半導体チップ上に集積すること、あるいは、音源部とDSPと中央処理装置(CPU)とを集積することが行われるようになっている。このような場合には、半導体チップのサイズを縮小することがコストの低減のために求められ、DSPにおけるマイクロプログラムを格納する領域のサイズを縮小することが望まれている。
【0005】
そこで、本発明は、マイクロプログラム制御によるディジタル信号処理装置において、マイクロプログラムを格納するメモリの容量を節約してハードウエア量を節減するとともに、コストダウンを図ることを目的としている。
【0006】
【課題を解決するための手段】
上記目的を達成するために、本発明のディジタル信号処理装置は、マイクロプログラムを格納するマイクロプログラムメモリと、各ステップごとに前記マイクロプログラムメモリから1ステップ分のマイクロ命令を読み出して出力する読出手段と、各ステップごとに前記読出手段が出力するマイクロ命令のうちの一部のフィールドを順次格納し、所定ステップごとに並列に出力する直列並列変換手段と、該直列並列変換手段から前記所定ステップごとに出力される並列化されたマイクロコードにより制御される処理部と、前記各ステップごとに前記読出手段が出力するマイクロ命令のうちの前記一部のフィールドを除いた残りのフィールドにより制御される他の処理部とを有するものである。
また、前記一部のフィールドは、外部RAMに対するアクセスを制御するためのフィールドであり、前記直列並列変換手段から前記所定ステップごとに出力される並列化されたマイクロコードにより制御される処理部は、前記外部RAMをアクセスするアクセス回路とされているものである。
【0007】
マイクロコードのうち外部メモリへのアクセスを制御するためのフィールドなどの所定のフィールドについては、当該処理の実行を所定の時間間隔をもって実行するものとし、各ステップに格納されているマイクロコードを直列並列変換手段を用いて並列化し、複数ステップ分のマイクロコードを並列化したマイクロコードを当該処理部に供給する。これにより、各ステップにおけるマイクロコードのビット長を短くすることが可能となり、制御記憶の容量を削減することができる。
【0008】
【発明の実施の形態】
本発明のディジタル信号処理装置(DSP)について説明する前に、まず、このDSPが用いられる装置の一例である電子楽器について図4を参照して説明する。
図4において、1はこの電子楽器の全体の動作を制御するCPU、2は楽音発生装置の動作時の経過時間を示したり、特定の間隔でタイマ割込を発生するタイマ、3は外部MIDI機器からMIDI端子4を介して入力されるMIDIメッセージを取り込んだり、この電子楽器内で生成されたMIDIメッセージをMIDI端子4を介して外部MIDI機器へ出力するためのMIDIインターフェース回路、5は鍵盤6の操作信号が直列データとして入出力されるシリアル入出力回路(シリアルI/O)、7はパネル表示器および操作子8におけるパネル表示器に表示される画像データを出力するとともに、パネルスイッチをスキャンしてその操作信号を取り込むためのパラレル入出力回路(パラレルI/O)である。また、9は前記CPU1の動作を制御する制御プログラムが格納されているプログラムメモリ、10は前記CPU1により使用されるワークメモリである。
【0009】
11は波形メモリ方式による音源部であり、各発音チャンネルで生成される楽音を制御する楽音制御データなどが格納される音源レジスタ、該音源レジスタに格納されている周波数ナンバパラメータや音色パラメータに基づいて楽音信号を形成する。すなわち、複数の発音チャンネル(例えば、32チャンネル)のチャンネル毎の読み出しアドレスを生成し、該読み出しアドレスに基づいて補間処理に必要な各発音チャンネルの波形サンプルデータを波形メモリ12から読み出し、該読み出された各発音チャンネルの波形サンプルデータの補間処理を行う読出補間回路、および、読出補間回路から出力される各発音チャンネルの波形サンプルデータに音量エンベロープ等を付与するEG付与部などが含まれている。なお、この音源部としては波形メモリ方式のものに限られることはなく、他の方式の音源を用いることができる。
【0010】
13は各発音チャンネルの波形サンプルデータをミキシングしてサンプリング周期毎の楽音波形データを生成すると共に、コーラス、リバーブ、バリエーション等のエフェクト処理を該楽音波形データに付与するDSPである。また、14は、エコーやリバーブなどの遅延を必要とするエフェクトを付与するときに、当該楽音波形データを書き込み所定時間後に読み出すことにより所要の遅延を行うための、遅延メモリ(外部RAM)である。さらに、15は前記DSP13からサンプリング周期毎に出力される楽音波形データをアナログ信号に変換するデジタルアナログ変換器(DAC)、16は該DAC15の出力を増幅し音響信号として放出するサウンドシステムである。さらにまた、17は前記各部を接続するCPUバスである。
【0011】
このように構成されている電子楽器の動作について説明する。
鍵盤6からシリアル入出力回路5を介して押鍵情報が取り込まれたり、MIDIイベントの発音タイミングとなったときに、CPU1は入力された演奏情報に応じて、チャンネルアサイン、パラメータ変換などを行ういわゆる音源ドライバ処理を実行し、音源部の割り当てたチャンネルに対する変換したパラメータと発音開始指示(ノートオン)などの音源パラメータを音源レジスタに書き込む。すなわち、ノートオンイベントが入力された場合は、CPU1はノートオンイベントに基づいた新たな楽音を生成できるように、まず、発音チャンネルを割り当て、音源レジスタの割り当てたチャンネルの記憶領域にノートナンバ、音色情報(メモリ読み出し区間)、ベロシティ(音量情報)等の音源パラメータをセットする。また、ノートオフイベントが入力された場合は、当該ノートオフイベントに基づいた発音停止を行えるように音源パラメータを音源レジスタにセットする。なお、これらの指示はCPU1がプログラムメモリ9に記憶されている音源ドライバ処理プログラムを実行することにより行われる。
【0012】
一方、前記音源部11では楽音生成処理が実行される。この楽音生成処理では、読出補間回路が1サンプリング周期を等分した時分割チャンネルタイミングに従って前記音源レジスタにセットされている各チャンネルのノートナンバに対応した周波数情報を累算し、その累算値と音色情報に基づいて波形メモリ12に対する読み出しアドレスを作成する。次いで、作成された読み出しアドレスの整数部に従って、前記波形メモリ12にアクセスすることにより、各チャンネルに必要な波形サンプルデータを読み出し、バッファに格納する。これにより、作成された読み出しアドレスの小数部に従って波形サンプルデータを補間して算出するために必要な数の波形サンプルデータがバッファに用意される。そして、バッファに用意されている各チャンネルの波形サンプルデータから、作成された読み出しアドレスの小数部に従って補間された波形サンプルデータが算出される。なお、補間処理は前記時分割チャンネルタイミングでチャンネル毎に行われる。
【0013】
前記読出補間回路から出力された補間処理後の各チャンネルの波形サンプルデータは、EG付与部において音源レジスタにセットされている当該チャンネルの音量情報および音色情報に応じたエンベロープが付与される。さらにエンベロープが付与された各チャンネルの波形サンプルデータはDSP13に入力される。そして、DSP13において、各チャンネルの波形サンプルデータがミキシングされると共に、コーラス、リバーブ、バリエーション等のエフェクト処理が施されることにより、サンプリング周期毎の楽音データが生成される。また、エフェクト処理時に楽音データの遅延が必要な場合は、DSP13は、その外部に設けられた遅延メモリ14に当該楽音データを書き込み所定時間後にそれを読み出すことにより遅延メモリ14を遅延手段として使用している。そして、DSP13から1サンプリング周期毎に出力される楽音データはDAC15においてアナログ楽音信号に変換され、DAC15により変換されたアナログ楽音信号はサウンドシステム16において増幅されて発音される。
【0014】
なお、この図には示されていないが、マイクロフォンなどのアナログ波形入力部から入力されるアナログ信号をデジタルデータに変換するアナログデジタル変換器(ADC)を設け、該ADCによりディジタル化された音声データ等も前記DSP13に入力し、該DSP13において前述した楽音データにミキシングするようにすることもできる。
【0015】
図1は前記DSP13の内部構成の一例を示すブロック図である。この図において、20はマイクロプログラム供給部であり、その内部にマイクロプログラムを格納しているマイクロプログラムメモリ(制御記憶)を有しており、各クロックサイクル毎に一つのマイクロ命令を読み出し、各処理部に対し当該マイクロコードを供給することにより、対応する処理を実行させるように構成されている。なお、マイクロプログラムメモリに格納されているマイクロプログラムのステップ数は任意のものとすることができるが、ここでは、512ステップのマイクロ命令からなるマイクロプログラムがマイクロプログラムメモリに格納されている場合を例にとって説明する。すなわち、1DACサイクルで、前記512ステップのマイクロ命令が実行されるようになされている。
【0016】
21は第1のセレクタであり、前記音源部11から入力する楽音信号とデータバス30上のデータを選択して入出力RAM(I/ORAM)22に入力するためのセレクタである。22は入出力RAMであり、セレクタ21を通して入力されるデータおよびDAC15へ出力するデータが格納される。23はデータバス30に接続されているテンポラリRAMであり、演算の途中結果などが格納される。24は第2のセレクタであり、入出力RAM22およびテンポラリRAM23の出力が入力され、そのいずれかを選択して乗算部26の一方の入力に供給するためのセレクタである。
【0017】
25は係数レジスタおよび補間部であり、演算に用いる所定の係数値を格納するとともに必要な場合にはその補間演算を行なうものである。26は乗算部であり、セレクタ24を介して入力されるデータと係数レジスタおよび補間部25から入力されるデータとを高速に乗算する乗算器である。27は第3のセレクタであり、前記入出力RAM22、テンポラリRAM23およびデータバス30からの出力が入力され、そのいずれかを選択して加算部28に出力するものである。28は加算部であり、セレクタ27の出力と乗算部26の出力とを加算する加算器である。29は加算部28の出力を必要に応じてシフト処理するためのシフタである。シフタ29の出力はデータバス30に接続されている。また、31は前述した遅延メモリ(外部RAM)14にアクセスするときのアドレスを制御する外部RAMアドレス制御部、32は外部RAMアドレス制御部31から供給されるアドレスに基づいて、外部RAM17にアクセスする外部RAMアクセス回路である。
【0018】
このように構成されたDSP13において、前記マイクロプログラム供給部20から各演算部、制御部およびゲートなどに供給されるマイクロコードに応じて各演算部、制御部およびゲートなどが制御されることにより、各サンプリング周期毎に前記音源部11から入力される楽音信号およびデータバス30に出力される演算結果データが、係数レジスタおよび補間部25から供給される係数値と演算されたり、必要に応じて外部RAM14に書き込まれ所定時間後に読み出されて所定時間の遅延を与えられることにより、前記音源部11から入力する前記楽音信号に対し所定のフィルタ演算処理や波形遅延を使用したリバーブやコーラス等の処理が施されて、各サンプリング周期毎に該処理の施された楽音信号がDAC15に出力される。
【0019】
前述のようにマイクロプログラムメモリに格納されているマイクロプログラムのステップ数を512ステップとし、例えば、48kHzのサンプリング周期にこの512ステップが実行されるとすると1ステップ当たりの時間は40nsecであり、同じ周期で外部RAM14をアクセスするためには非常に高速な外部RAMが必要になる。そのため、より遅い外部RAMを使用できるようにするため、本発明では、外部RAMへのアクセスを所定ステップ、例えば整数nの倍数に相当するステップにおいてのみ実行させるようにしている。ここで、nは、2以上の整数とすることができる。
【0020】
従来のDSPにおいては、外部RAMへのアクセスを制御するためのフィールドは、例えば、外部RAMへの書き込み/読み出しを指示するための1ビット、そして、書き込みデータの態様を規定するインデックス付きオプションの指示に1あるいは2ビットの合計2〜3ビットからなるフィールドとされていた。しかしながら、本発明においては、前述のように外部RAMへのアクセスを所定のステップにおいてのみ実行するようにしているため、以下に説明するように、外部RAMへのアクセスを制御するフィールドのビット数を1ビットに短縮することが可能となる。
【0021】
以下、このことについて、図2に示す前記マイクロプログラム供給部20の要部の一構成例および図3に示すマイクロプログラムの記述例を参照して説明する。
マイクロプログラム供給部20には、前述のようにマイクロプログラムメモリが設けられており、このマイクロプログラムメモリには、図3のマイクロプログラムの記述例に示すように、第0ステップ〜第511ステップの合計512ステップのマイクロ命令が記憶されている。各マイクロ命令は、図1に示したDSP13内部の各処理部にそれぞれ対応した制御信号を含む複数のフィールドから構成されている。図3に示した例では、第1のセレクタ21、第2のセレクタ24、第3のセレクタ27、乗算器26、テンポラリRAM23、シフタ29および外部RAMアクセス回路に対応するフィールドのみが記載されているが、このほかに、入出力RAM22、加算部28等に対するフィールドが設けられている。この図に示すように、本発明においては、前記外部RAMアクセス回路に対応するフィールドは、1ビットの大きさとされている。
【0022】
このマイクロプログラム供給部には、クロックパルスΦを0から511までカウントするアドレスカウンタが設けられており、各サンプリング周期(DACサイクル)の開始時点で0から計数を開始し、計数値が511のときに1DACサイクルが終了するようになされている。このアドレスカウンタの出力により、前記マイクロプログラムメモリから当該ステップのマイクロ命令が読み出され、各フィールドのマイクロコードがそれぞれ対応する処理部に印加されるようになされている。
【0023】
図2は、各ステップごとに読み出されるマイクロコードを当該処理部に供給するための回路の一構成例である。
この図において、34、35および36はシフトレジスタの単位段であり、この34〜36により、直列並列変換手段となる3段構成の直列入力並列出力のシフトレジスタが構成されている。そして、各シフトレジスタの単位段には、前述したクロックパルスΦがシフトクロックとして印加されており、該クロックパルスΦの3倍の周期のパルス(Φ/3)が並列出力パルスとして印加されている。すなわち、パルスΦが3回発生する毎に、パルスΦ/3が1回発生する。そして、前記シフトレジスタの第1段34には前記外部RAMアクセス部向けのマイクロコードが入力され、各ステップごとに前記クロックパルスΦに同期して順次後段にシフトされる。そして、図3中に破線で囲んで示した3ステップ分の当該外部RAMアクセス部向けのマイクロコードが前記シフトレジスタの各段34〜36に格納されたときに、前記パルスΦ/3により、各段に格納されているマイクロコードが並列に読み出され、前記外部RAMアドレス制御部31および外部RAMアクセス回路32に印加される。
【0024】
これにより、外部RAMアドレス制御部31および外部RAMアクセス回路32において、当該3ビットからなるマイクロコードに基づいて、外部RAM14に対する読み出しあるいは書き込みおよびインデックス付きオプションの選択を行うこととなる。例えば、3の倍数に対応するステップのマイクロコードにより前記外部RAM14への読み出し/書き込みを指示し、(3の倍数−1)と(3の倍数−2)に対応する2ステップ分のマイクロコードでインデックス付きオプションを指示するようにする。この2ビットのインデックス付きオプションで、外部RAM14に対する書き込みデータの態様を規定することができる。例えば、複数の圧縮方式で圧縮されたデータを外部RAMに読み書きするようにした場合の圧縮の有無や圧縮方式を指定するようにしたり、浮動小数点データを読み書きするようにした場合の書き込みデータにおける指数部のビット数を指定したりすることができる。このように、外部RAM14へのアクセスは、Φ/3クロックに同期して、すなわち、3の倍数に対応するステップで実行されることとなる。
【0025】
また、前記マイクロプログラムメモリから読み出される他の処理部向けのマイクロコードは、必要に応じて所定クロック分だけ遅延を与える遅延手段37を介して当該処理部に供給されるようになされている。これは、例えば、乗算部26に対して所定の乗算の実行を指示するマイクロコードと、加算器28に対して前記乗算結果を用いた加算を指示するマイクロコードとが同一ステップに記述されているときに、加算器28に対する指示を乗算器26による乗算結果が出力されるタイミングまで遅延させて供給するようにするためのものである。このように遅延手段37を設けることにより、同一の処理に対するマイクロプログラムを同一ステップに記述することができるようになり、容易にマイクロプログラムを作成することができるようになる。なお、このような遅延処理が不要なマイクロコードは遅延を受けることなく、当該処理部に供給される。
【0026】
このように、本発明によれば、マイクロ命令の各ステップには1ビットのマイクロコードを格納しておき、シフトレジスタからなる直列並列変換手段を用いて、複数ステップ分のマイクロコードを並列のマイクロコードに変換して当該処理部に供給するようにしているので、各ステップにおけるマイクロ命令のビット長を短縮することができる。
【0027】
なお、以上の説明においては、外部RAMへのアクセスを3の倍数に対応するステップにおいて実行するものとしたが、これに限られることはなく、2以上の任意の整数の倍数に対応するステップで実行するようにできる。
また、前述の実施の形態においては、外部RAMへのアクセスを制御するフィールドを対象としたが、これに限られることはなく、所定数のステップごとに実行すればよい処理に対応するフィールドであれば、全く同様に適用することが可能である。
さらに、前述の実施の形態においては、電子楽器に搭載されるDSPを例にとって説明したが、これに限られることはなく、マイクロプログラム制御の処理装置であれば、いかなるものにも同様に適用することが可能である。
【0028】
【発明の効果】
本発明は以上のように構成されているので、マイクロ命令の命令長を縮減することができ、マイクロプログラムメモリの容量を節減することが可能とる。したがって、マイクロプログラムメモリのサイズを縮小することができ、LSIを作成する場合におけるコストの低減を図ることが可能となる。
また、同一のサイズを使用することができる場合には、従来よりも多くのマイクロプログラムを格納することが可能となり、より多くのマイクロプログラムを格納することができるようになる。エフェクト用のDSPの場合には多彩なエフェクトを付与することができるようになる。
【図面の簡単な説明】
【図1】本発明のDSPの一実施の形態の内部構成を示すブロック図である。
【図2】本発明のDSPの一実施の形態におけるマイクロプログラム供給部20の要部の一構成例を示すブロック図である。
【図3】マイクロプログラムの一記述例を示す図である。
【図4】DSPが用いられる電子楽器の構成例を示すブロック図である。
【符号の説明】
1 CPU、2 タイマ、3 MIDI入出力回路、4 MIDI端子、5 シリアル入出力回路、6 鍵盤、7 パラレル入出力回路、8 パネル表示器および操作子、9 プログラムメモリ、10 ワークRAM、11 音源部、12 波形メモリ、13 ディジタル信号処理装置(DSP)、14 遅延メモリ(外部RAM)、15 デジタルアナログ変換器(DAC)、16 サウンドシステム、17 CPUバス、20 マイクロプログラム供給部、21、24、27 セレクタ、22 入出力RAM、23 テンポラリRAM、25 係数レジスタおよび補間部、26 乗算部、28 加算部、29 シフタ、30 データバス、31 外部RAMアドレス制御部、32 外部RAMアクセス回路、37 遅延回路、34〜36 シフトレジスタ
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a digital signal processor (DSP) using microprogram control.
[0002]
[Prior art]
DSPs that can perform real-time signal processing such as filtering and modulation / demodulation operations with high accuracy and high stability by algebraic computation of digital values are used in many fields such as audio signal and video signal processing and audio information processing. ing.
In a musical sound generator such as an electronic musical instrument, a DSP is used as an effector for adding a predetermined effect to the generated musical sound. Such processing in an electronic musical instrument must always be performed in synchronization with a sampling period (DAC cycle), and a DSP suitable for such a case has been proposed by the present applicant (Japanese Patent Laid-Open No. Hei 5). -150977).
[0003]
According to the DSP proposed by the present applicant, the microprogram is described by a fixed number of steps, and all the steps of the microprogram are sequentially read and processed in one sampling period. Therefore, the microprogram is always executed at a predetermined cycle, and real-time signal processing is guaranteed, and the execution time of the program can be easily grasped at the program creation stage.
[0004]
[Problems to be solved by the invention]
With recent advances in semiconductor technology, the sound source unit and the above-described DSP are integrated on a single semiconductor chip, or the sound source unit, the DSP, and a central processing unit (CPU) are integrated. It has become. In such a case, it is required to reduce the size of the semiconductor chip in order to reduce the cost, and it is desired to reduce the size of the area for storing the microprogram in the DSP.
[0005]
SUMMARY OF THE INVENTION Accordingly, an object of the present invention is to reduce the amount of hardware by saving the capacity of a memory for storing a microprogram and to reduce the cost in a digital signal processing apparatus under microprogram control.
[0006]
[Means for Solving the Problems]
In order to achieve the above object, a digital signal processing apparatus according to the present invention comprises a microprogram memory for storing a microprogram, and a reading means for reading out and outputting one step of microinstructions from the microprogram memory for each step. Serially storing a part of the fields of the microinstructions output by the reading means for each step, and outputting in parallel for each predetermined step; and from the serial-parallel converting means for each predetermined step. The processing unit controlled by the parallelized microcode that is output, and other control units that are controlled by the remaining fields excluding the partial field of the microinstructions output by the reading means at each step . And a processing unit.
The partial field is a field for controlling access to the external RAM , and the processing unit controlled by the parallelized microcode output at every predetermined step from the serial-to-parallel conversion unit includes : The access circuit accesses the external RAM .
[0007]
For a predetermined field such as a field for controlling access to the external memory in the microcode, the processing is executed at a predetermined time interval, and the microcode stored in each step is serially parallel. The conversion unit is used for parallelization, and microcode obtained by parallelizing microcodes for a plurality of steps is supplied to the processing unit. Thereby, the bit length of the microcode in each step can be shortened, and the capacity of the control storage can be reduced.
[0008]
DETAILED DESCRIPTION OF THE INVENTION
Before describing the digital signal processing apparatus (DSP) of the present invention, first, an electronic musical instrument which is an example of an apparatus using the DSP will be described with reference to FIG.
In FIG. 4, 1 is a CPU that controls the overall operation of the electronic musical instrument, 2 is a timer that indicates the elapsed time during operation of the musical tone generator, or a timer that generates a timer interrupt at a specific interval, and 3 is an external MIDI device. MIDI interface circuit for taking in a MIDI message input from the MIDI terminal 4 through the MIDI terminal 4 and outputting the MIDI message generated in the electronic musical instrument to an external MIDI device through the MIDI terminal 4. A serial input / output circuit (serial I / O) 7 in which operation signals are input / output as serial data, 7 outputs image data displayed on the panel display and the panel display in the operation element 8 and scans the panel switch. A parallel input / output circuit (parallel I / O) for receiving the operation signal. Reference numeral 9 is a program memory in which a control program for controlling the operation of the CPU 1 is stored, and 10 is a work memory used by the CPU 1.
[0009]
Reference numeral 11 denotes a sound source unit using a waveform memory system, which is based on a sound source register that stores tone control data for controlling a tone generated in each tone generation channel, and a frequency number parameter and a tone color parameter stored in the tone generator register. A musical tone signal is formed. That is, a read address is generated for each of a plurality of sound generation channels (for example, 32 channels), waveform sample data of each sound generation channel necessary for the interpolation processing is read from the waveform memory 12 based on the read address, and the read is performed. Includes a read interpolation circuit that performs interpolation processing of the waveform sample data of each sound generation channel, and an EG appending unit that adds a volume envelope to the waveform sample data of each sound output channel output from the read interpolation circuit. . The sound source section is not limited to the waveform memory type, and other types of sound sources can be used.
[0010]
Reference numeral 13 denotes a DSP that mixes waveform sample data of each tone generation channel to generate musical sound waveform data for each sampling period, and adds effect processing such as chorus, reverb, and variation to the musical sound waveform data. Reference numeral 14 denotes a delay memory (external RAM) for performing a required delay by writing the musical tone waveform data and reading it after a predetermined time when an effect such as echo or reverb is applied. . Further, 15 is a digital / analog converter (DAC) that converts musical sound waveform data output from the DSP 13 at every sampling period into an analog signal, and 16 is a sound system that amplifies the output of the DAC 15 and emits it as an acoustic signal. Furthermore, reference numeral 17 denotes a CPU bus for connecting the above-described units.
[0011]
The operation of the electronic musical instrument configured as described above will be described.
When key press information is taken in from the keyboard 6 via the serial input / output circuit 5 or when a MIDI event sounding timing comes, the CPU 1 performs so-called channel assignment, parameter conversion, etc. according to the input performance information. The sound source driver process is executed, and the sound source parameters such as the converted parameters and the sounding start instruction (note on) for the channel assigned by the sound source unit are written into the sound source register. That is, when a note-on event is input, the CPU 1 first assigns a sound generation channel so that a new musical tone can be generated based on the note-on event, and a note number and tone color are assigned to the storage area of the assigned channel of the tone generator register. Sound source parameters such as information (memory read section) and velocity (volume information) are set. When a note-off event is input, a sound source parameter is set in the sound source register so that sound generation can be stopped based on the note-off event. These instructions are performed when the CPU 1 executes a sound source driver processing program stored in the program memory 9.
[0012]
On the other hand, the tone generator 11 performs a musical tone generation process. In this musical tone generation process, the read interpolation circuit accumulates frequency information corresponding to the note number of each channel set in the sound source register according to the time division channel timing obtained by equally dividing one sampling period, and the accumulated value and Based on the timbre information, a read address for the waveform memory 12 is created. Next, by accessing the waveform memory 12 according to the integer part of the created read address, the waveform sample data required for each channel is read and stored in the buffer. As a result, the number of waveform sample data necessary to interpolate and calculate the waveform sample data according to the decimal part of the created read address is prepared in the buffer. Then, the waveform sample data interpolated according to the decimal part of the created read address is calculated from the waveform sample data of each channel prepared in the buffer. The interpolation processing is performed for each channel at the time division channel timing.
[0013]
The waveform sample data of each channel after interpolation processing output from the readout interpolation circuit is given an envelope according to the volume information and tone color information of the channel set in the sound source register in the EG assigning unit. Further, the waveform sample data of each channel to which the envelope is added is input to the DSP 13. The DSP 13 mixes the waveform sample data of each channel and performs effect processing such as chorus, reverb, variation, etc., thereby generating musical tone data for each sampling period. If the musical sound data needs to be delayed during the effect processing, the DSP 13 uses the delay memory 14 as a delay means by writing the musical sound data to the delay memory 14 provided outside thereof and reading it after a predetermined time. ing. The musical tone data output from the DSP 13 at every sampling period is converted into an analog musical tone signal by the DAC 15, and the analog musical tone signal converted by the DAC 15 is amplified and produced by the sound system 16.
[0014]
Although not shown in this figure, an analog-digital converter (ADC) for converting an analog signal input from an analog waveform input unit such as a microphone into digital data is provided, and voice data digitized by the ADC is provided. Can also be input to the DSP 13 and mixed in the DSP 13 with the above-described musical sound data.
[0015]
FIG. 1 is a block diagram showing an example of the internal configuration of the DSP 13. In this figure, reference numeral 20 denotes a microprogram supply unit, which has a microprogram memory (control memory) storing a microprogram therein, and reads out one microinstruction for each clock cycle and performs each process. A corresponding process is executed by supplying the microcode to the unit. Note that the number of steps of the microprogram stored in the microprogram memory can be arbitrary, but here, a case where a microprogram composed of 512 steps of microinstructions is stored in the microprogram memory is an example. I will explain to you. In other words, the 512-step microinstruction is executed in one DAC cycle.
[0016]
Reference numeral 21 denotes a first selector, which is a selector for selecting a musical sound signal input from the tone generator 11 and data on the data bus 30 and inputting the selected signal to an input / output RAM (I / ORAM) 22. An input / output RAM 22 stores data input through the selector 21 and data output to the DAC 15. A temporary RAM 23 is connected to the data bus 30 and stores intermediate results of operations. Reference numeral 24 denotes a second selector which receives inputs from the input / output RAM 22 and the temporary RAM 23 and selects one of them to supply to one input of the multiplication unit 26.
[0017]
A coefficient register and an interpolation unit 25 store predetermined coefficient values used for calculation and perform interpolation calculation when necessary. A multiplication unit 26 is a multiplier that multiplies the data input via the selector 24 and the data input from the coefficient register and interpolation unit 25 at high speed. A third selector 27 receives outputs from the input / output RAM 22, the temporary RAM 23, and the data bus 30, selects one of them and outputs it to the adder 28. An adder 28 is an adder that adds the output of the selector 27 and the output of the multiplier 26. A shifter 29 shifts the output of the adder 28 as necessary. The output of the shifter 29 is connected to the data bus 30. Further, 31 is an external RAM address control unit that controls an address when accessing the delay memory (external RAM) 14 described above, and 32 is an access to the external RAM 17 based on the address supplied from the external RAM address control unit 31. An external RAM access circuit.
[0018]
In the DSP 13 configured as described above, each calculation unit, control unit, gate, and the like are controlled according to the microcode supplied from the micro program supply unit 20 to each calculation unit, control unit, gate, and the like. The musical tone signal input from the sound source unit 11 and the calculation result data output to the data bus 30 at each sampling period are calculated with the coefficient value supplied from the coefficient register and the interpolation unit 25, or externally if necessary. By being written in the RAM 14 and read out after a predetermined time and given a delay of a predetermined time, a predetermined filter calculation process or a process such as reverb or chorus using a waveform delay is applied to the musical sound signal inputted from the sound source unit 11. And a musical tone signal subjected to the processing is output to the DAC 15 for each sampling period.
[0019]
As described above, the number of steps of the microprogram stored in the microprogram memory is 512 steps. For example, if this 512 step is executed in a sampling period of 48 kHz, the time per step is 40 nsec, and the same period In order to access the external RAM 14, a very high speed external RAM is required. Therefore, in order to use a slower external RAM, in the present invention, the access to the external RAM is executed only in a predetermined step, for example, a step corresponding to a multiple of an integer n. Here, n can be an integer of 2 or more.
[0020]
In a conventional DSP, a field for controlling access to an external RAM is, for example, one bit for instructing writing / reading to / from the external RAM, and an indexed option indicating the mode of write data 1 or 2 bits in total, which is a field consisting of 2 to 3 bits. However, in the present invention, as described above, access to the external RAM is executed only in a predetermined step. As described below, the number of bits of the field for controlling access to the external RAM is set as follows. It can be shortened to 1 bit.
[0021]
Hereinafter, this will be described with reference to a configuration example of a main part of the microprogram supply unit 20 shown in FIG. 2 and a description example of the microprogram shown in FIG.
The microprogram supply unit 20 is provided with the microprogram memory as described above. As shown in the description example of the microprogram in FIG. 3, the microprogram memory includes a total of the 0th step to the 511th step. A 512-step microinstruction is stored. Each microinstruction is composed of a plurality of fields including control signals respectively corresponding to the respective processing units in the DSP 13 shown in FIG. In the example shown in FIG. 3, only the fields corresponding to the first selector 21, the second selector 24, the third selector 27, the multiplier 26, the temporary RAM 23, the shifter 29, and the external RAM access circuit are described. However, fields for the input / output RAM 22, the adder 28, and the like are provided. As shown in this figure, in the present invention, the field corresponding to the external RAM access circuit has a size of 1 bit.
[0022]
This microprogram supply unit is provided with an address counter that counts the clock pulse Φ from 0 to 511, and starts counting from 0 at the start of each sampling period (DAC cycle). 1 DAC cycle is completed. By the output of the address counter, the microinstruction of the step is read from the microprogram memory, and the microcode of each field is applied to the corresponding processing unit.
[0023]
FIG. 2 is a configuration example of a circuit for supplying the microcode read at each step to the processing unit.
In this figure, reference numerals 34, 35 and 36 denote unit stages of the shift register, and these 34 to 36 constitute a three-stage serial input parallel output shift register serving as a serial-parallel conversion means. The clock pulse Φ described above is applied as a shift clock to the unit stage of each shift register, and a pulse (Φ / 3) having a period three times that of the clock pulse Φ is applied as a parallel output pulse. . That is, every time the pulse Φ is generated three times, the pulse Φ / 3 is generated once. Then, the microcode for the external RAM access unit is input to the first stage 34 of the shift register, and each step is sequentially shifted to the subsequent stage in synchronization with the clock pulse Φ. Then, when the microcodes for the external RAM access unit corresponding to the three steps indicated by the broken lines in FIG. 3 are stored in the stages 34 to 36 of the shift register, each pulse Φ / 3 The microcode stored in the stage is read in parallel and applied to the external RAM address control unit 31 and the external RAM access circuit 32.
[0024]
As a result, the external RAM address control unit 31 and the external RAM access circuit 32 perform reading or writing with respect to the external RAM 14 and selection of an indexed option based on the 3-bit microcode. For example, the microcode of the step corresponding to a multiple of 3 is instructed to read / write to the external RAM 14, and the microcode for two steps corresponding to (multiple of 3 minus 1) and (multiple of 3 minus 2). Point to indexed options. With this 2-bit indexed option, the mode of data to be written to the external RAM 14 can be defined. For example, the index in the write data when specifying the presence or absence of compression and the compression method when reading and writing data compressed with multiple compression methods to the external RAM, or when reading and writing floating point data You can specify the number of bits in the part. As described above, the access to the external RAM 14 is executed in synchronization with the Φ / 3 clock, that is, in steps corresponding to multiples of 3.
[0025]
The microcode for other processing units read from the microprogram memory is supplied to the processing unit via delay means 37 that gives a delay by a predetermined clock as required. For example, microcode for instructing the multiplier 26 to execute predetermined multiplication and microcode for instructing the adder 28 to perform addition using the multiplication result are described in the same step. Sometimes, the instruction to the adder 28 is supplied with a delay until the timing when the multiplication result by the multiplier 26 is output. By providing the delay means 37 in this way, a microprogram for the same process can be described in the same step, and the microprogram can be easily created. Note that microcode that does not require such delay processing is supplied to the processing unit without being delayed.
[0026]
Thus, according to the present invention, 1-bit microcode is stored in each step of the microinstruction, and the microcode for a plurality of steps is converted into parallel microcode using the serial-to-parallel conversion means including the shift register. Since it is converted into a code and supplied to the processing unit, the bit length of the microinstruction at each step can be shortened.
[0027]
In the above description, the access to the external RAM is executed in a step corresponding to a multiple of 3. However, the present invention is not limited to this, and the step corresponding to a multiple of any integer of 2 or more is used. Can be run.
In the above-described embodiment, the field for controlling access to the external RAM is targeted. However, the present invention is not limited to this, and the field may correspond to a process that can be executed every predetermined number of steps. It is possible to apply exactly the same.
Furthermore, in the above-described embodiment, the DSP mounted on the electronic musical instrument has been described as an example. However, the present invention is not limited to this, and the present invention can be applied to any microprogram-controlled processing device. It is possible.
[0028]
【The invention's effect】
Since the present invention is configured as described above, the instruction length of the microinstruction can be reduced and the capacity of the microprogram memory can be reduced. Therefore, the size of the microprogram memory can be reduced, and the cost for creating an LSI can be reduced.
Further, when the same size can be used, more microprograms can be stored than before, and more microprograms can be stored. In the case of an effect DSP, various effects can be applied.
[Brief description of the drawings]
FIG. 1 is a block diagram showing an internal configuration of an embodiment of a DSP of the present invention.
FIG. 2 is a block diagram showing a configuration example of a main part of a microprogram supply unit 20 according to an embodiment of a DSP of the present invention.
FIG. 3 is a diagram illustrating a description example of a microprogram.
FIG. 4 is a block diagram illustrating a configuration example of an electronic musical instrument in which a DSP is used.
[Explanation of symbols]
1 CPU, 2 timer, 3 MIDI input / output circuit, 4 MIDI terminal, 5 serial input / output circuit, 6 keyboard, 7 parallel input / output circuit, 8 panel display and operator, 9 program memory, 10 work RAM, 11 tone generator , 12 Waveform memory, 13 Digital signal processor (DSP), 14 Delay memory (external RAM), 15 Digital-analog converter (DAC), 16 Sound system, 17 CPU bus, 20 Micro program supply unit, 21, 24, 27 Selector, 22 input / output RAM, 23 temporary RAM, 25 coefficient register and interpolation unit, 26 multiplication unit, 28 addition unit, 29 shifter, 30 data bus, 31 external RAM address control unit, 32 external RAM access circuit, 37 delay circuit, 34-36 shift register

Claims (2)

マイクロプログラムを格納するマイクロプログラムメモリと、
各ステップごとに前記マイクロプログラムメモリから1ステップ分のマイクロ命令を読み出して出力する読出手段と、
各ステップごとに前記読出手段が出力するマイクロ命令のうちの一部のフィールドを順次格納し、所定ステップごとに並列に出力する直列並列変換手段と、
該直列並列変換手段から前記所定ステップごとに出力される並列化されたマイクロコードにより制御される処理部と、
前記各ステップごとに前記読出手段が出力するマイクロ命令のうちの前記一部のフィールドを除いた残りのフィールドにより制御される他の処理部と
を有することを特徴とするディジタル信号処理装置。
A microprogram memory for storing microprograms;
Reading means for reading out and outputting one step of microinstructions from the microprogram memory for each step;
Serially parallel conversion means for sequentially storing some fields of the microinstructions output by the reading means for each step and outputting in parallel for each predetermined step;
A processing unit controlled by parallelized microcode output from the serial-to-parallel conversion means for each predetermined step;
The digital signal processing apparatus characterized said to have a different processing section is controlled by the remaining fields except for certain fields of the microinstruction which the reading means outputs for each step.
前記一部のフィールドは、外部RAMに対するアクセスを制御するためのフィールドであり、前記直列並列変換手段から前記所定ステップごとに出力される並列化されたマイクロコードにより制御される処理部は、前記外部RAMをアクセスするアクセス回路であることを特徴とする前記請求項1記載のディジタル信号処理装置。The partial field is a field for controlling access to the external RAM , and the processing unit controlled by the parallelized microcode output from the serial / parallel conversion unit for each predetermined step is the external field. 2. The digital signal processing apparatus according to claim 1, wherein the digital signal processing apparatus is an access circuit for accessing a RAM .
JP01195498A 1998-01-07 1998-01-07 Digital signal processor Expired - Fee Related JP3610759B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP01195498A JP3610759B2 (en) 1998-01-07 1998-01-07 Digital signal processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP01195498A JP3610759B2 (en) 1998-01-07 1998-01-07 Digital signal processor

Publications (2)

Publication Number Publication Date
JPH11203129A JPH11203129A (en) 1999-07-30
JP3610759B2 true JP3610759B2 (en) 2005-01-19

Family

ID=11792025

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01195498A Expired - Fee Related JP3610759B2 (en) 1998-01-07 1998-01-07 Digital signal processor

Country Status (1)

Country Link
JP (1) JP3610759B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112380799A (en) * 2020-11-03 2021-02-19 上海安路信息科技有限公司 Micro-bus type DSP circuit architecture based on SIOU

Also Published As

Publication number Publication date
JPH11203129A (en) 1999-07-30

Similar Documents

Publication Publication Date Title
JP2765426B2 (en) Effect imparting device and electronic musical instrument
JP2565073B2 (en) Digital signal processor
JP3610759B2 (en) Digital signal processor
JPH07121181A (en) Sound information processor
JP2797142B2 (en) Processing equipment for electronic musical instruments
JP2773601B2 (en) Signal processing device
JP3087631B2 (en) Effect giving device
JPS62184495A (en) Electronic musical apparatus with touch response
JP3832383B2 (en) Musical sound generating apparatus and program
JP2576617B2 (en) Processing equipment
JP2576614B2 (en) Processing equipment
JP3832382B2 (en) Musical sound generating apparatus and program
JP2605387B2 (en) Music signal generator
JPH09269779A (en) Effect adding device
JP2571559B2 (en) Waveform signal processing method
JP3094759B2 (en) Music signal distribution processor
JP3148803B2 (en) Sound source device
JPH02179692A (en) Processor for electronic musical instrument
JP3693045B2 (en) Music generator
JP3116447B2 (en) Digital signal processor
JP2888844B2 (en) Music signal generator
US20090188377A1 (en) Sound Generator Apparatus
JP2956508B2 (en) Musical sound wave generator
JP3693046B2 (en) Music generator
JPH02179698A (en) Processor for electronic musical instrument

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040427

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040628

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040928

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041011

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071029

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081029

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091029

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101029

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101029

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111029

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111029

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121029

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121029

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131029

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees