JPH0460595A - 電子楽器用処理装置 - Google Patents

電子楽器用処理装置

Info

Publication number
JPH0460595A
JPH0460595A JP2170161A JP17016190A JPH0460595A JP H0460595 A JPH0460595 A JP H0460595A JP 2170161 A JP2170161 A JP 2170161A JP 17016190 A JP17016190 A JP 17016190A JP H0460595 A JPH0460595 A JP H0460595A
Authority
JP
Japan
Prior art keywords
data
scpu
address
signal
processing
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
JP2170161A
Other languages
English (en)
Other versions
JP2797137B2 (ja
Inventor
Ryuji Usami
隆二 宇佐美
Kosuke Shiba
斯波 康祐
Koichiro Oki
広一郎 太期
Kazuo Ogura
和夫 小倉
Jun Hosoda
潤 細田
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2170161A priority Critical patent/JP2797137B2/ja
Priority to US07/709,101 priority patent/US5200564A/en
Publication of JPH0460595A publication Critical patent/JPH0460595A/ja
Priority to US08/001,184 priority patent/US5691493A/en
Priority to US08/486,606 priority patent/US5584034A/en
Application granted granted Critical
Publication of JP2797137B2 publication Critical patent/JP2797137B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [発明の技術分野] この発明は電子楽器用処理装置に関し、特に電子楽器用
処理装置の構造的なアーキテクチャに関する。
[発明の背景] 近年、電子楽器はコンピユータ化されている。
しかし、大量で高速のデータ処理が必要な楽音の生成に
係る部分は音源回路と呼ばれる専用構造のハードウェア
で行われており、マイクロコンピュタは楽器への制御入
力<m盤やコンソールパネルからの入力、MIDIその
他の外部制御入力、内部または外部の演奏メモリからの
入力等)を処理し、音源回路に適したコマンドを音源回
路に転送するに留まっている。
楽音生成処理は音源回路ハードウェアで行い、楽器の制
御入力の処理をマイクロコンピュータで行うという電子
楽器のシステムアーキテクチャ−にはいくつかの問題が
ある。第1の音源回路ハードウェアは楽音パラメータを
処理する種々の処理段階の随所にデータを一時的に記憶
する記憶装置、yI算を行う演算回路を必要とするので
必然的に回路規模が大きくなる。第2に音標回路ハード
ウェアを設計変更する場合に、しばしば大規模な回路変
更が余儀なくされ、多大の開発時間、労力を要する。更
にマイクロコンピュータと音源回路ハードウェアとの間
のインターフェースについても、音源回路ハードウェア
ごとに検討し直し、開発し直す必要がある。
以上の理由から、本件出願人は音源回路ハードウェアを
使用することなくマイクロコンピュータのプログラム制
御だけで楽音を生成することのできる電子楽器用処理装
置を提案した(特願昭63334158号)。
この出願の実施例は単一のCPUがプログラムを実行し
て楽音を生成する構成を示している。この場合、楽音生
成能力を上げるにはCPUの処理速度を上げる必要があ
る。残念ながら、CPUの処理速度は使用する半導体デ
バイスの動作速度限界等によって制限されるために、実
現できる楽音生成能力に限界があった。
[発明の目的J したがって、この発明の目的は音源回路ハードウェアを
使用することなく比較的高い楽音生成能力を有する電子
楽器用処理装置を提供することである。
[発明の構成、作用1 この発明によれば、各CPUが各々のプログラムで動作
するように構成した複数のCPUを有し、前記複数のC
PUが前記プログラムに従って楽音信号の生成処理を並
列に実行する手段を含むことを特徴とする電子楽器用処
理装置が提供される。
この構成によれば、従来のような音源回路ハードウェア
を必要とせずにCPUの数に応じて高い楽音生成能力を
有する電子楽器用処理装置を得ることができる。また、
個々のCPU自体のハードウェアは構造上、格別の差異
がない同一のものを使用でき、基本的には各CPUが実
行するプログラムについてのみ、各CPUの処理目的に
合わせたものを使用すればよく、電子楽器用処理装置と
してのシステム構築が容易となる。
楽音信号の生成処理を並列に実行する手段は、1例とし
て、複数のCPUの各々が音源チャンネルを分担する形
式で並列処理を行う態様をとる。
例えば、第1のCPUがN個の音源チャンネルに対する
楽音信号生成処理を取り扱い、第2のcPUが別のN個
の音源チャンネルに対する楽音信号生成処理を取り扱う
、この構成は同時発音可能なポリフォニック数を増大さ
せるのに有効である。
好ましい411成例として、前記jIi数のCPUは1
つのメインCPUとこのメインCPUによって制御され
る少なくとも1つのサブCPUから成り、前記メインC
PUは、楽器への入力を処理するための入力処理プログ
ラムと入力処理プログラムによる前記楽器への入力の処
理結果に基づいて楽音を生成するための楽音生成プログ
ラムとを記憶するMCPUプログラム記憶手段と、前記
MCPUプログラム記憶手段のアドレスを制御するMC
PUアドレス制御回路手段と、前記楽器への入力処理と
前記楽音の生成処理に必要なデータを記憶するMCPU
データ記憶手段と、演算処理を行うMCPU演算処理回
路手段と、前記MCPUプログラム記憶手段のプログラ
ムの各命令を解読して前記MCPUアドレス制御回路手
段、前記MCP[Jデータ記憶手段、前記MCPU演算
処理回路手段の動作を制御するMCPUオペレージ、ン
制御回路手段と、を有し、前記サブCPUの各々は、前
記MCPUプログラム記憶手段の前記入力処理プログラ
ムによる前記楽器への入力の処理結果に基づいて楽音を
生成するための楽音生成プログラムを記憶するSCPU
プログラム記憶手段と、前記5cpuプログラム記憶手
段のアドレスを制御するSCPUアドレス制御回路手段
と、前記楽音の生成処理に必要なデータを記憶するSC
PUデ一タ記憶手段と、演算処理を行うSCPU演算処
理回路手段と、前記SCPUプログラム記憶手段のプロ
グラムの各命令を解読して前記SCPUアドレス制御回
路手段、前記SCPUデ一タ記憶手段、前記SCPU演
算回路手段の動作を制御するSCPUオペレ一シヨン制
御回路手段とを有する。
[実施例] 以下、図面を参照してこの発明の詳細な説明する6 く概 要〉 本実施例はこの発明を電子楽器に適用したものである0
本実施例(第1〜第34図)は種々の特徴を含んでいる
。第1の特徴は、楽音信号を生成する音源としてプログ
ラムで動作する複数のマイクロコンピュータ処理装置(
CPU)を使用することであり、従来のような専用構造
のハードウェア音源は不要である。1つのCPUがメイ
ンCPUあるいはマスターCPU (10)として4!
、音源処理のみでなくアプリケーション(この場合、楽
器)に従う入力装置帽1、機能キー等)、出力装置I(
DAC等)を取り扱う(第4図、第5図)、他のCPU
はマスターCPUに対してサブCPHないしスレーブC
PU (20)として働き、音源処理を実行する(第6
図)、シたがって、音源処理について各CPUの負担が
分担される構成である。
第2の特徴はサブCPUが動作を開始し、終了するメカ
ニズムに関係しており、本実施例によれば、サブCPU
の動作は、マスターCPUに対して音源処理を要求する
タイマインタラブドを合図として開始し、その結果、マ
スターCPUとサブCPUにおいて音標処理が並行に実
行される。サブCPUの動作(音源処理)が終了すると
その終了信号によってサブCPUはリセット状態(停止
状態)に移行するとともにその終了信号がマスターCP
Uに伝えられる(第8図、第16図)、この特徴により
、マスターCPUはサブCPUの動作期間を有効に管理
、把握できる。更に、この特徴により、高速処理が要求
される音源処理タスク(楽音信号のデジタルサンプルを
生成する仕事)を効率よく実行できる。
本実施例の第3の特徴はメインプログラムからタイマイ
ンタラブド処理ルーチンに渡すデータの更新(転送)問
題に関係する。インタラブド処理ルーチンの実行の結果
、インタラブド処理ルーチンにおいて参照すべき複数の
データ(例えばエンベロープ目標値、エンベロープレー
トのような工ンベロープパラメータ)を更新する必要が
生じる。この複数のデータの更新の実行命令はメインプ
ログラム中に含まれる。即ち、この複数のデータはメイ
ンプログラムが更新し、タイマインタラブド処理ルーチ
ンが#照するデータである。このような複数のデータは
、全体として意味ある情報を構成するので、メインプロ
グラムにおいて複数のデータのすべてが更新されないう
ちにインタラブド処理ルーチンに制御が移ってはならな
い。これを防止するため、第1の方式としてデータ更新
が完了するまでインタラブドをマスクしてインタラブド
s理ルーチンへの移行を禁止する方式が開示され(第1
6図、第17図)、第2の方式として、複数のデータの
更新(転送)をメインプログラム中の単一命令で実行す
る方式が開示される(第18図〜第21図)、この結果
、インタラブド処理ルーチンの処理結果(楽音信号のサ
ンプル)が正しい値を示し、正しい動作が保証される。
本実施例の第4の特徴はマスターCPUからスレーブC
PUに対するデータアクセス問題に関する。従来の複数
CPUマイクロコンピュータシステムでは、一般に、C
PU間のデータ転送は一連のシーケンスを通して行われ
、相当の時間を要する0代表的には、データのアクセス
を要求するCPUからアクセスが要求詐れるCPUに対
し、アクセス要求信号を送る。このアクセス要求信号に
対しアクセスが要求されるCPUは実行中のオペレーシ
ョンを完了した後に承認(アクノリッジ)信号をCPU
に渡して停止状態となる。アクセス要求信号送信後、承
認信号が受信されるまでの間、要求側のCPUは待ち状
態になる。承認信号を受けて要求側のCPUは被要求側
のCPUの内部メモリに対し、実際のデータアクセスを
実行する。このように従来のCPU間データアクセス方
式は時間を要するので高速処理が望まれる電子楽器のよ
うなアプリケーションには適さない、これを解決するた
め1本実施例では、第1のデータアクセス方式として、
上記第2の特徴を利用してサブCPUが停止状態にある
ときにマスターCPUがサブCPUの内部メモリ(20
6)に対しデータをリード/ライト(アクセス)する停
止モード制御方式が開示され(第22図)、第2のデー
タアクセス方式として待ち状態なしにマスターCPUが
サブCPUをデータアクセスする(サブCPUはデータ
アクセス中のみ強制的に停止状態にされる)瞬時データ
アクセス方式とが開示される(第23図〜第25図)。
本実施例の第5の特徴はデータ源としてのCPU外部メ
モリを複数のCPUで共用する場合における複数CPU
からのアクセスの競合(衝突)問題に関する0本実施例
によれば後述するメモリ装置競合回避回路(50)を設
けることにより、共用メモリに対するアクセスの競合を
解消し、一定の待ち時間の後、共用メモリからのデータ
を得られるようにしている。
本実施例のt!I46の特徴1士データ変換処理(シフ
ト、反転、一部取り出し等)の高速化に関する。
従来においては、上述したCPU外部メモリのようなデ
ータメモリ内のデータから、CPU内部メモリ(演算用
メモリ)上に変換されたデータを得るために、転送(リ
ートアクセス)命令によりデータメモリのデータを演算
用メモリに移し、しかる後、変換命令により、@算用メ
モリのデータをALUを介して変換する。所望のデータ
変換を行うために複数の変換命令を実行する必要もしば
しば生じる。このように、従来においてはデータ変換の
処理に時間がかかるという問題があり、特に音源処理の
ように高速処理が要求されるアプリケーションにおいて
は大きな問題となる。これを解決するため、この実施例
によれば、データやアドレス変換ハードウェア(60,
70)を設は特殊な転送命令(変換付転送命令)を実行
することにより、その命令に応答するデータ・アドレス
変換ハードウェアを介して所望のデータ変換が施された
データが演算用メモリ(106,206)に取り込まれ
るようにしている。したがって、所望の変換データを得
るのに、複数の命令を実行するのではなく単一の命令を
実行すればよく処理の高速化が図れる。
く全体構成(第1図)〉 第1図は電子楽器の処理装置として構成した本実施例の
全体構成を示すブロック図である。本システムは2つの
中央演算処理装置(一方をMCPUIO1CPUl01
200で示す)を有する。
各CPUl0.20はプログラムを内蔵しており、それ
ぞれのプログラムに従って動作する。MCPUIOは音
源処理(第5図)以外にシステム全体の制御、例えば入
力ボート118、出力ポート120に接続される入力装
M(例えば鍵盤、機能キー等)からの入力情報の処理、
デジタル楽音信号をアナログ楽音信号に変換するDAC
100の制御等を行う(第4図)、これに対し、SCP
U20は音源処理に専用される(第6図)。
90は音源制御データ、波形データ等のデータ源として
のメモリである。データメモリ90はここでは、LSI
チップ(第1図の残りのデバイスを搭載している)に外
付けされたROMで構成されている。集積度が高ければ
、単一のLSIチップ上にデータメモリ90を内部メモ
リとして形成可能である。外部メモリ90はMCPUI
OとSCPU20に共用される。MCPUIOからのア
ドレス情報はMCPUIOに結合するアドレスバスMA
、外部メモリアトレスラッチ30のMCPU外部メモリ
アドレスラッチ30M、アドレス切り換え回路40、ア
ドレス変換回路60を介して外部データメモリ90のア
ドレス入力に加えられる。一方、SCPU20からのア
ドレス情報はSCPU20に結合するアドレス/ヘスS
A、SCPU外部メモリアドレスラッチ3OS、アドレ
ス切り換え回路40、アドレス変換回路60を通して外
部データメモリ90のアドレス入力に加えられる。外部
データメモリ90からMCPUIOへのデータ伝送径路
は外部データメモリ90のデータ出力、データ変換回路
70.外部メモリデークラッチ80のMCPU外部メモ
リデータラッチ80M、MCPUloに結合するデータ
バスMDによって構成される。これに対し、外部データ
メモリ90からSCPU20へのデータ伝送径路は外部
データメモリ90のデータ出力、データ変換回路70.
SCPU外部メモリデータラッチ8゜S、SCPU20
に結合するデータバスSDによって構成される。
メモリ装置競合回避回路50はMCPUIOとSCPU
20の両CPUによる外部メモリ90のアクセスを制御
し、その競合を回避するものである。メモリ装置競合回
避回路50はMCPUIOからの外部メモリアクセスを
要求する信号romaとSCPUからの外部メモリアク
セスを要求する信号romaの各々に応答してアドレス
切り換え回路40を制御してアドレス切り換え回路40
にMCPUIOからのアドレスとSCPU20からのア
ドレスのいずれかを外部メモリ90へのアドレスとして
選択させる。このためにメモリ装置競合回避回路50か
らの選択信号MSELによりアドレス切り換え回路40
は選択動作を行う、外部メモリ90へのアドレスが確定
するとメモリ装置競合回避回路50は外部メモリ90に
対するチップ選択信号CEと出力イネーブル信号OEを
アクティブにする。これにより外部メモリ90からデー
タが出力され、データ変換回路70を通してそのデータ
が外部メモリランチ800入カバスに現われる。ここで
、メモリ装M競合回避回路50はデータアクセスを要求
したCPUにデータを送るためにMCPU外部メモリデ
ータラッチ80M、SCPU外部メモリデータラッチ8
oSのいずれかを作動してデータをラッチさせる。この
ためにMCPU外部メモリデータラ7チ80Mはメモリ
装置競合回避回路50からのラッチ信号MDLによりラ
ッチ動作し、SCPU外部メモリデータラッチ80Sは
メモリ装置競合回避回路50からのラッチ信号SDLに
よりラッチ動作するようになっている。
アドレス変換回路60とデータ変換回路70は外部デー
タメモリ90のデータを変換したデータがCPUl01
20に取り込まれるようにするための変換デバイスであ
る。アドレス変換回路60はアドレス切り換え回路40
を通ったアドレス、即ち、CP U (MCP U i
 OかSCPU20)から出力ごれたアドレス(論理ア
ドレス)を選択的に変更して外部データメモリ90に実
際に入力されるアドレスを形成するものであり、データ
変換回路70は外部データメモリ90から出力されたデ
ータを選択的に変更してCPU(MCPUIOかSCP
U20)に実際に入力yれるデータを形成するものであ
る。各変換回路60,70における変換の態様を指定す
るために、制御信号が使用される。各CPUl0.20
において、外部データメモリ90に対するデータアクセ
スは転送命令を実行することで行われる。転送命令に基
づいてCPUで生成される制御信号をMHI、MR2、
MR3(MCPUIOの場合)、SR1、SR2、SR
3(SCPU20の場合)で示しである。これらの信号
は外部メモリアドレスラッチ30、アドレス切り換え回
路40を通った後、信号R1,R2,R3と呼ばれる(
MRi→LMRi→R5またはSRj+LSR3+R4
)、変換の態様を指定するため、制御信号R1,R2が
アドレス変換回路60に入力される。更に、データ変換
回路70における変換の態様を特定するため、制御信号
R1,R2,R3とアドレス変換回路60からのアドレ
スビット12の信号AI2と7トレスビツ)15の信号
A15がデータ変換回路70に加えられる。アドレス変
換回路60とデータ変換回路70の詳細については後述
する。
MCPUIOとSCPU20との間のインタフェースを
定めるため、両CPU間で複数の信号が伝送される。信
号AはMCPU 10からSCPU20に送られるSC
PU20の処理開始を表わす信号、信号BはSCPU2
0からMCPUIOに送られるSCPU20の処理終了
を表わす信号、MaはMCPUIOからSCPU20に
送られるSCPU20の内部メモリ(第3図の206)
のアドレス情報、信号CはMCPUIOからSCPU2
0に送られるSCPU20の内部メモリの読み書き制御
信号、DinはSCPU20からMCPUIOに送られ
るSCPU20の内部メモリからの読出しデータ、D 
0LITはMCPUIOからSCPU20に送られるS
CPU20の内部メモリへの書き込みデータを表わす、
CPU間イフィンタフエース細については後述する。
上述したように音源処理によりMCPUIOとSCPU
20とでデジタル楽音信号が生成されル、生成結果+1
Mc PU l OカI”)、右DAC100Rと左D
AC100Lとから成るデジタルアナログ変換器(DA
C)Zooに送られ、アナログ楽音信号に変換されて外
部に出力される。
<MCPUとSCPUの構成(第2、第3図)〉第2図
にMCPUIOの内部構造を示し、第3図にSCPU2
0の内部構造を示す。
第2図において制御用ROM102には楽器の各種制御
入力を処理するメインプログラムと楽音を生成するイン
タラブド処理プログラムが記憶されており、ROMアド
レス制御部114からROMアドレスデコーダ104を
介して指定されたアドレスにあるプログラム語(命令)
をインストラクシ□ン出力ラッチ102aを介して順次
出力していく、なお、具体的実施例では、プログラム語
長は28ビツトであり、プログラム語の一部が次に読み
出されるべきプログラム語を記憶するアドレスの下位部
(ページ内アドレス)としてROMアドレス制御部11
4に入力されるネタストアドレス方式となっているが、
代りにプログラムカウンタ方式を使用してもよい、RA
Mアドレス制御部114は制御用ROM102からの命
令のオペランドがレジスタを指定している場合に、RA
M106内の対応するレジスタのアドレスを指定する。
RAM106は演算用メモリを構成するレジスタ群であ
り、汎用演算、フラグ演算、楽音の演算等に使用される
。ALU部(加減算器及び論理演算部)108と乗算器
110は制御用ROMIO2からの命令が演算命令のと
きに用いられる。
特に乗算器110は楽音波形のH算に使用しており、そ
のための最適化として第1と第2のデータ入力(例えば
16ビツトデータ)を乗算して入力と同じ長さ(16ビ
ツト)のデータを出力するようになっている。上記RA
M106、加減算器108、乗算器110により、演算
回路が構成される。オペレーション制御回路112は制
御用ROM2O3からの命令のオペコードを解読し、指
示されるオペレーションを実行するために1回路の各部
に制御信号(全体をCNTRで示す)を送る。また条件
付分岐命令の実行の際にオペレーション制御回路112
はALUfW108からのステータス信号S(例えばオ
ーバーフロー信号、ゼロフラグ信号等)により分岐条件
成立を検出してROMアドレス制御部114を介してア
ドレスを分岐先のアドレスにジャンプさせる。
所定時間ごとに制御用ROM102の楽音生成プログラ
ムを実行するため、この実施例ではタイマインタラブド
を採用している。すなわち、タイマ(ハードウェアカウ
ンタ)を有するインタラブド発生部116により、一定
時間ごとにROMアドレス制御部114に制御信号IN
T(割込要求信号)を送り、この信号により、ROMア
ドレス制御部114は次に行うメインプログラムの命令
のアドレスを退避(保持)し、楽音の生成が行われるイ
ンタラブド処理プログラム(サブルーチン)の先頭アド
レスを代りにセットする。これにより、インタラブド処
理プログラムが開始される。インタラブド処理プログラ
ムの最後にはリターン命令があるので、このリターン命
令がオペレーション制御回路112で解読された時点で
、ROMアドレス制御部114は退避してあったアドレ
スを再度セットし、メインプログラムに復帰する。更に
、インタラブド発生部116からの制御信号INTはD
AC100における楽音信号のデジタル/アナログ変換
サンプリング速度を定めるためにDAC100に供給さ
れる。なお、インタラブド発生部116は図の上ではM
CPUIOの内部要素として描いであるが、MCPUI
Oに対して現在行っている仕事を停止させ特別の処理を
要求するものであり、論理的にはMCPUIOの外部要
素(周辺装置)である。
クロック発生回路136はマスタークロック、発生回路
(図示せず)からの2相のマスタークロックCKIとC
K2を受け、オペレーション制御回路112を初めとす
る回路の各部に加える種々のタイミング信号(TI、T
2.T3.TlCK1、T2CK2、T3CK3等)を
発生する。
第2図の残りの要素はMCPU20の外部装置とのイン
タフェースに係っている。1221f外部メモリアクセ
ス用アドレスバスMA (第1図)にMCPU内部パス
を接続するためのパスインタフェースとしてのゲートを
表わし、124は外部メモリデータバスMDにMCPU
内部バスを接続するためのゲートを表わし、126はD
ACデータ転送バスにMCPU内部パスを接続するため
のゲートを表わす、また、入カポ−)118と出カポ−
)120はMCPU内部バスを外部の入力装置に結合す
るためのインタフェースである。128ハs c p 
U内部RAMアドレス指定バスにMCPU内部パスを接
続するためのゲート、130はSCPU内部RAM書込
データバスにMCPU内部バスを接続するためのゲート
、132はSCPU内部RAM読出データバスをMCP
U内部バスに接続するためのゲートを表わす。
SCPUリセット制御部134はSCPU20の動作期
間を管理するためのデバイスである。この実施例に従い
SCPUリセット制御部134はインタラブド発生部1
16からのインタラブド信号INTに応答して、SCP
U20の処理開始を示す信号Aを発生する。この信号A
はSCPU20のROMアドレス制御部214(第3図
)に送られ、これによりROMアドレス制御部214の
アドレス更新動作が開始し、SCPU20の動作(音源
処理を含む)が開始する。SCPU20の動作が終了す
るとSCPU20のオペレーション制御回路212から
処理終了を示す信号Bが発生し、この信号BがSCPU
リセット制御部134に送られる。これに対し、SCP
Uリセット制御部134はSCPU20の動作を停止す
るために信号Aを反転し、これによりSCPU20のR
OMアドレス制御部214の動作を停止させる、ととも
に、SCPU20が停止中であることを表わすSCPU
状態フラグ信号をオペレーション制御回路112に送る
。オペレーション制御回路112は制御用ROM102
からのSCPU状態の検査命令の実行時に、このSCP
U状態フラグ信号を読むことにより、SCPU20の状
態を検出できる。
第3図のSCPU20のブロック図において、要素20
2.202a、204,205.2゜6.208.21
2.214.222.224゜236はそれぞれ、第2
図のMCPUIOのブロー、り因における要素102.
102a、104.105.106,108.110.
112.114.122.124.136に対応する要
素である。ただし、SCPU20の制御用ROM202
には基本的に音源処理のためのプログラムのみが記憶さ
れており、SCPU20を音源処理専用の処理装置とし
て機能させている。
240はSCPU20のy!算用メモリとしてのRAM
206へ入力するデータをMCPUIOからのデータ(
MCPUIOからゲー)130、データバスD out
 を通ったデータ)とSCPU20の生成(演算)した
