(57)【要約】【課題】  本発明は、第１及び第２のデータ処理をこれらの優先度に応じて的確に実行させる。【解決手段】  本発明は、第１の優先度の第１のデータ処理を開始させ、当該第１のデータ処理が終了すると、第１の優先度よりも低い第２の優先度の第２のデータ処理を開始させ、実行中の第２のデータ処理に対する割込実行を検出したとき、当該実行中の第２のデータ処理に割り込みをかけて中断させると共に、第１のデータ処理を開始させることにより、第２のデータ処理を実行させていても、割込実行を検出したときには、当該実行中の第２のデータ処理よりも高い第１の優先度の第１のデータ処理を優先的に実行させることができ、第１及び第２のデータ処理をこれらの優先度に応じて的確に実行することができる。【選択図】        図６
2006244539.tif 000002
【特許請求の範囲】
【請求項１】
第１の優先度の第１のデータ処理を実行する第１のデータ処理手段と、
上記第１の優先度よりも低い第２の優先度の第２のデータ処理を実行する第２のデータ処理手段と、
上記第１のデータ処理手段に対し上記第１のデータ処理を開始させ、当該第１のデータ処理手段による上記第１のデータ処理が終了すると、上記第２のデータ処理手段に対し上記第２のデータ処理を開始させ、実行中の上記第２のデータ処理に対する割込実行を検出したとき、上記第２のデータ処理手段に対し上記実行中の上記第２のデータ処理に割り込みをかけて中断させると共に、上記第１のデータ処理手段に対し新たに上記第１のデータ処理を開始させるように上記第１及び第２のデータ処理手段を制御する制御手段と
を具えることを特徴とするデータ処理回路。
【請求項２】
時刻を計時するタイマ
を具え、
上記制御手段は、
上記タイマに対し上記割込実行のタイミングを検出するための割込実行時刻を設定して計時させ、上記タイマの計時した上記割込実行時刻を検出したとき、上記第２のデータ処理手段に対し上記実行中の上記第２のデータ処理に割り込みをかけて中断させる
ことを特徴とする請求項１に記載のデータ処理回路。
【請求項３】
上記制御手段は、
上記タイマをリセットして計時を開始させると共に、上記第１のデータ処理手段に対し上記第１のデータ処理を開始させ、当該第１のデータ処理手段による上記第１のデータ処理が終了したとき、上記タイマの計時した上記時刻に基づいて上記第１のデータ処理の実行に要した第１データ処理実行時間を検出し、当該検出した上記第１データ処理実行時間と、上記第１及び第２のデータ処理の実行に割り当てられた第１第２データ処理実行割当時間とに基づいて、上記タイマに対し一旦リセットして上記割込実行時刻を設定し、当該割込実行時刻を設定した上記タイマに計時を開始させると共に、上記第２のデータ処理手段に対し上記第２のデータ処理を開始させ、上記タイマの計時した上記割込実行時刻を検出したとき、上記第２のデータ処理手段に対し実行中の上記第２のデータ処理に割り込みをかけて中断させる
ことを特徴とする請求項２に記載のデータ処理回路。
【請求項４】
上記制御手段は、
上記第２のデータ処理手段による上記第２のデータ処理が上記割込実行時刻の検出前に終了したとき、上記タイマの計時した上記時刻と上記設定していた上記割込実行時刻とに基づいて、上記第１第２データ処理実行割当時間と、上記第２のデータ処理の実行に要した第２データ処理実行時間との時間差を算出し、上記第１データ処理実行時間と、上記第１第２データ処理実行割当時間と、上記算出した時間差と基づいて、上記タイマに対し一旦リセットして上記割込実行時刻を設定する
ことを特徴とする請求項３に記載のデータ処理回路。
【請求項５】
上記制御手段は、
上記第２のデータ処理手段による上記第２のデータ処理が上記割込実行時刻の検出前に終了したとき、上記第２のデータ処理手段に対し新たに上記第２のデータ処理を開始させる
ことを特徴とする請求項３に記載のデータ処理回路。
【請求項６】
上記制御手段は、
上記第２のデータ処理手段による上記第２のデータ処理の実行中に、上記タイマの計時した上記割込実行時刻を検出したとき、上記第１のデータ処理の実行により得られるデータを一時記憶する一時記憶手段が、新たに上記第１のデータ処理を実行して得られる新たなデータを書込可能な状態であるか確認し、当該一時記憶手段が上記新たなデータを書込可能な状態であると、上記第２のデータ処理手段に対し上記実行中の上記第２のデータ処理に割り込みをかけて中断させる
ことを特徴とする請求項３に記載のデータ処理回路。
【請求項７】
上記制御手段は、
上記第２のデータ処理手段による上記第２のデータ処理の実行中に、上記タイマの計時した上記割込実行時刻を検出したとき、上記一時記憶手段が上記新たなデータを書込可能な状態にないと、上記第２のデータ処理手段に対し上記実行中の上記第２のデータ処理を継続して実行させる
ことを特徴とする請求項６に記載のデータ処理回路。
【請求項８】
上記制御手段は、
上記第２のデータ処理手段による上記第２のデータ処理が上記割込実行時刻の検出前に終了したとき、上記一時記憶手段が上記新たなデータを書込可能な状態であるか確認し、当該一時記憶手段が上記新たなデータを書込可能な状態であると、上記タイマをリセットして計時を開始させると共に、上記第１のデータ処理手段に対し新たに上記第１のデータ処理を開始させる
ことを特徴とする請求項６に記載のデータ処理回路。
【請求項９】
上記制御手段は、
上記第２のデータ処理手段による上記第２のデータ処理が上記割込実行時刻の検出前に終了したとき、上記一時記憶手段が上記新たなデータを書込可能な状態にないと、上記第２のデータ処理手段に対し新たに上記第２のデータ処理を開始させる
ことを特徴とする請求項８に記載のデータ処理回路。
【請求項１０】
上記制御手段は、
上記タイマをリセットして、上記第１及び第２のデータ処理の実行に割り当てられた第１第２データ処理実行割当時間以下の所定時間で周期的に上記割込実行時刻を計時するように設定し、当該割込実行時刻を設定した上記タイマに計時を開始させると共に、上記第１のデータ処理手段に対し上記第１のデータ処理を開始させる
ことを特徴とする請求項２に記載のデータ処理回路。
【請求項１１】
上記制御手段は、
上記タイマをリセットして、上記第１及び第２のデータ処理の実行に割り当てられた第１第２データ処理実行割当時間以下の所定時間に応じて上記割込実行時刻を設定し、当該割込実行時刻を設定した上記タイマに計時を開始させると共に、上記第１のデータ処理手段に対し上記第１のデータ処理を開始させる
ことを特徴とする請求項２に記載のデータ処理回路。
【請求項１２】
上記制御手段は、
上記第１のデータ処理の実行により得られるデータを一時記憶する一時記憶手段に対し、新たに上記第１のデータ処理を実行して得られる新たなデータが書込可能な状態になったとき、上記割込実行を通知するように設定し、上記一時記憶手段からの通知により上記割込実行を検出したとき、上記第２のデータ処理手段に対し上記実行中の上記第２のデータ処理に割り込みをかけて中断させる
ことを特徴とする請求項１に記載のデータ処理回路。
【請求項１３】
上記制御手段は、
上記第２のデータ処理手段による上記第２のデータ処理が上記割込実行の検出前に終了したとき、上記第２のデータ処理手段に対し新たに上記第２のデータ処理を開始させる
ことを特徴とする請求項１２に記載のデータ処理回路。
【請求項１４】
上記制御手段は、
上記第２のデータ処理手段による上記第２のデータ処理が上記割込実行の検出前に終了したとき、上記一時記憶手段が上記新たなデータを書込可能な状態であるか確認し、当該一時記憶手段が上記新たなデータを書込可能な状態であると、上記第１のデータ処理手段に対し新たに上記第１のデータ処理を開始させる
ことを特徴とする請求項１２に記載のデータ処理回路。
【請求項１５】
上記制御手段は、
上記第２のデータ処理手段による上記第２のデータ処理が上記割込実行の検出前に終了したとき、上記一時記憶手段が上記新たなデータを書込可能な状態にないと、上記第２のデータ処理手段に対し新たに上記第２のデータ処理を開始させる
ことを特徴とする請求項１４に記載のデータ処理回路。
【請求項１６】
上記第１のデータ処理手段は、
上記第１のデータ処理として、入力される暗号化圧縮符号化データに対する復号処理と、当該暗号化圧縮符号化データを上記復号処理して得られる圧縮符号化データに対する伸張処理とを実行し、
上記第２のデータ処理手段は、
上記第２のデータ処理として、入力されるデータに対する圧縮符号化処理と、当該データを上記圧縮符号化処理して得られる圧縮符号化データに対する暗号化処理とを実行する
ことを特徴とする請求項１に記載のデータ処理回路。
【請求項１７】
第１の優先度の第１のデータ処理を実行する第１のデータ処理手段と、上記第１の優先度よりも低い第２の優先度の第２のデータ処理を実行する第２のデータ処理手段と、上記第１のデータ処理手段に対し上記第１のデータ処理を開始させ、当該第１のデータ処理手段による上記第１のデータ処理が終了すると、上記第２のデータ処理手段に対し上記第２のデータ処理を開始させ、実行中の上記第２のデータ処理に対する割込実行を検出したとき、上記第２のデータ処理手段に対し上記実行中の上記第２のデータ処理に割り込みをかけて中断させると共に、上記第１のデータ処理手段に対し新たに上記第１のデータ処理を開始させるように上記第１及び第２のデータ処理手段を制御する制御手段とを有するデータ処理回路と、
上記データ処理回路に対し、入力データを入力するデータ入力手段と、
上記データ処理回路から上記入力データに対し上記第１のデータ処理を実行して出力された出力データを再生する再生手段と
を具えることを特徴とする再生装置。
【請求項１８】
第１の優先度の第１のデータ処理を開始させる第１のデータ処理開始ステップと、
上記第１のデータ処理が終了すると、上記第１の優先度よりも低い第２の優先度の第２のデータ処理を開始させる第２のデータ処理開始ステップと、
実行中の上記第２のデータ処理に対する割込実行を検出したとき、当該実行中の上記第２のデータ処理に割り込みをかけて中断させると共に、上記第１のデータ処理を開始させる割込ステップと
を具えることを特徴とするデータ処理制御方法。
【請求項１９】
データ処理回路に対して、
第１の優先度の第１のデータ処理を開始させる第１のデータ処理開始ステップと、
上記第１のデータ処理が終了すると、上記第１の優先度よりも低い第２の優先度の第２のデータ処理を開始させる第２のデータ処理開始ステップと、
実行中の上記第２のデータ処理に対する割込実行を検出したとき、当該実行中の上記第２のデータ処理に割り込みをかけて中断させると共に、上記第１のデータ処理を開始させる割込ステップと
を実行させるためのデータ処理制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理回路に関し、例えば音楽データを記録再生する記録再生装置に適用して好適なものである。
【背景技術】
【０００２】
従来のディスク再生装置は、システムコントローラが当該ディスク再生装置全体を制御することで、光磁気ディスクから予め圧縮符号化されて記録されている音楽データ（以下、これを圧縮音楽データと呼ぶ）を所定の記録単位毎に第１の速度で読み出すと共に、当該記録単位毎の圧縮音楽データ（以下、これを記録単位圧縮音楽データと呼ぶ）に対する光磁気ディスク上のアドレスデータも読み出す。そしてディスク再生装置は、このように光磁気ディスクから順次読み出した記録単位圧縮音楽データをアドレスデータと対応付けてバッファメモリとしてのＲＡＭ（Random Access Memory）に一時記憶して蓄積する。
【０００３】
またディスク再生装置は、ＲＡＭから第１の速度よりも遅い第２の速度で記録単位圧縮音楽データを順次読み出してデータ伸張回路で伸張処理し、得られた音楽データをデジタルアナログ変換してヘッドホン等に送出する。これによりディスク再生装置は、外部からの振動等により光磁気ディスクから記録単位圧縮音楽データを一時的に読み出し難くなっても、かかる記録単位圧縮音楽データの読み出しを再開するまでの間、ＲＡＭからこれに蓄積している記録単位圧縮音楽データを順次読み出し続けることができる。従ってかかるディスク再生装置は、光磁気ディスクから記録単位圧縮音楽データを読み出して再生処理する際に、ヘッドホン等から出力される音楽が音飛びすることを未然に回避していた（例えば、特許文献１参照）。
【特許文献１】特開平６−１５０５４０号公報（第２頁、第４頁、図３）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところでかかる構成のディスク再生装置では、近年の高機能化に伴い、内部の回路を全てハードウェア構成としたのでは回路規模が著しく増加する。このためかかるディスク再生装置では、例えばＲＡＭ制御回路やデータ伸張回路等で実行する各種処理を１つのデータ処理回路でソフトウェアにより実行することが提案されている。そしてディスク再生装置では、かかるデータ処理回路においてソフトウェアにより、記録単位圧縮音楽データに対するＲＡＭからの読み出し処理及び伸張処理（以下、これを読出伸張処理と呼ぶ）と、他のデータに対する他のデータ処理とを並行して実行し処理効率を向上させることも提案されている。
【０００５】
ところがかかるディスク再生装置では、データ処理回路において各処理を制御するための制御機能が１つのみ存在する場合には、当該制御機能により読出伸張処理と他のデータ処理とを順次交互に実行するように制御することになる。そしてかかるディスク再生装置では、読出伸張処理及び他のデータ処理において処理対象の記録単位圧縮音楽データ及び他のデータをそれぞれ予め選定された所定データサイズ毎に順次交互に実行した場合、例えば他のデータ処理に対し膨大な演算等を必要として処理時間が比較的長くなると、その分、読出伸張処理に対する休止時間が長くなる。その結果、ディスク再生装置では、記録単位圧縮音楽データに対する読出伸張処理がスピーカからの音楽の出力に間に合わずに当該音楽が途切れる等のように、読出伸張処理及び他のデータ処理を的確に処理し難いという問題があった。
【０００６】
本発明は以上の点を考慮してなされたもので、第１及び第２のデータ処理を優先度に応じて的確に実行し得るデータ処理回路を提案しようとするものである。
【課題を解決するための手段】
【０００７】
かかる課題を解決するため本発明においては、データ処理回路に対し、第１の優先度の第１のデータ処理を実行する第１のデータ処理手段と、第１の優先度よりも低い第２の優先度の第２のデータ処理を実行する第２のデータ処理手段と、第１のデータ処理手段に対し第１のデータ処理を開始させ、当該第１のデータ処理手段による第１のデータ処理が終了すると、第２のデータ処理手段に対し第２のデータ処理を開始させ、実行中の第２のデータ処理に対する割込実行を検出したとき、第２のデータ処理手段に対し実行中の第２のデータ処理に割り込みをかけて中断させると共に、第１のデータ処理手段に対し新たに第１のデータ処理を開始させるように第１及び第２のデータ処理手段を制御する制御手段とを設けるようにした。
【０００８】
従って本発明のデータ処理回路では、第２のデータ処理を実行していても、割込実行を検出したときには、当該実行中の第２のデータ処理に割り込みをかけて中断させると共に、その第２のデータ処理よりも高い第１の優先度の第１のデータ処理を実行することで、当該第１のデータ処理を優先的に実行することができる。
【０００９】
また本発明においては、再生装置に対し、第１の優先度の第１のデータ処理を実行する第１のデータ処理手段と、第１の優先度よりも低い第２の優先度の第２のデータ処理を実行する第２のデータ処理手段と、第１のデータ処理手段に対し第１のデータ処理を開始させ、当該第１のデータ処理手段による第１のデータ処理が終了すると、第２のデータ処理手段に対し第２のデータ処理を開始させ、実行中の第２のデータ処理に対する割込実行を検出したとき、第２のデータ処理手段に対し実行中の第２のデータ処理に割り込みをかけて中断させると共に、第１のデータ処理手段に対し新たに第１のデータ処理を開始させるように第１及び第２のデータ処理手段を制御する制御手段とを有するデータ処理回路と、データ処理回路に対し、入力データを入力するデータ入力手段と、当該データ処理回路から入力データに対し第１のデータ処理を実行して出力された出力データを再生する再生手段とを設けるようにした。
【００１０】
従って本発明の再生装置では、データ処理回路において、第２のデータ処理を実行していても、割込実行を検出したときには、当該実行中の第２のデータ処理に割り込みをかけて中断させると共に、その第２のデータ処理よりも高い第１の優先度の第１のデータ処理を実行することで、当該第１のデータ処理を優先的に実行することができる。
【００１１】
さらに本発明においては、データ処理制御方法において、第１の優先度の第１のデータ処理を開始させる第１のデータ処理開始ステップと、第１のデータ処理が終了すると、第１の優先度よりも低い第２の優先度の第２のデータ処理を開始させる第２のデータ処理開始ステップと、実行中の第２のデータ処理に対する割込実行を検出したとき、当該実行中の第２のデータ処理に割り込みをかけて中断させると共に、第１のデータ処理を開始させる割込ステップとを設けるようにした。
【００１２】
従って本発明のデータ処理制御方法では、第２のデータ処理を実行させていても、割込実行を検出したときには、当該実行中の第２のデータ処理に割り込みをかけて中断させると共に、その第２のデータ処理よりも高い第１の優先度の第１のデータ処理を実行させることで、当該第１のデータ処理を優先的に実行させることができる。
【００１３】
さらに本発明においては、データ処理制御プログラムによりデータ処理回路に対して、第１の優先度の第１のデータ処理を開始させる第１のデータ処理開始ステップと、第１のデータ処理が終了すると、第１の優先度よりも低い第２の優先度の第２のデータ処理を開始させる第２のデータ処理開始ステップと、実行中の第２のデータ処理に対する割込実行を検出したとき、当該実行中の第２のデータ処理に割り込みをかけて中断させると共に、第１のデータ処理を開始させる割込ステップとを実行させるようにした。
【００１４】
従って本発明のデータ処理制御プログラムでは、データ処理回路に対し、第２のデータ処理を実行させていても、割込実行を検出したときには、当該実行中の第２のデータ処理に割り込みをかけて中断させると共に、その第２のデータ処理よりも高い第１の優先度の第１のデータ処理を実行させることで、当該第１のデータ処理を優先的に実行させることができる。
【発明の効果】
【００１５】
本発明によれば、第１の優先度の第１のデータ処理を開始させ、当該第１のデータ処理が終了すると、第１の優先度よりも低い第２の優先度の第２のデータ処理を開始させ、実行中の第２のデータ処理に対する割込実行を検出したとき、当該実行中の第２のデータ処理に割り込みをかけて中断させると共に、第１のデータ処理を開始させるようにしたことにより、第２のデータ処理を実行させていても、割込実行を検出したときには、当該実行中の第２のデータ処理に割り込みをかけて中断させると共に、その第２のデータ処理よりも高い第１の優先度の第１のデータ処理を実行させることで、当該第１のデータ処理を優先的に実行させることができ、かくして第１及び第２のデータ処理をこれらの優先度に応じて的確に実行し得るデータ処理回路、再生装置、データ処理制御方法及びデータ処理制御プログラムを実現することができる。
【発明を実施するための最良の形態】
【００１６】
以下図面について、本発明の一実施の形態を詳述する。
【００１７】
（１）第１の実施の形態
図１において、１は全体として第１の実施の形態による記録再生装置を示し、当該記録再生装置１の筐体表面やリモートコントローラ（図示せず）に設けられた各種操作ボタンでなる操作入力部２がユーザによって操作されると、その操作に応じた操作入力信号を入力処理部３に送出する。入力処理部３は、操作入力部２から与えられる操作入力信号に対して所定の処理を施すことにより、当該操作入力信号を操作コマンドに変換し、これをバス４を介して中央処理ユニット（CPU:Central Processing Unit ）５に送出する。
【００１８】
中央処理ユニット５は、ＲＯＭ（Read Only Memory）６又はハードディスクドライブ７に予め記憶されている基本プログラムや記録再生プログラム等の各種プログラムをバス４を介して、当該中央処理ユニット５のワークエリアであるＲＡＭ（Random Access Memory）８に読み出し、これら各種プログラムに従って全体を制御すると共に、所定の演算処理や、入力処理部３から与えられる操作コマンドに応じた各種処理を実行する。
【００１９】
これにより中央処理ユニット５は、通信処理部９及びネットワークインタフェース１０を順次介してネットワークＮＴに接続し、当該ネットワークＮＴ上の楽曲提供サーバ（図示せず）にアクセスすることができる。この場合、楽曲提供サーバは、音楽配信用の多数の音楽データを、それぞれ圧縮符号化処理した後、所定の鍵データを用いて暗号化処理して得られる暗号化圧縮符号化データ（以下、これを暗号化音楽データと呼ぶ）として蓄積している。また楽曲提供サーバは、音楽配信用の音楽データ毎の利用権利を示す利用権利情報も、対応する暗号化音楽データと関連付けて蓄積している。因みに音楽配信用の音楽データは、ＡＴＲＡＣ３（Adaptive Transform Acoustic Coding 3）、ＡＡＣ（Advanced Audio Coding ）、ＷＭＡ（Windows（登録商標） Media Audio ）、ＲｅａｌＡＵＤＩＯ  Ｇ２  Ｍｕｓｉｃ  Ｃｏｄｅｃ、ＭＰ３（MPEG Audio Layer-3）等の圧縮符号化方式で圧縮符号化処理されている。また利用権利情報は、対応する音楽データ固有の識別情報、再生可能な回数や期間、複写可能回数等の利用条件を示す利用条件情報、利用可能な地域を示す利用地域情報、対応する音楽データの暗号化用及び復号用の鍵データを生成するための元になる鍵元データ、かかる利用権利情報に対する改竄の有無の検出に使用される電子署名情報等から構成されている。
【００２０】
従って中央処理ユニット５は、ユーザにより操作入力部２を介して所望の楽曲を配信要求するための操作入力信号が入力されると、これに応じて楽曲提供サーバにアクセスし所望の楽曲を配信要求する。その結果、中央処理ユニット５は、楽曲提供サーバから配信される所望の楽曲の暗号化音楽データ及び対応する利用権利情報をネットワークインタフェース１０及び通信処理部９を順次介して取り込む。そして中央処理ユニット５は、その暗号化音楽データ及び対応する利用権利情報をハードディスクドライブ７に送出し、当該ハードディスクドライブ７のハードディスクに暗号化音楽データ及び利用権利情報を楽曲毎に対応付けて記録する。
【００２１】
またメディアドライブ１１は、中央処理ユニット５の制御の元に、ＣＤ（Compact Disc）等の記録媒体を再生し得るようになされている。この場合、かかる記録媒体には、楽曲に相当する１又は複数の音楽データが記録されている。メディアドライブ１１は、中央処理ユニット５の制御の元に、かかる記録媒体から音楽データを読み出すと、当該読み出した音楽データを中央処理ユニット５に送出する。中央処理ユニット５は、メディアドライブ１１から音楽データが与えられると、かかる音楽データに対応する利用権利情報を生成し、当該生成した利用権利情報を音楽データと共にデータ処理回路１２に送出する。因みにかかる利用権利情報は、対応する音楽データ固有の識別情報、予め選定された利用条件を示す利用条件情報、利用地域情報、対応する音楽データの暗号化用及び復号用の鍵データを生成するための元になる鍵元データ、かかる利用権利情報に対する改竄の有無の検出に使用される電子署名情報等から構成されている。
【００２２】
データ処理回路１２は、中央処理ユニット５から与えられた利用権利情報に含まれる鍵元データに基づき、音楽データの記録の際の暗号化処理に用いる鍵データを生成する。そしてデータ処理回路１２は、中央処理ユニット５から与えられた音楽データを上述したような所定の圧縮符号化方式で圧縮符号化処理することにより圧縮符号化データ（以下、これを圧縮符号化音楽データと呼ぶ）を生成する。また中央処理ユニット５は、かかる鍵データを用いて圧縮符号化音楽データを暗号化処理することにより暗号化音楽データを生成し、当該生成した暗号化音楽データを中央処理ユニット５に送出する。その結果、中央処理ユニット５は、データ処理回路１２で生成された暗号化音楽データを、対応する利用権利情報と共にハードディスクドライブ７に送出する。これによりハードディスクドライブ７は、内部のハードディスクに対し、中央処理ユニット５から与えられた暗号化音楽データ及び利用権利情報を楽曲毎に対応付けて記録する。
【００２３】
さらに中央処理ユニット５は、ユーザにより操作入力部２を介してハードディスクドライブ７内の暗号化音楽データが指定され、かつ当該指定された暗号化音楽データを再生するように要求する操作入力信号が入力されると、これに応じてハードディスクドライブ７から、当該指定された暗号化音楽データに対応する利用権利情報を読み出してデータ処理回路１２に送出する。また中央処理ユニット５は、このときハードディスクドライブ７からユーザにより指定された暗号化音楽データ自体も読み出してデータ処理回路１２に送出する。データ処理回路１２は、このとき利用権利情報に含まれる鍵元データに基づき、暗号化音楽データの再生の際の復号処理に用いる鍵データを生成する。そしてデータ処理回路１２は、かかる鍵データを用いて対応する暗号化音楽データを復号処理して圧縮符号化音楽データを生成する。またデータ処理回路１２は、かかる圧縮符号化音楽データを伸張処理し、得られた音楽データを音声処理部１３に送出する。
【００２４】
音声処理部１３は、データ処理回路１２から与えられた音楽データに対してデジタルアナログ変換や増幅等の音声処理を施し、得られた音楽信号をスピーカ１４に送出する。これにより音声処理部１３は、スピーカ１４から音楽信号に基づく音楽を出力させユーザに聴かせることができる。
【００２５】
ここで図２に示すように、データ処理回路１２は、ＦＩＦＯ（First In First Out）構成の入力バッファメモリ２０と、ＤＳＰ（Digital Signal Processor）２１とをそれぞれ構成するＩＣ（Integrated Circuit）チップが実装された回路基板として形成されている。この場合、データ処理回路１２のＤＳＰ２１は、内部のメモリに予め記憶している暗号化プログラム、復号プログラム、圧縮符号化プログラム、伸張プログラム及び鍵データ生成プログラム等に従って暗号化処理、復号処理、圧縮符号化処理、伸張処理及び鍵データ生成処理等を実行すると共に、当該内部のメモリに予め記憶しているデータ処理制御プログラムに従って、これら暗号化処理、復号処理、圧縮符号化処理、伸張処理及び鍵データ生成処理等の実行を制御している。ただし以下に示す図２のデータ処理回路１２の構成については、説明の便宜上、ＤＳＰ２１で実現可能な各種機能をそれぞれ機能ブロックに見立てて説明する。
【００２６】
まずデータ処理回路１２においてＤＳＰ２１の一部機能に相当する制御部２２は、データ処理制御プログラムに従い、当該ＤＳＰ２１のそれぞれ一部機能に相当する復号部２３、伸張部２４、データ出力部２５、鍵データ生成部２６、圧縮符号化部２７及び暗号化部２８を、例えばＤＳＰ２１の内部に設けられたタイマ２９で計時される時刻に従って適宜同期させて制御する。このような状態でデータ処理回路１２は、記録媒体から記録対象の音楽データＤ１が読み出された場合、中央処理ユニット５から与えられた当該音楽データＤ１を入力バッファメモリ２０に取り込んで一時記憶する。またデータ処理回路１２は、このとき中央処理ユニット５から与えられた利用権利情報を制御部２２に取り込み、当該制御部２２から鍵データ生成部２６に送出する。鍵データ生成部２６は、制御部２２から与えられた利用権利情報に含まれている鍵元データに基づき、音楽データＤ１の暗号化処理に用いる鍵データを生成し、当該生成した鍵データを暗号化部２８に送出する。この状態で、圧縮符号化部２７は、入力バッファメモリ２０からこれに一時記憶された音楽データＤ１を読み出し、圧縮符号化プログラムに従い、その音楽データＤ１を所定の圧縮符号化方式で圧縮符号化処理することにより圧縮符号化音楽データＤ２を生成し、これを暗号化部２８に出する。暗号化部２８は、暗号化プログラムに従い、鍵データ生成部２６から与えられていた鍵データを用いて、圧縮符号化部２７から与えられた圧縮符号化音楽データＤ２を暗号化処理することにより暗号化音楽データＤ３を生成し、これを入力バッファメモリ２０を介して中央処理ユニット５に送出する。このようにしてデータ処理回路１２では、記録媒体から読み出された音楽データＤ１をハードディスクへの記録用に圧縮符号化処理及び暗号化処理する。
【００２７】
一方、データ処理回路１２は、ハードディスクドライブ７から再生対象の暗号化音楽データＤ４が読み出された場合、中央処理ユニット５から与えられた当該暗号化音楽データＤ４を入力バッファメモリ２０に取り込んで一時記憶する。またデータ処理回路１２は、このとき中央処理ユニット５から与えられた利用権利情報を制御部２２に取り込み、当該制御部２２から鍵データ生成部２６に送出する。鍵データ生成部２６は、制御部２２から与えられた利用権利情報に含まれている鍵元データに基づき、暗号化音楽データＤ４の復号処理に用いる鍵データを生成し、当該生成した鍵データを復号部２３に送出する。この状態で、復号部２３は、入力バッファメモリ２０からこれに一時記憶された暗号化音楽データＤ４を読み出す。そして復号部２３は、復号プログラムに従い、鍵データ生成部２６から与えられていた鍵データを用いて暗号化音楽データＤ４を復号処理することにより圧縮符号化音楽データＤ５を生成し、当該生成した圧縮符号化音楽データＤ５を伸張部２４に送出する。伸張部２４は、伸張プログラムに従い、復号部２３から与えられた圧縮符号化音楽データＤ５を伸張処理することにより音楽データＤ６を生成し、当該生成した音楽データＤ６をデータ出力部２５に送出する。
【００２８】
この場合、図３（Ａ）及び（Ｂ）に示すようにデータ出力部２５は、ＤＳＰ２１の内部に設けられた、例えば２個の出力バッファメモリ２５Ａ及び２５Ｂを有している。またデータ出力部２５は、これら２個の出力バッファメモリ２５Ａ及び２５Ｂに対する音楽データＤ６の書込状況及び読出状況を監視するようにして当該音楽データＤ６の書き込み及び読み出しを切替器２５Ｃ及び２５Ｄを介して切替制御するメモリ制御器２５Ｅを有している。データ出力部２５においてメモリ制御器２５Ｅは、制御部２２の制御の元、まず何れか一方の出力バッファメモリ２５Ａ又は２５Ｂに対し、伸張部２４から与えられた音楽データＤ６を比較的速い第１の速度で書き込んだ後、当該一方の出力バッファメモリ２５Ａ又は２５Ｂからその音楽データＤ６を第１の速度よりも遅い第２の速度で読み出して音声処理部１３に送出しながら、他方の出力バッファメモリ２５Ｂ又は２５Ａに対し、当該伸張部２４から与えられた新たな音楽データＤ６を第１の速度で書き込む。そしてメモリ制御器２５Ｅは、他方の出力バッファメモリ２５Ｂ又は２５Ａに対する音楽データＤ６の書き込みが完了した後、一方の出力バッファメモリ２５Ａ又は２５Ｂから記憶単位音楽データＤ６の読み出しが完了すると、当該他方の出力バッファメモリ２５Ｂ又は２５Ａからその音楽データＤ６を第２の速度で読み出して音声処理部１３に送出しながら、一方の出力バッファメモリ２５Ａ又は２５Ｂに対し、伸張部２４から与えられた新たな音楽データＤ６を第１の速度で書き込む。このようにしてメモリ制御器２５Ｅは、一方及び他方の出力バッファメモリ２５Ａ及び２５Ｂを音楽データＤ６の書き込み及び読み出しに順次交互に用いて、伸張部２４により生成された音楽データＤ６を音声処理部１３に送出する。
【００２９】
ところで制御部２２は、再生対象の暗号化音楽データＤ４を順次所定の第１のデータ単位毎に復号処理及び伸張処理させるように復号部２３及び伸張部２４（以下、これらをまとめて第１のデータ処理部と呼ぶ）を制御する。そして暗号化音楽データＤ４に対する第１のデータ単位は、当該第１のデータ単位の暗号化音楽データ（以下、これを特に第１単位暗号化音楽データと呼ぶ）Ｄ４を順次復号処理及び伸張処理した際に、データ出力部２５の１個の出力バッファメモリ２５Ａ及び２５Ｂの記憶容量とほぼ同等なデータ量の音楽データ（以下、この１個の出力バッファメモリ２５Ａ及び２５Ｂの記憶容量とほぼ同等なデータ量の音楽データを特に記憶単位音楽データと呼ぶ）Ｄ６を得ることができるようなデータ量に選定されている。これにより制御部２２は、順次第１のデータ処理部で第１単位暗号化音楽データＤ４を順次復号処理及び伸張処理させる毎に、１個の出力バッファメモリ２５Ａ及び２５Ｂの記憶容量とほぼ同等なデータ量の記憶単位音楽データＤ６を生成させる。従って制御部２２は、データ処理部２５において２個の出力バッファメモリ２５Ａ及び２５Ｂに対しその記憶容量を有効に利用して順次交互に、かかる記憶単位音楽データＤ６を一時記憶させることができる。
【００３０】
ところでデータ出力部２５のメモリ制御器２５Ｅは、一方の出力バッファメモリ２５Ａ又は２５Ｂから記憶単位音楽データＤ６を読み出している間に、他方の出力バッファメモリ２５Ｂ又は２５Ａに対する記憶単位音楽データＤ６の書き込みが完了していると、一方の出力バッファメモリ２５Ａ又は２５Ｂに対する記憶単位音楽データＤ６の読出完了時点に、他方の出力バッファメモリ２５Ｂ又は２５Ａからこれにすでに書き込んでいる記憶単位音楽データＤ６を読み出しを開始するように切替器２５Ｃ及び２５Ｄを制御している。このため制御部２２は、第１のデータ処理部により入力バッファメモリ２０から第１単位暗号化音楽データＤ４の読み出しを開始して記憶単位音楽データＤ６を生成し、出力バッファメモリ２５Ａ及び２５Ｂに書き込みが完了するまでの一連の処理（以下、この一連の処理を第１のデータ処理と呼ぶ）の実行に要する第１データ処理実行時間が、１個の出力バッファメモリ２５Ａ及び２５Ｂに対する記憶単位音楽データＤ６の読出開始から読出完了までに要する時間（以下、これを読出実行時間と呼ぶ）よりも大幅に短くなるように当該第１のデータ処理部（すなわち、復号部２３及び伸張部２４）を制御する。従って制御部２２は、データ出力部２５において一方の出力バッファメモリ２５Ａ又は２５Ｂから記憶単位音楽データＤ６が読み出されている間に、他方の出力バッファメモリ２５Ｂ又は２５Ａへの新たな記憶単位音楽データＤ６の書き込みを確実に完了させることができる。これにより制御部２２は、データ出力部２５の一方及び他方の出力バッファメモリ２５Ａ及び２５Ｂから順次交互に記憶単位音楽データＤ６を途切れることなく連続して読み出して音声処理部１３に送出することができる。
【００３１】
ところで制御部２２は、例えば再生対象の暗号化音楽データＤ４と、記録対象の音楽データＤ１とを同時並列的にデータ処理する場合、第１のデータ処理部に順次実行させる第１のデータ処理を１つの単位処理（以下、これを特に第１のタスクと呼ぶ）とする。また制御部２２は、記録対象の音楽データＤ１をデータ処理する場合、当該音楽データＤ１を順次所定の第２のデータ単位毎に圧縮符号化処理及び暗号化処理するように圧縮符号化部２７及び暗号化部２８（以下、これを第２のデータ処理部と呼ぶ）を制御している。すなわち制御部２２は、第２のデータ処理部に対し、入力バッファメモリ２０から所定の第２のデータ単位の音楽データ（以下、これを第２単位音楽データと呼ぶ）Ｄ１の読み出しを開始させ、当該第２単位音楽データＤ１から暗号化音楽データＤ３を生成させて入力バッファメモリ２０への書き込みが完了するまでの一連の処理（以下、この一連の処理を第２のデータ処理と呼ぶ）を順次実行させるため、かかる第２のデータ処理を１つの単位処理（以下、これを特に第２のタスクと呼ぶ）とする。そして制御部２２は、これら第１のタスク（すなわち、第１のデータ処理）と第２のタスク（すなわち、第２のデータ処理）とを実行させるように第１のデータ処理部と第２のデータ処理部とを制御することにより、再生対象の暗号化音楽データＤ４と、記録対象の音楽データＤ１とに対する同時並列的なデータ処理を実現する。
【００３２】
この際、図４（Ａ）乃至（Ｃ）からも明らかなように、制御部２２は、第１のタスクの実行（すなわち、第１のデータ処理の開始から終了まで）に要する第１のデータ処理実行時間（以下、これを特に第１タスク実行時間と呼ぶ）を、読出実行時間Ｔｍａｘよりも大幅に短くしている。しかしながら第２のタスクの実行（すなわち、第２のデータ処理の開始から終了まで）に要する第２データ処理実行時間（以下、これを特に第２タスク実行時間と呼ぶ）は、その処理内容によっては第１タスク実行時間よりも格段的に長い場合がある。このため連続する第１及び第２のタスクの実行（すなわち、第１のデータ処理の開始から第２のデータ処理の終了まで）に要する第１第２データ処理実行時間（以下、これを特に第１第２タスク実行時間と呼ぶ）Ｔｔｅ１及びＴｔｅ２は、読出実行時間Ｔｍａｘよりも長くなる場合がある。
【００３３】
このため制御部２２は、第１及び第２のデータ処理部を制御して、単に第１のタスクと第２のタスクとを順次交互に実行させたのでは、第１第２タスク実行時間Ｔｔｅ１及びＴｔｅ２において読出実行時間Ｔｍａｘよりも長い部分の時間が、処理を進めるにつれて順次累積する場合がある。そして制御部２２は、このような場合、一方の出力バッファメモリ２５Ａ又は２５Ｂから記憶単位音楽データＤ６の読み出しが完了する時刻Ｔ１までの間に、他方の出力バッファメモリ２５Ｂ又は２５Ａに対する記憶単位音楽データＤ６の書き込みが完了せずに時刻Ｔ１以降の時刻Ｔ２にその書き込みが完了すると、データ出力部２５から出力させる記憶単位音楽データＤ６の出力を途切れさせることになり、その結果、スピーカ１４から出力される音楽も途切れてユーザに不快感を与えることになりかねない。
【００３４】
従って図５（Ａ）乃至（Ｃ）に示すように、制御部２２は、データ出力部２５から読み出される記憶単位音楽データＤ６が途切れないようにするために（すなわち、スピーカ１４から出力される音楽が途切れないようにするために）、当該記憶単位音楽データＤ６を生成するための第１のタスクに対する実行の優先度を比較的高い第１の優先度に設定する。また制御部２２は、記録対象の音楽データＤ１から暗号化音楽データＤ３を生成するための第２のタスクを実行中に一時的に中断させ、その結果、暗号化音楽データＤ３に対するハードディスクへの記録が一時的に中断されても、特に問題はないため、当該第２のタスクに対する実行の優先度を第１の優先度よりも低い第２の優先度に設定する。
【００３５】
そして制御部２２は、データ出力部２５の２個の出力バッファメモリ２５Ａ及び２５Ｂがそれぞれ記憶単位音楽データＤ６を書込可能な状態（すなわち、出力バッファメモリ２５Ａ及び２５Ｂからすでに書き込んでいた記憶単位音楽データＤ６の読み出しが完了した状態）になる毎に、その時刻（以下、これを書込開始可能時刻と呼ぶ）Ｔ１０、Ｔ１２、Ｔ１５、Ｔ１７、Ｔ２０、Ｔ２３で第１のデータ処理部に対し第１のタスクを開始させる。これにより制御部２２は、出力バッファメモリ２５Ａ及び２５Ｂに対し確実に書込可能な状態で記憶単位音楽データＤ６を書き込むようにしている。
【００３６】
さらに制御部２２は、第１のデータ処理部による第１のタスクが終了すると、その終了時刻Ｔ１１、Ｔ１３、Ｔ１６、Ｔ１８、Ｔ２１から第２のデータ処理部に対し第２のタスクを開始させるものの、第２のタスクに対する第２の優先度を第１のタスクに対する第１の優先度よりも低く設定していることにより、当該第２のデータ処理部による第２のタスクの実行中に次の書込開始可能時刻Ｔ１２、Ｔ１７に到達すると、第２のデータ処理部に対し当該実行中の第２のタスクに割り込みをかけて中断させると共に、第１のデータ処理部に対し新たに第１のタスクを開始させる。これにより制御部２２は、再び出力バッファメモリ２５Ａ及び２５Ｂに対し確実に書込可能な状態で新たな記憶単位音楽データＤ６を書き込むようにしている。そして制御部２２は、第２のデータ処理部に対し実行中の第２のタスクに割り込みをかけて中断させると、引き続き第１のデータ処理部に対し第１のタスクを実行させた後に、第２のデータ処理部に対しかかる第２のタスクをその中断時点から再開させる。これにより制御部２２は、実行中の第２のタスクに割り込みをかけて中断させても、当該第２のタスクを的確かつ確実に終了している。これに加えて制御部２２は、第２のデータ処理部に対し、第１のタスクの終了時刻Ｔ１３、Ｔ１８、Ｔ２１に第２のタスクを開始又は再開させても、かかる第２のタスクが書込開始可能時刻Ｔ１５、Ｔ２０、Ｔ２３に到達する前に終了したとき、当該第２のタスクの終了時刻Ｔ１４、Ｔ１９、Ｔ２２から新たに第２のタスクを開始させる。これにより制御部２２は、第１のタスクより優先度の低い第２のタスクについても、極力効率良く実行させている。
【００３７】
実際に制御部２２は、第１及び第２のデータ処理部を制御して第１及び第２のタスクを実行させる場合、タイマ２９をリセットして計時を開始させると共に、第１のデータ処理部に対し第１のタスクを開始させる。そして制御部２２は、第１のデータ処理部による第１のタスクが終了すると、その時点にタイマ２９の計時した時刻により第１タスク実行時間ｘ１、……、又はｘ５を検出すると共に、予め保持している読出実行時間Ｔｍａｘから当該第１タスク実行時間ｘ１、……、又はｘ５を減算することにより、その読出実行時間Ｔｍａｘ内で第２のタスクの実行に割り当てる時間（以下、これを第２タスク実行割当時間と呼ぶ）を算出する。この場合、制御部２２は、第１及び第２のデータ処理部に対する制御を開始するときだけは、最初のタイマ２９の計時の開始と共に第１のタスクの開始を、データ出力部２５における記憶単位音楽データＤ６の書込開始用の出力バッファメモリ２５Ａ及び２５Ｂの切り替えに同期させている。従って第２タスク実行割当時間の終了時刻は、出力バッファメモリ２５Ａ及び２５Ｂに対する新たな記憶単位音楽データＤ６の書込開始可能時刻Ｔ１２、Ｔ１５、Ｔ１７、Ｔ２０、Ｔ２３となる。このため制御部２２は、タイマ２９に対し、かかる終了時刻を、第２のデータ処理部に対し実行中の第２のタスクに割り込みかけて中断させると共に、第１のデータ処理部に対し第１タスクを開始させる割込実行のタイミングを検出するための割込実行時刻として設定する。そして制御部２２は、第２のデータ処理部に対し第２のタスクを実行させるものの、かかる第２のタスクの実行中にタイマ２９の計時した割込実行時刻を検出したとき（すなわち、現在時刻が割込実行時刻となったとき）、第２のデータ処理部に対し実行中の第２のタスクに割り込みをかけて中断させると共に、再びタイマ２９をリセットして計時を開始させ、かつ第１のデータ処理部に対し第１のタスクを開始させる。このようにして制御部２２は、第１のタスクと第２のタスクとを順次交互に実行させるものの、出力バッファメモリ２５Ａ及び２５Ｂが書込可能な状態になる毎に割込実行時刻を検出し、当該割込実行時刻の検出に応じて、第２のタスクに優先させて第１のタスクを実行させることで、記憶単位音楽データＤ６を効率良く生成して、書込可能な状態の当該出力バッファメモリ２５Ａ及び２５Ｂに書き込み、かくしてデータ出力部２５に対し記憶単位音楽データＤ６の出力を途切れさせないようにする。
【００３８】
ここでデータ処理回路１２の制御部２２は、データ処理制御プログラムに従って第１及び第２のタスクの実行を制御している。すなわち制御部２２は、中央処理ユニット５から記録対象の音楽データＤ１に対するデータ処理と、再生対象の暗号化音楽データＤ４に対するデータ処理とを実行するように要求されると、データ処理制御プログラムに従って図６に示す第１のデータ処理制御処理手順ＲＴ１を開始する。制御部２２は、かかる第１のデータ処理制御処理手順ＲＴ１を開始すると、ステップＳＰ１においてタイマ２９をリセットして、次のステップＳＰ２に移る。ステップＳＰ２において制御部２２は、タイマ２９に計時を開始させると共に、第１のタスクを開始させ、かかる第１のタスクが終了すると、次のステップＳＰ３に移る。ステップＳＰ３において制御部２２は、読出実行時間Ｔｍａｘ及び第１タスク実行時間に基づいて第２タスク実行割当時間を算出すると共に、タイマ２９に対し一旦リセットして、かかる第２タスク実行割当時間に応じた割込実行時刻を設定し、次のステップＳＰ４に移る。
【００３９】
ステップＳＰ４において制御部２２は、第１のタスクに引き続き開始させる第２のタスクが新たに開始させる第２のタスクであるか否かを判別する。このステップＳＰ４において肯定結果が得られると、このことはこの時点で開始する第２のタスクが一度も中断されてはいない第２のタスクであることを表している。従って制御部２２は、このとき次のステップＳＰ５に移る。そしてステップＳＰ５において制御部２２は、割込実行時刻を設定したタイマ２９を計時させると共に、新たに第２のタスクを開始させて、次のステップＳＰ６に移る。ステップＳＰ６において制御部２２は、割込実行時刻を検出したか否かを判別する。このステップＳＰ６において否定結果が得られると、このことは第２のタスクの実行中ではあるが、未だ割込実行時刻を検出してはいないことにより、かかる第２のタスクをこのまま実行させ続けることを表している。従って制御部２２は、このときステップＳＰ７に移る。ステップＳＰ７において制御部２２は、すでに実行させていた第２のタスクが終了したか否かを判別する。このステップＳＰ７において否定結果が得られると、このことは、割込実行時刻を検出してはいない状態で、かかる第２のタスクが未だ終了してもいないことによりこのまま実行させ続けることを表している。従って制御部２２は、このときステップＳＰ６に戻る。ところでステップＳＰ７において肯定結果が得られると、このことは未だ割込実行時刻を検出してはいない状態で、すでに実行させていた第２のタスクが終了したことを表している。従って制御部２２は、このときステップＳＰ５に戻り、タイマ２９をそのまま計時させて、新たに第２のタスクを開始させた後、ステップＳＰ６に移る。このようにして制御部２２は、割込実行時刻を検出するまでの間は、適宜ステップＳＰ５の処理を実行しつつ、ステップＳＰ６及びステップＳＰ７の処理を循環的に繰り返し実行することにより、割込実行時刻の検出を待ち受けながら、第２のタスクを実行させる。
【００４０】
そしてステップＳＰ６において肯定結果が得られると、このことは第２のタスクの実行中ではあるが、タイマ２９が計時した割込実行時刻を検出したことで、当該実行中の第２のタスクに割り込みをかけて中断させることを表している。従って制御部２２は、このとき次のステップＳＰ８に移る。ステップＳＰ８において制御部２２は、実行中の第２のタスクに割り込みをかけて中断させると共に、当該中断させた第２のタスクの中断時点を記憶する等の中断処理を実行した後、ステップＳＰ１に戻る。ところで上述のステップＳＰ４において否定結果が得られると、このことはこの時点で開始する第２のタスクが一度中断された第２のタスクであることを表している。従って制御部２２は、このときステップＳＰ９に移る。そしてステップＳＰ９において制御部２２は、タイマ２９に計時を開始させると共に、先に中断させていた第２のタスクをその中断時点から再開させて、ステップＳＰ６に移る。このようにして制御部２２は、記録対象の音楽データＤ１に対するデータ処理と、再生対象の暗号化音楽データＤ４に対するデータ処理とが全て終了するまでの間は、上述したステップＳＰ１乃至ステップＳＰ９の処理を循環的に繰り返し実行することにより、データ出力部２５から記憶単位音楽データＤ６を順次途切れさせないように出力させる。
【００４１】
なお、この第１の実施の形態の場合、データ出力部２５には、それぞれ例えば８〔Kbyte 〕の記憶容量を有する出力バッファメモリ２５Ａ及び２５Ｂが設けられている。従って記憶単位音楽データＤ６は、ほぼ８〔Kbyte 〕のデータサイズでなる。また記憶単位音楽データＤ６の標本化周波数を 44.1〔KHz 〕とし、量子化ビット数を16ビットとし、さらにかかる記憶単位音楽データＤ６をステレオデータとすると、その記憶単位音楽データＤ６は、46.4〔msec〕の音楽に相当する。そしてデータ出力部２５は、出力バッファメモリ２５Ａ及び２５Ｂからそれぞれ記憶単位音楽データＤ６を46.4〔msec〕の読出実行時間Ｔｍａｘで読み出している。
【００４２】
以上の構成において、記録再生装置１では、データ処理回路１２において制御部２２が記録対象の音楽データＤ１に対するデータ処理と、再生対象の暗号化音楽データＤ４に対するデータ処理とを実行するように要求されると、タイマ２９をリセットして計時を開始させると共に、第１のタスクを開始させる（ステップＳＰ１及びステップＳＰ２）。そしてデータ処理回路１２において制御部２２は、第１のタスクが終了すると、読出実行時間Ｔｍａｘと第１タスク実行時間とに基づいて第２タスク実行割当時間を算出すると共に、タイマ２９に対し一旦リセットして、かかる第２タスク実行割当時間に応じた割込実行時刻を設定する（ステップＳＰ３）。
【００４３】
この状態でデータ処理回路１２において制御部２２は、タイマ２９に計時を開始させると共に、第２のタスクを開始させ、割込実行時刻の検出と、当該第２のタスクの終了とを待ち受ける（ステップＳＰ４乃至ステップＳＰ７）。その結果、データ処理回路１２の制御部２２は、第２のタスクの実行中に割込実行時刻を検出したとき、当該実行中の第２のタスクに割り込みをかけて中断させる（ステップＳＰ８）と共に、タイマ２９をリセットして計時を開始させ、かつ新たに第１のタスクを開始させる（ステップＳＰ１及びステップＳＰ２）。またデータ処理回路１２において制御部２２は、実行中の第２のタスクが、割込実行時刻の検出前に終了すると、新たに第２のタスクを開始させ（ステップＳＰ７及びステップＳＰ５）、再びかかる第２のタスクを実行させながら割込実行時刻の検出と、当該第２のタスクの終了とを待ち受ける（ステップＳＰ６及びステップＳＰ７）。このようにしてデータ処理回路１２において制御部２２は、上述した一連の処理を繰り返し実行することで、記録対象の音楽データＤ１に対するデータ処理と、再生対象の暗号化音楽データＤ４に対するデータ処理とをそれぞれ完了させる。
【００４４】
従って記録再生装置１では、データ処理回路１２において、データ出力部２５の出力バッファメモリ２５Ａ及び２５Ｂが書込可能な状態になる毎に、これを割込実行時刻として検出し、その時点で実行中の第２のタスクに割り込みをかけて中断させると共に、第１のタスクを実行させる。このため記録再生装置１では、データ処理回路１２において、割込実行時刻を起点として第１のタスクを実行させることで、記憶単位音楽データＤ６を生成すると共に、当該生成した記憶単位音楽データＤ６を、書込可能な状態の出力バッファメモリ２５Ａ及び２５Ｂに対し、かかる記憶単位音楽データＤ６の読み出しが開始されるまでに充分に余裕をもって書き込むことができる。その結果、記録再生装置１では、データ処理回路１２において、データ出力部２５の２個の出力バッファメモリ２５Ａ及び２５Ｂから順次交互に記憶単位音楽データＤ６を途切れることなく連続して読み出すことができ、かくしてスピーカ１４から出力させる音楽が途切れることも確実に防止することができる。
【００４５】
以上の構成によれば、記録再生装置１では、データ処理回路１２において、第１の優先度の第１のタスクを実行させた後、かかる第１の優先度よりも低い第２の優先度の第２のタスクを開始させ、その第２のタスクの実行中に割込実行時刻を検出したとき、実行中の第２のタスクに割り込みをかけて中断させると共に、新たに第１のタスクを実行させるようにした。従って記録再生装置１では、第２のタスクを実行させていても、当該第２のタスクよりも高い第１の優先度の第１のタスクを実行させるときには、的確かつ確実に、実行中の第２のタスクに割り込みをかけて中断させると共に、新たに第１のタスクを実行させることができる。その結果、記録再生装置１では、第１及び第２のタスクをこれらの優先度に応じて的確に実行することができる。
【００４６】
また記録再生装置１では、データ処理回路１２において制御部２２が、第１のタスクを実行させる毎に、タイマ２９をリセットして計時を開始させると共に第１のタスクを開始させ、当該第２のタスクが終了すると、タイマ２９で計時していた時刻により第１タスク実行時間を検出すると共に、読出実行時間Ｔｍａｘから当該第１タスク実行時間を減算するようにして第２タスク実行割当時間と共に割込実行時刻を得ている。従って記録再生装置１では、記憶単位音楽データＤ６の元データである暗号化音楽データＤ４が生成される際、圧縮符号化処理における圧縮率が適応的に可変される等していることで、データ処理回路１２において、個々の第１のタスク毎に記憶単位音楽データＤ６を生成するための演算量と共に第１タスク実行時間がばらついても、第１のタスクを実行させる毎に、タイマ２９の計時した時刻により当該第１タスク実行時間を的確に検出して、正確な割込実行時刻を得ることができる。その結果、記録再生装置１では、データ処理回路１２において、出力バッファメモリ２５Ａ及び２５Ｂに対し確実に書込可能になった状態で記憶単位音楽データＤ６を書き込むことができる。
【００４７】
さらに記録再生装置１では、データ処理回路１２において制御部２２が、割込実行時刻の検出に応じて、実行中の第２のタスクに割り込みをかけて中断させても、引き続き第１のタスクを実行させた後、かかる第２のタスクを中断時点から再開させている。従って記録再生装置１では、データ処理回路１２において、実行中の第２のタスクに割り込みをかけて中断させても、当該第２のタスクを的確かつ確実に終了させることがでる。さらに記録再生装置１では、データ処理回路１２において制御部２２が、第１のタスクの実行に引き続き第２のタスクを実行させても、かかる第２のタスクが割込実行時刻の検出前に終了したときには、新たに第２のタスクを実行させる。従って記録再生装置１では、データ処理回路１２において、第１のタスクの第１の優先度より低い第２の優先度の第２のタスクについても、第２タスク実行割当時間を有効に使用して極力効率良く実行させることができる。
【００４８】
（２）第２の実施の形態
図１との対応部分に同一符号を付して示す図７において、第２の実施の形態による記録再生装置３０は、データ処理回路３１の構成を除いて上述した第１の実施の形態による記録再生装置１と同様に構成されている。そして図２との対応部分に同一符号を付して示す図８において、かかるデータ処理回路３１は、ＤＳＰ３２の一部機能に相当する制御部３３及びデータ出力部３４の構成を除いて上述した第１の実施の形態の場合のデータ処理回路１２と同様に構成されている。
【００４９】
この場合、図９（Ａ）及び（Ｂ）に示すようにデータ出力部３４は、ＤＳＰ３２の内部に設けられた、記憶単位音楽データＤ６一時記憶用の少なくとも３個以上の出力バッファメモリ３４Ａ、３４Ｂ、……、３４Ｎを有している。かかる出力バッファメモリ３４Ａ、３４Ｂ、……、３４Ｎは、それぞれ記憶単位音楽データＤ６のデータ量とほぼ同等な記憶容量に選定されている。またデータ出力部３４は、これら出力バッファメモリ３４Ａ、３４Ｂ、……、３４Ｎに対する記憶単位音楽データＤ６の書込状況及び読出状況を監視するようにして当該記憶単位音楽データＤ６の書き込み及び読み出しを切替器３４Ｐ及び３４Ｑを介して切替制御するメモリ制御器３４Ｒを有している。
【００５０】
データ出力部３４においてメモリ制御器３４Ｒは、制御部３３の制御の元、まず何れか１つの出力バッファメモリ３４Ａ、３４Ｂ、……、又は３４Ｎに対し、伸張部２４から与えられた記憶単位音楽データＤ６を第１の速度で書き込み、かかる書き込みが完了すると、当該１つの出力バッファメモリ３４Ａ、３４Ｂ、……、又は３４Ｎからその記憶単位音楽データＤ６を第２の速度で読み出して音声処理部１３に送出しながら、他の１つの出力バッファメモリ３４Ａ、３４Ｂ、……、又は３４Ｎに対し、当該伸張部２４から与えられた新たな記憶単位音楽データＤ６を第１の速度で書き込む。そしてメモリ制御器３４Ｒは、他の１つの出力バッファメモリ３４Ａ、３４Ｂ、……、又は３４Ｎに対する記憶単位音楽データＤ６の書き込みが完了した後、その時点で記憶単位音楽データＤ６の読み出しに用いていた何れか１つの出力バッファメモリ３４Ａ、３４Ｂ、……、又は３４Ｎから記憶単位音楽データＤ６の読み出しが完了すると、当該他の１つの出力バッファメモリ３４Ａ、３４Ｂ、……、又は３４Ｎからその記憶単位音楽データＤ６を第２の速度で読み出して音声処理部１３に送出しながら、さらに別の１つの出力バッファメモリ３４Ａ、３４Ｂ、……、又は３４Ｎに対し、伸張部２４から与えられたさらに新たな記憶単位音楽データＤ６を第１の速度で書き込む。このようにしてメモリ制御器３４Ｒは、各出力バッファメモリ３４Ａ、３４Ｂ、……、３４Ｎを記憶単位音楽データＤ６の書き込み及び読み出しにそれぞれ順番に用いるようにして、伸張部２４により生成された記憶単位音楽データＤ６を音声処理部１３に送出する。
【００５１】
一方、図１０（Ａ）乃至（Ｃ）に示すように制御部３３は、記憶単位音楽データＤ６を得るための第１のタスクに対する実行の優先度を第１の優先度に設定し、第２のタスクに対する実行の優先度を第１の優先度よりも低い第２の優先度に設定する。また制御部３３は、読出実行時間Ｔｍａｘに対し第１タスク実行時間を大幅に短くしている。そして制御部３３は、データ出力部３４の出力バッファメモリ３４Ａ、３４Ｂ、……、３４Ｎが書込可能な状態になると、その書込開始可能時刻Ｔ３０、Ｔ３２、Ｔ３７、Ｔ４２で、第１のデータ処理部に対し第１のタスクを開始させる。これにより制御部３３は、出力バッファメモリ３４Ａ、３４Ｂ、……、３４Ｎに対し確実に書込可能な状態で新たな記憶単位音楽データＤ６を書き込むようにしている。
【００５２】
ところでデータ出力部３４には、上述のように少なくとも３個以上の出力バッファメモリ３４Ａ、３４Ｂ、……、３４Ｎが設けられている。このため第１のタスクの開始当初（すなわち、再生対象の暗号化音楽データＤ４に対する復号処理及び伸張処理の開始当初）は、各出力バッファメモリ３４Ａ、３４Ｂ、……、３４Ｎに対し順次記憶単位音楽データＤ６を書き込みながら、すでに書き込んでいる記憶単位音楽データＤ６を読み出しても、しばらくの間、一度も記憶単位音楽データＤ６が書き込まれないまま、書込可能な状態となっている出力バッファメモリ３４Ａ、３４Ｂ、……、３４Ｎが存在する。そして制御部３３は、通常、第１のタスクの終了時刻Ｔ３１、Ｔ３３、Ｔ３８から次の書込開始可能時刻Ｔ３２、Ｔ３５、Ｔ４１までの時間を第２タスク実行割当時間としているものの、第１のタスクの終了時刻Ｔ３３、Ｔ３８から第２のデータ処理部に対し第２のタスクを開始させても、次の書込開始可能時刻Ｔ３５、Ｔ４１に到達する前に、かかる第２のタスクが終了すると、上述した第１の実施の形態の場合とは異なり、第２のタスクよりも第１のタスクを優先させて、その時点で第１のデータ処理部に対し新たに第１のタスクを開始させ、かくして書込可能な状態の出力バッファメモリ３４Ａ、３４Ｂ、……、３４Ｎに対し新たな記憶単位音楽データＤ６を書き込む。従って制御部３３は、第１のタスクの開始当初に、極力早い時点で各出力バッファメモリ３４Ａ、３４Ｂ、……、３４Ｎに対しそれぞれ記憶単位音楽データＤ６を効率良く書き込んでいる。
【００５３】
ただし制御部３３は、このように１つの書込開始可能時刻Ｔ３２、Ｔ３７から第１のデータ処理部及び第２のデータ処理部に対し第１のタスク及び第２のタスクを順次実行させても、当該第２のタスクが次の書込開始可能時刻Ｔ３５、Ｔ４１に到達する前に終了すると、かかる第２のタスクの終了時刻Ｔ３４、Ｔ３９から当該次の書込開始可能時刻Ｔ３５、Ｔ４１までの時間差を、第２タスク実行割当時間において第２のタスクの実行に使わずに残った時間（以下、これを割当残時間と呼ぶ）Ｔｅｘ１、Ｔｅｘ２とする。そして制御部３３は、引き続き第１のデータ処理部に対し開始させた第１のタスクが終了すると、読出実行時間Ｔｍａｘに対し、かかる割当残時間Ｔｅｘ１、Ｔｅｘ２を加算することにより当該読出実行時間Ｔｍａｘを割当残時間Ｔｅｘ１、Ｔｅｘ２だけ長くした第１第２タスク実行割当時間を算出する。また制御部３３は、かかる第１第２タスク実行割当時間から第１タスク実行時間（すなわち、第１のタスクの実行に要した時刻Ｔ３４から時刻Ｔ３６までの時間や時刻Ｔ３９から時刻Ｔ４０までの時間）を減算して得られる減算結果を、引き続き第２のデータ処理部に対し実行させる第２のタスクの第２タスク実行割当時間とする。このようにして制御部３３は、書込開始可能時刻Ｔ３５、Ｔ４１に到達する前に第２のデータ処理部により第２のタスクが終了すると、当該第２のタスクの終了時刻Ｔ３４、Ｔ３９を起点として、第１のデータ処理部に対し新たに第１のタスクを実行させる分、第２のデータ処理部に対し実行させる第２のタスクの第２タスク実行割当時間を他のとき（すなわち、書込開始可能時刻Ｔ３０、Ｔ３２、Ｔ３７に第１のタスクを開始したとき）よりも長くすることができる。従って制御部３３は、第２のタスクを実行させても、極力中断させないようにし、かくして第１のタスクより優先度の低い第２のタスクについても、極力効率良く実行させている。因みに制御部３３は、実行中の第２のタスクに割り込みをかけて中断させても、引き続き第１のタスクを実行させた後に、かかる第２のタスクをその中断時点から再開する。これにより制御部３３は、実行中の第２のタスクに割り込みをかけて中断させても、当該第２のタスクを的確かつ確実に終了している。
【００５４】
実際に制御部３３は、第１及び第２のデータ処理部を制御して第１及び第２のタスクを実行させる場合、タイマ２９をリセットして計時を開始させると共に、第１のデータ処理部に対し第１のタスクを開始させる。そして制御部３３は、かかる第１のタスクが終了したとき、その時点にタイマ２９の計時した時刻により第１タスク実行時間ｘ１１、……、又はｘ１５を検出すると共に、予め保持している読出実行時間Ｔｍａｘから当該第１タスク実行時間ｘ１１、……、又はｘ１５を減算することにより、その読出実行時間Ｔｍａｘ内で第２のタスクの実行に割り当てる第２タスク実行割当時間を算出する。この場合も、制御部２２は、第１及び第２のデータ処理部に対する制御を開始するときだけは、最初のタイマ２９の計時の開始と共に第１のタスクの開始を、データ出力部３４における記憶単位音楽データＤ６の書込開始用の出力バッファメモリ３４Ａ、３４Ｂ、……、３４Ｎの切り替えに同期させている。従って制御部３３は、かかる第２タスク実行割当時間の終了時刻（すなわち、出力バッファメモリ３４Ａ、３４Ｂ、……、３４Ｎに対する新たな記憶単位音楽データＤ６の書込開始可能時刻Ｔ３２、Ｔ３５、Ｔ３７、Ｔ４１、Ｔ４２）を、タイマ２９に対し割込実行時刻として設定する。これにより制御部３３は、タイマ２９の計時した割込実行時刻を検出したとき、第２のデータ処理部に対し実行中の第２のタスクに割り込みをかけて中断させる。
【００５５】
また制御部３３は、第１のタスクの実行に引き続き第２のタスクを開始又は再開しても、当該第２のタスクが割込実行時刻Ｔ３５、Ｔ４１の検出前に終了すると、その時点にタイマ２９の計時した時刻から当該割込実行時刻までの割当残時間を算出する。この状態で制御部３３は、タイマ２９をリセットして計時を開始させると共に、第１のデータ処理部に対し第１のタスクを開始させると、当該第１のタスクが終了したとき、読出実行時間Ｔｍａｘに割込残時間Ｔｅｘ１、Ｔｅｘ２を加算することにより第１第２タスク実行割当時間を算出する。そして制御部３３は、第１のタスクが終了した時点にタイマ２９の計時した時刻Ｔ３６、Ｔ３８により第１タスク実行時間ｘ１１、……、又はｘ１５を検出すると共に、第１第２タスク実行割当時間から当該第１タスク実行時間ｘ１１、……、又はｘ１５を減算することにより、その第１第２タスク実行割当時間内で第２のタスクの実行に割り当てる第２タスク実行割当時間を算出する。これにより制御部３３は、タイマ２９に対し一旦リセットして、かかる第２タスク実行割当時間の終了時刻（すなわち、出力バッファメモリ３４Ａ、３４Ｂ、……、３４Ｎに対する新たな記憶単位音楽データＤ６の書込開始可能時刻Ｔ３７、Ｔ４１）を割込実行時刻として設定する。この状態で制御部３３は、タイマ２９に計時を開始させると共に、第２のデータ処理部に対し新たに第２のタスクを開始させる。このようにして制御部３３は、第１及び第２のタスクをそれぞれ効率良く実行させている。
【００５６】
ここでデータ処理回路３１の制御部３３は、データ処理制御プログラムに従って第１及び第２のタスクの実行を制御している。すなわち制御部３３は、中央処理ユニット５から記録対象の音楽データＤ１に対するデータ処理と、再生対象の暗号化音楽データＤ４に対するデータ処理とを実行するように要求されると、データ処理制御プログラムに従って図１１に示す第２のデータ処理制御処理手順ＲＴ２を開始する。制御部３３は、かかる第２のデータ処理制御処理手順ＲＴ２を開始すると、ステップＳＰ１１においてタイマ２９をリセットして、次のステップＳＰ１２に移る。ステップＳＰ１２において制御部３３は、タイマ２９に計時を開始させると共に、第１のタスクを開始させ、かかる第１のタスクが終了すると、次のステップＳＰ１３に移る。
【００５７】
ステップＳＰ１３において制御部３３は、前回、割込実行時刻の検出前に第２のタスクが終了していたか否かを判別する。このステップＳＰ１３において肯定結果が得られると、このことは例えば前回、第２のタスクを実行させたとき、第１第２タスク実行割当時間が割当残時間を含んで比較的長かったために、かかる第２のタスクが割込実行時刻の検出前に終了したこと、又は前回、第２のタスクを中断時点から再開したために、割込実行時刻の検出前に終了したことを表している。従って制御部３３は、このとき次のステップＳＰ１４に移る。そしてステップＳＰ１４において制御部３３は、読出実行時間Ｔｍａｘ及び割当残時間並びに第１タスク実行時間に基づき第２タスク実行割当時間を算出すると共に、タイマ２９を一旦リセットして、当該算出した第２タスク実行割当時間の終了時刻を割込実行時刻として設定して、次のステップＳＰ１５に移る。またステップＳＰ１３において否定結果が得られると、このことは前回、比較的処理時間の長い第２のタスクを実行させたため、割込実行時刻を検出した時点に、当該実行中の第２のタスクに割り込みをかけて中断させていたことを表している。従って制御部３３は、このときステップＳＰ１６に移る。そしてステップＳＰ１６において制御部３３は、読出実行時間Ｔｍａｘ及び第１タスク実行時間に基づき第２タスク実行割当時間を算出すると共に、タイマ２９を一旦リセットして、当該算出した第２タスク実行割当時間の終了時刻を割込実行時刻として設定して、ステップＳＰ１５に移る。
【００５８】
ステップＳＰ１５において制御部３３は、第１のタスクに引き続き実行させる第２のタスクが新たに実行させる第２のタスクであるか否かを判別する。このステップＳＰ１５において肯定結果が得られると、このことはこの時点で開始する第２のタスクが一度も中断されてはいない第２のタスクであることを表している。従って制御部３３は、このとき次のステップＳＰ１７に移る。そしてステップＳＰ１７において制御部３３は、タイマ２９に計時を開始させると共に、新たに第２のタスクを開始させて、次のステップＳＰ１８に移る。ステップＳＰ１８において制御部３３は、割込実行時刻を検出したか否かを判別する。このステップＳＰ１８において否定結果が得られると、このことは第２のタスクの実行中ではあるが、未だ割込実行時刻を検出してはいないことにより、かかる第２のタスクをこのまま実行させ続けることを表している。従って制御部３３は、このときステップＳＰ１９に移る。ステップＳＰ１９において制御部３３は、すでに実行させていた第２のタスクが終了したか否かを判別する。このステップＳＰ１９において否定結果が得られると、このことは、割込実行時刻を検出してはいない状態で、かかる第２のタスクが未だ終了してもいないことによりこのまま実行させ続けることを表している。従って制御部３３は、このときステップＳＰ１８に戻る。従って制御部３３は、ステップＳＰ１８及びステップＳＰ１９において肯定結果を得るまでの間は、ステップＳＰ１８及びステップＳＰ１９の処理を循環的に繰り返し実行することにより、割込実行時刻の検出及び第２のタスクの終了を待ち受ける。
【００５９】
そしてステップＳＰ１８において肯定結果が得られると、このことは第２のタスクの実行中ではあるが、タイマ２９の計時した割込実行時刻を検出したことで、当該実行中の第２のタスクに割り込みをかけて中断させることを表している。従って制御部３３は、このとき次のステップＳＰ２０に移る。そしてステップＳＰ２０において制御部３３は、実行中の第２のタスクに割り込みをかけて中断させると共に、当該第２のタスクに対する中断処理を実行した後、ステップＳＰ１１に戻る。またステップＳＰ１９において肯定結果が得られると、このことは未だ割込実行時刻を検出してはいない状態で、すでに実行させていた第２のタスクが終了したことを表している。従って制御部３３は、このときステップＳＰ２１に移る。そしてステップＳＰ２１において制御部３３は、第２のタスクが終了した時点にタイマ２９の計時した時刻と、割込実行時刻とに基づいて割当残時間を算出すると共に、当該算出した割込残時間を保持した後、ステップＳＰ１１に戻る。ところで上述のステップＳＰ１５において否定結果が得られると、このことはこの時点で開始する第２のタスクが一度中断された第２のタスクであることを表している。従って制御部３３は、このときステップＳＰ２２に移る。そしてステップＳＰ２２において制御部３３は、タイマ２９に計時を開始させると共に、先に中断させていた第２のタスクをその中断時点から再開して、ステップＳＰ１８に移る。このようにして制御部３３は、記録対象の音楽データＤ１に対するデータ処理と、再生対象の暗号化音楽データＤ４に対するデータ処理とが全て終了するまでの間は、上述したステップＳＰ１１乃至ステップＳＰ２２の処理を循環的に繰り返し実行することにより、データ出力部３４から記憶単位音楽データＤ６を順次途切れさせないように出力させる。
【００６０】
以上の構成において、記録再生装置３０では、データ処理回路３１において制御部３３が、記録対象の音楽データＤ１に対するデータ処理と、再生対象の暗号化音楽データＤ４に対するデータ処理とを実行するように要求されると、タイマ２９をリセットして計時を開始させると共に、第１のタスクを開始させる（ステップＳＰ１１及びステップＳＰ１２）。そしてデータ処理回路３１において制御部３３は、第１のタスクが終了すると、前回、実行させた第２のタスクが割込実行時刻の検出前に終了したことで割当残時間が生じているときには、読出実行時間Ｔｍａｘと、第１タスク実行時間と、割当残時間とに基づいて、第２のタスクの第２タスク実行割当時間を算出し、タイマ２９に対し一旦リセットしてかかる第２タスク実行割当時間に応じた割込実行時刻を設定する（ステップＳＰ１３及びステップＳＰ１４）。またデータ処理回路３１において制御部３３は、前回、実行さた第２のタスクに割り込みをかけて中断させたことで割当残時間が特には生じていないときには、読出実行時間Ｔｍａｘと第１タスク実行時間とに基づいて、第２のタスクの第２タスク実行割当時間を算出し、タイマ２９に対し一旦リセットすると共に、かかる第２タスク実行割当時間に応じた割込実行時刻を設定する（ステップＳＰ１３及びステップＳＰ１６）。
【００６１】
この状態でデータ処理回路３１において制御部３３は、タイマ２９に計時を開始させると共に、第２のタスクを開始させ、割込実行時刻の検出と、当該第２のタスクの終了とを待ち受け（ステップＳＰ１５乃至ステップＳＰ１９）、かかる第２のタスクの実行中に割込実行時刻を検出すると（すなわち、現在の時刻が割込実行時刻になる）、当該実行中の第２のタスクに割り込みをかけて中断させる（ステップＳＰ２０）と共に、タイマ２９をリセットして計時を開始させると共に、新たに第１のタスクを実行させる（ステップＳＰ１１及びステップＳＰ１２）。またデータ処理回路３１において制御部３３は、実行中の第２のタスクが、割込実行時刻の検出前に終了したとき、割当残時間を算出した後（ステップＳＰ２１）、タイマ２９をリセットして計時を開始させると共に、新たに第１のタスクを開始させる（ステップＳＰ１１及びステップＳＰ１２）。このようにしてデータ処理回路３１において制御部３３は、上述した一連の処理を繰り返し実行することで、記録対象の音楽データＤ１に対するデータ処理と、再生対象の暗号化音楽データＤ４に対するデータ処理とをそれぞれ完了させる。
【００６２】
従って記録再生装置３０では、データ処理回路３１において、データ出力部３４の出力バッファメモリ３４Ａ、３４Ｂ、……、３４Ｎが書込可能な状態になる毎に、これを割込実行時刻として検出し、その時点で実行中の第２のタスクに割り込みをかけて中断させると共に、第１のタスクを実行させる。このため記録再生装置３０では、データ処理回路３１において、割込実行時刻を起点として第１のタスクの実行させることで、記憶単位音楽データＤ６を生成すると共に、当該生成した記憶単位音楽データＤ６を、書込可能な状態の出力バッファメモリ３４Ａ、３４Ｂ、……、３４Ｎに対し、かかる記憶単位音楽データＤ６の読み出しが開始されるまでに充分に余裕をもって書き込むことができる。その結果、記録再生装置３０では、データ処理回路３１において、データ出力部３４の各出力バッファメモリ３４Ａ、３４Ｂ、……、３４Ｎから記憶単位音楽データＤ６を順次途切れることなく連続して読み出すことができ、かくしてスピーカ１４から出力させる音楽が途切れることも確実に防止することができる。
【００６３】
また記録再生装置３０では、データ処理回路３１において制御部３３が、第２のタスクを開始させても、かかる第２のタスクが割込実行時刻の検出前に終了したとき、新たに第１のタスクを実行させる。従って記録再生装置３０では、データ処理回路３１において、第１のタスクの開始当初に、極力早い時点で各出力バッファメモリ３４Ａ、３４Ｂ、……、３４Ｎに対しそれぞれ記憶単位音楽データＤ６を効率良く書き込むことができる。これに加えて記録再生装置３０では、例えば中央処理ユニット５と、制御部３３との間で実行される制御命令の転送処理等のように、第１の優先度と同等又はそれ以上の優先度を割り当てたタスクが存在すると、第１のタスクも割り込みをかけて中断することになるが、実行中の第２のタスクが割込実行時刻の検出前に終了したときには第１第２タスク実行割当時間内に第１のタスクを少なくとも２回以上実行させるため、仮に第１のタスクに割り込みをかけて中断させたときでも、出力バッファメモリ３４Ａ、３４Ｂ、……、３４Ｎから読み出すべき記憶単位音楽データＤ６が途切れることを極力回避することができる。
【００６４】
さらに記録再生装置３０では、データ処理回路３１において制御部３３が、実行中の第２のタスクが割込実行時刻の検出前に終了した場合、その終了に応じて生じた割当残時間を読出実行時間Ｔｍａｘに加算して次の第１第２タスク実行割当時間を算出したうえで割込実行時刻を求める。従って記録再生装置３０では、データ処理回路３１において、第１第２タスク実行割当時間に割当残時間を加味した場合、第２のタスクに対して割り当てる第２タスク実行割当時間を、単に読出実行時間Ｔｍａｘを第１第２タスク実行割当時間としたときよりも長くすることができる。その結果、記録再生装置３０では、データ処理回路３１において、第２のタスクを実行させても極力中断させないようにし、かくして第１のタスクより優先度の低い第２のタスクについても、極力効率良く実行させることができる。
【００６５】
以上の構成によれば、記録再生装置３０では、データ処理回路３１において、第１の優先度の第１のタスクを実行させた後、かかる第１の優先度よりも低い第２の優先度の第２のタスクを開始させ、かかる第２のタスクの実行中に割込実行時刻を検出したとき、実行中の第２のタスクに割り込みをかけて中断させると共に、新たに第１のタスクを実行させるようにし、実行中の第２のタスクが割込実行時刻の検出前に終了すると、当該第２のタスクの終了に応じて生じた割当残時間を読出実行時間Ｔｍａｘに加算して得られる第１第２タスク実行割当時間で第１及び第２のタスクを順次実行させるようにした。従って記録再生装置３０では、第２のタスクを実行させていても、当該第２のタスクよりも高い第１の優先度の第１のタスクを実行させるときには、的確かつ確実に、実行中の第２のタスクに割り込みをかけて中断させると共に、新たに第１のタスクを実行させることができる。その結果、記録再生装置３０では、第１及び第２のタスクをこれらの優先度に応じて的確に実行することができる。これに加えて記録再生装置３０では、第１第２タスク実行割当時間に割当残時間を加味した場合、第２のタスクに割り当てる第２タスク実行割当時間を長くし、その結果、第２のタスクを実行しても極力中断しないようにして、第１のタスクより優先度の低い第２のタスクについても、極力効率良く実行させることができる。その結果、記録再生装置３０では、第１のタスクと共に第２のタスクについても処理効率を向上させることができる。
【００６６】
また記録再生装置３０では、データ処理回路３１において制御部３３が、第１のタスクを実行させる毎に、タイマ２９をリセットして計時を開始させると共に第１のタスクを開始させ、当該第２のタスクが終了すると、タイマ２９で計時していた時刻により第１タスク実行時間を検出すると共に、読出実行時間Ｔｍａｘから当該第１タスク実行時間を減算するようにして第２タスク実行割当時間と共に割込実行時刻を得ている。従って記録再生装置３０では、記憶単位音楽データＤ６の元データである暗号化音楽データＤ４が生成される際、圧縮符号化処理における圧縮率が適応的に可変される等していることで、データ処理回路３１において、個々の第１のタスク毎に記憶単位音楽データＤ６を生成するための演算量と共に第１タスク実行時間がばらついても、第１のタスクを実行させる毎に、タイマ２９の計時した時刻により当該第１タスク実行時間を的確に検出して、正確な割込実行時刻を得ることができる。その結果、記録再生装置１では、データ処理回路３１において、出力バッファメモリ２５Ａ及び２５Ｂに対し確実に書込可能になった状態で記憶単位音楽データＤ６を書き込むことができる。
【００６７】
さらに記録再生装置３０では、第１第２タスク実行割当時間に割当残時間を加味した場合、第２のタスクに割り当てる第２タスク実行割当時間を長くして、当該第２のタスクを実行しても極力中断しないようにすることができるため、データ処理回路３１の制御部３３に対し、第２のタスクの実行時に、当該第２のタスクに対する中断処理を極力実行させないようにして処理負荷を低減させることができる。
【００６８】
なお上述した第２の実施の形態においては、第２のタスクが割込実行時刻の検出前に終了したとき、かかる割込実行時刻の検出前の終了で生じた割当残時間を次の第１及び第２のタスク処理に対する第１第２タスク処理実行割当時間に加味するようにした場合について述べたが、本発明はこれに限らず、第２のタスクが割込実行時刻の検出前に終了したとき、第１のタスクの実行には移行せずに、新たに第２のタスクを実行させるようにしても良い。このようにしても優先度の低い第２のタスクを極力を効率良く実行させることができる。
【００６９】
（３）第３の実施の形態
図１との対応部分に同一符号を付して示す図１２において、第３の実施の形態による記録再生装置４０は、データ処理回路４１の構成を除いて上述した第１の実施の形態による記録再生装置１と同様に構成されている。そして図２との対応部分に同一符号を付して示す図１３において、かかるデータ処理回路４１は、ＤＳＰ４２の一部機能に相当する制御部４３及びデータ出力部４４の構成を除いて上述した第１の実施の形態の場合のデータ処理回路１２と同様に構成されている。
【００７０】
この場合、図１４（Ａ）及び（Ｂ）に示すようにデータ出力部４４は、ＤＳＰ４２の内部に設けられた、記憶単位音楽データＤ６一時記憶用の例えば２個の出力バッファメモリ４４Ａ及び４４Ｂを有している。かかる出力バッファメモリ４４Ａ及び４４Ｂは、それぞれ記憶単位音楽データＤ６のデータ量とほぼ同等な記憶容量に選定されている。またデータ出力部４４は、これら２個の出力バッファメモリ４４Ａ及び４４Ｂに対する音楽データＤ６の書込状況及び読出状況を監視するようにして当該記憶単位音楽データＤ６の書き込み及び読み出しを切替器４４Ｃ及び４４Ｄを介して切替制御するメモリ制御器４４Ｅを有している。
【００７１】
そしてデータ出力部４４においてメモリ制御器４４Ｅは、図３（Ａ）及び（Ｂ）について上述したデータ出力部２５と同様に、これら２個の出力バッファメモリ４４Ａ又は４４Ｂを用いて記憶単位音楽データＤ６の書き込み及び読み出しを実行させ、かくして伸張部２４により順次生成された記憶単位音楽データＤ６を音声処理部１３に送出する。またメモリ制御器４４Ｅは、出力バッファメモリ４４Ａ及び４４Ｂからの記憶単位音楽データＤ６の読み出しが完了する毎（すなわち、出力バッファメモリ４４Ａ及び４４Ｂに対し記憶単位音楽データＤ６の書き込みが可能となる毎）に、制御部４３による割込実行通知設定に応じて、実行中の第２のタスクに割り込みをかけて中断させるための割込実行通知信号Ｓ１を生成し、当該発生した割込実行通知信号Ｓ１を制御部４３に送出する。これによりメモリ制御器４４Ｅは、出力バッファメモリ４４Ａ及び４４Ｂからの記憶単位音楽データＤ６の読み出しが完了したタイミングで制御部４３に対し割込実行を通知し、かくして制御部４３に当該割込実行の通知タイミングで、そのとき実行中の第２のタスクに割り込みをかけて中断させる。
【００７２】
一方、制御部４３は、第１のタスクに対する実行の優先度を第１の優先度に設定し、第２のタスクに対する実行の優先度を第１の優先度よりも低い第２の優先度に設定する。また制御部４３は、読出実行時間に対し第１タスク実行時間を大幅に短くしている。そして制御部４３は、第１のタスクと第２のタスクとを実行する場合、まずデータ出力部４４のメモリ制御器４４Ｅに対し、出力バッファメモリ４４Ａ及び４４Ｂから記憶単位音楽データＤ６の読み出しが完了する毎に、その完了タイミングで割込実行通知信号Ｓ１を送出させるように設定する。この状態で制御部４３は、メモリ制御器４４Ｅから割込実行タイミングが通知されると、その時点で第１のデータ処理部に対し第１のタスクを開始させ、当該第１のタスクが終了したとき、第２のデータ処理部に対し第２のタスクを開始させる。そして制御部４３は、基本的には図４を用いて上述した第１の実施の形態によるデータ処理回路１２（図２）の制御部２２（図２）と同様に、第２のタスクの実行中にデータ出力部４４から出力された割込実行通知信号Ｓ１により割込実行を検出したとき、第２のデータ処理部に対し当該実行中の第２のタスクに割り込みをかけて中断させると共に、第１のデータ処理部に対し第１のタスクを開始させる。これにより制御部４３は、出力バッファメモリ４４Ａ及び４４Ｂに対し確実に書込可能な状態となった時点（すなわち、すでに書き込んでいた記憶単位音楽データＤ６の読み出しが完了した時点）で記憶単位音楽データＤ６を生成して書き込む。
【００７３】
また制御部４３は、第２のデータ処理部による第２のタスクの実行中に、データ出力部４４から出力された割込実行通知信号Ｓ１により割込実行を検出したとき、これに応じて当該実行中の第２のタスクに割り込みをかけて中断させると、引き続き第１のデータ処理部により第１のタスクを実行させた後に、第２のデータ処理部によりかかる第２のタスクを中断時点から再開する。これにより制御部４３は、第２のデータ処理部に対し実行中の第２のタスクに割り込みをかけて中断させても、当該第２のタスクを的確かつ確実に終了させている。さらに制御部４３は、第１のタスクの終了時刻に第２のタスクを開始又は再開しても、割込実行の検出前に、かかる第２のタスクが終了したときには、当該第２のタスクの終了時刻から新たに第２のタスクを開始させる。これにより制御部２２は、第１のタスクより優先度の低い第２のタスクについても、第２タスク実行割当時間を有効に利用して極力効率良く実行させている。
【００７４】
ここでデータ処理回路４１の制御部４３は、データ処理制御プログラムに従って第１及び第２のタスクの実行を制御している。すなわち制御部４３は、中央処理ユニット５から記録対象の音楽データＤ１に対するデータ処理と、再生対象の暗号化音楽データＤ４に対するデータ処理とを実行するように要求されると、データ処理制御プログラムに従って図１５に示す第３のデータ処理制御処理手順ＲＴ３を開始する。制御部４３は、かかる第３のデータ処理制御処理手順ＲＴ３を開始すると、ステップＳＰ３１においてデータ出力部４４のメモリ制御器４４Ｅに対し、出力バッファメモリ４４Ａ及び４４Ｂから記憶単位音楽データＤ６の読み出しが完了したタイミングで割込実行通知信号Ｓ１を出力するように設定して、次のステップＳＰ３２に移る。そしてステップＳＰ３２において制御部４３は、第１のタスクを開始させ、当該第１のタスクが終了すると、次のステップＳＰ３３に移る。
【００７５】
ステップＳＰ３３において制御部４３は、第１のタスクに引き続き開始させる第２のタスクが新たに開始させる第２のタスクであるか否かを判別する。このステップＳＰ３３において肯定結果が得られると、このことはこの時点で開始させる第２のタスクが一度も中断されていない第２のタスクであることを表している。従って制御部４３は、このとき次のステップＳＰ３４に移る。そしてステップＳＰ３４において制御部４３は、新たに第２のタスクを開始させて、次のステップＳＰ３５に移る。ステップＳＰ３５において制御部４３は、割込実行を検出したか否かを判別する。このステップＳＰ３５において否定結果が得られると、このことは第２のタスクの実行中ではあるが、未だデータ出力部４４のメモリ制御器４４Ｅから未だ割込実行通知信号Ｓ１が送出されてはいないことにより、かかる第２のタスクをこのまま実行させ続けることを表している。従って制御部４３は、このときステップＳＰ３６に移る。ステップＳＰ３６において制御部４３は、すでに実行させている第２のタスクが終了したか否かを判別する。このステップＳＰ３６において否定結果が得られると、このことは、データ出力部４４のメモリ制御器４４Ｅから割込実行通知信号Ｓ１が送出されてはいない状態で、かかる第２のタスクも未だ終了してはいないことによりこのまま実行させ続けることを表している。従って制御部４３は、このときステップＳＰ３５に戻る。またステップＳＰ３６において肯定結果が得られると、このことは未だデータ出力部４４のメモリ制御器４４Ｅから割込実行通知信号Ｓ１が送出されてはいない状態で、すでに実行させていた第２のタスクが終了したことを表している。従って制御部４３は、このときステップＳＰ３４に戻り、新たに第２のタスクを開始させた後、ステップＳＰ３５に移る。このようにして制御部４３は、割込実行を検出するまでの間は、適宜ステップＳＰ３４の処理を実行しつつ、ステップＳＰ３５及びステップＳＰ３６の処理を循環的に繰り返し実行することにより、割込実行の検出を待ち受けながら、第２のタスクを実行する。
【００７６】
そしてステップＳＰ３５において肯定結果が得られると、このことは第２のタスクの実行中ではあるが、データ出力部４４のメモリ制御器４４Ｅから送出された割込実行通知信号Ｓ１により割込実行を検出したことを表している。従って制御部４３は、このとき次のステップＳＰ３７に移る。そしてステップＳＰ３７において制御部４３は、実行中の第２のタスクに割り込みをかけて中断させると共に、当該第２のタスクに対する中断処理を実行した後、ステップＳＰ３２に戻る。ところで上述のステップＳＰ３３において否定結果が得られると、このことはこの時点で開始させる第２のタスクが一度中断された第２のタスクであることを表している。従って制御部４３は、このときステップＳＰ３８に移る。そしてステップＳＰ３８において制御部４３は、先に中断させていた第２のタスクをその中断時点から再開させて、ステップＳＰ３５に移る。このようにして制御部４３は、記録対象の音楽データＤ１に対するデータ処理と、再生対象の暗号化音楽データＤ４に対するデータ処理とが全て終了するまでの間は、上述したステップＳＰ３１の処理を実行した後、ステップＳＰ３２乃至ステップＳＰ３８の処理を循環的に繰り返し実行することにより、データ出力部４４から記憶単位音楽データＤ６を順次途切れさせないように出力させる。
【００７７】
以上の構成において、記録再生装置４０では、データ処理回路４１において制御部４３が、記録対象の音楽データＤ１に対するデータ処理と、再生対象の暗号化音楽データＤ４に対するデータ処理とを実行するように要求されると、データ出力部４４のメモリ制御器４４Ｅに対し、出力バッファメモリ４４Ａ及び４４Ｂから記憶単位音楽データＤ６の読み出しが完了したタイミングを割込実行を通知するように設定する（ステップＳＰ３１）。この状態でデータ処理回路４１において制御部４３は、第１のタスクを実行させる（ステップＳＰ３２）。
【００７８】
そしてデータ処理回路４１において制御部４３は、第１のタスクが終了すると、第２のタスクを実行させながら割込実行の検出と、当該第２のタスクの終了とを待ち受ける（ステップＳＰ３３乃至ステップＳＰ３６）。その結果、データ処理回路４１の制御部５３は、第２のタスクの実行中にデータ出力部４４から通知された割込実行を検出したとき、当該実行中の第２のタスクに割り込みをかけて中断させる（ステップＳＰ３７）と共に、新たに第１のタスクを実行させる。またデータ処理回路４１において制御部４３は、実行中の第２のタスクが、割込実行の検出前に終了したとき、新たに第２のタスクを実行させる。このようにしてデータ処理回路４１において制御部４３は、上述した一連の処理を繰り返し実行することで、記録対象の音楽データＤ１に対するデータ処理と、再生対象の暗号化音楽データＤ４に対するデータ処理とをそれぞれ完了させる。
【００７９】
従って記録再生装置４０では、データ処理回路４１において、データ出力部４４の出力バッファメモリ４４Ａ及び４４Ｂが書込可能な状態になる毎に、当該データ出力部４４から通知される割込実行を検出して、実行中の第２のタスクに割り込みをかけて中断させると共に、第１のタスクを実行させる。このため記録再生装置４０では、データ処理回路４１において、割込実行の検出を起点として第１のタスクを実行させることで、記憶単位音楽データＤ６を生成すると共に、当該生成した記憶単位音楽データＤ６を、書込可能な状態の出力バッファメモリ４４Ａ及び４４Ｂに対し、かかる記憶単位音楽データＤ６の読み出しが開始されるまでには充分に余裕をもって書き込むことができる。その結果、記録再生装置４０では、データ処理回路４１において、データ出力部４４の出力バッファメモリ４４Ａ及び４４Ｂから記憶単位音楽データＤ６を順次途切れることなく連続して読み出すことができ、かくしてスピーカ１４から出力させる音楽が途切れることも確実に防止することができる。
【００８０】
また記録再生装置４０では、データ処理回路４１において制御部４３が、データ出力部４４に対し、出力バッファメモリ４４Ａ及び４４Ｂから記憶単位音楽データＤ６の読み出しが完了したタイミングで割込実行を通知するように設定する。従って記録再生装置４０では、データ処理回路４１において、割込実行時刻を演算によって算出しなくても、正確な割込実行の通知タイミングを検出することができる。
【００８１】
以上の構成によれば、記録再生装置４０では、データ処理回路４１において、データ出力部４４に対し、出力バッファメモリ４４Ａ及び４４Ｂから記憶単位音楽データＤ６の読み出しが完了したタイミングで割込実行を通知するように設定した状態で、第１の優先度の第１のタスクを実行させた後、かかる第１の優先度よりも低い第２の優先度の第２のタスクを実行させ、当該第２のタスクの実行中に、データ出力部４４から通知された割込実行を検出したとき、実行中の第２のタスクに割り込みをかけて中断させると共に、新たに第１のタスクを実行させるようにした。従って記録再生装置４０では、第２のタスクを実行させていても、当該第２のタスクよりも高い第１の優先度の第１のタスクを実行させるときには、的確かつ確実に、実行中の第２のタスクに割り込みをかけて中断させると共に、新たに第１のタスクを実行させることができる。その結果、記録再生装置４０では、第１及び第２のタスクをこれらの優先度に応じて的確に実行することができる。
【００８２】
これに加えて記録再生装置４０では、データ出力部４４から、出力バッファメモリ４４Ａ及び４４Ｂに対する記憶単位音楽データＤ６の読み出しが完了したタイミングで通知される割込実行を検出したとき、実行中の第２のタスクに割り込みをかけて中断するため、データ処理回路４１の制御部４３で割込実行時刻を演算により求めない分、当該制御部４３の処理負荷を低減させることができる。また記録再生装置４０では、データ処理回路４１の制御部４３が割込実行時刻を演算により求めなくても、当該割込実行時刻を正確なタイミングで検出して、実行中の第２のタスクに的確に割り込みをかけて中断させることができる。さらに記録再生装置４０では、データ処理回路４１の制御部４３で割込実行時刻を演算により求めないため、第１及び第２のタスクの実行を制御するためのデータ処理制御プログラムを簡易に構成することができる。
【００８３】
さらに記録再生装置４０では、データ処理回路４１において制御部４３が、割込実行の検出に応じて、実行中の第２のタスクに割り込みをかけて中断させても、引き続き第１のタスクを実行させた後、かかる第２のタスクを中断時点から再開させている。従って記録再生装置４０では、データ処理回路４１において、実行中の第２のタスクに割り込みをかけて中断させても、当該第２のタスクを的確かつ確実に終了させることがでる。さらに記録再生装置４０では、データ処理回路４１において制御部４３が、第１のタスクの実行に引き続き第２のタスクを実行させても、かかる第２のタスクが割込実行時刻の検出前に終了したときには、新たに第２のタスクを実行させる。従って記録再生装置４０では、データ処理回路４１において、第１のタスクの第１の優先度より低い第２の優先度の第２のタスクについても、第２タスク実行割当時間を有効に使用して極力効率良く実行させることができる。
【００８４】
（４）第４の実施の形態
図１２との対応部分に同一符号を付して示す図１６において、第４の実施の形態による記録再生装置５０は、データ処理回路５１の構成を除いて上述した第３の実施の形態による記録再生装置４０と同様に構成されている。そして図１３との対応部分に同一符号を付して示す図１７において、かかるデータ処理回路５１は、ＤＳＰ５２の一部機能に相当する制御部５３及びデータ出力部５４の構成を除いて上述した第３の実施の形態の場合のデータ処理回路４１と同様に構成されている。
【００８５】
この場合、図１８（Ａ）及び（Ｂ）に示すようにデータ出力部５４は、ＤＳＰ５２の内部に設けられた、記憶単位音楽データＤ６一時記憶用の少なくとも３個以上の出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎを有している。かかる出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎは、それぞれ記憶単位音楽データＤ６のデータ量とほぼ同等な記憶容量に選定されている。またデータ出力部５４は、これら出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎに対する記憶単位音楽データＤ６の書込状況及び読出状況を監視するようにして当該記憶単位音楽データＤ６の書き込み及び読み出しを切替器５４Ｐ及び５４Ｑを介して切替制御するメモリ制御器５４Ｒを有している。
【００８６】
そしてデータ出力部５４においてメモリ制御器５４Ｒは、図９（Ａ）及び（Ｂ）について上述したデータ出力部３４と同様に、各出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎを用いて記憶単位音楽データＤ６の書き込み及び読み出しを実行し、かくして伸張部２４により順次生成された記憶単位音楽データＤ６を音声処理部１３に送出する。またメモリ制御器５４Ｒは、各出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎからの記憶単位音楽データＤ６の読み出しが完了する毎（すなわち、各出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎに対し記憶単位音楽データＤ６の書き込みが可能となる毎）に、制御部５３による割込実行通知設定に応じて、第２のタスクの実行に割り込みをかけて第１のタスクの実行に移行させるための割込実行通知信号Ｓ２を生成し、当該発生した割込実行通知信号Ｓ２を制御部５３に送出する。これによりメモリ制御器５４Ｒは、各出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎからの記憶単位音楽データＤ６の読み出しが完了したタイミングで、制御部５３に割込実行を通知し、かくして制御部５３にそのとき実行中の第２のタスクに割り込みをかけて中断させる。またメモリ制御器５４Ｒは、出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎに対する記憶単位音楽データＤ６の書込状況及び読出状況を監視していることにより、例えば制御部５３から記憶単位音楽データＤ６を書込可能な状態の出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎが存在するか問合せがあると、これに応じて、当該存在の有無を返答する。これによりメモリ制御器５４Ｒは、制御部５３に対し、記憶単位音楽データＤ６を書込可能な状態の出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎが存在するか否かを適宜確認させることができる。
【００８７】
一方、図１９（Ａ）乃至（Ｃ）に示すように制御部５３は、記憶単位音楽データＤ６を得るための第１のタスクに対する実行の優先度を第１の優先度に設定し、第２のタスクに対する実行の優先度を第１の優先度よりも低い第２の優先度に設定する。また制御部５３は、データ出力部５４の各出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎに対する読出実行時間Ｔｍａｘに対し第１タスク実行時間を大幅に短くしている。そして制御部５３は、第１のタスクと第２のタスクとを実行する場合、まずデータ出力部５４のメモリ制御器５４Ｒに対し、各出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎから記憶単位音楽データＤ６の読み出しが完了する毎に、その完了タイミングで割込実行タイミング通知用の割込実行通知信号Ｓ２を送出させるように設定する。この状態で制御部５３は、書込開始可能時刻Ｔ５０、Ｔ５２、Ｔ５７、Ｔ６１にメモリ制御器５４Ｒから出力された割込実行通知信号Ｓ２で割込実行を検出したとき、第２のデータ処理部に対し実行中の第２のタスクに割り込みをかけて中断させると共に、第１のデータ処理部に対し第１のタスクを実行させる。これにより制御部５３は、各出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎに対し確実に書込可能な状態で新たな記憶単位音楽データＤ６を書き込む。
【００８８】
ところでデータ出力部５４には、少なくとも３個以上の出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎが設けられている。このため第１のタスクの開始当初（すなわち、再生対象の暗号化音楽データＤ４に対する復号処理及び伸張処理の開始当初）は、各出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎに対し順次記憶単位音楽データＤ６を書き込みながら、すでに書き込んでいる記憶単位音楽データＤ６を読み出しても、しばらくの間、一度も記憶単位音楽データＤ６が書き込まれないまま、書込可能な状態となっている出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎが存在する。従って制御部５３は、第１のタスクの終了時刻Ｔ５３、Ｔ５８から第２のデータ処理部に対し第２のタスクを開始させても、次に割込実行を検出する前に（すなわち、書込開始可能時刻Ｔ５５、Ｔ６１）、かかる第２のタスクが終了したとき、その時点で書込可能な状態の出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎが存在すると、第１のデータ処理部に対し第１のタスクを実行させて、記憶単位音楽データＤ６を生成すると共に、これを当該書込可能な状態の出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎに書き込む。これにより制御部５３は、第１のタスクの開始当初に、極力早い時点で全ての出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎに対しそれぞれ記憶単位音楽データＤ６を効率良く書き込んでいる。
【００８９】
さらに制御部５３は、このように割込実行を検出する前に第１のデータ処理部に対し第１のタスクを実行させた場合、かかる第１のタスクの実行中に次の割込実行を検出しても（すなわち、書込開始可能時刻Ｔ５５）、その割込実行の検出を無視する。そして制御部５３は、かかる第１のタスクが終了したとき、引き続きさらに割込実行を検出するまでの間（すなわち、書込開始可能時刻Ｔ５７に到達するまでの間）第２のデータ処理部に対し新たに第２のタスクを実行させる。これにより制御部５３は、このように割込実行の検出を無視して第１のタスクを実行させたときには、第１第２タスク実行割当時間を読出実行時間Ｔｍａｘよりも長くし、その結果、第２のタスクに割り当てる第２タスク実行割当時間も他のときよりも長くすることができる。従って制御部５３は、第２のデータ処理部に対し第２のタスクを実行させても、極力中断させないようにしている。さらにまた制御部５３は、第１のタスクの終了時刻Ｔ６２から第２のデータ処理部に対し第２のタスクを開始しても、次に割込実行を検出する前（すなわち、書込開始可能時刻Ｔ６４）に、かかる第２のタスクが終了したとき、その時点で書込可能な状態の出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎが存在しないと、このときは引き続き（すなわち、第２のタスクの終了時刻Ｔ６３から）第２のデータ処理部に対し新たに第２のタスクを実行させる。これにより制御部５３は、第１のタスクより優先度の低い第２のタスクについても、極力効率良く実行させている。これに加えて制御部５３は、割込実行の検出に応じて、第２のデータ処理部に対し実行中の第２のタスクに割り込みをかけて中断させても、引き続き第１のデータ処理部に対し第１のタスクを実行させた後に、第２のデータ処理部に対しかかる第２のタスクをその中断時点から再開させる。これにより制御部５３は、実行中の第２のタスクに割り込みをかけて中断させても、当該第２のタスクを的確かつ確実に終了している。
【００９０】
ここでデータ処理回路５１の制御部５３は、データ処理制御プログラムに従って第１及び第２のタスクの実行を制御している。すなわち制御部５３は、中央処理ユニット５から記録対象の音楽データＤ１に対するデータ処理と、再生対象の暗号化音楽データＤ４に対するデータ処理とを実行するように要求されると、データ処理制御プログラムに従って図２０に示す第４のデータ処理制御処理手順ＲＴ４を開始する。制御部５３は、かかる第４のデータ処理制御処理手順ＲＴ４を開始すると、ステップＳＰ４１においてデータ出力部５４のメモリ制御器５４Ｒに対し、各出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎから記憶単位音楽データＤ６の読み出しが完了する毎に、当該完了のタイミングで割込実行通知信号Ｓ２を出力させるように設定して、次のステップＳＰ４２に移る。ステップＳＰ４２において制御部５３は、第１のタスクを開示させ、かかる第１のタスクが終了すると、次のステップＳＰ４３に移る。
【００９１】
ステップＳＰ４３において制御部５３は、第１のタスクに引き続き開始させる第２のタスクが新たに開始させる第２のタスクであるか否かを判別する。このステップＳＰ４３において肯定結果が得られると、このことはこの時点で開始させる第２のタスクが一度も中断されていない第２のタスクであることを表している。従って制御部５３は、このとき次のステップＳＰ４４に移る。そしてステップＳＰ４４において制御部５３は、新たに第２のタスクを開始させて、次のステップＳＰ４５に移る。ステップＳＰ４５において制御部５３は、割込実行を検出したか否かを判別する。このステップＳＰ４５において否定結果が得られると、このことは第２のタスクの実行中ではあるが、未だデータ出力部５４から割込実行通知信号Ｓ２が出力されてはいないことにより、かかる第２のタスクをこのまま実行させ続けることを表している。従って制御部５３は、このときステップＳＰ４６に移る。ステップＳＰ４６において制御部５３は、すでに実行させている第２のタスクが終了したか否かを判別する。このステップＳＰ４６において否定結果が得られると、このことは、未だデータ出力部５４から割込実行通知信号Ｓ２が出力されてはいない状態で、第２のタスクも終了してはいないことによりこのまま実行させ続けることを表している。従って制御部５３は、このときステップＳＰ４５に戻る。従って制御部５３は、ステップＳＰ４５及びステップＳＰ４６において肯定結果を得るまでの間は、当該ステップＳＰ４５及びステップＳＰ４６の処理を循環的に繰り返し実行することにより、割込実行の検出及び第２のタスクの終了を待ち受ける。
【００９２】
そしてステップＳＰ４５において肯定結果が得られると、このことは第２のタスクの実行中ではあるが、データ出力部５４から送出された割込実行通知信号Ｓ２により割込実行を検出したことを表している。従って制御部５３は、このとき次のステップＳＰ４７に移る。そしてステップＳＰ４７において制御部５３は、実行中の第２のタスクに割り込みをかけて中断させると共に、当該第２のタスクに対する中断処理を実行した後、ステップＳＰ４２に戻る。一方、ステップＳＰ４６において肯定結果が得られると、このことは未だデータ出力部５４から割込実行通知信号Ｓ２が出力されてはいない状態で、すでに実行させている第２のタスクが終了したことを表している。従って制御部５３は、このときステップＳＰ４８に移る。ステップＳＰ４８において制御部５３は、記憶単位音楽データＤ６を書込可能な状態の出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎが存在するか否かを判別する。このステップＳＰ４８において否定結果が得られると、このことは、この時点にデータ出力部５４において記憶単位音楽データＤ６を書込可能な状態の出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎが存在しないことにより引き続き第２のタスクを実行可能であることを表している。従って制御部５３は、このときステップＳＰ４４に戻り、新たに第２のタスクを開始させた後、ステップＳＰ４５に移る。
【００９３】
またステップＳＰ４８において肯定結果が得られると、このことは、この時点にデータ出力部５４において記憶単位音楽データＤ６を書込可能な状態の出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎが存在することにより引き続き第１タスクを実行可能であることを表している。従って制御部５３は、このときステップＳＰ４２に戻る。ところで上述のステップＳＰ４３において否定結果が得られると、このことはこの時点で実行させる第２のタスクが一度中断された第２のタスクであることを表している。従って制御部５３は、このときステップＳＰ４９に移る。そしてステップＳＰ４９において制御部５３は、先に中断させていた第２のタスクをその中断時点から再開して、ステップＳＰ４５に移る。このようにして制御部５３は、記録対象の音楽データＤ１に対するデータ処理と、再生対象の暗号化音楽データＤ４に対するデータ処理とが全て終了するまでの間は、上述したステップＳＰ４１を実行した後、ステップＳＰ４２乃至ステップＳＰ４９の処理を循環的に繰り返し実行することにより、データ出力部５４から記憶単位音楽データＤ６を順次途切れさせないように出力させる。
【００９４】
以上の構成において、記録再生装置５０では、データ処理回路５１において制御部５３が、記録対象の音楽データＤ１に対するデータ処理と、再生対象の暗号化音楽データＤ４に対するデータ処理とを実行するように要求されると、データ出力部５４に対し、出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎから記憶単位音楽データＤ６の読み出しが完了したタイミングで割込実行を通知するように設定する（ステップＳＰ４１）。この状態でデータ処理回路５１において制御部５３は、第１のタスクを実行させる（ステップＳＰ４２）。
【００９５】
そしてデータ処理回路５１において制御部５３は、第１のタスクが終了すると、第２のタスクを実行させながら割込実行の検出と、当該第２のタスクの終了とを待ち受ける（ステップＳＰ４３乃至ステップＳＰ４６）。その結果、データ処理回路５１の制御部５３は、第２のタスクの実行中に割込実行を検出したとき、当該実行中の第２のタスクに割り込みをかけて中断させる（ステップＳＰ４７）と共に、新たに第１のタスクを実行させる。またデータ処理回路５１において制御部５３は、実行中の第２のタスクが、割込実行タイミングの通知前に終了すると、書込可能な状態の出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎが存在するか確認し（ステップＳＰ４８）、当該書込可能な状態の出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎが存在すると、新たに第１のタスクを実行させる。これに対してデータ処理回路５１の制御部５３は、書込可能な状態の出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎが存在しないと、新たに第２のタスクを実行させる。このようにしてデータ処理回路５１において制御部５３は、上述した一連の処理を繰り返し実行することで、記録対象の音楽データＤ１に対するデータ処理と、再生対象の暗号化音楽データＤ４に対するデータ処理とをそれぞれ完了させる。
【００９６】
従って記録再生装置５０では、データ処理回路５１において、データ出力部５４の出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎが書込可能な状態になる毎に、当該データ出力部５４から通知される割込実行を検出したとき、実行中の第２のタスクに割り込みをかけて中断させると共に、第１のタスクを実行させる。このため記録再生装置５０では、データ処理回路５１において、割込実行の検出を起点として第１のタスクを実行させることで、記憶単位音楽データＤ６を生成すると共に、当該生成した記憶単位音楽データＤ６を、書込可能な状態の出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎに対し、かかる記憶単位音楽データＤ６の読み出しが開始されるまでには充分に余裕をもって書き込むことができる。その結果、記録再生装置５０では、データ処理回路５１において、データ出力部５４の出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎから記憶単位音楽データＤ６を順次途切れることなく連続して読み出すことができ、かくしてスピーカ１４から出力させる音楽が途切れることも確実に防止することができる。
【００９７】
また記録再生装置５０では、データ処理回路５１において制御部５３が、データ出力部５４に対し、出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎから記憶単位音楽データＤ６の読み出しが完了したタイミングで割込実行を通知するように設定する。従って記録再生装置５０では、データ処理回路５１において、割込実行時刻を演算によって算出しなくても、割込実行のタイミングを正確に検出することができる。さらに記録再生装置５０では、第２のタスクが割込実行の検出前に終了したとき、書込可能な状態の出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎが存在すると、第１のタスクを実行させる。従って記録再生装置５０では、データ処理回路５１において、第１のタスクの開始当初に、極力早い時点で各出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎに対しそれぞれ記憶単位音楽データＤ６を効率良く書き込むことができる。
【００９８】
以上の構成によれば、記録再生装置５０では、データ処理回路５１において、データ出力部５４に対し、出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎから記憶単位音楽データＤ６の読み出しが完了したタイミングで割込実行を通知させるように設定した状態で、第１の優先度の第１のタスクを実行させた後、かかる第１の優先度よりも低い第２の優先度の第２のタスクを実行させ、当該第２のタスクの実行中にデータ出力部４４から通知された割込実行を検出したとき、実行中の第２のタスクに割り込みをかけて中断させると共に、新たに第１のタスクを実行し、第２のタスクが割込実行の検出前に終了したときには、書込可能な状態の出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎが存在すると第１のタスクを実行し、当該書込可能な状態の出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎが存在しないと第２のタスクを実行するようにした。従って記録再生装置５０では、第２のタスクを実行させていても、当該第２のタスクよりも高い第１の優先度の第１のタスクを実行させるときには、的確かつ確実に、実行中の第２のタスクに割り込みをかけて中断させると共に、新たに第１のタスクを実行させることができる。その結果、記録再生装置５０では、第１及び第２のタスクをこれらの優先度に応じて的確に実行することができる。
【００９９】
これに加えて記録再生装置５０では、第２のタスクが割込実行の検出前に終了したときには、書込可能な状態の出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎが存在すると第１のタスクを実行させるため、第１のタスクの開始当初に、極力早い時点で各出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎに対しそれぞれ記憶単位音楽データＤ６を効率良く書き込むことができる。そして記録再生装置５０では、例えば中央処理ユニット５と、制御部５３との間で実行される制御命令の転送処理等のように、第１の優先度と同等又はそれ以上の優先度を割り当てたタスクが存在すると、第１のタスクも割り込みをかけて中断することになるが、仮に第１のタスクに割り込みをかけて中断させたときでも、かかる構成により、第１第２タスク実行割当時間内に第１のタスクを少なくとも２回以上実行させるため、出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎから読み出すべき記憶単位音楽データＤ６が途切れることを極力回避することができる。
【０１００】
また記録再生装置５０では、データ処理回路５１において、第２のタスクが割込実行の検出前に終了したときに、書込可能な状態の出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎが存在しないと第２のタスクを実行させるため、第１のタスクより優先度の低い第２のタスクについても、極力効率良く実行させることができる。さらに記録再生装置５０では、データ処理回路５１において、第２のタスクが割込実行の検出前に終了し、引き続き第１のタスクを実行させている間に、かかる割込実行を検出しても、これを無視するようにした。従って記録再生装置５０では、データ処理回路５１において、第１第２タスク実行割当時間に割当残時間を加味した演算により割込実行時刻を求めなくても、当該第１第２タスク実行割当時間を読出実行時間Ｔｍａｘよりも容易に長くすることができる。その結果、記録再生装置５０では、データ処理回路５１において、第２のタスクを実行させても極力中断させないようにし、かくして第１のタスクより優先度の低い第２のタスクについても、さらに効率良く実行させることができる。そして記録再生装置５０では、かかる構成により、第２のタスクの実行時に、当該第２のタスクに対する中断処理を極力実行させないことで、データ処理回路５１の制御部５３に対する処理負荷を低減させることができる。
【０１０１】
なお上述した第４の実施の形態においては、第２のタスクが割込実行の検出前に終了したとき、書込可能な状態の出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎが存在すると、第１のタスクを実行させるようにした場合について述べたが、本発明はこれに限らず、第２のタスクが割込実行の検出前に終了したとき、書込可能な状態の出力バッファメモリ５４Ａ、５４Ｂ、……、５４Ｎが存在するか確認しないと共に、第１のタスクの実行にも移行せず、新たに第２のタスクを実行させるようにしても良い。
【０１０２】
（５）第５の実施の形態
図７との対応部分に同一符号を付して示す図２１において、第５の実施の形態による記録再生装置６０は、データ処理回路６１の構成を除いて上述した第２の実施の形態による記録再生装置３０と同様に構成されている。そして図８との対応部分に同一符号を付して示す図２２において、かかるデータ処理回路６１は、ＤＳＰ６２の一部機能に相当する制御部６３及びデータ出力部６４の構成を除いて上述した第２の実施の形態の場合のデータ処理回路３１と同様に構成されている。
【０１０３】
この場合、図２３（Ａ）及び（Ｂ）に示すようにデータ出力部６４は、ＤＳＰ６２の内部に設けられた、記憶単位音楽データＤ６一時記憶用の少なくとも３個以上の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎを有している。かかる出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎは、それぞれ記憶単位音楽データＤ６のデータ量とほぼ同等な記憶容量に選定されている。またデータ出力部６４は、これら出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに対する記憶単位音楽データＤ６の書込状況及び読出状況を監視するようにして当該記憶単位音楽データＤ６の書き込み及び読み出しを切替器６４Ｐ及び６４Ｑを介して切替制御するメモリ制御器６４Ｒを有している。
【０１０４】
そしてデータ出力部６４においてメモリ制御器６４Ｒは、図９（Ａ）及び（Ｂ）について上述したデータ出力部３４と同様に、各出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎを用いて記憶単位音楽データＤ６の書き込み及び読み出しを実行し、かくして伸張部２４により順次生成された記憶単位音楽データＤ６を音声処理部１３に送出する。またメモリ制御器６４Ｒは、出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに対する記憶単位音楽データＤ６の書込状況及び読出状況を監視していることにより、例えば制御部６３から記憶単位音楽データＤ６を書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか問合せがあると、これに応じて、当該存在の有無を返答する。これによりメモリ制御器６４Ｒは、制御部６３に対し、記憶単位音楽データＤ６を書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか否かを適宜確認させることができる。
【０１０５】
一方、図２４（Ａ）乃至（Ｃ）に示すように制御部６３は、記憶単位音楽データＤ６を得るための第１のタスクに対する実行の優先度を第１の優先度に設定し、第２のタスクに対する実行の優先度を第１の優先度よりも低い第２の優先度に設定する。また制御部６３は、データ出力部６４の各出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに対する読出実行時間Ｔｍａｘに対し第１タスク実行時間を大幅に短くしている。さらに制御部６３は、第１のタスクと第２のタスクとを実行させる場合、タイマ２９に対し、読出実行時間Ｔｍａｘを最大時間として任意に選定された第１第２タスク実行割当時間の終了時点を割込実行時刻として設定すると共に、かかる第１第２タスク実行割当時間を周期的に計時するように設定する。
【０１０６】
この場合、制御部６３は、タイマ２９が周期的に計時する第１第２タスク実行割当時間が読出実行時間Ｔｍａｘよりも短いと、割込実行時刻が各出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに対する書込開始可能時刻と必ずしも一致しないため、当該タイマ２９の計時した割込実行時刻Ｔ７０、Ｔ７２、Ｔ７４、Ｔ７６、Ｔ７８を検出したとき、データ出力部６４のメモリ制御器６４Ｒを介して書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか確認する。その結果、制御部６３は、割込実行時刻Ｔ７０、Ｔ７２、Ｔ７４、Ｔ７６、Ｔ７８を検出したとき、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在すると、第２のデータ処理部に対し実行中の第２のタスクに割り込みをかけて中断させると共に、第１のデータ処理部に対し第１のタスクを開始させて新たな記憶単位音楽データＤ６を生成し、当該生成した記憶単位音楽データＤ６を、かかる書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに書き込む。このようにして制御部６３は、割込実行時刻Ｔ７０、Ｔ７２、Ｔ７４、Ｔ７６、Ｔ７８を検出すると、その都度、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか確認し、当該書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するときにのみ第１のタスクを実行させる。これにより制御部６３は、各出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに対し確実に書込可能な状態で新たな記憶単位音楽データＤ６を書き込む。
【０１０７】
これに加えて制御部６３は、第２のデータ処理部に対し第２のタスクを実行させるものの、割込実行時刻Ｔ８２の検出前に、かかる第２のタスクが終了すると、当該第２のタスクの終了時刻Ｔ８０でも書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか確認する。その結果、制御部６３は、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在すると、引き続き第１のデータ処理部に対し第１のタスクを実行させる。これにより制御部６３は、第１のタスクの開始当初（すなわち、再生対象の暗号化音楽データＤ４に対する復号処理及び伸張処理の開始当初）に、出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎの個数が多いことで、一度も記憶単位音楽データＤ６が書き込まれないまま、書込可能な状態となっている出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しても、極力早い時点で全ての出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに対しそれぞれ記憶単位音楽データＤ６を効率良く書き込む。
【０１０８】
また制御部６３は、割込実行時刻の検出前に第２のタスクが終了したとき（すなわち、時刻Ｔ８３）や、第２のデータ処理部による第２のタスクの実行中に割込実行時刻を検出したとき（すなわち、時刻Ｔ８２）に、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないと、第２のデータ処理部に対し新たに第２のタスクを実行させ、又は実行中の第２のタスクを継続させる。これにより制御部６３は、第１のタスクより優先度の低い第２のタスクについても、極力効率良く実行させている。これに加えて制御部６３は、割込実行時刻を検出したとき、第２のデータ処理部に対し実行中の第２のタスクに割り込みをかけて中断させても、引き続き第１のデータ処理部に対し第１のタスクを実行させた後に、第２のデータ処理部に対しかかる第２のタスクをその中断時点から再開させる。これにより制御部６３は、実行中の第２のタスクに割り込みをかけて中断させても、当該第２のタスクを的確かつ確実に終了させる。
【０１０９】
ここでデータ処理回路６１の制御部６３は、データ処理制御プログラムに従って第１及び第２のタスクの実行を制御している。すなわち制御部６３は、中央処理ユニット５から記録対象の音楽データＤ１に対するデータ処理と、再生対象の暗号化音楽データＤ４に対するデータ処理とを実行するように要求されると、データ処理制御プログラムに従って図２５に示す第５のデータ処理制御処理手順ＲＴ５を開始する。制御部６３は、かかる第５のデータ処理制御処理手順ＲＴ５を開始すると、ステップＳＰ５１においてタイマ２９をリセットして、任意に選定された第１第２タスク実行割当時間の終了時刻を割込実行時刻として設定し、次のステップＳＰ５２に移る。ステップＳＰ５２において制御部６３は、第１のタスクを実行させ、かかる第１のタスクが終了すると、次のステップＳＰ５３に移る。ただしステップＳＰ５２において制御部６３は、第１及び第２のデータ処理部に対する制御開始時のみは、タイマ２９に第１第２タスク実行割当時間の周期的な計時を開始させると共に、これに合わせて第１のタスクを開始させる。
【０１１０】
ステップＳＰ５３において制御部６３は、第１のタスクに引き続き開始させる第２のタスクが新たに開始させる第２のタスクであるか否かを判別する。このステップＳＰ５３において肯定結果が得られると、このことはこの時点で開始する第２のタスクが一度も中断されていない第２のタスクであることを表している。従って制御部６３は、このとき次のステップＳＰ５４に移る。そしてステップＳＰ５４において制御部６３は、新たに第２のタスクを開始させて、次のステップＳＰ５５に移る。ステップＳＰ５５において制御部６３は、割込実行時刻を検出したか否かを判別する。このステップＳＰ５５において否定結果が得られると、このことは第２のタスクの実行中ではあるが、未だ割込実行時刻を検出してはいないことにより、かかる第２のタスクをこのまま実行させ続けることを表している。従って制御部６３は、このときステップＳＰ５６に移る。ステップＳＰ５６において制御部６３は、すでに実行させている第２のタスクが終了したか否かを判別する。このステップＳＰ５６において否定結果が得られると、このことは、未だ割込実行時刻を検出してはいない状態で、第２のタスクも終了してはいないことによりこのまま実行させ続けることを表している。従って制御部６３は、このときステップＳＰ５５に戻る。従って制御部６３は、ステップＳＰ５５及びステップＳＰ５６において肯定結果を得るまでの間は、当該ステップＳＰ５５及びステップＳＰ５６の処理を循環的に繰り返し実行することにより、割込実行時刻の検出及び第２のタスクの終了を待ち受ける。
【０１１１】
そしてステップＳＰ５５において肯定結果が得られると、このことは第２のタスクの実行中ではあるが、タイマ２９の計時した割込実行時刻を検出したことを表している。従って制御部６３は、このとき次のステップＳＰ５７に移る。そしてステップＳＰ５７において制御部６３は、記憶単位音楽データＤ６を書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか否かを判別する。このステップＳＰ５７において否定結果が得られると、このことは、この時点にデータ出力部６４において記憶単位音楽データＤ６を書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないことにより、この時点で実行中の第２のタスクをそのまま継続して実行させることを表している。従って制御部６３は、このときステップＳＰ５５に戻る。またステップＳＰ５７において肯定結果が得られると、このことは、この時点にデータ出力部６４において記憶単位音楽データＤ６を書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在することにより引き続き第１のタスクを実行可能であることを表している。従って制御部６３は、このときステップＳＰ５８に移る。そしてステップＳＰ５８において制御部６３は、実行中の第２のタスクに割り込みをかけて中断させると共に、当該第２のタスクに対する中断処理を実行した後、ステップＳＰ５２に戻る。
【０１１２】
一方、ステップＳＰ５６において肯定結果が得られると、このことは未だ割込実行時刻を検出してはいない状態で、すでに実行させている第２のタスクが終了したことを表している。従って制御部６３は、このときステップＳＰ５９に移る。ステップＳＰ５９において制御部６３は、記憶単位音楽データＤ６を書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか否かを判別する。このステップＳＰ５９において否定結果が得られると、このことは、この時点にデータ出力部６４において記憶単位音楽データＤ６を書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないことにより引き続き第２のタスクを実行可能であることを表している。従って制御部６３は、このときステップＳＰ５４に戻り、新たに第２のタスクを実行させた後、ステップＳＰ５５に移る。またステップＳＰ５９において肯定結果が得られると、このことは、この時点にデータ出力部６４において記憶単位音楽データＤ６を書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在することにより引き続き第１のタスクを実行可能であることを表している。従って制御部６３は、このときステップＳＰ５２に戻る。
【０１１３】
ところで上述のステップＳＰ５３において否定結果が得られると、このことはこの時点で実行させる第２のタスクが一度中断された第２のタスクであることを表している。従って制御部６３は、このときステップＳＰ６０に移る。そしてステップＳＰ６０において制御部６３は、先に中断させていた第２のタスクをその中断時点から再開させて、ステップＳＰ５５に移る。このようにして制御部６３は、記録対象の音楽データＤ１に対するデータ処理と、再生対象の暗号化音楽データＤ４に対するデータ処理とが全て終了するまでの間は、上述したステップＳＰ５１を実行した後、ステップＳＰ５２乃至ステップＳＰ６０の処理を循環的に繰り返し実行することにより、データ出力部６４から記憶単位音楽データＤ６を順次途切れさせないように出力させる。
【０１１４】
以上の構成において、記録再生装置６０では、データ処理回路６１において制御部６３が、記録対象の音楽データＤ１に対するデータ処理と、再生対象の暗号化音楽データＤ４に対するデータ処理とを実行するように要求されると、タイマ２９に対し、読出実行時間Ｔｍａｘを最大時間として任意に選定された第１第２タスク実行割当時間の終了時刻を割込実行時刻として設定し、当該タイマ２９に対しかかる第１第２タスク実行割当時間の周期的な計時を開始させると共に、第１のタスクを実行させる（ステップＳＰ５１及びステップＳＰ５２）。そしてデータ処理回路６１において制御部６３は、第１のタスクが終了すると、第２のタスクを実行させながら割込実行時刻の検出と、当該第２のタスクの終了とを待ち受ける（ステップＳＰ５３乃至ステップＳＰ５６）。
【０１１５】
その結果、データ処理回路６１の制御部６３は、第２のタスクの実行中に割込実行時刻を検出したとき、データ出力部６４のメモリ制御器６４Ｒを介して書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎの存在の有無を確認し（ステップＳＰ５７）、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在すると、その時点で実行中の第２のタスクに割り込みをかけて中断させる（ステップＳＰ５８）と共に、新たに第１のタスクを実行させる。またデータ処理回路６１の制御部６３は、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないと、実行中の第２のタスクをそのまま継続させて実行させる。またデータ処理回路６１において制御部６３は、実行中の第２のタスクが、割込実行時刻の検出前に終了したとき、データ出力部６４のメモリ制御器６４Ｒを介して書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎの存在の有無を確認し（ステップＳＰ５９）、当該書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在すると、新たに第１のタスクを実行させ、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないと、新たに第２のタスクを実行させる。このようにしてデータ処理回路６１において制御部６３は、上述した一連の処理を繰り返し実行することで、記録対象の音楽データＤ１に対するデータ処理と、再生対象の暗号化音楽データＤ４に対するデータ処理とをそれぞれ完了させる。
【０１１６】
従って記録再生装置６０では、データ処理回路６１において、タイマ２９で周期的に計時した割込実行時刻を検出したとき、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在すると、実行中の第２のタスクに割り込みをかけて中断させると共に、第１のタスクを実行させる。このため記録再生装置６０では、データ処理回路６１において、割込実行時刻を起点として第１のタスクを実行させることで記憶単位音楽データＤ６を生成すると共に、当該生成した記憶単位音楽データＤ６を、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに対し、かかる記憶単位音楽データＤ６の読み出しが開始されるまでには充分に余裕をもって書き込むことができる。その結果、記録再生装置６０では、データ処理回路６１において、データ出力部６４の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎから記憶単位音楽データＤ６を順次途切れることなく連続して読み出すことができ、かくしてスピーカ１４から出力させる音楽が途切れることも確実に防止することができる。
【０１１７】
また記録再生装置６０では、データ処理回路６１において制御部６３が、タイマ２９に第１第２タスク実行割当時間を周期的に計時させて割込実行時刻を順次検出する。従って記録再生装置６０では、データ処理回路６１において、割込実行時刻を求めるための演算や、タイマ２９に対する煩雑なリセット及び割込実行時刻の設定の繰り返し、またメモリ制御器６４Ｒに割込実行を通知させるような制御を何ら行うことなく、タイマ２９に第１第２タスク実行割当時間を周期的に計時させるだけの簡易な処理で割込実行時刻を容易に検出することができ、割込実行時刻を得るための処理を簡易化することができる。そして記録再生装置６０では、データ処理回路６１において制御部６３が、割込実行時刻の検出前に第２のタスクが終了したときや、第２のタスクの実行中に割込実行時刻を検出したときに、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないと、新たに第２のタスクを実行させ、又は実行中の第２のタスクを継続することで、第１のタスクより優先度の低い第２のタスクについても、極力効率良く実行させることができる。
【０１１８】
以上の構成によれば、記録再生装置６０では、データ処理回路６１において、タイマ２９に第１第２タスク実行割当時間に応じた割込実行時刻を設定し、当該第１第２リスト実行割当時間の周期的な計時を開始させると共に、第１の優先度の第１のタスクを実行させた後、かかる第１の優先度よりも低い第２の優先度の第２のタスクを実行させ、当該第２のタスクの実行中に割込実行時刻を検出したときには、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在すると、実行中の第２のタスクに割り込みをかけて中断させると共に、新たに第１のタスクを実行させ、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないと、実行中の第２のタスクを継続して実行させ、第２のタスクが割込実行時刻の検出前に終了したときには、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在すると新たに第１のタスクを実行させ、当該書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないと新たに第２のタスクを実行させるようにした。従って記録再生装置６０では、第２のタスクを実行させていても、当該第２のタスクよりも高い第１の優先度の第１のタスクを実行させるときには、的確かつ確実に、実行中の第２のタスクに割り込みをかけて中断させると共に、新たに第１のタスクを実行させることができる。その結果、記録再生装置６０では、第１及び第２のタスクをこれらの優先度に応じて的確に実行することができる。これに加えて記録再生装置６０では、データ処理回路６１において、タイマ２９に第１第２タスク実行割当時間を周期的に計時させて割込実行時刻を検出するため、当該タイマ２９に第１第２タスク実行割当時間を周期的に計時させるだけの簡易な処理で割込実行時刻を容易に順次検出することができる。
【０１１９】
また記録再生装置６０では、データ処理回路６１において、割込実行時刻の検出前に第２のタスクが終了したときや、第２のタスクの実行中に割込実行時刻を検出したときに、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないと、新たに第２のタスクを実行し、又は実行中の第２のタスクを継続することで、第１のタスクより優先度の低い第２のタスクについても、極力効率良く実行させることができる。そして記録再生装置６０では、かかる構成により、第２のタスクの実行時に、当該第２のタスクに対する中断処理を極力実行しないようにすることができ、かくしてデータ処理回路６１の制御部６３に対する処理負荷を低減させることができる。
【０１２０】
さらに記録再生装置６０では、データ処理回路６１において、第２のタスクが割込実行時刻の検出前に終了したときや、第２のタスクの実行中に割込実行時刻を検出したときでも、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するときにのみ第１のタスクを実行するため、第１のタスクの開始当初に、極力早い時点で各出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに対しそれぞれ記憶単位音楽データＤ６を効率良く書き込むことができる。そして記録再生装置６０では、例えば中央処理ユニット５と、制御部６３との間で実行される制御命令の転送処理等のように、第１の優先度と同等又はそれ以上の優先度を割り当てたタスクが存在すると、第１のタスクも割り込みをかけて中断することになるが、仮に第１のタスクに割り込みをかけて中断したときでも、かかる構成により、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するときは第１のタスクを実行して記憶単位音楽データＤ６を書き込むことで、読み出すべき記憶単位音楽データＤ６が途切れることを極力回避するように当該第１のタスクを効率良く実行することができる。
【０１２１】
なお上述した第５の実施の形態においては、第２のタスクが割込実行時刻の検出前に終了したとき、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在すると、第１のタスクを実行させるようにした場合について述べたが、本発明はこれに限らず、第２のタスクが割込実行時刻の検出前に終了したとき、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか確認しないと共に、第１のタスクの実行にも移行せず、新たに第２のタスクを実行させるようにしても良い。
【０１２２】
（６）第６の実施の形態
図２１との対応部分に同一符号を付して示す図２６において、第６の実施の形態による記録再生装置７０は、データ処理回路７１の構成を除いて上述した第５の実施の形態による記録再生装置６０と同様に構成されている。そして図２２との対応部分に同一符号を付して示す図２７において、かかるデータ処理回路７１は、ＤＳＰ７２の一部機能に相当する制御部７３の構成を除いて上述した第５の実施の形態の場合のデータ処理回路６１と同様に構成されている。
【０１２３】
この場合、制御部７３は、記憶単位音楽データＤ６を得るための第１のタスクに対する実行の優先度を第１の優先度に設定し、第２のタスクに対する実行の優先度を第１の優先度よりも低い第２の優先度に設定する。また制御部７３は、データ出力部６４の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに対する読出実行時間Ｔｍａｘに対し第１タスク実行時間を大幅に短くしている。そして制御部７３は、第１のタスクと第２のタスクとを実行させる場合、タイマ２９に計時させた時刻で割込実行時刻を検出する。
【０１２４】
ここで図２８（Ａ）乃至（Ｃ）に示すように、例えば第５の実施の形態による制御部６３（図２２）によれば、タイマ２９に対し任意に選定された第１第２タスク実行割当時間を周期的に計時させ、このようにしてタイマ２９に計時させた割込実行時刻Ｔ９０、Ｔ９２、Ｔ９５、Ｔ９９、Ｔ１００、Ｔ１０３を検出している。このためかかる制御部６３によれば、例えば実行中の第２のタスクが割込実行時刻Ｔ９５の検出前に終了し、その時点で書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在すると、引き続き第１のデータ処理部に対し第１のタスクを実行させる。そして制御部６３によれば、第１のデータ処理部によるかかる第１のタスクの実行中に割込実行時刻Ｔ９５を検出したとき、その時点で実行しているタスクが第１及び第２のタスクの何れであるかを判別する。その結果、制御部６３によれば、実行中のタスクが第１のタスクであると判別すると、かかる割込実行時刻Ｔ９５の検出を無視することで当該実行中の第１のタスクに割り込みをかけて中断しないようにしている。また制御部６３によれば、図示はしていないが、例えば第１のデータ処理部による第１のタスクの実行中に割込実行時刻を検出した場合、当該割込実行時刻の検出を無視するため、第１第２タスク実行割当時間が読出実行時間Ｔｍａｘよりも長くなる。このため制御部６３によれば、かかる第１のタスクの終了後に、第２のデータ処理部に対し、比較的長い処理時間を要するような第２のタスクを実行させると、読出実行時間Ｔｍａｘよりも長い時間、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか確認し得なくなる場合がある。因みに上述した第４の実施の形態による制御部５３（図１７）についても、データ出力部５４（図１７）に対しほぼ定期的に割込実行タイミングを通知させているため、かかる処理と同様の処理を実行する。
【０１２５】
このため図２９（Ａ）乃至（Ｃ）に示すように、第６の実施の形態による制御部７３は、割込実行時刻Ｔ１１２、Ｔ１１８、Ｔ１２０の検出にタイマ２９を用いるものの、当該割込実行時刻Ｔ１１２、Ｔ１１８、Ｔ１２０を検出したときや第２のタスクが割込実行時刻の検出前に終了するとき（すなわち、時刻Ｔ１１４、Ｔ１１６、Ｔ１２２）、かかるタイマ２９を一旦リセットして、読出実行時間Ｔｍａｘを最大時間として任意に選定された第１第２タスク実行割当時間の例えば終了時刻を割込実行時刻として設定する。この状態で制御部７３は、タイマ２９に計時を開始させると共に、第１のデータ処理部に対し第１のタスクを開始させ、当該第１のタスクが終了した時刻Ｔ１１１、Ｔ１１３、Ｔ１１５、Ｔ１１７、Ｔ１１９、Ｔ１２１で第２のデータ処理部に対し第２のタスクを開始させる。そして制御部７３は、第２のデータ処理部による第２のタスクの実行中に割込実行時刻Ｔ１１２、Ｔ１１８、Ｔ１２０を検出したとき、その時点でデータ出力部６４のメモリ制御器６４Ｒを介して、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか確認する。その結果、制御部７３は、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在すると、第２のデータ処理部に対し実行中の第２のタスクに割り込みをかけて中断させると共に、タイマ２９を一旦リセットして第１第２タスク実行割当時間に応じた割込実行時刻を設定し、その状態で計時を開始させると共に、第１のデータ処理部に対し第１のタスクを開始させる。また制御部７３は、第２のデータ処理部により実行中の第２のタスクが割込実行時刻の検出前に終了すると、当該第２のタスクの終了時刻Ｔ１１４、Ｔ１１６、Ｔ１２２でも、データ出力部６４のメモリ制御器６４Ｒを介して、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか確認する。その結果、制御部７３は、第２のタスクが終了したとき、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在していると、タイマ２９を一旦リセットして第１第２タスク実行割当時間に応じた割込実行時刻を設定し計時を開始させると共に、第１のデータ処理部に対し第１のタスクを開始させる。
【０１２６】
これに加えて制御部７３は、第２のデータ処理部により実行中の第２のタスクが割込実行時刻の検出前に終了したときに、当該第２のタスクの終了時刻Ｔ１２２に書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在していないと、タイマ２９を一旦リセットして第１第２タスク実行割当時間に応じた割込実行時刻を設定し計時を開始させると共に、第２のデータ処理部に対し新たに第２のタスクを開始させる。また制御部７３は、第２のデータ処理部による第２のタスクの実行中に割込実行時刻を検出したとき、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在していないと、そのときにもタイマ２９を一旦リセットして第１第２タスク実行割当時間に応じた割込実行時刻を設定し計時を開始させると共に、第２のデータ処理部に対し当該実行中の第２のタスクをそのまま継続させて実行させる。
【０１２７】
このようにして制御部７３は、第１のデータ処理部に対し第１のタスクを実行させる際、必ずタイマ２９を一旦リセットして第１第２タスク実行割当時間に応じた割込実行時刻を設定し、この状態でタイマ２９に計時を開始させると共に、第１のデータ処理部に対し第１のタスクを開始させる。従って制御部７３は、第１のデータ処理部による第１のタスクの実行中に割込実行時刻を検出するような状況になること未然にかつ確実に回避している。その結果、制御部７３は、第１のタスクの実行中に、割込実行時刻の検出に起因する、その時点で実行中のタスクを判別するような処理を何ら実行する必要がなく、かくして第１のタスクを実行させているときの自己の処理負荷を低減させている。
【０１２８】
また制御部７３は、第２のデータ処理部による第２のタスクの実行中に割込実行時刻を検出したときや、第２のデータ処理部において実行中の第２のタスクが割込実行時刻の検出前に終了したときに、その都度、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか確認する。従って制御部７３は、最大でも第１第２タスク実行割当時間以内に必ず書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するかを確認している。このため制御部７３は、第１のタスクの開始当初（すなわち、再生対象の暗号化音楽データＤ４に対する復号処理及び伸張処理の開始当初）に、出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎの個数が多いことで、一度も記憶単位音楽データＤ６が書き込まれないまま、書込可能な状態となっている出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しても、極力早い時点で、これら少なくとも３個以上の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに対しそれぞれ記憶単位音楽データＤ６を効率良く書き込んでいる。また制御部７３は、第２のデータ処理部による第２のタスクの実行中に割込実行時刻を検出したときや、第２のデータ処理部により実行中の第２のタスクが割込実行時刻の検出前に終了したときに、その都度、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか確認するため、当該出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに対し確実に書込可能な状態で新たな記憶単位音楽データＤ６を書き込む。
【０１２９】
さらに制御部７３は、第２のデータ処理部により実行中の第２のタスクが割込実行時刻の検出前に終了しても、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないために、引き続き新たに第２のタスクを実行させる場合、当該実行させる第２のタスクに対し第１第２タスク実行割当時間をそのまま第２タスク実行割当時間として割り当てる。また制御部７３は、第２のデータ処理部による第２のタスクの実行中に割込実行時刻を検出しても、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないために、かかる第２のタスクの実行を継続させる場合、当該検出した割込実行時刻を起点として、実行中の第２のタスクにおいて当該割込実行時刻の検出以降に継続して実行される残りの処理（以下、これを第２の残タスクと呼ぶ）に対し、第１第２タスク実行割当時間をそのまま第２タスク実行割当時間として割り当てる。従って制御部７３は、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎの存在を確認しても、当該書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないときには、第２のタスク及び第２の残タスクに対し、割当可能な最大の第２タスク実行割当時間（すなわち、第１第２タスク実行割当時間）を割り当てるため、第１のタスクより優先度の低い第２のタスクについても、極力効率良く実行させている。これに加えて制御部７３は、割込実行時刻の検出に応じて、第２のデータ処理部に対し実行中の第２のタスクに割り込みをかけて中断させても、引き続き第１のデータ処理部に対し第１のタスクを実行させた後に、第２のデータ処理部に対しかかる第２のタスクをその中断時点から再開させる。これにより制御部７３は、実行中の第２のタスクに割り込みをかけて中断させても、当該第２のタスクを的確かつ確実に終了している。
【０１３０】
ここでデータ処理回路７１の制御部７３は、データ処理制御プログラムに従って第１及び第２のタスクの実行を制御している。すなわち制御部７３は、中央処理ユニット５から記録対象の音楽データＤ１に対するデータ処理と、再生対象の暗号化音楽データＤ４に対するデータ処理とを実行するように要求されると、データ処理制御プログラムに従って図３０に示す第６のデータ処理制御処理手順ＲＴ６を開始する。制御部７３は、かかる第６のデータ処理制御処理手順ＲＴ６を開始すると、ステップＳＰ６１においてタイマ２９をリセットして、第１第２タスク実行割当時間の終了時刻を割込実行時刻として設定し、次のステップＳＰ６２に移る。ステップＳＰ６２において制御部７３は、タイマ２９に計時を開始させると共に、第１のタスクを開始させ、かかる第１のタスクが終了すると、次のステップＳＰ６３に移る。
【０１３１】
ステップＳＰ６３において制御部７３は、第１のタスクに引き続き開始させる第２のタスクが新たに開始させる第２のタスクであるか否かを判別する。このステップＳＰ６３において肯定結果が得られると、このことはこの時点で開始させる第２のタスクが一度も中断されていない第２のタスクであることを表している。従って制御部７３は、このとき次のステップＳＰ６４に移る。そしてステップＳＰ６４において制御部７３は、新たに第２のタスクを開始させて、次のステップＳＰ６５に移る。ステップＳＰ６５において制御部７３は、割込実行時刻を検出したか否かを判別する。このステップＳＰ６５において否定結果が得られると、このことは第２のタスクの実行中ではあるが、未だ割込実行時刻を検出してはいないことにより、かかる第２のタスクをこのまま実行させ続けることを表している。従って制御部７３は、このときステップＳＰ６６に移る。ステップＳＰ６６において制御部７３は、すでに実行させている第２のタスクが終了したか否かを判別する。このステップＳＰ６６において否定結果が得られると、このことは、未だ割込実行時刻を検出してはいない状態で、第２のタスクも終了してはいないことによりこのまま実行させ続けることを表している。従って制御部７３は、このときステップＳＰ６５に戻る。従って制御部７３は、ステップＳＰ６５及びステップＳＰ６６において肯定結果を得るまでの間は、当該ステップＳＰ６５及びステップＳＰ６６の処理を循環的に繰り返し実行することにより、割込実行時刻の検出及び第２のタスクの終了を待ち受ける。
【０１３２】
そしてステップＳＰ６５において肯定結果が得られると、このことは第２のタスクの実行中ではあるが、割込実行時刻を検出したことを表している。従って制御部７３は、このとき次のステップＳＰ６７に移る。そしてステップＳＰ６７において制御部７３は、記憶単位音楽データＤ６を書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか否かを判別する。このステップＳＰ６７において肯定結果が得られると、このことは、この時点にデータ出力部６４において記憶単位音楽データＤ６を書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在することにより引き続き第１のタスクを実行可能であることを表している。従って制御部７３は、このときステップＳＰ６８に移る。そしてステップＳＰ６８において制御部７３は、実行中の第２のタスクに割り込みをかけて中断させると共に、当該第２のタスクに対する中断処理を実行した後、ステップＳＰ６１に戻る。
【０１３３】
一方、ステップＳＰ６６において肯定結果が得られると、このことは未だ割込実行時刻を検出してはいない状態で、すでに実行させている第２のタスクが終了したことを表している。従って制御部７３は、このときステップＳＰ６９に移る。ステップＳＰ６９において制御部７３は、記憶単位音楽データＤ６を書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか否かを判別する。このステップＳＰ６９において肯定結果が得られると、このことは、この時点にデータ出力部６４において記憶単位音楽データＤ６を書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在することにより引き続き第１のタスクを実行可能であることを表している。従って制御部７３は、このときステップＳＰ６１に戻る。
【０１３４】
ところでステップＳＰ６７において否定結果が得られると、このことは、この時点にデータ出力部６４において記憶単位音楽データＤ６を書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないことにより、この時点で実行中の第２のタスクをそのまま継続して実行させることを表している。従って制御部７３は、このときステップＳＰ７０に移る。またステップＳＰ６９において否定結果が得られると、このことは、この時点にデータ出力部６４において記憶単位音楽データＤ６を書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないことにより引き続き第２のタスクを実行可能であることを表している。従って制御部７３は、このときもステップＳＰ７０に移る。そしてステップＳＰ７０において制御部７３は、タイマ２９を一旦リセットして第１第２タスク実行割当時間に応じた割込実行時刻を設定して直し、ステップＳＰ６３に戻る。この場合、制御部７３は、第２のタスクの実行中に割込実行時刻を検出してもかかる第２のタスクの実行を継続するため、ステップＳＰ６７の処理からステップＳＰ７０の処理を経てステップＳＰ６３に戻ったときには、当該ステップＳＰ６３において、すでに実行している当該第２のタスクをそのまま継続すると判別することにより、ステップＳＰ７１に移る。そしてステップＳＰ７１において制御部７３は、タイマ２９に計時を開始させると共に、割込実行時刻を検出したときに実行中の第２のタスクをそのまま継続させて実行させ、次のステップＳＰ６５に移る。また制御部７３は、第２のタスクが終了しても新たに第２のタスクを実行させるため、ステップＳＰ６９の処理からステップＳＰ７０の処理を経てステップＳＰ６３に戻ったときには、当該ステップＳＰ６３において新たに第２のタスクを開始させると判別することにより、次のステップＳＰ６４に移る。そしてステップＳＰ６４において制御部７３は、タイマ２９に計時を開始させると共に、新たに第２のタスクを開始させて、次のステップＳＰ６５に移る。
【０１３５】
ところで上述のステップＳＰ６１の処理からステップＳＰ６２の処理を経てステップＳＰ６３に移った場合、かかるステップＳＰ６３において否定結果が得られると、このことはこの時点で開始する第２のタスクが一度中断された第２のタスクであることを表している。従って制御部７３は、このときステップＳＰ７１に移る。そしてステップＳＰ７１において制御部７３は、先に中断させていた第２のタスクをその中断時点から再開して、ステップＳＰ６５に移る。このようにして制御部７３は、記録対象の音楽データＤ１に対するデータ処理と、再生対象の暗号化音楽データＤ４に対するデータ処理とが全て終了するまでの間は、上述したステップＳＰ６１乃至ステップＳＰ７１の処理を循環的に繰り返し実行することにより、データ出力部６４から記憶単位音楽データＤ６を順次途切れさせないように出力させる。
【０１３６】
以上の構成において、記録再生装置７０では、データ処理回路７１において制御部７３が、記録対象の音楽データＤ１に対するデータ処理と、再生対象の暗号化音楽データＤ４に対するデータ処理とを実行するように要求されると、タイマ２９をリセットして、読出実行時間Ｔｍａｘを最大時間として任意に選定された第１第２タスク実行割当時間の終了時刻を割込実行時刻として設定し、この状態で当該タイマ２９に計時を開始させると共に、第１のタスクを開始させる（ステップＳＰ６１及びステップＳＰ６２）。そしてデータ処理回路７１において制御部７３は、第１のタスクが終了すると、第２のタスクを開始させ、割込実行時刻の検出と、当該第２のタスクの終了とを待ち受ける（ステップＳＰ６３乃至ステップＳＰ６６）。
【０１３７】
この状態でデータ処理回路７１の制御部７３は、第２のタスクの実行中に割込実行時刻を検出したとき、データ出力部６４のメモリ制御器６４Ｒを介して書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎの存在の有無を確認する（ステップＳＰ６７）。その結果、データ処理回路７１において制御部７３は、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在すると、その時点で実行中の第２のタスクに割り込みをかけて中断させ（ステップＳＰ６８）、タイマ２９をリセットして第１第２タスク実行割当時間に応じた割込実行時刻を設定し計時を開始させると共に、新たに第１のタスクを開始させる（ステップＳＰ６１及びステップＳＰ６２）。これに対してデータ処理回路７１の制御部７３は、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないと、タイマ２９をリセットして第１第２タスク実行割当時間に応じた割込実行時刻を設定し計時を開始させると共に、実行中の第２のタスクをそのまま継続させて実行させる（ステップＳＰ７０、ステップＳＰ６３、ステップＳＰ７１）。
【０１３８】
またデータ処理回路７１において制御部７３は、実行中の第２のタスクが、割込実行時刻の検出前に終了したとき、データ出力部６４のメモリ制御器６４Ｒを介して書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎの存在の有無を確認し（ステップＳＰ６９）、当該書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在すると、タイマ２９をリセットして第１第２タスク実行割当時間に応じた割込実行時刻を設定し計時を開始させると共に、新たに第１のタスクを開始させる（ステップＳＰ６１及びステップＳＰ６２）。これに対してデータ処理回路７１の制御部７３は、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないと、タイマ２９をリセットして第１第２タスク実行割当時間に応じた割込実行時刻を設定し計時を開始させると共に、新たに第２のタスクを開始させる（ステップＳＰ７０、ステップＳＰ６３、ステップＳＰ６４）。このようにしてデータ処理回路７１において制御部７３は、上述した一連の処理を繰り返し実行することで、記録対象の音楽データＤ１に対するデータ処理と、再生対象の暗号化音楽データＤ４に対するデータ処理とをそれぞれ完了させる。
【０１３９】
従って記録再生装置７０では、データ処理回路７１において、第２のタスクの実行中に割込実行時刻を検出したときや当該第２タスクが割込実行時刻の検出前に終了したときに、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか確認し、当該書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在すると、第１のタスクを実行して記憶単位音楽データＤ６を生成すると共に、かかる書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに対しその記憶単位音楽データＤ６を書き込むことができる。このため記録再生装置７０では、データ処理回路７１において、第１のタスクの開始当初に、各出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに対しそれぞれ、極力早い時点で記憶単位音楽データＤ６を書き込むことができると共に、ある程度の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに対し記憶単位音楽データＤ６を書き込んだ後でも、かかる出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが書込可能な状態となる毎に極力早い時点で記憶単位音楽データＤ６を追加で書き込むことができる。よって記録再生装置７０では、データ処理回路７１において、データ出力部６４の各出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎから記憶単位音楽データＤ６を順次途切れることなく連続して読み出すことができ、かくしてスピーカ１４から出力させる音楽が途切れることも確実に防止することができる。
【０１４０】
以上の構成によれば、記録再生装置７０では、データ処理回路７１において、タイマ２９をリセットして第１第２タスク実行割当時間に応じた割込実行時刻を設定し、この状態で当該タイマ２９に計時を開始させると共に、第１の優先度の第１のタスクを開始させ、当該第１のタスクが終了すると、第１の優先度よりも低い第２の優先度の第２のタスクを実行させ、当該第２のタスクの実行中に割込実行時刻を検出したときには、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……６４Ｎが存在すると、実行中の第２のタスクに割り込みをかけて中断させ、タイマ２９を一旦リセットして第１第２タスク実行割当時間に応じた割込実行時刻を設定して計時を開始させると共に、新たに第１のタスクを開始させ、第２のタスクが割込実行時刻の検出前に終了したときにも、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在すると、タイマ２９を一旦リセットして第１第２タスク実行割当時間に応じた割込実行時刻を設定して計時を開始させると共に、新たに第１のタスクを開始させるようにした。従って記録再生装置７０では、第２のタスクを実行させていても、当該第２のタスクよりも高い第１の優先度の第１のタスクを実行させるときには、的確かつ確実に、実行中の第２のタスクに割り込みをかけて中断させると共に、新たに第１のタスクを実行させることができる。その結果、記録再生装置７０では、第１及び第２のタスクをこれらの優先度に応じて的確に実行することができる。
【０１４１】
これに加えて記録再生装置７０では、データ処理回路７１において、第１のタスクを実行させる際、必ずタイマ２９を一旦リセットして第１第２タスク実行割当時間に応じた割込実行時刻を設定したうえで、当該タイマ２９に計時を開始させると共に、第１のタスクを開始させるため、第１のタスクの実行中に割込実行時刻を検出するような状況になることを未然にかつ確実に回避することができる。その結果、記録再生装置７０では、データ処理回路７１において、第１のタスクの実行中に、割込実行時刻の検出に起因するその時点で実行中のタスクを判別するような処理を何ら実行する必要がない分、当該第１のタスクを実行させているときの自己の処理負荷を低減させることができる。そして記録再生装置７０では、割込実行時刻を検出したときに実行中のタスクを判別する必要がないため、第１及び第２のタスクの実行を制御するデータ処理制御プログラムを、このような判別のためのアルゴリズムを除いて構成することができ、かくしてデータ処理制御プログラムの構成を簡易化することができる。
【０１４２】
また記録再生装置７０では、データ処理回路７１において、第２のタスクの実行中に割込実行時刻を検出したときや、実行中の第２のタスクが割込実行時刻の検出前に終了したとき、その都度、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか確認するため、順次、第１第２タスク実行割当時間以内に書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するかを確認することができる。従って記録再生装置７０では、データ処理回路７１において、第１のタスクの開始当初に、極力早い時点で全ての出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに対しそれぞれ記憶単位音楽データＤ６を効率良く書き込むことができると共に、ある程度の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに対し記憶単位音楽データＤ６を書き込んだ後も、こまめに書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか確認したうえで、これら出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに対し記憶単位音楽データＤ６を書き込むことができる。そして記録再生装置７０では、例えば中央処理ユニット５と、制御部７３との間で実行される制御命令の転送処理等のように、第１の優先度と同等又はそれ以上の優先度を割り当てたタスクが存在すると、第１のタスクも割り込みをかけて中断することになるが、仮に第１のタスクに割り込みをかけて中断したときでも、かかる構成により出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが書込可能な状態になると、当該書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに対し迅速に記憶単位音楽データＤ６を書き込むことができる。従って記録再生装置７０では、仮に第１のタスクよりも優先度の高いタスクが存在しても、データ出力部６４の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎから読み出すべき記憶単位音楽データＤ６が途切れることを極力回避するように当該第１のタスクを効率良く実行することができる。
【０１４３】
さらに記録再生装置７０では、データ処理回路７１において、実行中の第２のタスクが割込実行時刻の検出前に終了したときや第２のタスクの実行中に割込実行時刻を検出したときに、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないため、新たに第２のタスクを実行させる場合や第２の残タスクを実行させる場合、これら第２のタスク及び第２の残タスクにそれぞれ第１第２タスク実行割当時間をそのまま第２タスク実行割当時間として割り当てる。従って記録再生装置７０では、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎの存在を確認しても、当該書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないとき、第２のタスク及び第２の残タスクに対し割当可能な最大の第２タスク実行割当時間を割り当てることで、第１のタスクより優先度の低い第２のタスクについても、極力効率良く実行させることができる。
【０１４４】
なお上述した第６の実施の形態においては、データ処理回路７１において、実行中の第２のタスクが割込実行時刻の検出前に終了しても、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないために、引き続き新たに第２のタスクを実行させるとき、タイマ２９に対し割込実行時刻を設定し直して当該新たに第２のタスクを実行させるようにした場合について述べたが、本発明はこれに限らず、データ処理回路７１において、実行中の第２のタスクが割込実行時刻の検出前に終了しても、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないために、引き続き新たに第２のタスクを実行させるとき、タイマ２９に対し割込実行時刻を設定し直さずに当該新たに第２のタスクを実行させるようにしても良い。このようにすれば、新たに第２のタスクを実行させたとき、当該第２のタスクの開始時刻から第１第２タスク実行割当時間が経過するよりも早い時点に割込実行時刻（すなわち、１つ前の第２のタスクが実行される際にすでに設定されていた割込実行時刻）を検出して、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するかを確認することができ、かくして第１のタスクの開始当初、出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに対して記憶単位音楽データＤ６をさらに効率良く書き込むことができる。因みにデータ処理回路７１において、実行中の第２のタスクが割込実行時刻の検出前に終了しても、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないために、引き続き新たに第２のタスクを実行させるとき、タイマ２９に対し、第１第２タスク実行割当時間よりも短い任意に選定された時間に応じて割込実行時刻を設定しても良い。このようにしても同様の効果を得ることができる。
【０１４５】
また上述した第６の実施の形態においては、第２のタスクが割込実行時刻の通知前に終了したとき、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在すると、第１のタスクを実行させるようにした場合について述べたが、本発明はこれに限らず、第２のタスクが割込実行時刻の通知前に終了したとき、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか確認しないと共に、第１のタスクの実行にも移行せず、新たに第２のタスクを実行させるようにしても良い。
【０１４６】
（７）第７の実施の形態
図２１との対応部分に同一符号を付して示す図３１において、第７の実施の形態による記録再生装置８０は、データ処理回路８１の構成を除いて上述した第５の実施の形態による記録再生装置６０と同様に構成されている。そして図２２との対応部分に同一符号を付して示す図３２において、かかるデータ処理回路８１は、ＤＳＰ８２の一部機能に相当する制御部８３の構成を除いて上述した第５の実施の形態の場合のデータ処理回路６１と同様に構成されている。
【０１４７】
この場合、制御部８３は、記憶単位音楽データＤ６を得るための第１のタスクに対する実行の優先度を第１の優先度に設定し、第２のタスクに対する実行の優先度を第１の優先度よりも低い第２の優先度に設定する。また制御部８３は、データ出力部６４の各出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに対する読出実行時間Ｔｍａｘに対し第１タスク実行時間を大幅に短くしている。そして制御部８３は、第１のタスクと第２のタスクとを実行させる場合、タイマ２９を一旦リセットして計時を開始させると共に、第１のデータ処理部に対し第１のタスクを開始させる。ただし制御部８３は、第１及び第２のデータ処理部に対する制御を開始するときだけは、最初のタイマ２９の計時の開始と共に第１のタスクの開始を、データ出力部６４における記憶単位音楽データＤ６の書込開始用の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎの切り替えに同期させている。そして制御部８３は、第１のデータ処理部による第１のタスクが終了すると、その時点にタイマ２９の計時した時刻により第１タスク実行時間を検出する。また制御部８３は、読出実行時間Ｔｍａｘを最大時間として予め任意に選定された第１第２タスク実行割当時間から、かかる第１タスク実行時間を減算することにより、当該第１第２タスク実行割当時間内で第２のタスクの実行に割り当てる第２タスク実行割当時間を算出する。これにより制御部８３は、タイマ２９を再びリセットして第２タスク実行割当時間の例えば終了時刻を割込実行時刻として設定する。そして制御部８３は、このようにタイマ２９に割込実行時刻を設定すると、その状態で計時を開始させると共に、第２のデータ処理部に対し第２のタスクを開始させる。
【０１４８】
この状態で制御部８３は、第２のデータ処理部による第２のタスクの実行中に割込実行時刻を検出したとき、その時点でデータ出力部６４のメモリ制御器６４Ｒを介して、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか確認する。その結果、制御部８３は、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在すると、第２のデータ処理部に対し実行中の第２のタスクに割り込みをかけて中断させると共に、タイマ２９を一旦リセットして計時を開始させ、かつ第１のデータ処理部に対し新たに第１のタスクを開始させる。そして制御部８３は、第１のデータ処理部による第１のタスクが終了すると、再び上述と同様に第１第２タスク実行割当時間及び第１タスク実行時間に基づいて第２タスク実行割当時間を算出し、タイマ２９を一旦リセットして当該タイマ２９に対し第２タスク実行割当時間に応じた割込実行時刻を設定して計時を開始させると共に、第２のデータ処理部に対し新たに第２のタスクを開始させる。
【０１４９】
また制御部８３は、第２のデータ処理部による実行中の第２のタスクが割込実行時刻の検出前に終了したとき、当該第２のタスクが終了した時点でも、データ出力部６４のメモリ制御器６４Ｒを介して、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか確認する。その結果、制御部８３は、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在すると、タイマ２９を再びリセットして計時を開始させると共に、第１のデータ処理部に対し新たに第１のタスクを開始させる。そして制御部８３は、第１のデータ処理部において第１のタスクが終了すると、再び上述と同様に第１第２タスク実行割当時間及び第１タスク実行時間に基づいて第２タスク実行割当時間を算出し、タイマ２９を一旦リセットして第２タスク実行割当時間に応じた割込実行時刻に設定して計時を開始させると共に、第２のデータ処理部に対し新たに第２のタスクを開始させる。
【０１５０】
これに加えて制御部８３は、第２のデータ処理部により実行中の第２のタスクが割込実行時刻の検出前に終了したとき、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないと、タイマ２９を一旦リセットして第１第２タスク実行割当時間の終了時刻を割込実行時刻として設定し直し計時を開始させると共に、第２のデータ処理部に対し新たに第２のタスクを開始させる。また制御部８３は、第２のデータ処理部による第２のタスクの実行中に割込実行時刻を検出したとき、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないと、そのときにもタイマ２９を一旦リセットして第１第２タスク実行割当時間の終了時刻を割込実行時刻として設定し直して計時を開始させると共に、第２のデータ処理部に対し当該第２のタスクの実行をそのまま継続させる。
【０１５１】
このようにして制御部８３は、タイマ２９に割込実行時間を設定して計時を開始させることで当該割込実行時間を検出するものの、第１のタスクを実行させる際に必ずかかるタイマ２９を一旦リセットして計時を開始させると共に、第１のデータ処理部に対し第１のタスクを開始させ、かかる第１のタスクが終了した時点でタイマ２９を一旦リセットして第２タスク実行割当時間に応じた割込実行時刻を設定する。従って制御部８３は、第１のデータ処理部による第１のタスクの実行中に割込実行時刻を検出するような状況になること未然にかつ確実に回避している。その結果、制御部８３は、第１のデータ処理部による第１のタスクの実行中に、割込実行時刻の検出に起因するその時点で実行中のタスクを判別するような処理を何ら実行する必要がなく、かくして第１のデータ処理部に対し第１のタスクを実行させているときの自己の処理負荷を低減させている。
【０１５２】
また制御部８３は、第２のタスクの割り込みによる中断から第１のタスクの実行へ移行したときや、第２のタスクの終了から第１のタスクの実行へ移行したとき、当該第１のタスクが終了すると、タイマ２９を一旦リセットして、第１第２タスク実行割当時間から第１タスク実行時間を減算して得られる第２タスク実行割当時間に応じた割込実行時刻を設定して計時を開始させると共に、第２のデータ処理部に対し第２のタスクを開始させる。さらに制御部８３は、第２のタスクの終了から新たに第２のタスクの実行へ移行したときや、割込実行時刻を検出しても実行中の第２のタスクをそのまま継続して実行させるときもタイマ２９を一旦リセットして第１第２タスク実行割当時間に応じた割込実行時刻を設定して計時を開始させると共に、第２のデータ処理部に対し新たに第２のタスクを実行させ、又は実行中の第２のタスクを継続して実行させる。そして制御部８３は、このような割込実行時刻の設定状態で、第２のタスクの実行中に割込実行時刻を検出したときや、実行中の第２のタスクが割込実行時刻の検出前に終了したときには、その都度、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか確認する。従って制御部８３は、最大でも第１第２タスク実行割当時間以内に必ず書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか確認することができる。このため制御部８３は、第１のタスクの開始当初（すなわち、再生対象の暗号化音楽データＤ４に対する復号処理及び伸張処理の開始当初）に、出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎの個数が多くても極力早い時点で、これら少なくとも３個以上の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに対しそれぞれ記憶単位音楽データＤ６を効率良く書き込んでいる。また制御部８３は、第２のデータ処理部による第２のタスクの実行中に割込実行時刻を検出したときや、第２のデータ処理部において実行中の第２のタスクが割込実行時刻の検出前に終了したとき、その都度、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか確認するため、当該出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに対し確実に書込可能な状態で新たな記憶単位音楽データＤ６を書き込む。
【０１５３】
さらに制御部８３は、実行中の第２のタスクが割込実行時刻の検出前に終了しても、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないために、引き続き新たに第２のタスクを実行させる場合、当該実行させる第２のタスクに対し第１第２タスク実行割当時間をそのまま第２タスク実行割当時間として割り当てる。また制御部８３は、第２のデータ処理部による第２のタスクの実行中に割込実行時刻を検出したとき、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないために、当該第２のデータ処理部に対しかかる第２のタスクの実行を継続させる場合、当該検出した割込実行時刻を起点として、実行中の第２のタスクにおいて当該割込実行時刻の検出以降に継続して実行される第２の残タスクに対し、第１第２タスク実行割当時間をそのまま第２タスク実行割当時間として割り当てる。従って制御部８３は、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか確認した結果、当該書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないときには、第２のタスク及び第２の残タスクに対し、割当可能な最大の第２タスク実行割当時間（すなわち、第１第２タスク実行割当時間）を割り当てることで、第１のタスクより優先度の低い第２のタスクについても、極力効率良く実行させる。これに加えて制御部８３は、割込実行時刻の検出に応じて、第２のデータ処理部に対し実行中の第２のタスクに割り込みをかけて中断させても、引き続き第１のデータ処理部に対し第１のタスクを実行させた後に、第２のデータ処理部に対しかかる第２のタスクをその中断時点から再開させる。これにより制御部８３は、第２のデータ処理部に対し実行中の第２のタスクに割り込みをかけて中断させても、当該第２のタスクを的確かつ確実に終了している。
【０１５４】
ここでデータ処理回路８１の制御部８３は、データ処理制御プログラムに従って第１及び第２のタスクの実行を制御している。すなわち制御部８３は、中央処理ユニット５から記録対象の音楽データＤ１に対するデータ処理と、再生対象の暗号化音楽データＤ４に対するデータ処理とを実行するように要求されると、データ処理制御プログラムに従って図３３に示す第７のデータ処理制御処理手順ＲＴ７を開始する。制御部８３は、かかる第７のデータ処理制御処理手順ＲＴ７を開始すると、ステップＳＰ８１においてタイマ２９をリセットして、次のステップＳＰ８２に移る。ステップＳＰ８２において制御部８３は、タイマ２９の計時を開始させると共に第１のタスクを開始させ、かかる第１のタスクが終了すると、次のステップＳＰ８３に移る。ステップＳＰ８３において制御部８３は、第１第２タスク実行割当時間及び第１タスク実行時間に基づいて第２タスク実行割当時間を算出すると共に、タイマ２９に対し一旦リセってして、かかる第２タスク実行割当時間に応じた割込実行時刻を設定して、次のステップＳＰ８４に移る。
【０１５５】
ステップＳＰ８４において制御部８３は、第１のタスクに引き続き開始させる第２のタスクが新たに開始させる第２のタスクであるか否かを判別する。このステップＳＰ８４において肯定結果が得られると、このことはこの時点で開始させる第２のタスクが一度も中断されていない第２のタスクであることを表している。従って制御部８３は、このとき次のステップＳＰ８５に移る。そしてステップＳＰ８５において制御部８３は、新たに第２のタスクを開始させて、次のステップＳＰ８６に移る。ステップＳＰ８６において制御部８３は、割込実行時刻を検出したか否かを判別する。このステップＳＰ８６において否定結果が得られると、このことは第２のタスクの実行中ではあるが、未だ割込実行時刻を検出してはいないことにより、かかる第２のタスクをこのまま実行させ続けることを表している。従って制御部８３は、このときステップＳＰ８７に移る。ステップＳＰ８７において制御部８３は、すでに実行させている第２のタスクが終了したか否かを判別する。このステップＳＰ８７において否定結果が得られると、このことは、未だ割込実行時刻を検出してはいない状態で、第２のタスクも終了してはいないことによりこのまま実行させ続けることを表している。従って制御部８３は、このときステップＳＰ８６に戻る。従って制御部８３は、ステップＳＰ８６及びステップＳＰ８７において肯定結果を得るまでの間は、当該ステップＳＰ８６及びステップＳＰ８７の処理を循環的に繰り返し実行することにより、割込実行時刻の検出及び第２のタスクの終了を待ち受ける。
【０１５６】
そしてステップＳＰ８６において肯定結果が得られると、このことは第２のタスクの実行中ではあるが、割込実行時刻を検出したことを表している。従って制御部８３は、このとき次のステップＳＰ８８に移る。そしてステップＳＰ８８において制御部８３は、記憶単位音楽データＤ６を書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか否かを判別する。このステップＳＰ８８において肯定結果が得られると、このことは、この時点にデータ出力部６４において記憶単位音楽データＤ６を書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在することにより引き続き第１タスクを実行可能であることを表している。従って制御部８３は、このときステップＳＰ８９に移る。そしてステップＳＰ８９において制御部８３は、実行中の第２のタスクに割り込みをかけて中断させると共に、当該第２のタスクに対する中断処理を実行した後、ステップＳＰ８１に戻る。
【０１５７】
一方、ステップＳＰ８７において肯定結果が得られると、このことは未だ割込実行時刻を検出してはいない状態で、すでに実行させている第２のタスクが終了したことを表している。従って制御部８３は、このときステップＳＰ９０に移る。ステップＳＰ９０において制御部８３は、記憶単位音楽データＤ６を書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか否かを判別する。このステップＳＰ９０において肯定結果が得られると、このことは、この時点にデータ出力部６４において記憶単位音楽データＤ６を書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在することにより引き続き第１タスクを実行可能であることを表している。従って制御部８３は、このときステップＳＰ８１に戻る。
【０１５８】
ところでステップＳＰ８８において否定結果が得られると、このことは、この時点にデータ出力部６４において記憶単位音楽データＤ６を書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないことにより、この時点で実行中の第２のタスクをそのまま継続して実行させることを表している。従って制御部８３は、このときステップＳＰ８３に戻る。またステップＳＰ９０において否定結果が得られると、このことは、この時点にデータ出力部６４において記憶単位音楽データＤ６を書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないことにより引き続き第２のタスクを実行可能であることを表している。従って制御部８３は、このときもステップＳＰ８３に戻る。この場合、制御部８３は、第２のタスクの実行中に割込実行時刻を検出してもかかる第２のタスクの実行を継続するため、ステップＳＰ８８の処理からステップＳＰ８３に戻ると、当該ステップＳＰ８３において、このとき第１のタスクを特に実行していないことで第１タスク実行時間を検出してはいないため、タイマ２９に対し一旦リセットして第１第２タスク実行割当時間に応じた割込実行時間を設定し直し、ステップＳＰ８４に移る。そしてステップＳＰ８４において制御部８３は、このとき、すでに実行している当該第２のタスクをそのまま継続すると判別して、ステップＳＰ９１に移る。これによりステップＳＰ９１において制御部８３は、タイマ２９に第１第２タスク実行割当時間をそのまま第２タスク実行割当時間として計時させると共に、割込実行時刻を検出したときに実行中の第２のタスクをそのまま継続させて、次のステップＳＰ８６に移る。また制御部８３は、第２のタスクが終了しても新たに第２のタスクを実行させるため、ステップＳＰ９０の処理からステップＳＰ８３に戻ると、当該ステップＳＰ８３において、このときも第１のタスクを特に実行していないことで第１タスク実行時間を検出してはいないため、タイマ２９に対し一旦リセットして第１第２タスク実行割当時間に応じた割込実行時刻を設定し直し、ステップＳＰ８４に移る。そしてステップＳＰ８４において制御部８３は、このとき、新たに第２のタスクを実行させると判別して、次のステップＳＰ８５に移る。そしてステップＳＰ８５において制御部８３は、タイマ２９に第１第２タスク実行割当時間をそのまま第２タスク実行割当時間として計時させると共に、新たに第２のタスクを開始させて、次のステップＳＰ８６に移る。
【０１５９】
ところで上述のステップＳＰ８１の処理からステップＳＰ８２及びステップＳＰ８３の処理を順次経てステップＳＰ８４に移った場合、かかるステップＳＰ８４において否定結果が得られると、このことはこの時点で開始する第２のタスクが一度中断された第２のタスクであることを表している。従って制御部８３は、このときステップＳＰ９１に移る。そしてステップＳＰ９１において制御部８３は、先に中断させていた第２のタスクをその中断時点から再開して、ステップＳＰ８６に移る。このようにして制御部８３は、記録対象の音楽データＤ１に対するデータ処理と、再生対象の暗号化音楽データＤ４に対するデータ処理とが全て終了するまでの間は、上述したステップＳＰ８１乃至ステップＳＰ９１の処理を循環的に繰り返し実行することにより、データ出力部６４から記憶単位音楽データＤ６を順次途切れさせないように出力させる。
【０１６０】
以上の構成において、記録再生装置８０では、データ処理回路８１において制御部８３が、記録対象の音楽データＤ１に対するデータ処理と、再生対象の暗号化音楽データＤ４に対するデータ処理とを実行するように要求されると、タイマ２９をリセットして計時を開始させると共に、第１のタスクを開始させる（ステップＳＰ８１及びステップＳＰ８２）。そしてデータ処理回路８１において制御部８３は、第１のタスクが終了すると、その時点にタイマ２９の計時している時刻に応じて第１タスク実行時間を検出すると共に、最大でも読出実行時間Ｔｍａｘとなるように任意に選定された第１第２タスク実行割当時間と、かかる第１タスク実行時間とに基づいて第２タスク実行割当時間を算出し、タイマ２９を一旦リセットしてその第２タスク実行割当時間に応じた割込実行時間を設定する（ステップＳＰ８３）。この状態でデータ処理回路８１において制御部８３は、タイマ２９の計時を開始させると共に、第２のタスクを開始させるようにして、当該第２のタスクを実行させながら割込実行時刻の検出と、かかる第２のタスクの終了とを待ち受ける（ステップＳＰ８４乃至ステップＳＰ８７）。
【０１６１】
そしてデータ処理回路８１の制御部８３は、第２のタスクの実行中に割込実行時刻を検出したとき、データ出力部６４のメモリ制御器６４Ｒを介して書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎの存在の有無を確認する（ステップＳＰ８８）。その結果、データ処理回路８１において制御部８３は、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在すると、その時点で実行中の第２のタスクに割り込みをかけて中断させ（ステップＳＰ８９）、タイマ２９を再びリセットして計時を開始させると共に、新たに第１のタスクを開始させる（ステップＳＰ８１及びステップＳＰ８２）。これに対してデータ処理回路８１の制御部８３は、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないと、タイマ２９を再びリセットして割込実行時刻を設定し直し計時を開始させると共に、実行中の第２のタスクをそのまま継続させて実行させる（ステップＳＰ８４及びステップＳＰ９１）。
【０１６２】
またデータ処理回路８１において制御部８３は、実行中の第２のタスクが、割込実行時刻の検出前に終了すると、データ出力部６４のメモリ制御器６４Ｒを介して書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎの存在の有無を確認する（ステップＳＰ９０）。その結果、データ処理回路８１の制御部８３は、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在すると、タイマ２９を再びリセットして計時を開始させると共に、新たに第１のタスクを開始させる（ステップＳＰ８１及びステップＳＰ８２）。これに対してデータ処理回路８１の制御部８３は、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないと、タイマ２９をリセットして割込実行時刻を設定し直し計時を開始させると共に、新たに第２のタスクを開始させる（ステップＳＰ８４及びステップＳＰ８５）。このようにしてデータ処理回路８１において制御部８３は、上述した一連の処理を繰り返し実行することで、記録対象の音楽データＤ１に対するデータ処理と、再生対象の暗号化音楽データＤ４に対するデータ処理とを全て終了する。
【０１６３】
従って記録再生装置８０では、データ処理回路８１において、順次第１第２タスク実行割当時間（すなわち、読出実行時間Ｔｍａｘが最大時間となるように任意に選定された時間）以内で、第２のタスクの実行中に割込実行時刻を検出したときや当該第２タスクが割込実行時刻の検出前に終了したときに、少なくとも３個以上の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか確認し、当該書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在すると、第１のタスクを実行して記憶単位音楽データＤ６を生成すると共に、かかる書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに対しその記憶単位音楽データＤ６を書き込むことができる。このため記録再生装置８０では、データ処理回路８１において、第１のタスクの開始当初に、各出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに対しそれぞれ、極力早い時点で記憶単位音楽データＤ６を書き込むことができると共に、ある程度の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに対し記憶単位音楽データＤ６を書き込んだ後でも、かかる出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが書込可能な状態となる毎に極力早い時点で記憶単位音楽データＤ６を追加で書き込むことができる。よって記録再生装置８０では、データ処理回路８１において、データ出力部６４の各出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎから記憶単位音楽データＤ６を順次途切れることなく連続して読み出すことができ、かくしてスピーカ１４から出力させる音楽が途切れることも確実に防止することができる。
【０１６４】
また記録再生装置８０では、データ処理回路８１において制御部８３が、タイマ２９に割込実行時間を設定して計時させることで当該割込実行時間を検出するものの、第１のタスクを実行する際に必ずかかるタイマ２９を一旦リセットして計時を開始させると共に、第１のタスクを開始させ、かかる第１のタスクが終了した時点でタイマ２９に対し第２タスク実行割当時間に応じた割込実行時刻を設定する。従って記録再生装置８０では、データ処理回路８１において、第１のタスクの実行中に割込実行時刻を検出するような状況になること未然にかつ確実に回避することができる。その結果、記録再生装置８０では、データ処理回路８１において、第１のタスクの実行中に、割込実行時刻の検出に起因するその時点で実行中のタスクを判別するような処理を何ら実行する必要がない分、当該第１のタスクを実行させているときの自己の処理負荷を低減させることができる。
【０１６５】
以上の構成によれば、記録再生装置８０では、データ処理回路８１において、タイマ２９をリセットして計時を開始させると共に、第１の優先度の第１のタスクを開始させ、当該第１のタスクが終了すると、タイマ２９を再びリセットして第１第２タスク実行割当時間から第１タスク実行時間を減算して得られる第２タスク実行時間に応じた割込実行時刻を設定し計時を開始させると共に、第１の優先度よりも低い第２の優先度の第２のタスクを開始させ、当該第２のタスクの実行中に割込実行時刻を検出したときには、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……６４Ｎが存在すると、実行中の第２のタスクに割り込みをかけて中断させ、タイマ２９を一旦リセットして計時を開始させる共に、新たに第１のタスクを開始させ、新たに第２のタスクを実行させ、第２のタスクが割込実行時刻の検出前に終了したときには、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在すると、タイマ２９を一旦リセットして計時を開始させると共に、新たに第１のタスクを開始させるようにした。従って記録再生装置８０では、第２のタスクを実行させていても、当該第２のタスクよりも高い第１の優先度の第１のタスクを実行させるときには、的確かつ確実に、実行中の第２のタスクに割り込みをかけて中断させると共に、新たに第１のタスクを実行させることができる。その結果、記録再生装置８０では、第１及び第２のタスクをこれらの優先度に応じて的確に実行することができる。
【０１６６】
これに加えて記録再生装置８０では、データ処理回路８１において、第１のタスクを実行する際に必ずかかるタイマ２９を一旦リセットして計時を開始させると共に、第１のタスクを開始させ、かかる第１のタスクが終了した時点でタイマ２９に対し第２タスク実行割当時間に応じた割込実行時刻を設定するため、第１のタスクの実行中に割込実行時刻を検出するような状況になること未然にかつ確実に回避することができる。その結果、記録再生装置８０では、データ処理回路８１において、第１のタスクの実行中に、割込実行時刻の検出に起因するその時点で実行中のタスクを判別するような処理を何ら実行する必要がない分、当該第１のタスクを実行させているときの自己の処理負荷を低減させることができる。そして記録再生装置８０では、割込実行時刻を検出したときに実行中のタスクを判別する必要がないため、第１及び第２のタスクの実行を制御するデータ処理制御プログラムを、このような判別のためのアルゴリズムを除いて構成することができ、かくしてデータ処理制御プログラムの構成を簡易化することができる。
【０１６７】
また記録再生装置８０では、データ処理回路８１において、第２のタスクの実行中に割込実行時刻を検出したときや、実行中の第２のタスクが割込実行時刻の検出前に終了したときに、その都度、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか確認するため、順次、第１第２タスク実行割当時間以内に書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するかを確認することができる。従って記録再生装置８０では、データ処理回路８１において、第１のタスクの開始当初に、極力早い時点で全ての出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに対しそれぞれ記憶単位音楽データＤ６を効率良く書き込むことができると共に、ある程度の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに対し記憶単位音楽データＤ６を書き込んだ後でも、こまめに書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか確認したうえで、これら出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに対し記憶単位音楽データＤ６を書き込むことができる。そして記録再生装置８０では、例えば中央処理ユニット５と、制御部８３との間で実行される制御命令の転送処理等のように、第１の優先度と同等又はそれ以上の優先度を割り当てたタスクが存在すると、第１のタスクも割り込みをかけて中断することになるが、仮に第１のタスクに割り込みをかけて中断したときでも、かかる構成により出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが書込可能な状態になると、当該書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに対し迅速に記憶単位音楽データＤ６を書き込むことができる。従って記録再生装置８０では、仮に第１のタスクよりも優先度の高いタスクが存在しても、データ出力部６４の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎから読み出すべき記憶単位音楽データＤ６が途切れることを極力回避するように当該第１のタスクを効率良く実行することができる。
【０１６８】
さらに記録再生装置８０では、データ処理回路８１において、実行中の第２のタスクが割込実行時刻の検出前に終了したときや第２のタスクの実行中に割込実行時刻を検出したときに、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないため、引き続き新たに第２のタスクを実行させる場合や第２の残タスクを継続して実行させる場合、これら第２のタスク及び第２の残タスクに対しそれぞれ第１第２タスク実行割当時間をそのまま第２タスク実行割当時間として割り当てる。このため記録再生装置８０では、データ処理回路８１において、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないとき、第２のタスク及び第２の残タスクに対し、割当可能な最大の第２タスク実行割当時間（すなわち、第１第２タスク実行割当時間）を割り当てることで、第１のタスクより優先度の低い第２のタスクについても、極力効率良く実行させることができる。
【０１６９】
なお上述した第７の実施の形態においては、データ処理回路８１において、実行中の第２のタスクが割込実行時刻の検出前に終了しても、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないために、引き続き新たに第２のタスクを実行させるとき、タイマ２９に対し割込実行時刻を設定し直して当該新たに第２のタスクを実行させるようにした場合について述べたが、本発明はこれに限らず、データ処理回路８１において、実行中の第２のタスクが割込実行時刻の検出前に終了しても、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないために、引き続き新たに第２のタスクを実行させるとき、タイマ２９に対し割込実行時刻を設定し直さずに当該新たに第２のタスクを実行させるようにしても良い。このようにすれば、新たに第２のタスクを実行させたとき、当該第２のタスクの開始時刻から第１第２タスク実行割当時間が経過するよりも早い時点に割込実行時刻（すなわち、１つ前の第２のタスクが実行される際にすでに設定されていた割込実行時刻）を検出して、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するかを確認することができ、かくして第１のタスクの開始当初、出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎに対して記憶単位音楽データＤ６をさらに効率良く書き込むことができる。因みにデータ処理回路７１において、実行中の第２のタスクが割込実行時刻の検出前に終了しても、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在しないために、引き続き新たに第２のタスクを実行させるとき、タイマ２９に対し、第１第２タスク実行割当時間よりも短い任意に選定された時間に応じて割込実行時刻を設定しても良い。このようにしても同様の効果を得ることができる。
【０１７０】
また上述した第７の実施の形態においては、第２のタスクが割込実行時刻の検出前に終了したとき、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在すると、第１のタスクを実行させるようにした場合について述べたが、本発明はこれに限らず、第２のタスクが割込実行時刻の検出前に終了したとき、書込可能な状態の出力バッファメモリ６４Ａ、６４Ｂ、……、６４Ｎが存在するか確認しないと共に、第１のタスクの実行にも移行せず、新たに第２のタスクを実行させるようにしても良い。
【０１７１】
（８）他の実施の形態
【０１７２】
なお上述した第１乃至第７の実施の形態においては、所定の第２のデータ単位の音楽データＤ１を順次圧縮符号化処理及び暗号化処理して暗号化音楽データＤ３を生成する一連の処理を第２のタスクとするようにした場合について述べたが、本発明はこれに限らず、例えば音楽データＤ１全体に対する圧縮符号化処理及び復号化処理等の一連の処理を第２のタスクとして、かかる第２タスクの処理時間を第１のタスクに対し格段的に長くするようにしても良い。このようにすれば、第１及び第２のタスクを交互に実行する場合、基本的には第２のタスクを常に割込実行の検出に応じて割り込みをかけて中断させるため、当該第２のタスクが割込実行の検出前に終了したときの処理をほとんど実行しないようにすることができ、かくして第１及び第２のタスクの実行を制御する際の処理負荷を大幅に低減させることができる。
【０１７３】
また上述した第１乃至第５の実施の形態においては、本発明によるデータ処理回路を、図１乃至図３３について上述した記録再生装置１、３０、４０、５０、６０、７０、８０内のデータ処理回路部１２、３１、４１、５１、６１、７１、８１に適用するようにした場合について述べたが、本発明はこれに限らず、映像データや写真画像データ、テキストデータ、ゲームプログラム等の種々のデータに対して再生処理、暗号化処理、圧縮符号化処理、復号処理等の種々のデータ処理を施すデータ処理回路、また再生装置に対し着脱可能に設けられる回路基板構成のデータ処理回路等のように、この他種々の構成のデータ処理回路に広く適用することができる。
【０１７４】
さらに上述した第１乃至第５の実施の形態においては、本発明による再生装置を、図１乃至図３３について上述した記録再生装置１、３０、４０、５０、６０、７０、８０に適用するようにした場合について述べたが、本発明はこれに限らず、データ処理回路を有するコンピュータや携帯電話機、ＰＤＡ（Personal Digital Assistance ）、ゲーム機器等のデータ処理装置、コンパクトディスクプレーヤ、ＤＶＤ（Digital Versatile Disc）プレーヤ等の再生装置、ハードディスクレコーダ等の記録再生装置、テレビジョン受像機等のように、この他種々の構成の再生装置に広く適用することができる。
【０１７５】
さらに上述した第１乃至第５の実施の形態においては、本発明によるデータ処理制御プログラムを、図１乃至図３３について上述したＤＳＰ２１、３２、４２、５２、６２、７２、８２内のメモリに予め記憶されたデータ処理制御プログラムに適用し、当該ＤＳＰ２１、３２、４２、５２、６２、７２、８２がそのデータ処理制御プログラムに従って図６、図１１、図１５、図２０、図２５、図３０、図３３について上述した第１乃至第７のデータ生成処理手順ＲＴ１乃至ＲＴ７を実行するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成のデータ処理制御プログラムを適用し、そのデータ処理制御プログラムが格納されたプログラム格納媒体を記録再生装置１、３０、４０、５０、６０、７０、８０やデータ処理回路部１２、３１、４１、５１、６１、７１、８１にインストールすることにより第１乃至第７のデータ生成処理手順ＲＴ１乃至ＲＴ７を実行するようにしても良い。
【０１７６】
さらに上述した第１乃至第５の実施の形態においては、第１の優先度の第１のデータ処理を実行する第１のデータ処理手段として、図１乃至図３３について上述したデータ処理回路部１２、３１、４１、５１、６１、７１、８１内のＤＳＰ２１、３２、４２、５２、６２、７２、８２の一部機能に相当する復号部２３及び２４伸張部を適用するようにした場合について述べたが、本発明はこれに限らず、音声及び画像等の再生対象のデータを復号処理及び又は伸張処理するＤＳＰや、マイクロホンを介して得られる音声データを記録用に圧縮符号化処理及び又は暗号化処理するＤＳＰ、またこれら再生対象のデータや記録用の音声データ及び画像データ等の種々のデータに対して第１の優先度の第１のデータ処理を実行するハードウェア構成のデータ処理回路等のように、この他種々の第１のデータ処理手段を広く適用することができる。
【０１７７】
さらに上述した第１乃至第５の実施の形態においては、第１の優先度よりも低い第２の優先度の第２のデータ処理を実行する第２のデータ処理手段として、図１乃至図３３について上述したデータ処理回路部１２、３１、４１、５１、６１、７１、８１内のＤＳＰ２１、３２、４２、５２、６２、７２、８２の一部機能に相当する鍵データ生成部２６及び圧縮符号化部２７並びに暗号化部２８を適用するようにした場合について述べたが、本発明はこれに限らず、暗号化処理及び又は復号処理に用いる鍵データを生成する鍵データ生成処理や、音声データ及び画像データを複写用に処理するＤＳＰ、またこれら音声データ及び画像データ等の種々のデータに対して第１の優先度よりも低い第２の優先度の第２のデータ処理を実行するハードウェア回路構成のデータ処理回路等のように、この他種々の構成の第２のデータ処理手段を広く適用することができる。
【０１７８】
さらに上述した第１乃至第５の実施の形態においては、第１のデータ処理手段に対し第１のデータ処理を開始させ、当該第１のデータ処理手段による第１のデータ処理が終了すると、第２のデータ処理手段に対し第２のデータ処理を開始させ、実行中の第２のデータ処理に対する割込実行を検出したとき、第２のデータ処理手段に対し実行中の第２のデータ処理に割り込みをかけて中断させると共に、第１のデータ処理手段に対し新たに第１のデータ処理を開始させるようにして第１及び第２のデータ処理手段を制御する制御手段として、図１乃至図３３について上述したデータ処理回路部１２、３１、４１、５１、６１、７１、８１内のＤＳＰ２１、３２、４２、５２、６２、７２、８２の一部機能に相当する制御部２２、３３、４３、５３、６３、７３、８３を適用するようにした場合について述べたが、本発明はこれに限らず、第１のデータ処理手段に対し第１のデータ処理を開始させ、当該第１のデータ処理手段による第１のデータ処理が終了すると、第２のデータ処理手段に対し第２のデータ処理を開始させ、実行中の第２のデータ処理に対する割込実行を検出したとき、第２のデータ処理手段に対し実行中の第２のデータ処理に割り込みをかけて中断させると共に、第１のデータ処理手段に対し新たに第１のデータ処理を開始させるようにして第１及び第２のデータ処理手段を制御するハードウェア回路構成の制御回路等のように、この他種々の制御手段を広く適用することができる。
【０１７９】
さらに上述した第１乃至第５の実施の形態においては、第１のデータ処理の実行により得られるデータを一時記憶する一時記憶手段として、図１乃至図３３について上述したデータ処理回路部１２、３１、４１、５１、６１、７１、８１内のＤＳＰ２１、３２、４２、５２、６２、７２、８２に設けられた２個又は少なくとも３個の出力バッファメモリ２５Ａ、２５Ｂ、３４Ａ、……、３４Ｎ、４４Ａ、４４Ｂ、５４Ａ、……、５４Ｎ、６４Ａ、……、６４Ｎを有するデータ出力部２５、３４、４４、５４、６４を適用するようにした場合について述べたが、本発明はこれに限らず、ＤＳＰ２１、３２、４２、５２、６２、７２、８２の外部又はデータ処理回路部１２、３１、４１、５１、６１、７１、８１の外部に設けられた、少なくとも２個以上のバッファメモリ又は少なくとも２箇所以上の記憶領域を有する１個のメモリ等のように、この他種々の一時記憶手段を広く適用することができる。
【０１８０】
さらに上述した第１乃至第５の実施の形態においては、データ処理回路に対し、入力データを入力するデータ入力手段として、図１乃至図３３について上述した記録再生装置１、３０、４０、５０、６０、７０、８０の中央処理ユニット５を適用するようにした場合について述べたが、本発明はこれに限らず、マイクロプロセッサ等のように、この他種々のデータ入力手段を広く適用することができる。
【０１８１】
さらに上述した第１乃至第５の実施の形態においては、データ処理回路から入力データに対し第１のデータ処理を実行して出力された出力データを再生する再生手段として、図１乃至図３３について上述した音声処理部１３及びスピーカ１４を適用するようにした場合について述べたが、本発明はこれに限らず、映画や写真等の画像データを再生処理する表示制御回路やディスプレイ等のように、この他種々の再生手段を広く適用することができる。
【産業上の利用可能性】
【０１８２】
本発明は、パーソナルコンピュータ及び音楽再生装置等の再生装置に設けられたデータ処理回路に利用することができる。
【図面の簡単な説明】
【０１８３】
【図１】本発明による記録再生装置の回路構成の第１の実施の形態を示すブロック図である。
【図２】データ処理回路の構成を示すブロック図である。
【図３】データ出力部の構成を示すブロック図である。
【図４】第１のタスクと第２のタスクとを単に交互に実行した場合の記憶単位音楽データの出力の説明に供する略線図である。
【図５】第１のタスクと第２のタスクとの実行の説明に供する略線図である。
【図６】第１のデータ処理制御処理手順を示すフローチャートである。
【図７】第２の実施の形態による記録再生装置の回路構成を示すブロック図である。
【図８】データ処理回路の構成を示すブロック図である。
【図９】データ出力部の構成を示すブロック図である。
【図１０】第１のタスクと第２のタスクとの実行の説明に供する略線図である。
【図１１】第２のデータ処理制御処理手順を示すフローチャートである。
【図１２】第３の実施の形態による記録再生装置の回路構成を示すブロック図である。
【図１３】データ処理回路の構成を示すブロック図である。
【図１４】データ出力部の構成を示すブロック図である。
【図１５】第３のデータ処理制御処理手順を示すフローチャートである。
【図１６】第４の実施の形態による記録再生装置の回路構成を示すブロック図である。
【図１７】データ処理回路の構成を示すブロック図である。
【図１８】データ出力部の構成を示すブロック図である。
【図１９】第１のタスクと第２のタスクとの実行の説明に供する略線図である。
【図２０】第４のデータ処理制御処理手順を示すフローチャートである。
【図２１】第５の実施の形態による記録再生装置の回路構成を示すブロック図である。
【図２２】データ処理回路の構成を示すブロック図である。
【図２３】データ出力部の構成を示すブロック図である。
【図２４】第１のタスクと第２のタスクとの実行の説明に供する略線図である。
【図２５】第５のデータ処理制御処理手順を示すフローチャートである。
【図２６】第６の実施の形態による記録再生装置の回路構成を示すブロック図である。
【図２７】データ処理回路の構成を示すブロック図である。
【図２８】第１のタスクと第２のタスクとの実行の説明（１）に供する略線図である。
【図２９】第１のタスクと第２のタスクとの実行の説明（２）に供する略線図である。
【図３０】第６のデータ処理制御処理手順を示すフローチャートである。
【図３１】第７の実施の形態による記録再生装置の回路構成を示すブロック図である。
【図３２】データ処理回路の構成を示すブロック図である。
【図３３】第７のデータ処理制御処理手順を示すフローチャートである。
【符号の説明】
【０１８４】
１、３０、４０、５０、６０、７０、８０……記録再生装置、５……中央処理ユニット、１２、３１、４１、５１、６１、７１、８１……データ処理回路、１３……音声処理部、１４……スピーカ、２１、３２、４２、５２、６２、７２、８２……ＤＳＰ、２２、３３、４３、５３、６３、７３、８３……制御部、２３……復号部、２４……伸張部、２５、３４、４４、５４、６４……データ出力部、２５Ａ、２５Ｂ、３４Ａ、……、３４Ｎ、４４Ａ、４４Ｂ、５４Ａ、……、５４Ｎ、６４Ａ、……、６４Ｎ……出力バッファメモリ、２６……鍵データ生成部、２７……圧縮符号化部、２８……暗号化部、４４Ｅ、５４Ｒ、６４Ｒ……メモリ制御器、２９……タイマ、Ｄ３、Ｄ４……暗号化音楽データ、Ｄ１、Ｄ６……音楽データ、Ｔｍａｘ……読出実行時間、Ｔｔｅ１、Ｔｔｅ２……第１第２タスク実行時間、Ｔｅｘ１、Ｔｅｘ２……割当残時間、ＲＴ１……第１のデータ処理制御処理手順、ＲＴ２……第２のデータ処理制御処理手順、ＲＴ３……第３のデータ処理制御処理手順、ＲＴ４……第４のデータ処理制御処理手順、ＲＴ５……第５のデータ処理制御処理手順、ＲＴ６……第６のデータ処理制御処理手順、ＲＴ７……第７のデータ処理制御処理手順。
【図１】
2006244539.tif 000003
【図２】
2006244539.tif 000004
【図３】
2006244539.tif 000005
【図４】
2006244539.tif 000006
【図５】
2006244539.tif 000007
【図６】
2006244539.tif 000008
【図７】
2006244539.tif 000009
【図８】
2006244539.tif 000010
【図９】
2006244539.tif 000011
【図１０】
2006244539.tif 000012
【図１１】
2006244539.tif 000013
【図１２】
2006244539.tif 000014
【図１３】
2006244539.tif 000015
【図１４】
2006244539.tif 000016
【図１５】
2006244539.tif 000017
【図１６】
2006244539.tif 000018
【図１７】
2006244539.tif 000019
【図１８】
2006244539.tif 000020
【図１９】
2006244539.tif 000021
【図２０】
2006244539.tif 000022
【図２１】
2006244539.tif 000023
【図２２】
2006244539.tif 000024
【図２３】
2006244539.tif 000025
【図２４】
2006244539.tif 000026
【図２５】
2006244539.tif 000027
【図２６】
2006244539.tif 000028
【図２７】
2006244539.tif 000029
【図２８】
2006244539.tif 000030
【図２９】
2006244539.tif 000031
【図３０】
2006244539.tif 000032
【図３１】
2006244539.tif 000033
【図３２】
2006244539.tif 000034
【図３３】
2006244539.tif 000035