JPH0460722A - デジタルマイクロコンピュータ - Google Patents
デジタルマイクロコンピュータInfo
- Publication number
- JPH0460722A JPH0460722A JP2170163A JP17016390A JPH0460722A JP H0460722 A JPH0460722 A JP H0460722A JP 2170163 A JP2170163 A JP 2170163A JP 17016390 A JP17016390 A JP 17016390A JP H0460722 A JPH0460722 A JP H0460722A
- Authority
- JP
- Japan
- Prior art keywords
- data
- address
- signal
- cpu
- interrupt
- 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
Links
Landscapes
- Electrophonic Musical Instruments (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
E発明の技術分野〕
この発明はデジタルマイクロコンピュータに関する。
[発明の背景]
最近1本件出願人はマイクロコンピュータのプログラム
処理により、電子楽器の制御入力処理だけでなく、楽音
信号の生成も行う装置を提案した(特願昭63−334
.158号)、このマイクロコンピュータのCPUはメ
インプログラムの実行生成するため、タイマーからのイ
ンタラプト信号に応答してインタラプト処理ルーチンを
実行する。
処理により、電子楽器の制御入力処理だけでなく、楽音
信号の生成も行う装置を提案した(特願昭63−334
.158号)、このマイクロコンピュータのCPUはメ
インプログラムの実行生成するため、タイマーからのイ
ンタラプト信号に応答してインタラプト処理ルーチンを
実行する。
このマイクロコンピュータにはメインプログラムからイ
ンタラプト処理ルーチンへのデータ転送に関連する問題
がある。即ちCPUのメインプログラムでの処理のなか
には、インタラプト処理ルーチンで参照することになる
複数のデータをインタラプト処理用メモリに設定するデ
ータ更新処理が含まれる。インタラプト信号はこのよう
なデータ更新処理の途中でも生じ得る。その場合、CP
Uの制御はメインプログラムからインタラプト処理ルー
チンに移る。その結果、インタラプト処理ルーチンの処
理結果(楽音波形データ)にエラーが生じてしまう1例
えば、エンベロープを例にとると、エンベロープのステ
ップを更新するときにメインプログラムは新しいステッ
プに対する複数のエンベロープパラメータ(エンベロー
プ演算間7期、エンベローラ差分値、エンベロープミル
s等)をインタラプト処理用メモリの対応する領域に書
き込もうとする。すべてのエンベロープ、パラメータが
書き込まれないうちにインタラシト信号が発生してイン
タラプト処理ルーチンにCPUの制御が移行すると、イ
ンタラプト処理ルーチンでハ更新されたエンベロープパ
ラメータと更新前のエンベロープパラメータ(したがっ
て正しくない値のデータ)とを用いてエンベロープ波高
値を演算し、エンベロープ波高値に基づいて楽音信号を
生成する。したがって、生成されるエンベロープ波高値
、楽音信号は意図しない値となってしまう。
ンタラプト処理ルーチンへのデータ転送に関連する問題
がある。即ちCPUのメインプログラムでの処理のなか
には、インタラプト処理ルーチンで参照することになる
複数のデータをインタラプト処理用メモリに設定するデ
ータ更新処理が含まれる。インタラプト信号はこのよう
なデータ更新処理の途中でも生じ得る。その場合、CP
Uの制御はメインプログラムからインタラプト処理ルー
チンに移る。その結果、インタラプト処理ルーチンの処
理結果(楽音波形データ)にエラーが生じてしまう1例
えば、エンベロープを例にとると、エンベロープのステ
ップを更新するときにメインプログラムは新しいステッ
プに対する複数のエンベロープパラメータ(エンベロー
プ演算間7期、エンベローラ差分値、エンベロープミル
s等)をインタラプト処理用メモリの対応する領域に書
き込もうとする。すべてのエンベロープ、パラメータが
書き込まれないうちにインタラシト信号が発生してイン
タラプト処理ルーチンにCPUの制御が移行すると、イ
ンタラプト処理ルーチンでハ更新されたエンベロープパ
ラメータと更新前のエンベロープパラメータ(したがっ
て正しくない値のデータ)とを用いてエンベロープ波高
値を演算し、エンベロープ波高値に基づいて楽音信号を
生成する。したがって、生成されるエンベロープ波高値
、楽音信号は意図しない値となってしまう。
以上、電子楽器に応用したマイクロコンピュータを例に
とって、メインプログラムからインタラプト処理ルーチ
ンに複数のデータを渡す場合の問題を説明したが、以下
説明するこの発明はこの種の問題をかかえるすべてのマ
イクロコンピュータにとって有効な解決手段を提供する
ものである。
とって、メインプログラムからインタラプト処理ルーチ
ンに複数のデータを渡す場合の問題を説明したが、以下
説明するこの発明はこの種の問題をかかえるすべてのマ
イクロコンピュータにとって有効な解決手段を提供する
ものである。
[発明の目的]
すなわち、この発明の目的は、インタラプト処理ルーチ
ンに渡すメインプログラムでの複数データの書込処理を
保証して、インタラプト処理ルーチンの処理結果が常に
正しいものになるようにしたマイクロコンピュータを提
供することである。
ンに渡すメインプログラムでの複数データの書込処理を
保証して、インタラプト処理ルーチンの処理結果が常に
正しいものになるようにしたマイクロコンピュータを提
供することである。
[発明の構成1作用]
上記の目的を達成するため、この発明によればメインプ
ログラムを実行するメインプログラムモードとインタラ
プト処理ルーチンを実行するインタラプトモードとを有
するCPUと、インタラプト信号を発生するインタラプ
ト発生手段と、前記インタラプト信号に応答して前記C
PUで実行中のメインプログラムを中断して前記CPU
のモードを前記インタラプトモードに切替制御するCP
Uモード制御手段と、を有するデジタルマイクロコンピ
ュータにおいて、前記CPUの前記メインプログラムモ
ードにおいて複数のデータをインタラプト処理用メモリ
に書き込み、前記インタラプトモードにおいてこのイン
タラプト処理用メモリに記憶される前記複数のデータを
参照する手段と、前記メインプログラムモーFにおいて
前記手段によりインタラプト処理用メモリに対する前記
複数のデータの書込処理が実行されている間、前記イン
タラプト信号をマスクすることにより前記CPUモード
制御手段の動作を禁止して前記書込処理の中断を禁止す
るインタラプトマスク手段とを有することを特徴とする
デジタルマイクロコンピュータが提供される。
ログラムを実行するメインプログラムモードとインタラ
プト処理ルーチンを実行するインタラプトモードとを有
するCPUと、インタラプト信号を発生するインタラプ
ト発生手段と、前記インタラプト信号に応答して前記C
PUで実行中のメインプログラムを中断して前記CPU
のモードを前記インタラプトモードに切替制御するCP
Uモード制御手段と、を有するデジタルマイクロコンピ
ュータにおいて、前記CPUの前記メインプログラムモ
ードにおいて複数のデータをインタラプト処理用メモリ
に書き込み、前記インタラプトモードにおいてこのイン
タラプト処理用メモリに記憶される前記複数のデータを
参照する手段と、前記メインプログラムモーFにおいて
前記手段によりインタラプト処理用メモリに対する前記
複数のデータの書込処理が実行されている間、前記イン
タラプト信号をマスクすることにより前記CPUモード
制御手段の動作を禁止して前記書込処理の中断を禁止す
るインタラプトマスク手段とを有することを特徴とする
デジタルマイクロコンピュータが提供される。
この構成によれば、メインプログラムモードにおいて複
数のデータがインタラプト処理用メモリに書き込まれて
いる間はインタラプト信号がマスクされてCPUの制御
をインタラプトモードに移行するCPUモード制御手段
の動作が禁止されるので、書込処理を保証でき、インク
ラブド処理ルーチンの処理結果を正しいものにすること
ができる。
数のデータがインタラプト処理用メモリに書き込まれて
いる間はインタラプト信号がマスクされてCPUの制御
をインタラプトモードに移行するCPUモード制御手段
の動作が禁止されるので、書込処理を保証でき、インク
ラブド処理ルーチンの処理結果を正しいものにすること
ができる。
[実施例]
以下、図面を参照してこの発明の詳細な説明する。
く概 要〉
本実施例はこの発明を電子楽器に適用したものである0
本実施例(第1〜第34図)は種々の特徴を含んでいる
。第1の特徴は、楽音信号を生成する音源としてプログ
ラムで動作する複数のマイクロコンピュータ処理装置1
(CPU)を使用することであり、従来のような専用構
造の/\−トウエア音源は不要である。1つのCPUが
メインCPUあるいはマスターCPU(10)として働
き音源処理のみでなくアプリケーション(この場合、楽
器)に従う入力装置(W’1.機能キー等)、出力装!
(DAC等)を取り扱う(第4図、第5図)、他のC
PUはマスターCPUに対してサブCPUないしスレー
ブCPU (20)として働き、音源処理を実行する(
第6図)、シたがって、音源処理について各CPUの負
担が分担される構成である。
本実施例(第1〜第34図)は種々の特徴を含んでいる
。第1の特徴は、楽音信号を生成する音源としてプログ
ラムで動作する複数のマイクロコンピュータ処理装置1
(CPU)を使用することであり、従来のような専用構
造の/\−トウエア音源は不要である。1つのCPUが
メインCPUあるいはマスターCPU(10)として働
き音源処理のみでなくアプリケーション(この場合、楽
器)に従う入力装置(W’1.機能キー等)、出力装!
(DAC等)を取り扱う(第4図、第5図)、他のC
PUはマスターCPUに対してサブCPUないしスレー
ブCPU (20)として働き、音源処理を実行する(
第6図)、シたがって、音源処理について各CPUの負
担が分担される構成である。
第2の特徴はサブCPUが動作を開始し、終了するメカ
ニズムに関係しており、本実施例によれば、サブCPU
の動作は、マスターCPUに対して音源処理を要求する
タイヤインタラプトを合図として開始し、その結果、マ
スターCPUとサブCPUにおいて音源処理が並行に実
行される。サブCPUの動作(音源処理)が終了すると
その終了信号によってサブCPUはリセット状態(停止
状態)に移行するとともにその終了信号がマスターCP
Uに伝えられる(第8図、第16図)。この特徴により
、マスターCPUはサブCPUの動作期間を有効に管理
、把握できる。更に、この特徴により、高速処理が要求
される音源処理タスク(楽音信号のデジタルサンプルを
生成する仕事)を効率よく実行できる。
ニズムに関係しており、本実施例によれば、サブCPU
の動作は、マスターCPUに対して音源処理を要求する
タイヤインタラプトを合図として開始し、その結果、マ
スターCPUとサブCPUにおいて音源処理が並行に実
行される。サブCPUの動作(音源処理)が終了すると
その終了信号によってサブCPUはリセット状態(停止
状態)に移行するとともにその終了信号がマスターCP
Uに伝えられる(第8図、第16図)。この特徴により
、マスターCPUはサブCPUの動作期間を有効に管理
、把握できる。更に、この特徴により、高速処理が要求
される音源処理タスク(楽音信号のデジタルサンプルを
生成する仕事)を効率よく実行できる。
本実施例の第3の特徴はメインプログラムからタイマイ
ンタラプト処理ルーチンに渡すデータの更新(転送)問
題に関係する。インタラプト処理ルーチンの実行の結果
、インタラプト処理ルーチンにおいて#照すべき複数の
データ(例えばエンヘローブ目標値、エンベロープレー
トのようなエンヘロープパラメータ)を更新する必要が
生じる。この複数のデータの更新の実行命令はメインプ
ログラム中に含まれる。即ち、この複数のデータはメイ
ンプログラムが更新し、タイマインタラプト処理ルーチ
ンが参照するデータである。このような複数のデータは
、全体として意味ある情報を構成するので、メインプロ
グラムにおいて複数のデータのすべてが更新されないう
ちにインタラプト処理ルーチンに制御が移ってはならな
い、これを防止するため、第1の方式としてデータ更新
が完了するまでインタラプトをマスクしてインタラプト
処理ルーチンへの移行を禁止する方式が開示され(第1
6図、第17図)、第2の方式として、複数のデータの
更新(転送)をメインプログラム中の単一命令で実行す
る方式が開示される(第18図〜第21図)、この結果
、インタラプト処理ルーチンの処理結果(楽音信号のサ
ンプル)が正しい伯を示し、正しい動作が保証される。
ンタラプト処理ルーチンに渡すデータの更新(転送)問
題に関係する。インタラプト処理ルーチンの実行の結果
、インタラプト処理ルーチンにおいて#照すべき複数の
データ(例えばエンヘローブ目標値、エンベロープレー
トのようなエンヘロープパラメータ)を更新する必要が
生じる。この複数のデータの更新の実行命令はメインプ
ログラム中に含まれる。即ち、この複数のデータはメイ
ンプログラムが更新し、タイマインタラプト処理ルーチ
ンが参照するデータである。このような複数のデータは
、全体として意味ある情報を構成するので、メインプロ
グラムにおいて複数のデータのすべてが更新されないう
ちにインタラプト処理ルーチンに制御が移ってはならな
い、これを防止するため、第1の方式としてデータ更新
が完了するまでインタラプトをマスクしてインタラプト
処理ルーチンへの移行を禁止する方式が開示され(第1
6図、第17図)、第2の方式として、複数のデータの
更新(転送)をメインプログラム中の単一命令で実行す
る方式が開示される(第18図〜第21図)、この結果
、インタラプト処理ルーチンの処理結果(楽音信号のサ
ンプル)が正しい伯を示し、正しい動作が保証される。
本実施例の第4の特徴はマスターCPUからスレーブC
PUに対するデータアクセス問題に関する。従来の複数
CPUマイクロコンピュータシステムでは、一般に、C
PU間のデータ転送は一連のシーケンスを通して行われ
、相当の時間を要する1代表的には、データのアクセス
を要求するCPUからアクセスが要求されるCPUに対
し、アクセス要求信号を送る。このアクセス要求信号に
対しアクセスが要求されるCPUは実行中のオペレーシ
ョンを完了した後に承認(アク7リフジ)信号をCPU
に渡して停止状態となる。アクセス要求信号送信後、承
認信号が受信されるまでの間、要求側のCPUは待ち状
態になる。承認信号を受けて要求側のCPUは被要求側
のCPUの内部メモリに対し、実際のデータアクセスを
実行する。このように従来のCPU間データアクセス方
式は時間を要するので高速処理が望まれる電子楽器のよ
うなアプリケーションには適さない、これを解決するた
め、本実施例では、第1のデータアクセス方式として、
上記第2の特徴を利用してサブCPUが停止状態にある
ときにマスターCPUがサブCPUの内部メモリ(20
6)に対しデータをリード/ライト(アクセス)する停
止モード制御方式が開示され(第22図)、第2のデー
タアクセス方式として待ち状態なしにマスターCPUが
サブCPUをデータアクセスする(サブCPUはデータ
アクセス中のみ強制的に停止状態にされる)瞬時データ
アクセス方式とが開示される(第23図〜第25図)。
PUに対するデータアクセス問題に関する。従来の複数
CPUマイクロコンピュータシステムでは、一般に、C
PU間のデータ転送は一連のシーケンスを通して行われ
、相当の時間を要する1代表的には、データのアクセス
を要求するCPUからアクセスが要求されるCPUに対
し、アクセス要求信号を送る。このアクセス要求信号に
対しアクセスが要求されるCPUは実行中のオペレーシ
ョンを完了した後に承認(アク7リフジ)信号をCPU
に渡して停止状態となる。アクセス要求信号送信後、承
認信号が受信されるまでの間、要求側のCPUは待ち状
態になる。承認信号を受けて要求側のCPUは被要求側
のCPUの内部メモリに対し、実際のデータアクセスを
実行する。このように従来のCPU間データアクセス方
式は時間を要するので高速処理が望まれる電子楽器のよ
うなアプリケーションには適さない、これを解決するた
め、本実施例では、第1のデータアクセス方式として、
上記第2の特徴を利用してサブCPUが停止状態にある
ときにマスターCPUがサブCPUの内部メモリ(20
6)に対しデータをリード/ライト(アクセス)する停
止モード制御方式が開示され(第22図)、第2のデー
タアクセス方式として待ち状態なしにマスターCPUが
サブCPUをデータアクセスする(サブCPUはデータ
アクセス中のみ強制的に停止状態にされる)瞬時データ
アクセス方式とが開示される(第23図〜第25図)。
本実施例の第5の特徴はデータ源としてのCPU外部メ
モリを複数のCPUで共用する場合における複数CPU
からのアクセスの競合(衝突)問題に関する0本実施例
によれば後述するメモリ装置競合回避回路(50)を設
けることにより、共用メモリに対するアクセスの競合を
解消し、一定の待ち時間の後、共用メモリからのデータ
を得られるようにしている。
モリを複数のCPUで共用する場合における複数CPU
からのアクセスの競合(衝突)問題に関する0本実施例
によれば後述するメモリ装置競合回避回路(50)を設
けることにより、共用メモリに対するアクセスの競合を
解消し、一定の待ち時間の後、共用メモリからのデータ
を得られるようにしている。
本実施例の第6の特徴はデータ変換外FJ(シフト、反
転、一部取り出し等)の高速化に関する。
転、一部取り出し等)の高速化に関する。
従来においては、上述したCPU外部メモリのようなデ
ータメモリ内のデータから、CPU内部メモリ(演算用
メモリ)上に変換されたデータを得るために、転送(リ
ードアクセス)命令により、データメモリのデータを演
算用メモリに移し、しかる後、変換命令により、演算用
メモリのデータをALUを介して変換する。所望のデー
タ変換を行うために複数の変換命令を実行する必要もし
ばしば生じる。このように、従来においてはデータ変換
の処理に時間がかかるという問題があり、特に音源処理
のように高速処理が要求されるアプリケーションにおい
ては大きな問題となる。これを解決するため、この実施
例によれば、データ・アドレス変換ハードウェア(60
,70)を設け。
ータメモリ内のデータから、CPU内部メモリ(演算用
メモリ)上に変換されたデータを得るために、転送(リ
ードアクセス)命令により、データメモリのデータを演
算用メモリに移し、しかる後、変換命令により、演算用
メモリのデータをALUを介して変換する。所望のデー
タ変換を行うために複数の変換命令を実行する必要もし
ばしば生じる。このように、従来においてはデータ変換
の処理に時間がかかるという問題があり、特に音源処理
のように高速処理が要求されるアプリケーションにおい
ては大きな問題となる。これを解決するため、この実施
例によれば、データ・アドレス変換ハードウェア(60
,70)を設け。
特殊な転送命令(変換付転送命令)を実行することによ
り、その命令に応答するデータ・アドレス変換ハードウ
ェアを介して所望のデータ変換が施されたデータが演算
用メモリ(106,206)に取り込まれるようにして
いる。したがって、所望の変換データを得るのに、複数
の命令を実行するのではなく単一の命令を実行すればよ
く処理の高速化が図れる。
り、その命令に応答するデータ・アドレス変換ハードウ
ェアを介して所望のデータ変換が施されたデータが演算
用メモリ(106,206)に取り込まれるようにして
いる。したがって、所望の変換データを得るのに、複数
の命令を実行するのではなく単一の命令を実行すればよ
く処理の高速化が図れる。
く全体構成(第1図)〉
第1図は電子楽器の処理装置として構成した本実施例の
全体構成を示すブロック図である0本システムは2つの
中央演算処理装置(一方をMCPUIO1他方を5CP
U20で示す)を有する。
全体構成を示すブロック図である0本システムは2つの
中央演算処理装置(一方をMCPUIO1他方を5CP
U20で示す)を有する。
各CPUl0120はプログラムを内蔵しており、それ
ぞれのプログラムに従って動作する0MCPUl0は音
源処理(第5図)以外にシステム全体の制御、例えば入
カポ−)118、出力ボート120に接続される入力装
置(例えば鍵盤、機能キー等)からの入力情報の処理、
デジタル楽音信号をアナログ楽音信号に変換するDAC
100の制御等を行う(第4図)、これに対し、5CP
U20は音源処理に専用される(第6図)。
ぞれのプログラムに従って動作する0MCPUl0は音
源処理(第5図)以外にシステム全体の制御、例えば入
カポ−)118、出力ボート120に接続される入力装
置(例えば鍵盤、機能キー等)からの入力情報の処理、
デジタル楽音信号をアナログ楽音信号に変換するDAC
100の制御等を行う(第4図)、これに対し、5CP
U20は音源処理に専用される(第6図)。
90は音源制御データ、波形データ等のデータ源として
のメモリである。データメモリ90はここでは、LSI
チップ(第1図の残りのデバイスを搭載している)に外
付けされたROMで構成されている。集積度が高ければ
、単一のLSIチップ上にデータメモリ90を内部メモ
リとして形成可能である。外部メモリ90はMCPU
10と5CPU20に共用される0MCPUl0からの
アドレス情報はMCPUIOに結合するアドレスバスM
A、外部メモリアドレスチッチ30のMCPU外部メモ
リアドレスラッチ30M、アドレス切り換え回路40.
アドレス変換回路60を介して外部データメモリ90の
アドレス入力に加えられる。一方、5CPU20からの
アドレス情報は5CPU20に結合するアドレスへスS
A、5CPU外部メモリアドレスラッチ30S、アドレ
ス切り換え回路40、アドレス変換回路60を通して外
部データメモリ90のアドレス入力に加えられる。外部
データメモリ90からMCPUIOへのデータ伝送径路
は外部データメモリ90のデータ出力、データ変換回路
70.外部メモリデータラッチ80のMCPU外部メモ
リデータラッチ80M、MCPUloに結合するデータ
バスMDによって構成される。これに対し、外部データ
メモリ90から5CPU20へのデータ伝送径賂は外部
データメモリ90のデータ出力、データ変換回路70.
5CPU外部メモリデータラッチ80S、5CPU20
に結合するデータバスSDによって構成される。
のメモリである。データメモリ90はここでは、LSI
チップ(第1図の残りのデバイスを搭載している)に外
付けされたROMで構成されている。集積度が高ければ
、単一のLSIチップ上にデータメモリ90を内部メモ
リとして形成可能である。外部メモリ90はMCPU
10と5CPU20に共用される0MCPUl0からの
アドレス情報はMCPUIOに結合するアドレスバスM
A、外部メモリアドレスチッチ30のMCPU外部メモ
リアドレスラッチ30M、アドレス切り換え回路40.
アドレス変換回路60を介して外部データメモリ90の
アドレス入力に加えられる。一方、5CPU20からの
アドレス情報は5CPU20に結合するアドレスへスS
A、5CPU外部メモリアドレスラッチ30S、アドレ
ス切り換え回路40、アドレス変換回路60を通して外
部データメモリ90のアドレス入力に加えられる。外部
データメモリ90からMCPUIOへのデータ伝送径路
は外部データメモリ90のデータ出力、データ変換回路
70.外部メモリデータラッチ80のMCPU外部メモ
リデータラッチ80M、MCPUloに結合するデータ
バスMDによって構成される。これに対し、外部データ
メモリ90から5CPU20へのデータ伝送径賂は外部
データメモリ90のデータ出力、データ変換回路70.
5CPU外部メモリデータラッチ80S、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
に対するチップ選択信号CEと出力イネーブル信号OE
をアクティブにする。これにより外部メモリ90からデ
ータが出力され、データ変換回路70を通してそのデー
タが外部メモリラッチ80の入力バスに現われる。ここ
で、メモリ装置競合回避回路50はデータアクセスを要
求したCPUにデータを送るためにMCPU外部メモリ
データラッチ80M、5CPU外部メモリデータラッチ
80Sのいずれかを作動してデータをラッチさせる。こ
のためにMCPU外部メモリデータラッチ80Mはメモ
リ装置競合回避回路50からのラッチ信号MDLにより
ラッチ動作し、5CPU外部メモリデークラッチ80S
はメモリ装置競合回避回路50からのラッチ信号SDL
によりラッチ動作するようになっている。
20の両CPUによる外部メモリ90のアクセスを制御
し、その競合を回避するものである。メモリ装置競合回
避回路50はMCPUIOからの外部メモリアクセスを
要求する信号romaと5CPUからの外部メモリアク
セスを要求する信号r omaの各々に応答してアドレ
ス切り換え回路40を制御してアドレス切り換え回路4
0にMCPUIOからのアドレスと5CPU20からの
アドレスのいずれかを外部メモリ90へのアドレスとし
て選択させる。このためにメモリ装置競合回避回路50
からの選択信号MSELによりアドレス切り換え回路4
0は選択動作を行う、外部メモリ90へのアドレスが確
定するとメモリ装置競合回避回路50は外部メモリ90
に対するチップ選択信号CEと出力イネーブル信号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で生成される制御信号をMRl、MR2、MR3(
MCPUI Oの場合)、SR1,SR2、SR3(S
CPU20の場合)で示しである。これらの信号は外部
メモリアドレスチッチ30、アドレス切り換え回路40
を通った後、信号R1,R2、R3と呼ばれる(MRi
+LMRi→RiまたはSRi+LSRi+Ri)、
変換の態様を指定するため、制御信号R1,R2がアド
レス変換回路60に入力される。更に、データ変換回路
70における変換のS様を特定するため、制御信号R1
,R2、R3とアドレス変換回路60からのアドレスビ
ット12の信号AI2とアドレスビット15の信号A1
5がデータ変換回路70に加えられる。アドレス変換回
路60とデータ変換回路70の詳細については後述する
。
タメモリ90のデータを変換したデータがCPUl01
20に取り込まれるようにするための変換デバイスであ
る。アドレス変換回路60はアドレス切り換え回路40
を通ったアドレス、即ち、CPU (MCPUIOか5
CPU20)から出力されたアドレス(論理アドレス)
を選択的に変更して外部データメモリ90に実際に入力
されるアドレスを形成するものであり、データ変換回路
70は外部データメモリ90から出力されたデータを選
択的に変更してCPU(MCPUIOか5CPU20)
に実際に入力されるデータを形成するものである。各変
換回路60.70における変換の態様を指定するために
、制御信号が使用される。各CPUl0120において
、外部データメモリ90に対するデータアクセスは転送
命令を実行することで行われる。転送命令に基づいてC
PUで生成される制御信号をMRl、MR2、MR3(
MCPUI Oの場合)、SR1,SR2、SR3(S
CPU20の場合)で示しである。これらの信号は外部
メモリアドレスチッチ30、アドレス切り換え回路40
を通った後、信号R1,R2、R3と呼ばれる(MRi
+LMRi→RiまたはSRi+LSRi+Ri)、
変換の態様を指定するため、制御信号R1,R2がアド
レス変換回路60に入力される。更に、データ変換回路
70における変換のS様を特定するため、制御信号R1
,R2、R3とアドレス変換回路60からのアドレスビ
ット12の信号AI2とアドレスビット15の信号A1
5がデータ変換回路70に加えられる。アドレス変換回
路60とデータ変換回路70の詳細については後述する
。
MCPUIOと5CPU20との間のインタフェースを
定めるため、両CPU間で複数の信号が伝送される。信
号AはMCPU 10から5CPU20に送られる5C
PU20の処理開始を表わす信号、信号Bは5CPU2
0からMCPUIOに送られる5CPU20の処理絆了
を表わす信号、MaはMCPUIOから5CPU20に
送られる5CPU20の内部メモリ(第3図の206)
のアドレス情報、信号CはMCPU 10から5CPU
20に送られる5CPU20の内部メモリの読み書き制
御信号、Dinは5CPU20からMCPUIOに送ら
れる5CPU20の内部メモリからの読出しデータ、D
oUTはMCPUIOから5CPU20に送られる5
CPU20の内部メモリへの書き込みデータを表わす、
CPU間イフィンタフエース細については後述する。
定めるため、両CPU間で複数の信号が伝送される。信
号AはMCPU 10から5CPU20に送られる5C
PU20の処理開始を表わす信号、信号Bは5CPU2
0からMCPUIOに送られる5CPU20の処理絆了
を表わす信号、MaはMCPUIOから5CPU20に
送られる5CPU20の内部メモリ(第3図の206)
のアドレス情報、信号CはMCPU 10から5CPU
20に送られる5CPU20の内部メモリの読み書き制
御信号、Dinは5CPU20からMCPUIOに送ら
れる5CPU20の内部メモリからの読出しデータ、D
oUTはMCPUIOから5CPU20に送られる5
CPU20の内部メモリへの書き込みデータを表わす、
CPU間イフィンタフエース細については後述する。
上述したように音源処理によりMCPUIOと5CPU
20とでデジタル楽音信号が生成される。生成結果はM
CPUIOから、右DAC100Rと左DAC100L
とから成るデジタルアナログ変換器(DAC)Zooに
送られ、アナログ楽音信号に変換されて外部に出力され
る。
20とでデジタル楽音信号が生成される。生成結果はM
CPUIOから、右DAC100Rと左DAC100L
とから成るデジタルアナログ変換器(DAC)Zooに
送られ、アナログ楽音信号に変換されて外部に出力され
る。
<MCPUと5CPUの構成(第2、第3図)〉第2図
にMCPUIOの内部構造を示し、第3図に5CPU2
0の内部構造を示す。
にMCPUIOの内部構造を示し、第3図に5CPU2
0の内部構造を示す。
第2図において制御用ROM102には楽器の各種制御
入力を処理するメインプログラムと楽音を生成するイン
タラプト処理プログラムが記憶されており、ROMアド
レス制御部114からROMアドレスデコーダ104を
介して指定されたアドレスにあるプログラム語(命令)
をインストラクション出力ラッチ102aを介して順次
出力していく、なお、具体的実施例では、プログラム語
長は28ビツトであり、プログラム語の一部が次に読み
出されるべきプログラム語を記憶するアドレスの下位部
(ページ内アドレス)としてROMアドレス制御部11
4に入力されるネクストアドレス方式となっているが、
代りにプログラムカウンタ方式を使用してもよい、RA
Mアドレス制御部114は制御用ROM102からの命
令のオペランドがレジスタを指定している場合に、RA
M106内の対応するレジスタのアドレスを指定する。
入力を処理するメインプログラムと楽音を生成するイン
タラプト処理プログラムが記憶されており、ROMアド
レス制御部114からROMアドレスデコーダ104を
介して指定されたアドレスにあるプログラム語(命令)
をインストラクション出力ラッチ102aを介して順次
出力していく、なお、具体的実施例では、プログラム語
長は28ビツトであり、プログラム語の一部が次に読み
出されるべきプログラム語を記憶するアドレスの下位部
(ページ内アドレス)としてROMアドレス制御部11
4に入力されるネクストアドレス方式となっているが、
代りにプログラムカウンタ方式を使用してもよい、RA
Mアドレス制御部114は制御用ROM102からの命
令のオペランドがレジスタを指定している場合に、RA
M106内の対応するレジスタのアドレスを指定する。
RAM106は演算用メモリを構成するレジスタ群であ
り、汎用演算、フラグ演算、楽音の演算等に使用される
。ALU部(加減算器及び論理演算部)108と乗算器
110は制御用ROMIO2からの命令が演算命令のと
きに用いられる。
り、汎用演算、フラグ演算、楽音の演算等に使用される
。ALU部(加減算器及び論理演算部)108と乗算器
110は制御用ROMIO2からの命令が演算命令のと
きに用いられる。
特に乗算器110は楽音波形の演算に使用しており、そ
のための最適化として第1と第2のデータ入力(例えば
16ビツトデータ)を乗算して入力と同じ長さ(16ビ
ツト)のデータを出力するようになっている。上記RA
M106、加減算器108、乗算器110により、演算
回路が構成される。オペレージオン制御回路112は制
御用ROM102からの命令のオペコードを解読し、指
示されるオペレーションを実行するために、回路の各部
に制御信号(全体をCNTRで示す)を送る。また条件
付分岐命令の実行の際にオペレージ苫ン制御回路112
はALU部108からのステータス信号S(例えばオー
バーフロー信号、ゼロフラグ信号等)により分岐条件成
立を検出してROMアドレス制御部114を介してアド
レスを分岐先のアドレスにジャンプさせる。
のための最適化として第1と第2のデータ入力(例えば
16ビツトデータ)を乗算して入力と同じ長さ(16ビ
ツト)のデータを出力するようになっている。上記RA
M106、加減算器108、乗算器110により、演算
回路が構成される。オペレージオン制御回路112は制
御用ROM102からの命令のオペコードを解読し、指
示されるオペレーションを実行するために、回路の各部
に制御信号(全体をCNTRで示す)を送る。また条件
付分岐命令の実行の際にオペレージ苫ン制御回路112
はALU部108からのステータス信号S(例えばオー
バーフロー信号、ゼロフラグ信号等)により分岐条件成
立を検出してROMアドレス制御部114を介してアド
レスを分岐先のアドレスにジャンプさせる。
所定時間ごとに制御用ROM102の楽音生成プログラ
ムを実行するため、この実施例ではタイマインタラプト
を採用している。すなわち、タイマ(ハードウェアカウ
ンタ)を有するインタラプト発生部116により、一定
時間ごとにROMアドレス制御部114に制御信号IN
T、(割込要求信号)を送り、この信号により、ROM
アドレス制御部114は次に行うメインプログラムの命
令のアドレスを退iI!(保持)し、楽音の生成が行わ
れるインタラプト処理プログラム(サブルーチン)の先
頭アドレスを代りにセットする。これにより、インタラ
プト処理プログラムが開始される。インタラプト処理プ
ログラムのaSにはリターン命令があるので、このリタ
ーン命令がオペレーション制御回路112で解読された
時点で、ROMアドレス制御部114は退避してあった
アドレスを再度セットし、メインプログラムに復帰する
。更に、インタラプト発生部、116からの制御信号I
NTはDAClooにおける楽音信号のデジタル/アナ
ログ変換サンプリング速度を定めるためにDACloo
に供給される。なお、インタラプト発生部116は図の
上ではMCPUIOの内部要素として描いであるが、M
CPUIOに対して現在行っている仕事を停止させ特別
の処理を要求するものであり、論理的にはMCPUIO
の外部要素(周辺装M)である。
ムを実行するため、この実施例ではタイマインタラプト
を採用している。すなわち、タイマ(ハードウェアカウ
ンタ)を有するインタラプト発生部116により、一定
時間ごとにROMアドレス制御部114に制御信号IN
T、(割込要求信号)を送り、この信号により、ROM
アドレス制御部114は次に行うメインプログラムの命
令のアドレスを退iI!(保持)し、楽音の生成が行わ
れるインタラプト処理プログラム(サブルーチン)の先
頭アドレスを代りにセットする。これにより、インタラ
プト処理プログラムが開始される。インタラプト処理プ
ログラムのaSにはリターン命令があるので、このリタ
ーン命令がオペレーション制御回路112で解読された
時点で、ROMアドレス制御部114は退避してあった
アドレスを再度セットし、メインプログラムに復帰する
。更に、インタラプト発生部、116からの制御信号I
NTはDAClooにおける楽音信号のデジタル/アナ
ログ変換サンプリング速度を定めるためにDACloo
に供給される。なお、インタラプト発生部116は図の
上ではMCPUIOの内部要素として描いであるが、M
CPUIOに対して現在行っている仕事を停止させ特別
の処理を要求するものであり、論理的にはMCPUIO
の外部要素(周辺装M)である。
クロック発生回路136はマスタークロー、り発生回路
(図示せず)からの2相のマスタークロー7りCKIと
CK2を受け、オペレーション制御回路112を初めと
する回路の各部に加える種々のタイミング信号(T1.
T2、T3、TlCK1、T2CK2、T3CK3等)
を発生する。
(図示せず)からの2相のマスタークロー7りCKIと
CK2を受け、オペレーション制御回路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内部パ
スに接続するためのゲートを表わす。
ンタフェースに係っている。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の状
態を検出できる。
間を管理するためのデバイスである。この実施例に従い
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のブロック図において、要素20
2.202a、204.205 206.208.21
2.214.222.224.236はそれぞれ、第2
図のMCPUIOのブロー2り図における要素102.
102a、104.105.106.108.110.
112.114.122.124.136に対応する要
素である。ただし、5CPU20の制御用ROM202
には基本的に音源処理のためのプログラムのみが記憶さ
れており、5CPU20を音源処理専用の処理装置とし
て機能させている。
2.202a、204.205 206.208.21
2.214.222.224.236はそれぞれ、第2
図のMCPUIOのブロー2り図における要素102.
102a、104.105.106.108.110.
112.114.122.124.136に対応する要
素である。ただし、5CPU20の制御用ROM202
には基本的に音源処理のためのプログラムのみが記憶さ
れており、5CPU20を音源処理専用の処理装置とし
て機能させている。
240は5CPU20の演算用メモリとしてのRAM2
06へ入力するデータをMCPUIOからのデータ(M
CPUIOからゲート130.データバスD 0LII
を通ったデータ)と5CPU20の生成(演X)した
データ(ALU部208または乗算器210からのデー
タバスDB上のデータ)とから選択するRAMデータイ
ン切り換え部である。RAMデータイン切り換え部24
0は信号Aによってその選択モードが制御され、信号A
が“5CPU20動作中”を表わしているときには5C
PU20で演算したデータを選択し、信号Aが“5CP
U20停止中”を表わしているときにはMCPUIOか
らのデータを選択する。
06へ入力するデータをMCPUIOからのデータ(M
CPUIOからゲート130.データバスD 0LII
を通ったデータ)と5CPU20の生成(演X)した
データ(ALU部208または乗算器210からのデー
タバスDB上のデータ)とから選択するRAMデータイ
ン切り換え部である。RAMデータイン切り換え部24
0は信号Aによってその選択モードが制御され、信号A
が“5CPU20動作中”を表わしているときには5C
PU20で演算したデータを選択し、信号Aが“5CP
U20停止中”を表わしているときにはMCPUIOか
らのデータを選択する。
また、RAMアドレス制御部205も、信号Aによって
そのモードが制御され、信号Aが“5CPU20動作中
”を表わしているときには制御用ROMのインストラク
ション出力ラッチ202aからのパスSA上の情報をR
AM206のアドレスとして選択し、信号Aが“5CP
U20停止中”を表わしているときにはMCPUIOか
らパスゲート128(信号Aにより開いている)を経て
パスMa上にあるMCPUIOからの情報をRAM20
6のアドレスとして選択する。同様に、ライト信号切り
換え部242も信号Aによってそのモードが制御され、
信号Aが“5CPU20動作中”を表わしているときに
は5CPU20のオペレージ、ン制御回路212からの
RAMリードライト信号を選択してRAM206のリー
ドライト入力R/Wに結合し、信号Aが“5CPU20
停止中”を表わしているときには5CPU20ではなく
MCFUIOのオペレーション制御回路112からのS
CPDRAMリードライト信号を選択してRAM206
のリードライト入力R/Wに結合する。
そのモードが制御され、信号Aが“5CPU20動作中
”を表わしているときには制御用ROMのインストラク
ション出力ラッチ202aからのパスSA上の情報をR
AM206のアドレスとして選択し、信号Aが“5CP
U20停止中”を表わしているときにはMCPUIOか
らパスゲート128(信号Aにより開いている)を経て
パスMa上にあるMCPUIOからの情報をRAM20
6のアドレスとして選択する。同様に、ライト信号切り
換え部242も信号Aによってそのモードが制御され、
信号Aが“5CPU20動作中”を表わしているときに
は5CPU20のオペレージ、ン制御回路212からの
RAMリードライト信号を選択してRAM206のリー
ドライト入力R/Wに結合し、信号Aが“5CPU20
停止中”を表わしているときには5CPU20ではなく
MCFUIOのオペレーション制御回路112からのS
CPDRAMリードライト信号を選択してRAM206
のリードライト入力R/Wに結合する。
以下1本実施例の諸特徴を更に詳細に説明する。
く複数CPU音源橡能(第1−第7図、第9〜第11図
)〉 第4図はMCPUIOのメインプログラム(バックグラ
ンドプログラム)によるMCPUIOの動作を示すフロ
ーチャート、第5図はタイマインタラプト信号INTに
よって起動されるMCPUloのインタラプト処理ルー
チンによるMCPUloの動作を示すフローチャート、
第6図はタイマインタラプト信号INTによって起動さ
れる5CPU20のプログラムによる5CPU20の動
作を示すフローチャート、第7図はMCPUIOと5C
PU20のそれぞれが実行する音源処理のフローチャー
トである。
)〉 第4図はMCPUIOのメインプログラム(バックグラ
ンドプログラム)によるMCPUIOの動作を示すフロ
ーチャート、第5図はタイマインタラプト信号INTに
よって起動されるMCPUloのインタラプト処理ルー
チンによるMCPUloの動作を示すフローチャート、
第6図はタイマインタラプト信号INTによって起動さ
れる5CPU20のプログラムによる5CPU20の動
作を示すフローチャート、第7図はMCPUIOと5C
PU20のそれぞれが実行する音源処理のフローチャー
トである。
@1−第351Jに関して述べたように1本実施例の電
子楽器処理システムはMCPUIOと5CPU20とか
ら成る複数のCPUを備えており、両CPUが協働して
電子楽器のための処理を実行する。特にMCPUIOは
、第5図に示すようなインタラプト処理ルーチンにより
音源処理を行い、5CPU20は第6図に示すようなプ
ログラムにより音源処理を行う、更にMCPUIOは第
4図に示すメインプログラムにより、システム全体の制
御のための種々のタスクを実行する。
子楽器処理システムはMCPUIOと5CPU20とか
ら成る複数のCPUを備えており、両CPUが協働して
電子楽器のための処理を実行する。特にMCPUIOは
、第5図に示すようなインタラプト処理ルーチンにより
音源処理を行い、5CPU20は第6図に示すようなプ
ログラムにより音源処理を行う、更にMCPUIOは第
4図に示すメインプログラムにより、システム全体の制
御のための種々のタスクを実行する。
第4図のメインプログラムのフローにおいて、4−1は
電源投入時にシステムを初期化する処理であり1MCP
Ul0はRAM106、RAM206のクリアや、リズ
ムテンポ等の初期値の設定等を行う、4−2でMCPU
IOは出力ポート120からキー走査のための信号を出
力し、鍵盤、機能スイッチ等の入力装置の状態を入力ポ
ートl18から取り込むことにより、機能キー、I!盤
キーの状態をRAM106のキーバッファエリアに記憶
する。4−3では4−2で得た機能キーの新しい状態と
前回の状態とから、状態の変化した機能キーを識別し、
指示される機能の実行を行う(例えば、楽音番号のセッ
ト、エンベロープ番号のセット、リズム番号のセット等
)、4−4では4−2で得た鍵盤の最新の状態と前回の
状態とから、変化した鍵(押鍵、離鍵)を識別する0次
の4−5で4−4の処理結果から、発音処理4−9のた
めのキーアサイン処理を行う、4−6では機能キーでデ
モ演奏キーが押鍵されたとき外部メモリ90から、デモ
演奏データ(シーケンサデータ)を順次読み出し、処理
することにより、発音処理4−9のためのキーアサイン
処理等を行う。
電源投入時にシステムを初期化する処理であり1MCP
Ul0はRAM106、RAM206のクリアや、リズ
ムテンポ等の初期値の設定等を行う、4−2でMCPU
IOは出力ポート120からキー走査のための信号を出
力し、鍵盤、機能スイッチ等の入力装置の状態を入力ポ
ートl18から取り込むことにより、機能キー、I!盤
キーの状態を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のためのキー7サイン処理を行う、フロー−周タイ
マ処理4−8では、メインフローで必要なイベントのタ
イミングを知るために、フロー−開時間(これは、フロ
ーを一周する間に実行されたタイマインタラプトの回数
を計数することで得られる。この計数処理は後述のイン
タラプトタイマ処理5−2で行われる。)を基に演算I
:行い、エンベロープ用タイマ(エンベロープの演算周
期)やリズム用の基準値を得る0発音処理4−9では4
−5.4−6.4−7でセットされたデータから、実際
に楽音を発音させるための各種演算を行い、結果をRA
M106.RAM206内の音源処理レジスタ(第11
図)にセットする。4−10は次のメインフローのパス
のための準備処理であり、今回のパスで得た押鍵状態へ
の変化を示すNEW ON状態をON中にしたり、離
鍵状態への変化を示すNEW OFF状態をOFF中
に変える等の処理を行う。
モリ90からリズムデータを順次読み出し、発音処理4
−9のためのキー7サイン処理を行う、フロー−周タイ
マ処理4−8では、メインフローで必要なイベントのタ
イミングを知るために、フロー−開時間(これは、フロ
ーを一周する間に実行されたタイマインタラプトの回数
を計数することで得られる。この計数処理は後述のイン
タラプトタイマ処理5−2で行われる。)を基に演算I
:行い、エンベロープ用タイマ(エンベロープの演算周
期)やリズム用の基準値を得る0発音処理4−9では4
−5.4−6.4−7でセットされたデータから、実際
に楽音を発音させるための各種演算を行い、結果をRA
M106.RAM206内の音源処理レジスタ(第11
図)にセットする。4−10は次のメインフローのパス
のための準備処理であり、今回のパスで得た押鍵状態へ
の変化を示すNEW ON状態をON中にしたり、離
鍵状態への変化を示すNEW OFF状態をOFF中
に変える等の処理を行う。
インタラプト発生部116からインタラプト信号INT
が発生すると、MCPUIOは実行中のメインプログラ
ムを中断し、第5v!Jに示すインタラプト処理ルーチ
ンを実行し、5CPU20は第6図に示すプログラムを
実行する。ここにMCPUIOは第5図のフローにおい
て楽音信号を生成し、5CPU20は第6図のフローに
おいて楽音信号を生成するようになっている。
が発生すると、MCPUIOは実行中のメインプログラ
ムを中断し、第5v!Jに示すインタラプト処理ルーチ
ンを実行し、5CPU20は第6図に示すプログラムを
実行する。ここにMCPUIOは第5図のフローにおい
て楽音信号を生成し、5CPU20は第6図のフローに
おいて楽音信号を生成するようになっている。
詳細に述べるとMCPUIOは5−1で各チャンネルに
対する楽音波形データを生成し、累算し、記憶する。従
来はこの処理を音源回路ハードウェアで行っていた0次
のインタラプト処理タイマ処理5−2でMCPUIOは
インタラプトが一定時間ごとにかかることを利用して、
フロー−周計時用のタイマレジスタ(RAM106内)
e通過の都度、プラスlする。5−3でMCPUIOは
5CPU20の音源処理6−1が終了しているかどうか
を検査し、終了していれば、5−4に進んで、5CPU
20で生成されたRAM206上の楽音波形データをR
AM106内に読み込む。
対する楽音波形データを生成し、累算し、記憶する。従
来はこの処理を音源回路ハードウェアで行っていた0次
のインタラプト処理タイマ処理5−2でMCPUIOは
インタラプトが一定時間ごとにかかることを利用して、
フロー−周計時用のタイマレジスタ(RAM106内)
e通過の都度、プラスlする。5−3でMCPUIOは
5CPU20の音源処理6−1が終了しているかどうか
を検査し、終了していれば、5−4に進んで、5CPU
20で生成されたRAM206上の楽音波形データをR
AM106内に読み込む。
モして5−5でMCPUIOはMCPUIOの生成した
楽音波形データと5CPU20で生成した楽音波形デー
タをDAClooに出力する。
楽音波形データと5CPU20で生成した楽音波形デー
タをDAClooに出力する。
音源処理5−1.6−1の詳細を第7図に示す、本例で
は、各CPU(MCPUIO1scpU20)はそれぞ
れ8チャンネル分の楽音波形データを生成可能であり、
システム全体として16チヤンネル分の楽音波形データ
を生成可能としている。7−1で波形加算用RAM領域
(RAMI06内、RAM206内)をクリアし、7−
2〜7−9で第1チヤンネルからW48チャンネルまで
の各チャンネル音源処理を順次実行する。各チャンネル
音源処理の最後で、チャンネルの楽音#形値が波形加算
用RAM領域のデータに加算される。
は、各CPU(MCPUIO1scpU20)はそれぞ
れ8チャンネル分の楽音波形データを生成可能であり、
システム全体として16チヤンネル分の楽音波形データ
を生成可能としている。7−1で波形加算用RAM領域
(RAMI06内、RAM206内)をクリアし、7−
2〜7−9で第1チヤンネルからW48チャンネルまで
の各チャンネル音源処理を順次実行する。各チャンネル
音源処理の最後で、チャンネルの楽音#形値が波形加算
用RAM領域のデータに加算される。
次にチャンネル音源処理の例について第9図〜第11図
を参照して説明する。この例では、波形読み出しくPC
M)方式の楽音合成を採用している(他の楽音合成方式
、例えばFM合成も実現可能であり、この発明は特定の
楽音合成方式には制限されない)、チャンネル音源処理
は大きくわけて、エンベロープ処理(9−1〜9−7)
と、エンベロープ付加を含む波形処理(9−8〜9−2
1)とから成る。各CPU (MCPUIO,5CPU
20)はチャンネル音源処理を実行する際に、そのチャ
ンネルに対する音源処理レジスタ群、即ち第11図に示
すように、エンベロープΔx用タイマー、目標エンベロ
ープ、エンベロープΔX、加減フラグ付エンベロープΔ
y、現在エンベロープ、アドレス加算値、ループアドレ
ス、エンドアドレス、スタートアドレス兼現在アドレス
を参照し、所望のレジスタを更新する。エンベロープは
振幅変調のために基本波形に付加すべきもので、全体と
していくつかのセグメント(ステップ)から成っている
。エンベロープΔχ用タイマーと目標エンベロープとエ
ンベロープΔXと加減フラグ付エンベロープΔyは現在
進行中のエンベロープセグメントを定義するエンベロー
プパラメータであり、このエンベロープパラメータは、
MCPUIOのメインプログラム(第4図)の発音%F
i4−9内において、エンベロープ値がセグメントの目
標値に到達の都度、更新される情報であり、インタラプ
ト処理ルーチン(第5図、第6図)ではこれらのエンベ
ロープパラメータはエンヘロープΔχ用タイマーを除い
て単に参照されるだけである。エンベロープΔXはエン
ベロープの演算周期を表わし、目標エンベロープは現セ
グメントにおけるエンベロープの目標値を表わし、加減
フラグ付エンベロープΔyは演算周期ごとのエンベロー
プの変化分を表わし、現在エンベロープは現在のエンベ
ロープ値を表わす、アドレス加算値、ループアドレス、
エンドアドレス及びスタートアドレス兼現在アドレスは
外部メモリ90に置かれる基本波形に対するアドレス情
報であり、スタートアドレスは基本波形メモリ(外部メ
モリ90内)のスタートアドレス、ループアドレスは基
本波形を繰り返し読み出す場合の戻り先のアドレス(3
10図ではスタートアドレスと同一’) 、エンドアド
レスは基本波形のエンドアドレスを表わし、現在アドレ
スは基本波形の現在の位相な表わすアドレスであり、そ
の整数部が、基本波形メモリに現実に存在する記憶場所
を表わし、その小数部が、この記憶場所からのずれを表
わし、アドレス加算値はタイマインタラプト処理ルーチ
ンノ時間間隔ごとに現在アドレスに加算されるべき値で
あり、生成する楽音のピッチに正比例する。
を参照して説明する。この例では、波形読み出しくPC
M)方式の楽音合成を採用している(他の楽音合成方式
、例えばFM合成も実現可能であり、この発明は特定の
楽音合成方式には制限されない)、チャンネル音源処理
は大きくわけて、エンベロープ処理(9−1〜9−7)
と、エンベロープ付加を含む波形処理(9−8〜9−2
1)とから成る。各CPU (MCPUIO,5CPU
20)はチャンネル音源処理を実行する際に、そのチャ
ンネルに対する音源処理レジスタ群、即ち第11図に示
すように、エンベロープΔx用タイマー、目標エンベロ
ープ、エンベロープΔX、加減フラグ付エンベロープΔ
y、現在エンベロープ、アドレス加算値、ループアドレ
ス、エンドアドレス、スタートアドレス兼現在アドレス
を参照し、所望のレジスタを更新する。エンベロープは
振幅変調のために基本波形に付加すべきもので、全体と
していくつかのセグメント(ステップ)から成っている
。エンベロープΔχ用タイマーと目標エンベロープとエ
ンベロープΔXと加減フラグ付エンベロープΔyは現在
進行中のエンベロープセグメントを定義するエンベロー
プパラメータであり、このエンベロープパラメータは、
MCPUIOのメインプログラム(第4図)の発音%F
i4−9内において、エンベロープ値がセグメントの目
標値に到達の都度、更新される情報であり、インタラプ
ト処理ルーチン(第5図、第6図)ではこれらのエンベ
ロープパラメータはエンヘロープΔχ用タイマーを除い
て単に参照されるだけである。エンベロープΔXはエン
ベロープの演算周期を表わし、目標エンベロープは現セ
グメントにおけるエンベロープの目標値を表わし、加減
フラグ付エンベロープΔyは演算周期ごとのエンベロー
プの変化分を表わし、現在エンベロープは現在のエンベ
ロープ値を表わす、アドレス加算値、ループアドレス、
エンドアドレス及びスタートアドレス兼現在アドレスは
外部メモリ90に置かれる基本波形に対するアドレス情
報であり、スタートアドレスは基本波形メモリ(外部メ
モリ90内)のスタートアドレス、ループアドレスは基
本波形を繰り返し読み出す場合の戻り先のアドレス(3
10図ではスタートアドレスと同一’) 、エンドアド
レスは基本波形のエンドアドレスを表わし、現在アドレ
スは基本波形の現在の位相な表わすアドレスであり、そ
の整数部が、基本波形メモリに現実に存在する記憶場所
を表わし、その小数部が、この記憶場所からのずれを表
わし、アドレス加算値はタイマインタラプト処理ルーチ
ンノ時間間隔ごとに現在アドレスに加算されるべき値で
あり、生成する楽音のピッチに正比例する。
詳細に述べると、9−1でエンベロープの演算周期ΔX
と比較するためのタイマレジスタをインタラプトごtに
インクリメントし、9−2でΔXと一致したと59−3
でエンベロープ変位分のデータΔyの加減算フラグ(符
号ビット)をテストしてエンベロープが上昇中か下鋒中
かを判別し。
と比較するためのタイマレジスタをインタラプトごtに
インクリメントし、9−2でΔXと一致したと59−3
でエンベロープ変位分のデータΔyの加減算フラグ(符
号ビット)をテストしてエンベロープが上昇中か下鋒中
かを判別し。
9−4.9−5でそれぞれ現在エンベロープの減算また
は加算を行う、9−6で現在エンベロープが目標エンベ
ロープ値に達したがどうかをチエツクし、達しておれば
、現在エンベロープに目標レベルをセットする。これに
よりメインプログラムの発音処理4−9で次のエンベロ
ープステップのデータがセットされることになる。また
発音処理4−9でゼロの現在エンベロープを読んだとき
には発音の終了として処理される。
は加算を行う、9−6で現在エンベロープが目標エンベ
ロープ値に達したがどうかをチエツクし、達しておれば
、現在エンベロープに目標レベルをセットする。これに
よりメインプログラムの発音処理4−9で次のエンベロ
ープステップのデータがセットされることになる。また
発音処理4−9でゼロの現在エンベロープを読んだとき
には発音の終了として処理される。
次に、波形処理9−8〜9−21について述べる。波形
処理では、現在アドレスの整数部を使って基本波形メモ
リから隣り合う2つアドレスの波形データを読み出し、
(整数部十小数部)で示される現在アドレスに対して想
足される波形値を補間で求めている。補間が必要な理由
は1.タイマインタラプトによる波形サンプリング周期
が一定であり、アドレスの加算値(ピッチデータ)が楽
器への応用上、ある音域にわたるためである(音階音し
か出力しない楽器で音階音ごとに波形データを用意すれ
ば補簡の必要はないが許容できない記憶容量の増大とな
る)、補間による音色の劣化、歪みは高音域の方が著し
いため、原音の記録サンプリング周期より高速の周期で
原音を再生するのが好ましい、この実施例では原音(4
,−4)再生の周期を2倍にしている(第10図)、シ
たがって、アドレス加算値がL5のとき、A4の音が得
られるようになっている。この場合、A#4ではアドレ
ス加算値は(1,529と、なり、A3のとき、1とな
る。これらのアドレス加算値はピッチデータとして制御
データ兼波形外部メモリ90内に記憶されており、押鍵
時には発音処理4−9において、鍵に対応するピッチデ
ータと選択されている音色の波形スタートアドレス、波
形エンドアドレス及び波形ループアドレスがRAM10
6またはRAM206の対応するレジスタ、すなわち、
アドレス加算値レジスタ、スタートアドレス兼現在アド
レスレジスタ、エンドアドレスレジスタ、ループアドレ
スレジスタにセットされる。
処理では、現在アドレスの整数部を使って基本波形メモ
リから隣り合う2つアドレスの波形データを読み出し、
(整数部十小数部)で示される現在アドレスに対して想
足される波形値を補間で求めている。補間が必要な理由
は1.タイマインタラプトによる波形サンプリング周期
が一定であり、アドレスの加算値(ピッチデータ)が楽
器への応用上、ある音域にわたるためである(音階音し
か出力しない楽器で音階音ごとに波形データを用意すれ
ば補簡の必要はないが許容できない記憶容量の増大とな
る)、補間による音色の劣化、歪みは高音域の方が著し
いため、原音の記録サンプリング周期より高速の周期で
原音を再生するのが好ましい、この実施例では原音(4
,−4)再生の周期を2倍にしている(第10図)、シ
たがって、アドレス加算値がL5のとき、A4の音が得
られるようになっている。この場合、A#4ではアドレ
ス加算値は(1,529と、なり、A3のとき、1とな
る。これらのアドレス加算値はピッチデータとして制御
データ兼波形外部メモリ90内に記憶されており、押鍵
時には発音処理4−9において、鍵に対応するピッチデ
ータと選択されている音色の波形スタートアドレス、波
形エンドアドレス及び波形ループアドレスがRAM10
6またはRAM206の対応するレジスタ、すなわち、
アドレス加算値レジスタ、スタートアドレス兼現在アド
レスレジスタ、エンドアドレスレジスタ、ループアドレ
スレジスタにセットされる。
・参考までに、第1θ図に時間に対する補間波形データ
を示す0図中、白丸は基本波形メモリの記憶場所にある
波形データ値、×印は補間値を含む出力サンプルを示し
ている。
を示す0図中、白丸は基本波形メモリの記憶場所にある
波形データ値、×印は補間値を含む出力サンプルを示し
ている。
補間の方式はいろいろあるが、ここでは直線補間を採用
している。詳細に述べると、まず、9−8で現在アドレ
スにアドレス加算値慶加算して新しい現在アドレスを得
る。9−9−で現在アドレスとエンドアドレスを比較し
、現在アドレス〉エンドアドレスならば、9−10.9
−11により、現在アドレスくエンドアドレスのときは
9〜12により、物理上(番地上)または論理上(動作
上)の次のアドレスを計算し、9−14でその整数部に
より基本波形メモリをアクセスして次回波形データを得
る。ループアドレスは動作上エンドアドレスの次のアド
レスである。すなわち、第10図の場合、図示の波形は
繰り返し読み出される。したがって、現在アドレス=エ
ンドアドレスのときは次のアドレスとしてループアドレ
スの波形データを読み出す(9−13)、9−15.9
−16により、現在アドレスの整数部で基本波形をアク
セスして今回の波形データを読み出す0次に、9−17
で次回波形値から今回波形値を減算し、9−18でその
差に現在アドレスの小数部を乗算し、その結果を9−1
9で今回の波形値に加えることにより、波形の直線補間
値を求める。この直線補間したデータに現在エンベロー
プ値を乗算してチャンネルの楽音データ値を得(9−2
0)、それを波形加算用レジスタの内容に加えて楽音デ
ータを累算する(9−21)、このレジスタに累算され
たデジタル楽音データがタイマインタラプト処理ルーチ
ン(s、 5図)の5−5でDAC100に送出される
。これに関連し、第1図ではDAClooはステレオ出
力を得るべく右DAC100Rと左DAC100Lから
成っている。
している。詳細に述べると、まず、9−8で現在アドレ
スにアドレス加算値慶加算して新しい現在アドレスを得
る。9−9−で現在アドレスとエンドアドレスを比較し
、現在アドレス〉エンドアドレスならば、9−10.9
−11により、現在アドレスくエンドアドレスのときは
9〜12により、物理上(番地上)または論理上(動作
上)の次のアドレスを計算し、9−14でその整数部に
より基本波形メモリをアクセスして次回波形データを得
る。ループアドレスは動作上エンドアドレスの次のアド
レスである。すなわち、第10図の場合、図示の波形は
繰り返し読み出される。したがって、現在アドレス=エ
ンドアドレスのときは次のアドレスとしてループアドレ
スの波形データを読み出す(9−13)、9−15.9
−16により、現在アドレスの整数部で基本波形をアク
セスして今回の波形データを読み出す0次に、9−17
で次回波形値から今回波形値を減算し、9−18でその
差に現在アドレスの小数部を乗算し、その結果を9−1
9で今回の波形値に加えることにより、波形の直線補間
値を求める。この直線補間したデータに現在エンベロー
プ値を乗算してチャンネルの楽音データ値を得(9−2
0)、それを波形加算用レジスタの内容に加えて楽音デ
ータを累算する(9−21)、このレジスタに累算され
たデジタル楽音データがタイマインタラプト処理ルーチ
ン(s、 5図)の5−5でDAC100に送出される
。これに関連し、第1図ではDAClooはステレオ出
力を得るべく右DAC100Rと左DAC100Lから
成っている。
この場合、MCPUIO,5CPU20の処理する音源
チャンネルの夫々を左右のDACのいずれに割り当てる
かを決めるようにするとよい、具体的には、各チャンネ
ル用の音源データとして内部RAM10B、206上に
、選択DAC指示データをもたせ、また、2つの波形加
算用領域、即ち、左DAC用波形加算用領域と左DAC
用波形加算用領域を設ける。また、7−1に対応するス
テップで左右のDAC用の各波形加算用領域をクリアし
、9−20の処理の後、処理チャンネルに割り当ててい
るDACを選択DAC指示データから判別し、対応する
波形加算用領域に処理チャンネルの楽音波形データを加
算する。そして、MCPUIOのインタラプト処理ルー
チン(第5図)のステ、プ5−4に対応するステップで
、5CPU20の生成した左DAC用楽音波形データと
右DAC用楽音波形データとをそれぞれMCPUIoで
生成した左DAC用楽音波形データと右DAC用楽音波
形データに加算し、加算結果である左DAC用と右DA
C用の楽音波形データを5−5に相当するステップで、
それぞれ左DAC100Lと右DAC100Rに送出す
る。
チャンネルの夫々を左右のDACのいずれに割り当てる
かを決めるようにするとよい、具体的には、各チャンネ
ル用の音源データとして内部RAM10B、206上に
、選択DAC指示データをもたせ、また、2つの波形加
算用領域、即ち、左DAC用波形加算用領域と左DAC
用波形加算用領域を設ける。また、7−1に対応するス
テップで左右のDAC用の各波形加算用領域をクリアし
、9−20の処理の後、処理チャンネルに割り当ててい
るDACを選択DAC指示データから判別し、対応する
波形加算用領域に処理チャンネルの楽音波形データを加
算する。そして、MCPUIOのインタラプト処理ルー
チン(第5図)のステ、プ5−4に対応するステップで
、5CPU20の生成した左DAC用楽音波形データと
右DAC用楽音波形データとをそれぞれMCPUIoで
生成した左DAC用楽音波形データと右DAC用楽音波
形データに加算し、加算結果である左DAC用と右DA
C用の楽音波形データを5−5に相当するステップで、
それぞれ左DAC100Lと右DAC100Rに送出す
る。
このように1本実施例の電子楽器用処理装置はMCPU
IOと5CPU20という複数のCPUを有し、各CP
Uにおいて、内蔵されるプログラムに従って音源処理を
実行することができる。なお実施例では1つの5CPU
を使用しているが、音源処理を行う複数の5CPUを設
けるようにしてもよい。
IOと5CPU20という複数のCPUを有し、各CP
Uにおいて、内蔵されるプログラムに従って音源処理を
実行することができる。なお実施例では1つの5CPU
を使用しているが、音源処理を行う複数の5CPUを設
けるようにしてもよい。
<5CPU動作開始・終了機能(第12〜第15図、第
2〜第6図、第8図)〉 本実施例によればMCPUIOは5CPU20の動作期
間を管理、把握する機能を有している。
2〜第6図、第8図)〉 本実施例によればMCPUIOは5CPU20の動作期
間を管理、把握する機能を有している。
この目的のため、
(イ)MCPUIOはタイマ・インタラプト発生部11
6からインタラプト信号が発生したと5に、これを合図
として5CPU20の動作を開始させ、MCPUIOの
オペレーション制御回路112が参照する5CPU状態
フラグを“5CPU動作中”にセットする。
6からインタラプト信号が発生したと5に、これを合図
として5CPU20の動作を開始させ、MCPUIOの
オペレーション制御回路112が参照する5CPU状態
フラグを“5CPU動作中”にセットする。
(ロ)SCPU20は動作(音源処理)を完了したとき
に、これに応答して停止状態に移行し、MCPUIOに
動作完了信号を送り、MCPUloのオペレーション制
御回路112が参照する5CPU状態フラグを“5CP
U停止中”にセットする。
に、これに応答して停止状態に移行し、MCPUIOに
動作完了信号を送り、MCPUloのオペレーション制
御回路112が参照する5CPU状態フラグを“5CP
U停止中”にセットする。
第2図〜第6図を参照すると、MCPUIOはメインプ
ログラム(第4図)の実行中に、インタラプト発生部1
16(第2図)からインタラプト信号を受けると、RO
Mアドレス制御部114を介してメインプログラムを中
断し、楽音生成のために第5図に示すタイマインタラプ
ト処理ルーチンを実行する。更に、MCPUIOはイン
タラプト信号に対し、5CPUリセット制御部134を
介して5CPU20に5CPU動作開始信号Aを送り、
これを受けて5CPU20はROMアドレス制御部21
4を介して第6図に示す楽音生成のためのプログラムを
実行する(なお信号Aにより、バスゲート128、RA
Mアドレス制御部204、RAMデータイン切り換え部
240、ライト信号切り換え部242も、5CPU20
自身の動作のためにセットされる)。このプログラムの
終了に伴い、5CPU20はオペレーション制御回路2
12から動作完了信号Bを発生する。この信号Bは5C
PUリセット制御部134に送られ、これを受けて5C
PUリセット制御部134は5CPU20の動作を停止
するために信号AとBを反転する0反転された信号Aを
受けて5CPU20のROMアドレス制御部214のア
ドレス更新動作が停止し、5CPU20は停止する。ま
た信号Bは“5CPU停止中”を示す信号としてMCP
UIOのオペレーション制御回路112に与えられる。
ログラム(第4図)の実行中に、インタラプト発生部1
16(第2図)からインタラプト信号を受けると、RO
Mアドレス制御部114を介してメインプログラムを中
断し、楽音生成のために第5図に示すタイマインタラプ
ト処理ルーチンを実行する。更に、MCPUIOはイン
タラプト信号に対し、5CPUリセット制御部134を
介して5CPU20に5CPU動作開始信号Aを送り、
これを受けて5CPU20はROMアドレス制御部21
4を介して第6図に示す楽音生成のためのプログラムを
実行する(なお信号Aにより、バスゲート128、RA
Mアドレス制御部204、RAMデータイン切り換え部
240、ライト信号切り換え部242も、5CPU20
自身の動作のためにセットされる)。このプログラムの
終了に伴い、5CPU20はオペレーション制御回路2
12から動作完了信号Bを発生する。この信号Bは5C
PUリセット制御部134に送られ、これを受けて5C
PUリセット制御部134は5CPU20の動作を停止
するために信号AとBを反転する0反転された信号Aを
受けて5CPU20のROMアドレス制御部214のア
ドレス更新動作が停止し、5CPU20は停止する。ま
た信号Bは“5CPU停止中”を示す信号としてMCP
UIOのオペレーション制御回路112に与えられる。
MCPUloのインタラプト処理ルーチン(第5図)の
5−3に示す5cpuB態検査命令を実行する際、MC
PUIOのオペレージコン制御回路112は5CPU状
態フラグBを読む、フラグBが“5CPU停止中”を示
し、したがって、5CPU20での音源処理(第6図)
が完了しているときにMCPUIOは5−4に進んで5
CPU20の生成した楽音波形データを読み込む、MC
PUIOは第5図のインクラット処理ルーチン終了時に
オペレーション制御回路112からROMアドレス制御
部114にメインプログラムへの復帰コマンド信号を与
えて、中断していたメインプログラムに制御を戻す。
5−3に示す5cpuB態検査命令を実行する際、MC
PUIOのオペレージコン制御回路112は5CPU状
態フラグBを読む、フラグBが“5CPU停止中”を示
し、したがって、5CPU20での音源処理(第6図)
が完了しているときにMCPUIOは5−4に進んで5
CPU20の生成した楽音波形データを読み込む、MC
PUIOは第5図のインクラット処理ルーチン終了時に
オペレーション制御回路112からROMアドレス制御
部114にメインプログラムへの復帰コマンド信号を与
えて、中断していたメインプログラムに制御を戻す。
第8図に、時間の流れに沿う本実施例の動作の流れを示
す、A−Fはメインプログラムの断片である。5A〜5
Fは第5図のMCPUインタラプト処理ルーチンを表わ
し、6A〜6Fは第6図の5CPUインタラプト処理ル
ーチンを表わす6図示のように、インタラプト信号IN
Tが発生すると、MCPUIOは実行中のプログラムを
中断し、インタラプト処理が各CPUl0120におい
て開始し、音源の並行処理が実行される。
す、A−Fはメインプログラムの断片である。5A〜5
Fは第5図のMCPUインタラプト処理ルーチンを表わ
し、6A〜6Fは第6図の5CPUインタラプト処理ル
ーチンを表わす6図示のように、インタラプト信号IN
Tが発生すると、MCPUIOは実行中のプログラムを
中断し、インタラプト処理が各CPUl0120におい
て開始し、音源の並行処理が実行される。
第12図に上述した5CPUの動作開始・終了機能を実
現する構成を詳細に示し、第13図〜第15図にその動
作のタイムチャートを示す、第13図のタイムチャート
において、CKI、CK2はMCPUloと5CPU2
0におけるりo +7り発生回路136,236に入力
される2相のマスタークロックであり、このマスターク
ロックCK1、CK2かもクロック発生回路136はM
CPUIO動作のための基本タイミングを与える3相の
クロックT1.T2、T3を生成する。この3相クロツ
クの繰り返し周期がマシンサイクル(最短の命令実行時
間)を定める。クロックTlCK1、T2CK2、T3
CK3はそれぞれ、TIとCK1.T2とCK2、T3
とCK3の論理積信号である。オペレーションラッチ信
号はMCPUloの制御用ROM102のインストラク
ション出力ラッチ102aにROM102からのインス
トラクションをラッチさせるための信号である。
現する構成を詳細に示し、第13図〜第15図にその動
作のタイムチャートを示す、第13図のタイムチャート
において、CKI、CK2はMCPUloと5CPU2
0におけるりo +7り発生回路136,236に入力
される2相のマスタークロックであり、このマスターク
ロックCK1、CK2かもクロック発生回路136はM
CPUIO動作のための基本タイミングを与える3相の
クロックT1.T2、T3を生成する。この3相クロツ
クの繰り返し周期がマシンサイクル(最短の命令実行時
間)を定める。クロックTlCK1、T2CK2、T3
CK3はそれぞれ、TIとCK1.T2とCK2、T3
とCK3の論理積信号である。オペレーションラッチ信
号はMCPUloの制御用ROM102のインストラク
ション出力ラッチ102aにROM102からのインス
トラクションをラッチさせるための信号である。
第13図には図示しないが、5CPU20のクロック回
路236も同様のクロック信号を生成する(第3図、第
25図参照)、なお、MCPUIOと5CPU20に共
通のクロック発生回路を使用してもよい。
路236も同様のクロック信号を生成する(第3図、第
25図参照)、なお、MCPUIOと5CPU20に共
通のクロック発生回路を使用してもよい。
第12図において、点線16の右側は5CPU20であ
り左側はMCPUIOである。左側の要素のうち、ラッ
チL1.ラッチL2、ゲート1142〜1154はMC
PUIO(第2(iU)ノR0Mアドレス制御部114
に含まれる回路要素である。ラッチLlにはMCPUI
Oの実行すべき次の命令のROM1027ドレス情報A
N (ROM102からの現命令に含まれる情報)がク
ロックTICKIでラッチされる。メインプログラム(
第4図)の実行中、ラッチLlの出方は次アドレスBN
としてMCPUIOのROMアドレスデコーダ104に
入力される。即ち、ラッチLlの出力はインバータ11
44.3状態インバータゲート1146(イネーブルさ
れている)を通ってROMアドレスデコーダ104への
アドレス入力BNとなる。ここでインタラプト発生部1
16からインタラプト信号INTが発生すると、この信
号INTを受けるORゲート1154かも、インバータ
1148を介してラッチLlの出力側にある3状態イン
バータゲー)1146をオフ(ハイインピーダンス)に
する信号が加えられ、代りに、ORゲー)1154かも
の信号により、割込人ロ/戻先アドレス選択ゲー)11
50の出力側にある3状態インバータゲー)1152が
ゲート1150の出力をROMアドレスデコーダ104
のアドレス入力BNに通す0割込λロ/戻先アドレス選
択ゲート1150はインタラプト信号INTとラッチL
2からの出力信号を受けるNORゲート群で構成され、
“H”のインタラプト信号■NT発生時に、インタラプ
ト処理ルーチン(第5図)の入p(二ントリポイント)
を表わすオール“θ″の信号を出力し、この信号は3状
態インバータゲー)1152で反転されて、オール″1
″の信号BNとしてMCPUのROMアドレスデコーダ
104に入力される。そして次のオペレージ1ンラツチ
信号により、制御用ROM102からインストラクシ、
ン出力ラッチ102aにインタラプト処理ルーチンの最
初の命令がフェッチされる0以上により、MCPUIO
の一御がインタラブト処理ルーチンに移る。
り左側はMCPUIOである。左側の要素のうち、ラッ
チL1.ラッチL2、ゲート1142〜1154はMC
PUIO(第2(iU)ノR0Mアドレス制御部114
に含まれる回路要素である。ラッチLlにはMCPUI
Oの実行すべき次の命令のROM1027ドレス情報A
N (ROM102からの現命令に含まれる情報)がク
ロックTICKIでラッチされる。メインプログラム(
第4図)の実行中、ラッチLlの出方は次アドレスBN
としてMCPUIOのROMアドレスデコーダ104に
入力される。即ち、ラッチLlの出力はインバータ11
44.3状態インバータゲート1146(イネーブルさ
れている)を通ってROMアドレスデコーダ104への
アドレス入力BNとなる。ここでインタラプト発生部1
16からインタラプト信号INTが発生すると、この信
号INTを受けるORゲート1154かも、インバータ
1148を介してラッチLlの出力側にある3状態イン
バータゲー)1146をオフ(ハイインピーダンス)に
する信号が加えられ、代りに、ORゲー)1154かも
の信号により、割込人ロ/戻先アドレス選択ゲー)11
50の出力側にある3状態インバータゲー)1152が
ゲート1150の出力をROMアドレスデコーダ104
のアドレス入力BNに通す0割込λロ/戻先アドレス選
択ゲート1150はインタラプト信号INTとラッチL
2からの出力信号を受けるNORゲート群で構成され、
“H”のインタラプト信号■NT発生時に、インタラプ
ト処理ルーチン(第5図)の入p(二ントリポイント)
を表わすオール“θ″の信号を出力し、この信号は3状
態インバータゲー)1152で反転されて、オール″1
″の信号BNとしてMCPUのROMアドレスデコーダ
104に入力される。そして次のオペレージ1ンラツチ
信号により、制御用ROM102からインストラクシ、
ン出力ラッチ102aにインタラプト処理ルーチンの最
初の命令がフェッチされる0以上により、MCPUIO
の一御がインタラブト処理ルーチンに移る。
更に、インタラプト発生部116からのインタラプト信
号INTはクロック72CK2のタイミングでANDゲ
ー)1142を通り、ラッチ信号としてラッチL2を動
作させる。これにより、ラッチL2はパスAN上にある
メインプログラムの次命令のアドレスをチッチ(退避)
してメインプログラムを中断させる。
号INTはクロック72CK2のタイミングでANDゲ
ー)1142を通り、ラッチ信号としてラッチL2を動
作させる。これにより、ラッチL2はパスAN上にある
メインプログラムの次命令のアドレスをチッチ(退避)
してメインプログラムを中断させる。
更にインタラプト発生部1】6からのインタラプト信号
INTは5CPUリセット制御部134に供給される。
INTは5CPUリセット制御部134に供給される。
5CPUリセット制御部134は図示のように結合され
たDフリー7プフロツプ1342、NANDゲート13
44、R−Sフリップフロップ1346から成る。メイ
ンプログラムの実行中、R−Sフリップフロップ134
6はリセット状態にある(Q=“L”)、なお1図示し
ないカR−Sフリップフロッ7’1346はシステムの
パワーオン時にリセット状態に初期化される。
たDフリー7プフロツプ1342、NANDゲート13
44、R−Sフリップフロップ1346から成る。メイ
ンプログラムの実行中、R−Sフリップフロップ134
6はリセット状態にある(Q=“L”)、なお1図示し
ないカR−Sフリップフロッ7’1346はシステムの
パワーオン時にリセット状態に初期化される。
インタラプト信号INTは、クロック72CK1のタイ
ミングでDフリップフロップ1342に取り込まれ、次
のクロックTICKIのタイミングでNANDゲー)
1344から反転されて出力され、R−Sフリップフロ
ップ1346をセットする。この結果、R−5:yリッ
プフロップ1346のQ出力、即ち信号Aが“H”から
“L”に切り挨え、Q出力、即ち5CPU状態フラグが
“L” (SCPU停止中を示す)から“H″ (SC
PU動作中を示す)に変化する。信号Aは、5CPU2
0における次命令のアドレスSANをラッチするための
ラッチL3にリセー7ト解除信号(ラッチL3のイネー
ブル信号)として入力される。この結果、ラッチL3は
次のクロックTlCK1のタイミングでパスSANに乗
っている5CPUプログラム(第6図)の最初の命令の
アドレスをSBNとして5CPU20のROMアドレス
デコーダ204に入力する。このようにして、インタラ
プト発生部116からのインタラプト信号INTに応答
して5CPU20の動作が開始し、第6図に示す音源処
理が実行される。
ミングでDフリップフロップ1342に取り込まれ、次
のクロックTICKIのタイミングでNANDゲー)
1344から反転されて出力され、R−Sフリップフロ
ップ1346をセットする。この結果、R−5:yリッ
プフロップ1346のQ出力、即ち信号Aが“H”から
“L”に切り挨え、Q出力、即ち5CPU状態フラグが
“L” (SCPU停止中を示す)から“H″ (SC
PU動作中を示す)に変化する。信号Aは、5CPU2
0における次命令のアドレスSANをラッチするための
ラッチL3にリセー7ト解除信号(ラッチL3のイネー
ブル信号)として入力される。この結果、ラッチL3は
次のクロックTlCK1のタイミングでパスSANに乗
っている5CPUプログラム(第6図)の最初の命令の
アドレスをSBNとして5CPU20のROMアドレス
デコーダ204に入力する。このようにして、インタラ
プト発生部116からのインタラプト信号INTに応答
して5CPU20の動作が開始し、第6図に示す音源処
理が実行される。
5CPU20が音源処理の1&後の命令を実行する際、
5CPU20のオペレーション制御回路l12の内部で
動作終了信号(復帰コマンド信号)SRTが発生する。
5CPU20のオペレーション制御回路l12の内部で
動作終了信号(復帰コマンド信号)SRTが発生する。
この信号SRTはDフリップフロ7プ2122にクロッ
クT2CK1のタイミングで取り込まれた後、次のTI
CKIのタイミング(次のダミー命令のラッチタイミン
グ)で動作、するNANDゲート2124で反転サレ、
〇−パルスの動作終了信号Bとして5CPUリセット制
御部134のR−Sフリップフロップ1346をリセッ
トする。この結果、R−Sフリップフロップ1346の
Q出力、即ち、信号Aは“L″から“H”に切り換り、
Q出力、即ち、5CPU状態フラグは5CPU動作中を
示す“H”から5cPU20停止中を示す“L”に切り
換る。“H”レベルの信号A(リセット信号)により、
ラッチL3の動作は禁止され、ラッチL3出力、つまり
、アドレスデコーダ204の入力はダミー命令の(No
r命令)のアドレスに固定される。このときラッチL3
の入力パスSANには5CPU音源処理プログラム(第
6図)の最初の命令のアドレス情報(NoP命令語に含
まれる)が乗っている。
クT2CK1のタイミングで取り込まれた後、次のTI
CKIのタイミング(次のダミー命令のラッチタイミン
グ)で動作、するNANDゲート2124で反転サレ、
〇−パルスの動作終了信号Bとして5CPUリセット制
御部134のR−Sフリップフロップ1346をリセッ
トする。この結果、R−Sフリップフロップ1346の
Q出力、即ち、信号Aは“L″から“H”に切り換り、
Q出力、即ち、5CPU状態フラグは5CPU動作中を
示す“H”から5cPU20停止中を示す“L”に切り
換る。“H”レベルの信号A(リセット信号)により、
ラッチL3の動作は禁止され、ラッチL3出力、つまり
、アドレスデコーダ204の入力はダミー命令の(No
r命令)のアドレスに固定される。このときラッチL3
の入力パスSANには5CPU音源処理プログラム(第
6図)の最初の命令のアドレス情報(NoP命令語に含
まれる)が乗っている。
MCPUIOはインタラプト処理ルーチン(第5図)の
5CPU状態検査命令5−3の実行特にオペレーション
制御回路112を介して5CPU状態フラグのレベルを
検査し、5CPUの停止中、即ち5CPU20の音源処
理の完了を確認してから、5CPU20の処理結果であ
る楽音波形データをRAM206からRAM106に読
み取る(5−4)、これによりMCPUIOは5CPU
20の正しい処理結果を効率よく得ることができる。
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アドレスデコー
ダ104には中断されていたメインプログラムの命令の
アドレスが入力され、次のオペレーションラッチ信号に
より、制御用ROM102からインストラクション出力
ラッチ102aを介してその命令が取り出される。この
ようにして、MCPUIOの制御はメインプログラムに
復帰する。
の実行時に、オペレーション制御回路l12から復帰コ
マンド信号RTのパルスを発生する。この信号パルスR
TはORゲート1654、イン/ヘータ1148を通っ
て、ラッチLlの出力側のアドレス情報)1146を一
時的にオフし、代りに、ラッチL2に結合する割込入ロ
/戻先アドレス選択ゲー)1150の出力側にあるアド
レスゲ−)1152を一時的に開く、この時点で、割込
入ロ/戻先アドレス選択ゲー)1150はラッチL2に
退避してあった中断されたメインプログラムの命令のア
ドレスを反転して通すインバータとして働き、このゲー
)1150の反転出力が信号パルスRTによりインバー
タとして働く3状態ゲー)1152において再度反転さ
れる。この結果、MCPUIOのROMアドレスデコー
ダ104には中断されていたメインプログラムの命令の
アドレスが入力され、次のオペレーションラッチ信号に
より、制御用ROM102からインストラクション出力
ラッチ102aを介してその命令が取り出される。この
ようにして、MCPUIOの制御はメインプログラムに
復帰する。
以上のように、本実施例の電子楽器処理装置は、MCP
UlOによる5CPU20の動作期間の管理を5CPU
リセット制御部134のような簡単な管理インターフェ
ース構成を設けることで効率よく、確実に行うことがで
きる。
UlOによる5CPU20の動作期間の管理を5CPU
リセット制御部134のような簡単な管理インターフェ
ース構成を設けることで効率よく、確実に行うことがで
きる。
く複数データ転送〉
CPUを用いたある種のアプリケーションでは、CPU
はメインプログラム(第1のプログラム)の実行におい
て複数のデータを更新し、インタラプト処理ルーチン(
第2のプログラム)の実行において、その処理の目的の
ためにこれら複数のデータを参照する。これはメインプ
ログラムからインタラプト処理ルーチンへデータを渡す
問題である。このような複数のデータは、インタラプト
処理ルーチンによってメインプログラムが中断される前
に、メインプログラムにおいて全てのデータを更新しな
ければならない、メインプログラムが複数のデータの一
部だけを更新した時点で中断されてインタラプト処理ル
ーチンにCPUの制御が移ってしまうとインタラプト処
理ルーチンの処理結果は誤ったものになる。
はメインプログラム(第1のプログラム)の実行におい
て複数のデータを更新し、インタラプト処理ルーチン(
第2のプログラム)の実行において、その処理の目的の
ためにこれら複数のデータを参照する。これはメインプ
ログラムからインタラプト処理ルーチンへデータを渡す
問題である。このような複数のデータは、インタラプト
処理ルーチンによってメインプログラムが中断される前
に、メインプログラムにおいて全てのデータを更新しな
ければならない、メインプログラムが複数のデータの一
部だけを更新した時点で中断されてインタラプト処理ル
ーチンにCPUの制御が移ってしまうとインタラプト処
理ルーチンの処理結果は誤ったものになる。
本実施例の電子楽器処理装置の場合も、MCPUIOの
メインプログラム(第4図)からMCPUIOのタイマ
インタラプト処理ルーチン(第5図)(及び第6図に示
す5CPU20のタイマインタラプト処理ルーチン)に
渡す複数のデータがある。エンベロープΔX(エンベロ
ープ演算周期) 、 加減フラク付エンベロープΔy(
エンベロープ変化分)目標エンベロープから成るエンベ
ロープパラメータはその例である。データ源である外部
データメモリ90はエンベロープのセグメント(例えば
アタックセグメント、デイケイセグメント、サスティン
セグメント等)ごとにエンベロープパラメータを記憶し
ている。MCPUloのメインプログラムは発音処理4
−9において、押鍵(ノートオン)あるいはインタラプ
ト処理ルーチンのチャンネル音源処理(第9図)内で検
出されたエンベロープの目標値への到達(9−6,9−
7参照)に応答して所定のセグメントについてのエンベ
ロープパラメータ(新しい目標エンベローフ、エンベロ
ープΔx、加減フラク付エンヘロープΔy)を外部デー
タメモリ90から取り出してMCPU内部RAM106
(または5CPU内部RAM206)の対応するチャン
ネル音源処理レジスタにセットすることによって複数の
データから成るエンベロープパラメータを更新する必要
がある。このような複数のデータはインタラプト発生部
116からのインタラプト信号INTによってメインプ
ログラムが中断される前に、メインプログラムにおいて
更新を完了させておかなければならない。
メインプログラム(第4図)からMCPUIOのタイマ
インタラプト処理ルーチン(第5図)(及び第6図に示
す5CPU20のタイマインタラプト処理ルーチン)に
渡す複数のデータがある。エンベロープΔX(エンベロ
ープ演算周期) 、 加減フラク付エンベロープΔy(
エンベロープ変化分)目標エンベロープから成るエンベ
ロープパラメータはその例である。データ源である外部
データメモリ90はエンベロープのセグメント(例えば
アタックセグメント、デイケイセグメント、サスティン
セグメント等)ごとにエンベロープパラメータを記憶し
ている。MCPUloのメインプログラムは発音処理4
−9において、押鍵(ノートオン)あるいはインタラプ
ト処理ルーチンのチャンネル音源処理(第9図)内で検
出されたエンベロープの目標値への到達(9−6,9−
7参照)に応答して所定のセグメントについてのエンベ
ロープパラメータ(新しい目標エンベローフ、エンベロ
ープΔx、加減フラク付エンヘロープΔy)を外部デー
タメモリ90から取り出してMCPU内部RAM106
(または5CPU内部RAM206)の対応するチャン
ネル音源処理レジスタにセットすることによって複数の
データから成るエンベロープパラメータを更新する必要
がある。このような複数のデータはインタラプト発生部
116からのインタラプト信号INTによってメインプ
ログラムが中断される前に、メインプログラムにおいて
更新を完了させておかなければならない。
このような複数のデータ転送(更新)の問題を解決する
ために、本実施例では2つの解決手段を開示する。第1
の解決手段はデータ更新の間、インタラプトをマスクし
てメインプログラムのデータ更新命令群の実行が中断さ
れないようにするインタラプトマスク方式であり、第2
の解決手段は複数のデータ転送を一命令で実行する機能
を利用した一命令一方式である。
ために、本実施例では2つの解決手段を開示する。第1
の解決手段はデータ更新の間、インタラプトをマスクし
てメインプログラムのデータ更新命令群の実行が中断さ
れないようにするインタラプトマスク方式であり、第2
の解決手段は複数のデータ転送を一命令で実行する機能
を利用した一命令一方式である。
インタラプトマスク 式(第16.第17、第2〜第7
図) この方式によれば、インタラプト発生部116からのイ
ンタラプトはメインプログラム、特に発音処理4−9に
おけるデータ更新命令群によって内部RAMのチャンネ
ル音源レジスタ群にデータをセットする間、マスクされ
て、MCPUIO(7)#jI御がメインプログラム(
第4図)からインタラプト処理ルーチン(第5図)に移
るのが禁止される。
図) この方式によれば、インタラプト発生部116からのイ
ンタラプトはメインプログラム、特に発音処理4−9に
おけるデータ更新命令群によって内部RAMのチャンネ
ル音源レジスタ群にデータをセットする間、マスクされ
て、MCPUIO(7)#jI御がメインプログラム(
第4図)からインタラプト処理ルーチン(第5図)に移
るのが禁止される。
第17図に複数のデータ転送を含むエンベロープ処理(
メインプログラムの発音処理4−9内にある)のフロー
を示し、第16図にインタラプトマスクに関連するハー
ドウェアを示す。
メインプログラムの発音処理4−9内にある)のフロー
を示し、第16図にインタラプトマスクに関連するハー
ドウェアを示す。
第17図においてMCPUIOは17−1で指定flt
チャンネルの現在エンベロープが目標エンベロープに到
達しているかどうかを調べる。到達すればMCPUIO
は17−2に進み、外部データメモリ90(第1図)か
ら、次のエンベロープセグメントに関するエンベロープ
パラメータ、即ち、新しい目標エンベロープ、加減フラ
グ付エンベロープΔy、エンベロープΔ)l取’J出L
、内部RAM106内の転送バッファにセットする。
チャンネルの現在エンベロープが目標エンベロープに到
達しているかどうかを調べる。到達すればMCPUIO
は17−2に進み、外部データメモリ90(第1図)か
ら、次のエンベロープセグメントに関するエンベロープ
パラメータ、即ち、新しい目標エンベロープ、加減フラ
グ付エンベロープΔy、エンベロープΔ)l取’J出L
、内部RAM106内の転送バッファにセットする。
ここに転送バッファはデータ番とデータ目的地との間の
中間的な記憶部でありインタラプト処理ルーチン(第9
図)によって参照されないRAM領域であるので、この
時点でのインタラプトマスクは不要である。転送バッフ
ァを設けた理由はデータ源であるメモリ90がMCPU
IOと5CPU20によって共用される外部メモリであ
り、そのデータアクセス時間が内部RAM相互のデータ
転送時間より長くなること等による。ブロック17=2
の機能は外部データメモリ90から内部RAM100へ
の複数のデータ転送命令を順次実行することで処理され
る。
中間的な記憶部でありインタラプト処理ルーチン(第9
図)によって参照されないRAM領域であるので、この
時点でのインタラプトマスクは不要である。転送バッフ
ァを設けた理由はデータ源であるメモリ90がMCPU
IOと5CPU20によって共用される外部メモリであ
り、そのデータアクセス時間が内部RAM相互のデータ
転送時間より長くなること等による。ブロック17=2
の機能は外部データメモリ90から内部RAM100へ
の複数のデータ転送命令を順次実行することで処理され
る。
転送バッファからチャンネル音源用レジスタ群(インタ
ラプト処理ルーチンにおいて参照される)へのデータ転
送はブロック17−4で実行される。このデータ転送中
にMCPUIOの制御がタイマインタラプト処理ルーチ
ン(第5図)に移行しないようにするため(あるいは5
CPU20の制御が第6図のプログラムに移行しないよ
うにするため)、MCPUI Oはブロー2り17−4
に先立ってブロック17−3でインタラプトをマスクす
る命令を実行する。このインタラプトマスク命令の実行
中に、MCPUlOのオペレーション制御回路112か
らローアクティブのマスク−信号MASKが発生する。
ラプト処理ルーチンにおいて参照される)へのデータ転
送はブロック17−4で実行される。このデータ転送中
にMCPUIOの制御がタイマインタラプト処理ルーチ
ン(第5図)に移行しないようにするため(あるいは5
CPU20の制御が第6図のプログラムに移行しないよ
うにするため)、MCPUI Oはブロー2り17−4
に先立ってブロック17−3でインタラプトをマスクす
る命令を実行する。このインタラプトマスク命令の実行
中に、MCPUlOのオペレーション制御回路112か
らローアクティブのマスク−信号MASKが発生する。
このマスク信号MASK’はインタラプト発生部116
かものインタラプト信号INTをマスクして、インタラ
プト処理ルーチン(第5図、第6図)への制御の移行を
禁正す、るように作用する。この目的のため、第16図
において、インタラプト発生部116に結合するマスク
解除特機部150が設けられる。マスク解除特機部15
0は図示のように結合したR−Sフリップフロップ15
02、ANDゲート1504、及びDフリップフロップ
1506を含む。
かものインタラプト信号INTをマスクして、インタラ
プト処理ルーチン(第5図、第6図)への制御の移行を
禁正す、るように作用する。この目的のため、第16図
において、インタラプト発生部116に結合するマスク
解除特機部150が設けられる。マスク解除特機部15
0は図示のように結合したR−Sフリップフロップ15
02、ANDゲート1504、及びDフリップフロップ
1506を含む。
マスク信号MASKがマスク解除を示す″H″レベルの
とき、インタラプト発生部116からのインタラプト信
号INTにより、R−Sフリップフロップ1502がセ
ットされ、その出力が“H″のMASKによりイネーブ
ルされているANDゲートを通って、Dフリー、プフロ
ツプ1506にTICKI(75タイミングで取り込ま
れ、このDフリップフロップ1506の出力が、実際の
インタラプト信号A−I NTとしてMCPUIOのR
OMアドレス制御部114に入力される。その結果、5
CPU動作開始・糾了機能のところで述べたように、R
OMアドレス制御一部114のゲー)1152からRO
Mアドレスデコーダ104にイン、タラブト処理ルーチ
ン(第5図)のエントリポイントのアドレスが入力され
るとともに、次のメインプログラム命令のアドレスがパ
スANからラッチL2に退避されて、MCPUIOの制
御がインタラプト処理ルーチンに移行し、メインプログ
ラムは中断される。また5、信号A−I NTは5CP
Uリセット制御部134に入力され、その結果、5CP
U動作開始・終了機能のところで述べたようにS(1:
、PU20のプログラム(第7図)動作が開始する。D
フリップフロップ1506からのHレベルの出力はR−
Sフリップフロップ1502をリセットし、その結果、
次のTICKIのタイミングでDフリップフロ7プ15
06の出力(マスク解除特機部150の出力)はLレベ
ルに切り換る。
とき、インタラプト発生部116からのインタラプト信
号INTにより、R−Sフリップフロップ1502がセ
ットされ、その出力が“H″のMASKによりイネーブ
ルされているANDゲートを通って、Dフリー、プフロ
ツプ1506にTICKI(75タイミングで取り込ま
れ、このDフリップフロップ1506の出力が、実際の
インタラプト信号A−I NTとしてMCPUIOのR
OMアドレス制御部114に入力される。その結果、5
CPU動作開始・糾了機能のところで述べたように、R
OMアドレス制御一部114のゲー)1152からRO
Mアドレスデコーダ104にイン、タラブト処理ルーチ
ン(第5図)のエントリポイントのアドレスが入力され
るとともに、次のメインプログラム命令のアドレスがパ
スANからラッチL2に退避されて、MCPUIOの制
御がインタラプト処理ルーチンに移行し、メインプログ
ラムは中断される。また5、信号A−I NTは5CP
Uリセット制御部134に入力され、その結果、5CP
U動作開始・終了機能のところで述べたようにS(1:
、PU20のプログラム(第7図)動作が開始する。D
フリップフロップ1506からのHレベルの出力はR−
Sフリップフロップ1502をリセットし、その結果、
次のTICKIのタイミングでDフリップフロ7プ15
06の出力(マスク解除特機部150の出力)はLレベ
ルに切り換る。
ピれに対し、第17図の17−3に示すようにインタラ
プトマスク命令の実行により、オペレーション制御回路
112からローアクティブのマスク信号MASKがマス
ク解除待機11A150に入力される場合には、インタ
ラプト発生部116からのインタラプト信号はANDゲ
ート1504によってマスクされる。その結果、マスク
解除特機部1504はマスク信号MASKがローアクテ
ィブの間、その出力A−INTを“L″の割込禁止レベ
ルにし、ROMアドレス制御回路114の通常動作を継
続させ、MCPUIOに対するメインプログラムの制御
を続行させる。
プトマスク命令の実行により、オペレーション制御回路
112からローアクティブのマスク信号MASKがマス
ク解除待機11A150に入力される場合には、インタ
ラプト発生部116からのインタラプト信号はANDゲ
ート1504によってマスクされる。その結果、マスク
解除特機部1504はマスク信号MASKがローアクテ
ィブの間、その出力A−INTを“L″の割込禁止レベ
ルにし、ROMアドレス制御回路114の通常動作を継
続させ、MCPUIOに対するメインプログラムの制御
を続行させる。
したがって、ブロック17−4に示す転送命令群(及び
エンベロープΔχ用タイマーのクリア命令)の実行は、
実行の途中で、インタラプト発生部116からインタラ
プト信号INTが発生した場合にも中断されない、これ
により、インタラプト処理ルーチン(IlF!5図、第
6図)は正しく更新されたエンベロープパラメータを参
照でき、正しい演算結果(楽音波形データ)を得ること
ができる。
エンベロープΔχ用タイマーのクリア命令)の実行は、
実行の途中で、インタラプト発生部116からインタラ
プト信号INTが発生した場合にも中断されない、これ
により、インタラプト処理ルーチン(IlF!5図、第
6図)は正しく更新されたエンベロープパラメータを参
照でき、正しい演算結果(楽音波形データ)を得ること
ができる。
しかる後、MCPUIOはブロック17−5に示すイン
タラプトマスク解除命令を実行する。この結果、オペレ
ーション制御回路112からマスク解除特機部150に
供給される信号MASKはマスク解除を示す“H″レベ
ル切り換る。複数のデータ転送を含むブロック17−4
の実行中に、インタラプト発生部116からインタラプ
ト信号が発生したような場合には、マスク解除特機部1
50のR−Sフリップフロップ1502の出力によって
、このマスク解除命令の実行後にインタラプトの要求が
受は付けられ、上述したようにしてメインプログラムが
中断され、インタラプト処理ルーチンに制御が移行する
。
タラプトマスク解除命令を実行する。この結果、オペレ
ーション制御回路112からマスク解除特機部150に
供給される信号MASKはマスク解除を示す“H″レベ
ル切り換る。複数のデータ転送を含むブロック17−4
の実行中に、インタラプト発生部116からインタラプ
ト信号が発生したような場合には、マスク解除特機部1
50のR−Sフリップフロップ1502の出力によって
、このマスク解除命令の実行後にインタラプトの要求が
受は付けられ、上述したようにしてメインプログラムが
中断され、インタラプト処理ルーチンに制御が移行する
。
一命 (18〜第21図
この方式はメインプログラム(第4図)におI/)て複
数のデータをインタラプト処理ルーチンの参照する内部
RAM領域にセ−/ )するために、ロング命令と呼ば
れる複数データー括転送のための単一命令を利用し、ロ
ング命令の実行が終了するまでインタラプト処理ルーチ
ンにMCPUIOの制御が移行しないようにしたもので
ある。
数のデータをインタラプト処理ルーチンの参照する内部
RAM領域にセ−/ )するために、ロング命令と呼ば
れる複数データー括転送のための単一命令を利用し、ロ
ング命令の実行が終了するまでインタラプト処理ルーチ
ンにMCPUIOの制御が移行しないようにしたもので
ある。
単一の命令(ロング命令)で複数のデータ転送が可能な
CPUは例えば特公昭60−47612号に開示されて
おり、本実施例にこの技術が適用できる。特公昭60−
47612号によれば、ロング命令は連続するアドレス
にある複数のレジスタ間(例えばレジスタAO〜A3を
レジスタBe〜B3)の転送に適用可能である(ここに
レジスタとはRAMの1記憶場所を意味し、A、BはR
AMのアドレス上位、即ち行アドレスを表わし、0.3
はRAMのアドレス下位、即ち列アドレスを表わす)、
制御用ROM(本実施例の要素102に対応する)から
のロング命令語にはンースレジスタの行アドレス(上の
例でいえばA)、デイスティネーシ、ンレジスタの行ア
ドレス(B)。
CPUは例えば特公昭60−47612号に開示されて
おり、本実施例にこの技術が適用できる。特公昭60−
47612号によれば、ロング命令は連続するアドレス
にある複数のレジスタ間(例えばレジスタAO〜A3を
レジスタBe〜B3)の転送に適用可能である(ここに
レジスタとはRAMの1記憶場所を意味し、A、BはR
AMのアドレス上位、即ち行アドレスを表わし、0.3
はRAMのアドレス下位、即ち列アドレスを表わす)、
制御用ROM(本実施例の要素102に対応する)から
のロング命令語にはンースレジスタの行アドレス(上の
例でいえばA)、デイスティネーシ、ンレジスタの行ア
ドレス(B)。
最初のデータ転送に係るレジスタの列アドレス(O)、
最後のデータ転送に係るレジスタの列アドレス(3)の
情報が含まれる。RAMアドレス制御部(本実施例の要
素105に対応する)はロング命令の実行に適するよう
に構成され、列アドレスを最初の転送の列アドレスから
最後の転送の列アドレスまでデータ転送の都度、1ずつ
更新するカウンタ(その出力がRAMの列アドレス入力
に順次加えられる)と、すべてのデータ転送が完了した
ことを検出するためカウンタ出力と最後のデータ転送の
列アドレス値とを比較し、一致したときにロング命令実
行完了信号を発生する一致回路とを含んでいる。
最後のデータ転送に係るレジスタの列アドレス(3)の
情報が含まれる。RAMアドレス制御部(本実施例の要
素105に対応する)はロング命令の実行に適するよう
に構成され、列アドレスを最初の転送の列アドレスから
最後の転送の列アドレスまでデータ転送の都度、1ずつ
更新するカウンタ(その出力がRAMの列アドレス入力
に順次加えられる)と、すべてのデータ転送が完了した
ことを検出するためカウンタ出力と最後のデータ転送の
列アドレス値とを比較し、一致したときにロング命令実
行完了信号を発生する一致回路とを含んでいる。
以下の説明において1本実施例の制御用ROM102の
メインプログラム内には上述したようなロング命令が含
まれるものとし、RAMアドレス制御部105.205
は上述したようにロング命令の実行を適用できるように
構成されているものとする。
メインプログラム内には上述したようなロング命令が含
まれるものとし、RAMアドレス制御部105.205
は上述したようにロング命令の実行を適用できるように
構成されているものとする。
第18図にロング命令の実行中、インタラプト信号IN
Tによるメインプログラムの中断を禁止する回路を含む
ハードウェアのブロック図を示し、第19mにロング命
令をエンベロープノぐラメ−タの転送に適用した場合の
RAMのメモリマツプを示し、第20図にロング命令(
単一転送命令)と複数の転送命令との動作の比較を示し
、第21図にロング命令を使用したエンベロープパラメ
ータの転送に関連するフローチャートを示す。
Tによるメインプログラムの中断を禁止する回路を含む
ハードウェアのブロック図を示し、第19mにロング命
令をエンベロープノぐラメ−タの転送に適用した場合の
RAMのメモリマツプを示し、第20図にロング命令(
単一転送命令)と複数の転送命令との動作の比較を示し
、第21図にロング命令を使用したエンベロープパラメ
ータの転送に関連するフローチャートを示す。
第18図において、インタラプト発生部116に転送終
了特機部152が結合している。この回路152はロン
グ命令の実行中、インタラプト信号によるメインプログ
ラムの中断を禁止する。転送終了特機部152は図示の
ように結合されたR−Sフリップフロップ1522、A
NDゲート1524、Dフリップフロップ1526から
成り、Dフリップフロップ1526の出力(転送終了特
機部152の出力)が実際に作用するインタラプト信号
A−INTとしてROMアドレス制御部214と5CP
Uリセット制御部134に結合している。ANDゲー)
1524に入力される信号〜LONGが“L”の間は
、インタラプト発生部116からインタラプト信号IN
Tが発生しても、Dフリップフロップ1526の出力は
”L″のままであり、ROMアドレス制御部214と5
CPUリセット制御部134はインタラプト信号INT
の作用を受けない、ここに、信号〜LONGはロング命
令の実行中に“L″となる信号であり。
了特機部152が結合している。この回路152はロン
グ命令の実行中、インタラプト信号によるメインプログ
ラムの中断を禁止する。転送終了特機部152は図示の
ように結合されたR−Sフリップフロップ1522、A
NDゲート1524、Dフリップフロップ1526から
成り、Dフリップフロップ1526の出力(転送終了特
機部152の出力)が実際に作用するインタラプト信号
A−INTとしてROMアドレス制御部214と5CP
Uリセット制御部134に結合している。ANDゲー)
1524に入力される信号〜LONGが“L”の間は
、インタラプト発生部116からインタラプト信号IN
Tが発生しても、Dフリップフロップ1526の出力は
”L″のままであり、ROMアドレス制御部214と5
CPUリセット制御部134はインタラプト信号INT
の作用を受けない、ここに、信号〜LONGはロング命
令の実行中に“L″となる信号であり。
ロング命令の実行完了に伴ってRAMアドレス制御部1
04の一致回路から発生するロング命令実行完了信号に
応答して“H″に復帰する。信号〜LONGのレベルが
H″のときには、インタラプト発生・部116からのイ
ンタラプト信号INTは転送終了待機m152を通って
ROMアドレス制御部214と5CPUリセツト@@i
ll I 34に作用し、MCPUIOの制御をメイン
プログラム(第4図)からインタラプト処理ルーチン(
第5図)に移行させ、5CPU20のプログラム(第6
図)動作を開始させる。
04の一致回路から発生するロング命令実行完了信号に
応答して“H″に復帰する。信号〜LONGのレベルが
H″のときには、インタラプト発生・部116からのイ
ンタラプト信号INTは転送終了待機m152を通って
ROMアドレス制御部214と5CPUリセツト@@i
ll I 34に作用し、MCPUIOの制御をメイン
プログラム(第4図)からインタラプト処理ルーチン(
第5図)に移行させ、5CPU20のプログラム(第6
図)動作を開始させる。
エンベロープパラメータの更新に一命lj式を適用する
場合において、インタラプト処理ルーチン(第5図、第
6図)のチャンネル音源処理サブルーチン(第9図)が
参照し、メインプログラムのエンへロープ処理サブルー
チン(第21図)が設定(更新)するエンベロープパラ
メータはエンベロープΔχ用タイマー、新目標エンベロ
ープ11i x ンヘO−7’ΔX、[olKフラグ付
エンベロープΔyである0本実施例において、これらの
エンベローフハラメータのデータ源は外部メモリ90(
第1図)にある、エンベローフハラメータノ更新の際に
(21−1)、外部データメモリ90から内部RAM1
06.206のチャンネル音源データ領域への直接の転
送は望ましくないので、外部データメモリ90からのエ
ンベロープパラメータはいったん内部RAM106内の
転送用バッファ領域に移しく2l−2)、次に、転送用
バー、ファ領域からチャンネル音源データ領域に移す(
21−3)。
場合において、インタラプト処理ルーチン(第5図、第
6図)のチャンネル音源処理サブルーチン(第9図)が
参照し、メインプログラムのエンへロープ処理サブルー
チン(第21図)が設定(更新)するエンベロープパラ
メータはエンベロープΔχ用タイマー、新目標エンベロ
ープ11i x ンヘO−7’ΔX、[olKフラグ付
エンベロープΔyである0本実施例において、これらの
エンベローフハラメータのデータ源は外部メモリ90(
第1図)にある、エンベローフハラメータノ更新の際に
(21−1)、外部データメモリ90から内部RAM1
06.206のチャンネル音源データ領域への直接の転
送は望ましくないので、外部データメモリ90からのエ
ンベロープパラメータはいったん内部RAM106内の
転送用バッファ領域に移しく2l−2)、次に、転送用
バー、ファ領域からチャンネル音源データ領域に移す(
21−3)。
この転送用バッファ領域からチャンネル音源データ領域
へのデータ転送処理21−3に上述したロング命令が使
用される。ロング命令を適用するために、転送用バッフ
ァ領域はRAM上の連続した領域であることを必要とし
、同様にエンベロープパラメータのチャンネル音源デー
タ領域も連続した領域であることを必要とする。この例
を第19図に示す、ここでは、エンベロープパラメータ
の転送用バッファ領域は、レジスタx4〜x7の連続領
域に17ビングぎれエンベロープパラメータについての
1チヤンネル音源データ領域はレジスタA4〜A7の連
続領域にマツピングされている。したがって、1チヤン
ネルでエンベロープパラメータを更新する必要のあると
きには、21−3で、レジスタx4〜x7をレジスタA
4〜A7に転送するロング命令を実行すればよい、この
命令が実行されている間は、上述したようにインタラプ
ト信号INTがインタラプト発生部116から発生して
も、転送終了特機部152のロング命令完了待機機能に
より、ロング命令が終了するまではインタラプト信号の
作用がROMアドレス制御部114.5CPUリセット
制御部134に波及しない(第20図(B)参照)、こ
の結果、チャンネル音源データ領域のエンベロープパラ
メータが全て正しい更新値に変更された後にインタラブ
ト処理ルーチンが開始するので、その演算結果(楽音波
形データ)が正しい値を示し、誤りのない動作が保証さ
れる。 、 これに対しもし、21−3に示す転送処理機能を複数の
転送命令(−命令ごとに1つのエンベロープパラメータ
を転送する)の実行によって果たそうとした場合には、
転送の途中で、例えば、第20図(A)に示すように転
送命令lの実行中にインタラプト信号INTが発生する
と次のマシンサイクルで転送命令2の代りにインタラプ
ト処理ルーチンの最初の命令が実行されてエンベロープ
転送処理は途中で中断されてしまう、この結果、インタ
ラプト処理ルーチンの処理結果(楽音波形データ)は誤
った値となってしまう。
へのデータ転送処理21−3に上述したロング命令が使
用される。ロング命令を適用するために、転送用バッフ
ァ領域はRAM上の連続した領域であることを必要とし
、同様にエンベロープパラメータのチャンネル音源デー
タ領域も連続した領域であることを必要とする。この例
を第19図に示す、ここでは、エンベロープパラメータ
の転送用バッファ領域は、レジスタx4〜x7の連続領
域に17ビングぎれエンベロープパラメータについての
1チヤンネル音源データ領域はレジスタA4〜A7の連
続領域にマツピングされている。したがって、1チヤン
ネルでエンベロープパラメータを更新する必要のあると
きには、21−3で、レジスタx4〜x7をレジスタA
4〜A7に転送するロング命令を実行すればよい、この
命令が実行されている間は、上述したようにインタラプ
ト信号INTがインタラプト発生部116から発生して
も、転送終了特機部152のロング命令完了待機機能に
より、ロング命令が終了するまではインタラプト信号の
作用がROMアドレス制御部114.5CPUリセット
制御部134に波及しない(第20図(B)参照)、こ
の結果、チャンネル音源データ領域のエンベロープパラ
メータが全て正しい更新値に変更された後にインタラブ
ト処理ルーチンが開始するので、その演算結果(楽音波
形データ)が正しい値を示し、誤りのない動作が保証さ
れる。 、 これに対しもし、21−3に示す転送処理機能を複数の
転送命令(−命令ごとに1つのエンベロープパラメータ
を転送する)の実行によって果たそうとした場合には、
転送の途中で、例えば、第20図(A)に示すように転
送命令lの実行中にインタラプト信号INTが発生する
と次のマシンサイクルで転送命令2の代りにインタラプ
ト処理ルーチンの最初の命令が実行されてエンベロープ
転送処理は途中で中断されてしまう、この結果、インタ
ラプト処理ルーチンの処理結果(楽音波形データ)は誤
った値となってしまう。
−命令方式による複数データの転送(更新)処理では1
7−3.17−5に示すようなインタラプトマスク命令
、インタラプト解除命令を実行する必要がなく、オーへ
−ヘッドなしの最短時間で、転送処理を実行することが
できる利点もある。
7−3.17−5に示すようなインタラプトマスク命令
、インタラプト解除命令を実行する必要がなく、オーへ
−ヘッドなしの最短時間で、転送処理を実行することが
できる利点もある。
変形例として、第18図に示すような転送終了特機部1
52の代りに、ロング命令の実行中、制御用ROM10
2.202からの一命令をフェッチするインストラクシ
ョン出力ラッチ102aの動作を禁止する手段を使用し
てもよい、即ち、制御用ROM102からラッチ102
aを介して与えられるロング命令語に含まれるモード信
号(命令がロングであることを示している)によって、
インストラクシ、ン出力ラッチ102a、202aに加
えるオペレーションラッチ信号の発生を禁止し、ロング
命令の実行完了信号に応答して次のマシンサイクルでオ
ペレーションラッチ信号を発生する回路をオペレーショ
ン制御回路112内に設ければ、インタラプト信号IN
Tがロング命令の実行中に発生しても制御用ROM10
2.202からインタラプト処理ルーチンの最初の命令
語はロング命令の実行が終了するまではインストラクシ
ョン出力ラッチ102a、202aにフェッチされない
(したがって実行もされない)ので実施例と同様の効果
が得られる。
52の代りに、ロング命令の実行中、制御用ROM10
2.202からの一命令をフェッチするインストラクシ
ョン出力ラッチ102aの動作を禁止する手段を使用し
てもよい、即ち、制御用ROM102からラッチ102
aを介して与えられるロング命令語に含まれるモード信
号(命令がロングであることを示している)によって、
インストラクシ、ン出力ラッチ102a、202aに加
えるオペレーションラッチ信号の発生を禁止し、ロング
命令の実行完了信号に応答して次のマシンサイクルでオ
ペレーションラッチ信号を発生する回路をオペレーショ
ン制御回路112内に設ければ、インタラプト信号IN
Tがロング命令の実行中に発生しても制御用ROM10
2.202からインタラプト処理ルーチンの最初の命令
語はロング命令の実行が終了するまではインストラクシ
ョン出力ラッチ102a、202aにフェッチされない
(したがって実行もされない)ので実施例と同様の効果
が得られる。
<MCPUからの5CPUアクセス機能〉本実施例の装
置はMCPUIOからS C、P U 20の内部RA
M206にデータを高速にアクセス(リードまたはライ
ト)する機能を有している。
置はMCPUIOからS C、P U 20の内部RA
M206にデータを高速にアクセス(リードまたはライ
ト)する機能を有している。
この課題は一般に複数のCPU間のデータアクセス問題
と、して把えられている。従来技術ではこの種のインタ
ーCPUデータアクセスに時間がかかる問題がある。従
来技術ではアクセスを要求するCPUからアクセスを要
求されるCPUに対し、要求信号を与える。アクセスを
要求されるCPUはこの要求信号に対し、ただちに要求
側CPUからのデータアクセスを許可する承認信号を発
生することはできず、実行中のオペレージ、ンが完了す
るまで承認信号の発生を遅延させる。したがって1.従
来のインターCPUデータアクセス方式は高速処理が要
求されるアプリケーションにおける障害の1つとなりて
いる。
と、して把えられている。従来技術ではこの種のインタ
ーCPUデータアクセスに時間がかかる問題がある。従
来技術ではアクセスを要求するCPUからアクセスを要
求されるCPUに対し、要求信号を与える。アクセスを
要求されるCPUはこの要求信号に対し、ただちに要求
側CPUからのデータアクセスを許可する承認信号を発
生することはできず、実行中のオペレージ、ンが完了す
るまで承認信号の発生を遅延させる。したがって1.従
来のインターCPUデータアクセス方式は高速処理が要
求されるアプリケーションにおける障害の1つとなりて
いる。
本実施例では高速のインターCPUデータアクセスのた
めに2つの解決手段、即ち、5CPU停止モ一ド利用方
式と瞬時強制アクセス方式を開示する。
めに2つの解決手段、即ち、5CPU停止モ一ド利用方
式と瞬時強制アクセス方式を開示する。
5CPU停 モード利 式(第22図、第2、第3図
) この方式は上述した5CPU動作開始・終了機能を利用
したものである。この機能により5CPU20のプログ
ラム(第6図)動作はMCPUIOにおけるインタラプ
ト処理ルーチン(第5図)の開始と同時に開始し1MC
PUl0のインタラプト処理ルーチンが終了する前に終
了する。したがって、MCPUIOにおいてメインプロ
グラム(第4図)が動作している間は5CPU20は停
止モード(リセット状1りにある。第2図に示すように
停止モード中では、リセット制御部134からの信号A
が“5CPU停止中”を示す“H”レベルになる。この
信号Aにより、5CPU20(第3図)ではROMアド
レス制御部214の動作が停止し、RAMアドレス制御
部204は5CPU20の制御用ROM202からのR
AMアドレスバスSAではなく、MCPUloからパス
ゲ−)128を介してRAMアドレスバスMaに結合し
てMCPUIOからの5CPU内部RAM206の指定
アドレスを受けるように動作モードが設定され、RAM
データに切り換え部240は5CPU20のオペレーシ
ョン結果(ALU部208出力または乗算器210出力
)を運ぶデータバスDBではなくMCPUIOからのデ
ータを運ぶデータバスDoUI にRAM206のデー
タインを結合する動作モードに設定され、ライト信号切
り換え部242は5CPUオペレ一シヨン制御回路21
2からのり一ド/ライト制御信号ではなくオペレーショ
ン制御回路112からのり一ド/ライト制御信号CをR
AM206のリード/ライト制御人力に結合する動作モ
ードに設定される。このように停止状態のとき、5CP
U20はMCPUlOによってデータアクセスが可能な
状態に置かれている。
) この方式は上述した5CPU動作開始・終了機能を利用
したものである。この機能により5CPU20のプログ
ラム(第6図)動作はMCPUIOにおけるインタラプ
ト処理ルーチン(第5図)の開始と同時に開始し1MC
PUl0のインタラプト処理ルーチンが終了する前に終
了する。したがって、MCPUIOにおいてメインプロ
グラム(第4図)が動作している間は5CPU20は停
止モード(リセット状1りにある。第2図に示すように
停止モード中では、リセット制御部134からの信号A
が“5CPU停止中”を示す“H”レベルになる。この
信号Aにより、5CPU20(第3図)ではROMアド
レス制御部214の動作が停止し、RAMアドレス制御
部204は5CPU20の制御用ROM202からのR
AMアドレスバスSAではなく、MCPUloからパス
ゲ−)128を介してRAMアドレスバスMaに結合し
てMCPUIOからの5CPU内部RAM206の指定
アドレスを受けるように動作モードが設定され、RAM
データに切り換え部240は5CPU20のオペレーシ
ョン結果(ALU部208出力または乗算器210出力
)を運ぶデータバスDBではなくMCPUIOからのデ
ータを運ぶデータバスDoUI にRAM206のデー
タインを結合する動作モードに設定され、ライト信号切
り換え部242は5CPUオペレ一シヨン制御回路21
2からのり一ド/ライト制御信号ではなくオペレーショ
ン制御回路112からのり一ド/ライト制御信号CをR
AM206のリード/ライト制御人力に結合する動作モ
ードに設定される。このように停止状態のとき、5CP
U20はMCPUlOによってデータアクセスが可能な
状態に置かれている。
したがって、本実施例によれば、MCPUIOはメイン
プログラムにおいて5CPU20の内部RAM206を
自由にアクセスすることができる。この様子を第22図
に示す、5CPtJ20の停止状態(音源処理完了)の
確認、即ちMCPUオペレーション制御回路112にお
ける5CPUリセット制御部134からの5CPU状態
フラグの検査はMCPUIOのインタラプト処理ルーチ
ン(第5図)のなかで1回だけ行えばよい(5−3参照
)、いったん停止状態が確認されれば、次のインタラプ
ト信号INTが発生するまで、再度の確認をする必要な
しに、−命令の実行で、MCPUIOは5CPU20の
内部RAM206をアクセスできる。したがって、従来
に比べ、5CPU20へのデータアクセスに要する時間
が大幅に短縮される。
プログラムにおいて5CPU20の内部RAM206を
自由にアクセスすることができる。この様子を第22図
に示す、5CPtJ20の停止状態(音源処理完了)の
確認、即ちMCPUオペレーション制御回路112にお
ける5CPUリセット制御部134からの5CPU状態
フラグの検査はMCPUIOのインタラプト処理ルーチ
ン(第5図)のなかで1回だけ行えばよい(5−3参照
)、いったん停止状態が確認されれば、次のインタラプ
ト信号INTが発生するまで、再度の確認をする必要な
しに、−命令の実行で、MCPUIOは5CPU20の
内部RAM206をアクセスできる。したがって、従来
に比べ、5CPU20へのデータアクセスに要する時間
が大幅に短縮される。
瞬時強制アクセス方式(第23〜825図)この方式は
データアクセスのためにMCPUIOと5CPU20と
の間で従来のようなアクセスの要求と承認という手続を
踏むことなく、MCPUIOからの5CPUデ一タアク
セス時に5CPU20の動作を強制的に一時停止させ、
その間にMCPUIOが5CPU20の内部RAM20
6にアクセスするものである。この方式によれば、MC
PUIOは任意のときに5CPU20の状態を調べる必
要なしに5CPTJ20を高速に(−命令実行で)アク
セスできる。
データアクセスのためにMCPUIOと5CPU20と
の間で従来のようなアクセスの要求と承認という手続を
踏むことなく、MCPUIOからの5CPUデ一タアク
セス時に5CPU20の動作を強制的に一時停止させ、
その間にMCPUIOが5CPU20の内部RAM20
6にアクセスするものである。この方式によれば、MC
PUIOは任意のときに5CPU20の状態を調べる必
要なしに5CPTJ20を高速に(−命令実行で)アク
セスできる。
このような特徴を備えたMCPU 10のブロック図と
5CPU20のブロー2り図をそれぞれ第23図と第2
4図に示す、なお、このMCPUと5CPUは上述した
5CPU動作開始終了機能に関する要素(第2図の5C
PUリセット制御回路134その他)を含むが第23図
と第24図では簡略化のため図示を省略しである。この
場合、リセット制御回路134からの5CPU動作起動
/停止信号Aは5CPU20 (第24図)のROMア
ドレス制御部214にのみ供給すれば十分である。第2
3図と第24図のMCPUIOと5CPU20の瞬時強
制アクセスに関する動作のタイムチャートを第25図に
示す。
5CPU20のブロー2り図をそれぞれ第23図と第2
4図に示す、なお、このMCPUと5CPUは上述した
5CPU動作開始終了機能に関する要素(第2図の5C
PUリセット制御回路134その他)を含むが第23図
と第24図では簡略化のため図示を省略しである。この
場合、リセット制御回路134からの5CPU動作起動
/停止信号Aは5CPU20 (第24図)のROMア
ドレス制御部214にのみ供給すれば十分である。第2
3図と第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を受けるが、出力するクロックのタイミン
グは独立である。MCPUIOではクロック発生回路1
36からの3相のクロック信号T1.T2、T3の一周
期でマシンサイクル(最短の一命令実行時間)が規定さ
れ、方、5CPU20ではクロック発生回路236Mか
らの3相のクロック信号ST1.ST2.ST3の一周
期でそのマシンサイクルが規定される。
5CPU20は別個のクロック発生回路136.236
Mを必要とする。5CPU20のクロック発生回路23
6Mは、5CPU20へのデータアクセス命令実行時に
MCPUIOのオペレーション制御回路112Mから出
力されるハイアクティブの5CPUアクセス信号りに応
答してその動作を停止する。これに関連し、MCPUI
Oのクロック発生回路136と5CPU20のクロック
発生回路236Mは共通の2相マスタ一クロツク信号C
K1.CK2を受けるが、出力するクロックのタイミン
グは独立である。MCPUIOではクロック発生回路1
36からの3相のクロック信号T1.T2、T3の一周
期でマシンサイクル(最短の一命令実行時間)が規定さ
れ、方、5CPU20ではクロック発生回路236Mか
らの3相のクロック信号ST1.ST2.ST3の一周
期でそのマシンサイクルが規定される。
第25図において、5CPUアクセス信号りが発生する
前において、MCPUIOに関するクロックTIのタイ
ミングは5CPU20に関するクロックSTIではなく
クロックST2のタイミングに一致している0両CPU
間で取り得る他のタイミング関係はT1がSTIに一致
する関係とTIがSr1に一致する関係である。
前において、MCPUIOに関するクロックTIのタイ
ミングは5CPU20に関するクロックSTIではなく
クロックST2のタイミングに一致している0両CPU
間で取り得る他のタイミング関係はT1がSTIに一致
する関係とTIがSr1に一致する関係である。
MCPUIOにおける5CPUアクセス命令実行中にオ
ペレーション制御回路112から出力される5CPUア
クセス信号りは、5CPU20のクロック発生回路23
6Mを停止させて5CPU2oで実行中のオペレーショ
ンを停止させるとともに、その停止中にMCPUIOが
5CPU20の内部RAM206をアクセスできるよう
に、MCPUIOからの内部RAM206の指定アドレ
スに係るバスゲート128.5CPU内部RAM206
に対するアドレス制御部204、データイン切り換え部
240、及びライト信号切り換え部242の各動作モー
ドを5CPU側”から“MCPUII″に切り換える機
能を有する。このために、5CPUアクセス信号はこれ
らの要素128.204,240.242の動作モード
を選択する制御入力にDフリップフロップ250とAN
Dゲート252とから成る遅延回路を介して結合してい
る。このようなアクセス可能状態の下で、MCPUIO
はバスゲート128、RAMアドレス制御部204を介
して5cPU内部RAM206を7トレツシングし、リ
ードアクセスの場合には5CPU内部RAM206から
出力されるデータをパスゲー)132を介してMCPU
内部RAM106に読み込み、ライトアクセスの場合に
は、バスゲー)130を介して書き込みデータをデータ
バスD OUTに乗せ、5CPU内部RAM206にラ
イト信号Cを与えてデータを書き込む。
ペレーション制御回路112から出力される5CPUア
クセス信号りは、5CPU20のクロック発生回路23
6Mを停止させて5CPU2oで実行中のオペレーショ
ンを停止させるとともに、その停止中にMCPUIOが
5CPU20の内部RAM206をアクセスできるよう
に、MCPUIOからの内部RAM206の指定アドレ
スに係るバスゲート128.5CPU内部RAM206
に対するアドレス制御部204、データイン切り換え部
240、及びライト信号切り換え部242の各動作モー
ドを5CPU側”から“MCPUII″に切り換える機
能を有する。このために、5CPUアクセス信号はこれ
らの要素128.204,240.242の動作モード
を選択する制御入力にDフリップフロップ250とAN
Dゲート252とから成る遅延回路を介して結合してい
る。このようなアクセス可能状態の下で、MCPUIO
はバスゲート128、RAMアドレス制御部204を介
して5cPU内部RAM206を7トレツシングし、リ
ードアクセスの場合には5CPU内部RAM206から
出力されるデータをパスゲー)132を介してMCPU
内部RAM106に読み込み、ライトアクセスの場合に
は、バスゲー)130を介して書き込みデータをデータ
バスD OUTに乗せ、5CPU内部RAM206にラ
イト信号Cを与えてデータを書き込む。
MCPUIOからの5CPUアクセス信号りによって5
CPU20のオペレーションを中断する場合に、オペレ
ーションの中間結果が失われないようにする必要があり
、5CPUアクセス信号りの解除後に、予め保持した中
間結果を用いて5CPU20がオペレーションの残りの
部分を実行できるようにする必要がある。このために、
5CPU内部RAM206のデータ出力を一時的に記憶
するラッチ206a、206bを設けている。ラッチ2
06aはRAM206からの演算数(第1オペランド)
を5TICKIのタイミングでラッチし、ラッチ206
bはRAM206からの被演算数(第2オペランド)を
5T2CK 1のタイミングでラッチする。
CPU20のオペレーションを中断する場合に、オペレ
ーションの中間結果が失われないようにする必要があり
、5CPUアクセス信号りの解除後に、予め保持した中
間結果を用いて5CPU20がオペレーションの残りの
部分を実行できるようにする必要がある。このために、
5CPU内部RAM206のデータ出力を一時的に記憶
するラッチ206a、206bを設けている。ラッチ2
06aはRAM206からの演算数(第1オペランド)
を5TICKIのタイミングでラッチし、ラッチ206
bはRAM206からの被演算数(第2オペランド)を
5T2CK 1のタイミングでラッチする。
第25図を参照して動作例を述べると、この例では、M
CPUIOは5CPUアクセス信号りがハイアクティブ
レベルの間に5CPU20の内部RAM206に対する
ライトアクセスを実行している。MCPUloではこの
データ書込オペレージ、ンの最初のタイムスロットTI
の間に、MCPU内部RAM106から転送データ(R
AM206に書き込むべきデータ)を取り出す8次のタ
イムスロットT2でMCPUIOは5CPU内部RAM
206をアドレー、シングする。最後のタイムスロット
T3でMCPUIOは5CPU内部RAM20Bにライ
ト信号Cを与えてRAM206にデータを書き込む、5
CFU20偏にとってMCPUIOからの5CPUアク
セス信号りは5CPU20のオペレーション2がタイム
スロー7トST2に移るときはアクティブに変化してい
る。このオペレーション2は5CPU20のRAM20
6にある被演算数と演算数をALU部208または乗算
器210で演算するような命令のオペレーションであり
得る。MCPUloからの5CPUアクセスタイムの直
前のタイムスロットであるオペレージ1ン2の最初のタ
イムスロットSTIで5CPU20はRAM106から
演算数のデータを取り出し、そのデータをクロックTI
CKIにより演算数ラッチ106aにラッチしている0
MCPUl0からの5CPUアクセス信号りが発生しな
ければ、5CPU20は次のタイムスロットST2でR
AM106から被演算数を取り出して被演算数ラー7チ
10bにラッチし、最後のタイムスロットST3でAL
U部108または乗算器llOで演算を実行してRAM
106の被演算数レジスタに書き込む、実際には図示の
ようにオペレーション2の最初のタイムスロツ)STI
に続いてMCPUIOからの5CPUアクセス信号りが
発生している。この場合、1つの対策はオペレ−ジョン
2の残り2つのタイムスロットST2とST3で実行す
べき処理を5CPUアクセス信号りが除去されるまで、
即ちMCPUIOの5CPUアクセスオペレーシヨンが
軒下するまで中断することである。この方式でもMCP
UIOは5CPU20をアクセスするオペレーションを
最短時間(MCPUIOの内部RAM106をアクセス
するのと同じ時間)内に実行できるが、5CPU20に
とっては最適ではなくMCPUIOからの5CPUアク
セスオペレーシヨンの都度、5CPU20のオペレーシ
ョンがタイムスロット3つ分遅延されることになる。都
合のよいことに、MCPUIO(7)SCPUアクセス
オペレーションの最初のタイムスロットTIで実行され
る処理は5CPU20に影響を与えない処理である。こ
の特徴を利用し、実施例ではMCPUIOから5CPU
アクセス信号りが与えられても、MCPUlOのタイム
スロットTIの間は、5CPU20自身のオペレーショ
ンか継続できるようにして、5CPU20の動作遅れを
できるだけ短かくしている。第25図の例でいえば、5
CPU20はMCPU 10の5CPUデータ書込オペ
レーシヨンの最初のタイムスロットTIの間に、RAM
206から被演算数のデータを取り出し、ラッチ206
bにクロック5T2CK1を与えて被演算数をラッチさ
せている。その後、5CPUクロック発生回路236の
動作は5CPUアクセス信号りが除去されるまで停止し
、5CPU20は待ち状態に置かれる。そしてこの待ち
状態の間、5CPU20の要素128.264,240
.242は5CPUアクセス信号りにより“MCPU側
”に切り換えられ、MCPUloの5CPUデータ書込
オペレーンヨンにおけるタイムスロットT2、T3に関
する処理が実行されて5CPU内部RAM206にMC
PUIOからのデータが書き込まれる。
CPUIOは5CPUアクセス信号りがハイアクティブ
レベルの間に5CPU20の内部RAM206に対する
ライトアクセスを実行している。MCPUloではこの
データ書込オペレージ、ンの最初のタイムスロットTI
の間に、MCPU内部RAM106から転送データ(R
AM206に書き込むべきデータ)を取り出す8次のタ
イムスロットT2でMCPUIOは5CPU内部RAM
206をアドレー、シングする。最後のタイムスロット
T3でMCPUIOは5CPU内部RAM20Bにライ
ト信号Cを与えてRAM206にデータを書き込む、5
CFU20偏にとってMCPUIOからの5CPUアク
セス信号りは5CPU20のオペレーション2がタイム
スロー7トST2に移るときはアクティブに変化してい
る。このオペレーション2は5CPU20のRAM20
6にある被演算数と演算数をALU部208または乗算
器210で演算するような命令のオペレーションであり
得る。MCPUloからの5CPUアクセスタイムの直
前のタイムスロットであるオペレージ1ン2の最初のタ
イムスロットSTIで5CPU20はRAM106から
演算数のデータを取り出し、そのデータをクロックTI
CKIにより演算数ラッチ106aにラッチしている0
MCPUl0からの5CPUアクセス信号りが発生しな
ければ、5CPU20は次のタイムスロットST2でR
AM106から被演算数を取り出して被演算数ラー7チ
10bにラッチし、最後のタイムスロットST3でAL
U部108または乗算器llOで演算を実行してRAM
106の被演算数レジスタに書き込む、実際には図示の
ようにオペレーション2の最初のタイムスロツ)STI
に続いてMCPUIOからの5CPUアクセス信号りが
発生している。この場合、1つの対策はオペレ−ジョン
2の残り2つのタイムスロットST2とST3で実行す
べき処理を5CPUアクセス信号りが除去されるまで、
即ちMCPUIOの5CPUアクセスオペレーシヨンが
軒下するまで中断することである。この方式でもMCP
UIOは5CPU20をアクセスするオペレーションを
最短時間(MCPUIOの内部RAM106をアクセス
するのと同じ時間)内に実行できるが、5CPU20に
とっては最適ではなくMCPUIOからの5CPUアク
セスオペレーシヨンの都度、5CPU20のオペレーシ
ョンがタイムスロット3つ分遅延されることになる。都
合のよいことに、MCPUIO(7)SCPUアクセス
オペレーションの最初のタイムスロットTIで実行され
る処理は5CPU20に影響を与えない処理である。こ
の特徴を利用し、実施例ではMCPUIOから5CPU
アクセス信号りが与えられても、MCPUlOのタイム
スロットTIの間は、5CPU20自身のオペレーショ
ンか継続できるようにして、5CPU20の動作遅れを
できるだけ短かくしている。第25図の例でいえば、5
CPU20はMCPU 10の5CPUデータ書込オペ
レーシヨンの最初のタイムスロットTIの間に、RAM
206から被演算数のデータを取り出し、ラッチ206
bにクロック5T2CK1を与えて被演算数をラッチさ
せている。その後、5CPUクロック発生回路236の
動作は5CPUアクセス信号りが除去されるまで停止し
、5CPU20は待ち状態に置かれる。そしてこの待ち
状態の間、5CPU20の要素128.264,240
.242は5CPUアクセス信号りにより“MCPU側
”に切り換えられ、MCPUloの5CPUデータ書込
オペレーンヨンにおけるタイムスロットT2、T3に関
する処理が実行されて5CPU内部RAM206にMC
PUIOからのデータが書き込まれる。
MCPUIOからの5CPUアクセス信号りが除去され
ると、5CPUクロー、り発生回路236は動作を再開
し、クロックST3を“H”に変化させる1更に、5C
PUアクセス信号りの除去により、5CPU20の要素
128.204.240.242が“5CPU側”に戻
され、5CPU20自身の動作が可能な状態になる。そ
こで5CPU20はこのタイムスロットST3において
ALU部208または乗算器210の演算出力をRAM
20Bに書き込んでオペレーション2の残りの部分を実
行する。
ると、5CPUクロー、り発生回路236は動作を再開
し、クロックST3を“H”に変化させる1更に、5C
PUアクセス信号りの除去により、5CPU20の要素
128.204.240.242が“5CPU側”に戻
され、5CPU20自身の動作が可能な状態になる。そ
こで5CPU20はこのタイムスロットST3において
ALU部208または乗算器210の演算出力をRAM
20Bに書き込んでオペレーション2の残りの部分を実
行する。
第25図のタイムチャートに示すように、5CPU20
の動作がMCPUIOからの5CPUアクセスオペレー
シヨンの都度、中断される時間はタイムスロット2つ分
だけである。
の動作がMCPUIOからの5CPUアクセスオペレー
シヨンの都度、中断される時間はタイムスロット2つ分
だけである。
なお、MCPUIOが5CPU20の内部RAM206
からデータを読み出すリードアクセスオペレーションの
場合、そのタイムスロットT2でMCPUIOは5CP
tT内部RAM206をアドレッシングし、タイムスロ
ットT3でMCPU内部RAM106をアドレッシング
して5CPU内部RAM206からのデータをバスゲー
)132を介してMCPU内部RAM106に取り込む
。
からデータを読み出すリードアクセスオペレーションの
場合、そのタイムスロットT2でMCPUIOは5CP
tT内部RAM206をアドレッシングし、タイムスロ
ットT3でMCPU内部RAM106をアドレッシング
して5CPU内部RAM206からのデータをバスゲー
)132を介してMCPU内部RAM106に取り込む
。
以上のように、瞬時強制アクセス方式によればMCPU
IOは5CPU20の内部RAM206に対するアクセ
スをMCPU自身のRAM106に対するアクセスと同
様に最短時間内で実行でき 待ち時間命令を実行する必
要がない。更に瞬時強制アクセス方式によれば、5CP
U20のオペレーションヲ途中で中断し、MCPUIO
の5CPUアクセスオペレーシヨン後に、中断されたと
ころからオペレーションを再開できる。したがって、M
CPUIOは5CPU20に対するアクセスに先立って
5CPU20の状態を検査する必要はなく、任意のとき
に、例えば、インタラプト処理ルーチン(第5図)中で
も自由に5CPU20をアクセスすることができる。
IOは5CPU20の内部RAM206に対するアクセ
スをMCPU自身のRAM106に対するアクセスと同
様に最短時間内で実行でき 待ち時間命令を実行する必
要がない。更に瞬時強制アクセス方式によれば、5CP
U20のオペレーションヲ途中で中断し、MCPUIO
の5CPUアクセスオペレーシヨン後に、中断されたと
ころからオペレーションを再開できる。したがって、M
CPUIOは5CPU20に対するアクセスに先立って
5CPU20の状態を検査する必要はなく、任意のとき
に、例えば、インタラプト処理ルーチン(第5図)中で
も自由に5CPU20をアクセスすることができる。
く共用メモリアクセス競合解消機能(第26、第27図
、第1図)〉 第1図において外部メモリ90は複数のCPU、即ちM
CPUIOと5CPU20に共用されるデータメモリで
ある。したがって外部データメモリ90に対する複数の
アクセス、即ち、MCPUIOからの外部データメモリ
90アクセスと、5CPU20かもの外部データメモリ
90アクセスをサポートする手段が必要である。更に、
外部データメモリ90を共用化する場合においてMCP
UIOと5CPU20とが外部データメモリ90を同時
にアクセスを試みることを許容するのが望まれる。MC
PUIOと5CPU20との間で外部データメモリ90
に対する使用権(トークン)を交換する機能を設けるこ
とにより、MCPUIOと5CPU20が同時には外部
データメモリ90をアクセスしないようにすることもで
きるが、トークンの手続は外部データメモリアクセスの
ための準備時間を占めるので、外部データメモリアクセ
スに要するトータルの時間が長くなり、効率的でない、
一方、MCPUIOと5CPU20による外部データメ
モリ90の同時アクセスを許容する場合、メモリ90自
体は物理的に同時アクセス不能であるので、同時アクセ
スによるアクセス競合を解消する手段が必要となる。
、第1図)〉 第1図において外部メモリ90は複数のCPU、即ちM
CPUIOと5CPU20に共用されるデータメモリで
ある。したがって外部データメモリ90に対する複数の
アクセス、即ち、MCPUIOからの外部データメモリ
90アクセスと、5CPU20かもの外部データメモリ
90アクセスをサポートする手段が必要である。更に、
外部データメモリ90を共用化する場合においてMCP
UIOと5CPU20とが外部データメモリ90を同時
にアクセスを試みることを許容するのが望まれる。MC
PUIOと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外部メモリアドレスチッチ30S、アドレ
ス切り換え回路40、アドレス変換回路60を介して外
部メモリ90のアドレス入力に結合されており、外部メ
モリ90からのデータ出力はデータ変換回路70、SC
PU外部メモリデータラッチ80S、データバスSDを
介して5CPU20に結合されている。そして、MCP
UIOと5CPU20からの外部データメモリアクセス
要求を表わす信号MCPU−romaとSCPU−ro
maを受けるメモリ装δ競合回避回路50により、上記
MCPU外部メモリアドレスラッチ30Mは、SCPU
外部メモリアドレスチッチ305、アドレス切り換え回
路40、MCPU外部メモリデータラッチ80M、SC
PU外部メモリデータラッチ80Sが制御されるように
なっている。このメモリ装置競合回避回路50に上述し
たアクセスの競合を回避する機能が含まれている。
PUIOからの外部メモリアドレス情報はアドレスバス
MA、MCPU外部メモリアドレスラッチ30M、アド
レス切り換え回路40、アドレス変換回路60を介して
外部メモリ90のアドレス入力に結合されており、外部
メモリ90からのデータ出力はデータ変換回路70.M
CPU外部メモリデータラッチ80M、データバスMD
を介してMCPUIOに結合されている。一方、5CP
U20からの外部メモリアドレス情報はアドレスバスS
A、5CPU外部メモリアドレスチッチ30S、アドレ
ス切り換え回路40、アドレス変換回路60を介して外
部メモリ90のアドレス入力に結合されており、外部メ
モリ90からのデータ出力はデータ変換回路70、SC
PU外部メモリデータラッチ80S、データバスSDを
介して5CPU20に結合されている。そして、MCP
UIOと5CPU20からの外部データメモリアクセス
要求を表わす信号MCPU−romaとSCPU−ro
maを受けるメモリ装δ競合回避回路50により、上記
MCPU外部メモリアドレスラッチ30Mは、SCPU
外部メモリアドレスチッチ305、アドレス切り換え回
路40、MCPU外部メモリデータラッチ80M、SC
PU外部メモリデータラッチ80Sが制御されるように
なっている。このメモリ装置競合回避回路50に上述し
たアクセスの競合を回避する機能が含まれている。
第26図にメモリ装置競合回避回路50のブロック図を
示し、第27図にアクセスの競合に対する動作のタイム
チャートを示す。
示し、第27図にアクセスの競合に対する動作のタイム
チャートを示す。
第26図において、メモリ装置競合回避回路50には入
力としてMCPUIOからのアクセス要求信号MCPU
−roma、5CPU20からのアクセス要求信号SC
PU−roma、更に、MCPUリセット信号MRES
及び5CPUリセット信号5RES (第1図において
図示省略)が結合する。M’CPUリセット信号MRE
Sはセットリセット回路(R−Sフリップフロップ)5
02とその出力に結合するセー、トリセット回路506
をリセットし、信号MCPU−romaは、セットリセ
ット回路502をセットする。セットリセット回路50
2はMCPUIOからのアクセス要求を一時記憶し、出
力側セットリセット回路506はセット状態において、
MCPUIOからのアクセス要求が受は付けられて外部
メモリデータアクセス制御信号発生回路510を介して
アクセスのオペレーションが実行中であることを示す、
同様に5CPUリセット信号5RESはセー、トリセッ
ト回路504とその出力に結合するセットリセット回路
508をリセットし、信号5CPU−r omaはセッ
トリセット回路504をセットする。セー、トリセット
回路504は5CPU20からのアクセス要求を一時記
憶し、出力側セットリセット回路508はセット状態に
おいて5CPU20からのアクセス要求が受は付けられ
アクセスのオペレーションが実行中であることを示す。
力としてMCPUIOからのアクセス要求信号MCPU
−roma、5CPU20からのアクセス要求信号SC
PU−roma、更に、MCPUリセット信号MRES
及び5CPUリセット信号5RES (第1図において
図示省略)が結合する。M’CPUリセット信号MRE
Sはセットリセット回路(R−Sフリップフロップ)5
02とその出力に結合するセー、トリセット回路506
をリセットし、信号MCPU−romaは、セットリセ
ット回路502をセットする。セットリセット回路50
2はMCPUIOからのアクセス要求を一時記憶し、出
力側セットリセット回路506はセット状態において、
MCPUIOからのアクセス要求が受は付けられて外部
メモリデータアクセス制御信号発生回路510を介して
アクセスのオペレーションが実行中であることを示す、
同様に5CPUリセット信号5RESはセー、トリセッ
ト回路504とその出力に結合するセットリセット回路
508をリセットし、信号5CPU−r omaはセッ
トリセット回路504をセットする。セー、トリセット
回路504は5CPU20からのアクセス要求を一時記
憶し、出力側セットリセット回路508はセット状態に
おいて5CPU20からのアクセス要求が受は付けられ
アクセスのオペレーションが実行中であることを示す。
詳細に述べると、MCPUアクセス要求セットリセット
回路502のセット状態の出力“H″は5CPUアクセ
ス実行セー、トリセット回路508がセット状態でない
ことを条件として、即ち、SCPU20のアクセスオペ
レーションが実行中でないことを条件として(低入力が
508からのインへ−夕522を介した反転入力に結合
するANDゲート524を介して)MCPUアクセス実
行セットリセット回路506をMCPUアクセス実行状
態にセットし、このMCPUアクセス実行セットリセッ
ト回路506をセットする信号により、ORゲー)51
2 (低入力がリセット信号MRESに結合する)を介
してMCPUアクセス要求セットリセット回路502を
リセットする。同様に、5CPUアクセス要求セットリ
セット回路504のセット状態の出力“H″はMCPU
アクセス実行セットリセ、ト回路506がセット状態で
ないことを条件として、即ちMCPUIOのアクセスオ
ペレーションが実行中でないことを条件として、(低入
力の1つが506からのインへ−タ520を介した反転
入力に結合するANDゲート526)を介して5CPU
アクセス実行セットリセット回路508を5CPUアク
セス実行状態にセットし、この5CPUアクセス実行セ
ットリセット回路508をセットする信号により、OR
ゲ−)516 (低入力がリセット信号5RESに結合
する)を介して5CPUアクセス要求セットリセット回
路504をリセットする0以上の構成により、片方のC
PU(例えば5CPU20)からアクセス要求があって
も、他方のCPU(MCPU l O)に関するアクセ
スオペレーションか実行中のときは、その実行が完了す
るまではアクセスを要求したCPU (SCPU20)
に関するアクセスオペレーションは実行されない、これ
により、アクセスの競合が基本的に回避される。
回路502のセット状態の出力“H″は5CPUアクセ
ス実行セー、トリセット回路508がセット状態でない
ことを条件として、即ち、SCPU20のアクセスオペ
レーションが実行中でないことを条件として(低入力が
508からのインへ−夕522を介した反転入力に結合
するANDゲート524を介して)MCPUアクセス実
行セットリセット回路506をMCPUアクセス実行状
態にセットし、このMCPUアクセス実行セットリセッ
ト回路506をセットする信号により、ORゲー)51
2 (低入力がリセット信号MRESに結合する)を介
してMCPUアクセス要求セットリセット回路502を
リセットする。同様に、5CPUアクセス要求セットリ
セット回路504のセット状態の出力“H″はMCPU
アクセス実行セットリセ、ト回路506がセット状態で
ないことを条件として、即ちMCPUIOのアクセスオ
ペレーションが実行中でないことを条件として、(低入
力の1つが506からのインへ−タ520を介した反転
入力に結合するANDゲート526)を介して5CPU
アクセス実行セットリセット回路508を5CPUアク
セス実行状態にセットし、この5CPUアクセス実行セ
ットリセット回路508をセットする信号により、OR
ゲ−)516 (低入力がリセット信号5RESに結合
する)を介して5CPUアクセス要求セットリセット回
路504をリセットする0以上の構成により、片方のC
PU(例えば5CPU20)からアクセス要求があって
も、他方のCPU(MCPU l O)に関するアクセ
スオペレーションか実行中のときは、その実行が完了す
るまではアクセスを要求したCPU (SCPU20)
に関するアクセスオペレーションは実行されない、これ
により、アクセスの競合が基本的に回避される。
更に、MCPUIO,!−3CPU20とが完全に同時
仁アクセスを要求する場合がある。このアクセス競合に
対し、実施例では、MCPUIOからのアクセス要求を
優先させ、MCPUIOのアクセスオペレーションを実
行してから、5CPU20のアクセスオペレーションを
実行している。このために、MCPUアクセス要求セ−
/ )リセット信号502がセット状態のときはその出
力信号“H”によりインバータ525を介してANDゲ
−)526を禁止しており、セットリセット回路502
がセット中のときは5CPUアクセス要求セットリセ−
2ト回路504がセット状態でも5CPUアクセス実行
セットリセット回路508がセットされないようにして
いる。
仁アクセスを要求する場合がある。このアクセス競合に
対し、実施例では、MCPUIOからのアクセス要求を
優先させ、MCPUIOのアクセスオペレーションを実
行してから、5CPU20のアクセスオペレーションを
実行している。このために、MCPUアクセス要求セ−
/ )リセット信号502がセット状態のときはその出
力信号“H”によりインバータ525を介してANDゲ
−)526を禁止しており、セットリセット回路502
がセット中のときは5CPUアクセス要求セットリセ−
2ト回路504がセット状態でも5CPUアクセス実行
セットリセット回路508がセットされないようにして
いる。
外部メモリデータアクセス制御信号発生回路510は、
セットリセット回路506と508からの出力に結合し
、いずれかのセットリセット回路の出力がセット状態“
H”に変化すると、そのセット状態が示すCPUアクセ
スのオペレーションを一連のシーケンスで実行する。外
部メモリデータアクセス制御信号発生回路510から出
力される信号CEとOEは外部メモリ7からデータを出
力するための制御信号であり、信号MDLはMCPU外
部メモリデータラッチ80Mに外部メモリ90からのデ
ータをラッチするための制御信号であり、信号SDLは
5CPU外部メモリデータラッチ805に外部メモリ9
0からのデータをラッチするための制御信号である。外
部メモリデータアクセス制御信号発生回路510はアク
セスオペレーションの実行を終了するとEND信号を発
生する。このEND信号により、セット状態にあったア
クセス実行セットリセy ト回路はリセットされる。即
ち、END信号は低入力がセットリセット回路506の
出力に結合するANDゲート528と低入力がMCPU
リセット信号MRESに結合するORゲート514を介
してセットリセット回路506のリセット入力に結合し
、また低入力がセットリセット回路50Bの出力に結合
するANDゲート530と低入力が5CPUリセット信
号5RESに結合するORゲート518を介してセット
リセット回路508のリセット入力に結合する。
セットリセット回路506と508からの出力に結合し
、いずれかのセットリセット回路の出力がセット状態“
H”に変化すると、そのセット状態が示すCPUアクセ
スのオペレーションを一連のシーケンスで実行する。外
部メモリデータアクセス制御信号発生回路510から出
力される信号CEとOEは外部メモリ7からデータを出
力するための制御信号であり、信号MDLはMCPU外
部メモリデータラッチ80Mに外部メモリ90からのデ
ータをラッチするための制御信号であり、信号SDLは
5CPU外部メモリデータラッチ805に外部メモリ9
0からのデータをラッチするための制御信号である。外
部メモリデータアクセス制御信号発生回路510はアク
セスオペレーションの実行を終了するとEND信号を発
生する。このEND信号により、セット状態にあったア
クセス実行セットリセy ト回路はリセットされる。即
ち、END信号は低入力がセットリセット回路506の
出力に結合するANDゲート528と低入力がMCPU
リセット信号MRESに結合するORゲート514を介
してセットリセット回路506のリセット入力に結合し
、また低入力がセットリセット回路50Bの出力に結合
するANDゲート530と低入力が5CPUリセット信
号5RESに結合するORゲート518を介してセット
リセット回路508のリセット入力に結合する。
5CPUアクセス実行セットリセー、ト回路508の出
力はインバータ532を介してアドレス切り換え回路4
0に対するアドレス選択信号MSELを発生する。した
がって、アドレス切り換え回路40は、5CPU20の
アクセスオペレーションが実行中のときに、5CPU外
部メモリアクセス用アドレスラッチ305からの5CP
Uアトレスを選択し、その他の場合はMCPU外部メモ
リアクセス用アドレスラッチ30MからのMCPUアド
レスを選択する。
力はインバータ532を介してアドレス切り換え回路4
0に対するアドレス選択信号MSELを発生する。した
がって、アドレス切り換え回路40は、5CPU20の
アクセスオペレーションが実行中のときに、5CPU外
部メモリアクセス用アドレスラッチ305からの5CP
Uアトレスを選択し、その他の場合はMCPU外部メモ
リアクセス用アドレスラッチ30MからのMCPUアド
レスを選択する。
第27図の場合、MCPUIOと5CPU20は″MC
PUオペL/−シHンf) r o m a”、“5C
PUオペレージ、ンのroma”に示すように同時に外
部メモリ90に対するアクセスを要求している。このr
oma命令のオペレーションにおいて、MCPUIO
はアドレスバスMAにアドレス情報を送出し、信号M
CP U −r o m aを出力してMCPU外部メ
モリアクセス用アドレスラー。
PUオペL/−シHンf) r o m a”、“5C
PUオペレージ、ンのroma”に示すように同時に外
部メモリ90に対するアクセスを要求している。このr
oma命令のオペレーションにおいて、MCPUIO
はアドレスバスMAにアドレス情報を送出し、信号M
CP U −r o m aを出力してMCPU外部メ
モリアクセス用アドレスラー。
チ30Mにアドレス情報をラッチさせ、同様に5CPU
20はアドレスバスSAにアドレス情報を送出し、信号
SCPU−romaを出力しテ5cPU外部メモリアク
セス用アドレスチッチ305にアドレス情報をラッチさ
せる6同時に発生するMCPU−roma信号とSCP
U−roma@号により、メモリ装置競合回避回路50
のMCPUアクセス要求セットリセット回路502と5
CPUアクセス要求セットリセット回路504は同時に
セットされる。これに対し、上述したMCPUアクセス
優先論理に従い、MCPUアクセス実行セットリセット
回路50Bがただちにセット状態に変化し、それにより
外部メモリデータアクセス制御信号発生回路510が外
部メモリ90に対するMCPUIOのアクセスオペレー
ジ、ンを実行する。この時点でアドレス切り換え回路4
0はMCPUIOからのアドレス情報を選択している。
20はアドレスバスSAにアドレス情報を送出し、信号
SCPU−romaを出力しテ5cPU外部メモリアク
セス用アドレスチッチ305にアドレス情報をラッチさ
せる6同時に発生するMCPU−roma信号とSCP
U−roma@号により、メモリ装置競合回避回路50
のMCPUアクセス要求セットリセット回路502と5
CPUアクセス要求セットリセット回路504は同時に
セットされる。これに対し、上述したMCPUアクセス
優先論理に従い、MCPUアクセス実行セットリセット
回路50Bがただちにセット状態に変化し、それにより
外部メモリデータアクセス制御信号発生回路510が外
部メモリ90に対するMCPUIOのアクセスオペレー
ジ、ンを実行する。この時点でアドレス切り換え回路4
0はMCPUIOからのアドレス情報を選択している。
MCPUIOのアクセスオペレーションの期間を142
7図の左方の期間1で示す(なお、回路510は2相の
マスタークロー、りCKI、CK2で動作するが、第2
6図では図示を省略しである)、外部メモリデータアク
セス制御信号発生回路510は期間nでチップイネーブ
ル信号CEをローアクティブにし、期間nの後半の期間
mで出力イネーブル信号OEをローアクティブする。し
たがって、この期間mにおいて外部メモリ90からMC
PUIOが要求したデータが出力され、この期間m内に
外部メモリデータアクセス要求信号発生回路510から
発生する信号MDLにより、この出力データがMCPU
外部メモリデータラッチ80Mにラッチされる。これに
より、外部メモリデータアクセス要求信号発生回路51
0のMCPUIOのためのアクセスオペレージ璽ンは完
了するので、回路510はエンド信号ENDを出力する
。これにより、MCPUアクセス実行セ実行セラトリセ
フ506はリセットされ、代りに5CPUアクセス実行
セットリセット回路508がセットされる。これにより
信号MSELは5CPUアドレス選択を示す“L″レベ
ル変化し、アドレス切り換え回路40は5CPU20か
らのアドレスを選択して外部メモリ90をアドレッシン
グする。更に、5CPUアクセス実行セットリセット回
路508からの七−21信号に応答して外部メモリデー
タアクセス制御信号発生回路510が5CPU20のた
めのアクセスオペレーションを実行する。この期間を第
27図の右側の期間見で示す、このオペレージ、ンにお
いて外部メモリデータアクセス制御信号発生回路510
は信号CE゛をローアクティブにし、その後半の期間p
で信号OEをローアクティブにして5CPU20の要求
したデータを外部メモリ90から出力させ、その出力中
に信号SDLを発生してSCPU外部メモリデータラッ
チ805に5CPU20の要求したデータをラッチさせ
る。これにより、外部メモリデータアクセス制御信号発
生回路510の5CPU20のためのアクセスオペレー
ジ、ンは完了するので同回路510はエンド信号END
を出力して5CPUアクセス実行セットリセット回路5
08をリセット状態に戻す。
7図の左方の期間1で示す(なお、回路510は2相の
マスタークロー、りCKI、CK2で動作するが、第2
6図では図示を省略しである)、外部メモリデータアク
セス制御信号発生回路510は期間nでチップイネーブ
ル信号CEをローアクティブにし、期間nの後半の期間
mで出力イネーブル信号OEをローアクティブする。し
たがって、この期間mにおいて外部メモリ90からMC
PUIOが要求したデータが出力され、この期間m内に
外部メモリデータアクセス要求信号発生回路510から
発生する信号MDLにより、この出力データがMCPU
外部メモリデータラッチ80Mにラッチされる。これに
より、外部メモリデータアクセス要求信号発生回路51
0のMCPUIOのためのアクセスオペレージ璽ンは完
了するので、回路510はエンド信号ENDを出力する
。これにより、MCPUアクセス実行セ実行セラトリセ
フ506はリセットされ、代りに5CPUアクセス実行
セットリセット回路508がセットされる。これにより
信号MSELは5CPUアドレス選択を示す“L″レベ
ル変化し、アドレス切り換え回路40は5CPU20か
らのアドレスを選択して外部メモリ90をアドレッシン
グする。更に、5CPUアクセス実行セットリセット回
路508からの七−21信号に応答して外部メモリデー
タアクセス制御信号発生回路510が5CPU20のた
めのアクセスオペレーションを実行する。この期間を第
27図の右側の期間見で示す、このオペレージ、ンにお
いて外部メモリデータアクセス制御信号発生回路510
は信号CE゛をローアクティブにし、その後半の期間p
で信号OEをローアクティブにして5CPU20の要求
したデータを外部メモリ90から出力させ、その出力中
に信号SDLを発生してSCPU外部メモリデータラッ
チ805に5CPU20の要求したデータをラッチさせ
る。これにより、外部メモリデータアクセス制御信号発
生回路510の5CPU20のためのアクセスオペレー
ジ、ンは完了するので同回路510はエンド信号END
を出力して5CPUアクセス実行セットリセット回路5
08をリセット状態に戻す。
これ以降、MCPUIOと5CPU20はそれぞれデー
タバスMD、SDに乗っている外部メモリデータラッチ
80M、805の出力データを読むことにより、要求し
たデータを得ることができる。
タバスMD、SDに乗っている外部メモリデータラッチ
80M、805の出力データを読むことにより、要求し
たデータを得ることができる。
このようにして各CPUl0.20はr oma命令(
外部メモリアクセス要求命令)を実行後。
外部メモリアクセス要求命令)を実行後。
メモリ装置競合回避回路50が両CPUのためのアクセ
スオペレージ、ンを実行する所定の期間2皇だけ待てば
要求したデータを得ることができ。
スオペレージ、ンを実行する所定の期間2皇だけ待てば
要求したデータを得ることができ。
アクセス競合の問題が解消される。更に、待機時間が一
定(2文)なので、各CPUl0120はこの期間を他
の命令の実行に使用することができ、プログラム命令の
実行効率が最適化される。
定(2文)なので、各CPUl0120はこの期間を他
の命令の実行に使用することができ、プログラム命令の
実行効率が最適化される。
なお、MCPU−roma@号とSCPU−roma@
号のタイミング関係がその他のタイミング関係となる場
合については図示を省略しているが、いかなる場合でも
、各CPUl0120はr oma命令を実行後、所定
の期間2文待てばその時点で既に各CPUの外部データ
ラッチには要求したデータがラッチされているので、そ
のデータの入手が可能である。
号のタイミング関係がその他のタイミング関係となる場
合については図示を省略しているが、いかなる場合でも
、各CPUl0120はr oma命令を実行後、所定
の期間2文待てばその時点で既に各CPUの外部データ
ラッチには要求したデータがラッチされているので、そ
のデータの入手が可能である。
くアドレス・データ変換ハードウェア(第28〜第32
図、141図)〉 一般に、CPUを含むマイクロコンピュータシステムに
おいて、データメモリにある原データから演算用メモリ
上に原データを変換したデータ(原データから抽出され
る所望の情報)を作成することかしばしば望まれる。特
にこの種のデータは変換はデータメモリの記憶容量を効
率的に使用したような場合にその補償として必要になる
。この目的のため、従来では、データメモリから演算用
メモリへの転送命令を実行して、データメモリの原デー
タを演算用メモリに移し、次に1以上の変換命令を実行
して、演算用メモリにあるデータをALUを介して変換
する。したがって、従来の場合、演算用メモリ上に所望
のデータを得るためのデータ変換手続に時間がかかり、
高速処理が要求されるアプリケーションにおける障害の
1つとなっている。
図、141図)〉 一般に、CPUを含むマイクロコンピュータシステムに
おいて、データメモリにある原データから演算用メモリ
上に原データを変換したデータ(原データから抽出され
る所望の情報)を作成することかしばしば望まれる。特
にこの種のデータは変換はデータメモリの記憶容量を効
率的に使用したような場合にその補償として必要になる
。この目的のため、従来では、データメモリから演算用
メモリへの転送命令を実行して、データメモリの原デー
タを演算用メモリに移し、次に1以上の変換命令を実行
して、演算用メモリにあるデータをALUを介して変換
する。したがって、従来の場合、演算用メモリ上に所望
のデータを得るためのデータ変換手続に時間がかかり、
高速処理が要求されるアプリケーションにおける障害の
1つとなっている。
本実施例ではCPUl0120がデータメモリである外
部メモリ90から演算用メモリである内部RAM106
または206にデータを転送する命令(r oma命令
)を実行するだけで、所望の変換が施されたデータが内
部RAM106.206に読み込まれるようにして、デ
ータ変換処理の高速化を図っている。この目的を実現す
るため、CPUl0120と外部メモリ90との間のア
ドレス径路上にアドレス変換回路60が設けられ、また
外部メモリ90とCPUl0120との間のデータ径路
上にデータ変換回路70が設けられ、各変換回路60.
70はroma命令の実行時にCPUl0120から与
えられる制御信号に応答して所望の変換を実行する。
部メモリ90から演算用メモリである内部RAM106
または206にデータを転送する命令(r oma命令
)を実行するだけで、所望の変換が施されたデータが内
部RAM106.206に読み込まれるようにして、デ
ータ変換処理の高速化を図っている。この目的を実現す
るため、CPUl0120と外部メモリ90との間のア
ドレス径路上にアドレス変換回路60が設けられ、また
外部メモリ90とCPUl0120との間のデータ径路
上にデータ変換回路70が設けられ、各変換回路60.
70はroma命令の実行時にCPUl0120から与
えられる制御信号に応答して所望の変換を実行する。
第28図に外部メモリアクセス命令r omaのリスト
を示す、第1の命令romaoは変換なしの転送命令で
あり、これに対し、アドレス変換回路60はCPUl0
120から与えられる入力アドレスをそのまま出力アド
レスとして外部データメモリ90に通し、データ変換回
路70も外部データメモリ90からのデータ(16ビツ
トデータ)を無変換で通してCPUl0120に渡す。
を示す、第1の命令romaoは変換なしの転送命令で
あり、これに対し、アドレス変換回路60はCPUl0
120から与えられる入力アドレスをそのまま出力アド
レスとして外部データメモリ90に通し、データ変換回
路70も外部データメモリ90からのデータ(16ビツ
トデータ)を無変換で通してCPUl0120に渡す。
この無変換転送命令romaOではCPUl0120か
ら変換回路60.70に与えられる変換制御用の信号R
1,R2,R3はいずれもL”レベルとなる。
ら変換回路60.70に与えられる変換制御用の信号R
1,R2,R3はいずれもL”レベルとなる。
第2の命令romalは特殊波形の読み出しに適した命
令である。この命令に対し、アドレス変換回路60はC
PUl0120から送られてきた入力アトレスの第13
ピツ)A12が“0”のときは下位12ビツトを無変換
で通すが第13ビツトA12が1″′のときは下位12
ビツトを反転させる。なお、アドレス変換回路60の出
力アドレスの第13ビツトは入力アドレスの第13ビツ
トA12の値にかかわらず“0″に固定される。
令である。この命令に対し、アドレス変換回路60はC
PUl0120から送られてきた入力アトレスの第13
ピツ)A12が“0”のときは下位12ビツトを無変換
で通すが第13ビツトA12が1″′のときは下位12
ビツトを反転させる。なお、アドレス変換回路60の出
力アドレスの第13ビツトは入力アドレスの第13ビツ
トA12の値にかかわらず“0″に固定される。
また、この命令に対し、データ変換回路70はCPUl
0120から送られてきた入力アドレスの第13ビツト
A12をCPUl0120に送るデータの第13ビツト
D12とするとともにA12が“l”のとき下位の12
ビツトデータを反転する形式で外部メモリ90からのデ
ータを変換する。したがって、外部メモリ90のアドレ
ス領域0000〜0FFFに第28図に示すような有効
データビー2ト数12の特殊波形データ(ooo。
0120から送られてきた入力アドレスの第13ビツト
A12をCPUl0120に送るデータの第13ビツト
D12とするとともにA12が“l”のとき下位の12
ビツトデータを反転する形式で外部メモリ90からのデ
ータを変換する。したがって、外部メモリ90のアドレ
ス領域0000〜0FFFに第28図に示すような有効
データビー2ト数12の特殊波形データ(ooo。
〜0FFF)があるとすると、CPUl0120がこの
命令を指定アドレス0000−IFFFの範囲について
繰り返し実行した場合に、アドレス変換回路60から出
力される外部メモリアドレスはいったん0000から0
FF−Fに進み、この間、データ変換回路70は外部メ
モリ90からのデータをそのまま通し、その後、アドレ
ス変換回路60の反転動作により、外部メモリ9oへの
アドレスは0FFFからooooに後進し、この間、デ
ータ変換回路70は外部メモリ9oから出力されるデー
タの下位12ビツトを反転し、第1゛3データピツ)D
12を“!”にして変換されたデータを出力する。結局
、CPUl0120がアドレスを0000〜LF F
Fに動かして命令r。
命令を指定アドレス0000−IFFFの範囲について
繰り返し実行した場合に、アドレス変換回路60から出
力される外部メモリアドレスはいったん0000から0
FF−Fに進み、この間、データ変換回路70は外部メ
モリ90からのデータをそのまま通し、その後、アドレ
ス変換回路60の反転動作により、外部メモリ9oへの
アドレスは0FFFからooooに後進し、この間、デ
ータ変換回路70は外部メモリ9oから出力されるデー
タの下位12ビツトを反転し、第1゛3データピツ)D
12を“!”にして変換されたデータを出力する。結局
、CPUl0120がアドレスを0000〜LF F
Fに動かして命令r。
malを繰り返し実行した場合に、CPUl0120が
実際に受は取る波形は第28図のr omalの欄の右
方に示すような波形となる。この変換波形ぽ左方に示す
外部メモリ90内の原波形を所定の態様で延長した繰り
返し波形(アドレス、0FFF、データ0FFFの点に
ついて対称な波形)である、この結果、記憶容量の点に
一つぃていうと、゛変換波形のデータ自体を予め外部デ
ータメモリ90に記憶させる方式に比べ、波形データ記
憶容量が半分になる利点がある。この命令r omal
の場合、制御信号R1、R2、R3のうちR1のみが“
H″レベルなる。
実際に受は取る波形は第28図のr omalの欄の右
方に示すような波形となる。この変換波形ぽ左方に示す
外部メモリ90内の原波形を所定の態様で延長した繰り
返し波形(アドレス、0FFF、データ0FFFの点に
ついて対称な波形)である、この結果、記憶容量の点に
一つぃていうと、゛変換波形のデータ自体を予め外部デ
ータメモリ90に記憶させる方式に比べ、波形データ記
憶容量が半分になる利点がある。この命令r omal
の場合、制御信号R1、R2、R3のうちR1のみが“
H″レベルなる。
第3の命令ROMA2は外部メモリデータの一部(半語
)の読み出しを指示する命令である。この命令の場合、
R2のみが“H″ルベルなる。
)の読み出しを指示する命令である。この命令の場合、
R2のみが“H″ルベルなる。
外部データメモリ90の1アドレス(1語)当りの記憶
容量は16ビツトである。この命令roma2に対し、
データ変換回路70は、CPUl0120からのアドレ
スの第16ビツトA15が0”のときは、外部データメ
モリ90からの16ビツトデータのうち、下位の8ビツ
トを残し、上位の8ビツトを“0”にマスクする変換を
実行し、A15がl″のときは外部データメモリ90か
ら16ビー7トデータのうち、上位の8ビツトを下位8
ビツトにシフトする(残った上位8ビツトはマスク)変
換を実行する。また、データ変換回路70において入力
アドレスの第16ビツ)A15を制御信号として使用し
ているので、アドレス変換回路60ではA15の値にか
かわらず出力アドレスの第16ビツトを所定値〒0”に
マスクする。なお、この場合において外部データメモリ
90か6の16ビツト情帷の上位8ビツトと下位ビット
との関係は、1つのデータ(例えば位相データ)におけ
る上位データ部分(例えば整数S)と下位データ部分(
例えば小数部)のような関係であってもよいし、異なる
2種類の8ビツトデータ(例えばレートデータとレベル
データ)の各々であるような独立な関係であってもよい
。
容量は16ビツトである。この命令roma2に対し、
データ変換回路70は、CPUl0120からのアドレ
スの第16ビツトA15が0”のときは、外部データメ
モリ90からの16ビツトデータのうち、下位の8ビツ
トを残し、上位の8ビツトを“0”にマスクする変換を
実行し、A15がl″のときは外部データメモリ90か
ら16ビー7トデータのうち、上位の8ビツトを下位8
ビツトにシフトする(残った上位8ビツトはマスク)変
換を実行する。また、データ変換回路70において入力
アドレスの第16ビツ)A15を制御信号として使用し
ているので、アドレス変換回路60ではA15の値にか
かわらず出力アドレスの第16ビツトを所定値〒0”に
マスクする。なお、この場合において外部データメモリ
90か6の16ビツト情帷の上位8ビツトと下位ビット
との関係は、1つのデータ(例えば位相データ)におけ
る上位データ部分(例えば整数S)と下位データ部分(
例えば小数部)のような関係であってもよいし、異なる
2種類の8ビツトデータ(例えばレートデータとレベル
データ)の各々であるような独立な関係であってもよい
。
第4の命令ROMA3は外部メモリデータをシフトして
一部を読み出す命令である。この命令の場合、R3のみ
が“H″レベルなる。この命令に対し、データ変換回路
70は外部メモリ90からの16ビツトデータのうち、
bit15はそのままにして上位12ビツトのbit1
5〜bit゛4をbit14〜bit3にシフトし、下
位の3ビツトbit2〜bitOを0にマスクする変換
を行う、ここに、外部メモリ90の16ビツトデータの
うち上位12ビウトは例えばb f t 15を符号ビ
ットとする波形データであり、下位4ビツトは別のデー
タを表わす、この場合ζ゛上記変換ニヨリ、CPUl0
120は内部RAM106゜206上で使用するのに適
したフォーマ−2トの波形デー タを高速に読み取るこ
とができる。
一部を読み出す命令である。この命令の場合、R3のみ
が“H″レベルなる。この命令に対し、データ変換回路
70は外部メモリ90からの16ビツトデータのうち、
bit15はそのままにして上位12ビツトのbit1
5〜bit゛4をbit14〜bit3にシフトし、下
位の3ビツトbit2〜bitOを0にマスクする変換
を行う、ここに、外部メモリ90の16ビツトデータの
うち上位12ビウトは例えばb f t 15を符号ビ
ットとする波形データであり、下位4ビツトは別のデー
タを表わす、この場合ζ゛上記変換ニヨリ、CPUl0
120は内部RAM106゜206上で使用するのに適
したフォーマ−2トの波形デー タを高速に読み取るこ
とができる。
第29図にアドレス変換回路60のブロック図を示・す
、このアドレス変換回路60にはMCPUloまたは5
CPU20から7ドレスラツチ30M、30S、アドレ
ス切り換え回路40を介して入力される16ビツトのア
ドレスのうち、下位12ビヤト(b i t O〜bi
tll)が詳細を第30図に示す反転回路610に入力
される。この反転回路610は信号R1が命令roma
−1を表わす“l”でアγレスのA12が” 、!、
”のときANDゲート612から−の信号により動作し
て入力されるアドレスの下位12ビツトを反転させる。
、このアドレス変換回路60にはMCPUloまたは5
CPU20から7ドレスラツチ30M、30S、アドレ
ス切り換え回路40を介して入力される16ビツトのア
ドレスのうち、下位12ビヤト(b i t O〜bi
tll)が詳細を第30図に示す反転回路610に入力
される。この反転回路610は信号R1が命令roma
−1を表わす“l”でアγレスのA12が” 、!、
”のときANDゲート612から−の信号により動作し
て入力されるアドレスの下位12ビツトを反転させる。
また、命令rom’alの実行時に“l”・となる信号
R1はインバータ602を介、して、ANDゲート60
4を禁止し、入力アドレスのA12の値にかかわらず出
力アドレスの対応ピッ)(bit−12)を′0”にす
−る、・入力アドレスの−AI−3とA14はそのまオ
出力フ′十゛レスの対応ビ、ット・(b、lit13.
bit14)として出力される。入力アドレスのA15
(MSB)はANDゲート608を介して出力アドレス
の対応ピッ)(bit15)となる、命令roma2の
実行中を表わす“1″の信号R2が発生しているとき、
この信号R2がインバータ606を介してANDゲート
608を禁止して出力アドレスのbit15(MSB)
を“0″にマスクする。
R1はインバータ602を介、して、ANDゲート60
4を禁止し、入力アドレスのA12の値にかかわらず出
力アドレスの対応ピッ)(bit−12)を′0”にす
−る、・入力アドレスの−AI−3とA14はそのまオ
出力フ′十゛レスの対応ビ、ット・(b、lit13.
bit14)として出力される。入力アドレスのA15
(MSB)はANDゲート608を介して出力アドレス
の対応ピッ)(bit15)となる、命令roma2の
実行中を表わす“1″の信号R2が発生しているとき、
この信号R2がインバータ606を介してANDゲート
608を禁止して出力アドレスのbit15(MSB)
を“0″にマスクする。
したがってアドレス変換回路60は、S変換命令r o
m a Oとシフト読み出し命令roma3に対して
はR1=”0″、R2;0”なので入力アドレスを出力
アドレスとしてそのまま通し、特殊波形読出し命令ro
malに対してはR1=“1″なので出力アドレスのb
it12を“0″にマスクし、A12=“1″の間尺転
回路610により入力アドレスの下位12ピツ)(bi
t。
m a Oとシフト読み出し命令roma3に対して
はR1=”0″、R2;0”なので入力アドレスを出力
アドレスとしてそのまま通し、特殊波形読出し命令ro
malに対してはR1=“1″なので出力アドレスのb
it12を“0″にマスクし、A12=“1″の間尺転
回路610により入力アドレスの下位12ピツ)(bi
t。
〜bitll)を反転して出力アドレスとする。
更に、一部読み出し命令roma2に対してはR2−“
l”なので出力アトレスのbit15をθ″′にマスク
する。このようにして、第28図に関して述へたアドレ
ス変換回路の機能が実現される。
l”なので出力アトレスのbit15をθ″′にマスク
する。このようにして、第28図に関して述へたアドレ
ス変換回路の機能が実現される。
第31図にデータ変換回路70のブロック図を示し、第
32図にその詳細を示す、これらの図においてデータ入
力は第1図の外部メモリ90から供給されるデータであ
る。第32図において、入力データの上位8ビー2トに
結合する3状態ゲ一ト回路702と入力データの下位8
ビツトに結合する3状態ゲ一ト回路704は出力するデ
ータの下位8ビツトとして入力データのL位8ビy )
を選択するが、入力データの下位8ビツトを選択するか
を決めるためのものである。R2=″1″(r oma
2命令)でA15=1のとき、ANDゲート706の“
1”出力信号とその反転信号であるインバータ708の
出力信号“0″によりゲート回路702が導通し、ゲー
ト回路704がオフして入力データの上位8ビツトが出
力データの下位8ビツトとして選択される。その他の場
合は、ゲート回路702かオフし ゲート回路704が
導通するので入力データの下位8ビツトがそのまま出力
データの下位8ビツトとして出力される。更にR2=“
1” (roma2命令)のときは、入力データの上
位8ビツトに結合するANDゲート回路710が禁止さ
れて出力データの上位8ビツトを“0”にマスクする。
32図にその詳細を示す、これらの図においてデータ入
力は第1図の外部メモリ90から供給されるデータであ
る。第32図において、入力データの上位8ビー2トに
結合する3状態ゲ一ト回路702と入力データの下位8
ビツトに結合する3状態ゲ一ト回路704は出力するデ
ータの下位8ビツトとして入力データのL位8ビy )
を選択するが、入力データの下位8ビツトを選択するか
を決めるためのものである。R2=″1″(r oma
2命令)でA15=1のとき、ANDゲート706の“
1”出力信号とその反転信号であるインバータ708の
出力信号“0″によりゲート回路702が導通し、ゲー
ト回路704がオフして入力データの上位8ビツトが出
力データの下位8ビツトとして選択される。その他の場
合は、ゲート回路702かオフし ゲート回路704が
導通するので入力データの下位8ビツトがそのまま出力
データの下位8ビツトとして出力される。更にR2=“
1” (roma2命令)のときは、入力データの上
位8ビツトに結合するANDゲート回路710が禁止さ
れて出力データの上位8ビツトを“0”にマスクする。
即ち、R2=“1″のときはインバータ712とNOR
ゲート714を介して禁止信号がANDゲート回路71
Oに加わってANDゲート回路710における入力デー
タ上位8ビツトの通過が阻止される。また、ANDゲー
ト回路710における入力データの上位3ビツトと結合
するANDゲート素子はR1=“1″ (romal命
令)のときにNORゲート714を介して禁止され、出
力データの上位3ビツトをO”にマスクする。
ゲート714を介して禁止信号がANDゲート回路71
Oに加わってANDゲート回路710における入力デー
タ上位8ビツトの通過が阻止される。また、ANDゲー
ト回路710における入力データの上位3ビツトと結合
するANDゲート素子はR1=“1″ (romal命
令)のときにNORゲート714を介して禁止され、出
力データの上位3ビツトをO”にマスクする。
EX−ORゲート回路716は入力データの下位12ビ
ツトを選択的に反転するための回路である。EX−OR
ゲート回路716はR1=“l”(romal命令)で
A12=1のとき、ANDゲート718からの反転信号
“1”により、下位12ビツトデータを反転し、その他
の場合は下位12ビツトデータをそのまま通す0回路7
10内のANDゲート素子を介して入力データのbit
12に結合する状態ゲート722はR1=“1”(ro
mal命令)のときに、信号R1に結合するインバータ
720を介して与えられる信号“0″によりオフし、代
りに、A12に結合する3状態ゲート724が信号R1
によって導通して出力データのbit12を発生する。
ツトを選択的に反転するための回路である。EX−OR
ゲート回路716はR1=“l”(romal命令)で
A12=1のとき、ANDゲート718からの反転信号
“1”により、下位12ビツトデータを反転し、その他
の場合は下位12ビツトデータをそのまま通す0回路7
10内のANDゲート素子を介して入力データのbit
12に結合する状態ゲート722はR1=“1”(ro
mal命令)のときに、信号R1に結合するインバータ
720を介して与えられる信号“0″によりオフし、代
りに、A12に結合する3状態ゲート724が信号R1
によって導通して出力データのbit12を発生する。
シフトマスク回路726は選択的に入力されたデータの
bit15〜bit4を出力データのbit 14〜b
it3にシフトし、出力データのbit2〜bi10を
“0″にマスクするための回路であり、R3=“1″
(r oma3命令)のとき信号R3に結合するインバ
ータ728からの信号“1″によってこの変換を実行す
る。
bit15〜bit4を出力データのbit 14〜b
it3にシフトし、出力データのbit2〜bi10を
“0″にマスクするための回路であり、R3=“1″
(r oma3命令)のとき信号R3に結合するインバ
ータ728からの信号“1″によってこの変換を実行す
る。
したがって、データ変換回路70は、無変換命令rom
ao (R1=R2=R3=“0″)のときは、入力さ
れる16ビツトデータをそのまま通し、特殊波形読み出
し命仝romal (R1=“1″)のときは入力アト
レスの−L位4ビット(bit15〜bft12)がo
ooo”(A12二〇のとき)か“0001″ (AI
2=1のとき)かによって、出力データの下位12ビツ
トをそのまま入力データの下位12ど一/ )とする(
A12=0のとき)か、或は、出力データの下位12ビ
ツトを入力データの下位12ビツトが反転されたデータ
となる(AI2=1)ようにデータ変換を行い、一部読
み出し命令roma2(R2−“1″)のときは出力デ
ータの上位8ビツトがオールゼロで、出力データの下位
8ビツトが入力データの下位8ビウトとなるように(A
15=0のとき)、或は、出力データの上位8ビツトが
オールゼロで、出力データの下位8ビツトが入力データ
の上位8ビツトとなる(A15=1のとき)ようにデー
タ変換を行い、シフト読み出し命令roma3 (R3
=1)+7)ときは出力データの下位3ビツト(bit
O−bit2)がオールゼロで、出力データのbit3
〜bj t 14が入力データのbi t4〜bjt1
5で、出力データのb i t 15 (MSB)が入
力データのbit15(MSB)となるようにデータ変
換を行う、このようにして第28図で述べたデータ変I
e!機能が達成されている。
ao (R1=R2=R3=“0″)のときは、入力さ
れる16ビツトデータをそのまま通し、特殊波形読み出
し命仝romal (R1=“1″)のときは入力アト
レスの−L位4ビット(bit15〜bft12)がo
ooo”(A12二〇のとき)か“0001″ (AI
2=1のとき)かによって、出力データの下位12ビツ
トをそのまま入力データの下位12ど一/ )とする(
A12=0のとき)か、或は、出力データの下位12ビ
ツトを入力データの下位12ビツトが反転されたデータ
となる(AI2=1)ようにデータ変換を行い、一部読
み出し命令roma2(R2−“1″)のときは出力デ
ータの上位8ビツトがオールゼロで、出力データの下位
8ビツトが入力データの下位8ビウトとなるように(A
15=0のとき)、或は、出力データの上位8ビツトが
オールゼロで、出力データの下位8ビツトが入力データ
の上位8ビツトとなる(A15=1のとき)ようにデー
タ変換を行い、シフト読み出し命令roma3 (R3
=1)+7)ときは出力データの下位3ビツト(bit
O−bit2)がオールゼロで、出力データのbit3
〜bj t 14が入力データのbi t4〜bjt1
5で、出力データのb i t 15 (MSB)が入
力データのbit15(MSB)となるようにデータ変
換を行う、このようにして第28図で述べたデータ変I
e!機能が達成されている。
以上により、アドレス変換回路60とデータ変換回路7
0とを設けたことによる利点は明らかである。即ち、C
PUl0.20にとって、データメモリである外部メモ
リ90に対するアクセス命令r oznaを実行するだ
けで、回路60と70の変!i!Ill&能により、所
望の変換が施されたデータをただちに得ることがで5.
従来のように、外部メモリ90のデータを演算用メモリ
である内部RAM106.206にいったん取り込んだ
後に、ALU部108.208のようなALUを介して
変換を実行する必要がなく、処理が高速化される利点が
ある。
0とを設けたことによる利点は明らかである。即ち、C
PUl0.20にとって、データメモリである外部メモ
リ90に対するアクセス命令r oznaを実行するだ
けで、回路60と70の変!i!Ill&能により、所
望の変換が施されたデータをただちに得ることがで5.
従来のように、外部メモリ90のデータを演算用メモリ
である内部RAM106.206にいったん取り込んだ
後に、ALU部108.208のようなALUを介して
変換を実行する必要がなく、処理が高速化される利点が
ある。
なお、第28図に示したアクセス命令r o m aの
リストは例示にすぎず、拡張、変更は容易である。
リストは例示にすぎず、拡張、変更は容易である。
<DACサンプリング(第33、第34図)〉本実施例
においてDAC100はMCPUIOと5CPU20が
生成したデジタル楽音信号をアナログ楽音信号に変換す
るものである。第5図の5−5に示すように、MCPU
IOはタイマインタラプト処理ルーチンのなかで、MC
PUIOと5CPU20が生成したデジタル楽音信号の
サンプルをDAC100にセットする。この処理5−5
の実行間隔は平均としてはタイマインタラプト発生部1
16の発生するインタラプト信号INTの発生間隔に等
しいが、実際の実行間隔はプログラム動作のために変動
する。したがって、処理5−5の実行間隔をD/A変換
の変換周期としてD/A変換を行ったとするとアナログ
楽音信号に大きな歪みが生じてしまう。
においてDAC100はMCPUIOと5CPU20が
生成したデジタル楽音信号をアナログ楽音信号に変換す
るものである。第5図の5−5に示すように、MCPU
IOはタイマインタラプト処理ルーチンのなかで、MC
PUIOと5CPU20が生成したデジタル楽音信号の
サンプルをDAC100にセットする。この処理5−5
の実行間隔は平均としてはタイマインタラプト発生部1
16の発生するインタラプト信号INTの発生間隔に等
しいが、実際の実行間隔はプログラム動作のために変動
する。したがって、処理5−5の実行間隔をD/A変換
の変換周期としてD/A変換を行ったとするとアナログ
楽音信号に大きな歪みが生じてしまう。
第33図に右DAC100Rまたは左DAC100Lの
構成例を示す、第33図の(A)に示す構成では、処理
5−5の実行時に、MCPUIOのオペレージ、ン制御
回路112の制御の下に、内部RAM106内の波形加
算用レジスタが指足され、そこに記憶されている最新の
デジタル楽音データが取り出され、データバスに乗せら
れる。
構成例を示す、第33図の(A)に示す構成では、処理
5−5の実行時に、MCPUIOのオペレージ、ン制御
回路112の制御の下に、内部RAM106内の波形加
算用レジスタが指足され、そこに記憶されている最新の
デジタル楽音データが取り出され、データバスに乗せら
れる。
そして、データバスにデジタル楽音データが乗っている
タイミングでラッチ1004のクロック入力にストロー
ブ用のプログラム制御信号がオペレーション制御回路1
12から与えられデータバス上のデータがセットされ、
ラッチ1004から新しいデジタル楽音データがD/A
変換器1002に入力される。したがって、第34S(
A)に示すように、D/A変換器1002に入力される
デジタル楽音データはプログラム制御のために不安定な
周期で切り換わることになる。D/A変換器1002の
変換周期(サンプリング周期)は非常に安定していなけ
れば、その変換において大きな歪みが発生する。
タイミングでラッチ1004のクロック入力にストロー
ブ用のプログラム制御信号がオペレーション制御回路1
12から与えられデータバス上のデータがセットされ、
ラッチ1004から新しいデジタル楽音データがD/A
変換器1002に入力される。したがって、第34S(
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)の構成における歪み問題が解決される
。
により解決される。すなわち、オペレーション制御回路
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図はこの発明を適用した電子楽器用処理装この全体
構成図 第2図は第1図のMCPUのブロー、り同第3図は第1
図の5CPUのブロック図、第4図はMCPUの実行す
るメインプログラムのフローチャート 第5図はMCPUの実行するインタラプト処理ルーチン
のフローチャート、 第6図は5CPUの実行するプログラムのフローチャー
ト、 第7図は音源処理のフローチャート、 第8図は時間の経過に沿う実施例の動作のプローチ1;
−ト、 第9図はチャンネル音源処理のフローチャート、 第10図は波形データを示す図、 第11図は音源処理用RAMテーブルを示す図、 第12図は5CPtJ動作開始終了機能に関係する回路
のブロック図、 第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図は第29図の反転回路の回路図、第31図は第
1図のデータ変換回路のブロック図、 第32図はデータ変換回路の回路図、 第33図は第1図のDACのサンプリング周期が不安定
になる構成とサンプリング周期を安定化した構成とを比
較して示す図、 第34図はDACのサンプリング周期が不安定な場合の
タイムチャートと安定な場合のタイムチャートとを比較
して示す図である。 10・・・・・・MCPU (CPU)116・・・
・・・インタラプト発生部(インタラプト発生手段) 114・・・・・・ROMアドレス制御部(CPUモー
ド制御手段) 102・・・・・・制御用ROM 112・・・・・・オペレーション制御回路150・・
・・・・マスク解除特機部 102.112.150・・・・・・(インタラプトマ
スク手段)
構成図 第2図は第1図のMCPUのブロー、り同第3図は第1
図の5CPUのブロック図、第4図はMCPUの実行す
るメインプログラムのフローチャート 第5図はMCPUの実行するインタラプト処理ルーチン
のフローチャート、 第6図は5CPUの実行するプログラムのフローチャー
ト、 第7図は音源処理のフローチャート、 第8図は時間の経過に沿う実施例の動作のプローチ1;
−ト、 第9図はチャンネル音源処理のフローチャート、 第10図は波形データを示す図、 第11図は音源処理用RAMテーブルを示す図、 第12図は5CPtJ動作開始終了機能に関係する回路
のブロック図、 第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図は第29図の反転回路の回路図、第31図は第
1図のデータ変換回路のブロック図、 第32図はデータ変換回路の回路図、 第33図は第1図のDACのサンプリング周期が不安定
になる構成とサンプリング周期を安定化した構成とを比
較して示す図、 第34図はDACのサンプリング周期が不安定な場合の
タイムチャートと安定な場合のタイムチャートとを比較
して示す図である。 10・・・・・・MCPU (CPU)116・・・
・・・インタラプト発生部(インタラプト発生手段) 114・・・・・・ROMアドレス制御部(CPUモー
ド制御手段) 102・・・・・・制御用ROM 112・・・・・・オペレーション制御回路150・・
・・・・マスク解除特機部 102.112.150・・・・・・(インタラプトマ
スク手段)
Claims (1)
- 【特許請求の範囲】 メインプログラムを実行するメインプログラムモードと
インタラプト処理ルーチンを実行するインタラプトモー
ドとを有するCPUと、 インタラプト信号を発生するインタラプト発生手段と、 前記インタラプト信号に応答して前記CPUで実行中の
メインプログラムを中断して前記CPUのモードを前記
インタラプトモードに切替制御するCPUモード制御手
段と、 を有するデジタルマイクロコンピュータにおいて、 前記CPUの前記メインプログラムモードにおいて複数
のデータをインタラプト処理用メモリに書き込み、前記
インタラプトモードにおいてこのインタラプト処理用メ
モリに記憶される前記複数のデータを参照する手段と、 前記メインプログラムモードにおいて前記手段によりイ
ンタラプト処理用メモリに対する前記複数のデータの書
込処理が実行されている間、前記インタラプト信号をマ
スクすることにより前記CPUモード制御手段の動作を
禁止して前記書込処理の中断を禁止するインタラプトマ
スク手段と、を有することを特徴とするデジタルマイク
ロコンピュータ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2170163A JPH0460722A (ja) | 1990-06-29 | 1990-06-29 | デジタルマイクロコンピュータ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2170163A JPH0460722A (ja) | 1990-06-29 | 1990-06-29 | デジタルマイクロコンピュータ |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0460722A true JPH0460722A (ja) | 1992-02-26 |
Family
ID=15899853
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2170163A Pending JPH0460722A (ja) | 1990-06-29 | 1990-06-29 | デジタルマイクロコンピュータ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0460722A (ja) |
Cited By (1)
| 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 |
-
1990
- 1990-06-29 JP JP2170163A patent/JPH0460722A/ja active Pending
Cited By (1)
| 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 | |
| US5584034A (en) | Apparatus for executing respective portions of a process by main and sub CPUS | |
| JPH07181969A (ja) | コードセグメント置換装置及びそれを用いたリアルタイム信号処理システム並びにオーディオ処理システム | |
| US6477177B1 (en) | Multiple device access to serial data stream | |
| JPS62115542A (ja) | 情報処理装置 | |
| JP2797137B2 (ja) | 電子楽器用処理装置 | |
| JPH0460722A (ja) | デジタルマイクロコンピュータ | |
| US4644841A (en) | Electronic musical instrument | |
| US6314485B1 (en) | Automatic status register | |
| JPH0460744A (ja) | デジタルマイクロコンピュータ | |
| EP0376342B1 (en) | Data processing apparatus for electronic musical instruments | |
| JPH0460746A (ja) | デジタルマイクロコンピュータ | |
| JPH0460723A (ja) | デジタルマイクロコンピュータ | |
| JPH0460724A (ja) | デジタルマイクロコンピュータ | |
| JPH0460725A (ja) | デジタルマイクロコンピュータ | |
| JPH0460749A (ja) | デジタルマイクロコンピュータ | |
| US6122697A (en) | System for extending the width of a data bus | |
| JP2797138B2 (ja) | 電子楽器用処理装置 | |
| JP2576613B2 (ja) | 処理装置 | |
| JP2595992B2 (ja) | 電子楽器 | |
| JP3888236B2 (ja) | プログラムカウンタ回路 | |
| KR100324597B1 (ko) | 비트 스트림 프로세서 | |
| JP2521535B2 (ja) | デ―タ転送回路 | |
| JPH03204695A (ja) | 楽音合成装置 |