JPH0460725A - デジタルマイクロコンピュータ - Google Patents

デジタルマイクロコンピュータ

Info

Publication number
JPH0460725A
JPH0460725A JP2170168A JP17016890A JPH0460725A JP H0460725 A JPH0460725 A JP H0460725A JP 2170168 A JP2170168 A JP 2170168A JP 17016890 A JP17016890 A JP 17016890A JP H0460725 A JPH0460725 A JP H0460725A
Authority
JP
Japan
Prior art keywords
data
address
cpu
signal
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2170168A
Other languages
English (en)
Inventor
Koichiro Oki
広一郎 太期
Ryuji Usami
隆二 宇佐美
Kosuke Shiba
斯波 康祐
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 JP2170168A priority Critical patent/JPH0460725A/ja
Publication of JPH0460725A publication Critical patent/JPH0460725A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 [発明の技術分野] この発明はデジタルマイクロコンピュータに関し、特に
高速処理が要求されるマイクロコンピュータに有効な技
術に関する。
[発明の背景] マイクロコンピュータでデータメモリを使用する場合、
データメモリの記憶容量を効率よく使用することがしば
しば望まれる0例えば、記憶すべきデータの有効サイズ
(情報ビット数)がデータの種類によって異なるような
場合に1デ一タ語ごとに1つのメモリ語領域を割り当て
る代りに1つのメモリ語領域に複数のデータを記憶させ
るようにすれば、メモリ語領域のすべであるいは大部分
が意味ある情報によって使用され、使用効率が向上する
。また、データメモリからのデータを使用するCPUの
方でも、プログラム命令の要求する処理に応じであると
きはメモリ語領域に記憶されるデータの全部を使用する
が別の処理のときIま同じデータの一部を使用すること
があり得る。
この種の環境で動作するマイクロコンピュータでは、デ
ータメモリからのデータをプロセスの要求するフォーマ
ットに変換する機能が必要である。このために、従来技
術では、データメモリ上のデータ(メモリ語)を転送命
令によっていったん演算用メモリに転送し、しかる後、
1以上のデータ変換命令を実行して、ALUを介して所
望の変換が施されたデータを演算用メモリ上に得ていた
しかし、この従来方式では所望の変換データを得るまで
に時間がかかるので高速処理が要求される用途には向か
ないという問題があった。
[発明の目的] したがってこの発明の目的はデータメモリのデータから
所望の変換が施されたデータを高速に得ることのできる
デジタルマイクロコンピュータを提供することである。
[発明の構成、作用] この発明によれば、プログラムで動作するCPUと、デ
ータ源としてデータを記憶するデータメモリと、前記C
PUの演算のために使用される演算用メモリと、前記C
PUが前記データメモリをリードアクセスする際に前記
データメモリから出力されるデータを前記CPUかもの
制御信号に従って選択的に変更して前記@算用メモリに
書き込むデータを生成するデータ変更回路手段とを有す
ることを特徴とするデジタルマイクロコンピュータが提
供される。
この構成によれば、CPUはデータメモリに対するり一
トアクセス命令を実行するだけで、データ変換回路手段
の作用により、所望の変換が施されたデータを直接的に
得ることができ、従来のように演算用メモリにデータメ
モリからのデータを書き写した後にデータ変換命令を実
行する手間を省略でき、処理が高速化される利点がある
更に、この発明によれば、上記データ変更回路手段に加
え、上記CPUがデータメモリをリードアクセスする際
に、CPUからの出力されるアドレスをCPUから供給
される制御信号に従って選択的に変更してデータメモリ
に入力されるアドレスを生成するアドレス変更回路手段
を設けることができる。
この構成は例えば、波形データを圧縮してデータメモリ
に記憶したような場合に、データ変更回路手段とアドレ
ス変更回路手段の協働作用により所望の再生波形データ
を得るのに有効である。
[実施例] 以下、図面を参照してこの発明の詳細な説明する。
く概 要〉 本実施例はこの発明を電子楽器に適用したものである0
本実施例(第1−第34図〕は種々の特徴を含んでいる
。第1の特徴は、楽音信号を生成する音源としてプログ
ラムで動作する複数のマイクロコンピュータ処理装N(
CPU)を使用することであり、従来のような専用a造
のハードウェア音源は不要である# 1つのCPUがメ
インcPUあるいはマスターCPU(10)として働き
音源処理のみでなくアプリケーション(この場合、楽器
)に従う入力装置(m盤1機能キー等)、出力装置(D
AC等)を取り扱う(第4図、第5図)、他のCPUは
マスターCPUに対してサブCPUないしスレーブCP
U (20)として働き、音源処理を実行する(第6図
)、シたがって、音源処理について各CPUの負担が分
担される構成である。
第2の特徴はサブCPUが動作を開始し、終了するメカ
ニズムに関係しており、本実施例によれば、サブCPU
の動作は、マスターCPUに対して音源処理を要求する
タイマインタラブドを合図として開始し、その結果、マ
スターCPUとサブCPUにおいて音源処理が並行に実
行される。サブCPUの動作(音源処理)が終了すると
その終了信号によってサブCPUはリセット状態(停止
状態)に移行するとともにその終了信号がマスターCP
Uに伝えられる(第8図、第16図)、この特徴により
、マスターCPUはサブCPUの動作期間を有効に管理
、把握できる。更に、この特徴により、高速処理が要求
される音源処理タスク(楽音信号のデジタルサンプルを
生成する仕事)を効率よ〈実行できる。
本実施例の第3の特徴はメインプログラムからタイマイ
ンタラブド処理ルーチンに渡すデータの更新(転送)問
題に関係する。インタラブド処理ルーチンの実行の結果
、インタラブド処理ルーチンにおいて参照すべき複数の
データ(例えばエンベロープ目標値、エンベロープレー
トのようなエンベロープパラメータ)を更新する必要が
生じる。この複数のデータの更新の実行命令はメインプ
ログラム中に含まれる。即ち、この複数のデータはメイ
ンプログラムが更新し、タイマインタラブド処理ルーチ
ンが参照するデータである。このような複数のデータは
、全体として意味ある情報を構成するので、メインプロ
グラムにおいて複数のデータのすべてが更新されないう
ちにインタラブド処理ルーチンに制御が移ってはならな
い、これを防止するため、第1の方式としてデータ更新
が完了するまでインタラブドをマスクしてインタラブド
処理ルーチンへの移行を禁止する方式が開示され(第1
6図、第17図)、第2の方式として、複数のデータの
更新(転送)をメインプログラム中の単一命令で実行す
る方式が開示される(第18図〜第21図)、この結果
、インタラブド処理ルーチンの処理結果(楽音信号のサ
ンプル)が正しい値を示し、正しい動作が保証される。
本実施例の第4の特徴はマスターCPUからスレーブC
PUに対するデータアクセス問題に関する。従来の複数
CPUマイクロコンピュータシステムでは、一般に、C
PU間のデータ転送は一連のシーケンスを通して行われ
、相当の時間を要する0代表的には、データのアクセス
を要求するCPUからアクセスが要求されるCPUに対
し、アクセス要求信号を送る。このアクセス要求信号に
対しアクセスが要求されるCPUは実行中のオペレーシ
ョンを完了した後に承認(アクノリッジ)信号をCPH
に渡して停止状態となる。アクセス要求信号送信後、承
認信号が受信されるまでの間、要求側のCPUは待ち状
態になる。承認信号を受けて要求側のCPUは被要求側
のCPUの内部メモリに対し、実際のデータアクセスを
実行する。このように従来のCPU間データアクセス方
式は時間を要するので高速処理が望まれる電子楽器のよ
うなアプリケーションには適さない、これを解決するた
め、本実施例では、第1のデータアクセス方式として、
上記第2の特徴を利用してサブCPUが停止状態にある
ときにマスターCPUがサブCPUの内部メモリ(20
6)に対しデータをリード/ライト(アクセス)する停
止モード制御方式が開示され(第22図)、第2のデー
タアクセス方式として待ち状態なしにマスターCPUが
サブCPUをデータアクセスする(サブCPUはデータ
アクセス中のみ強制的に停止状態にされる)瞬時データ
アクセス方式とが開示される(第23図〜第25図)。
本実施例の第5の特徴はデータ源としてのCPU外部メ
モリを複数のCPUで共用する場合における複数CPU
からのアクセスの競合(#突)問題に関する0本実施例
によれば後述するメモリ装置競合回避回路(50)を設
けることにより、共用メモリに対するアクセスの競合を
解消し、一定の待ち時間の後、共用メモリからのデータ
を得られるようにしている。
本実施例の第6の特徴はデータ変換処理(シフト、反転
、一部取り出し等)の高速化に関する。
従来においては、上述したCPU外部メモリのようなデ
ータメモリ内のデータから、CPU内部メモリ(演算用
メモリ)上に変換されたデータを得るために、転送(リ
ードアクセス)命令により、データメモリのデータを演
算用メモリに移し、しかる後、変換命令により、演算用
メモリのデータをALUを介して変換する。所望のデー
タ変換を行うために複数の変換命令を実行する必要もし
ばしば生じる。このように、従来においてはデータ変換
の処理に時間がかかるという問題があり、特に音源処理
のように高速処理が要求されるアプリケージ、ンにおい
ては大きな問題となる。これを解決するため、この実施
例によれば、データ・アドレス変換ハードウェア(60
,70)を設け、特殊な転送命令(変換付転送命令)を
実行することにより、その命令に応答するデータ会アド
レス変換ハードウェアを介して所望のデータ変換が施さ
れたデータが演算用メモリ(106,206)に取り込
まれるようにしている。したがって、所望の変換データ
を得るのに、複数の命令を実行するのではなく単一の命
令を実行すればよく処理の高速化が図れる。
く全体構成(第1F!!J)> 第1図は電子楽器の処理装置として構成した本実施例の
全体構成を示すブロック図である0本システムは2つの
中央演算処理装置(一方をMCPUIO1他方を5CP
U20で示す)を有する。
各CPUl0120はプログラムを内蔵しており、それ
ぞれのプログラムに従って動作する0MCPUl0は音
源処理(第5図)以外にシステム全体の制御1例えば入
カポ−)118.出力ボート120に接続される入力装
置(例えばma、 si能キー等)からの入力情報の処
理、デジタル楽音信号をアナログ楽音信号に変換するD
ACl 00の制御等を行う(第4図)、これに対し、
5CPU20は音源処理に専用される(第6図)。
90は音源制御データ、波形データ等のデータ源として
のメモリである。データメモリ90はここでは、LSI
チップ(第1図の残りのデ/曳イスを搭載している)に
外付けされたROMで構成されている。集積度が高けれ
ば、単一のLSIチップ上にデータメモリ90を内部メ
モリとして形成可能である。外部メモリ90はMCPU
IOと5CPU20に共用される。MCPUIOからの
アトt、 7.Wi報t−kMc P U 10に結合
するアドレスバスMA、外部メモリアドレスチッチ3o
のMCPU外部メモリアドレスラッチ30M、アドレス
切り換え回路40、アドレス変換回路60を介して外部
データメモリ90のアドレス入力に加えられる。一方、
5CPU20からのアドレス情報は5CPU20に結合
するアドレスバスSA、5CPU外部メモリアドレスチ
ッチ305、アドレス切り換え回路40、アドレス変換
回路60を通して外部データメモリ90のアドレス入力
に加えられる。外部データメモリ90からMCPUIO
へのデータ伝送径路は外部データメモリ90のデータ出
力、データ変換回路70、外部メモリデータラッチ80
のMCPU外部メモリデータラッチ80M、MCPUl
oに結合するデータバスMDによって構成される。これ
に対し、外部データメモリ90から5CPU20へのデ
ータ伝送径路は外部データメモリ90のデータ出力、デ
ータ変換回路70.5CPU外部メモリデータラッチ8
0S、5CPU20に結合するデータバスSDによって
構成される。
メモリ装置競合回避回路50はMCPUIOと5CPU
20の両CPUによる外部メモリ90のアクセスを制御
し、その競合を回避するものである。メモリ装置競合回
避回路50はMCPUIOからの外部メモリアクセスを
要求する信号romaと5CPUからの外部メモリアク
セスを要求する信号r omaの各々に応答してアドレ
ス切り換え回路40を制御してアドレス切り換え回路4
0にMCPUIOからのアドレスと5CPU20からの
アドレスのいずれかを外部メモリ90へのアドレスとし
て選択させる。このためにメモリ装置競合回避回路50
からの選択信号MSELによりアドレス切り換え回路4
0は選択動作を行う、外部メモリ90へのアドレスが確
定するとメモリ装置競合回避回路50は外部メモリ90
に対するチップ選択信号GEと出力イネーブル信号OE
をアクティブにする。これにより外部メモリ90からデ
ータが出力され、データ変換回路70を通してそのデー
タが外部メモリラッチ80の入力バスに現われる。ここ
で、メモリ装置競合回避回路50はデータアクセスを要
求したCPUにデータを送るためにMCPU外部メモリ
データラッチ80M、5CPU外部メモリデータラッチ
80Sのいずれかを作動してデータをラッチさせる。こ
のためにMCPU外部メモリデータラッチ80Mはメモ
リ装置競合回避回路50からのラッチ信号MDLにより
ラッチ動作し、5CPU外部メモリデータラッチ80S
はメモリ装置競合回避回路50からのラッチ信号SDL
によりラッチ動作するようになっている。
アドレス変換回路60とデータ変換回路70は外部デー
タメモリ90のデータを変換したデータがCPUl01
20に取り込まれるようにするための変換デバイスであ
る。アドレス変換回路60はアドレス切り換え回路40
を通ったアドレス、即ち、CPU (MCPUIOか5
CPU20)から出力されたアドレス(論理アドレス)
を選択的に変更して外部データメモリ90に実際に入力
されるアドレスを形成するものであり、データ変換回路
70は外部データメモリ90から出力されたデータを選
択的に変更してCPU(MCPUIOか5CPU20)
に実際に入力されるデータを形成するものである。各変
換回路60.70における変換の態様を指定するために
、制御信号が使用される。各CPUl0120において
、外部データメモリ90に対するデータアクセスは転送
命令を実行することで行われる。転送命令に基づいてC
PUで生成される制御信号をMI’i1.MR2、MR
3(MCPUIOの場合)、SR1,SR2、SR3(
SCPU20の場合)で示しである。これらの信号は外
部メモリアドレスチッチ30、アドレス切り換え回路4
0を通った後、信号R1,R2、R3と呼ばれる(MR
i −+ LMRi→RiまたはSRi→LSRi−+
Ri)、変換の態様を指定するため、制御信号R1,R
2がアドレス変換回路60に入力される。更に、データ
変換回路70における変換の態様を特足するため制御信
号R1、R2、R3とアドレス変換回路60からのアド
レスビット12の信号A12とアドレスビット15の信
号A15がデータ変換回路70に加えられる。アドレス
変換回路6oとデータ変換回路70の詳細については後
述する。
MCPUIOと5CPU20との間のインタフェースを
定めるため、両CPU間で複数の信号が伝送される。信
号AはMCPUIOから5CPU20に送られる5CP
U20の処理開始を表わす信号、信号Bは5CPU20
からMCPUIOに送られる5CPU20の処理終了を
表わす信号、MaはMCPUIOから5CPU20に送
られる5CPU20の内部メモリ(第3図の206)の
アドレス情報、信号CはMCPUIOから5CPU20
に送られる5CPU20の内部メモリの読み書き制御信
号、Dinは5CPU20からMCPUIOに送られる
5CPU20の内部メモリからの読出しデータ、DOυ
丁はMCPUIOから5CPU20に送られる5CPU
20の内部メモリへの書き込みデータを表わす、CPU
間イフィンタフエース細については後述する。
上述したように音源処理によりMCPUIOと5CPU
20とでデジタル楽音信号が生成される。生成結果ハM
CPU I Oカラ、右DAC100Rと左DAC10
0Lとから成るデジタルアナログ変換器(DAC)10
0に送られ、アナログ楽音信号に変換されて外部に出力
される。
<MCPUと5CPUの構成(第2、第3図)〉第2図
にMCPTJIQの内部構造を示し、第3図に5CPU
20の内部構造を示す。
第2図において制御用ROM102には楽器の各種制御
入力を処理するメインプログラムと楽音を生成するイン
タラブド処理プログラムが記憶されており、ROMアド
レス制御部114からROMアドレスデコーダ104を
介して指定されたアドレスにあるプログラム語(命令)
をインストラクション出力ラッチl02aを介して順次
出力していく、なお、具体的実施例では、プログラム語
長は28ビツトであり、プログラム語の一部が次に読み
出されるべきプログラム語を記憶するアドレスの下位部
(ページ内アドレス)としてROMアドレス制御部11
4に入力されるネクストアドレス方式となっているが、
代りにプログラムカウンタ方式を使用してもよい、RA
Mアドレス制御部114は制御用ROM102からの命
令のオペランドがレジスタを指定している場合に、RA
M106内の対応するレジスタのアドレスを指定する。
RAM106は演算用メモリを構成するレジスタ群であ
り、汎用演算、フラグ演算、楽音の演算等に使用される
。ALU部(加減算器及び論理演算部)108と乗算器
110は制御用ROMIO2からの命令が演算命令のと
きに用いられる。
特に乗算器110は楽音波形の演算に使用しており、そ
のための最適化として第1と第2のデータ入力(例えば
16ビツトデータ)を乗算して入力と同じ長さ(16ビ
ー2ト)のデータを出力するようになっている。上記R
AMl0&、加減算器108、乗算器110により、演
X回路が構成される。オペレーション制御回路112j
ま制御用ROM102からの命令のオペコードを解読し
、指示されるオペレーションを実行するために、回路の
各部に制御信号(全体をCNTRで示す)を送る。また
条件付分岐命令の実行の際にオペレーション制御@路1
12はALU部108からのステータス信号S(例えば
オー7ヘーフロー信号、ゼロフラグ信号等)により分岐
条件成立を検出して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とCR
2を受け、オペレーション制御回路112を初めとする
回路の各部に加える種々のタイミング信号(T1.T2
、T3、TlCK1、T2CK2、T3CK3等)を発
生する。
第2図の残りの要素はMCPU 20の外部装置とのイ
ンタフェースに係っている。122は外部メモリアクセ
ス用アドレスバスMA(第1図)にMCPU内部バスを
接続するためのパスインタフェースとしてのゲートを表
わし、124は外部メモリデータバスMDにMCPU内
部バスを接続するためのゲートを表わし、126はDA
Cデータ転送バスにMCPU内部パスを接続するための
ゲートを表わす、また、入力ポート118と出力ポート
120はMCPU内部パスを外部の入力装置に結合する
ためのインタフェースである。128は5CPU内部R
AMアドレス指定パスにMCPU内部バスを接続するた
めのゲート、130は5CPU内部RAM書込データバ
スにMCPU内部パスを接続するためのゲー)、132
は5CPU内部RAM読出データ/曳スをMCPU内部
/(スに接続するためのゲートを表わす。
5CPUリセット制御部134は5CPU20の動作期
間を管理するためのデバイスである。この実施例に従い
5CPUリセット制御部134はインタラブド発生部1
16からのインタテブト信号INTに応答して、5CP
U20の処理開始を示す信号Aを発生する。この信号A
は5CPU20のROMアドレス制御部214(第3図
)に送られ、これによりROMアドレス制御部214の
アドレス更新動作が開始し、5CPU20の動作(音源
処理を含む)が開始する。5CPU20の動作が終了す
ると5CPU20のオペレーション制御回路212から
処理終了を示す信号Bが発生し、この信号Bが5CPU
リセット制御部134に送られる。これに対し、5CP
Uリセット制御部134は5CPU20の動作を停止す
るために信号Aを反転し、これにより5CPU20のR
OMアドレス制御部214の動作を停止させる、ととも
に、5CPU20が停止中であることを表わす5CPU
状態フラグ信号をオペレーション制御回路112に送る
。オペレーション制御回路112は制御用ROM102
からの5CPU状態の検査命令の実行時に、この5CP
U状態フラグ信号を読むことにより、5CPU20の状
態を検出できる。
第3図の5CPU20のブロック図において要素202
.202a、204.205.206.208.212
.2!4.222.224.236はそれぞれ、第2図
のMCPUIOのブロック図における要素102.10
2a、104.105.106.108.110.11
2.114.122.124.136に対応する要素で
ある。ただし、5CPU20の制御用ROM202には
基本的に音源処理のためのプログラムのみが記憶されて
おり、5CPU20を音源処理専用の処理装置として機
能させている。
240は5CPU20の演算用メモリとしてのRAM2
0Bへ入力するデータをMCPUIOからのデータ(M
CPUIOからゲート130、データバスD OUT 
を通ったデータ)と5CPU20の生成(演算)したデ
ータ(ALU部20Bまたは乗算器210からのデータ
バスDB上のデータ)とから選択するRAMデータイン
切り換え部である。RAMデータイン切り換え部240
は信号Aによってその選択モードが制御され、信号Aが
“5CPU20動作中”を表わしているときには5CP
U20で演算したデータを選択し、信号Aが“5CPU
20停止中”を表わしているときにはMCPUIOから
のデータを選択する。
また、RAMアドレス制御部205も、信号Aによって
そのモードが制御され、信号Aが“5CPU20動作中
”を表わしているときには制御用ROMのインストラク
ション出力ラッチ202aからのバスSA上の情報をR
AM206のアドレスとして選択し、信号Aが″5CP
U20停止中”を表わしているときにはMCPUIOか
らパスゲー)128(信号Aにより開いている)を経て
バスMa上にあるMCPUIOからの情報をRAM20
6のアドレスとして選択する。同様に。
ライト信号切り換え部242も信号Aによってそのモー
ドが制御され、信号Aが“5CPU2.O動作中”を表
わしているときには5CPU20のオペレーション制御
回路212からのRAMリードライト信号を選択してR
AM206のリードライト入力R/Wに結合し、信号A
が“5CPU20停止中”を表わしているときには5C
PU20ではなくMCPUIOのオペレージ冨ン制御回
路l12からのSCPURAMリードライト信号を選択
してRAM206のリードライト入力R/Wに結合する
以下1本実施例の諸特徴を更に詳細に説明する。
く複数CPU音源機能(第1〜第7図、第9〜第11図
)〉 第4図はMCPUIOのメインプログラム(パックグラ
ンドプログラム)によるMCPU 10の動作を示すフ
ローチャート、第5図はタイマインタラブド信号INT
によって起動されるMCPUlOのインタラブド処理ル
ーチンによるMCPUloの動作を示すフローチャート
、第6図はタイマインタラブド信号INTによって起動
される5CPU20のプログラムによる5C−PU20
の動作を示すフローチャート、第7図はMCPUIOと
5CPU20のそれぞれが実行する音源処理のフローチ
ャートである。
第1〜第3図に関して述べたように、本実施例の電子楽
器処理システムはMCPUIOと5CPU20とから成
る複数のCPUを備えており、両CPUが協働して電子
楽器のための処理を実行する。特にMCPUIOは、第
5図に示すようなインタラブド処理ルーチンにより音源
処理を行い。
SCPυ20は146図に示すようなプログラムにより
音源処理を行う、更にMCPUIOは第4図に示すメイ
ンプログラムにより、システム全体の制御のための種々
のタスクを実行する。
第4FIIJのメインプログラムのフローにおいて、4
−1は電源投入時にシステムを初期化する処理であり、
MCPUIOはRAM106、RAM206のクリアや
、リズムテンポ等の初期値の設定等を行う、4−2でM
CPUIOは出力ポート120からキー走査のための信
号を出力し、f11g!、機能スイッチ等の入力装置の
状態を入力ポート118から取り込むことにより、機能
キー、鍵盤キーの状態を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図に示すインタラブド処理ルーチンを
実行し、5CP020は第6図に示すプログラムを実行
する。ここにMCPUIOは第5図のフローにおいて楽
音信号を生成し、5CPU20は86図のフローにおい
て楽音信号を生成するようになっている。
詳細に述べるとMCPUIOは5−1で各チャンネルに
対する楽音波形データを生成し、累算し、記憶する。従
来はこの処理を音源回路ハードウェアで行っていた0次
のインタラブド処理タイマ処理5−2でMCPUIOは
インタラブドが一定時間ごとにかかることを利用して、
フロー−周計時用のタイマレジスタ(RAM106内)
を通過の都度、プラス1する。5−3でMCPUIOは
5CPU20の音源処理6−1が終了しているかどうか
を検査し、終了していれば、5−4に進んで、5CPU
20で生成されたRAM206上の楽音波形データをR
AM106内に読み込む。
モして5−5でMCPUIOはMCPUIOの生成した
楽音波形データと5CPU20で生成した楽音波形デー
タをDAClooに出力する。
音源処理5−1.6−1の詳細を第7図に示す0本例で
は、各cPU (MCPUIO,SCPU3O)はそれ
ぞれ8チャンネル分の楽音波形データを生成可能であり
、システム全体として16チヤンネル分の楽音波形デー
タを生成可能としている。7−1で波形加算用RAM領
域(RAMI06内、RAM206内)をクリアし、7
−2〜7−9で第1チヤンネルから第8チヤンネルまで
の各チャンネル音源処理を順次実行する。各チャンネル
音源処理の最後で、チャンネルの楽音波形値が波形加算
用RAM領域のデータに加算される。
次にチャンネル音源処理の例について第9図〜第11図
を参照して説明する。この例では、波形読み出しく P
 CM)方式の楽音合成を採用している(他の楽音合成
方式、例えばFM合成も実現可能であり、この発明は特
定の楽音合成方式には制限されない)、チャンネル音源
処理は太きくわけて、エンベロープ処理(9−1〜9−
7)と、エンベロープ付加を含む波形処理(9−8〜9
−21)とから成る。各CPU (MCPUI O,5
CPU20)はチャンネル音源処理を実行する際に、そ
のチャンネルに対する音源処理レジスタ群、即ち第11
図に示すように、エンベロープΔχ用タイマー、目標エ
ンベロープ、エンベロープΔX、加減フラグ付エンベロ
ープΔy、WL在xン< * −7’ 、アドレス加算
値、ループアドレス、エンドアドレス、スタートアドレ
ス兼現在アドレスを参照し、所望のレジスタを更新する
。エンへロープは振幅変調のために基本波形に付加すべ
きもので、全体としていくつかのセグメント(ステップ
)から成っている。エンベロープΔX用タイマート目標
エンベロープとエンベロープΔXと加減フラグ付エンベ
ロープΔyは現在進行中のエンベロープセグメントを定
義するエンベロープパラメータであり、このエンベロー
プパラメータは1MCPUl0のメインプログラム(第
4図)の発音処理4−9内において、エンベロープ値が
セグメントの目標価に到達の都度、更新される情報であ
り、インタラブド処理ルーチン(第5図、第6図)では
これらのエンベロープパラメータはエンヘロープΔχ用
タイマーを除いて単に参照されるだけである。エンベロ
ープΔXはエンベロープの演算周期を表わし、目標エン
ベロープは現セグメントにおけるエンベロープの目標値
を表わし、加減フラグ付エンベロープΔyは演算周期ご
とのエンベロープの変化分を表わし、現在エンベロープ
は現在のエンベロープ値を表わす、アドレス加算値、ル
ープアドレス、エンドアドレス及びスタートアドレス兼
現在アドレスは外部メモリ90に置かれる基本波形に対
するアドレス情報であり、スタートアドレスは基本波形
メモリ(外部メモリ90内)のスタートアドレス、ルー
プアドレスは基本波形を繰り返し読み出す場合の戻り先
のアドレス(第1θ図ではスタートアドレスと同一)、
エンドアドレスは基本波形のエンドアドレスを表わし、
現在アドレスは基本波形の現在の位相を表わすアドレス
であり、その整数部が、基本波形メモリに現実に存在す
る記憶場所を表わし、その小数部が、この記憶場所から
のずれを表わし、アドレス加算値はタイマインタラブド
処理ルーチンの時間間隔ごとに現在アドレスに加算され
るべき値であり、生成する楽音のピッチに正比例する。
詳細に述べると、9−1でエンベロープの演算周期Δ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倍にしている(第1θ図)、シたが
って、アドレス加算値が0.5のとき、A4の音が得ら
れるようになっている。この場合、A#4ではアドレス
加算値は0.529となり、A3のとき、1となる。こ
れらのアドレス加算値はピー2チデータとして制御デー
タ兼波形外部メモリ90内に記憶されており、押鍵時に
は発音処理4−9において、鍵に対応するピッチデータ
と選択されている音色の波形スタートアドレス、波形エ
ンドアドレス及び波形ループアドレスがRAM106ま
たはRAM206の対応するレジスタ、すなわち、アド
レス加算値レジスタ、スタートアドレス兼現在アドレス
レジスタ、エンドアドレスレジスタ、ループアドレスレ
ジスタにセットされる。
参考までに、第1O図に時間に対する補間波形データを
示す0図中、白丸は基本波形メモリの記憶場所にある波
形データ値、x印は補間値を含む出力サンプルを示して
いる。
補間の方式はいろいろあるが、ここでは直線補間を採用
している。詳細に述べると、まず、98で現在アドレス
にアドレス加算値を加算して新しい現在アドレスを得る
。9−9で現在アドレスとエンドアドレスを比較し、現
在アドレス〉エンドアドレスならば、9−10.9−1
1により、現在アドレス〈エンドアドレスのときは9−
12により、物理上(番地上)または論理上(動作上)
の次のアドレスを計算し、9−14でその整数部により
基本波形メモリをアクセスして次回波形データを得る。
ループアドレスは動作上エンドアドレスの次のアドレス
である。すなわち、第10図の場合、図示の波形は繰り
返し読み出される。したがって、現在アドレス=エンド
アドレスのときは次のアドレスとしてループアドレスの
波形データを読み出す(9−13)、9−15.9−1
6により、現在アドレスの整数部で基本波形をアクセス
して今回の波形データを読み出す0次に、9−17で次
回波形値から今回波形値を減算し、9−18でその差に
現在アドレスの小数部を乗算し、その結果を9−19で
今回の波形値に加えることにより、波形の直線補間値を
求める。この直線補間したデータに現在エンベロープ値
を乗算してチャンネルの楽音データ値を得(9−20)
、それを波形加算用レジスタの内容に加えて楽音データ
を累算する(9−21)、このレジスタに累算されたデ
ジタル楽音データがタイマインタラブド処理ルーチン(
145図)の5−5でDAClooに送出される。これ
に関連し、第1図ではDACI OOはステレオ出力を
得るべく右DAC100Rと左DAC100Lから成っ
ている。
この場合、MCPUIO,5CPU20の処理する音源
チャンネルの夫々を左右のDACのいずれに割り当てる
かを決めるようにするとよい、具体的には、各チャンネ
ル用の音源データとして内部RAM1t)6.206上
に、選択1)AC指示データをもたせ、また、2つの波
形加算用領域、即ち、左DAC用波形加算用領域と左D
AC用波形加算用領域を設ける。また、7−1に対応す
るステップで左右のDAC用の各波形加算用領域をクリ
アし、9−20の処理の後、処理チャンネルに割り当て
ているDACを選択DAC指示データから判別し、対応
する波形加算用領域に処理チャンネルの楽音波形データ
を加算する。そして、MCPUIOのインタラブド処理
ルーチン(第5図)のステップ5−4に対応するステッ
プで、5CPU20の生成した左DAC用楽音波形デー
タと右DAC用楽音波形データとをそれぞれMCPUI
Oで生成した左DAC用楽音波形データと右DAC用楽
音波形データに加算し、加算結果である左DAC用と右
DAC用の楽音波形データを5−5に相当するステップ
で、それぞれ左DAC100Lと右DAC100Rに送
出する。
このように、本実施例の電子楽器用処理装置はMCPU
IOと5CPU20という複数のCPUを有し、各CP
Uにおいて、内蔵されるプログラムに従って音源処理を
実行することができる。なお実施例では1つの5CPU
を使用しているが、音源処理を行う複数の5CPUを設
けるようにしてもよい。
<5CPU動作開始・終了機能(第12〜第15図、第
2〜第6図、第8図)〉 本実施例によればMCPUIOは5CPU20の動作期
間を管理1把握する機能を有している。
この目的のため、 (イ)MCPUIOはタイマ争インタラブド発生部11
6からインタラブド信号が発生したときに、これを合図
として5CPU20の動作を開始させ、MCPUIOの
オペレーション制御回路112が参照する5CPU状態
フラグを″5CPU動作中”にセットする。
(ロ)SCPU20は動作(音源処理)を完了したとき
に、これに応答して停止状態に移行し、MCPUIOに
動作完了信号を送り、MCPUIOのオペレーション制
御回路112が参照する5CPU状態フラグを“5CP
U停止中”にセットする。
第2図〜第6図を参照すると、MCPUIOはメインプ
ログラム(第4図)の実行中に、インタラブド発生部1
16(第2図)からインタラブド信号を受けると、RO
Mアドレス制御部114を介してメインプログラムを中
断し、楽音生成のために第5図に示すタイマインタラブ
ド処理ルーチンを実行する。更に、MCPUloはイン
タラブド信号に対し、5CPUリセー、ト制御部134
を介して5CPU20に5CPU動作開始信号Aを送り
、これを受けて5CPU20はROMアドレス制御部2
14を介して第6図に示す楽音生成のためのプログラム
を実行する(なお信号Aにより、/へスゲート12B、
RAMアドレス制御部204、RAMデータイン切り換
え部240、ライト信号切り換え部242も、5CPU
20自身の動作のためにセー、トされる)。このプログ
ラムの終了に伴い、5CPU20はオペレーション制御
回路212から動作終了信号Bを発生する。この信号B
は5CPUリセット制御部134に送られ、これを受け
て5CPUリセット制御部134は5CPU20の動作
を停止するために信号AとBを反転する0反転された信
号Aを受けて5CPU20のROMアドレス制御部21
4のアドレス更新動作が停止し、5CPU20は停止す
る。また信号Bは“5CPU停止中”を示す信号として
MCPUIOのオペレーション制御回路112に与えら
れる。MCPUIOのインタラブド処理ルーチン(第5
図)の5−3に示す5CPU状態検査命令を実行する際
、MCPUIOのオペレーション制御回路112は5C
PU状態フラグBを読む、フラグBが“5CPU停止中
”を示し、したがって、5CPU20での音源処理(第
6図)が完了しているときにMCPUIOは5−4に進
んで5CPU20の生成した楽音波形データを読み込む
、MCPUloは第5図のインタラブド処理ルーチン終
了時にオペレーション制御回路112からROMアドレ
ス制m部114にメインプログラムへの復帰コマンド信
号を与えて、中断していたメインプログラムに制御を戻
す。
第8図に、時間の流れに沿う本実施例の動作の流れを示
す、A−Fはメインプログラムの断片である。5A〜5
Fは第5図のMCPUインタラブド処理ルーチンを表わ
し、6A〜6Fは第6図の5CPUインタラブド処理ル
ーチンを表わす0図示のように、インタラブド信号IN
Tが発生すると、MCPUIOは実行中のプログラムを
中断し、インタラブド処理が各CPUl0120におい
て開始し、音源の並行処理が実行される。
第12図に上述した5CPUの動作開始・終了機能を実
現する構成を詳細に示し、第13図〜第15図にその動
作のタイムチャートを示す、第13図のタイムチャート
において、CKI、CK2はMCPUIOと5CPU2
0におけるクロック発生回路136,236に入力され
る2相のマスタークロックであり、このマスタークロッ
クCK1、CK2からクロック発生回路136はMCP
UIO動作のための基本タイミングを与える3相のクロ
ックT1、T2、T3を生成する。この3相クロツクの
繰り返し周期がマシンサイクル(最短の命令実行時間)
を定める。クロックTlCK1、T2CK2.T3CK
3はそれぞれ、TIとCKI、T2とCK2、T3とC
K3の論理積信号である。オペレーションラッチ信号は
MCPUIOの制御用ROM102のインストラクショ
ン出力ラッチ102aにROM102からのインストラ
クションをラッチさせるための信号である。
第13図には図示しないが、5CPU20のクロック回
路236も同様のクロック信号を生成する(第3図、第
25図参Il!!り、なお、MCPUIOと5CPU2
0に共通のクロック発生回路を使用してもよい。
第12図において、点線16の右側は5CPU20であ
り左側はMCPUIOである。左側の要素のうち、ラッ
チL1、ラッチL2、ゲー)1142〜1154はMC
PUIO(第2図)のROMアドレス制御部114に含
まれる回路要素である。ラッチLlにはMCPUIOの
実行すべき次の命令のROM102アドレス情報AN 
(ROM102からの現命令に含まれる情報)がクロッ
クTICKIでラッチされる。メインプログラム(第4
図)の実行中、ラッチL1の出力は次アドレスBNとし
てMCPUIO(7)ROMアドレスデコーダ104に
入力される。即ち、ラッチLlの出力はインバータ11
44.3状態イン八−タゲ−)114B(イネーブルさ
れている)を通ってROMアドレスデコーダ104への
アドレス入力BNとなる。ここでインタラブド発生部1
16からインタラブド信号INTが発生すると、この信
号INTを受けるORゲート1154から、インバータ
1148を介してラッチLlの出力側にある3状態イン
バータゲート1146をオフ(/\イインピーダンス)
にする信号が加えられ、代りに、ORゲー)1154か
らの信号により、割込入ロ/戻先アドレス選択ゲート1
150の出力側にある3状態インバータゲー)1152
がゲート1150の出力をROMアドレスデコーダ10
4のアドレス人力BNに通す0割込入ロ/戻先アドレス
選択ゲー)1150はインタラブド信号IN丁とラッチ
L2からの出力信号を受けるNORゲート群で構成され
、“H″のインタラブド信号■NT発生時に、インタラ
ブド処理ルーチン(w45図)の入口(エントリポイン
ト)を表わすオール“θ″の信号を出力し、この信号は
3状態インバータゲー)1152で反転されて、オール
“!”の信号BNとしてMCPHのROMアドレスデコ
ーダ104に入力される。そして次のオペレージ冒ンラ
ッチ信号により、制御用ROM102からインストラク
ション出力ラッチ102aにインタラブド処理ルーチン
の最初の命令がフェッチされる0以上により、MCPU
IOの制御がインタラブド処理ルーチンに移る。
更に、インタラブド発生部116からのインタラブド信
号INTはクロー、りT2CK2のタイミングでAND
ゲート1142を通り、ラー7チ信号としてラッチL2
を動作させる。これにより、う7チL2はパスAN上に
あるメインプログラムの次命令のアドレスをラッチにI
iりしてメインプログラムを中断させる。
更にインタラブド発生部116からのインタラブド信号
INTは5CPUリセット制御部134に供給される。
5CPUリセット制御部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出力、即ち5CPU状態フラグが“L
” (SCPU停止中を示す)から“H” (SCPU
動作中を示す)に変化する。信号Aは、5CPU20に
おける次命令のアドレスSANをラッチするためのラッ
チL3にリセット解除信号(ラッチL3のイネーブル信
号)として入力される。この結果、ラッチL3は次のク
ロックTlCK1のタイミングでバスSANに乗ってい
る5CPUプログラム(第6図)の最初の命令のアドレ
スをSBNとして5CPU20のROMアドレスデコー
ダ204に入力する。このようにして、インタラブド発
生部116からのインタラブド信号INTに応答して5
CPU20の動作が開始し第6図に示す音源処理が実行
される。
5CPU20が音源処理の最後の命令を実行する際、5
CPU20のオペレーション制御回路112の内部で動
作終了信号(復帰コマンド信号)SRTが発生する。こ
の信号SRTはDフリップフロップ2122にクロック
T2CK1のタイミングで取り込まれた後、次のTIC
KIのタイミング(次のダミー命令のラッチタイミング
)で動作するNANDゲート2124で反転され、ロー
パルスの動作終了信号Bとして5CPUリセット制御部
134のR−Sフリップフロップ1346をリセットす
る。この結果、R−Sフリップ20ツブ1346の延出
力、即ち、信号Aは“L”から”H”に切り換り、Q出
力、即ち、5CPU状態フラグは5CPU動作中を示す
“H″から5CPU20停止中を示す“L”に切り換る
。“H”レベルの信号A(リセット信号)により、チー
2チL3の動作は禁止され、ラッチL3出力、つまり、
アドレスデコーダ204の入力はダミー命令の(Nor
命令)のアドレスに固定される。このときラッチL3の
入力パスSANには5CPU音源処理プログラム(第6
図)の最初の命令のアドレス情報(NOP命令語に含ま
れる)が乗っている。
MCPUIOはインタラブド処理ルーチン(@5図)の
5CPU状藤検査命令5−3の実行時にオペレーション
制御回路112を介して5CPU状態フラグのレベルを
検査し、5CPUの停止中、即ち5CPU20の音源処
理の完了を確認してから、5CPU20の処理結果であ
る楽音波形データをRAM206からRAM106に読
み取る(5〜4)、これによりMCPUIOは5CPU
20の正しい処理結果を効率よく得ることができる。
MCPUIOはインタラブド処理ルーチンの最後の命令
の実行時に、オペレーション制御回路l12かも復帰コ
マンド信号RTのパルスを発生する。この信号パルスR
TはORゲート1654、インバータ1148を通って
、ラッチLlの出力側のアドレスゲー)1146を一時
的にオフし、代りに、ラッチL2に結合する割込人ロ/
戻先アドレス選択ゲート1150の出力側にあるアドレ
スゲー)1152を一時的に開く、この時点で、割込入
ロ/戻先アドレス選択ゲー)1150はラッチL2に退
避してあった中断されたメインプログラムの命令のアド
レスを反転して通すインバータとして働き、このゲー)
1150の反転出力が信号パルスRTによりインバータ
として働く3状態ゲー)1152において再度反転され
る。この結果、MCPUIOのROMアドレスデコーダ
lO4には中断されていたメインプログラムの命令のア
ドレスが入力され、次のオペレーションラッチ信号によ
り、制御用ROM102からインストラクション出力ラ
ッチ102aを介してその命令が取り出される。このよ
うにして、MCPUIOの制御はメインプログラムに復
帰する。
以上のように、本実施例の電子楽器処理装置は、MCP
UIOによる5CPU20の動作期間の管理を5CPU
リセ−7ト制御部134のような簡単な管理インターフ
ェース構成を設けることで効率よく、確実に行うことが
できる。
く複数データ転送〉 CPUを用いたある種のアプリケーションでは、CPU
はメインプログラム(第1のプログラム)の実行におい
て複数のデータを更新し、インタラブド処理ルーチン(
第2のプログラム)の実行において、その処理の目的の
ためにこれら複数のデータを参照する。これはメインプ
ログラムからインタラブド処理ルーチンへデータを渡す
問題である。このような複数のデータは、インタラブド
処理ルーチンによってメインプログラムが中断される前
に、メインプログラムにおいて全てのデータを更新しな
ければならない、メインプログラムが複数のデータの一
部だけを更新した時点で中断きれてインタラブド処理ル
ーチンにCPUの制御が移ってしまうとインタラブド処
理ルーチンの処理結果は誤ったものになる。
本実施例の電子楽器処理装置の場合も、MCPUIOの
メインプログラム(第4図)からMCPUIOのタイマ
インタラブド処理ルーチン(第5図)(及び第6図に示
す5CPU20のタイマインタラブド処理ルーチン)に
渡す複数のデータがある。エンベロープ△X(エンヘロ
ープsx周期)、 加減フラグ付エンベロープ△V(エ
ンベロープ変化分)目標エンベロープから成るエンベロ
ープパラメータはその例である。データ源である外部デ
ータメモリ90はエンベロープのセグメント(例えばア
ター、クセグメント、デイケイセグメント、サスティン
セグメント等)ごとにエンベロープパラメータを記憶し
ている。MCPUloのメインプログラムは発音処理4
−9において、押鍵(ノートオン)あるいはインタラブ
ド処理ルーチンのチャンネル音源処理(第9図)内で検
出されたエンベロープの目標値への到達(9−6,9−
7参照)に応答して所定のセグメントにつl/1てのエ
ンベロープパラメータ(新しい目標エンヘロブ、エンベ
ロープ△x、加[)7 り付エンヘロープΔy)を外部
データメモリ90から取り出してMCPU内部RAM1
06(または5CPU内部RAM206)の対応するチ
ャンネル合音処理レジスタにセットすることによって複
数のデータから成るエンベロープパラメータを更新する
必要がある。このような複数のデータはインタラブド発
生部116からのインタラブド信号INTによってメイ
ンプログラムが中断される前に、メインプログラムにお
いて更新を完了させておかなければならない。
このような複数のデータ転送(更新)の問題を解決する
ために、本実施例では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と5CPU20によって共用される外部メモリであ
り、そのデータアクセス時間が内部RAM相互のデータ
転送時間より長くなること等による。ブロー7り172
の機能は外部データメモリ90から内部RAM100へ
の複数のデータ転送命令を順次実行することで処理され
る。
転送パー2フアからチャンネル音源用レジスタ群(イン
タラブド処理ルーチンにおいて参照される)へのデータ
転送はブロック17−4で実行される。このデータ転送
中にMCPUIOの制御がタイマインタラブド処理ルー
チン(第5図)に移行しないようにするため(あるいは
5CPU20の制御が第6図のプログラムに移行しない
ようにするため)、MCPUloはブロック17−4に
先立ってブロック17−3でインタラブドをマスクする
命令を実行する。このインタラブドマスク命4の実行中
に、MCPU 10のオペレーション制御回路112か
らローアクティブのマスク信号MASKが発生する。こ
のマスク信号MASKはインタラブド発生部116から
のインタラブド信号INTをマスクして、インタラブド
処理ルーチン(第5図、第6図)への制御の移行を禁止
するように作用する。この目的のため、第16図におい
て、インタラブド発生部116に結合するマスク解除特
機部150が設けられる。マスク解除特機部150は図
示のように結合したR−Sフリップフロップ1502、
ANDゲート1504.及びDフリップフロップ150
6を含む。
マスク信号MASKがマスク解除を示す“H″レベルと
き、インタラブド発生部116からのインタラブド信号
INTにより、R−Sフリップフロップ1502がセッ
トされ、その出力がH”のMASKによりイネーブルさ
れているANDゲートを通って、Dフリップフロップ1
506にTICKIのタイミングで取り込まれ、このD
フリップフロップ1506の出力か、実際のインタラブ
ド信号A−I NTとしてMCPUIOのROMアドレ
ス制御部114に入力される。その結果、5CPU動作
開始・終了機能のところで述べたように、ROMアドレ
ス制御部114のゲー)1152からROMアドレスデ
コーダ104にインタラブド処理ルーチン(第5図)の
エントリポイントのアドレスが入力されるとともに、次
のメインプログラム命令のアドレスがパスANからラッ
チL2に退避されて、MCPUIOの制御がインタラブ
ド処理ルーチンに移行し、メインプログラムは中断され
る。また、信号A−I NTは5CPUリセット制御部
134に入力され、その結果、5CPU動作開始・終了
機能のところで述へたように5CPU20のプログラム
(第7図)動作が開始する。Dフリップフロップ150
6からのHレベルの出力はR−Sフリップフロップ15
02をリセットし、その結果、次のTICKIのタイミ
ングでDフリップフロップ1506の出力(マスク解除
特機部150の出力)はLレベルに切り換る。
これに対し、第17図の17−3に示すようにインタラ
ブドマスク命令の実行により、オペレーション制御回路
112からローアクティブのマスク信号MASKがマス
ク解除特機部150に入力される場合には、インタラブ
ド発生部116からのインタラブド信号はANDゲート
1504によってマスクされる。その結果、マスク解除
特機部1504はマスク信号MASKがローアクティブ
の間、その出力A−I NTを“L”の割込禁止レベル
にし、ROMアドレス制御回路114の通常動作を継続
させ、MCPUIOに対するメインプログラムの制御を
続行させる。
したがって、ブロック17−4に示す転送命令群(及び
エンベロープΔχ用タイマーのクリア命令)の実行は、
実行の途中で、インタラブド発生部116からインタラ
ブド信号INTが発生した場合にも中断されない、これ
により、インタラブド処理ルーチン(第5図、第6図)
は正しく更新されたエンベロープパラメータを参照でき
、正しい演算結果(楽音波形データ)を得ることができ
る。
しかる後、MCPUIOはブロック17−5に示すイン
タラブドマスク解除命令を実行する。この結果、オペレ
ーション制御回路112からマスク解除特機部150に
供給される信号MASKはマスク解除を示す“H”レベ
ルに切り換る。複数のデータ転送を含むブロック17−
4の実行中に、インタラブド発生部116からインタラ
ブド信号が発生したような場合には、マスク解除特機部
150のR−Sフリップフロー2プ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に対応する)はロング命令の実
行に適するように構成され、列アドレスを最初の転送の
列アドレスから最後の転送の列アドレスまでデータ転送
の都度、1ずっ更新するカウンタ(その出力がRAMの
列アドレス入力に順次加えられる)と、すべてのデータ
転送が完了したことを検出するためカウンタ出力と最後
のデータ転送の列アドレス値とを比較し、一致したとき
にロング命令実行完了信号を発生する一致回路とを含ん
でいる。
以下の説明において、本実施例の制御用ROM102の
メインプログラム内には上述したようなロング命令が含
まれるものとし、RAMアドレス制御部105,205
は上述したようにロング命令の実行を適用できるように
構成されているものとする。
第18図にロング命令の実行中、インタラブド信号IN
Tによるメインプログラムの中断を禁止する回路を含む
ハードウェアのブロー、り図を示し、第19図にロング
命令をエンベロープパラメータの転送に適用した場合の
RAMのメモリマー2ブを示し、第20図にロング命令
(単一転送命令)と複数の転送命令との動作の比較を示
し、第21図にロング命令を使用したエンベロープパラ
メータの転送に関連するフローチャートを示す。
第18図において、インタラブド発生部116に転送終
了特機部152が結合している。この回路152はロン
グ命令の実行中、インタラブド信号によるメインプログ
ラムの中断を禁止する。転送終了特機部152は図示の
ように結合されたR−Sフリップフロップ1522、A
NDゲート1524、Dフリー、プフロー、プ1526
から成り、Dフリップフロップ1526の出力(転送終
了特機部152の出力)が実際に作用するインタラブド
信号A−INTとしてROMアドレス制御部214と5
CPUリセット制御部134に結合している。ANDゲ
ー)1524に入力される信号〜LONGが“L″の間
は、インタラブド発生部l16からインタラブド信号I
NTが発生しても、Dフリップフロップ1526の出力
はL″のままであり、ROMアドレス制御部214と5
CPUリセット制御部134はインタラブド信号INT
の作用を受けない、ここに、信号〜LONGはロング命
令の実行中に“L”となる信号であり、ロング命令の実
行完了に伴ってRAMアドレス制御部104の一致回路
から発生するロング命令実行完了信号に応答して“H”
に復帰する。信号〜LONGのレベルがH”のときには
、インタラブド発生部116からのインタラブド信号I
NTは転送終了待機wA152を通ってROMアドレス
制御部214と5CPUリセツト制御@134に作用し
、MCPUIOの制御をメインプログラム(第4図)か
らインタラブド処理ルーチン(第5図)に移行させ、5
CPU20のプログラム(第6図)動作を開始させる。
エンベロープパラメータの更新に一命令方式を適用する
場合において、インタラブド処理ルーチン(第5図、第
6図)のチャンネル音源処理サブルーチン(第9図)が
参照し、メインプログラムのエンヘロープ処理サブルー
チン(第21図)が設定(更新)するエンベロープパラ
メータはエンベロープΔχ用タイマー、新目標エンベロ
ープ、新エンベロープΔx、 新加減フラク付エンヘロ
ープΔyである0本実施例において、これらのエンベロ
ープパラメータのデータ源は外部メモリ90[1図)に
ある、エンベロープパラメータの更新の際に(21−1
)、外部データメモリ90から内部RAM106.20
6のチャンネル音源データ領域への直接の転送は望まし
くないので、外部データメモリ90からのエンベロープ
パラメータはいったん内部RAM106内の転送用バッ
ファ領域に移しく2l−2)、次に、転送用バッファ領
域からチャンネル音源データ領域に移す(21−3)。
この転送用バッファ領域からチャンネル音源データ領域
へのデータ転送処理21−3に上述したロング命令が使
用される。ロング命令を適用するために、転送用バッフ
ァ領域はRAM上の連続した領域であることを必要とし
、同様にエンベロープパラメータのチャンネル音源デー
タ領域も連続した領域であることを必要とする。この例
を第19図に示す、ここでは、エンベロープパラメータ
の転送用バッファ領域は、レジスタx4〜X7の連続領
域にマツピングされエンベロープパラメータについての
1チヤンネル音源データ領域はレジスタA4〜A7の連
続領域にマツピングされていル、シたがって、1チヤン
ネルでエンベロープパラメータを更新する必要のあると
きには、21−3で、レジスタx4〜x7をレジスタA
4〜A7に転送するロング命令を実行すればよい、この
命令が実行されている間は、上述したようにインタラブ
ド信号INTがインタラブド発生部116から発生して
も、転送終了特機部152のロング命令完了待機機能に
より、ロング命令が終了するまではインタラブド信号の
作用がROMアドレス制御部114.5CPUリセット
制御部134に波及しない(第20図(B)参照)、こ
の結果、チャンネル音源データ領域のエンベロープパラ
メータが全て正しい更新値に変更された後にインタラブ
ド処理ルーチンが開始するので、その演算結果(楽音波
形データ)が正しい値を示し、誤りのない動作が保証さ
れる。
これに対しもし、21−3に示す転送処8!機能を複数
の転送命令(−命令ごとに1つのエンベロープパラメー
タを転送する)の実行によって果た、そうとした場合に
は、転送の途中で、例えば、第20図(A)に示すよう
に転送命令lの実行中にインタラブド信号INTが発生
すると次のマシンサイクルで転送命令2の代りにインタ
ラブド処理ルーチンの最初の命令が実行されてエンベロ
ープ転送処理は途中で中断されてしまう、この結果、イ
ンタラブド処理ルーチンの処理結果(楽音波形データ)
は誤った値となってしまう。
−命令方式による複数データの転送(更新)処理では1
7−3.17−5に示すようなインタラブドマスク命令
、インタラブド解除命令を実行する必要がなく、オーバ
ーヘットなしの最短時間で、転送処理を実行することが
できる利点もある。
変形例として、第18図に示すような転送終了特機部1
52の代りに、ロング命令の実行中、制御用ROM10
2.202からの命令をフェッチするインストラクショ
ン出力ラッチ102aの動作を禁止する手段を使用して
もよい、即ち、制御用ROM102からラッチ102a
を介して与えられるロング命令語に含まれるモード信号
(命令がロングであることを示している)によって、イ
ンストラクション出カラー2チ102a、202aに加
えるオペレーションラッチ信号の発生を禁止し、ロング
命令の実行完了信号に応答して次のマシンサイクルでオ
ペレーションラッチ信号を発生する回路をオペレーショ
ン制御回路112内に設ければ、インタラブド信号IN
Tがロング命令の実行中に発生しても制御用ROM10
2.202からインタラブド処理ルーチンの最初の命令
語はロング命令の実行が終了するまではインストラクシ
ョン出力ラッチ102a、202aにフェッチされない
(したがって実行もされない)ので実施例と同様の効果
が得られる。
<MCPUからの5CPUアクセス機能〉本実施例の装
置はMCPUIOから5CPU2Oの内部RAM206
にデータを高速にアクセス(リードまたはライト)する
機能を有している。
この課題は一般に複数のCPU間のデータアクセス問題
として把えられている。従来技術ではこの種のインター
CPUデータアクセスに時間がかかる問題がある。従来
技術ではアクセスを要求するCPUからアクセスを要求
されるCPUに対し要求信号を与える。アクセスを要求
されるCPUはこの要求信号に対し、ただちに要求側C
PUからのデータアクセスを許可する承認信号を発生す
ることはできず、実行中のオペレーションが完了するま
で承認信号の発生を遅延させる。したがって、従来のイ
ンターCPUデータアクセス方式は高速処理が要求され
るアプリケージ曹ンにおける障害の1つとなっている。
本実施例では高速のインターCPUデータアクセスのた
めに2つの解決手段、即ち、5CPU停止モ一ド利用方
式と瞬時強制アクセス方式を開示する。
5CPU停 モード利用方式(第22図、第2、第3図
) この方式は上述した5CPU動作開始・終了機能を利用
したものである。この機能により5CPU20のプログ
ラム(第6図)動作はMCPUIOにおけるインタラブ
ド処理ルーチン(第5図)の開始と同時に開始し、MC
PUIOのインタラブド処理ルーチンが終了する前に終
了する。したがって、MCPU 10においてメインプ
ログラム(第4図)が動作している間は5CPU20は
停止モード(リセット状態)にある、第2図に示すよう
に停止モード中では、リセット制御部134からの信号
Aが″5CPU停止中”を示す“H′″レベルになる。
この信号Aにより、5CPU20(第3図)ではROM
アドレス制御部214の動作が停止し、RAMアドレス
制御部204は5CPU20の制御用ROM202から
のRAMアドレスバスSAではなく、MCPU 10か
らバスゲ−)12Bを介してRAMアドレスバスMaに
結合してMCPUIOからの5CPU内部RAM2O6
の指定アドレスを受けるように動作モードが設定され、
RAMデータに切り換え部240は5CPU20のオペ
レーション結果(ALU部208出力または乗算器21
0出力)を運ぶデータバスDBではなくMCPUIOか
らのデータを運ぶデータバスD OUT にRAM20
6(7)データインを結合する動作モードに設定され、
ライト信号切り換え部242は5CPUオペレ一シヨン
制御回路212からのリード/ライト制御信号ではなく
オペレーション制御回路112からのり一ド/ライト制
御信号CをRAM206のリード/ライト制御入力に結
合する動作モードに設定される。このように停止状態の
とき、5CPU20はMCPUloによってデータアク
セスが可能な状態に置かれている。
したがって、本実施例によれば、MCPUloはメイン
プログラムにおいて5CPU20の内部RAM206を
自由にアクセスすることができる。この様子を第22図
に示す、5CPU20の停止状態(音源処理完了)の確
認、即ちMCPUオペレーション制御回路112におけ
る5CPUリセット制御部134からの5CPU状態フ
ラグの検査はMCPUIOのインタラブド処理ルーチン
(第5図)のなかで1回だけ行えばよい(5−3参照)
、いったん停止状態が確認されれば、次のインタラブド
信号INTが発生するまで、再度の確認をする必要なし
に、−命令の実行で、MCPUIOは5CPU20の内
部RAM208をアクセスできる。したがって、従来に
比べ、5CPU20へのデータアクセスに要する時間が
大幅に短縮される。
瞬時強制アクセス方式(第23〜第25図)この方式は
データアクセスのためにMCPUIOと5CPU20と
の間で従来のようなアクセスの要求と承認という手続を
踏むことなく、MCPUIOからの5CPUデ一タアク
セス時に5CPU20の動作を強制的に一時停止させ、
その間にMCPUIOが5CPU20の内部RAM20
6にアクセスするものである。この方式によればMCP
UIOは任意のときに5CPU20の状態を調べる必要
なしに5CPU20を高速に(−命令実行で)アクセス
できる。
このような特徴を備えたMCPUIOのブロック図と5
CPU20のブロー7り図をそれぞれ第23図と第24
図に示す、なお、このMCPUと5CPUは上述した5
CPU動作開始終了機能に関する要素(第2図の5CP
Uリセット制御回路134その他)を含むが第23図と
第24図では簡略化のため図示を省略しである。この場
合、リセット制御回路134からの5CPU動作起動/
停止信号Aは5CPU20 (第24図)のROMアド
レス制御部214にのみ供給すれば十分である。第23
図と第24図のMCPUIOと5CPU20の瞬時強制
アクセスに関する動作のタイムチャートを第25図に示
す。
瞬時強制アクセス方式を使用する場合、MCPUIOと
5CPU20は別個のクロック発生回路136.236
Mを必要とする。5CPU20のクロック発生回路23
6Mは、5CPU20へのデータアクセス命令実行時に
MCPUIOのオペレーション制御回路112Mから出
力されるハイアクティブの5CPUアクセス信号りに応
答してその動作を停止する。これに関連し、MCPUI
Oのクロック発生回路136と5CPU20のクロック
発生回路236Mは共通の2相マスタ一クロツク信号C
K1.CK2を受けるが、出力するクロックのタイミン
グは独立である0MCPUl0ではクロック発生回路1
36からの3相のクロック信号T1.T2、T3の一周
期でマシンサイクル(最短の一命令実行時間)が規定さ
れ方、5CPU20ではクロック発生回路236Mから
の3相のクロック信号ST1.Sr2.Sr1の一周期
でそのマシンサイクルが規定される。
第25図において、5CPUアクセス信号りが発生する
前において、MCPUIOに関するクロックT1のタイ
ミングは5CPU20に関するクロックSTIではなく
クロックS、T2のタイミングに一致している1両CP
U間で取り得る他の#llイミン間係はT1がSTIに
一致する関係とT1がSr1に一致する関係である。
MCPUIOにおける5CPUアクセス命令実行中にオ
ペレーション制御回路112から出力される5CPUア
クセス信号りは、5CPU20のクロック発生回路23
6Mを停止させて5CPU20で実行中のオペレーショ
ンを停止させるとともに、その停止中にMCPUIOが
5CPU20の内部RAM206をアクセスできるよう
に、MCPUIOからの内部RAM206の指定アドレ
スに係るパスゲート128.5CPU内部RAM206
に対するアドレス制御部204、データイン切り換え部
240、及びライト信号切り換え部242の各動作モー
トを”S CPU側”から“MCPU側”に切り換える
機能を有する。このために、5CPUアクセス信号はこ
れらの要素128.204.240.242の動作モー
トを選択する制御入力にDフリー7プフロツプ250と
ANDゲート252とから成る遅延回路を介して結合し
ている。このようなアクセス可能状態の下で、MCPU
IOはパスゲート128、RAMアドレス制御部204
を介して5CPU内部RAM206を7ドレツシングし
、リードアクセスの場合には5CPU内部RAM206
から出力されるデータをバスゲート132を介してMC
PU内部RAM106に読み込み、ライトアクセスの場
合には、バスゲー)130を介して書き込みデータをデ
ータバスD 0LIT に乗せ、5CPU内部RAM2
06にライト信号Cを与えてデータを書き込む。
MCPUIOからの5CPUアクセス信号りによって5
CPU20のオペレーションを中断する場合に、オペレ
ージ璽ンの中間結果が失われないようにする必要があり
、5CPUアクセス信号りの解除後に、予め保持した中
間結果を用いて5CPU20がオペレーションの残りの
部分を実行できるようにする必要がある。このために、
5CPU内部RAM206のデータ出力を一時的に記憶
するラッチ206a、206bを設けている。ラッチ2
06aはRAM206からの演算a(第1オペランド)
をST I CK 1のタイミングでラッチし、ラッチ
206bはRAM206からの被演X数(第2オペラン
ド)を5T2CK1のタイミングでラッチする。
第25図を参照して動作例を述べると、この例では、M
CPUIOは5CPUアクセス信号りがハイアクティブ
レベルの間に5CPU20の内部RAM206に対する
ライトアクセスを実行している。MCPUIOではこの
データ書込オペレーションの最初のタイムスロッ)Tl
の間に、MCPU内部RAM106から転送データ(R
AM206に書き込むべきデータ)を取り出す0次のタ
イムスl’ −y ) T 2 テM CP U 10
 ハS CP U内部RAM206をアドレー、シング
する。最後のタイムスロットT3でMCPUIOは5C
PU内部RAM206にライト信号Cを与えてRAM2
06にデータを書き込む、5CPU20偏にとってMC
PUIOからの5CPUアクセス信号りは5CPU20
のオペレーション2がタイムスロットST2に移るとき
はアクティブに変化している。このオペレーション2は
5CPU20のRAM206にある被演算数と演算数を
ALU部208または乗算器210で演算するような命
令のオペレーションであり得る。MCPUloからの5
CPUアクセスタイムの直前のタイムスロットであるオ
ペレーション2の最初のタイムスロットSTIで5CP
U20はRAM106から演算数のデータを取り出し、
そのデータをクロックTICKIにより演算数ラッチ1
06aにラッチしている0MCPUl0からの5CPU
アクセス信号りが発生しなければ、5CPU20は次の
タイムスロットST2でRAM106から被演算数を取
り出して被演算数ラッチ10bにラッチし、最後のタイ
ムスロッ)ST3でALU部!08または乗算器110
で演算を実行してRAM10Bの被演算数レジスタに書
き込む、実際には図示のようにオペレーション2の最初
のタイムスロットSTIに続いてMCPUIOからの5
CPUアクセス信号りが発生している。この場合、1つ
の対策はオペレーション2の残り2つのタイムスロット
ST2とST3で実行すべき処理を5CPUアクセス信
号りが除去されるまで、即ちMCPUIOの5CPUア
クセスオペレーシヨンが終了するまで中断することであ
る。この方式でもMCPUIOは5CPU20をアクセ
スするオペレーションを最短時間(MCPU 10(7
)内部RAMI Ofl17クセスするのと同じ時間)
内に実行できるが、5CPU20にとっては最適ではな
くMCPUIOからの5CPUアクセスオペレーシヨン
の都度、5CPU20のオペレーションがタイムスロッ
ト3つ分遅延されることになる。都合のよいことに、M
CPUIOの5CPUアクセスオペレーシヨンの最初の
タイムスロットTlで実行される処理は5CPU20に
影響を与えない処理である。この特徴を利用し、実施例
ではMCPUIOから5CPUアクセス信号りが与えら
れても、MCPUIOのタイムスロッ)Tlの間は、5
CP020自身のオペレーションが継続できるようにし
て、5CPU20の動作遅れをできるだけ短かくしてい
る。第25図の例でいえば、5CPU20はMCPUI
Oの5CPUデータ書込オペレージオンの最初のタイム
スロットTIの間に、RAM206から被演算数のデー
タを取り出し、ラッチ206bにクロック5T2CK1
を与えて被演算数をラッチさせている。その後、5CP
Uクロック発生回路236の動作は5CPUアクセス信
号りが除去されるまで停止し、5CPU20は待ち状態
に置かれる。そしてこの待ち状態の間、5CPU20の
要素128.264.240.242は5CPUアクセ
ス信号りにより“MCPU側”に切り換えられ、MCP
UIOの5CPUデータ書込オペレージ望ンにおけるタ
イムスロットT2、T3に関する処理が実行されて5C
PU内部RAM206にMCPUIOからのデータが書
き込まれる。
MCPU 10からの5CPUアクセス信号りが除去さ
れると、5CPUクロック発生回路236は動作を再開
し、クロックST3を“H”に変化させる、更に、5C
PUアクセス信号りの除去により、5CPU20の要素
128.204.240.242が“5CPUIII″
に戻され、5CPU20自身の動作が可能な状態になる
。そこで5CPU20はこのタイムスロットST3にお
いて、ALU部208または乗算器210の演算出力を
RAM206に書き込んでオペレーション2の残りの部
分を実行する。
第25図のタイムチャートに示すように、5CPU20
の動作がMCPUIOからの5CPUアクセスオペレー
シヨンの都度、中断される時間はタイムスロット2つ分
だけである。
なお、MCPUIOが5CPU20の内部RAM206
からデータを読み出すリードアクセスオペレーションの
場合、そのタイムスロットT2でMCPUIOは5CP
U内部RAM206を7ドレツシングし、タイムスロッ
トT3でMCPU内部RAM106をアドレッシングし
て5CPU内部RAM206からのデータを/<スゲー
ト132を介してMCPU内部RAM106に取り込む
以上のように、瞬時強制アクセス方式によればMCPU
IOは5CPU20の内部RAM206に対するアクセ
スをMCPU自身のRAM106に対するアクセスと同
様に最短時間内で実行でき、待ち時間命令を実行する必
要がない、更に、瞬時強制アクセス方式によれば、5C
PU20のオペレーションを途中で中断し、MCPUI
Oの5CPUアクセスオペレーシヨン後に、中断された
ところからオペレージ讐ンを再開できる。したがって、
MCPUIOは5CPU20に対するアクセスに先立っ
て5CPU20の状態を検査する必要はなく、任意のと
きに、例えば、インタラブド処理ルーチン(第5図)中
でも自由に5CPU20をアクセスすることができる。
く共用メモリアクセス競合解消様能(第26、第27図
、881図)〉 第1図において外部メモリ90は複数のCPU、即ちM
CPUIOと5CPU20に共用されるデータメモリで
ある。したがって外部データメモリ90に対する複数の
アクセス、即ち、MCPUIOからの外部データメモリ
90アクセスと、5CPU20からの外部データメモリ
90アクセスをサポートする手段が必要である。更に、
外部データメモリ90を共用化する場合においてMCP
UIOと5CPU20とが外部データメモリ90を同時
にアクセスを試みることを許容するのが望まれる。MC
PUloと5CPU20との間で外部データメモリ90
に対する使用権(トークン)を交換する機能を設けるこ
とにより、MCPUIOと5CPU20が同時には外部
データメモリ90をアクセスしないようにすることもで
きるが、トークンの手続は外部データメモリアクセスの
ための準備時間を占めるので、外部データメモリアクセ
スに要するトータルの時間が長くなり、効率的でない、
一方、MCPUIOと5CPU20による外部データメ
モリ90の同時アクセスを許容する場合、メモリ90自
体は物理的に同時アクセス不能であるので、同時アクセ
スによるアクセス競合を解消する手段が必要となる。
これらの手段を実現するため、第1図に示すようにMC
PUIOからの外部メモリアドレス情報はアドレスバス
MA、MCPU外部メモリアドレステッチ30M、アド
レス切り換え回路40、アドレス変換回路60を介して
外部メモリ90のアドレス入力に結合されており、外部
メモリ90からのデータ出力はデータ変換回路70.M
CPU外部メモリデータラッチ80M、データバスMD
を介してMCPUIOに結合されている。一方、5CP
U20からの外部メモリアドレス情報はアドレスバスS
A、5CPU外部メモリアドレスラッチ3O3、アドレ
ス切り換え回路40、アドレス変換回路60を介して外
部メモリ90のアドレス入力に結合されており、外部メ
モリ90からのデータ出力はデータ変換回路70、SC
PU外部メモリデータラッチ80S、データバスSDを
介して5CPU20に結合されている。そして、MCP
UIOと5CPU20からの外部データメモリアクセス
要求を表わす信号MCPU−romaとSCPU−ro
maを受けるメモリ装置競合回避回路50により、上記
MCPU外部メモリアドレスラッチ30Mは、SCPU
外部メモリアドレスラッチ3OS、アドレス切り換え回
路40、MCPU外部メモリデータラッチ80M、SC
PU外部メモリデータラッチ80Sが制御されるように
なっている。このメモリ装置競合回避回路50に上述し
たアクセスの競合を回避する機能が含まれている。
第26図にメモリ装置競合回避回路50のブロック図を
示し、第27図にアクセスの競合に対する動作のタイム
チャートを示す。
第26図において、メモリ装置競合回避回路50には入
力としてMCPUIOからのアクセス要求信号MCPU
−roma、5CPU20からのアクセス要求信号SC
PU−roma、更に、MCPUリセット信号MRES
及び5CPUIノセット信号5RES (第1図におい
て図示省略)力く結合する。MCPUリセット信号MR
ESはセットリセット回路(R−Sフリップフロップ)
502とその出力に結合するセットリセ−/ )回路5
06をリセットし、信号MCPU−romaは、セット
リセット回路502をセットする。セット1ノセット回
路502はMCPUIOからのアクセス要求を一時記憶
し、出力側セットリセット回路506はセット状態にお
いて、MCPUIOからのアクセス要求が受は付けられ
て外部メモリデータアクセス制御信号発生回路510を
介してアクセスのオペレーションが実行中であることを
示す、同様に5CPUリセット信号5RESはセットリ
セット回路504とその出力に結合するセットリセット
回路508をリセットし、信号SCPU−romaはセ
ットリセット回路504をセットする。セットリセット
回路504は5CPU20からのアクセス要求を一時記
憶し、出力側セットリセット回路508はセット状態に
おいて5CPU20からのアクセス要求が受は付けられ
アクセスのオペレーションが実行中であることを示す。
詳細に述べると、MCPUアクセス要求セ−/ トリセ
ット回路502のセット状態の出力“H″は5CPUア
クセス実行セットリセット回路508がセット状態でな
いことを条件として、即ち、5CPU20のアクセスオ
ペレーションが実行中でないことを条件として(低入力
が508からのインバータ522を介した反転入力に結
合するANDゲート524を介して)MCPUアクセス
実行セットリセット回路506をMCPUアクセス実行
状態にセットし、このMCPUアクセス実行セットリセ
ット回路506をセットする信号により、ORゲー)5
12 (低入力がリセット信号MRESに結合する)を
介してMCPUアクセス要求セットリセット回路502
をリセットする。同様に、5CPUアクセス要求セット
リセット回路504のセット状態の出力“H”はMCP
Uアクセス実行セットリセット回路506がセット状態
でないことを条件として、即ちMCPU 10のアクセ
スオペレーションが実行中でないことを条件として(低
入力の1つが506からのインバータ520を介した反
転入力に結合するANDゲート526)を介して5CP
Uアクセス実行セ7ノトリセット回路508を5CPU
アクセス実行状態にセットし、この5CPUアクセス実
行セットリセット回路508をセットする信号により、
ORゲ−)516 (低入力がリセット信号5RESに
結合する)を介して5CPUアクセス要求セットリセッ
ト回路504をリセットする0以上の構成により、片方
(7)CPU(例え4fSCPU20)からアクセス要
求があっても、他方のCPU(MCPUIO)に関する
アクセスオペレーションが実行中のときは、その実行が
完了するまではアクセスを要求したCPU (SCPU
20)に関するアクセスオペレーションは実行されない
、これにより、アクセスの競合が基本的に回避される。
更に、MCPUIOと5CPU20とが完全に同時にア
クセスを要求する場合がある。このアクセス競合に対し
、実施例では、MCPUIOからのアクセス要求を優先
させ、MCPUIOのアクセスオペレーションを実行し
てから、5CPU20のアクセスオペレーションを実行
している。このために、MCPUアクセス要求セットリ
セット回路502がセット状態のときはその出力信号“
H”によりインバータ525を介してANDゲ−)52
6を禁止しており、セットリセット回路502がセット
中のときは5CPUアクセス要求セットリセット回路5
04がセット状態でも5CPUアクセス実行セットリセ
ット回路508がセットされないようにしている。
外部メモリデータアクセス制御信号発生回路51Oは、
セットリセット回路506と508からの出力に結合し
、いずれかのセットリセット回路の出力がセット状態“
H”に変化すると、そのセット状態が示すCPUアクセ
スのオペレーションを一連のシーケンスで実行する。外
部メモリデータアクセス制御信号発生回路510から出
力される信号CE、!−OEは外部メモリ7からデータ
を出力するための制御信号であり、信号MDLはMCP
U外部メモリデータラッチ80Mに外部メモリ90から
のデータをラッチするための制御信号であり、信号SD
LはSCPU外部メモリデータラッチ80Sに外部メモ
リ90からのデータをラッチするための制御信号である
。外部メモリデータアクセス制御信号発生回路510は
アクセスオペレーションの実行を1了するとEND信号
を発生する。このEND信号により、セット状態にあつ
たアクセス実行セットリセット回路はリセットされる。
即ち、END信号は値入力がセットリセット回路506
の出力に結合するANDゲート528と値入力がMCP
Uリセット信号MRESに結合するORゲー)514を
介してセットリセット回路506のリセット入力に結合
し、また値入力がセットリセット回路508の出力に結
合するANDゲート530と値入力が5CPUリセット
信号5RESに結合するORゲート518を介してセッ
トリセット回路508のリセット入力に結合する。
5CPUアクセス実行セットリセット回路508の出力
はインバータ532を介してアドレス切り換え回路40
に対するアドレス選択信号MSELを発生する。したが
って、アドレス切り換え回路40は、5CPU20のア
クセスオペレーションが実行中のときに、SCPU外部
メモリアクセス用アドレスラッチ305からの5CPU
アドレスを選択し、その他の場合はMCPU外部メモリ
アクセス用アドレスラー、チ30MからのMCPUアド
レスを選択する。
第27図の場合、MCPUIOと5CPU20は″MC
PUオペレージ:l 7 (7) r Om &  、
” 5CPUオペレーシヨンのr oma”に示すよう
に同時に外部メモリ90に対するアクセスを要求してい
る。このroma命令のオペレーションにおいて、MC
PUIOはアドレスバスMAにアドレス情報を送出し、
信号M CP U −r o m aを出力してMCP
U外部メモリアクセス用アドレスラッチ30Mにアドレ
ス情報をラッチさせ、同様に5CPU20はアドレスバ
スSAにアドレス情報を送出し、信号SCPU−rom
aを出力し−c’5cPU外部メモリアクセス用アドレ
スラッチ30Sにアドレス情報をチー2チさせる。同時
に発生するMCPU−roma信号とSCPU−rom
a信号により、メモリ装M競合回避回路50のMCPU
アクセス要求セットリセット回路502と5CPUアク
セス要求セットリセ−71回路504は同時にセットさ
れる。これに対し、上述したMCPUアクセス優先論理
に従い、MCPUアクセス実行セツトリセット回路50
6がただちにセット状態に変化し、それにより外部メモ
リデータアクセス制御信号発生回路510が外部メモリ
9oに対するMCPUIOのアクセスオペレーションを
実行する。この時点でアドレス切り換え回路40はMC
PUIOからのアドレス情報を選択している。MCPU
IOのアクセスオペレーションの期間を第27図の左方
の期間文で示す(な、お、回路510は2相のマスター
クロックCKI、CK2で動作するが、第26図では図
示を省略しである)、外部メモリデータアクセス制御信
号発生回路510は期間nでチップイネーブル信号CE
をローアクティブにし1期間nの後半の期間mで出力イ
ネーブル信号OEをローアクティブする。したがって、
この期間mにおいて外部メモリ90からMCPUIOが
要求したデータが出力され、この期間m内に外部メモリ
データアクセス要求信号発生回路510から発生する信
号MDLにより、この出力データがMCPU外部メモリ
データラッチ80Mにラッチされる。これにより、外部
メモリデータアクセス要求信号発生回路51OのMCP
UIOのためのアクセスオペレージ冒ンは完了するので
、回路510はエンド信号ENDを出力する。これによ
り、MCPUアクセス実行セットリセット回路506は
リセットされ1代りに5CPUアクセス実行セットリセ
ット回路508がセットされる。これにより信号MSE
Lは5CPUアドレス選択を示す“L”レベルに変化し
、アドレス切り換え回路40は5CPU20からのアド
レスを選択して外部メモリ90をアドレー7シングする
。更に、5CPUアクセス実行セットリセット回路50
8からのセット信号に応答して外部メモリデータアクセ
ス制御信号発生回路510が5CPU20のためのアク
セスオペレーションを実行する。この期間を第27図の
右側の期間見で示す、このオペレージ璽ンにおいて外部
メモリデータアクセス制御信号発生回路510は信号C
Eをローアクティブにし、その後半の期間pで信号OE
をローアクティブにして5CPU20の要求したデータ
を外部メモリ90から出力させ、その出力中に信号SD
Lを発生して5CPU外部メモリデータラッチ80Sに
5CPU20の要求したデータをラッチさせる。これに
より、外部メモリデータアクセス制御信号発生回路51
0の5CPU20のためのアクセスオペレーションは完
了するので同回路510はエンド信号ENDを出力して
5CPUアクセス実行セットリセット回路508をリセ
ット状態に戻す。
これ以降、MCPUIOと5CPU20はそれぞれデー
タバスMD、SDに乗っている外部メモリデータラッチ
80M、80Sの出力データを読むことにより、要求し
たデータを得ることができる。
このようにして各CPUl0.20はr oma命令(
外部メモリアクセス要求命令)を実行後、メモリ装置競
合回避回路50が両CPUのためのアクセスオペレーシ
ョンを実行する所定の期間2交だけ待てば要求したデー
タを得ることができ、アクセス競合の問題が解消される
。更に、待機時間が一定(21)なので、各CPUl0
,20はこの期間を他の命令の実行に使用することがで
き、プログラム命令の実行効率が最適化される。
なお、MCPU−roma信号と5CPU−r o m
 a信号のタイミング関係がその他のタイミング関係と
なる場合については図示を省略しているが、いかなる場
合でも、各CPUl0,20はroma命令を実行後、
所定の期間2交待てばその時点で既に各CPUの外部デ
ータラ−、チには要求したデータがラッチされているの
で、そのデータの入手が可能である。
くアドレス・データ変換/\−ドウエア(第28〜第3
2図、第1図)〉 −aに、CPUを含むマイクロコンピュータシステムに
おいて、データメモリにある原デ・−夕から演算用メモ
リ上に原データを変換したデータ(原データから抽出さ
れる所望の情報)を作成することがしばしば望まれる。
特にこの種のデータは変換はデータメモリの記憶容量を
効率的に使用したような場合にその補償として必要にな
る。この目的のため、従来では、データメモリから演算
用メモリへの転送命令を実行して、データメモリの原デ
ータを演算用メモリに移し、次に1以上の変換命令を実
行して、演算用メモリにあるデータをALUを介して変
換する。したがって、従来の場合、演算用メモリ上に所
望のデータを得るためのデータ変換手続に時間がかかり
、高速処理が要求されるアプリケーションにおける障害
の1つとなっている。
本実施例ではCPUl0120がデータメモリである外
部メモリ90から演算用メモリである内部RAM10B
または206にデータを転送する命令(roma命令)
を実行するだけで、所望の変換が施されたデータが内部
RAM106.206に読み込まれるようにして、デー
タ変換処理の高速化を図っている。この目的を実現する
ため。
CPUl0120と外部メモリ90との間のアドレス径
路上にアドレス変換回路60が設けられ、また外部メモ
リ90とCPUl0120との間のデータ径路上にデー
タ変換回路70が設けられ、各変換回路60.70はr
oma命令の実行時にCPUl0120から与えられる
制御信号に応答して所望の変換を実行する。
第28図に外部メモリアクセス命令r omaのリスト
を示す、第1の命令romaoは変換なしの転送命令で
あり、これに対し、アドレス変換回路60はCPUl0
,20から与えられる入力アドレスをそのまま出力アド
レスとして外部データメモリ90に通し、データ変換回
路70も外部データメモリ90からのデータ(16ビツ
トデータ)を無変換で通してCPUl0120に渡す。
この無変換転送命令r o m a OではCPUl0
120から変換回路60.70に与えられる変換制御用
の信号R1,R2,R3はいずれも“L”レベルとなる
第2の命令r oma 1は特殊波形の読み出しに適し
た命令である。この命令に対し、アドレス変換回路60
はCPUl0120から送られてきた入力アドレスの第
13ピツ)A12が“0”のときは下位12ビツトを無
変換で通すが第13ビー。
)A12が“l”のときは下位12ビツトを反転させる
。なお、アドレス変換回路6oの出方アドレスの第13
ビツトは入力アドレスの第13ビツトA12の値にかか
わらず0”に固定される。
また、この命令に対し、データ変換回路7oはCPUl
0.20から送られてきた入力アドレスの第13ピツ)
 A 12をCPUl0.20に送るデータの第13ビ
ツトD12とするとともにA12がl″′のとき下位の
12ビツトデータを反転する形式で外部メモリ90から
のデータを変換する。したがって、外部メモリ90のア
ドレス領域0000〜0FFFに第28図に示すような
有効データビット数12の特殊波形データ(o o o
 。
〜0FFF)があるとすると、CPUl0120がこの
命令を指定アドレス0000〜I FFFの範囲につい
て繰り返し実行した場合に、アドレス変換回路60から
出力される外部メモリアドレスはいったんooooから
0FFFに進み、この間、データ変換回路70は外部メ
モリ90からのデータをそのまま通し、その後、アドレ
ス変換回路60の反転動作により、外部メモリ90への
アドレスは0FFFからooooに後進し、この間、デ
ータ変換回路70は外部メモリ90から出力されるデー
タの下位12ビツトを反転し、第13データピツ)D1
2を“l”にして変換されたデータを出力する。結局、
CPUIO220がアドレスをoooo〜I FFFに
動かして命令r。
malを繰り返し実行した場合に、CPUl0120が
実際に受は取る波形は第28図のromalの欄の右方
に示すような波形となる。この変換波形は左方に示す外
部メモリ90内の原波形を所定の態様で延長した繰り返
し波形(アドレス0FFF、データ0FFFの点につい
て対称な波形)である、この結果、記憶容量の点につい
ていうと、変換波形のデータ自体を予め外部データメモ
リ90に記憶させる方式に比べ、波形データ記憶容量が
半分になる利点がある。この命令r o m alの場
合、制御信号R1,R2,R3のうちR1のみが“H″
レベルなる。
第3の命令)10MA2は外部メモリデータの一部(半
語)の読み出しを指示する命令である。この命令の場合
、R2のみがH”レベルになる。
外部データメモリ90の1アドレス(1m)当りの記憶
容量は16ビツトである。この命令roma2に対し、
データ変換回路70は、CPUl0120からのアドレ
スの第16ビツ)A15がθ″のときは、外部データメ
モリ90からの16ビツトデータのうち、下位の8ビツ
トを残し。
上位の8ビツトを“O”にマスクする変換を実行し、A
15が“l”のときは外部データメモリ90から16ビ
ツトデータのうち、上位の8ビツトを下位8ビツトにシ
フトする(残った上位8ビツトはマスク)変換を実行す
る。また、データ変換回路70において入力アドレスの
第16ビー/ ) A15を制御信号として使用してい
るので、アドレス変換回路60ではA15の値にかかわ
らず出力アドレスの第16ビツトを所定値“θ″にマス
クする。なお、この場合において外部データメモリ90
からの16ビー、ト情報の上位8ビツトと下位ビットと
の関係は、1つのデータ(例えば位相データ)における
上位データ部分(例えば整数部)と下位データ部分(例
えば小数部)のような関係であってもよいし、異なる2
種類の8ビツトデータ(例えばレートデータとレベルデ
ータ)の各々であるような独立な関係であってもよい。
第4の命令ROMA3は外部メモリデータをシフトして
一部を読み出す命令である。この命令の場合、R3のみ
がH”レベルになる。この命令に対し、データ変換回路
70は外部メモリ90からの16ビツトデータのうち、
bit15はそのままにして上位12ビツトのbit1
5〜bit4をbit14〜bit3にシフトし、下位
の3ピツ)bit2〜bitoをOにマスクする変換を
行う、ここに、外部メモリ90の16ビツトデータのう
ち上位12ビツトは例えばbit15を符号ビットとす
る波形データであり、下位4ビツトは別のデータを表わ
す、この場合、上記の変換により、CPUl0.20は
内部RAM1062061で使用するのに適したフォー
マットの波形データを高速に読み取ることができる。
第29図にアドレス変換回路60のブロック図を示す、
このアドレス変換回路6oにはMCPUloまたは5C
PtJ20がらアドレスラッチ30M、3O3、アドレ
ス切り換え回路4oを介して入力される16ビツトのア
ドレスのうち、下位12ビツト(bito−bitll
)が詳細を第30図に示す反転回路610に入力される
。この反転回路610は信号R1が命令romalを表
わす“1″でアドレスのAl1が“1″のときANDゲ
ー)612からの信号により動作して入力されるアドレ
スの下位12ビツトを反転させる。また、命令roma
lの実行時に“l”となる信号R1はインへ−夕602
を介して、ANDゲート604を禁止し、入力アドレス
のA12の値にかかわらず出力アドレスの対応ピッ)(
bit12)を“0”にする。入力アドレスのAl1と
A14はそのまま出力アトレスの対応ピッ)(bit1
3、bit14)として出力される。入力アドレスのA
15(MSB)はANDゲート608を介して出力アド
レスの対応ピッ)(bit15)となる、命令r o 
m a 2の実行中を表わす“l”の信号R2が発生し
ているとき、この信号R2がインバータ606を介して
ANDゲート608を禁止して出力アトレスのbjt1
5(MSB)を“0”にマスクする。
したがってアドレス変換回路60は、無変換命令rom
aoとシフト読み出し命令r oma3に対してはR1
=″0”、R2=“0″なので入力アトレスを出力アド
レスとしてそのまま通し、特殊波形読出し命仝r o 
m a 1に対してはR1=″l″なので出力アドレス
のbit12をO″にマスクし、A12:1″の間尺転
回路610により入力アドレスの下位12ピツ)(bi
tO〜b i t 11)を反転して出力アトレスとす
る。
更に、一部読み出し命令r o m a 2に対しては
R2=″1″なので出力アトレスのbit15を“0”
にマスクする。このようにして、第28図に関して述へ
たアドレス変換回路の機能が実現される。
第31図にデータ変換回路70のブロック図を示し、第
32図にその詳細を示す、これらの図においてデータ入
力は第1図の外部メモリ90から供給されるデータであ
る。第32図において、入力データの上位8ビツトに結
合する3状態ゲ一ト回路702と入力データの下位8ビ
ツトに結合する3状態ゲ一ト回路704は出力するデー
タの下位8ビツトとして入力データの上位8ビツトを選
択するが、入力データの下位8ビツトを選択するかを決
めるためのものである。R2−”1”(r oma2命
令)でA15=1のとき、ANDゲート706の“1”
出力信号とその反転信号であるインバータ708の出力
信号“O”により、ゲート回路702が導通し、ゲート
回路704がオフして入力データの上位8ビー/ )が
出力データの下位8ビツトとして選択される。その他の
場合は、ゲート回路702がオフし、ゲート回路704
が導通するので入力データの下位8ヒツトがそのまま出
力データの下位8ビツトとして出力される。更にR2−
“1”  (roma2命令)のとSは、入力データの
に位8ビットに結合するANDゲート回路710が禁止
されて出力データの上位8ビットを“0”にマスクする
。即ち、R2″1″のときはインバータ712とNOR
ゲート714を介して禁止信号がANDゲート回路71
Oに加わってANDゲート回路710における入力デー
タ上位8ビツトの通過が阻止される。また、ANDゲー
ト回路710における入力データの上位3ビツトと結合
するANDゲート素子はR1=″1” (r oma 
l命令)のときにNORゲート714を介して禁止され
、出力データの−L上位ビットを“0”にマスクする。
EX−ORゲート回路716は入力データの下位12ビ
ツトを選択的に反転するための回路である。EX−OR
ゲート回路716はR1=“1”(r oma 1命令
)でA12=1のとき、ANDゲート718からの反転
信号“l”により、下位12ビツトデータを反転し、そ
の他の場合は下位12ヒ−、トデータをそのまま通す0
回路710内のANDゲート素子を介して入力データの
bit12に結合する状態ゲート722はR1=“1″
(r oma l命令)のときに、信号R1に結合する
インバータ720を介して与えられる信号“0″により
オフし、代りに、A12に結合する3状態ゲート724
が信号R1によって導通して出力データのbi t 1
2を発生する。シフトマスク回路726は選択的に入力
されたデータのbit15〜bit4を出力データのb
it14〜bit3にシフトし、出力データのbit2
〜bi10を“0″にマスクするための回路であり、R
3=″l″ (r oma3命令)のとご信号R3に結
合するイン/ヘータ728からの信号“l”によってこ
の変換を実行する。
したがって、データ変換回路70は、無変換命令rom
ao (R1=R2=R3−“O”)のときは、入力さ
れる16ビツトデータをそのまま通し、特殊波形読み出
し命令romal(R1=“l”)のと5は入力アドレ
スの上位4ビー2ト(bit15〜bit12)が“o
ooo″(A12:Oのとき)か“0001″ (AI
2=lのとき)かによって、出力データの下位12ビツ
トをそのまま入力データの下位12ビツトとする(A1
2=Oのとき)か、或は、出力データの下位12ビツト
を入力データの下位12ビツトが反転されたデータとな
る(A12=1)ようにブタ変換を行い、一部読み出し
命令roma2(R2−“l”)のときは出力データの
−L上位ビットがオールゼロで、出力データの下位8ビ
ツトが入力データの下位8ビツトとなるように(A15
0のとき)、或は1出力データの上位8ビツトがオール
ゼロで、出力データの下位8ビツトが入力データの上位
8ビツトとなる(A15=1のとき)ようにデータ変換
を行い、シフト読み出し命令r oma3 (R3= 
1)(7)ときは出力データの下位3ビツト(bito
〜bit2)がオールゼロで、出力データのbit3〜
bit14が入力データのbit4〜bit15で、出
力データのb i t 15 (MSB)が入力データ
のbit15(MSB)となるようにデータ変換を行う
、このようにして第28図で述へたデータ変換機能が達
成されている。
以上により、アドレス変換回路60とデータ変換回路7
0とを設けたことによる利点は明らかである。即ち、C
PUl0520に、!−’)て、データメモリである外
部メモリ90に対するアクセス命令r omaを実行す
るだけで、回路60と70の変換機能により、所望の変
換が施されたデータをただちに得ることができ、従来の
ように、外部メモリ90のデータを演算用メモリである
内部RAM106.206にいったん取り込んだ後に、
ALU部108.208のようなALUを介して変換を
実行する必要がなく、処理が高速化される利点がある。
なお、第28図に示したアクセス命令r o m aの
リストは例示にすぎず、拡張、変更は容易である。
<DACサンプリング(第33、第34図)〉本実施例
においてDAClooはMCPUIOと5CPU20が
生成したデジタル楽音信号をアナログ楽音信号に変換す
るものである。第5図の5−5に示すように、MCPU
IOはタイマインタラブド処理ルーチンのなかで、MC
PUIOと5CPU20が生成したデジタル楽音信号の
サンプルをDAClooにセットする。この処理5−5
の実行間隔は平均としてはタイマインタラブド発生部1
16の発生するインタラブド信号INTの発生間隔に等
しいが、¥際の実行間隔はプログラム動作のために変動
する。したがって、処8!55の実行間隔をD/A変検
変換換周期としてD/A変換を行ったとするとアナログ
楽音信号に大きな歪みが生じてしまう。
第33図に右DAC100Rまたは左DAC100Lの
構成例を示す、第33図の(A)に示す構成では、処理
5−5の実行時に、MCPUIOのオペレーション制御
回路112の制御の下に、内部RAM106内の波形加
算用レジスタが指定され、そこに記憶されている最新の
デジタル楽音データが取り出され、データバスに乗せら
れる。
そして、データバスにデジタル楽音データが乗つている
タイミングでラッチ1004のクロック入力にストロー
ブ用のプログラム制御信号がオペレーション制御回路1
12から与えられデータバス上のデータがセットされ、
ラッチ1004かも新しいデジタル楽音データがD/A
変換器1002に入力される。したがって、第34図(
A)に示すように、D/A変換器1002に入力される
デジタル楽音データはプログラム制御のために不安定な
周期で切り換わることになる。D/A変換器1002の
変換周期(サンプリング周期)は非常に安定していなけ
れば、その変換において大きな歪みが発生する。
この問題は第33図(B)に示すような構成をとること
により解決される。すなわち、オペレーション制御回路
112からのプログラム制御信号によって制御されるソ
フト制御ラッチ1004と、デジタル楽音信号をアナロ
グ楽音信号に変換するD/A変換器1002との間に、
インタラブド発生部116からの正確なタイミング信号
であるインタラブド信号INTで制御されるインタフブ
ト制御ラッチ1006を設ける。インタラブド信号の発
生周期はクロー7り発振器の安定度に従うので極めて安
定である。ラッチ1006の出力はインタラブド信号の
タイミングに同期して切り換わる。すなわち、インタラ
ブド信号の発生周期がD/A変換器1002の変換(サ
ンプリング)周期となる。第33図(B)の構成に対す
るタイムチャートを第34図(B)に示す0図示のよう
に、ラッチ1004の出力が切り換わるタイミングはイ
ンクラブド処理に移行するタイミングのずれや、該イン
タラブド処理に要する時間(II4線部の長さ)によっ
て変動するがインタラブド信号で動作するラッチ100
6があるのでD/A変換器1002の入力データが切り
換るタイミングはインタラブド信号と同期する。これに
より、第33図(A)の構成における歪み問題が解決さ
れる。
[変形例] 以上で実施例の説明を終えるが、この発明の範囲を逸脱
することなく種々の変形、変更が可能である6例えば、
データ変換回路70、アドレス変換回路60の構成、機
能はアプリケーションに合わせて容易に変更できる。ま
た、実施例では特殊波形の読出しにアドレス変換回路6
0とデータ変換回路70の両方の変換作用を利用してい
るが、このモードにおいてデータ変換回路70に入力す
る制御信号AI2として、CPUからのアドレス情報に
は含まれない制御信号を使用するようにすれば、アドレ
ス変換回路60なしでも同様の結果を得ることができる
。換言すると、実施例においてはアドレス情報の一部A
12、A15をデータ変換回路70の制御信号として兼
用することにより、CPUからの制御信号線数を節約し
ている。
[発明の効果] 以上のようにこの発明によれば、CPUがデータメモリ
をリードアクセスするだけで、データ変更回路手段の作
用またはデータ変更回路手段とアクセス変更回路手段の
両方の作用により、所望の変換が施されたデータがただ
ちに得られ、従来のようにデータメモリのデータを演算
用メモリに写し取った後、データ変換命令を実行する手
間を省略でき、高速処理が要求されるデジタルマイクロ
コンピュータにとって最適である。
【図面の簡単な説明】
第1図はこの発明を適用した電子楽器用処理装置の全体
構成図、 第2図は第1図のMCPUのブロック図。 第3図は第1図の5CPUのブロック図、第4図はMC
PUの実行するメインプログラムのフローチャート、 第5図はMCPUの実行するインタラブド処理ルーチン
のフローチャート。 第6図は5CPUの実行するプログラムのフローチャー
ト、 第7図は音源処理のフローチャート、 第8図は時間の経過に沿う実施例の動作のフローチャー
ト・ 第9図はチャンネル音源処理のフローチャート、 第10図は波形データを示す図、 第11図は音源処理用RAMテーブルを示す図、 第12図は5CPU動作開始終了機能に関係する回路の
ブロック図、 第13図、第14図、第15図は第12図の回路の動作
のタイムチャート、 第16図はインタラブドマスク機能を有する回路のブロ
ック図、 第17図はインタラブドマスク方式によるエンベロープ
設定処理のフローチャート、 第18図は単一命令で複数のデータを転送する間インタ
ラブド信号によるメインプログラムの中断を禁止する機
能を有する回路のブロック図、第19図は複数のデータ
を単一命令で転送するのに適したRAMのメモリマツプ
例を示す図、第20図は複数の転送命令による動作と単
一の転送命令による動作とを比較して示す図、第21図
は単一転送命令方式によるエンベロープ設定処理のフロ
ーチャート、 第22図は5CPUの停止モード利用にょるMCPUか
らの5CPUアクセス機能を説明するのに用いたフロー
チャート、 第23図は5CPUに対する瞬時強制アクセス機能を有
するMCPUのブロック図、 第24図は5CPUに対する瞬時強制アクセス機能に適
合する5CPUのブロック図、第25図はMCPUから
5CPUの内部RAMにデータを書き込む場合の動作の
タイムチャート、 第26図は第1図のメモリ装置競合回避回路のブロック
図、 第27図は第26図の回路の動作のタイムチャート、 第28図は外部メモリからのデータを変換して取り込む
命令を含む外部メモリアクセス命令のリストを示す図、 第29図は第1図のアドレス変#回路のプロッり図、 第30図はw429図の反転回路の回路図、第゛31図
は#I1図のデータ変換回路のブロック図、 第32図はデータ変換回路の回路図、 第33図は第1図のDACのサンプリング周期が不安定
になる構成とサンプリング周期を安定化した構成とを比
較して示す図、 第34図はDACのサンプリング周期が不安定な場合の
タイムチャートと安定な場合のタイムチャートとを比較
して示す図である。 l O・・・・・・MCPU  (CPU)20・・・
・・・5CPU  (CPU)90・・・・・・外部メ
モリ(データメモリ)106.206・・・・・・uA
M(yi算用メモリ)70・・・・・・データ変換回路
(データ変更回路手段) 60・・・・・・アドレス変換回路(アドレス変更回路
手段) 第 図 第 図 第17 図 第 図 第 図 第 図 第 図 R1に田 A+2AI5 第31 図 う°−タ査1に回鈷

Claims (2)

    【特許請求の範囲】
  1. (1)プログラムで動作するCPUと、 データ源としてデータを記憶するデータメモリと、 前記CPUの演算のために使用される演算用メモリと、 前記CPUが前記データメモリをリードアクセスする際
    に前記データメモリから出力されるデータを前記CPU
    からの制御信号に従って選択的に変更して前記演算用メ
    モリに書き込むデータを生成するデータ変更回路手段と
    、 を有することを特徴とするデジタルマイクロコンピュー
    タ。
  2. (2)請求項1記載のデジタルマイクロコンピュータに
    おいて、 前記CPUが前記データメモリをリードアクセスする際
    に前記CPUから出力されるアドレスを前記CPUから
    の制御信号に従って選択的に変更して前記データメモリ
    に入力されるアドレスを生成するアドレス変更回路手段
    を 更に有することを特徴するデジタルマイクロコンピュー
    タ。
JP2170168A 1990-06-29 1990-06-29 デジタルマイクロコンピュータ Pending JPH0460725A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2170168A JPH0460725A (ja) 1990-06-29 1990-06-29 デジタルマイクロコンピュータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2170168A JPH0460725A (ja) 1990-06-29 1990-06-29 デジタルマイクロコンピュータ

Publications (1)

Publication Number Publication Date
JPH0460725A true JPH0460725A (ja) 1992-02-26

Family

ID=15899948

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2170168A Pending JPH0460725A (ja) 1990-06-29 1990-06-29 デジタルマイクロコンピュータ

Country Status (1)

Country Link
JP (1) JPH0460725A (ja)

Cited By (1)

* 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

Cited By (1)

* 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

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
US4184400A (en) Electronic musical instrument utilizing data processing system
JPH0997064A (ja) 自動演奏データ処理装置
JPS5865493A (ja) 波形発生装置
JPS62200399A (ja) 電子楽器におけるパラメ−タ供給装置
US5584034A (en) Apparatus for executing respective portions of a process by main and sub CPUS
JPH0460725A (ja) デジタルマイクロコンピュータ
JP2797137B2 (ja) 電子楽器用処理装置
US4644841A (en) Electronic musical instrument
EP0376342B1 (en) Data processing apparatus for electronic musical instruments
JPH0460744A (ja) デジタルマイクロコンピュータ
JPH0460724A (ja) デジタルマイクロコンピュータ
JPH0460723A (ja) デジタルマイクロコンピュータ
JPH0460746A (ja) デジタルマイクロコンピュータ
JPH0460722A (ja) デジタルマイクロコンピュータ
JPH0460749A (ja) デジタルマイクロコンピュータ
JP2797138B2 (ja) 電子楽器用処理装置
JP2797142B2 (ja) 電子楽器用処理装置
Lowe et al. Digidesign's Sound Accelerator: Lessons Lived and Learned
JP2595992B2 (ja) 電子楽器
JP3116447B2 (ja) デジタル信号処理プロセッサ
JPH03204695A (ja) 楽音合成装置
JPH02179692A (ja) 処理装置
GB2040537A (en) Digital electronic musical instrument