データ(ALU部208または乗算器210からのデー
タバスDB上のデータ)とから選択するRAMデータイ
ン切り換え部である。RAMデータイン切り換え部24
0は信号Aによってその選択モードが制御され、信号A
が“SCPU20動作中”を表わしているときにはSC
PU20で演算したデータを選択し、信号Aが“SCP
U20停止中”を表わしていると息にはMCPUIOか
らのデータを選択する。
また、RAMアドレス制御部205も、信号Aによって
そのモードが制御され、信号Aが″SCPU20動作中
”を表わしているときには制御用ROMのインストラク
ション出力ラッチ202aからの/ヘスSA上の情報を
RAM206のアドレスとして選択し、信号Aが“SC
PU20停止中”を表わしているときにはMCPUIO
からバスゲー)128(信号Aにより開いている)を経
てパスMa上にあるMCPUIOからの情報をRAM2
06のアドレスとして選択する。同様に、ライト信号切
り換え部242も信号Aによってそのモードが制御され
、信号Aが″SCPU20動作中”を表わしているとき
にはSCPU20のオペレーション制御回路212から
のRAMリードライト信号を選択してRAM206のリ
ードライト入力R/Wに結合し、信号Aが″SCPU2
0停止中”を表わしているとさにはSCPU20ではな
くMCPUIOのオペレーション制御回路l12からの
SCPURAMリードライト信号を選択してRAM20
6のリードライト人力R/Wに結合する。
以下、本実施例の諸特徴を更に詳細に説明する。
く複数CPU音源機能(第1〜第7図、第9〜第11図
)〉 第4図はMCPUIOのメインプログラム(バックグラ
ンドプログラム)によるMCPUIOの動作を示すフロ
ーチャート、第5図はタイマインタラブド信号INTに
よって起動されるMCPUloのインタラブド処理ルー
チンによるMCPUloの動作を示すフローチャート、
第6図はタイマインタラブド信号INTによって起動さ
れるSCPU20のプログラムによるSCPU20の動
作を示すフローチャート、第7図はMCPUIOとSC
PU20のそれぞれが実行する音源処理のフローチャー
トである。
第1〜第3図に関して述べたように、本実施例の電子楽
器処理システムはMCPUIOとSCPU20とから成
る複数のCPUを備えており1両CPUが協働して電子
楽器のための処理を実行する。特にMCPUIOは、第
5図に示すようなインタラブド処理ルーチンにより音源
処理を行いSCPU20は第6図に示すようなプログラ
ムにより音源処理を行う、更にMCPUIOは第4図に
示すメインプログラムにより、システム全体の制御のた
めの種々のタスクを実行する。
第4図のメインプログラムのフローにおいて、4−1は
電源投入時にシステムを初期化する処理であり、MCP
UloはRAM106、RAM206のクリアや、リズ
ムテンポ等の初期値の設定等を行う、4−2でMCPU
IOは出力ポート120からキー走査のための信号を出
力し、鍵盤、機能スイッチ等の入力装置の状態な入カポ
−)1l8から取り込むことにより、機能キー、ill
主キー状態をRAM106のキーバッファエリアに記憶
する。4−3では4−2で得た機能キーの新しい状態と
前回の状態とから、状態の変化した機能キーを識別し、
指示される機能の実行を行う(例えば、楽音番号のセッ
ト、エンベロープ番号のセット、リズム番号のセット等
)、4−4では4−2で得た鍵盤の最新の状態と前回の
状態とから、変化した鍵(押鍵、離鍵)を識別する0次
の4−5で4−4の処理結果から、発音処理4−9のた
めのキーアサイン処理を行う、4−6では機能キーでデ
モ演奏キーが押鍵されたとき外部メモリ90から、デモ
演奏データ(シーケンサデータ)を順次読み出し、処理
することにより、発音処理4−9のためのキーアサイン
処理等を行う。
4−7ではリズムスタートキーが押鍵されたとき外部メ
モリ90からリズムデータを順次読み出し、発音処理4
−9のためのキーアサイン処理を行う、フロー−周タイ
マ処理4−8では、メインフローで必要なイベントのタ
イミングを知るために、フロー−同時間(これは、フロ
ーを一周する間に実行されたタイマインタラブドの回数
を計数することで得られる。この計数処理は後述のイン
タラブドタイマ処理5〜2で行われる。)を基に演算を
行い、エンベロープ用タイマ(エンペロープの演算周期
)やリズム用の基準値を得る0発音処理4−9では4−
5.4−6.4−7でセットされたデータから、実際に
楽音を発音させるための各種演算を行い、結果をRAM
106、RAM206内の音源処理レジスタ(第11図
)にセットする。4−10は次のメインフローのパスの
ための準備処理であり、今回のパスで得た押鍵状態への
変化を示すNEW  ON状態をON中にしたり、離鍵
状態への変化を示すNEW  OFF状態をOFF中に
変える等の処理を行う。
インタラブド発生部116からインタラブド信号INT
が発生すると、MCPUIOは実行中のメインプログラ
ムを中断し、第5図に示すインタラブド処理ルーチンを
実行し、SCPU20は第6図に示すプログラムを実行
する。ここにMCPUIOは第5図のフローにおいて楽
音信号を生成し、SCPU20は第6図のフローにおい
て楽音信号を生成するようになっている。
詳細に述べるとMCPUIOは5−1で各チャンネルに
対する楽音波形データを生成し、累算し、記憶する。従
来はこの処理を音源回路/\−ドウエアで行っていた0
次のインタラブド処理タイマ処理5−2でMCPUIO
はインタラブドが一定時間ごとにかかることを利用して
、フロー−周計時用のタイマレジスタ(RAM106内
)を通過の都度、プラス1する。5−3でMCPUIO
はSCPU20の音源処理6−1が終了しているかどう
かを検査し、終了していれば、5−4に進んで、SCP
U20で生成されたRAM206上の楽音波形データを
RAM106内に読み込む。
モして5−5でMCPUIOはMCPUIOの生成した
楽音波形データとSCPU20で生成した楽音波形デー
タをDACI OOに出力する。
音源処理5−1.6−1の詳細を第7図に示す0本例で
は、各CPU (MCPUIO,SCPU20)はそれ
ぞれ8チャンネル分の楽音波形データを生成可能であり
、システム全体として16チヤンネル分の楽音波形デー
タを生成可能としている。7−1で波形加算用RAM領
域(RAM106内、RAM206内)をクリアし、7
−2〜7−9で第1チヤンネルから第8チヤンネルまで
の各チャンネル音源処理を順次実行する。各チャンネル
音源処理の最後で、チャンネルの楽音波形値が波形加算
用RAM領域のデータに加算される。
次にチャンネル音源処理の例について第9図〜第11図
を参照して説明する。この例では、波形読み出しくPC
M)方式の楽音合成を採用している(他の楽音合成方式
、例えばFM合成も実現可能であり、この発明は特定の
楽音合成方式には制限されない)、チャンネル音源処理
は大きくわけて、エンベロープ処理(9−1〜9−7)
と、エンベロープ付加を含む波形処理(9−8〜9−2
1)とから成る。各CPU (MCPUIO,SCPU
20)はチャンネル音源処理を実行する際に、そのチャ
ンネルに対する音源処理レジスタ群、即ち第11図に示
すように、エンベロープΔχ用タイマー、目標エンベロ
ーフ: エンベロープ△X、加減フラグ付エンベロープ
Δy、現在エンベロープ、アドレス加算値、ループアド
レス エンドアドレス、スタートアドレス兼現在アドレ
スを参照し、所望のレジスタを更新する。エンベロープ
は振幅変調のために基本波形に付加すべきもので、全体
としていくつかのセグメント〔ステラフ〕から成ってい
る。エンベロープ△X用タイマーと目標エンベロープと
エンベロープΔXと加減フラグ付エンベロープ△yは現
在進行中のエンベロープセグメントを定義するエンベロ
ープパラメータであり、このエンベロープパラメータは
、MCPUIOのメインプログラム(第4図)の発音処
理4−9内において、エンベロープ値がセグメントの目
標値に到達の都度、更新される情報であり、インタラブ
ド処理ルーチン(第5図、第6図)ではこれらのエンベ
ローフパラメータはエンベロープΔχ用タイマーを除い
て単に参照されるだけである。エンベローフΔXはエン
ベローフ’(7)演算周期を表わし、目標エンベロープ
は現セグメントにおけるエンベロープの目標値を表わし
、加減フラグ付エンベロープ△yは演算周期ごとのエン
ベローフの変化分を表わし、現在エンベロープは現在の
エンベロープ値を表わす、アドレス加算値、ループアド
レス、エンドアドレス及びスタートアドレス兼現在アド
レスは外部メモリ90に置かれる基本波形に対するアド
レス情報であり、スタートアドレスは基本波形メモリ(
外部メモリ90内)のスタートアドレス、ループアドレ
スは基本波形を繰り返し読み出す場合の戻り先のアドレ
ス(第10図ではスタートアドレスと同一)、エンドア
ドレスは基本波形のエンドアドレスを表わし、現在アド
レスは基本波形の現在の位相を表わすアドレスであり、
その整数部が、基本波形メモリに現実に存在する記憶場
所を表わし、その小数部が、この記憶場所からのずれを
表わし、アドレス加算値はタイマインタラブド処理ルー
チンの時間間隔ごとに現在アドレスに加算されるべき値
であり、生成する楽音のピッチに正比例する。
詳細に述べると、9−1でエンベロープのy4算周期Δ
Xと比較するためのタイマレジスタをインタラブドごと
にインクリメントし、9−2でΔXと一致したとき9−
3でエンベロープ変位分のデータΔyの加減算フラグ(
符号ビット)をテストしてエンベロープが上昇中か下降
中かを判別し、9−4.9−5でそれぞれ現在エンベロ
ープノ減算または加算を行う、9−6で現在エンベロー
プが目標エンベロープ値に達したかどうかをチエツクし
、達しておれば、現在エンベロープに目標レベルをセッ
トする。これによりメインプログラムの発音処理4−9
で次のエンベロープステップのデータがセットされるこ
とになる。また発音処理4−9でゼロの現在エンベロー
プを読んだときには発音の終了として処理される。
次に、波形処理9−8〜9−21について述べる。波形
処理では、現在アドレスの整数部を使って基本波形メモ
リから隣り合う2つアドレスの波形データを読み出し、
(整数部子小数部)で示される現在アドレスに対して想
定される波形値を補間で求めている。補間が必要な理由
は、タイマインタラブドによる波形サンプリング周期が
一定であり、アドレスの加算値(ピッチデータ)が楽器
へのε用上、ある音域にわたるためである(音階音しか
出力しない楽器で音階音ごとに波形データを用意すれば
補間の必要はないが許容できない記憶容量の増大となる
)、補間による音色の劣化、歪みは高音域の方が著しい
ため、原音の記録サンプリング周期より高速の周期で原
音を再生するのが好ましい、この実施例では原音(4−
4)再生の周期を2倍にしている(第10図)、シたが
って、アドレス加算値が0.5のとき、A4の音が得ら
れるようになっている。この場合、A#4ではアドレス
加算値は0.529となり、A3のとき、lとなる。こ
れらのアドレス加算値はピッチデータとして制御データ
兼波形外部メモリ90内に記憶されており、押鍵時には
発音処理4−9において、鍵に対応するピッチデータと
選択されている音色の波形スタートアドレス、波形エン
ドアトレス及び波形ループアドレスがRAM106また
はRAM206の対応するレジスタ、すなわち、アドレ
ス加算値レジスタ、スタートアドレス兼現在アドレスレ
ジスタ、エンドアドレスレジスタ、ループアドレスレジ
スタにセットされる。
参考までに、第1O図に時間に対する補間波形データを
示す0図中、白丸は基本波形メモリの記憶場所にある波
形データ値、X印は補間値を含む出力サンプルを示して
いる。
補間の方式はいろいろあるが、ここでは直線補間を採用
している。詳細に述べると、まず、9−8で現在アドレ
スにアドレス加算値を加算して新しい現在アドレスを得
る。9−9で現在アドレスとエンドアドレスを比較し、
現在アドレス〉エンドアドレスならば、9−10.9−
11により、現在アドレスくエンドアドレスのときは9
−12により、物理上(番地上)または論理上(動作上
)の次のアドレスを計算し、9−14でその整数部によ
り基本波形メモリをアクセスして次回波形データを得る
。ループアドレスは動作上エンドアドレスの次のアドレ
スである。すなわち、第10図の場合1図示の波形は繰
り返し読み出される。したがって、現在アドレス=エン
ドアドレスのときは次のアドレスとしてループアドレス
の波形データを読み出す(9−13)、9−15.91
6により、現在アドレスの整数部で基本波形をアクセス
して今回の波形データを読み出す0次に、9−17で次
回波形値から今回波形値を減算し、9−18でその差に
現在アドレスの小数部を乗算し、その結果を9−19で
今回の波形値に加えることにより、波形の直線補間値を
求める。この直線補間したデータに現在エンベロープ値
を乗算してチャンネルの楽音データ値を得(9−20)
、それを波形加算用レジスタの内容に加えて楽音データ
を累算する(9−21)、このレジスタに累算されたデ
ジタル楽音データがタイマインタラブド処理ルーチン(
第5図)の5−5でDAClooに送出される。これに
関連し、第1図ではDAC100はステレオ出力を得る
べく右DAC100Rと左DAC100Lから成ってい
る。
コノ場合、MCPUIO1SCPU20(7)Jl[す
る音源チャンネルの夫々を左右のDACのいずれに割り
当てるかを決めるようにするとよい、具体的には、各チ
ャンネル用の音源データとして内部RAM106.20
6上ニ、選択DAC指示指示メータたせ、また、2つの
波形加算用領域、即ち、左DAC用波形加算用領域と左
DAC用波形加算用領域を設ける。また、7−1に対応
するステップで左右のDAC用の各波形加算用領域をク
リアし、9−20の処理の後、処理チャンネルに割り当
てているDACを選択DAC指示データから判別し、対
応する波形加算用領域に処理チャンネルの楽音波形デー
タを加算する。そして、MCPUIOのインタラブド処
理ルーチン(第5図)のステップ5−4に対応するステ
ップで、SCPU20の生成した左DAC用楽音波形デ
ータと右DAC用楽音波形データとをそれぞれMCPU
IOで生成した左DAC用楽音波形データと右DAC用
楽音波形データに加算し、加算結果である左DAC用と
右DAC用の楽音波形データを5−5に相当するステッ
プで、それぞれ左DAC100Lと右DAC100Rに
送出する。
このように、本実施例の電子楽器用処理装置はMCPU
IOとSCPU2oという複数(7)CPUを有し、各
CPUにおいて、内蔵されるプログラムに従って音源処
理を実行することがで♂る。なお実施例では1つのSC
PUを使用しているが、音源処理を行う複数のSCPU
を設けるようにしてもよい。
<S CPU動作開始−終了機能(第12〜第15図、
第2〜第6図、第8図)〉 本実施例によればMCPUIOはSCPU20の動作期
間を管理、把握する機能を有している。
この目的のため、 (イ)MCPUIOはタイマ会インタラブド発生部11
6からインタラブド信号が発生したときに、これを合図
としてSCPU20の動作を開始させ、MCPUIOの
オペレーション制御回路l12が参照するSCPU状態
フラグを“S CP U動作中”にセットする。
(C7)SCPU20は動作(音源処理)を完了したと
きに、これに応答して停止状態に移行し、MCPUIO
に動作完了信号を送り、MCPUIOのオペレーション
制御回路112が参照するSCPU状態フラグを“SC
PU停止中”にセットする。
第2図〜第6図を参照すると、MCPUIOはメインプ
ログラム(第4図)の実行中に、インタラブド発生部1
16(第2図)からインタラブド信号を受けると、RO
Mアドレス制御部114を介してメインプログラムを中
断し、楽音生成のために第5図に示すタイマインタラブ
ド処理ルーチンを実行する。更に、MCPUIOはイン
タラブド信号に対し、SCPUリセット制御部134を
介してSCPU20にSCPU動作開始信号Aを送り、
これを受けてSCPU20はROMアドレス制御部21
4を介して第6図に示す楽音生成のためのプログラムを
実行する(なお信号Aにより、パスゲート128、RA
Mアドレス制御部204、RAMデータイン切り換え部
240、ライト信号切り換え部242も、SCPU20
自身の動作のためにセットされる)、このプログラムの
終了に伴い、SCPU20はオペレーション制御回路2
12から動作終了信号Bを発生する。この信号BはSC
PUリセツト制創134に送られ、これを受けてSCP
Uリセット制御部134はSCPU20の動作を停止す
るために信号AとBを反転する0反転された信号Aを受
けてSCPU20のROMアドレス制御部214のアド
レス更新動作が停止し、SCPU20は停止する。また
信号Bは”S CPU停止中7を示す信号としてMCP
UIOのオペレーション制御回路112に与えられる。
MCPUIOのインタラブド処理ルーチン(第5図)の
5−3に示すSCPU状態検査命令を実行する際、MC
PUIOのオペレーション制御回路112はSCPU状
態フラグBを読む、フラグBが“SCPU停止中”を示
し、したがって、SCPU20での音源処理(第6図)
が完了しているときにMCPUIOは5−4に進んでS
CPU20の生成した楽音波形データを読み込む。MC
PUIOは第5図のインタラブド処理ルーチン終了時に
オペレーション制御回路112からROMアドレス制御
部114にメインプログラムへの復帰コマンド信号を4
えて、中断していたメインプログラムに制御を戻す。
第8図に、時間の流れに沿う本実施例の動作の流れを示
す、A−Fはメインプログラムの断片である。5A〜5
Fは第5図のMCPUインタラブド処理ルーチンを表わ
し、6A〜6Fは第6図のSCPUインタラブド処理ル
ーチンを表わす、図示のように、インタラブド信号IN
Tが発生すると、MC,PUloは実行中のプログラム
を中断し、インタラブド処理が各CPUl0120にお
いて開始し、音源の並行処理が実行される。
第12図に上述したSCPUの動作開始・終了機能を実
現する構成を詳細に示し、第13図〜第15図にその動
作のタイムチャートを示す、第13図のタイムチャート
において、CK1.CK2はMCPUIOとSCPU2
0におけるりa −、り発生回路136.236に入力
される2相のマスタークロックであり、このマスターク
ロー、りCK1、CK2からクロック発生回路136は
MCPUIO動作のための基本タイミングを与える3相
のりoツクT1、T2、T3を生成する。この3相クロ
ツクの繰り返し周期がマシンサイクル(最短の命令実行
時間)を定める。クロックTlCK1、T2CK2、T
3CK3はそれぞれ、TIとCK1.T2とCK2、T
3とCK3の論理積信号である。オペレーションラッチ
信号はMCPUloの制御用ROM102のインストラ
クション出力ラッチ102aにROM102からのイン
ストラクションをラッチさせるための信号である。
第13図には図示しないが、SCPU20のクロック回
路236も同様のクロック信号を生成する(第3図、第
25図参照)、なお、MCPUIOとSCPU20に共
通のクロック発生回路を使用してもよい。
第12図において、点線16の右側はSCPU20であ
り左側はMCPUIOである。左側の要素のうち、ラッ
チL1.ラー2チL2、ゲート1142〜1154はM
CPUIO(第2図)のROMアドレス制御部114に
含まれる回路要素である。ラッチL1にはMCPUIO
の実行すべき次の命令(7)ROM1027ドlzス情
報AN (ROM102からの現命令に含まれる情″報
)がクロックTICKIでラッチされる。メインプログ
ラム(第4図)の実行中、ラッチLlの出力は次アドレ
スBNとしてMCPUIOのROMアドレスデコーダ1
04に入力される。即ち、ラッチLlの出力はインバー
タ1144.3状態インバータゲート1146(イネー
ブルされている)を通ってROMアドレスデコーダ10
4へのアドレス入力BNとなる。ここでインタラブド発
生部116からインタラブド信号INTが発生すると、
この信号INTを受けるORゲート1154から、イン
バータ1148を介してラッチL1の出力側にある3状
態イン八−タゲー)1146をオフ(ハイインピーダン
ス)にする信号が加えられ1代りに、ORゲート115
4からの信号により、割込入ロ/戻先アドレス選択ゲー
ト1150の出力側にある3状態インバータゲート11
52がゲート1150の出力をROMアドレスデコーダ
104のアドレス入力BNに通す、″lI4込入ロ/戻
先アドレス選択ゲート1150はインタラブド信号IN
TとラッチL2からの出力信号を受けるNORゲ−4群
で構成され、“H″のインタラブド信号工NT発生時に
、インタラブド処理ルーチン(第5図)の入口(エント
リポイント)を表わすオール“0”の信号を出力し、こ
の信号は3状態インバータゲー)1152で反転されて
、オール“1″の信号BNとしてMCPUのROMアド
レスデコーダ104に入力される。そして次のオペレー
シゴンラッチ信号により、制御用ROM102からイン
ストラクション出力ラッチ102aにインタラブド処理
ルーチンの最初の命令がフェッチされる0以上により、
MCPUIOの制御がインタラブド処理ルーチンに移る
更に、インタラブド発生部116からのインタラブド信
号rNTはクロックT2CK2のタイミングでANDゲ
ート1142を通り、ラッチ信号としてラッチL2を動
作させる。これにより、ラッチL2はパスAN上にある
メインプログラムの次命令のアドレスをラッチ(退aり
シてメインプログラムを中断させる。
更にインタラブド発生部116からのインタラブド信号
INTはSCPUリセット制御部134に供給される。
SCPUリセット制御部134は図示のように結合され
たDフリップフロップ1342、NANDゲート134
4、R−Sフリップフロップ1346から成る。メイン
プログラムの実行中、R−Sフリップフロップ1346
はリセット状態にある(Q=“L”)、なお、図示しな
いがR−Sフリップフロップ1346はシステムのパワ
ーオン時にリセット状態に初期化される。
インタラブド信号INTは、クロックT2CK1のタイ
ミングでDフリップフロップ1342に取り込まれ、次
のクロックTICKIのタイミングでNANDゲート1
344から反転されて出力され、R−Sフリップフロッ
プ1346をセットする。この結果、R−Sフリップフ
ロップ1346のQ出力、即ち信号Aが“H”から“L
”に切り換え、Q出力、即ちSCPU状態フラグが“L
” (SCPUCPU停水中)から“H” (SCPU
動作中を示す)に変化する。信号Aは、SCPU20に
おける次命令のアドレスSANをラッチするためのラッ
チL3にリセット解除信号(ラッチL3のイネーブル信
号)として入力される。この結果、ラッチL3は次のク
ロックTlCK1のタイミングでパスSANに乗ってい
るSCPUプログラム(第6図)の最初の命令のアドレ
スをSBNとしてSCPU20のROMアドレスデコー
ダ204に入力する。このようにして、インタラブド発
生部116からのインタラブド信号INTに応答してS
CPU20の動作が開始し、第6図に示す音源処理が実
行される。
SCPU20が音源処理の最後の命令を実行する際、S
CPU20のオペレーション制御回路l12の内部で動
作終了信号(復帰コマンド信号)SRTが発生する。こ
の信号SRTはDフリップフロップ2122にクロック
72CK 1のタイミングで取り込まれた後、次のTI
CKIのタイミング(次のダミー命令のラッチタイミン
グ)で動作するNANDゲート2124で反転ξれ、ロ
ーパルスの動作終了信号BとしてSCPUリセット制御
部134のR−Sフリップフロップ1346をリセット
する。この結果、R−Sフリップフロップ1346のQ
出力、即ち、信号Aは“L”から“H”に切り換り、Q
出力、即ち、SCPU状態フラグはSCPU動作中を示
す“H”からSCPU20停止中を示すL″′に切り換
る。“H”レベルの信号ACリセット信号)により、ラ
ッチL3の動作は禁止され、ラッチL3出力、つまり、
アドレスデコーダ204の入力はダミー命令の(Nor
命令)のアドレスに固定される。このときラッチL3の
入力バスSANにはSCPU音淵処理プログラム(第6
図)の最初の命令のアドレス情報(Nor命令語に含ま
れる)が乗っている。
MCPUIOはインタラブド処理ルーチン(第5図)の
SCPU状態検査命令5−3の実行時にオペレーション
制御回路112を介してSCPU状態フラグのレベルを
検査し、SCPUの停止中、即ちSCPU20の音源処
理の完了を確認してから、SCPU20の処理結果であ
る楽音波形データをRAM206からRAM106に読
、”z取る(5−4)、これによりMCPUIOJよS
CPU20の正しい処理結果を効率よく得ることかでさ
る。
MCPUIOはインタラブド処理ルーチンの最後の命令
の実行時に、オペレーション制御回路112から復帰コ
マンド信号RTのパルスを発生する。この信号パルスR
TはORゲート1654インパータエ148を通って、
ラッチL1の出力側の7Fレスゲー)1146を一時的
にオフし、代りに、ラッチL2に結合する割込人ロ/戻
先アドレス選択ゲー)1150の出力側にあるアドレス
情報)1152を一時的に開く、この時点で、割込人ロ
/戻先アドレス選択ゲー)1150はラッチL2に退避
してあった中断されたメインプログラムの命令のアドレ
スを反転して通すインパタとして働き、このゲー)11
50の反転出力が信号パルスRTによりインバータとし
て働く3状態ゲー)1152において再度反転される。
この結果、MCPUIOのROMアドレスデコーダ10
4には中断されていたメインプログラムの命令のアドレ
スが入力され、次のオペレーションラッチ信号により、
制御用ROM102からインストラクション出力ラッチ
102aを介してその命令が取り出される。このように
して、MCPUlOの制御はメインプログラムに復帰す
る。
以上のように、本実施例の電子楽器処理装置は、MCP
UloによるSCPU20の動作期間の管理をSCPU
リセット制御部134のような簡単な管理インターフェ
ース構成を設けることで効率よく、確実に行うことがで
きる。
く複数データ転送〉 CPUを用いたある種のアプリケーションでは、CPU
はメインプログラム(F!lのプログラム)の実行にお
いて複数のデータを更新し、インタラブド処理ルーチン
(第2のプログラム)の実行において、その処理の目的
のためにこれら?II数のデータを参照する。これはメ
インプログラムからインタラブド処理ルーチンへデータ
を渡す問題である。このような複数のデータは、インタ
ラブド処理ルーチンによってメインプログラムが中断さ
れる前に、メインプログラムにおいて全てのデータを更
新しなければならない、メインプログラムが複数のデー
タの一部だけを更新した時点で中断されてインタラブド
処理ルーチンにCPUの制御が移ってしまうとインタラ
ブド処理ルーチンの処理結果は誤ったものになる。
本実施例の電子楽器処理装置の場合も、MCPUIOの
メインプログラム(第4図)からMCPUIOのタイマ
インタラブド処理ルーチン(第5図)(及び第6図に示
すSCPU20のタイマインタラブド処理ルーチン)に
渡す複数のデータがある。エンベロープΔX(エンベロ
ープ@算周M)、 加mフラク付エンベロープΔy(エ
ンベロ−プ変化分)目標エンベロープから成るエンへロ
ープパラメータはその例である。データ源である外部デ
ータメモリ90はエンベロープのセグメント(例えばア
タックセグメント、デイケイセグメント、サスティンセ
グメント等)ごとにエンベロープパラメータを記憶して
いる。MCPUIOのメインプログラムは発音処理4−
9において、押w1(ノートオン)あるいはインタラブ
ド処理ルーチンのチャンネル音源処理(第9図)内で検
出されたエンベロープの目標値への到達(9−6,9−
7参照)に応答して所定のセグメントについてのエンベ
ロープパラメータ(新しい目標エンベローフ、エンベロ
ーフΔx、加gフラク付エンヘロープ△y)を外部デー
タメモリ90から取り出してMCPU内部RAM106
(またはSCPU内部RAM206)の対応するチャン
ネル音源処理レジスタにセットすることによって複数の
データから成るエンベロープパラメータを更新する必要
がある。このような複数のデータはインタラブド発生部
116からのインタラブド信号INTによってメインプ
ログラムが中断される前に、メインプログラムにおいて
更新を完了させておかなければならない。
このような複数のデータ転送(更新)の問題を解決する
ために1本実施例では2つの解決手段を開示する。第1
の解決手段はデータ更新の間、インタラブドをマスクし
てメインプログラムのデータ更新命令群の実行が中断さ
れないようにするインタラブドマスク方式であり、第2
の解決手段は複数のデータ転送を一命令で実行する機能
を利用した一命令方式である。
インタラブドマスク方式(第16、第17、第2〜第7
図) この方式によれば、インタラブド発生部116からのイ
ンタラブドはメインプログラム、特に発音処理4−9に
おけるデータ更新命令群によって内部RAMのチャンネ
ル音源レジスタ群にデータをセットする間、マスクされ
て、MCPUIOの制御がメインプログラム(第4図)
からインタラブド処理ルーチン(第5図)に移るのが禁
止される。
第17図に複数のデータ転送を含むエンベロープ処理(
メインプログラムの発音処理4−9内にある)のフロー
を示し、第16図にインタラブドマスクに関連するハー
ドウェアを示す。
第17図においてMCPUIOは17−1で指定音源チ
ャンネルの現在エンベロープが目標エンベロープに到達
しているかどうかを調べる。到達すればMCPUIOは
17−2に進み、外部データメモリ90(第1図)から
、次のエンベロープセグメントに関するエンベロープパ
ラメータ、即ち、新しい目標エンベロープ、加減フラグ
付エンベロープΔy、エンベロープΔXを取り出し、内
部RAM106内の転送バッフγにセットする。
ここに転送バッファはデータ源とデータ目的地との間の
中間的な記憶部でありインタラブド処理ルーチン(第9
図)によって参照されないRAM領域であるので、この
時点でのインタラブドマスクは不要である。転送バッフ
ァを設けた理由はデータ源であるメモリ90がMCPU
IOとSCPU20によって共用される外部メモリであ
り、そのデータアクセス時間が内部RAM相互のデータ
転送時間より長くなること等による。ブロック172の
機能は外部データメモリ90から内部RAM100への
複数のデータ転送命令を順次実行することで処理される
転送バッファからチャンネル音源用レジスタ群(インタ
ラブド処理ルーチンにおいて参照される)へのデータ転
送はブロック17−4で実行される。このデータ転送中
にMCPUIOの制御がタイマインタラブド処理ルーチ
ン(第5図)に移行しないようにするため(あるいはS
CPU20の制御が第6図のプログラムに移行しないよ
うにするため)、MCPUIOはブロック17−4に先
立ってブロック17−3でインタラブドをマスクする命
令を実行する。このインタラブドマスク命令の実行中に
、MCPUIOのオペレーシゴン制御回路112からロ
ーアクティブのマスク信号MASKが発生する。このマ
スク信号MASKはインクラブド発生部116からのイ
ンタラブド信号INTをマスクして、インタラブド処理
ルーチン(第5図、第6図)への制御の移行を禁止する
ように作用する。この目的のため、第16図において、
インタラブド発生部116に結合するマスク解除特機部
150が設けられる。マスク解除特機部150は図示の
ように結合したR−Sフリップフロップ1502、AN
Dゲート1504、及びDフリップフロップ1506を
含む。
マスク信号MASKがマスク解除を示す“H”レベルの
とき、インタラブド発生部116からのインタラブド信
号INTにより、R−Sフリップフロップ1502がセ
ットされ、その出力がH″のMASKによりイネーブル
されているANDゲートを通って、Dフリップフロップ
1506にTICKIのタイミングで取り込まれ、この
Dフリップフロップ1506の出力が、実際のインタラ
ブド信号A−INTとしてMCPUIOのROMアドレ
ス制御部114に入力される。その結果、SCPU動作
開始・終了機能のところで述へたように、ROMアドレ
ス制御部114のゲート1152からROMアドレスデ
コーダ104にインタラブド処理ルーチン(第51ff
l)のエントリポイントのアドレスが入力されるととも
に、次のメインプログラム命令のアドレスがパスANか
らラッチL2に退避されて、MCPUIOの制御がイン
タラブド処理ルーチンに移行し、メインプログラムは中
断される。また、信号A−INTはSCPUリセット制
御部134に入力され、その結果、SCPU動作開始・
終了機能のところで述べたようにSCPU20のプログ
ラム(第7図)動作が開始する。Dフリップフロップ1
506からのHレベルの出力はR−Sフリップフo +
7プ1502をリセットし、その結果、次のTICKI
のタイミングでDフリップフロップ1506の出力(マ
スク解除特機部150の出力)はLレベルに切り換る。
これに対し、第17図の17−3に示すようにインタラ
ブドマスク命令の実行により、オペレーション制御回路
112からローアクティブのマスク信号MASKがマス
ク解除特機部150に入力される場合には、インタラブ
ド発生部116からのインタラブド信号はANDゲー)
1504によってマスクされる。その結果、マスク解除
特機部1504はマスク信号MASKがローアクティブ
の間、その出力A−INTを“L″′の割込禁止レベル
にし、ROMアドレス制御回路114の通常動作を継続
させ、MCPUIOに対するメインプログラムの制御を
続行させる。
したがって、ブロック17−4に示す転送命令群(及び
エンベロープΔχ用タイマーのクリア命令)の実行は、
実行の途中で、インタラブド発生fil16からインタ
ラブド信号INTが発生した場合にも中断されない、こ
れにより、インタラブド処理ルーチン(第5図、第6図
)は正しく更新サレf−xンベロープパラメータを参照
でき、正しい演算結果(楽音波形データ)を得ることが
できる。
しかる後、MCPUIOはブロック17−5に示すイン
タラブドマスク解除命令を実行する。この結果、オペレ
ーションM’11回路112からマスク解除待a部15
0に供給される信号MA S Kjまマスク解除を示す
“H″ルベル切り換る。複数のデータ転送を含むブロッ
ク17−4の実行中に、インタラブド発生部116から
インタラブド信号が発生したような場合には、マスク解
除待機fi150のR−Sフリップフロップ1502の
出力によって、このマスク解除命令の実行後にインタラ
ブドの要求が受は付けられ、上述したようにしてメイン
プログラムが中断され、インタラブド処理ルーチンに制
御が移行する。
一命令方式(第18〜第21図) この方式はメインプログラム(第4図)において複数の
データをインタラブド処理ルーチンの参照する内部RA
M領域にセットするために、ロング命令と呼ばれる複数
データー括転送のための単一命令を利用し、ロング命令
の実行が終了するまでインタラブド処理ルーチンにMC
PUIOの制御が移行しないようにしたものである。
単一の命令(ロング命令)で複数のデータ転送が可能な
CPUは例えば特公昭60−47612号に開示されて
おり、本実施例にこの技術が適用できる。特公昭60−
47612号によれば、ロング命令は連続するアドレス
にある複数のレジスタ間(例えばレジスタAO−A3を
レジスタBO〜B3)の転送に適用可能である(ここに
レジスタとはRAMの1記憶場所を意味し、A、BはR
AMのアドレス上位、即ち行アドレスを表わし、0.3
はRAMのアドレス下位、即ち列アドレスを表わす)、
制御用ROM(本実施例の要素102に対応する)から
のロング命令語にはソースレジスタの行アドレス(上の
例でいえばA)、ディスティネーションレジスタの行ア
ドレス(B)、最初のデータ転送に係るレジスタの列ア
ドレス(0)、最後のデータ転送に係るレジスタの列ア
ドレス(3)の情報が含まれる。RAMアドレス制御部
(本実施例の要素105に対応する)はロング命令の実
行に適するように構成され、列アドレスを最初の転送の
列アドレスから最後の転送の列アドレスまでデータ転送
の都度、lずつ更新するカウンタ(その出力がRAMの
列アドレス入力に順次加えられる)と、すべてのデータ
転送が完了したことを検出するためカウンタ出力と最後
のデータ転送の列アドレス値とを比較し、一致したとき
にロング命令実行完了信号を発生する一致回路とを含ん
でいる。
以下の説明において、本実施例の制御用ROM102の
メインプログラム内には上述したようなロング命令が含
まれるものとし、RAMアドレス制御部105.205
は上述したようにロング命令の実行を適用できるように
構成されているものとする。
第18図にロング命令の実行中、インタラブド信号IN
Tによるメインプログラムの中断を禁止する回路を含む
ハードウェアのブロック図を示し、第19図にロング命
令をエンベロープパラメータの転送に適用した場合のR
AMのメモリマツプを示し、第20図にロング命令(単
一転送命令)と複数の転送命令との動作の比較を示し、
第21図にロング命令を使用したエンベロープパラメー
タの転送に関連するフローチャートを示す。
第18図において、インタラブド発生部116に転送終
了特機部152が結合している。この回路152はロン
グ命令の実行中、インタラブド信号によるメインプログ
ラムの中断を禁止する。転送終了特機部152は図示の
ように結合されたR−Sフリップフロップ1522.A
NDゲート1524、Dフリップフロップ1526から
成りDフリー2プフロップ1526の出力(転送終了特
機部152の出力)が実際に作用するインタラブド信号
A−I NTとしてROMアドレス制御部214とSC
PUリセット制御部134に結合している。ANDゲー
)1524に入力される信号〜LONGが“L”の間は
、インタラブド発生部l16からインタラブド信号IN
Tが発生しても、Dフリップフロップ1526の出力は
“L″のままであり、ROMアドレス制御部214とS
CPUリセー、ト制御部134はインタラブド信号IN
Tの作用を受けない、ここに、信号〜LONGはロング
命令の実行中に“L”となる信号でありr:tン/f6
tt令の実行完了に伴ってRAMアドレス制御部104
の一致回路から発生するロング命令実行完了信号に応答
して“H”に復帰する。信号〜LONGのレベルが“H
”のと5には、インタラブド発生部116からのインタ
ラブド信号INTは転送終了特機部152を通ってRO
Mアドレス制御部214とSCPUリセット制御部13
4に作用し1MCPUl0の制御をメインプログラム(
第4図)からインタラブド処理ルーチン(第5図)に移
行させ、SCPU20のプログラム(第6図)動作を開
始させる。
エンベロープパラメータの更新に一命令方式を適用する
場合において、インタラブド処理ルーチン(第5図、第
6図)のチャンネル音源処理サブルーチン(第9図)が
参照し、メインプログラムのエンベロープ処理サブルー
チン(第21図)が設定(更新)するエンベロープパラ
メータはエンベロープΔχ用タイマー、新目標エンベロ
ープ、新エンヘロープΔX、新加減フラグ付エンヘロー
プ△yである0本実施例において、これらのエンベロー
プパラメータのデータ源は外部メモリ9゜(第1図)に
ある、エンベロープパラメータノ更新の際に(21−1
)、外部データメモリ9oから内部RAM106.20
6のチャンネル音源データ領域への直接の転送は望まし
くないので、外部データメモリ9oからのエンベロープ
パラメータはいったん内部RAM106内の転送用パシ
ファ領域に移しく2l−2)、次に、転送用バッファ領
域からチャンネル音源データ領域に移す(21−3)。
この転送用/へフファ領域からチャンネル音源データ領
域べのデータ転送処理21−3に上述したロング命令が
使用される。ロング命令を適用するために、転送用バッ
ファ領域はRAM上の連続した領域であることを必要と
し、同様にエンベロープパラメータのチャンネル音源デ
ータ領域も連続した領域であることを必要とする。この
例を第19図に示す、ここでは、エンベロープパラメー
タの転送用バッファ領域は、レジスタX4〜X7の連a
imにマフピングされエンベロープパラメータについて
の1チヤンネル音源データ領域はレジスタA4〜A7の
M統領域にマー2ピングされている。したがって、1チ
ヤンネルでエンベロープパラメータを更新する必要のあ
るときには、21−3で、レジスタx4〜x7をレジス
タA4〜A7に転送するロング命令を実行すればよい、
この命令が実行されている間は、上述したようにインタ
ラブド信号INTがインタラブド発生部116から発生
しても、転送終了特機部152のロング命令完了待機機
能により、ロング命令が終了するまではインタラブド信
号の作用がROMアドレス制御部114.SCPUリセ
ット制御部134に波及しない(第20図(B)参照)
、この結果、チャンネル音源データ領域のエンベロープ
パラメータが全て正しい更新値に変更された後にインタ
ラブド処理ルーチンが開始するので、その演算結果(楽
音波形データ)が正しい値を示し、誤りのない動作が保
証される。
これに対しもし、21−3に示す転送処理機能を複数の
転送命令(−命令ごとに1つのエンベロープパラメータ
を転送する)の実行によって果たそうとした場合には、
転送の途中で、例えば、第20図(A)に示すように転
送命令lの実行中にインタラブド信号INTが発生する
と次のマシンサイクルで転送命令2の代りにインタラブ
ド処理ルーチンの最初の命令が実行されてエンヘロープ
転送処理は途中で中断されてしまう、この結果、インタ
ラブド処理ルーチンの処理結果(楽音波形データ)は誤
った値となってしまう。
−命令方式による複数データの転送(更新)処理では1
7−3.17−5に示すようなインタラブドマスク命令
、インタラブド解除命令を実行する必要がなく、オーバ
ーヘッドなしの最短時間で、転送処理を実行することが
できる利点もある。
変形例として、第18図に示すような転送終了特機部1
52の代りに、ロング命令の実行中、制御用ROM10
2.202からの命令をフェッチするインストラクショ
ン出力ラッチ102aの動作を禁止する手段を使用して
もよい、即ち、制御用ROM102からラッチ102a
を介して与えられるロング命令語に含まれるモード信号
(命令がロングであることを示している)によって、イ
ンストラクション出力ラッチ102a、202aに加え
るオペレーションラッチ信号の発生を禁止し、ロング命
令の実行完了信号に応答して次のマシンサイクルでオペ
レーションラッチ信号を発生する回路をオペレーション
制御回路112内に設ければ、インタラブド信号INT
がロング命令の実行中に発生しても制御用ROM102
.202からインタラブド処理ルーチンの最初の命令語
はロング命令の実行が終了するまではインストラクショ
ン出力ラッチ102a、202aにフェッチされない(
したがって実行もされない)ので実施例と同様の効果が
得られる。
<MCPUからのSCPUアクセス機能〉本実施例の装
置はMCPUloからSCPU20の内部RAM206
にデータを高速にアクセス(リードまたはライト)する
機能を有している。
この課題は一般に複数のcpUrIllのデータアクセ
ス問題として把えられている。従来技術ではこの種のイ
ンターCPUデータアクセスに時間がかかる問題がある
。従来技術ではアクセスを要求するCPUからアクセス
を要求されるCPUに対し。
要求信号を与える。アクセスを要求されるCPUはこの
要求信号に対し、ただちに要求側CPUからのデータア
クセスを許可する承認信号を発生することはできず、実
行中のオペレーションが完了するまで承認信号の発生を
遅延させる。したがって、従来のインターCPUデータ
アクセス方式は高速処理が要求されるアプリケーション
における障害の1つとなっている。
本実施例では高速のインターCPUデータアクセスのた
めに2つの解決手段、即ち、SCPU停止モ一ド利用方
式と瞬時強制アクセス方式を開示する。
SCPU停止モ一ド利用方式(第22図、第2第3図) この方式は上述したSCPU動作開始Φ終了機能を利用
したものである。この機能によりSCPU20のプログ
ラム(第6図)動作はMCPUIOにおけるインタラブ
ド処理ルーチン(第5図)の開始と同時に開始し、MC
PUIOのインタラブド処理ルーチンが終了する前に終
了する。したがって、MCPUIOにおいてメインプロ
グラム(第4図)が動作している間はSCPU20は停
止モード(リセット状態)にある、第2図に示すように
停止モード中では、リセット制御部134からの信号A
が“SCPU停止中”を示す“H”レベルになる。この
信号Aにより、SCPU20(第3図)ではROMアド
レス制御部214の動作が停止し、RAMアドレス制御
部204はSCPU20の側御用ROM202からのR
AMアドレスバスSAではなく、MCPUloから/ヘ
スゲート128を介してRAMアドレスバスMaに結合
してMCPUIOからのSCPU内部RAM2O6の指
定アドレスを受けるように動作モードが設定され、RA
Mデータに切り換え部240はSCPU20のオペレー
ション結果(ALU部208出力または乗算器210出
力)を運ぶデータバスDBではな(MCPUIOからの
データを運ぶデータバスD 0IIT にRAM206
のデータインを結合する動作モードに設定され、ライト
信号切り換え部242はSCPUオペレ一シヨン制御回
路212からのり一ド/ライト制御信号ではなくオペレ
ーション制御回路112からのり一ド/ライト制御信号
+J−RAM206のリード/ライト制御入力に結合す
る動作モードに設定される。このように停止状態のとき
、SCPU20はMCPUloによってデータアクセス
が可能な状態に置かれている。
したがって、本実施例によれば、MCPUIOはメイン
プログラムにおいてSCPU20の内部RAM206を
自由にアクセスすることができる。この様子を第22図
に示す、SCPU20の停止状態(音源処理完了)の確
認、即ちMCPUオペレーション制御回路112におけ
るSCPUリセット制御部134からの5cpu状態フ
ラグの検査はMCPUIOのインタラブド処理ルーチン
(第5図)のなかで1回だけ行えばよい(5−3参照)
、いったん停止状態が確認されれば、次のインタラブド
信号INTが発生するまで、再度の確認をする必要なし
に、−命令の実行で、MCPUIOはSCPU20の内
部RAM206をアクセスできる。したがって、従来に
比べ、SCPU20へのデータアクセスに要する時間が
大幅に短縮される。
瞬時強制アクセス方式(第23〜第25図)この方式は
データアクセスのためにMCPUIOとSCPU20と
の間で従来のようなアクセスの要求と承認という手続を
踏むことなく、MCPUIOからのSCPUデ一タアク
セス時にSCPU20の動作を強制的に一時停止させ、
その間にMCPUIOがSCPU20の内部RAM20
6にアクセスするものである。この方式によれば、MC
PUIOは任意のとyにSCPU20の状態を調べる必
要なしにSCPU20を高速に(−命令実行で)アクセ
スできる。
このような特徴を鯛えたMCPUIOのブロック図とS
CPU20のブロック図をそれぞれ第23図と第24図
に示す、なお、このMCPUとSCPUは上述したSC
PU動作開始終了機能に関する要素(第2図のSCPU
リセット制御回路134その他)を含むが第23図と第
24図では簡略化のため図示を省略しである。この場合
、リセット制御回路134からのSCPU動作起動/停
止信号AはSCPU20 (第24図)のROMアドレ
ス#御部214にのみ供給すれば十分である。第23図
と第24図のMCPUIOとSCPU20の瞬時強制ア
クセスに関する動作のタイムチャートを第25図に示す
瞬時強制アクセス方式を使用する場合、MCPUIOと
SCPU20は別個のクロック発生回路136.236
Mを必要とする。SCPU20のクロック発生回路23
6Mは、SCPU20へのデータアクセス命令実行時に
MCPUIOのオペレーション制御回路112Mから出
力されるハイアクティブのSCPUアクセス信号りに応
答してその動作を停止する。これに関連し1MCPUl
0のクロック発生回路136とSCPU20のクロック
発生回路236Mは共通の2相マスタ一クロツク信号C
KI、CR2を受けるが、出力するクロックのタイミン
グは独立である。MCPUIOではクロック発生回路1
36からの3相のクロック信号TI、T2、T3の一周
期でマシンサイクル(最短の一命令実行時間)が規定さ
れ、方、SCPU20ではクロック発生回路236Mか
らの3相のクロック信号ST1.Sr1、Sr1の一周
期でそのマシンサイクルが規定される。
第25図において、SCPUアクセス信号りが発生する
前において、MCPUIOに関するクロックTIのタイ
ミングはSCPU20に関するクロックSTIではなく
クロックST2のタイミングに一致している6両CPU
間で取り得る他のタイミング関係はTIがSTIに一致
する関係とTlがSr1に一致する関係である。
MCPUIOにおけるSCPUアクセス命令実行中にオ
ペレーション制御回路112から出力されるSCPU7
クセス信号りは、SCPU20(7)クロー7り発生回
路236Mを停止させてSCPU20で実行中のオペレ
ーションを停止させるとともに、ソノ停止中にMCPU
IOがSCPU20の内部RAM206をアクセスでき
るように、MCPUIOからの内部RAM206の指定
アドレスに係るバスゲート128.SCPU内部RAM
206に対するアドレス制御部204、データイン切り
換え部240、及びライト信号切り換え部242の各動
作モードを“SCPU側”から“MCPU側”に切り換
える機能を有する。このために、SCPUアクセス信号
はこれらの要素128.204.240.242の動作
モードを選択する制御入力にDフリップフロップ250
とANDゲート252とから成る遅延回路を介して結合
している。このようなアクセス可能状態の下で、MCP
UIOはバスゲート128、RAMアドレス制御部20
4を介してSCPU内部RAM206をアドレッシング
し、リードアクセスの場合にはSCPU内部RAM20
6から出力されるデータをパスゲー)132を介してM
CPU内部RAM106に読み込み、ライトアクセスの
場合には、パスゲー)130を介して書き込みデータを
データへスI)out に乗せ、SCPU内部RAM2
06にライト信号Cを与えてデータを占き込む。
MCPUIOからのSCPUアクセス信号りによってS
CPU20のオペレーションを中断する場合に、オペレ
ーションの中間結果が失われないようにする必要があり
、SCPUアクセス信号りの解除後に、予め保持した中
間結果を用いてSCPU20がオペレーションの残りの
部分を実行できるようにする必要がある。このために、
SCPU内部RAM206のデータ出力を一時的に記憶
するラッチ206a、206bを設けている。ラッチ2
06aはRAM206からの演算a(第1オペランド)
を5TICKIのタイミングでラッチし、ラッチ206
bはRAM206からの被演算数(第2オペランド)を
5T2CK1のタイミングでラッチする。
第25図を参照して動作例を述べると、この例では、M
CPUIOはSCPU7クセス信号りがハイアクティブ
レベルの間にSCPU20の内部RAM206に対する
ライトアクセスを実行している。MCPUIOではこの
データ書込オペレーションの最初のタイムスロットTI
の間に、MCPU内部RAM106から転送データ(R
AM206に書き込むべきデータ)を取り出す0次のタ
イムスロットT2でMCPUIOはSCPU内部RAM
206を7ドレツシングする。最後のタイムスロットT
3でMCPUIOはSCPU内部RAM206にライト
信号Cを与えてRAM206にデータを書き込む、SC
PU20側にとってMCPUIOからのSCPUアクセ
ス信号りはSCPU2(1)オペレーション2がタイム
スロットST2に移るときはアクティブに変化している
。このオペレーション2はSCPU20のRAM206
にある被ff1f算数と演算数をALU部208または
乗算器210で演算するような命令のオペレーションで
あり得る。MCPUIOからのSCPUアクセスタイム
の直前のタイムスロットであるオペレーション2の最初
のタイムスロットSTIでSCPU20はRAMI O
6から演算数のデータを取り出し、そのデータをクロッ
クTICKIにより@算数ラッチ106aにラッチして
いる0MCPUl0からのSCPUアクセス信号りが発
生しなければ、SCPU20は次のタイムスロットST
2でRAM106から被償3I数を取り出して被演算数
ラッチ10bにラッチし、最後のタイムスロットST3
でALU部108または乗算器lioで演算を実行して
RAM106の被償/X数レジスタに書き込む、実際に
は図示のようにオペレーション2の最初のタイムスロッ
トSTIに続いてMCPUIOからのSCPUアクセス
信号りが発生している。この場合、1つの対策はオペレ
ーション2の残り2つのタイムスロットST2とST3
で実行すべき処理をSCPUアクセス信号りが除去され
るまで、即ちMCPUIOのSCPUアクセスオペレー
シゴンが鰐了するまで中断することである。この方式で
もMCPUIOはSCPU20をアクセスするオペレー
ションを最W時間(MCPUIO(7)内部RAM10
6をアクセスするのと同じ時間)内に実行できるが、S
CPU20にとっては最適ではなくMCPUIOがらの
SCPUアクセスオペレーシヨンの都度、SCPU20
のオペレーションがタイムスロット3つ分遅延されるこ
とになる。都合のよいことに、MCPUIOのSCPU
アクセスオペレーシヨンの最初のタイムスロー、トT1
で実行される処理はSCPU20に影響を与えない処理
である。この特徴を利用し、実施例ではMCPUIOか
らSCPUアクセス信号りが与えられても、MCPUI
Oのタイムスロッ)TIの間は、SCPU20自身のオ
ペレーションが継続できるようにして、SCPU20の
動作遅れをできるだけ短かくしている。第25図の例で
いえば、SCPU20はMCPUIOのSCPUデータ
書込オペレーシヨンの最初のタイムスロットTlの間に
、RAM206から被演算数のデータを取り出し、ラッ
チ206bにクロー、り5T2CKlを与えて被@算数
をラッチさせている。その後、SCPUクロック発生回
路236の動作はSCPUアクセス信号りが除去される
まで停止し、SCPU20は待ち状態に置かれる。そし
てこの待ち状態の間、SCPU20の要素128.26
4.240.242はSCPU7クセス信号りにより“
MCPU側”に切り換えられ、MCPUIO(7)SC
PUデータ書込オペレーションにおけるタイムスロッ)
T2、T3に関する処理が実行されてSCPU内部RA
M206にMCPUIOからのデータが書き込まれる。
MCPUIOからのSCPUアクセス信号りが除去され
ると、SCPUクロック発生回路236は動作を再開し
、クロックST3を“H”に変化させる、更に、SCP
Uアクセス信号りの除去により、SCPU20の要素1
28.204.240.242が“SCPU側”に戻さ
れ、SCPU20自身の動作が可能な状態になる。そこ
でSCPU20はこのタイムスロットST3においてA
LU部208または乗算器210の演算出力をRAM2
06に書き込んでオペレーション2の残りの部分を実行
する。
第25図のタイムチャートに示すように、5cPU20
17)動作力MCPU I Qカl”+(7)S CP
U7クセスオペレーシヨンの都度、中断される時間はタ
イムスロット2つ分だけである。
なお、MCPUIOがSCPU20の内部RAM206
からデータを読み出すり一トアクセスオペレーションの
場合、そのタイムスロッ)T2でMCPUIOはSCP
U内部RAM206をアドレッシングし、タイムスロッ
トT3でMCPU内部RAM10Bをアドレッシングし
でSCPU内部RAM206からのデータをパスゲート
132を介してMCPU内部RAM106に取り込む。
以上のように、瞬時強制アクセス方式によればMCPU
 10はSCPU20の内部RAM206に対するアク
セスをMCPU自身のRAM106に対するアクセスと
同様に最短峙間内で実行でき、待ち時間命令を実行する
必要がない、更に、瞬時強制アクセス方式によれば、S
CPU20(7)オペレーションを途中で中断し、MC
PUIOのSCPUアクセスオペレーシヨン後に、中断
されたところからオペレーションを再開できる。したが
ッテ、MCPUIOはSCPU2C1:対tル7クセヌ
に先立ってSCPU20の状態を検査する必要はなく、
任意のときに、例えば、インタラブド処理ルーチン(第
5図)中でも自由にSCPU20をアクセスすることが
できる。
く共用メモリアクセス競合解消機能(第26、第27図
、第1図)〉 第1図において外部メモリ90は複数のCPU、即ちM
CPUIOとSCPU20に共用されるデータメモリで
ある。したがって外部データメモリ90に対する複数の
アクセス、即ち、MCPUIOからの外部データメモリ
90アクセスと。
SCPU20からの外部データメモリ90アクセスをサ
ポートする手段が必要である。更に、外部データメモリ
90を共用化する場合においてMCPUI O&SCP
U20とが外部データメモリ90を同時にアクセスを試
みることを許容するのが望まれ6.MCPUI OとS
CPU20と(7)間で外部データメモリ90に対する
使用権(トークン)を交換する機能を設けることにより
、MCPUIOとSCPU20が同時には外部データメ
モリ90をアクセスしないようにすることもできるが、
トークンの手続は外部データメモリアクセスのための準
備時間を占めるので、外部データメモリアクセスに要す
るトータルの時間が長くなり、効率的でない、一方、M
CPU 10とSCPU20による外部データメモリ9
0の同時アクセスを許容する場合、メモリ90自体は物
理的に同時アクセス不能であるので、同時アクセスによ
るアクセス競合を解消する手段が必要となる。
これらの手段を実現するため、第1図に示すようにMC
PUIOからの外部メモリアドレス情報はアドレスバス
MA、MCPU外部メモリアドレスラッチ30M、アド
レス切り換え回路4o、アドレス変換回路60を介して
外部メモリ9oのアドレス入力に結合されており、外部
メモリ9oからのデータ出力はデータ変換回路70.M
CPU外部メモリデータラッチ80M、データバスMD
を介してMCPUIOに結合されている。一方、SCP
U20からの外部メモリアドレス情報はアドレスバスS
A、5CFU外部メモリアドレスラッチ3O3、アドレ
ス切り換え回路40、アドレス変換回路60を介して外
部メモリ90のアドレス入力に結合Jれており、外部メ
モリ90からのデータ出力はデータ変換回路70、SC
PU外部メモリデータラッチ8oS、データバスSDを
介してSCPU20に結合されている。そして、MCP
UIOとSCPU20からの外部データメモリアクセス
要求を表わす信号MCPU−romaとSCPU−ro
maを受けるメモリ装置競合回避回路50により、上記
MCPU外部メモリアドレスラッチ30Mは、SCPU
外部メモリアドレスチッチ30S、アドレス切り換え回
路40、MCPU外部メモリデータラッチ80M、SC
PU外部メモリデータラー7チ80Sが制御されるよう
になっている。このメモリ装置競合回避回路5゜に上述
したアクセスの競合を回避する機佳が含まれている。
第26図にメモリ装置競合回避回路50のブロック図を
示し、第27図にアクセスの競合に対する動作のタイム
チャートを示す。
第26図において、メモリ装置競合回避回路50には入
力としてMCPUIOからのアクセス要求信号MCPU
−roma、SCPU20からのアクセス要求信号SC
PU−roma、更に、MCPUリセット信号MRES
及びSCPUリセット信号5RES (第1図において
図示省略)が結合する。MCPUリセット信号MRES
はセットリセット回路(R−Sフリップフロップ)50
2とその出力に結合する七−、トリセット回路506を
リセットし、信号MCPU−romaは、セットリセッ
ト回路502をセットする。セ”y )リセット回路5
02はMCPUIOからのアクセス要求を一時記憶し、
出力側セットリセ−/ ト回路506はセット状態にお
いて、MCPUIOからのアクセス要求が受は付けられ
て外部メモリデータアクセス制御信号発生回路510を
介してアクセスのオペレーションが実行中であることを
示す。同様にSCPUリセット信号5RESはセットリ
セット回路504とその出力に結合するセットリセット
回路508をリセットし、信号SCPUr omaはセ
ットリセット回路504をセットする。セットリセット
回路504はSCPU20からのアクセス要求を一時記
憶し、出力側セットリセット回路508はセット状態に
おいてSCPU20からのアクセス要求が受は付けられ
アクセスのオペレーションが実行中であることを示す。
詳細に述べると、MCPUアクセス要求セットリセット
回路502のセー7ト状態の出力“H″はSCPUアク
セス実行セー、トリセット回路508がセット状態でな
いことを条件として、即ち、SCPU20のアクセスオ
ペレーションが実行中でないことを条件として(低入力
が508からのインへ−夕522を介した反転入力に結
合するANDゲート524を介して)MCPUアクセス
実行セ実行セラトリセフ506をMCPUアクセス実行
状態にセットし、このMCPUアクセス実行セ実行セラ
トリセフ506をセットする信号により、ORゲー)5
12 (低入力がリセット信号MRESに結合する)を
介してMCPUアクセス要求セ−/ トリセット回路5
02をリセットする。同様に、SCPUアクセス要求セ
ットリセット回路504のセット状態の出力“H”はM
CPUアクセス実行セ実行セラトリセフ506がセット
状態でないことを条件として、即ちMCPUIOのアク
セスオペレーションが実行中でないことを条件として(
低入力の1つが506からのインバータ520を介した
反転入力に結合するANDゲート526)を介してSC
PUアクセス実行セットリセット回路50BをSCPU
アクセス実行状態にセットし、このSCPUアクセス実
行セットリセット回路508をセントする信号により、
ORゲート516 (低入力がリセット信号5RESに
結合する)を介してSCPUアクセス要求セットリセッ
ト回路504をリセットする0以上の構成により5片方
c7)CPU(例えばSCPU20) からアクセス要
求があっても、他方のCPU(MCPU10〕に関する
アクセスオペレーションが実行中のときは、その実行が
完了するまではアクセスを要求したCPU (SCPU
20)に関するアクセスオペレーションは実行Sれない
、これにより、アクセスの競合が基本的に回避される。
更に、MCPUIOとSCPU20とが完全に同時にア
クセスを要求する場合がある。このアクセス競合に対し
、実施例では、MCPUIOからのアクセス要求を優先
させ、MCPUIOのアクセスオペレーションを実行し
てから、SCPU20のアクセスオペレーションを実行
している。このために、MCPUアクセス要求セットリ
セット回路502がセット状態のときはその出力信号“
H”によりインバータ525を介してANDゲ−452
6を禁止しており、セットリセット回路502がセット
中のときはSCPUアクセス要求セットリセット回路5
04がセット状態でもSCPUアクセス実行セットリセ
ー2ト回路508がセットされないようにしている。
外部メモリデータアクセス制御信号発生回路510は、
セットリセット回路506と508からの出力に結合し
、いずれかのセットリセット回路の出力がセット状態“
H”に変化すると、そのセット状態が示すCPUアクセ
スのオペレーションを一連のシーケンスで実行する。外
部メモリデータアクセス制御信号発生回路510から出
力される信号CEとOEは外部メモリ7からデータを出
力するための制御信号であり、信号MDLはMCPU外
部メモリデータラッチ80Mに外部メモリ90からのデ
ータをラッチするための制御信号であり、信号SDLは
SCPU外部メモリデータラッチ80Sに外部メモリ9
0からのデータをラッチするための制御信号である。外
部メモリデータアクセス制御信号発生回路510はアク
セスオペレーションの実行を終了するとEND信号を発
生する。このEND信号により、セット状態にあつたア
クセス実行セットリセット回路はリセットされる。即ち
、END信号は観入力がセットリセット回路506の出
力に結合するANDゲート528と観入力がMCPUリ
セット信号MRESに結合するORゲート514を介し
てセットリセット回路506のリセット入力に結合し、
また観入力がセットリセット回路508の出力に結合す
るANDゲート530と観入力がSCPUリセット信号
5RESに結合するORゲー)518を介してセットリ
セット回路508のリセット入力に結合する。
SCPUアクセス実行セットリセット回路508の出力
はインバータ532を介してアドレス切り換え回路40
に対するアドレス選択信号MSELを発生する。したが
って、アドレス切り換え回路40は、SCPU20のア
クセスオペレーションが実行中のときに、SCPU外部
メモリアクセス用アドレスラッチ305からのSCPU
アドレスを選択し、その他の場合はMCPU外部メモ1
ノアクセス用アドレスラッチ30MからのMCPUアド
レスを選択する。
第27図の場合、MCPUIOとSCPU20は“MC
PUオペレージ、7のroma  、“SCPUオペレ
ーシヨンのroma”に示すように同時に外部メモリ9
0に対するアクセスを要求している。このr oma命
令のオペレーションにおいて、MCPUIOはアドレス
バスMAにアドレス情報を送出し、信号MCPU−ro
maを出力してMCPU外部メモリアクセス用アドレス
ラッチ30Mにアドレス情報をラッチさせ、同様にSC
PU20はアドレス/ヘスSAにアドレス情報を送出し
、信号SCPU−romaを出力し−rscPU外部メ
モリアクセス用アドレスチッチ30Sにアドレス情報を
ラッチさせる。同時に発生するMCPU−roma信号
とSCPU−roma信号により、メモリ装置競合回避
回路50のMCPUアクセス要求セットリセット回路5
02とSCPUアクセス要求セットリセット回路504
は同時にセットされる。これに対し、上述したMCPU
アクセス優先論理に従い1MCPUアクセス実行セット
リセット回路506がただちにセット状態に変化し、そ
れにより外部メモリデータアクセス制御信号発生回路5
10が外部メモリ90に対するMCPUIOのアクセス
オペレーションをX行する。この時点でアドレス切り換
え回路40はMCPUIOからのアドレス情報を選択し
ている。MCPUIOのアクセスオペレーションの期間
を第27図の左方の期間文で示す(なお、回路510は
2相のマスタークロックCK1.CK2で動作するが、
第26図では図示を省略しである)、外部メモリデータ
アクセス制御信号発生回路510は期間nでチップイネ
ーブル信号CEをローアクティブにし、期間nの後半の
期間mで出力イネーブル信号OEをローアクティブする
。したがって、この期間mにおいて外部メモリ90から
MCPUIOが要求したデータが出力され、この期間m
内に外部メモリデータアクセス要求信号発生回路510
から発生する信号MDLにより、この出力データがMC
PU外部メモリデータラッチ80Mにラッチされる。こ
れにより、外部メモリデータアクセス要求信号発生回路
510のMCPUIOのためのアクセスオペレーション
は完了するので、回路510はエンド信号ENDを出方
する。これにより、MCPUアクセス実行セットリセッ
ト回路506はリセットされ、代りに5cPUアクセス
実行セットリセット回路508がセットされる。これに
より信号MSELはSCPUアドレス選択を示す“L”
レベルに変化し、アドレス切り換え回路40はSCPU
20からのアドレスを選択して外部メモリ90をアドレ
ッシングする。更に、SCPUアクセス実行セットリセ
ット回路508からのセット信号に応答して外部メモリ
データアクセス制御信号発生回路510がSCPU20
のためのアクセスオペレーションを実行する。この期間
を第27図の右側の期間又で示す、このオペレーション
において外部メモリデータアクセス制御信号発生回路5
10は信号CEをローアクティブにし、その後半の期間
pで信号OEをローアクティブにしてSCPU20の要
求したデータを外部メモリ90から出力させ、その出力
中に信号SDLを発生してSCPU!A部メモリデータ
ラッチ80SにSCPU20の要求したデータをラッチ
させる。これにより、外部メモリデータアクセス制御信
号発生回路510の5cPU20のためのアクセスオペ
レーションは完了するので同回路510はエンド信号E
NDを出力してSCPUアクセス実行セットリセット回
路508をリセット状態に戻す。
これ以降、MCPUIOとSCPU20はそhぞれデー
タバスMD、SDに乗っている外部メモリデニクラッチ
80M、80Sの一出力データを読むことにより、要求
したデータを得ることができる。
このようにして各CPUIO220はr oma命令(
外部メモリアクセス要求命令)を実行後、メモリ装置競
合回避回路50が両CPUのためのアクセスオペレーシ
ョンを実行する所定の期間2文だけ待てば要求したデー
タを得ることができ、アクセス競合の問題が解消される
。更に、待機時間が一定(2文)なので、各CPUl0
120はこの期間を他の命令の実行に使用することがで
き、プログラム命令の実行効率が最適化される。
なお、MCPU−roma信号とSCPUr oma信
号のタイミング関係がその他のタイミング関係となる場
合については図示を省略しているが、いかなる場合でも
、各CPUl012oはr o m a命令を実行後、
所定の期間2又待てばその特恵で既に各CPUの外部デ
ータラッチには要求したデータがラッチされているので
、そのデータの入手が可能である。
くアドレス・データ変換ハードウェア(第28〜第32
図、第1図)〉 一般に、CPUを含むマイクロコンピュータシステムに
おいて、データメモリにある原データから演算用メモリ
上に原データを変換したデータ(原データから抽出され
る所望の情報)を作成することがしばしば望まれる。特
にこの種のデータは変換はデータメモリの記憶容量を効
率的に使用したような場合にその補償として必要になる
。この目的のため、従来では、データメモリから演算用
メモリへの転送命令を実行して、データメモリの原デー
タを演算用メモリに移し、次に1以上の変換命令を実行
して、演算用メモリにあるデータをALUを介して変換
する。したがって、従来の場合、演算用メモリ上に所望
のデータを得るためのデータ受検手続に時間ががかり、
高速処理が要求されるアプリケーションにおける障害の
1つとなっている。
本実施例ではCPUl0.20がデータメモリである外
部メモリ90から演算用メモリである内部RAM106
または206にデータを転送する命令(roma命令)
を実行するだけで、所望の変換が施されたデータが内部
RAM106.2゜6に読み込まれるようにして、デー
タ変換処理の高速化を図っている。この目的を実現する
ため、CPUl0120と外部メモリ90との間のアド
レス径路上にアドレス変換回路60が設けられ、また外
部メモリ90とCPUl0.20との間のデータ径路上
にデータ変換回路70が設けられ、各変換回路6o、7
oはr oma命令の実行時にCPUl012oから与
えられる制御信号に応答して所望の変換を実行する。
第28図に外部メモリアクセス命令r o m aのリ
ストを示す、第1の命令romaoは変換なしの転送命
令であり、これに対し、アドレス変換回路60はCPU
l0120から与えられる入力アトレスをそのまま出力
アドレスとして外部データメモリ90に通し、データ変
換回路70も外部データメモリ90からのデータ(16
ビツトデータ)を無変換で通してCPUl0120に渡
す。
この無変換転送命令r o m a OではCPUl0
120から変換回路60.70に与えられる変換制御用
の信号R1,R2、R3はいずれも“L”レベルとなる
第2の命令r omalは特殊波形の読み出しに適した
命令である。この命令に対し、アドレス変換回路60は
CPUl0120から送られてきた入力アドレスの第1
3ビー、トA12が“θ″のときは下位12ビー2トを
無変換で通すが第13ビツトA12が1”のと5は下位
12ビツトを反転させる。なお、アドレス変換回路6o
の出方アドレスの第13ヒツトは入力アドレスの第13
ピツ)A12の値にかかわらず“0”に固定される。
また、この命令に対し、データ変換回路7oはCPUl
0120から送られてきた入力アドレスの第13ビー/
 トA 12をCPUl012oに送るデータの第13
ピツ)D12とするとともにA12が“l”のとき下位
の12ビツトデータを反転する形式で外部メモリ90か
ものデータを変換する。したがって、外部メモリ90の
アドレス領域0000〜0FFFに第28図に示すよう
な有効データビット数12の特殊波形データ(0000
〜0FFF)があるとすると、CPUl0120がこの
命令を指定アドレス0000〜IFFF(7)範囲につ
いて繰り返し実行した場合に、アドレス変換回路60か
ら出力される外部メモリアドレスはいったんooooか
ら0FFFに進み、この間、データ変換回路70は外部
メモリ90からのデータをそのまま通し、その後、アド
レス変換回路60の反転動作により、外部メモリ9oへ
のアドレスは0FFFがらooooに後進し、この間、
データ変換回路7oは外部メモリ9oかも出力よれるデ
ータの下位12ビー2トを反転し、第13データビツト
D12を“1”にして変換されたデータを出力する。結
局、CPUl012oがアドレスを0000−IFFF
に勤がして命令r。
malを繰り返し実行した場合に、CPUl0120が
実際に受は取る波形は第28図のr o m alの欄
の右方に示すような波形となる。この変換波形は左方に
示す外部メモリ90内の原波形を所定の態様で延長した
繰り返し波形(アドレス0FFF、データ0FFFの点
について対称な波形)である、この結果、記憶容量の点
についていうと、変換波形のデータ自体を予め外部デー
タメモリ90に記憶させる方式に比べ、波形データ記憶
容量が半分になる利点がある。この命令roma1の場
合、制御信号R1、R2、R3のうちR1のみが“H”
レベルになる。
第3の命令ROMA2は外部メモリデータの一部(半語
)の読み出しを指示する命令である。この命令の場合、
R2のみが“H”レベルになる。
外部データメモリ9oのlアドレス(1%)当りの記憶
容量は16ビツトである。この命令rama2に対し、
データ変#回路7oは、CPUl0120からのアドレ
スの第16ビツトA15が“0”のときは、外部データ
メモリ9oからの16ビツトデータのうち、下位の8ビ
ツトを残し、上位の8ビツトを“0”にマスクする変換
を実行し、Al1が“1′″のときは外部データメモリ
90から16ビツトデータのうち、上位の8ビツトを下
位8ビツトにシフトする(残った上位8ビツトハマスク
〕変検を実行する。また、データ変換回路70において
入力アドレスの第16ビツトA15を制御信号として使
用しているので、アドレス変換回路60ではA15の値
にかかわらず出力アドレスの第16ビツトを所定値“O
″にマスクする。なお、この場合において外部データメ
モリ90からの16ビツト情報の上位8ビツトと下位ビ
ットとの関係は、1つのデータ(例えば位相データ)に
おける上位データ部分(例えば整数部)と下位データ部
分(例えば小数部)のような関係であってもよいし、異
なる2Ii類の8ビー/ トデータ(例えばレートデー
タとレベルデータ)の各々であるような独立な関係であ
ってもよい。
第4の命令ROMA3は外部メモリデータをシフトして
一部を読み出す命令である。この命令の場合、R3のみ
が“H”レベルになる。この命令に対し、データ変換回
路70は外部メモリ90からの16ビツトデータのうち
、bi t 15はそのままにして上位12ビツトのb
it15〜bit4をbit14〜bit3にシフトし
、下位の3ピツ)bit2〜bitoを0にマスクする
変換を行う、ここに、外部メモリ90の16ビツトデー
タのうち上位12ビツトは例えばbit15を符号ビッ
トとする波形データであり、下位4ビツトは別のデータ
を表わす、この場合、上記の変換により、CPUl01
20は内部RAM106.206上で使用するのに適し
たフォーマ−/ )の波形データを高速に読み取ること
ができる。
第29図にアドレス変換回路60のブロック図を示す、
このアドレス変換回路60にはMCPUloまたはSC
PU20からアトレスラッチ30M、305、アドレス
切り換え回路40を介して入力される16ビー2トのア
ドレスのうち、下位12ビツト(bitO〜bitll
)が詳細を第30図に示す反転回路610に入力される
。この反転回路610は信号R1が命令r oma 1
を表わすl”でアドレスのA12が“1″のときAND
ゲート612からの信号により動作して入力されるアド
レスの下位12ビツトを反転させる。また、命令r o
ma 1の実行時に“1”となる信号R1はインバータ
602を介して、ANDゲート604を禁止し、入力ア
ドレスのA12の値にかかわらず出力アドレスの対応ピ
ッ)(bit12)を“0”にする、入力アドレスのA
l1とA14はそのまま出力アドレスの対応ビ、)(b
it13、bit14)として出力される。入力アドレ
スのA15(MSB)はANDゲート608を介して出
力アドレスの対応ピッ)(bit15)となる、命令r
oma2の実行中を表わす“1”の信号R2が発生して
いると5、この信号R2がインバータ606を介してA
NDゲート608を禁止して出力アドレスのbit15
(MSB)を“0″にマスクする。
したがってアドレス変換回路60は、無変換命令rom
aoとシフト読み出し命令roma3に対シテはR1=
″0″、R2=“0”なので入力アドレスを出力アドレ
スとしてそのまま通し、特殊波形読出し命令r oma
 lに対してはR1=“l”なので出力アドレスのbi
t12を“O”にマスクし、A12=″l”の間尺転回
路610により入力アドレスの下位12ビツト(bit
〜bitll)を反転して出力アドレスとする。
更に、一部読み出し命令roma2に対してはR2=″
l”なので出力アドレスのbit15を“0″にマスク
する。このようにして、第28図に関して述べたアドレ
ス変換回路の機能が実現される。
第31図にデータ変換回路70のブロック図を示し、第
32図にその詳細を示す。これらの図においてデータ入
力は第1図の外部メモリ90から供給されるデータであ
る。第32図において、入力データの上位8ビツトに結
合する3状態ゲ一ト回路702と入力データの下位8ビ
ツトに結合する3状態ゲ一ト回路704は出力するデー
タの下位8ビツトとして入力データの上位8ビツトを選
択するが、入力データの下位8ビツトを選択するかを決
めるためのものである。R2=“1″(r o m a
 2命令)でA15=1のとき、ANDゲート706の
“l”出力信号とその反転信号であるインバータ708
の出力信号“O”により、ゲート回路702が導通し、
ゲート回路704がオフして入力データの上位8ビツト
が出力データの下位8ビツトとして選択される。その他
の場合は、ゲート回路702がオフし、ゲート回路70
4が導通するので入力データの下位8ビツトがそのまま
出力データの下位8ビツトとして出力される。更にR2
=“l” (roma2命令)のときは、入力データの
上位8ビツトに結合するANDゲート回路710が禁止
されて出力データの上位8ビツトをO″にマスクする。
即ち、R2=“1″のときはインバータ712とNOR
ゲート714を介して禁止信号がANDゲート回路71
Oに加わってANDゲート回路710における入力デー
タ上位8ビツトの通過が阻止される。また、ANDゲー
ト回路710における入力データの上位3ビツトと結合
する′ANDゲート素子はR1=“1” (romal
命令)のときにNORゲート714を介して禁止され、
出力データの上位3ビツトを“0″にマスクする。
EX−ORゲート回路716は入力データの下位12ビ
ツトを選択的に反転するための回路である。EX−OR
ゲート回路716はR1=“1”(r o m a 1
命令)でAl2=1のとき、ANDゲート718からの
反転信号“1″により、下位12ビツトデータを反転し
、その他の場合は下位12ビツトデータをそのまま通す
1回路710内のANDゲート素子を介して入力データ
のbit12に結合する状態ゲート722はR1=“1
″(r o m a l命令)のときに、信号R1に結
合するインバータ720を介して与えられる信号“0”
によりオフし、代りに、A12に結合する3状態ゲート
724が信号R1によって導通して出力データのbit
12を発生する。シフトマスク回路726は選択的に入
力されたデータのbit15〜bit4を出力データの
bit14〜bit3にシフトし、出力データのbit
2〜bi10を“O”にマスクするための回路であり、
R3=“l” (r o m a 3命令)のとき信号
R3に結合するインバータ728からの信号“1″′に
よってこの変換を実行する。
したがって、データ変換回路70は、無変換命令rom
ao (R1=R2=R3=“0”)のときは、入力さ
れる16ビツトデータをそのまま通し、特殊波形読み出
し命令romal (R1−“1″)のときは入力アド
レスの上位4ビツト(bit15〜bit12)が”o
ooo″(A12=0のとき)か“0001” (A1
2=1のとき)かによって、出力データの下位12ビツ
トをそのまま入力データの下位12ビツトとする(AI
2=Oのと!りか、或は、出力データの下位12ビツト
を入力データの下位12ビツトが反転されたデータとな
る(A12=1)ようにデータ変換を行い、一部読み出
し命令roma2(R2=“l”)のときは出力データ
の上位8ビツトがオールゼロで、出力データの下位8ビ
ー/ トが入力データの下位8ビツトとなるように(A
15=0のとき)、或は、出力データの上位8ビツトが
オールゼロで、出力データの下位8ビツトが入力データ
の上位8ビツトとなる(A15=1のとき)ようにデー
タ変換を行い、シフト読み出し命令r oma3 (R
3= 1)(7)ときは出力データノ下位3ビット(b
 i t O〜bit2)がオールゼロで、出力データ
のbit3〜bit14が入力データのbi t4〜b
ft15で、出力データのb i t 15 (MSB
)が入力データのbit15(MSB)となるようにデ
ータ変換を行う、このようにして第28図で述べたデー
タ変換機能力く達成されている。
以上により、アドレス変換回路60とデータ変換回路7
0とを設けたことによる利点は明らかである。即ち、C
PUl0120にとって、データメモリである外部メモ
リ90に対するアクセス命令romaを実行するだけで
、回路60と70の変換機能により、所望の変換が施さ
れたデータをただちに得ることができ、従来のように、
外部メモリ90のデータを演算用メモリである内部RA
M106,206にいったん取り込んだ後に、ALU部
108.208のようなALUを介して変換を実行する
必要がなく、第理が高速化される利点がある。
なお、第28図に示したアクセス命令romaのリスト
は例示にすぎず、拡張、変更は容易である。
<DACサンプリング(第33、第34図)〉本実施例
においてDAClooはMCPUIOとSCPU20が
生成したデジタル楽音信号をアナログ楽音信号に変換す
るものである。第5図の5−5に示すように、MCPU
IOはタイマインタラブド処理ルーチンのなかで、MC
PUIOとSCPU20が生成したデジタル楽音信号の
サンプルをDAClooにセットする。この処理5−5
の実行間隔は平均としてはタイマインタラブド発生部1
16の発生するインタラブド信号INTの発生間隔に等
しいが、実際の実行間隔はプログラム動作のために変動
する。したがって、処理5−5の実行間隔をD/A変換
の変換周期としてD/A変換を行ったとするとアナログ
楽音信号に大きな歪みが生じてしまう。
第33図に右DAC100Rまたは左DACI00Lの
構成例を示す、第33図の(A)に示す構成では、処理
5−5の実行時に、MCPUIOのオペレーション制御
回路112の制御の下に。
内部RAM106内の波形加算用レジスタが指定され、
そこに記憶されている最新のデジタル楽音データが取り
出され、データバスに乗せられる。
そして、データバスにデジタル楽音データが乗つている
タイミングでラッチ1004のクロ7り入力にストロー
ブ用のプログラム制御信号がオペレション制御回路11
2から与えられデータバス上のデータがセットされ、ラ
ッチ1004から新しいデジタル楽音データがD/A変
換器1002に入力される。したがって、第34図(A
)に示すように、D/A変換器1002に入力されるデ
ジタル楽音データはプログラム制御のために不安定な周
期で切り換わることになる。D/A変換器1002の変
換周期(サンプリング周期)は非常に安定していなけれ
ば、その変換において大きな歪みが発生する。
この問題は第33図(B)に示すような構成をとること
により解決される。すなわち、オペレーション制御回路
112からのプログラム制御信号によって制御されるソ
フト制御ランチ1004と、デジタル楽音信号をアナロ
グ楽音信号に変換するD/A変換器1002との間に、
インタラブド発生部116からの正確なタイミング信号
であるインタラブド信号INTで制御されるインタラブ
ド制御ラッチ1006を設ける。インタラブド信号の発
生周期はクロック発振器の安定度に従うので極めて安定
である。ラッチ1006の出力はインタラブド信号のタ
イミングに同期して切り換わる。すなわち、インタラブ
ド信号の発生周期がD/A変換器1002の変換(サン
プリング)周期となる。第33図(B)の構成に対する
タイムチャートを第34図(B)に示す0図示のように
、ラッチ1004の出力が切り換わるタイミングはイン
タラブド処理に移行するタイミングのずれや、該インタ
ラブド処理に要する時間(斜線部の長さ)によって変動
するがインタラブド信号で動作するラッチ1006があ
るのでD/A変換器1002の入力データが切り換るタ
イミングはインタラブド信号と同期する。これにより、
第33図(A)の構成における歪み問題が解決される。
[変形例] 以上で実施例の説明を終えるが、この発明の範囲内で種
々の変形、変更が可能である。
例えば、1つのCPUではなく2以上のCPUに各々メ
インプログラムをもたせて、電子楽器のシステム制御を
各CPUで分担するようにしてもよい、この場合、各C
PUが内蔵するメインプログラムはシステム制御の分担
部分に応じて異なる0例えば第1のCPUはメインプロ
グラムにおいて機能キーからの入力を処理し、第2のC
PUはメインプログラムにおいて鍵盤キーからの入力を
処理するといった具合である。
[発明の効果] 最後に特許請求の範囲に記載の発明の効果、利点につい
て述べる。
請求項1の構成によれば複数のCPUが各々のプログラ
ムに従って動作して楽音信号の生成を協働して行うので
従来のような専用構造の音源回路ハードウェアに頼るこ
となく音源としての能力の高い電子楽器用処理装置を提
供することができる。また、装置の機能の追加、変更は
基本的に各CPUで実行するプログラムを変更すること
によって達成し得、大幅な回路変更を必要としない。
また、請求項2の構成には、上記の効果以外に複数のC
PU間のアクセス量(システムの動作効率の低下につな
がる)を最小にすることができる利点、単一のメインC
PU使用によりシステム制−御が容易になる利点、各C
PUのハードウェアを同様の回路で構成できるだけでな
く各CPUが内蔵するプログラムも可能なかぎり共通な
ものが使用できる利点、結果として電子楽器用処理装置
のシステム構築が容易になる利点等がある。
【図面の簡単な説明】
第1図はこの発明を適用した電子楽器用処理装置の全体
構成図、 第2図は第1図のMCPUのブロック図、第3図は第1
図のSCPUのブロー2り図、第4図はMCPUの実行
するメインプログラムのフローチャート 第5図はMCPUの実行するインタラブド処理ルーチン
のフローチャート、 第6図はSCPUの実行するプログラムのフローチャー
ト、 第7図は音源処理のフローチャート、 第8図は時−間の経過に沿う実施例の動作のフローチャ
ート、 第9図はチャンネル音源処理のフローチャート、 第1θ図は波形データを示す図、 第11図は音源処理用RAMテーブルを示す図、 第12図は5CPH動作開始終了機能に関係する回路の
ブロック図、 第13図、第14図、第15図は第12図の回路の動作
のタイムチャート、 第16図はインタラブドマスク機能を有する回路のブロ
ー、り図、 第17図はインタラブドマスク方式によるエンベロープ
設定処理のフローチャート・ 第18図は単一命令で複数のデータを転送する同インタ
ラブド信号によるメインプログラムの中断を禁止する機
能を有する回路のブロック図、第19図は複数のデータ
を単一命令で転送するのに適したRAMのメモリマツプ
例を示す図第2071は複数の転送命令による動作と単
一の転送命令による動作とを比較して示す図、第21図
は単一転送命令方式によるエンベロープ設定処理のフロ
ーチャート・ 第22図はSCPUの停止モード利用によるMCPUか
らのSCPUアクセス機能を説明するのに用いたフロー
チャート、 第23図はSCPUに対する瞬時強制アクセス機能を有
するMCPUのブロック図。 第24図は5CPHに対する瞬時強制アクセス機能に適
合するSCPUのブロック図 第25図はMCPUからSCPUの内部RAMにデータ
を書き込む場合の動作のタイムチャート、 第26rI4は第1図のメモリ装置競合回避回路のブロ
ック図、 第27図は第26図の回路の動作のタイムチャト、 第28図は外部メモリからのデータを変換して取り込む
命令を含む外部メモリアクセス命令のリストを示す図、 第29図は第1図のアドレス変換回路のブロック図、 第30図は第29図の反転回路の回路図、第31図は第
1図のデータ変換回路のブロック図、 第32図はデータ変換回路の回路図、 第33図は第1図のDACのサンプリング周期が不安定
になる構成とサンプリング周期を安定化した構成とを比
較して示す図、 第34図はDACのサンプリング周期が不安定な場合の
タイムチャートと安定な場合のタイムチャートとを比較
して示す図である。 10・・・・・・MCPU(メインCPU)20・・・
・・・SCPU (サブCPU)102・・・・・・制
御用ROM(MCPUプログラム記憶手段) 106・・・・・・RAM(MCPUデータ記憶手段)
108・・・・・・ALU部(MCPU@算処理回路手
段) 110・・・・・・乗算器(MCPU演算処理回路手段
) 112・・・・・・オペレーション制御回路(MCPU
オペレーション制御回路手段) 114・・・・・・ROMアドレス制御部(MCPUア
ドレス制御回路手段) 202・・・・・・制御用ROM(SCPUプログラム
記憶手段) 206・・・・・・RAM(SCPUデータ記憶手段)
208・・・・・・ALU部(SCPU演算処理回路手
段) 210・・・・・・乗算器(SCPU演算処理回路手段
) 212・・・・・・オペレーション制御回路(SCPU
オペレーション制御回路手段) 214・・・・・・ROMアドレス制御部(SCPUア
ドレス制御回路手段) カシオ計算機株式会社

Claims (2)

    【特許請求の範囲】
  1. (1)各CPUが各々のプログラムで動作するように構
    成した複数のCPUを有し、前記複数のCPUが前記プ
    ログラムに従って楽音信号の生成処理を並列に実行する
    手段を含むことを特徴とする電子楽器用処理装置。
  2. (2)請求項1記載の電子楽器用処理装置において、前
    記複数のCPUは1つのメインCPUとこのメインCP
    Uによって制御される少なくとも1つのサブCPUから
    成り、 前記メインCPUは、 楽器への入力を処理するための入力処理プログラムと入
    力処理プログラムによる前記楽器への入力の処理結果に
    基づいて楽音を生成するための楽音生成プログラムとを
    記憶するMCPUプログラム記憶手段と、 前記MCPUプログラム記憶手段のアドレスを制御する
    MCPUアドレス制御回路手段と、前記楽器への入力処
    理と前記楽音の生成処理に必要なデータを記憶するMC
    PUデータ記憶手段と、 演算処理を行うMCPU演算処理回路手段と、前記MC
    PUプログラム記憶手段のプログラムの各命令を解読し
    て前記MCPUアドレス制御回路手段、前記MCPUデ
    ータ記憶手段、前記MCPU演算処理回路手段の動作を
    制御するMCPUオペレーション制御回路手段と、 を有し、 前記サブCPUの各々は、 前記MCPUプログラム記憶手段の前記入力処理プログ
    ラムによる前記楽器への入力の処理結果に基づいて楽音
    を生成するための楽音生成プログラムを記憶するSCP
    Uプログラム記憶手段と、前記SCPUプログラム記憶
    手段のアドレスを制御するSCPUアドレス制御回路手
    段と、前記楽音の生成処理に必要なデータを記憶するS
    CPUデータ記憶手段と、 演算処理を行うSCPU演算処理回路手段と、前記SC
    PUプログラム記憶手段のプログラムの各命令を解読し
    て前記SCPUアドレス制御回路手段、前記SCPUデ
    ータ記憶手段、前記SCPU演算回路手段の動作を制御
    するSCPUオペレーション制御回路手段と、 を有することを特徴とする電子楽器用処理装置。
JP2170161A 1990-06-29 1990-06-29 電子楽器用処理装置 Expired - Lifetime JP2797137B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2170161A JP2797137B2 (ja) 1990-06-29 1990-06-29 電子楽器用処理装置
US07/709,101 US5200564A (en) 1990-06-29 1991-05-29 Digital information processing apparatus with multiple CPUs
US08/001,184 US5691493A (en) 1990-06-29 1993-01-07 Multi-channel tone generation apparatus with multiple CPU's executing programs in parallel
US08/486,606 US5584034A (en) 1990-06-29 1995-06-07 Apparatus for executing respective portions of a process by main and sub CPUS

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2170161A JP2797137B2 (ja) 1990-06-29 1990-06-29 電子楽器用処理装置

Publications (2)

Publication Number Publication Date
JPH0460595A true JPH0460595A (ja) 1992-02-26
JP2797137B2 JP2797137B2 (ja) 1998-09-17

Family

ID=15899815

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2170161A Expired - Lifetime JP2797137B2 (ja) 1990-06-29 1990-06-29 電子楽器用処理装置

Country Status (1)

Country Link
JP (1) JP2797137B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5283386A (en) * 1991-08-30 1994-02-01 Casio Computer Co., Ltd. Musical-tone signal generating apparatus and musical-tone controlling apparatus including delay means and automatic reset means
JP2005181775A (ja) * 2003-12-22 2005-07-07 Kawai Musical Instr Mfg Co Ltd データ処理用lsi

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5283386A (en) * 1991-08-30 1994-02-01 Casio Computer Co., Ltd. Musical-tone signal generating apparatus and musical-tone controlling apparatus including delay means and automatic reset means
JP2005181775A (ja) * 2003-12-22 2005-07-07 Kawai Musical Instr Mfg Co Ltd データ処理用lsi
JP4642348B2 (ja) * 2003-12-22 2011-03-02 株式会社河合楽器製作所 データ処理用lsi

Also Published As

Publication number Publication date
JP2797137B2 (ja) 1998-09-17

Similar Documents

Publication Publication Date Title
US5691493A (en) Multi-channel tone generation apparatus with multiple CPU's executing programs in parallel
US5319151A (en) Data processing apparatus outputting waveform data in a certain interval
JPH0997064A (ja) 自動演奏データ処理装置
US5584034A (en) Apparatus for executing respective portions of a process by main and sub CPUS
JPH0460595A (ja) 電子楽器用処理装置
US4644841A (en) Electronic musical instrument
JPH0460744A (ja) デジタルマイクロコンピュータ
JPH0460746A (ja) デジタルマイクロコンピュータ
EP0376342B1 (en) Data processing apparatus for electronic musical instruments
JPH0460723A (ja) デジタルマイクロコンピュータ
JP2797138B2 (ja) 電子楽器用処理装置
US5710386A (en) Method and apparatus for efficiently controlling access to stored operation control data and tone forming data
JPH0460724A (ja) デジタルマイクロコンピュータ
JP2797142B2 (ja) 電子楽器用処理装置
JPH0460722A (ja) デジタルマイクロコンピュータ
JPH0460725A (ja) デジタルマイクロコンピュータ
JPH0460749A (ja) デジタルマイクロコンピュータ
JPH11202866A (ja) 楽音発生方法および楽音発生装置
JPS621030A (ja) カウンタ回路
JPH07325581A (ja) 楽音発生装置
JP2678974B2 (ja) 楽音波形発生装置
US4936179A (en) Electronic musical instrument
JPH0421199B2 (ja)
JPH02179692A (ja) 処理装置
JP3116447B2 (ja) デジタル信号処理プロセッサ

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070703

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20080703

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20090703

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20090703

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20100703

Year of fee payment: 12

EXPY Cancellation because of completion of term