JP3203701B2 - コードセグメントのリンク方法とそのシステム及びコードセグメントのダイナミックリンク方法 - Google Patents

コードセグメントのリンク方法とそのシステム及びコードセグメントのダイナミックリンク方法

Info

Publication number
JP3203701B2
JP3203701B2 JP22887091A JP22887091A JP3203701B2 JP 3203701 B2 JP3203701 B2 JP 3203701B2 JP 22887091 A JP22887091 A JP 22887091A JP 22887091 A JP22887091 A JP 22887091A JP 3203701 B2 JP3203701 B2 JP 3203701B2
Authority
JP
Japan
Prior art keywords
buffer
code
processor
pointer
dsp
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
JP22887091A
Other languages
English (en)
Other versions
JPH04289955A (ja
Inventor
ジェイ リール ロナルド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH04289955A publication Critical patent/JPH04289955A/ja
Application granted granted Critical
Publication of JP3203701B2 publication Critical patent/JP3203701B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/16Multiplexed systems, i.e. using two or more similar devices which are alternately accessed for enqueue and dequeue operations, e.g. ping-pong buffers
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a secondary processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a secondary processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/002Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions, e.g. programs, to control the sequence thereof
    • G10H7/004Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions, e.g. programs, to control the sequence thereof with one or more auxiliary processor in addition to the main processing unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は実行可能なコンピュータ
コードと共に使用するための手法の最適化、殊に、コー
ドセグメントをダイナミックにリンクするコンピュータ
化された装置と方法に関する。
【0002】
【従来の技術】ある複合的な機能をディジタル信号プロ
セッサによって実行する場合、多数の方法で相互に接続
可能な基本構築(ビルディング)ブロック又はコードセ
グメントを活用することが一般的である。これらのコー
ドセグメントは別個のハードウェアモジュールに類似し
たものであり、上記ハードウェアモジュールはモジュー
ルの選択と構成を可能にするためにパッチコード(弦)
やスイッチング可能なハード・ワイヤード相互接続を使
用する種々のシステムにおいて以前から発見されていた
ものである。
【0003】ごく一例として、本発明はそのような限定
を意図するものではなく、多数の実施例と適用例を認め
るものではあるが、ディジタル信号プロセッサを有する
ミュージックシンセサイザを実行する際に、かかるモジ
ュールは、発振器、フィルタ、又は電圧制御増幅器の如
きハードウェアモジュールを類似のソフトウェアによっ
て実行することを包含することができよう。これらのモ
ジュールは1970年代のミュージックシンセサイザに
おいて見出されるもので、そこではそれらは必要に応じ
てまた先に述べたようにパッチコードその他の手段によ
って相互に接続されていた。
【0004】かかる複合的な機能をDSPによって実行
する場合、多くの適用例においてシステムをリアルタイ
ムに再構成することが望ましいとされる。更に、音楽に
適用した場合の一例として用いると、幾つかの異なる音
を同時に生成できるようにシンセサイザをリアルタイム
に再構成できるようなミュージックシンセサイザをDS
Pによって実施できることが望ましく、かかる機能は当
該技術分野では「多音色」と称されている。
【0005】このようにリアルタイム再構成が必要とさ
れるような機能を実施する場合(特にDSPシステムと
コードの場合、但し、本発明はそれに限定されるもので
はない)、リアルタイム構成の問題に対する明らかな一
つの解決法は一個の楽器、フィルタ等の特定の音の如き
作用を実行するために必要とされる可能なコードセグメ
ントの全体を共にグループ化することである。その機能
を実行するために必要とされるコードシーケンスはそれ
ぞれ、「呼出可能」ルーチンとされる。このようにして
所与の構成はかかるサブルーチンとそれらが出現する順
序のリストでありさえすればよい。かかる構成によれ
ば、このアプローチはモジュールを構成する上で大きな
柔軟性を考慮したものと思われる。然しながら、当該技
術分野において、実際にはかかる構成はそれぞれのかか
るコードセグメントに対して行われる必要な呼出しと復
帰を実行する際に伴う時間による大きな性能の低下を被
ることが判っている。
【0006】当該技術分野の発展によって、必要に応じ
て所要のコードモジュールが共にリンクできるような解
決策がついに現れた。このリンクは、例えば、多数のコ
ードセグメントを共に単一のコードシーケンス内に集め
るようなプログラムコンパイラによって使用される通常
のプログラミング手続であった。
【0007】然しながら、このアプローチの問題点は、
実行を必要とする種々のコードモジュールが、例えば金
管楽器と木管楽器の音の多音色の組合せを実行するため
に、まず金管楽器コードモジュールの実行に続いて音が
両方の計器類の同時的な発声として知覚されるように木
管楽器のそれをすぐに実行するためにDSPが求められ
る場合と同様に、一定時間にわたって変化するものとし
て説明されている特定の適用例に関する。更に、特定の
適用例において、上記問題は、例えば8Kオーダの比較
的小量の共用メモリを有するような共用メモリDSP双
対プロセッサシステムの性質ゆえに複雑になる。上記シ
ステムでは内部に常駐するコードをすこぶる高速で実行
しなければならない。メモリのサイズが小さいので、所
望の多音色効果とその他の効果を得るためには、DSP
によって実行するホストメモリからこの共用メモリ内へ
他のコードを周期的にロードする必要がある。然しなが
ら、このコードを非常に高速に実行しなければならない
追加的な要素のために(例えば満足のゆく合成音声を生
成しなければならない)、かかる追加的なコードモジュ
ールを、バッファ内のコードがDSPによって実行され
ている間にかかる共用メモリのバッファを更新しようと
試みているホストを回避するようにこの限定されたメモ
リ内へ如何にして差しはさむかについての問題が生じて
きた。
【0008】通常の場合、DSPがホストプロセッサに
よって共用メモリにごく一部書込まれたかかる命令を実
行するように試みることを妨げるように、ホストが追加
的なDSPプログラムモジュールを共用メモリへ書込ん
でいるこれらの期間中にDSPは活動不能になる一方の
バッファが満杯にされている間に他方のバッファが実行
中のコードを含むダブルバッファリングの「ピンポン」
形式は、データ処理技術において長い間公知であった。
その後、状況は逆転し、追加的なコードが前記他方のバ
ッファ内へロードされている間に丁度満たされたバッフ
ァ中のコードが実行される。然しながら、この従来のや
り方は、ホストが一定の場合にDSPにより実行中のバ
ッファを更新することを妨げる上で有効である一方、完
全に満足のゆくものとはいえない。例えば、もしホスト
がバッファを高速で連続して2度更新しようとした場
合、かかるダブルバッファリング手法はDSPにより実
行中のバッファのホストによって不都合な更新を妨げる
ことにはならないであろう。
【0009】
【発明が解決しようとする課題】従って、以上の、また
その他の理由から、実行可能なコードがコードセグメン
トのリンキングをリアルタイムで実行することによって
最適化されるようなコードセグメントをダイナミックに
リンクさせる方法が長い間望まれていた。
【0010】
【課題を解決するための手段及び作用】本発明によれ
ば、ホストプロセッサと、DSP双対プロセッサを有す
る音声捕獲再生アダプタと、を含むシステムが提供され
る。前記アダプタは、DSPとホストの両方からアクセ
ス可能な共用メモリを含む。DSPプログラムは、ホス
トによって共用メモリに対して周期的に書込まれ、DS
Pによって実行される。非ピンポンデュアル(二重)バ
ッファ技法が開示される。同方法によれば、交互に一方
のバッファがDSPによって実行されている間に残りの
バッファがホストにより更新されるか、又はリンクされ
る。一つの実施例において、2個のポインタ変数が使用
され、それぞれの変数は、現在どのバッファがDSPに
より実行されているか、またどれがホストにより更新さ
れたかを示す。最初、ポインタAとポインタBは共に、
初期DSPコードを含むバッファAを指示する。DSP
が構成可能なプログラムの実行を必要とする毎にポイン
タBを読取り、それをポインタAにコピーした後、ポイ
ンタAが指示するバッファへ分岐する。ホストがバッフ
ァへ再びリンクしはじめると、まずポインタBをポイン
タAに等しくセットし、ポインタAとして反対のバッフ
ァへ再びリンクした後、ポインタBをこの反対バッファ
にセットする。それによって、ホストはDSPにより現
在実行中のバッファを更新することが妨げられる。
【0011】本発明の特徴と思われる新規な特徴は請求
範囲に提示されているが、本発明自体はその他の特徴と
利点と共に、添附図面と共に以下の実施例の解説を参照
することによって最良に理解されるだろう。
【0012】
【実施例】まず、音の発生に関して本発明が適用可能な
環境を概略的に図解する。このことに関連して図1のシ
ステムのディジタル信号プロセッサ又はDSP構成部分
によって与えられる一般的作用を図2と図3、および全
体として音楽音を生成するためにこのDSPによって実
行されるコードセグメントについて次に説明する(図2
は音を創造するために一般に必要とされる典型的なコー
ドセグメント例を示し、図3はユーザが音楽分野で「多
音色」と称される異なる多数の同時音を知覚するように
実行さるべきコードセグメントのシーケンスを示す)。
その後、かかるDSPを図1のシステムの成分として含
む代表的な音声捕獲および再生アダプタを図4について
提示する。この後、一組のポインタを使用してDSPコ
ードの種々のコードセグメントが存在する本発明の新規
なリンキングシステムを、図6(A)−6(D)につい
て論ずる。
【0013】さて図1について述べると、コンピュータ
化された音声捕獲再生システム10が略示されている。
同システムは、ホストCPU22を含むコンピュータ1
2とI/Oバス20を含む。バス20に対してはキーボ
ード12、ディスプレイ14、マイクロホン16、スピ
ーカ18の如き当該分野において周知の周辺装置が多数
相互接続されている。前記システム10は、以下に説明
される音声捕獲再生アダプタ24を除いて、IBM社に
より市販のPS/2コンピュータ(PS/2はIBM社
の登録商標である)の如き任意の従来形パーソナルコン
ピュータの形をとることができる。この音声捕獲再生ア
ダプタ(ACPA)24に関しては、好ましい実施例に
おいて、コンピュータ12の一部を構成する拡張スロッ
ト内へ挿入可能なアダプタカードの形をとることになろ
う。このACPAカードはテキサスインスツルメント社
から入手可能なTMS320C25信号プロセッサの如
きディジタル信号プロセッサ26を含むことが望まし
い。更に、ACPA24はI/Oバス20を介して、D
SP26とホストCPU22によって共にアクセス可能
な共用メモリ28を含むことになろう。
【0014】ACPAカード24の目的の一つは、バス
20を介してマイクロホン16の如き音声源からアナロ
グ音声データを受取り、この音声データを「捕獲」もし
くはディジタル化し、それを記憶した後でそれを検索し
てアナログ形に逆変換しI/Oバス20上にスピーカ1
8の如き適当な音声トランスジューサ(変換器)に送出
すことである。キーボード12とディスプレイ14は、
人間のコンピュータ12とのインターフェースを容易に
する技術で周知の従来目的を満たすものであるから、こ
こでは論じない。簡単にするために、ディスクメモリ等
の当該技術分野に周知の他に必要とされるコンピュータ
構成部品は、わかりやすくするために省略している。
【0015】然し、アダプターカード24のさらに重要
な働きは、合成音を発生するコードを実行することであ
る。この動作形式では、実行可能コードはDSP26に
よりアクセスされて、実行される共用メモリ28内に記
憶され、DSP26の出力はI/Oバス20を介してス
ピーカ18へパスされて必要な場合記録される。図4の
システムに関する重要な概念(以下、詳説する)は、本
発明が実施される図1のシステム10が緊密に接続され
た双対プロセッサシステムであり、ホストCPU22と
DSP26のそれの如き多重プロセッサによりアクセス
される共用メモリが含まれるという事実に関する。図4
に示す実施例において、プロセッサの一つは当該技術に
おいて周知のディジタル信号プロセッサではあるが、本
発明はそれに限定されるものではなく、緊密に接続され
た双対プロセッシングシステムを構成するためにDSP
を含まずこの共用メモリ28にアクセスする他の形の多
重プロセッサを含む他の実施例をも認めるものであるこ
とは容易に理解されるであろう。
【0016】以下の開示より明らかとなるように、この
共用メモリ28はDSP26と共にホストCPU22に
より読取られ、CPU22により書込みされるメモリロ
ケーションを含むことに注意されたい。この共用メモリ
28は、DSP26により実行されて所望の音を生成す
るコードセグメント又はモジュールを含むことになろ
う。然しながら、この共用メモリ28の大きさが制限さ
れて、それを高速で実行する必要があるため、ホストC
PU22がかかる追加的なコードセグメントに時々ロー
ドして順次DSPが実行できることが必要である。DS
P26とCPU22は、共にこの共用メモリに対してア
クセスするから、この共用メモリ28に対して競合又は
矛盾が発生するという本発明が取組む問題が生じること
になる。このことは、共用メモリがDSP26とCPU
22の如き多重プロセッサにより同時処理環境でアクセ
スされるという事実に関連している。
【0017】さて図2について述べると、DSP26に
より構成され、且つ実行されることによって音声を発生
する典型的なコードセグメントの機能ブロックダイアグ
ラムが示されている。ついでに本文ではオーディオ分野
について論じているが、本発明はそれに限定されるもの
ではなく、種々のコードモジュールに適用されることも
理解されよう。更に、DSP26により実行される図2
のこのコードセグメント80により実行される特定作用
は、ここで論ずる特定の実施例ではこれらの作用は音声
の発生に関するものではあるが、本質的にどんな作用で
あってもよいことが理解できよう。ミュージックシンセ
サイザのDSPによるエミュレーションにおけるような
ディジタル信号による音声処理形式では、基本的構築
(ビルディング)ブロックや、発振器82、フィルタ8
4、電圧制御増幅器(VCA)86や、必要に応じて多
くの異なる音声を発生するために多数の方法で相互接続
される種々の演算回路90−94の如きサブブロックを
含むコードセグメント80の如きコードセグメントを活
用することが普通である。かかるコードセグメントは1
970年代の大型のミュージックシンセサイザで見出さ
れる別々のハードウェアモジュールと類似している。後
者の場合、パッチコード又は限定されたセットのスイッ
チ可能なハードワイヤ相互接続の何れかを使用して、必
要に応じてモジュールの選択及び構成を可能にするのが
通常であった。然しながら、ここで説明されているミュ
ージックシンセサイザの新しい製作においては、リアル
タイムに再編成して幾つかの異なる音を同時に実行する
ことが望ましく、かかる機能は多音色と称される。かか
る処理では、図2に示すようなモジュールの異なるバー
ジョンを順次実行することが必要である。図2のライン
96からライン96上部にあるような所与のモジュール
について音を発生させるために必要な機能の幾つかは、
共用メモリ28内に常駐するコードセグメント80中の
これらの機能に相当するコードを実行するDSP26に
より実施されることに注意されたい。
【0018】演算回路90−94の如きライン96以下
の追加的な機能は、ホストCPU22によって実行する
こともできる。ライン96上部に現れる機能は、発振器
82、フィルタ84、VCA86の如きサブモジュール
のコードセグメントが、ループ状の継起的形式で高速に
実行されて、知覚可能なアナログ音声出力に変換可能な
所望のディジタル出力88を生成しなければならないよ
うな高速の順次実行を必要とするものであろう。ボック
ス80に示されたコードセグメントの集合全体を貫くか
かるループは、例えば44キロヘルツの音声符号化レー
ト、即ちサンプリングレートで発生するのが普通であ
る。例えば、コードセグメント80は、サンプルが音声
源16からの音声信号について発生する毎に循環し一回
実行されることになろう。
【0019】それとは対照的に、ライン96以下の図2
の追加コードは、通常CPU22によって実行される1
00−300ヘルツの如きずっと緩慢な比率で実行され
る。セグメント80のコードがDSP26によって実行
されると同時に、CPU22によってかかる演算回路が
実行される例は、例えば振幅エンベロープを含む。コー
ドセグメント80に必要とされる高速の実行の他に、更
にDSPにより実行されるコードの量が制限されている
その他の理由は、DSP26と関連する機上共用メモリ
28の性質と関連している。即ち、かかるメモリはその
大きさが通常、コンピュータシステム12と関連する従
来メモリに関して全く制限されているためである。一例
として、かかるシステムでは8Kのみの共用メモリを有
することが一般的である。所望の多音色効果と制限され
たメモリサイズの制約を実現するために、順次実行する
図2のそれとは異なるタイプのコードモジュールを有す
る必要があるために、ホストCPU22が時々図2にあ
るような追加のコードセグメントを共用メモリ28内へ
ロードすることが必要であることはすぐに明らかになる
だろう。このことは図3を参照すれば理解されるであろ
う。
【0020】さて図3について見ると、クラリネット音
を生成するために必要な発振器、フィルタ等の如きDS
Pコードを含む図2のコードセグメント80に対応する
コードセグメント98が示されている。同様に、図3に
はコードセグメント98のそれと同様な追加的コードセ
グメント100、102と、図2のコードセグメント8
0のような楽器を発生するためのコードの全体的表示と
が示されている。図3によって、コードセグメント10
0又は102によって表されるようなトランペット又は
ホルンの如き異なる楽器を生成するために、異なる形の
発振器82、フィルタ84又はその他のサブモジュール
又はそれらの組合せが必要とされることが判るであろ
う。DSP26が矢印104によって略示されるような
これらの種々のコードセグメント100、98、102
を順次実行し、しかも十分に高速で実行することによっ
て、図2の出力88によって示されるようなACPA2
4から利用可能な音声データは所望の多音色効果を実現
することになり、この効果によって、人間はこれらコー
ドセグメント100、98、および102に対応するト
ランペット、クラリネット、ホルンの同時的音響を知覚
することができる。
【0021】共用メモリ28の大きさが制限されている
ために、共用メモリにコードセグメント100、98、
102の全てが含まれることが不可能な場合もあること
を想起されたい。これは、共用メモリ28が多分クラリ
ネット98と関連するコードセグメントを含むだけの大
きさであることを示すボックス106と矢印108によ
って示される。従って、ホストCPU22がトランペッ
ト100又はホルン102のそれの如きこれら追加的コ
ードセグメントを共用メモリ28へ適当な時期にロード
する必要があることは容易に知覚されよう。しかし、追
加コードセグメントをCPU22から共用メモリ28へ
ロードしてDSP26がリアルタイムで実行できるよう
にする能力を付与する追加的な理由は、必要な又は所望
の追加コードセグメントが、高速にリアルタイムで判断
されて、一定時間にわたって他のパラメータの関数又は
考慮すべきものとして変化するためである。同時処理環
境でCPU22がこれら追加的コードセグメントを共用
メモリ28内へロードすることができるようにする際の
一つの問題点は、この共用メモリがDSP26によって
も同時にアクセスされる点である。
【0022】従って、DSP26により共用メモリ28
のアクセスに影響を与えず、従ってこのDSP26によ
り共用メモリ28内のコードの順次実行を干渉すること
なく、CPU22が必要に応じて、適当な追加のコード
セグメントをこの共用メモリ28内へ非同期的にダウン
ロードすることができる際に、一つの問題が生ずる。簡
単な図解例として、CPU22の非同期処理のために、
CPU22がもう一つのコードセグメントを共用メモリ
28内へダウンロードしてこの発振器82の作用に関し
てDSP26によって実現さるべきコードをオーバーラ
イトしはじめる時に、DSP26は図2の発振作用82
と関連する共用メモリ28内のコードを実行中である。
【0023】図5に関して従来のダブルバッファリング
手法と図6−8に関する本発明の手法を詳説する前に、
図1の代表的な音声捕獲、生成Aアダプタ、即ちACP
A24について詳説する。前記ACPA24はコンピュ
ータシステム12内に組込んで、本発明に従ってコード
セグメント同士をリアルタイムにダイナミックリンクす
ることができる。
【0024】図4について見ると、本発明の方法と装置
を実行するために活用可能なディジタル信号プロセッサ
26を含む音声アダプタのブロック図が描かれている。
上記の如く、この音声アダプタは市販のIBM音声捕獲
再生アダプタ(ACPA)を活用することによって簡単
に実施することができる。かかる構成によって、テキサ
スインスツルメントTMS320C25又はその他の適
当なディジタル信号プロセッサを活用することによっ
て、ディジタル信号プロセッサ26が提供される。
【0025】図示されているように、プロセッサ22と
ディジタル信号プロセッサ26との間のインターフェー
スはI/Oバス30である。パーソナルコンピュータ分
野の当業者によって容易に入手且つ理解できるマイクロ
チャネル又はPCI/Oバスを活用することによって、
I/Oバス30が実施できることは当業者によって理解
できよう。I/Oバス30を活用することによって、プ
ロセッサ22はホストコマンドレジスタ34にアクセス
することができる。ホストコマンドレジスタ32とホス
トステータスレジスタ34は、コマンドを発し、図4内
に示されている音声アダプタの状態をモニタするため
に、プロセッサ22によって使用される。
【0026】プロセッサ22はまた、I/Oバス30を
活用してアドレスハイバイトラッチカウンタにアクセス
し、プロセッサ22により活用されて、図4に示された
音声アダプタ内の共用メモリ48(図1に共用メモリ2
8に示す)にアクセスするローバイトラッチカウンタに
アドレス指定することができる。共用メモリ48は8K
×16の速さのスタティックRAMであることが好まし
く、これはプロセッサ22とディジタル信号プロセッサ
26とが共にそのメモリにアクセスできるという意味で
「共用」される。本文中に詳論されているように、メモ
リアービター回路を活用して、プロセッサ22とディジ
タル信号プロセッサ26とが同時に共用メモリ28にア
クセスするのを妨げる。
【0027】図示のように、ディジタル信号プロセッサ
26は、ディジタル信号プロセッサ制御レジスタ36
と、ディジタル信号プロセッサステータスレジスタ38
とを含むことが望ましく、これらはホストコマンドレジ
スタ32とホストステータスレジスタ34と同様に、デ
ィジタル信号プロセッサ26がコマンドを発し、音声ア
ダプタ内の種々のデバイスの状態をモニタすることを可
能にするために活用される。
【0028】また、プロセッサ22はデータハイバイト
双方向ラッチ44とデータローバイト双方向ラッチ46
とを当該技術分野の周知の方法で活用することによっ
て、I/Oバス30を介してデータを共用メモリ38間
で結合するために使用することもできる。
【0029】また、図4の音声アダプタ内にはサンプル
メモリ50も示されている。サンプルメモリ50は、2
K×16スタティックRAMで、プレーされるサンプル
を出したりディジタル音声のサンプルを入れたりするた
めに、ディジタル信号プロセッサ26によって活用され
るようにすることが望ましい。サンプルメモリ50は、
同時的に出力するために圧縮解除されたディジタル音声
サンプルとMIDIの合成音楽サンプルを記憶するため
の一時バッファとして活用することができる。当業者に
は、ディジタル音声データを圧縮解除し、MIDIファ
イル装置から合成音楽をつくりだすことによって、所定
量の各データタイプをサンプルメモリ50内に記憶さ
れ、これらの2つの出力を必要に応じて結合するのは容
易であることが理解されるだろう。
【0030】また、制御ロジック56は図4の音声アダ
プタ内に示されている。制御ロジック56は他のタスク
の中でも、ディジタル信号プロセッサ26の割込み要求
後に、プロセッサ22に対する割込みを発し、入力選択
スイッチを制御し、リード、ライトおよびイネーブルス
トローブを図示の音声アダプタ内の種々のラッチとメモ
リデバイスに発する論理ブロックであることが望まし
い。制御ロジック56は、これらのタスクを制御バス5
8を活用することによって達成することが望ましい。
【0031】アドレスバス60は、図解例ではシステム
内の種々のサンプルとファイルのアドレスをシステム内
の適当なデバイスの間に接続できるように活用されるの
が望ましい。また、データバス62は、図の音声アダプ
タ内の種々のデバイス間でデータを接続するために使用
される。
【0032】前述のように、制御ロジック56は、メモ
リアービターロジック64と66とを使用し、共用メモ
リ48とサンプルメモリ50とに対するアクセスを制御
して、プロセッサ22とディジタル信号プロセッサ26
とがどのメモリにも同時にアクセスしないことが確証さ
れる。この手法は、当該技術分野では周知であり、メモ
リデッドロックやその他のかかる兆候が起きないように
するために必要とされる。
【0033】最後に、D/A変換器52は圧縮解除され
たディジタル音声又はディジタルMIDI合成音楽信号
を適当なアナログ信号に変換するために活用される。D
/A変換器52の出力は、その後アナログ出力部分68
に接続され、同出力部分68は適当な濾波増幅回路を含
むことが望ましい。同様にして、図4内に示す音声アダ
プタを活用して、それらの信号をアナログ入力部分70
に、またその後A/D変換器54に結合することによっ
て、音声信号をディジタル化して記憶する。当業者であ
れば、かかるデバイスがその信号と関連するディジタル
値をディジタル化し、記憶することによってアナログ音
声信号を捕獲し記憶することができることを理解するだ
ろう。
【0034】以上、音声アダプタカードについて述べた
ので、以下では当該技術分野で周知の従来のダブルバッ
ファリング手法が、何故図5について提示された問題を
解決する上で有効的でないのかについて、簡単に説明す
る。そこで示されているように、残りのバッファが読取
られている間に一定のバッファに書込むというダブルバ
ッファリングの伝統的な「ピンポン」方法は、開示され
た構成での、コードセグメントをリアルタイムでダイナ
ミックにリンクする際に作動しないであろう。図5に示
すように、コンピュータ科学技術での従来手法によれ
ば、プロセッサシステムがスムーズにコードを実行しつ
づけている間にデータやコードが検索され、記憶される
必要がある場合に、2つのバッファ112と114とを
一つのメモリシステム110内に設けることは長いこと
知られてきた。更に、問題のアドレスロケーションを指
示することがその働きであるポインタ116、118、
120のようなポインタを設けることが普通である。か
くして、例えばポインタ116は実行中のバッファ11
2内のコードを指示することができよう。ホスト22が
左バッファ112内に常駐するコードによって提供され
ないその他の機能を実行する必要がある場合には、左バ
ッファ112内のコードを実行中にホストからの適切な
要求に従って、ホストは右バッファ114を満たしはじ
める。バッファ114が満杯になると、現在ポインタは
図の如くポインタ118により変更され、例えば、ポイ
ンタが実行さるべき新しい機能を含む右バッファ114
内のコードのスタートアドレスロケーションを提供する
コードを介して次のループで右を指示することになろ
う。その直後、現在右バッファ114内に含まれる新た
なコードを介してループし、同コードを実行することに
よって実行が開始されることになろう。次にホストがそ
の時右バッファ114内に含まれないコードによって提
供される更にその他の機能を必要とする時、先に述べた
工程と関連する方法で、ホストは左バッファ112を満
たしはじめることになろう。図5の中央図と同様な方法
で、ひとたびこれらの追加的機能を実行するコードで左
バッファ112を満たし終ると、ポインタは再びポイン
タ120により略示されるように変化し、左バッファ1
12内へロードされたばかりの新たなコードの開始アド
レスに対応するポインタ120により指示されたアドレ
ス空間で開始されるコードを、ホストプロセッサが実行
することを指示することになろう。
【0035】然しながら、ホストCPU22とDSP2
6とを共に含む本発明の同時処理環境に関して、上記の
従来バッファリングには一つの問題が存在する。第2の
新たなモジュールについてホストから第2の要求が第1
の要求に続いてすぐに受取られた時、即ちホストがバッ
ファを続いてすぐに2度更新する要求を受取った時、D
SP26は満たされた左バッファ112から右バッファ
114中のコードを実行中であるかもしれない。かかる
場合には、ホストはその新たな機能に対するコードを左
バッファ112内に書込みはじめ、左バッファ112内
の予期しないコード上に上書きすることになろう。以上
の理由から、本発明の同時処理環境では、この種の事態
をアドレス指定する必要が生ずる。かくして、図7に示
す如く、本発明は現在ポインタ140が現在実行中のバ
ッファ112中のコードを指示し、新たなポインタ14
2がバッファ114中の新たなコードを指示しているよ
うな上記状況に対して部分的にアドレス指定している。
プロセッサがバッファ112のコードを残しバッファ1
14の新たなコードを実行しはじめた後に(恐らくバッ
ファ112の実行の最中に)、バッファ112を満たす
ことを要求する次の要求によって、これら新たな機能を
伴うコードはバッファ112内でこれから実行さるべき
コード上に上書きされることになる。
【0036】図6(A)−6(D)に関して本発明の作
用を解説する前に、当該分野で周知の「ダイナミックリ
ンキング」の形式を、OS/2オペレーティングシステ
ムの如きオペレーティングシステムを使用する単一のプ
ロセッサシステムに基づいて定義しておく。これらのシ
ステムでは、コードを実行するプロセッサは、コードを
ロード中のプロセッサでもあり、従って、バッファ11
2と114内のこれら2組のコード間に競合が生ずる可
能性はない。単一のプロセッサと単一のスレッドを伴う
かかるシステムでは、ホストが新たなサブルーチンに分
岐する時間に達すると、当該分野で周知のオーバーレイ
ダイナミックリンクマネージャ等に対して呼出しが行わ
れ、コードモジュールをロードし、実行した後、呼出し
側に復帰する。これは、本質的に一つのアドレスが取得
され、分岐された後で呼出し側に対して復帰するサブル
ーチン呼出しにほかならない。
【0037】かかるシステムでは、コードモジュール間
のリンクは上記のように実行時にダイナミックに行われ
るけれども、単一のプロセッサがコードを実行し、且つ
ロードしているために、ロードされ、且つ実行されるモ
ジュールがたとい必要に応じて時間と共にダイナミック
に変化しても、単一プロセッサシステムでは、コードモ
ジュールの実行に競合が生ずる可能性はない。これは、
本発明の同時処理システムと対照的であり、後者ではホ
ストCPU22とDSP26とが共に同時にコードを実
行し、ACPA24の共用メモリ28にアクセスする。
【0038】さて図6について、本発明で使用されてい
るポインタシステムを詳細に説明する。上記システムに
よってコードセグメントのリアルタイムのダイナミック
リンキングが実行される。図6(A)−6(D)のシー
ケンスに示されるように、最初の図6(A)はACPA
24が左バッファ112内に常駐するコードを実行する
シーケンスの始めを示すためのものである。この段階
で、ACPA24はこのコード内をループする毎に、バ
ッファ112内に常駐するコードが実行されているアド
レス空間を指示する現在ポインタ120を取得する。ホ
ストCPU22がCPUと関連するコードを非同期的に
実行するのはいうまでもない。CPU22がそのコード
を実行し、バッファ112内のコードによってDSP2
6により現在実行中のもの以外の機能を実行する必要が
あると判断する時(即ち、ホストがバッファ112内の
コードの結果として現在実行中のものとは異なるDSP
によって、図2中のような一定のモジュールを実行する
必要を判断した時)、ホストはまずこのアドレス(即
ち、現在ポインタ120が指示されるアドレス)のコピ
ーを作成することになる。ホストは、ポインタのロケー
ションがDSP26とホストCPU22とによって共に
共用される公知の共通アドレスにある、例えば、これが
緊密に結合された同時処理システムであるために、現在
ポインタ120と関連するアドレスのかかるコピーを作
成することができるのはいうまでもない。
【0039】また、図6(A)について、「次の」ポイ
ンタ122はメモリシステム110内に設けられること
が理解されよう。この「次の」ポインタは、所与のバッ
ファ112又は114内のコードを介したループを終了
した時に、次の、即ち、システム110の上部分岐点を
ループする時に、1モジュールのコードの実行を開始す
べき正確なアドレスロケーションをDSPに指示するた
めのポインタである。かくして、図6(A)に示される
ような場合、DSPがバッファ112に含まれるモジュ
ールのコードを実行中である時に、次のポインタ122
は、その時バッファ112内で実行が継続され、トップ
に戻ってループするならば、左バッファ112が実行さ
れ続けるものであるということを示す左側に指示するこ
とになろう。
【0040】それ自身のコードを非同期的に実行する
際、ホストが、この次のモジュールはDSPが実行を開
始するために必要であると判断した場合、まず、ポイン
タ120Cをポインタ133Nにコピーする(図6
(B))。その後、ホストは新たなモジュールで右バッ
ファ114を満たしはじめることになろう。ホストが新
たな機能又はモジュールのコードでこのバッファ114
を満たしつづける限り、図6(B)の現在ポインタ12
0Cとそのコピーの133Nは、左バッファ112のは
じめのアドレスロケーションを指示しつづけることによ
って、左バッファ112内に含まれたこのコードを実行
するようにDSP26に通知することになるのは理解さ
れる。いいかえれば、この現在ポインタ120C又はポ
インタ133Nは、DSP26がまだかかるコードを実
行中である、即ち、現在ポインタが現在実行され、且つ
ループ中のDSPコードのはじめにアドレス指定してい
るので、ホストCPU22にコードを左バッファ112
内へ書込まないように知らせる働きをする。
【0041】図6(D)について更に続けると、バッフ
ァ114が全体としてホストによって満たされた時、ポ
インタ133Nは逆転する(図6(C)と図6(D)に
ポインタ132Nとして示す)。その結果、DSP26
がバッファ112内の残りのコードを最終に実行して、
システム110の上部によって表されるようなポインタ
と関連する分岐点に達すると、今度は、DSP26によ
り読取られた次のポインタ132N(図6(C))は右
バッファ114内のコードを指示することになろう。D
SPはこのポインタ132Nを現在ポインタ134Cに
コピーする。従って、この現在ポインタ134Cは、今
度は、DSP26が右バッファ114内に含まれている
モジュールのコードを現在実行し、且つループしている
ため、ホストCPU32に対して更にその他の機能又は
モジュールのコードを右バッファ114内へ書込まない
ように通知している。以上により、現在ポインタは、D
SP26がそれが一個のバッファの内のコードをループ
する最後まで分岐したバッファのアドレスを指示するこ
とが理解できよう。それとは対照的に、次のポインタ
は、DSP26が次にシステム110を介してループす
る時にコードを実行するためのバッファのアドレスを指
示する。
【0042】以上のことは、図8を参照することによっ
て明らかとなり、同図は本質的に、緊密に結合された同
時処理システム中でコードセグメントをリアルタイムに
ダイナミックにリンクするための後述される本発明のシ
ステムによって実行されているステップのフローダイア
グラムを示している。このフローダイアグラムとそれに
伴う後述の説明によると、これらのステップを本発明に
従って実行するための適切なコードを生成することがで
きる。第1のブロック150は、DSP26がバッファ
112内に常駐する第1のDSPモジュールを実行中で
あるプロセスのスタート地点を任意に表わすためのもの
である。ブロック152に示されたところで、図6
(A)の現在ポインタ120は、この左バッファ112
内に常駐するDSPコードの開始アドレスロケーション
を指示する。ブロック154では更に、図6(A)の次
のポインタ122Nもこの左バッファ112を指示して
いることが示されている。ホストCPU22がそれ自身
のコードを実行している非同期システムのある地点で、
ホストプログラムは、現在実行中のバッファ112内に
現在存在するもの以外に必要とされる第2のDSPモジ
ュールの実行を指示することになろう。これは図8のブ
ロック156内に表されている。
【0043】この点において、左バッファ112を指示
する現在ポインタ120Cを読取ることによって、ホス
トはDSPがバッファ112内のコードを現在実行しつ
づけることを知っている。ブロック160において、ホ
ストは、現在ポインタ120Cをポインタ133Nとし
て次のポインタへコピーする。前記ポインタ133Nも
また、バッファ112を指示し、その後、バッファ11
4を次のモジュールのコード(ブロック158で示す)
で満たしはじめる。
【0044】かくしてバッファ114が図8のブロック
164で示されるように満たされると、図6の次のポイ
ンタ133Nは図6(C)に示されるように逆転され、
今度は新たな次のポインタ132Nとなり、同ポインタ
132Nは今度はかくして完全に満たされた右バッファ
114を指示する。これは先に述べた如く、次回にDS
Pがバッファ112内のコードの実行を一巡しはじめん
としていること、今や右バッファ114が満たされ(ポ
インタ132Nとして逆転されたポインタが今や右バッ
ファ114を指示している)るために、DSP26がバ
ッファ内のコードの次のサイクル中にこのバッファ11
4内のコードの実行を開始できること、とを示すもので
ある。このことは、ブロック166とブロック167で
表される。
【0045】最後に、ブロック168は、DSPにより
実行さるべき更にもう一つの新たなモジュールを次に要
求した時に、ミラー像又はここに述べたばかりのプロセ
スの逆が続けられ、DSPがバッファ114のコードを
実行中に、ホストがバッファ112を再度満たしはじめ
るということを示す。バッファ112が再度完全に満た
されて、DSPがバッファ114内の全コードの実行を
完了すると、DSPは先に述べた方法でポインタが逆転
することによって、バッファ112内のこのコードを再
び実行しはじめることになろう。
【0046】本発明をその特定の実施例について示し、
且つ述べてきたが、前記及び他の形式と詳細における変
化は本発明の精神と範囲から逸脱することなく、ここに
実施されるものであることは、当業者によって理解され
るだろう。
【0047】
【発明の効果】本発明は以上のように構成されているの
で、コードセグメントのリンキングをリアルタイムで実
行することによって最適化されるようなコードセグメン
トをダイナミックにリンクすることが可能である。
【図面の簡単な説明】
【図1】本発明のリンキングシステムを使用するコンピ
ュータ化された音声捕獲、再生アダプタシステムのハイ
レベルな概略図である。
【図2】代表的なモジュールとサブモジュールビルディ
ングブロックを示す図1のシステムによって音声を発生
する代表的なコンピュータコードのブロック図である。
【図3】図1のコンピュータ化された音響システムのデ
ィジタル信号プロセッサシステムにより実行されるよう
に意図された図2に示すものの如き多重モジュールを含
むコードセグメントの概略図である。
【図4】図1のシステムで使用される音声捕獲、再生ア
ダプターカードの機能ブロック図である。
【図5】コードモジュールの実行を処理し、実行のため
の追加モジュールを同時にロードする従来技術において
公知のダブルバッファリング手法の例解図である。
【図6】(A)−(D)は本発明のリンキングシステム
中に使用されるポインタのシーケンシャル状態を示す概
略図である。
【図7】本発明のリンキングシステムの特徴を使用しな
い場合に、図1のシステムの誤作動をひきおこすリンキ
ングシステムの動作中のポインタの特殊状態の例解図で
ある。
【図8】本発明に従って動作する時の図1のシステムの
種々の状態を図6のポインタに関連させて示すフローダ
イアグラムである。
【符号の説明】
22 ホストCPU 24 ACPA 26 DSP 20 I/Oバス 12 キーボード 16 マイクロホン 18 スピーカ 14 ディスプレイ 84 フィルタ 82 OSC 86 VCA 90、92、94 演算回路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ロナルド ジェイ リール アメリカ合衆国78613、テキサス州セダ ー パーク、ビーチナット コウヴ 1815 (56)参考文献 特開 昭63−217460(JP,A) 特開 昭57−191764(JP,A)

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】2つのバッファを含む共用メモリにアクセ
    スする第1のプロセッサ及び第2のプロセッサを有し、
    前記第1のプロセッサが一方のバッファにあるコードモ
    ジュールを実行している間に前記第2のプロセッサが他
    方のバッファにコードモジュールをロードするマルチプ
    ロセッサコンピュータシステムにおいて、前記共用メモ
    リでのコードセグメントのリンク方法であって、 前記第1のプロセッサがコードモジュールを実行してい
    るときに、第1のポインタ変数を、その実行中のコード
    モジュールを含む一方のバッファに対応するアドレスロ
    ケーションにセットするステップと、他方のバッファの更新に先立って、前記第1のポインタ
    変数を第2のポインタ変数にコピーするステップと、 前記 第2のポインタ変数を、前記第2のプロセッサが他
    方のバッファを更新した後に、該他方のバッファに対応
    するアドレスロケーションにセットするステップと、前記第1のプロセッサが前記コードモジュールの実行を
    終えて分岐点に達したときに、前記第2のポインタ変数
    を読み取って前記第1のポインタ変数にコピーし、前記
    第1のポインタ変数により示されるバッファ内のコード
    モジュールを実行する ステップと、 を含むコードセグメントのリンク方法。
  2. 【請求項2】コードセグメントをリアルタイムでダイナ
    ミックにリンクするシステムであって、 第1のプロセッサと、 第2のプロセッサと、 第1のバッファ及び第2のバッファを含み、前記第1の
    プロセッサ及び前記第2のプロセッサによってアクセス
    される共用メモリと、 前記第1のプロセッサが実行可能なコードを、前記第2
    のプロセッサによって前記第1のバッファ及び前記第2
    のバッファで交互に更新する手段とを有し、 前記更新する手段は、 前記第1のプロセッサが一方のバッファにあるコードセ
    グメントを実行しているときに、該一方のバッファに対
    応するアドレスロケーションにセットされる第1のポイ
    ンタと、他方のバッファの更新に先立って前記第1のポインタの
    内容をコピーされ、 前記第2のプロセッサが前記他方の
    バッファを更新した後に、該他方のバッファに対応する
    アドレスロケーションにセットされる第2のポインタ
    と、前記第1のプロセッサが前記コードセグメントの実行を
    終えて分岐点に達したときに、前記第2のポインタを読
    み取って前記第1のポインタにコピーし、前記第1のポ
    インタにより示されるバッファ内のコードセグメント
    前記第1のプロセッサに実行させる手段と、 を有するシステム。
JP22887091A 1990-11-01 1991-08-14 コードセグメントのリンク方法とそのシステム及びコードセグメントのダイナミックリンク方法 Expired - Fee Related JP3203701B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US60812690A 1990-11-01 1990-11-01
US608126 1990-11-01

Publications (2)

Publication Number Publication Date
JPH04289955A JPH04289955A (ja) 1992-10-14
JP3203701B2 true JP3203701B2 (ja) 2001-08-27

Family

ID=24435152

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22887091A Expired - Fee Related JP3203701B2 (ja) 1990-11-01 1991-08-14 コードセグメントのリンク方法とそのシステム及びコードセグメントのダイナミックリンク方法

Country Status (10)

Country Link
US (1) US5539896A (ja)
EP (1) EP0483970A1 (ja)
JP (1) JP3203701B2 (ja)
CZ (1) CZ9300787A3 (ja)
HU (1) HU215862B (ja)
IL (1) IL99744A (ja)
PL (1) PL166975B1 (ja)
SK (1) SK41393A3 (ja)
WO (1) WO1992008192A1 (ja)
ZA (1) ZA918427B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6606196B2 (en) 2000-08-29 2003-08-12 Hoya Corporation Optical element having antireflection film

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5253275A (en) 1991-01-07 1993-10-12 H. Lee Browne Audio and video transmission and receiving system
AU4219693A (en) * 1992-09-30 1994-04-14 Apple Computer, Inc. Inter-task buffer and connections
GB2272085A (en) * 1992-10-30 1994-05-04 Tao Systems Ltd Data processing system and operating system.
US5949891A (en) * 1993-11-24 1999-09-07 Intel Corporation Filtering audio signals from a combined microphone/speaker earpiece
JP3171361B2 (ja) * 1994-05-06 2001-05-28 ヤマハ株式会社 Dspプログラミング装置
US6163793A (en) * 1994-08-05 2000-12-19 Intel Corporation Method and apparatus for using a driver program executing on a host processor to control the execution of code on an auxiliary processor
US5619731A (en) * 1994-09-23 1997-04-08 Ardent Teleproductions, Inc. Interactive music CD and data
US5685005A (en) * 1994-10-04 1997-11-04 Analog Devices, Inc. Digital signal processor configured for multiprocessing
US5671446A (en) * 1995-03-16 1997-09-23 Apple Computer, Inc. Method and apparatus for atomically accessing a queue in a memory structure where LIFO is converted to FIFO
US5696990A (en) * 1995-05-15 1997-12-09 Nvidia Corporation Method and apparatus for providing improved flow control for input/output operations in a computer system having a FIFO circuit and an overflow storage area
GB2301003B (en) * 1995-05-19 2000-03-01 Sony Uk Ltd Audio mixing console
US6078945A (en) * 1995-06-21 2000-06-20 Tao Group Limited Operating system for use with computer networks incorporating two or more data processors linked together for parallel processing and incorporating improved dynamic load-sharing techniques
US5799314A (en) * 1995-06-30 1998-08-25 Sun Microsystems, Inc. System and method of controlling mapping of data buffers for heterogenous programs in digital computer system
US5909702A (en) * 1995-09-29 1999-06-01 Intel Corporation Memory address translations for programs code execution/relocation
JP3087638B2 (ja) * 1995-11-30 2000-09-11 ヤマハ株式会社 音楽情報処理システム
US5819067A (en) * 1996-02-23 1998-10-06 Advanced Micro Devices, Inc. Computer system configured to translate a computer program into a second computer program prior to executing the computer program
US6031916A (en) * 1996-02-28 2000-02-29 Kabushiki Kaisha Kawai Gakki Seisakusho Sound effect adding device using DSP
US5763801A (en) * 1996-03-25 1998-06-09 Advanced Micro Devices, Inc. Computer system and method for performing wavetable music synthesis which stores wavetable data in system memory
US5809342A (en) * 1996-03-25 1998-09-15 Advanced Micro Devices, Inc. Computer system and method for generating delay-based audio effects in a wavetable music synthesizer which stores wavetable data in system memory
US5890013A (en) * 1996-09-30 1999-03-30 Intel Corporation Paged memory architecture for a single chip multi-processor with physical memory pages that are swapped without latency
JP3747584B2 (ja) * 1996-10-18 2006-02-22 ヤマハ株式会社 端末装置の機能拡張方法及びホストコンピュータ並びに端末装置
US6453409B1 (en) * 1996-11-07 2002-09-17 Yamaha Corporation Digital signal processing system
WO2000000887A1 (en) * 1998-06-30 2000-01-06 Intergraph Corporation Method and apparatus for transporting information to a graphic accelerator card
US6308253B1 (en) * 1999-03-31 2001-10-23 Sony Corporation RISC CPU instructions particularly suited for decoding digital signal processing applications
FR2809508B1 (fr) * 2000-05-23 2002-08-30 Thomson Csf Systeme et methode de gestion d'une architecture multi-ressources
JP2002207708A (ja) * 2001-01-12 2002-07-26 Mitsubishi Electric Corp 演算装置
EP1293895A3 (en) * 2001-09-14 2006-01-25 Ricoh Company, Ltd. Program execution apparatus, method for creating an executable program and address solution method
US7174548B2 (en) * 2001-10-15 2007-02-06 Intel Corporation Managing firmware download
US7546451B1 (en) * 2002-06-19 2009-06-09 Finisar Corporation Continuously providing instructions to a programmable device
US6996699B2 (en) * 2002-09-10 2006-02-07 Microsoft Corporation Secondary processor execution kernel framework
JP2006505845A (ja) * 2002-11-05 2006-02-16 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 周期的アドレスパターンに応答してアドレスをリダイレクトするデータ処理装置
JP4542308B2 (ja) * 2002-12-16 2010-09-15 株式会社ソニー・コンピュータエンタテインメント 信号処理用デバイス及び情報処理機器
JP4837247B2 (ja) * 2003-09-24 2011-12-14 パナソニック株式会社 プロセッサ
US7487498B2 (en) * 2003-11-12 2009-02-03 Microsoft Corporation Strategy for referencing code resources
US7266804B2 (en) 2004-02-20 2007-09-04 Microsoft Corporation Strategy for selectively making non-public resources of one assembly visible to another
US7610200B2 (en) * 2004-08-30 2009-10-27 Lsi Corporation System and method for controlling sound data
US8489783B2 (en) * 2007-01-03 2013-07-16 Apple Inc. Multi buffer asynchronous scheme for processing incoming information
JP5099133B2 (ja) * 2007-06-20 2012-12-12 富士通株式会社 処理装置
US8041848B2 (en) * 2008-08-04 2011-10-18 Apple Inc. Media processing method and device
US9250858B2 (en) * 2013-02-20 2016-02-02 International Business Machines Corporation Dual-buffer serialization and consumption of variable-length data records produced by multiple parallel threads
EP2840503A1 (de) * 2013-08-22 2015-02-25 Continental Automotive GmbH Verfahren zum Betreiben eines Pufferspeichers einer Datenverarbeitungsanlage und Datenverarbeitungsanlage
US20150363437A1 (en) * 2014-06-17 2015-12-17 Ims Health Incorporated Data collection and cleaning at source
US11716264B2 (en) * 2018-08-13 2023-08-01 Cisco Technology, Inc. In situ triggered function as a service within a service mesh

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4298954A (en) * 1979-04-30 1981-11-03 International Business Machines Corporation Alternating data buffers when one buffer is empty and another buffer is variably full of data
US4333143A (en) * 1979-11-19 1982-06-01 Texas Instruments Input process sequence controller
JPS57191764A (en) * 1981-05-21 1982-11-25 Nec Corp Storage device
US4562436A (en) * 1982-07-16 1985-12-31 At&T Bell Laboratories Data communication network
US4897780A (en) * 1984-10-09 1990-01-30 Wang Laboratories, Inc. Document manager system for allocating storage locations and generating corresponding control blocks for active documents in response to requests from active tasks
US4658351A (en) * 1984-10-09 1987-04-14 Wang Laboratories, Inc. Task control means for a multi-tasking data processing system
US4667286A (en) * 1984-12-20 1987-05-19 Advanced Micro Devices, Inc. Method and apparatus for transferring data between a disk and a central processing unit
US4841437A (en) * 1985-09-18 1989-06-20 Lp Com System architecture for a test apparatus having primary and dependent processors
US4694426A (en) * 1985-12-20 1987-09-15 Ncr Corporation Asynchronous FIFO status circuit
US5133062A (en) * 1986-03-06 1992-07-21 Advanced Micro Devices, Inc. RAM buffer controller for providing simulated first-in-first-out (FIFO) buffers in a random access memory
DE3610155A1 (de) * 1986-03-26 1987-10-08 Joachim Bauer Mehrprozessorsystem fuer paralleles schreiben und lesen von informationen
US4791629A (en) * 1986-06-02 1988-12-13 Ibm Corporation Communications switching system
US4791489A (en) * 1987-03-06 1988-12-13 Michael Polatnick General purpose video special effects system and method therefor
US5163132A (en) * 1987-09-24 1992-11-10 Ncr Corporation Integrated controller using alternately filled and emptied buffers for controlling bi-directional data transfer between a processor and a data storage device
US4991169A (en) * 1988-08-02 1991-02-05 International Business Machines Corporation Real-time digital signal processing relative to multiple digital communication channels
US5247678A (en) * 1989-10-12 1993-09-21 Texas Instruments Incorporated Load time linker for software used with a multiprocessor system
US5167028A (en) * 1989-11-13 1992-11-24 Lucid Corporation System for controlling task operation of slave processor by switching access to shared memory banks by master processor
JPH03180933A (ja) * 1989-12-08 1991-08-06 Matsushita Electric Ind Co Ltd スタックメモリ
US5150456A (en) * 1990-08-06 1992-09-22 Elite High Technology, Inc. Graphic image printing system and method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6606196B2 (en) 2000-08-29 2003-08-12 Hoya Corporation Optical element having antireflection film

Also Published As

Publication number Publication date
PL166975B1 (pl) 1995-07-31
EP0483970A1 (en) 1992-05-06
HU215862B (hu) 1999-03-29
IL99744A (en) 1995-05-26
HU9301263D0 (en) 1993-08-30
CZ9300787A3 (cs) 2002-07-17
SK41393A3 (en) 1993-07-07
WO1992008192A1 (en) 1992-05-14
ZA918427B (en) 1992-08-26
US5539896A (en) 1996-07-23
JPH04289955A (ja) 1992-10-14
HUT65534A (en) 1994-06-28

Similar Documents

Publication Publication Date Title
JP3203701B2 (ja) コードセグメントのリンク方法とそのシステム及びコードセグメントのダイナミックリンク方法
Pu et al. The synthesis kernel
KR930008686B1 (ko) 정보 처리장치
JPS62208146A (ja) デイジタル信号プロセツサメモリ管理ユニツトおよびその方法
Dannenberg The implementation of nyquist, a sound synthesis language
US5852729A (en) Code segment replacement apparatus and real time signal processor using same
US5657476A (en) Signal processor with delay line management logic
JPH0713561A (ja) 楽音制御装置
JP2019028200A (ja) 楽音発生装置、方法、プログラム、及び電子楽器
Cochard et al. Programming FPGA platforms for real-time audio signal processing in C++
JP2605903B2 (ja) 楽音合成装置
JP2001509610A (ja) 減結合の命令実行及び音声データシーケンスを有する音声効果プロセッサ
Byun et al. Digital Audio Effect System‐on‐a‐Chip Based on Embedded DSP Core
Savell The EMU10K1 digital audio processor
US6545210B2 (en) Musical sound generator
JPH07168562A (ja) ディレイラインマネージメントロジックを有する信号処理装置及びそれを用いた楽音処理装置
Dannenberg Nyquist reference manual
US6636938B1 (en) Sound generator
Black et al. Flite: a small, fast speech synthesis engine
JP4102930B2 (ja) 音波形合成装置
JPH0713861A (ja) Cpuインタフェース装置
JPH08272612A (ja) パイプライン計算機シミュレータ
Jaffe et al. Sound and Music on the NeXT Computer™
JP3180351B2 (ja) エフェクト装置
JPH06110453A (ja) 効果付加装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees