JPH11282743A - メモリ管理方法、コンピュータシステムおよび音源システム - Google Patents
メモリ管理方法、コンピュータシステムおよび音源システムInfo
- Publication number
- JPH11282743A JPH11282743A JP10085803A JP8580398A JPH11282743A JP H11282743 A JPH11282743 A JP H11282743A JP 10085803 A JP10085803 A JP 10085803A JP 8580398 A JP8580398 A JP 8580398A JP H11282743 A JPH11282743 A JP H11282743A
- Authority
- JP
- Japan
- Prior art keywords
- address
- data
- stored
- page
- storage area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Electrophonic Musical Instruments (AREA)
- Bus Control (AREA)
- Memory System (AREA)
Abstract
は、メインメモリ30に連続直線領域A1とスキャッタ
ー領域A2を確保し、使用頻度の高い波形データWTを
連続直線領域A1に格納し、使用頻度の低いものをスキ
ャッター領域A2に格納する。スキャッター領域A2に
格納されている波形データWTを読み出す際には、ペー
ジ区切検出回路220によってページ区切を検出するた
びに、物理アドレス取得設定ルーチン13から物理アド
レスPを取得する必要があるが、連続直線領域A1に格
納されている波形データWTを読み出す場合には、その
必要がない。したがって、データ転送を円滑に行うこと
ができる。
Description
転送可能なメモリ管理方法、これを用いたコンピュータ
システムおよび音源システムに関する。
として、システムのCPU(Central Processing Unit:
中央演算処理装置)を介することなく、デバイスからメ
インメモリ(またはその逆)へのデータ転送を行なうD
MA(Direct Memory Access)方式が知られている。DM
A方式では、CPUによってメインメモリを管理しない
ため、高速にデータを転送できるという利点がある。
ターギャザーDMA方式においては、メインメモリの記
憶領域をページと呼ばれる複数の小記憶領域に分割し
て、ページ単位でメモリ管理を行う。ここで、メインメ
モリの容量を32Mバイト、仮想記憶の容量を4Gバイ
トとすると、論理アドレスは32ビット、物理アドレス
は25ビット、1ページ内のアドレスは12ビットで表
されることになる。この場合、論理アドレスの下位12
ビットは物理アドレスと一致する。しかしながら、各ペ
ージはメインメモリ上に分散されて配置されているの
で、論理アドレスの13ビットから25ビットまでは、
物理アドレスと一致するとは限らない。このため、専用
のハードウエアを用いて論理アドレスを物理アドレスに
変換してデータ転送を実行している。
る一定量のデータをメインメモリから、デバイスに転送
する場合を想定すると、あるページ内のデータは連続し
た物理アドレスで指定できるので、メインメモリ上のペ
ージ位置が特定されれば、論理アドレスの下位12ビッ
トを用いて当該ページ内のデータをメインメモリから読
み出すことができる。しかし、データがページの区切り
を越えると、別のページを特定する必要がある。このた
め、ページの区切りとなるページ区切アドレスを検出す
る専用のハードウエアを設け、ページの区切りが検出さ
れると、データ転送を停止し区切り毎に割込を発生さ
せ、OSの割込処理ルーチンで次の物理アドレスを取得
できるようにしている。そして、取得した物理アドレス
を用いてデータ転送を再開するようにしている。
ピュータシステムにおいては、音源LSIを組み込んで
楽音を再生することが行われている。この場合には、ピ
アノやギターといった各種の音色に各々対応する波形デ
ータをメインメモリに書き込み、そこから読み出した波
形データに基づいて楽音を再生することが多い。しかし
ながら、波形データをスキャッターされた記憶領域(分
散された記憶領域)に格納すると、当該波形データをア
クセスする際に大量の割込が発生し、データの転送効率
が低下してしまう。特に、ピアノ、ギター、あるいはド
ラムといった各種の音色を同時に発音させる場合には、
大きな問題となる。例えば、1ページの容量が4kバイ
ト、サンプリング周波数が48KHzであって、64chの
同時発音を行う場合には1.3ms(=4k/(48k*64))毎
に割込が発生し、円滑なデータ転送を行うことができな
い。
理を行わないとすれば、全ての波形データを連続直線領
域(アドレスが連続する記憶領域)に記憶する必要があ
る。しかし、メインメモリ上で大きな連続直線領域が常
に確保されるとは限らない。また、DLS(down load s
ample)などの波形入替処理では、例えば、ピアノの音色
をギターの音色に変換する処理が行われ、そこでは、上
位のアプリケーションによって指示される波形データを
ハードディスクから読み出してメインメモリに格納され
ている波形データと入れ替える必要がある。また、一般
的な波形再生時にも楽音の再生が終了すると、当該波形
データをメインメモリ上に格納しておく必要がないの
で、記憶領域を開放することが行われる。すなわち、こ
れらの場合には、波形データの記憶領域を確保したり開
放することが行われるので、連続直線領域を確保する必
要性に乏しく、メインメモリ上で大きな連続直線領域を
占有することにより他のアプリケーションに与える弊害
が大きい。
のであり、メインメモリ上に連続直線領域とスキャッタ
領域とを各々確保し、これらの領域を適宜使い分けるこ
とにより、効率の良くメインメモリを使用するメモリ管
理方法、これを用いたコンピュータシステムおよび音源
システムを提供することを目的とする。
請求項1に記載の発明にあっては、メモリを備えたコン
ピュータシステムに用いられるメモリ管理方法におい
て、前記メモリを、連続したアドレスに対応する第1の
記憶領域と、固定長のアドレスに対応する複数のページ
を備えた第2の記憶領域とに分けて管理し、記憶すべき
データの特性に応じて、当該データを前記第1または第
2の記憶領域のうちいずれに記憶するかを決定し、決定
結果に従って、前記データを前記メモリに記憶すること
を特徴とするメモリ管理方法。
記データを前記第1または第2の記憶領域のうちいずれ
に記憶したかを示す領域情報と当該データの論理アドレ
スとを管理するとともに、前記第1の記憶領域が開始す
る物理アドレスをオフセット情報として管理し、前記デ
ータを前記メモリからデバイスに転送する際に、当該デ
ータが前記第1または第2の記憶領域のうちいずれに記
憶されているかを前記領域情報に基づいて判別し、転送
すべき前記データが前記第1の記憶領域に記憶されてい
ると判別された場合には、当該データの論理アドレスと
前記オフセット情報とに基づいて物理アドレスを算出
し、当該物理アドレスを用いて前記データを前記メモリ
から前記デバイスに転送し、転送すべき前記データが前
記第2の記憶領域に記憶されていると判別された場合に
は、前記ページの区切りを検出し、前記ページの区切り
が検出されるたびに、中央演算処理装置に対して、割込
を発行するとともに該当ページの論理アドレスを渡し、
前記中央演算処理装置が前記論理アドレスに対応する物
理アドレスを設定すると、該当ページ内をアクセスする
際に、前記ページの容量に対応する下位ビットに当該デ
ータの論理アドレスを、前記下位ビットを越える上位ビ
ットに前記物理アドレスを用いて前記データを前記メモ
リから前記デバイスに転送することを特徴とする
モリ、中央演算処理装置、およびデバイスを備えたコン
ピュータシステムにおいて、前記メモリを、連続したア
ドレスに対応する第1の記憶領域と、固定長のアドレス
に対応する複数のページを備えた第2の記憶領域とに分
けて管理する第1の管理手段と、記憶すべきデータの特
性に応じて、当該データを前記第1または第2の記憶領
域のうちいずれに記憶するかを決定する決定手段と、前
記データを前記第1または第2の記憶領域のうちいずれ
に記憶したかを示す領域情報と当該データの論理アドレ
スとを管理するとともに、前記第1の記憶領域が開始す
る物理アドレスをオフセット情報として管理する第2の
管理手段と、前記データを前記メモリから前記デバイス
に転送する際に、当該データが前記第1または第2の記
憶領域のうちいずれに記憶されているかを前記領域情報
に基づいて判別する判別手段と、転送すべき前記データ
が前記第1の記憶領域に記憶されていると判別された場
合には、当該データの論理アドレスと前記オフセット情
報とに基づいて物理アドレスを生成出力し、転送すべき
前記データが前記第2の記憶領域に記憶されていると判
別された場合には当該データの論理アドレスを出力する
アドレス生成手段と、前記領域情報に基づいて、前記ア
ドレス生成手段から出力されるアドレスが論理アドレス
であるか物理アドレスであるかを示すフラグを生成する
フラグ生成手段と、前記フラグが論理アドレスを指示す
る場合に、前記アドレス生成手段から出力される前記論
理アドレスに基づいて、ページの区切りを検出するペー
ジ区切検出手段と、前記フラグが物理アドレスを指示す
る場合には、前記アドレス生成手段から出力されるアド
レスを用いて前記データを前記メモリから前記デバイス
に転送し、前記フラグが論理アドレスを指示する場合に
は、前記ページ区切検出手段によってページの区切りが
検出されるたびに、前記中央演算処理装置から該当ペー
ジの物理アドレスを取得し、当該物理アドレスと前記デ
ータの論理アドレスを組み合わせて、前記データを該当
ページから前記デバイスに転送するデータ転送手段とを
備えたことを特徴とする。
数の音色に対応する各波形データを記憶するメモリ、お
よび前記メモリの物理アドレスを論理アドレスに対応づ
けて管理する中央演算処理装置を備え、音色とピッチを
指示する発音データに基づいて楽音データを再生する音
源システムにおいて、前記メモリを、連続したアドレス
に対応する第1の記憶領域と、固定長のアドレスに対応
する複数のページを備えた第2の記憶領域とに分けて管
理する第1の管理手段と、記憶すべき前記波形データの
特性に応じて、当該波形データを前記第1または第2の
記憶領域のうちいずれに記憶するかを決定する決定手段
と、前記波形データを前記第1または第2の記憶領域の
うちいずれに記憶したかを示す領域情報と当該波形デー
タの論理アドレスとを管理するとともに、前記第1の記
憶領域が開始する物理アドレスをオフセット情報として
管理する第2の管理手段と、前記発音データが入力され
ると、当該発音データの指示する音色に応じた前記波形
データを特定する特定手段と、前記特定手段によって特
定された波形データが、前記第1または第2の記憶領域
のうちいずれに記憶されているかを前記領域情報に基づ
いて判別する判別手段と、前記波形データが前記第1の
記憶領域に記憶されていると判別された場合には、当該
波形データの論理アドレスと前記オフセット情報とに基
づいて物理アドレスを生成出力し、前記波形データが前
記第2の記憶領域に記憶されていると判別された場合に
は当該波形データの論理アドレスを出力するアドレス生
成手段と、前記アドレス生成手段によって生成されたア
ドレスと前記発音データが指示するピッチに基づいて、
前記波形データの転送アドレスを生成するとともに、転
送された波形データに基づいて前記楽音データを生成す
る音源装置と、前記領域情報に基づいて、前記アドレス
生成手段から出力されるアドレスが論理アドレスである
か物理アドレスであるかを示すフラグを生成するフラグ
生成手段と、前記フラグが論理アドレスを指示する場合
に、前記転送アドレスに基づいて、ページの区切りを検
出するページ区切検出手段と、前記フラグが物理アドレ
スを指示する場合には、前記転送アドレスを用いて前記
波形データを前記メモリから前記音源装置に転送し、前
記フラグが論理アドレスを指示する場合には、前記ペー
ジ区切検出手段によってページの区切りが検出されるた
びに、前記中央演算処理装置から該当ページの物理アド
レスを取得し、当該物理アドレスと前記転送アドレスを
組み合わせて、前記波形データを該当ページから前記音
源装置に転送するデータ転送手段とを備えたことを特徴
とする。
記ページ区切検出手段は、前記転送アドレスのうち、前
記ページの容量に対応する下位ビットを越える上位ビッ
トを監視することにより、ページの区切りを検出するこ
とを特徴とする。
ータシステムの一実施形態を示したブロック図である。
コンピュータシステム1は、以下の部分から構成されて
いる。
構成部分と接続されておりコンピュータシステム1全体
を制御し、各種のソフトウエアを実行する。なお、この
例では、バス20としてバースト転送による高速データ
伝送が可能なPCI(Peripheral Component Interconne
ct)バスが用いられる。
て機能しCPU10の作業領域として用いられるととも
に、そこには、アプリケーションプログラムやそこで用
いられる各種のデータ等が格納される。
インターフェース部200から構成されており、拡張ス
ロットに挿着されるようになっている。また、そこで
は、アプリケーションプログラムの制御の下、各種のサ
ウンド処理が行われるようになっている。この音源部1
00は、ピアノやギターといった各種の音色に対応した
各波形データWTをウエーブテーブルに予め格納してお
き、必要に応じて複数の波形データWTを読み出してピ
ッチ変換等の処理を施し、それらを合成するように構成
されている。このウエーブテーブルは、メインメモリ3
0に格納される。また、この例の音源部100は、64
種類の音色を同時に発音できるように構成されており、
各音色に対応する構成はチャネル(以下、「ch」と略
す。)と呼ばれる。また、インターフェース部200
は、CPU10を介することなくメインメモリ30に直
接アクセスできるようにバスマスター機能を備えてお
り、バースト転送モードに対応できるように構成されて
いる。なお、音源部100とインターフェース部200
の詳細な構成については後述する。
として機能し、そこには、サウンド処理に用いられる各
種のデータやプログラムが格納されており、CPU10
の制御の下、これらのデータやプログラムがメインメモ
リ30に転送されるようになっている。
たものの他、ユーザが操作することによって指示が入力
されるキーボード60、および文字や画像等を表示する
ディスプレイ70を備えている。
細構成を図2を参照しつつ説明する。 <CPU>まず、CPU10で実行されるソフトウエア
としては、アプリケーション11、ハードウエアコント
ロールドライバ12、および物理アドレス取得ルーチン
13等がある。このアプリケーション11は、例えば、
ゲームソフトでありゲームの進行に応じてハードウエア
コントロールドライバ12に発音データを渡すようにな
っている。発音データは、例えば、MIDI(Musical I
nstrument DigitalInterface)形式で構成されており、
音色やピッチといった発音パラメータを指示する。
12は、コンピュータシステム1のOS(Operating Sy
stem)の起動時に立ち上がるように設定されており、立
ち上がると同時にOSに対してメインメモリ30に連続
直線領域A1を確保するように要請する。そして、連続
直線領域A1が確保されると、ハードディスク50から
使用頻度の高い波形データWTを読み出して当該連続直
線領域A1に格納するとともに、他の波形データWTを
必要に応じてスキャッター領域A2に格納する。この
際、ハードウエアコントロールドライバ12は、各音色
に対応づけてその波形データWTが格納されている領域
が連続直線領域A1であるかスキャッター領域A2であ
るかを領域情報として管理するとともに、各波形データ
の論理アドレスLを管理する。また、ハードウエアコン
トロールドライバ12は、OSから連続直線領域A1が
開始する物理アドレスPを受け取りこれをオフセット情
報として保持する。
ータを受け取ると、ハードウエアコントロールドライバ
12は、その発音パラメータから指定された音色、発音
時間、ピッチ等を検知する。この後、検知された音色に
対応する波形データWTが連続直線領域A1に格納され
ているか、あるいはスキャッター領域A2に格納されて
いるかが領域情報に基づいて判定される。当該波形デー
タが連続直線領域A1に格納されていると判定された場
合には、当該波形データWTが開始する論理アドレスL
とオフセット情報に基づいて、物理アドレスPを算出す
る。一方、当該波形データWTがスキャッター領域A2
に格納されていると判定された場合には、その論理アド
レスLを取得する。これらの物理アドレスPまたは論理
アドレスLは開始アドレスADRsとして出力される。
データの発音時間やピッチ等の発音パラメータHPは、音
源部100に送出される。また、送出されるアドレスが
物理アドレスPであるか論理アドレスLであるかを示す
L/Pフラグfが領域情報に基づいて生成され、インター
フェース部200に送られる。
はOSの一部であって、論理アドレスLに基づいて物理
アドレスPを設定するようになっている。
は、連続直線領域A1とスキャッター領域A2から構成
されており、連続直線領域A1には連続するアドレスに
波形データが格納され、スキャッター領域A2には一つ
の波形データがページ単位に分割されて飛び飛びに記憶
される。
構成例を示す。例えば、メインメモリ30の容量を64
Mバイト、ページの容量を4kバイトとすれば、このメ
インメモリ30を構成するページは1〜1684のペー
ジ番号で表すことができる。図に示す例は、ページ番号
1からページ番号nまでに連続直線領域A1を設け、ペ
ージ番号n+1からページ番号1684までにスキャッ
ター領域A2を設けたものである。この例の連続直線領
域A1には、ページ番号1,2,…mに対応する記憶領
域に波形データWT1が格納され、ページ番号m+1,
m+2,…2mに対応する記憶領域に波形データWT2
が格納される。
線部分は他のアプリケーションによって既に占有されて
いるページであり、その他の部分に波形データが格納さ
れる。図に示す例では、ページ番号n+1、n+4、1
684に波形データWT3が格納されている。
示すようにFIFO110、音源回路120、DAC
(Digital/Analog Converter)130、およびアドレス
計算回路140から構成されている。まず、FIFO1
10は、必要に応じてメインメモリ30から読み出され
た波形データWTを処理順に格納する。
ントロールドライバ12から受信した開始アドレスADRs
と発音パラメータHPのピッチ情報に基づいて、補間処理
を行って次に再生すべき波形データWTのアドレスを小
数点を含んだ形式で算出し、これを補間アドレスADRiと
してアドレス計算回路140に渡すように構成されてい
る。また、音源回路120は、FIFO110から読み
出された波形データWTと発音パラメータHPに基づい
て、ピッチ変換や音量調整等の処理を施して、楽音デー
タSDを再生するように構成されている。また、楽音デ
ータSDは、DAC130によってアナログ信号に変換
され、楽音信号Sとして出力されるようになっている。
を含む補間アドレスADRiに基づいて、補間アドレスADRi
の前後のアドレスを計算し、転送すべきデータの領域を
指示する転送領域指示C1を発行する。転送領域指示C
1は、転送を開始するアドレスを指示する転送開始アド
レスADRtsと転送数(連続するアドレス数)nから構成
される。例えば、図4に示すように、補間アドレスADRi
の値が5.25→6.5→7.75といったように変化
したとすると、アドレス計算回路140は、「5.2
5」に対してアドレス値5、6を、「6.5」に対して
アドレス値6,7を、「7.25」に対してアドレス値
7、8を特定する。この場合、特定されたアドレス値
は、「5、6、6、7、7、8」となり、アドレス値
6、7が重複している。このように同じアドレス値が連
続する場合には、重複するアドレス値を削除して転送領
域を特定する。この例の転送領域指示C1では、転送開
始アドレスADRtsの値が5、転送数nの値が4となる。
データWTを読み出すために補間処理を行って転送領域
指示C1を生成するが、補間処理は連続直線アドレスと
ピッチ情報に基づいて行われるため、開始アドレスADRs
が物理アドレスPであるか論理アドレスLかを問わず動
作することが可能である。
ェース部200とその周辺構成を示す図5を参照しつ
つ、インターフェース部200について説明する。図5
に示すようにインターフェース部200はバスマスター
転送コントロール回路210、ページ区切検出回路22
0、およびアドレス変換回路230から構成されてい
る。
210は、転送領域指示C1に基づいて、転送アドレス
ADRtを生成するとともに次に転送すべきデータを指示す
る次転送アドレスADRtnを生成するように構成されてい
る。転送アドレスADRtは転送領域指示C1の転送開始ア
ドレスADRtsを順次インクリメントして算出され、次転
送アドレスADRtnは転送アドレスADRtをインクリメント
して算出される。転送アドレスADRtはアドレス変換回路
220に送られ、一方、次転送アドレスADRtnはページ
区切検出回路230に送られる。なお、バスマスター転
送コントロール回路210は、転送停止指示C2と転送
再開指示C4に基づいて動作が制御されるようになって
いる。
は、ハードウエアコントロールドライバ12から送出さ
れる開始アドレスADRsが物理アドレスPであるか論理ア
ドレスLであるかに拘わらず動作するが、メインメモリ
30のアクセスに用いられるアドレスは物理アドレスP
であることが必要である。ここで、対象とする波形デー
タWTが連続直線領域A1に格納されているのであれ
ば、上述したようにハードウエアコントロールドライバ
12は開始アドレスADRsを物理アドレスPで出力する。
この場合には、音源部100の処理は物理アドレスPに
基づいて行われることになるので、バスマスタ−転送コ
ントロール回路210で生成される転送アドレスADRtも
物理アドレスPで表されることになる。
ッター領域A2に格納されているのであれば、開始アド
レスADRsは論理アドレスLで表され、転送アドレスADRt
も論理アドレスLで表されることになる。したがって、
転送アドレスADRtを論理アドレスLから物理アドレスP
に変換する必要がある。スキャッター領域A2はページ
単位に分割されているから、波形データWTが偶然に連
続するページに格納されている場合を除いて、ページの
区切りで物理アドレスPが不連続となる。このため、ペ
ージの区切りを越えるたびに転送アドレスADRtに対応す
る物理アドレスPを知る必要がある。換言すれば、同一
ページ内の波形データWTを転送するのであれば、物理
アドレスPの上位アドレスは変化しないのでこれを用い
ればよく、ページの区切りを越えた場合にのみ物理アド
レスPを取得すればよい。
設けられたものであって、転送領域指示C1が論理アド
レスLに基づくものである場合にページの区切りを検出
して割込指示C3を発行するように構成されており、比
較器やレジスタ等を備える。また、L/Pフラグfが論理ア
ドレスLを指示する場合にのみページ区切検出回路22
0は動作する。具体的には、直前の次転送アドレスADRt
nと現在の次転送アドレスADRtnの上位ビット(ページの
容量を越えるもの)を比較器を用いて比較し両者が不一
致となったとき、割込指示C3を発行する。例えば、論
理アドレスLが32ビットで1ページが12ビットであ
るならば、上位20ビットを比較する。
ADRtn(論理アドレスL)を格納しておく。物理アドレ
ス取得設定ルーチン13は、割込指示C3を受け取る
と、レジスタにアクセスして論理アドレスLを読み出し
て、これに対応する物理アドレスPを生成するようにな
っている。
合には、物理アドレス取得設定ルーチン13によって物
理アドレスPが取得されるまで処理を待つ必要がある。
このため、ページ区切検出回路220はページの区切り
を検出すると、転送停止指示C2をバスマスター転送コ
ントロール回路210に対して発行するとともに、物理
アドレス取得設定ルーチン13から転送再開指示C4が
あると、バスマスター転送コントロール回路210に対
して転送再開指示C4を送るようになっている。
ラグfを参照して、転送アドレスADRtを物理アドレスP
に変換するように構成されており、セレクタやレジスタ
等を備えている。このレジスタには物理アドレス取得設
定ルーチン13で取得された物理アドレスPが書き込ま
れるようになっており、セレクタは、L/Pフラグfに基
づいてレジスタのデータと転送アドレスADRtを選択して
出力ようになっている。具体的には、L/Pフラグfが物
理アドレスPを指示するらば、転送アドレスADRtは物理
アドレスPで表されているので、転送アドレスADRtをそ
のまま出力する。一方、L/Pフラグfが論理アドレスL
を指示する場合には、転送アドレスADRtのうちページ内
のアドレスを指示する下位ビットは転送アドレスADRtを
用い、ページ番号等を指示する上位ビットはレジスタに
格納されている物理アドレスPを出力するように構成さ
れている。
成されると、これを用いてメインメモリ30がアクセス
され波形データWTが読み出され、音源部100のFI
FO110に波形データWTが順次格納される。
モリ管理動作を図面を参照しつつ説明する。図6は、コ
ンピュータシステム1のメモリ管理をサウンド処理を一
例として示したものである。
コントロールドライバ12が立ち上がると、ハードウエ
アコントロールドライバ12はOSに対して連続直線領
域A1をメインメモリ30に確保するように要請する
(ステップS1)。
ハードウエアコントロールドライバ12は、波形データ
WTをメインメモリ30に書き込む(ステップ2)。具
体的には、プログラムによって予め登録されている波形
データWTをハードディスク50から読み出して連続直
線領域A1に格納するとともに、他の波形データWTを
必要に応じてスキャッター領域A2に格納する。これに
より、使用頻度の高い音色に対応する波形データWTを
連続直線領域A1に、さほど使用頻度の高くない音色を
スキャッター領域A2に格納することができ、データの
特性に応じた取り扱いが可能となる。
を出力すると(ステップS3)、ハードウエアコントロ
ールドライバ12は、発音データの指示する音色に対応
する波形データWTが格納されている領域が、連続直線
領域A1であるかスキャッター領域A2であるかを判定
し、判定結果に基づいてL/Pフラグfを生成し、インタ
ーフェース部200に出力する(ステップS4)。
12は、上記判定結果と当該波形データWTの先頭を示
す論理アドレスLに基づいて、開始アドレスADRsを生成
するとともに、発音データから得られるピッチ情報や音
量情報を発音パラメータHPとして音源部100に出力す
る(ステップS4)
づいて補間処理に伴うアドレス計算等を実行して対象と
する波形データWTに係わる転送領域を特定し、転送領
域指示C1を生成し、これをインターフェース部200
のバスマスター転送コントロール回路210に対して発
行する(ステップS6)。ここで、転送領域指示C1
は、上述したように転送開始アドレスADRtsと転送数n
から構成されるので、バスマスター転送コントロール回
路210は、転送開始アドレスADRtsを順次インクリメ
ントすることによって、転送アドレスADRtを生成するこ
とができる。
示するか否かが判定される(ステップS7)。論理アド
レスLを指示するのであれば、対象とする波形データW
Tがスキャッター領域A2に格納されているので、物理
アドレスPは、ページの区切りを越えるたびに不連続と
なる。このため、ステップ7の判定結果がYの場合に
は、ステップS8に進んでページ区切りを検出したか否
かの判定が行われ、ページ区切検出回路220がページ
区切を検出すると、割込指示C3と転送停止指示C2が
発行される(ステップS2)。
ター転送コントロール回路210は転送アドレスADRtの
生成を停止し、一方、割込指示C3によって物理アドレ
ス取得設定ルーチン13は、ページ区切検出回路220
にアクセスしてレジスタにセットされている論理アドレ
スLで表された次転送アドレスADRtnを取得する。そし
て、この論理アドレスLに対応する物理アドレスPを算
出すると(ステップS10)、これをアドレス変換回路
230のレジスタにセットする。
3が転送再開指示C4を発行すると(ステップS1
1)、当該指示がページ区切検出回路220を介してバ
スマスター転送コントロール回路210に伝えられ、転
送アドレスADRtの転送が再開される。
ドレスADRtのうちページ内のアドレスを指示する下位ビ
ットは転送アドレスADRtを、ページ番号等を指示する上
位ビットはレジスタに格納されている物理アドレスPを
出力することにより、物理アドレスPが得られ、これを
用いてメインメモリ30から波形データWTが読み出さ
れる(ステップS12)。
fが物理アドレスPを示す場合には、アドレス変換を施
す必要がないので、アドレス変換回路230は転送アド
レスADRtをそのまま出力し、これを用いてメインメモリ
30から波形データWTが読み出される(ステップS1
2)。
音源部100のFIFO110に格納され、音源回路1
20はFIFO110から出力される波形データWTに
基づいて、楽音データSDを生成する(ステップS1
4)。この後、ステップ7に戻り、ステップS7からス
テップS14までの処理が繰り返され、楽音データSD
に基づいて楽音信号Sが再生される。
ば、使用頻度(データの特性)の高い波形データWTを
連続直線領域A1に格納したので、発音データに基づい
て楽音信号Sを再生する際に、大部分は連続直線領域A
1に格納されている波形データWTを読み出せば足り
る。このため、全ての波形データWTをスキャッター領
域A2に格納する場合と比較して、ページの区切り毎に
発行する割込指示C3を大幅に低減させることができ、
複数の音色を同時に発音しても円滑なデータ転送を行う
ことが可能となる。
域A1に格納するのではなく、使用頻度の低い波形デー
タWTはスキャッター領域A2に格納するようにしたの
で、他のアプリケーションに与える負荷を軽減すること
ができ、コンピュータシステム1全体として見たときに
も、バランスのとれたメモリ管理を行うことができる。
が論理アドレスLであるか、物理アドレスPであるかに
よって、動作を切り替える必要がないので、簡易な構成
で高速に動作させることができる。
上述した実施形態に限定されるものではなく、以下に述
べる各種の変形が可能である。 上述した実施形態において、音源ボード40とメイン
メモリ30を接続するバス20としてはPCIバスを用
いることができるが、この替わりにAGP(Accelerate
d Graphics Port)バスを用いるようにしてもよい。バ
ス20がバースト転送モードをサポートすることは必須
ではない。
タWTの使用頻度に応じて連続直線領域A1に格納する
か、スキャッター領域A2に格納するかを決定できるよ
うに、予め使用頻度の高い波形データWTをプログラム
に登録するようにしたが、例えば、再生すべき楽曲のジ
ャンルが分かっている場合には、そのジャンルに応じた
波形データWTを連続直線領域A1に格納するようにし
てもよい。要は、データの特性に応じて、連続直線領域
A1に格納するかスキャッター領域A2に格納するかを
決定すればよい。
ハードウエアコントロールドライバ12の立ち上がり、
その時点で連続直線領域A1を確保するようにしたが、
OSが起動時以外でも連続直線領域A1を確保するよう
に構成されている場合は、これに限定されるものではな
く、必要に応じて連続直線領域A1を確保するようにす
ればよい。
1の一例としてメインメモリ30において、1つの連続
直線領域A1を確保したが、これを複数確保するように
してもよい(例えば、4つ)。また、連続直線領域A1
は、メインメモリ30の先頭アドレスから開始する必要
もない。例えば、図7に示すメインメモリ30は、2つ
の連続直線領域A11,A12と3つのスキャッター領
域A21,A22,A23とから構成されており、2つ
の連続直線領域A11,A12が、途中から始まるよう
に構成されている。また、各波形データWTを異なる連
続直線領域A1に格納するようにしてもよい。
領域A1がメインメモリ30上で移動することを考慮し
ていなかったが、OSの都合で連続直線領域A1を移動
させるようにしてもよい。この場合には、OSが移動に
伴ってオフセット情報を変更させることによってハード
ウエアコントロールドライバ12は、論理アドレスLと
オフセット情報に基づいて物理アドレスPを生成するこ
とができる。
テムを音源システムに適用した場合を一例として説明し
たが、本発明に係わるメモリ管理方法はこれに限定され
るものではなく、一般的なコンピュータシステムに適用
してもよいことは勿論である。この場合には、例えば、
図5において音源部100を削除し、転送領域指示C1
の替わりにハードウエアコントロールドライバ12で生
成されるアドレスをバスマスター転送コントロール回路
210に供給すればよい。
項によれば、データの特性に応じてデータを第1の記憶
領域と第2の記憶領域に各々格納するようにしたので、
物理アドレスを取得するための割込発生を低減すること
ができ、かつ、他のアプリケーションに与える負荷を軽
減して、バランスのとれたメモリ管理を行うことができ
る。
ステムの全体構成を示すブロック図である。
詳細構成を示すブロック図である。
す図である。
を示す図である。
の周辺構成を示すブロック図である。
メモリ管理動作を示すフローチャートである。
である。
理装置)、12…ハードウエアコントロールドライバ
(第1の管理手段、決定手段、第2の管理手段、判別手
段、アドレス生成手段、フラグ生成手段、特定手段)、
20…バス(データ転送手段)、30…メインメモリ
(メモリ)、220…ページ区切検出回路(ページ区切
検出手段)、230…アドレス変換回路(データ転送手
段)、SD…楽音データ、P…物理アドレス、L…論理
アドレス、A1…連続直線領域(第1の記憶領域)、A
2…スキャッター領域(第2の記憶領域)、WT…波形
データ(データ)。
Claims (5)
- 【請求項1】 メモリを備えたコンピュータシステムに
用いられるメモリ管理方法において、 前記メモリを、連続したアドレスに対応する第1の記憶
領域と、固定長のアドレスに対応する複数のページを備
えた第2の記憶領域とに分けて管理し、 記憶すべきデータの特性に応じて、当該データを前記第
1または第2の記憶領域のうちいずれに記憶するかを決
定し、 決定結果に従って、前記データを前記メモリに記憶する
ことを特徴とするメモリ管理方法。 - 【請求項2】 前記データを前記第1または第2の記憶
領域のうちいずれに記憶したかを示す領域情報と当該デ
ータの論理アドレスとを管理するとともに、前記第1の
記憶領域が開始する物理アドレスをオフセット情報とし
て管理し、 前記データを前記メモリからデバイスに転送する際に、
当該データが前記第1または第2の記憶領域のうちいず
れに記憶されているかを前記領域情報に基づいて判別
し、 転送すべき前記データが前記第1の記憶領域に記憶され
ていると判別された場合には、当該データの論理アドレ
スと前記オフセット情報とに基づいて物理アドレスを算
出し、当該物理アドレスを用いて前記データを前記メモ
リから前記デバイスに転送し、 転送すべき前記データが前記第2の記憶領域に記憶され
ていると判別された場合には、前記ページの区切りを検
出し、 前記ページの区切りが検出されるたびに、中央演算処理
装置に対して、割込を発行するとともに該当ページの論
理アドレスを渡し、 前記中央演算処理装置が前記論理アドレスに対応する物
理アドレスを設定すると、該当ページ内をアクセスする
際に、前記ページの容量に対応する下位ビットに当該デ
ータの論理アドレスを、前記下位ビットを越える上位ビ
ットに前記物理アドレスを用いて前記データを前記メモ
リから前記デバイスに転送することを特徴とする請求項
1に記載のメモリ管理方法。 - 【請求項3】 メモリ、中央演算処理装置、およびデバ
イスを備えたコンピュータシステムにおいて、 前記メモリを、連続したアドレスに対応する第1の記憶
領域と、固定長のアドレスに対応する複数のページを備
えた第2の記憶領域とに分けて管理する第1の管理手段
と、 記憶すべきデータの特性に応じて、当該データを前記第
1または第2の記憶領域のうちいずれに記憶するかを決
定する決定手段と、 前記データを前記第1または第2の記憶領域のうちいず
れに記憶したかを示す領域情報と当該データの論理アド
レスとを管理するとともに、前記第1の記憶領域が開始
する物理アドレスをオフセット情報として管理する第2
の管理手段と、 前記データを前記メモリから前記デバイスに転送する際
に、当該データが前記第1または第2の記憶領域のうち
いずれに記憶されているかを前記領域情報に基づいて判
別する判別手段と、 転送すべき前記データが前記第1の記憶領域に記憶され
ていると判別された場合には、当該データの論理アドレ
スと前記オフセット情報とに基づいて物理アドレスを生
成出力し、転送すべき前記データが前記第2の記憶領域
に記憶されていると判別された場合には当該データの論
理アドレスを出力するアドレス生成手段と、 前記領域情報に基づいて、前記アドレス生成手段から出
力されるアドレスが論理アドレスであるか物理アドレス
であるかを示すフラグを生成するフラグ生成手段と、 前記フラグが論理アドレスを指示する場合に、前記アド
レス生成手段から出力される前記論理アドレスに基づい
て、ページの区切りを検出するページ区切検出手段と、 前記フラグが物理アドレスを指示する場合には、前記ア
ドレス生成手段から出力されるアドレスを用いて前記デ
ータを前記メモリから前記デバイスに転送し、前記フラ
グが論理アドレスを指示する場合には、前記ページ区切
検出手段によってページの区切りが検出されるたびに、
前記中央演算処理装置から該当ページの物理アドレスを
取得し、当該物理アドレスと前記データの論理アドレス
を組み合わせて、前記データを該当ページから前記デバ
イスに転送するデータ転送手段とを備えたことを特徴と
するコンピュータシステム。 - 【請求項4】 複数の音色に対応する各波形データを記
憶するメモリ、および前記メモリの物理アドレスを論理
アドレスに対応づけて管理する中央演算処理装置を備
え、音色とピッチを指示する発音データに基づいて楽音
データを再生する音源システムにおいて、 前記メモリを、連続したアドレスに対応する第1の記憶
領域と、固定長のアドレスに対応する複数のページを備
えた第2の記憶領域とに分けて管理する第1の管理手段
と、 記憶すべき前記波形データの特性に応じて、当該波形デ
ータを前記第1または第2の記憶領域のうちいずれに記
憶するかを決定する決定手段と、 前記波形データを前記第1または第2の記憶領域のうち
いずれに記憶したかを示す領域情報と当該波形データの
論理アドレスとを管理するとともに、前記第1の記憶領
域が開始する物理アドレスをオフセット情報として管理
する第2の管理手段と、 前記発音データが入力されると、当該発音データの指示
する音色に応じた前記波形データを特定する特定手段
と、 前記特定手段によって特定された波形データが、前記第
1または第2の記憶領域のうちいずれに記憶されている
かを前記領域情報に基づいて判別する判別手段と、 前記波形データが前記第1の記憶領域に記憶されている
と判別された場合には、当該波形データの論理アドレス
と前記オフセット情報とに基づいて物理アドレスを生成
出力し、前記波形データが前記第2の記憶領域に記憶さ
れていると判別された場合には当該波形データの論理ア
ドレスを出力するアドレス生成手段と、 前記アドレス生成手段によって生成されたアドレスと前
記発音データが指示するピッチに基づいて、前記波形デ
ータの転送アドレスを生成するとともに、転送された波
形データに基づいて前記楽音データを生成する音源装置
と、 前記領域情報に基づいて、前記アドレス生成手段から出
力されるアドレスが論理アドレスであるか物理アドレス
であるかを示すフラグを生成するフラグ生成手段と、 前記フラグが論理アドレスを指示する場合に、前記転送
アドレスに基づいて、ページの区切りを検出するページ
区切検出手段と、 前記フラグが物理アドレスを指示する場合には、前記転
送アドレスを用いて前記波形データを前記メモリから前
記音源装置に転送し、前記フラグが論理アドレスを指示
する場合には、前記ページ区切検出手段によってページ
の区切りが検出されるたびに、前記中央演算処理装置か
ら該当ページの物理アドレスを取得し、当該物理アドレ
スと前記転送アドレスを組み合わせて、前記波形データ
を該当ページから前記音源装置に転送するデータ転送手
段とを備えたことを特徴とする音源システム。 - 【請求項5】 前記ページ区切検出手段は、前記転送ア
ドレスのうち、前記ページの容量に対応する下位ビット
を越える上位ビットを監視することにより、ページの区
切りを検出することを特徴とする請求項4に記載の音源
システム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP08580398A JP3672159B2 (ja) | 1998-03-31 | 1998-03-31 | 音源システム |
US09/281,533 US6473847B1 (en) | 1998-03-31 | 1999-03-30 | Memory management method for use in computer system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP08580398A JP3672159B2 (ja) | 1998-03-31 | 1998-03-31 | 音源システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11282743A true JPH11282743A (ja) | 1999-10-15 |
JP3672159B2 JP3672159B2 (ja) | 2005-07-13 |
Family
ID=13869047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP08580398A Expired - Fee Related JP3672159B2 (ja) | 1998-03-31 | 1998-03-31 | 音源システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US6473847B1 (ja) |
JP (1) | JP3672159B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008016023A (ja) * | 2006-06-30 | 2008-01-24 | Seagate Technology Llc | 可変媒体特性を有する記憶媒体付オブジェクトベース記憶装置 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3600564B2 (ja) * | 2001-09-11 | 2004-12-15 | 株式会社東芝 | 複数の無線部を有する携帯型情報機器 |
JP3778136B2 (ja) * | 2002-06-13 | 2006-05-24 | ブラザー工業株式会社 | 印刷制御装置、印刷装置、及びプログラム |
US6904490B2 (en) * | 2002-10-10 | 2005-06-07 | International Business Machines Corporation | Method and system of managing virtualized physical memory in a multi-processor system |
US6920521B2 (en) * | 2002-10-10 | 2005-07-19 | International Business Machines Corporation | Method and system of managing virtualized physical memory in a data processing system |
US6907494B2 (en) * | 2002-10-10 | 2005-06-14 | International Business Machines Corporation | Method and system of managing virtualized physical memory in a memory controller and processor system |
US7165160B2 (en) * | 2004-09-08 | 2007-01-16 | Hitachi, Ltd. | Computing system with memory mirroring and snapshot reliability |
US20060080722A1 (en) * | 2004-10-12 | 2006-04-13 | John Santhoff | Buffered waveforms for high speed digital to analog conversion |
JP2006133989A (ja) * | 2004-11-04 | 2006-05-25 | Hitachi Ltd | ストレージシステムの管理方法、及び装置 |
TWI270051B (en) * | 2005-08-18 | 2007-01-01 | Sunplus Technology Co Ltd | Structure and method for broadcasting MIDI message and multi-media apparatus |
US7873953B1 (en) * | 2006-01-20 | 2011-01-18 | Altera Corporation | High-level language code sequence optimization for implementing programmable chip designs |
JP5534388B2 (ja) * | 2009-03-23 | 2014-06-25 | ヤマハ株式会社 | 楽音生成装置 |
US8805962B1 (en) * | 2011-02-28 | 2014-08-12 | Amazon Technologies, Inc. | Making publisher content available to specific users |
US20140068182A1 (en) * | 2012-09-04 | 2014-03-06 | Drobo, Inc. | Storage Virtualization In A Block-Level Storage System |
US11755589B2 (en) * | 2020-08-05 | 2023-09-12 | Ocient Holdings LLC | Delaying segment generation in database systems |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5440687A (en) * | 1993-01-29 | 1995-08-08 | International Business Machines Corporation | Communication protocol for handling arbitrarily varying data strides in a distributed processing environment |
US5897660A (en) * | 1995-04-07 | 1999-04-27 | Intel Corporation | Method for managing free physical pages that reduces trashing to improve system performance |
US5832526A (en) * | 1996-01-24 | 1998-11-03 | Symantec Corporation | Method and apparatus using slack area of file storage structures for file reconstruction |
-
1998
- 1998-03-31 JP JP08580398A patent/JP3672159B2/ja not_active Expired - Fee Related
-
1999
- 1999-03-30 US US09/281,533 patent/US6473847B1/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008016023A (ja) * | 2006-06-30 | 2008-01-24 | Seagate Technology Llc | 可変媒体特性を有する記憶媒体付オブジェクトベース記憶装置 |
JP2011123890A (ja) * | 2006-06-30 | 2011-06-23 | Seagate Technology Llc | 可変媒体特性を有する記憶媒体付オブジェクトベース記憶装置 |
Also Published As
Publication number | Publication date |
---|---|
JP3672159B2 (ja) | 2005-07-13 |
US6473847B1 (en) | 2002-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH11282743A (ja) | メモリ管理方法、コンピュータシステムおよび音源システム | |
JP2671747B2 (ja) | 楽音形成装置 | |
US7381879B2 (en) | Sound waveform synthesizer | |
JP2904088B2 (ja) | 楽音生成方法および装置 | |
JP3293434B2 (ja) | 楽音発生方法 | |
JP3637578B2 (ja) | 楽音生成方法 | |
US10474387B2 (en) | Musical sound generation device, musical sound generation method, storage medium, and electronic musical instrument | |
JP2924745B2 (ja) | 楽音発生装置及び方法 | |
JPH1020860A (ja) | 楽音発生装置 | |
JP2000276172A (ja) | 楽音生成装置および記憶媒体 | |
JP3918817B2 (ja) | 楽音生成装置 | |
JP3152198B2 (ja) | 楽音発生方法および楽音発生装置 | |
JP2000122668A (ja) | デジタル音声データ処理装置およびコンピュータシステム | |
JP3637577B2 (ja) | 楽音生成方法 | |
EP0801784A1 (en) | Pc audio system with wavetable cache | |
JPH0331273B2 (ja) | ||
JP3003559B2 (ja) | 楽音生成方法 | |
JP5510813B2 (ja) | 楽音生成装置 | |
JP3301350B2 (ja) | 楽音発生装置 | |
JP5510815B2 (ja) | 楽音生成装置 | |
JP3873160B2 (ja) | 楽音発生装置及び楽音発生処理のプログラムを記録した記録 媒体 | |
JP3050779B2 (ja) | 信号処理装置 | |
JP3603849B2 (ja) | 楽音発生方法 | |
JP3646823B2 (ja) | 電子楽器 | |
JP5510814B2 (ja) | 楽音生成装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20031216 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040216 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20040227 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20040430 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050414 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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: 20090428 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090428 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100428 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110428 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120428 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130428 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140428 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |