JP2000122668A - デジタル音声データ処理装置およびコンピュータシステム - Google Patents

デジタル音声データ処理装置およびコンピュータシステム

Info

Publication number
JP2000122668A
JP2000122668A JP10293843A JP29384398A JP2000122668A JP 2000122668 A JP2000122668 A JP 2000122668A JP 10293843 A JP10293843 A JP 10293843A JP 29384398 A JP29384398 A JP 29384398A JP 2000122668 A JP2000122668 A JP 2000122668A
Authority
JP
Japan
Prior art keywords
address
page
waveform data
logical
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP10293843A
Other languages
English (en)
Inventor
Satoru Kamiya
了 神谷
Yoshihiro Mukoujima
祐弘 向嶋
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 JP10293843A priority Critical patent/JP2000122668A/ja
Publication of JP2000122668A publication Critical patent/JP2000122668A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 円滑にデータ転送を行う。 【解決手段】 ハードウエアコントロールドライバ12
は、あるフレームの処理で必要とされる波形データが記
憶されている可能性の高い予測ページについて、論理ア
ドレスLと物理アドレスPとの組から構成される予測ア
ドレスADRxをコントローラ130に供給する。コントロ
ーラ130がこれをアドレス設定回路114に供給する
とアドレス設定回路114はこれを記憶する。L/Pフラ
グfが論理アドレスLを示す場合には、ページ区切検出
回路112がページの区切を検出する。ページの区切が
検出されると、アドレス設定回路114は該当するペー
ジの論理アドレスLに対応する物理アドレスPをアドレ
ス変換回路113に渡す。アドレス変換回路113は、
上位20ビットに渡された物理アドレスPを用い、下位
12ビットに転送アドレスADRtをそのまま使用すること
により、メインメモリをアクセスする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、記憶装置から読み
出した波形データに基づいてデジタル音声データを生成
するデジタル音声データ処理装置およびコンピュータシ
ステムに関する。
【0002】
【従来の技術】コンピュータシステムのデータ転送方式
として、システムのCPU(Central Processing Unit:
中央演算処理装置)を介することなく、デバイスからメ
インメモリ(またはその逆)へのデータ転送を行なうD
MA(Direct Memory Access)方式が知られている。DM
A方式では、CPUによってメインメモリを管理しない
ため、データを高速転送できるという利点がある。
【0003】ところで、一般的なコンピュータシステム
においては、メインメモリの記憶領域をページと呼ばれ
る複数の小記憶領域に分割して、ページ単位でメモリ管
理を行う。したがって、音声波形データのように連続し
たデータであっても、メインメモリ上で物理的に連続し
たアドレスに配置されているわけではなく、ページを境
にして不連続になり得る。本明細書においては、そのよ
うなデータの不連続を意識せずに連続領域に記憶されて
いると仮定して作成したアドレスを「論理アドレス」と
定義し、実際のメモリ上のアドレスを「物理アドレス」
と定義している。この場合、論理アドレスの下位12ビ
ットは物理アドレスと一致する。しかしながら、各ペー
ジはメインメモリ上に分散されて配置されているので、
論理アドレスの上位ビットは、物理アドレスと一致する
とは限らない。このため、専用のハードウエアを用いて
論理アドレスを物理アドレスに変換してデータ転送を実
行している。
【0004】例えば、連続した論理アドレスで指定され
る一定量のデータをメインメモリから、デバイスに転送
する場合を想定すると、あるページ内のデータは連続し
た物理アドレスで指定できるので、メインメモリ上のペ
ージ位置が特定されれば、論理アドレスの下位12ビッ
トを用いて当該ページ内のデータをメインメモリから読
み出すことができる。しかし、データがページの区切り
を越えると、別のページを特定する必要がある。このた
め、ページの区切りとなるページ区切アドレスを検出す
る専用のハードウエアを設け、ページの区切りが検出さ
れると、データ転送を停止し区切り毎に割込を発生さ
せ、OSの割込処理ルーチンで次の物理アドレスを取得
できるようにしている。そして、取得した物理アドレス
を用いてデータ転送を再開するようにしている。
【0005】
【発明が解決しようとする課題】ところで、近年のコン
ピュータシステムにおいては、音源LSIを組み込んで
楽音を再生することが行われている。この場合には、ピ
アノやギターといった各種の音色に各々対応する波形デ
ータをメインメモリに書き込み、そこから読み出した波
形データに基づいて楽音を再生することが多い。しかし
ながら、波形データをスキャッターされた記憶領域(分
散された記憶領域)に格納すると、当該波形データをア
クセスする際に大量の割込が発生し、データの転送効率
が低下してしまう。特に、同時発音数が多い場合には、
大きな問題となる。例えば、1ページの容量が4kバイ
ト、出力サンプリング周波数が48KHzであって、64
チャネルの同時発音を行う場合には1.3ms(=4k/(48
k*64))毎に割込が発生し、円滑なデータ転送を行うこ
とができない。
【0006】一方、割込によるスキャッターギャザー処
理を行わないとすれば、全ての波形データを連続直線領
域(アドレスが連続する記憶領域)に記憶する必要があ
る。しかし、メインメモリ上で大きな連続直線領域が常
に確保されるとは限らない。また、DLS(downloadabl
e sound)などの波形入替処理では、例えば、標準音質の
波形データをより高音質の波形データ(当然データ量が
多い)に変換する処理が行われ、そのような場合には、
必然的にデータが収まりきらずスキャッターされて格納
される。また、一般的な波形再生時にも楽音の再生が終
了すると、当該波形データをメインメモリ上に格納して
おく必要がないので、記憶領域を開放することが行われ
る。すなわち、これらの場合には、波形データの記憶領
域を確保したり開放することが行われるので、連続直線
領域を確保する必要性に乏しく、メインメモリ上で大き
な連続直線領域を占有することにより他のアプリケーシ
ョンに与える弊害が大きい。
【0007】本発明は上述した事情に鑑みてなされたも
のであり、波形データが記憶されている可能性の高い予
測ページについて、論理アドレスと物理アドレスとの組
を送ることにより、スキャッター領域に波形データを記
憶しても割込の頻度を大幅に低減させることのできるデ
ジタル音声データ処理装置およびコンピュータシステム
を提供することを目的とする。
【0008】
【課題を解決するための手段】上記課題を解決するため
請求項1に記載の発明にあっては、固定長のページ単位
に分割された記憶領域を有する記憶装置に記憶された波
形データに基づいて、予め定められたサンプル数のデジ
タル音声データを一括して取り込んで処理するデジタル
音声データ処理装置であって、前記一括して取り込むべ
き波形データが記憶されている可能性が高い予測ページ
に対応する論理アドレスと物理アドレスとの組が供給さ
れると、これらを記憶する第1の手段と、前記記憶装置
から読み出すべき波形データの記憶領域を論理アドレス
で指示する論理読出アドレスを生成する第2の手段と、
前記第1の手段の記憶内容を参照して、前記論理読出ア
ドレスを物理アドレスで指示する物理読出アドレスに変
換する第3の手段と、前記第3の手段によって生成され
た物理読出アドレスに基づいて、前記記憶装置から波形
データを読み出す第4の手段と、制御データに基づい
て、前記第4の手段によって読み出された波形データに
演算処理を施してデジタル音声データを生成する第5の
手段とを備えたことを特徴とする。
【0009】また、請求項2に記載の発明にあっては、
前記第1の手段は、一括処理の開始タイミングで読み出
すべき波形データが記憶されている現在ページおよびこ
れに続く次ページを前記予測ページとし、各予測ページ
に各々対応する論理アドレスと物理アドレスとの組を記
憶することを特徴とする。
【0010】また、請求項3に記載の発明にあっては、
波形データの一部を繰り返し再生するループ再生を行う
デジタル音声データ処理装置であって、前記第1の手段
は、前記現在ページと前記次ページの他に、繰返位置に
対応するループトップページおよびこれに続くループト
ップ次ページを前記予測ページとし、各予測ページに各
々対応する論理アドレスと物理アドレスとの組を記憶す
ることを特徴とする。
【0011】また、請求項4に記載の発明にあっては、
前記第2の手段は、一括処理の開始タイミングにおいて
読み出すべき波形データの記憶領域を論理アドレスで指
示する開始アドレスと、前記制御データに基づいて、一
括して読み出すべき波形データの論理読出アドレスを生
成することを特徴とする。
【0012】また、請求項5に記載の発明にあっては、
前記第2の手段は、一括して読み出すべき波形データの
先頭および末尾が記憶されている記憶領域を論理アドレ
スで各々指示する開始アドレスと終了アドレスとに基づ
いて、一括して読み出すべき波形データの論理読出アド
レスを生成することを特徴とする。
【0013】また、請求項6に記載の発明にあっては、
前記第3の手段は、前記第2の手段によって生成される
論理読出アドレスに基づいてページの区切りを検出し、
前記ページの区切りが検出されると、該当ページの論理
アドレスに基づいて前記第1の手段の記憶内容を参照し
て該当ページの物理アドレスを取得し、該当ページ内を
アクセスする際に、前記ページの容量に対応する下位ビ
ットに論理読出アドレスを、前記下位ビットを越える上
位ビットに前記物理アドレスを設定することにより、前
記物理読出アドレスを生成することを特徴とする。
【0014】また、請求項7に記載の発明にあっては、
請求項1に記載のデジタル音声データ処理装置、前記記
憶装置、および中央演算処理装置を備えるコンピュータ
システムであって、中央演算処理装置は、一括して取り
込んで処理すべき波形データが記憶されている可能性が
高い予測ページに対応する論理アドレスと物理アドレス
との組を生成し、これらを前記デジタル音声データ処理
装置に出力することを特徴とする。
【0015】また、請求項8に記載の発明にあっては、
請求項7に記載のコンピュータシステムであって、前記
デジタル音声データ処理装置の第3の手段は、前記第2
の手段によって生成される論理アドレスに基づいてペー
ジの区切りを検出し、前記ページの区切りが検出される
と、該当ページの論理アドレスが前記第1の手段に記憶
されているか否かを判定し、記憶されている場合は前記
第1の手段の記憶内容を参照して該当ページの物理アド
レスを取得し、記憶されていない場合は中央演算処理装
置に問い合わせることにより該当ページの物理アドレス
を取得し、該当ページ内をアクセスする際に、前記ペー
ジの容量に対応する下位ビットに論理読出アドレスを、
前記下位ビットを越える上位ビットに前記物理アドレス
を設定することにより、前記物理読出アドレスを生成す
ることを特徴とする。
【0016】
【発明の実施の形態】A.第1実施形態 1.第1実施形態の構成 1−1:全体構成 図1は本発明の一実施形態に係るコンピュータシステム
のブロック図である。コンピュータシステム1は、以下
の部分から構成されている。
【0017】まず、CPU10は、バス20を介して各
構成部分と接続されておりコンピュータシステム1全体
を制御し、各種のソフトウエアを実行する。なお、この
例では、バス20としてバースト転送による高速データ
伝送が可能なPCI(Peripheral Component Interconne
ct)バスが用いられる。
【0018】次に、メインメモリ30は主記憶装置とし
て機能しCPU10の作業領域として用いられるととも
に、そこには、各種の音色に対応する波形データWDを
記憶したウェーブテーブルWT、後述する音源ボード4
0を制御するための出力コマンドを格納する出力コマン
ドテーブルCT1、音源ボード40の処理結果を格納す
る入力コマンドテーブルCT2等が設けられている。な
お、波形データWDは、ピアノやギターといった楽器を
実際に演奏して得られた演奏音をサンプリングして得ら
れたデータである。
【0019】次に、音源ボード40は、マザーボード上
あるいは拡張スロットに挿着されるようになっており
(図示せず)、波形データWDに基づいてデジタル音声
データSDを生成する音源LSI100、およびデジタ
ル音声データSDを出力サンプリング周波数に従ってア
ナログ信号に変換し再生音声信号Sを生成するDAC2
00から構成されている。この例の音源LSI100
は、64音を同時に発音できるように構成されており、
各発音に対応して音声データを再生する処理はチャネル
と呼ばれる。ここで、デジタル音声データSDを再生す
る処理は、フレームと呼ばれる一定のサンプリング数単
位で一括して行われる。この例では、デジタル音声デー
タSDを出力サンプリング周波数(48KHz)で25
6サンプルだけ出力する期間(5.3ms)を1フレー
ムとしている。1フレームの処理は、音源LSI100
に取り込んだサンプルに基づき、まず第1チャネルの2
56サンプルを作成する。次に第2チャネルについて同
様に256サンプルを作成し第1チャネルの256サン
プルと対応したサンプル同士加算して累算された256
サンプルを得る。このような処理を64チャネル分繰り
返し、最終的に64チャネル分を累算した256サンプ
ルを得る。上記処理は各フレームで繰り返し行われる
が、あるフレームで生成された256サンプルは次のフ
レームで出力サンプリング周波数に従いDAC200へ
転送される。
【0020】ところで、楽器を演奏した際に得られる波
形は、図2(a)に示すように演奏開始から一定期間は
複雑な形状をしているが(期間Ta)、それ以降は安定
した形状を示すことが多い(期間Tb)。このため、持
続音の再生またはサステイン部の長い音の再生の場合に
は、図2(b)に示すように、期間Taの波形WAを再生
した後、期間Tbの波形WBを再生し、これに引き続いて
期間Tbの波形WBを繰り返し再生するようにしている。
このように、波形データの一部を繰り返し再生する再生
処理をループ再生という。これにより、波形データWDの
データ量を削減できる。なお、以下の説明では、波形WB
の開始を「ループスタート」と呼び、波形WBの終了を
「ループエンド」と呼ぶことにする。
【0021】ここで、図2(c)はループスタート近傍
における波形データWDのサンプリングの様子を示したも
のであり、同図(d)はループエンド近傍における波形
データWDのサンプリングの様子を示したものである。上
述したように、波形WBを繰り返し再生する場合には、ル
ープスタートとループエンドとを滑らかに接続する必要
がある。そこで、この例にあっては、波形データWDを再
生するためのパラメータとして、各波形データWD毎にウ
ェーブトップアドレスWTA、ループスタートアドレスLSA
およびループエンドアドレスLEAを予め設定しておき、
ループスタートアドレスLSAおよびループエンドアドレ
スLEAを用いてループ再生を行うようにしている。ここ
で、ループスタートアドレスLSAとループエンドアドレ
スLEAは、波形データWDの最後から途中に戻って再生す
る際に用いる接続情報として機能する。ループスタート
アドレスLSAとループエンドアドレスLEAは、ループスタ
ート,ループエンドに各々対応する仮想的なアドレスで
あり、それらの値は小数点を含むものとして与えられ
る。例えば、図2(c)においてサンプリングポイント
SP1,SP2のアドレス値が各々「10」,「11」
であれば、ループスタートアドレスLSAの値は「10.
6」となる。なお、ウェーブトップアドレスWTA、ルー
プスタートアドレスLSAおよびループエンドアドレスLEA
は、各波形データWDの一部として上述したウエーブテ
ーブルWTに格納されており、各フレームの処理におい
て音源LSI100に転送されるようになっている。
【0022】次に、ハードディスク50は二次記憶装置
として機能し、そこには、サウンド処理に用いられる各
種のデータやプログラムが格納されており、CPU10
の制御の下、これらのデータやプログラムがメインメモ
リ30に転送されるようになっている。また、コンピュ
ータシステム1は、上述したものの他、ユーザが操作す
ることによって指示が入力されるキーボード、および文
字や画像等を表示するディスプレイ等を備えている(図
示せず)。
【0023】1−2:詳細構成 以下、本実施形態に係るコンピュータシステム1の詳細
構成を図1を参照しつつ説明する。 <CPU>まず、CPU10で実行されるソフトウエア
としては、アプリケーション11、ハードウエアコント
ロールドライバ12、および物理アドレス取得ルーチン
13等がある。このアプリケーション11は、例えば、
ゲームソフトでありゲームの進行に応じてハードウエア
コントロールドライバ12に発音データを渡すようにな
っている。発音データは、例えば、MIDI(Musical I
nstrument DigitalInterface)形式で構成されており、
音色やピッチといった発音パラメータを指示する。
【0024】次に、ハードウエアコントロールドライバ
12は、コンピュータシステム1のOS(Operating Sy
stem)の起動時に立ち上がるように設定されており、立
ち上がると同時にOSに対してメインメモリ30に連続
直線領域A1を確保するように要請する。そして、連続
直線領域A1が確保されると、ハードウエアコントロー
ルドライバ12は、ハードディスク50から使用頻度の
高い波形データWDを読み出して当該連続直線領域A1
に格納するとともに、他の波形データWDを必要に応じ
てスキャッター領域A2に格納する。これらの連続直線
領域A1とスキャッター領域A2とによってウェーブテ
ーブルWTが構成される。この際、ハードウエアコント
ロールドライバ12は、各音色に対応づけてその波形デ
ータWDが格納されている領域が連続直線領域A1であ
るかスキャッター領域A2であるかを領域情報として管
理するとともに、スキャッター領域である場合には、各
波形データの論理アドレスLと物理アドレスPの関係を
管理する。また、ハードウエアコントロールドライバ1
2は、OSから各音色の波形データWDが開始する物理ア
ドレスP(=ウエーブトップアドレスWTA)を受け取りこ
れをオフセット情報として保持する。
【0025】そして、アプリケーション11から発音デ
ータを受け取ると、ハードウエアコントロールドライバ
12は、その発音パラメータから指定された音色、発音
時間、ピッチ等を検知する。この後、検知された音色に
対応する波形データWDが連続直線領域A1に格納され
ているか、あるいはスキャッター領域A2に格納されて
いるかが領域情報に基づいて判定される。そして、当該
波形データWDが連続直線領域A1に格納されたもので
あるか、スキャッター領域A2に格納されたものである
かを示すL/Pフラグfおよび当該波形データWDが開始
する開始アドレスADRs(発音開始の場合にはウエーブト
ップアドレスWTA)を出力する。また、ハードウエアコ
ントロールドライバ12は、予測アドレスADRxを各フレ
ーム毎に生成出力する。ここで、予測アドレスADRxは、
図3に示すようにフレームの開始において現在再生中の
現在ページ、これに続く次ページ、ループトップに対応
するループトップページ、およびこれに続くループトッ
プ次ページについて、各ページのページ番号を指示する
論理アドレスLおよび物理アドレスPの組から構成され
ている。ここでは、現在ページの論理アドレスLおよび
物理アドレスPをX1L,X1P、次ページの論理アドレスL
および物理アドレスPをX2L,X2P、ループトップページ
の論理アドレスLおよび物理アドレスPをY1L,Y1P、ル
ープトップ次ページの論理アドレスLおよび物理アドレ
スPをY2L,Y2Pで表すものとする。
【0026】こうして得られた開始アドレスADRs、発音
データのピッチや音量等の発音パラメータHP、L/Pフラ
グfおよび予測アドレスADRxは、メインメモリ30中の
出力コマンドテーブルCT1にコマンドとして転送さ
れ、記憶される。
【0027】次に、物理アドレス取得設定ルーチン13
はOSの一部であって、論理アドレスLに基づいて物理
アドレスPを設定するようになっている。
【0028】<メインメモリ>次に、メインメモリ30
は、連続直線領域A1とスキャッター領域A2から構成
されており、連続直線領域A1には連続するアドレスに
波形データが格納され、スキャッター領域A2には一つ
の波形データがページ単位に分割されて飛び飛びに記憶
される。
【0029】ここで、図4にメインメモリ30の詳細な
構成例を示す。例えば、メインメモリ30の容量を64
Mバイト、ページの容量を4kバイトとすれば、このメ
インメモリ30を構成するページは1〜1684のペー
ジ番号で表すことができる。図に示す例は、ページ番号
1からページ番号nまでに連続直線領域A1を設け、ペ
ージ番号n+1からページ番号1684までにスキャッ
ター領域A2を設けたものである。この例の連続直線領
域A1には、ページ番号1,2,…mに対応する記憶領
域に波形データWD1が格納され、ページ番号m+1,
m+2,…2mに対応する記憶領域に波形データWD2
が格納される。
【0030】一方、スキャッター領域A2において、斜
線部分は他のアプリケーションや、入力および出力コマ
ンドテーブルCT1,CT2によって既に占有されてい
るページであり、その他の部分に波形データWDが格納
される。図に示す例では、ページ番号n+1、n+4、
1684に波形データWD3が格納されている。
【0031】<音源LSI>次に、音源LSI100
は、図1に示すようにPCIバス転送回路110、入力
コマンドバッファ120、コントローラ130、プログ
ラムメモリ140、出力コマンドバッファ150、制御
レジスタ160、入力FIFO170、音源回路18
0、および出力バッファ190から構成されている。
【0032】まず、PCIバス転送回路110は、波形
データWDの取り込みや各種コマンドの入出力を行うイ
ンターフェースとして動作し、バスマスター機能を有し
ている。このため、PCIバス転送回路110は、CP
U10を介することなく、メインメモリ30に直接アク
セスすることが可能である。
【0033】次に、入力コマンドバッファ120は、コ
ントローラ130を制御するための各種のコマンドを格
納する。具体的には、各フレーム毎にメインメモリ30
中の出力コマンドテーブルCT1の記憶内容がPCIバ
ス転送回路110によって読み出され、これが入力コマ
ンドバッファ120にコピーされるようになっている。
記憶されるコマンドとしては、開始アドレスADRs、発音
パラメータHP、L/Pフラグfおよび予測アドレスADRx等
がある。
【0034】次に、コントローラ130は、プログラム
メモリ140に記憶されている制御プログラムに従っ
て、入力コマンドバッファ120のコマンドをその内部
に設けられたレジスタに格納するとともに、コマンドを
解釈して各種の命令を発行する。代表的な命令として、
波形データWDの転送領域指示C1がある。コントロー
ラ130は、発音パラメータHPが指示するピッチ情報お
よび開始アドレスADRsとに基づいて、転送すべきデータ
の領域を指示する転送領域指示C1を発行する。転送領
域指示C1は、転送を開始するアドレスを指示する転送
開始アドレスADRtsと転送数(連続するアドレス数)n
から構成される。
【0035】また、コントローラ130は、発音パラメ
ータHPの指示する音量情報に基づいて音量を調整するた
めの音量制御データを生成するとともに、発音パラメー
タHPの指示するピッチ情報に基づいてピッチ変換を制御
するピッチ制御データを生成する。これらの制御データ
は、各フレーム毎に制御レジスタ160に書き込まれ
る。上述したようにハードウエアコントロールドライバ
12は、各フレーム毎に各種のコマンドを生成し、それ
らを出力コマンドテーブルCT1に書き込むが、あるフ
レームにおけるコントローラ130の処理結果を利用し
て、次フレームのコマンドを容易に生成できる場合があ
る。例えば、開始アドレスADRsは、前のフレームの終了
アドレスが判れば、容易に生成することができる。
【0036】コントローラ130は、それ自身の処理結
果および制御レジスタ160から読み出した音源回路1
80の処理結果を出力コマンドバッファ150に書き込
むようになっている。また、出力コマンドバッファ15
0の記憶内容は、フレーム毎にメインメモリ30に設け
られた入力コマンドテーブルCT2にコピーされるよう
になっている。したがって、ハードウエアコントロール
ドライバ12は、入力コマンドテーブルCT2の記憶内
容を参照することにより、次フレームのコマンドを簡易
に生成することができる。
【0037】次に、入力FIFIO170は、PCIバ
ス転送回路110を介してバースト転送される波形デー
タWDを一旦記憶し、音源回路180に出力する。この
ため、入力FIFIO170は、音源回路180の入力
バッファとして作用する。ここで、音源回路180は、
各チャネルの音声データを時分割で生成するように構成
されている。このため、あるチャネルの処理が終了する
と次のチャネルに係る波形データWDが入力FIFO1
70に転送されるようになっている。したがって、入力
FIFIO170のメモリ容量は、64チャネル分を用
意する必要はなく1チャネル分で足りる。
【0038】次に、音源回路180は、DSP(Digital
Signal Processor)で構成されており、制御レジスタ1
60から読み出したピッチ制御データに基づいてピッチ
変換を実行した後、そこから読み出した音量制御データ
に基づいて音量調整を施して音声データを生成する。ま
た、この音源回路180は必要に応じてリバーブやコー
ラスあるいはバリエーションといったエフェクト処理を
実行する。
【0039】次に、出力バッファ190は、第1バッフ
ァ191および第2バッファ192からなるダブルバッ
ファ構成となっている。あるフレームにおいて、音源回
路180が第1バッファ191を用いて各チャネルの音
声データを累算してデジタル音声データSDを生成する
ものとすれば、当該フレームにおいて第2バッファ19
2から前のフレームのデジタル音声データSDが出力サ
ンプリング周波数に従って読み出され、DAC200へ
転送される。そして、次のフレームにおいては、第2バ
ッファ192によって累算がなされ、第1バッファ19
1からデジタル音声データSDが出力される。すなわ
ち、第1バッファ191と第2バッファ192はフレー
ム毎に累算と出力との機能が交互に入れ替わるようにな
っている。
【0040】<PCIバス転送回路>次に、図5はPC
Iバス転送回路110とその周辺構成を示すブロック図
である。なお、図5において、出力コマンドテーブルC
T1、バス20および入力コマンドバッファ120は省
略する。図示するようにPCIバス転送回路110はバ
スマスター転送コントロール回路111、ページ区切検
出回路112、アドレス変換回路113、およびアドレ
ス設定回路114から構成されている。
【0041】まず、バスマスター転送コントロール回路
111は、転送領域指示C1に基づいて、転送アドレス
ADRtを生成するとともに次に転送すべきデータを指示す
る次転送アドレスADRtnを生成するように構成されてい
る。転送アドレスADRtは転送領域指示C1の転送開始ア
ドレスADRtsを順次インクリメントして算出され、次転
送アドレスADRtnは転送アドレスADRtをインクリメント
して算出される。転送アドレスADRtはアドレス変換回路
113に送られ、一方、次転送アドレスADRtnはページ
区切検出回路112に送られる。なお、バスマスター転
送コントロール回路111は、転送停止指示C2と転送
再開指示C4に基づいて動作が制御されるようになって
いる。
【0042】ところで、コントローラ130は、ハード
ウエアコントロールドライバ12から送出される開始ア
ドレスADRsが物理アドレスPであるか論理アドレスLで
あるかに拘わらず動作して転送領域指示C1を発行する
が、メインメモリ30のアクセスに用いられるアドレス
は物理アドレスPであることが必要である。ここで、対
象とする波形データWDが連続直線領域A1に格納され
ているのであれば、上述したようにハードウエアコント
ロールドライバ12は開始アドレスADRsを物理アドレス
Pで出力する。この場合には、コントローラ130の処
理は物理アドレスPに基づいて行われることになるの
で、バスマスタ−転送コントロール回路111で生成さ
れる転送アドレスADRtも物理アドレスPで表されること
になる。
【0043】一方、対象とする波形データWDがスキャ
ッター領域A2に格納されているのであれば、開始アド
レスADRsは論理アドレスLで表され、転送アドレスADRt
も論理アドレスLで表されることになる。したがって、
転送アドレスADRtを論理アドレスLから物理アドレスP
に変換する必要がある。スキャッター領域A2はページ
単位に分割されているから、波形データWDが偶然に連
続するページに格納されている場合を除いて、ページの
区切りで物理アドレスPが不連続となる。このため、ペ
ージの区切りを越えるたびに転送アドレスADRtに対応す
る物理アドレスPを知る必要がある。換言すれば、同一
ページ内の波形データWDを転送するのであれば、物理
アドレスPの上位アドレスは変化しないのでこれを用い
ればよく、ページの区切りを越えた場合にのみ物理アド
レスPを取得すればよい。
【0044】ページ区切検出回路112は、このために
設けられたものであって、転送領域指示C1が論理アド
レスLに基づくものである場合にページの区切りを検出
して次ページの論理アドレスLをアドレス設定回路11
4に対して設定するように構成されており、比較器やレ
ジスタ等を備える。また、L/Pフラグfが論理アドレスL
を指示する場合にのみページ区切検出回路112は動作
する。具体的には、直前の次転送アドレスADRtnと現在
の次転送アドレスADRtnの上位ビット(ページの容量を
越えるもの)を比較器を用いて比較し両者が不一致とな
ったとき、次ページの論理アドレスLを設定する。
【0045】次に、アドレス設定回路114には、予測
アドレスADRxとして、現在ページ(X1L,X1P)、次ペー
ジ(X2L,X2P)、ループトップページ(Y1L,Y1P)および
ループトップ次ページ(Y2L,Y2P)について、論理アド
レスLと物理アドレスPの組が転送されるようになって
おり、アドレス設定回路114は、これらの予測ページ
について論理アドレスLと物理アドレスPとを対応づけ
て変換マップとして記憶する。そして、ページ区切検出
回路112から次ページの論理アドレスLが供給される
と、アドレス設定回路114は、変換マップを参照し
て、該当する論理アドレスLが存在するか否かを判定す
る。該当する論理アドレスLが存在する場合には、これ
に対応する物理アドレスPを読み出して、アドレス変換
回路113に出力する。
【0046】一方、変換マップに該当する論理アドレス
Lが存在しない場合には、アドレス設定回路114は、
OSの物理アドレス取得設定ルーチン13に対して割込
をかけるとともに、当該論理アドレスLを渡す。物理ア
ドレス取得設定ルーチン13は、割込指示C3を受け取
ると、次ページの論理アドレスに対応する物理アドレス
Pを生成し、アドレス設定回路114に返送する。アド
レス設定回路114は、返送された物理アドレスPをア
ドレス変換回路113に送る。
【0047】ところで、ページの区切りが検出された場
合には、アドレス設定回路114によって物理アドレス
Pが取得されるまで処理を待つ必要がある。このため、
ページ区切検出回路112はページの区切りを検出する
と、転送停止指示C2をバスマスター転送コントロール
回路111に対して発行するとともに、物理アドレス取
得設定ルーチン13から転送再開指示C4があると、バ
スマスター転送コントロール回路111に対して転送再
開指示C4を送るようになっている。
【0048】次に、アドレス変換回路113は、L/Pフ
ラグfを参照して、転送アドレスADRtを物理アドレスP
に変換するように構成されており、セレクタやレジスタ
等を備えている。このレジスタにはアドレス設定回路1
14で取得された物理アドレスPが書き込まれるように
なっており、セレクタは、L/Pフラグfに基づいてレジ
スタのデータと転送アドレスADRtを選択して出力するよ
うになっている。具体的には、L/Pフラグfが物理アド
レスPを指示するらば、転送アドレスADRtは物理アドレ
スPで表されているので、転送アドレスADRtをそのまま
出力する。一方、L/Pフラグfが論理アドレスLを指示
する場合には、転送アドレスADRtのうちページ内のアド
レスを指示する下位ビットは転送アドレスADRtを用い、
ページ番号等を指示する上位ビットはレジスタに格納さ
れている物理アドレスPを出力するように構成されてい
る。
【0049】以上の構成によって、物理アドレスPが生
成されると、これを用いてメインメモリ30がアクセス
され波形データWDが読み出され、音源LSI100の
入力FIFO170に波形データWDが順次格納され
る。
【0050】ここで、前述した4つのページを予測ペー
ジとして、アドレス設定回路114に論理アドレスLと
物理アドレスPとの変換マップを設定するようにしたの
は、以下の理由による。まず、現在ページは、フレーム
の開始において現在再生中の波形データWDが記憶され
ているページであるから、このページの物理アドレスP
を知る必要がある。
【0051】次に、1ページの容量が4Kバイト(1バ
イト=8ビット)であり、波形データWDの1サンプル
を16ビットであるとすると、1ページ当たり2048
サンプルの波形データWDが記憶されている。ここで、
波形データWDのサンプリング周波数が出力サンプリン
グ周波数(48KHz)と同じであり、ピッチ変換を行
わないものとすれば、1フレームの処理で必要とされる
波形データWDは256サンプルである。したがって、
図6(a)の例1に示すように再生開始位置が現在ペー
ジの終わりに近い所にあったとしても、1フレームの処
理で必要とされる波形データWDは次ページで終了する
から、次ページの物理アドレスPを知ることができれ
ば、物理アドレス取得ルーチン13を用いることなく処
理することができる。このため、次ページについても変
換マップを持つ必要がある。
【0052】一方、物理アドレス取得ルーチン13によ
っても物理アドレスPを取得することができるようにし
たのは、ピッチ変換に対応するためである。例えば、元
の波形データWDのピッチよりも1オクターブ(2倍)
高いピッチで再生しようとする場合には、1フレーム当
たり512サンプルの波形データWDを入力FIFO1
70に転送し、これを1/2に間引いてピッチ変換を行
う必要がある。仮に、3オクターブ(8倍)以上高いピ
ッチで再生する場合には、1フレームの処理で必要とさ
れる波形データWDのサンプル数が2048個を越えて
しまう。いま、1フレームの処理に3000サンプルが
必要であるとすれば、図6(a)の例2に示すように波
形データWDの記憶領域が次ページを越えてその次のペ
ージに及ぶ場合がある。物理アドレス取得ルーチン13
を使用できるようにしたのは、このような場合にも物理
アドレスPを取得できるようにするためである。ただ
し、1つの波形データWDは、2オクターブ(4倍)程
度のピッチアップに対応することができれば十分である
から、物理アドレス取得ルーチン13によって物理アド
レスPを取得することは、非常に希である。したがっ
て、割込によって、他のアプリケーションの動作に悪影
響を与えるといったことは起こらない。
【0053】次に、波形データWDは、ループエンドに
至るとループトップに戻って再生するようになってい
る。このため、現在ページがループエンドが属するペー
ジであるとすれば、次に再生するページはループトップ
ページである。したがって、ループトップページについ
ては、次ページの場合と同様に物理アドレスPを持つ必
要がある。ところで、ループトップとループエンドと
は、円滑に波形が繋がるように定めるものであるから、
サンプリングされた波形の形状によってそれらの位置が
左右される。このため、図6(b)に示すように再生開
始位置がループエンドの直前に位置し、ループトップが
ループトップぺージの終了直前に位置することもあり得
る。この例では、1フレームで必要とされる256サン
プル(斜線部分)の終了位置がループトップ次ページに
入っている。このような場合にも通常の場合と同様に、
物理アドレスPを取得できるようにしようとすれば、ル
ープトップ次ページについても変換マップを用意する必
要がある。以上の理由により、アドレス設定回路114
は、現在ページ、次ページ、ループトップページ、およ
びループトップ次ページについて、論理アドレスLから
物理アドレスPを取得できるように変換マップを有して
いる。
【0054】2.第1実施形態の動作 2−1.全体動作 次に、本実施形態に係るコンピュータシステム1の全体
動作を説明する。図7は第1実施形態に係るコンピュー
タシステム1の全体動作を示すフローチャートである。
図において、OSの起動時にハードウエアコントロール
ドライバ12が立ち上がると、ハードウエアコントロー
ルドライバ12はOSに対して連続直線領域A1をメイ
ンメモリ30に確保するように要請する(ステップS
1)。
【0055】次に、連続直線領域A1が確保されると、
ハードウエアコントロールドライバ12は、波形データ
WDをメインメモリ30中のウエーブテーブルWTに書
き込む(ステップS2)。具体的には、プログラムによ
って予め登録されている波形データWDをハードディス
ク50から読み出して連続直線領域A1に格納するとと
もに、他の波形データWDを必要に応じてスキャッター
領域A2に格納する。これにより、使用頻度の高い音色
に対応する波形データWDを連続直線領域A1に、さほ
ど使用頻度の高くない音色をスキャッター領域A2に格
納することができ、データの特性に応じた取り扱いが可
能となる。
【0056】次に、アプリケーション11が発音データ
を出力すると(ステップS3)、ハードウエアコントロ
ールドライバ12は、発音データの指示する音色に対応
する波形データWDが格納されている領域が、連続直線
領域A1であるかスキャッター領域A2であるかを判定
し、判定結果に基づいてL/Pフラグfを生成し、これを
出力コマンドテーブルCT1にセットする(ステップS
4)。また、ハードウエアコントロールドライバ12
は、上記判定結果と当該波形データWDの先頭を示す論
理アドレスLに基づいて、開始アドレスADRsを生成する
とともに、発音データから得られるピッチ情報や音量情
報を発音パラメータHPとして、出力コマンドテーブルC
T1にセットする(ステップS5)。さらに、ハードウ
エアコントロールドライバ12は、波形データWDの先
頭を示す論理アドレスLに基づいて、現在ページおよび
次ページを特定するとともに再生すべき波形データWD
のループトップページおよびループトップ次ページを特
定し、これらの予測ページについて論理アドレスLと物
理アドレスPとの組を生成し、これらを出力コマンドテ
ーブルCT1にセットする(ステップS6)。
【0057】ところで、楽曲を再生するにあたって、最
初のフレームでは上述したステップS4〜S6の処理を
忠実に実行するが、次のフレームでは最初のフレームの
処理結果を参照して、出力コマンドテーブルCT1のコ
マンドを設定することができる。例えば、あるチャネル
において発音が維持していれば、L/Pフラグf、ループ
トップページおよびループトップ次ページについて論理
アドレスLと物理アドレスPとの組には変化がない。一
方、入力コマンドテーブルCT2には、前のフレームの
コマンドや処理結果が格納されている。このため、ハー
ドウエアコントロールドライバ12は、ステップS4〜
S6において、入力コマンドテーブルCT2を参照しつ
つ、前のフレームについて変化がある部分についてのみ
コマンドを新たに生成し、出力コマンドテーブルCT1
の内容を更新している。
【0058】こうして、出力コマンドテーブルCT1に
コマンドが設定されると、コントローラ130は所定の
タイミングで、PCIバス転送回路110に対して出力
コマンドテーブルCT1の記憶内容を入力コマンドバッ
ファ120にコピーするように命令を発行する。する
と、PCIバス転送回路110は、出力コマンドテーブ
ルCT1に記憶されている各コマンドを読み出して、そ
れらを入力コマンドバッファ120に書き込む(ステッ
プS7)。
【0059】次に、コントローラ130は、入力コマン
ドバッファ120にアクセスし、そこに格納されている
コマンドを解釈して、当該フレームで使用する波形デー
タWDの記憶領域を特定し、転送領域指示C1をPCI
バス転送回路110に発行する。また、これと並行し
て、コントローラ130は、制御データを制御レジスタ
160に設定する(ステップS8)。
【0060】この後、PCIバス転送回路110は、転
送領域指示C1に従って、ウエーブテーブルWTから当
該フレームの処理に必要な波形データWDを切り出し
て、これを入力FIFIO100に転送すると(ステッ
プS9)、音源回路180が制御データに基づいて、波
形データWDに演算処理を施し、あるチャネルの音声デ
ータを生成するともに、出力バッファ190の一方のバ
ッファを用いて既に生成されている他のチャネルの音声
データと累算する(ステップS10)。
【0061】次に、コントローラ130は、発音パラメ
ータHP等をを出力コマンドバッファ150に転送し、所
定のタイミングで出力コマンドバッファ150の記憶内
容を入力コマンドテーブルCT2に転送する(ステップ
11)。
【0062】こうして、1つのチャネルについて処理が
終了すると、ステップS4に戻り、全てのチャネルにつ
いて処理が終了するまでステップS4からステップS1
0までの処理を繰り返す(ステップS12)。これによ
り、出力バッファ190の一方のバッファには各チャネ
ルの音声データが累算されていき、全てのチャネルにつ
いて処理が終了した時点で、各チャネルの音声データを
合成したデジタル音声データSDが生成される。
【0063】2−2.波形データの読出動作 次に、上述した波形データの読出動作(ステップS9)
について、詳細に説明する。図8は波形データの読出動
作を説明するためのフローチャートである。
【0064】まず、L/Pフラグfが論理アドレスLを指
示するか否かが判定される(ステップS20)。論理ア
ドレスLを指示するのであれば、対象とする波形データ
WDがスキャッター領域A2に格納されているので、物
理アドレスPは、ページの区切りを越えるたびに不連続
となる。このため、ステップS20の判定結果がYES
の場合には、ステップS21に進んでページ区切りを検
出したか否かの判定が行われ、ページ区切検出回路11
2(図5参照)がページ区切を検出すると、転送停止指
示C2が発行される(ステップS22)。この転送停止
指示C2によって、バスマスター転送コントロール回路
111は転送アドレスADRtの生成を停止する。
【0065】次に、アドレス設定回路112は、ページ
区切検出回路220にアクセスしてレジスタにセットさ
れている論理アドレスLで表された次転送アドレスADRt
nを取得し、該当ページの論理アドレスLが変換マップ
に記憶されているか否か、すなわち、予測アドレスADRx
に該当する論理アドレスLが存在するか否かを判定する
(ステップS23)。予測アドレスADRxに該当する論理
アドレスLが存在すれば、対応する物理アドレスPを取
得する(ステップS24)。一方、予測アドレスADRxに
該当する論理アドレスLが存在しなければ、ステップS
25に進んで、物理アドレス取得ルーチン13を用いて
当該論理アドレスLに対応する物理アドレスPを取得す
る。こうして、取得した該当ページの物理アドレスPは
アドレス変換回路113のレジスタにセットされる。こ
の後、アドレス設定回路114が転送再開指示C4を発
行すると(ステップS26)、当該指示がページ区切検
出回路112を介してバスマスター転送コントロール回
路111に伝えられ、転送アドレスADRtの転送が再開さ
れる。
【0066】次に、アドレス変換回路113は転送アド
レスADRtのうちページ内のアドレスを指示する下位ビッ
トは転送アドレスADRtを、ページ番号等を指示する上位
ビットはレジスタに格納されている物理アドレスPを出
力する。これにより、物理アドレスPで表現された物理
読出アドレスが得られ、これを用いてメインメモリ30
から波形データWDが読み出される(ステップS2
7)。そして、波形データWDの読出が終了するまで、
ステップS21からステップ27の動作を繰り返し、読
出が終了した時点で処理を終了する(ステップS2
8)。
【0067】なお、ステップS20において、L/Pフラ
グfが物理アドレスPを示す場合には、アドレス変換を
施す必要がないので、アドレス変換回路113は転送ア
ドレスADRtを物理読出アドレスとしてそのまま出力し、
これを用いてメインメモリ30から波形データWDが読
み出される(ステップS29)。
【0068】このように、本実施形態にあっては、ある
フレームのデジタル音声データ生成処理に先だって、予
測ページについて論理アドレスLと物理アドレスの組を
音源LSI100に転送し、音源LSI100は、ペー
ジ区切りが検出される毎に予測アドレスADRxに基づいて
該当ページの物理アドレスPを取得するようにしたの
で、OSに対して割込を発行する頻度を大幅に削減する
ことができる。
【0069】また、予測ページは、あるフレームで使用
される波形データWDが記憶されている可能性の高いペ
ージであるから、使用される可能性の少ないページにつ
いて論理アドレスLと物理アドレスPの組を音源LSI
100に転送することはない。このため、出力コマンド
テーブルCT1、入力コマンドテーブルCT2、入力コ
マンドバッファ120および出力コマンドバッファ15
0といった、予測アドレスADRxを記憶するハードウエア
を小規模にすることができ、さらに、アドレスの転送に
よってバス20を占有する時間を短くできる。
【0070】また、入力コマンドテーブルCT2をメイ
ンメモリ30の内部に設け、音源LSI100の処理結
果を格納するようにしたので、ハードウエアコントロー
ルドライバ12は、前のフレームの処理結果を参照し
て、コマンドを出力コマンドテーブルCT1に設定する
ことができる。この結果、ハードウエアコントロールド
ライバ12は、変化があった部分についてのみコマンド
を更新することができるので、処理負荷を軽減すること
ができる。
【0071】B.第2実施形態 第1実施形態においては、PCIバス転送回路110等
を設け、予測アドレスADRxを使用することにより、物理
アドレスPを取得していた。これに対して、第2実施形
態では、これらの役割をコントローラ130のソフトウ
エアが担っている。 1.第2実施形態の構成 第2実施形態のコンピュータシステム1’の構成は、デ
ータ転送回路がバス20の単なるインターフェースとし
て機能する点、波形データWDを読み出すための物理ア
ドレスPをコントローラのソフトウエアで処理する点、
およびハードウエアコントロールドライバ12が波形デ
ータWDを読み出すべき開始アドレスと終了アドレスと
を生成しこれをコマンドとして出力コマンドテーブルC
T1に書き込む点を除いて、図1に示す第1実施形態の
コンピュータシステム1と同様である。
【0072】このコンピュータシステム1’にあって
は、出力コマンドテーブルCT1に開始アドレスADRs、
終了アドレスADRe、予測アドレスADRx、L/Pフラグf、
発音パラメータHP等がコマンドとして書き込まれる。そ
して、出力コマンドテーブルCT1の記憶内容が所定の
タイミングで、入力コマンドバッファ120にコピーさ
れる。コントローラ130は、入力コマンドバッファ1
20のコマンドを読み出して、波形データWDを読み出
すための物理アドレスPを生成し、これを所定のタイミ
ングでPCIバス転送回路110に渡す。これにより、
波形データWDが入力FIFIO170に転送される
と、音源回路180によって各チャネルの音声データが
順次生成され、それらを累算してデジタル音声データS
Dが生成されるようになっている。
【0073】2.第2実施形態の動作 第2実施形態のコンピュータシステム1’は、コントロ
ーラ130のソフトウエアで物理アドレスPを生成する
点に特徴があり、他の動作は第1実施形態のコンピュー
タシステム1と同様であるので、この点について説明す
る。図9は、コンピュータシステム1’のコントローラ
130が波形データWDを読み出すための物理アドレス
P(読出物理アドレス)を生成する動作を示すフローチ
ャートである。まず、コントローラ130は、入力コマ
ンドバッファ120にアクセスして開始アドレスADRs、
終了アドレスADRe、予測アドレスADRx、およびL/Pフラ
グfを取得する(ステップS30)。次に、L/Pフラグ
fが論理アドレスLを指示するか否かを判定する(ステ
ップS31)。L/Pフラグfが物理アドレスPを指示す
る場合には、アドレス変換は不要であり、読み出すべき
波形データWDが連続直線領域A1に格納されているこ
とを意味する。このため、開始アドレスADRsから終了ア
ドレスADReまで歩進する物理アドレスPを生成し、これ
をPCIバス転送回路110に出力する(ステップS3
9)。
【0074】一方、L/Pフラグfが論理アドレスLを指
示する場合には、読み出すべき波形データWDがスキャ
ッター領域A2に格納されていることを意味するから、
ページの区切りで物理アドレスが不連続となる。このた
め、ステップS32に進み、開始アドレスADRsから終了
アドレスADReまでの間にページ区切があるか否かを判定
する。1ページの記憶領域は12ビットのアドレスで表
すことができるから、論理アドレスLが32ビットで構
成されているとすれば、開始アドレスADRsと終了アドレ
スADReとの上位20ビットを比較し、両者が不一致であ
れば、ページの区切りがあると判定する。
【0075】ページの区切りがない場合は、当該フレー
ム期間中に転送すべき波形データWDが1ページ内にあ
ることを意味するから、再生開始位置がある現在ページ
の論理アドレスLと物理アドレスPとの対応関係が判れ
ば、物理アドレスPを生成することができる。予測アド
レスADRxは現在ページついてアドレスを含んでいるの
で、ステップS32においてページの区切りがないと判
定された場合には、ステップS40に進んで、予測アド
レスADRxに基づいて現在ページの物理アドレスPを取得
する。一方、ページの区切りがあると判定された場合に
は、ページ区切を検出して各ページ毎に論理アドレスを
分割する(ステップS33)。この後、最先ページの論
理アドレスLを取得し(ステップS34)、予測アドレ
スADRxの中に該当する論理アドレスLがあるか否かを判
定する(ステップS35)。ここで、予測アドレスADRx
は、現在ページ、次ページ、ループトップページ、およ
びループトップ次ページの各ページについて、論理アド
レスLと物理アドレスPとの組から構成されている。こ
れらの予測ページの中に該当する論理アドレスLが存在
する場合には、ステップS36に進んで、対応するペー
ジの物理アドレスPを取得する。
【0076】第1実施形態で説明したように、波形デー
タWDが予測ページに格納されている可能性は非常に高
いが、ピッチ変換処理において大幅なピッチアップを行
う場合には、ごく希に予測ページを越えるページが指定
されることがある。このような場合には、ステップS3
5の判定結果は「NO」となり、ステップS37に進ん
で、物理アドレス取得ルーチン13を用いて当該論理ア
ドレスに対応する物理アドレスを取得する。この後、未
処理のページがないかを判定し(ステップS38)、未
処理のページがある場合には、ステップS5に戻りステ
ップS9までの処理を繰り返す。そして、全てのページ
について処理が終了すると、物理アドレスPを生成する
処理を終了する。
【0077】このように、第2実施形態にあっては、第
1実施形態と同様に、ハードウエアコントロールドライ
バ12において、あるフレームの処理を実行するのに必
要とする波形データWDが格納されている可能性が高い
予測ページについて、論理アドレスLと物理アドレスP
との組を生成した。そして、これを用いて音源LSI1
00のコントローラ130が波形データWDの転送アド
レスを生成するようにしたので、OSに対して割込をほ
とんどかけることなく、波形データWDを音源LSI1
00に取り込むことができる。
【0078】C.変形例 以上、本発明に係る実施形態を説明したが、本発明は上
述した実施形態に限定されるものではなく、以下に述べ
る各種の変形が可能である。 上述した各実施形態において、音源ボード40とメイ
ンメモリ30を接続するバス20としてはPCIバスを
用いることができるが、この替わりにAGP(Accelera
ted Graphics Port)バスを用いるようにしてもよい。
バス20がバースト転送モードをサポートすることは必
須ではない。
【0079】上述した各実施形態においては、波形デ
ータWDの使用頻度に応じて連続直線領域A1に格納す
るか、スキャッター領域A2に格納するかを決定できる
ように、予め使用頻度の高い波形データWDをプログラ
ムに登録するようにしたが、例えば、再生すべき楽曲の
ジャンルが分かっている場合には、そのジャンルに応じ
た波形データWDを連続直線領域A1に格納するように
してもよい。要は、データの特性に応じて、連続直線領
域A1に格納するかスキャッター領域A2に格納するか
を決定すればよい。また、全ての波形データWDをスキ
ャッター領域A2に格納するようにしてもよい。この場
合には、ハードウエアコントロールドライバ12は、O
Sに対して単に、ウエーブテーブルWTを記憶するため
の記憶領域を確保するように要請するだけである。ま
た、L/Pフラグfを生成することはない。この場合、上
述した各実施形態の音源LSI100は、常にL/Pフラ
グfが論理アドレスLを示すものとして動作する。
【0080】上述した実施形態では、OSの起動時に
ハードウエアコントロールドライバ12の立ち上がり、
その時点で連続直線領域A1を確保するようにしたが、
OSが起動時以外でも連続直線領域A1を確保するよう
に構成されている場合は、これに限定されるものではな
く、必要に応じて連続直線領域A1を確保するようにす
ればよい。
【0081】上述した実施形態では、連続直線領域A
1の一例としてメインメモリ30において、1つの連続
直線領域A1を確保したが、これを複数確保するように
してもよい(例えば、4つ)。また、連続直線領域A1
は、メインメモリ30の先頭アドレスから開始する必要
もない。
【0082】上述した実施形態においては、連続直線
領域A1がメインメモリ30上で移動することを考慮し
ていなかったが、OSの都合で連続直線領域A1を移動
させるようにしてもよい。この場合には、OSが移動に
伴ってオフセット情報を変更させることによってハード
ウエアコントロールドライバ12は、論理アドレスLと
オフセット情報に基づいて物理アドレスPを生成するこ
とができる。
【0083】上述した実施形態は、コンピュータシス
テムを音源システムに適用した場合を一例として説明し
たが、本発明に係るメモリ管理方法はこれに限定される
ものではなく、一般的なコンピュータシステムに適用し
てもよいことは勿論である。この場合には、例えば、図
5において音源LSI100を削除し、転送領域指示C
1の替わりにハードウエアコントロールドライバ12で
生成されるアドレスをバスマスター転送コントロール回
路111に供給すればよい。
【0084】
【発明の効果】上述したように本発明に係る発明特定事
項によれば、予測ページについて論理アドレスと物理ア
ドレスとの組を記憶し、これを参照して物理読出アドレ
スを生成するようにしたので。ページ単位に分割された
記憶領域の波形データを記憶しても割込の頻度を大幅に
低減させることができる。
【図面の簡単な説明】
【図1】 本発明の第1実施形態に係るコンピュータシ
ステムの構成を示すブロック図である。
【図2】 同実施形態に係るループ再生を説明するため
の図である。
【図3】 同実施形態に係る予測アドレスを説明するた
めの図である。
【図4】 同実施形態に係るメインメモリの記憶領域を
示す図である。
【図5】 同実施形態に係るPCIバス転送回路110
とその周辺構成を示すブロック図である。
【図6】 同実施形態に係る予測ページと1フレームで
読み出される波形データの関係を示す図である。
【図7】 同実施形態に係るコンピュータシステム1の
全体動作を示すフローチャートである。
【図8】 同実施形態に係る波形データの読出動作を説
明するためのフローチャートである。
【図9】 本発明の第1実施形態に係る波形データの読
出動作を説明するためのフローチャートである。
【符号の説明】
1…コンピュータシステム、10…CPU(中央演算処
理装置)、12…ハードウエアコントロールドライバ、
20…バス、30…メインメモリ(記憶装置)、112
…ページ区切検出回路(第3の手段)、113…アドレ
ス変換回路(第3の手段)、114…アドレス設定回路
(第1の手段)、130…コントローラ(第2の手
段)、SD…デジタル音声データ、P…物理アドレス、
L…論理アドレス、A1…連続直線領域、A2…スキャ
ッター領域、WD…波形データ。

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 固定長のページ単位に分割された記憶領
    域を有する記憶装置に記憶された波形データに基づい
    て、予め定められたサンプル数のデジタル音声データを
    一括して取り込んで処理するデジタル音声データ処理装
    置であって、 前記一括して取り込むべき波形データが記憶されている
    可能性が高い予測ページに対応する論理アドレスと物理
    アドレスとの組が供給されると、これらを記憶する第1
    の手段と、 前記記憶装置から読み出すべき波形データの記憶領域を
    論理アドレスで指示する論理読出アドレスを生成する第
    2の手段と、 前記第1の手段の記憶内容を参照して、前記論理読出ア
    ドレスを物理アドレスで指示する物理読出アドレスに変
    換する第3の手段と、 前記第3の手段によって生成された物理読出アドレスに
    基づいて、前記記憶装置から波形データを読み出す第4
    の手段と、 制御データに基づいて、前記第4の手段によって読み出
    された波形データに演算処理を施してデジタル音声デー
    タを生成する第5の手段とを備えたことを特徴とするデ
    ジタル音声データ処理装置。
  2. 【請求項2】 前記第1の手段は、一括処理の開始タイ
    ミングで読み出すべき波形データが記憶されている現在
    ページおよびこれに続く次ページを前記予測ページと
    し、各予測ページに各々対応する論理アドレスと物理ア
    ドレスとの組を記憶することを特徴とする請求項1に記
    載のデジタル音声データ処理装置。
  3. 【請求項3】 波形データの一部を繰り返し再生するル
    ープ再生を行うデジタル音声データ処理装置であって、 前記第1の手段は、前記現在ページと前記次ページの他
    に、繰返位置に対応するループトップページおよびこれ
    に続くループトップ次ページを前記予測ページとし、各
    予測ページに各々対応する論理アドレスと物理アドレス
    との組を記憶することを特徴とする請求項1に記載のデ
    ジタル音声データ処理装置。
  4. 【請求項4】 前記第2の手段は、一括処理の開始タイ
    ミングにおいて読み出すべき波形データの記憶領域を論
    理アドレスで指示する開始アドレスと、前記制御データ
    に基づいて、一括して読み出すべき波形データの論理読
    出アドレスを生成することを特徴とする請求項1に記載
    のデジタル音声データ処理装置。
  5. 【請求項5】 前記第2の手段は、一括して読み出すべ
    き波形データの先頭および末尾が記憶されている記憶領
    域を論理アドレスで各々指示する開始アドレスと終了ア
    ドレスとに基づいて、一括して読み出すべき波形データ
    の論理読出アドレスを生成することを特徴とする請求項
    1に記載のデジタル音声データ処理装置。
  6. 【請求項6】 前記第3の手段は、前記第2の手段によ
    って生成される論理読出アドレスに基づいてページの区
    切りを検出し、前記ページの区切りが検出されると、該
    当ページの論理アドレスに基づいて前記第1の手段の記
    憶内容を参照して該当ページの物理アドレスを取得し、
    該当ページ内をアクセスする際に、前記ページの容量に
    対応する下位ビットに論理読出アドレスを、前記下位ビ
    ットを越える上位ビットに前記物理アドレスを設定する
    ことにより、前記物理読出アドレスを生成することを特
    徴とする請求項1に記載のデジタル音声データ処理装
    置。
  7. 【請求項7】 請求項1に記載のデジタル音声データ処
    理装置、前記記憶装置、および中央演算処理装置を備え
    るコンピュータシステムであって、 中央演算処理装置は、一括して取り込んで処理すべき波
    形データが記憶されている可能性が高い予測ページに対
    応する論理アドレスと物理アドレスとの組を生成し、こ
    れらを前記デジタル音声データ処理装置に出力すること
    を特徴とするコンピュータシステム。
  8. 【請求項8】 請求項7に記載のコンピュータシステム
    であって、 前記デジタル音声データ処理装置の第3の手段は、前記
    第2の手段によって生成される論理アドレスに基づいて
    ページの区切りを検出し、前記ページの区切りが検出さ
    れると、該当ページの論理アドレスが前記第1の手段に
    記憶されているか否かを判定し、記憶されている場合は
    前記第1の手段の記憶内容を参照して該当ページの物理
    アドレスを取得し、記憶されていない場合は中央演算処
    理装置に問い合わせることにより該当ページの物理アド
    レスを取得し、該当ページ内をアクセスする際に、前記
    ページの容量に対応する下位ビットに論理読出アドレス
    を、前記下位ビットを越える上位ビットに前記物理アド
    レスを設定することにより、前記物理読出アドレスを生
    成することを特徴とするコンピュータシステム。
JP10293843A 1998-10-15 1998-10-15 デジタル音声データ処理装置およびコンピュータシステム Pending JP2000122668A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10293843A JP2000122668A (ja) 1998-10-15 1998-10-15 デジタル音声データ処理装置およびコンピュータシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10293843A JP2000122668A (ja) 1998-10-15 1998-10-15 デジタル音声データ処理装置およびコンピュータシステム

Publications (1)

Publication Number Publication Date
JP2000122668A true JP2000122668A (ja) 2000-04-28

Family

ID=17799882

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10293843A Pending JP2000122668A (ja) 1998-10-15 1998-10-15 デジタル音声データ処理装置およびコンピュータシステム

Country Status (1)

Country Link
JP (1) JP2000122668A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006331408A (ja) * 2005-05-24 2006-12-07 Samsung Electronics Co Ltd 読み出し性能を向上させることができるメモリカード
EP3435371A1 (en) 2017-07-28 2019-01-30 Casio Computer Co., Ltd. Musical sound generation device, musical sound generation method, storage medium, and electronic musical instrument
US10242655B1 (en) 2017-09-27 2019-03-26 Casio Computer Co., Ltd. Electronic musical instrument, method of generating musical sounds, and storage medium

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006331408A (ja) * 2005-05-24 2006-12-07 Samsung Electronics Co Ltd 読み出し性能を向上させることができるメモリカード
EP3435371A1 (en) 2017-07-28 2019-01-30 Casio Computer Co., Ltd. Musical sound generation device, musical sound generation method, storage medium, and electronic musical instrument
US10474387B2 (en) 2017-07-28 2019-11-12 Casio Computer Co., Ltd. Musical sound generation device, musical sound generation method, storage medium, and electronic musical instrument
US10242655B1 (en) 2017-09-27 2019-03-26 Casio Computer Co., Ltd. Electronic musical instrument, method of generating musical sounds, and storage medium
EP3462445A1 (en) 2017-09-27 2019-04-03 Casio Computer Co., Ltd. Electronic musical instrument, method of generating musical sounds, and storage medium

Similar Documents

Publication Publication Date Title
JP3072452B2 (ja) カラオケ装置
US6100461A (en) Wavetable cache using simplified looping
JP3206619B2 (ja) カラオケ装置
JP2671747B2 (ja) 楽音形成装置
US7381879B2 (en) Sound waveform synthesizer
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
JP3672159B2 (ja) 音源システム
US6137046A (en) Tone generator device using waveform data memory provided separately therefrom
JPH09114462A (ja) 楽音発生方法
US5763801A (en) Computer system and method for performing wavetable music synthesis which stores wavetable data in system memory
US5809342A (en) Computer system and method for generating delay-based audio effects in a wavetable music synthesizer which stores wavetable data in system memory
US5714704A (en) Musical tone-generating method and apparatus and waveform-storing method and apparatus
JP3991458B2 (ja) 楽音データ処理装置およびコンピュータシステム
JP4036233B2 (ja) 楽音発生装置および楽音発生方法、並びに該方法に係るプログラムを記憶した記憶媒体
JP2000122668A (ja) デジタル音声データ処理装置およびコンピュータシステム
JPH07121181A (ja) 音声情報処理装置
JPH08160961A (ja) 音源装置
JPH11202866A (ja) 楽音発生方法および楽音発生装置
KR100384685B1 (ko) 주파수보상웨이브테이블데이터를구비한pc오디오시스템
JP3339372B2 (ja) 楽音発生装置および楽音発生方法を実現するためのプログラムを格納した記憶媒体
JP3659002B2 (ja) 楽音データ処理装置およびコンピュータシステム
JP3039468B2 (ja) カラオケ装置
JP7159583B2 (ja) 楽音生成装置、楽音生成方法、楽音生成プログラム及び電子楽器
JPH09134177A (ja) 電子楽器用音源装置
JP2000276149A (ja) 楽音生成方法、楽音生成装置および記録媒体