(57)【要約】【課題】データを転送する際のＣＰＵの負荷率を、簡易な構成によって低減させる。【解決手段】ＣＰＵから転送されたデータを一旦格納するためのＳＲＡＭ３０４と、ＳＲＡＭ３０４にデータが格納された後、当該ＳＲＡＭ３０４をバス１１から切り離すバススイッチ３０２と、ＳＲＡＭ３０４からデータを読み出して、デコーダ３２に供給するロジック回路３０６とによって、データ転送回路３０を構成する。【選択図】　　　　図２
2004101875.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵから周辺装置にデータを転送する方法であって、
前記ＣＰＵが、転送すべきデータをバスおよびバススイッチを介して一旦メモリに格納する過程と、
前記メモリにデータが格納された後、前記バススイッチが前記バスから前記メモリを切り離す過程と、
前記ＣＰＵとは異なるロジック回路が、前記メモリからデータを読み出すとともに、前記周辺装置に供給する過程と
を有することを特徴とするデータ転送方法。
【請求項２】
前記メモリ、前記バススイッチ、前記ロジック回路および前記周辺装置の組を複数備え、
前記ＣＰＵのアドレス空間には、複数あるメモリに対して略同一の空間が割り当てられ、
前記ＣＰＵは、複数組のバススイッチのいずれか１つを排他的に選択して、選択したバススイッチの組に属するメモリにデータを格納する
ことを特徴とする請求項１に記載のデータ転送方法。
【請求項３】
ＣＰＵからバスを介して接続された周辺装置にデータを転送するデータ転送回路であって、
前記ＣＰＵから転送されたデータを一旦格納するためのメモリと、
前記メモリにデータが格納された後、当該メモリを前記バスから切り離すバススイッチと、
前記メモリからデータを読み出して、前記周辺装置に供給するロジック回路と
を具備することを特徴とするデータ転送回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、周辺装置にデータを転送する際のＣＰＵの負荷率を、簡易な構成によって低減させるデータ転送方法およびデータ転送回路に関する。
【０００２】
【従来の技術】
近年のカラオケ装置は、カラオケの演奏とともに、演奏曲に対応した背景映像を再生する機能を備えている。このような背景映像の再生は、次のようにして実行される。すなわち、第１に、ＭＰＥＧなどの圧縮方式で圧縮された映像データのうち、演奏曲に対応するものを、ＣＰＵが、ハードディスク等から読み出すとともに、バスを介してデコーダに転送し、第２に、デコーダが映像データを伸長して映像信号に変換し、第３に、モニタが映像信号に基づく表示をすることによって、実行される（例えば、特許文献１参照）。
【０００３】
【特許文献１】
特開平１１−１１２９２４号公報（図１や段落００２５などの記載参照）
【０００４】
【発明が解決しようとする課題】
しかしながら、上記カラオケ装置では、カラオケの演奏中にわたって、映像データをデコーダの要求に応じてその都度転送する必要がある。映像データを転送すると、多少なりともＣＰＵに負担がかかるので、カラオケ演奏中では、背景映像の再生以外の処理に割り当てることができるＣＰＵ占有時間が相対的に短くなる。また、映像データが転送される毎に、バスが一時的に占有されるので、他の処理に必要なデータを転送することもできなくなる。
したがって、上記カラオケ装置において背景映像を再生すると、それ以外の処理能力が低下する、という問題があった。特に、最近のカラオケ装置には、通信機能や採点機能などのように、カラオケ演奏と同時並行的に実行される機能が多数存在するため、この種の問題は、より深刻なものとなる。
【０００５】
なお、高性能のＣＰＵやＤＭＡコントローラを用いるなど対策を講じれば、処理能力の低下については、問題にならないで済ませることができると考えられる。ただし、これらの対策は、機器全体のコスト高を招く、という別の問題を引き起こすので、安易に採用することができない。特にＤＭＡコントローラを用いる場合には、ソフトウェア（ＯＳ）のサポートも必要となる。
【０００６】
本発明は、上述した事情に鑑みてなされたもので、その目的とするところは、データを転送する際のＣＰＵの負荷率を、簡易な構成によって低減させることが可能なデータ転送方法およびデータ転送回路を提供することにある。
【０００７】
【課題を解決するための手段】
上記目的を達成するために本発明は、ＣＰＵから周辺装置にデータを転送する方法であって、前記ＣＰＵが、転送すべきデータをバスおよびバススイッチを介して一旦メモリに格納する過程と、前記メモリにデータが格納された後、前記バススイッチが前記バスから前記メモリを切り離す過程と、前記ＣＰＵとは異なるロジック回路が、前記メモリからデータを読み出すとともに、前記周辺装置に供給する過程とを有することを特徴とする。この方法によれば、転送すべきデータがメモリに格納されると、バスからメモリが切り離されるとともに、格納されたデータがロジック回路によってメモリから読み出されて周辺装置に転送される。このため、ＣＰＵがデータをメモリに格納する期間した後においては、ＣＰＵやバスが周辺装置へのデータ転送のために占有されるのを防止することができる。
【０００８】
【発明の実施の形態】
以下、図面を参照して、本発明の実施形態について説明する。図１は、本実施形態に係るデータ転送回路を適用したカラオケ装置の構成を示すブロック図である。この図に示されるカラオケ装置１において、ＣＰＵ１０は、バス１１を介して接続される各部を制御する。ＲＯＭ１２は、ＣＰＵ１０が実行する制御プログラムなどを記憶し、ＲＡＭ１４は、ＣＰＵ１０のワークエリアとして用いられる。ＨＤＤ（ハードディスクドライブ）１６は、複数曲分のカラオケデータと、これらに対応した複数の映像データとをそれぞれ記憶する。
【０００９】
ここで、一曲分のカラオケデータは、さらに楽曲データと歌詞データとから構成され、このうち前者の楽曲データは、演奏進行に合わせて発生すべき楽音やその制御内容などを規定する一方、後者の歌詞データは、演奏進行に合わせて表示すべき文字パターン（歌詞）や該文字パターンの色替えの変化などを規定する。また、映像データは、データ容量を削減するために例えばＭＰＥＧ形式で圧縮されて、複数の楽曲について共用され、または、楽曲毎に１対１に対応して用意される。
【００１０】
操作パネル１８は、複数の操作キーや表示パネルなどを有し、操作内容を示す信号を出力するとともに、各種の設定内容を表示する。音源回路２０は、ＣＰＵ１０により供給される演奏データにしたがって楽音信号を生成制御する。一方、マイク２２は、歌唱者の音声を入力して、音声信号に変換する。ミキサ（ＭＩＸ）２４は、音源回路２０による楽音信号とマイク２２による音声信号とを合成する。そして、増幅器（ＡＭＰ）２６は、ミキサ２４による合成信号を適切な増幅率で増幅し、スピーカ２８は、増幅器に２６による信号を音に変換出力する。
【００１１】
一方、実施形態に係るデータ転送回路３０は、ＨＤＤ１６に記憶された映像データをデコーダ３２に転送する。デコーダ３２は、周辺装置の一例であり、圧縮された映像データをデコード（伸長）して、予め定められた形式（例えばＮＴＳＣ）の映像信号に変換する。ここで、デコーダ３２は、特に図示はしないがバッファを内蔵して、転送された映像データを一旦書き込むとともに、書き込んだ映像データを読み出して、映像信号が途切れないように映像データをデコードする。このため、デコーダ３２は、デコードの進行によって内蔵バッファに一定量の空きが生じると、該一定量に相当する映像データを転送するように、データ転送回路３０に要求する。そこで、データ転送回路３０がデコーダ３２に１回で転送する映像データを１ブロックと称することにする。
【００１２】
次に、映像データをデコーダ３２に転送するデータ転送回路３０の詳細について説明する。図２は、実施形態に係るデータ転送回路３０の構成を示すブロック図である。
この図において、バススイッチ３０２は、バス１１とＳＲＡＭ３０４のポートとの間に介挿され、ＣＰＵ１０から供給される制御信号ＳＣがＨレベルのときにオンする一方、Ｌレベルのときにオフする。なお、この図においてバス１１は、アドレスバスとデータバスとに分かれている。ＳＲＡＭ（メモリ）３０４は、データバスを介して供給された映像データを、アドレスバスによって指定されたアドレスに一時的に格納するものである。
【００１３】
ロジック回路３０６は、ＳＲＡＭ３０４に書き込まれ映像データをブロック単位で読み出して、デコーダ３２に供給するものである。詳細には、ロジック回路３０６は、ＣＰＵ１０から供給される信号ＴＥがデータ転送の許可を示す場合であって、デコーダ３２から映像データの転送が信号ＲＱによって要求されたとき、ＳＲＡＭ３０４に対し読出アドレスを供給するとともに、当該読出アドレスを１ブロック分に相当する量だけアップカウントする。
ここで、ロジック回路３０６は、読出アドレスを初期値のゼロから最終値までアップカウントしたならば、すなわち、ＳＲＡＭ３０４に書き込まれた映像データをすべて読み出したならば、信号ＩＮＴをＨレベルにセットして、ＣＰＵ１０に対し、新たな映像データをＳＲＡＭ３０４に書き込むように要求する。
また、上述したＣＰＵ１０の動作は、制御プログラムにしたがってソフトウェア的に規定されるのに対し、ロジック回路３０６の動作は、ハードウェア的に規定される。
【００１４】
なお、データ幅がＣＰＵ１０とデコーダ３２とで互いに相違する場合、ロジック回路３０６は、ＳＲＡＭ３０４に書き込まれたデータを、デコーダ３２のデータ幅に変換する機能も併せ持つ。例えば、ＣＰＵ１０により扱われるデータが３２ビットであるために、ＳＲＡＭ３０４に書き込まれたデータ幅も３２ビットであって、デコーダ３２が要求するデータ幅が８ビットである場合、ロジック回路３０６は、ＳＲＡＭ３０４から読み出した３２ビットのデータを、８ビットのデータの４つに分割するとともに、４サイクルにわたって転送する機能も有する。
【００１５】
発振器（ＯＳＣ）３０８は、クロック信号ＣＬＫを生成して、ロジック回路３０６に供給する。このクロック信号ＣＬＫは、ロジック回路３０６における読出アドレスのアップカウントに用いられる。なお、このクロック信号ＣＬＫは、ＣＰＵ１０に本来的に供給されるクロック信号（図示省略）とは無関係である。したがって、ＣＰＵ１０によるＳＲＡＭ３０４へのデータ書込とロジック回路３０６によるＳＲＡＭ３０４からのデータ読出とは、互いに非同期にて実行される。
【００１６】
説明を再び図１に戻すと、歌詞展開部３４は、ＣＰＵ１０により供給された歌詞データにしたがって歌詞を示す文字パターンとともに、該文字パターンを色替えした表示信号を生成する。
表示制御部３６は、デコーダ３２による映像信号と、歌詞展開部３４による表示信号を合成して、その合成信号をモニタ３８に供給するほか、ＣＰＵ１０の制御にしたがって表示画像を制御する。モニタ３８は、表示制御部３６による出力にしたがって背景と歌詞との合成画像を表示する。
【００１７】
このようなカラオケ装置１において、歌唱する曲の番号が操作パネル１８によって入力されると、入力された曲の番号を示す情報がＣＰＵ１０に転送される。すると、ＣＰＵ１０は、当該番号に対応するカラオケデータをＨＤＤ１６から読み出し、いったんＲＡＭ１４にロードさせる。そして、ＣＰＵ１０は、カラオケの演奏進行に合わせて、カラオケデータのうちの演奏データを音源回路２０に、歌詞データを歌詞展開部３４に、それぞれ転送する。このため、楽曲データにしたがって楽音が発生制御されるとともに、この楽音の発生に同期して歌詞が表示・色替えされることになる。
【００１８】
一方、カラオケデータの転送と並行して、入力された曲の番号に対応する背景映像を当該曲の演奏期間にわたって再生するため、圧縮された映像データがデコーダ３２の要求に応じて適切に転送される。
そこで次に、このような映像データの転送動作について説明する。図３は、当該映像データの転送動作を、ＣＰＵ１０、データ転送回路３０およびデコーダ３２において相互の関連において説明するためのフローチャートである。
【００１９】
まず、ＣＰＵ１０は、映像データをデコーダ３２に転送すべき状況か否かを判断するとともに（ステップＳ１１）、転送すべき状況にないと判別した場合には待機状態とする。ここで、映像データを転送すべき状況とは、例えば、背景映像を再生する準備が整った状態や、カラオケ演奏中の状態にあることをいう。
映像データをデコーダ３２に転送すべき状況にあるとき、ＣＰＵ１０は、制御信号ＳＣをＨレベルにセットする（ステップＳ１２）。これによってバススイッチ３０２がオンするので、ＳＲＡＭ３０４のポートがバス１１に接続される。
【００２０】
次に、ＣＰＵ１０は、演奏すべき曲に対応する映像データを、ＳＲＡＭ３０４の容量分だけＨＤＤ１６から読み出すとともに、これをＳＲＡＭ３０４に書き込む（ステップＳ１３）。すなわち、映像データをＨＤＤ１６からＳＲＡＭ３０４に転送することについてはＣＰＵ１０によって実行される。
映像データをＳＲＡＭ３０４に書き込むと、ＣＰＵ１０は、制御信号ＳＣをＬレベルにリセットする（ステップＳ１４）。このため、バススイッチ３０２がオフするので、ＳＲＡＭ３０４のポートは、バス１１から切り離される。すなわち、バススイッチ３０２は、ＣＰＵ１０によって映像データがＳＲＡＭ３０４に書き込まれる場合にのみオンすることになる。
続いて、ＣＰＵ１０は、信号ＴＥをＨレベルにセットして、データ転送の許可をロジック回路３０６に通知する（ステップＳ１５）。
【００２１】
一方、ロジック回路３０６は、信号ＴＥがＨレベルにセットされるまで待機状態となっている（ステップＳ３１）。ここで、信号ＴＥがＨレベルにセットされた（データ転送が許可された）ということは、映像データがＳＲＡＭ３０４に書き込まれた直後であり、ＳＲＡＭ３０４には、未だ読み出していない映像データが存在することを意味する。このため、ロジック回路３０６は、信号ＩＮＴをＬレベルにリセットして、現時点では、ＳＲＡＭ３０４に新たなデータを書き込まなくても良い旨をＣＰＵ１０に通知する（ステップＳ３２）。
【００２２】
次に、ロジック回路３０６は、読出アドレスを直前の値からクロック信号ＣＬＫにしたがって１ブロック分に相当する量だけ歩進させる（ステップＳ３３）。これよって、ＳＲＡＭ３０４からは、読出アドレスで指定された映像データが当該量だけ読み出されて、デコーダ３２に転送される。なお、データ転送が許可されて、はじめてステップＳ３４が実行される場合の読出アドレスは、初期値のゼロである。ロジック回路３０６は、ＳＲＡＭ３０４から映像データを読み出した後、デコーダ３２から、映像データのうち次ブロックを転送すべき旨の要求があるまで待機状態となる（ステップＳ３４）。
【００２３】
一方、デコーダ３２は、ロジック回路３０６から映像データが転送されるまで待機状態となっている（ステップＳ４１）。このため、ロジック回路３０６によって１ブロック分の映像データが転送されると、デコーダ３２は、当該待機状態を解除する。
そして、デコーダ３２は、ロジック回路３０６から転送された映像データを一旦、内蔵バッファに貯め込むとともに、読み出して映像信号にデコードする（ステップＳ４２）。
デコードの進行によって、内蔵バッファに一定量の空きが生じると、デコーダ３２は、信号ＲＱをＨレベルにセットして、映像データの次ブロックをロジック回路３０６に要求する（ステップＳ４３）。
【００２４】
映像データの次ブロックが要求されると、ロジック回路３０６は、待機状態を解除して、ＳＲＡＭ３０４に対する読出アドレスが最終アドレスとなっているか否か、すなわち、ＳＲＡＭ３０４に格納された映像データをすべて読み出したか否かを判別する（ステップＳ３５）。この判別結果が否定的であるとき、処理手順が上記ステップＳ３３に戻る。
これに対し、判別結果が肯定的であるとき、ロジック回路３０６は、信号ＩＮＴをＨレベルにセットして、ＣＰＵ１０に対し、ＳＲＡＭ３０４に新たな映像データを書き込むべきことを要求する（ステップＳ３６）。この後、ロジック回路３０６は、処理手順を上記ステップＳ３１に戻し、新たな映像データがＳＲＡＭ３０４に書き込まれて、データ転送が許可されるまで待機状態となる。
【００２５】
一方、ＣＰＵ１０は、データ転送をロジック回路３０６に許可した（ステップＳ１５）後、Ｌレベルにリセットされた（ステップＳ３２）信号ＩＮＴによって、現時点では、ＳＲＡＭ３０４に新たなデータを書き込まなくても良い旨の通知を受けている。そして、この状態において、ＣＰＵ１０は、信号ＩＮＴがＨレベルにセットされるまで待機状態となっている（ステップＳ１６）。
このため、上記ステップＳ３６において、ロジック回路３０６が信号ＩＮＴをＨレベルにセットすると、ＣＰＵ１０は、待機状態を解除して処理手順をステップＳ１１に戻す。
【００２６】
以後、ＣＰＵ１０は、映像データを転送すべき状況（ステップＳ１１における判別結果が肯定的であるとき）であって、ロジック回路３０６からデータ書込が要求される（ステップＳ１６における判別結果が肯定的となる）毎に、連続再生すべき映像データをＨＤＤ１６から読み出して、ＳＲＡＭ３０４に書き込むことになる。
また、ロジック回路３０６は、ＣＰＵ１０によってＳＲＡＭ３０４に映像データが書き込まれると、当該映像データを、デコーダ３２からの要求に応じてブロック単位で順番に読み出してデコーダ３２に転送する一方、ＳＲＡＭ３０４から映像データをすべて読み出すと、ＣＰＵ１０に対し、ＳＲＡＭ３０４へのデータ書込を要求する。
そして、デコーダ３２は、ロジック回路３０６から映像データが転送されると、当該映像データをデコードして映像信号に変換するとともに、ロジック回路３０６に映像データの次のブロックを要求する、という動作を繰り返す。これによって、背景映像は、途切れることなく再生されることになる。
【００２７】
なお、カラオケ演奏が終了すると、映像データの転送という観点から言えば、映像データを転送すべき状況ではないので、ＣＰＵ１０は、待機状態となる（ステップＳ１１）。ロジック回路３０６は、ＳＲＡＭ３０４から映像データをすべて読み出すと、データ書込をＣＰＵ１０に要求するものの、待機状態となっているＣＰＵ１０が、ＳＲＡＭ３０４に新たな映像データを書き込むことはない。このため、ロジック回路３０６についても、信号ＴＥによってデータ転送が許可されないので、待機状態となる（ステップＳ３１）。ここで、ロジック回路３０６が待機状態になると、映像データを転送しないことになるから、デコーダ３２も待機状態となる（ステップＳ４１）。ただし、映像制御という観点から言えば、ＣＰＵ１０は、演奏終了点に向かって背景映像をフェードアウトさせるように表示制御部３６を制御させる。
一方、カラオケ演奏が開始すると、ＣＰＵ１０、ロジック回路３０６、デコーダ３２の順番で待機状態が解除される。
【００２８】
このように、本実施形態では、デコーダ３２に映像データを転送する場合、ＣＰＵ１０には、映像データをＨＤＤ１６から読み出してＳＲＡＭ３０４に書き込む負担があるものの、一旦書き込んでしまえば、要求に応じて映像データをデコーダ３２に転送することについてはロジック回路３０６が負うことになるので、その転送の負担から解放される。
また、映像データをＨＤＤ１６から読み出してＳＲＡＭ３０４に書き込むことについては、デコーダ３２のデコード動作に同期させる必要がないので、ＣＰＵ１０のクロックサイクルにて実行することができる。したがって、その書き込み動作に要する期間は、デコーダ３２による背景映像の再生期間と比較すると、極めて短い。
【００２９】
したがって、ＣＰＵ１０は、カラオケ演奏中においては、映像データをＨＤＤ１６から読み出してＳＲＡＭ３０４に書き込む際の一瞬だけ負荷率が増加するものの、他の期間では、転送のために占有されることもない。
また、映像データをＨＤＤ１６から読み出してＳＲＡＭ３０４に書き込む以外の期間においては、バス１１が占有されることがなく、しかも、バススイッチ３０２によってＳＲＡＭ３０４の入力ポートが切り離されるので、バス１１を映像データの転送以外の処理に有効活用することもできる。
そして、ＣＰＵ１０は、映像データの転送処理において、ステップＳ１１、Ｓ１６において待機状態となったとき、他のタスクを処理することができるので、カラオケ演奏中における背景映像の再生以外の処理能力が低下する、ということも少ない。
【００３０】
一方、ＳＲＡＭ３０４は、ＤＲＡＭとは比較すると、リフレッシュが不要であるので、この点において、ＣＰＵの負担軽減に有効であり、さらに、アクセスタイムも短くて済む。
さらに、ロジック回路３０６は、その主な機能がクロック信号ＣＬＫにしたがって読出アドレスを歩進するだけであるので、いわゆるプログラマブル・ロジック・デバイスによって容易にカスタム化することができる。このため、コストの面で有利となるだけでなく、ソフトウェア的なサポートも不要となる。
【００３１】
なお、カラオケ装置１では、デコーダ３２を１個備えた構成であったが、複数個、例えば図４に示されるように２個設けても良い。この図に示されるデータ転送回路３０では、デコーダ３２−１に対しては、バススイッチ３０２−１、ＳＲＡＭ３０４−１およびロジック回路３０６−１によって映像データを転送する一方、デコーダ３２−２に対しては、バススイッチ３０２−２、ＳＲＡＭ３０４−２およびロジック回路３０６−２によって映像データを転送する構成となっている。この構成において、ＣＰＵ１０は、バススイッチ３０２−１、３０２−２のいずれか一方のみを排他的にオンして、対応するＳＲＡＭ３０４−１または３０４−２のいずれかに映像データを書き込む。このため、ロジック回路がＳＲＡＭから映像データを読み出してデコーダに供給する動作が、２系統独立して実行されることになる。
【００３２】
このように、デコーダを２個備えると、背景映像を一方から他方に切り替えたり、その切替時に各種のトランジションエフェクトを付与したりすることができる。また、デコーダを２個備える構成では、バススイッチ、ＳＲＡＭおよびロジック回路の組を、１個のデコーダに対応して設ける必要があるが、クロック信号ＣＬＫを供給する発振器３０８については共用することができる。さらに、ＣＰＵ１０は、バススイッチ３０２−１、３０２−２のいずれか一方のみをオンして、対応するＳＲＡＭに映像データを書き込むので、ＳＲＡＭ３０４−１、３０４−２については、同一の書込アドレスを割り当てて用いることができる。したがって、図５に示されるように、ＣＰＵ１０のアドレス空間においては、デコーダが２以上あったとしても、ＳＲＡＭ３０４−１、３０４−２等への書込アドレスを兼用することができ、別々のアドレスを割り当てなくて済む。
【００３３】
【発明の効果】
以上説明したように本発明によれば、データを転送する際のＣＰＵの負荷率を、簡易な構成によって低減させることが可能となる。
【図面の簡単な説明】
【図１】本発明のデータ転送回路が適用されたカラオケ装置の構成を示すブロック図である。
【図２】本発明の実施形態に係るデータ転送回路の構成を示すブロック図である。
【図３】同データ転送回路の動作手順を説明するための図である。
【図４】同データ転送回路を２つ用いた場合の構成を示すブロック図である。
【図５】同データ転送回路を２つ用いた場合におけるＣＰＵのアドレス空間を説明するための図である。
【符号の説明】
１…カラオケ装置、１０…ＣＰＵ、１１…バス、２０…データ転送回路、３２…デコーダ（周辺装置）、３０２…バススイッチ、３０４…ＳＲＡＭ（メモリ）、３０６…ロジック回路。
【図１】
2004101875.tif 000003
【図２】
2004101875.tif 000004
【図３】
2004101875.tif 000005
【図４】
2004101875.tif 000006
【図５】
2004101875.tif 000007