(57)【特許請求の範囲】
【請求項１】
メインメモリが接続されたバスに接続されるホストＣＰＵとＤＭＡＣを有するデータの転送元処理部と、
書込用であったものが読出用に、読出用であったものが書込用にと交互に切り替えられる実質的に２つのバッファメモリと、
ＣＰＵを有するデータの転送先処理部とを備え、
前記転送元処理部は、前記バッファメモリのメモリ容量よりも大きい容量のデータサイズを扱い、
前記転送先処理部は、
前記転送元処理部からデータ転送の開始指示が通知されたとき、読出用に指定していない前記バッファメモリを書込用に指定し、データ転送要求を前記転送元処理部の前記ＤＭＡＣに送り、該転送元処理部の該ＤＭＡＣからデータが転送されてきたとき、書込用に指定した前記バッファメモリに一定のデータサイズまで書き込んだ後、読出用に指定していた前記バッファメモリが空となるのを待ち、空となったときに、再びデータ転送要求を前記転送元処理部に送るとともに読出用と書込用とを切り替えてデータの読み書き制御を行い、このデータの読み書き制御を転送全データサイズの書込処理が終了するまで継続し、転送全データサイズの書込処理終了時に前記ＤＭＡＣから前記ホストＣＰＵに対して転送終了割込を発生するよう制御する
ことを特徴とするデータ転送装置。
【請求項２】
請求項１記載のデータ転送装置において、
前記転送先処理部がデータ転送要求を前記転送元処理部に送るたびに、前記転送元処理部から所定のデータ転送容量に対応する分のデータずつ転送される
ことを特徴とするデータ転送装置。
【請求項３】
請求項１又は２記載のデータ転送装置において、
前記転送先処理部は、書込用に指定した前記バッファメモリが満杯となるまでデータを書き込む
ことを特徴とするデータ転送装置。
【請求項４】
請求項１〜３のいずれか１項に記載のデータ転送装置において、
前記転送先処理部が楽音処理部であり、前記転送データが楽音データである
ことを特徴とするデータ転送装置。
【請求項５】
バスにメインメモリが接続された前記バスに接続されるホストＣＰＵとＤＭＡＣを有するホスト処理部とＣＰＵを有する楽音処理部が接続され、
前記楽音処理部に、書込用であったものが読出用に、読出用であったものが書込用にと交互に切り替えられる実質的に２つのバッファメモリが接続され、
前記ホスト処理部から前記バスおよび前記楽音処理部を介して前記バッファメモリに楽音データが転送されるデータ転送システムにおいて、
前記ホスト処理部は、前記バッファメモリのメモリ容量よりも大きい容量のデータサイズを扱い、
前記楽音処理部は、
前記ホスト処理部からデータ転送の開始指示が通知されたとき、読出用に指定していない前記バッファメモリを書込用に指定し、データ転送要求を前記ホスト処理部の前記ＤＭＡＣに送り、該ホスト処理部の該ＤＭＡＣからデータが転送されてきたとき、書込用に指定した前記バッファメモリに一定のデータサイズまで書き込んだ後、読出用に指定していた前記バッファメモリが空となるのを待ち、空となったときに、再びデータ転送要求を前記ホスト処理部に送るとともに読出用と書込用とを切り替えてデータの読み書き制御を行い、このデータの読み書き制御を転送全データサイズの書込処理が終了するまで継続し、転送全データサイズの書込処理終了時に前記ＤＭＡＣから前記ホストＣＰＵに対して転送終了割込を発生するよう制御する
ことを特徴とするデータ転送システム。
【請求項６】
請求項５記載のデータ転送システムにおいて、
前記楽音処理部がデータ転送要求を前記ホスト処理部に送るたびに、前記ホスト処理部から所定のデータ転送容量に対応する分のデータずつ転送される
ことを特徴とするデータ転送システム。
【請求項７】
請求項５又は６記載のデータ転送システムにおいて、
前記楽音処理部は、書込用に指定した前記バッファメモリが満杯となるまでデータを書き込む
ことを特徴とするデータ転送システム。
【請求項８】
バスにメインメモリが接続された前記バスに接続されるホストＣＰＵとＤＭＡＣを有するホスト処理部とＣＰＵを有する出力処理部が接続され、
この出力処理部に実質的に２つのバッファメモリと出力部が接続されるデータ転送システムにおけるデータ転送方法において、
前記ホスト処理部は、前記バッファメモリのメモリ容量よりも大きい容量のデータサイズを扱い、
前記出力処理部は、
前記ホスト処理部からデータ転送の開始指示が通知されたとき、読出用に指定していない前記バッファメモリを書込用に指定し、データ転送要求を前記ホスト処理部の前記ＤＭＡＣに送り、該ホスト処理部の該ＤＭＡＣからデータが転送されてきたとき、書込用に指定した前記バッファメモリに一定サイズのデータを書き込んだ後、読出用に指定していた前記バッファメモリが空となるのを待ち、空となったときに、再びデータ転送要求を前記ホスト処理部に送るとともに読出用と書込用とを切り替えてデータの読み書き制御を行い、このデータの読み書き制御を転送全データサイズの書込処理が終了するまで継続し、転送全データサイズの書込処理終了時に前記ＤＭＡＣから前記ホストＣＰＵに対して転送終了割込を発生するよう制御する
ことを特徴とするデータ転送方法。
【請求項９】
請求項８記載のデータ転送方法において、
前記出力処理部がデータ転送要求を前記ホスト処理部に送るたびに、前記ホスト処理部から所定のデータ転送容量に対応する分のデータずつ転送される
ことを特徴とするデータ転送方法。
【請求項１０】
請求項８又は９記載のデータ転送方法において、
前記出力処理部は、書込用に指定した前記バッファメモリが満杯となるまでデータを書き込む
ことを特徴とするデータ転送方法。
【請求項１１】
請求項９又は１０記載のデータ転送方法において、
前記データが楽音データである
ことを特徴とするデータ転送方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、データの転送元からデータの転送先にデータを転送する際に、バッファメモリを利用するデータ転送装置、データ転送システムおよびデータ転送方法に関する。
【０００２】
【従来の技術】
近年、ＣＤＲＯＭ（compact disk read only memory ）やハードディスク等の２次記憶装置のメモリ容量が飛躍的に増加し、大量の楽音データを簡易に扱うことができるようになってきている。
【０００３】
また、表現力豊かな楽音データを実時間で生成することが可能な演算装置も簡易に利用することができるようになってきている。
【０００４】
さらには、楽音データをネットワークや公衆回線を通じて容易に取り込むこともできるようになってきている。
【０００５】
このようにして得られる楽音データは、前記の２次記憶装置、演算装置あるいは公衆回線等から、たとえば、直接、換言すれば、圧縮データとされることなく、楽音データ再生装置に転送され、該楽音データ再生装置により連続的に実時間で再生される。
【０００６】
楽音データ再生装置により連続的に実時間で途切れることなく楽音データを再生するために、先入れ先出しメモリであるＦＩＦＯメモリを利用したり、ＲＡＭ(random access memory)のメモリ領域を分割して利用するダブルバッファメモリ処理が行われている。
【０００７】
このダブルバッファメモリ処理では、一方のバッファメモリにデータが満杯になったところで、該一方のバッファメモリからデータを読み出し、たとえば、楽音データの再生を開始し、この読出が終了する前に他方のバッファメモリのデータが満杯となるようなデータ転送処理を行い、前記一方のバッファメモリのデータが空となった時点で他方のバッファメモリに読出を切り替えることで、データの読出の連続性、たとえば、楽音データの連続再生が可能とされている。
【０００８】
【発明が解決しようとする課題】
ところで、従来のダブルバッファメモリ処理では、片方のバッファメモリが空になったことをデータ転送元のＣＰＵ（central processing unit ）等の処理装置に通知するために、割り込み処理が使用されている。
【０００９】
しかしながら、この割り込み処理では、処理装置内のレジスタや各種情報を一旦保存して処理を行わなければならず、処理装置に対する負担が大きくなるという問題がある。
【００１０】
しかも、ダブルバッファメモリ処理を使用してデータを出力するためには、この出力データが途切れないように、データ転送の最初の段階でダブルバッファメモリ中、一方のバッファメモリのデータを満杯としておく必要があり、最初の再生を再生指示に即応して実行するためには、バッファメモリのメモリ容量をなるべく小さい容量とすることが好ましい。しかしながら、バファメモリの容量を小さい容量とすると、より割り込み処理の頻度が高くなり、処理装置の負担がますます大きくなるという問題がある。
【００１１】
この発明はこのような課題を考慮してなされたものであり、割り込み処理回数を低減して、データ転送側の処理装置の負担を相当に小さくすることを可能とするデータ転送装置、データ転送システムおよびデータ転送方法を提供することを目的とする。
【００１２】
【課題を解決するための手段】
この発明のデータ転送装置は、メインメモリが接続されたバスに接続されるホストＣＰＵとＤＭＡＣを有するデータの転送元処理部と、書込用であったものが読出用に、読出用であったものが書込用にと交互に切り替えられる実質的に２つのバッファメモリと、ＣＰＵを有するデータの転送先処理部とを備え、前記転送元処理部は、前記バッファメモリのメモリ容量よりも大きい容量のデータサイズを扱い、前記転送先処理部は、前記転送元処理部からデータ転送の開始指示が通知されたとき、読出用に指定していない前記バッファメモリを書込用に指定し、データ転送要求を前記転送元処理部の前記ＤＭＡＣに送り、該転送元処理部の該ＤＭＡＣからデータが転送されてきたとき、書込用に指定した前記バッファメモリに一定のデータサイズまで書き込んだ後、読出用に指定していた前記バッファメモリが空となるのを待ち、空となったときに、再びデータ転送要求を前記転送元処理部に送るとともに読出用と書込用とを切り替えてデータの読み書き制御を行い、このデータの読み書き制御を転送全データサイズの書込処理が終了するまで継続し、転送全データサイズの書込処理終了時に前記ＤＭＡＣから前記ホストＣＰＵに対して転送終了割込を発生するよう制御することを特徴とする（請求項１記載の発明）。
【００１３】
この発明によれば、データ転送先処理部において、バッファメモリを書込用と読出用とに交互に切り替えるようにしているので、データ転送元処理部に対する割込処理を少なくすることができ、データ転送元処理部の負担を軽減することができる。なお、１回のデータ転送のサイズは、バッファメモリが満杯となるサイズではなく、一定のデータサイズとすることができる。
【００１４】
また、前記転送先処理部がデータ転送要求を前記転送元処理部に送るたびに、前記転送元処理部から所定のデータ転送容量に対応する分のデータずつ転送される（請求項２記載の発明）。
【００１６】
また、前記転送先処理部は、書込用に指定した前記バッファメモリが満杯となるまでデータを書き込む（請求項３記載の発明）。
【００１７】
転送データは、楽音データとしてもよい（請求項５記載の発明）。
【００１８】
また、本発明のデータ転送システムは、バスにメインメモリが接続された前記バスに接続されるホストＣＰＵとＤＭＡＣを有するホスト処理部とＣＰＵを有する楽音処理部が接続され、前記楽音処理部に、書込用であったものが読出用に、読出用であったものが書込用にと交互に切り替えられる実質的に２つのバッファメモリが接続され、前記ホスト処理部から前記バスおよび前記楽音処理部を介して前記バッファメモリに楽音データが転送されるデータ転送システムにおいて、前記ホスト処理部は、前記バッファメモリのメモリ容量よりも大きい容量のデータサイズを扱い、前記楽音処理部は、前記ホスト処理部からデータ転送の開始指示が通知されたとき、読出用に指定していない前記バッファメモリを書込用に指定し、データ転送要求を前記ホスト処理部の前記ＤＭＡＣに送り、該ホスト処理部の該ＤＭＡＣからデータが転送されてきたとき、書込用に指定した前記バッファメモリに一定のデータサイズまで書き込んだ後、読出用に指定していた前記バッファメモリが空となるのを待ち、空となったときに、再びデータ転送要求を前記ホスト処理部に送るとともに読出用と書込用とを切り替えてデータの読み書き制御を行い、このデータの読み書き制御を転送全データサイズの書込処理が終了するまで継続し、転送全データサイズの書込処理終了時に前記ＤＭＡＣから前記ホストＣＰＵに対して転送終了割込を発生するよう制御することを特徴とする（請求項５記載の発明）。
【００１９】
この発明のデータ転送システムにおいても、楽音処理部において、バッファメモリを書込用と読出用とに交互に切り替えるようにしているので、ホスト処理部に対する割込処理を少なくすることができ、ホスト処理部の負担を軽減することができる。なお、１回のデータ転送のサイズは、バッファメモリが満杯となるサイズではなく、一定のデータサイズとすることができる。
【００２０】
また、前記楽音処理部がデータ転送要求を前記ホスト処理部に送るたびに、前記ホスト処理部から所定のデータ転送容量に対応する分のデータずつ転送される（請求項６記載の発明）。
【００２２】
さらに、前記楽音処理部は、書込用に指定した前記バッファメモリが満杯となるまでデータを書き込む（請求項７記載の発明）。
【００２３】
また、この発明のデータ転送方法は、バスにメインメモリが接続された前記バスに接続されるホストＣＰＵとＤＭＡＣを有するホスト処理部とＣＰＵを有する出力処理部が接続され、この出力処理部に実質的に２つのバッファメモリと出力部が接続されるデータ転送システムにおけるデータ転送方法において、前記ホスト処理部は、前記バッファメモリのメモリ容量よりも大きい容量のデータサイズを扱い、前記出力処理部は、前記ホスト処理部からデータ転送の開始指示が通知されたとき、読出用に指定していない前記バッファメモリを書込用に指定し、データ転送要求を前記ホスト処理部の前記ＤＭＡＣに送り、該ホスト処理部の該ＤＭＡＣからデータが転送されてきたとき、書込用に指定した前記バッファメモリに一定サイズのデータを書き込んだ後、読出用に指定していた前記バッファメモリが空となるのを待ち、空となったときに、再びデータ転送要求を前記ホスト処理部に送るとともに読出用と書込用とを切り替えてデータの読み書き制御を行い、このデータの読み書き制御を転送全データサイズの書込処理が終了するまで継続し、転送全データサイズの書込処理終了時に前記ＤＭＡＣから前記ホストＣＰＵに対して転送終了割込を発生するよう制御することを特徴とする（請求項８記載の発明）。
【００２４】
この発明によれば、バッファメモリへのデータの転送処理を主に出力処理部で制御するようにしているので、ホスト処理部の転送処理に対する負担を少なくすることができる。なお、１回のデータ転送のサイズは、バッファメモリが満杯となるサイズではなく、一定のデータサイズとすることができる。
【００２５】
また、前記出力処理部がデータ転送要求を前記ホスト処理部に送るたびに、前記ホスト処理部から所定のデータ転送容量に対応する分のデータずつ転送される（請求項９記載の発明）。
【００２７】
また、前記出力処理部は、書込用に指定した前記バッファメモリが満杯となるまでデータを書き込む（請求項１０記載の発明）。
【００２９】
この場合において、データとしては楽音データを取り扱うことができる（請求項１１記載の発明）。
【００３０】
【発明の実施の形態】
以下、この発明の一実施の形態について図面を参照して説明する。
【００３１】
図１は、この実施の形態が適用されたデータ記録再生装置１０の構成を示している。
このデータ記録再生装置１０は、バス１２を有し、このバス１２に、このデータ記録再生装置１０の全体を制御し、データ転送元処理部あるいはデータ転送先処理部として機能するホストＣＰＵ（ホスト処理部）１４が接続されている。
【００３２】
また、このバス１２には、ＤＲＡＭ（dynamic random access memory）により構成されるメインメモリ１６と、２次記憶装置ドライブ１８を介して接続されるハードディスク等の２次記憶装置２０が接続されている。
【００３３】
さらに、このバス１２には、ネットワークインタフェース２２を介して公衆回線２３が接続されている。また、公衆回線２３の他に図示していないネットワークが接続されている。この公衆回線２３や他のネットワークを利用してデータの入出力を行うことができる。
【００３４】
さらに、バス１２には、通常、データの転送先処理部として機能し、必要に応じてデータの転送元処理部として機能する楽音処理部であるサウンドプロセッサ（sound processing unit:ＳＰＵ）２４が接続されている。サウンドプロセッサ２４には、このサウンドプロセッサ２４の全体を制御する２つのＣＰＵ２４ａ、２４ｂ等が搭載されている。
【００３５】
また、このサウンドプロセッサ２４には、２つのＣＰＵ２４ａ、２４ｂ以外に、図示はしないが、制御プログラム等が格納されるＲＯＭ、作業用のＲＡＭ、カウンタ、タイマ、ＤＡＣ（デジタルアナログ変換器）、ＡＤＣ（アナログデジタル変換器）等が含まれている。そして、このサウンドプロセッサ２４は、データ転送処理を行うとともに、楽音データの発生（生成）処理を行うこともできる。
【００３６】
サウンドプロセッサ２４には、インタフェース２６を介して音声出力装置（出力部）としてのスピーカ２８が接続されるとともに、インタフェース３０を介して音声入力装置（入力部）としてのマイクロホン３２が接続されている。したがって、サウンドプロセッサ２４は、入出力処理部としても機能する。
【００３７】
さらに、サウンドプロセッサ２４には、このサウンドプロセッサ２４が読み書きを制御する、いわゆるダブルバッファとしての２つのバッファメモリ４１、４２からなるバッファメモリ４０が接続されている。なお、バッファメモリ４１、４２は、この実施の形態のように１つのメモリを領域分割して用いてもよく、あるいは２つのメモリを用いることもできる。この意味から、バッファメモリ４０としては、実質的に２つのバッファメモリを使用することができる。分割されているバッファメモリ４１、４２をそれぞれチャンネル４１、４２とも呼ぶ。
【００３８】
また、後述するように、バッファメモリ４１、４２は、たとえば、４チャンネルスピーカシステムを駆動する等のために、それぞれ、複数に分割されていてもよい。
【００３９】
この実施の形態において、バッファメモリ４１、４２のそれぞれのメモリ容量は、１６ビット／ワードで２５６ワードずつ記憶可能な容量とされている。それぞれの先頭メモリアドレスは、アドレスＡＳ０、ＡＳ１とされている。そして、実際上、バッファメモリ４１、４２は、サウンドプロセッサ２４の、いわゆるローカルメモリとしても機能するので、５１２ワード以上のメモリ容量を有している。
【００４０】
この場合、サウンドプロセッサ２４の一方のＣＰＵ２４ａによりバッファメモリ４０の一方、たとえば、バッファメモリ４１にデータが書き込まれ、他方のＣＰＵ２４ｂによりバッファメモリ４０の他方、したがって、バッファメモリ４２からデータが読み出される。
【００４１】
そして、たとえば、読出処理が途切れないようにするためには、バッファメモリ４１にデータが満杯になった後に、他方のバッファメモリ４２のデータが空になったとき、前記一方のＣＰＵ２４ａにより前記満杯となったバッファメモリ４１のデータが読み出され、前記他方のＣＰＵ２４ｂにより前記空となった他方のバッファメモリ４２へのデータの書込が開始されるようにすればよい。
【００４２】
このように、サウンドプロセッサ２４は、ＣＰＵ２４ａとＣＰＵ２４ｂにより、バッファメモリ４０に対する書込処理を読出処理よりも短く行うことにより、読出処理を途切れさせることなく、バッファメモリ４０に対するデータの読み書き制御をリアルタイムに並列処理で行うことができる。
【００４３】
さらに具体的に説明すると、サウンドプロセッサ２４によりスピーカ２８から音声を出力する際には、一方のバッファメモリ４１（あるいはバッファメモリ４２）からの一方のＣＰＵ２４ａ（あるいはＣＰＵ２４ｂ）によるデータの読み出しが途切れないように、換言すれば、再生が連続して行われるように、残りの他方のバッファメモリ４２（したがってバッファメモリ４１）への他方のＣＰＵ２４ｂ（したがってＣＰＵ２４ａ）によるデータの書込が読出より高速に処理される。
【００４４】
その一方、マイクロホン３２等により音声を入力する際には、一方のバッファメモリ４１（あるいはバッファメモリ４２）へのデータの書込が途切れないように、換言すれば、録音が連続して行われるように、残りの他方のバッファメモリ４２（したがってバッファメモリ４１）からの読出が書込より高速に処理される。
【００４５】
上述したバス１２には、２次記憶装置２０とメインメモリ１６間、あるいはメインメモリ１６とサウンドプロセッサ２４のバッファメモリ４０間で、直接データ転送を行うためのＤＭＡＣ（direct memory access controller ：ダイレクトメモリアクセスコントローラ）４４が接続されている。
【００４６】
ＤＭＡＣ４４は、たとえば、メインメモリ１６とバッファメモリ４０との間のデータ転送では、通常、データ転送元処理部として機能し、必要に応じてデータ転送先処理部として機能する。
【００４７】
次に、上記図１例のデータ記録再生装置１０におけるホスト側のメモリ、すなわちメインメモリ１６からローカル側のメモリ（ローカルメモリ）、すなわちバッファメモリ４０への転送全データサイズが２５６０ワードのデータ転送動作手順について、図２のフローチャートを参照して説明する。このデータ転送では、メインメモリ１６からバッファメモリ４０に転送を開始した後、きわめて短い一定時間経過後、換言すれば、一方のバッファメモリ４０にデータが満杯となったときにスピーカー２８から音声出力が開始され、２５６０ワード分の音声出力が途切れることなく行われるようにデータ転送処理がなされる。
【００４８】
なお、ＤＭＡＣ４４によるメインメモリ１６からバファメモリ４０への１回でのデータ転送容量は３２ワードであるので、２５６０ワードを送るために、２５６０ワード÷３２ワード＝８０回のデータ転送処理がなされる。
【００４９】
そこで、まず、ホストＣＰＵ１４は、ステップＳ１で、データ転送の準備処理を行う。この準備処理では、これからサウンドプロセッサ２４を経由してバッファメモリ４０を構成するバッファメモリ４１、４２に交互に２５６ワードずつ順次転送しようとする２５６０ワード分のデータ｛ここでは楽音データ（サウンドデータ）｝を２次記憶装置２０から読み出し、メインメモリ１６に転送して予め所定の順序で書き込んでおく。
【００５０】
なお、２次記憶装置２０から読み出されるデータには、予め２次記憶装置２０に記憶されているデータ、あるいは公衆回線２３からネットワークインタフェース２２を通じて、一旦、２次記憶装置２０に記憶されているデータが含まれる。
【００５１】
そして、２次記憶装置２０からメインメモリ１６に書き込む際には、図３に示すように、バッファメモリ４０の各チャンネル４１、４２へ転送しようとするデータＤｎを２５６ワード毎に１０個に区切って（Ｄｎ＝Ｄ１、Ｄ２、…Ｄ１０）、メインメモリ１６上の各先頭アドレスＡ１〜Ａ１０から転送順に配置した形式のデータＤαとして書き込むようにする。
【００５２】
または、図４に示すように、チャンネル毎のシーケンシャルなデータＤβと、そのデータ転送順を示す先頭アドレスを記憶する図５の参照タグ５０を含む形式として書き込むようにする。
【００５３】
詳しく説明すると、図３の転送順形式では、メモリアドレスＡ１から２５６ワードのデータＤ１を格納し、メモリアドレスＡ２に２５６ワードのデータＤ２を格納し、以下、順次、メモリアドレスＡ１０への２５６ワードのデータＤ１０を格納するというように、データの転送順（図３では、便宜上、転送順１〜５としている）にメモリ１６にデータＤαを予め書き込んでおくようにする。
【００５４】
また、図４、図５の参照タグ５０の参照タグ形式では、チャンネル４１、４２用毎にシーケンシャルなそれぞれが２５６ワードのデータＤａ１〜Ｄａ５、Ｄｂ１〜Ｄｂ５をメモリアドレスＡ１〜Ａ１０に予め書き込み、データＤａ１〜Ｄａ５、Ｄｂ１〜Ｄｂ５の読み出し順｛先頭アドレス（データ）Ａ１、Ａ６、Ａ２、…Ａ５、Ａ１０｝を参照タグ５０に予め書き込んでおくようにする。
【００５５】
このようにして、メインメモリ１６に所定の形式（転送順形式または参照タグ形式）で、これからＤＭＡＣ４４からサウンドプロセッサ２４を経由してバッファメモリ４０に転送しスピーカ２８から連続して楽音（音声）出力しようとするデータを格納しておく。
【００５６】
このような準備処理の後、ステップＳ２において、ホストＣＰＵ１４は、ＤＭＡＣ４４に対して、転送開始アドレス、この場合、アドレスＡ１と転送全データサイズ、この場合、２５６０ワードを指示するとともにデータ転送回数、この場合、（３２ワード×８＝２５６ワード）×１０での転送となるので８０回をＤＭＡＣ４４に設定する。
【００５７】
次に、ステップＳ３において、ホストＣＰＵ１４は、メインメモリ１６に格納されているデータのサウンドプロセッサ２４での再生をサウンドプロセッサ２４に対して指示する。
【００５８】
次に、ステップＳ４のＤＭＡＣ４４によるデータの転送処理について、図６のフローチャートを用いて詳しく説明する。
【００５９】
このフローチャートでは、サウンドプロセッサ２４による処理を右側に描き、その左側にＤＭＡＣ４４による処理を描いている。
【００６０】
この自動ＤＭＡ転送処理において、まず、ステップＳ４ａでは、サウンドプロセッサ２４中の一方のＣＰＵ２４ａは、ＤＭＡＣ４４に対してデータ要求（データリクエスト）通知を送出する。
【００６１】
この通知によりＤＭＡＣ４４は、ステップＳ４ｂにおいて、現在のデータ転送回数から残データ転送サイズを確認する。この場合、まだ、データ転送を開始していないので、データ転送回数は８０回に設定されている。
【００６２】
次いで、ステップＳ４ｃにおいて、ＤＭＡＣ４４は、ホストＣＰＵ１４に対してバス１２の占有使用の許可を求めるバス権要求（バスリクエスト）信号を送出する。
【００６３】
このバス権要求信号に対して、ステップＳ５において、ホストＣＰＵ１４は、割り込みがかけられたのと同様に、現在の処理を一旦停止し、レジスタ等への退避処理等を行った後、バス１２の占有使用を許可するバス権要求受理（バスアクノリッジ）をＤＭＡＣ４４に送出する。これにより、バス１２は、ホストＣＰＵ１４によりハイインピーダンスのフローティング状態とされる。
【００６４】
ステップＳ４ｄにおいてバス権要求受理を受けたＤＭＡＣ４４は、ステップＳ４ｅにおいて、ステップＳ４ａで発せられたデータ要求に対応するデータ要求受理（データアクノリッジ）通知をサウンドプロセッサ２４に送出する。
【００６５】
このデータ要求受理通知に対してサウンドプロセッサ２４は、ステップＳ４ｆにおいて、転送対象のバファメモリ４１、４２のいずれかを指定し、ここでは、予め最初に転送データを受け入れるようにされているバッファメモリ４１を指定し、ステップＳ４ｇにおいてデータ転送の受入了解をＤＭＡＣ４４に対して通知する。
【００６６】
次いで、ステップＳ４ｈにおいて、ＤＭＡＣ４４からサウンドプロセッサ２４に対して、アドレスＡ１から記憶されている最初の２５６ワードのデータ（図３例の場合データＤ１、図４例の場合データＤａ１）の転送が開始される。
【００６７】
この場合のデータの転送順は、メインメモリ１６に記憶されているデータが、図３に示したデータＤｎのように、データ転送順に配置した形式のデータＤαである場合には、その転送順のアドレスに従いアドレスＡ１からの２５６ワードのデータＤ１中、最初の３２ワード分のデータが転送される。
【００６８】
一方、図４、図５に示したように、メインメモリ１６に参照タグ５０とシーケンシャルなデータＤβとが記憶されている場合には、その参照タグ５０を参照して、アドレスＡ１からの２５６ワードのデータＤａ１中、最初の３２ワード分のデータが転送される。
【００６９】
最初の３２ワード分のデータをサウンドプロセッサ２４に転送終了したとき、ステップＳ４ｈａにおいて、ＤＭＡＣ４４からホストＣＰＵ１４に対してバス権要求解除信号が送出される。
【００７０】
ホストＣＰＵ１４は、このバス権要求解除信号に応じて、バスの使用権を自身に移す。
【００７１】
また、ＤＭＡＣ４４は、バス権要求解除信号を送出するとともに、ステップＳ４ｈｂにおいて、データ転送回数を８０回から７９回（データ転送回数−１）とする。
【００７２】
最初の３２ワード分のデータが転送されてきたとき、サウンドプロセッサ２４は、ステップＳ４ｉにおいて、バッファメモリ４１のアドレスＡＳ０から、その３２ワード分のデータを書き込む。
【００７３】
次いで、ステップＳ４ｊにおいてサウンドプロセッサ２４は、現在、データ書込中のバッファメモリ４１が満杯（一杯）になっているかどうか、すなわち２５６ワード分記憶されているかどうかを確認する。
【００７４】
この時点では、満杯になっていないので、ステップＳ４ａに戻り、次の３２ワード分に対するデータ転送を要求する。
【００７５】
ＤＭＡＣ４４では、上述したように、ステップＳ４ｂにおいて、現在のデータ転送回数から残データ転送サイズを確認する。この場合、データ転送回数は７９回に設定されているので、ステップＳ４ｃ、Ｓ４ｄにおいて、再びバス権を要求してバス権要求受理を確認する。そして、ステップＳ４ｅにおいて、サウンドプロセッサ２４からのステップＳ４ａで発せられたデータ要求を受理する通知を行う。
【００７６】
サウンドプロセッサ２４は、ステップＳ４ｆにおいて転送対象バッファメモリを指定するが、この場合、まだ、最初の２５６ワードの転送過程にあり、バッファメモリ４１に対する指定が継続されているので、ステップＳ４ｇにおいてデータ転送の受入を了解する。
【００７７】
次いで、ステップＳ４ｈにおいてＤＭＡＣ４４は、データＤαの場合にはデータＤ１中、次の３２ワード分、データＤβの場合にはデータＤａ１中、次の３２ワード分のデータをサウンドプロセッサ２４に対して転送する。
【００７８】
サウンドプロセッサ２４は、ステップＳ４ｉにおいて、この３２ワード分のデータをバッファメモリ４１の既に記憶されている３２ワード分の次のアドレスに記憶する。
【００７９】
このようにして、ステップＳ４ａ〜Ｓ４ｊの処理を８回繰り返したとき、バッファメモリ４０中、先頭アドレスＡＳ０で示される記憶領域であるバッファメモリ４１には、ＣＰＵ２４ａにより、図７に示すように２５６ワード（３２ワード×８）分のデータが書き込まれ、データＤ１（データＤａ１）で満杯となる。このとき、バッファメモリ４０の次の書込用先頭アドレスはＡＳ１と設定される。
【００８０】
次に、ＣＰＵ２４ａは、ステップＳ４ｋにおいて、他方のＣＰＵ２４ｂによるバッファメモリ４２のデータの再生処理が終了したか、換言すれば、他方のバッファメモリ４２が空になっているかどうかを確認する。
【００８１】
この時点では、まだ、再生が開始していないので、他方のバッファメモリ４２は空となっている。
【００８２】
他方のバッファメモリ４２が空であることを確認したとき、サウンドプロセッサ２４は、ステップＳ４ｌにおいて、データ転送対象メモリ（データ書込用メモリ）と再生対象メモリ（データ読出用メモリ）を切り替え変更する。
【００８３】
すなわち、データが満杯となったバッファメモリ４１を書込用から読出用に指定変更し、データが空のバッファメモリ４２を読出用から書込用に指定変更する。
【００８４】
この指定変更により、ＣＰＵ２４ａは、ステップＳ４ｍにおいてデータ再生処理（読出処理）を開始する。ＣＰＵ２４ａによるデータ再生処理では、バッファメモリ４１のアドレスＡＳ０側から順次データが読み出され、インタフェース２６を介してスピーカ２８により音声（楽音）が再生される。
【００８５】
このＣＰＵ２４ａによる楽音の再生中、ＣＰＵ２４ｂは、再び、ステップＳ４ａにおいてＤＭＡＣ４４に対してデータ要求を行う。
【００８６】
そして、上述したのと同様に、ステップＳ４ａ〜Ｓ４ｊの処理を８回繰り返したとき、図３に示したデータＤα中、アドレスＡ２からの２５６ワード分のデータＤ２（あるいは図４に示したアドレスＡ６からの２５６ワード分のデータＤｂ１）が、図８に示すように、アドレスＡＳ１からバッファメモリ４２に記憶され、バッファメモリ４２が満杯とされる。
【００８７】
バッファメモリ４２へのデータの書込が満杯とされた時点では、その図８に模式的に示すように、ＣＰＵ２４ａにより読出再生中のバッファメモリ４１には、未だデータが残っているようにＣＰＵ２４ｂによるバファメモリ４２に対する書込処理が読出処理に比較して高速に行われる。
【００８８】
したがって、ステップＳ４ｊの判断が成立した時点から書込用として動作していたＣＰＵ２４ｂは、待ち動作となる。
【００８９】
ステップＳ４ｋで、他方のメモリであるバッファメモリ４１のデータの読出による楽音の再生が終了したとき、さらにステップＳ４ｌにおいて、転送対象メモリ（書込対象メモリ）と再生対象メモリの変更処理が行われ、既にデータが満杯となったバッファメモリ４２が再生対象メモリとされこのバッファメモリ４２からＣＰＵ２４ｂによる読出再生処理が行われる。このとき、バッファメモリ４１は、転送対象メモリとされる。
【００９０】
このようにして８１回目のデータ転送要求通知がサウンドプロセッサ２４からＤＭＡＣ４４に送られたとき、ＤＭＡＣ４４は、ステップＳ４ｂにおいて、データＤα（Ｄβ）の全てがゼロ（データ残無し）になったと判断し、ステップＳ４ｎにおいて２５６０ワードのデータ転送終了の割り込みをホストＣＰＵ１４に対して発生する。
【００９１】
ホストＣＰＵ１４は、図２に示すステップＳ５において、データ転送終了処理を行う。このデータ転送終了処理では、メインメモリ１６中、データＤα（Ｄβ）の消去処理およびメインメモリ１６中、参照タグ５０の消去処理等を行う。
【００９２】
以上説明したように、この実施の形態によれば、ホストＣＰＵ１４側からサウンドプロセッサ２４側に２５６０ワードのデータを転送する際、転送終了割込処理（ステップＳ４ｎの処理）が１回しか発生しない。このため、ホストＣＰＵ１４の処理負担がきわめて軽減される。
【００９３】
ここで、比較例として、自動ＤＭＡ転送処理ではないＤＭＡ転送処理で、メインメモリ１６から２５６０ワードのデータをバッファメモリ４０に転送し、サウンドプロセッサ２４で楽音再生する際の割込回数を具体的に、図９のフローチャートを参照して説明する。
【００９４】
この比較例では、ステップＳ１１において、ホストＣＰＵ１４からサウンドプロセッサ２４に対して書込開始アドレス、たとえば、バッファメモリ４１の先頭アドレスＡＳ０が指定される。
【００９５】
次に、ステップＳ１２において、ホストＣＰＵ１４からＤＭＡＣ４４に対してサウンドプロセッサ２４に対する２５６ワードの転送指示が送られる。
【００９６】
ステップＳ１３では、２５６ワードの転送を行うが、このときには、ＤＭＡＣ４４は、ホストＣＰＵ１４に対して、上述したステップＳ４ｃとステップＳ４ｈａのバス権に係わる処理と同様に、バス権を確保要求し、さらに解除要求する処理を３２ワード毎のデータ転送に、合計それぞれ８回行う。これによりバッファメモリ４１に対する２５６ワードのデータの書込転送、いわゆるＤＭＡ転送が終了する。
【００９７】
この２５６ワードのＤＭＡ転送が終了した時点でＤＭＡＣ４４は、ステップＳ１４においてＤＭＡ転送終了割込信号をホストＣＰＵ１４に送出する。
【００９８】
ホストＣＰＵ１４では、この時点で割込処理を行う。
【００９９】
そして、実際上、ステップＳ１１の処理からステップＳ１４の処理までの２５６ワードの書込転送中およびその書込転送終了後には、サウンドプロセッサ２４により残りのバッファメモリ４２からデータの読出処理が行われ、スピーカ２８を通じて楽音が再生されている。
【０１００】
残りのバッファメモリ４２からのデータの読出処理が終了した時点で、ステップＳ１５において、２５６ワードの読出が終了した再生終了割込信号がホストＣＰＵ１４に対して送出される。
【０１０１】
ホストＣＰＵ１４は、この時点でも割込処理を行う。
【０１０２】
そして、次に、再び、ステップＳ１１において、書込開始アドレスをバッファメモリ４２の先頭アドレスＡＳ１に設定する。
【０１０３】
このように比較例の処理では、上述したステップＳ１１〜ステップＳ１４までの処理が１０回繰り返されることで、２５６０ワードの楽音データのサウンドプロセッサ２４による再生処理が終了する。
【０１０４】
したがって、比較例の処理では、２５６０ワードのデータ再生処理中に、ホストＣＰＵ１４に対して割込処理が合計２０回（ステップＳ１４で１０回、ステップＳ１５で１０回の合計２０回）発生する。
【０１０５】
このため、ホストＣＰＵ１４の転送処理に係わる処理負担がきわめて大きい。
【０１０６】
これに対して、図６のフローチャートを参照して説明したように、この実施の形態のデータ転送処理では、片側のバッファメモリ分の楽音データを、いわゆるダブルバッファメモリ４０の片側のバッファメモリが空になったときに、比較例のように割込処理を行って転送していない。
【０１０７】
この実施の形態のデータ転送処理では、図１０の模式図に示すように、転送元であるホストＣＰＵ１４側から楽音データを転送する際に、転送元処理部としてのホストＣＰＵ１４とＤＭＡＣ４４では、バッファメモリ４１（４２）のメモリ容量２５６ワードより大きい２５６０ワード分のデータサイズを扱い、転送先処理部としてのサウンドプロセッサ２４では、転送処理５１により片側のバッファメモリ４１が埋まるだけ楽音データが転送された後に転送を一時停止しておき、他の片側のバッファメモリ４２内の楽音データがサウンドプロセッサ２４により再生され再生転送（出力転送）処理５４により空になった時点で、この空になったバッファメモリ４２に転送先位置を変更して、転送の一時停止を解除し、空になったバッファメモリ４２へ楽音データの転送処理５２を再開するようにしたので、バッファメモリ４１、４２の切替制御をサウンドプロセッサ２４側で行うことにより、ホストＣＰＵ１４側では負荷の大きい割込処理を行うことなく、滞りなくデータの転送再生処理を行うことができるという利点が得られる。
【０１０８】
すなわち、上述の実施の形態では、転送開始指示後に、２５６０ワード分のデータの再生および転送がＤＭＡＣ４４とサウンドプロセッサ２４との間で「データ要求」のハンドシェイク操作だけで行われ、２５６０ワードの転送終了後にＤＭＡＣ４４からホストＣＰＵ１４に対して１回だけ転送割込終了信号が送出されることになる。
【０１０９】
したがって、比較例に比較して、ホストＣＰＵ１４に対する割込処理が１／２０に低減するというきわめて顕著な効果を達成する。
【０１１０】
図１１は、楽音データとしてステレオデータを記録再生するこの発明の他の実施の形態に係るデータ記録再生装置１０Ａの構成を示している。なお、このデータ記録再生装置１０Ａにおいて、図１例のデータ記録再生装置１０に示したものと対応するものには同一の符号を付け、その詳細な説明を省略する。
【０１１１】
このデータ記録再生装置１０Ａでは、バッファメモリ４０Ａとして、それぞれ、２５６ワードのメモリ容量を有するバッファメモリ４１Ｌ、４１Ｒ、４２Ｌ、４２Ｒを有する構成とされている。バッファメモリ４１Ｌとバッファメモリ４１Ｒはバッファメモリ４１Ａを構成し、バッファメモリ４２Ｌとバッファメモリ４２Ｒとはバッファメモリ４２Ａを構成する。バッファメモリ４０Ａは、交互に読み書きが切り替えられる実質的に２つのバッファメモリ４１Ａとバッファメモリ４２Ａを有しているといえる。
【０１１２】
このサウンドプロセッサ２４には、インタフェース２６を介して音声出力装置としてのＲ（right ：右）用スピーカ２８Ｒと、Ｌ（left：左）用スピーカ２８Ｌとが接続されている。スピーカ２８Ｒとスピーカ２８Ｌとを合わせてスピーカ２８という。
【０１１３】
また、サウンドプロセッサ２４には、インタフェース３０を介して音声入力装置としてのＲ（right ：右）用マイクロホン３２Ｒと、Ｌ（left：左）用マイクロホン３２Ｌとが接続されている。マイクロホン３２Ｒとマイクロホン３２Ｌとを合わせてマイクロホン３２という。
【０１１４】
次に、このデータ記録再生装置１０Ａの動作について、図１２に示すステレオ楽音データ転送処理の模式図、図１３に示すステレオ楽音データ転送再生の基本的なフローチャートを参照して説明する。
【０１１５】
ステップＳ２１では、メインメモリ１６からのデータ転送処理６１により先頭アドレスＡＳ０（４１Ｌ）のバッファメモリ４１Ｌに２５６ワード分のデータが転送され、次のステップＳ２２では、転送処理６２により先頭アドレスＡＳ１（４１Ｒ）のバッファメモリ４１Ｒに２５６ワード分のデータが転送される。
【０１１６】
一方、再生転送処理６５では、バッファメモリ４１Ｌとバッファメモリ４１Ｒからデータを同時に読み出し、スピーカ２８Ｌ、２８Ｒから出力する。そして、この再生転送処理６５中に、ステップＳ２３では、転送処理６３により先頭アドレスＡＳ０（４２Ｌ）のバッファメモリ４２Ｌに２５６ワード分のデータが転送され、次のステップＳ２４では、転送処理６４により先頭アドレスＡＳ１（４２Ｒ）のバッファメモリ４２Ｒに２５６ワード分のデータが転送される。
【０１１７】
再生転送処理６５（図１３参照）の終了後に、換言すれば、バッファメモリ４１Ｌとバッファメモリ４１Ｒ中のデータが空となったときに、次の再生転送処理６６が開始される。この次の再生転送処理６６では、バッファメモリ４２Ｌとバッファメモリ４２Ｒからデータを同時に読み出し、スピーカ２８Ｌ、２８Ｒから出力する。
【０１１８】
なお、この再生転送処理６６の終了前に、再び、ステップＳ２１において、空となっている先頭アドレスＡＳ０（４１Ｌ）のバッファメモリ４１Ｌに転送処理６１により２５６ワード分のデータが転送され、次のステップＳ２２では、転送処理６２により先頭アドレスＡＳ１（４１Ｒ）のバッファメモリ４１Ｒに２５６ワード分のデータが転送される。
【０１１９】
以上の処理が繰り返されることにより、ステレオ楽音データの間欠転送・連続再生処理を行うことができる。
【０１２０】
図１４は、さらに他の実施の形態の説明に供される模式図であって、データ転送順形式で、メインメモリ１６に予め配置格納した４チャンネルスピーカシステム（チャンネルＬ１、Ｒ１、Ｌ２、Ｒ２）のデータＤαａ（データＤ０〜Ｄ１１）を、バッファメモリ１４１Ｌ１、１４１Ｒ１、１４１Ｌ２、１４１Ｒ２と、バッファメモリ１４２Ｌ１、１４２Ｒ１、１４２Ｌ２、１４２Ｒ２を有するバッファメモリ４０Ｂにデータ転送し、かつ連続再生処理を行う場合の説明に供される模式図を示している。
【０１２１】
この図１４例では、まず、転送処理７１、７２、７３、７４の順で、メインメモリ１６からバッファメモリ１４１Ｌ１、１４１Ｒ１、１４１Ｌ２、１４１Ｒ２に、転送順１番のデータＤ０、Ｄ１、Ｄ２、Ｄ３が順次書き込まれる。
【０１２２】
そして、バッファメモリ１４１Ｌ１、１４１Ｒ１、１４１Ｌ２、１４１Ｒ２から同時にデータＤ０、Ｄ１、Ｄ２、Ｄ３が読み出され、図示していない４個のスピーカから楽音が出力される再生転送処理が行われる。
【０１２３】
この再生転送処理が終了しない間に、転送処理７５、７６、７７、７８の順で、バッファメモリ１４２Ｌ１、１４２Ｒ１、１４２Ｌ２、１４２Ｒ２に転送順２番のデータＤ４、Ｄ５、Ｄ６、Ｄ７が順次書き込まれる。
【０１２４】
次に、バッファメモリ１４１Ｌ１、１４１Ｒ１、１４１Ｌ２、１４１Ｒ２から同時に読み出されているデータＤ０、Ｄ１、Ｄ２、Ｄ３が空になったときに、他のバッファメモリ１４２Ｌ１、１４２Ｒ１、１４２Ｌ２、１４２Ｒ２から同時にデータＤ４、Ｄ５、Ｄ６、Ｄ７が読み出され、再生転送処理が滞りなく継続される。
【０１２５】
次いで、転送処理７９、８０、８１、８２の順でバッファメモリ１４１Ｌ１、１４１Ｒ１、１４１Ｌ２、１４１Ｒ２のデータＤ０、Ｄ１、Ｄ２、Ｄ３が空になったとき、空になったこれらのバッファメモリ１４１Ｌ１、１４１Ｒ１、１４１Ｌ２、１４１Ｒ２に対して、データＤ８、Ｄ９、Ｄ１０、Ｄ１１が順次書き込まれる。
【０１２６】
このようにして、多数のチャンネルでのデータ転送が可能である。
【０１２７】
図１５は、図１４例と同じデータＤ０〜Ｄ１１を、参照タグ５０Ｂを用いる参照タグ形式で転送する際の説明に供される模式図である。この参照タグ形式では、チャンネルＬ１、Ｒ１、Ｌ２、Ｒ２毎にシーケンシャルなそれぞれ２５６ワードのデータＤ０、Ｄ４、Ｄ８、Ｄ１２、Ｄ１、Ｄ５、Ｄ９、Ｄ１３、Ｄ２、Ｄ６、Ｄ１０、Ｄ１４、Ｄ３からなるデータＤβαを各先頭メモリアドレスＡ１〜Ａ１３に予め書き込むとともに、参照タグ５０Ｂにデータの読み出し順を予め書き込んでおく。
【０１２８】
この図１５例において、転送処理９１、９２、９３、９４では、参照タグ５０Ｂの上から４番目までのアドレスＡ１、Ａ５、Ａ９、Ａ１３を参照して、転送処理９１、９２、９３、９４により順次バッファメモリ１４１Ｌ１、１４１Ｒ１、１４１Ｌ２、１４１Ｒ２にデータＤ０、Ｄ１、Ｄ２、Ｄ３を書き込む。
【０１２９】
次に、バッファメモリ１４１Ｌ１、１４１Ｒ１、１４１Ｌ２、１４１Ｒ２からデータＤ０、Ｄ１、Ｄ２、Ｄ３を同時に読み出して再生処理する。
【０１３０】
この再生処理が終了しないうちに、次の転送処理９５、９６、９７、９８で、参照タグ５０Ｂの上から５〜８番目のアドレスＡ２、Ａ６、Ａ１０、Ａ１４を参照して、順次バッファメモリ１４２Ｌ１、１４２Ｒ１、１４２Ｌ２、１４２Ｒ２にデータＤ４、Ｄ５、Ｄ６、Ｄ７の書込を終了させておく。
【０１３１】
そして、バッファメモリ１４１Ｌ１、１４１Ｒ１、１４１Ｌ２、１４１Ｒ２からデータＤ０、Ｄ１、Ｄ２、Ｄ３の同時読出再生処理が終了した時点で、バッファメモリ１４２Ｌ１、１４２Ｒ１、１４２Ｌ２、１４２Ｒ２のデータＤ４、Ｄ５、Ｄ６、Ｄ７の同時読出再生処理を開始するとともに、上から９番目〜１２番目のアドレスを参照して、バッファメモリ１４１Ｌ１、１４１Ｒ１、１４１Ｌ２、１４１Ｒ２に対してデータＤ８、Ｄ９、Ｄ１０、Ｄ１１の書込を開始する。
。
【０１３２】
このように参照タグ５０Ｂを用いても多チャンネルのデータを転送し、かつ連続再生することができる。
【０１３３】
上述した図１、図１１例のデータ記録再生装置１０、１０Ａにおいては、メインメモリ１６からバッファメモリ４０を経由してのスピーカ２８からの連続的なデータ再生処理について説明したが、このデータ記録再生装置１０、１０Ａでは、マイクロホン３２等の入力手段から楽音が入力されたとき、あるいはサウンドプロセッサ２４において楽音データを発生（生成）しているとき、図１６に示すように、一方のバファメモリ４１に対して２５６ワードの楽音データを書き込み、この２５６ワードのデータの書込時間より短い時間で他方のバッファメモリ４２からメインメモリ１６に対してのデータの自動ＤＭＡ転送を行うように構成することもできる。
【０１３４】
楽音処理部としてのサウンドプロセッサ２４側からホストＣＰＵ１４側へのデータ転送をさらに詳しく説明すれば、たとえば、図１例において、サウンドプロセッサ２４は、バッファメモリ４０の一方（たとえば、バッファメモリ４１）に対するデータの書込が終了する前に、バッファメモリ４０の他方（この場合、バッファメモリ４２）からのデータ読出を完了してホスト処理部としてのホストＣＰＵ１４側に転送し、バッファメモリ４０の一方（バッファメモリ４１）に対するデータの書込が終了したとき、空となっているバッファメモリ４０の他方（バッファメモリ４２）に対するデータの書込を開始するようにすることで、サウンドプロセッサ２４からバッファメモリ４０（バッファメモリ４１またはバッファメモリ４２）へのデータ転送（データ入力）が途切れることがない。
【０１３５】
このサウンドプロセッサ２４からホストＣＰＵ１４側へのデータ転送の場合においても、バッファメモリ４０に対するデータ転送は、主にサウンドプロセッサ２４が制御するので、ホストＣＰＵ１４の転送処理に対する負担がきわめて少なくなる。
【０１３６】
実際上、バッファメモリ４０は、たとえば、図１７に示すように、２５６ワード分のメモリ容量を有するバッファメモリ４１とバッファメモリ４２のダブルバッファメモリ４０の組が１４組分の楽音を記憶可能なメモリ領域１００、すなわち、５１２ワード×１４＝７１６８ワード分のメモリ領域１００が確保されている。
【０１３７】
この場合、サウンドプロセッサ２４からホストＣＰＵ１４側への自動ＤＭＡ転送処理では、それぞれ、各ダブルバファメモリ４０の片方のバッファメモリ、たとえば、１４個のバッファメモリ４１の全てが、サウンドプロセッサ２４により生成された楽音データにより一杯になったとき、データ転送要求をＤＭＡＣ４４に送って、もう片方の１４個のバッファメモリ４２への書込を継続する。
【０１３８】
ＤＭＡＣ４４は、データ転送要求を受ける毎に、バッファメモリ４０のメモリ領域１００全体をメインメモリ１６に転送する。したがって、サウンドプロセッサ２４が書込中の１４個のバッファメモリ４２に記録されるデータも同時に転送することになるので、データ転送を要求する際に、現在、既に書込が満了となっているバッファメモリ４１の先頭アドレスを指定し、この先頭アドレス指定毎にＤＭＡＣ４４に対して割込を発生させる。
【０１３９】
このようにすれば、サウンドプロセッサ２４で発生したデータをメインメモリ１６側に割込処理をきわめて少なく転送することができる。
【０１４０】
なお、この発明は、上述の実施の形態に限らず、この発明の要旨を逸脱することなく、種々の構成を採り得ることはもちろんである。
【０１４１】
【発明の効果】
以上説明したように、この発明によれば、データ転送先処理部において、バッファメモリを書込用と読出用とに交互に切り替えるようにしているので、データ転送元処理部に対する割込処理を少なくすることができ、データ転送元処理部の負担を軽減することができるという効果が達成される。
【０１４２】
また、この発明によれば、楽音処理部において、バッファメモリを書込用と読出用とに交互に切り替えるようにしているので、ホスト処理部に対する割込処理を少なくすることができ、ホスト処理部の負担を軽減することができるという効果が達成される。
【０１４３】
さらに、この発明によれば、楽音処理部側からホスト処理部側にデータを転送する際に、割込処理を少なくデータ転送することができるという効果が達成される。
【図面の簡単な説明】
【図１】この発明の一実施の形態が適用されたデータ記録再生装置の構成を示すブロック図である。
【図２】図１例の動作説明に供されるフローチャートである。
【図３】メインメモリにデータをデータ転送順に配置した例を示す模式図である。
【図４】メインメモリにデータをチャンネル毎に配置した例を示す模式図である。
【図５】チャンネル毎に配置したデータの読出アドレスを示す参照タグの模式図である。
【図６】図２のフローチャート中、ＤＭＡ転送処理の詳細な説明に供されるフローチャートである。
【図７】片方のバッファメモリにデータが満杯となった状態を示す模式図である。
【図８】データ転送読出処理の説明に供されるバッファメモリの記憶状態を示す模式図である。
【図９】比較例の動作説明に供されるフローチャートである。
【図１０】バッファメモリへのデータ転送およびバッファメモリからのデータ読出の基本的な処理説明に供される模式図である。
【図１１】この発明の他の実施の形態が適用されたデータ記録再生装置の構成を示すブロック図である。
【図１２】図１１例のデータ転送再生の動作説明に供される模式図である。
【図１３】図１１例のデータ転送再生の動作説明に供されるフローチャートである。
【図１４】この発明のさらに他の実施の形態に係る転送順形式での多チャンネルデータ転送処理の動作説明に供される模式図である。
【図１５】この発明のさらに他の実施の形態に係る参照タグ形式での多チャンネルデータ転送処理の動作説明に供される模式図である。
【図１６】バッファメモリからメインメモリにデータを転送する際の動作説明に供される模式図である。
【図１７】バッファメモリからメインメモリに多数のデータを転送する際の動作説明に供される模式図である。
【符号の説明】
１０…データ記録再生装置            １２…バス
１４…ホストＣＰＵ（ホスト処理部）  １６…メインメモリ
２０…２次記憶装置
２４…サウンドプロセッサ（楽音処理部）
２４ａ、２４ｂ…ＣＰＵ              ２８…スピーカ
３２…マイクロホン                  ４０、４１、４２…バッファメモリ
４４…ＤＭＡＣ                      ５０、５０Ｂ…参照タグ
１００…メモリ領域
【図１】
0003671120.tif 000002
【図２】
0003671120.tif 000003
【図３】
0003671120.tif 000004
【図４】
0003671120.tif 000005
【図５】
0003671120.tif 000006
【図６】
0003671120.tif 000007
【図７】
0003671120.tif 000008
【図８】
0003671120.tif 000009
【図９】
0003671120.tif 000010
【図１０】
0003671120.tif 000011
【図１１】
0003671120.tif 000012
【図１２】
0003671120.tif 000013
【図１３】
0003671120.tif 000014
【図１４】
0003671120.tif 000015
【図１５】
0003671120.tif 000016
【図１６】
0003671120.tif 000017
【図１７】
0003671120.tif 000018