JP3579843B2 - Digital signal processor - Google Patents

Digital signal processor Download PDF

Info

Publication number
JP3579843B2
JP3579843B2 JP28442594A JP28442594A JP3579843B2 JP 3579843 B2 JP3579843 B2 JP 3579843B2 JP 28442594 A JP28442594 A JP 28442594A JP 28442594 A JP28442594 A JP 28442594A JP 3579843 B2 JP3579843 B2 JP 3579843B2
Authority
JP
Japan
Prior art keywords
data
instruction
memory
bus
mem
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
JP28442594A
Other languages
Japanese (ja)
Other versions
JPH08123682A (en
Inventor
実 高木
義則 松下
Original Assignee
日本テキサス・インスツルメンツ株式会社
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 日本テキサス・インスツルメンツ株式会社 filed Critical 日本テキサス・インスツルメンツ株式会社
Priority to JP28442594A priority Critical patent/JP3579843B2/en
Priority to US08/547,267 priority patent/US5822613A/en
Publication of JPH08123682A publication Critical patent/JPH08123682A/en
Application granted granted Critical
Publication of JP3579843B2 publication Critical patent/JP3579843B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • G06F15/7857Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers) using interleaved memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

【0001】
【産業上の利用分野】
本発明は、パイプライン方式のディジタル信号処理装置に関する。
【0002】
【従来の技術】
従来より、ディジタルフィルタ、ディジタル自動等化、高速フーリエ変換(FFT)等のように数多くの積和演算を扱うディジタル信号処理にDSP(Digital Signal Processor)が用いられている。一般にDSPは、高速の積和演算処理を実現するために、高速乗算器、加算器、プログラム用メモリ、データ用メモリ等を内蔵し、パイプライン処理を行えるマイクロプログラム制御またはPLA制御型のマイクロプロセッサとして構成されている。また、DSPは、入出力機能も備えており、記憶するデータが多い場合には、入出力インタフェースを介して外部の補助メモリにデータを蓄えるようにしている。
【0003】
上記のような外部メモリにDSPが随時アクセスできるようにするために、一般的には図8に示すようなシステム構成が採られている。このDSPシステムでは、DSP100内の演算制御部102が外部メモリ104にアドレス情報を直接与え、書き込み時には演算制御部102からの書き込みデータがデータバス106および入出力ポート108を介して外部メモリ104に送られ、読み出し時には外部メモリ104からの読み出しデータが入出力ポート108およびデータバス106を介して演算制御部102に送られる。
【0004】
しかし、この方式は、データ転送が完了するまで演算制御部102内の各部は次のステップに移れないため、パイプライン処理がその間ホールド状態になるという不利点がある。実際、演算制御部102が内部メモリ110にアクセスするときと比べて、外部メモリ104へのアクセスに要する時間は長いのが普通である。
【0005】
たとえば、音場再生、音場補償等のオーディオ・ディジタル信号処理では、CD(Compact Disc)からのオーディオデータが16ビットのデータ長を有している。このようなオーディオデータを16ビットのデータ長のままで外部メモリ104との間で入出力するとなると、入出力ピンの個数の増大および外部メモリデバイスの個数の増大等を来し、ハードウェアコストが相当高くなってしまう。これは、反射音の処理等のように大量の遅延データを扱う場合に特に顕著となる。このため、外部メモリ104との間の入出力ビット数を少なくし、入出力回数を多くすることにより、全体のハードウェアコストを下げるようにしている。しかし、その代償として、外部メモリ104へのアクセス時間が長くなっており、それだけパイプラインがホールドされる時間も長く、DSPの処理能率が低くなるという問題を起こしている。
【0006】
図9は、上記の問題を解決する方式として従来より採られているDSPシステムの構成を示す。この方式では、DSP100’内に、外部メモリ104に対してデータの書き込みおよび読み出しを行える外部メモリコントローラ112を設けている。この外部メモリコントローラ112は、アドレス情報を一時的に保持するためのアドレスレジスタ112aと、データを一時的に保持するためのデータレジスタ112bとを有している。
【0007】
演算制御部102が外部メモリ104にデータを書き込むとき、演算制御部102はアドレス情報およびデータをデータバス106を介して外部メモリコントローラ112に転送するだけでよく、これで演算制御部102の各部が次のステップに移れる。一方、外部メモリコントローラ112は、演算制御部124からのアドレス情報およびデータをそれぞれアドレスレジスタ112aおよびデータレジスタ112bに保持し、外部メモリ112にアクセスして当該アドレス情報で指定されるメモリ番地に当該データを書き込む。この書き込みは、予め規定されたサイクルで行われる。
【0008】
演算制御部102が外部メモリ104よりデータを読み出すとき、演算制御部102はアドレス情報をデータバス106を介して外部メモリコントローラ112に転送する。外部メモリコントローラ112が外部メモリ104よりデータを読み出すときにも、予め規定されたサイクルを要する。外部メモリコントローラ112において、アドレスレジスタ112aに演算制御部102からのアドレス情報がロードされた時、データレジスタ112bには前回のメモリサイクルで外部メモリ104から読み出されたデータが格納されている。したがって、演算制御部102は今回のアドレス情報を外部メモリコントローラ112に送ると同時に外部メモリコントローラ112から前回のデータを受け取ることができ、演算制御部102の各部が直ちに次のステップに移れる。
【0009】
このように、外部メモリコントローラ112が外部メモリ104に対するデータの書き込みおよび読み出しを実行するため、演算制御部102は外部メモリコントローラ112との間でデータバス106を介してアドレス情報およびデータの転送を行えばよく、パイプライン処理をホールドしなくて済む。
【0010】
【発明が解決しようとする課題】
上記した図9のDSPシステムは、外部メモリ104をアクセスする際に全体のパイプライン処理をホールドしなくて済むという限りでは、演算処理の高速性を担保している。しかしながら、演算制御部102が外部メモリコントローラ112にアクセスする間はデータバス106が使用中となるため、演算制御部102内で演算処理を行うことはできない。つまり、外部メモリ104を1回アクセスすることで演算制御部102における演算処理を1回減らしている。上記したような音場再生等のオーディオ・ディジタル信号処理では、オーディオ信号のサンプリング周波数で規定される一定時間内にどれだけ多くの積和演算を実行できるかでDSPの性能が決まる。この従来システムでは、外部メモリ104からデータを読み出す命令の実行によって演算制御部102における演算処理回数が減少するため、DSPの性能を十分に引き出せないという問題があった。
【0011】
本発明は、かかる問題点に鑑みてなされたもので、演算処理効率を損なうことなく外部メモリよりデータを読み込めるようにして、パイプライン処理の高速性を確保すると同時に単位時間当たりの演算処理回数を可及的に多くし、処理能力を向上させたディジタル信号処理装置を提供することを目的とする。
【0012】
【課題を解決するための手段】
上記の目的を達成するために、本発明のディジタル信号処理装置は、パイプライン方式で一連の命令を実行してディジタル信号を処理するディジタル信号処理装置において、異なるデータを同時に転送できるようになされた第1、第2および第3のバスと、前記第1のバスに接続された第1の内部メモリと、前記第2のバスに接続された第2の内部メモリと、前記第1および第2のバスに接続された演算手段と、前記第3のバスに接続されるとともに、少なくとも前記第1および第2のバスの一方に接続された第3の内部メモリと、前記第3のバスに接続されるとともに、少なくとも前記第1および第2のバスの一方に接続され、かつ外部メモリにデータの書き込みおよび読み出しを行える入出力インタフェース手段とを有し、所定の1つの命令実行サイクルの間に、前記第1および第2のバスを使用する第1の命令と、前記第3のバスを使用する第2の命令とを並列的に実行するように構成され、前記所定の1つの命令実行サイクルにおいて、前記第1の命令については、前記第1および第2の内部メモリからそれぞれデータが読み出されて、それらの読み出されたデータが前記第1および第2のバスを介して前記演算手段に転送され、次いで前記演算手段で両データについて所定の演算が行われ、前記第2の命令については、所定のアドレス情報が前記第3のバスを介して前記入出力インタフェース手段に送られ、次いで予め前記外部メモリより前記入出力インタフェース手段に読み出されているデータが前記第3のバスを介して前記第3の内部メモリに転送されるように構成されている。
【0013】
本発明のディジタル信号処理装置において、好ましくは、前記第3の内部メモリには前記外部メモリにアクセスするための前記アドレス情報を格納するための第1のメモリ領域と前記外部メモリより転送されたデータを格納するための第2のメモリ領域とが設定され、各々対応する前記アドレス情報と前記データとはそれぞれが格納される前記第1のメモリ領域におけるメモリ番地と前記第2のメモリ領域におけるメモリ番地との間に一定のオフセットを有してよい。
【0014】
更に、本発明のディジタル信号処理装置においては、第1の内部メモリと第2の内部メモリの少なくとも一方がデュアルポート型のメモリであってよい。
【0016】
【作用】
本発明のディジタル信号処理装置では、主として演算処理に用いられる第1および第2のバスの外に、入出力インタフェース手段に接続するデータ転送用の第3のバスを設けている。これにより、1つの並列型命令の命令実行サイクルの中で、第1および第2のバスを用いて演算命令が実行されると同時に、第3のバスを用いて外部メモリからのデータを内部メモリに取り込むことができる。
【0017】
【実施例】
以下、図1〜図7を参照して本発明の実施例を説明する。
【0018】
図1は、本発明の一実施例によるオーディオ・ディジタル信号処理用DSPのシステム構成を示す。このDSPシステムは、互いに独立した3本のデータバス(C−BUS10,D−BUS12,G−BUS14)を有し、これらのバスに各部を図示のように接続してなる。
【0019】
C−BUS10には、係数メモリ(C−MEM)16と、汎用メモリ(G−RAM)20と、算術論理演算ユニット(ALU)26と、積和演算器(MAC)28と、プログラムメモリ(P−MEM)32と、ホストインタフェース回路(HOST−I/O)34とが接続されている。
【0020】
D−BUS12には、データメモリ(D−MEM)18と、汎用メモリ(G−RAM)20と、外部メモリ用入出力インタフェース回路(EX−I/O)22と、オーディオ・インタフェース回路(AU−I/O)24と、算術論理演算ユニット(ALU)26と、積和演算器(MAC)28と、ホストインターフェース回路(HOST―I/O)34とが接続されている。
【0021】
G−BUS14には、汎用メモリ(G−MEM)20と、外部メモリ用入出力インタフェース回路(EX−I/O)22と、算術論理演算ユニット(ALU)26とが接続されている。
【0022】
C−MEM16、D−MEM18およびG−MEM20は各々RAM(Randam Access Memory)からなる。C−MEM16には、主として積和演算のための係数データが格納されるとともに、EX−I/O22に接続されている外部メモリ(図示せず)にアクセスするためのアドレス情報も格納される。D−MEM18には、積和演算その他の演算に用いるデータ(主としてオーディオデータ)および演算結果のデータが格納される。
【0023】
G−MEM20は、通常はD−MEM18の拡張メモリとして使用される。音場再生等のように大量の遅延データを扱う場合には、D−MEM18に入り切れない遅延データがRAMからなる外部メモリに蓄積され、必要な時に後述する所定の命令(BRDE命令)によって外部メモリから遅延データをG−MEM20に取り込むようにしている。この場合、G−MEM20には、外部メモリをアクセスするためのアドレス情報も格納される。なお、G−MEM20は、C−MEM16の拡張メモリとしても使用可能であり、必要に応じて係数データを格納することもある。
【0024】
C−MEM16、D−MEM18およびG−MEM20には、それぞれアドレス計算を行うためのアドレッシングユニット17,19,21が付いている。
【0025】
EX−I/O22は、上記遅延データ蓄積用の外部メモリにも接続され、その外部メモリにアクセスしてデータの書き込みまたは読み出しを行えるメモリ制御機能を有しており、メモリアクセスのアドレス情報を保持するアドレスレジスタと書き込みまたは読み出しデータを保持するデータレジスタを内蔵している。
【0026】
AU−I/O24は、本DSPと外部のディジタル・オーディオ回路との間で
データのやりとりを行うためのインタフェース回路であり、たとえば前段のCD再生回路や次段のディジタルフィルタあるいはD/Aコンバータ等に接続されている。外部回路からオーディオ信号(データ)が入力されるときは、AU−I/O24内のレジスタに1個のデータが揃うと、後述する制御装置30に割り込みがかけられ、割込み処理で該データがD−BUS12を介してD−MEM18に格納されるようになっている。
【0027】
ALU26は、任意の算術演算および論理演算を行う演算器であり、アキュムレータも内蔵している。MAC28は、専ら積和演算を行う演算器であり、乗算器とアキュムレータ内蔵している。このように2つの演算器(ALU26、MAC28)が備えられているため、たとえばALU26で加算を行いながらMAC28で畳み込みを行うというような並列処理が可能となっている。
【0028】
P−MEM32はRAM(Randam Access Memory)からなり、本DSPの処理動作を規定するプログラムを格納する。制御装置30は、P−MEM32から命令を逐次読み出し、PLA(Program Logic Array)制御方式でシステム内のレジスタ、ゲート類(図示せず)を制御し、各部に当該命令を実行させるように機能する。図1では、説明の便宜上、制御バスは図示していない。
【0029】
HOST−I/O34は、本DSPとホストコントローラ(図示せず)との間でプログラムやデータをやりとりするためのインタフェース回路であり、C−BUS10とはパラレルポートで接続され、ホストコントローラとはシリアルポートで接続されている。P−MEM32に格納されるプログラム、C−MEM16に格納される係数データおよびアドレス情報、G−MEM20に格納されるアドレス情報は、ホストコントローラより与えられ、HOST−I/O34からC−BUS10を介して各メモリにダウンロードされる。なお、P−MEM32内のプログラムによりアドレス情報が変更される場合もある。
【0030】
本実施例のDSPでは、上記のように3本のデータバス(C−BUS10,D−BUS12,G−BUS14)を設けており、これらのバス上で異なるアドレス情報またはデータを並列転送できるようになっている。
【0031】
C−BUS10上では、上記のようにホストコンピュータより各メモリにダウンロードされるプログラム、アドレス情報、データの外に、C−MEM16よりD−MEM18またはEX−I/O22へ与えられるアドレス情報、C−MEM16よりALU26またはMAC28に与えられる係数データ等が択一的に転送される。
【0032】
D−BUS12上では、AU−I/O24とD−MEM18との間でやりとりされる入出力オーディオデータ、D−MEM18とEX−I/O22との間でやりとりされる遅延オーディオデータ、D−MEM18とALU26またはMAC28との間でやりとりされる演算データ等が択一的に転送される。
【0033】
G−BUS14上では、G−MEM20とEX−I/O22との間でやりとりされるアドレス情報および遅延オーディオデータ、G−MEM20からALU26に与えられる演算データ等が転送される
【0034】
このように、3本のデータバス(C−BUS10,D−BUS12,G−BUS14)上で異なるアドレス情報またはデータを同時に並列転送できるため、後述するように1つの命令実行サイクルで2つの命令を並列処理することが可能となっている。
【0035】
図2は、本実施例のDSPにおける命令ワードのフィールド配置図である。図2の(A)は命令ワードの一般形式を示す。たとえば32ビット長の1つの命令ワードの中で2つの命令(プライマリ命令、セカンダリ命令)を指定することが可能となっており、ビット[29〜22]のフィールドがプライマリ命令のオペコードに割り当てられ、ビット[21〜14]のフィールドがセカンダリ命令のオペコードに割り当てられている。ビット[31,30]は、2つの命令の組み合わせ形式(モード)を指定する。ビット[13〜0]は、オペランドのアドレス指定に使われる。
【0036】
1つの命令ワードでプライマリ命令またはセカンダリ命令のいずれかを指定することも可能である。図2の(B),(C)に、それぞれプライマリ命令、セカンダリ命令が単独で指定される場合のフィールド配置を示す。
【0037】
本実施例のDSPにおいては、G−BUS14を用いて外部メモリからのデー
タ(遅延オーディオデータ等)をG−MEM20に転送するためのバックグランド外部メモリ読出命令(BRDE)が設定可能となっている。1つの命令ワードの中にBRDE命令が単独で指定されるときは、図2の(D)に示すような配置となり、セカンダリ命令のフィールドにBRDE命令のオペコードが入る。BRDE命令におけるアドレスは、基底アドレスを基にG−MEM20のアドレス演算ユニット21で生成されるため、オペランドは不要であり、アドレッシング・フィールドは空き領域となる。1つの命令ワードの中にBRDE命令が他の命令(プライマリ命令)と一緒に指定されるときは、図2の(D)と(B)とが合成された配置になり、アドレッシング・フィールドはプライマリ命令のオペランドに供される。
【0038】
次に、図3〜図7を参照して本実施例のDSPにおける幾つかの命令の命令実行サイクルの動作について説明する。
【0039】
図3は、MAC28を用いて所定の積和演算処理を行うMAC命令の1つである「MAC△SS,D(xx),*C0 ,M0 」の命令実行サイクルを示す。この命令は、「アドレス(xx)で指定されるD−MEM18のメモリ番地の内容と(アドレッシングユニット17内の)C0 レジスタの内容(アドレス情報)で指定されるC−MEM16のメモリ番地の内容とを乗算し、その乗算結果を(MAC28内の)M0 レジスタの内容とを加算し、その加算結果をM0 レジスタに格納せよ」という意味の命令である。
【0040】
この命令が実行されるときの動作は次のようになる。先ず、フェッチサイクル(Fetch)で、制御装置30のメモリ読出部がP−MEM32よりこの命令のワードを読み出す(▲1▼)。次に、デコードサイクル(Decode)で、制御装置30のデコーダ部がこの命令を解読する(▲2▼)。この解読結果に基づき、制御装置30のマイクロプログラム制御部が作動して、所要のレジスタ、ゲート類を働かせ、所要の各部にオペランド処理(Operand)および実行処理(Excution)を行わせる。
【0041】
オペランド処理サイクル(Operand)では、制御装置30よりアドレッシングユニット17,19を介してC−MEM16,D−MEM18にそれぞれアドレス情報が供給される。そして、C−MEM16,D−MEM18よりそれぞれ読み出されたデータはC−BUS10,D−BUS12を介してMAC28に送られる(▲3▼)。実行処理サイクル(Excution)では、MAC28で乗算と加算が順次行われ、最終の演算結果がレジスタMO に格納される(▲4▼)。
【0042】
なお、本実施例のDSPはパイプライン方式で一連の命令を実行するため、相前後する命令の間では各命令実行サイクルが1フェーズだけずれている。たとえば、ある命令についてデコードサイクル(Decode)が行われている時は、これと同時に1つ前の命令についてのオペランド処理サイクル(Operand)と、2つ前の命令についての実行処理サイクル(Excution)と、1つ後の命令についてのフェッチサイクル(Fetch)が行われている。
【0043】
図4は、外部メモリ読出命令「RDE」の命令実行サイクルを示す。この命令は、「アドレス(cma)で指定されるC−MEM16内のメモリ番地の内容を外部メモリをアクセスするためのアドレスとしてEX−I/O22のアドレスレジスタEXAに格納せよ」という意味の命令である。
【0044】
このRDE命令の実行サイクルにおいて、制御装置30よりアドレス演算ユニット17を介してC−MEM16にアドレス情報(cma)が与えられた後に、C−MEM16より読み出された外部メモリアクセス用のアドレス情報がC−BUS10を介してEX−I/O22に与えられる。
【0045】
このRDE命令が実行されると、EX−I/O22がC−MEM16より受け取ったアドレス情報に基づいて外部メモリにアクセスし、そのアドレス情報で指定される外部メモリ内のメモリ番地の内容を読み出し、読み出したデータを読出用データレジスタEXRに格納する。このようなEX−I/O22のメモリアクセス機能により、RDE命令の実行後に所定数のマシンサイクルが経過すると、EX−I/O22のデータレジスタEXRに目的のデータが用意される。
【0046】
図5は、上記したRDE命令と関連して用いられるデータ転送命令「MOV△EXR,dma」の命令実行サイクルを示す。この命令は、「EX−I/O22内のデータレジスタEXRの内容をアドレス(dma)で指定されるD−MEM18内のメモリ番地に格納せよ」という意味の命令である。上記したようにRDE命令の実行後に所定数のマシンサイクルが経過すると、EX−I/O22のデータレジスタEXRに目的のデータが用意されているので、次にこの命令「MOV△EXR,dma」が実行されることで、その目的のデータをD−MEM18内に取り込むことができる。
【0047】
なお、本実施例のDSPでは、外部メモリ書込命令「WRE」も定義されている。通常、この命令は「WRE cma,dma」と規定される。これは、「アドレス(cma)で指定されるC−MEM10内のメモリ番地の内容(アドレス)で指定される外部メモリのメモリ番地にアドレス(dma)で指定されるD−MEM12内のメモリ番地の内容(データ)を書き込め」という意味である。
【0048】
このWRE命令が実行されるときも、アドレス情報に基づいて読み出された各データは、それぞれC−BUS10およびD−BUS12を介してEX−I/O22内のアドレスレジスタEXAおよび書込用データレジスタEXWに転送される。
【0049】
上記したように、CD等の再生回路からのオーディオデータは一定時間毎に入力され、AU−I/O24より割込み処理でD−MEM18に格納される。FIFO形式で、D−MEM18には入力オーディオデータが格納される一方で、時間的に古い順に遅延データは吐き出される。しかし、音場再生や残響再生等のように遅延データを大量に使うディジタル信号処理では、数秒前までの遅延データを使う場合もあるため、D−MEM18から吐き出される遅延データを上記WRE命令によって外部メモリに蓄積するようにしている。そして、フィルタ演算で遅延データが必要になった時に、後述するバックグランド外部メモリ読出命令(BRDE)によって外部メモリから読み出すようにしている。
【0050】
図6は、本実施例によるバックグランド外部メモリ読出命令「BRDE」の命令実行サイクルを示す。このBRDE命令は、「(アドレッシングユニット21内の)GBレジスタの内容で指定されるG−MEM20内のメモリ番地の内容を外部メモリアクセス用のアドレス情報としてEX−I/O22内のアドレスレジスタEXAに転送し、該GBレジスタの内容に80H(10000000) を加算した値で指定されるG−MEM20内のメモリ番地にEX−I/O22の内の読出用データレジスタEXRの内容を格納せよ」という意味の命令である。
【0051】
このBRDE命令の命令実行サイクルでは、オペランド処理サイクル(Operand)の間にGBレジスタの内容に基づいたG−MEM20のメモリ番地の内容である外部メモリアクセス用のアドレス情報がG−BUS14を介してEX−I/O22へ転送され、実行処理サイクル(Excution)の間にEX−I/O22からのデータがG−BUS14を介してG−MEM20へ転送されるとともにアドレッシングユニット21内でGBレジスタの内容が1つインクリメントされる。
【0052】
このBRDE命令でEX−I/O22内の読出用データレジスタEXRから転送されるデータは、前回のBRDE命令に応動してEX−I/O22が外部メモリから読み出したデータである。つまり、前回のBRDE命令でG−MEM20からEX−I/O22内のアドレスレジスタEXAに転送されたアドレス情報に対応したデータである。今回のBRDE命令でアドレスレジスタEXAに格納されたアドレス情報に対応するデータは、所定のマシンサイクルで外部メモリより読み出されて読出用データレジスタEXRに保持され、次のBRDE命令でG−MEM20へ転送されることになる。
【0053】
なお、BRDE命令でG−MEM20に格納されるデータのアドレス(メモリ番地)は、GBレジスタの内容(外部メモリアクセス用のアドレス情報)に80H(10000000) を加算することで、つまりアドレス情報の最上位ビットの0を1にするだけで、求められるようになっている。したがって、アドレス計算が簡単であり、そのぶんアドレッシングユニット21内の構成が簡易化されている。
【0054】
このように、BRDE命令では、専用のG−MEM20を使用してG−MEM20とEX−I/O22との間でアドレス情報およびデータの転送が行われる。他のバス(C−BUS10,D−BUS12)は使用されず、他のメモリ(C−MEM16,D−MEM18)は関与しない。したがって、1つの命令実行サイクルの間にこのBRDE命令と同時にC−BUS10,D−BUS12を使用する演算命令を並列処理(実行)することが可能である。
【0055】
なお、外部メモリよりG−MEM20に取り込まれたデータ(遅延オーディオデータ等)は、フィルタ演算等でそれが必要となった時点で、G−MEM20より読み出されてMAC28またはALU26へ転送される。そのための命令も定義されているが、これはC−BUS10,D−BUS12を介したC−MEM16,D−MEM18の命令と同様であるので、その説明は省略する。
【0056】
図7は、BRDE命令を含む並列処理型命令の1つである「MAC△SS,D(xx),*C0 ,M0 /BRDE」命令の命令実行サイクルを示す。この並列処理型命令は、図3のMAC命令と図6のBRDE命令とを並列的に重ね合わせたものである。命令ワードは図2の(A)の形式であり、プライマリ命令のフィールドにMAC命令のオペコードが規定され、セカンダリ命令のフィールドにBRDE命令のオペコードが規定される。
【0057】
この命令が実行されるときの動作は次のようになる。先ず、フェッチサイクル(Fetch)で、制御装置30のメモリ読出部がP−MEM32よりこの並列処理型命令のワードを読み出す(▲1▼)。次に、デコードサイクル(Decode)で、制御装置30のデコーダ部がこの並列処理型命令に含まれているMAC命令とBRDE命令とを並列または同時に解読する(▲2▼)。
【0058】
この場合、制御装置30のPLA制御部からの制御信号は、MAC命令とBRDE命令について並列的つまりOR形式で出力される。これにより、オペランド処理サイクル(Operand)では、アドレッシングユニット17,19からのアドレス情報がC−MEM16,D−MEM18にそれぞれ供給され、C−MEM16,D−MEM18からそれぞれ目的のメモリ番地の内容(データ)が読み出される(MAC命令のオペランド処理)と同時に、G−MEM20から読み出された外部メモリアクセス用のアドレス情報がG−BUS14を介してEX−I/O22へ転送される(BRDE命令の転送処理)。
【0059】
そして、実行処理サイクル(Excution)では、MAC28で積和演算が行われる(MAC命令の実行処理)と同時に、EX−I/O22からのデータがG−BUS14を介してG−MEM20へ転送されるとともにアドレッシングユニット21内でGBレジスタの内容が1つインクリメントされる(BRDE命令の実行処理)。
【0060】
通常のオーディオ・ディジタル信号処理のサンプリング周波数は44.1KHzであり、約22μsecの時間間隔でCD等の外部回路よりディジタル・オーディオ信号が入ってくる。この時間(約22μsec)内にどれだけ多くの積和演算を実行できるかでDSPの性能が決まる。この時間(約22μsec)内でパイプライン処理できる命令実行サイクルの数は決まっており、たとえば512ステップに設定されているので、そのうちどれだけ多くのステップを演算処理に充てられるかでDSPの性能が決まるともいえる。一方、音場再生等のようにフィルタ演算で大量の遅延データを用いるときは、外部メモリに蓄積している遅延データを頻繁に読み出さなければならない。
【0061】
本実施例のDSPでは、上記のように、並列型命令体系の下で演算処理(特に積和演算)命令とは独立にBRDE命令によりG−MEM20およびG−BUS14を用いて外部メモリより遅延データを読み出すことができる。したがって、上記一定時間内に外部メモリからデータを読み出すBRDE命令を実行しつつ、可及的に多くのステップを演算処理に充てることが可能であり、DSPの処理能力を十二分に引き出すことができる。
【0062】
上記した実施例では、係数データを記憶するC−MEM16およびオーディオデータを記憶するD−MEM18とは別に汎用のG−MEM20を設け、このG−MEM20に外部メモリからの遅延データを読み込むようにした。しかし、C−MEM16および/またはD−MEM18を2つのポートを有するデュアルポート型のメモリで構成してG−BUS14に接続することで、G−MEM20を設けなくても上記BRDE命令を実行することが可能である。
【0063】
また、上記実施例のDSPはオーディオ・ディジタル信号処理に係るものであったが、本発明によるDSPは任意のディジタル信号処理に適用可能である。
【0064】
なお、上記実施例では、外部メモリにはオーディオデータが格納されているものとして説明したが、この外部メモリにはオーディオデータのほか、係数データなどの別種のデータが格納されることもある。
【発明の効果】
以上説明したように、本発明のディジタル信号処理装置によれば、所定の1つの命令実行サイクルの中で、第1および第2のバスを用いて演算命令を実行すると同時に、第3のバスを用いて外部メモリからのデータを内部メモリに取り込めるようにしたので、パイプライン処理の高速性を確保すると同時に単位時間当たりの演算処理回数を可及的に多くし、処理能力を向上させることができる。
【図面の簡単な説明】
【図1】本発明の一実施例によるオーディオ・ディジタル信号処理用DSPの構成を示すブロック図である。
【図2】実施例のDSPにおける命令ワードのフィールド配置図である。
【図3】実施例における代表的な積和演算命令の命令実行サイクルを示す図である。
【図4】実施例における外部メモリ読出命令の命令実行サイクルを示す図である。
【図5】実施例において外部メモリ読出命令と関連するデータ転送命令の命令実行サイクルを示す図である。
【図6】実施例におけるバックグランド外部メモリ読出命令「BRDE」の命令実行サイクルを示す図である。
【図7】実施例においてBRDE命令を含む代表的な並列処理型命令の命令実行サイクルを示す図である。
【図8】従来の典型的なDSPシステムの要部の構成を示すプロック図である。
【図9】従来の別のDSPシステムの要部の構成を示すプロック図である。
【符号の説明】
10 C−BUS(データバス)
12 D−BUS(データバス)
14 G−BUS(データバス)
16 C−MEM(係数メモリ)
18 D−MEM(データメモリ)
20 G−MEM(汎用メモリ)
17,19,21 アドレッシングユニット
22 EX−I/O(外部メモリ入出力インタフェース回路)
24 AU−I/O(オーディオ・インタフェース回路)
26 ALU(算術論理演算ユニット)
28 MAC(積和演算器)
30 制御装置
32 P−MEM(プログラムメモリ)
34 HOST−I/O(ホストインタフェース回路)
[0001]
[Industrial applications]
The present invention relates to a pipeline type digital signal processing device.
[0002]
[Prior art]
2. Description of the Related Art Conventionally, a DSP (Digital Signal Processor) has been used for digital signal processing that handles a large number of product-sum operations such as a digital filter, digital automatic equalization, and fast Fourier transform (FFT). Generally, a DSP incorporates a high-speed multiplier, an adder, a program memory, a data memory, and the like in order to realize a high-speed product-sum operation, and performs a microprogram control or a PLA control type microprocessor capable of performing pipeline processing. It is configured as The DSP also has an input / output function, and when there is much data to be stored, stores the data in an external auxiliary memory via the input / output interface.
[0003]
In order to enable the DSP to access the external memory as needed, a system configuration as shown in FIG. 8 is generally employed. In this DSP system, the arithmetic control unit 102 in the DSP 100 directly supplies address information to the external memory 104, and at the time of writing, write data from the arithmetic control unit 102 is transmitted to the external memory 104 via the data bus 106 and the input / output port 108. At the time of reading, read data from the external memory 104 is sent to the arithmetic and control unit 102 via the input / output port 108 and the data bus 106.
[0004]
But this methodIsSince each unit in the operation control unit 102 cannot move to the next step until the data transfer is completed, the pipeline processing is in a hold state during that time.DisadvantageThere is. In fact, the time required for accessing the external memory 104 is generally longer than when the arithmetic control unit 102 accesses the internal memory 110.
[0005]
For example, in audio / digital signal processing such as sound field reproduction and sound field compensation, audio data from a CD (Compact Disc) has a data length of 16 bits. If such audio data is input / output to / from the external memory 104 while maintaining the 16-bit data length, the number of input / output pins and the number of external memory devices increase, and hardware costs are reduced. It will be quite high. This is particularly noticeable when a large amount of delay data is handled, such as when processing reflected sounds. Therefore, by reducing the number of input / output bits to / from the external memory 104 and increasing the number of input / output operations, the overall hardware cost is reduced. However, as a cost, the access time to the external memory 104 becomes longer, and the time during which the pipeline is held becomes longer, which causes a problem that the processing efficiency of the DSP becomes lower.
[0006]
FIG. 9 shows a configuration of a DSP system conventionally adopted as a method for solving the above-mentioned problem. In this method, an external memory controller 112 capable of writing and reading data to and from the external memory 104 is provided in the DSP 100 '. The external memory controller 112 has an address register 112a for temporarily storing address information and a data register 112b for temporarily storing data.
[0007]
When the arithmetic control unit 102 writes data to the external memory 104, the arithmetic control unit 102 only needs to transfer address information and data to the external memory controller 112 via the data bus 106. You can move on to the next step. On the other hand, the external memory controller 112 holds the address information and the data from the arithmetic control unit 124 in the address register 112a and the data register 112b, respectively, accesses the external memory 112, and stores the data in the memory address designated by the address information. Write. This writing is performed in a predetermined cycle.
[0008]
When the arithmetic control unit 102 reads data from the external memory 104, the arithmetic control unit 102 transfers the address information to the external memory controller 112 via the data bus 106. When the external memory controller 112 reads data from the external memory 104, a predetermined cycle is required. In the external memory controller 112, when the address information from the arithmetic control unit 102 is loaded into the address register 112a, the data read from the external memory 104 in the previous memory cycle is stored in the data register 112b. Therefore, the arithmetic control unit 102 can send the current address information to the external memory controller 112 and receive the previous data from the external memory controller 112 at the same time, and each unit of the arithmetic control unit 102 can immediately proceed to the next step.
[0009]
As described above, since the external memory controller 112 writes and reads data to and from the external memory 104, the arithmetic control unit 102 transfers address information and data to and from the external memory controller 112 via the data bus 106. That is, there is no need to hold the pipeline processing.
[0010]
[Problems to be solved by the invention]
The DSP system shown in FIG. 9 assures high-speed arithmetic processing as long as the entire pipeline processing need not be held when accessing the external memory 104. However, while the arithmetic control unit 102 accesses the external memory controller 112, the data bus 106 is in use, so that arithmetic processing cannot be performed in the arithmetic control unit 102. That is, by accessing the external memory 104 once, the number of calculation processes in the calculation control unit 102 is reduced by one. In audio / digital signal processing such as sound field reproduction as described above, the DSP performance is determined by how many multiply-accumulate operations can be performed within a fixed time defined by the sampling frequency of the audio signal. In this conventional system, the execution of an instruction to read data from the external memory 104 reduces the number of arithmetic processing operations in the arithmetic control unit 102, so that there is a problem that the performance of the DSP cannot be sufficiently brought out.
[0011]
The present invention has been made in view of such a problem, and enables data to be read from an external memory without deteriorating the processing efficiency, thereby ensuring high-speed pipeline processing and simultaneously reducing the number of processing operations per unit time. It is an object of the present invention to provide a digital signal processing device having as many as possible and having improved processing capability.
[0012]
[Means for Solving the Problems]
In order to achieve the above object, a digital signal processing device according to the present invention is arranged so that different data can be transferred simultaneously in a digital signal processing device that executes a series of instructions in a pipeline system to process a digital signal. First, second and third buses, a first internal memory connected to the first bus, a second internal memory connected to the second bus, and the first and second buses. Computing means connected to the third bus, a third internal memory connected to the third bus, and connected to at least one of the first and second buses, and a third memory connected to the third bus And input / output interface means connected to at least one of the first and second buses and capable of writing and reading data to and from an external memory. During the decree execution cycle, construction first instructions for using said first and second bus, and a second instruction using said third bus to perform parallelThen, in the predetermined one instruction execution cycle, for the first instruction, data is read from the first and second internal memories, respectively, and the read data is stored in the first and second memories. The data is transferred to the arithmetic means via a second bus, and then a predetermined operation is performed on both data by the arithmetic means. For the second instruction, predetermined address information is transmitted via the third bus. The data sent to the input / output interface means and then read from the external memory to the input / output interface means in advance is transferred to the third internal memory via the third bus. ing.
[0013]
In the digital signal processing device of the present invention, preferably,The third internal memory has a first memory area for storing the address information for accessing the external memory and a second memory area for storing data transferred from the external memory. The set address information and the corresponding data may each have a fixed offset between a memory address in the first memory area and a memory address in the second memory area where each is stored. .
[0014]
Further, in the digital signal processing device of the present invention, at least one of the first internal memory and the second internal memory may be a dual-port type memory.
[0016]
[Action]
In the digital signal processing device of the present invention, a third bus for data transfer connected to the input / output interface means is provided in addition to the first and second buses mainly used for arithmetic processing. As a result, in the instruction execution cycle of one parallel instruction, an operation instruction is executed using the first and second buses, and at the same time, data from the external memory is transferred to the internal memory using the third bus. Can be captured.
[0017]
【Example】
Hereinafter, an embodiment of the present invention will be described with reference to FIGS.
[0018]
FIG. 1 shows a system configuration of an audio / digital signal processing DSP according to an embodiment of the present invention. This DSP system has three independent data buses (C-BUS10, D-BUS12, G-BUS14), and each part is connected to these buses as shown in the figure.
[0019]
The C-BUS 10 has a coefficient memory (C-MEM) 16, a general-purpose memory (G-RAM) 20, an arithmetic and logic unit (ALU) 26, a product-sum operation unit (MAC) 28, and a program memory (P -MEM) 32 and a host interface circuit (HOST-I / O) 34 are connected.
[0020]
The D-BUS 12 includes a data memory (D-MEM) 18, a general-purpose memory (G-RAM) 20, an external memory input / output interface circuit (EX-I / O) 22, and an audio interface circuit (AU- An I / O) 24, an arithmetic and logic unit (ALU) 26, and a product-sum operation unit (MAC) 28And a host interface circuit (HOST-I / O) 34And are connected.
[0021]
The G-BUS 14 is connected to a general-purpose memory (G-MEM) 20, an external memory input / output interface circuit (EX-I / O) 22, and an arithmetic and logic unit (ALU) 26.
[0022]
Each of the C-MEM 16, the D-MEM 18, and the G-MEM 20 is composed of a RAM (Random Access Memory). The C-MEM 16 mainly stores coefficient data for the product-sum operation, and also stores address information for accessing an external memory (not shown) connected to the EX-I / O 22. The D-MEM 18 stores data (mainly audio data) used for the product-sum operation and other operations and data of the operation result.
[0023]
The G-MEM 20 is normally used as an extension memory of the D-MEM 18. When handling a large amount of delay data such as sound field reproduction, delay data that cannot be accommodated in the D-MEM 18 is stored in an external memory such as a RAM, and when necessary, a predetermined instruction (BRDE instruction) described later is used to store the external data. The delay data is taken into the G-MEM 20 from the memory. In this case, the G-MEM 20 also stores address information for accessing an external memory. The G-MEM 20 can also be used as an extension memory of the C-MEM 16, and may store coefficient data as needed.
[0024]
The C-MEM 16, the D-MEM 18, and the G-MEM 20 have addressing units 17, 19, and 21 for performing address calculation, respectively.
[0025]
The EX-I / O 22 is also connected to the external memory for storing the delayed data, has a memory control function of accessing the external memory and writing or reading data, and holds the address information of the memory access. And a data register for holding write or read data.
[0026]
The AU-I / O 24 is provided between the DSP and an external digital audio circuit.
It is an interface circuit for exchanging data, and is connected to, for example, a preceding stage CD reproducing circuit, a next stage digital filter or a D / A converter. When an audio signal (data) is input from an external circuit, if one data is stored in a register in the AU-I / O 24, a control device described later is used.30Is interrupted, and the data is stored in the D-MEM 18 via the D-BUS 12 in the interrupt processing.
[0027]
The ALU 26 is an arithmetic unit that performs an arbitrary arithmetic operation and a logical operation, and includes an accumulator. The MAC 28 is an arithmetic unit that exclusively performs a product-sum operation, and includes a multiplier and an accumulator.ToBuilt-in. Since the two arithmetic units (ALU 26 and MAC 28) are provided in this manner, parallel processing such as performing convolution with MAC 28 while performing addition with ALU 26 is possible.
[0028]
The P-MEM 32 is composed of a RAM (Random Access Memory) and stores a program that defines the processing operation of the DSP. controlapparatusReference numeral 30 sequentially reads instructions from the P-MEM 32, controls registers and gates (not shown) in the system by a PLA (Program Logic Array) control method, and functions so that each unit executes the instructions. In FIG. 1, the control bus is not shown for convenience of explanation.
[0029]
The HOST-I / O 34 is an interface circuit for exchanging programs and data between the DSP and a host controller (not shown). The HOST-I / O 34 is connected to the C-BUS 10 via a parallel port, and is connected to the host controller via a serial port. Connected by port. The program stored in the P-MEM 32, the coefficient data and the address information stored in the C-MEM 16, and the address information stored in the G-MEM 20 are given from the host controller, and are sent from the HOST-I / O 34 via the C-BUS 10. Downloaded to each memory. The address information may be changed by a program in the P-MEM 32.
[0030]
In the DSP of this embodiment, three data buses (C-BUS 10, D-BUS 12, and G-BUS 14) are provided as described above, and different address information or data can be transferred in parallel on these buses. Has become.
[0031]
On the C-BUS 10, in addition to the program, address information, and data downloaded from the host computer to each memory as described above, address information given to the D-MEM 18 or the EX-I / O 22 from the C-MEM 16; The coefficient data or the like given to the ALU 26 or the MAC 28 from the MEM 16 is alternatively transferred.
[0032]
On the D-BUS 12, input / output audio data exchanged between the AU-I / O 24 and the D-MEM 18, delayed audio data exchanged between the D-MEM 18 and the EX-I / O 22, D-MEM 18 Operation data and the like exchanged with the ALU 26 or the MAC 28 are alternatively transferred.
[0033]
On the G-BUS 14, address information and delayed audio data exchanged between the G-MEM 20 and the EX-I / O 22,20Transfer operation data and the like given to ALU 26
[0034]
As described above, different address information or data can be simultaneously transferred in parallel on the three data buses (C-BUS10, D-BUS12, G-BUS14), so that two instructions are executed in one instruction execution cycle as described later. It is possible to perform parallel processing.
[0035]
FIG. 2 is a field arrangement diagram of an instruction word in the DSP of the present embodiment. FIG. 2A shows the general format of the instruction word. For example, two instructions (a primary instruction and a secondary instruction) can be designated in one instruction word having a length of 32 bits. A field of bits [29 to 22] is assigned to an operation code of the primary instruction. The field of bits [21 to 14] is assigned to the operation code of the secondary instruction. Bits [31, 30] specify the combination format (mode) of the two instructions. Bits [13-0] are used to address the operand.
[0036]
It is also possible to specify either a primary instruction or a secondary instruction with one instruction word. FIGS. 2B and 2C show the field arrangement when the primary instruction and the secondary instruction are individually specified.
[0037]
In the DSP of this embodiment, data from an external memory is
A background external memory read command (BRDE) for transferring data (delayed audio data and the like) to the G-MEM 20 can be set. When the BRDE instruction is solely specified in one instruction word, the arrangement is as shown in FIG. 2D, and the operation code of the BRDE instruction is entered in the field of the secondary instruction. The address in the BRDE instruction isbaseSince the address is generated by the address operation unit 21 of the G-MEM 20 based on the address, no operand is required, and the addressing field becomes an empty area. When the BRDE instruction is specified together with another instruction (primary instruction) in one instruction word, the (D) of FIG.(B)And the addressing field is provided for the operand of the primary instruction.
[0038]
Next, the operation of the DSP of this embodiment in the instruction execution cycle of some instructions will be described with reference to FIGS.
[0039]
FIG. 3 shows an instruction execution cycle of “MAC @ SS, D (xx), * C0, M0” which is one of the MAC instructions for performing a predetermined product-sum operation using the MAC. This instruction is composed of the contents of the memory address of the D-MEM 18 specified by the address (xx) and the contents of the memory address of the C-MEM 16 specified by the contents (address information) of the C0 register (in the addressing unit 17). , Add the result of the multiplication to the contents of the M0 register (in the MAC 28), and store the addition result in the M0 register. "
[0040]
The operation when this instruction is executed is as follows. First, in the fetch cycle (Fetch), the memory read unit of the control device 30 reads the word of this instruction from the P-MEM 32 ((1)). Next, in a decode cycle (Decode), the decoder section of the control device 30 decodes this instruction ((2)). Based on the result of the decoding, the microprogram control unit of the control device 30 is operated to activate required registers and gates, and to cause each required unit to perform operand processing (operand) and execution processing (execution).
[0041]
In the operand processing cycle (Operand), address information is supplied from the control device 30 to the C-MEM 16 and the D-MEM 18 via the addressing units 17 and 19, respectively. The data read from the C-MEM 16 and the D-MEM 18 are sent to the MAC 28 via the C-BUS 10 and the D-BUS 12 ((3)). In the execution processing cycle (Execution), multiplication and addition are sequentially performed by the MAC 28, and the final operation result is stored in the register MO ([4]).
[0042]
Since the DSP of this embodiment executes a series of instructions in a pipeline system, each instruction execution cycle is shifted by one phase between successive instructions. For example, when a decode cycle (Decode) is being performed for a certain instruction, at the same time, an operand processing cycle (Operand) for the immediately preceding instruction and an execution processing cycle (Extraction) for the second previous instruction are performed. A fetch cycle (Fetch) is performed for the next instruction.
[0043]
FIG. 4 shows an instruction execution cycle of the external memory read instruction “RDE”. This instruction is an instruction that means “store the contents of the memory address in the C-MEM 16 specified by the address (cma) in the address register EXA of the EX-I / O 22 as an address for accessing the external memory”. is there.
[0044]
In the execution cycle of the RDE instruction, after the address information (cma) is given from the control device 30 to the C-MEM 16 via the address operation unit 17, the address information for external memory access read from the C-MEM 16 is read. It is provided to the EX-I / O 22 via the C-BUS 10.
[0045]
When the RDE instruction is executed, the EX-I / O 22 accesses the external memory based on the address information received from the C-MEM 16, reads out the contents of the memory address in the external memory specified by the address information, The read data is stored in the read data register EXR. With the memory access function of the EX-I / O 22, the target data is prepared in the data register EXR of the EX-I / O 22 when a predetermined number of machine cycles have elapsed after the execution of the RDE instruction.
[0046]
FIG. 5 shows an instruction execution cycle of a data transfer instruction “MOV @ EXR, dma” used in connection with the above-mentioned RDE instruction. This instruction is an instruction that means “store the contents of the data register EXR in the EX-I / O 22 in a memory address in the D-MEM 18 specified by the address (dma)”. As described above, when a predetermined number of machine cycles have elapsed after the execution of the RDE instruction, the target data is prepared in the data register EXR of the EX-I / O 22. Next, this instruction "MOV @ EXR, dma" By being executed, the target data can be taken into the D-MEM 18.
[0047]
In the DSP of this embodiment, an external memory write instruction “WRE” is also defined. Usually, this instruction is defined as “WRE cma, dma”. This is because “the memory address in the D-MEM 12 specified by the address (dma) is set to the memory address of the external memory specified by the content (address) of the memory address in the C-MEM 10 specified by the address (cma). Write content (data). "
[0048]
When the WRE instruction is executed, each data read based on the address information is transferred to the address register EXA and the write data register in the EX-I / O 22 via the C-BUS 10 and the D-BUS 12, respectively. Transferred to EXW.
[0049]
As described above, audio data from a reproduction circuit such as a CD is input at regular intervals, and is stored in the D-MEM 18 by the AU-I / O 24 by interruption processing. In the FIFO format, while the input audio data is stored in the D-MEM 18, the delay data is ejected in chronological order. However, in digital signal processing that uses a large amount of delay data such as sound field reproduction or reverberation reproduction, the delay data up to several seconds before may be used. They are stored in memory. Then, when the delay data becomes necessary in the filter operation, it is read from the external memory by a background external memory read command (BRDE) described later.
[0050]
FIG. 6 shows an instruction execution cycle of the background external memory read instruction “BRDE” according to the present embodiment. The BRDE instruction reads the contents of the memory address in the G-MEM 20 specified by the contents of the GB register (in the addressing unit 21) as address information for external memory access in the address register EXA in the EX-I / O 22. Transfer, and store the contents of the read data register EXR in the EX-I / O 22 at the memory address in the G-MEM 20 specified by the value obtained by adding 80H (10000000) to the contents of the GB register. " It is an instruction.
[0051]
In the instruction execution cycle of this BRDE instruction, address information for external memory access, which is the content of the memory address of the G-MEM 20 based on the content of the GB register during the operand processing cycle (Operand), is transmitted via the G-BUS 14 to the EX. The data from the EX-I / O 22 is transferred to the G-MEM 20 via the G-BUS 14 during the execution processing cycle (Execution), and the content of the GB register is stored in the addressing unit 21. It is incremented by one.
[0052]
The data transferred from the read data register EXR in the EX-I / O 22 by the BRDE instruction is data read from the external memory by the EX-I / O 22 in response to the previous BRDE instruction. That is, the data corresponds to the address information transferred from the G-MEM 20 to the address register EXA in the EX-I / O 22 by the previous BRDE instruction. The data corresponding to the address information stored in the address register EXA by the current BRDE instruction is read out from the external memory in a predetermined machine cycle and held in the read data register EXR, and is sent to the G-MEM 20 by the next BRDE instruction. Will be transferred.
[0053]
Note that the address (memory address) of the data stored in the G-MEM 20 by the BRDE instruction is obtained by adding 80H (10000000) to the contents of the GB register (address information for external memory access), that is, the most significant address information. Just by setting the upper bit 0 to 1, it can be obtained. Therefore, the address calculation is simple, and the configuration in the addressing unit 21 is simplified accordingly.
[0054]
Thus, in the BRDE instruction, address information and data are transferred between the G-MEM 20 and the EX-I / O 22 using the dedicated G-MEM 20. Other buses (C-BUS10, D-BUS12) are not used, and other memories (C-MEM16, D-MEM18) are not involved. Therefore, during one instruction execution cycle, it is possible to perform parallel processing (execution) of an arithmetic instruction using C-BUS10 and D-BUS12 simultaneously with this BRDE instruction.
[0055]
The data (delayed audio data, etc.) taken into the G-MEM 20 from the external memory is read out from the G-MEM 20 and transferred to the MAC 28 or the ALU 26 when it becomes necessary by a filter operation or the like. The instruction for that is also defined, but this is the same as the instruction of the C-MEM 16 and the D-MEM 18 via the C-BUS 10 and the D-BUS 12, and the description thereof is omitted.
[0056]
FIG. 7 shows an instruction execution cycle of a "MAC @ SS, D (xx), * C0, M0 / BRDE" instruction, which is one of the parallel processing instructions including the BRDE instruction. This parallel processing type instruction is obtained by superposing the MAC instruction of FIG. 3 and the BRDE instruction of FIG. 6 in parallel. The instruction word has the format shown in FIG. 2A, and the operation code of the MAC instruction is defined in the field of the primary instruction, and the operation code of the BRDE instruction is defined in the field of the secondary instruction.
[0057]
The operation when this instruction is executed is as follows. First, in a fetch cycle (Fetch), the memory read unit of the control device 30 reads the word of the parallel processing type instruction from the P-MEM 32 ((1)). Next, in a decode cycle (Decode), the decoder unit of the control device 30 decodes the MAC instruction and the BRDE instruction included in the parallel processing type instruction in parallel or simultaneously ([2]).
[0058]
In this case, the control signal from the PLA control unit of the control device 30 is output in parallel with the MAC instruction and the BRDE instruction, that is, in an OR format. Thus, in the operand processing cycle (Operand), the address information from the addressing units 17 and 19 is supplied to the C-MEM 16 and the D-MEM 18, respectively, and the contents (data) of the target memory addresses are respectively supplied from the C-MEM 16 and the D-MEM 18. ) Is read (operand processing of the MAC instruction), and at the same time, the external memory access address information read from the G-MEM 20 is transferred to the EX-I / O 22 via the G-BUS 14 (BRDE instruction transfer). processing).
[0059]
Then, in the execution processing cycle (Execution), at the same time that the MAC 28 performs a product-sum operation (MAC instruction execution processing), data from the EX-I / O 22 is transferred to the G-MEM 20 via the G-BUS 14. At the same time, the content of the GB register is incremented by one in the addressing unit 21 (execution processing of the BRDE instruction).
[0060]
The sampling frequency of normal audio / digital signal processing is 44.1 KHz, and a digital audio signal is input from an external circuit such as a CD at a time interval of about 22 μsec. The DSP performance is determined by how many product-sum operations can be executed within this time (about 22 μsec). The number of instruction execution cycles that can be pipelined within this time (approximately 22 μsec) is determined, and is set to, for example, 512 steps. Therefore, the DSP performance depends on how many of the steps can be used for arithmetic processing. It can be said that it is decided. On the other hand, when a large amount of delay data is used in a filter operation as in sound field reproduction or the like, the delay data stored in the external memory must be frequently read.
[0061]
In the DSP according to the present embodiment, as described above, the G-MEM 20 and the G-BUS 14 are used by the BRDE instruction independently of the arithmetic processing (especially, the product-sum operation) instruction under the parallel instruction system to delay data from the external memory. Can be read. Therefore, it is possible to allocate as many steps as possible to the arithmetic processing while executing the BRDE instruction for reading data from the external memory within the above-mentioned fixed time, and it is possible to fully exploit the processing capability of the DSP. it can.
[0062]
In the above embodiment, a general-purpose G-MEM 20 is provided separately from the C-MEM 16 for storing coefficient data and the D-MEM 18 for storing audio data, and the delay data from the external memory is read into the G-MEM 20. . However, by configuring the C-MEM 16 and / or the D-MEM 18 as a dual-port memory having two ports and connecting to the G-BUS 14, the BRDE instruction can be executed without providing the G-MEM 20. Is possible.
[0063]
Although the DSP of the above embodiment relates to audio / digital signal processing, the DSP according to the present invention is applicable to any digital signal processing.
[0064]
In the above embodiment, the external memory stores audio data. However, the external memory may store other types of data such as coefficient data in addition to audio data.
【The invention's effect】
As described above, according to the digital signal processing device of the present invention, the arithmetic instruction is executed using the first and second buses in one predetermined instruction execution cycle, and the third bus is simultaneously executed. Data from the external memory into the internal memory, thereby ensuring high-speed pipeline processing, increasing the number of arithmetic operations per unit time as much as possible, and improving processing performance. .
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of an audio / digital signal processing DSP according to an embodiment of the present invention.
FIG. 2 is a diagram showing a field arrangement of an instruction word in the DSP of the embodiment.
FIG. 3 is a diagram showing an instruction execution cycle of a representative product-sum operation instruction in the embodiment.
FIG. 4 is a diagram showing an instruction execution cycle of an external memory read instruction in the embodiment.
FIG. 5 is a diagram showing an instruction execution cycle of a data transfer instruction related to an external memory read instruction in the embodiment.
FIG. 6 is a diagram showing an instruction execution cycle of a background external memory read instruction “BRDE” in the embodiment.
FIG. 7 is a diagram showing an instruction execution cycle of a representative parallel processing type instruction including a BRDE instruction in the embodiment.
FIG. 8 is a block diagram showing a configuration of a main part of a typical conventional DSP system.
FIG. 9 is a block diagram showing a configuration of a main part of another conventional DSP system.
[Explanation of symbols]
10 C-BUS (data bus)
12 D-BUS (data bus)
14 G-BUS (data bus)
16 C-MEM (coefficient memory)
18 D-MEM (data memory)
20 G-MEM (General-purpose memory)
17, 19, 21 Addressing unit
22 EX-I / O (external memory input / output interface circuit)
24 AU-I / O (Audio Interface Circuit)
26 ALU (arithmetic logic unit)
28 MAC (product-sum operation unit)
30 Control device
32 P-MEM (program memory)
34 HOST-I / O (Host Interface Circuit)

Claims (3)

パイプライン方式で一連の命令を実行してディジタル信号を処理するディジタル信号処理装置において、
異なるデータを同時に転送できるようになされた第1、第2および第3のバスと、
前記第1のバスに接続された第1の内部メモリと、
前記第2のバスに接続された第2の内部メモリと、
前記第1および第2のバスに接続された演算手段と、
前記第3のバスに接続されるとともに、少なくとも前記第1および第2のバスの一方に接続された第3の内部メモリと、
前記第3のバスに接続されるとともに、少なくとも前記第1および第2のバスの一方に接続され、かつ外部メモリにデータの書き込みおよび読み出しを行える入出力インタフェース手段と
を有し、
所定の1つの命令実行サイクルの間に、前記第1および第2のバスを使用する第1の命令と、前記第3のバスを使用する第2の命令とを並列的に実行するように構成され、
前記所定の1つの命令実行サイクルにおいて、前記第1の命令については、前記第1および第2の内部メモリからそれぞれデータが読み出されて、それらの読み出されたデータが前記第1および第2のバスを介して前記演算手段に転送され、次いで前記演算手段で両データについて所定の演算が行われ、前記第2の命令については、所定のアドレス情報が前記第3のバスを介して前記入出力インタフェース手段に送られ、次いで予め前記外部メモリより前記入出力インタフェース手段に読み出されているデータが前記第3のバスを介して前記第3の内部メモリに転送されるように構成されているディジタル信号処理装置。
In a digital signal processing device that processes a digital signal by executing a series of instructions in a pipeline system,
First, second and third buses adapted to transfer different data simultaneously;
A first internal memory connected to the first bus;
A second internal memory connected to the second bus;
Computing means connected to the first and second buses;
A third internal memory connected to the third bus and connected to at least one of the first and second buses;
Input / output interface means connected to the third bus, connected to at least one of the first and second buses, and capable of writing and reading data to and from an external memory;
A first instruction using the first and second buses and a second instruction using the third bus are executed in parallel during a predetermined one instruction execution cycle. And
In the predetermined one instruction execution cycle, for the first instruction, data is read from the first and second internal memories, respectively, and the read data is stored in the first and second internal memories. Then, a predetermined operation is performed on both data by the operation unit, and for the second instruction, predetermined address information is input to the input unit via the third bus. The data sent to the output interface means and then read from the external memory to the input / output interface means in advance is transferred to the third internal memory via the third bus. Digital signal processor.
前記第3の内部メモリには前記外部メモリにアクセスするための前記アドレス情報を格納するための第1のメモリ領域と前記外部メモリより転送されたデータを格納するための第2のメモリ領域とが設定され、各々対応する前記アドレス情報と前記データとはそれぞれが格納される前記第1のメモリ領域におけるメモリ番地と前記第2のメモリ領域におけるメモリ番地との間に一定のオフセットを有していることを特徴とする請求項1に記載のディジタル信号処理装置。 The third internal memory has a first memory area for storing the address information for accessing the external memory and a second memory area for storing data transferred from the external memory. The set address information and the corresponding data each have a fixed offset between a memory address in the first memory area and a memory address in the second memory area in which each is stored. The digital signal processing device according to claim 1, wherein: 前記第1の内部メモリと前記第2の内部メモリの少なくとも一方がデュアルポート型のメモリである請求項1または請求項2に記載のディジタル信号処理装置。3. The digital signal processing device according to claim 1, wherein at least one of the first internal memory and the second internal memory is a dual-port type memory .
JP28442594A 1994-10-24 1994-10-24 Digital signal processor Expired - Fee Related JP3579843B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP28442594A JP3579843B2 (en) 1994-10-24 1994-10-24 Digital signal processor
US08/547,267 US5822613A (en) 1994-10-24 1995-10-24 Digital signal processing unit having three buses for simultaneously transmitting data on each bus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28442594A JP3579843B2 (en) 1994-10-24 1994-10-24 Digital signal processor

Publications (2)

Publication Number Publication Date
JPH08123682A JPH08123682A (en) 1996-05-17
JP3579843B2 true JP3579843B2 (en) 2004-10-20

Family

ID=17678391

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28442594A Expired - Fee Related JP3579843B2 (en) 1994-10-24 1994-10-24 Digital signal processor

Country Status (2)

Country Link
US (1) US5822613A (en)
JP (1) JP3579843B2 (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6367003B1 (en) 1998-03-04 2002-04-02 Micron Technology, Inc. Digital signal processor having enhanced utilization of multiply accumulate (MAC) stage and method
US6832306B1 (en) 1999-10-25 2004-12-14 Intel Corporation Method and apparatus for a unified RISC/DSP pipeline controller for both reduced instruction set computer (RISC) control instructions and digital signal processing (DSP) instructions
US6557096B1 (en) 1999-10-25 2003-04-29 Intel Corporation Processors with data typer and aligner selectively coupling data bits of data buses to adder and multiplier functional blocks to execute instructions with flexible data types
US6408376B1 (en) * 1999-10-25 2002-06-18 Intel Corporation Method and apparatus for instruction set architecture to perform primary and shadow digital signal processing sub-instructions simultaneously
US6330660B1 (en) 1999-10-25 2001-12-11 Vxtel, Inc. Method and apparatus for saturated multiplication and accumulation in an application specific signal processor
US6732203B2 (en) 2000-01-31 2004-05-04 Intel Corporation Selectively multiplexing memory coupling global bus data bits to narrower functional unit coupling local bus
US6654845B1 (en) * 2000-07-06 2003-11-25 Intel Corporation System and method implementing a secondary bus to avoid read data latency
JP3845814B2 (en) * 2000-08-10 2006-11-15 株式会社テルミナス・テクノロジー Associative memory, search method thereof, router and network system
US7003093B2 (en) * 2000-09-08 2006-02-21 Intel Corporation Tone detection for integrated telecommunications processing
US20020116186A1 (en) * 2000-09-09 2002-08-22 Adam Strauss Voice activity detector for integrated telecommunications processing
US20030219113A1 (en) * 2002-05-21 2003-11-27 Bershad Neil J. Echo canceller with double-talk and channel impulse response adaptation
US7457484B2 (en) * 2004-06-23 2008-11-25 Creative Technology Ltd Method and device to process digital media streams

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4038642A (en) * 1976-04-30 1977-07-26 International Business Machines Corporation Input/output interface logic for concurrent operations
CA1311063C (en) * 1988-12-16 1992-12-01 Tokumichi Murakami Digital signal processor
EP0398523A3 (en) * 1989-05-19 1991-08-21 Hitachi, Ltd. A device for data i/o and execution support in digital processors
JPH0470946A (en) * 1990-07-04 1992-03-05 Mitsubishi Electric Corp Processor containing dma controller
JP3515142B2 (en) * 1992-06-11 2004-04-05 セイコーエプソン株式会社 Data transfer control device

Also Published As

Publication number Publication date
US5822613A (en) 1998-10-13
JPH08123682A (en) 1996-05-17

Similar Documents

Publication Publication Date Title
JP2539199B2 (en) Digital processor controller
JP3579843B2 (en) Digital signal processor
JP2620511B2 (en) Data processor
JP2806171B2 (en) Data arithmetic unit
JPH0581119A (en) General-purpose memory-access system using register indirect mode
US5287483A (en) Prefetched operand storing system for an information processor
JP3435278B2 (en) Data processing device
JPH08255476A (en) Apparatus and method for memory extended stack in data-processing system
JPH07219766A (en) Processor
US5893928A (en) Data movement apparatus and method
JP2824484B2 (en) Pipeline processing computer
JPH0377137A (en) Information processor
JP3490191B2 (en) calculator
JP3168845B2 (en) Digital signal processor
JP2001256073A (en) Digital signal processor
JP2806690B2 (en) Microprocessor
JP3139310B2 (en) Digital signal processor
JP2622026B2 (en) Register writing control method in central processing unit
JPS6134188B2 (en)
JPH0241770B2 (en)
JPH0234058B2 (en)
JPH04365170A (en) Digital signal processing semiconductor integrated circuit
JPS6221130B2 (en)
JPH05100853A (en) Data processor with debug support function
WO2000065452A1 (en) Pipelined access to single ported cache

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040413

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040611

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: 20040706

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040708

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20070730

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20080730

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090730

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100730

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110730

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120730

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130730

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees