JP2001509610A - 減結合の命令実行及び音声データシーケンスを有する音声効果プロセッサ - Google Patents

減結合の命令実行及び音声データシーケンスを有する音声効果プロセッサ

Info

Publication number
JP2001509610A
JP2001509610A JP2000501565A JP2000501565A JP2001509610A JP 2001509610 A JP2001509610 A JP 2001509610A JP 2000501565 A JP2000501565 A JP 2000501565A JP 2000501565 A JP2000501565 A JP 2000501565A JP 2001509610 A JP2001509610 A JP 2001509610A
Authority
JP
Japan
Prior art keywords
memory
address
engine
sound
execution unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2000501565A
Other languages
English (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 クリエイティヴ テクノロジー リミテッド
Publication of JP2001509610A publication Critical patent/JP2001509610A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H60/00Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
    • H04H60/02Arrangements for generating broadcast information; Arrangements for generating broadcast-related information with a direct linking to broadcast information or to broadcast space-time; Arrangements for simultaneous generation of broadcast information and broadcast-related information
    • H04H60/04Studio equipment; Interconnection of studios

Abstract

(57)【要約】 音響効果プロセッサ(30)は、単一チップ上に一体化された第1メモリ(72)と、命令実行ユニット(70)と、音響メモリエンジン(74)とを含む。第1メモリ(72)は、命令実行ユニット(70)及び音響効果エンジン(50)の両方によりアドレスできる第1アドレススペースを含む。命令実行ユニット(70)は、上記第1アドレススペースから読み取り及びそこに書き込むための命令を含む音響処理命令を実行し、そして音響メモリエンジン(74)は、命令実行ユニット(70)とは独立して動作し、第1アドレススペースへ読み取り及び書き込みすると共に、必要に応じて第2メモリへのアドレス演算及びメモリアクセスを実行して、音声遅延線を実施する。

Description

【発明の詳細な説明】
【0001】
【技術分野】
本発明は、音声信号プロセッサに係る。より詳細には、本発明は、単一のチッ
プ上に一体化された音声効果プロセッサであって、このプロセッサの命令実行ユ
ニットの動作とは独立して音声遅延線を遂行することのできるメモリ及びアーキ
テクチャーを含む音声効果プロセッサに係る。
【0002】
【背景技術】
音響効果音声信号プロセッサ(ASP)は、一般に、多数の音声成分において
音響効果を発生するのに使用され、その幾つかの例は、プログラム可能な楽器、
ビデオゲーム、映画のサウンドシステム、バーチャルリアリティシステム、及び
コンピュータオーディオシステムである。このような音響効果は、反響効果、3
D音声及び歪効果を含むが、これに限定されるものではない。ASPは、一連の
命令を含むプログラムを実行することにより音響効果を形成する。各命令は、受
信した信号に対して特定の論理及び/又は演算オペレーションを遂行するように
ASPに指令し、その結果、特定の音響効果がプログラム形成される。 比較的低速の「タンク」RAM(TRAM)メモリの大型ブロックの形態をし
ばしばとる遅延線を使用することによりASPが音響効果を形成するのが一般的
である。ある既知のASPは、ASPの命令実行ユニットの制御のもとでTRA
Mエンジンを介してTRAMデータに対してオペレーションを実行する。即ち、
命令実行ユニットは、遅延線からの信号出力に対して動作しようとするときに、
特定の命令サイクルでTRAM読み取りオペレーションを開始するようスケジュ
ールし、読み取りオペレーションの実行に対して特定のサイクル数だけ待機し、
そしてデータを検索するオペレーションを実行する。 この形式のプロセッサでは、命令実行ユニットをTRAMエンジンに密接に結
合しなければならない。というのは、オペレーションのスケジューリングに誤同
期があると、TRAMデータが失われることになるからである。又、音響効果の
整合及び遂行に命令実行ユニットの貴重な処理時間が使用される。従って、この
ようなASPのアーキテクチャーを改良することが望まれる。
【0003】
【発明の開示】
本発明は、TRAMエンジン(以下、「音響メモリエンジン」と称する)がプ
ロセッサの命令実行ユニットから減結合された音声効果プロセッサを提供する。
本発明では、音響メモリエンジンと命令実行ユニットが互いに独立して動作し、
メモリの共用エリアにTRAMデータを通す。音響メモリエンジンは、共用メモ
リエリアをTRAM書き込みのソース及びTRAM読み取りの行先として使用し
て、TRAMデータをそれ自身のスケジュールに基づいて読み取り及び書き込み
する。実行プログラムがTRAMデータを必要とするときには、命令実行ユニッ
トがこれらの同じ共用レジスタファイル位置に読み取り又は書き込みする。 本発明による音響効果プロセッサは、単一のチップに集積化された第1メモリ
と、命令実行ユニットと、音響メモリエンジンとを備えている。第1メモリは、
命令実行ユニット及び音響メモリエンジンの両方によりアドレスできる第1アド
レススペースを含む。命令実行ユニットは、第1アドレススペースから読み取り
及びそこに書き込むための命令を含む音響処理命令を実行し、そして音響メモリ
エンジンは、命令実行ユニットのプログラムカウンタ(命令実行レート)とは独
立して動作して、第1アドレススペースからの読み取り及びそこへの書き込みを
行うと共に、必要に応じて、第2メモリへのアドレス演算及びメモリアクセスを
実行して、音声データ記憶(例えば、遅延長さを動的に変更できる遅延線、これ
は、コーラス、フランジング及びピッチシフトのような多数の音声効果に必要な
能力である)を遂行する。第2メモリは、効果プロセッサの内部にあってもよい
し、外部にあってもよい。 本発明の特徴及び効果は、添付図面を参照した以下の詳細な説明より明らかと
なろう。
【0004】
【発明を実施するための最良の形態】
本発明は、あらゆる種類のデジタル音響発生システムに適用できる。例えば、
ビデオゲーム、マルチメディアコンピュータシステム、バーチャルリアリティ環
境、映画のサウンドシステム、ホームシアター及びホームデジタルオーディオシ
ステムに、進歩した音声効果を与えることができる。図1Aは、モニタ12及び
左右のスピーカ14、16をもつ代表的なマルチメディアパーソナルコンピュー
タ10、即ち三次元音声のような音響効果で本発明により改善することのできる
例示的なシステムを示している。
【0005】 図1Bは、パーソナルコンピュータ10の内部アーキテクチャーを非常に簡単
に示す。パーソナルコンピュータ10は、CPU18と、メモリ20と、フロッ
ピードライブ22と、CD−ROMドライブ24と、ハードドライブ26と、マ
ルチメディアカード28とを備えている。図1Bに示すコンピュータ10の各要
素は、バスシステム29を経て互いに通信する。もちろん、本発明では、多数の
コンピュータ構成を使用できる。実際に、本発明は、パーソナルコンピュータに
限定されるものではなく、ビデオゲームや映画のサウンドシステムや他の多数の
システムにも適用できる。
【0006】 図2は、本発明による集積回路を取り付けることのできる典型的なマルチメデ
ィアカード28を示す。このマルチメディアカード28は、回路ボード32に取
り付けられた音響プロセッサチップ30を備えている。図2に示すように、CD
−ROMコネクタ34、AC97コーデック36、オプションのAC3デコンプ
レッサ/デコーダ38、及びミクサ39は、全て、適当なインターフェイスを経
て音響プロセッサチップ30に接続される。
【0007】 又、図2には音響プロセッサ30への種々の他の接続も示されており、これら
は、ジョイスティックコネクタ42、モデム(図示せず)用の電話線接続44、
ラインインコネクタ46、マイクロホンコネクタ47、及びスピーカ出力48を
含む。更に、バスシステム29の一部分であるPCIバス49への接続も示され
ている。バス49は、ホストマイクロプロセッサ18及びメインメモリ20に接
続される。
【0008】 図3は、音響プロセッサ30の簡単なブロック図である。音響プロセッサ30
は、3つの主機能ユニット、即ち音響処理エンジン40と、音響効果エンジン5
0と、ホストインターフェイスユニット60とを備えている。音響処理エンジン
40は、64音声波テーブル合成装置であり、これは、「キャッシュメモリを用
いたデジタルサンプリング装置(Digital Sampling Inst
rument Employing Cache Memory)と題する米国
特許第5,342,990号に開示されたプロフェッショナルクオリティのオー
ディオ再生用の8ポイント補間アルゴリズムと、16個の加算効果送信バスとを
使用する。64個の音声チャンネルの各々は、それ自身のプログラム可能な振幅
で、これらバスのうちの任意に選択される4つのバスへルート指定される。ホス
トインターフェイスユニット60は、PCIプロトコルを用いて音響プロセッサ
30をホストCPU18にインターフェイスする。音響効果エンジン50は、音
響処理エンジン40から入力を受け取ると共に、付加的な音声入力、とりわけ、
CDオーディオ、Zビデオ、マイクロホンジャック、ステレオ入力及び補助S/
PDIF入力を受け取る。音響効果エンジン50及びホストインターフェイスユ
ニット60の更なる詳細は、図4を参照して以下に説明する。ホストインターフ
ェイスユニット60の別の詳細、並びに音響処理エンジン40のある詳細、及び
音響プロセッサ30の他の部分は、本発明の譲受人であるクリエーティブ・テク
ノロジーズ・リミテッドに譲渡されたデビッドP.ロッサム及びスコットフュー
ラを発明者とする「多数の非同期音声流を伴う音声効果プロセッサ(AUDIO
EFFECTS PROCESSOR WITH MULTIPLE ASY
NCHRONOUS AUDIO STREAMS)」と題する米国特許出願に
開示されている。上記米国特許第5,342,990号及びこの特許出願は、両
方とも、参考としてここに援用する。
【0009】 音声効果プロセッサ50 本発明によれば、音響効果エンジン50(「効果プロセッサ50」ともいう)
は、1)音声信号処理命令を実行し、そして2)音声データ記憶(例えば、音声
信号遅延線及びテーブルルックアップ)を実施する個別の機能的ユニットを備え
ている。これらの機能的ユニットは、互いに独立して動作し、そして共用メモリ
アドレススペースを経てデータを交換する。本発明の音声効果プロセッサの1つ
の特定の実施形態が図4に示されており、これについて以下に説明する。しかし
ながら、本発明は、この特定の実施形態に限定されるものではない。以下の説明
を読めば、本発明の概念から逸脱せずに効果プロセッサ50の他の形態も考えら
れることが当業者に明らかであろう。
【0010】 図4は、図3に示された効果プロセッサ50の1つの実施形態を示す簡単なブ
ロック図である。効果プロセッサ50の基本的なアーキテクチャーは、命令実行
ユニット70と、高速内部メモリ72と、音響メモリエンジン74(「TRAM
エンジン74」ともいう)とを結合するものであり、このエンジンは、内部及び
外部の低速大容量TRAMメモリ76及び78にインターフェイスする。音声信
号は、プロセッサ入力71において効果プロセッサ50により受け取られ、ここ
で、メモリ72の二重バッファ部分83に向けられる。この実施形態では、入力
71に受け取られる音声信号は、音響処理エンジン40からの16の音声出力、
ステレオ入力のための2本のライン、CD音声入力のための2本のライン、Zビ
デオ入力のための2本のライン、マイクロホン入力、補助S/PDIF入力のた
めの2本のライン、及び6ラインのIS入力を含む。
【0011】 効果プロセッサ50内での命令実行 命令実行ユニット70は、メモリ72とは別の内部マイクロプログラムメモリ
80に記憶された命令を実行し、メモリアドレススペース83に記憶された1つ
以上の音声信号に対して特定のオペレーションを実行する。各命令は、4ビット
のOPコードフィールドと、3つの10ビット入力オペランドアドレスフィール
ドと、10ビットの出力オペランドアドレスフィールドとを有する。OPコード
フィールドは、プロセッサに対し命令のオペレーションを特定する命令のオペレ
ーションコード(OPコード)を保持する。オペランドアドレスフィールドは、
メモリ72のスペースへのアドレスを保持する。この実施形態では、オペランド
は10ビット長さであるから、DSP命令に使用できるメモリ72の最大のアド
レス可能なスペースは、1024個の位置である。メモリ72の全1024個の
位置をアドレスすることができる。
【0012】 命令実行ユニット70は、メモリ72の位置に記憶されたデータを命令の3つ
の入力オペランドで特定された位置から入力データライン75、77及び79を
経て検索する。次いで、命令実行ユニット70は、命令のOPコードで特定され
た必要なオペレーションを実行し、そしてその結果のデータを、出力データライ
ン81を経て、受け取った命令の結果オペランドで特定されたメモリアドレスへ
書き込む。結果のデータは、メモリスペース83の32個の出力バッファの1つ
へ書き込むことにより音声出力ポート87へ向けられるか、メモリ72の別の部
分に記憶されるか、又は命令実行ユニット70によりその後のオペレーションに
再使用される。
【0013】 命令実行ユニット70内の命令実行は、サンプルロックされそしてメモリベー
スであり、レジスタベースではない。サンプルロックされる実行とは、命令ユニ
ット70が、サンプル周期ごとに、マイクロプログラムメモリ80を経て単一パ
スを実行することを意味する。従って、命令実行は、システムの音声サンプルレ
ートに固有に結合される。この実施形態では、サンプルレートは、図2に示すA
C97コーデック36から導出される48KHzである。他の実施形態では、こ
のサンプルレートは、異なる設定周波数であってもよいし、又は可変周波数であ
ってもよい。例えば、別の実施形態では、サンプルレートは、ボード32のシス
テムクロック(図示せず)から導出される約40−50Hzの範囲である。 メモリベースの命令実行とは、命令実行ユニットの入力に設定される入力レジ
スタのボトルネックを伴わずにオペランドがメモリ72から直接フェッチされる
ことを意味する。又、結果をセーブするために各命令の後にフラッシュする必要
のある揮発性出力レジスタがないことも意味する。
【0014】 命令実行ユニット70は、マイクロプログラム命令80の全ての命令を、分岐
やループやサブルーチンコールを伴わずに、「インライン」で実行する。このよ
うなインライン実行は、基本的なリアルタイムデッドライン(1サンプル周期)
内の全ての処理が設計により達成されるように確保する。又、これは、実行パイ
プラインの設計を簡単化する。というのは、命令シーケンスが完全に決定論的で
あり、即ち制御の流れに分岐がないからである。
【0015】 命令実行は、マイクロプログラムメモリ80の開始からそのメモリの終りまで
常にインラインで進行するが、条件付命令実行のための規定がある。このような
条件付命令実行の詳細、及び命令実行ユニット70により実行される命令セット
の特性は、本発明の譲受人であるクリエーティブ・テクノロジーズ・リミテッド
に譲渡されたステフェン・ホージを発明者とする「音声効果のための命令セット
をもつプロセッサ(Processor With Instruction
Set for Audio Effects)」と題する米国特許出願に開示
されている。この特許出願は、全ての目的で参考としてここに援用する。
【0016】 各命令は、単一の命令サイクルで実行され、その周期は、サンプルレートをマ
イクロプログラム命令80内の命令の数で除算したものである。従って、マイク
ロプログラムメモリ80が512個の命令長さであり、そしてサンプルレートが
48KHzであるような実施形態では、命令サイクルの長さが40.7ナノ秒で
ある。各命令の結果は、次の命令サイクルで使用することができる。
【0017】 ホストインターフェイスユニット60 図4にはホストインターフェイスユニット60も示されており、これは、ホス
トプロセッサ(CPU18)が音声効果プロセッサ50のオペレーションを制御
できるようにする。このような制御は、ホストが初期化を行うと共にデータ及び
実行可能な命令をメモリ72及び/又はマイクロプログラムメモリ80に対して
読み取り及び書き込みできるようにすることにより達成される。このようなメモ
リ読み取り及び書き込みオペレーションは、デジタル信号処理(DSP)プログ
ラムの実行に対して透過的に行うことができ、音声効果プロセッサ50が、多数
の独立したそして別々にロードされたプログラムの同時スタート、実行及び停止
をサポートできるようにする。この実施形態では、インターフェイスユニット6
0を経てホストプロセッサと音声効果プロセッサ50との間に生じる通信がPC
Iプロトコルを用いてPCIバス上で行なわれるが、他の実施形態では他のプロ
トコルを実施することができる。又、更に別の実施形態では、ホストインターフ
ェイスユニット60は、大エンディアン(endian)又は小エンディアンプ
ロセッサに使用するのに適した直接的なメモリマップ型マイクロプロセッサイン
ターフェイスである。
【0018】 音響メモリエンジン74 音響メモリエンジン74は、メモリ72と、長時間音声データ記憶に使用され
る大容量TRAMメモリとの間のインターフェイスである。図5は、音声遅延線
の形態で音声データ記憶を実施するように構成された音声メモリエンジン74の
1つの実施形態を示すブロック図である。図5に示すように、音響メモリエンジ
ン74の主たる要素は、制御ビット83と、TRAMデータ及びアドレスバッフ
ァ84及び85(メモリ72の一部分)と、遅延ベースのアドレスカウンタ86
と、整列制御回路87と、アドレスジェネレータ88と、データフォマット手段
90とである。アドレスジェネレータは、遅延線を発生するための円形アドレッ
シングを行う。データフォーマット手段は、メモリ72の32ビットオペランド
を、TRAM書き込みオペレーション中に物理的なTRAMにより実施される狭
いワード巾へと圧縮し、そして読み取りオペレーション中にそれらを膨張して戻
す。
【0019】 音響メモリエンジン74は、TRAMアドレスバッファ及びTRAMデータバ
ッファを実施するメモリ72のアドレススペースへとマップされたRAMのブロ
ックへ、命令実行ユニット及びホストインターフェイスと共用状態で、アクセス
する。これらの二重バッファメモリ(TRAMデータバッファ84及びTRAM
アドレスバッファ85)は、整列ビット83a及び読み取り/書き込みビット8
3bを含む制御ビット83と共にサンプル周期中のTRAMエンジンのアクティ
ビティを完全に特定するデータ及びアドレス対を保持する。マイクロプログラム
メモリ80が、各サンプル周期ごとに命令実行ユニットにより実行されるプログ
ラムを保持する途上で、これらバッファは、各サンプル周期ごとにTRAMエン
ジンにより実行される「プログラム」を表わす。音響効果エンジン50に対して
コンパイルされたプログラムが遅延線に対して読み取り又は書き込みされるとき
には、実際にオペランドとして使用されるのは、TRAMデータバッファ84内
の位置である。通常、TRAMアドレスバッファ85に記憶されるアドレスオフ
セットは、ホストプロセッサにより初期化される定数であるが、命令実行ユニッ
ト70により実行される命令は、その結果をメモリ72の適当なTRAMアドレ
スバッファに記憶することにより、新たな遅延線アドレスを計算することができ
る。
【0020】 各サンプル周期中に、TRAMエンジンは、バッファのアドレス/データ対の
各々を順次に経て動作し、従って、バッファの内容は、全サンプル周期にわたる
TRAMアクセスの順序付けされたリストを表わす。サンプル周期内の各TRA
Mメモリサイクル中に、音響メモリエンジンによりTRAMアドレスバッファG
PRからTRAMアドレスオフセットがフェッチされ、このオフセットから絶対
TRAMメモリアドレスが計算され、そして信号値がアドレス対のTRAMデー
タバッファ位置からフェッチされるか又はそこに書き込まれる。
【0021】 TRAMデータバッファは、TRAMから流れる音声データに対するソース及
びシンクであり、各データバッファ位置は、アドレスバッファ位置と1対1で対
にされ、アドレスバッファは、データに対応するTRAMにアドレスを保持する
。制御ビット73は、各データ/アドレス対に関連したフィールドを有する個別
のアレー(ホストからのみ書き込み可能であって、メモリスペース72へマップ
されない)である。これら制御ビットの幾つか(制御ビット83b、この実施形
態では2ビットフィールド)は、対応するデータ及びアドレス対を用いてどんな
形式のTRAMオペレーション、例えば、読み取り又は書き込みを行なわねばな
らないかを特定する。
【0022】 命令実行ユニットでアドレス及びデータバッファへのアクセスを共用すること
により、DSPの計算及びTRAMのアクセスは、時間的にそしてメモリ72の
アドレススペースについて互いに減結合される。換言すれば、TRAMエンジン
がメモリ72にアクセスするときと、命令実行ユニットがそれにアクセスすると
きとの間には固定の時間的関係がない。この減結合が重要である理由は、高速の
命令実行ユニットと、比較的低速の物理的TRAMメモリとの間には動作速度に
固有の差があるためである。共用バッファを介してDSP及びメモリアクセスを
減結合すると、命令実行ユニットは、音響メモリエンジン及びその物理的メモリ
インターフェイスの負担となるアクセス待ち時間及びパイプラインの結果に関わ
りなく、フルスピードで処理を進めることができる。
【0023】 TRAMバッファをメモリ72のアドレススペースへマップすると、実行ユニ
ット70に対する命令からオペランドとしてバッファ位置をアクセスすることが
できる。このように、TRAMに記憶されたデータは、TRAMデータバッファ
を経て漏斗状に通して、DSPプログラムにおいて入力又は出力オペランドとし
て使用することができる。この透過的メモリマッピングとは、TRAMデータア
クセスに対して特殊な命令が必要とされず、そしてこのデータへのアクセス中に
低速のTRAMサイクルを待機して余計なオーバーヘッドを被らないことを意味
する。
【0024】 メモリ72 この実施形態では、メモリ72は、実際に、4つの個別の物理的なメモリ区分
で構成される。図6は、メモリ72をより詳細に示す図である。図6に示された
ように、メモリ72は、1024個の位置を含むが、その全部が使用されるので
はない。しかしながら、メモリ72の1024個の位置は、全て、命令実行ユニ
ット70によりアドレスすることができ、従って、メモリ72の全体は、均一な
アドレス機構によってアドレスできるといえる。 メモリ72には4つの異なる機能エリアが存在する。即ち、入力/出力スペー
ス83(メモリ位置0−40)と、汎用メモリスペース92(メモリ位置100
−200)と、TRAMデータ及びアドレスバッファ84及び85(メモリ位置
200−280、内部TRAMデータ;位置280−2AO、外部TRAMデー
タ;位置300−380、内部TRAMアドレス;380−3AO、及び外部T
RAMアドレス)と、ハードウェアレジスタ及び定数スペース94(位置40−
60)である。これらの機能的ユニットは、メモリ72を構成する4つの物理的
メモリと必ずしも対応しない。
【0025】 汎用メモリスペース92は、命令実行ユニット70により実行されるDSPプ
ログラムのための汎用オペランドを記憶する32ビット巾の256個の位置を含
む。このメモリスペースは、命令速度の4倍で動作する単一ポートメモリにより
実施され、従って、各命令は、サイクル当たり3つの入力オペランド及び1つの
出力オペランドにアクセスすることができる。メモリスペース94は、固定布線
された頻繁に使用される定数を、種々のレジスタに対するスペースと共に含む。
【0026】 上述したように、TRAMデータ及びアドレスバッファ84及び85は、内部
及び外部のTRAM76及び79に対するポートである。各データバッファ位置
は、アドレスバッファ位置と対にされる。データバッファは、それに対応するア
ドレスバッファ位置に含まれたTRAMアドレスにおいて読み取られるか又はそ
こに書き込まれるTRAMデータを保持する。汎用メモリスペース92と同様に
、これらのバッファは、レジスタファイルメモリによって実施されそしてDSP
プログラムのオペランドスペースに現われる。それらは、メモリ72のアドレス
スペースの個別部分に現われるが、TRAMバッファのデータ及びアドレス部分
は、TRAMエンジン74により並列にアクセスされる。 この実施形態では、TRAMバッファは、全32ビット巾ではなく、20ビッ
トに制限される。これらの20ビットは、20ビットのTRAMアドレス及び2
0ビットの圧縮解除されたTRAMデータの両方を単一の共用内部RAMに受け
入れる。20個のデータビットは、32ビットデータ経路の最上位位置に収まっ
た状態に保たれる。しかしながら、20個のアドレスビットは、MSBが0と読
まれる状態でデータ経路の次の上位ビット(30)に収められる。これは、アド
レスが命令実行ユニットに対して常に正の量として現われるようにする。
【0027】 遅延線の実施 円形アドレッシングとは、メモリの領域を通して循環するメモリポインタを用
いて遅延線を実施する機能を指す。遅延線の読み取りポインタは、円の周りの書
き込みポインタに従い、これらポインタは同じレートで前進し、読み取りポイン
タと書き込みポインタとの間のメモリ内の距離が遅延線長さである。又、円形ア
ドレッシングは、モジュロアドレッシングとしても知られている。というのは、
全てのアドレス循環が領域サイズのモジュロで行なわれるからであり、これは、
実施を簡単化するために通常2の累乗である。
【0028】 たとえ読み取り及び書き込みポインタが効果プロセッサ50においてアドレス
を指すとしても、それらは、物理的なTRAMメモリアドレスとして実施される
のではなく、アドレスオフセットとして実施される。オフセットの初期値は、当
業者に明らかなように、アッセンブラー及びそれに関連したドライバソフトウェ
アによって固定することができる。各読み取り及び書き込みオペレーションに対
して物理的メモリアドレスを得るために、オフセットが遅延ベースアドレスカウ
ンタで加算される。このベースアドレスカウンタは、サンプルレートを減少し、
従って、読み取り及び書き込みオフセットとベースアドレスとの和も、同じレー
トで減少し、そして書き込みオフセットが読み取りオフセットより小さい場合に
は、読み取りポインタがメモリを通して下方に書き込みポインタを追跡するため
に、遅延距離が両者の差となる。
【0029】 これは、仮説的な32サンプルのTRAMにおいて実施される4サンプル遅延
線に対して図7A−7Cに示され、これについて以下に説明する。円形メモリに
おいて強調された数字は、遅延線のどの値が現在「アクティブ」であって、検索
を待機しているかを示す。遅延線の書き込みオフセットは0であり、そして読み
取りオフセットは4であり、これらの値は一定に保たれる。最初に、ベースアド
レス(BA)は0であり(図7A)、従って、書き込みオペレーションの物理的
アドレスも0であり、値7が書き込まれる。
【0030】 4つのサンプル周期の後に、ベースアドレスカウンタBAは、32のTRAM
サイズのモジュロで、0から28まで減少される(図7B)。これは、最も新し
い値−2が遅延線の頭部に書き込まれ、ベースアドレス値28が書き込みオフセ
ット0と加算される場合である。又、固定の読み取りオフセット4がモジュロ3
2のベースアドレスに加算されて、物理的読み取りアドレス0を与え、ここで、
4サンプル前に書き込まれた値7を検索する。
【0031】 読み取りポインタは、値をウェイク状態に保ち、これら値はここではインアク
ティブであって破棄することができる。ベースアドレスカウンタが0に向かって
戻るように減少し始めると、書き込みカウンタが破棄された値に追い付くので、
既にメモリに書き込まれたものを再使用し始める(図7C)。
【0032】 音声信号プロセッサ10におけるこの遅延線の実施形態は、他の多数のDSP
とは異なり、円形遅延線のアドレッシングが遅延線サイズのモジュロで実行され
るのではなく、物理的アドレススペース(この小さくて簡単な例では、32個の
位置)のモジュロで実行されることを示している。これは、異なる長さの多数の
遅延線が同じ物理的アドレススペースを占有しながらも同じモジュロ演算を使用
できることを意味する。その例が図7Dに示されている。図7Dでは、オフセッ
ト0で書き込みそしてオフセット4で読み取る図7Aの元の遅延線が、次の特性
をもつ他の3つの遅延線により接合される。 2: [Write@5,Read@10]、 3: [Write@14,Read@15]、 4: [Write@16,Read@28] 完全な一般性のために、この例では遅延ベースアドレスカウンタ値2が使用さ
れている。
【0033】 図7Dから明らかなように、遅延ベースアドレスカウンタに対して各々別々の
読み取り及び書き込みオフセットをもつ4つの遅延線がTRAMに同時に存在し
、そして物理的アドレススペースにより形成されたモジュロ円の周りを互いに単
純に追跡する。又、4つの遅延線は、使用可能な全てのメモリスペースを満たす
のではなく、Read@10とWrite@14のオペレーション間にはメモリ
ギャップが未使用のまま存在し、そして同様に、最後のRead@28以降のメ
モリが未使用となることに注意されたい。これらのエリアは、付加的な遅延線に
使用することもできるし、或いは放置されたスペースを使用して、Read@1
0及びRead@28がそれらの読み取りポインタを調整、即ち動的に拡張及び
収縮させた遅延線を、他の遅延線に干渉することなく許すことができる。 又、音声効果プロセッサ50は、遅延線アドレスも容易に調整する。というの
は、アドレスがメモリ72においてTRAMアドレスバッファ84に記憶され、
そして他の演算オペランドと同様にアクセスできるからである。遅延線の長さは
、遅延線の読み取り及び/又は書き込みポインタに対する新たなアドレスを計算
することにより調整されるが、読み取りポインタのみを変更するのが最も一般的
である。
【0034】 遅延線の長さは、書き込みアドレスから読み取りアドレスまでの距離(サンプ
ル数)であり、従って、遅延線を適切に調整するためには、新たに計算された遅
延線を遅延線の書き込みアドレスと加算した後に、それをTRAMアドレスバッ
ファに記憶しなければならない。バッファに記憶された書き込みアドレスは、最
終的に、物理的なTRAMアドレスを得るための遅延ベースアドレスカウンタか
らのオフセットとして再び使用されるので、調整された遅延長さは、実際には、
遅延ベースアドレスカウンタからのオフセットからの付加的なオフセットを表わ
す。遅延線の書き込みアドレスは、TRAMアドレスバッファに既に得られるの
で、読み取りオフセットは、次の式の命令で計算することができる。 読み取りアドレス=書き込みアドレス+(Mod関数×最大遅延長さ) 最大遅延長さは、遅延線の宣言された最大長さであり、そしてMod関数は、0
から1.0まで変化する制御信号である。
【0035】 現在のVLSIプロセス(0.35μ)は、反響及び3D音声(0.5Mビッ
トないし2Mビット)のような幾つかの複雑な音響効果アプリケーションに必要
な全遅延線容量を実現するのに必要とされる量の内部メモリをコスト効率良くサ
ポートしない。一方、PCIバス49の慎重な使用は、あるアプリケーションに
よって必要とされる外部ホストメモリに対する帯域巾(64ないし128アクセ
ス/サンプル周期)をサポートしない。音声効果プロセッサ50は、これら両方
の形式のメモリへのアクセス、即ちオンチップの単一ポートスタティックメモリ
で実施される内部TRAM76(ITRAM)の8Kサンプルへの高帯域巾アク
セスと、ホストDRAMメモリにおいてPCIバス49にまたがって実施される
外部TRAM78(XTRAM)の1Mまで又はそれ以上のサンプルへの低帯域
巾アクセスを与えることにより、妥協をとる。 これら2つのメモリスペースITRAM及びXTRAMは、論理的及び物理的
に個別であり、そしてそれらのアドレススペースは重畳する。例えば、ITRA
Mのアドレス0x0000は、XTRAMのアドレス0x0000と同じ位置で
はない。従って、一方のメモリスペース又は他方のメモリスペースのいずれかに
おいて遅延線を実施しなければならない。
【0036】 読み取り/書き込みハザードの回避 TRAMデータバッファ84では二重バッファ動作は生じない。従って、マイ
クロプログラムが、現在のサンプル周期に厳密に属していないバッファのデータ
をアクセスするような状態が生じる。読み取りオペレーションの場合には、マイ
クロ命令が、以前のサンプル周期中にTRAMから実際にフェッチされたデータ
ムをバッファから読み取り得る。書き込みオペレーションの場合には、マイクロ
命令が、次のサンプル周期までTRAMに実際にフラッシュ出力されないデータ
ムをTRAMに書き込むことがある。
【0037】 これらの状態は、音響メモリエンジン74が命令実行ユニット70に密接に結
合されないことから生じる。バッファ内の同じデータムに対して命令実行ユニッ
ト70により行なわれるアクセスと、音響メモリエンジン74により行なわれる
アクセスとの間に任意の時間的な関係が存在する。この関係は、マイクロ命令ワ
ード及びTRAMバッファ位置の相対的な配置と、実行ユニット及び音響メモリ
エンジンの相対的なアクセスレートとにより確立される。この関係は、当業者に
明らかなように、マイクロプログラムローダ(例えば、ソフトウェアドライバ)
によって決定される。
【0038】 TRAM読み取りオペレーションからのリコールハザードの一例が図8Aに示
されている。図8Aは、2つのTRAMオペレーションを示し、その一方は、ア
ドレスオフセット100からであり、そしてその他方は、オフセット110から
である。各サンプル周期ごとに1だけ減少するベースアドレスカウンタが、各ア
クセス中にTRAMアドレスバッファに記憶されたTRAMオフセットに追加さ
れて、物理的なTRAMメモリアドレスを形成する。簡単化のため、この例は、
TRAM及び命令実行エンジンが、各々、バッファ及びマイクロプログラムメモ
リを通して同じレートでシーケンスすると仮定する。
【0039】 フェッチオペレーションは、TRAMエンジンがTRAM読み取りオフセット
100に遭遇するときに生じる。これは、物理的アドレス101からメモリフェ
ッチを開始し、そしてTRAMアクセス遅延時間の後に、101からのデータが
データバッファに現われる。これは、マイクロ命令の実行により、バッファから
逐次に読み取られる。このケースでは、読み取りに先行するフェッチと、TRA
Mアドレス101からそのデータを受け取ったマイクロ命令が、1のベースアド
レスから、予想されるように100だけオフセットする。
【0040】 ある数の命令サイクルの後に、オフセット110からデータを求めるマイクロ
命令は、110からのデータが通常満たされたバッファ位置からそのデータを読
み取る。しかしながら、このケースでは、読み取りオペレーションがTRAMフ
ェッチに先行し、フェッチは、別の数サイクルの間は生じない。というのは、ア
ドレスバッファにおいてマイクロ命令ワードを数個の位置だけ過ぎたところにT
RAMオフセット110が記憶されているからである。TRAMアドレス111
(オフセット110+現在ベースアドレスカウント1)からデータを受け取るの
ではなく、マイクロ命令は、以前のサンプル周期中にフェッチされたデータを受
け取る。同時に、ベースアドレスカウンタが2であり、従って、読み取られたバ
ッファのデータムは、実際には、1サンプル周期だけ長く遅延されたTRAMア
ドレス112からのものである。
【0041】 この1だけずれたエラーは、マイクロ命令の読み取りがTRAMバッファのフ
ェッチに先行するときに生じる。1ビットのアドレスオフセット(整列ビット8
3a)は、整列制御回路87と共に、マイクロ命令の読み取りがTRAMエンジ
ンのフェッチに先行するときに1だけずれたエラーを打ち消すことにより、この
問題に対する解決策を与える。上記と同じ例を使用して、この解決策が図8Bに
示されている。図8Bに示すように、TRAMバッファの構造は、TRAMアド
レスと1対1で対にされるアドレス整列ビット83aを含むフィールドを包含す
るように増大されている。整列制御回路87は、整列ビット83aを検査し、そ
して物理的なTRAMアドレスを決定するのに使用されるアドレスジェネレータ
88へ入力を与える。
【0042】 TRAM書き込みオペレーションには、読み取りハザードと対称的な問題が生
じ得る。この状態が図8Cに示されている。マイクロ命令がSTRAMに結果を
書き込むときには、結果データが読み取りオペレーションの場合と同様にバッフ
ァされ、TRAMエンジンが結果をメモリへフラッシュ出力するのを待機する。
TRAMに書き込むマイクロ命令が、フラッシュオペレーションが行なわれる前
に実行される場合には、問題が起きない。マイクロ命令ワードに先行するバッフ
ァ位置にTRAMオフセット及びデータが記憶されるときに問題が生じる。これ
らのケースでは、TRAMエンジンが、以前のサンプル周期中にマイクロコード
によって書き込まれたデータを実際にフラッシュし、遅延線の遅延がその公称長
さを1サンプル周期だけ越えるのが有効な結果である。
【0043】 この問題に対処するために、音響メモリエンジン74は、その後のサンプル周
期中に、厳密に終了していなければならない場所にデータがフラッシュ出力され
るように確保する。データアドレスがカウントダウンされる場合には、これは、
以前のサンプル周期中にデータをフラッシュしなければならない物理的アドレス
を計算するためにオフセットに「1」が追加されることを意味する。この場合に
も、図8Dに示したように、整列制御回路87に整列ビット83aを使用して、
書き込みオペレーションに対するこの1だけずれるエラーを打ち消すことができ
る。
【0044】 この場合の相違点は、整列ビットが、TRAMアドレスエンジンに向かう「+
1」オフセットを意味し、読み取りオペレーションに使用された「−1」を意味
するのではないことである。これは、各アドレス(図示せず)に関連した読み取
り/書き込みビットを考慮することにより容易に達成される。 整列ビットを設定する1つのやり方は、マイクロコードローダ(ソフトウェア
ドライバ)を使用することであり、これは、TRAMアドレスバッファにおける
全てのオフセットの位置と、これらオフセットに対応するTRAMデータを使用
する全ての命令とを追跡する。この「ローダ」は、マイクロコードのダウンロー
ド時間に動作してもよいし、或いは実際には、マイクロコードの形成時間に動作
する必要しかない「ロケーター」であってもよい。マイクロコード及びTRAM
エンジンシーケンサの相対的な実行レートに関する情報及び知識により、ローダ
は、どのTRAMデータが、実際にメモリからフェッチされる前にバッファから
読み取られるか、又はフラッシュされる前に書き込まれるかを決定することがで
きる。そのデータに関連したTRAMオフセットに対応する整列ビットをセット
することによりこのような状態にフラグが立てられる。次いで、整列ビットは、
TRAMアドレスエンジン88へ供給され、そして物理的なTRAMアドレスを
形成するときに±1の余分なオフセットとして使用される。
【0045】 別のやり方は、整列ビットオフセットを自動的に発生するハードウェアを音響
メモリエンジン74に使用することである。マイクロプログラムシーケンサは、
TRAMエンジンシーケンサがバッファの始めに再スタートされそしてベースア
ドレスカウントが増加される同じサイクルに再スタートする。このとき、整列ビ
ットは、書く読み取りオフセットに対してクリアされ、そして各書き込みオフセ
ットに対してセットされる。マイクロコードが読み取り又は書き込みオペレーシ
ョンに対してTRAMデータバッファをアクセスするときには、対応するオフセ
ットに対する整列ビットが、各読み取りオフセットごとにセットされ、そして各
書き込みオフセットごとにクリアされる。従って、「不整列」のTRAMフェッ
チ又はフラッシュオペレーションは、整列ビットの正しい意味を自動的に使用す
る。このやり方は、あまり好ましくない。というのは、TRAMデータバッファ
へのマイクロ命令アクセスを、アドレス使用とデータフェッチとの間のパイプラ
イン遅延へとスリップさせることがないよう保証するために、他の手段を講じね
ばならないからである。このような保証がないと、マイクロ命令アクセスは、た
とえ最後のサンプル周期のバッファデータをアクセスしても整列ビットを更新す
る機会をもたず、物理的アドレスが決して正しくならないからである。
【0046】 TRAMデータ及びアドレスバッファ84及び85の初期化 遅延線が使用されるときには、効果プロセッサ50によって電力が受け取られ
るや否や、TRAM読み取り及び書き込みオペレーションがスタートする。書き
込みオペレーションは問題を起こさないが、TRAM76及び78が適切に初期
化されない限り、読み取りオペレーションは最初にノイズを発生する。従って、
TRAMを初期化することが重要となる。1つの実施形態では、これらのメモリ
スペースは、音響プロセッサ50のプログラムを実行する前に各位置に0を書き
込むことにより初期化される。しかしながら、これは、時間浪費な作業である。
従って、他の好ましい実施形態では、このような初期化ルーチンを実行するため
に専用のハードウェア回路が使用される。当業者に明らかなように、本発明では
種々のこのような回路を設計して使用することができる。
【0047】 他の実施形態 本発明の1つの特定の実施形態を以上に詳細に説明した。本発明の多数の観点
は、本発明の概念から逸脱せずに変更できることが理解されよう。他の実施形態
では、例えば、ワードサイズ、アドレスフィールド長さ、メモリサイズ、使用す
る制御ビット83の数、及び他の実施特有の項目を変更することができる。又、
効果プロセッサ50は、音響処理システムにおいて音声信号に対するオペレーシ
ョンを実行する音声効果プロセッサとして説明したが、当業者であれば、効果プ
ロセッサ50は、任意の信号処理システムにおいてレーダ信号、地震信号又は他
の時系列信号も処理できることが明らかであろう。 音声効果プロセッサ50を実施する多数の他の同等の又は別の方法が当業者に
明らかであろう。例えば、音響メモリエンジン74は、内部及び外部TRAMメ
モリ76及び78に非円形インデックスのアドレッシングを用いてテーブルルッ
クアップオペレーションを実施することができる。データのテーブルは、ホスト
プロセッサ18によりTRAMにロードすることができ、そして命令実行ユニッ
ト70によりインデックスが計算されたスタティックアレーと同様にアクセスす
ることができる。音響メモリエンジンは、各アドレスに関連した付加的なTRA
M制御ビットの設定により、遅延線アクセスをテーブルルックアップアクセスと
区別することができる。テーブルベースのアドレッシングは、非線型関数、合成
のための波テーブル又は励起関数、ブロックベースの係数記憶を実施したり、他
の多数のアプリケーションに有用である。「テーブルルックアップ」とは、読み
取りオペレーションを意味するが、テーブルベースのアドレッシングは、書き込
みオペレーションに等しく適用され、従って、ホストでテーブル値の計算を行う
のではなく音声効果プロセッサ50がテーブル値をリアルタイムで計算するよう
にすることができる。
【0048】 テーブルベースのアドレッシングは、遅延ベースのアドレスカウンタを一定に
減少するのではなくスタティックなテーブルベースアドレスレジスタを使用する
ことにより遅延線アドレッシングとは区別される。遅延線アクセスが遅延ベース
アドレスカウンタに対するオフセットで常に行なわれたのと同様に、テーブルル
ックアップも、テーブルベースのアドレスレジスタに対して常に行なわれる。テ
ーブルベースのアドレスレジスタは、ホストによって初期化され、そしてメモリ
72のアドレススペースへマップされる。もし必要であれば、テーブルベースア
ドレスは、他の命令オペランドと同様に、DSPプログラムから読み取ることが
できる(書き込みはできない)。
【0049】 テーブルベースのアドレスレジスタの初期化は、通常、システムのスタートア
ップ時にホスト18によって行なわれる。そこに記憶されたアドレスは、物理的
TRAMを円形領域及びテーブルルックアップ領域に区分化する。全ての遅延線
アドレスは、物理的メモリサイズのモジュロではなく、テーブルベースアドレス
のモジュロで計算され、従って、遅延線オペレーションは、0ないし[テーブル
ベース]のメモリ領域内で自動的に行なわれる。このように、テーブルベースア
ドレスレジスタは、実際に、「遅延制限」レジスタとしても働く。 円形遅延アドレッシングがTRAMアドレスバッファエレメントを遅延ベース
アドレスカウンタからのオフセットとして処理するのと同様に、テーブルベース
アドレッシングは、これらアドレスをテーブルベースアドレスレジスタに対する
オフセットとして使用する。物理的なTRAMアドレスを計算するために、TR
AMアドレスバッファの内容がテーブルベースアドレスレジスタに追加される。
テーブルインデックスを適切な倍率で計算しそしてそれをTRAMアドレスバッ
ファにオフセットとして記憶することにより、DSPプログラムは、計算された
テーブルルックアップを実行することができる。
【0050】 音声効果プロセッサ50にロードされた全てのプログラムは、同じテーブルベ
ースアドレスレジスタを使用し、その値は、通常、システム初期化時にホストに
よって確立される。2つ以上のプログラムがテーブルルックアップ記憶を必要と
する場合には、異なるプログラムに属する個々のテーブルが全体的なテーブルル
ックアップ領域内から区分化される。DSPプログラムは、通常のGPRを用い
てそれら自身の専用のテーブルオフセットレジスタを宣言することができ、その
内容は、テーブルベースアドレスレジスタからのオフセットを表わし、そしてそ
の位置及び内容は、プログラムローダにより適切に再配置される。次いで、これ
らの専用のテーブルオフセットレジスタGPRが、計算されたテーブルインデッ
クスと加算された後に、TRAMメモリにおいてテーブルルックアップオペレー
ションが実行される。
【0051】 通常、テーブルルックアップオフセットは、TRAMのテーブルルックアップ
領域内にあるアドレスを形成するが、音響メモリエンジンがアドレス制限もトラ
ッピングも行なわないので、特殊なアプリケーションではこの領域以外のアドレ
スを発生することができる。遅延線アドレッシングに関しては、TRAMアドレ
スバッファのオペランドデータ経路整列は、全てのTRAMテーブルオフセット
が正の量であるように確保し、従って、テーブルルックアップ領域より下のアド
レスを発生するためには、プログラムが、全TRAMアドレススペース(1つの
実施形態では220の位置)を取り巻いて遅延線領域へと戻るアドレスを発生し
なければならない。
【0052】 テーブルルックアップオペレーションを実行するのに加えて、本発明の他の変
更も可能である。例えば、音響処理エンジン40、音響プロセッサ50及びイン
ターフェイスユニット60は、全て、単一チップの音響プロセッサの一部分とし
て説明したが、これら要素の機能は、他の実施形態では個別のICから実行する
こともできる。同様に、命令実行ユニット70及び音響メモリエンジン74が個
別チップにおいて実施されるようなアーキテクチャーを開発することもできる。
又、音響プロセッサ30は、専用のマルチメディアカード32以外のコンピュー
タマザーボードに直接含ませることもでき、そして別のデータは、メモリ72と
TRAMメモリ76及び78との間に転送されるときには、圧縮及び膨張されな
い。これらの同等の構成及び他の構成は、本発明の範囲内に包含されるものとす
る。
【図面の簡単な説明】
【図1A】 本発明の音声効果プロセッサを使用することのできる代表的なマルチメディア
パーソナルコンピュータシステムを示す図である。
【図1B】 図1Aに示されたマルチメディアパーソナルコンピュータシステムの内部アー
キテクチャーを簡単に示す図である。
【図2】 図1Bに示すマルチメディアボード28、即ち本発明の音声信号プロセッサを
組み込むことのできるボードを示す簡単なブロック図である。
【図3】 図2に示す音声信号プロセッサの1つの実施形態を示す簡単なブロック図であ
る。
【図4】 図3に示す本発明の音声効果プロセッサ50の簡単なブロック図である。
【図5】 図4に示す音響メモリエンジン74の1つの実施例を示すブロック図である。
【図6】 図4に示すメモリ72の1つの実施形態においてメモリスペースの割り当てを
示すブロック図である。
【図7A】 本発明による遅延線を発生するのに使用される回路アドレス機構を示す図であ
る。
【図7B】 本発明による遅延線を発生するのに使用される回路アドレス機構を示す図であ
る。
【図7C】 本発明による遅延線を発生するのに使用される回路アドレス機構を示す図であ
る。
【図7D】 本発明による遅延線を発生するのに使用される回路アドレス機構を示す図であ
る。
【図8A】 メモリ72が命令実行ユニット70とで共用されるために生じ得るTRAM読
み取り及び書き込みハザードを音響メモリエンジン74がいかに防止するかを示
す図である。
【図8B】 メモリ72が命令実行ユニット70とで共用されるために生じ得るTRAM読
み取り及び書き込みハザードを音響メモリエンジン74がいかに防止するかを示
す図である。
【図8C】 メモリ72が命令実行ユニット70とで共用されるために生じ得るTRAM読
み取り及び書き込みハザードを音響メモリエンジン74がいかに防止するかを示
す図である。
【図8D】 メモリ72が命令実行ユニット70とで共用されるために生じ得るTRAM読
み取り及び書き込みハザードを音響メモリエンジン74がいかに防止するかを示
す図である。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,ML,MR, NE,SN,TD,TG),AP(GH,GM,KE,L S,MW,SD,SZ,UG,ZW),EA(AM,AZ ,BY,KG,KZ,MD,RU,TJ,TM),AL ,AM,AT,AU,AZ,BA,BB,BG,BR, BY,CA,CH,CN,CU,CZ,DE,DK,E E,ES,FI,GB,GE,GH,GM,GW,HR ,HU,ID,IL,IS,JP,KE,KG,KP, KR,KZ,LC,LK,LR,LS,LT,LU,L V,MD,MG,MK,MN,MW,MX,NO,NZ ,PL,PT,RO,RU,SD,SE,SG,SI, SK,SL,TJ,TM,TR,TT,UA,UG,U S,UZ,VN,YU,ZW

Claims (28)

    【特許請求の範囲】
  1. 【請求項1】 (a)第1アドレススペースを含む第1メモリと、 (b)上記第1アドレススペースから読み取り及びそこに書き込むための命令
    を含む信号処理命令を処理する命令実行ユニットと、 (c)上記命令実行ユニットとは独立して動作して、上記第1アドレススペー
    スから読み取り及びそこに書き込むと共に、必要に応じて第2メモリへのアドレ
    ス演算及びメモリアクセスを実行して、信号データ記憶を行う信号メモリエンジ
    ンとを備えたことを特徴とする信号プロセッサ。
  2. 【請求項2】 上記命令実行ユニットは、第1の実行速度で命令を実行し、
    そして上記信号メモリエンジンは、上記第1の実行速度とは異なる第2の実行速
    度でオペレーションを実行する請求項1に記載の信号プロセッサ。
  3. 【請求項3】 上記第1アドレススペースは、第1メモリ位置を含み、そし
    て上記信号メモリエンジン及び命令実行ユニットは、非固定の時間的関係で上記
    第1メモリ位置に独立してアクセスすることができる請求項1に記載の信号プロ
    セッサ。
  4. 【請求項4】 上記信号メモリエンジンは、上記第1アドレススペースに記
    憶された値に基づいて演算を実行しそして上記第2メモリへのメモリアクセスを
    実行する請求項1に記載の信号プロセッサ。
  5. 【請求項5】 上記信号データ記憶は、音声データ記憶より成る請求項1に
    記載の信号プロセッサ。
  6. 【請求項6】 音響を合成する音響処理エンジンを更に含む請求項5に記載
    の信号プロセッサ。
  7. 【請求項7】 合成された音響を表わす上記音響処理エンジンからの出力は
    、上記第1メモリの第2アドレススペースに記憶され、そして上記命令実行ユニ
    ットにより処理される命令は、上記第2アドレススペースから読み取り及びそこ
    に書き込むものである請求項6に記載の信号プロセッサ。
  8. 【請求項8】 上記命令実行ユニットに結合された命令メモリを更に備え、
    この命令メモリは、上記命令実行ユニットによって実行されるべき信号処理命令
    の特定セットを含むマイクロプログラムを備えている請求項1に記載の音響プロ
    セッサ。
  9. 【請求項9】 上記命令実行ユニットは、分岐、ループ又はサブルーチンコ
    ールを伴わずに、上記マイクロプログラムに命令が現われる順序で、各サンプル
    周期に全マイクロプログラムを通る単一パスを実行する請求項8に記載の信号プ
    ロセッサ。
  10. 【請求項10】 上記命令実行ユニットは、選択された命令の実行結果を、
    その選択された命令の条件コードの値に基づいて無視することにより、命令の条
    件付実行を与える請求項9に記載の信号プロセッサ。
  11. 【請求項11】 上記命令メモリは、上記第1メモリとは異なるメモリであ
    る請求項8に記載の信号プロセッサ。
  12. 【請求項12】 上記第1メモリは、ランダムにアドレス可能なメモリであ
    る請求項1に記載の信号プロセッサ。
  13. 【請求項13】 上記ランダムにアドレス可能なメモリは、複数の個別の物
    理的RAMメモリを含む請求項12に記載の信号プロセッサ。
  14. 【請求項14】 上記第1メモリは、更に、音響入力及び音響出力を表わす
    値を記憶するための第2アドレススペースを含む請求項12に記載の信号プロセ
    ッサ。
  15. 【請求項15】 上記第1メモリは、更に、頻繁に使用する係数、変数及び
    中間値を記憶するための第3アドレススペースを含む請求項12に記載の信号プ
    ロセッサ。
  16. 【請求項16】 上記命令実行ユニットは、上記第1メモリの上記第1、第
    2及び第3アドレススペースにアクセスするための均一アドレッシング機構を使
    用する請求項15に記載の信号プロセッサ。
  17. 【請求項17】 上記音声データ記憶は、音声遅延線を実施するための円形
    アドレッシングを用いてアクセスされる請求項5に記載の信号プロセッサ。
  18. 【請求項18】 上記音声データ記憶は、テーブルベースのアドレッシング
    を用いてアクセスされる請求項5に記載の音響プロセッサ。
  19. 【請求項19】 (a)第1アドレススペース及び第2アドレススペースを
    含む第1メモリと、 (b)音響処理命令を記憶する第2メモリと、 (c)音響を合成しそしてその合成された音響を表わすデータを上記第2アド
    レススペースへ出力する音響処理エンジンと、 (d)上記第1及び第2アドレススペースから読み取り及びそこに書き込むた
    めの命令を含む、上記第2メモリに記憶された上記音響処理命令を実行するよう
    に構成された命令実行ユニットと、 (e)上記命令実行ユニットとは独立して動作して、上記第1アドレススペー
    スから読み取り及びそこに書き込むと共に、必要に応じて第2メモリへのアドレ
    ス演算及びメモリアクセスを実行して、音声データ記憶を行う音響メモリエンジ
    ンとを備えたことを特徴とする単一チップ音響プロセッサ。
  20. 【請求項20】 上記命令実行ユニットは、第1の実行速度で命令を実行し
    、そして上記音響メモリエンジンは、上記第1の実行速度とは異なる第2の実行
    速度でオペレーションを実行する請求項19に記載の音響プロセッサ。
  21. 【請求項21】 上記第1アドレススペースは第1メモリ位置を含み、そし
    て上記音響メモリエンジン及び命令実行ユニットは、非固定の時間的関係で上記
    第1メモリ位置に独立してアクセスする請求項19に記載の音響プロセッサ。
  22. 【請求項22】 (a)バスと、 (b)上記バスに通信結合されたホストプロセッサと、 (c)第2メモリと、 (d)上記バスに音響結合された音響プロセッサとを備え、この音響プロセッ
    サは、 (i)第1アドレススペースを含む第1メモリと、 (ii)上記第1アドレススペースから読み取り及びそこに書き込むための
    命令を含む音響処理命令を処理する命令実行ユニットと、 (iii)上記命令実行ユニットとは独立して動作して、上記第1アドレス
    スペースから読み取り及びそこに書き込むと共に、必要に応じて第2メモリへの
    アドレス演算及びメモリアクセスを実行して、音声データ記憶を行う音響メモリ
    エンジンと、 (iv)上記第2プロセッサを上記バスにインターフェイスするホストイン
    ターフェイスユニットとを含むことを特徴とするコンピュータ処理システム。
  23. 【請求項23】 上記ホストプロセッサは、上記第1アドレススペースから
    読み取り及びそこに書き込むことができる請求項22に記載のコンピュータ処理
    システム。
  24. 【請求項24】 音響プロセッサ内に音声遅延線を実施する方法において、 (a)上記音響プロセッサの命令実行ユニットにおいて音響処理命令を実行し
    て、遅延されるべき音響を表わすデータを第1メモリに記憶し、 (b)上記段階(a)とは独立して、上記音響プロセッサの音響メモリエンジ
    ンで上記第1メモリから上記データを検索し、そして上記データを第2メモリに
    書き込み、そして (c)上記音響プロセッサで上記第1及び第2メモリへのアドレス演算及びそ
    の後のメモリアクセスを実行して、音声遅延線を実施する、 という段階を備えたことを特徴とする方法。
  25. 【請求項25】 上記音響プロセッサにおいて命令を実行して、上記音響メ
    モリエンジンにより上記第1メモリに記憶されたデータを、上記第1メモリの異
    なる位置へ書き込んで、上記音響プロセッサから出力するという段階を更に含む
    請求項24に記載の方法。
  26. 【請求項26】 コンピュータプロセッサを動作する方法において、 (a)上記コンピュータプロセッサの音響合成エンジンで音声信号を合成し、 (b)上記音声信号を上記コンピュータプロセッサの音響効果エンジンへ出力
    し、 (c)上記出力された音声信号を、上記音響効果エンジンに結合された上記メ
    モリの第1位置に記憶し、 (d)上記音響効果エンジンの命令実行ユニットにおいて第1の音響処理命令
    を実行して、上記記憶された音声信号を上記メモリの第2位置へ転送し、この第
    2位置は、音響遅延メモリの位置へのアドレスと対にされ、そして (e)上記段階(d)とは独立して、上記段階(d)とは独立した音響メモリ
    エンジンで上記音響遅延メモリへのアドレス演算及びメモリアクセスを実行して
    音声データ記憶を実施する、 という段階を含むことを特徴とする方法。
  27. 【請求項27】 上記段階(e)は、少なくとも1つのサンプル周期中に上
    記音声信号を上記音響遅延メモリに記憶した後に、上記音声信号を上記第1メモ
    リの第3メモリ位置に書き込む段階を含む請求項26に記載の方法。
  28. 【請求項28】 上記命令実行ユニットにおいて第2の音響処理命令を実行
    して、上記音響処理エンジンにより上記第1メモリの上記第3位置に記憶された
    データを上記第1メモリの第4位置へ書き込んで上記音響効果エンジンから出力
    するという段階を更に含む請求項27に記載の方法。
JP2000501565A 1997-07-02 1998-07-02 減結合の命令実行及び音声データシーケンスを有する音声効果プロセッサ Pending JP2001509610A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US88736297A 1997-07-02 1997-07-02
US08/887,362 1997-07-02
PCT/US1998/013844 WO1999001953A1 (en) 1997-07-02 1998-07-02 Audio effects processor having decoupled instruction execution and audio data sequencing

Publications (1)

Publication Number Publication Date
JP2001509610A true JP2001509610A (ja) 2001-07-24

Family

ID=25390989

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000501565A Pending JP2001509610A (ja) 1997-07-02 1998-07-02 減結合の命令実行及び音声データシーケンスを有する音声効果プロセッサ

Country Status (4)

Country Link
EP (1) EP1010275A1 (ja)
JP (1) JP2001509610A (ja)
AU (1) AU8181198A (ja)
WO (1) WO1999001953A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008108271A (ja) * 2002-11-21 2008-05-08 Samsung Electronics Co Ltd サウンドカード、コンピュータシステム及びコンピュータシステムの制御方法
JP2012105166A (ja) * 2010-11-12 2012-05-31 Yamaha Corp プログラム
JP2015507421A (ja) * 2012-01-13 2015-03-05 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン 周波数ドメインにおける遅延を使用しながら複数のラウドスピーカのためのラウドスピーカ信号を計算する装置及び方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7219194B2 (en) 2004-06-23 2007-05-15 Creative Technology Ltd Method and circuit to implement digital delay lines

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE30331E (en) * 1973-08-10 1980-07-08 Data General Corporation Data processing system having a unique CPU and memory timing relationship and data path configuration
GB9103239D0 (en) * 1991-02-15 1991-04-03 Kemp Michael J Improvements relating to data storage techniques
US5659797A (en) * 1991-06-24 1997-08-19 U.S. Philips Corporation Sparc RISC based computer system including a single chip processor with memory management and DMA units coupled to a DRAM interface
JP2727802B2 (ja) * 1991-07-04 1998-03-18 ヤマハ株式会社 デジタル信号処理プロセッサ
KR940004434A (ko) * 1992-08-25 1994-03-15 윌리엄 이. 힐러 스마트 다이나믹 랜덤 억세스 메모리 및 그 처리방법
US5640527A (en) * 1993-07-14 1997-06-17 Dell Usa, L.P. Apparatus and method for address pipelining of dynamic random access memory utilizing transparent page address latches to reduce wait states
GB2293668B (en) * 1994-09-30 1999-09-29 Advanced Risc Mach Ltd Accessing data memories
JP2882311B2 (ja) * 1995-06-07 1999-04-12 ヤマハ株式会社 ミュージックシステム、音源および楽音合成方法
US5590301A (en) * 1995-10-06 1996-12-31 Bull Hn Information Systems Inc. Address transformation in a cluster computer system
JP2970511B2 (ja) * 1995-12-28 1999-11-02 ヤマハ株式会社 電子楽器の制御回路

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008108271A (ja) * 2002-11-21 2008-05-08 Samsung Electronics Co Ltd サウンドカード、コンピュータシステム及びコンピュータシステムの制御方法
JP2012105166A (ja) * 2010-11-12 2012-05-31 Yamaha Corp プログラム
JP2015507421A (ja) * 2012-01-13 2015-03-05 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン 周波数ドメインにおける遅延を使用しながら複数のラウドスピーカのためのラウドスピーカ信号を計算する装置及び方法
JP2016106459A (ja) * 2012-01-13 2016-06-16 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン 周波数ドメインにおける遅延を使用しながら複数のラウドスピーカのためのラウドスピーカ信号を計算する装置及び方法
US9666203B2 (en) 2012-01-13 2017-05-30 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Device and method for calculating loudspeaker signals for a plurality of loudspeakers while using a delay in the frequency domain
US10347268B2 (en) 2012-01-13 2019-07-09 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Device and method for calculating loudspeaker signals for a plurality of loudspeakers while using a delay in the frequency domain

Also Published As

Publication number Publication date
WO1999001953A1 (en) 1999-01-14
AU8181198A (en) 1999-01-25
EP1010275A1 (en) 2000-06-21

Similar Documents

Publication Publication Date Title
US5864704A (en) Multimedia processor using variable length instructions with opcode specification of source operand as result of prior instruction
US6055619A (en) Circuits, system, and methods for processing multiple data streams
JP3203701B2 (ja) コードセグメントのリンク方法とそのシステム及びコードセグメントのダイナミックリンク方法
JP3027970B2 (ja) デイジタル信号プロセツサメモリ管理ユニツトおよびその方法
US6205223B1 (en) Input data format autodetection systems and methods
US6665409B1 (en) Methods for surround sound simulation and circuits and systems using the same
US6128681A (en) Serial to parallel and parallel to serial, converter for a digital audio workstation
WO1998035301A9 (en) Circuits, system, and methods for processing multiple data streams
US5717154A (en) Computer system and method for performing wavetable music synthesis which stores wavetable data in system memory employing a high priority I/O bus request mechanism for improved audio fidelity
US5763801A (en) Computer system and method for performing wavetable music synthesis which stores wavetable data in system memory
JP3163984B2 (ja) 楽音発生装置
JP2850707B2 (ja) 楽音制御装置
JP2001509610A (ja) 減結合の命令実行及び音声データシーケンスを有する音声効果プロセッサ
JP4036233B2 (ja) 楽音発生装置および楽音発生方法、並びに該方法に係るプログラムを記憶した記憶媒体
US6032235A (en) Memory initialization circuit
WO2000014721A1 (en) Sound-producing integrated circuit with virtual cache
KR20010021575A (ko) 음 발생 장치 및 방법
US7512453B2 (en) Data processing system and method suitable for audio data synthesis
JP2869414B1 (ja) データ処理装置
JP4361628B2 (ja) オーディオ信号生成装置
JP3434713B2 (ja) レジスタ制御装置およびレジスタ制御方法
JP2766191B2 (ja) デジタル信号処理装置及び信号処理方法
JP3022186B2 (ja) デジタル信号処理装置
JP2686234B2 (ja) デジタル信号処理装置及び信号処理方法
JPH04222038A (ja) レジスタファイル