JPH06308966A - 動的ボイス割当をおこなうオープンアーキテクチャー構成のミュージックシンセサイザー - Google Patents

動的ボイス割当をおこなうオープンアーキテクチャー構成のミュージックシンセサイザー

Info

Publication number
JPH06308966A
JPH06308966A JP6050956A JP5095694A JPH06308966A JP H06308966 A JPH06308966 A JP H06308966A JP 6050956 A JP6050956 A JP 6050956A JP 5095694 A JP5095694 A JP 5095694A JP H06308966 A JPH06308966 A JP H06308966A
Authority
JP
Japan
Prior art keywords
memory
voice
msp
program
programs
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.)
Granted
Application number
JP6050956A
Other languages
English (en)
Other versions
JP2838645B2 (ja
Inventor
Jiyon Rinberisu Arekisandaa
ジョン リンベリス アレキサンダー
Watoson Buraian Jiyosefu
ワトソン ブライアン ジョセフ
Efu Otsutonii Jiyoannu
エフ. オットニー ジョアンヌ
Sukotsuto Otsukonneru Suteiibun
スコット オッコンネル スティーヴン
Kai Buraian Jiyunia Marukasu
カイ ブライアン ジュニア マルカス
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.)
KORUGU KK
Korg Inc
Original Assignee
KORUGU KK
Korg Inc
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 KORUGU KK, Korg Inc filed Critical KORUGU KK
Publication of JPH06308966A publication Critical patent/JPH06308966A/ja
Application granted granted Critical
Publication of JP2838645B2 publication Critical patent/JP2838645B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/02Instruments in which the tones are synthesised from a data store, e.g. computer organs in which amplitudes at successive sample points of a tone waveform are stored in one or more memories
    • 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
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/18Selecting circuits
    • G10H1/183Channel-assigning means for polyphonic instruments
    • G10H1/185Channel-assigning means for polyphonic instruments associated with key multiplexing
    • G10H1/186Microprocessor-controlled keyboard and assigning means
    • 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
    • G10H5/00Instruments in which the tones are generated by means of electronic generators
    • G10H5/007Real-time simulation of G10B, G10C, G10D-type instruments using recursive or non-linear techniques, e.g. waveguide networks, recursive algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

