JP2901143B2 - 楽音生成装置 - Google Patents

楽音生成装置

Info

Publication number
JP2901143B2
JP2901143B2 JP7353236A JP35323695A JP2901143B2 JP 2901143 B2 JP2901143 B2 JP 2901143B2 JP 7353236 A JP7353236 A JP 7353236A JP 35323695 A JP35323695 A JP 35323695A JP 2901143 B2 JP2901143 B2 JP 2901143B2
Authority
JP
Japan
Prior art keywords
data
cpu
read
central processing
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP7353236A
Other languages
English (en)
Other versions
JPH09185371A (ja
Inventor
登喜夫 白川
靜彦 川合
政樹 工藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP7353236A priority Critical patent/JP2901143B2/ja
Priority to US08/773,200 priority patent/US5804749A/en
Publication of JPH09185371A publication Critical patent/JPH09185371A/ja
Application granted granted Critical
Publication of JP2901143B2 publication Critical patent/JP2901143B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、波形メモリから
読み出した波形データに基づいて楽音を生成する楽音生
成装置に関し、特に音源部とCPUとを1チップ上に構
成した楽音生成装置に関する。
【0002】
【従来の技術】従来より、波形メモリ読み出し方式の音
源部とそれを制御する中央処理装置(CPU)とを1チ
ップ化した装置(LSI)が知られている。このような
装置では、チップの外部にメモリを接続し、音源部とC
PUとでその外部メモリを共有するようにしている。外
部メモリには、音源部が読み出すべき波形データとCP
Uが読み出すべき制御プログラムが記憶されている。
【0003】このような装置では、外部メモリが共有さ
れているため(すなわち、同じアドレスバスおよびデー
タバスを共用して、音源部からの外部メモリのアクセス
とCPUからの外部メモリのアクセスとを行なうた
め)、外部メモリをCPUまたは音源部の何れに接続す
るかを切り替える必要がある。切り替えの方式として、
例えば所定のレジスタに所定の値を設定することにより
外部メモリをCPUと音源部との何れに接続するかを静
的に切り替える方式や、音源部の状況に応じて外部メモ
リをCPUと音源部の何れに接続するかを切り替える方
式(例えば、通常はCPU優先で外部メモリをアクセス
し、音源部が波形データを必要とするとき音源部優先で
外部メモリをアクセスするように切り替える)などがあ
る。また、CPUと音源部の外部メモリアクセスを固定
のタイムスロットに割り当て、CPUと音源部とが交互
に外部メモリをアクセスするようにしたチップも提案さ
れている。
【0004】
【発明が解決しようとする課題】上述したような音源部
とCPUとを1チップ化した装置では、音源部による外
部メモリのアクセス(波形データの読み出し)によって
CPUが外部メモリをアクセスしたい場合にウエイト
(WAIT)がかかってしまい、CPUの動作が遅くな
ってしまうという問題があった。
【0005】この発明は、音源部とCPUとを1チップ
化した装置において、音源部による外部メモリのアクセ
スによってCPUの動作が遅くなることを極力防止する
ことができる楽音生成装置を提供することを目的とす
る。
【0006】
【課題を解決するための手段】この目的を達成するた
め、請求項1に係る発明は、中央処理装置と音源装置と
を1チップ上に形成するとともに、前記音源装置が読み
出す波形データと前記中央処理装置が読み出すデータと
を記憶した記憶手段が接続され、前記記憶手段の1アド
レス中に前記中央処理装置の単位アクセスデータが複数
含まれるような楽音生成装置であって、所定時間のタイ
ムスロットごとの処理によって所定回数の前記中央処理
装置からの前記記憶手段のアクセスと所定回数の前記音
源装置からの前記記憶手段のアクセスとを繰り返すもの
において、前記音源装置が前記記憶手段をアクセスする
タイムスロットの前のタイムスロットで前記中央処理装
置が読み出したデータを保持しておく保持手段と、前記
音源装置が前記記憶手段をアクセスするタイムスロット
において、前記保持手段により前記中央処理装置の読み
出したいデータが保持されているかどうかを判定する判
定手段と、前記判定手段で保持されていると判定された
場合は、該保持されているデータから前記中央処理装置
の読み出したいデータを取り出して前記中央処理装置に
供給する供給手段とを備えたことを特徴とする。
【0007】「所定時間のタイムスロットごとの処理に
よって所定回数の前記中央処理装置からの前記記憶手段
のアクセスと所定回数の前記音源装置からの前記記憶手
段のアクセスとを繰り返す」は、例えば、「中央処理装
置が3回アクセス→音源装置が1回アクセス」というよ
うな場合でもよいし、「中央処理装置が3回アクセス→
音源装置が1回アクセス→中央処理装置が2回アクセス
→音源装置が1回アクセス」というような変則的な場合
も含む。ただし、中央処理装置は、音源装置が記憶手段
をアクセスしているタイムスロットでも記憶手段に対す
るアクセス要求を発行する。本発明は、そのような場
合、すなわち音源装置が記憶手段をアクセスしているタ
イムスロットにおいて、中央処理装置からのアクセス要
求に対して、保持してあったデータを返す(いわゆる、
キャッシングあるいはプリフェッチ)ようにすることを
特徴とするものである。また、保持手段における「前記
音源装置が前記記憶手段をアクセスするタイムスロット
の前のタイムスロットで」の「前の」は、必ずしも直前
のタイムスロットでなくてもよい。
【0008】また、請求項2に係る発明は、中央処理装
置と音源装置とを1チップ上に形成するとともに、前記
音源装置が読み出す波形データと前記中央処理装置が読
み出すデータとを記憶した記憶手段が接続され、前記記
憶手段の1アドレス中に前記中央処理装置の単位アクセ
スデータが複数含まれるような楽音生成装置であって、
所定時間のタイムスロットごとの処理によって所定回数
の前記中央処理装置からの前記記憶手段のアクセスと所
定回数の前記音源装置からの前記記憶手段のアクセスと
を繰り返すものにおいて、前記中央処理装置からのアク
セス要求に応じて前記記憶手段をアクセスするタイムス
ロットで、前記中央処理装置が読み出したデータから取
り出したデータを前記中央処理装置に供給するととも
に、該読み出したデータを保持しておく第1の保持手段
と、前記第1の保持手段に保持されていたデータから取
り出したデータを前記中央処理装置からのアクセス要求
に応じて前記中央処理装置に供給するタイムスロット
で、該保持されていたデータの次のアドレスのデータを
前記記憶手段から読み出して保持しておく第2の保持手
段と、前記中央処理装置からアクセス要求が発行された
タイムスロットにおいて、前記第1の保持手段または第
2の保持手段の何れかに、前記中央処理装置の今回読み
出したいデータが保持されているかどうかを判定する判
定手段と、前記判定手段で保持されていると判定された
場合は、前記第1の保持手段または第2の保持手段に保
持されているデータから前記中央処理装置の読み出した
いデータを取り出して前記中央処理装置に供給する供給
手段とを備えたことを特徴とする。
【0009】上記構成によれば、中央処理装置から連続
したアドレスのデータをアクセスする際に、一旦読み出
したデータを保持しておいて後のスロットで要求された
場合に保持しておいたデータから取り出して中央処理装
置に返すようにしているので、音源部による外部メモリ
のアクセスによってCPUの外部メモリアクセスが実質
的に待たされるケースが減少する。特に、中央処理装置
のプログラムのフェッチなどにおいて効果がある。
【0010】
【発明の実施の形態】以下、図面を用いてこの発明の実
施の形態を説明する。
【0011】図1は、この発明に係る音源チップを用い
た電子楽器のブロック構成を示す。この電子楽器は、音
源チップ1、外部メモリ2、鍵盤3、パネル4、バッフ
ァ5、MIDI端子6、電源部7、水晶8、切り替え部
(SX)9、およびサウンドシステム10を備えてい
る。
【0012】音源チップ1は、波形メモリ読み出し方式
の音源部とその音源部を制御するCPUとを1チップ化
したものである。外部メモリ2は、ROM(リードオン
リメモリ)またはRAM(ランダムアクセスメモリ)か
らなり、音源部(TG)104が読み出す波形データや
CPU102が読み出して実行する制御プログラムなど
を格納する。鍵盤3は、演奏者が演奏操作するための複
数の鍵を備えた鍵盤である。パネル4は、電子楽器の各
種の設定を行なうためのスイッチや表示器などを含んで
いる。MIDI(Musical Instrument Digital Interfa
ce)端子6は、外部のMIDI機器とのMIDI方式に
よる入出力を行なう接続端子であり、バッファ5は電気
的なインターフェースをとるバッファである。電源7
は、音源チップ1に3.3V(ボルト)または5.0Vの動作
電圧を供給する電源部である。水晶8はマスタークロッ
クの周波数を規定する水晶であり、ここでは、18MH
zから32MHzまでの範囲の所定周波数の水晶を、設
計しようとする電子楽器の性能に応じて、セットする。
【0013】切り替え部(SX)9は、この音源チップ
1のCPU102の動作クロックと音源部104の動作
クロックとの比および外部メモリ2のアクセスをCPU
102に許す区間と音源部104に許す区間との区間長
さの比を切り替えるための切り替え部である。この切り
替え部(SX)9の切り替え状態に応じて音源チップ1
の外部メモリアクセス動作がどのように変化するかにつ
いては後述するが、切り替え部(SX)9は所定電圧を
印加する(「1」を表す)か接地する(「0」を表す)
かを切り替えるものであるので、以下では「SX=1」
または「SX=0」で切り替え部(SX)9の切り替え
状態を表現するものとする。サウンドシステム10は、
音源チップ1(詳しくはDAC105)から出力される
楽音信号を放音するためのサウンドシステムである。
【0014】音源チップ1は、パラレルポート101、
CPU102、外部メモリ制御回路(MC)103、音
源部(TG)104、デジタルアナログ変換器(DA
C)105、MIDIインターフェイス106、タイマ
107、RAM108、クロック発生器109、および
バスライン110を備えている。
【0015】パラレルポート101は、鍵盤3およびパ
ネル4をバスライン110に接続するインターフェース
である。CPU102は、パラレルポート101を介し
て鍵盤3およびパネル4の操作状況を検出し、あるいは
パネル4の表示装置に表示データを送出する。さらにC
PU102は、この電子楽器全体の動作を制御する。例
えば、ユーザによりパネル4において音色の選択操作が
なされたとき、CPU102は、選択された音色の音色
制御データを必要に応じて外部メモリ2から読み出し、
現在選択されている音色を示す内部RAM108上の音
色指定データ領域に設定する。また、鍵盤3の鍵の操作
を検出したとき、あるいはMIDIのノートオンイベン
トを受信したとき、CPU102は、それらに応じて該
音色指定データ領域に設定されている音色のデータとと
もにノートナンバやノートオンを音源部104に送出し
て、発音を指示する。さらに、自動演奏や自動伴奏が指
示されていたとき、CPU102は、必要に応じて自動
演奏データや自動伴奏データを外部メモリ2から読み出
し、音源部104に発音を指示して自動演奏や自動伴奏
を実行する。CPU102は、以上のような処理を、外
部メモリ2からプログラムを順次読み出して実行するこ
とにより実現する。
【0016】音源部(TG)104は、波形メモリ読み
出し方式の音源であり、CPU102からの指示に基づ
いて外部メモリ2から波形データを読み出し、楽音信号
を生成してDAC105に送出する。音源部104は、
詳しくは、外部メモリ2から波形データ(波形サンプ
ル)を読み出すためのアドレスを発生するアドレス発生
器、読み出した波形データを用いてサンプル間の補間演
算を行なう補間回路、ローパスフィルタなどのデジタル
フィルタ、エンベロープ付与回路、ミキサ、およびエフ
ェクタなどを備えたものである。DAC105は、音源
部104から出力されるデジタル楽音信号をアナログ信
号に変換しサウンドシステム10に送出する。
【0017】外部メモリ制御回路(MC)103は、外
部メモリ2をCPU102または音源部104の何れに
接続するかを制御するためのコントローラである。外部
メモリ2は16ビットデータを単位として読み書きされ
るメモリであるので、外部メモリ制御回路(MC)10
3と外部メモリ2とを接続するアドレスおよびデータ線
111のうちデータ線は16ビット長である。外部メモ
リ2に格納されている波形データは16ビットサンプル
からなり音源部104はそのような波形データを読み出
すので、外部メモリ制御回路(MC)103と音源部1
04とを接続するアドレスおよびデータ線112のうち
データ線は16ビット長である。CPU102は8ビッ
トマイクロプロセッサであるので、CPUバス110の
うちデータバス(外部メモリ制御回路(MC)103と
の接続部分113も含む)は8ビット長である。外部メ
モリ制御回路(MC)103の詳細は図2で後述する。
【0018】MIDIインターフェイス106は、外部
のMIDI機器との間のインターフェイスである。タイ
マ107は、CPU102にタイマ割り込みをかけるた
めのタイマである。このタイマ107は、自動演奏や自
動伴奏のテンポクロックの発生や、音色や音量などの楽
音特性の時間変化の制御に使用される。RAM108
は、音源チップ1内部のメモリであり、CPU102の
ワークエリアなどに用いる。CPU102は、外部メモ
リ2および内部メモリ108のすべての領域にアクセス
可能である。
【0019】クロック発生器109は、水晶8の周波数
に応じたマスタークロックを発生し、適宜分周して、音
源チップ1内部の各部に動作クロックを供給する。φT
Gは音源部104に供給する動作クロック、φCPUは
CPU102に供給する動作クロックである。音源部1
04は、φTGを基準とするタイムスロットで(具体的
にはφTGの1周期を1タイムスロットとする)時分割
動作を行ない、複数チャンネル分の楽音を生成する。音
源部104の内部の各回路ブロック(図示せず)は、8
つのタイムスロットで1チャンネル分の動作を行なう。
直線補間を行なうため、発音中のチャンネルでは、1チ
ャンネル当たり外部メモリ2を2回アクセスする必要が
ある。そこで、音源部104は、4つのタイムスロット
で1回の割合で外部メモリ2をアクセスして、16ビッ
ト波形データを1つ読み出すことができるようになって
いる。CPU102は、φCPUを動作クロックとして
動作する。CPU102は、1クロック当たり最大1回
のアクセス(外部メモリ2、パラレルポート101、音
源部104、内部RAM108などに対するアクセス)
を要求し、そこでWAIT信号が発生しない場合は、同
1クロックの時間内に1回の同アクセスを実行する。ク
ロック発生器109が出力するφMCは、外部メモリ2
をCPU102または音源部104の何れに接続するか
を決定するための基準信号である。φMIDIはMID
I入出力のための動作クロックを示す。
【0020】特に、この音源チップ1では、切り替え部
(SX)9の切り替え状況に応じて、φTGとφCPU
の周波数の比を変化させることができる。具体的には、
SX=0のときは(φTGの周波数):(φCPUの周
波数)=1:1とし、SX=1のときは(φTGの周波
数):(φCPUの周波数)=2:1としている。ま
た、この音源チップ1では、切り替え部(SX)9の切
り替え状況に応じて、外部メモリ2がCPU102に接
続される時間区間長さ(以下、CPUアクセス時間と呼
ぶ)と外部メモリ2が音源部104に接続される時間区
間長さ(以下、音源アクセス時間と呼ぶ)との比を変化
させることができる。具体的には、SX=0のときは
(CPUアクセス時間):(音源アクセス時間)=3:
1とし、SX=1のときは(CPUアクセス時間):
(音源アクセス時間)=1:1としている。
【0021】CPUの処理性能を高くしたい場合には、
電源電圧を高く、かつ高い周波数の水晶を接続しマスタ
ークロックの周波数を高くして、SX=0とする。マス
タークロックの周波数が高いので、(φTGの周波
数):(φCPUの周波数)=1:1としたφTGを基
準とすれば、(CPUアクセス時間):(音源アクセス
時間)=3:1として相対的に音源アクセス時間を短く
しても、十分な品質の楽音生成ができる程度のサンプリ
ング周波数を確保できる。一方、CPUの処理性能が低
くてよい場合には、電源電圧を低く、かつ低い周波数の
水晶を接続しマスタークロックの周波数を低くして、S
X=1とする。マスタークロックの周波数を低くすると
それに応じてφTGの周波数も低くなり楽音の品質が低
下してしまうので、SX=1としてφTGの周波数をφ
CPUの周波数の2倍とし、充分な品質の楽音生成がで
きる程度のサンプリング周波数を確保する。また、マス
タークロックの周波数を低くするとそれに応じて一定時
間内で波形データをアクセスできる回数が減っていくこ
とになり楽音の品質低下が起こるが、ここではSX=1
として相対的に音源アクセス時間を増やし、十分な品質
の楽音生成ができる程度のサンプリング周波数を確保し
ている。
【0022】上述したように、外部メモリ2は16ビッ
トのデータバス幅を有しており、読み出しや書き込みは
16ビットデータを単位として行なわれる。すなわち、
外部メモリ2をアクセスする際に入力されるアドレスは
16ビット単位のデータを特定するアドレスである。音
源部104は16ビット単位の波形サンプルデータを1
回のアクセスで読み出す。音源部104から外部メモリ
2に出力するアドレスは16ビット単位の波形データを
特定するアドレスである。一方、CPU102の処理単
位は8ビットであり、CPU102からの外部メモリ2
のアクセスはプログラムのフェッチも含めて8ビットの
データ幅を単位として行なわれる。CPU102から外
部メモリアクセスのために出力するアドレスは8ビット
単位のデータを特定するアドレスであるが、そのアドレ
スは、最下位ビット以外の部分(以下、「上位アドレ
ス」と呼ぶ)が外部メモリ2内の16ビットデータを特
定するアドレスで、最下位ビットがその16ビットデー
タの上位か下位か(0のとき上位、1のとき下位)を示
すアドレスになっている。したがって、CPU102か
ら連続するアドレスの8ビットデータを順次アクセスす
る場合、外部メモリ2では、16ビットデータの上位8
ビット、その16ビットデータの下位8ビット、次アド
レスの16ビットデータの上位8ビット、その16ビッ
トデータの下位8ビット、…、というように、同じ16
ビットデータ中では上位→下位の順に8ビットデータが
読み出される。
【0023】CPU102が任意の8ビットデータを外
部メモリ2から読み出したとき、実際には、その8ビッ
トデータを上位または下位に含む16ビットデータが外
部メモリ2から読み出されていることになる。そこでこ
の音源チップ1では、CPU102からの要求に応じて
読み出すべき8ビットデータを含む16ビットデータを
外部メモリ2から読み出し、そのうち要求された8ビッ
トデータをCPU102に返すとともに、その際、外部
メモリ制御回路(MC)103において当該読み出した
16ビットデータを保持しておき、次スロットでCPU
102が当該16ビットデータ中の何れかの8ビットデ
ータを要求したときに、保持してあるデータから読み出
して返す(いわゆるキャッシングを行なう)ようにして
いる。保持してあったデータを返すだけであるので実際
に外部メモリ2をアクセスする必要はなく、当該スロッ
トで音源部4からの外部メモリ2のアクセスを行なえる
ことになる。これにより、音源部104から外部メモリ
2をアクセスしているタイムスロットにおいても、所定
の条件を満たす場合には、CPU102が所望のデータ
を読み出せるようにしている。このようなキャッシング
機能は、特に命令フェッチなどで連続するアドレスのデ
ータを読み出す場合に有効である。
【0024】図2は、そのようなCPUアクセスにおけ
るキャッシングを行なうための図1の外部メモリ制御回
路(MC)103のブロック構成を示す。なお、点線で
囲んだ部分220は後述する変形例において有効な部分
であり、いま説明している外部メモリ制御回路(MC)
103には存在しないものとする。すなわち、CPUバ
ス110のうちアドレス線231(最下位ビットは除
く)は直接セレクタ201の入力232に接続されてい
るものとする。
【0025】図2において、外部メモリ制御回路(M
C)103は、セレクタ201,202、アクセス制御
回路203、ラッチ204、比較器205、アドレスデ
コーダ206、キャッシュ制御回路207、ラッチ20
8、セレクタ209、および書き込み制御回路210を
備えている。
【0026】CPUバス110からのアドレスの最下位
ビットはキャッシュ制御回路207に入力する。CPU
バス110からの上位アドレスは、セレクタ201の一
方の入力(アドレス線232)、アドレスデコーダ20
6、比較器205の一方の入力、およびラッチ204に
入力する。ラッチ204の出力は、もう一方の入力とし
て比較器205に入力する。アドレスデコーダ206の
デコード結果はキャッシュ制御回路207に入力する。
比較器205の比較結果はキャッシュ制御回路207に
入力する。キャッシュ制御回路207は、比較器205
およびアドレスデコーダ206からの出力、並びにCP
Uアドレスの最下位ビットに基づいて、セレクタ209
を切り替える。
【0027】セレクタ201の出力端子は外部メモリ2
のアドレス線236に接続されている。セレクタ201
の一方の入力は上述したようにCPU102からの上位
アドレスであり、もう一方の入力には音源部104のア
ドレス線233が接続されている。セレクタ202に
は、外部メモリ2のデータ線(16ビット)237、並
びに、CPUバス110側のデータ線(16ビット)2
34および音源部104のデータ線(16ビット)23
5が接続されている。外部メモリ2に対するデータの読
み出しおよび書き込み(書き込みは外部メモリ2がRA
Mの場合のみ)を行なえるようにするため、セレクタ2
02は双方向にデータを流すことができるセレクタにな
っている(実際にはデータ読み出しの際に使うセレクタ
とデータ書き込みの際に使うセレクタとが設けられてい
るが、ここでは1つのセレクタ202で代表させて表す
ものとする)。アクセス制御回路203は、クロック発
生器109から出力されるφMCに応じて、さらに音源
部104から出力される空きチャンネル情報に応じて、
セレクタ201,202を切り替える。
【0028】CPUバス110のデータ線(8ビット)
は、セレクタ209の出力側端子、および書き込み制御
回路210に接続されている。セレクタ209の入力側
には、次の4つのデータ線241〜244が接続されて
いる。241は(セレクタ202を介して)外部メモリ
2のデータ線237の上位8ビットにつながるデータ
線、242は(セレクタ202を介して)外部メモリ2
のデータ線237の下位8ビットにつながるデータ線、
243はラッチ208の出力側の上位8ビットにつなが
るデータ線、244はラッチ208の出力側の下位8ビ
ットにつながるデータ線である。ラッチ208の入力側
は、(セレクタ202を介して)外部メモリ2のデータ
線237(16ビット)に接続されている。
【0029】書き込み制御回路210からの書き込みデ
ータを送出するデータ線は、セレクタ202への入力デ
ータ線234に接続されている。アクセス制御回路20
3、キャッシュ制御回路207、および書き込み制御回
路210は、制御信号を互いに授受するための制御信号
線251で接続されている。
【0030】図2の外部メモリ制御回路(MC)103
の動作を説明する。外部メモリ2をCPU側に接続する
か音源側に接続するかは、アクセス制御回路203が決
定する。具体的には、アクセス制御回路203は、φM
C=1かつ音源部104からの空きチャンネル情報が出
力されていないとき、当該タイムスロットで当該チャン
ネルに関し波形データを読み出すものとし、外部メモリ
2を音源側に接続する。それ以外は、外部メモリ2をC
PU側に接続する。空きチャンネル情報とは、当該スロ
ットで処理するチャンネルが空き状態(発音していない
状態、または発音状態だが楽音が充分に減衰した状態)
か否かを示す情報である。
【0031】外部メモリ2を音源側に接続する場合、ア
クセス制御回路203は、外部メモリ2のアドレス線2
36と音源部104のアドレス線233とを接続し、外
部メモリ2のデータ線237と音源部104のデータ線
235とを接続するように、セレクタ201および20
2を切り替える。これにより、音源部104から出力さ
れたアドレスがセレクタ201を介して外部メモリ2に
入力し、当該アドレスのデータ(波形サンプル)が外部
メモリ2から読み出され、セレクタ202を介して音源
部104に渡される。
【0032】外部メモリ2をCPU側に接続する場合、
アクセス制御回路203は、外部メモリ2のアドレス線
236とCPUバス110側のアドレス線232とを接
続し、外部メモリ2のデータ線237とCPUバス11
0側のデータ線234とを接続するように、セレクタ2
01および202を切り替える。
【0033】アクセス制御回路203の制御の元で外部
メモリ2がCPU側または音源側の何れかに接続される
こととは独立に、CPU102はメモリアクセス要求
(始めは読み出し要求として説明する)を発行する。こ
のCPU102からのアクセス要求で出力されるアドレ
スの最下位ビットはキャッシュ制御回路207に入力
し、上位アドレスはアドレスデコーダ206に入力す
る。アドレスデコーダ206は、CPU102からの上
位アドレスをデコードし、デコード結果をキャッシュ制
御回路207に出力する。キャッシュ制御回路207
は、アドレスデコーダ206からの出力に基づいて、C
PU102がアクセスする領域が外部メモリ2であるか
内部メモリ108であるかを判別することができる。C
PU102が外部メモリ2以外をアクセスする場合は、
アドレスデコーダ206でそのことが検出され、当然に
外部メモリ制御回路(MC)103ではCPUバス11
0と外部メモリ2とを接続する動作は行なわない。以下
では、CPU102からのアクセス要求でアクセスする
領域が外部メモリ2であることが、アドレスデコーダ2
06からの出力に基づいて、確認されていることを前提
として説明する。
【0034】CPU102からの上位アドレスはラッチ
204にラッチされる。同時に、ラッチ204はラッチ
してあった前回のCPUアクセスの上位アドレスを比較
器205に出力する。比較器205は、ラッチ204に
ラッチされている前回のCPUアクセスの上位アドレス
と今回のCPUアクセスの上位アドレスとを比較し、比
較結果をキャッシュ制御回路207に出力する。これに
より、キャッシュ制御回路207は、CPU102から
アクセス要求が発行されるごとに、前回のアクセス時の
上位アドレス(前回の読み出しアドレス)と今回のアク
セス時の上位アドレス(今回の読み出しアドレス)とが
一致しているか否かを判別できる。
【0035】また、キャッシュ制御回路207は、CP
U102からのアドレスの最下位ビットに基づいて、い
まアクセスしようとしている8ビットデータが外部メモ
リ2から読み出す16ビットデータのうちの上位か下位
かを判別できる(アドレス最下位ビットが0のときは上
位、1のときは下位)。
【0036】さらに、キャッシュ制御回路207は、ア
クセス制御回路203からの制御信号により、現タイム
スロットが外部メモリ2をCPU側と音源側の何れに接
続するタイムスロットであるかを知る。
【0037】以上のように、CPU102から外部メモ
リ2へのアクセス要求が発行された場合、キャッシュ制
御回路207は以下の〜を認識できる。 現タイムスロットが外部メモリ2をCPU側と音源側
の何れに接続するタイムスロットであるか 前回のアクセス時の上位アドレス(前回の読み出しア
ドレス)と今回のアクセス時の上位アドレス(今回の読
み出しアドレス)とが一致しているか否か 所望の8ビットデータは、外部メモリ2から読み出す
16ビットデータのうちの上位か下位か
【0038】上記〜に示した種々のケースにおい
て、外部メモリ制御回路(MC)103、特にキャッシ
ュ制御回路207は、以下の(1)および(2)のよう
に動作する。
【0039】(1)現タイムスロットが、外部メモリ2
とCPU側とを接続するタイムスロットであるときは、
次の(1−1)または(1−2)とする。
【0040】(1−1)前回アクセス時の上位アドレス
と今回アクセス時の上位アドレスとが異なる場合は、外
部メモリ2からデータ読み出しを行なって、要求された
データをCPU102に返す。現タイムスロットでは、
外部メモリ2がCPU側に接続されているから、CPU
バス110からの上位アドレスはセレクタ201を介し
て外部メモリ2に入力し、そのアドレスの16ビットデ
ータが読み出される。読み出された16ビットデータの
上位8ビットはデータ線241を介して、下位8ビット
はデータ線242を介して、それぞれセレクタ209に
入力する。キャッシュ制御回路207は、CPU102
からのアドレスの最下位ビットが0のときは、セレクタ
209の入力241を選択出力して、外部メモリ2から
読み出した16ビットデータのうち上位8ビットをCP
Uバス110に流す。また、アドレス最下位ビットが1
のときは、セレクタ209の入力242を選択出力し
て、外部メモリ2から読み出した16ビットデータのう
ち下位8ビットをCPUバス110に流す。外部メモリ
2から読み出した16ビットデータは、ラッチ208に
ラッチ(キャッシング)しておく。
【0041】(1−2)前回アクセス時の上位アドレス
と今回アクセス時の上位アドレスとが一致している場合
は、前回外部メモリ2から読み出した16ビットデータ
がラッチ208にラッチされており、今回はそのラッチ
208から上位または下位の8ビットをCPU102に
渡せばよく、外部メモリ2をアクセスする必要はない。
そこで、キャッシュ制御回路207は、CPU102か
らのアドレスの最下位ビットに基づいて、ラッチ208
にラッチされている16ビットデータのうち上位または
下位の8ビットデータを選択出力する。すなわち、CP
U102からのアドレスの最下位ビットが0のときは、
セレクタ209の入力243のデータ(ラッチ208の
上位の8ビットデータ)をCPUバス110のデータバ
スに流してCPU102に渡し、CPU102からのア
ドレスの最下位ビットが1のときは、セレクタ209の
入力244のデータ(ラッチ208の下位の8ビットデ
ータ)をCPUバス110のデータバスに流してCPU
102に渡す。なお、この(1−2)は現タイムスロッ
トが外部メモリ2とCPU側とを接続するタイムスロッ
トである場合であるから、ラッチ208から読まずに、
外部メモリ2から(1−1)と同様にして所望のデータ
を読み出してもよい。
【0042】(2)現タイムスロットが、外部メモリ2
と音源側とを接続するタイムスロットであるときは、次
の(2−1)または(2−2)とする。
【0043】(2−1)前回アクセス時の上位アドレス
と今回アクセス時の上位アドレスとが異なる場合、キャ
ッシュ制御回路207は、CPU102に対しWAIT
信号を送ってCPU102からの外部メモリアクセスを
待たせる。
【0044】(2−2)前回アクセス時の上位アドレス
と今回アクセス時の上位アドレスとが一致している場合
は、前回外部メモリ2から読み出した16ビットデータ
がラッチ208にラッチされているということである。
そこで、キャッシュ制御回路207は、上記(1−2)
と同様にして、CPU102からのアドレスの最下位ビ
ットに基づいて、ラッチ208にラッチされている16
ビットデータのうち上位または下位の8ビットデータを
CPU102に渡す。この(2−2)は、現タイムスロ
ットが外部メモリ2と音源側とを接続するタイムスロッ
トである場合であるから、音源部104が外部メモリ2
から波形サンプルを読み出す動作は並行して実行されて
おり、CPU側から見ると恰も外部メモリ2をアクセス
したかのように所望のデータが受け取れることになる。
【0045】以上(1)(2)ではCPU102からの
外部メモリアクセス要求が読み出し要求である場合を説
明したが、外部メモリ2がRAMのときは書き込みもで
きるように書き込み制御回路210が設けられている。
CPU102から外部メモリ2に対する書き込み要求が
発行されたとき、現タイムスロットが外部メモリ2をC
PU側に接続するタイムスロットであるなら、書き込み
制御回路210は、CPUバス110からの書き込みデ
ータを外部メモリ2に書き込む。CPU102から外部
メモリ2に対する書き込み要求が発行されたとき、現タ
イムスロットが外部メモリ2を音源側に接続するタイム
スロットであるなら、書き込み制御回路210は、CP
U102にWAIT信号を送って書き込みを待たせる。
【0046】図3は、電源電圧が5.0VかつSX=0か
つマスタークロックの周波数が28MHzの場合のCP
U102および音源104からの外部メモリ2へのアク
セスタイミングを示す波形図である。図3を参照して、
SX=0の場合について説明する。301はマスターク
ロックの波形を示す。また、302,303は、それぞ
れ、φTGおよびφCPUの波形を示す。SX=0のと
きはマスタークロックを1/4分周したクロックがφC
PUおよびφTGとして出力される。304は、φTG
を基準とするタイムスロットを示す。タイムスロット3
04の各スロット内に記載した000〜255の数字は
タイムスロットの番号を示す。音源部104は、このタ
イムスロット304にしたがって、32チャンネル(第
0〜第31チャンネル)分の楽音生成動作を時分割で実
行する。音源部104は、8つのタイムスロットで1チ
ャンネル分の楽音生成を行なうので、000番〜007
番のタイムスロットで第0チャンネルの処理を行ない、
008番〜015番のタイムスロットで第1チャンネル
の処理を行ない、…、248番〜255番のタイムスロ
ットで第31チャンネルの処理を行なうことになる。図
3では、主として、248番〜255番のタイムスロッ
トすなわち第31チャンネルの処理区間(矢印305の
範囲)を示している。
【0047】SX=0のときは、(「0」を出力する時
間長さ):(「1」を出力する時間長さ)=3:1となる
ようにφMCが出力される。306は、φMCの波形を
示す。矢印307がφMC=0の区間、矢印308がφ
MC=1の区間であり、その比は3:1になっている。
309は、CPU102または音源部104のどちらか
ら外部メモリ2へアクセス可能であるかを示す。「CP
U」と記載された区間がCPU102から外部メモリ2
をアクセス可能な区間、「音源」と記載された区間が音
源部104から外部メモリ2をアクセス可能な区間を示
す。
【0048】図1,2で説明したように、CPU102
からの外部メモリアクセス要求に対し、外部メモリ2か
ら読み出すべきデータが既にラッチ208に保持されて
いた場合は、実際に外部メモリ2をアクセスすることな
くラッチ208から読み出したデータをCPU102に
返す。したがって、309に示した「CPU」のスロッ
トで必ずCPU102から外部メモリ2をアクセスする
とは限らないし、「音源」のスロットでもCPU102
からのアクセス要求に応じてデータをCPU102に返
すことがある。
【0049】311は、CPU102から連続するアド
レスの8ビットデータを順次読み出し要求した場合に返
されるデータの一例を示す。248番のタイムスロット
で、CPU102から、あるアドレスのデータ(16ビ
ットデータの上位とする)を読み出し要求したとする。
このとき、CPU102から指定された上位アドレスで
外部メモリ2から16ビットデータが読み出され、その
上位8ビットがCPU102に返されるとともに、読み
出した16ビットデータはラッチ208にラッチされ
る。この248番のタイムスロットにおける処理は、上
記(1−1)の場合に相当する。
【0050】次に、249番のタイムスロットで、CP
U102から、次のアドレスのデータ(16ビットデー
タの下位になる)を読み出し要求したとする。このと
き、指定された上位アドレスのデータは既にラッチ20
8にラッチされているので、ラッチ208の下位8ビッ
トがCPU102に返される。この249番のタイムス
ロットにおける処理は、上記(1−2)の場合に相当す
る。
【0051】次に、250番のタイムスロットで、CP
U102から、次のアドレスのデータ(16ビットデー
タの上位になる)を読み出し要求したとする。このと
き、指定された上位アドレスはラッチ204にラッチさ
れている前回の上位アドレスと異なるから、今回の上位
アドレスで外部メモリ2から16ビットデータが読み出
され、その上位8ビットがCPU102に返されるとと
もに、読み出した16ビットデータはラッチ208にラ
ッチされる。この250番のタイムスロットにおける処
理は、上記(1−1)の場合に相当する。
【0052】次に、251番のタイムスロットで、CP
U102から、次のアドレスのデータ(16ビットデー
タの下位になる)を読み出し要求したとする。このと
き、指定された上位アドレスのデータは既にラッチ20
8にラッチされているので、ラッチ208の下位8ビッ
トがCPU102に返される。並行して、このタイムス
ロットでは音源部104からの波形データ読み出しが実
行されている。この251番のタイムスロットにおける
処理は、上記(2−2)の場合に相当する。
【0053】312は、CPU102から連続するアド
レスの8ビットデータを順次読み出し要求した場合に返
されるデータの他の一例を示す。これは311と異な
り、16ビットデータの下位のデータから読み出し要求
を開始した場合である。
【0054】248番と249番のタイムスロットで、
CPU102から、あるアドレスのデータ(16ビット
データの下位とする)およびその次のアドレスのデータ
(上位)を読み出し要求したとする。これらの読み出し
要求に対しては、外部メモリ2からデータが読み出され
て返される。次の250番のタイムスロットでは、24
9番の上位データを読み出したときに下位データもラッ
チされているから、外部メモリ2をアクセスすることな
く、ラッチされていたデータがCPU102に返され
る。次の251番のタイムスロットでは、CPU102
から次のアドレスのデータ(上位)の読み出し要求が発
行されるが、このタイムスロットでは音源部104から
の読み出しが行なわれ、かつ今回のCPU102からの
上位アドレスは前回の上位アドレスとは異なるので、C
PU102の読み出し要求は待たされる(上記(2−
1)の場合)。次の252番のタイムスロットでは、上
位データの読み出しから開始されるので、引き続き連続
したアドレスの読み出しを続けるなら、311に示した
例と同様に255番のタイムスロットでもCPU102
にデータが返されることになる。
【0055】図4は、電源電圧が3.3VかつSX=1か
つマスタークロックの周波数が20MHzの場合のCP
U102および音源104からの外部メモリ2へのアク
セスタイミングを示す波形図である。図4を参照して、
SX=1の場合について説明する。401はマスターク
ロックの波形、402,403はそれぞれφTGおよび
φCPUの波形を示す。SX=1のときは、マスターク
ロックを1/2分周したクロックがφTGとして出力さ
れ、マスタークロックを1/4分周したクロックがφC
PUとして出力される。404は、φTGを基準とする
タイムスロットを示す。タイムスロット404に付した
番号の記載や、音源部104がこのタイムスロット40
4にしたがって32チャンネル時分割動作することなど
は図3の場合と同様である。
【0056】SX=1のときは、(「0」を出力する時
間長さ):(「1」を出力する時間長さ)=1:1となる
ようにφMCが出力される。406は、φMCの波形を
示す。矢印407がφMC=0の区間、矢印408がφ
MC=1の区間であり、その比は1:1になっている。
矢印407の区間で、CPU102は外部メモリ2をア
クセスできる。また、矢印408の区間で、音源部10
4は外部メモリ2をアクセスできる。409は、CPU
102または音源部104のどちらから外部メモリ2へ
アクセス可能であるかを示す。
【0057】411は、CPU102から連続するアド
レスの8ビットデータを順次読み出し要求した場合に返
されるデータの一例を示す。区間407(音源部のタイ
ムスロットで見ると248,249番のタイムスロッ
ト)で、CPU102から、あるアドレスのデータ(1
6ビットデータの上位とする)を読み出し要求したとす
る。このとき、指定された上位アドレスで外部メモリ2
から16ビットデータが読み出され、その上位8ビット
がCPU102に返されるとともに、読み出した16ビ
ットデータはラッチ208にラッチされる。この区間に
おける処理は、上記(1−1)の場合に相当する。
【0058】次に、区間408(音源部のタイムスロッ
トで見ると250,251番のタイムスロット)で、C
PU102から、次のアドレスのデータ(16ビットデ
ータの下位になる)を読み出し要求したとする。このと
き、指定されたアドレスのデータは既にラッチ208に
ラッチされているので、ラッチ208の下位8ビットが
CPU102に返される。この区間における処理は、上
記(1−2)の場合に相当する。
【0059】412は、CPU102から連続するアド
レスの8ビットデータを順次読み出し要求した場合に返
されるデータの他の一例を示す。これは411と異なり
16ビットデータの下位のデータから読み出し要求を開
始した場合である。区間407で、あるアドレスのデー
タ(16ビットデータの下位とする)を読み出し要求
し、外部メモリ2からデータが読み出されて返される。
次の区間408では、CPU102から次のアドレスの
データ(上位)の読み出し要求が発行されるが、このタ
イムスロットでは音源部104からの読み出しが行なわ
れ、かつ今回のCPU102からの上位アドレスは前回
の上位アドレスとは異なるので、CPU102の読み出
し要求は待たされる(上記(2−1)の場合)。次の区
間からは、上位データの読み出しから開始されるので、
引き続き連続したアドレスから読み出すなら、411に
示した例と同様になる。
【0060】なお、CPU102のプログラムの実行で
は、分岐などがなければアドレスを順次1つずつ進めな
がら外部メモリ2をアクセスしていく場合が多い。逆
に、CPU102が、同じアドレスを何回も続けて読む
ことは稀である。したがって、CPU102によって前
のタイムスロットで読み出されラッチ208にラッチさ
れたデータのうち、その次のタイムスロットでヒットし
て使えるのは、前のタイムスロットでCPU102が受
け取らなかった方のデータである場合が多い。このた
め、上述の発明の実施の形態例において、ラッチ208
を(16ビットでなく)8ビットのラッチとし、「前の
タイムスロットでCPU102が読み出したデータのう
ち、そのタイムスロットでCPU102が受け取らなか
った方のデータ」のみをラッチするようにしてもよい。
このようにしても、余り不都合は生じないし(CPU1
02がアドレスを1つずつ進めながら外部メモリ2をア
クセスするなら効果は同じである)、却って16ビット
ラッチを8ビットラッチで済ませることができるという
効果がある。
【0061】以上説明した発明の実施の形態によれば、
音源部104が外部メモリ2をアクセスしているタイム
スロットであっても、CPU102がアクセス要求した
データが既に読み出されてラッチされている場合にはそ
のデータをCPU102に返すことができるので、音源
部による外部メモリのアクセスによってCPUの動作が
遅くなることを極力防止することができる。
【0062】また、上述した発明の実施の形態によれ
ば、CPU102と音源部104のアクセス時間の比
は、3:1(SX=0の場合)と1:1(SX=1の場
合)であり、CPU102のクロックを基準とすると、
前者では4クロックに1回、後者では2クロックに1
回、音源部104からのアクセスが入る。ところで、外
部メモリ2から読み出したデータには、CPU102の
2アドレス分のデータが入っており、CPU102が連
続したアドレスを順次アクセスする場合、ラッチ208
にラッチされたデータが有効に使われるのは、2クロッ
クに1回ということになる。この周期が、音源部104
からアクセスの入る周期(4クロックに1回、または、
2クロックに1回)の約数となっているので、CPU1
02のアクセスが連続している限り、ラッチ208のデ
ータが1回ヒットしたらその次もヒットする、つまり連
続的にヒットし続ける。さらに、図3の312や図4の
412に示したように、1回WAITされると、次のタ
イムスロットからの連続したアクセスでは必ずヒットす
るようになる。一般化して述べると、外部メモリ2の1
アドレスに含まれるCPU102の単位アクセスデータ
の数が、音源部104のアクセス周期の約数になってい
る場合、ラッチ208の連続ヒットする確率が改善され
るという効果がある。
【0063】次に、上記図1および図2の変形例を説明
する。この変形例は、図1と同じ構成の電子楽器であ
る。その外部メモリ制御回路(MC)は、図2の構成に
点線部分220を加え、さらにラッチ208を16ビッ
ト×2段(第1段、第2段と呼ぶ)構成としたものであ
る。
【0064】外部メモリ2から読み出した16ビットデ
ータをラッチ208の第1段または第2段のどちらに書
き込むか、およびラッチ208の第1段または第2段の
どちらから上位8ビットまたは下位8ビットを読み出し
てセレクタ209に入力するかは、キャッシュ制御回路
207が制御する。なお、セレクタ209に、外部メモ
リ2のデータ線の上位8ビットおよび下位8ビット、ラ
ッチ208の第1段の上位8ビットおよび下位8ビッ
ト、並びにラッチ208の第2段の上位8ビットおよび
下位8ビットが入力するようにし、キャッシュ制御回路
207によりセレクタ209を切り替えてこれらの入力
を選択出力するようにしてもよい。
【0065】CPUバス110の上位アドレスは、セレ
クタ221および加算器222に入力する。加算器22
2は、入力した上位アドレスに1を加算し、加算結果を
セレクタ221に出力する。セレクタ221は、キャッ
シュ制御回路207の制御の元で、CPUバス110の
上位アドレスそのものか、またはそれを+1した値を、
選択出力する。セレクタ221の出力はセレクタ201
に入力する。
【0066】図3の313は、この変形例において、C
PU102から連続するアドレスの8ビットデータを順
次読み出し要求した場合に返されるデータの一例を示
す。249番のタイムスロットで、CPU102から、
あるアドレスのデータ(16ビットデータの上位とす
る)を読み出し要求したとする。このとき、指定された
上位アドレスで外部メモリ2から16ビットデータが読
み出され、その上位8ビットがCPU102に返される
とともに、読み出した16ビットデータはラッチ208
の第1段にラッチされる。
【0067】次に、250番のタイムスロットで、CP
U102から、次のアドレスのデータ(16ビットデー
タの下位になる)を読み出し要求したとする。このと
き、指定された今回の上位アドレスはラッチ204にラ
ッチされている前回(249番スロット)の上位アドレ
スと一致するから、当該アドレスのデータは既にラッチ
208の第1段にラッチされていることが分かる(キャ
ッシュ制御回路207はラッチ208の第1段および第
2段のそれぞれについてどのアドレスのデータをラッチ
したか管理しているものとする。また、CPUバス11
0からの上位アドレスはキャッシュ制御回路207にも
入力するものとする。)。そこで、キャッシュ制御回路
207はラッチ208の第1段の下位8ビットが選択出
力されるようにセレクタ209を切り替え、これにより
所望のデータがCPU102に返される。
【0068】同時に、この250番のタイムスロットは
外部メモリ2をCPU側に接続するタイムスロットであ
るから、キャッシュ制御回路207はセレクタ221を
切り替えて、加算器222からの出力(すなわち、今回
の上位アドレスに1を加えた値)がセレクタ201を介
して外部メモリ2のアドレス線に入力するようにする。
これにより、今回の上位アドレスの次のアドレスのデー
タが先読みされる(図3の313では下側に「次アドレ
スラッチ」と記載して先読みを示した)。先読みされた
データは、セレクタ202を介してラッチ208の第2
段にラッチされる。なお、先読みを行なったタイムスロ
ットにおいて、今回CPU102に返したデータが下位
データであるときは、次のタイムスロットで次のアドレ
ス(先読みしたアドレスである)のアクセス要求が来た
ときに当該データが既に先読みされていることを検出す
るため、ラッチ204にラッチした今回の上位アドレス
に1を加算して、ラッチ204の内容を先読みを行なっ
た上位アドレスに更新しておく。
【0069】次に、251番のタイムスロットで、CP
U102から、次のアドレスのデータ(16ビットデー
タの上位になる)を読み出し要求したとする。このと
き、指定された今回の上位アドレスはラッチ204にラ
ッチされている前回の上位アドレス(実際は、前回すな
わち250番スロットでアクセスした上位アドレスでな
く、それに+1した値(先読みを行なった上位アドレ
ス)が設定されている)と一致するから、当該アドレス
のデータは既にラッチ208の第2段にラッチされてい
ることが分かる。そこで、キャッシュ制御回路207は
ラッチ208の第2段の上位8ビットが選択出力される
ようにセレクタ209を切り替え、これにより所望のデ
ータがCPU102に返される。並行して、このタイム
スロットでは音源部104からの波形データ読み出しが
実行されている。
【0070】次に、252番のタイムスロットで、CP
U102から、次のアドレスのデータ(16ビットデー
タの下位になる)を読み出し要求したとする。このと
き、指定された今回の上位アドレスはラッチ204にラ
ッチされている前回の上位アドレスと一致するから、当
該アドレスのデータは既にラッチ208の第2段にラッ
チされていることが分かる。そこで、キャッシュ制御回
路207はラッチ208の第2段の下位8ビットが選択
出力されるようにセレクタ209を切り替え、これによ
り所望のデータがCPU102に返される。
【0071】同時に、この252番のタイムスロットは
外部メモリ2をCPU側に接続するタイムスロットであ
るから、250番スロットで行なったのと同様に次の上
位アドレスを先読みしておく。先読みしたデータは、現
在使用していないラッチ208の第1段にラッチされ
る。また、ラッチ204の内容を先読みを行なった上位
アドレスに更新しておく。
【0072】次に、253番のタイムスロットで、CP
U102から、次のアドレスのデータ(16ビットデー
タの上位になる)を読み出し要求したとする。このと
き、指定された今回の上位アドレスはラッチ204にラ
ッチされている前回の上位アドレス(先読みを行なった
上位アドレスが設定されている)と一致するから、当該
アドレスのデータは既にラッチ208の第1段にラッチ
されていることが分かる。そこで、キャッシュ制御回路
207はラッチ208の第1段の上位8ビットが選択出
力されるようにセレクタ209を切り替え、これにより
所望のデータがCPU102に返される。
【0073】同時に、この253番のタイムスロットは
外部メモリ2をCPU側に接続するタイムスロットであ
るから、250番スロットで行なったのと同様に次の上
位アドレスを先読みしておく。先読みしたデータは、現
在使用していないラッチ208の第2段にラッチされ
る。なお、この先読みを行なったタイムスロットにおい
て、今回CPU102に返したデータが上位データであ
るときは、「今回CPU102に返した上位データは以
前に先読みしてあったデータ」であり、「次のスロット
で、その以前に先読みしてあったデータの下位8ビット
がCPU102に返されるはず」であり、「さらにその
次のスロットで、今回先読みしたデータの上位8ビット
が返されるはず」であるということになる(もちろん連
続したアドレスでCPU102からアクセス要求がくる
ものとする)。したがって、次のタイムスロットで次の
アドレスのアクセス要求が来たときに当該データが既に
先読みされていることを検出するため、ラッチ204に
ラッチした今回の上位アドレスには1を加算せずそのま
まにしておく。
【0074】次に、254番のタイムスロットで、CP
U102から、次のアドレスのデータ(16ビットデー
タの下位になる)を読み出し要求したとする。このと
き、指定された今回の上位アドレスはラッチ204にラ
ッチされている前回の上位アドレスと一致するから、当
該アドレスのデータは既にラッチ208の第1段にラッ
チされていることが分かる。そこで、キャッシュ制御回
路207はラッチ208の第1段の下位8ビットが選択
出力されるようにセレクタ209を切り替え、これによ
り所望のデータがCPU102に返される。なお、この
タイムスロットでは、以前に先読みされていたラッチ2
08の第1段から下位データをCPU102に返し、ラ
ッチ208の第2段には次のスロットでCPU102に
返すべきデータがラッチされていることが分かっている
から、ラッチ204の内容を+1してラッチ208の第
2段の先読みデータの上位アドレスに更新しておく。
【0075】次に、255番のタイムスロットで、CP
U102から、次のアドレスのデータ(16ビットデー
タの上位になる)を読み出し要求したとする。このと
き、指定された今回の上位アドレスはラッチ204にラ
ッチされている前回の上位アドレス(実際は、前回すな
わち254番スロットでアクセスした上位アドレスでな
く、それに+1した値(先読みを行なった上位アドレ
ス)が設定されている)と一致するから、当該アドレス
のデータは既にラッチ208の第2段にラッチされてい
ることが分かる。そこで、キャッシュ制御回路207は
ラッチ208の第2段の上位8ビットが選択出力される
ようにセレクタ209を切り替え、これにより所望のデ
ータがCPU102に返される。並行して、このタイム
スロットでは音源部104からの波形データ読み出しが
実行されている。
【0076】以上のように、この変形例では、CPUか
ら外部メモリの連続したアドレスをアクセスする場合に
ほとんどCPUが待たされることがない。
【0077】なお、上記変形例において、ラッチ204
および比較器205を無くして、キャッシュ制御回路2
07がこれらの機能を果たすようにしてもよい。すなわ
ち、キャッシュ制御回路207で、ラッチ208の第1
段および第2段にラッチしたデータのアドレスを管理
し、CPU102から出力されるアドレスとラッチして
いるアドレスとに基づいて上述した管理を行なうように
してもよい。
【0078】
【発明の効果】以上説明したように、この発明によれ
ば、音源部とCPUとを1チップ化した装置において、
音源部による外部メモリのアクセスによってCPUの動
作が遅くなることを極力防止することができる。
【図面の簡単な説明】
【図1】この発明に係る音源チップを用いた電子楽器の
ブロック構成図
【図2】外部メモリ制御回路(MC)のブロック構成図
【図3】SX=0の場合におけるアクセスタイミングを
示す波形図
【図4】SX=1の場合におけるアクセスタイミングを
示す波形図
【符号の説明】
1…音源チップ、2…外部メモリ、3…鍵盤、4…パネ
ル、5…バッファ、6…MIDI端子、7…電源部、8
…水晶、9…切り替え部(SX)、10…サウンドシス
テム、101…パラレルポート、102…CPU、10
3…外部メモリ制御回路(MC)、104…音源部(T
G)、105…デジタルアナログ変換器(DAC)、1
06…MIDIインターフェイス、107…タイマ、1
08…RAM、109…クロック発生器、110…バス
ライン、201,202,209…セレクタ、203…
アクセス制御回路、204,208…ラッチ、205…
比較器、206…アドレスデコーダ、207…キャッシ
ュ制御回路。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平4−212996(JP,A) 特開 平7−181974(JP,A) 実開 平6−54098(JP,U) (58)調査した分野(Int.Cl.6,DB名) G10H 1/02

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】中央処理装置と音源装置とを1チップ上に
    形成するとともに、前記音源装置が読み出す波形データ
    と前記中央処理装置が読み出すデータとを記憶した記憶
    手段が接続され、前記記憶手段の1アドレス中に前記中
    央処理装置の単位アクセスデータが複数含まれるような
    楽音生成装置であって、所定時間のタイムスロットごと
    の処理によって所定回数の前記中央処理装置からの前記
    記憶手段のアクセスと所定回数の前記音源装置からの前
    記記憶手段のアクセスとを繰り返すものにおいて、 前記音源装置が前記記憶手段をアクセスするタイムスロ
    ットの前のタイムスロットで前記中央処理装置が読み出
    したデータを保持しておく保持手段と、 前記音源装置が前記記憶手段をアクセスするタイムスロ
    ットにおいて、前記保持手段により前記中央処理装置の
    読み出したいデータが保持されているかどうかを判定す
    る判定手段と、 前記判定手段で保持されていると判定された場合は、該
    保持されているデータから前記中央処理装置の読み出し
    たいデータを取り出して前記中央処理装置に供給する供
    給手段とを備えたことを特徴とする楽音生成装置。
  2. 【請求項2】中央処理装置と音源装置とを1チップ上に
    形成するとともに、前記音源装置が読み出す波形データ
    と前記中央処理装置が読み出すデータとを記憶した記憶
    手段が接続され、前記記憶手段の1アドレス中に前記中
    央処理装置の単位アクセスデータが複数含まれるような
    楽音生成装置であって、所定時間のタイムスロットごと
    の処理によって所定回数の前記中央処理装置からの前記
    記憶手段のアクセスと所定回数の前記音源装置からの前
    記記憶手段のアクセスとを繰り返すものにおいて、 前記中央処理装置からのアクセス要求に応じて前記記憶
    手段をアクセスするタイムスロットで、前記中央処理装
    置が読み出したデータから取り出したデータを前記中央
    処理装置に供給するとともに、該読み出したデータを保
    持しておく第1の保持手段と、 前記第1の保持手段に保持されていたデータから取り出
    したデータを前記中央処理装置からのアクセス要求に応
    じて前記中央処理装置に供給するタイムスロットで、該
    保持されていたデータの次のアドレスのデータを前記記
    憶手段から読み出して保持しておく第2の保持手段と、 前記中央処理装置からアクセス要求が発行されたタイム
    スロットにおいて、前記第1の保持手段または第2の保
    持手段の何れかに、前記中央処理装置の今回読み出した
    いデータが保持されているかどうかを判定する判定手段
    と、 前記判定手段で保持されていると判定された場合は、前
    記第1の保持手段または第2の保持手段に保持されてい
    るデータから前記中央処理装置の読み出したいデータを
    取り出して前記中央処理装置に供給する供給手段とを備
    えたことを特徴とする楽音生成装置。
JP7353236A 1995-12-28 1995-12-28 楽音生成装置 Expired - Lifetime JP2901143B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP7353236A JP2901143B2 (ja) 1995-12-28 1995-12-28 楽音生成装置
US08/773,200 US5804749A (en) 1995-12-28 1996-12-24 Sound source chip having variable clock to optimize external memory access

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7353236A JP2901143B2 (ja) 1995-12-28 1995-12-28 楽音生成装置

Publications (2)

Publication Number Publication Date
JPH09185371A JPH09185371A (ja) 1997-07-15
JP2901143B2 true JP2901143B2 (ja) 1999-06-07

Family

ID=18429481

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7353236A Expired - Lifetime JP2901143B2 (ja) 1995-12-28 1995-12-28 楽音生成装置

Country Status (1)

Country Link
JP (1) JP2901143B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7220908B2 (en) 2002-09-12 2007-05-22 Yamaha Corporation Waveform processing apparatus with versatile data bus
JP5229990B2 (ja) * 2008-02-22 2013-07-03 株式会社河合楽器製作所 1チップ電子楽音発生器
JP5229993B2 (ja) * 2008-03-17 2013-07-03 株式会社河合楽器製作所 1チップ電子楽音発生器
JP2014092723A (ja) * 2012-11-05 2014-05-19 Yamaha Corp 音発生装置
JP2014112198A (ja) * 2012-11-05 2014-06-19 Yamaha Corp 音発生装置
JP2014092722A (ja) * 2012-11-05 2014-05-19 Yamaha Corp 音発生装置

Also Published As

Publication number Publication date
JPH09185371A (ja) 1997-07-15

Similar Documents

Publication Publication Date Title
US5717154A (en) Computer system and method for performing wavetable music synthesis which stores wavetable data in system memory employing a high priority I/O bus request mechanism for improved audio fidelity
US5804749A (en) Sound source chip having variable clock to optimize external memory access
JP3293434B2 (ja) 楽音発生方法
US20050211070A1 (en) Sound waveform synthesizer
US6473847B1 (en) Memory management method for use in computer system
US5763801A (en) Computer system and method for performing wavetable music synthesis which stores wavetable data in system memory
JPH07181969A (ja) コードセグメント置換装置及びそれを用いたリアルタイム信号処理システム並びにオーディオ処理システム
JP2901143B2 (ja) 楽音生成装置
US5809342A (en) Computer system and method for generating delay-based audio effects in a wavetable music synthesizer which stores wavetable data in system memory
JP3163984B2 (ja) 楽音発生装置
US6359206B2 (en) Tone signal processing apparatus with intermittent clock supply
US6754351B1 (en) Music apparatus with dynamic change of effects
JP3541718B2 (ja) 楽音生成装置
JP3918817B2 (ja) 楽音生成装置
JPH07121181A (ja) 音声情報処理装置
JP3152198B2 (ja) 楽音発生方法および楽音発生装置
JP2797142B2 (ja) 電子楽器用処理装置
JP4354268B2 (ja) 信号処理装置
JP3275678B2 (ja) 楽音発生方法および装置
US5932826A (en) Effect adder circuit with a coefficient smoothing circuit for an electronic musical instrument
JP3116447B2 (ja) デジタル信号処理プロセッサ
JP3221987B2 (ja) 遅延時間変調効果装置
JP3627557B2 (ja) 楽音発生装置及び方法
USRE40364E1 (en) Tone signal processing apparatus with intermittent clock supply
JP2002006844A (ja) 楽音発生方法

Legal Events

Date Code Title Description
S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20090319

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20090319

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100319

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20110319

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20110319

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20120319

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 14