(57)【要約】 【目的】ディジタル信号処理を基本仕様とするミュージ
ックシンセサイザーシステムにおいても動的ボイス割り
当てを可能にする。 【構成】選択されたボイスを示すリアルタイム入力信号
を供給する入力装置10,16と、各ボイスに関するボ
イスプログラムを格納しているボイスプログラムメモリ
11b、12b、とデジタル信号処理器のアレーを含む
ところのサウンド処理モジュールを含み、入力装置1
0、16とボイスプログラムメモリとを接続している、
そして、リアルタイム入力信号に応じて、リアルタイム
に選択可能なボイスを発生するボイスプログラムメモリ
11b、12bの中でのボイスプログラムのグループに
実行する、楽音または他の音声データのシンセサイザー
に関する構造。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は楽音信号処理に係り、特
にデジタル信号処理に基づきボイスプログラムと称する
楽音合成プログラムを実行するシンセサイザーに関す
る。
【0002】
【従来の技術】一般に用いられているミュージックシン
セサイザーのアーキテクチャーには、様々な種類があ
る。例えば、減算合成、ウエーブテーブル合成、FM合
成、加算合成である。これらの合成方式の概説は、ウォ
ーカー著、「KORG WAVESTATION」ピー
ター エル.アレキサンダー出版、ニューベリーパーク
カリフォルニア州、1990年の9ページから12ペー
ジに記載されている。
【0003】この一般に用いられるている4種類の合成
方式は、仕込まれた波形(packaged wave
form)を鳴らすものであり、ユーザーがリアルタイ
ムで演奏するのに応じてシンセサイザーからのボイスを
発生するものです。
【0004】仕込まれた波形は、減算合成方式とFM合
成方式においては単純なサイン波であったり、生楽器か
ら実際に録音した音のテーブルであったりします。通
常、これらのテーブルは、パルスコード変調(PCM)
として知られるフォーマットでシンセサイザーの内部回
路に組み込まれたメモリーチップに格納されている。こ
のPCM手法によるシンセサイザーには、生楽器音を基
本として波形を合成するためボイスの表現には幾つかの
制限が加わります。例えば、与えられた楽器音の波形を
用いつつボイスを変化させるには、新たにPCMテーブ
ル波形等のハードウエアを追加する必要が生じます。
【0005】現在、ミュージックシンセサイザー業界の
動向は、ディジタルシグナルプロセッサ(DSP)上で
実行される楽音発生プログラムを用いての楽音合成に動
いています。サンプリングを基本としたPCMシンセサ
イザーを改良するには、上述した様にハードウエア回路
の改造が必要です。しかしサウンド発生プログラムを書
くことはハードウエアの回路の改造が出来ない一般のユ
ーザーであっても、容易にできます。従って、DSPシ
ンセサイザーのユーザーは、演奏するボイスの自由度を
PCMシンセサイザーに比べて増すことが可能になる。
ボイスプログラムと呼ばれる楽音合成プログラムは、楽
器、人の声等の音源を基本とした計算モデルにより構成
されます。従って、楽音合成プログラムの作成者は、作
りたい音源の計算モデルを先に決め、その後当該モデル
を実行するコンピュータプログラムを書きます。サウン
ド合成プログラムの例としては、米国特許No.4,9
84,276ジュリアス.O.スミスによる”DIGI
TALPROCESSING USING WAVEG
UIDE NETWORKS”がある。
【0006】電子楽器における動的ボイス割り当て(d
ynamic voice allocation)と
は、楽音合成に必要なリソース(例えば、メモリー、プ
ロセッサー、バスサイクル等)が空いているか否かにか
かわらず、任意の楽音を発生する能力を持つことを意味
している。即ち、合成するためのリソースが空いていれ
ば即座に楽音発生に利用するが、リソースが空いていな
い時は、現在楽音発生に使われているボイスを”盗ん
で”新たなボイスに割り当ています。標準的なPCMプ
レイバック方式のシンセサイザーにおいては、楽音合成
に必要なリソースを短時間で切換えるために楽音合成の
バリエーションを限定することにより動的ボイス割り当
てを可能にしている。
【0007】通常、どのボイスも同じアルゴリズムが用
いられ(一般に、アルゴリズムはハードウエアに組み込
まれている)、かつ、同じPCMデータを共有していま
す。またボイスの出力は、決められたオーディオバスと
接続されています。従ってこの方法に従うと、異なるボ
イスは2,3のパラメータだけが相違しているだけなの
で、初期化或は変更はに要する時間は短時間で済みま
す。リソースが塞がっている場合は、鳴っているボイス
を止めて”ボイスを盗むことで”、そのボイスを新しい
ボイスに割り当てます。現在ボイスプログラムを実行さ
せるシステムにはDSPを用いたDPM−3(Peav
y社製)が知られています。このシステムでは、ボイス
を動的に割り当てるために、ボイスプログラムで使用し
ている係数をリアルタイムで書き換えることが可能とな
っています。しかし、ボイスプログラムの命令自身は、
リアルタイムで書き換えることができないのでシステム
の自由度に制限が生じます。さらに新しい方法として、
可変アルゴリズムのDSPシステムをPCMシンセサイ
ザーに接続し、そして固定アーキテクチャーのボイスシ
ステムにより合成した信号に異なったオーディオ効果を
加えるものが提案されています。しかしオーディオ効果
の処理は、リアルタイムで変更できません。なぜなら、
DSPシステムに対して、新しいアルゴリズムを書き換
えるには、書き換え時間が必要となるからです。
【0008】ボイスプログラムが実行できる様に設計さ
れたシンセサイザーは、リアルタイムでボイスプログラ
ムを実行しなければならないためパワフルなディジタル
シグナルプロセッサが利用されています。しかし、この
リアルタイムシステムにおいてもディジタルシグナルプ
ロセッサのハードウエアリソースによっては、リアルタ
イムで実行できるボイスの数に制限が生じます。リアル
タイムにボイスプログラムを実行するには、ディジタル
シグナルプロセッサの命令RAMにこのボイスプログラ
ムをあらかじめ書き込んでおく必要があります。しかし
当該ボイスプログラムがあらかじめ設定されていない場
合では、プログラムを転送をしている時、ディレイライ
ンの消去操作時、テーブルの更新操作時或は係数の初期
化操作時等において耳に聞こえるクリックノイズが発生
してしまいます。また、ボイスプログラムがあらかじめ
設定されている場合でも、ボイスプログラムを書き換え
る際には、上述の処理が必要となるので書き換え時にク
リックノイズが発生してしまいます。
【0009】
【発明が解決しようとする課題】このように、今までの
DSPを基本としたシステムでは、サンプリングやPC
Mを基本にしたシステムのシンセサイザーと同様に動的
ボイス割り当てをおこなうことは出来ませんでした。そ
こで本発明は、ディジタル信号処理を基本仕様とするミ
ュージックシンセサイザーシステムにおいても動的ボイ
ス割り当てを可能にする動的ボイス割当を行うオープン
アークテクチャー構成のミュージックシンセサイザーを
提供することを目的とする。
【0010】
【課題を解決するための手段】上記目的を達成するため
に、選ばれたボイスにリアルタイム信号を供給する入力
装置と、個々のボイスに対するボイスプログラムを記憶
するボイスプログラムメモリーと、入力装置及びボイス
プログラムメモリーの双方に接続された信号処理モジュ
ールとから構成する。これによりボイスプログラムメモ
リーに記憶された複数のホイスプログラムからなるグル
ープを実行して、選択されたボイスをリアルタイムに発
生する。
【0011】また入力装置とボイスプログラムメモリー
とに接続されるリソースを、リアルタイム入力信号に応
じて選択されたボイスのボイスプログラムを複数のボイ
スプログラムのグループの中に動的に割り当てる動的割
当手段を設ける。
【0012】また、このリソースはリアルタイム入力信
号に応じて選択されたボイスのボイスプログラムを複数
のボイスプログラムのグループの中で、所定のボイスプ
ログラムと入れ換えるべく置換手段を設ける。
【0013】ボイスプログラムメモリーは、複数のボイ
スプログラムを記憶する第一メモリーと、この第一メモ
リーと信号処理モジュールとに接続され、信号処理モジ
ュールで実行するためのボイスプログラムのグループを
記憶する第二メモリーとからなる。1つのボイスプログ
ラムをボイスプログラムのグループの中に動的に割当て
るリソースは、第一メモリー内で選択されたボイスプロ
グラムをリアルタイムに第二メモリーに転送する転送手
段である。
【0014】また信号処理モジュールは、ボイスプログ
ラムメモリー内で、指定されたボイスの音データを発生
するためのプログラムを実行する、少なくとも1つの信
号処理器から成る。オーディオ出力デバイスは、D/A
コンバータとスピーカからなり、ディジタルシグナルプ
ロセッサと接続して音データを発音する。
【0015】ボイスプログラムは、命令、初期化、係
数、テーブル及びディレイラインパラメータからなる。
信号処理モジュールに接続されるメモリーは、ボイスプ
ログラムのグループの命令を記憶するために、少なくと
も1つのデジタルシグナルプロセッサー(DSP)と接
続された命令メモリーと、ボイスプログラムのグループ
の遅延値を記憶するために、少なくとも1つのDSPと
接続されたディレイラインメモリーと、ボイスプログラ
ムのグループのテーブルを記憶するために、少なくとも
1つのDSPと接続されたテーブルメモリーからなる。
動的にボイスを割り当てるためのリソースは、指定され
たボイスプログラムの命令とディレイラインパラメータ
を第一メモリーから、それぞれ命令メモリーとディレイ
ラインメモリーにリアルタイムに転送する。
【0016】ボイスプログラムのグループ内の所定のボ
イスプログラムを書き換えるために、命令メモリー上で
指定したボイスの命令が記憶された場所をボイスプログ
ラムのグループ内のその他の命令の実行を妨げることな
く一時的に実行不能にするマスクキング手段を設ける。
そして、指定されたボイスプログラムの命令が、そのボ
イスプログラムを動的割当手段により動的割当すべく、
一時的にマスクキングされた命令メモリーの場所に転送
手段により転送される。所定のボイスプログラムを書き
換えるためのリソースとして、ディレイラインメモリー
上で、所定のボイスプログラムが用いるディレイライン
をクリアし、また、ディレイラインメモリー上でその所
定ボイスプログラムが用いるディレイラインをディレイ
ラインパラメータに従って設定手段によりリアルタイム
で設定する。
【0017】また入力装置と、ボイスの発生のためのボ
イスプログラムの供給のためのリソースからなるホスト
処理システムと、ボイスプログラムのグループを記憶す
る記憶手段を設ける。それはボイスプログラムのグルー
プ内で指定されたボイスの処理をリアルタイム入力信号
に応じて処理するために、複数のDSPが記憶手段と入
力モジュールに接続する。
【0018】また、DSP間に音データを伝送する際に
用いるDSP間を結ぶ1本のオーディオデータバスと、
このバスに伝送される音データを発音するためのD/A
コンバータを設ける。記憶手段に記憶されたボイスプロ
グラムのグループにおいて、所定のボイスのためのボイ
スプログラムを入力信号に応じてリアルタイムに動的に
割り当てるためのリソースは上記の通りです。記憶手段
は、個々のDSPに接続した複数のメモリーモジュール
からなる。個々のメモリーモジュールには、つながって
いるDSPで用いる命令メモリー、ディレイラインメモ
リー、テーブルメモリーが含まれてる。
【0019】リアルタイムに実行される複数のボイスプ
ログラムからなるセットで構成されたプログラムを持つ
ホスト処理システムを設ける。この複数のボイスプログ
ラムからなる設定は、複数のディジタルプロセッサの個
々に接続された記憶手段でダイナミックボイスアロケー
ションを簡単に行えるようなフォーマットで、設定メモ
リーに記憶されています。
【0020】またこのシステムにおいて、個々の記憶手
段のメモリーモジュール内のテーブルメモリーにはボイ
スプログラムの構成要素の一部としてのテーブルデータ
が記憶されています。
【0021】ホスト処理システムは、信号処理モジュー
ル上のボイスプログラムを動的に割り当てるのを最適化
されている。そのために、ホスト処理システムは、主メ
モリーを持つCPUと、分離メモリーから構成されてい
ます。分離メモリーはインターフェイスを介してCPU
と接続されており、そのインターフェイスとは、動的ボ
イス割り当てを行うために、分離メモリーから信号処理
モジュールへ、ホストの介在なしにデータを転送する機
能をもっている。
【0022】ホスト処理システムは、複数のボイスプロ
グラムからなる設定を信号処理モジュールへ転送するの
に最適なフォーマットにして、分離メモリーに転送しま
す。インターフェイススチップは、複数のボイスプログ
ラムの内、リアルタイム入力信号によって指し示された
ボイスに対応するボイスプログラムを分離メモリーから
信号処理モジュールのメモリーモジュールへ自動的にD
MA転送する。
【0023】リアルタイム実行をなし遂げるために、ハ
ードウエアとソフトウエアの両方の能力を上げるため
に、複数のDSPをアレイ化して用いる。また、ディジ
タル信号処理を基にしたシンセサイザーにおいて、異な
ったディジタル信号処理アルゴリズムを要する少なくと
も2つのボイス間でも、動的割当を可能とする。
【0024】
【作用】上記構成により、入力装置とリアルタイム入力
信号に応じてボイスプログラムのグループに、選択され
たボイスに対応したボイスプログラムをボイスプログラ
ムメモリに動的に割り当て、このボイスプログラムを置
き換える事により利用者が認識することなく、リアルタ
イムで選択されたボイスを発生させる。
【0025】
【実施例】本発明の実施例を図に沿って説明する。以下
本発明の実施例を下記の内容で説明する。
【0026】[1]本発明の概略構成(図1) [2]ハードウエアシステム(図2乃至図4) [3]システムインテグレーションチップ(図5) [4]楽音信号処理装置(図6) [5]ボイス割り当て処理(図7乃至図20) [6]まとめ[1]本発明の概略構成(図1) 図1は本発明に係る、動的ボイス割り当てを行うミュー
ジックシンセサイザーの構成を示す概略ブロックであ
る。なお、本発明は例えばミキサー、エフェクターなど
の音声信号処理も可能である。このシンセサイザーは、
入力装置(入力手段)10、ホストメモリ11bと動的
ボイス割り当て11aのリソースを含むホスト処理モジ
ュール11及びMSPメモリ12bと動的ボイス割り当
て12aのためのリソースを含む楽音信号処理モジュー
ル(MSPモジュール;サウンド処理手段)12を有し
ている。MSPモジュール12は、リアルタイムにアナ
ログ信号の楽音データをライン13から増幅器21を介
してスピーカー14、15に出力して楽音を発生させま
す。なお、音データとしてアナログ信号に限定されるも
のではなく、ディジタル信号や他の形の信号であっても
く、更にそれが標準規格であるか否かは問わない。
【0027】入力装置10としては鍵盤等があり、また
その他可能な入力方法には、ライン(入力手段)16を
介して入力される楽器の標準規格であるMIDIを入力
することが可能です。さらに、当システムはライン17
から入力されるアナログ信号をディジタル信号に変換し
て入力することも可能である。ホスト処理モジュール1
1は、ホストメモリ上に多数のボイスプログラムが記憶
可能であり、入力装置10やライン16からの入力信号
によって、MSPモジュール12における動的ボイスの
割り当てを制御することにより楽音を発生させることが
できる。MSPモジュール12のMSPメモリには、こ
のMSPモジュール12で実行するための多数のボイス
プログラムが記憶されており、このボイスプログラムを
実行するための命令、ディレイライン、テーブル、係数
がMSPモジュール12のメモリリソースを利用して記
憶されています。
【0028】ホスト処理モジュール11とMSPモジュ
ール12に設けられた動的ボイス割り当てのためのリソ
ースは、ホスト処理モジュール11のプログラムが、入
力装置10やライン16からのMIDI信号に応じてM
SPモジュール12にボイスプログラムを割り当てた
り、或は割り当ての解除を行うためのものです。MSP
モジュール12は、多数のボイスプログラムを同時に処
理するために沢山の出力チャネル(例えば32チャネ
ル)を持っている。そして入力信号に応じて割り当てら
れた新しいボイスプログラムを出力チャネルの1つから
出力する際には、その出力を他のチャネルの出力と加算
し、D/Aコンバータに送ることによりアナログ信号に
変換した後、ライン13を通じてスピーカ14,15に
出力します。
【0029】個々の出力チャネルの動作は、MSPモジ
ュール12に接続された命令メモリ内に記憶された命令
を利用して設定されます。従って、新しいボイスプログ
ラムを何れかのチャネルに割り当てる際には、そのボイ
スプログラムの命令、係数、テーブル、ディレイライン
データをMSPモジュール12に転送し、ボイスプログ
ラムの割り当てを解除します。このために、置き換える
べきボイスプログラムが使用していたディレイラインを
クリアし、係数を上書きし、命令をマスクする等の処理
をクリックノイズを発生することなしに行わねばなりま
せん。なお、個々の出力チャネルは、ボイスプログラム
の処理出力とみなすことができます。従って32チャネ
ルのシステムでは、ボイスプログラムのグループに32
個のボイスプログラムを割り当てて、決められた時間で
同時に処理できるのです。
【0030】動的にボイスを割り当てるためには、ホス
ト処理モジュール11のホストメモリに記憶されている
1つのボイスプログラムをMSPモジュール12のMS
Pメモリにリアルタイムで、かつ、出力信号にクリック
ノイズを発生することなしに転送しなければなりませ
ん。ここでリアルタイムとは、入力装置10を操作する
ユーザーの知覚に即応したものという意味であります。
即ち、ユーザーが鍵盤を押すことによってボイスプログ
ラムが選択され、MSPメモリ内のプログラムメモリの
グループに割り当てられます。そして、MSPモジュー
ル12は、信号出力が遅れたり歪んだりするのをユーザ
ーに気付かれないように楽音処理を行わなければなりま
せん。本シンセサイザーで、動的にボイス割り当てを行
うための最小ハードウエア構成は、ホスト処理モジュー
ル11と、MSPモジュール12と入力装置10で、以
下図2乃至図6により具体的に説明します。
【0031】[2]ハードウエアシステム(図2乃至図
4) 図1におけるホスト処理モジュール11、入力装置10
とMSPモジュール12の詳細をそれぞれ図2乃至図4
に示し説明する。図2は、本発明における動的ボイス割
り当てのためのリソースを有するホスト処理モジュール
11の詳細ブロック図である。メインCPUシステム
は、たとえば16ビットデータバス51と23ビットア
ドレスバスを持ったモトローラ社製68340の様なマ
イクロプロセッサ(CPU;データ処理手段)50から
構成される。
【0032】制御信号ライン53を流れる制御信号と、
クロックライン54を流れるクロック信号は、CPU5
0から出力されます。CPU50に接続された水晶発振
子55は、クロックライン54を流れるクロック信号の
基本クロックを与えるものです。データバス51、アド
レスバス52及び制御信号ライン53はフロッピーディ
スクドライブ57を介して、フロッピー制御装置56
と、SCSIインターフェイス59を介してSCSI制
御装置58と、そして時計チップ60に接続されていま
す。日時を計時する時計チップ60には、バッテリー6
1と基本クロックを与える水晶発振子62が接続されて
います。DUARTインターフェイス63は、デバッグ
用のインターフェイスとして、第二データバス70、制
御信号ライン53及びアドレスバス52に接続されてい
ます。データバス51はバス転送器71に接続されてお
り、そのバス転送器71からの信号が流れる第二データ
バス70には、CPU50の周辺デバイスが接続されて
います。バス転送器71の制御は、転送制御ライン72
を介してシステム集積回路(SIC)73から行われま
す。図5にSIC73の詳細が示されているように、シ
ステムを統合するためのアドレスロジック、デコードロ
ジック、DRAM制御とMSPウインドーロジック、割
り込み管理とMSPのDMAロジック、そしてLCD制
御が内蔵されています。電源64は、電源コード65を
通じて電灯線からの電源をもらい、システムが必要とす
る電源を供給するものです。電源64には、オン/オフ
スイッチである電源スイッチ67が取りつけられていま
す。
【0033】プログラムメインメモリ68はEPROM
で構成され、第二データバス70、制御信号ライン53
及びアドレスバス52に接続されて、CPU50からア
クセスが可能になっている。また、非分離メモリ(保管
手段)75はDRAMからなり、拡張スロット(保管手
段)76,77を用いることにより1メガバイトから5
メガバイトまで増設可能となっている。そして非分離メ
モリ75は、データバス51、SIC73からのアドレ
スライン78及び制御バス79に接続されている。分離
メモリ80はDRAMから構成され、SIC73との間
をアドレスライン81及び制御ライン82とで接続され
ている。そして分離メモリ80へのデータ転送は、シス
テムIC73のデータライン83を介して行われる。ま
た、SIC73は、図4に示されたMSPモジュール1
2からアドレスライン84を介してアドレス情報を受け
取り、また制御ライン85を介して制御情報をそれぞれ
データライン83上のデータと一緒に転送します。図4
に示されたMSPモジュール12は、このアドレスライ
ン84と制御ライン85とデータライン83を意味して
います。SIC73は、独立して設けられたクロック8
6に接続されています。また、SIC73はクロックラ
イン87にクロック信号を送り、図3のヒューマンイン
ターフェイスモジュール102と通信するためのシリア
ルインターフェイスライン88を駆動します。またメイ
ンCPUモジュールも、ヒューマンインターフェイスモ
ジュール102を制御するハードウエアを持っていま
す。そのハードウエアには、LCD制御装置89が含ま
れます。
【0034】LCD制御装置89はSIC73から、制
御ライン90を介して制御情報を、また第二データバス
70を介してデータを受け取ります。アドレス/データ
マルチプレクサー91の出力は、LCD制御装置89に
接続されています。このアドレス/データマルチプレク
サー91の入力は、アドレスライン52と第二データバ
ス70に接続されています。さらにアドレス/データマ
ルチプレクサー91は、LCD制御装置89に接続され
たLCD表示用のSRAM92にも接続されています。
このSRAM92は、LCD制御装置89とCPU50
とが時分割でアクセスします。時分割のプライオリティ
ーは、CPU50よりLCD制御装置89の方が高くな
っています。つまり、CPU50がLCD制御装置89
と同時刻にSRAM92にアクセスを行うと、制御ロジ
ックによってCPU50にウエイト(ウエイト命令)が
かかります。CPU50メモリは、非分離メモリ75と
分離メモリ80から構成されています。分離メモリ80
は、SIC73内のDMAロジックによってMSPに転
送されるデータの記憶に用いられます。なおCPU50
が非分離メモリ75をアクセスしている間でも、データ
をMSPに転送することが可能です。このパイプライン
メモリアクセスによって、MSPの初期化やボイスプロ
グラムの転送が素早く行えます。
【0035】CPU50はシリアル入力ライン94とシ
リアル出力ライン75を介して、MIDIポート93と
接続されています。1対2マルチプレクサー97の出力
は、シリアル出力96とシリアル出力ライン98に接続
されており、その入力であるシリアル入力ライン100
のデータは制御信号ライン99によってどちらかに振り
分けられます。シリアル入力ライン100のデータはC
PU500発生します。また、CPU50、は図3のヒ
ューマンインターフェイスモジュール102からシリア
ル入力ライン101を受けます。ヒューマンインターフ
ェイスブロックへのインターフェイスモジュール102
には、シリアル出力ライン98、シリアル入力ライン1
01、LCD制御装置89からの制御信号ライン10
3、クロックライン87、そして4ビットのシリアルイ
ンターフェイスラインライン88が含まれます。図2の
ヒューマンインターフェイスモジュール102の詳細を
図3に示します。シリアル出力ライン98とシリアル入
力ライン101は、バックライト付LCD121の表面
に取りつけられたタッチスクリーン用のサブシステム制
御装置120に接続されています。バックライト付LC
D121は、LCD制御装置89からの制御信号ライン
103の信号で制御されます。
【0036】クロックライン87上のクコック信号は、
キーボードスキャンプロセッサ122に接続されていま
す。また、キーボードスキャンプロセッサ122は、シ
リアルインターフェイスライン88にも接続されていま
す。このキーボードスキャンプロセッサ122には、ロ
ータリーエンコーダ123、XYZ3次元制御パッド1
24、LEDアレイ125、ボタンスイッチアレイ12
6、例えば76鍵などの鍵盤127、アフタータッチセ
ンサー128、制御ホイール129、データスライダー
130、フットペダル入力131、リボンコントローラ
132等の数多くの入力装置が接続されています。キー
ボードスキャンプロセッサ122は、鍵盤127の全鍵
と、フロントパネルに置かれたボタンスイッチアレイ1
26、アナログコントローラ、ロータリーエンコーダ1
23をスキャンし、ボタンスイッチアレイ126につけ
られたLEDを点灯させます。キーボードスキャンプロ
セッサ122は、シリアルインターフェイスライン88
を介してメインCPUブロック内のシステムIC73と
接続されています。
【0037】図2で用いられるMSPモジュール12を
図4に示します。このシステムには、番号150−0か
ら150−8から成るディジタルシグナルプロセッサー
アレイが含まれています。つまり、図4に示されたシス
テムには9個のディジタルシグナルプロセッサがあるの
です。ディジタルシグナルプロセッサの数は、用途に応
じて増減が可能です。本発明の実施例におけるディジタ
ルシグナルプロセッサは、図6以降に示されでいる楽音
信号処理装置(MSP)です。MSPは、本発明におけ
る動的ボイス割り当てを実行し易くする機能を持ったデ
ィジタルシグナルプロセッサ(DSP)です。番号15
0−0から150−8のディジタルシグナルプロセッサ
のMSPアレイは、ホストシステムインターフェース1
10を介してアドレスライン84、制御ライン85及び
データライン83が接続されています。そして、MSP
アレイの150−0から150−8のそれぞれに1つず
つメモリモジュールが接続されMSPアレイ150−0
のみに拡張メモリモジュール151が接続されている。
さらにMSPアレイ150−1から150−8には、標
準のメモリモジュール152−1から152−8がそれ
ぞれ接続されています。MSPアレイ150−0から1
50−8は、高速オーディオバス(オーディオデータバ
ス)153で相互接続されています。この高速オーディ
オバス153は、D/Aコンバータ、A/Dコンバータ
とのバスインターフェイスチップ(DAADチップ)1
54に接続されています。またこの出力は2個のD/A
コンバータ155、156に接続されています。D/A
コンバータ155の出力は左チャネルと右チャネル用の
フィルタ157、158に送られた後、マスターボリュ
ーム制御159を通って左チャネルと右チャネルの出力
ジャック160、161に出力されます。マスターボリ
ューム制御159の出力は、ヘッドフォンジャック16
2にも送られます。
【0038】D/Aコンバータ156の左チャネルと右
チャネルの出力も同様に、フィルタ163と164を通
ってAUX出力165、166に出力されます。入力端
子167、168からのアナログ入力信号は、A/Dコ
ンバータ169でディジタルデータに変換されて、DA
ADチップ154に入力され、その後高速オーディオバ
ス153を通じてMSPにデータが転送されます。クロ
ック170はこのDAADチップ154にクロックを供
給します。】 上述したように、図2のメインCPUシ
ステムと、図3のヒューマンインターフェイブロック
と、図4のミュージックシグナルプロセッシングブロッ
クから構成されるシステムによって、MSPアレイ15
0−0から150−8とメモリモジュール151、15
2−1から152−8内の命令メモリに、グループ化し
たボイスプログラムを記憶し、これをリアルタイムに処
理するディジタルシグナルプロセッサを基本としたミュ
ージックシンセサイザーが実現できます。ボイスプログ
ラムは、グループにまとめられて分離メモリ80に記憶
されており、図4のMSPアレイのメモリモジュールに
動的に割りつけられます。ホストCPU50はボイスプ
ログラムを組み立てて、それを動的に割り当てるために
分離メモリ80に転送します。ホスト処理システムは、
必要に応じてMIDIの標準インターフェイスや、ヒュ
ーマンインターフェイスブロックの制御も行います。
【0039】[3]システムインテグレーションチップ
(図5) 図5は、システムインテグレーションチップ(SIC)
のブロック図を示している。SICは、ホストCPUの
インターフェイス500、非分離DRAMインターフェ
イス501、分離DRAMインターフェイス502、M
SPインターフェイス503、周辺機器インターフェイ
ス504、シリアルインターフェイス505、メモリー
アレイからのエラー信号と割り込み信号を受信する受信
部506及びクロックライン507を有している。
【0040】ホストCPUインターフェイス500は、
CPUインターフェイス制御ブロック508と基本的に
接続され、ホストCPUインターフェイス500からの
データは、ライン509により転送器510とシリアル
インターフェイス制御装置とレジスタ511及びDMA
制御レジスター513に転送されます。またSICは、
非分離DRAMインターフェイス501の為のアドレス
マルチプレクサ514及び非分離DRAM制御装置51
5を有している。アドレスマルチプレクサ516、分離
DRAM制御装置517及び転送器510は、分離DR
AMインターフェイス502が必要とするアドレス及び
データ等の制御信号を転送或は供給している。アドレス
マルチプレクサ518、MSPバスインターフェース制
御装置519及びMSPウインドウレジスタ520は、
MSPインターフェイス503が必要とするアドレス及
び、制御情報を与えるのに用いられます。また、SIC
は、ホストCPUインターフェイス500の為の割り込
み信号を発生し、ライン512に出力します。
【0041】なお、分離DRAMインターフェイス50
2からのMSPデータは、図2で明らかなようにMSP
インターフェイス503と直接つながっています。さら
にSICは、周辺回路制御装置521を有し、クロック
発生装置522は、クロックライン507を介してクロ
ック信号を出力している。MSP割り込みレジスター5
23は、MSPアレイからの割り込みデータを受け取
り、この割り込みデータをライン512を介してSIC
の割り込みロジック524に出力しています。なお、割
り込みデータを使用しない場合には、マスクレジスタ5
25により、割り込みデータがマスクされます。
【0042】リフレッシュリクエスト回路526は、分
離DRAM制御装置517及び非分離DRAM制御装置
515を介してDRAMをリフレッシュするのに用いら
れる。MSP−DRAM DMA制御装置527は、分
離DRAM制御装置517を介して分離DRAMインタ
ーフェイス502へ、またDMA転送の制御をしている
MSPバスインターフェイス制御装置519に接続され
ている。MSP−DRAM DMA制御装置527は、
分離DRAMインターフェイス502のアドレスマルチ
プレクサ516へ供給するCPUのDRAMアドレスを
発生するDMA制御レジスタ513及び、分離DRAM
インターフェイス502の為のアドレスマルチプレクサ
516へ供給するMSPのアドレスと、MSPインター
フェイス503へ供給する為のアドレスマルチプレクサ
518へ供給するMSPアドレスとつながっています。
さらに、割りつけられたアドレスは、アドレスマルチプ
レクサ514,516,518にCPUインターフェイ
ス制御ブロック508で供給されます。SICの詳細な
機能については、以降に規定されています。
【0043】A.CPUインターフェイス制御ブロック
(508) CPUインターフェイス制御ブロック508は、アドレ
スのデコード、外部バス転送器の制御、チップセレクト
の生成、ウェイトステートの生成、ホストCPUへのD
SACKの生成、後述するチップセレクト3領域でのア
ドレスの反転、バスエラーの生成を規定します。また、
非分離DRAM制御装置515、分離DRAM制御装置
517、MSPバスインターフェイス制御装置519、
周辺回路制御装置521への制御信号も規定します。
【0044】B.CPUアドレス空間デコーディング SICと68340CPUのチップセレクトレジスタ
は、システムメモリマップを決めます。CPUインター
フェイス制御ブロック508はASL、CS0L−CS
3Lの信号を使って68340のアドレスバスをデコー
ドし、そしてDRAM、周辺回路へのチップセレクト及
び制御信号を作ります。それぞれのDRAMは、4つの
チップセレクトCSの領域の中の1つに割り当てられて
います。即ち、双方のチップセレクト信号とアドレスバ
スは、SICによりアドレスをデコードさせサイクルを
実行させるものです。
【0045】システムを初期化した後、システムの論理
的なメモリ空間は、読みのみCS2L、読み/書きCS
1L、バーチャルページCS0L、ファーストネガティ
ブRAMCS3Lの4つに分割されます。これらの領域
の動作は、68340の中のレジスタで制御されます。
例えば読みのみ動作は、68340の中でプログラムさ
れるのであってSICの中ではありません。同じことが
以下に説明するバーチャルページ領域についても言えま
す。周辺回路のアクセスの際に必要なウェイトステート
は、アドレスデコードを基にしてSICで必要な時に作
られます。
【0046】1.BERRLバスエラー信号生成 BERRL信号は、2つの場合にCPUインターフェイ
ス制御ブロック508によって発生されます。それはA
SLが発生されているのにCS0L−CS3Lがどれも
発生されない時、又は誤ったアドレスでCS1Lが発生
された時です。
【0047】2.チップセレクト領域0動作 68340の包括的なチップセレクトであるCS0L
は、EPROMからなるメインメモリー68かバーチャ
ルページのチップセレクトのどちらかに使われます。6
8340がリセットされて動き始めると、CS0Lはモ
ジュールベースアドレスレジスタにアクセスされるまで
全てのアドレスに対して発生されます。68340の信
号のPORTA0とSICの入力ピンであるPA0は、
何を選ぶかを決めます。リセット後、PORTA0信号
は入力ピンになっています。PORTA0の外部のプル
ダウン抵抗が、この信号をローレベルにしEPROMが
選択されます。
【0048】システムの初期化が完了した後、PORT
A0ピンは、EPROMを無効にし、そしてバーチャル
ページのチップセレクトを有効にするために「ハイ」に
設定します。以降はバーチャルページの動作関係を参照
してください。EPROMが選ばれている時、SICは
8ビットの領域としてDSACKを返します。バーチャ
ルページモードが動作している時は、SICはバイトと
ワードのアクセスを返します。
【0049】3.チップセレクト領域1動作 この領域はCS1L信号により有効にされ、そして全て
の物理的なRAMとハードウェアのI/Oの動作で使わ
れる物理的メモリの領域が割り当てられています。ここ
には、フロッピー制御装置56、SCSI制御装置5
8、時計チップ60、DUARTインターフェイス6
3、LCD制御装置89とLCDディスプレイのSRA
M92、個々のMSPとMSPウィンドウ領域内部のD
RAMからなる分離メモリー80が含まれています。こ
の領域には、システム中の分離DRAMと非分離DRA
Mの最大のアドレスデコーディングも含まれています。
また物理的RAMの狭い可変域が、CS3L領域に割当
られています。
【0050】4.チップセレクト領域3動作 この領域は、68340CPUからのCS3L信号で有
効にされます。ここには68340と他のプロセッサー
が、間接的なメモリアクセスの計算をする正しい方法を
早くアクセスさせるためのファーストネガティブRAM
領域が含まれています。この際バスサイクルを”ファー
スト”か”ネガティブ”にするかの判断はSICはしま
せん。従って、時間の節約は68340のアドレスの計
算だけとなります。
【0051】5.バーチャルページの動作 バーチャルページは、簡単ですが有効なオーバーレイマ
ネージャーの手段として使われます。そのオーバーレイ
は68340の論理的なアドレス空間のページの領域の
1つとして動くようにコンパイルされています。またオ
ーバーレイは、それぞれ64KBの諭理的なページ空間
の1つとして出現してコード化されるが、ディスクから
は同じ物理的スペースにロードされます。プログラム
が、現在ロードされていないオーバーレイ中のファンク
ション/手順(procedure)/サブルーチンを
呼び出そうとした場合には、アドレスは他の諭理的なペ
ージ空間を指し示すでしよう。この時SICは、BER
RLを発生し、68340中のオーバーレイマネージャ
ーソフトウェアは警告を発します。
【0052】次に、オーバーレイマネージャーは、CS
0L信号でのアドレスデコード領域の動きによって必要
となる諭理的ページ領域へ物理的領域を再割付けしま
す。して新しいオーバーレイは、ページ領域をディスク
から検索し、元のプログラムと一体にします。これによ
り再割付け時に”ページフォールト”が発生し、現在ロ
ードされていないオーバーレイが必要であることがわか
ります。
【0053】C.CPUバス制御 CPUインターフェイス制御ブロック508は、ポート
サイズと、全ての68340の外部バスサイクルの接続
の制御を決めます。転送サイクルの間、SICは、DS
ACKOLとDSACK1Lとの出力を使うことにより
68340に、ポートサイズとバスサイクルとの終了を
知らせます。MC68340の「Integrated
Processor User’s Manual」
と「Technical Summary」を見ていた
だければ、68340のバス動作の細部が説明されてい
ます。CPUインターフェイス制御ブロック508は、
68340の主要なデータバスと周辺回路データバスの
間を接続可能にするために外部からバス転送器71の制
御信号を作ります。
【0054】D.CPU割り込み制御 SICの割り込み回路524は、68340に対して一
本のアクティブロウで、レベルセンスのハードウェア割
り込みのライン512を持っています。またSICは、
MSP割り込みレジスタ523への9つの外部MSP割
り込みリクエスト入力と3つの内部の割り込みリクエス
ト入力ソースを用意しています。全てが、割り込みマス
クレジスタ525によってソフトウェアにマスクをかけ
ることができます。SICは、MSP割り込みリクエス
ト入力端子については、内部のプルアップ抵抗を用意し
ています。1乃至より多くの割り込みリクエストがされ
た後、SICは68340へSIC_IRQL信号を出
します。
【0055】そしてCPUは、SIC割り込み状態レジ
スタを読むことによって、割り込みのソースを決めま
す。MSP割り込みリクエストは、MSPのMSPステ
ータスレジスタを読んだ場合のみクリアすることができ
ます。その他のSIC割り込みリクエストは、SIC割
り込み状態レジスタを読むことによってクリアされま
す。SIC_IRQL信号は、全ての割り込みリクエス
トがクリアされるまで発生したままです。
【0056】E.EPROMサポート 32Kx8のCPUのEPROMからなるメインメモリ
ー68は、68340のアドレスバスと、包括的なチッ
プセレクトCS0Lと、PORTA0ピンとに直接接続
されています。メインメモリー68が選ばれると、SI
Cは5クロックバスサイクルアクセスの場合には、2つ
のウェイトステートを入れてDSACK0Lを返しま
す。68340の包括的なチップセレクトであるCS0
Lは、メインメモリー68とバーチャルページチップセ
レクトの双方に使われます。
【0057】F.DRAMサポート SICは、システムDRAMの2つの領域75,80の
アクセスと、リフレッシュ制御を規定します。基本の構
成は、CPUオペレーティングシステムコード非分離D
RAMである非分離メモリー75の為の1MBのDRA
Mと、MSPのプログラムとデータ記憶分離DRAMで
ある分離メモリー80の為の1MBが含まれています。
SICは、トータル5MBの非分離DRAMの拡張を規
定しています。
【0058】SICは、システムDRAMの2つの領域
にそれぞれのアドレスバスと独立した制御を行います。
SICのMSP−DRAM DMA制御装置527は、
システムの分離DRAMとMSPの内部とDRAMの領
域との間のDMA転送を規定しています。これは、MS
Pへダウンロードしている間フルスピードでCPUがオ
ペレートすることを可能としています。
【0059】1.非分離DRAM制御装置 非分離DRAM制御装置515は、CPUとリフレッシ
ュサイクルの双方をサポートします。SICは、683
40のCPUが読み書きするために必要とする全ての制
御信号を「ゼロ」のウェイトステイト(3クロックバス
サイクル)で出力します。SICは、システムDRAM
へ8ビットと16ビットのアクセスをサポートします。
DRAMのリフレッシュは、同時に非分離DRAMの全
ての3つの「ロウ」でリフレッシュさせ、CASビフォ
アRASリフレッシュサイクルの方法で実行させます。
【0060】非分離DRAM制御装置515は、DRA
Mリフレッシュカウンタによって作られるリクエスト1
回により現在のバスアクセスの後、1回のリフレッシュ
サイクルを実行します。また非分離メモリ75の領域に
おいてリフレッシュは、1番の優先度を持っています。
もしリフレッシュがリクエストされたならば、CPUサ
イクルが進行中の場合は、リフレッシュ制御装置は現在
のサイクルが終わるまでウエイトし、リフレッシュサイ
クルはその後に行われます。また、リフレッシュサイク
ルが行われている間に、CPUが非分離DRAMへのア
クセスをリクエストした場合は、リフレッシュサイクル
が終わるまで待たないといけません。
【0061】2.分離DRAM制御装置(517) 分離DRAM制御装置517は、CPUとリフレッシュ
とDRAM−MSP間のDMAサイクルをサポートしま
す。分離DRAMへのCPUのアクセスは、非分離DR
AMへのアクセスと同じです。SICは、68340の
CPUがウェイトゼロ(ステート3クロックバスサイク
ル)でデータを読み書き出来るように、全ての制御信号
を規定しています。またSICは、システムDRAMへ
8ビットと16ビットのアクセスをサポートします。
【0062】DRAMリフレッシュは、CASビフォア
RASリフレッシュサイクルの方法で実行させます。分
離DRAM制御装置517は、DRAMリフレッシュカ
ウンタによって作られるリフッレシュリクエストがあっ
た時、リフレッシュサイクルを実行します。分離メモリ
80の領域において、リフレッシュは1番の優先度を持
っている。従って、もしリフレッシュリクエストがされ
た時、CPU又はDMAサイクルが進行中なら、リフレ
ッシュ制御装置は現在のサイクルが終わるまでウエイト
ステイトとなり、リフレッシュサイクルはその後に行わ
れます。また、リフレッシュサイクルが行われている間
に、CPU又はDMAが分離DRAMへのアクセスをリ
クエ トしたのなら、リフレッシュサイクルが終わるま
で待機しなければなりません。分離DRAM制御装置5
17は、SICのDMA制御装置での分離DRAMのア
クセスも規定しています。CPUバスのリクエストは、
DMA制御装置のバスリクエストより高い優先度を持っ
ています。
【0063】G.DRAMのリフレッシュリクエスト回
路(526) DRAMのリフレッシュリクエスト回路526は、CA
SビフォアRASリフレッシュサイクルを使います。S
ICにおけるDRAMのリフレッシュリクエスト回路5
26は、リフレッシュリクエストサイクルのカウンタを
含んでいます。RAMは、16msec以内に1024
のリフレッシュサイクルを受け取る必要があります。
【0064】非分離DRAM制御装置515と分離DR
AM制御装置517は、リフレッシュサイクルの実行に
よりリクエストを出します。これはリフレッシュリクエ
ストは、分離DRAMと非分離DRAMのリフレッシュ
サイクルが同時に起こらないように交互にすべきだとい
うことを暗示しています。
【0065】H.MSPインターフェイス(503) MSPインターフェイス503は、9つのMSPへのC
PUとDMAのアクセスを規定するのにアドレスマルチ
プレクサ518、MSPバスインターフェイス制御装置
519及びMSPウィンドウレジスタ520で駆動され
ます。SICは、68340のアドレス、制御、チップ
セレクト信号をデコードして、MSPのアドレス、MS
Pへのチップイネーブルとコマンドスローブを作りま
す。MSPは、それらのMSP_WAITL信号を発生
することにより、バスサイクルにウェイトステートを挿
入します。
【0066】SICは、全てのMSP_WAITL信号
が「ハイ」になった後か、MSP_WAITLが発生さ
れない場合に、クロック(16MHz)で指定された時
間の後、DSACK1Lを発生させることで68340
のバスサイクルを終了させます。またSICはMSPに
対して、16ビットアクセスしかサポートしません。な
ぜならMSPのデータバスは、68340と周辺回路の
バスと分離されていて、CPUはMSPがDMA転送し
ている間、非分離DRAMと周辺回路とにアクセスが可
能だからです。バスアクセスのリクエストにおいてCP
Uは1番の優先度を持っており、MSPへアクセスする
DMA転送より先取りができます。DMA_CPUL信
号は、MSPの内部領域へのDMAとCPUアクセスの
間の簡単な変化と規定されます。
【0067】I.MSPウィンドーイング MSPウィンドーイング機能は、複数のMSPへの同時
書き込み動作を規定します。MSPがアクセスされる
際、CPUのMSPウィンドーレジスタ520かDMA
のMSPウィンドウレジスタ520の一致するビットの
それぞれのMSPに決まります。CPUまたはDMAの
制御装置が、MSPの”ウィンドー領域”にアクセスす
る時、一致しているチップイネーブルをCPUまたはD
MAのMSPウィンドーレジスタ520中のそれぞれに
ビットの設定を発生します。複数のMSPへのバスサイ
クルは、全てのMSPへの書き込みが完了して、ワイヤ
ードオア接続したMSP_WAITL信号が開放された
後に終了します。MSP”ウィンドー領域”は書き込み
のみが可能です。もし、読みだし動作を試みたなら全て
「0」が返されます。
【0068】J.MSP−DRAM DMA制御装置
(527) SICのMSP−DRAM DMA制御装置527は、
68340分離DRAMである分離メモリー80と、M
SPのDRAM、内部メモリ、レジスタ領域との間でD
MA転送をサポートしています。MSPのウィンドーイ
ング機能は、複数のMSPへの書き込みアクセスをサポ
ートします。MSPの”ウィンドー”(H章を参照され
たい)からのDMA読みだしは、サポートしていません
が1つのMSPからのDMA読みだしはサポートしてい
ます。DRAMとMSPのアドレスバスは分離している
ので、完全なDMA転送は完了するのに一回のバスサイ
クルしかかかりません。DRAMの読み書きとMSPの
書き読みは同時に起こります。SICのDMA転送は、
16ビットのワード転送だけサポートします。DMA転
送動作は、以降に定義するDMA制御レジスタ513に
よって決められます。CPUはDMA転送を始める前に
DRAMアドレスレジスタ、MSPアドレスレジスタ、
ワード転送カウントレジスタ、DMA制御レジスタ、M
SP中の固有のポイントレジスタを初期化します。
【0069】DMA転送は、DMA制御レジスタ513
のSTビットを設定することによって始まります。DM
Aからのリクエストは、ワード転送カウントが「0」よ
り大きい場合はいつでも内部的に発生します。従って外
部からのリクエストは必要でありませんし、またサポー
トもしません。サイクルの長さは、SICへ入力される
MSP_WAITLによって伸ばされます。DMA転送
が完子し、ワード転送カウントが「0」になったら、S
ICはDMA制御レジスタのSTビットを解除し、SI
C割り込み状態レジスタのDTCビットを設定します。
イネーブルなら、68340に対してSIC_IRQL
信号を発生します。この割り込みは、マスクレジスタで
ソフトウェアのマスクが可能です。MSP−DRAM
DMA制御装置527は、自動増加又は、同一アドレス
動作に、プログラムが可能です。】DRAMアドレス
は、増加又は、同じ所に留まるかが可能であり、またM
SPアドレスは、増加又は、同じ所に留まるかの設定が
可能です。DMA転送の間、データの動きは、CPUア
クセスがリフレッシュに先取りされることもあります。
リフレッシュが1番の優先度を持っています。それはリ
フレッシュサイクルがリクエストされたなら、まずそれ
を始め、DMAとかCPUのアクセスはそれが終わるま
でウェイトかけます。次の低いレベルは、CPUに与え
られています。それは、もしCPUが、分離DRAMが
MSPへのアクセスをリクエスト中なら、次の有効なリ
フレッシュが無い時バスサイクルは、どんなDMAアク
セスのリクエストがされているより、それに与えられる
でしょう。
【0070】K.周辺回路サポート 周辺回路制御装置521は、CPUバスの動きで、周辺
回路のチップセレクトと読み込みと書き込みストローブ
を規定します。
【0071】L.クロック発生装置(522) クロック発生装置522は、32MHzの発振器入力か
ら、16MHz,8MHz,4MHz,500KHzの
クロックを作ります。SICは、16MHzクロック入
力を68340のCPUとTC8569AFRフロッピ
ーディスクコントローラに与えます。8MHzクロック
は、インターフェイスモジュールに使われるキーボード
プロセッサーとSCSIコントローラに与えられ、4M
Hzのクロックは、LCDコントローラに与えられま
す。SICはさらに、MIDIクロックを作る為に、6
8340のシリアルクロック入力に、500KHzのク
ロック出力を与えます。全てのクロックは、それを受け
取る各種の周辺回路間での、クロックスキューのシステ
ムの問題を避けるために同期して作られます。
【0072】M.シリアルデータインターフェイス シリアルインターフェイスとレジスタ511は、キーホ
ードプロセッサーとの間での通信の為に4本のシリアル
データを規定しています。
【0073】N.SICレジスタの定義 1.SIC割り込み状態レジスタ 図5Aに示されるSIC割り込み状態レジスタは、全て
のMSPの割り込み状態、HSABコンデンション、シ
リアルインターフェイスとDMAの割り込みのソースを
規定します。このレジスタのビットは、68340への
SICのIRQL信号の作成をマスクレジスタでマスク
がかけられます。もし、SIC割り込み状態レジスタの
うちの1つのビットが設定され、マスクレジスタの同じ
ビットが設定されていたら、SICのIRQL出力を発
生します。マスクレジスタは、このレジスタを読むこと
でマスクされるものではありません。SI,CNT,D
TCは割り込み状態が保持されており、CPUがこのレ
ジスタを読むことで解除されます。全てのMnビット
は、MSP_INTL(9..1)ピンの状態に影響を
受け、MSPの中のインタラプトステータスレジスタが
解除されることによってのみ解除されます(アドレス
$00)。 Mn−MSP #n インタラプトビット 1 = MSP#nのインタラプトを受けた。 0 = MSP#nのインタラプトを受けていない。 SI−シリアルインターフェイス 1 = シリアルインターフェイスデータ転送リクエス
トを受けた。 0 = シリアルインターフェイスデータ転送はリクエ
ストされない。 CNT−HSAB バス衝突エラー 1 = HSABバス衝突を見つける。 0 = HSABバス衝突を見つけない。 DTC−DMA転送完子 1 = DMA転送が成功して完了した。 0 = DMA転送が完了していない。 割り込みのソースは、どれも同じ優先権を持っていま
す。イネーブルされた割り込みソースに割り込み入力が
あれば割り込みが発生されます。
【0074】2.マスクレジスタ(525) 図5Bで示される、マスクレジスタは、CPUへの割り
込み信号SIC_IRQLの発生ソースを許可するため
のもので、SIC割り込み状態レジスタとビット位置が
対応しているものです。もし、SIC割り込み状態レジ
スタの中の1つのビットを設定し、そしてマスクレジス
タの同じビットが設定されていると、SIC_IRQL
出力を発生します。】す。マスクレジスタのビットが解
除されると、SIC割り込み状態レジスタと同じビット
の状態は、SIC_IRQLの出力に現れません(アド
レス $02)。 Mn−MSP #n 割り込みイネーブルビット 1 = MSP#nの割り込みが有効。 0 = MSP#nの割り込みが無効。 SI−シリアルインターフェイス 1 = シリアルインターフェイスの割り込みが有効。 0 = シリアルインターフェイスの割り込みが無効。 CNT−HSAB バス衝突エラー 1 = HSABバス衝突の割り込みが有効。 0 = HSABバス衝突の割り込みが無効。 DTC−DMA転送完了 1 = DMA転送完了の割り込みが有効。 0 = DMA転送完了の割り込みが無効。
【0075】3.DMA制御レジスタ(513) 図5Cで示される、DMA制御レジスタは、SICのM
SP−DRAM DMA制御装置の動きを決定します
(アドレス $04)。 DAI−DRAM アドレス増加/不変 ビット 1 = DRAMアドレスレジスタは、16ビットワー
ド転送毎に2ずつ増加 0 = DRAMアドレスレジスタは、転送後も、増加
しない。 DMA DRAM アドレスレジスタに書かれているD
RAMのアドレスは、DMA転送が完了するまで使われ
ます。 MAI−MSP アドレス増加/不変 ビット 1 = MSPアドレスレジスタは、それぞれ16ビッ
トワード転送毎に2ずつ増加 0 = MSPアドレスレジスタは、転送動作の間、増
加しない。 DMA MSPアドレスレジスタに書かれているアドレ
スは、データ転送が完了するまで使われます。 TD−DMA 転送方向ビット 1 = データは、システムDRAMからMSPへ、転
送される 0 = データは、MSPからシステムDRAMへ、転
送される ST−DMA スタートビット 1 = DMA転送スタート 0 = 動かない 4.DMA MSPアドレスレジスタ 図5Dで示されるDMA MSPアドレスレジスタは、
MSP領域へのアクセスのDMAで使われるMSPの動
きのアドレスを持っています。指定された16ビットア
ドレスは、MSP領域の基本アドレス$780000か
らのオフセットです。このレジスタは、それぞれの転送
動作の後、増加するのが、同じ所に留まるのかは、プロ
グラムにより設定が可能です(アドレス $04)。
【0076】5.DMA DRAMアドレスレジスタ 図5Eと図5Fで示されるDMA DRAMアドレスレ
ジスタは、分離DRAMへのアクセスのDMAで使われ
るDRAMの動きの23ビットのアドレスを持っていま
す。これら2つの16ビットレジスタは、それぞれの転
送動作の後、2づつ増加するのか、同じ所に留まるの
か、プログラムで指定できます(アドレス$08とアド
レス$0A)。アドレスビットA[0]は、それがいつ
も「0」であるので不必要で、そしてDMA DRAM
アドレスの確定したアドレスの範囲は、$600000
から$6FFFFFですから、アドレスビットA[2
0..22]は、常にバイナリーで「110」です。従
ってこれもまた不必要です。必要でないビットは、図5
Eと図5Fで表示されているような確定した値を内部で
結線されています。
【0077】6.DMAワード転送カウントレジスタ 図5Gと図5Hで示されるDMAワード転送カウントレ
ジスタは、DMAで使う転送の16ビットのワードの為
に19ビットの数が用意されています。この32ビット
レジスタの範囲は、それぞれのワード転送が終わるごと
に1ずつ減少させます。DMAワードを転送レジスタが
ゼロになったなら、SIC割り込み状態レジスタのDT
Cビットを設定して、その転送は”完了した”とみなし
ます。もしイネーブルなら、68340の入力へのSI
C_IRQL信号を発生します。読みこんだ時、このレ
ジスタは次のアクセスのカウント値を持っています。片
方のワードを読んだ時(アドレス $0C)、他方のワ
ード(アドレス $0E)は保持されます(アドレス
$0Cとアドレス $0E)。
【0078】7.CPU−MSPウィンドウレジスタ
(520) 図51で示されるCPU−MSPウィンドウレジスタ
は、CPUがMSPの”ウィンドウ領域”にアクセスす
る時、アクセスされるMSPを決めます(アドレス #
10)。 Mn−セレクト MSP #n ビット 1 = MSP #nは選ばれた 0 = MSP #nは選ばれていない
【0079】8.DMA−MSPウィンドウレジスタ
(520) 図5Jで示されるCPU−MSPウィンドウレジスタ
は、DMAコントローラがMSPの”ウィンドウ”にア
クセスする時、アクセスされるMSPを決めます(アド
レス #12)。 Mn−セレクト MSP #n ビット 1 = MSP #nは選ばれた 0 = MSP #nは選ばれていない
【0080】9.シリアルデータレジスタ 図5Kで示されるシリアルデータレジスタは、シリアル
インターフェイスの送受信データをたくわえます。D<
0..7>はデータビットです(アドレス $14)。
【0081】[4]楽音信号処理装置(MSP)(図
6,6A−6E) 図6にMSPの基本全体ブロック図を示します。図6A
から図6EはMSPの各ブロックをそれぞれ示します。
図6に示される様にMSPは、ホスト処理システムによ
ってプログラミングされ,複数のMSPによるマルチテ
ィンバー楽音合成を実行します。これを効率よく行うた
めにMSPは、ホストCPUインターフェース200、
RAMインターフェイス201、HSABインターフェ
イス202等の特別なインターフェイスを持ちます。ホ
ストCPUインターフェースブロック200は、MSP
内部の全ての領域へのアクセスをサポートします。ホス
トはMSP内部の全てのコンフィギュレーションレジス
ター、ステイタスレジスター、そしてデータレジスター
に対して読み込みあるいは書き込みが可能です。またM
SPには、32個の割り込みソースのどれが処理をリク
エストしているかを認識するための少なくとも2つの割
り込みレジスターを含む条件、割り込み、外部LEDイ
ンターフェイス(マスキング手段)203を含みます。
【0082】RAMインターフェイス201は、16M
egaワード(1ワード=24ビット)までのDRAM
をサポートします。HSABインターフェイス202
は、複数のMSP間の128チャネルのデータ通信を可
能にします。また、より高い処理能力を実現するため
の、複数のMSPによるアルゴリズム(プログラム)展
開を可能にします。MSPはXバス204、Yバス20
5の2つの内部メインバスを持ちます。主な信号処理機
能には24ビット*24ビット乗算器+56ビットアキ
ュムレーター(以下、MAC206と称す)そして算術
論理器ALU207があります。MAC206とALU
207は後で詳しく述べる様に、入力段のラッチ、シフ
ター、リミッター、マルチプレクサーを共有します。ま
たMSPはXメモリー208とYメモリー(係数メモリ
ー)209の2つの内部メモリーを持ちます。Xメモリ
ー208とYメモリー209は、それぞれ256ワード
のシングルポートスタティックRAMである。Xメモリ
ーバンクはリニアにアドレッシングされ、一方Yメモリ
ーバンクはリニアとサーキュラーリングの分割アドレッ
シングが可能です。
【0083】HSABインターフェイス202は、64
ワードのスタティックRAMを持ちます。ホストは、そ
のMSPがHSABインターフェイスの128個のどの
スロットを使用するかを示すHSABインターフェイス
202内のマッピングレジスターをプログラムします。
MSPはまたXメモリー208、Yメモリー209、そ
してRAMインターフェイス201によって制御される
外部RAMエリアへの間接アドレッシングを制御するイ
ンデックスレジスター210を持ちます。MSPはまた
Xバス204、Yバス205につながるノイズ発生装置
211、そしてまたXバス204、Yバス205につな
がるSとTレジスター212を持ちます。またMSP
は、ホストによって読み込み、書き込み可能なマイクロ
コードストアー213、マイクロコードストア213と
ホストCPUインターフェイス200につながるプリフ
ェッチバッファー214を持ちます。また、内蔵のクロ
ック及びタイミングコントローラーを持ちます。MAC
206とALU207へのデータパスには、Xバス20
4につながるX入力レジスター216とYバス205に
つながるY入力レジスター217があります。X入力レ
ジスター216とY入力レジスター217の出力はシフ
ター/リミッター218,219にそれぞれ接続しま
す。シフター/リミッター218,219の出力は5入
力1出力のマルチプレクサー220,221の入力の1
つにそれぞれ接続します。5入力1出力のマルチプレク
サー220,221のその他の入力ソースにはS/Tレ
ジスター212、ALU207の出力、MAC206の
出力があります。MAC206の出力はシフター/リミ
ッター240を通って5対1マルチプレクサー220に
入力されます。ALU207の出力はシフター/リミッ
ター241を通って5対1マルチプレクサー221に入
力されます。5入力1出力マルチプレクサー220,2
21の出力はMAC入力ラッチ223,224にそれぞ
れ接続し、またALU207の入力に直接接続します。
【0084】MAC入力ラッチ223,224の出力は
MAC206に接続します。MAC206の出力はラッ
チ224に接続します。ラッチ224の出力はシフター
225に接続し、さらにセレクター226を通してMA
C206にフィードバックされます。ラッチ224の下
位側ビットはラウンダー227に接続します。ラウンダ
ー227の出力はXバス204、Yバス205、コンパ
レーター228に接続します。またSとTレジスター2
12もこのコンパレーター228に入力します。ALU
207の入力には5対1マルチプレクサー220,22
1の出力、さらにS/Tレジスター212、インデック
スレジスター210が接続されます。ALU207は出
力ライン229にインデックス値、出力ライン230に
諭理演算結果、出力ライン231に制御出力をそれぞれ
発生します。出力ライン230の論理演算結果はラッチ
232に接続し、ラッチ232は出力ライン233,2
34によってXバス204、Yバス205にそれぞれデ
ーター転送します。ALU207のXバス出力ライン2
33はまたコンバレーター228に接続されます。コン
パレーター228の出力、MAC206の制御出力ライ
ン235、ALU207の制御出力ライン231は条件
割り込み、外部LEDインターフェイス203に入力さ
れます。MSPでは、Xバス204,Yバス205を介
してデーターストレージと処理ブロック間のオペランド
転送を行います。これらのバスは論理的には連続的なも
のであるが、パストランジスターによってメインレジス
ターバンク、ALU、MACバスから、I/O機能のい
くつかは分離されています。
【0085】A.内部タイミングの割り当て MSPとMSPを含むシステムのタイミングは、オーデ
ィオのサンプルレートを基に決められます。MSPは、
48KHzサンプルレートのシステムで実行する様に設
計されています。そして512マイクロコードステップ
を1サンプル内に実行可能です。各命令サイクルは、
X、Yバス205それぞれのレジスタアクセス1回とM
AC演算又はALU演算のどちらかを含みます。ALU
207とMAC206は別々にあり、それぞれ独立した
データの演算が可能です。ALU207とMAC206
はXバス204、Yバス205、入力マルチプレクサー
を共有しているので、MAC206かALU207のど
ちらか1つだけが1つの命令にてスタートすることがで
きます。マイクロコードはレジスターブロック、HSA
Bインターフェイス、RAM等の間のデータの動きを制
御します。マイクロコードデコード(不図示)には、ノ
ーマルデコードとスペシャルデコードがあります。ノー
マルデコードでは、1命令でXバス204、Yバス20
5それぞれ1回のレジスターアクセスとALU207か
MAC206の1回のオペレーションが同時に可能で
す。
【0086】スペシャルデコードでは、”CONDIT
IONAL INTERRUPT”と”LED”のオプ
コードを条件、割り込み、LED203に対して実行し
ます。スペシャルデコード命令が実行される時、命令デ
コードのためにインプットセレクトあるいはアドレスの
フィールドが使用されます。そのため、レジスターアク
セスは同一命令内で実行されない可能性があります。A
LU207は1命令に1回の演算を行います。MAC2
06は2命令に1回の演算を行います。ALU207と
MAC206は両方とも、それ自身あるいはお互いのデ
ータを入力できます。このため、常に演算結果をレジス
ターやRAMに書き込む必要はありません。実際には、
書き込みは別々の命令を実行するのに必要となります。
Xバス204またはYバス205がアイドルとなる命令
は、インターフェイス200を介してホストからのアク
セスに利用されます。
【0087】B.クロック、タイミング クロック、タイミング制御ブロック215は、オペレー
ションモードに従って、マイクロコードアドレスの発
生、更新を行います。MSPはホルト、単一ステップ、
フリーランの動作が可能です。実際にはHSABインタ
ーフェイス202からの次の同期パルスを受け取るまで
スタートしないが、ホストはいつでもMSPをスタート
させることができます。MSPはソフトウエアまたはハ
ードウエアにより、ホルトそして単一ステップの動作が
可能です。コンフィギュレーションレジスターにMSP
のラン/ホルトを制御するビットがあり、またMSPの
外部ピンによっても制御可能であります。このピンの設
定が「ロウ」の時、MSPはコンフィギュレーションレ
ジスターの設定にかかわらず停止状態になります。この
ピンの設定が「ハイ」の時、コンフィギュレーションレ
ジスターを「1」に設定することでMSPは動作状態に
入ります。ピンの設定が「ハイ」でコンフィギュレーシ
ョンレジスターが「0」の時、MSPは停止状態になり
ます。このレジスタービットはハードウエアリセットに
よって「0」に設定されます。一旦、外部ピン及びレジ
スタービットが「ハイ」に設定され、その時点から最初
の同期パルスを受信して、MSPは動作状態に入りま
す。MSPが停止状態の時でもHSABインターフェイ
ス202は動作しつづけ、またCPUは、ホストCPU
インターフェイス200を介して、レジスターやRAM
領域への読み込み、書き込みが可能です。
【0088】MSPがピン設定あるいはレジスター設定
によって停止状態の時、単一ステップピンとレジスター
ビットによって単一ステップ動作が可能です。この単一
ステップ動作は、システム又はMSPのデバッグが主な
目的となります。外部ステップピンからの立ち上がり信
号のエッジでMSPは1命令実行されます。この動作は
ある特定のタイミングで発生し、例えば、MSPが停止
状態で95番目の命令待ちの状態である時、単一ステッ
プのコマンドを受けると、通常の95番目のステップが
実行されるであろうサイクルまで待機します。そしてこ
の命令は実行され、その後、単一ステップレジスターは
「0」にリセットされます。CPU(図2参照)はMS
Pが通常の動作時にも、RAM領域やXバス204、Y
バス205をアクセスする必要があります。RAMのア
クセスは、MSPの1命令以上の時間を要し、かつMS
Pの内部サイクルはCPUのサイクルより短いので、M
SPはいつCPUがこれらのアクセスを実行する時間が
あるかを判断する必要があります。これを実現するた
め、MSPは6命令分のプリフェッチバッファ214を
持ちます。このプリフェッチバッファ214を埋めるた
めにCPUは少なくとも20μS、0番地のマイクロコ
ードをロードしてから”RUN/HALT”ビットを設
定するまで待つ必要があります。これにより、MSPの
プリフェッチバッファ214は新しい命令に更新され、
次の同期パルスを待って実行開始されます。この動作は
単一ステップ動作の時も同じである。
【0089】MSPのプログラムカウンター(PC)
は、9ビットの同期カウンターである。そして、実際に
は2つのカウンターがあり、1つは9ビット、1つは8
ビットです。メインカウンターの9ビットカウンターは
どのマイクロコードステップが実行されているかを示し
ます。これは単一ステップのトリガリングとその他、正
確な命令ナンバーを知る必要のある機能のために使われ
ます。一方の8ビットカウンターはプリフェッチバッフ
ァ214に読み込まれるマイクロコードRAMのアドレ
スを発生します。MSPが停止状態の時、MSPはXバ
ス204、Yバス205へのアクセスを実行しません。
そのためCPUはウェイト無しで、MSP内部レジスタ
ーへのアクセスが可能となります。ホストは”RUN/
HALT”ビットあるいは単一ステップを設定する前
に、全てのホストアクセスを実行終了する必要がありま
す。例えば、ホストDMAアクセスが開始して、もしM
SPの”RUN/HALT”ビットがこのアクセスが終
わる前に設定された場合、MSPの実行結果とDMAの
実行結果は不定となってしまいます。
【0090】C. ホストCPUインターフェイス ホストプロセッサーはホストCPUインターフェイス2
00を介して、MSPの内部レジスターを読み込み、書
き込みしたり、MSPの動作や構成を制御したりしま
す。ホストCPUインターフェイス200はRAMイン
ターフェース201、HSABインターフェース201
と同様に、割り込み、制御レジスター、全てのMSP内
部レジスターを設定するための主なインターフェイスで
ある。ホストCPUインターフェイス200は、Xバス
204、Yバス205に対してALU207や他の内部
ブロックと競合する必要があります。このために、ホス
トCPUインターフェイス200は、CPUがリクエス
トする動作が実行終了するまで、CPUのサイクルにウ
ェイトステートを挿入します。例えば、ALU207が
使用中のXメモリー208への書き込み動作では、実行
可能になるまでホストへのウエイトステイトが発生しま
す。ホストは”ready”ビットをポーリングする必
要はなく、またホストCPUアクセスに対するMSP内
のバスは管理され、ホストCPUインターフェイス20
0はMSP内部データへの高速でシンプルなアクセスを
可能にしています。制御及びコンフィギュレーションレ
ジスターは、ホストに対してウエイトステイトを発生し
ません。そして読み込み、書き込み時のある状態におい
てもウエイトステイトは発生しません。このウエイトス
テイト発生の方法によりCPUは同じバスサイクルで複
数のMSPへの書き込みが可能です。この動作は、ワイ
ヤードオアされたウェイトステート信号と、複数発生す
るチップセレクト信号により行われます。実際にはこの
機能はSICの機能である。
【0091】図6Aは複数のMSPへの同時書き込み動
作を可能にする”MSPウインドウ”のブロック図を示
しています。図6Aの様にCPU50はSIC73は接
続されます。SIC73は、アドレスライン52,制御
信号ライン53を通してチップセレクトとアドレスをC
PU50から受信し、CPU50はSIC73から、ク
ロックライン54からの信号を受信する。SIC73は
複数のチップセレクト300−0から300−NをMS
P150−0からMSP150−Nにたいしてそれぞれ
発生します。複数のMSPはプルアップ抵抗302を持
ちアクティブロウライン301でCPU50にウエイト
ステイトを出力すると共に読み込み、書き込み、データ
のストローブ信号をアクティブロウ303に出力しま
す。この構成によりチップセレクトの対象となる全ての
MSPにパラレルにデータをロードする事ができます。
【0092】CPUインターフェイスには、16ビット
のアドレス空間内の、2Kワード領域としてCPU50
から出力される。このアドレス空間は全ては使われては
いませんが、割りつけされています。ホストCPUイン
ターフェイス200はMSP内部のワード長(16,2
4,56,80ビット)と16ビット長のCPUアクセ
スとのインターフェイスをとります。データはMSP内
部で読み込み、書き込み時にラッチされます。これによ
りCPUは1つのアクセスに対し最初のワードの読み込
み、あるいは最後のワードの書き込みの時だけウエイト
ステイトを受け取ることになります。またホストCPU
インターフェイス200はMSP内部レジスター、ポー
トに対するアクセスのデコーディングを行います。”B
IGENDIAN”入力ピンによって、MSPワードと
ホストワードのインターフェイスのフォーマットを設定
します。”BIGENDIAN”入力ピンが「1」の
時、MSPのレジスターはいわゆる”Big−Endi
an”構成としてマッピングされます。例えば、ダブル
ワードの小さいアドレスの方のワードがMSB側ワード
となります。”BIGENDIAN”入力ピンが「0」
の時、MSPのレジスターはいわゆる”Little−
Endian”構成としてマッピングされます。例え
ば、ダブルワードの小さいアドレスの方のワードがLS
B側ワードとなります。
【0093】ホストCPUインターフェースブロック2
00の主な構成を以下に示す。 ホスト、読み込み/書き込みポート ホストワード、MSPワードインターフェイス ホスト、アドレスデコード ホスト、ウエイトステイト発生装置 ホスト、読み込み/書き込み制御装置、タイミング制御
装置
【0094】D. コンディショナル、割り込みインタ
ーフェイス(203) MSPはホストに対するコンディションリクエスト、ま
た自身のプログラムコードによるコンディション実行を
常に管理する必要があります。MSPでは、割り込みフ
ラグと実行フラグによってその両者を可能にしていま
す。実行フラグはさらに通常の”if−then−el
se”機能とマイクロコードダウンロード時に最もよく
使われる”nop−op”機能に分けられます。MSP
はホストCPUインターフェイス200に対して32個
までの割り込みソースが可能なように設計されていま
す。これらの割り込みはMSPの命令のどのタイミング
でも発生します。そして、マスクされていない割り込み
がトリガーされた時、ホストCPUインターフェイス2
00に対して割り込みを発生します。これは、”INT
(#,<condition>)”命令が実行された時
に発生します。もしコンディションが「真」ならば指定
された割り込みビット#が設定されます。そしてもしこ
のビットがマスクされていないなら、割り込み信号は
「LOW」に設定されます。そしてホストはどの割り込
みが処理を必要としているかを知るために割り込みリク
エストレジスターを読み込みします。割り込みリクエス
トレジスターに発生している割り込みは、CPU50が
割り込みリクエストレジスターを読み込みしたときに全
てクリアーされます。コンディションが、ALU_LA
TCHED_OVERFLOW,MAC_CLIPPE
Dの割り込み命令も対応するビットをクリアーします。
ホストは割り込みマスクレジスターを書き込みすること
でどの割り込みもマスクできます。また割り込みリクエ
ストレジスターの対応するビットに「1」を書き込みす
る事で全ての割り込みの禁止又はクリアーする事ができ
ます。リセット時は、全ての割り込みはマスクされま
す。またMSPは条件判断の実行が可能です。MSP内
に”if−then−else”と”no−op”の2
つの実行フラグがあります。フラグは「真」「偽」どち
らかの状態にあります。”if−then−else”
フラグの状態は3つのソースに影響されます。MSPの
命令実行中に、もしこのフラグが「偽」に設定された
ら、その間全ての命令はRAM、その他に演算結果の書
き込みする事を禁止されます。この状態は”if−th
en−else”フラグがリセットされるまで続きま
す。これによりMSPは、コンディショナルコードの実
行中もシステムの他の部分と同期し続けます。”if−
then−else”フラグはALU207やMAC2
06内のコンディションによって設定されます。図6B
は”if−then−else”フラグ機能を図解して
います。MSPマイクロコード310は命令312〜3
18のシーケンスを行う部分311を含みます。各命令
終了時の実行フラグの値は、もしコンディションが
「真」なら319列の値に、コンディションが「偽」な
ら320列の値になります。
【0095】図6Bの右部分の命令312〜318はC
言語に置き換えた時のMSPマイクロコードを表しま
す。MSPのシーケンス部分コード311はMSPコー
ド312に最初のオペレーションを含んでいる。ここで
は、実行フラグはコンディションにかかわらず「真」と
なります。C言語で”if<condition>th
en”で表わされる条件判断ルーチンは、コード313
行からスタートします。ここでは、実行フラグを立てま
す。この時条件判断結果が「真」の場合(図6Bにおけ
る319に対応)実行フラグは「真」のままでいます。
またコード320に示される様に条件判断結果が「偽」
の場合、実行フラグは「偽」にリセットされます。これ
により、もし条件判断結果が「真」の場合コード314
行で条件判断による実行がおこなわれ、もし条件判断結
果が「偽」の場合は、実行されない事になります。コー
ド314行の終了後、コード315行にあるインバート
フラグの命令が実行されます。ここでは、もし条件判断
結果が「真」であった場合、実行フラグは「偽」に設定
され、「偽」であった場合実行フラグは「真」に設定さ
れます。さらに、条件判断結果が「真」であった場合、
コード316で条件判断結果による実行はされず、もし
条件判断結果が「偽」であった場合は実行されます。コ
ード316行の終了後、コード317行にあるセットフ
ラグ「真」の命令が実行されます。ここでは、条件判断
結果にかかわらず次のコード318行で実行フラグは
「真」に設定されます。実行フラグを使ってサポートさ
れるコンディションの1覧を図6Bに示します。またM
SPは、コンディションの1つとして外部コンディショ
ン入力ピンを持ちます。マイクロコード310によって
外部条件判断の入力ビットを使い”if−then−e
lse”フラグを操作することができます。2つめのフ
ラグ、”no−op”フラグはホストがNOPカウント
レジスターを”non−zero”値にプログラムした
時に設定されます。これはマイクロコードをダウンロー
ドしている間使われ、そしてどのフラグにも関係なく、
指定された命令を無視します。”no−op”フラグを
リセットするオプコードはありません。
【0096】マイクロコード310の1部分が書き換え
られている時、CPUは”NOPスタートレジスター”
と”NOPカウントレジスター”を初期化して、マイク
ロコードブロックに書き込みします。そしてCPUは”
NOPカウントレジスター”に「0」を書き込みする事
で”no−op”フラグをリセットします。これによ
り、動作中のMSPのシンプルで確実なマイクロコード
のダウンロードが実現されています。条件判断、割り込
み・LEDインターフェイス203の主な構成を以下に
示す。 ・条件判断状態の制御及びストレージ ・NOP命令カウンター、NOPスタート、NOPカウ
ントレジスター ・データの読み込み、書き込み制御 ・割り込みマスク/リクエストレジスター ・割り込みリクエストシグナル発生器 E.高速オーディオバス(HSAB)インターフェイス MSPは他のMSPとコミニュケートするためのHSA
Bインターフェイス202を持ちます。これによって、
複数のMSPによるの信号処理、シンセシスを可能にし
ています。これが高速シリアル・パラレルオーディオデ
ータバス(HSAB)である。このバスは24ビットオ
ーディオデータの128の独立したチャネルを持ちま
す。それぞれのチャネルは、ホストのプログラミングに
より、複数のMSPによってアサインすることができま
す。24ビットオーディオデータは12ビットのバスを
1個の送信MSPから複数の受信MSPに2回で転送さ
れます。DAADチップ154(図4)はこのHSAB
のバスマスターとなり、全てのMSPとDAAD自身の
タイミングと同期を制御します。図6CにHSABイン
ターフェイス202のブロック図を示します。このイン
ターフェイスには、Xバス204、Yバス205、64
ワードのバッフアーRAM331に接続する24ビット
幅のマルチプレクサー330があります。マルチプレク
サー330はHSAB制御ブロック332へのデータを
セレクトすべくXバス204、Yバス205、HSAB
データRAM331からデータを受信します。このブロ
ックはHSABデータ340、そしてクロック341、
同期信号342などのHSAB制御信号を発生します。
バスからのデータは、またマルチプレクサー330に入
力されます。
【0097】そしてXバス204、Yバス205、HS
ABデータRAM331のどれかへ送信されます。マル
チプレクサー330は制御、タイミングブロック332
からのタイミング信号333によって制御されます。こ
のタイミング信号はまた、データバッファーRAM33
1のアドレスを発生するマルチプレクサー334も制御
します。バスマッピングRAM335で、そのMSPで
使うHSABバスの128チャネルのうち64チャネル
までをマッピングします。マッピングRAM335のア
ドレスは、制御、タイミングブロック332によって制
御されるマップアドレスカウンター337の出力にある
マルチプレクサー336から発生します。マルチプレク
サー336の一方の入力はホストアドレスです。マッピ
ングRAM335はマルチプレクサー334へ、読み込
み、書き込みアドレス情報、書き込みアドレスラッチ3
38による書き込みタイミングで発生します。マルチプ
レクサー334はマッピングRAM335、ホストアド
レス、命令からのXアドレス、Yアドレスを受信しま
す。HSABマッピングRAM335により、フルプロ
グラマブルなI/OチャネルからHSABデータRAM
へのマッピングが可能である。データバッファーRAM
331は64ワードなので、それぞれのMSPは64チ
ャネルまでのI/Oを使用できます。HSABマッピン
グRAM335は、バスからどのチャネルのデータを受
信するか、どのチャネルにデータを送信するかを示しま
す。複数のMSPそれぞれのHSABマッピングRAM
335により、HSABのデータ通信は設定されます。
これにより実行中のボイスプログラムに必要な、複数の
MSPそれぞれの構成、オーディオ出力構成が決められ
ます。
【0098】MSPはそれぞれが、64のHSABチャ
ネルを使用することができます。MSPはHSABデー
タ用の64ワード*24ビットのRAM331を持ちま
す。HSAB MAP RAM335はホストによって
プログラムされ、どのチャネルが送信で、どのチャネル
が受信で、どのチャネルが使われないかを制御します。
マップRAM335では128チャネルのそれぞれに対
してイネーブルビット、ディレクションビット、そして
I/OチャネルがHSABデーダRAMの64ワードの
どれにマッピングするかを示す6ビットのアドレスがあ
ります。通常のオペレーション時には、1つのMSPま
たはDAAD154だけが1つのチャネルでデータ送信
できます。しかしながら、システム開発あるいはデバッ
グ時には、2つ以上のMSPが同時にデータ送信するよ
うにプログラムされる可能性があります。DAAD15
4は複数のMSPが同時にHSABをドライブする事を
防ぐためのバス衝突検出ロジックを持ちます。それぞれ
のMSPはHSABOEL信号を実際にデータ送信する
I/Oスロットの1つ前のスロットでアサートします。
DAADはそれぞれのMSPとDAADからHSABO
EL信号を受信し、もし2つ以上のHSABOEL信号
が同時にアサートしていたら、HSABCNTERRL
信号をアサートします。そして、MSPは次のI/Oス
ロットでのデータ送信を禁止します。
【0099】HSABデータRAM331はシングルポ
ートRAMです。そのため、そのアクセスにはソフトウ
エアー上の制限があります。HSABチャネルワードは
MSPの4命令毎に送信されます。2つめのハーフワー
ドのデータ送信の終わりに、それがイネーブルの場合、
次のHSABデータはRAMから読み込みされます。1
つめのハーフワードのデータ送信の始めの部分で、前の
チャネルで受信したデータをデータRAMに書き込みし
ます。この動作にMSPの4マイクロコードサイクルの
うち2マイクロコードサイクルかかります。MSPのマ
イクロコードコンパイラーはこのことを認知して、これ
らの命令のタイミングでHSABデータRAMをアクセ
スしてはいけません。もしアクセスされた場合には、C
PUステータスレジスターにエラーである事を示す”H
SAB ACCESS ERROR”ビットが設定され
ます。
【0100】HSABはMSPコンフィギュレーション
レジスターの”HSAB ENABLE”ビットでイネ
ーブル/ディスエーブルする事ができます。リセット
後、HSABはディスエーブルされています。ホストは
コンフィギュレーションレジスターとマップレジスター
をプログラムする時、”HSAB ENABLE”ビッ
トを「1」に設定します。そしてMSPは次の同期信号
を待ちます。パワーオンリセット後、全てのMSPはホ
ルト状態にあります。同期信号はDAADからリセット
後48KHzサンプルレート後に発生されます。ホスト
が全ての内部レジスター、マイクロコード、RAM、コ
ンフィギュレーションレジスターなどをプログラムした
後、MSPはランモードに設定されます。MSPはそれ
ぞれ次のI/O制御ブロックからの同期信号を侍ちま
す。この同期信号のパルスによりMSPの内部マイクロ
コードポインターは、最初の命令に設定され、オペレー
ションが開始されます。このように、システム内の全て
のMSPは単一ステップモード時を含め、常に同期して
いる事になります。HSABインターフェイス202の
主な構成を以下に示す。 ・HSABデータRAM ・HSABマップRAM ・HSABマップカウンター ・HSABタイミング、制御発生装置
【0101】F. RAMインターフェイス MSPのRAMインターフェイス201は24ビットの
アドレスエリア、16Mワード*24ビットの大容量の
メモリーエリアへのアクセスをサポートします。実際の
RAM領域は8本のRAS信号で8つのエリアに分割さ
れます。アドレスバスはDRAMサポート用に設計され
ています。書き込み可能なRAM領域はアドレッシング
の方法が異なる2つの部分に分けられます。1つはディ
レイライン用にサーキュラーにアドレッシングさせま
す。1つはサンプルデータ、エンベロープテーブルなど
のためのリニアアドレッシング、テーブルルックアップ
の領域です。これらのアドレッシングの方法を図6D、
図6Eにそれぞれ示します。テーブルとディレイの設定
は64セットあるコンフィグレーションレジスター(デ
ィレイライン制御装置、サンプル格納手段、ディレイラ
イン制御手段)350で行います。図6Dはディレイラ
インとテーブルのメモリーマッピングを示したもので
す。349がディレイライン領域、350がテーブル領
域です。ディレイライン領域は”DLTOP”351で
示されるRAMインターフェイスブロックにあるデクリ
メントカウンターの範囲によって決まります。「0」か
ら63までの64個までのディレイラインとテーブルの
ブロックを持つことができます。
【0102】スロット6とスロット5に対するオフセッ
ト値の違いはディレイライン5のサンプル数によって決
まります。図の例では、オフセット値の違いは2000
になります。ディレイライン5が2000サンプルの長
さで、その内900が書き込みされている場合、900
以上のデータは不定となります。リセット後、900が
書き込みされている場合、ディレイライン5のカウンタ
ー値は900となります。ディレイラインのための書き
込みアドレスはそのディレイラインのオフセット値にデ
ィクリメントカウンター値を足す事で得られます。ディ
レイラインのための読み込みアドレスはディレイライン
の長さがレジスターファイル350のカウンター値よ
り、短いかあるいは等しい場合は、ディクリメントカウ
ンター値とオフセット値とディレイ値を足した値になり
ます。MSPバスからテーブルナンバーとインデックス
で与えられるテーブルアドレスは、”DLTOP”値、
レジスターファイル350のテーブルオフセット値、イ
ンデックス値を足した値になります。アドレス発生の論
理を図6Eに示します。入力信号として、レジスターフ
ァイルからのパーテションベース値370、MSPから
のディクリメントカウンターリセット信号371とサイ
クルスタート信号372、ディレイライン/テーブルイ
ンデックス信号374などがあります。ディクリメント
カウンター(ディレイライン制御手段)373はリセッ
ト信号、サイクルスタート信号をMSPから受信しま
す。パーテションベース値、ディクリメントカウンター
出力値はマルチプレクサー(ディレイライン制御手段)
375に入力されます。マルチプレクサー375はレジ
スターファイル350の”DL/T”ビットに対応して
ベースアドレス376を出力します。オフセット値はイ
ンデックスレジスター(ディレイライン制御手段)37
7からの378により、テーブルオフセットまたはディ
レイライン長によって与えられます。
【0103】また、オフセット値はレジスターファイル
350からも379により与えられます。378、37
9の値は加算器(ディレイライン制御手段)380で加
算されオフセット値381となります。ベース値376
とオフセット値381は加算器(ディレイライン制御手
段)382により加算されます。加算器382の出力は
直接テーブルアドレスとして使われ、また、剰余論理回
路(ディレイライン制御手段)383に出力されます。
また剰余論理回路384はまた”DLTOP”値を受信
します。剰余論理回路383はディレイラインアドレス
385を出力します。マルチプレクサー(ディレイライ
ン制御手段)386はレジスターファイル350の”D
L/T”ビットにより制御され、レジスター387にア
ドレス値を出力します。偶数/奇数ワードの切り替えビ
ット388はホストにより制御されます。コンフィグレ
ーションレジスターのそれぞれは3つのパート、ベース
オフセット、カウンター、ディレイラインかテーブルか
を示す”DL/T”ビットから成ります。ベースオフセ
ットはディレイあるいはテーブルのスタート位置を示し
ます。カウンターは”DL/T”ビットによって動作が
違います。”DL/T”ビットがテーブルに設定されて
いる時、このカウンターは何の意味も持ちません。ディ
レイに設定されている時、カウンターはディレイライン
の読み込みにおけるゲーティングに用いられます。ディ
レイラインはこのカウンターをゼロにする事で初期さ
れ、その後このカウンターは毎書き込み(毎サンプル)
インクルメントされます。そしてディレイライン読み込
み時に、もしリクエストされるディレイ時間が、このカ
ウンターがリセットされてから実際にストアーされたサ
ンプル数よりも長い場合、ゼロ値が読み込み値として出
力されます。もしリクエストされるディレイ時間が、カ
ウンター値以下の場合、実際にメモリーにストアーされ
た値が出力されます。カウンターは”$FFFF”で停
止します。その後はディレイ時間にかかわらず実際にメ
モリーにストアーされた値が出力されます。これによっ
て、実際にメモリーにゼロを書き込みする事なく、ディ
レイラインを初期化する事ができます。
【0104】ディレイラインでは、書き込みは通常ディ
レイラインの先頭で行われ、読み込みは通常あるサンプ
ル数前で行われます。書き込み動作では、アドレス値は
パーテションベース値、そのディレイラインのオフセッ
ト値、ディクリメントカウンターの出力値より作られま
す。読み込み動作では、インデックスレジスターのディ
レイ値にディクリメントカウンター値、そのディレイラ
インのオフセット値を加算して作られます。通常の動作
時、CPUはRAMエリアをMSPと競合してアクセス
しなければなりません。RAMアクセスはMSPの1命
令以上の時間を要するので、MSPはいつCPUがこれ
らのアクセスを実行する時間があるか判断することがで
きる必要があります。これを実現するため、MSPは6
命令分のプリフェッチを持ちます。CPUはMSPレジ
スターマップにある、シングルワードレジスターにおけ
るRAMへのデータのダウンロードを行います。CPU
によってどのアドレスに、ダウンロードされたデータが
書き込みあるいは読み込みされるかは、2つのRAMポ
インターによって決まります。1つのポインターはCP
Uが直接RAMをアクセスした時に使われ、1つはSI
CがDMA転送を行う時に使われます。どちらが使われ
いるかは、アクセス開始時の”CPUDMAL”入力ピ
ンの値で決まります。RAMインターフェースブロック
201の主な構成を以下に示す。 RAMアドレス制御マルチプレクサー RAMアクセスアドレスラッチ RAMアクセスデータラッチ RAS、CAS、WE発生装置 RAMコンフィグレーションレジスター RAMサーキュラー/リニアスプリットレジスター サーキュラーアドレスカウンター RAMアドレス演算器 RAMデータ入出力制御
【0105】G. 疑似 ランダムノイズ発生装置 疑似ランダムノイズ発生装置211は24ビットデータ
をXバス204、Yバス205のいずれかに出力しま
す。ノイズ発生装置の出力は、”Nn=5*Nn− 1
+1”で定義されます。そしてフィルター付ノイズ発生
装置の出力は、”FNn=(Nn+Nn−1)/2”で
定義されます。ノイズレジスターはMSPまたはCPU
によって読み込み(”RD_ACCESS”として示さ
れる)ごとに更新されます。ホストCPUはこのノイズ
発生装置の値をXバス204またはYバス205を介し
て読み込みできます。またCPUはまたノイズ発生装置
を書き込みする事で出力を制御できます。ノイズ発生装
置及びフィルター付ノイズ発生装置はHSABデータメ
モリーの先頭にマッピングされます。
【0106】H. マイクロコードストレージブロッ
ク、プリフェッチブロック マイクロコードストレージブロック213とプリフェッ
チブロック(プリフェッチバッファ)214は別々のI
/O付のシングルポートRAMにより構成されていま
す。1ステップ40ビットで512ステップのマイクロ
コードを80ビット、256ワードとして持っていま
す。マイクロコードは現在の実行情報を持ちます。マイ
クロコードはまた、3ワード(6命令)、プリフェッチ
されます。これによって、MSPはいつ内部バスやRA
MアクセスをホストCPUが使用できるかどうかを決め
る事ができます。CPUは80ビット長のマイクロコー
ドをダウンロードします。これは5回の1ワード16ビ
ットの書き込みが必要です。アッセンブルされたワード
の配置はマイクロコードポインターレジスターでの設定
によります。ここには2つのポインターがあります。1
つはSICがマイクロコードをダウンロードする時のも
ので、1つはCPUがマイクロコードを直接アクセスす
る時のものです。どちらのポインターが使われているか
はアクセススタート時の”CPUDMAL”入力ピンの
状態で決定されます。
【0107】マイクロコードはMSPが動作中でもCP
Uがメモリーブロックをアクセスできるように、2命令
を1ワードとしてストアーされています。これにより、
常に新しいマイクロコードをダウンロードできる、十分
な時間を確保しています。マイクロコードは前方向のみ
のダウンロードが可能です。MSPではマイクロコード
のダウンロードをMSPが停止時にも動作時にも行うこ
とができます。NOPスタートとNOPカウントレジス
ターはマイクロコードの1部分を変更する必要があると
き、そしてMSPがマイクロコードの1部分を変更中に
も動作し続ける場合に使用されます。
【0108】I. X、Yレジスターストレージブロッ
ク X、YレジスターブロックXメモリー208、Yメモリ
ー209は2つのスタティックRAMで構成され、MA
C206、ALU207に対する高速アクセスを行う内
部データストレージです。Xメモリー208はXバス2
04からのみアクセスでき、Yメモリー209はYバス
205からのみアクセスできます。それぞれは、256
ワード*24ビットのサイズです。CPU50はこれら
をアクセスすることができるか、MSP内部における命
令の実行状態によっては、1つあるいはそれ以上のウエ
イトステイトが必要になる場合があります。Yメモリー
209は、Yサーキュラー/リニア スプリットポイン
トレジスターによって設定されるポイントで2つの領域
に分割されます。このレジスターはサーキュラーメモリ
ーのワード数0,4,8,16,32,64,128,
256を決める3ビット値をもちます。メモリーの下側
は、サーキュラーにアドレッシングし、上側は、リニア
にアドレッシングします。毎サンプルにデクリメントす
る8ビットのデクリメントカウンターは全サーキュラー
アドレッシング領域をカバーします。
【0109】サーキュラーアドレスはこのデクリメント
カウンターとマイクロコードのアドレス値と、もし間接
アドレッシングモードならばインデックスレジスターの
値によって作られます。リニアアドレスはマイクロコー
ドのアドレス値と、もし間接アドレッシングモードなら
ばインデックスレジスターの値によって作られます。サ
ーキュラーアドレッシングかリニアアドレッシングか
は、マイクロコードのアドレス値によって決定します。
もしマイクロコードのアドレス値がサーキュラー/リニ
アのスプリットポイント以下ならサーキュラーアドレッ
シングに、それ以外はリニアアドレッシングとなりま
す。
【0110】J. テンポラリーレジスター(S/T) 2つのテンポラリーレジスター(S/Tレジスター)2
12があります。それぞれ24ビット長でデータのテン
ポラリーストレージに使われ、Xバス204又は、Yバ
ス205からアクセスできます。またMAC206とA
LU207の入力としても使われます。これらのレジス
ターはTレジスター、Sレジスターとして扱われます。
またこれらのテンポラリーレジスターにストアーされた
データはMAC206、ALU207の出力段にあるコ
ンパレータ228にも出力されます。
【0111】K. 24ビット*24ビット乗算器、5
6ビットアキュムレーター MAC206はMSPの中で最もタイミングが厳しい部
分です。乗算器のスピードが最小命令時間を決定しま
す。乗算とアキュムレートが最悪の条件下で80ns以
下で実行できれば25MIPsが満足できます。このブ
ロックは24ビット*24ビット高速固定小数点乗算器
で構成されています。 ”final partial
−product adder”が56ビットアキュム
レーターとマージします。乗算器は符号付(2の補数)
の乗算、及び倍精度乗算のためのビットシフトを実行し
ます。さらに、プログラマブルでY入力の符号反転演算
も可能です。X入力、Y入力は次に示す、X、Yバスラ
ッチとマルチプレクサーからデータが転送されます。
【0112】MAC206への入力は、乗算サイクルが
2命令かかるため、正しい結果がアクセスされる事を保
証するためにラッチされます。MAC206の出力は5
6ビット長で出力されますが、ラウンドされた24ビッ
トだけがX、Yバス205に書き込みできます。アキュ
ムレーターはコンディショナルインターフェイスとステ
ータスレジスターに対してフラグを発生します。また2
4ビットのラウンドされた演算結果は、コンパレータ2
28へ供給されます。56ビットアキュムレーターの一
方の入力はゼロ値、現在アキュムレートされているラッ
チされている値、または倍精度演算用に23ビットにシ
フトされたデータのいずれかを選択します。マイクロコ
ードと乗算器は符号無し又はミックスモードの乗算をサ
ポートしていないので倍精度データの下位側のデータ
(LSW)のMSBは常にゼロとなります。 よって、
MSPの倍精度演算は実際には、24ビット*47ビッ
トまたは、47ビット*47ビットとなります。MAC
206は1回のX、Yバス205それぞれのレジスター
アクセスを含み、2命令サイクル(2*40ns)で実
行されます。MAC206は次に示すオペレーションを
実行します。 NOP no−operation SMPY 符号付乗算 SMPYMINUS 符号付乗算、Y入力符号反転 SMAC 符号付乗算/アキュムレート SMACMINUS 符号付乗算/アキュムレート、Y入力 符号反転 SMACSHIFT23 符号付乗算/アキュムレート、倍精度 SMACMINUSSHIFT23 符号付乗算/アキュムレート、Y入力 符号反転乗算器、アキュムレ ーターの主な構成 を以下に示す。 24ビット*24ビット=48ビット、符号付パーシャ
ルプロダクト乗算器。56ビットアキュムレーター(乗
算器とマージ)。出力マルチプレクサー及び書き込みラ
ッチ。
【0113】L. 24ビットALU ALUブロック207は特殊な算術論理演算器(Ari
thmetic−Logic−Unit)の機能を持ち
ます。40nsで実行され、X、Yレジスター両方への
書き込みが可能です。ALU207の2つの入力はそれ
ぞれ別々のマルチプレクサーから入力されます。ALU
207はコンディショナルインターフェイスとステータ
スレジスターに対してフラグを発生します。ALU20
7の出力はコンパレータ228及びX、Yバス書き込み
ラッチに供給されます。アキュムレーターの値が例え
ば、全演算結果や位相加算値の少数点以下の値など2つ
のパートに分かれた値を発生するのに使われるかもしれ
ないので、ここには2つのラッチがあります。
【0114】ALU207のオペレーションは、Xバス
204、Yバス205それぞれのレジスターを1回アク
セスを含め、40nsを要し、1命令で実行されます。
ALU207は次に示すオペレーションを実行します。 NOP no operation SADD 符号付加算 UADD 符号無し加算 SSUB 符号付減算(X−Y) USUB 符号無し減算(X−Y) SADDABS 符号付加算(X+|Y|) SSUBABS 符号付減算(X−|Y|) NEGATE 否定値(2の補数) ABS 絶対値 SIGN 符号検出 ENVELOP エンベロープ値、増減値、目
的値、セグメントテーブル制御など OSCILLATOR1 位相角、補間定数演算 OSCILLATOR2 位相角、補間定数演算 HAMMER 位相角、補間定数演算 SAMPLE 位相角演算、ループ制御(整
数16ビット、小数点以下16ビット) SAMPLE1 位相角演算、ループ制御小数
点以下(24ビット) SAMPLE2 位相角演算、ループ制御(整
数24ビット) INTERPOLATE 1−X COPY オペランドソースをアキュム
レーターX、Yにコピー ASR1 算術右1ビットシフト ASL1 算術左1ビットシフト ASR4 算術右4ビットシフト ASL4 算術左4ビットシフト DITHER DACへの出力用、LSBの
乱数処理 ONEMINUSABS 1−|X| LIMITPOSITIVE 半波整流
【0115】M. スペシャルデコード命令(特殊命
令) 特殊命令は1命令、40nsサイクルで実行されます。
特殊命令サイクル実行中はX、Yバス205へのレジス
ターアクセスはできません。特殊命令には、次に示すオ
ペレーションがあります。 INT #,<condition> もし<c
ondition>が真なら、ビット#でCPUに割り
込みをかける。 SET FLAG,<condition> もし<c
ondition>が真なら、コンディションフラグを
設定する。 LED,<condition> もし<c
ondition>が真なら、LEDをONする。
【0116】N. コンペアブロック コンペアブロック228はALU207やMAC206
の出力がある条件に一致した事を認識します。これに
は”テンポラリーレジスターT、S未満”、”テンポラ
リーレジスターT、S以上”、”テンポラリーレジスタ
ーT、Sで指定した範囲内でゼロに等しい”場合があり
ます。
【0117】O. ラウンダー ラウンダー(丸め器)227はMAC206の56ビッ
トデータ出力を24ビットのMSPワードサイズへのデ
ータ丸めを”コンパージェントラウンデイング(con
vergent rounding)”の方法でおこな
っている。また、MAC206のデータ範囲のリミット
動作も同時に行っています。コンバージェントラウンデ
イングの方法はスタンダードラウンディングのバリエー
ションです。スタンダードラウンデイングは定数”0x
800000”をMAC206の56ビットの演算結果
に加算することで構成されます。2の補数のデータを使
っている場合は、この方法は丸め誤差にプラスのバイア
スをもたらします。
【0118】コンバージェントラウンデイングはこのバ
イアスを除去するタイプのものです。コンバージェント
ラウンデイングでは最初、スタンダードラウンデイング
を実行し、次にその結果のビット0−23がゼロかどう
かをテストします。そして、もしビット0−23がゼロ
ならば、ビット24をクリアーします。MAC206の
出力が正確に2つの値の中間値の場合0.5の場合、半
分の場合切り上げられ、残りの場合切り捨てられます。
このようにして、丸め誤差の平均値はゼロとなります。
【0119】P. インデックスレジスター MSPには4つの主なデータストレージに対する間接ア
ドレッシングをサポートするための、インデックスレジ
スター210があります。このインデックスレジスター
210へは、X、Yバスのどちらかによって書き込みで
き、またホストからは読み込み、書き込みが可能です。
インデックスレジスター210は24ビット長で自動的
にインクルメントすることができます。
【0120】Q. インプットレジスター X、Yバス205のデータをALU207やMAC20
6の入力データとして使うための2つのレジスター21
6,217です。
【0121】R. インプットシフター/リミッター ALU207、MAC206のX、Y入力オペランド
を、シフト/リミットするための、4つのシフター/リ
ミッター218,219,240,241があります。
MAC206、ALU207のXあるいはY入力レジス
ターのデータは実行中のマイクロコードに従って、シフ
ト/リミットされます。符号付データに対して、シフタ
ーは算術シフトを行います。そして、符号無しデータに
対して、論理シフトを行います。符号付データか符号無
しデータかによって、リミット値もまた、違ってきま
す。
【0122】S. インプットマルチプレクサー ALU207、MAC206のX、Y入力それぞれにマ
ルチプレクサー220,221があります。 これら
は、MAC206、ALU207、T、S、X入力レジ
スターからX入力をセレクト、MAC206、ALU2
07、T、S、Y入力レジスターからY入力をセレクト
します。X入力レジスター、Y入力レジスターからのデ
ータはマイクロコードに従って、シフト、またはリミッ
トされます。
【0123】T. MSPレジスターの説明 ここでは、MSPホストCPUインターフェース200
におけるレジスターの定義についての述べます。内部デ
ータ空間、ステータスレジスター、コンフィグレーショ
ンレジスター、RAM、マイクロコードポート、ポイン
ター等を含みます。
【0124】1. X、Yレジスター X、Yレジスター領域208,209はレジスターマッ
プの先頭にあります。これらは、MSPの内部ポインタ
ーに関係なく直接マッピングされ、またアクセスされま
す。これらのレジスターは内部のX、Yバスを介してア
クセスされ、そしてアクセスが完了する前は、CPUに
対してウエイトステイトが発生する場合があります。ウ
エイトステートは連続するワードの2つ目のワードの読
み込み時、1つ目のワードの書き込み時にはインサート
されません。X、Yレジスター領域のデータは全て24
ビット長です。そして16ビットのホストCPUインタ
ーフェイス200に対しては2つの16ビットワードと
して扱われます。”BIGENDIAN=1”の場合、
大きい方のアドレスのワードのLSBがMSPワードの
LSBとなります。”BIGENDIAN=0”の場
合、小さい方のアドレスのワードのLSBがMSPワー
ドのLSBとなります。それぞれのバンクは24ビッ
ト、256ワードで、2バンクトータルで2048バイ
トのアドレス空間をしめます。
【0125】2. HSABデータ、マップレジスター HSABインターフェイス202にあるこれらのレジス
ターはMSPの隣り合ったアドレス空間にあります。H
SABデータメモリーが小さい方のアドレスエリアにあ
ります。このメモリーは64ワード*24ビットです。
これらのレジスターは内部のX、Yバスを介してアクセ
スされ、そしてアクセスが完了する前は、CPUに対し
てウエイトステイトが発生する場合があります。ウエイ
トステートは連続するワードの2つ目のワードの読み込
み時、1つ目のワードの書き込み時にはインサートされ
ません。この領域のデータは全て24ビット長です。そ
して16ビットのホストCPUインターフェースに対し
ては2つの16ビットワードとして扱われます。”BI
GENDIAN=1”の場合、大きい方のアドレスのワ
ードのLSBがMSPワードのLSBとなります。”B
IGENDIAN=0”の場合、小さい方のアドレスの
ワードのLSBがMSPワードのLSBとなります。2
4ビット、64ワードで、トータルで256バイトのア
ドレス空間をしめます。HSABデータRAMはCPU
によって読み込み、書き込み可能です。
【0126】このブロックの2つ目のパートは、HSA
Bマップレジスターです。それぞれの16ビットレジス
ターはHSAB、2チャネル分のコンフィグレーション
ビットを持ちます。1チャネルに対して8ビットありま
す。イネーブルビット、ディレクションビット、そして
I/OチャネルがHSABデータRAMの64ワードの
どれにマッピングするかを示すための、6ビットのアド
レスビットがあります。イネーブルビットが「1」に設
定されている場合、そのMSPがそのチャネルを使用す
る事を示します。イネーブルビットが「0」に設定され
ている場合、そのMSPがそのチャネルを使用しないこ
とを示します。そして、他のビットの設定は無効となり
ます。
【0127】ディレクションビットが「0」に設定され
ている場合、そのMSPがこのチャネルでデータを受信
する事を示します。ディレクションビットが「1」に設
定されている場合、そのMSPがこのチャネルでデータ
を送信する事を示します。16ビット、64ワードで、
トータルで128バイトのCPUアドレス空間をしめま
す。HSAB制御装置は、MSP動作中にこのマップレ
ジスターをアクセスすることになるので、アクセスが完
了するまでにCPUに対してウエイトステイトを発生す
る場合があります。HSABマップレジスターは全てC
PUにより読み込み、書き込み可能です。
【0128】3. ディレイライン/テーブル ポジシ
ョンレジスター これらのレジスターによって、MSPはフレキシブルに
テーブル、ディレイラインを構成することが可能です。
MSPはディレイラインとテーブルのあらゆる組み合わ
せを64個までサポートします。これらのレジスターに
は2つのエリアがあります。1つはテーブル/ディレイ
ラインのベースオフセット値と、テーブルがディレイラ
インかを設定するエリアです。もう1つはディレイライ
ンのサンプル数をカウントするエリアです。これらのレ
ジスターはウエイトステイトを発生しません。最初のエ
リアにあるディレイラインオフセット値は24ビット、
64ワードで構成されます。そして16ビットのホスト
CPUインターフェースに対しては2つの16ビットワ
ードとして扱われます。”BIGENDIAN=1”の
場合、大きい方のアドレスのワードのLSBがMSPワ
ードのLSBとなります。”BIGENDIAN=0”
の場合、小さい方のアドレスのワードのLSBがMSP
ワードのLSBとなります。MSWのビット8で、MS
P RAMアドレス演算の単位がディレイライン(1の
場合)又は、テーブル(0の場合)かを設定します。設
定がディレイラインの時、ディレイラインの書き込み位
置であるディレイメモリーの先頭からのオフセット値と
なります。設定がテーブルの時、テーブルのスタートア
ドレスであるRAMの分割値からのオフセット値となり
ます。このエリアは25(24+1)ビット、64ワー
ドで、トータルで256バイトのアドレス空間をしめま
す。
【0129】2つ目のエリアは、16ビット、64のレ
ジスターからなります。ディレイラインとして設定され
ている場合、このレジスターの値は、CPUによってレ
ジスターがゼロに設定されてから、書き込みされたデー
タの数を示します。これにより、実際にRAMにクリア
ーのための書き込みを行うことなく、ディレイラインの
クリアーを行うことができます。】 カウンターはディ
レイラインの書き込み動作によってインクルメントされ
ます。ディレイラインの読み込みの間、リクエストされ
るディレイをこのカウンター値と比較して、RAMにス
トアーされているデータを出力するか、あるいはゼロを
出力するかを決定します。このカウンターは”FFF
F”で止まります。よって、64K以上のディレイに対
するカウントは行われません。テーブルとして設定され
ている場合、このカウンターは使われません。これらの
レジスターはCPUに対してウエイトステイトは発生し
ません。またこれらのレジスターは全てCPUにより読
み込み、書き込み可能です。
【0130】4. MSPファンクショナルレジスター これらのレジスターはMSPの構成、動作、状態を制御
します。このグループのレジスターのいくつかは、ウエ
イトステイトを発生しません。また、あるものは書き込
みできず、あるものは読み込みできません。それぞれの
レジスターの簡単な説明を次に示します。 a. RAMデータポート これは、CPUがMSPのRAMエリアにアクセスする
時に使うレジスターです。前のRAMインターフェイス
ブロックで示した様に、このポートに対する最初の読み
込み、2番目の書き込み時にそのオペラーションが終了
するまでウエイトステイトが発生します。このシングル
アドレスのレジスターは、実際には2つのレジスター
で、アクセススタート時の”CPUDMAL”信号の状
態に従ってアクセスされます。このポートを介してメモ
リーにアクセスするために、DMAまたはCPU RA
Mスタートアドレスレジスターに、スタートアドレスを
プログラムする必要があります。
【0131】b. マイクロコードデータポート このレジスターはマイクロコードのダウンロードに使わ
れます。マイクロコードプリフェッチコントローラー
は、MSPが動作中にもマイクロコードRAMをアクセ
スする必要があるので、アクセスが完了するまでCPU
に対してウエイトステイトを発生する場合があります。
このシングルアドレスのレジスターは、実際には2つの
レジスターで、アクセススタート時の”CPUDMA
L”信号の状態に従ってアクセスされます。それぞれの
マイクロコードワードは、5回のワードアクセスを必要
とします。このポートを介してのマイクロコードのダウ
ンロードを行うためにDMAまたはCPUマイクロコー
ドスタートアドレスレジスターに必要なスタートアドレ
スをプログラムする必要があります。
【0132】c. RAMスタートポインターDMA このレジスターはMSP RAMへのDMAアクセスの
スタートポイントを設定します。このレジスターは24
ビット長のRAMアドレスを持ち、自動的にアクセスが
進むように、インクリメントします。このレジスターは
読み込み、書き込み可能です。読み込み時、このレジス
ターは24ビットのRAMアドレス現在値を示します。
このレジスターはDMAアクセスのみに影響し、CPU
へのウエイトステイトは発生しません。
【0133】d. RAMスタートポインターCPU このレジスターはMSP RAMへのCPUアクセスの
スタートポイントを設定します。このレジスターは24
ビット長のRAMアドレスを持ち、自動的にアクセスが
進むように、インクリメントします。このレジスターは
読み込み、書き込み可能です。読み込み時、このレジス
ターは24ビットのRAMアドレス現在値を示します。
このレジスターは直接CPUアクセスのみに影響し、C
PUへのウエイトステイトは発生しません。
【0134】e. マイクロコードスタートDMA このレジスターはMSPのマイクロコードアクセスのス
タートポイントを設定します。このレジスターはマイク
ロコードワード(2命令)の8ビットのアドレスを持
ち、自動的にアクセスが進むように、インクリメントし
ます。このレジスターは書き込みのみ可能です。このレ
ジスターはDMAアクセスのみに影響し、CPUへのウ
エイトステイトは発生しません。
【0135】f. マイクロコードスタートCPU このレジスターはMSPのマイクロコードアクセスのス
タートポイントを設定し、また単一ステップモードの時
は、読み込み時にマイクロコードの現在値を示します。
このレジスターはマイクロコードワード(2命令)の8
ビットのアドレスを持ち、自動的にアクセスが進むよう
に、インクリメントします。このレジスターは読み込
み、書き込み可能です。読み込み時、このレジスターは
9ビットのマイクロコードステップの現在値を示しま
す。このレジスターは直接CPUアクセスのみに影響
し、CPUへのウエイトステイトは発生しません。
【0136】g. MAC出力 このレジスターは56ビットの乗加算結果を示します。
この値はCPUに対して、4つの16ビットレジスター
として扱われます。MSPが停止状態の時のみ、読み込
み、書き込みが可能です。CPUへのウエイトステイト
は発生しません。書き込み時、これらのレジスターの値
は最後のワードが書き込みされた時に、MAC出力レジ
スターに順番に転送されます。
【0137】h. ALU出力レジスターX このレジスターは24ビットのALU207の結果を示
します。そして、Xバス204書き込みレジスターの現
在値ということになります。MSPが停止状態の時の
み、読み込み、書き込みが可能で、CPUへのウエイト
ステイトは発生しません。書き込み時、これらのレジス
ターの値は大きいアドレスのワードが書き込みされた時
に、実際に内部レジスターに転送されます。このレジス
ターは24ビット長で、16ビットのホストCPUイン
ターフェースには、ロングワードとして扱われます。”
BIGENDIAN=1”の場合、大きい方のアドレス
のワードのLSBがMSPワードのLSBとなりま
す。”BIGENDIAN=0”の場合、小さい方のア
ドレスのワードのLSBがMSPワードのLSBとなり
ます。
【0138】i. ALU出力レジスターY このレジスターは24ビットのALU207の結果を示
します。そして、Yバス書き込みレジスターの現在値と
いうことになります。MSPが停止状態の時のみ、読み
込み、書き込みが可能で、CPUへのウエイトステイト
は発生しません。書き込み時、これらのレジスターの値
は大きいアドレスのワードが書き込みされた時に、実際
に内部レジスターに転送されます。このレジスターは2
4ビット長で、16ビットのホストCPUインターフェ
ースには、ロングワードとして扱われます。”BIGE
NDIAN=1”の場合、大きい方のアドレスのワード
のLSBがMSPワードのLSBとなります。”BIG
ENDIAN=0”の場合、小さい方のアドレスのワー
ドのLSBがMSPワードのLSBとなります。
【0139】j. テンポラリーレジスター(T) このレジスターは24ビットのTテンポラリーレジスタ
ーの現在値を示します。MSPが停止状態の時のみ、読
み込み、書き込みが可能です。このレジスターは内部
X、Yバス205を介してアクセスされ、そしてアクセ
スが完了する前は、CPUに対してウエイトステイトが
発生する場合があります。このことは、MSPが単一ス
テップモードの時は問題にはなりません。ウエイトステ
ートは連続するワードの2つ目のワードの読み込み時、
1つ目のワードの書き込み時にはインサートされませ
ん。書き込み時、これらのレジスターの値は大きいアド
レスのワードが書き込みされた時に、実際に内部レジス
ターに転送されます。このレジスターは24ビット長
で、16ビットのホストCPUインターフェースには、
ロングワードとして扱われます。”BIGENDIAN
=1”の場合、大きい方のアドレスのワードのLSBが
MSPワードのLSBとなります。”BIGENDIA
N=0”の場合、小さい方のアドレスのワードのLSB
がMSPワードのLSBとなります。
【0140】k. テンポラリーレジスター(S) このレジスターは24ビットのSテンポラリーレジスタ
ーの現在値を示します。MSPが停止状態の時のみ、読
み込み、書き込みが可能です。このレジスターは内部
X、Yバス205を介してアクセスされ、そしてアクセ
スが完了する前は、CPUに対してウエイトステイトが
発生する場合があります。このことは、MSPが単一ス
テップモードの時は問題にはなりません。ウエイトステ
ートは連続するワードの2つ目のワードの読み込み時、
1つ目のワードの書き込み時にはインサートされませ
ん。書き込み時、これらのレジスターの値は大きいアド
レスのワードが書き込みされた時に、実際に内部レジス
ターに転送されます。このレジスターは24ビット長
で、16ビットのホストCPUインターフェースには、
ロングワードとして扱われます。”BIGENDIAN
=1”の場合、大きい方のアドレスのワードのLSBが
MSPワードのLSBとなります。”BIGENDIA
N=0”の場合、小さい方のアドレスのワードのLSB
がMSPワードのLSBとなります。
【0141】1. ノイズレジスター このレジスターは24ビットの疑似ランダムノイズレジ
スターの現在値を示します。読み込み、書き込みが可能
です。このレジスターは内部X、Yバス205を介して
アクセスされ、そしてアクセスが完了する前は、CPU
に対してウエイトステイトが発生する場合があります。
ランダム値が改新される時、MSPは通常停止している
ので、一般的にこのことは問題とはなりません。ウエイ
トステートは連続するワードの2つ目のワードの読み込
み時、1つ目のワードの書き込み時にはインサートされ
ません。書き込み時、これらのレジスターの値は大きい
アドレスのワードが書き込みされた時に、実際に内部レ
ジスターに転送されます。このレジスターは24ビット
長で、16ビットのホストCPUインターフェースに
は、ロングワードとして扱われます。”BIGENDI
AN=1”の場合、大きい方のアドレスのワードのLS
BがMSPワードのLSBとなります。”BIGEND
IAN=0”の場合、小さい方のアドレスのワードのL
SBがMSPワードのLSBとなります。ノイズ発生装
置はCPUが読み込みした時も、MSPが読み込みした
時と同様に更新されます。
【0142】m. フィルター付ノイズレジスター このレジスターは24ビットのフィルター付ノイズレジ
スターの現在値を示します。読み込みのみが可能です。
このレジスターは内部X、Yバス205を介してアクセ
スされ、そしてアクセスが完了する前は、CPUに対し
てウエイトステイトが発生する場合があります。ウエイ
トステートは連続するワードの2つ目のワードの読み込
み時、1つ目のワードの書き込み時にはインサートされ
ません。このレジスターは24ビット長で、16ビット
のホストCPUインターフェースには、ロングワードと
して扱われます。”BIGENDIAN=1”の場合、
大きい方のアドレスのワードのLSBがMSPワードの
LSBとなります。”BIGENDIAN=0”の場
合、小さい方のアドレスのワードのLSBがMSPワー
ドのLSBとなります。
【0143】n. インデックスレジスター このレジスターは24ビットのインデックスレジスター
の現在値を示します。MSPが停止状態の時のみ、読み
込み、書き込みが可能です。このレジスターは内部X、
Yバス205を介してアクセスされ、そしてアクセスが
完了する前は、CPUに対してウエイトステイトが発生
する場合があります。このことは、MSPが単一ステッ
プモードの時は問題にはなりません。ウエイトステート
は連続するワードの2つ目のワードの読み込み時、1つ
目のワードの書き込み時にはインサートされません。書
き込み時、これらのレジスターの値は大きいアドレスの
ワードが書き込みされた時に、実際に内部レジスターに
転送されます。このレジスターは24ビット長で、16
ビットのホストCPUインターフェースには、ロングワ
ードとして扱われます。”BIGENDIAN=1”の
場合、大きい方のアドレスのワードのLSBがMSPワ
ードのLSBとなります。”BIGENDIAN=0”
の場合、小さい方のアドレスのワードのLSBがMSP
ワードのLSBとなります。
【0144】o. 割り込みマスクレジスター このレジスターは16ビットの読み込み/書き込み可能
なレジスターです。それぞれのビットはどの割り込みソ
ースをCPUへの割り込み発生からマスクするか(0の
場合)を表わしています。0から15の割り込み番号が
このレジスターにあります。このレジスターはCPUへ
のウエイトステイトは発生しません。またリセット時
は、全ての割り込みはマスクされています。
【0145】p. 割り込みマスクレジスター(2) このレジスターは16ビットの読み込み/書き込み可能
なレジスターです。それぞれのビットはどの割り込みソ
ースをCPUへの割り込み発生からマスクするか(0の
場合)を表わしています。16から31の割り込み番号
がこのレジスターにあります。】 このレジスターはC
PUへのウエイトステイトは発生しません。またリセッ
ト時は、全ての割り込みはマスクされています。
【0146】q. 割り込みリクエストレジスター このレジスターは16ビットの読み込み/書き込み可能
なレジスターです。それぞれのビットはMSPの割り込
みソースを表わしています。読み込み時、割り込みが発
生したビットは”High”になっています。そして、
このレジスターへの読み込みが終了した時、全てのビッ
トはクリアーされます。また、割り込みリクエストビッ
トは、割り込みリクエストレジスター内の対応するビッ
トに「1」を書き込みすることで、個々にクリアーでき
ます。0から15の割り込み番号がこのレジスターにあ
ります。このレジスターはCPUへのウエイトステイト
は発生しません。またリセット時は、全ての割り込みは
クリアーされています。
【0147】r. 割り込みリクエストレジスター
(2) このレジスターは16ビットの読み込み/書き込み可能
なレジスターです。それぞれのビットはMSPの割り込
みソースを表わしています。読み込み時、割り込みが発
生したビットは”High”になっています。そして、
このレジスターへの読み込みが終了した時、全てのビッ
トはクリアーされます。また、割り込みリクエストビッ
トは、割り込みリクエストレジスター内の対応するビッ
トに「1」を書き込みすることで、個々にクリアーでき
ます。16から31の割り込み番号がこのレジスターに
あります。このレジスターはCPUへのウエイトステイ
トは発生しません。またリセット時は、全ての割り込み
はクリアーされています。
【0148】s. DRAMサーキュラー/リニア ス
プリットポイントレジスター この24ビット長のレジスターはMSPに対しディレイ
ライン用メモリーの終端とテーブル用メモリーの先端が
どこであるかを示します。スプリットポイントレジスタ
ーはディレイライン用メモリーの終端位置の値を示しま
す。このレジスターの値は”2N−1”である必要があ
ります。このレジスターはCPUへのウエイトステイト
は発生しません。書き込み時、これらのレジスターの値
は大きいアドレスのワードが書き込みされた時に、実際
に内部レジスターに転送されます。このレジスターは2
4ビット長で、16ビットのホストCPUインターフェ
ースには、ロングワードとして扱われます。”BIGE
NDIAN=1”の場合、大きい方のアドレスのワード
のLSBがMSPワードのLSBとなります。”BIG
ENDIAN=0”の場合、小さい方のアドレスのワー
ドのLSBがMSPワードのLSBとなります。このレ
ジスターは読み込み/書き込み可能です。
【0149】t.Yサーキュラー/リニア・スプリット
ポイントジスター このレジスターは、MSPに対しサーキュラーアトレッ
シングメモリーの終端とリニアアドレッシングメモリー
の先端がどこであるかを示します。このレジスターは、
CPUへのウエイトステイトを発生しません。このスプ
リットポイントレジスターにはサ、ーキュラーメモリー
のワード数を示す3ビットがあります。このレジスター
は、読み込み/書き込み可能です。
【0150】u.ステータス レジスタ 1 この16ビットのレジスタには、MAC206の読み専
用ステータスが入っています。このレジスタは、CPU
に対していかなるウェイトステートも作りません。な
お、ビットとそれらの意味は以下の通りです。 MAC RESULT EXTENDED(NOT A
NUMBER):これは1の時現在のMAC206の
結果が、使える数値で無い事を表しています。これは、
計算機の出力ビットの55:48が全て「ハイ」でも全
て「ロウ」でもなく、又、サインドオペレーションでサ
インビットと全て一致してないことを表します。このビ
ットは保存されません、そしてMSPのシングルーステ
ッピングの時だけ意味があります。 MAC RESULT ZERO:これは1の時MAC
206の結果が現在0であることを表しています。この
ビットは、保持されません、そしてMSPの時だけ意味
があります。 MAC RESULT NEGATIVE:これは1の
時MAC206の結果が現在負の数値であることを表し
ています。このビットは、保持されません、そしてMS
Pの時だけ意味があります。 MAC RESULT CLIPPED:このビットは
1の時EXTENDED MACの結果が、X又は、Y
バスに上書きされるか、MACかALUの入力に使われ
たかを表します。このビットは、CPUが、このレジス
タを読むまで保持されます。 MAC RESULT LESS THEN S:これ
は1の時MACの結果が、テンポラリーのSレジスタの
中の数値より現在小さいことを表します。このビット
は、保持されません。そしてMSPのシングル−ステッ
ピングの時だけ意味があります。 MAC RESULT GREATER THEN
S:これは1の時MACの結果が、テンポラリーのSレ
ジスタの中の数値より現在大きいことを表します。この
ビットは、保持されません。そしてMSPのシングル−
ステッピングの時だけ意味があります。 MAC RESULT ALMOST EQUAL0
S:これは1の時MACの結果が、テンポラリーのSレ
ジスタの中の数値で出発点に指定された範囲内で、0と
現在等しい事を表します。このビットは、保持されませ
ん。そしてMSPのシングル−ステッピングの時だけ意
味があります。 MAC RESULT LESS THEN T:これ
は1の時MACの結果が、テンポラリーのTレジスタの
中の数値より現在小さいことを表します。このビット
は、保持されません。そしてMSPのシングル−ステッ
ピングの時だけ意味があります。 MAC RESULT GREATER THEN
T:これは1の時MACの結果が、テンポラリーのTレ
ジスタの中の数値より現在大きいことを表します。この
ビットは、保持されません。そしてMSPのシングル−
ステッピングの時だけ意味があります。 MAC RESULT ALMOST EQUAL0
T:これは1の時MACの結果が、テンポラリーのTレ
ジスタの中の数値で出発点に指定された範囲内で、0と
現在等しい事を表します。このビットは、保持されませ
ん。そしてMSPのシングル−ステッピングの時だけ意
味があります。 MAC BUSY:このビットは1の時MACが、現在
動作を実行していることを表します。このビットは、保
持されません。そしてMSPが単一ステップである時だ
け確定します。
【0151】MAC ACCUMULATE OPER
ATION: このビットは1の時現在のMACの動作
は、アキュムレーターにさらに0を加えていく、いくつ
かの動作を含んでいることを表します。このビットは、
保持されません。そしてMSPが単一ステップである時
だけ確定します。 MAC MINUS OPERATION:このビット
は1の時MACがY入力を無効にする動作を、現在実行
中であることを表します。このビットは、保持されませ
ん。そしてMSPが単一ステップである時だけ確定しま
す。 MAC DOUBLE PRECISION OPER
ATION:このビットは1の時MACが、アキュムレ
ーターを2重の正確な動きの為に移動させる動作を、現
在行っていることを表します。このビットは、保持され
ません。そしてMSPが単一ステップである時だけ確定
します。
【0152】v.ステータス レジスタ 2 この16ビットのレジスタには、ALUの読み専用ステ
ータスが入っています。このレジスタは、CPUに対し
ていかなるウェイトステートも作りません。ビットとそ
れらの意味は以下の通りです。 ALU CARRY:これは1の時現在のALUの結果
が加算でMSビットの桁上がり、又は、減算でMSビッ
トの桁下がりが作られたことを表します。このビット
は、保持されません。そしてMSPが単一ステップであ
る時だけ確定します。 ALU OVERFLOW:これは1の時現在のALU
の結果が、桁あふれの為に使える数値でなくなったこと
を表します。このビットは、保持されません。そしてM
SPが単一ステップである時だけ確定します。 ALU RESULT ZERO:このビットは1の時
ALUの結果が、現在0であることを表します。このビ
ットは、保持されません。そしてMSPのシングル−ス
テッピングの時だけ意味があります。 ALU RESULT NEGATIVE:これは1の
時ALUの結果が、現在負の値であることを表します。
このビットは、保持されません。そしてMSPのシング
ル−ステッピングの時だけ意味があります。 ALU LATCHED OVERFLOW:これは1
の時現在又は、前のALUの結果が、桁あふれの為に。
使える値でないことを表します。このビットはALU
OVERFLOWのステータスビットを別の形で保持し
たもので、CPUがこのレジスタを読むまで、保持され
ます。 ALU RESULT LESS THAN S:これ
は1の時ALUの結果がテンポラリーのSレジスタの値
より現在小さい事を表します。このビットは、保持され
ません。そしてMSPのシングル−ステッピングの時だ
け意味があります。 ALU RESULT GREATER THEN
S:これは1の時ALUの結果がテンポラリーのSレジ
スタの値より現在大きい事を表します。このビットは、
保持されません。そしてMSPのシングル−ステッピン
グの時だけ意味があります。
【0153】ALU RESULT ALMOST E
QUALOS:これは1の時ALUの現在値がテンポラ
リーのSレジスタの値で出発点に指定された範囲内で、
0と現在等しい事を表します。このビットは、保持され
ません。そしてMSPのシングル−ステッピングの時だ
け意味があります。 ALU RESULT LESS THEN T:これ
は1の時ALUの結果がテンポラリーのTレジスタの値
より現在小さい事を表します。このビットは、保持され
ません。そしてMSPのシングル−ステッピングの時だ
け意味があります。 ALU RESULT GREATER THEN
T:これは1の時ALUの結果がテンポラリーのTレジ
スタの値より現在大きい事を表します。このビットは、
保持されません。そしてMSPのシングル−ステッピン
グの時だけ意味があります。 ALU RESULT ALMOST EQUALOT これは1の時ALUの現在値がテンポラリーのTレジス
タの値で出発点に指定された範囲内で、0と現在等しい
事を表します。このビットは、保持されません。そして
MSPのシングル−ステッピングの時だけ意味がありま
す。 MAC/ALU INPUT LIMITED:このビ
ットは1の時X又は、Yの入力がMAC/ALUのオペ
ランドマルチプレクサへの入力で、シフター/リミッタ
ーを使ってリミットさせることを表します。 MAC OVERRUN:これは1の時2番目のMAC
動作が、前のMACの動作が完了する前に行おうとして
いることを表します。この状態は、2つの命令の結果が
間違える原因になります。このビットは、CPUがこの
レジスタを読むまで保持されます。 HSAB ACCESS ERROR:このビットは1
の時、不法な時間のアクセスで、HSABデータRAM
を作ろうとしていることを表します。このビットは、C
PUがこのレジスタを読むまで保持されます。 RAM ACCESS ERROR:このビットは1の
時、不法な時間のアクセスで、RAMポートを作ろうと
していることを表します。このビットは、CPUがこの
レジスタを読むまで保持されます。
【0154】w.コンフィギュレーションレジスタ この16ビットのレジスタは、MSPの基本動作モード
と形を決めるビットを表しています。書き込み専用のS
TEP MSPビットを除いて、全てのビットは、読み
/書きです。このレジスタは、CPUに対していかなる
ウェイトステートも作りません。ビットとそれらの意味
は以下の通りです: RUN/HALT MSP:このビットは、1に設定さ
れるとMSPの動作が始まります。MSPは、動作が始
まる前に次の同期パルスが来るまで待ちます。このビッ
トは、RESETで0に設定します。】 STEP
MSP: このビットは、RUN/HALTビットが0
に設定されている時だけ、確定します。このビットは、
1に設定するとMSPの1つの命令をシングル−ステッ
プにします。新しいマイクロコードのアドレスは、CP
Uマイクロコードアドレスポインターレジスタに割りつ
けられます。シングル−ステッピングの動きは、2シス
テムサイクルタイムの間かかるかもしれません。このビ
ットは、書き込み専用で、読むと0が返ってきます。 HSAB ENABLE:このビットは、1に設定する
とHSABとのデータの送受信を許可します。MSPは
許可する動きの前に次の同期パルスが来るまで待ちま
す。このビットは、RESETで0に設定します。 RAM HEIGHT 256K/1M/4M:この2
つのビットは、MSPがどんな種類のRAMを組にする
のかを表します。RAMは、全てを1つの種類にする必
要があり、256KxNbitのチップ00か、1Mx
Nbitのチップ01か、4Mxkbitのチップ10
です。これらのビットは、読み/書きで、RESET後
は、0です。 BANK0=16/24bit:この読み/書きのビッ
トは、RAMバンクのデータ幅を表します。0の時は、
12ビットデータでつながる事を表し、1の時は、それ
は、たった8ビットデータです。このビットは、読んだ
時、いかにデータを判断するのかに影響をあたえます。
24ビットデータは、普通に読み書きされます。外部R
AMから16ビットを読む時、MSP内部の24ビット
ワードの下位8ビットは、データを読んだ時のサインビ
ットと同じになります。 BANK1=16/24bit:この読み/書きのビッ
トは、RAMバンクのデータ幅を表します。0の時は、
12ビットデータでつながる事を表し、1の時は、それ
は、たった8ビットデータです。このビットは、読んだ
時、いかにデータを判断するのかに影響をあたえます。
24ビットデータは、普通に読み書きされます。外部R
AMから16ビットを読む時、MSP内部の24ビット
ワードの下位8ビットは、データを読んだ時のサインビ
ットと同じになります。 BANK2=16/24bit:この読み/書きのビッ
トは、RAMバンクのデータ幅を表します。0の時は、
12ビットデータでつながる事を表し、1の時は、それ
は、たった8ビットデータです。このビットは、読んだ
時、いかにデータを判断するのかに影響をあたえます。
24ビットデータは、普通に読み書きされます。外部R
AMから16ビットを読む時、MSP内部の24ビット
ワードの下位8ビットは、データを読んだ時のサインビ
ットと同じになります。 BANK3=16/24bit:この読み/書きのビッ
トは、RAMバンクのデータ幅を表します。0の時は、
12ビットデータでつながる事を表し、1の時は、それ
は、たった8ビットデータです。このビットは、読んだ
時、いかにデータを判断するのかに影響をあたえます。
24ビットデータは、普通に読み書きされます。外部R
AMから16ビットを読む時、MSP内部の24ビット
ワードの下位8ビットは、データを読んだ時のサインビ
ットと同じになります。 BANK4=16/24bit:この読み/書きのビッ
トは、RAMバンクのデータ幅を表します。0の時は、
12ビットデータでつながる事を表し、1の時は、それ
は、たった8ビットデータです。このビットは、読んだ
時、いかにデータを判断するのかに影響をあたえます。
24ビットデータは、普通に読み書きされます。外部R
AMから16ビットを読む時、MSP内部の24ビット
ワードの下位8ビットは、データを読んだ時のサインビ
ットと同じになります。 BANK5=16/24bit:この読み/書きのビッ
トは、RAMバンクのデータ幅を表します。0の時は、
12ビットデータでつながる事を表し、1の時は、それ
は、たった8ビットデータです。このビットは、読んだ
時、いかにデータを判断するのかに影響をあたえます。
24ビットデータは、普通に読み書きされます。外部R
AMから16ビットを読む時、MSP内部の24ビット
ワードの下位8ビットは、データを読んだ時のサインビ
ットと同じになります。 BANK6=16/24bit:この読み/書きのビッ
トは、RAMバンクのデータ幅を表します。0の時は、
12ビットデータでつながる事を表し、1の時は、それ
は、たった8ビットデータです。このビットは、読んだ
時、いかにデータを判断するのかに影響をあたえます。
24ビットデータは、普通に読み書きされます。外部R
AMから16ビットを読む時、MSP内部の24ビット
ワードの下位8ビットは、データを読んだ時のサインビ
ットと同じになります。 BANK7=16/24bit:この読み/書きのビッ
トは、RAMバンクのデータ幅を表します。0の時は、
12ビットデータでつながる事を表し、1の時は、それ
は、たった8ビットデータです。このビットは、読んだ
時、いかにデータを判断するのかに影響をあたえます。
24ビットデータは、普通に読み書きされます。外部R
AMから16ビットを読む時、MSP内部の24ビット
ワードの下位8ビットは、データを読んだ時のサインビ
ットと同じになります。
【0155】x.割り込み制御レジスタ この16ビットレジスタは、MSPの状態と割り込み動
作の制御を規定します。ビットとそれらの意味は以下の
通りです。 ENABLE INTERRUPTS:このビットは、
1が書かれたら、待機中又は、今後起こるであろう割り
込みを、ハードウェア割り込みリクエスト信号を通し
て、CPUへ、警告を許可します。クリアされている
と、割り込みは作られません。ともかく、割り込みは、
割り込みウエイトレジスタの中にためることができま
す。このビットは、読み/書きで、リセットでゼロに設
定されます。 CLEAR ALL INTERRUPTS:この書き
込み専用ビットは、1が書かれたら、割り込みレジスタ
と割り込みリクエストのメカニズムから来る、全ての待
機している割り込みリクエストをクリアします。0が書
かれたら、このビットは実行しません。このビットは、
読まれると、0を返します。 CONDITION STATE、CPU:このビット
は、読まれると、CPUの状態フラグの現在のステート
を表示します。1が書かれた時CPUの状態を正しく
し、0が書かれると誤った状態にします。このビット
は、リセット後0に設定されます。 CONDITIONAL STATE:この読み専用ビ
ットは、あらかじめ説明した図6Bif−then−e
lseフラグのメカニズムの現在のステートを表示しま
す。 LED CPU OVERRIDE:この読み/書きビ
ットは、1が書かれると、CPUがMSP LEDのセ
ッテイングを無視する原因となります。LED出力ステ
ートは、LED ONのステートで決まり、CPUビッ
トは、後に記述します。LED CPU OVERRI
DEビットに0が書かれると、LEDの出力は、内部の
MSPのセッティングで決められます。このビットは、
リセット後0に設定されます。 LED ON、CPU:このビットは、読まれると、ソ
フト上のLEDビットの現在のステートが表示されま
す。1が書かれた時LEDビットは正しく設定され、0
が書かれると誤った設定になります。ビットは、リセッ
ト後0に設定されます。 LED ON:この読み専用ビットは、LED出力の現
在のステートを表示します。 CLEAR DRAM DECREMENT COUN
TER:このビットは、1が書かれるとディレイライン
領域の中の減算カウンタがクリアされます。0が書かれ
たら、このビットは実行しません。このビットは書き込
み専用で、読まれると、0を返します。 CLEAR Y DECREMENT COUNTE
R:このビットは、1が書かれるとYメモリー領域の中
の減算カウンタがクリアされます。0が書かれたら、こ
のビットは実行しません。このビットは書き込み専用
で、読まれると、0を返します。
【0156】y.ALUコンフィギュレーションレジス
タ この16ビットレジスタは、MSPのALU207の動
作モードを定義するビットが入っています。すべてのビ
ットが、読み/書きです。このレジスタは、CPUに対
していかなるウェイトステートも作りません。ビットと
それらの意味は以下の通りです。 OSCILLATOR1 TABLE SIZE 256/512/1024/2048:これらの2つの
ビットは、OSCILLATOR1の命令で使うテーブ
ルの長さを表します。4つのテーブルの長さは、次の通
りです。256ワード00、512ワード01、102
4ワード10、2048ワード11。 OSCILLATOR2 TABLE SIZE 256/512/1024/2048:これらの2つの
ビットは、OSCILLATOR2の命令で使うテーブ
ルの長さを表します。4つのテーブルの長さは、次の通
りです。256ワード00、512ワード01、102
4ワード10、2048ワード11。 HAMMER TABLE SIZE 256/512/1024/2048:これらの2つの
ビットは、HAMMERの命令で使うテーブルの長さを
表します。4つのテーブルの長さは、次の通りです。2
56ワード00、512ワード01、1024ワード1
0、2048ワード11。 DITHER SELECT:これらの4つのビット
は、DITHERの命令で使うビットを決定します。
【0157】 この9ビットの読み/書きレジスタは、NOPで、無視
したり元に戻したりする始めのマイクロコード命令のア
ドレスが入っています。もしNOPカウントレジスタの
数値がゼロであったなら、NOP機能は、無効になり、
このレジスタの値は無意味になります。このレジスタ
は、CPUに対していかなるウェイトステートも作りま
せん。
【0158】aa.NOPカウントレジスタ この10ビットの読み/書きレジスタは、NOPの手段
で、無視したり元に戻したりするマイクロコードインス
ラクションの数が入っています。もしこのレジスタの数
値がゼロであったなら、NOP機能は、無効になりま
す。このレジスタは、CPUに対していかなるウェイト
ステートも作りません。
【0159】bb.DRAM減少カウントレジスタ この24ビットの読みのみレジスタは、DRAM減算カ
ウンターの現在値が入っています。このレジスタは、M
SPが、停止した時にだけ確定します。このレジスタ
は、CPUに対していかなるウェイトステートも作りま
せん。このレジスタは、24ビットの幅があり、そして
ロングワードとして16ビットのホストCPUインター
フェースに現れます。】 BIGENDIAN=1の
時、上位にアドレスを割りつけられているワードの、L
Sビットは、MSPのワードのLSビットです。BIG
ENDIAN=0のとき、下位にアドレスを割りつけら
れているワードのLSビットが、MSPのワードのLS
ビットです。
【0160】cc.Y−RAM減少カウントレジスタ この8ビットの読みのみレジスタは、Y−RAM減算カ
ウンターの現在値が入っています。このレジスタは、M
SPが、停止した時にだけ確定します。このレジスタ
は、CPUに対していかなるウェイトステートも作りま
せん。
【0161】dd.テストコンフィギュレーションレジ
スタ この16ビットのレジスタは、MSPのテストモード動
作の制御を規定します。これらのビットは、TESTM
ODE入力ピンがハイの時だけ確定します。このピンが
ロウの時、テストモードは無効で、これらのビットは、
無意味です。全てのビットは、RESET後、ゼロで
す。ビットとそれらの意味は以下の通りです。 MICROCODE RAM BIST PASSE
D:このビットは、マイクロコードRAMの内蔵のセル
フテストが正常に完了したことを表します。 MICROCODE RAM BIST COMPLE
TED:このビットは、マイクロコードRAMの内蔵の
セルフテストが完了したことを表します。 MICROCODE RAM BIST ENABLE
D:このビットの0から1への変化は、マイクロコード
RAMの内蔵のセルフテストの始まりです。 MULTIPLEXED TEST OUTPUT S
ELECT:これらの5つのビットは、TXTMUXO
UTピンへマルチプレックスされた1から32までの内
部ノードを選びます。 COUNTERS TEST ENABLE:このビッ
トは、MSPカウンターテストモードが有効なことを表
します。 RAM DATA SELECT:これらの2つのビッ
トは、RAM DATA ENABLEビットがハイの
時に、RAMDATA出力ピンにマルチプレックスされ
た、X、Y、INTERNALバス、のどれか1つを選
びます。 RAM DATA ENABLE:このビットは、RA
MDATAピンで、特別な内部データビットを観察でき
ることを許可します。
【0162】V.ボイス割り当て処理(図7乃至図2
0) DSPシステムを構成するリソースを表すこれらの図面
には、そのシステムで実行中のアルゴリズムを中断する
ことなしに任意のアルゴリズムを割り当て、かつ実行さ
せるための様々な演算リソースとメモリーリソースが書
かれています。このようなシステムの本来の目的は、D
SPを基にしたミュージックシンセサイザーにおいて、
異なるDSPアルゴリズムを必要とする少なくとも2つ
以上のボイス間で、動的ボイス割り当てを実現するため
のものです。一般に、動的ボイス割り当ては、ボイスプ
ログラムに必要なリソースの理解が必要ですが,そのリ
ソースとは、アルゴリズムを処理するためのホストや楽
音合成モジュールを示します。処理とは、選択されたボ
イスプログラムの実行を活性化することなのです。これ
らの理解をするために、ボイスプログラムに必要なこと
と、ボイスプログラムを活性化するための処理ステッ
プ、そして処理ステップをリアルタイムシステム上で十
分速い速度で行うために用いられる技術について述べま
す。ボイス割り当ての詳細に関する説明で用いる用語の
定義を以下に示します。
【0163】アルゴリズム;特定の機能または関数を実
現する、信号処理手順のこと。ボイスを実行するアルゴ
リズムは、ボイスプログラムとなります。 DSP;ディジタル信号処理、または信号処理器;それ
ぞれ,ディジタル信号を処理することそのものと、本実
施例において音データを生成するための処理を実行する
ハードウエアチップとの2つの意味で使われます。 ホスト;DSP処理よりも低速にシステムの制御を行う
メインCPUのことです 動的ボイス割り当て;必要に応じてボイス処理のリソー
スを再割り当てすること。 ボイス;信号の発生、または信号の処理を行う、という
限定された処理のためのアルゴリズムの実例です。この
説明においては、選択されたボイスの実行に必要とされ
るすべてのアルゴリズムをボイスプログラムとします。 エフェクト;オーディオ信号の発生というよりは、むし
ろオーディオ信号の加工をおこなうボイスのことです。 ノート;キーボード、MIDIなどのノートソースから
トリガーされたボイスの集まりです。
【0164】A.アルゴリズムのリソースが必要とする
もの 本システムのDSPアルゴリズムは、それぞれ以下のリ
ソースを必要とします。 ・MSP(MSP楽音信号処理装置)。これに関するリ
ソースは、オーディオレートでの処理ができることが必
要です。 ・DSPの命令 ・DSPメモリー ・内部レジスター ・ディレイラインメモリー ・ルックアップテーブルメモリー ・PCMデータメモリー ・ホストCPUのリソースは、オーディオレートより低
速の処理です。 ・ホスト命令 ・ホストメモリー ・ローカルデータメモリーPスタックデータとして参照
される。 ・グローバルデータメモリーメイルボックスデータとし
て参照される。 ・ルックアップテーブルメモリー ・入力/出力のリソース ・DSP同士で信号の伝送をおこなう、オーディオレー
トで動作するチャネル ・オーディオレートで動作する、入力及び出力信号の変
換チャネル
【0165】B.リソースグループ この実施例のシステムでは、似た属性を持つリソースを
グループにまとめて1つのリソースとしたり、そのグル
ープ内のリソースの属性のいくつかを他のグループと共
用したりするように、お互いが関連を持つように割り当
てられています。この目的は、リソースの配置次元を減
らして単純化することにより、リソースの能力を最大限
に生かすためです。例えば、異なったアルゴリズムグル
ープに含まれるところの個々のアルゴリズムが使用す
る、DSP命令、レジスター、ディレイラインの相対的
な量は、アルゴリズム同土で一定とします。そうすれば
リソースの総量は、同時に実行されるアルゴリズムの数
で換算できます。これとは逆に、例えばルックアップテ
ーブルの総量は必ずしも同時に実行されるアルゴリズム
の数にはならず、個々のアルゴリズムの近似性によって
変わったりもします。同時実行されるアルゴリズムがす
べて同じだった場合は、テーブルが共用できてテーブル
の総量は最小1個となります、また、アルゴリズムによ
ってはアルゴリズムが違っていてもテーブルが共用でき
るものもあったりもします。リソースの属性を分類して
みます。属性は以下の通りになります。 ・物理的なアドレス、あるいは限界 ・他のアルゴリズムとの関連(それは共有できるか、そ
れともアルゴリズム固有のものか?) ・他のアルゴリズムのアーキテクチャーとの関連(どう
共有するか、それともアーキテクチャー固有のものか
?) ・他のアルゴリズムの状態との関連 属性にそって上記のリソースを系統だててみると、 ・オーディオレート処理DSPシステムのリソース ・MSPリソースユニットMRUには、DSP命令と内
部レジスタとディレイラインの空間が含まれる。個々の
MSPは、決められた量とアドレスをもったMSP命令
メモリーとレジスターメモリーとディレイラインメモリ
ーを含む。 ・共有するシステムテーブル空間 ・共有するユーザーテーブル空間 ・PCMテーブル空間 ・オーディオレートより低速な処理ホストCPUシステ
ムのリソース ・処理スタックメモリーは、ホストCPUの命令とロー
カルデータを含む ・メイルボックスメモリー ・参照テーブルメモリー ・オーディオI/Oリソース ・HSABの合計をとるバス ・HSABの振り分けを行うバス。 ・DAコンバータとADコンバータのチャネル 上記のリソースグループに加えて、DSPアルゴリズム
のセットアップ、アロケーション、及び初期化を行うた
めのホストCPU処理に関係した、たくさんのリソース
グループが存在します。
【0166】C.アルゴリズムの活性化処理 アルゴリズムを活性化するには、リソースの初期化と割
り当てが必要です。アルゴリズムがとる主な状態を下に
示します。 ・アルゴリズムの選択 ・初期化のための準備 ・リソースの割り当て ・リソースの初期化 ・アルゴリズムの活性化 ・アルゴリズムを実行 ・アルゴリズムの終了 ・リソースの割り当て解除 個々のリソースにおいて、上記の状態は幾つかのサブ状
態に分けられます。リソースは、現在の状態の進み具合
と、処理命令を検出します。このことは、システム内で
リアルタイムに行われていることに影響を与えることな
しに、決められた時間の範囲内で処理を行うために必要
なことです。システム上のハードウエアの能力、及びメ
モリーの構成は、個々のリソースの状態の処理にかかる
時間によって決められます。ここでは、処理にかかる時
間の分類は2つしかありません:ノンリアルタイムのも
のと、リアルタイムのものです。この2つの時間をまた
ぐものも存在します、たとえば、割り当て一初期化処理
の時はノンリアルタイム処理でよいリソースがある一
方、割り当て−初期化−活性化の処理ではリアルタイム
処理が必要なリソースがあります。この問題の本質に迫
ることは、各リソースかリアルタイムで割り当て−初期
化を行うためには、どのような手法が必要なのかをを明
確にすることです。ノンリアルタイムの領域での処理
を”設定構築”とよび、リアルタイム領域での処理は、
システムを構成する色々なソフトウエアにあわせた名前
で呼びます。例えば、”ボイス割り当て”、”コントロ
ーラ処理”、”ボイス更新”、”MIDI”等です。
【0167】D.アルゴリズム設定 リソースの割り当ての決定は、ノンリアルタイムでのリ
ソースの割り当てを必要としないアルゴリズムを明確に
することで行えます。設定構築時にすでに割り当てられ
ているリソースは、 ・ホストとMSPのルックアップテーブルメモリー ・PCMメモリー ・DAコンバータとADコンバータのチャネル ・動的に割り当てる必要のないアルゴリズムに対するリ
ソース(例えば、エフェクトとコントローラのアルゴリ
ズム) ・ボイス割り当てのリソース(初期化のための設定値、
制御の構成等) これらのリソースは、以下の理由に当てはまるため,動
的に割り当てられません。まずシステム上で、初期化を
リアルタイムで行うことが不可能なリソースである場
合、または、アルゴリズムがこれらのリソースを常に必
要としている場合です。あるアルゴリズムがほかのアル
ゴリズムと同時に設定できるかどうかということは、シ
ステム上において使用できるリソースの総量にかかって
います。しかし、ここに上げたリソースは動的に割り当
てられないので、設定の全ての要素にとって、いつでも
使用することができます。設定をおこなっている間、ア
ルゴリズムは必要な時に、必要なリソースが確保されて
います。以下に述べるリソース状態は、設定時のすべて
のアルゴリズムに当てはまることです。
【0168】E.リソース状態 この節はアルゴリズムのリソースの状態遷移について書
かれています。 1.MRUMSPリソースユニット MSPのマイクロコード命令(μコード)、内部レジス
タ、そしてディレイラインは似通った属性を持つため、
一緒のグループとみなします。これらはすべて、MSP
に関するものであり、アルゴリズムによっての使用が特
定されていて、また、割り当ても初期化も同時に行われ
るからです。アルゴリズムをMRUに割り当てるという
ことは、1個のMSP内の均等割りされ,かつ隣接した
ブロックに,そのアルゴリズムが必要とするブロック数
だけ割り当てることです:1個のMSPに割り当てられ
た,それぞれのアルゴリズムが使用するMRUの総和は
1個のMSPの範囲内であるとします。このシステム上
では、アルゴリズムを複数のMSPにまたがって割り当
てることは許されていません、なぜならMSP間の通信
を行うHSABチャネルの追加が必要となるからで、小
間切れになったアルゴリズムの結合具合によって、チャ
ネルの配置が決まる、加えて、アルゴリズムの物理的な
配置とHSABリソースの確保を関連付ける必要が生じ
るからです。
【0169】a.MSP命令 アルゴリズムに対するMSP命令(μコード)はアルゴ
リズムコンパイラによって生成され、以下のように処理
されます。 ・設定構築時 ・μコードのオブジェクトコードをホストのメモリーに
設定 ・μコードを分離メモリーのテンプレートμコード領域
にコピーする(MSPのμコードメモリーの分割に対応
した形で行う)。 ・この時点で物理位置が決まっているリソースに対し
て、このコピーしたものをリンクする(ディレイライ
ン、レジスタ、テーブル等)。これを”μコードの再配
置”と呼ぶ。 ・ボイス割り当て時 ・目標となるMRUを決める。 ・MRUに送るμコードを、分離メモリーのダウンロー
ドバッファにコピーする。 ・この時点で割り当てられるべき他のリソースと共に、
最終リンクを実行する目標となるMSPの命令領域を禁
止状態にする。そのμコード領域をNOPにする。 ・ダウンロードバッファの内容を、目標とするMSPの
命令領域へコピーする(MSPへのμコードDMA転
送)。 ・ボイスを鳴らし始める時点で、目標となるMSPの命
令領域の禁止を解除(NOP命令領域の解除)。
【0170】b.MSPデータレジスター MSPデータレジスターはμコードの必要に応じて、ア
ルゴリズムコンパイラが割り当てます。前述のμコード
処理は、MRU内部のレジスタにリンクされます。レジ
スタの初期値の設定処理を以下に述べます。 ・設定構築時 ・ホストメモリに定数を設定する。 ・初期値の定数テーブルを分離メモリーのテンプレート
データ領域コピーする。 ・ボイス割り当て時 ・分離メモリーのMSPレジスターダウンロードバッフ
ァにに、テンプレート領域上の初期値定数をコピー ・ホストの動作速度で初期化を実行する。初期化のため
の制御信号を、ホストから分離メモリーのMSPレジス
ターダウンロードバッファに書き込む。 ・レジスターダウンロードバッファから、MSPレジス
ターへDMAを使用して転送する。
【0171】c.MSPディレイライン MSPディレイラインはμコードの必要に応じて、アル
ゴリズムコンパイラが割り当てます。前述のμコード処
理は、MRU内部のディレイラインにリンクされます。
ディレイラインの処理を以下に述べます。 ・設定構築時 ・μコードの必要に応じたディレイラインのリソースを
設定。 ・テンプレート領域上の、DRAM定義レジスターの初
期化テンプレートに、ディレイラインの構成要素を生成
する。再配置可能な命令テンプレートのそれぞれについ
て、一個の定義しかできないものとします。 ・ボイス割り当て時 ・DRAMレジスター初期化テンプレートを、目標とす
るMSPのMRUブロックにコピーする。 ・ディレイラインの内容をすべて0に初期化する。ディ
レイライン長レジスターを利用したハードウエアが行
う。
【0172】2.MSPルックアップテーブル MSPルックアップテーブルは、どのMSPにとっても
アルゴリズムから見える位置が同じになる目的で、個々
のMSPのテーブルルックアップメモリーに同じデータ
がコピーされます。すべてのMSPに対してテーブルは
同時にコピーされます、これはSICチップの専用DM
Aチャネルを用いて行われます。この専用ハードウエア
はテーブルの転送にかかる時間を短縮するものです。M
SPテーブルは次の様に処理されます。 ・設定構築時 ・ルックアップテーブルの構成と、内容を設定。 ・分離メモリー上のテーブルダウンロードバッファに、
テーブルをコピーまたは生成する。 ・ダウンロードバッファの内容を、複数のMSPのルッ
クアップテーブルメモリーへコピーする。全てのMSP
へデータを同時にDMA転送するための、専用ハードウ
エアによって処理される。 ・テンプレート領域上のDRAM定義レジスターの初期
化テンプレートの、ルックアップテーブルの構成要素を
生成する。再配置可能なインストラクションテンプレー
トのそれぞれについて、一個の定義しかできないものと
します。 ・ボイス割り当て時 ・DRAMレジスター初期化テンプレートを、送る先の
MSPのMRUブロックにコピーする。 ・ディレイラインの内容をすべて0に初期化する。ディ
レイライン長レジスターを利用したハードウエアが行
う。
【0173】3.PCMデータ PCMデータの取り扱いは、MSPルックアップテーブ
ルと類似しています。ルックアップテーブルとPCMメ
モリーの違いは、データをどこに記憶するかということ
です。PCMデータは、システム内の1個のMSPのみ
に接続された専用のPCMメモリー内にだけ記憶されま
す。この制限は、コストを節約する観点から生じていま
す。PCMデータを必要とするアルゴリズムは、PCM
メモリーが接続されたMSPにしか設定されません。加
えて、PCMデータはホストメモリーにも記憶されてお
らず、記憶メディアFDD、HDから直接PCMメモリ
ーへ転送されるのです。PCMデータに関する処理は次
の通りです。 ・設定構築時 ・テンプレート領域上のDRAM定義レジスターの初期
化テンプレートの、PCMの構成要素を生成する。再配
置可能な命令テンプレートのそれぞれについて、一個の
定義しかできないものとします。 ・ボイス割り当て時 ・DRAMレジスター初期化デンプレートを、目標とす
るMSPのMRUブロックにコピーする。
【0174】4.ホストの命令 ホストCPUで実行されるオーディオレートより低速な
処理は、アルゴリズム設計者が使用するDSP処理ブロ
ックとして定義された、DSPサブルーチンを用いて行
われます。この処理ブロックの中身はDSPの命令であ
り、ホストCPUの命令は、この処理ブロックのリスト
をだけを取り扱うのです。このリストは”制御ストリン
グ”と呼ばれるもので、処理、ローカルデータに定数、
そして入出力データの位置の情報を含んだデータブロッ
クのリストとして定義されています。このデータブロッ
クは、パラメータスタックを略して”Pスタック”と呼
ばれます。以下にその処理について述べます。 ・設定構築時 ・制御ストリングの定義を設定。 ・制御ストリングの定義を、ホストの分離メモリー上の
テンプレート領域にある、制御ストリングテンプレート
に展開する。 ・制御ストリングを、既に割り当ての終わったすべての
リソースとリンクする(常にアルゴリズムを割り当てら
れている、ホストのメイルボックスや、ルックアップテ
ーブルなどとリンクします)。 ・ボイス割り当て時 ・制御ストリングテンプレートを、アルゴリズムに割り
当てられたホストメモリー上にコピーする。 ・アルゴリズムの制御ストリングを、必要なリソースに
リンクする(ホストのメイルボックス、MSPレジスタ
ー、MSP割り込み等リンクします)。 ・制御ストリングデータの初期化を、ボイス割り当てデ
ータを用いて行う。 ・ボイスの発音時点で、制御ストリングのリアルタイム
更新処理を開始する。連続したホストアルゴリズム処理
である。
【0175】5.ホストのメイルボックス ホストのDSP処理同士でのデータのやりとりは、”メ
イルボックス”を用いて行われます。メイルボックスは
非分離メモリー領域に存在していますが、他のホストメ
モリーよりも高速にアクセスできるようになっていま
す。メイルボックスメモリー領域は限られたものです、
また、メイルボックスは、決められた大きさのブロック
の集合体おたがいは連続して配置されることが望ましい
となっています。このような割り当てにしたのは、可変
サイズのブロック割り当てよりも、設計を簡潔にして、
確実な動作を引き出すためのものです。メイルボックス
の処理は以下のように行われます。 ・設定構築時 ・テンプレート領域上に、メイルボックスのリンクのた
めのテーブルを生成する。このテーブルは、ボイス割り
当ての際、このメイルボックスが割り当てられた時に書
き込まれます。 ・ボイス割り当て時 ・割り当てられたメイルボックスブロックのアドレス
に、メイルボックスのリンクのためのテーブルを書き込
む。 ・このテーブルを使って、メイルボックスと制御ストリ
ングをリンクする。
【0176】6. ホストのルックアップテーブル ホストのルックアップテーブルは、記憶されている場所
が違うことを除けばMSPルックアップテーブルと内容
が全く同じです。ホストのルックアップテーブルは、ホ
ストメモリー上に記憶されます。ホストのルックアップ
テーブルは、以下のように処理されます。 ・設定構
築時 ・ルックアップテーブルの構成と、内容を設定。 ・ホストのテーブル領域にテーブルを生成、またはコピ
ーする。 ・ルックアップテーブルを、ホストの制御ストリングテ
ンプレートにリンクする。
【0177】7. HSAB オーディオレートの信号の伝達は全て、HSABと呼ば
れる高速オーディオバスを介して行われます。HSAB
は個々のMSPを結び、かつディジタル/アナログイン
ターフェイスとも接続されています。HSABは、サン
プリング周期に128回の独立したデータの書き込みが
出来ます。読みだしはどのMSPも128回できます。
どのMSPに対しても、アルゴリズムの割り当てが相似
形になるような目的で、動的に割り当てられるアルゴリ
ズムの出力が、決められた”累算バス”の入力にはいる
ようになっています。これには、アルゴリズムとは別の
DSP処理が加えられており、入出力にはHSABも利
用します。累算バスは、MSP1つに付1チャネルのH
SABバスが用意されていて、個々のMSPからのHS
ABチャネルの累算をするために、MRUのリソースも
使われています。累算バスに出力しようとするアルゴリ
ズムは、同じMSP内で累算バスに出力する他のアルゴ
リズムの出力を、自分の出力と加算するDSP命令を追
加する必要があります。このように,個々のMSP内部
では累算バスの結果を算出するDSP命令が必要です
が,MSP同士の累算はハードウエアによって行われま
す。
【0178】HSABバスのアクセスは、個々のMSP
内部のHSABマップレジスターに従って制御されま
す。このレジスターは、内部のMSP I/Oレジスタ
ーとHSABチャネルの対応を決めるもので、他のチャ
ネルの動作を妨げることなくI/Oレジスターの設定を
変更できるものです。現在は、MSP I/Oレジスタ
ーの数よりHSABのチャネル数の方が上回っていま
す。HSABチャネルの処理を以下に述べます。 ・設定構築時 ・1アルゴリズムに付、MSP I/OレジスターとH
SABチャネルの対応テーブルテンプレートを、テンプ
レート領域に生成する。対応テーブルは、システム内で
他のアルゴリズムと接続する際に使われる論理チャネル
を定義します。 ・対応テーブルを、設定が決まっているHSABチャネ
ルと組合わせます(設定が決まっているアルゴリズムど
うしの通信、DAコンバータまたはADコンバータのチ
ャネル等と組み合わせます)。 ・ボイス割り当て時 ・対応テーブルテンプレートをワーク領域にコピー。 ・新しく設定されたHSABチャネルを、対応テーブル
に組み込む。 ・目標となるMSPのHSABコンフィギュレーション
マップレジスターに、対応テーブルを転送。
【0179】F. 動的ボイス割り当てモデル 本発明を用いた動的ボイス割り当てシステムの実施例
を、図7から20に示します。図7は、実施例のメモリ
ーとハードウエアのモデルです。ここに示された様に、
このシステムには、非分離ホストバス(リソースグルー
プ、供給手段)701と接続されたホストCPU(置換
手段、リソースグループ、供給手段、リソースグループ
停止手段)700が含まれています。非分離ホストバス
701には、非分離ホストメモリー(第1メモリー、リ
ソースグループ、記憶手段)702と、SIC(置換手
段、転送手段、リソースグループ、供給手段、、リソー
スグループ停止手段)703が接続されています。SI
Cには、分離ホストバス(リソースグループ、供給手
段)704と分離ホストメモリー(第2メモリー、リソ
ースグループ)705が接続されています。ファイルシ
ステム(リソースグループ)706は、非分離ホストバ
ス701に接続されており、ハードディスク、フロッピ
ーディスク、E−PROMなどの不揮発性記憶媒体で
す。図に示されたMSPチップ1からMSPチップn、
番号では707−1から707−n、で構成されたMS
Pの集合体(置換手段、信号処理手段、リソースグルー
プ)は、分離ホストバス704に接続されています。高
速オーディオバス(リソースグループ、オーディオデー
タバス)708は、MSPチップ707−1から707
−nを結んでいます。DAADチップ(置換手段、リソ
ースグループ)709は、高速オーディオバス708と
オーディオI/Oシステム(音声出力手段、リソースグ
ループ)710に接続されています。
【0180】MSPメモリーは、MSPチップ707−
1から707−nのそれぞれと対になって接続されてい
ます。ここで、拡張MSPメモリー(第2メモリー、リ
ソースグループ)711は一番目のMSPチップ707
−1に接続されています。MSPメモリーモジュール7
12−2から712−n(第2メモリー、リソースグル
ープ)は、MSP707−2から707−nにそれぞれ
接続されています。非分離ホストメモリー702は4つ
のメモリー領域から構成されており、それは、再配置可
能メモリー720、制御ストリングメモリー721、大
規模メモリー(再配置不可能)722、そして恒久割り
当てメモリー723です。 再配置可能なメモリーは、
ボイスプログラム単体、またはボイスプログラムの組に
なったものを記憶し、また、プロクラムの記憶、ボイス
とエフェクトの記憶、ホストテーブル、MSPテーブル
の記憶に使われます。制御ストリングメモリー721
は、ホストの制御ストリングとデータメイルボックスを
記憶します。大規模メモリー722は、ボイス制御構
造、IRQベクトル、リンカーデータが記憶されます。
恒久割り当てメモリー723は、オペレーティングシス
テム命令が記憶されます。ファイルシステム706は、
データの保存、未使用PCMデータの保存、そしてオペ
レーティングシステムの記憶に使われます。分離ホスト
メモリー705は大規模メモリー領域724と、恒久割
り当てメモリー領域(命令メモリー)725から成りま
す。大規模メモリー領域は再配置不可能であり、割り当
て済みのMSPμコードのイメージと、MSPレジスタ
ーセットイメージが記憶されます。恒久割り当てメモリ
ー725は、MSPレジスターデータダウンロードバッ
ファ、MSPμコードダウンロードバッファ、共有MS
Pテーブルダウンロードバッファ、そしてPCMデータ
の配置決定バッファから成ります。上記の様に、それぞ
れのMSPはデータレジスターメモリー(入出力パラメ
ータメモリー)726、μコードメモリー(命令メモ
リ)727を内蔵し、MSPに接続されるDRAMは、
共有テーブル(テーブルメモリー)728とディレイラ
イン729から構成されています。拡張MSPメモリ7
11とPCMメモリー(サンプル格納手段)730は、
MSPチップ707−1にのみ接続されます。
【0181】分離ホストバスも、非分離ホストバスも、
CPUは何時でもアクセスすることが可能です。しか
し、ホストが分離ホストバスをアクセスしていない時
は、分離ホストバスは、非分離ホストバスとは独立に使
うことができます。このため、ホストが非分離メモリー
702を命令実行で使用している時でも、同時にSIC
がMSPとの間で双方向のDMA転送が行えます。分離
ホストメモリー705の恒久割り当てメモリー725内
にある、MSPレジスターデータダウンロードバッファ
は、他のダウンロードバッファと同様に、分離ホストメ
モリー705からMSPへのDMA転送のために使われ
ます。ホストが、自身の制御を初期化する処理を行って
いる間に、MSPに書き込みを行うには、これからMS
PへDMA転送するμコードをこのバッファに一旦記憶
させます。これには2つの理由があり、1つ目はMSP
レジスターよりもこのバッファのアクセス時間が速いた
め、μコードのDMAが中断されることが少なくなる。
2つ目はSIC_DMAリソースを用いれば、すべての
MSPレジスタの内容を一度にダウンロードできるた
め、その分ホストは他の処理ができるというものです。
ホストがレジスター領域に書き込みを行うと、そのダウ
ンロードが行われている間、実行中のボイスプログラム
が、ほんの少しの間だけ処理が中断されてしまうため、
転送するレジスターデータをレジスターデータダウンロ
ードバッファにー旦蓄えてから、最速でMSPにDMA
転送することにより、処理の中断時間を短縮します。M
SPデータレジスターには、Xメモリ、Yメモリ、ディ
レイライン定義レジスター、HSAB定義レジスターな
どから構成され、詳細については図6のMSPチップの
説明に述べられています。PCMデータは、ファイルシ
スデム706から直接PCMメモリー730へ転送され
ます。これによりPCMデータの転送にかかる時間が速
くなり、かつホストメモリーにPCMデータを記憶する
必要が無くなります。ホストの分離メモリー上にはPC
Mデータの配置決定が書かれるデータバッファがあり、
PCMメモリーの有効利用に用いられます。つまり、サ
ウンドが必要としているPCMデータだけが、メモリー
に転送されるのです。個々のMSPは、MSPメモリモ
ジュールの共有テーブル728内に同じテーブルデータ
を持っています。SICは複数のMSPに対して、同じ
データを一度にDMA転送することができます。このた
め、共有テーブルデータのダウンロードが、1個1個の
MSPに命令しなくとも、1回の命令だけで行えます。
【0182】図7のシステムを用いた動的ボイス割り当
て全体の動作を、図8に示します。プログラム変更80
0を示す信号に対応して、第一処理ブロック801が設
定構築処理、テーブルのダウンロード、静的アルゴリズ
ムの活性化を行います。802で発音が命令されると、
リソースの割り当ての判定が行われます(ブロック80
3)。もし、リソースがふさがっていると、MSP領域
で、盗むことができるアルゴリズムを特定し、そのアル
ゴリズムを停止し、これから活性化するアルゴリズムの
ためにリソースを再割り当てします。ブロック804、
ブロック803においてリソースが空いている時は、テ
ンプレートを適用して、アルゴリズムをリンクし、必要
ならば目標となるMRUを停止して、目標となるMRU
の初期化とダウンロードを行います。そして、HSAB
を初期化し、ホストの制御ストリングも初期化してMR
Uを更新し、処理を開始します(ブロック805)。そ
の後、ノートがオフしてアルゴリズムが停止されるまで
(ブロック807)、アルゴリズムの処理を行います。
リアルタイムに動的ボイス割り当てをためには、ブロッ
ク802のノートオンからブロック806のアルゴリズ
ムが動作するまでの時間遅れを、ミュージックシンセサ
イザーの演奏者に気付かれないようにせねばなりませ
ん。ボイス割り当てを行うために用いられるアルゴリズ
ムの詳細を、図9から図20に示します。
【0183】図9は、図7に示したシンセサイザーのた
めの処理ディスパッチャーの基本を示すフローチャート
です。システムに電源が入ると、システム初期化ルーチ
ンが実行されます(ブロック900)。初期化が終わる
と、システムはウエイトループに入ります(ブロック9
01)。決められた時間の中で何事も起こらなければ、
ホストCPUが他のことを行うスリープ状態に入ります
(ブロック902)。音の合成を行う段になると、シス
テムは起動し、4種類ある入力信号に対応した動作を行
います。1番目の信号は、発音命令です。ブロック90
3で判断します。2番目が、発音終了命令です。ブロッ
ク904で判断します。3番目がプログラム変更命令で
す。ブロック905で判断します。4番目が設定変更命
令です。ブロック906で判断します。最後に、命令が
何も来なかった時、ルーチンはその他の処理を行うブロ
ックに入ります(ブロック907)。ブロック907か
らアルゴリズムはウエイトループ901へと戻っていき
ます。ブロック903において発音命令を受け取ると、
アルゴリズムは図10に示された発音ルーチン(ブロッ
ク908)へと分岐して行きます。発音終了命令を受け
取ると、アルゴリズムは図11に示された発音終了ルー
チン(ブロック909)へと分岐します。プログラム変
更命令を受け取ると、アルゴリズムは図12に示された
プログラム変更ルーチン(ブロック910)へと分岐し
ます。そして、設定変更命令を受け取ると、アルゴリズ
ムは図13に示された設定変更ルーチン(ブロック91
1)へと分岐します。ブロック902は、処理の切り換
えや、処理ディスパッチャーから戻ってきた現在行って
いる処理を示します。ディスパッチャー内の雑務(ブロ
ック907)は、ウエイトステイトから戻って来た時
の、処理の場所を指し示します。
【0184】図10に発音ルーチンを示します。このル
ーチンは、発音中全てのボイスを明らかにし(ブロック
1000)、図14に示されたルーチンを使ってノート
内の最初のボイスを割り当てて(ブロック1001)、
そして全てのボイスが割り当てられたかどうかを調べま
す(ブロック1002)。ボイス全てが割り当てられる
まで、このアルゴリズムは(ブロック1000)に戻り
ます。全てのボイスの割り当てが終わると、発音が開始
されたことになります。図9の(ブロック909)に対
応する発音終了ルーチンを、図11に示します。このル
ーチンは、発音中の全てのボイスを明らかにし(ブロッ
ク1100)、ボイスリソースを解除し(ブロック11
01)、全てのボイスリソースが解除されたかどうかを
調べます(ブロック1102)。ボイスリソース全てが
解除されるまで、このアルゴリズムは(ブロック110
0)に戻ります。全てのボイスリソースが解除される
と、発音は割り当てが解除されたことになります。図9
のブロック910に対応するプログラム変更ルーチン
を、図12に示します。まず、プログラム変更ルーチン
は、命令1200で起動します。そして、そのプログラ
ムが既に設定されているかどうかを調べます(ブロック
1201)。もしまだ設定されていなかった場合、設定
−構築−確認ルーチンが実行されます図15の(ブロッ
ク1202)。設定−構築−確認が終了すると、選ばれ
たプログラムの設定が構築できるかどうかを調べます
(ブロック1203)。もし構築出来ないときは、アル
ゴリズムはブロック1208に戻り、必要に応じた形に
設定を縮小します。その後、設定−構築−確認(ブロッ
ク1202)を通って、設定が構築出来るかどうかを調
べ(ブロック1203)に入ります。もしブロック12
03で設定が構築可能であれば、設定−構築−確認ルー
チンが実行されます(図12のブロック1204)。プ
ログラムかブロック1201で設定中か、ブロック12
04の設定構築が終了した後、ブロック1205でプロ
グラム内の全てのエフェクトを確定します。エフェクト
が確定した後、ボイス割り当てルーチンが実行されます
(図14のブロック1206)。ボイス割り当てルーチ
ンの終了後、エフェクト全てが割り当てられたかどうか
の判定が行われます(ブロック1207)。割り当てが
まだ終わっていない場合、アルゴリズムはブロック12
05へと戻ります。割り当てが終了すると、MSPのプ
ログラムの変更が終了したことになります。図9のブロ
ック911に対応する設定構築ルーチンを、図13に示
します。図12のブロック1204のように、新しい設
定を必要とする命令に対応して、鍵盤位置とボイスとの
対応をつけます(ブロック1300)。
【0185】次に、設定に対するHSAB累算処理を割
り当てます(ブロック1301)。そして、設定に対応
するテーブルデータをMSP共有テーブルメモリーに読
み込みます(ブロック1302)。設定に含まれる全て
のボイスについて、ボイス作成ルーチンを実行します
(図16のブロック1304)。その後、設定内の全て
のボイスが処理されたかどうかの判定を行います(ブロ
ック1305)。全てが処理されていなかった場合、ア
ルゴリズムはブロック1303へと戻ります。全ての処
理が終わったら、設定が構築できたこととなります。図
14に、図10のブロック1101と図12のブロック
1206からコールされる、ボイス割り当てルーチンを
示します。ボイス割り当てルーチンは、コールされると
まず、空いているボイスリソースを検索します(ブロッ
ク1400)。そして、空いているリソースが見つかっ
たかどうかを判定します(ブロック1401)。もし、
空いているリソースが見つからなかったら、ホストが実
行中のグループから盗むことができるボイスを検索しま
す(ブロック1402)。ボイスが盗まれる度に、図中
のループに入ります(ブロック1403)。ブロック1
403の後、盗まれたボイスは、ボイス停止ルーチンに
よって停止させられます(ブロック1404)。ボイス
の停止が済むと、利用するのに相応しいリソースがそろ
ったかどうかを判定します(ブロック1405)。もし
適したリソースが無ければ、ブロック1403に戻っ
て、盗める他のボイスを停止します。そのリソースが利
用可能である場合、またはブロック1401で空いてい
るリソースが見つかった場合は、ボイスの初期化/開始
ルーチンが実行されます(図18のブロック140
6)。
【0186】図15に、図12のブロック1202から
コールされる、設定−構築−確認ルーチンを示します。
このルーチンは、プログラムが設定に組み込めるかどう
かを検査します。このアルゴリズムはまず、セットに含
まれる全ボイスのためのループに突入します(ブロック
1500)。このループで、セット内の個々のボイスの
リソースを計上していきます(ブロック1501)。そ
して全ボイスについての処理が終わったかどうかを判定
します(ブロック1502)。まだ終わっていなけれ
ば、ブロック1500へと戻ります。全てのポイスにつ
いての処理が終わると、アルゴリズムは設定の大きさを
確定させます(ブロック1503)。この情報をもとに
して、システム上のリソースを使って設定が構築出来る
かどうかを確認します。もし設定が構築できなければ、
すべての変更は取り消され、確認失格となります(ブロ
ック1505)。セットが構築出来る場合は、確認合格
となり、設定−構築−確認が終了します。
【0187】図16に、図13のブロック1304から
コールされるボイス作成ルーチンを示します。ある特定
のキーマップに対応したボイスプログラムと、システム
に含むべきパラメータを組み立てます。このルーチンが
コールされると、まずμコードの結合のイメージを作り
ます(ブロック1600)。次にボイスの全てのμコー
ドのイメージを作るループに入ります(ブロック160
1)。個々のμコードのイメージについて、ボイスのリ
クエストに応じてμコードのイメージを結合します(ブ
ロック1602)。そして、全てのイメージが結合され
たかどうかの判定を行います(ブロック1603)。も
しまだなら、アルゴリズムはブロック1601に戻りま
す。ブロック1603で全てのイメージが結合できた場
合は、ホスト制御の結合イメージが作られます(ブロッ
ク1604)。ホストのイメージはテーブルと結合され
ます(ブロック1605)。ホストのイメージはシステ
ムパラメータと結合され(ブロック1606)、割り込
みのベクトルマップが作られます(ブロック160
7)。これらのステップが終了すれば、ボイスは作成さ
れたことになります。
【0188】図17に、図14のブロック1404から
コールされるボイス停止ルーチンを示します。選択され
たボイスによって、あるボイスが盗まれたり、置き換え
られたりする場合、このボイス停止ルーチンは先ず、I
/Oの出入り口に設けられたランプジェネレータの目標
値を0に設定します(ブロック1700)。そしてMS
PのI/Oランプジェネレータ割り込み信号を、許可し
ます(ブロック1701)。アルゴリズムはMSPから
のI/Oランプ割り込みを待ちます(ブロック170
2)。割り込みを待っている間、このルーチンはウエイ
トステイトになり他の仕事を行います(ブロック170
3)。割り込みを受け取ると、ボイスリソースが開放さ
れます(ブロック704)。この時点で、停止するボイ
スのボイスリソースが利用可能になります。
【0189】図18に、図14のブロック1406から
コールされるボイス初期化/開始ルーチンを示します。
このルーチンは、設定内のボイスプログラムをMSPに
繋がったボイスプログラムへ転送するものです。割り当
てられるボイスのリソースが見つかると、このルーチン
は、MSPの命令メモリー上の初期化及び開始するボイ
スのμコード領域をNOP命令で一時的にマスクします
(ブロック1800)。次に、現在MSPに設定されて
いるHSABマップが、このアルゴリズムで使えるかど
うかを判定します(ブロック1801)。もし使いたい
チャネルが存在していなければ、このボイスのためにH
SABマップを定義します(ブロック1802)。チャ
ネルが存在していれば、MSPμコードとI/Oチャネ
ルとを結合します(ブロック1803)。そして、MS
PμコードのDMA転送を開始します(ブロック180
4)。SICチップのDMA回路は、分離ホストメモリ
ーからMSPμコードバッファへDMA転送を行い(ブ
ロック1805)、DMA転送が終わると信号を発しま
す(ブロック1806)。ホストは、ホストの制御スト
リングをボイスに結合します(ブロック1807)。こ
のパラメータと同様に、ホストからMSPレジスターへ
書き込まれるデータは、一旦レジスターダウンロードバ
ッファーに記憶されます(ブロック1808)。
【0190】次に、係数やI/O割り当てレジスターの
設定値などのパラメータを生成するために、ホストの初
期化処理をDMA転送と並行して行います(ブロック1
809)。そして、ホストはブロック1806から送ら
れてくるDMAの終了信号を、ブロック1810で待ち
ます。待っている間、ブロック1811に示したよう
に、ホストは他の仕事ができます。】 DMA終了の信
号を受け取ると、MSPレジスターへのDMAが転送が
始まります(ブロック1812)。これは、SICチッ
プのMSPレジスターバッファーのDMAを行う回路が
行い(ブロック1813)、DMAが終了すると信号を
発します(ブロック1814)。並行して、ホストはM
SPレジスターからMSPへの直接書き込みを詐可し
(ブロック1815)、割り込みベクトルを定義します
(ブロック1816)、そしてブロック1814から送
られてくるDMA終了信号を、ブロック1817で待ち
ます。待っている間、ブロック1818の様にホストは
他の仕事ができます。終了信号を受け取ると、ホストは
MSPμコードメモリー上で禁止してあった領域の禁止
を解除し(ブロック1819)、制御ストリングの更新
を開始します(ブロック1820)。これらのステップ
が全て終了すると、ボイスが開始されたこととなりま
す。図19に、分離ホストメモリーに記憶されたMSP
のデータとμコードのイメージを示します。例えば図1
6のボイス作成ルーチンにおいて、μコードの結合イメ
ージはこの分離メモリーに記憶されます。イメージはM
SPのμコードメモリーのどの場所に置かれても良いよ
うに作られます。ここで、動的に割り当てなければなら
ないA、B、C、Dというボイスを持ったシステムを考
えてみると、図19に示したように沢山のイメージが記
憶されます。ボイスAはボイスA0からA7の8つのイ
メージで記憶されているとします。ボイスBは、ボイス
B0、B2、B4、B6の4つのイメージで記憶されて
いるとします。ボイスCは、ボイスC0からC7の8つ
のイメージで記憶されているとします。ボイスDは、ボ
イスD0とD3の2つのイメージで記憶されているとし
ます。ボイスの個々のイメージデータは、みな分離メモ
リーに記憶されています。しかし、データのある場所が
わかっているので、図19に示したようにボイスにつき
1つのイメージデータのみを記憶しておけば良いので
す。
【0191】μコードのイメージの生成は、付随するM
RUリソース命令、レジスター、ディレイライン、割り
込みを、MSP上の命令開始ステップに適合させたμコ
ードを次々コピーして作っていくことです。しかし、命
令の開始ステップを選定して、そのボイスが必要とする
イメージの数がわかっていても、ボイスを盗むのを決め
るのにどれぐらい時間が必要なのかとか、イメージを記
憶するのにどのぐらいのメモリーが必要なのかとかを抜
きにしては、命令の開始ステップを決めることはできま
せん。図20に、4つのMSPからなるシステム及びこ
れに対するMRU0−7の配置と、このシステムで、図
19に示したように動的に割り当てされるボイスAから
Dと、固定された割り当てのボイスEとFの6ボイスを
処理する様子を示します。図にはまた、HSABのI/
Oレジスターマッピングと、共有テーブルのマッピン
グ、そしてPCMデータのマッピングを示します。この
図は、4個のMSPのそれぞれが8個のMSPリソース
ユニットMRUをもったシステムを示しています。図7
の実施例では、32個のMRUを持った9個のMSPか
らなるシステムを示しました。図20の例も、そのまま
単純に9個のMSPシステムに拡張可能です。
【0192】図20の例では、ボイスAはMSP1のM
RU0、MRU1、MRU4を使います。ボイスBは、
MSP1のMRU5と6、MSP4のMRU0と1、M
SP4のMRU2と3を使います。ボイスCはMSP3
のMRU2のみを使います。ボイスDは割り当てられて
いません。ボイスEは、MSP2のMRU0とMRU1
を使います。ボイスFは、MSP5のMRU2から5
と、MSP4のMRU4から7を使います。2系統のH
SAB累算出力として、MSP2のMRU6と7が割り
当てられています。I/Oレジスターマッピングは、レ
ジスタ番号とチャネル番号とは関連していない様子を示
しています。レジスターは必要に応じて割り当てられる
のです。同様にチャネルも、まだ使われていないチャネ
ルは動的に割り当てることができます。共有テーブルメ
モリーには5つのテーブルが記憶されています。例のテ
ーブル1と2の共有テーブルメモリーは、ボイスAが参
照するものです。テーブル1と2と4は、ボイスBが参
照するものです。テーブル1はボイスEが参照します。
テーブル3はボイスFが参照します。そして、テーブル
5はボイスCが参照します。PCMデータメモリーには
5つのサンプルが記憶されています。ボイスAがサンプ
ル3とサンプル5を参照します。HSAB累算アルゴリ
ズムのSUM0とSUM1は、MSP3に割り当てられ
ています。オーディオ出力システムへデータを書き込む
ための出力ルーチンは、MSP2のMRU6と7で実行
されます。HSABマップにおいて、MSP1はI/O
レジスターを用いて、HSABチャネル0と1にデータ
を書くことが示されています。MSP2はHSABチャ
ネルの2、3、4、7、8を読み、5、127、126
に書くことが示されています。SP3は、チャネル0、
1、6を読み、2、3、4に書きます。MSP4は、チ
ャネル5を読み、6、7、8に書きます。
【0193】MRUマッピング上の矢印は、データの流
れの例を表しています。ここに、MSP1の3つのボイ
スAが、HSABのチャネル0にデータを書き込んでM
SP3のMRU0の累算ルーチンがそれを読むことが示
されています。MSP3のMRU0内の累算ルーチンの
出力は、MSP2のMRU0にあるボイスEに再書き込
みされます。MSP1のボイスBの出力は、MSP3の
MRU1にあるSUM1累算ルーチンに書き込まれま
す。この累算ルーチンのその他の入力は、3つのボイス
Bで、それはMSP1のMRU5と6、MSP4のMR
U0と1、MSP4のMRU2と3です。SUM1ルー
チンが出力する累算結果は、MSP2のMRU1にある
ボイスEに書き込まれます。1つ目のボイスEであるM
SP2のMRU0の出力は、MSP2のMRU2から5
を使うボイスFに書き込まれます。2つ目のボイスE
は、その出力をMSP4のMRU4から7を使う2つ目
のボイスFに書き込みます。MSP2上にある1つ目の
ボイスFは、2つの組になった出力を出力ルーチンであ
るOUT1、OUT2に書きます。OUT1、2はオー
ディオ出力システムにデータを書き込みます。MSP4
上にある2つ目のボイスFも、その出力をOUT1とO
UT2ルーチンに書き込みます。MSP2上のMRU0
にある1つ目のボイスEの出力を、MSP2上の1つ目
のボイスFに転送するために、I/Oチャネルを使う必
要はありません。同様に、MSP2のボイスFの出力
を、MSP2内の出力ルーチンに転送するのにもI/O
レジスターを使う必要がありません。
【0194】IV. まとめ 本特許を用いたDSPを基にしたシンセサイザーシステ
ムは、動的ボイス割り当てを可能にするものです。この
システムは、リアルタイム割り当てが必要とされるボイ
スを構成する設定を、動的に割り当てる事ができるボイ
スプログラムの設定を組み立てることで可能とするもの
です。ボイスを構成するのに必要なリソースがシステム
に見合ったものかどうかを確認してから、設定に使える
リソースを決めるので、ボイスを活性化する速度を早め
ることが出来ます。このシステムはまた、複数のMSP
において相似形のルックアップテーブルを持っていま
す。これにより、ボイスの割り当てを決める際に、テー
ブルがどのMSPにあるかどうかを考える必要が無くな
って、どのMSPでもボイスプログラムを実行出来ます
から、ボイスの割り当て先を見つけるのが早く行えま
す。必要なリソースを決定するのに重要な、システムの
リソースの配置も、ボイス割り当てを簡単に行えるよう
に簡略化しています。これはまた、テーブルを予め読み
込んでおく手法をとるので、ボイスの発音を活性化する
までの時間を短縮できます。
【0195】このシステムは、1つのMSPに複数の異
なるアルゴリズムを割り当てることが可能となっていま
す。空いている空間の範囲ならば、異なる大きさのアル
ゴリズムを置くことができるので、たくさんのボイスを
同時に処理することができ、リソースの有効利用もでき
るようになっています。さらに、このシステムではMS
Pのμコードメモリー上に任意の禁止区間をもうけて、
NOP機能でその区間だけμコードの実行を止めること
ができます。このため、MSPチップを停止させること
や、実行中のボイス処理を中断することなしに、ボイス
プログラムをMSPにμコードメモリに転送することが
できます。MSP内部のレジスターバスは、命令領域が
禁止されている時の、初期化データの転送効率を上げる
ことに役立ちます。さらに、どのMSPに対しても等し
い数のHSABチャネルが設定されていますので、ボイ
スを割り当てる際に、どのMSPを使ってもHSABチ
ャネルが同じ様に利用でき、ボイスプログラムを転送す
る行き先を決めることが高速に行えます。これによりま
た、必要なリソースを決定するさいに考慮されるシステ
ムリソースの配列の次元を少なくする効果もあります。
また複数のMSPにまたがるエフェクトやボイス処理
も、仮想の通信線の束でつながれた処理ブロックの集合
として取り扱うことができます。このシステムはまた、
HSABチャネルとI/Oレジスターの対応を、バス上
の他のチャネルを中断することなしに変えることができ
ます。これによりMSPチップあたりのI/Oレジスタ
ーの数が少なくて済み、チップを小さくすることができ
ます。I/Oレジスターの番号とHSABチャネルの番
号の対応が固定されていないので、チャネル割り当ての
際の複雑な内部接続能力を拡大することができます。
【0196】このシステムは、ホストとメモリーのDM
Aを行うための独立したアドレス線を持った分離メモリ
ーと、そのデータバスとアドレスバスを持っています。
この機能で、MSPのμコードやデータを転送している
のと並行して、ホストのボイス初期化処理が実行できま
す。つまり、初期化処理をパイプラインで行えると見な
せるのです。設定内で選択されたボイスを割り当てる時
に、それに置き換えられるボイスを選びだして盗む方法
は、置き換えに際して音が中断するのを最小限にするリ
ソースを、多くリソースの中から選びだすために、ファ
ジーな論理アルゴリズムが用いられています。同様に、
ボイスが切り替わる時や盗まれるときにクリックノイズ
がオーディオ出力に混入するのを防ぐため、I/Oアル
ゴリズムにはオーディオ信号のレベルを制御するための
ランプジェネレータが設けられています。ランプジェネ
レータは、徐々にオーディオ信号レベルを変化させるた
め、音の変化がスムーズになる効果もあります。DSP
システムは、このシステムですでに実行されているアル
ゴリズムを中断することなしに、新しいアルゴリズムを
システムに割り当てて実行するために、様々な演算リソ
ースとメモリーリソースを有していますが、それらのハ
ードウエアの量は特に制限がありません。このシステム
はDSPを基にしたシンセサイザーシステムにおける動
的ボイス割り当ての実行に最適なものなのです。
【0197】本発明に対する実施例は発明の説明のため
のものであり、発明をこの例に限定するものではありま
せん。
【0198】
【効果】この発明を用いれば、ディジタル信号処理を基
にしたシンセサイザー/オーディオ処理システムが、そ
のシステム自身の構成を非常に短い時間で再構成できる
能力を持つことができるため、スタンダードMIDI入
力やモジュレーションコントローラ、そしてキーボード
等からのリアルタイム制御信号に即応した音の合成が可
能になります。
【図面の簡単な説明】
【図1】図1はこの特許発明によるミュージックシンセ
サイザーの概念図である。
【図2】図2は、図1に示されたシステムのメインCP
Uユニットのハードウエアブロック図である。
【図3】図3は、図2に示されたCPUと接続して用い
るヒューマンインターフェイスのハードウエアブロック
図である。
【図4】図4は、図2と図3に示したシステムと接続し
て用いる、MSPモジュールと出力回路のブロック図で
ある。
【図5】図5は、図2に示されたSICの機能ブロック
図である。
【図5A】乃至
【図5K】図5のSICのレジスター定義を図示したも
のである。
【図6】図6は、図4に示されたシステム内の楽音信号
処理装置(MSP)個々の機能ブロック図である。
【図6A】図6Aは、MSPウインドウの様子を示すブ
ロック図である。
【図6B】図6Bは、MSPの条件分岐を示す図であ
る。
【図6C】図6Cは、MSPにつながる高速オーディオ
バスインターフェイスであるHSABのブロック図であ
る。
【図6D】図6Dは、MSPのディレイラインとテーブ
ル(関数表)の設定をしめす図である。
【図6E】図6Eは、MSPのRAMアドレッシングブ
ロックの論理図である。
【図7】図7は、本特許発明における動的ボイス割り当
てシステムのメモリーとハードウエアモデルを示す図で
ある。
【図8】図8は、本特許発明におけるボイス割り当て処
理のシーケンスについての概略ブロック図である。
【図9】図9は、図7のシステムで使用される処理ディ
スパッチャーのフローチャートである。
【図10】図10は、図9の処理ディスパッチャーから
コールされる発音ルーチンのフローチャートである。
【図11】図11は、図9の処理ディスパッチャーから
コールされる発音終了サブルーチンのフローチャートで
ある。
【図12】図12は、図9の処理ディスパッチャーから
コールされるプログラム変更サブルーチンのフローチャ
ートである。
【図13】図13は、図9の処理ディスパッチャーから
コールされる設定構築サブルーチンのフローチャートで
ある。
【図14】図14は、図10のノートオン ルーチンか
らコールされるボイス割り当てルーチンのフローチャー
トである。
【図15】図15は、図12のプログラム変更ルーチン
からコールされる設定−構築−確認サブルーチンのフロ
ーチャートである。
【図16】図16は、図13の設定構築ルーチンからコ
ールされるボイス作成サブルーチンのフローチャートで
ある。
【図17】図17は、図14ボイス割り当てサブルーチ
ンのからコールされるボイス停止サブルーチンのフロー
チャートである。
【図18】図18は、図14ボイス割り当てサブルーチ
ンのからコールされるボイス初期化/開始サブルーチン
のフローチャートである。
【図19】図19は、ホスト処理システムの分離メモリ
ー内のボイスプログラムの概念図である。
【図20】図20は、図7のシステム内のMSPメモリ
ー内に記憶される、複数のボイスプログラムの該グルー
プとボイスプログラムの概念図である。
【符号の説明】
10 入力装置(入力手段) 11 ホスト処理モジュール 11a 動的ボイス割り当て(動的割り当て手段) 11b ホストメモリ 12 楽音信号処理モジュール(MSPモジュール;サ
ウンド処理手段) 12a 動的ボイス割り当て(動的割り当て手段) 12b MSPメモリ 16 ライン(入力手段) 203 外部LEDインターフェイス(マスキング手
段) 209 Yメモリー(係数メモリー) 350 コンフィグレーションレジスター(ディレイラ
イン制御装置、サンプル格納手段、ディレイライン制御
手段) 373 ディクリメントカウンター(ディレイライン制
御手段) 375 マルチプレクサー(ディレイライン制御手段) 377インデックスレジスター(ディレイライン制御手
段) 380 加算器(ディレイライン制御手段) 382 加算器(ディレイライン制御手段) 383 剰余論理回路(ディレイライン制御手段) 386 マルチプレクサー(ディレイライン制御手段) 700 ホストCPU(置換手段、リソースグループ、
供給手段) 701 非分離ホストバス(リソースグループ、供給手
段) 702 非分離ホストメモリー(第1メモリー、リソー
スグループ、記憶手段) 703 SIC(置換手段、転送手段、リソースグルー
プ、供給手段) 704 分離ホストバス(リソースグループ、供給手
段) 705 分離ホストメモリー(第2メモリー、リソース
グループ) 706 ファイルシステム(リソースグループ) 707−1〜707−nMSP(置換手段、信号処理手
段、リソースグループ) 708 高速オーディオバス(リソースグループ、オー
ディオデータバス) 709 DAADチップ(置換手段、リソースグルー
プ) 710 オーディオI/Oシステム(音声出力手段、リ
ソースグループ) 711 拡張MSPメモリー(第2メモリー、リソース
グループ) 712−2〜712−n MSPメモリーモジュール
(第2メモリー、リソースグループ) 720 再配置可能メモリー 721 制御ストリングメモリー 722 大規模メモリー(再配置不可能) 723 恒久割り当てメモリー 724 大規模メモリー領域 725 恒久割り当てメモリー領域(命令メモリー) 726 MSPはデータレジスターメモリー(入出力パ
ラメータメモリー) 727 μコードメモリー(命令メモリ) 728 共有テーブル(テーブルメモリー) 729 ディレイライン 730 PCMメモリー(サンプル格納手段)
【手続補正書】
【提出日】平成6年5月19日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正内容】
【特許請求の範囲】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0006
【補正方法】変更
【補正内容】
【0006】電子楽器における動的ボイス割り当て(d
ynamic voice allocation)と
は、楽音合成に必要なリソース(例えば、メモリー、プ
ロセッサー、バスサイクル等)が空いているか否かにか
かわらず、任意の楽音を発生する能力を持つことを意味
している。即ち、合成するためのリソースが空いていれ
ば即座に楽音発生に利用するが、リソースが空いていな
い時は、現在楽音発生に使われているボイスを”盗ん
で”新たなボイスに割り当ています。標準的なPCM
プレイバック方式のシンセサイザーにおいては、楽音合
成に必要なリソースを短時間で切換えるために楽音合成
のバリエーションを限定することにより動的ボイス割り
当てを可能にしている。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0034
【補正方法】変更
【補正内容】
【0034】LCD制御装置89はSIC73から、制
御ライン90を介して制御情報を、また第二データバス
70を介してデータを受け取ります。アドレス/データ
マルチプレクサー91の出力は、LCD制御装置89に
接続されています。このアドレス/データマルチプレク
サー91の入力は、アドレスライン52と第二データバ
ス70に接続されています。さらにアドレス/データマ
ルチプレクサー91は、LCD制御装置89に接続され
たLCD表示用のSRAM92にも接続されています。
このSRAM92は、LCD制御装置89とCPU50
とが時分割でアクセスします。時分割のプライオリティ
ーは、CPU50よりLCD制御装置89の方が高くな
っています。つまり、CPU50がLCD制御装置89
と同時刻にSRAM92にアクセスを行うと、制御ロジ
ックによってCPU50にウイト(ウイト命令)が
かかります。CPU50メモリは、非分離メモリ75と
分離メモリ80から構成されています。分離メモリ80
は、SIC73内のDMAロジックによってMSPに転
送されるデータの記憶に用いられます。なおCPU50
が非分離メモリ75をアクセスしている間でも、データ
をMSPに転送することが可能です。このパイプライン
メモリアクセスによって、MSPの初期化やボイスプロ
グラムの転送が素早く行えます。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0037
【補正方法】変更
【補正内容】
【0037】図2で用いられるMSPモジュール12を
図4に示します。このシステムには、番号150−0か
ら150−8から成るディジタルシグナルプロセッサー
アレイが含まれています。つまり、図4に示されたシス
テムには9個のディジタルシグナルプロセッサがあるの
です。ディジタルシグナルプロセッサの数は、用途に応
じて増減が可能です。本発明の実施例におけるディジタ
ルシグナルプロセッサは、図6以降に示されでいる楽音
信号処理装置(MSP)です。MSPは、本発明におけ
る動的ボイス割り当てを実行し易くする機能を持ったデ
ィジタルシグナルプロセッサ(DSP)です。番号15
0−0から150−8のディジタルシグナルプロセッサ
のMSPアレイは、ホストシステムインターフェイス
10を介してアドレスライン84、制御ライン85及び
データライン83が接続されています。そして、MSP
アレイの150−0から150−8のそれぞれに1つず
つメモリモジュールが接続されMSPアレイ150−0
のみに拡張メモリモジュール151が接続されている。
さらにMSPアレイ150−1から150−8には、標
準のメモリモジュール152−1から152−8がそれ
ぞれ接続されています。MSPアレイ150−0から1
50−8は、高速オーディオバス(オーディオデータバ
ス)153で相互接続されています。この高速オーディ
オバス153は、D/Aコンバータ、A/Dコンバータ
とのバスインターフェイスチップ(DAADチップ)1
54に接続されています。またこの出力は2個のD/A
コンバータ155、156に接続されています。D/A
コンバータ155の出力は左チャネルと右チャネル用の
フィルタ157、158に送られた後、マスターボリュ
ーム制御159を通って左チャネルと右チャネルの出力
ジャック160、161に出力されます。マスターボリ
ューム制御159の出力は、ヘッドフォンジャック16
2にも送られます。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0038
【補正方法】変更
【補正内容】
【0038】D/Aコンバータ156の左チャネルと右
チャネルの出力も同様に、フィルタ163と164を通
ってAUX出力165、166に出力されます。入力端
子167、168からのアナログ入力信号は、A/Dコ
ンバータ169でディジタルデータに変換されて、DA
ADチップ154に入力され、その後高速オーディオバ
ス153を通じてMSPにデータが転送されます。クロ
ック170はこのDAADチップ154にクロックを供
給します。上述したように、図2のメインCPUシステ
ムと、図3のヒューマンインターフェイスブロックと、
図4のミュージックシグナルプロセッシングブロックか
ら構成されるシステムによって、MSPアレイ150−
0から150−8とメモリモジュール151、152−
1から152−8内の命令メモリに、グループ化したボ
イスプログラムを記憶し、これをリアルタイムに処理す
るディジタルシグナルプロセッサを基本としたミュージ
ックシンセサイザーが実現できます。ボイスプログラム
は、グループにまとめられて分離メモリ80に記憶され
ており、図4のMSPアレイのメモリモジュールに動的
に割りつけられます。ホストCPU50はボイスプログ
ラムを組み立てて、それを動的に割り当てるために分離
メモリ80に転送します。ホスト処理システムは、必要
に応じてMIDIの標準インターフェイスや、ヒューマ
ンインターフェイスブロックの制御も行います。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0040
【補正方法】変更
【補正内容】
【0040】ホストCPUインターフェイス500は、
CPUインターフェイス制御ブロック508と基本的に
接続され、ホストCPUインターフェイス500からの
データは、ライン509により転送器510とシリアル
インターフェイス制御装置とレジスタ511及びDMA
制御レジスター513に転送されます。またSICは、
非分離DRAMインターフェイス501の為のアドレス
マルチプレクサ514及び非分離DRAM制御装置51
5を有している。アドレスマルチプレクサ516、分離
DRAM制御装置517及び転送器510は、分離DR
AMインターフェイス502が必要とするアドレス及び
データ等の制御信号を転送或は供給している。アドレス
マルチプレクサ518、MSPバスインターフェス制
御装置519及びMSPウィンドレジスタ520は、
MSPインターフェイス503が必要とするアドレス及
び、制御情報を与えるのに用いられます。また、SIC
は、ホストCPUインターフェイス500の為の割り込
み信号を発生し、ライン512に出力します。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0049
【補正方法】変更
【補正内容】
【0049】3.チップセレクト領域1動作 この領域はCS1L信号により有効にされ、そして全て
の物理的なRAMとハードウェアのI/Oの動作で使わ
れる物理的メモリの領域が割り当てられています。ここ
には、フロッピー制御装置56、SCSI制御装置5
8、時計チップ60、DUARTインターフェイス6
3、LCD制御装置89とLCDディスプレイのSRA
M92、個々のMSPとMSPウインド領域内部のD
RAMからなる分離メモリー80が含まれています。こ
の領域には、システム中の分離DRAMと非分離DRA
Mの最大のアドレスデコーディングも含まれています。
また物理的RAMの狭い可変域が、CS3L領域に割当
られています。
【手続補正8】
【補正対象書類名】明細書
【補正対象項目名】0052
【補正方法】変更
【補正内容】
【0052】次に、オーバーレイマネージャーは、CS
0L信号でのアドレスデコード領域の動きによって必要
となる論理的ページ領域へ物理的領域を再割付けしま
す。そして新しいオーバーレイは、ページ領域をディス
クから検索し、元のプログラムと一体にします。これに
より再割付け時に”ページフォールト”が発生し、現在
ロードされていないオーバーレイが必要であることがわ
かります。
【手続補正9】
【補正対象書類名】明細書
【補正対象項目名】0060
【補正方法】変更
【補正内容】
【0060】非分離DRAM制御装置515は、DRA
Mリフレッシュカウンタによって作られるリクエスト1
回により現在のバスアクセスの後、1回のリフレッシュ
サイクルを実行します。また非分離メモリ75の領域に
おいてリフレッシュは、1番の優先度を持っています。
もしリフレッシュがリクエストされたならば、CPUサ
イクルが進行中の場合は、リフレッシュ制御装置は現在
のサイクルか終わるまでウイトし、リフレッシュサイ
クルはその後に行われます。また、リフレッシュサイク
ルが行われている間に、CPUが非分離DRAMへのア
クセスをリクエストした場合は、リフレッシュサイクル
が終わるまで待たないといけません。
【手続補正10】
【補正対象書類名】明細書
【補正対象項目名】0062
【補正方法】変更
【補正内容】
【0062】DRAMリフレッシュは、CASビフォア
RASリフレッシュサイクルの方法で実行させます。分
離DRAM制御装置517は、DRAMリフレッシュカ
ウンタによって作られるリフレッシュリクエストがあっ
た時、リフレッシュサイクルを実行します。分離メモリ
80の領域において、リフレッシュは1番の優先度を持
っている。従って、もしリフレッシュリクエストがされ
た時、CPU又はDMAサイクルが進行中なら、リフレ
ッシュ制御装置は現在のサイクルが終わるまでウェイト
ステートとなり、リフレッシュサイクルはその後に行わ
れます。また、リフレッシュサイクルが行われている間
に、CPU又はDMAが分離DRAMへのアクセスを
クエストしたのなら、リフレッシュサイクルが終わるま
で待機しなければなりません。分離DRAM制御装置5
17は、SICのDMA制御装置での分離DRAMのア
クセスも規定しています。CPUバスのリクエストは、
DMA制御装置のバスリクエストより高い優先度を持っ
ています。
【手続補正11】
【補正対象書類名】明細書
【補正対象項目名】0067
【補正方法】変更
【補正内容】
【0067】I.MSPウィンドーイング MSPウィンドーイング機能は、複数のMSPへの同時
書き込み動作を規定します。MSPがアクセスされる
際、CPUのMSPウィンドーレジスタ520かDMA
のMSPウィンドーレジスタ520の一致するビットの
それぞれのMSPに決まります。CPUまたはDMAの
制御装置が、MSPの”ウィンドー領域”にアクセスす
る時、一致しているチップイネーブルをCPUまたはD
MAのMSPウィンドーレジスタ520中のそれぞれに
ビットの設定を発生します。複数のMSPへのバスサイ
クルは、全てのMSPへの書き込みが完了して、ワイヤ
ードオア接続したMSP_WAITL信号が開放された
後に終了します。MSP”ウィンドー領域”は書き込み
のみが可能です。もし、読みだし動作を試みたなら全て
「0」が返されます。
【手続補正12】
【補正対象書類名】明細書
【補正対象項目名】0069
【補正方法】変更
【補正内容】
【0069】DMA転送は、DMA制御レジスタ513
のSTビットを設定することによって始まります。DM
Aからのリクエストは、ワード転送カウントが「0」よ
り大きい場合はいつでも内部的に発生します。従って外
部からのリクエストは必要でありませんし、またサポー
トもしません。サイクルの長さは、SICへ入力される
MSP_WAITLによって伸ばされます。DMA転送
が完了し、ワード転送カウントが「0」になったら、S
ICはDMA制御レジスタのSTビットを解除し、SI
C割り込み状態レジスタのDTCビットを設定します。
イネーブルなら、68340に対してSIC_IRQL
信号を発生します。この割り込みは、マスクレジスタで
ソフトウェアのマスクが可能です。MSP−DRAM
DMA制御装置527は、自動増加又は、同一アドレス
動作に、プログラムが可能です。DRAMアドレスは、
増加又は、同じ所に留まるかが可能であり、またMSP
アドレスは、増加又は、同じ所に留まるかの設定が可能
です。DMA転送の間、データの動きは、CPUアクセ
スかリフレッシュに先取りされることもあります。リフ
レッシュが1番の優先度を持っています。それはリフレ
ッシュサイクルがリクエストされたなら、まずそれを始
め、DMAとかCPUのアクセスはそれが終わるまでウ
ェイトかけます。次の低いレベルは、CPUに与えられ
ています。それは、もしCPUが、分離DRAMかMS
Pへのアクセスをリクエスト中なら、次の有効なリフレ
ッシュが無い時バスサイクルは、どんなDMAアクセス
のリクエストがされているより、それに与えられるでし
よう。
【手続補正13】
【補正対象書類名】明細書
【補正対象項目名】0074
【補正方法】変更
【補正内容】
【0074】2.マスクレジスタ(525)図5Bで示
される、マスクレジスタは、CPUへの割り込み信号S
IC_IRQLの発生ソースを許可するためのもので、
SIC割り込み状態レジスタとビット位置が対応してい
るものです。もし、SIC割り込み状態レジスタの中の
1つのビットを設定し、そしてマスクレジスタの同じビ
ットが設定されていると、SIC_IRQL出力を発生
します。マスクレジスタのビットが解除されると、SI
C割り込み状態レジスタと同じビットの状態は、SIC
_IRQLの出力に現れません(アドレス $02)。 Mn−MSP #n 割り込みイネーブルビット 1 = MSP#nの割り込みが有効。 0 = MSP#nの割り込みが無効。 SI−シリアルインターフェイス 1 = シリアルインターフェイスの割り込みが有効。 0 = シリアルインターフェイスの割り込みが無効。 CNT−HSAB バス衝突エラー 1 = HSABバス衝突の割り込みが有効。 0 = HSABバス衝突の割り込みが無効。 DTC−DMA転送完了 1 = DMA転送完了の割り込みが有効。 0 = DMA転送完了の割り込みが無効。
【手続補正14】
【補正対象書類名】明細書
【補正対象項目名】0075
【補正方法】変更
【補正内容】
【0075】3.DMA制御レジスタ(513) 図5Cで示される、DMA制御レジスタは、SICのM
SP−DRAM DMA制御装置の動きを決定します
(アドレス $04)。 DAI−DRAM アドレス増加/不変 ビット 1 = DRAMアドレスレジスタは、16ビットワー
ド転送毎に2ずつ増加 0 = DRAMアドレスレジスタは、転送後も、増加
しない。 DMA DRAMアドレスレジスタに書かれているDR
AMのアドレスは、DMA転送が完了するまで使われま
す。 MAI−MSP アドレス増加/不変 ビット 1 = MSPアドレスレジスタは、それぞれ16ビッ
トワード転送毎に2ずつ増加 0 = MSPアドレスレジスタは、転送動作の間、増
加しない。 DMA MSPアドレスレジスタに書かれているアドレ
スは、データ転送が完了するまで使われます。 TD−DMA 転送方向ビット 1 = データは、システムDRAMからMSPへ、転
送される 0 = データは、MSPからシステムDRAMへ、転
送される ST−DMA スタートビット 1 = DMA転送スタート 0 = 動かない 4.DMA MSPアドレスレジスタ 図5Dで示されるDMA MSPアドレスレジスタは、
MSP領域へのアクセスのDMAで使われるMSPの動
きのアドレスを持っています。指定された16ビットア
ドレスは、MSP領域の基本アドレス$780000か
らのオフセットです。このレジスタは、それぞれの転送
動作の後、増加するのか、同じ所に留まるのかは、プロ
グラムにより設定が可能です(アドレス $04)。
【手続補正15】
【補正対象書類名】明細書
【補正対象項目名】0078
【補正方法】変更
【補正内容】
【0078】7.CPU−MSPウィンドーレジスタ
(520) 図5Iで示されるCPU−MSPウィンドーレジスタ
は、CPUがMSPの”ウィンドー領域”にアクセスす
る時、アクセスされるMSPを決めます(アドレス #
10)。 Mn−セレクト MSP #n ビット 1 = MSP #nは選ばれた 0 = MSP #nは選ばれていない
【手続補正16】
【補正対象書類名】明細書
【補正対象項目名】0079
【補正方法】変更
【補正内容】
【0079】8.DMA−MSPウィンドーレジスタ
(520) 図5Jで示されるCPU−MSPウィンドーレジスタ
は、DMAコントローラがMSPの”ウィンドー”にア
クセスする時、アクセスされるMSPを決めます(アド
レス #12)。 Mn−セレクト MSP #n ビット 1 = MSP #nは選ばれた 0 = MSP #nは選ばれていない
【手続補正17】
【補正対象書類名】明細書
【補正対象項目名】0081
【補正方法】変更
【補正内容】
【0081】[4]楽音信号処理装置(MSP)(図
6,6A−6E) 図6にMSPの基本全体ブロック図を示します。図6A
から図6EはMSPの各ブロックをそれぞれ示します。
図6に示される様にMSPは、ホスト処理システムによ
ってプログラミングされ,複数のMSPによるマルチテ
ィンバー楽音合成を実行します。これを効率よく行うた
めにMSPは、ホストCPUインターフェイス200、
RAMインターフェイス201、HSABインターフェ
イス202等の特別なインターフェイスを持ちます。ホ
ストCPUインターフェイスブロック200は、MSP
内部の全ての領域へのアクセスをサポートします。ホス
トはMSP内部の全てのコンフィギュレーションレジス
ター、ステイタスレジスター、そしてデータレジスター
に対して読み込みあるいは書き込みが可能です。またM
SPには、32個の割り込みソースのどれが処理をリク
エストしているかを認識するための少なくとも2つの割
り込みレジスターを含む条件、割り込み、外部LEDイ
ンターフェイス(マスキング手段)203を含みます。
【手続補正18】
【補正対象書類名】明細書
【補正対象項目名】0087
【補正方法】変更
【補正内容】
【0087】B.クロック、タイミング クロック、タイミング制御ブロック215は、オペレー
ションモードに従って、マイクロコードアドレスの発
生、更新を行います。MSPはホルト、シングル−ステ
ップ、フリーランの動作が可能です。実際にはHSAB
インターフェイス202からの次の同期パルスを受け取
るまでスタートしないが、ホストはいつでもMSPをス
タートさせることができます。MSPはソフトウエアま
たはハードウエアにより、ホルトそしてシングル−ステ
ップの動作が可能です。コンフィギュレーションレジス
ターにMSPのラン/ホルトを制御するビットがあり、
またMSPの外部ピンによっても制御可能であります。
このピンの設定が「ロウ」の時、MSPはコンフィギュ
レーションレジスターの設定にかかわらず停止状態にな
ります。このピンの設定が「ハイ」の時、コンフィギュ
レーションレジスターを「1」に設定することでMSP
は動作状態に入ります。ピンの設定が「ハイ」でコンフ
ィギュレーションレジスターが「0」の時、MSPは停
止状態になります。このレジスタービットはハードウエ
アリセットによって「0」に設定されます。一旦、外部
ピン及びレジスタービットが「ハイ」に設定され、その
時点から最初の同期パルスを受信して、MSPは動作状
態に入ります。MSPが停止状態の時でもHSABイン
ターフェイス202は動作しつづけ、またCPUは、ホ
ストCPUインターフェイス200を介して、レジスタ
ーやRAM領域への読み込み、書き込みが可能です。
【手続補正19】
【補正対象書類名】明細書
【補正対象項目名】0088
【補正方法】変更
【補正内容】
【0088】MSPがピン設定あるいはレジスター設定
によって停止状態の時、シングル−ステップピングとレ
ジスタービットによってシングル−ステッピングが可能
です。このシングル−ステッピングは、システム又はM
SPのデバッグが主な目的となります。外部ステップピ
ンからの立ち上がり信号のエッジでMSPは,1命令実
行されます。この動作はある特定のタイミングで発生
し、例えば、MSPが停止状態で95番目の命令待ちの
状態である時、シングル−ステップのコマンドを受ける
と、通常の95番目のステップが実行されるであろうサ
イクルまで待機します。そしてこの命令は実行され、そ
の後、シングル−ステップレジスターは「0」にリセッ
トされます。CPU(図2参照)はMSPが通常の動作
時にも、RAM領域やXバス204、Yバス205をア
クセスする必要があります。RAMのアクセスは、MS
Pの1命令以上の時間を要し、かつMSPの内部サイク
ルはCPUのサイクルより短いので、MSPはいつCP
Uがこれらのアクセスを実行する時間があるかを判断す
る必要があります。これを実現するため、MSPは6命
令分のプリフェッチバッファ214を持ちます。このプ
リフエッチバッファ214を埋めるためにCPUは少な
くとも20μS、0番地のマイクロコードをロードして
から”RUN/HALT”ビットを設定するまで待つ必
要があります。これにより、MSPのプリフェッチバッ
ファ214は新しい命令に更新され、次の同期パルスを
待って実行開始されます。この動作はシングル−ステッ
ピングの時も同じである。
【手続補正20】
【補正対象書類名】明細書
【補正対象項目名】0089
【補正方法】変更
【補正内容】
【0089】MSPのプログラムカウンター(PC)
は、9ビットの同期カウンターである。そして、実際に
は2つのカウンターがあり、1つは9ビット、1つは8
ビットです。メインカウンターの9ビットカウンターは
どのマイクロコードステップが実行されているかを示し
ます。これはシングル−ステップのトリガリングとその
他、正確な命令ナンバーを知る必要のある機能のために
使われます。一方の8ビットカウンターはブリフェッチ
バッファ214に読み込まれるマイクロコードRAMの
アドレスを発生します。MSPが停止状態の時、MSP
はXバス204、Yバス205へのアクセスを実行しま
せん。そのためCPUはウェイト無しで、MSP内部レ
ジスターへのアクセスが可能となります。ホストは”R
UN/HALT”ビットあるいはシングル−ステップを
設定する前に、全てのホストアクセスを実行終了する必
要があります。例えば、ホストDMAアクセスが開始し
て、もしMSPの”RUN/HALT”ビットがこのア
クセスが終わる前に設定された場合、MSPの実行結果
とDMAの実行結果は不定となってしまいます。
【手続補正21】
【補正対象書類名】明細書
【補正対象項目名】0090
【補正方法】変更
【補正内容】
【0090】C. ホストCPUインターフェイス ホストプロセッサーはホストCPUインターフェイス2
00を介して、MSPの内部レジスターを読み込み、書
き込みしたり、MSPの動作や構成を制御したりしま
す。ホストCPUインターフェイス200はRAMイン
ターフェイス201、HSABインターフェイス201
と同様に、割り込み、制御レジスター、全てのMSP内
部レジスターを設定するための主なインターフェイスで
ある。ホストCPUインターフェイス200は、Xバス
204、Yバス205に対してALU207や他の内部
ブロックと競合する必要があります。このために、ホス
トCPUインターフェイス200は、CPUがリクエス
トする動作が実行終了するまで、CPUのサイクルにウ
ェイトステートを挿入します。例えば、ALU207が
使用中のXメモリー208への書き込み動作では、実行
可能になるまでホストへのウェイトステートが発生しま
す。ホストは”ready”ビットをポーリングする必
要はなく、またホストCPUアクセスに対するMSP内
のバスは管理され、ホストCPUインターフェイス20
0はMSP内部データへの高速でシンプルなアクセスを
可能にしています。制御及びコンフィギュレーションレ
ジスターは、ホストに対してウェイトステートを発生し
ません。そして読み込み、書き込み時のある状態におい
てもウェイトステートは発生しません。このウェイトス
テート発生の方法によりCPUは同じバスサイクルで複
数のMSPへの書き込みが可能です。この動作は、ワイ
ヤードオアされたウェイトステート信号と、複数発生す
るチップセレクト信号により行われます。実際にはこの
機能はSICの機能である。
【手続補正22】
【補正対象書類名】明細書
【補正対象項目名】0091
【補正方法】変更
【補正内容】
【0091】図6Aは複数のMSPへの同時書き込み動
作を可能にする”MSPウィンドウ”のブロック図を示
しています。図6Aの様にCPU50はSIC73は接
続されます。SIC73は、アドレスライン52,制御
信号ライン53を通してチップセレクトとアドレスをC
PU50から受信し、CPU50はSIC73から、ク
ロックライン54からの信号を受信する。SIC73は
複数のチップセレクト300−0から300−NをMS
P150−0からMSP150−Nにたいしてそれぞれ
発生します。複数のMSPはプルアップ抵抗302を持
ちアクティブロウライン301でCPU50にウェイト
ステートを出力すると共に読み込み、書き込み、データ
のストローブ信号をアクティブロウ303に出力しま
す。この構成によりチップセレクトの対象となる全ての
MSPにパラレルにデータをロードする事ができます。
【手続補正23】
【補正対象書類名】明細書
【補正対象項目名】0092
【補正方法】変更
【補正内容】
【0092】CPUインターフェイスには、16ビット
のアドレス空間内の、2Kワード領域としてCPU50
から出力される。このアドレス空間は全ては使われては
いませんが、割りつけされています。ホストCPUイン
ターフェイス200はMSP内部のワード長(16,2
4,56,80ビット)と16ビット長のCPUアクセ
スとのインターフェイスをとります。データはMSP内
部で読み込み、書き込み時にラッチされます。これによ
りCPUは1つのアクセスに対し最初のワードの読み込
み、あるいは最後のワードの書き込みの時だけウェイト
ステートを受け取ることになります。またホストCPU
インターフェイス200はMSP内部レジスター、ポー
トに対するアクセスのデコーディングを行います。”B
IGENDIAN”入力ピンによって、MSPワードと
ホストワードのインターフェイスのフォーマットを設定
します。”BIGENDIAN”入力ピンが「1」の
時、MSPのレジスターはいわゆる”Big−Endi
an”構成としてマッピングされます。例えば、ダブル
ワードの小さいアドレスの方のワードがMSB側ワード
となります。”BIGENDIAN”入力ピンが「0」
の時、MSPのレジスターはいわゆる”Little−
Endian”構成としてマッピングされます。例え
ば、ダブルワードの小さいアドレスの方のワードがLS
B側ワードとなります。
【手続補正24】
【補正対象書類名】明細書
【補正対象項目名】0093
【補正方法】変更
【補正内容】
【0093】ホストCPUインターフェイスブロック2
00の主な構成を以下に示す。 ホスト、読み込み/書き込みポート ホストワード、MSPワードインターフェイス ホスト、アドレスデコード ホスト、ウェイトステート発生装置 ホスト、読み込み/書き込み制御装置、タイミング制御
装置
【手続補正25】
【補正対象書類名】明細書
【補正対象項目名】0100
【補正方法】変更
【補正内容】
【0100】HSABはMSPコンフィギュレーション
レジスターの”HSAB ENABLE”ビットでイネ
ーブル/ディスエーブルする事ができます。リセット
後、HSABはディスエーブルされています。ホストは
コンフィギュレーションレジスターとマップレジスター
をプログラムする時、”HSAB ENABLE”ビッ
トを「1」に設定します。そしてMSPは次の同期信号
を待ちます。パワーオンリセット後、全てのMSPはホ
ルト状態にあります。同期信号はDAADからリセット
後48KHzサンプルレート後に発生されます。ホスト
が全ての内部レジスター、マイクロコード、RAM、コ
ンフィギュレーションレジスターなどをプログラムした
後、MSPはランモードに設定されます。MSPはそれ
ぞれ次のI/O制御ブロックからの同期信号を待ちま
す。この同期信号のパルスによりMSPの内部マイクロ
コードポインターは、最初の命令に設定され、オペレー
ションが開始されます。このように、システム内の全て
のMSPはシングル−ステップモード時を含め、常に同
期している事になります。HSABインターフェイス2
02の主な構成を以下に示す。 ・HSABデータRAM ・HSABマップRAM ・HSABマップカウンター ・HSABタイミング、制御発生装置
【手続補正26】
【補正対象書類名】明細書
【補正対象項目名】0104
【補正方法】変更
【補正内容】
【0104】ディレイラインでは、書き込みは通常ディ
レイラインの先頭で行われ、読み込みは通常あるサンプ
ル数前で行われます。書き込み動作では、アドレス値は
パーテションベース値、そのディレイラインのオフセッ
ト値、ディクリメントカウンターの出力値より作られま
す。読み込み動作では、インデックスレジスターのディ
レイ値にデイクリメントカウンター値、そのディレイラ
インのオフセット値を加算して作られます。通常の動作
時、CPUはRAMエリアをMSPと競合してアクセス
しなければなりません。RAMアクセスはMSPの1命
令以上の時間を要するので、MSPはいつCPUがこれ
らのアクセスを実行する時間があるか判断することがで
きる必要があります。これを実現するため、MSPは6
命令分のプリフェッチを持ちます。CPUはMSPレジ
スターマップにある、シングルワードレジスターにおけ
るRAMへのデータのダウンロードを行います。CPU
によってどのアドレスに、ダウンロードされたデータが
書き込みあるいは読み込みされるかは、2つのRAMポ
インターによって決まります。1つのポインターはCP
Uが直接RAMをアクセスした時に使われ、1つはSI
CがDMA転送を行う時に使われます。どちらが使われ
いるかは、アクセス開始時の”CPUDMAL”入力ピ
ンの値で決まります。RAMインターフェイスブロック
201の主な構成を以下に示す。 RAMアドレス制御マルチプレクサー RAMアクセスアドレスラッチ RAMアクセスデータラッチ RAS、CAS、WE発生装置 RAMコンフィグレーションレジスター RAMサーキュラー/リニアスプリットレジスター サーキュラーアドレスカウンター RAMアドレス演算器 RAMデータ入出力制御
【手続補正27】
【補正対象書類名】明細書
【補正対象項目名】0108
【補正方法】変更
【補正内容】
【0108】I. X、Yレジスターストレージブロッ
ク X、YレジスターブロックXメモリー208、Yメモリ
ー209は2つのスタティックRAMで構成され、MA
C206、ALU207に対する高速アクセスを行う内
部データストレージです。Xメモリー208はXバス2
04からのみアクセスでき、Yメモリー209はYバス
205からのみアクセスできます。それぞれは、256
ワード*24ビットのサイズです。CPU50はこれら
をアクセスすることができるが、MSP内部における命
令の実行状態によっては、1つあるいはそれ以上のウェ
イトステートが必要になる場合があります。Yメモリー
209は、Yサーキュラー/リニア スプリットポイン
トレジスターによって設定されるポイントで2つの領域
に分割されます。このレジスターはサーキュラーメモリ
ーのワード数0,4,8,16,32,64,128,
256を決める3ビット値をもちます。メモリーの下側
は、サーキュラーにアドレッシングし、上側は、リニア
にアドレッシングします。毎サンプルにデクリメントす
る8ビットのデクリメントカウンターは全サーキュラー
アドレッシング領域をカバーします。
【手続補正28】
【補正対象書類名】明細書
【補正対象項目名】0123
【補正方法】変更
【補正内容】
【0123】T. MSPレジスターの説明 ここでは、MSPホストCPUインターフェイス200
におけるレジスターの定義についての述べます。内部デ
ータ空間、ステータスレジスター、コンフィグレーショ
ンレジスター、RAM、マイクロコードポート、ポイン
ター等を含みます。
【手続補正29】
【補正対象書類名】明細書
【補正対象項目名】0124
【補正方法】変更
【補正内容】
【0124】1. X、Yレジスター X、Yレジスター領域208,209はレジスターマッ
プの先頭にあります。これらは、MSPの内部ポインタ
ーに関係なく直接マッピングされ、またアクセスされま
す。これらのレジスターは内部のX、Yバスを介してア
クセスされ、そしてアクセスか完了する前は、CPUに
対してウェイトステートが発生する場合があります。
ェイトステートは連続するワードの2つ目のワードの読
み込み時、1つ目のワードの書き込み時にはインサート
されません。X、Yレジスター領域のデータは全て24
ビット長です。そして16ビットのホストCPUインタ
ーフェイス200に対しては2つの16ビットワードと
して扱われます。”BIGENDIAN=1”の場合、
大きい方のアドレスのワードのLSBがMSPワードの
LSBとなります。”BIGENDIAN=0”の場
合、小さい方のアドレスのワードのLSBがMSPワー
ドのLSBとなります。それぞれのバンクは24ビッ
ト、256ワードで、2バンクトータルで2048バイ
トのアドレス空間をしめます。
【手続補正30】
【補正対象書類名】明細書
【補正対象項目名】0125
【補正方法】変更
【補正内容】
【0125】2. HSABデータ、マップレジスター HSABインターフェイス202にあるこれらのレジス
ターはMSPの隣り合ったアドレス空間にあります。H
SABデータメモリーが小さい方のアドレスエリアにあ
ります。このメモリーは64ワード*24ビットです。
これらのレジスターは内部のX、Yバスを介してアクセ
スされ、そしてアクセスが完了する前は、CPUに対し
ウェイトステートが発生する場合があります。ウェイ
ステートは連続するワードの2つ目のワードの読み込
み時、1つ目のワードの書き込み時にはインサートされ
ません。この領域のデータは全て24ビット長です。そ
して16ビットのホストCPUインターフェイスに対し
ては2つの16ビットワードとして扱われます。”BI
GENDIAN=1”の場合、大きい方のアドレスのワ
ードのLSBがMSPワードのLSBとなります。”B
IGENDIAN=0”の場合、小さい方のアドレスの
ワードのLSBがMSPワードのLSBとなります。2
4ビット、64ワードで、トータルで256バイトのア
ドレス空間をしめます。HSABデータRAMはCPU
によって読み込み、書き込み可能です。
【手続補正31】
【補正対象書類名】明細書
【補正対象項目名】0127
【補正方法】変更
【補正内容】
【0127】ディレクションビットが「0」に設定され
ている場合、そのMSPがこのチャネルでデータを受信
する事を示します。ディレクションビットが「1」に設
定されている場合、そのMSPがこのチャネルでデータ
を送信する事を示します。16ビット、64ワードで、
トータルで128バイトのCPUアドレス空間をしめま
す。HSAB制御装置は、MSP動作中にこのマップレ
ジスターをアクセスすることになるので、アクセスが完
了するまでにCPUに対してウェイトステートを発生す
る場合があります。HSABマップレジスターは全てC
PUにより読み込み、書き込み可能です。
【手続補正32】
【補正対象書類名】明細書
【補正対象項目名】0128
【補正方法】変更
【補正内容】
【0128】3. ディレイライン/テーブル ポジシ
ョンレジスター これらのレジスターによって、MSPはフレキシブルに
テーブル、ディレイラインを構成することが可能です。
MSPはディレイラインとテーブルのあらゆる組み合わ
せを64個までサポートします。これらのレジスターに
は2つのエリアがあります。1つはテーブル/ディレイ
ラインのベースオフセット値と、テーブルかディレイラ
インかを設定するエリアです。もう1つはディレイライ
ンのサンプル数をカウントするエリアです。これらのレ
ジスターはウェイトステートを発生しません。最初のエ
リアにあるディレイラインオフセット値は24ビット、
64ワードで構成されます。そして16ビットのホスト
CPUインターフェイスに対しては2つの16ビットワ
ードとして扱われます。”BIGENDIAN=1”の
場合、大きい方のアドレスのワードのLSBがMSPワ
ードのLSBとなります。”BIGENDIAN=0”
の場合、小さい方のアドレスのワードのLSBがMSP
ワードのLSBとなります。MSWのビット8で、MS
P RAMアドレス演算の単位がディレイライン(1の
場合)又は、テーブル(0の場合)かを設定します。設
定がディレイラインの時、ディレイラインの書き込み位
置であるディレイメモリーの先頭からのオフセット値と
なります。設定がテーブルの時、テーブルのスタートア
ドレスであるRAMの分割値からのオフセット値となり
ます。このエリアは25(24+1)ビット、64ワー
ドで、トータルで256バイトのアドレス空間をしめま
す。
【手続補正33】
【補正対象書類名】明細書
【補正対象項目名】0129
【補正方法】変更
【補正内容】
【0129】2つ目のエリアは、16ビット、64のレ
ジスターからなります。ディレイラインとして設定され
ている場合、このレジスターの値は、CPUによってレ
ジスターがゼロに設定されてから、書き込みされたデー
タの数を示します。これにより、実際にRAMにクリア
ーのための書き込みを行うことなく、ディレイラインの
クリアーを行うことができます。カウンターはディレイ
ラインの書き込み動作によってインクルメントされま
す。ディレイラインの読み込みの間、リクエストされる
ディレイをこのカウンター値と比較して、RAMにスト
アーされているデータを出力するか、あるいはゼロを出
力するかを決定します。このカウンターは”FFFF”
で止まります。よって、64K以上のディレイに対する
カウントは行われません。テーブルとして設定されてい
る場合、このカウンターは使われません。これらのレジ
スターはCPUに対してウェイトステートは発生しませ
ん。またこれらのレジスターは全てCPUにより読み込
み、書き込み可能です。
【手続補正34】
【補正対象書類名】明細書
【補正対象項目名】0130
【補正方法】変更
【補正内容】
【0130】4. MSPファンクショナルレジスター これらのレジスターはMSPの構成、動作、状態を制御
します。このグループのレジスターのいくつかは、ウェ
イトステートを発生しません。また、あるものは書き込
みできず、あるものは読み込みできません。それぞれの
レジスターの簡単な説明を次に示します。 a. RAMデータポート これは、CPUがMSPのRAMエリアにアクセスする
時に使うレジスターです。前のRAMインターフェイス
ブロックで示した様に、このポートに対する最初の読み
込み、2番目の書き込み時にそのオペラーションが終了
するまでウェイトステートが発生します。このシングル
アドレスのレジスターは、実際には2つのレジスター
で、アクセススタート時の”CPUDMAL”信号の状
態に従ってアクセスされます。このポートを介してメモ
リーにアクセスするために、DMAまたはCPU RA
Mスタートアドレスレジスターに、スタートアドレスを
プログラムする必要があります。
【手続補正35】
【補正対象書類名】明細書
【補正対象項目名】0131
【補正方法】変更
【補正内容】
【0131】b. マイクロコードデータポート このレジスターはマイクロコードのダウンロードに使わ
れます。マイクロコードプリフェッチコントローラー
は、MSPが動作中にもマイクロコードRAMをアクセ
スする必要があるので、アクセスが完了するまでCPU
に対してウェイトステートを発生する場合があります。
このシングルアドレスのレジスターは、実際には2つの
レジスターで、アクセススタート時の”CPUDMA
L”信号の状態に従ってアクセスされます。それぞれの
マイクロコードワードは、5回のワードアクセスを必要
とします。このポートを介してのマイクロコードのダウ
ンロードを行うためにDMAまたはCPUマイクロコー
ドスタートアドレスレジスターに必要なスタートアドレ
スをプログラムする必要があります。
【手続補正36】
【補正対象書類名】明細書
【補正対象項目名】0132
【補正方法】変更
【補正内容】
【0132】c. RAMスタートポインターDMA このレジスターはMSP RAMへのDMAアクセスの
スタートポイントを設定します。このレジスターは24
ビット長のRAMアドレスを持ち、自動的にアクセスが
進むように、インクリメントします。このレジスターは
読み込み、書き込み可能です。読み込み時、このレジス
ターは24ビットのRAMアドレス現在値を示します。
このレジスターはDMAアクセスのみに影響し、CPU
へのウェイトステートは発生しません。
【手続補正37】
【補正対象書類名】明細書
【補正対象項目名】0133
【補正方法】変更
【補正内容】
【0133】d. RAMスタートポインターCPU このレジスターはMSP RAMへのCPUアクセスの
スタートポイントを設定します。このレジスターは24
ビット長のRAMアドレスを持ち、自動的にアクセスが
進むように、インクリメントします。このレジスターは
読み込み、書き込み可能です。読み込み時、このレジス
ターは24ビットのRAMアドレス現在値を示します。
このレジスターは直接CPUアクセスのみに影響し、C
PUへのウェイトステートは発生しません。
【手続補正38】
【補正対象書類名】明細書
【補正対象項目名】0134
【補正方法】変更
【補正内容】
【0134】e. マイクロコードスタートDMA このレジスターはMSPのマイクロコードアクセスのス
タートポイントを設定します。このレジスターはマイク
ロコードワード(2命令)の8ビットのアドレスを持
ち、自動的にアクセスが進むように、インクリメントし
ます。このレジスターは書き込みのみ可能です。このレ
ジスターはDMAアクセスのみに影響し、CPUへの
ェイトステートは発生しません。
【手続補正39】
【補正対象書類名】明細書
【補正対象項目名】0135
【補正方法】変更
【補正内容】
【0135】f. マイクロコードスタートCPU このレジスターはMSPのマイクロコードアクセスのス
タートポイントを設定し、またシングル−ステップモー
ドの時は、読み込み時にマイクロコードの現在値を示し
ます。このレジスターはマイクロコードワード(2命
令)の8ビットのアドレスを持ち、自動的にアクセスが
進むように、インクリメントします。このレジスターは
読み込み、書き込み可能です。読み込み時、このレジス
ターは9ビットのマイクロコードステップの現在値を示
します。このレジスターは直接CPUアクセスのみに影
響し、CPUへのウェイトステートは発生しません。
【手続補正40】
【補正対象書類名】明細書
【補正対象項目名】0136
【補正方法】変更
【補正内容】
【0136】g. MAC出力 このレジスターは56ビットの乗加算結果を示します。
この値はCPUに対して、4つの16ビットレジスター
として扱われます。MSPが停止状態の時のみ、読み込
み、書き込みが可能です。CPUへのウェイトステート
は発生しません。書き込み時、これらのレジスターの値
は最後のワードが書き込みされた時に、MAC出力レジ
スターに順番に転送されます。
【手続補正41】
【補正対象書類名】明細書
【補正対象項目名】0137
【補正方法】変更
【補正内容】
【0137】h. ALU出力レジスターX このレジスターは24ビットのALU207の結果を示
します。そして、Xバス204書き込みレジスターの現
在値ということになります。MSPが停止状態の時の
み、読み込み、書き込みが可能で、CPUへのウェイト
ステートは発生しません。書き込み時、これらのレジス
ターの値は大きいアドレスのワードが書き込みされた時
に、実際に内部レジスターに転送されます。このレジス
ターは24ビット長で、16ビットのホストCPUイン
ターフェイスには、ロングワードとして扱われます。”
BIGENDIAN=1”の場合、大きい方のアドレス
のワードのLSBがMSPワードのLSBとなりま
す。”BIGENDIAN=0”の場合、小さい方のア
ドレスのワードのLSBがMSPワードのLSBとなり
ます。
【手続補正42】
【補正対象書類名】明細書
【補正対象項目名】0138
【補正方法】変更
【補正内容】
【0138】i. ALU出力レジスターY このレジスターは24ビットのALU207の結果を示
します。そして、Yバス書き込みレジスターの現在値と
いうことになります。MSPが停止状態の時のみ、読み
込み、書き込みが可能で、CPUへのウェイトステート
は発生しません。書き込み時、これらのレジスターの値
は大きいアドレスのワードが書き込みされた時に、実際
に内部レジスターに転送されます。このレジスターは2
4ビット長で、16ビットのホストCPUインターフェ
イスには、ロングワードとして扱われます。”BIGE
NDIAN=1”の場合、大きい方のアドレスのワード
のLSBがMSPワードのLSBとなります。”BIG
ENDIAN=0”の場合、小さい方のアドレスのワー
ドのLSBがMSPワードのLSBとなります。
【手続補正43】
【補正対象書類名】明細書
【補正対象項目名】0139
【補正方法】変更
【補正内容】
【0139】j. テンポラリーレジスター(T) このレジスターは24ビットのTテンポラリーレジスタ
ーの現在値を示します。MSPが停止状態の時のみ、読
み込み、書き込みが可能です。このレジスターは内部
X、Yバス205を介してアクセスされ、そしてアクセ
スが完了する前は、CPUに対してウェイトステート
発生する場合があります。このことは、MSPがシング
ル−ステップモードの時は問題にはなりません。ウェイ
ステートは連続するワードの2つ目のワードの読み込
み時、1つ目のワードの書き込み時にはインサートされ
ません。書き込み時、これらのレジスターの値は大きい
アドレスのワードが書き込みされた時に、実際に内部レ
ジスターに転送されます。このレジスターは24ビット
長で、16ビットのホストCPUインターフェイス
は、ロングワードとして扱われます。”BIGENDI
AN=1”の場合、大きい方のアドレスのワードのLS
BがMSPワードのLSBとなります。”BIGEND
IAN=0”の場合、小さい方のアドレスのワードのL
SBがMSPワードのLSBとなります。
【手続補正44】
【補正対象書類名】明細書
【補正対象項目名】0140
【補正方法】変更
【補正内容】
【0140】k. テンポラリーレジスター(S) このレジスターは24ビットのSテンポラリーレジスタ
ーの現在値を示します。MSPが停止状態の時のみ、読
み込み、書き込みが可能です。このレジスターは内部
X、Yバス205を介してアクセスされ、そしてアクセ
スが完了する前は、CPUに対してウェイトステート
発生する場合があります。このことは、MSPがシング
ル−ステップモードの時は問題にはなりません。ウェイ
ステートは連続するワードの2つ目のワードの読み込
み時、1つ目のワードの書き込み時にはインサートされ
ません。書き込み時、これらのレジスターの値は大きい
アドレスのワードが書き込みされた時に、実際に内部レ
ジスターに転送されます。このレジスターは24ビット
長で、16ビットのホストCPUインターフェイス
は、ロングワードとして扱われます。”BIGENDI
AN=1”の場合、大きい方のアドレスのワードのLS
BがMSPワードのLSBとなります。”BIGEND
IAN=0”の場合、小さい方のアドレスのワードのL
SBがMSPワードのLSBとなります。
【手続補正45】
【補正対象書類名】明細書
【補正対象項目名】0141
【補正方法】変更
【補正内容】
【0141】l. ノイズレジスター このレジスターは24ビットの疑似ランダムノイズレジ
スターの現在値を示します。読み込み、書き込みが可能
です。このレジスターは内部X、Yバス205を介して
アクセスされ、そしてアクセスが完了する前は、CPU
に対してウェイトステートが発生する場合があります。
ランダム値が改新される時、MSPは通常停止している
ので、一般的にこのことは問題とはなりません。ウェイ
ステートは連続するワードの2つ目のワードの読み込
み時、1つ目のワードの書き込み時にはインサートされ
ません。書き込み時、これらのレジスターの値は大きい
アドレスのワードが書き込みされた時に、実際に内部レ
ジスターに転送されます。このレジスターは24ビット
長で、16ビットのホストCPUインターフェイス
は、ロングワードとして扱われます。”BIGENDI
AN=1”の場合、大きい方のアドレスのワードのLS
BがMSPワードのLSBとなります。”BIGEND
IAN=0”の場合、小さい方のアドレスのワードのL
SBがMSPワードのLSBとなります。ノイズ発生装
置はCPUが読み込みした時も、MSPが読み込みした
時と同様に更新されます。
【手続補正46】
【補正対象書類名】明細書
【補正対象項目名】0142
【補正方法】変更
【補正内容】
【0142】m. フィルター付ノイズレジスター このレジスターは24ビットのフィルター付ノイズレジ
スターの現在値を示します。読み込みのみが可能です。
このレジスターは内部X、Yバス205を介してアクセ
スされ、そしてアクセスが完了する前は、CPUに対し
ウェイトステートが発生する場合があります。ウェイ
ステートは連続するワードの2つ目のワードの読み込
み時、1つ目のワードの書き込み時にはインサートされ
ません。このレジスターは24ビット長で、16ビット
のホストCPUインターフェイスには、ロングワードと
して扱われます。”BIGENDIAN=1”の場合、
大きい方のアドレスのワードのLSBがMSPワードの
LSBとなります。”BIGENDIAN=0”の場
合、小さい方のアドレスのワードのLSBがMSPワー
ドのLSBとなります。
【手続補正47】
【補正対象書類名】明細書
【補正対象項目名】0143
【補正方法】変更
【補正内容】
【0143】n. インデックスレジスター このレジスターは24ビットのインデックスレジスター
の現在値を示します。MSPが停止状態の時のみ、読み
込み、書き込みが可能です。このレジスターは内部X、
Yバス205を介してアクセスされ、そしてアクセスが
完了する前は、CPUに対してウェイトステートが発生
する場合があります。このことは、MSPがシングル−
ステップモードの時は問題にはなりません。ウェイト
テートは連続するワードの2つ目のワードの読み込み
時、1つ目のワードの書き込み時にはインサートされま
せん。書き込み時、これらのレジスターの値は大きいア
ドレスのワードが書き込みされた時に、実際に内部レジ
スターに転送されます。このレジスターは24ビット長
で、16ビットのホストCPUインターフェイスには、
ロングワードとして扱われます。”BIGENDIAN
=1”の場合、大きい方のアドレスのワードのLSBが
MSPワードのLSBとなります。”BIGENDIA
N=0”の場合、小さい方のアドレスのワードのLSB
がMSPワードのLSBとなります。
【手続補正48】
【補正対象書類名】明細書
【補正対象項目名】0144
【補正方法】変更
【補正内容】
【0144】o. 割り込みマスクレジスター このレジスターは16ビットの読み込み/書き込み可能
なレジスターです。それぞれのビットはどの割り込みソ
ースをCPUへの割り込み発生からマスクするか(0の
場合)を表わしています。0から15の割り込み番号が
このレジスターにあります。このレジスターはCPUへ
ウェイトステートは発生しません。またリセット時
は、全ての割り込みはマスクされています。
【手続補正49】
【補正対象書類名】明細書
【補正対象項目名】0145
【補正方法】変更
【補正内容】
【0145】p. 割り込みマスクレジスター(2) このレジスターは16ビットの読み込み/書き込み可能
なレジスターです。それぞれのビットはどの割り込みソ
ースをCPUへの割り込み発生からマスクするか(0の
場合)を表わしています。16から31の割り込み番号
がこのレジスターにあります。このレジスターはCPU
へのウェイトステートは発生しません。またリセット時
は、全ての割り込みはマスクされています。
【手続補正50】
【補正対象書類名】明細書
【補正対象項目名】0146
【補正方法】変更
【補正内容】
【0146】q. 割り込みリクエストレジスター このレジスターは16ビットの読み込み/書き込み可能
なレジスターです。それぞれのビットはMSPの割り込
みソースを表わしています。読み込み時、割り込みが発
生したビットは”High”になっています。そして、
このレジスターへの読み込みが終了した時、全てのビッ
トはクリアーされます。また、割り込みリクエストビッ
トは、割り込みリクエストレジスター内の対応するビッ
トに「1」を書き込みすることで、個々にクリアーでき
ます。0から15の割り込み番号がこのレジスターにあ
ります。このレジスターはCPUへのウェイトステート
は発生しません。またリセット時は、全ての割り込みは
クリアーされています。
【手続補正51】
【補正対象書類名】明細書
【補正対象項目名】0147
【補正方法】変更
【補正内容】
【0147】r. 割り込みリクエストレジスター
(2) このレジスターは16ビットの読み込み/書き込み可能
なレジスターです。それぞれのビットはMSPの割り込
みソースを表わしています。読み込み時、割り込みが発
生したビットは”High”になっています。そして、
このレジスターへの読み込みが終了した時、全てのビッ
トはクリアーされます。また、割り込みリクエストビッ
トは、割り込みリクエストレジスター内の対応するビッ
トに「1」を書き込みすることで、個々にクリアーでき
ます。16から31の割り込み番号がこのレジスターに
あります。このレジスターはCPUへのウェイトステー
は発生しません。またリセット時は、全ての割り込み
はクリアーされています。
【手続補正52】
【補正対象書類名】明細書
【補正対象項目名】0148
【補正方法】変更
【補正内容】
【0148】s. DRAMサーキュラー/リニア ス
プリットポイントレジスター この24ビット長のレジスターはMSPに対しディレイ
ライン用メモリーの終端とテーブル用メモリーの先端が
どこであるかを示します。スプリットポイントレジスタ
ーはディレイライン用メモリーの終端位置の値を示しま
す。このレジスターの値は”2N−1”である必要があ
ります。このレジスターはCPUへのウェイトステート
は発生しません。書き込み時、これらのレジスターの値
は大きいアドレスのワードが書き込みされた時に、実際
に内部レジスターに転送されます。このレジスターは2
4ビット長で、16ビットのホストCPUインターフェ
イスには、ロングワードとして扱われます。”BIGE
NDIAN=1”の場合、大きい方のアドレスのワード
のLSBがMSPワードのLSBとなります。”BIG
ENDIAN=0”の場合、小さい方のアドレスのワー
ドのLSBがMSPワードのLSBとなります。このレ
ジスターは読み込み/書き込み可能です。
【手続補正53】
【補正対象書類名】明細書
【補正対象項目名】0149
【補正方法】変更
【補正内容】
【0149】t.Yサーキュラー/リニア・スプリット
ポイントジスター このレジスターは、MSPに対しサーキュラーアドレッ
シングメモリーの終端とリニアアドレッシングメモリー
の先端がどこであるかを示します。このレジスターは、
CPUへのウェイトステートを発生しません。このスプ
リットポイントレジスターにはサーキュラーメモリーの
ワード数を示す3ビットがあります。このレジスター
は、読み込み/書き込み可能です。
【手続補正54】
【補正対象書類名】明細書
【補正対象項目名】0150
【補正方法】変更
【補正内容】
【0150】u.ステータス レジスタ 1 この16ビットのレジスタには、MAC206の読み専
用ステータスが入っています。このレジスタは、CPU
に対していかなるウェイトステートも作りません。な
お、ビットとそれらの意味は以下の通りです。 MAC RESULT EXTENDED(NOT A
NUMBER):これは1の時現在のMAC206の
結果が、使える数値で無い事を表しています。これは、
計算機の出力ビットの55:48が全て「ハイ」でも全
て「ロウ」でもなく、又、サインドオペレーションでサ
インビットと全て一致してないことを表します。このビ
ットは保存されません、そしてMSPのシングル−ステ
ッピングの時だけ意味があります。 MAC RESULT ZERO:これは1の時MAC
206の結果が現在0であることを表しています。この
ビットは、保持されません、そしてMSPのシングル−
ステッピングの時だけ意味があります。 MAC RESULT NEGATIVE:これは1の
時MAC206の結果が現在負の数値であることを表し
ています。このビットは、保持されません、そしてMS
Pのシングル−ステッピングの時だけ意味があります。 MAC RESULT CLIPPED:このビットは
1の時EXTENDED MACの結果が、X又は、Y
バスに上書きされるか、MACかALUの入力に使われ
たかを表します。このビットは、CPUが、このレジス
タを読むまで保持されます。 MAC RESULT LESS THEN S:これ
は1の時MACの結果が、テンポラリーのSレジスタの
中の数値より現在小さいことを表します。このビット
は、保持されません。そしてMSPのシングル−ステッ
ピングの時だけ意味があります。 MAC RESULT GREATER THEN
S:これは1の時MACの結果が、テンポラリーのSレ
ジスタの中の数値より現在大きいことを表します。この
ビットは、保持されません。そしてMSPのシングル−
ステッピングの時だけ意味があります。 MAC RESULT ALMOST EQUAL0
S:これは1の時MACの結果が、テンポラリーのSレ
ジスタの中の数値で出発点に指定された範囲内で、0と
現在等しい事を表します。このビットは、保持されませ
ん。そしてMSPのシングル−ステッピングの時だけ意
味があります。 MAC RESULT LESS THEN T:これ
は1の時MACの結果が、テンポラリーのTレジスタの
中の数値より現在小さいことを表します。このビット
は、保持されません。そしてMSPのシングル−ステッ
ピングの時だけ意味があります。 MAC RESULT GREATER THEN
T:これは1の時MACの結果が、テンポラリーのTレ
ジスタの中の数値より現在大きいことを表します。この
ビットは、保持されません。そしてMSPのシングル−
ステッピングの時だけ意味があります。 MAC RESULT ALMOST EQUAL0
T:これは1の時MACの結果が、テンポラリーのTレ
ジスタの中の数値で出発点に指定された範囲内で、0と
現在等しい事を表します。このビットは、保持されませ
ん。そしてMSPのシングル−ステッピングの時だけ意
味があります。 MAC BUSY:このビットは1の時MACが、現在
動作を実行していることを表します。このビットは、保
持されません。そしてMSPがシングル−ステップであ
る時だけ確定します。
【手続補正55】
【補正対象書類名】明細書
【補正対象項目名】0151
【補正方法】変更
【補正内容】
【0151】MAC ACCUMULATE OPER
ATION: このビットは1の時現在のMACの動作
は、アキュムレーターにさらに0を加えていく、いくつ
かの動作を含んでいることを表します。このビットは、
保持されません。そしてMSPがシングル−ステップで
ある時だけ確定します。 MAC MINUS OPERATION:このビット
は1の時MACがY入力を無効にする動作を、現在実行
中であることを表します。このビットは、保持されませ
ん。そしてMSPがシングル−ステップである時だけ確
定します。 MAC DOUBLE PRECISION OPER
ATION:このビットは1の時MACが、アキュムレ
ーターを2重の正確な動きの為に移動させる動作を、現
在行っていることを表します。このビットは、保持され
ません。そしてMSPがシングル−ステップである時だ
け確定します。
【手続補正56】
【補正対象書類名】明細書
【補正対象項目名】0152
【補正方法】変更
【補正内容】
【0152】v.ステータス レジスタ 2 この16ビットのレジスタには、ALUの読み専用ステ
ータスが入っています。このレジスタは、CPUに対し
ていかなるウェイトステートも作りません。ビットとそ
れらの意味は以下の通りです。 ALU CARRY:これは1の時現在のALUの結果
が加算でMSビットの桁上がり、又は、減算でMSビッ
トの桁下がりが作られたことを表します。このビット
は、保持されません。そしてMSPがシングル−ステッ
プである時だけ確定します。 ALU OVERFLOW:これは1の時現在のALU
の結果が、桁あふれの為に使える数値でなくなったこと
を表します。このビットは、保持されません。そしてM
SPがシングル−ステップである時だけ確定します。 ALU RESULT ZERO:このビットは1の時
ALUの結果が、現在0であることを表します。このビ
ットは、保持されません。そしてMSPのシングル−ス
テッピングの時だけ意味があります。 ALU RESULT NEGATIVE:これは1の
時ALUの結果が、現在負の値であることを表します。
このビットは、保持されません。そしてMSPのシング
ル−ステッピングの時だけ意味があります。 ALU LATCHED OVERFLOW:これは1
の時現在又は、前のALUの結果が、桁あふれの為に。
使える値でないことを表します。このビットはALU
OVERFLOWのステータスビットを別の形で保持し
たもので、CPUがこのレジスタを読むまで、保持され
ます。 ALU RESULT LESS THAN S:これ
は1の時ALUの結果がテンポラリーのSレジスタの値
より現在小さい事を表します。このビットは、保持され
ません。そしてMSPのシングル−ステッピングの時だ
け意味があります。 ALU RESULT GREATER THEN
S:これは1の時ALUの結果がテンポラリーのSレジ
スタの値より現在大きい事を表します。このビットは、
保持されません。そしてMSPのシングル−ステッピン
グの時だけ意味があります。
【手続補正57】
【補正対象書類名】明細書
【補正対象項目名】0154
【補正方法】変更
【補正内容】
【0154】w.コンフィギュレーションレジスタ この16ビットのレジスタは、MSPの基本動作モード
と形を決めるビットを表しています。書き込み専用のS
TEP MSPビットを除いて、全てのビットは、読み
/書きです。このレジスタは、CPUに対していかなる
ウェイトステートも作りません。ビットとそれらの意味
は以下の通りです: RUN/HALT MSP:このビットは、1に設定さ
れるとMSPの動作が始まります。MSPは、動作が始
まる前に次の同期パルスが来るまで待ちます。このビッ
トは、RESETで0に設定します。 STEP MSP:このビットは、RUN/HALTビ
ットが0に設定されている時だけ、確定し ます。このビ
ットは、1に設定するとMSPの1つの命令をシングル
−ステップにします。新しいマイクロコードのアドレス
は、CPUマイクロコードアドレスポインターレジスタ
に割りつけられます。シングル−ステッピングの動き
は、2システムサイクルタイムの間かかるかもしれませ
ん。このビットは、書き込み専用で、読むと0が返って
きます。 HSAB ENABLE:このビットは、1に設定する
とHSABとのデータの送受信を許可します。MSPは
許可する動きの前に次の同期パルスが来るまで待ちま
す。このビットは、RESETで0に設定します。 RAM HEIGHT 256K/1M/4M:この2
つのビットは、MSPがどんな種類のRAMを組にする
のかを表します。RAMは、全てを1つの種類にする必
要があり、256KxNbitのチップ00か、1Mx
Nbitのチップ01か、4MxNbitのチップ10
です。これらのビットは、読み/書きで、RESET後
は、0です。 BANK0=16/24bit:この読み/書きのビッ
トは、RAMバンクのデータ幅を表します。0の時は、
12ビットデータでつながる事を表し、1の時は、それ
は、たった8ビットデータです。このビットは、読んだ
時、いかにデータを判断するのかに影響をあたえます。
24ビットデータは、普通に読み書きされます。外部R
AMから16ビットを読む時、MSP内部の24ビット
ワードの下位8ビットは、データを読んだ時のサインビ
ットと同じになります。 BANK1=16/24bit:この読み/書きのビッ
トは、RAMバンクのデータ幅を表します。0の時は、
12ビットデータでつながる事を表し、1の時は、それ
は、たった8ビットデータです。このビットは、読んだ
時、いかにデータを判断するのかに影響をあたえます。
24ビットデータは、普通に読み書きされます。外部R
AMから16ビットを読む時、MSP内部の24ビット
ワードの下位8ビットは、データを読んだ時のサインビ
ットと同じになります。 BANK2=16/24bit:この読み/書きのビッ
トは、RAMバンクのデータ幅を表します。0の時は、
12ビットデータでつながる事を表し、1の時は、それ
は、たった8ビットデータです。このビットは、読んだ
時、いかにデータを判断するのかに影響をあたえます。
24ビットデータは、普通に読み書きされます。外部R
AMから16ビットを読む時、MSP内部の24ビット
ワードの下位8ビットは、データを読んだ時のサインビ
ットと同じになります。 BANK3=16/24bit:この読み/書きのビッ
トは、RAMバンクのデータ幅を表します。0の時は、
12ビットデータでつながる事を表し、1の時は、それ
は、たった8ビットデータです。このビットは、読んだ
時、いかにデータを判断するのかに影響をあたえます。
24ビットデータは、普通に読み書きされます。外部R
AMから16ビットを読む時、MSP内部の24ビット
ワードの下位8ビットは、データを読んだ時のサインビ
ットと同じになります。 BANK4=16/24bit:この読み/書きのビッ
トは、RAMバンクのデータ幅を表します。0の時は、
12ビットデータでつながる事を表し、1の時は、それ
は、たった8ビットデータです。このビットは、読んだ
時、いかにデータを判断するのかに影響をあたえます。
24ビットデータは、普通に読み書きされます。外部R
AMから16ビットを読む時、MSP内部の24ビット
ワードの下位8ビットは、データを読んだ時のサインビ
ットと同じになります。 BANK5=16/24bit:この読み/書きのビッ
トは、RAMバンクのデータ幅を表します。0の時は、
12ビットデータでつながる事を表し、1の時は、それ
は、たった8ビットデータです。このビットは、読んだ
時、いかにデータを判断するのかに影響をあたえます。
24ビットデータは、普通に読み書きされます。外部R
AMから16ビットを読む時、MSP内部の24ビット
ワードの下位8ビットは、データを読んだ時のサインビ
ットと同じになります。 BANK6=16/24bit:この読み/書きのビッ
トは、RAMバンクのデータ幅を表します。0の時は、
12ビットデータでつながる事を表し、1の時は、それ
は、たった8ビットデータです。このビットは、読んだ
時、いかにデータを判断するのかに影響をあたえます。
24ビットデータは、普通に読み書きされます。外部R
AMから16ビットを読む時、MSP内部の24ビット
ワードの下位8ビットは、データを読んだ時のサインビ
ットと同じになります。 BANK7=16/24bit:この読み/書きのビッ
トは、RAMバンクのデータ幅を表します。0の時は、
12ビットデータでつながる事を表し、1の時は、それ
は、たった8ビットデータです。このビットは、読んだ
時、いかにデータを判断するのかに影響をあたえます。
24ビットデータは、普通に読み書きされます。外部R
AMから16ビットを読む時、MSP内部の24ビット
ワードの下位8ビットは、データを読んだ時のサインビ
ットと同じになります。
【手続補正58】
【補正対象書類名】明細書
【補正対象項目名】0155
【補正方法】変更
【補正内容】
【0155】x.割り込み制御レジスタ この16ビットレジスタは、MSPの状態と割り込み動
作の制御を規定します。ビットとそれらの意味は以下の
通りです。 ENABLE INTERRUPTS:このビットは、
1が書かれたら、待機中又は、今後起こるであろう割り
込みを、ハードウェア割り込みリクエスト信号を通し
て、CPUへ、警告を許可します。クリアされている
と、割り込みは作られません。ともかく、割り込みは、
割り込みウェイトレジスタの中にためることができま
す。このビットは、読み/書きで、リセットでゼロに設
定されます。 CLEAR ALL INTERRUPTS:この書き
込み専用ビットは、1が書かれたら、割り込みレジスタ
と割り込みリクエストのメカニズムから来る、全ての待
機している割り込みリクエストをクリアします。0が書
かれたら、このビットは実行しません。このビットは、
読まれると、0を返します。 CONDITION STATE、CPU:このビット
は、読まれると、CPUの状態フラグの現在のステート
を表示します。1が書かれた時CPUの状態を正しく
し、0が書かれると誤った状態にします。このビット
は、リセット後0に設定されます。 CONDITIONAL STATE:この読み専用ビ
ットは、あらかじめ説明した図6Bif−then−e
lseフラグのメカニズムの現在のステートを表示しま
す。 LED CPU OVERRIDE:この読み/書きビ
ットは、1が書かれると、CPUがMSP LEDのセ
ッティングを無視する原因となります。LED出力ステ
ートは、LED ONのステートで決まり、CPUビッ
トは、後に記述します。LED CPU OVERRI
DEビットに0が書かれると、LEDの出力は、内部の
MSPのセッティングで決められます。このビットは、
リセット後0に設定されます。 LED ON、CPU:このビットは、読まれると、ソ
フト上のLEDビットの現在のステートが表示されま
す。1が書かれた時LEDビットは正しく設定され、0
が書かれると誤った設定になります。ビットは、リセッ
ト後0に設定されます。 LED ON:この読み専用ビットは、LED出力の現
在のステートを表示します。 CLEAR DRAM DECREMENT COUN
TER:このビットは、1が書かれるとディレイライン
領域の中の減算カウンタがクリアされます。0が書かれ
たら、このビットは実行しません。このビットは書き込
み専用で、読まれると、0を返します。 CLEAR Y DECREMENT COUNTE
R:このビットは、1が書かれるとYメモリー領域の中
の減算カウンタがクリアされます。0が書かれたら、こ
のビットは実行しません。このビットは書き込み専用
で、読まれると、0を返します。
【手続補正59】
【補正対象書類名】明細書
【補正対象項目名】0158
【補正方法】変更
【補正内容】
【0158】aa.NOPカウントレジスタ この10ビットの読み/書きレジスタは、NOPの手段
で、無視したり元に戻したりするマイクロコードインス
トラクションの数が入っています。もしこのレジスタの
数値がゼロであったなら、NOP機能は、無効になりま
す。このレジスタは、CPUに対していかなるウェイト
ステートも作りません。
【手続補正60】
【補正対象書類名】明細書
【補正対象項目名】0159
【補正方法】変更
【補正内容】
【0159】bb.DRAM減少カウントレジスタ この24ビットの読みのみレジスタは、DRAM減算カ
ウンターの現在値が入っています。このレジスタは、M
SPが、停止した時にだけ確定します。このレジスタ
は、CPUに対していかなるウェイトステートも作りま
せん。このレジスタは、24ビットの幅があり、そして
ロングワードとして16ビットのホストCPUインター
フェイスに現れます。BIGENDIAN=1の時、上
位にアドレスを割りつけられているワードの、LSビッ
トは、MSPのワードのLSビットです。BIGEND
IAN=0のとき、下位にアドレスを割りつけられてい
るワードのLSビットが、MSPのワードのLSビット
です。
【手続補正61】
【補正対象書類名】明細書
【補正対象項目名】0183
【補正方法】変更
【補正内容】
【0183】図9は、図7に示したシンセサイザーのた
めの処理ディスパッチャーの基本を示すフローチャート
です。システムに電源が入ると、システム初期化ルーチ
ンが実行されます(ブロック900)。初期化が終わる
と、システムはウェイトループに入ります(ブロック9
01)。決められた時間の中で何事も起こらなければ、
ホストCPUが他のことを行うスリーブ状態に入ります
(ブロック902)。音の合成を行う段になると、シス
テムは起動し、4種類ある入力信号に対応した動作を行
います。1番目の信号は、発音命令です。ブロック90
3で判断します。2番目が、発音終了命令です。ブロッ
ク904で判断します。3番目がプログラム変更命令で
す。ブロック905で判断します。4番目が設定変更命
令です。ブロック906で判断します。最後に、命令が
何も来なかった時、ルーチンはその他の処理を行うブロ
ックに入ります(ブロック907)。ブロック907か
らアルゴリズムはウェイトループ901へと戻っていき
ます。ブロック903において発音命令を受け取ると、
アルゴリズムは図10に示された発音ルーチン(ブロッ
ク908)へと分岐して行きます。発音終了命令を受け
取ると、アルゴリズムは図11に示された発音終了ルー
チン(ブロック909)へと分岐します。プログラム変
更命令を受け取ると、アルゴリズムは図12に示された
プログラム変更ルーチン(ブロック910)へと分岐し
ます。そして、設定変更命令を受け取ると、アルゴリズ
ムは図13に示された設定変更ルーチン(ブロック91
1)へと分岐します。ブロック902は、処理の切り換
えや、処理ディスパッチャーから戻ってきた現在行って
いる処理を示します。ディスパッチャー内の雑務(ブロ
ック907)は、ウェイトステートから戻って来た時
の、処理の場所を指し示します。
【手続補正62】
【補正対象書類名】明細書
【補正対象項目名】0188
【補正方法】変更
【補正内容】
【0188】図17に、図14のブロック1404から
コールされるボイス停止ルーチンを示します。選択され
たボイスによって、あるボイスが盗まれたり、置き換え
られたりする場合、このボイス停止ルーチンは先ず、I
/Oの出入り口に設けられたランプジェネレータの目標
値を0に設定します(ブロック1700)。そしてMS
PのI/Oランプジェネレータ割り込み信号を、許可し
ます(ブロック1701)。アルゴリズムはMSPから
のI/Oランプ割り込みを待ちます(ブロック170
2)。割り込みを待っている間、このルーチンはウェイ
トステートになり他の仕事を行います(ブロック170
3)。割り込みを受け取ると、ボイスリソースが開放さ
れます(ブロック704)。この時点で、停止するボイ
スのボイスリソースが利用可能になります。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョアンヌ エフ. オットニー アメリカ合衆国、カリフォーニア州 94024、サンタ クララ、ロス アルトス、 ベリー アベニュー 710 (72)発明者 スティーヴン スコット オッコンネル アメリカ合衆国、カリフォーニア州 95066、サンタ クルーズ、スコット バ ーリイ、ジンファンデル サークル 112 (72)発明者 マルカス カイ ブライアン ジュニア アメリカ合衆国、カリフォーニア州 94086、サンタ クララ、サニーベイル、 ナンバー エス 203、エヌ.マチルダ アベニュー 450

Claims (56)

    【特許請求の範囲】
  1. 【請求項1】 選択された複数のボイスを指示するリア
    ルタイム入力信号を供給する入力手段と、 前記ボイスを発生する際の命令手順及び係数、テーブル
    もしくはリレーラインが含まれるボイスプログラムと、 個々の前記ボイスに対応する前記ボイスプログラムを記
    憶するボイスプログラムメモリと、 該ボイスプログラムメモリと前記入力手段とを接続され
    ると共に、前記リアルタイム入力信号に応じてリアルタ
    イムで選択された複数の前記ボイスを発生すべく、前記
    ボイスプログラムメモリに記憶された前記ボイスプログ
    ラムのグループを実行するサウンド処理手段と、 前記入力手段と前記ボイスプログラムメモリとに接続す
    ると共に、前記リアルタイム入力信号に応答して選択さ
    れた前記ボイスに対する前記ボイスプログラムのグルー
    プを動的に割当る動的割当手段とを有してなる、 ことを特徴とするミュージックシンセサイザー。
  2. 【請求項2】 前記動的割当手段が、前記サウンド処理
    手段のリソースを複数の前記ボイスプログラムリソース
    のグループに分割する分割手段と、 複数の他のリソースグループを用いる前記ボイスプログ
    ラムに影響を与えることなく所定のボイスプログラムの
    リソースグループを選択的に実行不能にすると共に、リ
    アルタイムで選択された前記ボイスプログラムを、実行
    不能された前記ボイスプログラムのリソースグルーブに
    割当ててなる、 請求項1記載のミュージックシンセサイザー。
  3. 【請求項3】 動的割当手段が、前記グループ内の所定
    の前記ボイスプログラムを前記リアルタイム入力信号に
    応じて選択された前記ボイスに対応する、前記ボイスプ
    ログラムに置換る置換手段を有してなる、 請求項1記載のミュージックシンセサイザー。
  4. 【請求項4】 前記ボイスプログラムメモリが、複数の
    前記ボイスプログラムを記憶する第1メモリと、 前記サウンド処理手段と前記第1メモリとに接続すると
    共に、前記サウンド処理手段で実行する前記ボイスプロ
    グラムのグループを記憶する第2メモリとを有してな
    る、 請求項1記載のミュージックシンセサイザー。
  5. 【請求項5】 前記動的割当手段が、前記ボイスプログ
    ラムメモリにおける前記第1メモリと第2メモリとに接
    続すると共に、選択された前記ボイスプログラムに含ま
    れる少なくとも1つのコンポーネントをリアルタイムで
    前記第1メモリから前記第2メモリへ転送する転送手段
    を有してなる、 請求項4記載のミュージックシンセサイザー。
  6. 【請求項6】 前記サウンド処理手段が、前記ボイスプ
    ログラムメモリと接続する共に、選択された前記ボイス
    のサウンドデータを発生すべく前記ボイスプログラムを
    実行する少なくとも1つの信号処理器と、 該信号処理器に接続すると共に、前記サウンドデータに
    応じた音声信号を出力する音声出力手段とを有してな
    る、 請求項1記載のミュージックシンセサイザー。
  7. 【請求項7】 前記ボイスプログラムメモリが、少なく
    とも1つの前記信号処理器によって実行される命令を含
    む複数の前記ボイスプログラムを記憶する第1メモリと
    少なくとも1つの前記信号処理器と第1メモリとを接続
    すると共に、前記ボイスプログラムのグループに対する
    命令を記憶する命令メモリとを有してなる、 請求項6記載のミュージックシンセサイザー。
  8. 【請求項8】 前記動的割当手段が、他の前記ボイスプ
    ログラムの実行に影響を与えることなく、前記命令メモ
    リにおける記憶している所定の前記ボイスプログラムに
    対する命令を記憶する命令格納領域を、少なくとも1つ
    の前記信号処理器による実行から一時的にマスキングす
    るマスキング手段と、 選択された前記ボイスプログラムの命令を、一時的にマ
    スキングされた命令格納領域に転送する転送手段と、 前記リアルタイム入力信号に応じて、所定の前記ボイス
    プログラムを選択された前記ボイスに対する前記ボイス
    プログラムに置換る置換手段とを有してなる、 請求項7記載のミュージックシンセサイザー。
  9. 【請求項9】 前記ボイスプログラムメモリが、ディレ
    イラインを有した複数の前記ボイスプログラムを記憶す
    る第1メモリと、 少なくとも1つの前記信号処理器と第1メモリとが接続
    すると共に、前記ボイスプログラムのグループが用いる
    前記ディレイラインを記憶するディレイラインメモリと
    を備えてなる、 請求項6記載のミュージックシンセサイザー。
  10. 【請求項10】 前記動的割当手段が、前記ディレイラ
    インメモリと接続すると共に、リアルタイムで所定の前
    記ボイスプログラムの使用するディレイラインを実行不
    能とし、かつ、前記ディレイラインメモリ上の、選択さ
    れた前記ボイスプログラムに対するディレイラインを設
    定する設定手段をディレイライン制御手段を有してな
    る、 請求項9記載のミュージックシンセサイザー。
  11. 【請求項11】 前記ボイスプログラムメモリが、少な
    くとも1つの前記信号処理器による実行に対して命令及
    び係数を有した複数の前記ボイスプログラムを記憶する
    第1メモリと、 少なくとも1つの前記信号処理器と第1メモリとに接続
    すると共に、前記ボイスプログラムのグループに対する
    命令を記憶する命令メモリと、 少なくとも1つの前記信号処理器と第1メモリとに接続
    すると共に、前記ボイスプログラムのグループに対する
    係数を記憶する係数メモリとを備えてなる、 請求項9記載のミュージックシンセサイザー。
  12. 【請求項12】 前記ボイスプログラムメモリが、前記
    ボイルプログラムのグループ内の前記ボイスプログラム
    の相互間の接続状態を設定する入出力パラメータを有し
    た複数の前記ボイスプログラムを記憶する第1メモリ
    と、 少なくとも1つの前記信号処理器と第1メモリとを接続
    すると共に、前記ボイスプログラムのグループに対して
    入出力パラメータを記憶する入出力パラメータメモリと
    を備えてなる、 請求項6記載のミュージックシンセサイザー。
  13. 【請求項13】 前記ボイスプログラムメモリが、前記
    ボイスプログラムの相互間の接続状態を設定する入出力
    パラメータ、命令、係数、テーブル及びディレイライン
    を有する複数の前記ボイスプログラムを記憶する第1メ
    モリと、 少なくとも1つの前記信号処理器と第1メモリとに接続
    すると共に、前記ボイスプログラムのグループに対する
    命令を記憶する命令メモリと、 少なくとも1つの前記信号処理器と第1メモリとに接続
    すると共に、前記ボイスプログラムのグループに対する
    入出力パラメータを記憶する入出力パラメータメモリ
    と、 少なくとも1つの前記信号処理器と第1メモリとに接続
    すると共に、前記ボイスプログラムのグループに対する
    ディレイラインを記憶するディレイラインメモリと、 少なくとも1つの前記信号処理器と第1メモリとに接続
    すると共に、前記ボイスプログラムのグループに対する
    係数を記憶する係数メモリと、 少なくとも1つの前記信号処理器と第1メモリとに接続
    すると共に、前記ボイスプログラムのグループに対する
    テーブルデータを記憶するテーブルメモリとを有してな
    る、 請求項6記載のミュージックシンセサイザー。
  14. 【請求項14】 前記動的割当手段が、前記第1メモ
    リ、前記命令メモリ、前記ディレイラインメモリ、前記
    係数メモリ及び前記入出力パラメータメモリとに接続す
    ると共に、選択された前記ボイスプログラムの命令、入
    出力パラメータ、係数及びディレイラインパラメータを
    前記第1メモリから前記命令メモリ、前記入出力パラメ
    ータメモリ、前記係数メモリ及び前記ディレイラインメ
    モリそれぞれにリアルタイムで転送する転送手段を有し
    てなる、 請求項13記載のミュージックシンセサイザー。
  15. 【請求項15】 前記動的割当手段が、所定の前記ボイ
    スプログラムの実行に際し、他の前記ボイスプログラム
    の実行に影響を与えることなく、前記命令メモリにおけ
    る所定の前記ボイスプログラムに対しての命令を記憶す
    る命令格納領域を、少なくとも1つの前記信号処理器に
    よる実行から一時的にマスキングするマスキング手段
    と、 選択された前記ボイスプログラムの命令を一時的にマス
    キングされた命令格納領域に転送する転送手段と前記リ
    アルタイム入力信号に応じて前記ボイスプログラムのグ
    ループにおける所定の前記ボイスプログラムを選択され
    た前記ボイスに対する前記ボイスプログラムに置換る置
    換手段とを有してなる、 請求項14記載のミュージックシンセサイザー。
  16. 【請求項16】 前記置換手段が、前記ディレイライン
    メモリと接続すると共に、リアルタイムでディレイライ
    ンパラメータに応じて前記ディレイラインメモリにおけ
    る所定の前記ボイスプログラムのディレイラインをクリ
    アし、かつ、前記ディレイラインメモリ上に、選択され
    た前記ボイスプログラムに対するディレイラインを設定
    するディレイライン制御手段を有してなる、 請求項14記載のミュージックシンセサイザー。
  17. 【請求項17】 前記入力手段が、鍵盤を有してなる、 請求項1記載のミュージックシンセサイザー。
  18. 【請求項18】 前記入力手段が、MIDIインターフ
    ェイスを有してなる、 請求項1記載のミュージックシンセサイザー。
  19. 【請求項19】 選択されたボイスを指示するリアルタ
    イム入力信号を供給する入力手段と、 該入力手段に接続すると共にリアルタイム入力信号に対
    応する前記ボイスの発生のための命令手順を有したボイ
    スプログラムを供給する供給手段を有するホスト処理シ
    ステムと、 該ホスト処理システムと接続すると共に、前記ボイスプ
    ログラムのグループを記憶する記憶手段と、 該記憶手段と前記入力手段とに接続すると共に、選択さ
    れた前記ボイスを示すサウンドデータを発生させるため
    に、リアルタイム入力信号に応じて選択された前記ボイ
    スに対する前記グループ内の所定の前記ボイスプログラ
    ムの命令手順を実行する少なくとも1つの前記信号処理
    器と、 前記入力手段、前記ホスト処理システム及び前記記憶手
    段と接続すると共に、前記ホスト処理システムが有する
    前記供給手段からの選択された前記ボイスに対するボイ
    スプログラムを、前記リアルタイム入力信号に応じて前
    記記憶手段に記憶された前記ボイスプログラムのグルー
    プに動的に割当る動的割当手段と、 少なくとも1つの前記信号処理器に接続し、前記サウン
    ドデータに応じて音声信号を生成する音声出力手段とを
    備えてなる、 ことを特徴とするミュージックシンセサイザー。
  20. 【請求項20】 前記動的割当手段が、前記グループ内
    の所定の前記ボイスプログラムをリアルタイム入力信号
    に応じて、選択された前記ボイスに対応する前記ボイス
    プログラムに置換る置換手段を有してなる、 請求項19記載のミュージックシンセサイザー。
  21. 【請求項21】 前記ボイスプログラムメモリが、少な
    くとも1つの前記信号処理器によって実行される命令を
    有した複数の前記ボイスプログラムを記憶する第1メモ
    リと、 少なくとも1つの前記信号処理器と第1メモリとを接続
    すると共に、前記ボイスプログラムのグループに対する
    命令を記憶する命令メモリとを有してなる、 請求項19記載のミュージックシンセサイザー。
  22. 【請求項22】 前記動的割当手段が、他の前記ボイス
    プログラムの実行に影響を与えることなく前記命令メモ
    リにおける所定の前記ボイスプログラムに対する命令を
    記憶する命令格納領域を、少なくとも1つの前記信号処
    理器による実行から一時的にマスキングするマスキング
    手段と、 前記リアルタイム入力信号に応じて、前記ボイスプログ
    ラムのグループにおける所定のボイスプログラムを選択
    された前記ボイスの前記ボイスプログラムに置換る置換
    手段とを有してなる、 請求項21記載のミュージックシンセサイザー。
  23. 【請求項23】 前記ボイスプログラムメモリが、ディ
    レイラインを有した複数の前記ボイスプログラムを記憶
    する第1メモリと、 少なくとも1つの前記信号処理器と第1メモリとが接続
    すると共に、前記ボイスプログラムのグループが用いる
    前記ディレイラインを記憶するディレイラインメモリと
    を備えてなる、 請求項19記載のミュージックシンセサイザー。
  24. 【請求項24】 前記動的割当手段が、前記ディレイラ
    インメモリと接続すると共に、リアルタイムで所定の前
    記ボイスプログラムの使用するディレイラインを実行不
    能とし、かつ、前記ディレイラインメモリ上の、選択さ
    れた前記ボイスプログラムに対するディレイラインを設
    定する設定手段をディレイライン制御手段を有してな
    る、 請求項23記載のミュージックシンセサイザー。
  25. 【請求項25】 前記ボイスプログラムメモリが、少な
    くとも1つの前記信号処理器による実行に対して命令及
    び係数を有した複数の前記ボイスプログラムを記憶する
    第1メモリと、 少なくとも1つの前記信号処理器と第1メモリとに接続
    すると共に、前記ボイスプログラムのグループに対する
    命令を記憶する命令メモリと、 少なくとも1つの前記信号処理器と第1メモリとに接続
    すると共に、前記ボイスプログラムのグループに対する
    係数を記憶する係数メモリとを備えてなる、 請求項19記載のミュージックシンセサイザー。
  26. 【請求項26】 前記ボイスプログラムメモリが、前記
    ボイルプログラムのグループ内の前記ボイスプログラム
    の相互間の接続状態を設定する入出力パラメータを有し
    た複数の前記ボイスプログラムを記憶する第1メモリ
    と、 少なくとも1つの前記信号処理器と第1メモリとを接続
    すると共に、前記ボイスプログラムのグループに対して
    入出力パラメータを記憶する入出力パラメータメモリと
    を備えてなる、 請求項19記載のミュージックシンセサイザー。
  27. 【請求項27】 前記ボイスプログラムメモリが、前記
    ボイスプログラムの相互間の接続状態を設定する入出力
    パラメータ、命令、係数、テーブル及びディレイライン
    を有する複数の前記ボイスプログラムを記憶する第1メ
    モリと、 少なくとも1つの前記信号処理器と第1メモリとに接続
    すると共に、前記ボイスプログラムのグループに対する
    命令を記憶する命令メモリと、 少なくとも1つの前記信号処理器と第1メモリとに接続
    すると共に、前記ボイスプログラムのグループに対する
    入出力パラメータを記憶する入出力パラメータメモリ
    と、 少なくとも1つの前記信号処理器と第1メモリとに接続
    すると共に、前記ボイスプログラムのグループに対する
    ディレイラインを記憶するディレイラインメモリと、 少なくとも1つの前記信号処理器と第1メモリとに接続
    すると共に、前記ボイスプログラムのグループに対する
    係数を記憶する係数メモリと、 少なくとも1つの前記信号処理器と第1メモリとに接続
    すると共に、前記ボイスプログラムのグループに対する
    テーブルデータを記憶するテーブルメモリとを有してな
    る、 請求項19記載のミュージックシンセサイザー。
  28. 【請求項28】 前記動的割当手段が、前記第1メモ
    リ、前記命令メモリ、前記ディレイラインメモリ、前記
    係数メモリ及び前記入出力パラメータメモリとに接続す
    ると共に、選択された前記ボイスプログラムの命令、入
    出力パラメータ、係数及びディレイラインパラメータを
    前記第1メモリから前記命令メモリ、前記入出力パラメ
    ータメモリ、前記係数メモリ及び前記ディレイラインメ
    モリそれぞれにリアルタイムで転送する転送手段を有し
    てなる、 請求項27記載のミュージックシンセサイザー。
  29. 【請求項29】 前記動的割当手段が、所定の前記ボイ
    スプログラムの実行に際し、他の前記ボイスプログラム
    の実行に影響を与えることなく、前記命令メモリにおけ
    る所定の前記ボイスプログラムに対しての命令を記憶す
    る命令格納領域を、少なくとも1つの前記信号処理器に
    よる実行から一時的にマスキングするマスキング手段
    と、 選択された前記ボイスプログラムの命令を一時的にマス
    キングされた命令格納領域に転送する転送手段と前記リ
    アルタイム入力信号に応じて前記ボイスプログラムのグ
    ループにおける所定の前記ボイスプログラムを選択され
    た前記ボイスに対する前記ボイスプログラムに置換る置
    換手段とを有してなる、 請求項27記載のミュージックシンセサイザー。
  30. 【請求項30】 前記置換手段が、前記ディレイライン
    メモリと接続すると共に、リアルタイムでディレイライ
    ンパラメータに応じて前記ディレイラインメモリにおけ
    る所定の前記ボイスプログラムのディレイラインをクリ
    アし、かつ、前記ディレイラインメモリ上に、選択され
    た前記ボイスプログラムに対するディレイラインを設定
    するディレイライン制御手段を有してなる、 請求項29記載のミュージックシンセサイザー。
  31. 【請求項31】 前記入力手段が、鍵盤を有してなる、 請求項19記載のミュージックシンセサイザー。
  32. 【請求項32】 前記入力手段が、MIDIインターフ
    ェイスを有してなる、 請求項19記載のミュージックシンセサイザー。
  33. 【請求項33】 ホスト処理システムが、処理器と、 該処理器に接続された処理器バスと、 該処理器バスに接続された第1メモリと、 前記処理器バスと分離された第2メモリと、 前記処理器バスと前記第2メモリとに接続すると共に、
    前記第2メモリに対するホスト読出し及びホスト書き込
    みを行い、かつ、前記第2メモリとは独立に前記ボイス
    プログラムを複数の前記信号処理器に転送する転送手段
    とを有する記憶手段を備えてなる、 請求項19記載のミュージックシンセサイザー。
  34. 【請求項34】 前記ホスト処理器が、前記第2メモリ
    から前記ボイスプログラムを転送すると同時に、前記リ
    アルタイム入力信号に応じて選択された前記ボイスプロ
    グラムで用いるパラメータを計算するデータ処理手段を
    有してなる、 請求項33記載のミュージックシンセサ
    イザー。
  35. 【請求項35】 前記動的割当手段が、少なくとも1つ
    の前記信号処理器のリソースを複数備えてボイスプログ
    ラムリソースグループに分割する分割手段を有し、 複数の他のリソースグループを用いる前記ボイスプログ
    ラムに影響を与えることなく所定のリソースグループを
    選択的に実行不能にする、リアルタイムで選択された前
    記ボイスプログラムを実行不能にされた前記ボイスプロ
    グラムのリソースグループに割当てる、 請求項19記載のミュージックシンセサイザー。
  36. 【請求項36】 選択されたボイスを指示するリアルタ
    イム入力信号を供給する入力手段と、 該入力手段と接続されると共に、対応する前記ボイスの
    発生のための命令手順を有するボイスプログラムを供給
    するホスト処理システムと、 前記ホスト処理システムと接続すると共に、前記ボイス
    プログラムのグループを記憶する記憶手段と、 該記憶手段及び前記入力手段と接続されると共に、選択
    された前記ボイスのサウンドデータを発生させるための
    リアルタイム入力データに応じて、選択された前記ボイ
    スに対して、所定の前記ボイスプログラムを実行する複
    数の信号処理器と、 前記入力手段、前記ホスト処理システム及び前記記憶手
    段とを接続すると共に、前記ホスト処理システム内から
    の選択された前記ボイスに対する前記ボイスプログラム
    を前記リアルタイム入力信号に応じて前記記憶手段が記
    憶している前記ボイスプログラムのグループに動的に割
    当る動的割当手段と、 複数の前記信号処理器と接続されると共に、複数の前記
    信号処理器の間で前記サウンドデータを伝達するオーデ
    ィオデータバスと、 該オーディオデータバスと接続されると共に、該オーデ
    ィオデータバス上の前記サウンドデータに応じて音声信
    号を生成する音声出力手段とを有してなる、 ことを特徴とするミュージックシンセサイザー。
  37. 【請求項37】 前記動的割当手段が、リアルタイム入
    力信号に応じて、グループ内の所定の前記ボイスプログ
    ラムを、選択された前記ボイスに対応する前記ボイスプ
    ログラムに置換る置換手段を有してなる、 請求項36記載のミュージックシンセサイザー。
  38. 【請求項38】 前記記憶手段が、少なくとも1つの前
    記信号処理器によって実行される命令を有する複数の前
    記ボイスプログラムを記憶する第1メモリと、 複数の前記信号処理器と第1メモリとを接続すると共
    に、前記ボイスプログラムのグループに対する命令を記
    憶する命令メモリとを備えてなる、 請求項36記載のミュージックシンセサイザー。
  39. 【請求項39】 前記動的割当手段が、所定の前記ボイ
    スプログラムが他の前記ボイスプログラムの実行に影響
    を与えることなく、前記命令メモリにおける所定の前記
    ボイスプログラムに対する命令を記憶する命令格納領域
    を、少なくとも1つの前記信号処理器による実行から一
    時的にマスキングする手段を有し、前記リアルタイム入
    力信号に応じてグループにおける所定の前記ボイスプロ
    グラムを選択された前記ボイスに対する前記ボイスプロ
    グラムに置換る置換手段を備えてなる、 請求項38記載のミュージックシンセサイザー。
  40. 【請求項40】 前記ボイスプログラムメモリが、ディ
    レイラインを有した複数の前記ボイスプログラムを記憶
    する第1メモリと、 少なくとも1つの前記信号処理器と第1メモリとが接続
    すると共に、前記ボイスプログラムのグループが用いる
    前記ディレイラインを記憶するディレイラインメモリと
    を備えてなる、 請求項38記載のミュージックシンセサイザー。
  41. 【請求項41】 前記置換手段が、前記ディレイライン
    メモリと接続すると共に、リアルタイムでディレイライ
    ンパラメータに応じて前記ディレイラインメモリにおけ
    る所定の前記ボイスプログラムのディレイラインをクリ
    アし、かつ、前記ディレイラインメモリ上に、選択され
    た前記ボイスプログラムに対するディレイラインを設定
    するディレイライン制御手段を有してなる、 請求項40記載のミュージックシンセサイザー。
  42. 【請求項42】 前記ボイスプログラムメモリが、少な
    くとも1つの前記信号処理器による実行に対して命令及
    び係数を有した複数の前記ボイスプログラムを記憶する
    第1メモリと、 少なくとも1つの前記信号処理器と第1メモリとに接続
    すると共に、前記ボイスプログラムのグループに対する
    命令を記憶する命令メモリと、 少なくとも1つの前記信号処理器と第1メモリとに接続
    すると共に、前記ボイスプログラムのグループに対する
    係数を記憶する係数メモリとを備えてなる、 請求項36記載のミュージックシンセサイザー。
  43. 【請求項43】 前記ボイスプログラムメモリが、前記
    ボイルプログラムのグループ内の前記ボイスプログラム
    の相互間の接続状態を設定する入出力パラメータを有し
    た複数の前記ボイスプログラムを記憶する第1メモリ
    と、 少なくとも1つの前記信号処理器と第1メモリとを接続
    すると共に、選択された前記ボイスプログラムの命令、
    グループ内のボイスプログラム間の接続を指定するパラ
    メータ、定数及びリレーラインパラメータを第1メモリ
    ーから前記メモリーモジュールにリアルタイムで転送し
    た手段、 請求項36記載のミュージックシンセサイザー。
  44. 【請求項44】 前記ホスト処理システムが、前記ボイ
    スプログラムのグループの間の接続状態を設定する入出
    力パラメータ、命令手順、係数、テーブル及びディレイ
    ラインを有する複数の前記ボイスプログラムを記憶する
    第1メモリを備え、 前記記憶手段が、複数の信号処理器の内で対応する信号
    処理器と接続される複数のメモリモジュールを備え、 該メモリモジュールが、対応する前記信号処理器と前記
    第1メモリとを接続すると共に、前記ボイスプログラム
    のグループに対する命令を記憶する命令メモリと、 対応する前記信号処理器と前記第1メモリとを接続する
    と共に、前記ボイスプログラムのグループに対する入力
    /出力パラメータを記憶する入力/出力パラメータメモ
    リと、 対応する前記信号処理器と前記第1メモリとを接続する
    と共に、前記ボイスプログラムのグループに対するディ
    レイラインを記憶するディレイラインメモリと、 対応
    する前記信号処理器と前記第1メモリとを接続すると共
    に、前記ボイスプログラムのグループに対する係数を記
    憶する係数メモリと、 対応する前記信号処理器と前記第1メモリとを接続する
    と共に、前記ボイスプログラムのグループに対するテー
    ブルデータを記憶するテーブルメモリとを備えてなる、 請求項36記載のミュージックシンセサイザー。
  45. 【請求項45】 前記動的割当手段が、前記第1メモリ
    と複数の前記メモリモジュールと接続すると共に、命令
    および前記ボイスプログラムのグループ間の接続状態を
    指定する選択された前記ボイスプログラムの入出力パラ
    メータ、係数及びディレイラインパラメータを、前記第
    1メモリから選択された前記メモリモジュールにリアル
    タイムで転送する転送手段を有してなる、 請求項44記載のミュージックシンセサイザー。
  46. 【請求項46】 前記動的割当手段が、所定の前記ボイ
    スプログラムの実行に際し、他の前記ボイスプログラム
    の実行に影響を与えることなく、前記命令メモリにおけ
    る所定の前記ボイスプログラムに対しての命令を記憶す
    る命令格納領域を、少なくとも1つの前記信号処理器に
    よる実行から一時的にマスキングするマスキング手段
    と、 選択された前記ボイスプログラムの命令を一時的にマス
    キングされた命令格納領域に転送する転送手段と前記リ
    アルタイム入力信号に応じて前記ボイスプログラムのグ
    ループにおける所定の前記ボイスプログラムを選択され
    た前記ボイスに対する前記ボイスプログラムに置換る置
    換手段とを有してなる、 請求項45記載のミュージックシンセサイザー。
  47. 【請求項47】 前記置換手段が、前記ディレイライン
    メモリと接続すると共に、リアルタイムでディレイライ
    ンパラメータに応じて前記ディレイラインメモリにおけ
    る所定の前記ボイスプログラムのディレイラインをクリ
    アし、かつ、前記ディレイラインメモリ上に、選択され
    た前記ボイスプログラムに対するディレイラインを設定
    するディレイライン制御手段を有してなる、 請求項46載のミュージックシンセサイザー。
  48. 【請求項48】 前記ホスト処理システムが、リアルタ
    イムの実行に際し、一組の前記ボイスプログラムを構成
    する構成手段と、 該構成手段による一組の前記ボイスプログラムを記憶す
    る一組のメモリを有した供給手段と、 前記ボイスプログラムに対するテーブルデータを複数の
    前記メモリモジュールのテーブルメモリに転送する転送
    手段を有した動的割当手段とを備えてなる、 請求項44記載のミュージックシンセサイザー。
  49. 【請求項49】 前記ホスト処理システムが、リアルタ
    イムの実行に際し、一組の前記ボイスプログラムを構成
    する構成手段と、 該構成手段による一組の前記ボイスプログラムを記憶す
    る一組のメモリを有する供給手段とを備えてなる、 請求項36記載のミュージックシンセサイザー。
  50. 【請求項50】 前記ボイスプログラムのグループの間
    の接続状態を設定する命令手順及び入出力パラメータ
    と、係数、テーブル及びディレイラインとを一組の前記
    ボイスプログラムが有すると共に、対応する前記信号処
    理器及び前記第一メモリと接続し、かつ、前記ボイスプ
    ログラムのグループに対する命令を記憶する命令メモリ
    と、 複数の前記信号処理器と接続されて複数のメモリモジュ
    ールを有する保管手段とを備え、 該メモリモジュールが、対応する前記信号処理器又は第
    一メモリと接続すると共に、前記ボイスプログラムのグ
    ループに対する入出力パラメータを記憶する入出力パラ
    メータメモリと、 対応する前記信号処理器又は第一メモリと接続すると共
    に、前記ボイスプログラムのグループに対するディレイ
    ラインを記憶するディレイラインメモリと、 対応する前記信号処理器又は第一メモリと接続すると共
    に、複数の前記ボイスプログラムに対する係数を記憶す
    る係数メモリと、 対応する前記信号処理器と第一メモリと接続すると共
    に、複数のボイスプログラムに対するテーブルデータを
    記憶するテーブルメモリとを備えてなる、 請求項49記載のミュージックシンセサイザー。
  51. 【請求項51】 前記ボイスプログラムのグループにお
    ける音声サンプルデータを記憶する少なくとも1つのメ
    モリモジュールにサンプル格納手段が設けられ、音声サ
    ンプルデータのセットの中の少なくとも1つにボイスプ
    ログラムを有してなる、 請求項50記載のミュージックシンセサイザー。
  52. 【請求項52】 前記入力手段が、鍵盤を有してなる、 請求項36記載のミュージックシンセサイザー。
  53. 【請求項53】 前記入力手段が、MIDIインターフ
    ェースを有してなる、 請求項36記載のミュージックシンセサイザー。
  54. 【請求項54】 ホスト処理システムが、処理器と、 該処理器に接続された処理器バスと、 該処理器バスに接続された第1メモリと、 前記処理器バスと分離された第2メモリと、 前記処理器バスと前記第2メモリとに接続すると共に、
    前記第2メモリに対するホスト読出し及びホスト書き込
    みを行い、かつ、前記第2メモリとは独立に前記ボイス
    プログラムを複数の前記信号処理器に転送する転送手段
    とを有する記憶手段を備えてなる、 請求項36記載のミュージックシンセサイザー。
  55. 【請求項55】 前記ホスト処理システムが、前記第2
    メモリから前記ボイスプログラムを転送すると同時に、
    リアルタイム入力信号に応じて選択された前記ボイスプ
    ログラムに用いるパラメータを計算するデータ処理手段
    を有してなる、 請求項36記載のミュージックシンセサイザー。
  56. 【請求項56】 前記動的割当手段が、複数の前記ボイ
    スプログラムのリソースグループ内に、複数の前記信号
    処理器のリソースを分割する分割手段と、 他の前記リソースグループを用いる前記ボイスプログラ
    ムに影響を与えることなく所定のリソースグループを選
    択的に実行不能するリソースグループ停止手段とを有し
    て、 リアルタイムで選択された前記ボイスプログラムを実行
    不能された前記ボイスプログラムのリソースグループを
    割当ててなる、 請求項36記載のミュージックシンセサイザー。
JP6050956A 1993-02-10 1994-02-10 動的ボイス割当をおこなうオープンアーキテクチャー構成のミュージックシンセサイザー Expired - Fee Related JP2838645B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/016,865 US5376752A (en) 1993-02-10 1993-02-10 Open architecture music synthesizer with dynamic voice allocation
US08/016,865 1993-02-10

Publications (2)

Publication Number Publication Date
JPH06308966A true JPH06308966A (ja) 1994-11-04
JP2838645B2 JP2838645B2 (ja) 1998-12-16

Family

ID=21779419

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6050956A Expired - Fee Related JP2838645B2 (ja) 1993-02-10 1994-02-10 動的ボイス割当をおこなうオープンアーキテクチャー構成のミュージックシンセサイザー

Country Status (2)

Country Link
US (1) US5376752A (ja)
JP (1) JP2838645B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006196003A (ja) * 2005-01-13 2006-07-27 Korg Inc ボイス処理方法、オーディオプロセッサ、ボイス処理プログラム、およびボイス処理プログラムを記録した記録媒体
JP2006267495A (ja) * 2005-03-23 2006-10-05 Yamaha Corp 電子楽器

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5657476A (en) * 1993-02-10 1997-08-12 Korg, Inc. Signal processor with delay line management logic
US5644787A (en) * 1993-08-03 1997-07-01 Seiko Epson Corporation Apparatus for controlling data transfer between external interfaces through buffer memory using table data having transfer start address transfer count and unit selection parameter
US6362409B1 (en) 1998-12-02 2002-03-26 Imms, Inc. Customizable software-based digital wavetable synthesizer
EP0718753A1 (en) * 1994-12-22 1996-06-26 Motorola, Inc. Data processing system for evaluating fuzzy logic rules and method therefor
DE69617480T2 (de) * 1995-01-13 2002-10-24 Yamaha Corp., Hamamatsu Vorrichtung zur Verarbeitung eines digitales Klangsignals
CN100573659C (zh) * 1995-03-03 2009-12-23 雅马哈株式会社 具有兼容软件模块的计算机化乐器
CN1108602C (zh) * 1995-03-28 2003-05-14 华邦电子股份有限公司 具有音乐旋律的语音合成器
US5768628A (en) * 1995-04-14 1998-06-16 Nvidia Corporation Method for providing high quality audio by storing wave tables in system memory and having a DMA controller on the sound card for transferring the wave tables
TW281748B (en) * 1995-05-19 1996-07-21 Yamaha Corp Method of composing music
DE69619587T2 (de) * 1995-05-19 2002-10-31 Yamaha Corp., Hamamatsu Verfahren und Vorrichtung zur Tonerzeugung
JP2962465B2 (ja) * 1995-06-02 1999-10-12 ヤマハ株式会社 可変アルゴリズム音源および音色編集装置
JP2998612B2 (ja) * 1995-06-06 2000-01-11 ヤマハ株式会社 楽音発生装置
JP3267106B2 (ja) * 1995-07-05 2002-03-18 ヤマハ株式会社 楽音波形生成方法
JPH09146914A (ja) * 1995-09-06 1997-06-06 Seiko Epson Corp シングルチップマイクロコンピュータ及びそれを内蔵した電子機器
US5731534A (en) * 1995-09-22 1998-03-24 Yamaha Corporation Method and apparatus for imparting an effect to a tone signal with grade designation
JP2924745B2 (ja) * 1995-10-20 1999-07-26 ヤマハ株式会社 楽音発生装置及び方法
JP3293434B2 (ja) * 1995-10-23 2002-06-17 ヤマハ株式会社 楽音発生方法
US5828881A (en) * 1995-11-09 1998-10-27 Chromatic Research, Inc. System and method for stack-based processing of multiple real-time audio tasks
US5747714A (en) * 1995-11-16 1998-05-05 James N. Kniest Digital tone synthesis modeling for complex instruments
JP2962217B2 (ja) 1995-11-22 1999-10-12 ヤマハ株式会社 楽音生成装置及び方法
US5596159A (en) * 1995-11-22 1997-01-21 Invision Interactive, Inc. Software sound synthesis system
US5841054A (en) * 1996-04-06 1998-11-24 Yamaha Corporation Musical tone synthesizing apparatus having competibility of tone color parameters for different systems
US5765013A (en) * 1996-07-03 1998-06-09 Samsung Electronics Co., Ltd. Digital signal processor
DE69704996T2 (de) * 1996-08-05 2002-04-04 Yamaha Corp., Hamamatsu Software-Tonerzeuger
DE69704528T2 (de) * 1996-08-30 2002-03-28 Yamaha Corp., Hamamatsu Verfahren und Vorrichtung zur Erzeugung von Musiktönen, zur Bearbeitung und Wiedergabe von Musikdaten mit Hilfe von Speichermitteln
SG67993A1 (en) 1996-08-30 1999-10-19 Yamaha Corp Sound source system based on computer software and method of generating acoustic waveform data
US5744739A (en) * 1996-09-13 1998-04-28 Crystal Semiconductor Wavetable synthesizer and operating method using a variable sampling rate approximation
US6096960A (en) * 1996-09-13 2000-08-01 Crystal Semiconductor Corporation Period forcing filter for preprocessing sound samples for usage in a wavetable synthesizer
US5852251A (en) * 1997-06-25 1998-12-22 Industrial Technology Research Institute Method and apparatus for real-time dynamic midi control
US5930158A (en) * 1997-07-02 1999-07-27 Creative Technology, Ltd Processor with instruction set for audio effects
US6092126A (en) * 1997-11-13 2000-07-18 Creative Technology, Ltd. Asynchronous sample rate tracker with multiple tracking modes
US6016522A (en) * 1997-11-13 2000-01-18 Creative Labs, Inc. System for switching between buffers when receiving bursty audio by computing loop jump indicator plus loop start address for read operations in selected buffer
US6032235A (en) * 1997-11-14 2000-02-29 Creative Technology Ltd. Memory initialization circuit
US6301603B1 (en) 1998-02-17 2001-10-09 Euphonics Incorporated Scalable audio processing on a heterogeneous processor array
US6226661B1 (en) 1998-11-13 2001-05-01 Creative Technology Ltd. Generation and application of sample rate conversion ratios using distributed jitter
JP2000181460A (ja) * 1998-12-17 2000-06-30 Sony Computer Entertainment Inc 楽音生成装置および方法、並びに提供媒体
JP2003216420A (ja) * 2002-01-21 2003-07-31 Matsushita Electric Ind Co Ltd 機能可変型dsp装置およびその制御方法およびその制御プログラム
US7692090B2 (en) * 2003-01-15 2010-04-06 Owned Llc Electronic musical performance instrument with greater and deeper creative flexibility
US7107401B1 (en) 2003-12-19 2006-09-12 Creative Technology Ltd Method and circuit to combine cache and delay line memory
US7441105B1 (en) * 2004-01-02 2008-10-21 Altera Corporation Reducing multiplexer circuitry for operand select logic associated with a processor
US7693718B2 (en) * 2006-01-31 2010-04-06 International Business Machines Corporation Update technique for speech recognition applications with uninterrupted (24X7) operation
US8180063B2 (en) * 2007-03-30 2012-05-15 Audiofile Engineering Llc Audio signal processing system for live music performance
US20100180224A1 (en) * 2009-01-15 2010-07-15 Open Labs Universal music production system with added user functionality
US8568015B2 (en) 2010-09-23 2013-10-29 Willis Electric Co., Ltd. Decorative light string for artificial lighted tree
US8392635B2 (en) * 2010-12-22 2013-03-05 Western Digital Technologies, Inc. Selectively enabling a host transfer interrupt
US9894949B1 (en) 2013-11-27 2018-02-20 Willis Electric Co., Ltd. Lighted artificial tree with improved electrical connections
US9883566B1 (en) 2014-05-01 2018-01-30 Willis Electric Co., Ltd. Control of modular lighted artificial trees
US10028360B1 (en) 2016-02-12 2018-07-17 Willis Electric Co., Ltd. Selective control of decorative lighting with control option indication
US10467151B2 (en) * 2017-09-05 2019-11-05 NGINX, Inc. Using shared memory to transport data between server processes
US10683974B1 (en) 2017-12-11 2020-06-16 Willis Electric Co., Ltd. Decorative lighting control
US11042424B1 (en) 2018-04-24 2021-06-22 F5 Networks, Inc. Pipelined request processing using shared memory

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02179698A (ja) * 1988-12-29 1990-07-12 Casio Comput Co Ltd 処理装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4984276A (en) * 1986-05-02 1991-01-08 The Board Of Trustees Of The Leland Stanford Junior University Digital signal processing using waveguide networks
US5225618A (en) * 1989-08-17 1993-07-06 Wayne Wadhams Method and apparatus for studying music
US5208421A (en) * 1990-11-01 1993-05-04 International Business Machines Corporation Method and apparatus for audio editing of midi files

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02179698A (ja) * 1988-12-29 1990-07-12 Casio Comput Co Ltd 処理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006196003A (ja) * 2005-01-13 2006-07-27 Korg Inc ボイス処理方法、オーディオプロセッサ、ボイス処理プログラム、およびボイス処理プログラムを記録した記録媒体
JP2006267495A (ja) * 2005-03-23 2006-10-05 Yamaha Corp 電子楽器

Also Published As

Publication number Publication date
JP2838645B2 (ja) 1998-12-16
US5376752A (en) 1994-12-27

Similar Documents

Publication Publication Date Title
JP2838645B2 (ja) 動的ボイス割当をおこなうオープンアーキテクチャー構成のミュージックシンセサイザー
US4285040A (en) Dual mode virtual-to-real address translation mechanism
JP3027970B2 (ja) デイジタル信号プロセツサメモリ管理ユニツトおよびその方法
US7493474B1 (en) Methods and apparatus for transforming, loading, and executing super-set instructions
US5437043A (en) Information processing apparatus having a register file used interchangeably both as scalar registers of register windows and as vector registers
US5726371A (en) Data processing apparatus outputting waveform data for sound signals with precise timings
US5691493A (en) Multi-channel tone generation apparatus with multiple CPU's executing programs in parallel
EP0910827A2 (en) Circuits, system, and methods for processing multiple data streams
WO1998035301A9 (en) Circuits, system, and methods for processing multiple data streams
CN109997109B (zh) 具有提取提前滞后的流引擎
JP2002539519A (ja) Vliwプロセッサにおけるレジスタ・アドレッシングの間接制御を提供するためのレジスタファイル索引付け方法及び装置
US5852729A (en) Code segment replacement apparatus and real time signal processor using same
JP3170599B2 (ja) プログラマブルlsiおよびその演算方法
JPH03222197A (ja) ディジタル音源装置、およびそれに用いられる外部メモリカートリッジ
JPS6326399B2 (ja)
US5657476A (en) Signal processor with delay line management logic
KR19980018065A (ko) 스칼라/벡터 연산이 조합된 단일 명령 복수 데이터 처리
JP2924745B2 (ja) 楽音発生装置及び方法
JP3163984B2 (ja) 楽音発生装置
Dannenberg A flexible real-time software synthesis system
US20190034115A1 (en) Musical sound generation device, musical sound generation method, storage medium, and electronic musical instrument
US6427200B1 (en) Multiple changeable addressing mapping circuit
JPH08211879A (ja) 音響シミュレーション用システム、装置並びに方法
JP3050779B2 (ja) 信号処理装置
JP2797138B2 (ja) 電子楽器用処理装置

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20081016

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20091016

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees