(57)【要約】【課題】リソースへのアクセス要求が発生していない状態でも、最低必要なアクセスバンド幅を維持するデータ転送制御装置および方法を提供する。【解決手段】リソース転送バス(20)の状態が“待機中”であることを空時間監視部(7)が検知すると(ST10でNo)、分割転送指示部(6)は、単位時間(T)に必要なデータ転送量(M)の転送完了時間を分割なし(T0)，分割あり(T1)のそれぞれの場合について予測し(ST20,ST30)、その結果に応じて分割転送指示(21,22,23)をマスタ(1,2,3)に与える(ST40,ST50)。分割転送指示(21,22,23)を受けたマスタ(1,2,3)は、その時点で蓄積されているデータを共有リソース(5)へ転送し(分割転送)、その後は平均転送レート(TR1)にて共有リソース(5)へのデータ転送を実行する。これにより、単位時間(T)内に所定量(M)のデータをリソース(5)に転送できなくなる事態を防ぐことができる。【選択図】図１
2010055541.tif 000002
【特許請求の範囲】
【請求項１】
マスタとリソースとの間のデータ転送を制御する装置であって、
リソース制御部と、
分割転送指示部と、
を備え、
前記マスタは、
所定の単位時間内に前記リソースに転送すべきデータ量が決められており、
各単位時間の開始から所定の処理を実行し、前記リソースへ転送すべきデータを逐次バッファリングし、バッファリングされたデータが一定量に達するとアクセス要求を前記リソース制御部に発行し、これに対するアクセス許可を前記リソース制御部から受け取ると、前記バッファリングされた一定量のデータを前記リソースに転送し、
前記リソース制御部は、前記マスタのアクセス要求やアクセス許可の状態，前記マスタから前記リソースへのデータ転送サイズ等を含む調停情報を、随時、前記分割転送指示部に通知し、
前記分割転送指示部は、前記リソース制御部からの調停情報を受けて、前記マスタについて経過時間とデータ転送量との関係の推移を随時計算し、
前記分割転送指示部は、前記マスタの前記リソースへのアクセス状態を監視する空時間監視部を含み、
前記分割転送指示部は、前記マスタから前記共有リソースへのアクセスがない状態を前記空時間監視部が検知すると、前記マスタが前記単位時間内に前記リソースに転送すべきデータ量の転送完了時間を予測し、その結果に応じて分割転送指示を前記マスタに与え、
前記マスタは、前記分割転送指示部から分割転送指示を受けると、前記アクセス要求／アクセス許可の手順に関わらず、その時点で蓄積されているデータを前記リソースへ転送する、
ことを特徴とするデータ転送制御装置。
【請求項２】
請求項１において、
前記分割転送指示部は、
前記マスタから前記共有リソースへのアクセスがない状態を前記空時間監視部が検知すると、下記[数１]に従って転送完了時間(T0)を計算し、下記[数２]に従って転送完了時間(T1)を計算し、
[数１]
T0＝t＋(M−K)/TR0
t…単位時間(T)の開始からの現在までの経過時間，
M…単位時間(T)内に前記リソースに転送すべきデータ量，
K…単位時間(T)の開始から現在までの間に前記リソースに転送されたデータ量，
TR0…単位時間(T)の開始から現在までの平均転送レート，
[数２]
T1＝t＋BF/MB＋(M−K)/TR1
t…単位時間(T)の開始からの現在までの経過時間，
M…単位時間(T)内に前記リソースに転送すべきデータ量，
K…単位時間(T)の開始から現在までの間に前記リソースに転送されたデータ量，
BF…現在の時点で前記マスタにおいてバッファリングされているデータ量，
MB…前記リソースのアクセスバンド幅，
TR1…平均転送レート，
前記分割転送指示部は、
前記転送完了時間(T0,T1)の比較結果に応じて前記分割転送指示を前記マスタに与える、
ことを特徴とするデータ転送制御装置。
【請求項３】
請求項２において、
前記分割転送指示部は、
前記マスタのバッファ準備レート(BFR)を計算し、このバッファ準備レート(BFR)を用いて、現在の時点で前記マスタにおいてバッファリングされているデータ量(BF)を計算するバッファ量監視部をさらに含む、
ことを特徴とするデータ転送制御装置。
【請求項４】
請求項２において、
前記分割転送指示部は、
前記マスタの平均転送レート(TR0,TR1)を計算する転送レート監視部をさらに含む、
ことを特徴とするデータ転送制御装置。
【請求項５】
請求項２において、
前記分割転送指示部は、
前記マスタのバッファ準備レート(BFR)を計算し、このバッファ準備レート(BFR)を用いて、現在の時点で前記マスタにおいてバッファリングされているデータ量(BF)を計算するバッファ量監視部と、
前記マスタの平均転送レート(TR0,TR1)を計算する転送レート監視部と、
をさらに含む、
ことを特徴とするデータ転送制御装置。
【請求項６】
請求項１において、
前記データ転送制御装置は、
複数のマスタが１つのリソースを共有するシステムにおいて各マスタとリソースとの間のデータ転送を制御する装置であり、
前記各マスタは、
前記単位時間内に前記リソースに転送すべきデータ量が決められており、
各単位時間の開始から所定の処理を実行し、前記リソースへ転送すべきデータを逐次バッファリングし、バッファリングされたデータが一定量に達するとアクセス要求を前記リソース制御部に発行し、これに対するアクセス許可を前記リソース制御部から受け取ると、前記バッファリングされた一定量のデータを前記リソースに転送し、
前記リソース制御部は、前記各マスタのアクセス要求やアクセス許可の状態，前記各マスタから前記リソースへのデータ転送サイズ等を含む調停情報を、随時、前記分割転送指示部に通知し、
前記分割転送指示部は、前記リソース制御部からの調停情報を受けて、前記各マスタについて経過時間とデータ転送量との関係の推移を随時計算し、
前記分割転送指示部は、前記各マスタの前記リソースへのアクセス状態を監視する空時間監視部を含み、
前記分割転送指示部は、前記複数のマスタのいずれからも前記共有リソースへのアクセスがない状態を前記空時間監視部が検知すると、前記各マスタが前記単位時間内に前記リソースに転送すべきデータ量の転送完了時間を予測し、その結果に応じて分割転送指示を前記複数のマスタのいずれかに与え、
前記各マスタは、前記分割転送指示部から分割転送指示を受けると、前記アクセス要求／アクセス許可の手順に関わらず、その時点で蓄積されているデータを前記リソースへ転送する、
ことを特徴とするデータ転送制御装置。
【請求項７】
マスタとリソースとの間のデータ転送を制御する方法であって、
前記マスタは、
所定の単位時間内に前記リソースに転送すべきデータ量が決められており、
各単位時間の開始から所定の処理を実行し、前記リソースへ転送すべきデータを逐次バッファリングし、バッファリングされたデータが一定量に達するとアクセス要求を発行し、これに対するアクセス許可を受け取ると、前記バッファリングされた一定量のデータを前記リソースに転送するものであり、
前記制御方法は、
前記マスタのアクセス要求やアクセス許可の状態，前記マスタから前記リソースへのデータ転送サイズ等を含む調停情報を、随時、取得するステップ(ａ)と、
前記ステップ(ａ)において取得された調停情報に基づいて、前記マスタについて経過時間とデータ転送量との関係の推移を随時計算するステップ(ｂ)と、
前記マスタの前記リソースへのアクセス状態を監視するステップ(ｃ)と、
前記マスタから前記共有リソースへのアクセスがない状態が前記ステップ(ｃ)によって検知されると、前記マスタが前記単位時間内に前記リソースに転送すべきデータ量の転送完了時間を予測し、その結果に応じて分割転送指示を前記マスタに与え、その時点で前記マスタに蓄積されているデータを前記アクセス要求／アクセス許可の手順に関わらず前記リソースへ転送させるステップ(ｄ)と、
を備える、
ことを特徴とするデータ転送制御方法。
【請求項８】
複数の信号処理ブロックが１つの共有メモリを共有している光ディスク装置であって、
前記複数の信号処理ブロックは、
光ディスクから読み出されたデータを復調して前記共有メモリに格納する復調処理部と、
前記共有メモリに格納された復調済みデータに対してECCブロック単位で誤り訂正処理を行う格納するECC処理部と、
誤り訂正済みデータをホスト側へ送信するための制御を行うインターフェイス部と、
を含み、
前記光ディスク装置は、
前記各信号処理ブロックと前記共有メモリと間のデータ転送を制御する共有メモリコントローラと、
分割転送指示部と、
を備え、
前記各信号処理ブロックは、
前記単位時間内に前記共有メモリに転送すべきデータ量が決められており、
各単位時間の開始から所定の処理を実行し、前記共有メモリへ転送すべきデータを逐次バッファリングし、バッファリングされたデータが一定量に達するとアクセス要求を前記共有メモリコントローラに発行し、これに対するアクセス許可を前記共有メモリコントローラから受け取ると、前記バッファリングされた一定量のデータを前記共有メモリに転送し、
前記共有メモリコントローラは、前記各信号処理ブロックのアクセス要求やアクセス許可の状態，前記各信号処理ブロックから前記共有メモリへのデータ転送サイズ等を含む調停情報を、随時、前記分割転送指示部に通知し、
前記分割転送指示部は、前記共有メモリコントローラからの調停情報を受けて、前記各信号処理ブロックについて経過時間とデータ転送量との関係の推移を随時計算し、
前記分割転送指示部は、前記各信号処理ブロックの前記共有メモリへのアクセス状態を監視する空時間監視部を含み、
前記分割転送指示部は、前記複数の信号処理ブロックのいずれからも前記共有メモリへのアクセスがない状態を前記空時間監視部が検知すると、前記各信号処理ブロックが前記単位時間内に前記共有メモリに転送すべきデータ量の転送完了時間を予測し、その結果に応じて分割転送指示を前記複数の信号処理ブロックのいずれかに与え、
前記各信号処理ブロックは、前記分割転送指示部から分割転送指示を受けると、前記アクセス要求／アクセス許可の手順に関わらず、その時点で蓄積されているデータを前記共有メモリへ転送する、
ことを特徴とする光ディスク装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マスタとリソースとの間のデータ転送を制御する技術に関する。
【背景技術】
【０００２】
DVDやBDドライブにおいて、フォーマットの解読や誤り訂正信号処理は、共有メモリを使用して行われている。また、各信号処理部(フォーマットの解読や誤り訂正信号処理等)は、途切れなく録画再生を行うために、最低限必要なメモリアクセスバンド幅の確保が必要になる。しかし、録画再生での倍速が年々伸びていることにより、共有メモリへのバンド幅が不足するため、各信号処理部に対して必要なメモリアクセスバンド幅を維持できない。
【０００３】
そこで、メモリアクセスへの調停を行い、各信号処理部が必要とするメモリアクセスバンド幅を確保する共有メモリ制御方法が特許文献１に開示されている。特許文献１では、バスマスタ(100,101,102)は、共有メモリ(104)にアクセスする場合、共有メモリアクセス要求(107,109,112)を共有メモリコントローラ(103)に発生する。共有メモリコントローラ(103)は、アクセス要求を行ったバスマスタに対して、共有メモリアクセス権を与える。また、複数のバスマスタ(100,101,102)から同時に共有メモリアクセス要求(107,109,112)が発生した場合、それぞれのバスマスタ(100,101,102)が必要なメモリアクセスバンド幅を確保するため、随時、サイクルの終了前に次のメモリサイクル制御を決定することで、各バスマスタが最低必要とするメモリアクセスバンド幅を維持する(上記の各参照符号は特許文献１の図１に示されたものである)。
【特許文献１】特開平11-39207号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、各バスマスタからメモリアクセス要求信号が発生している場合は、メモリアクセスバンド幅を保証するように共有メモリコントローラが調停を行うことができるが、バスマスタからメモリアクセス要求がない状態では、メモリアクセスの調停ができず、メモリアクセスバンド幅を維持できないといった課題が発生する。
【０００５】
そこで、本発明は、リソースへのアクセス要求が発生していない状態でも、最低必要なアクセスバンド幅を維持することができるデータ転送制御装置および方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明によるデータ転送制御装置は、マスタとリソースとの間のデータ転送を制御する装置であって、リソース制御部と、分割転送指示部とを備え、前記マスタは、所定の単位時間内に前記リソースに転送すべきデータ量が決められており、各単位時間の開始から所定の処理を実行し、前記リソースへ転送すべきデータを逐次バッファリングし、バッファリングされたデータが一定量に達するとアクセス要求を前記リソース制御部に発行し、これに対するアクセス許可を前記リソース制御部から受け取ると、前記バッファリングされた一定量のデータを前記リソースに転送し、前記リソース制御部は、前記マスタのアクセス要求やアクセス許可の状態，前記マスタから前記リソースへのデータ転送サイズ等を含む調停情報を、随時、前記分割転送指示部に通知し、前記分割転送指示部は、前記リソース制御部からの調停情報を受けて、前記マスタについて経過時間とデータ転送量との関係の推移を随時計算し、前記分割転送指示部は、前記マスタの前記リソースへのアクセス状態を監視する空時間監視部を含み、前記分割転送指示部は、前記マスタから前記共有リソースへのアクセスがない状態を前記空時間監視部が検知すると、前記マスタが前記単位時間内に前記リソースに転送すべきデータ量の転送完了時間を予測し、その結果に応じて分割転送指示を前記マスタに与え、前記マスタは、前記分割転送指示部から分割転送指示を受けると、前記アクセス要求／アクセス許可の手順に関わらず、その時点で蓄積されているデータを前記リソースへ転送する、ことを特徴とする。
【発明の効果】
【０００７】
本発明によれば、マスタからリソースへのアクセス要求がない場合でも、最低限必要なアクセスバンド幅を維持し、かつ、リソースの使用効率を上げることができる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の実施形態について図面を参照して説明する。なお、図面において実質的に同一の構成要素には同じ参照符号を付けてその説明は繰り返さない。
【０００９】
(第１の実施形態)
図１は、本発明の第１の実施形態によるシステムの構成例を示すブロック図である。このシステムは、複数(ここでは３つ)のマスタ(1,2,3)と、リソース制御部(4)と、共有リソース(5)と、分割転送指示部(6)とを備えている。このシステムでは、複数のマスタ(1,2,3)が１つのリソース(5)を共有している。各マスタ(1,2,3)は、例えば、マイクロプロセッサ，DSP，DMAコントローラ等である。共有リソース(5)は、例えば、SDRAMなどのメモリ，I/Oコントローラ等である。
【００１０】
各マスタ(1,2,3)は、共有リソース(5)へアクセスする場合、アクセス要求(11,12,13)をリソース制御部(4)に伝える。アクセス要求(11,12,13)を受け取ったリソース制御部(4)は、アクセス要求(11,12,13)のあるマスタ(1,2,3)のどれかを選択し、選択したマスタに対してアクセス許可(14,15,16)を発行する。アクセス許可(14,15,16)を受けたマスタ(1,2,3)は、転送データバス(17,18,19)，リソース制御部(4)，リソース転送データバス(20)を介して共有リソース(5)にアクセスする。
【００１１】
リソース制御部(4)は、各マスタ(1,2,3)の調停情報を、随時、分割転送指示部(6)に通知する。各マスタ(1,2,3)の調停情報には、各マスタ(1,2,3)のアクセス要求(11,12,13)やアクセス許可(14,15,16)の状態、各マスタ(1,2,3)から共有リソース(5)へのデータ転送サイズ等が含まれる。リソース制御部(4)からの調停情報を受けて、分割転送指示部(6)は、各マスタ(1,2,3)について経過時間とデータ転送量との関係の推移を随時計算する。
【００１２】
分割転送指示部(6)は空時間監視部(7)を含む。空時間監視部(7)は、リソース転送バス(20)の状態(“使用中”か“待機中”か)を、随時、モニタする。“使用中”とは、マスタ(1,2,3)のいずれかが共有リソース(5)へアクセスしている状態のことであり、“待機中”とは、マスタ(1,2,3)のいずれからも共有リソース(5)へのアクセスがない状態のことである。なお、ここではリソース転送バス(20)の状態を空時間監視部(7)がモニタしているが、リソース転送バス(20)の状態を示す情報をリソース制御部(4)から空時間監視部(7)に随時通知するようにしてもよい。
【００１３】
リソース転送バス(20)の状態が“待機中”であることを空時間監視部(7)が検知すると、分割転送指示部(6)は、単位時間に必要なデータ転送量の転送完了時間を予測し、その結果に応じて分割転送指示(21,22,23)をマスタ(1,2,3)に与える。分割転送指示(21,22,23)を受けたマスタ(1,2,3)は、その時点で蓄積されているデータを共有リソース(5)へ転送する(これらの処理の詳細については後述する)。
【００１４】
次に、本実施形態によるシステムの動作について説明する。なお、ここでは本発明の特徴を分かりやすく説明するために、複数のマスタ(1,2,3)のうちの１つのみがリソース(5)にアクセスする状況を想定して説明する。
【００１５】
本システムにおいて各マスタ(1,2,3)は、単位時間(T)内に実行すべき処理量が決められている。また、単位時間(T)内にリソース(5)に転送すべきデータ量(M)がこの処理量に基づいて決められている。図２に例示したように、各マスタ(1,2,3)は、各単位時間(T)の開始(t1)から所定の処理を実行し、共有リソース(5)へ転送すべきデータを逐次バッファリングする(転送データ準備)。バッファリングされたデータが一定量に達すると各マスタ(1,2,3)は、アクセス要求(11,12,13)をリソース制御部(4)に発行し(REQ)、これに対するアクセス許可(14,15,16)をリソース制御部(4)から受け取る(ACK)。アクセス許可(14,15,16)を受けた各マスタ(1,2,3)は、バッファリングされたデータを、転送データバス(17,18,19)，リソース制御部(4)，リソース転送データバス(20)を介して共有リソース(5)に転送する(t2〜t3，データ転送)。各マスタ(1,2,3)は、上記(転送データ準備),(REQ/ACK),(データ転送)を繰り返し実行し、単位時間(T)内に所定量(M)のデータをリソース(5)に転送する。そして各マスタ(1,2,3)は単位時間(T)における上記処理を繰り返し実行する。
【００１６】
単位時間(T)内における各マスタ(1,2,3)の状態は、リソース制御部(4)から分割転送指示部(6)に随時通知される。これに基づいて分割転送指示部(6)は、各マスタ(1,2,3)について、図２のグラフに示すような経過時間とデータ転送量の関係を随時把握している。
【００１７】
上述の通り、各マスタ(1,2,3)は、アクセス要求(11,12,13)を発行し(REQ)、これに対するアクセス許可(14,15,16)を受け取ってから(ACK)、バッファデータを共有リソース(5)に転送する。しかしながら、例えば図３に例示したように、何らかの事情により(転送データ準備),(REQ/ACK)の時間が長くなる場合などには、単位時間(T)内に所定量(M)のデータをリソース(5)に転送できなくなる。本実施形態では上記のような課題を解決することを目的としている。以下、図４のフローチャートを参照しつつ説明する。
【００１８】
上述の通り、分割転送指示部(6)の空時間監視部(7)は、リソース転送バス(20)の状態(“使用中”か“待機中”か)を、随時、モニタしている(ST10)。リソース転送バス(20)の状態が“使用中”，すなわち，マスタ(1,2,3)のいずれかが共有リソース(5)へアクセスしている状態のとき(ST10でYes)はステップ(ST60)にすすみ、リソース転送バス(20)の状態が“待機中”，すなわち，マスタ(1,2,3)のいずれからも共有リソース(5)へのアクセスがない状態のとき(ST10でNo)はステップ(ST20)にすすむ。
【００１９】
リソース転送バス(20)の状態が“待機中”であることを空時間監視部(7)が検知すると(ST10でNo)、分割転送指示部(6)は、分割なしでの転送完了時間(T0)を下記[数１]に従って計算する(ST20)。
【００２０】
[数１]
T0＝t＋(M−K)/TR0
上記[数１]について図５(ａ)を参照しつつ説明する。図５(ａ)は、図２同様、各マスタ(1,2,3)の単位時間(T)内における経過時間とデータ転送量の関係の一例を示す図である。[数１]において、tは、単位時間(T)の開始からの現在までの経過時間を示している。Mは、単位時間(T)内に共有リソース(5)に転送すべきデータ量を示している。Kは、単位時間(T)の開始から現在までの間に共有リソース(5)に転送されたデータ量を示している。TR0は、単位時間(T)の開始から現在までの平均転送レートを示している。図５(ａ)から分かるように、[数１]の転送完了時間(T0)は、これ以降も現在までの平均転送レート(TR0)で共有リソース(5)へのデータ転送を実行すると仮定した場合の、単位時間(T)の開始からデータ量(M)を転送完了するまでの時間を示している。平均転送レート(TR0)でのデータ転送とは、図２に例示したように、(転送データ準備),(REQ/ACK),(データ転送)を繰り返し実行しデータを転送することである。
【００２１】
続いて分割転送指示部(6)は、分割ありでの転送完了時間(T1)を下記[数２]に従って計算する(ST30)。
【００２２】
[数２]
T1＝t＋BF/MB＋(M−K)/TR1
上記[数２]について図５(ｂ)を参照しつつ説明する。図５(ｂ)も、図２同様、各マスタ(1,2,3)の単位時間(T)内における経過時間とデータ転送量の関係の一例を示す図である。[数２]において、BFは、現在の時点で各マスタ(1,2,3)においてバッファリングされているデータ量(分割転送サイズ)を示している。MBは、リソース転送バス(20)のバンド幅を示している。TR1は、平均転送レートを示している。図５(ｂ)から分かるように、[数２]の転送完了時間(T1)は、現在の時点で各マスタ(1,2,3)においてバッファリングされているデータ(BF)を即座に共有リソース(5)に転送し(分割転送)、その後は平均転送レート(TR1)で共有リソース(5)へのデータ転送を実行すると仮定した場合の、単位時間(T)の開始からデータ量(M)を転送完了するまでの時間を示している。平均転送レート(TR1)でのデータ転送とは、図２に例示したように、(転送データ準備),(REQ/ACK),(データ転送)を繰り返し実行しデータを転送することである。
【００２３】
次に分割転送指示部(6)は、上記ステップ(ST20,ST30)にて得られたT0,T1について、T1＜T0であるか否かを判断する(ST40)。T1＜T0であるときはステップ(ST50)にすすみ、T1＜T0ではないときはステップ(ST60)にすすむ。
【００２４】
ここで、T1＜T0であるとは、例えば図５に示すような状況である。この場合、図５(ａ)に例示のように、これ以降も平均転送レート(TR0)で共有リソース(5)へのデータ転送を実行すると、単位時間(T)の開始からデータ量(M)を転送完了するまでの時間(T0)が単位時間(T)を超えてしまう。すなわち、転送すべきデータ量(M)を単位時間(T)内にリソース(5)に転送できない。一方、図５(ｂ)に例示のように、現在の時点で各マスタ(1,2,3)においてバッファリングされているデータ(BF)を即座に共有リソース(5)に転送し、その後は平均転送レート(TR1)で共有リソース(5)へのデータ転送を実行すると、単位時間(T)の開始からデータ量(M)を転送完了するまでの時間(T1)は単位時間(T)内に収まる。したがって、T1＜T0であるとき、分割転送指示部(6)は、分割転送指示(21,22,23)をマスタ(1,2,3)に与える(ST50)。分割転送指示(21,22,23)を受けたマスタ(1,2,3)は、現在の時点でバッファリングされているデータ(BF)を即座に共有リソース(5)に転送し(分割転送)、その後は平均転送レート(TR1)にて共有リソース(5)へのデータ転送を実行する。
【００２５】
一方、T1＜T0ではないとは、例えば図６に示すような状況である。この場合、図６(ａ)に例示のように、これ以降も平均転送レート(TR0)で共有リソース(5)へのデータ転送を実行すると、単位時間(T)の開始からデータ量(M)を転送完了するまでの時間(T0)は単位時間(T)内に収まる。一方、図６(ｂ)に例示のように、現在の時点で各マスタ(1,2,3)においてバッファリングされているデータ(BF)を即座に共有リソース(5)に転送し、その後は平均転送レート(TR1)で共有リソース(5)へのデータ転送を実行すると、単位時間(T)の開始からデータ量(M)を転送完了するまでの時間(T1)が単位時間(T)を超えてしまう。すなわち、転送すべきデータ量(M)を単位時間(T)内にリソース(5)に転送できない。したがって、T1＜T0ではないとき、分割転送指示部(6)は、分割転送指示(21,22,23)をマスタ(1,2,3)に与えない。ゆえにマスタ(1,2,3)は、これ以降も現在までの平均転送レート(TR0)で共有リソース(5)へのデータ転送を実行する。
【００２６】
次に分割転送指示部(6)は、単位時間(T)の開始からの現在までの経過時間(t)が単位時間(T)以下であるか否かを判断する(ST60)。経過時間(t)が単位時間(T)以下であるとき(ST60でYes)はステップ(ST10)に戻り、そうでないとき(ST60でNo)はステップ(ST70)にすすみ、経過時間(t)をリセットした後にステップ(ST10)に戻る。
【００２７】
以上のように、本実施形態では、リソース転送バス(20)の状態が“待機中”であることを空時間監視部(7)が検知すると(ST10でNo)、分割転送指示部(6)は、単位時間(T)に必要なデータ転送量(M)の転送完了時間を分割なし(T0)，分割あり(T1)のそれぞれの場合について予測し(ST20,ST30)、その結果に応じて分割転送指示(21,22,23)をマスタ(1,2,3)に与える(ST40,ST50)。分割転送指示(21,22,23)を受けたマスタ(1,2,3)は、その時点で蓄積されているデータを共有リソース(5)へ転送し(分割転送)、その後は平均転送レート(TR1)にて共有リソース(5)へのデータ転送を実行する。これにより、単位時間(T)内に所定量(M)のデータをリソース(5)に転送できなくなる事態を防ぐことができる。
【００２８】
以上では、本発明の特徴を分かりやすく説明するために、複数のマスタ(1,2,3)のうちの１つのみがリソース(5)にアクセスする状況を想定して説明したが、複数のマスタ(1,2,3)が共有リソース(5)にアクセスする状況では、図７に示すような処理の流れになる。
【００２９】
図７に示すように、リソース転送バス(20)の状態が“待機中”であることを空時間監視部(7)が検知すると(ST10でNo)、分割転送指示部(6)は、各マスタ(1,2,3)ごとに上述のステップ(ST20〜ST40)の処理を実行する。そしてステップ(ST50)において、分割転送指示部(6)は、T1＜T0である(ST40でYes)と判断されたマスタ(1,2,3)のうちT1が最小であるマスタに分割転送指示(21,22,23)を与える。
【００３０】
(第２の実施形態)
図８は、本発明の第２の実施形態によるシステムの構成例を示すブロック図である。このシステムは、図１に示したシステムの構成例と比べると、分割転送指示部(6)内にバッファ量監視部(8)を備えている点が異なっている。バッファ量監視部(8)は、各マスタ(1,2,3)のバッファ準備レート(BFR)を計算し、このバッファ準備レート(BFR)を用いて、各マスタ(1,2,3)においてバッファリングされているデータ(BF)を計算する。
【００３１】
次に、本実施形態によるシステムの動作について説明する。ここでも本発明の特徴を分かりやすく説明するために、複数のマスタ(1,2,3)のうちの１つのみがリソース(5)にアクセスする状況を想定し、図９を参照しつつ説明する。
【００３２】
リソース転送バス(20)の状態が“待機中”であることを空時間監視部(7)が検知すると(ST10でNo)、バッファ量監視部(8)は、現在の時点で各マスタ(1,2,3)においてバッファリングされているデータ量(BF)を下記[数３]に従って計算する。
【００３３】
[数３]
BF＝BFR×BT
上記[数３]において、BFRはバッファ準備レートを示している。バッファ準備レート(BFR)は、各マスタ(1,2,3)においてデータがバッファリングされる速度を示している。BTは、バッファ準備時間を示している。バッファ準備時間(BT)は、例えば、図２に示した(転送データ準備)期間の開始から現在までの時間を示している。
【００３４】
なお、第１の実施形態においても、ステップ(ST30)において分割転送サイズ(BF)を用いているが、第１の実施形態においては、バッファ準備レート(BFR)を固定値とし、上記[数３]に従って分割転送サイズ(BF)を計算する。
【００３５】
これに対して本実施形態では、ステップ(ST60)において経過時間(t)が単位時間(T)以下ではないと判断されると(ST60でNo)、バッファ量監視部(8)は、例えば下記[数４]に従って調停情報から学習していく方法により、バッファ準備レート(BFR)を更新する(ST61)。
【００３６】
[数４]
BFR＝BFR(0)＋Σλi×(BFR(i)−BFR(i-1))
上記[数４]において、BFR(0)は転送バッファ準備量の初期値、λiは重み係数、BFR(i)は転送回数(i)時点での転送バッファ準備量を示している。
【００３７】
上記のようにステップ(ST61)においてバッファ準備レート(BFR)を更新した後、分割転送指示部(6)は、経過時間(t)をリセットし(ST70)、ステップ(ST10)に戻る。
【００３８】
以上では、本発明の特徴を分かりやすく説明するために、複数のマスタ(1,2,3)のうちの１つのみがリソース(5)にアクセスする状況を想定して説明したが、複数のマスタ(1,2,3)が共有リソース(5)にアクセスする状況では、図１０に示すような処理の流れになる。
【００３９】
図１０に示すように、リソース転送バス(20)の状態が“待機中”であることを空時間監視部(7)が検知すると(ST10でNo)、分割転送指示部(6)は、各マスタ(1,2,3)ごとに上述のステップ(ST11,ST20〜ST40)の処理を実行する。また、ステップ(ST60)において経過時間(t)が単位時間(T)以下ではないと判断されると(ST60でNo)、バッファ量監視部(8)は、各マスタ(1,2,3)ごとにバッファ準備レート(BFR)を更新する(ST61)。
【００４０】
(第３の実施形態)
図１１は、本発明の第３の実施形態によるシステムの構成例を示すブロック図である。このシステムは、図１に示したシステムの構成例と比べると、分割転送指示部(6)内に転送レート監視部(9)を備えている点が異なっている。転送レート監視部(9)は、各マスタ(1,2,3)の平均転送レート(TR0,TR1)を計算する。
【００４１】
次に、本実施形態によるシステムの動作について説明する。ここでも本発明の特徴を分かりやすく説明するために、複数のマスタ(1,2,3)のうちの１つのみがリソース(5)にアクセスする状況を想定し、図１２を参照しつつ説明する。
【００４２】
ステップ(ST60)において経過時間(t)が単位時間(T)以下ではないと判断されると(ST60でNo)、転送レート監視部(9)は、たとえば下記[数５][数６]に従って調停情報から学習していく方法により、平均転送レート(TR0,TR1)をそれぞれ更新する(ST62,ST63)。
【００４３】
[数５]
TR0＝TR0(0)＋Σλi×(TR0(i)−TR0(i-1))
[数６]
TR1＝TR1(0)＋Σλi×(TR1(i)−TR1(i-1))
上記[数５][数６]において、TR0(0),TR1(0)は転送レートの初期値、λiは重み係数、TR0(i),TR1(i)は転送回数(i)時点での実測転送レートを表す。実測転送レートは、転送量(M)/転送完了時間で表される。
【００４４】
上記のようにステップ(ST62,ST63)において平均転送レート(TR0,TR1)を更新した後、分割転送指示部(6)は、経過時間(t)をリセットし(ST70)、ステップ(ST10)に戻る。そして、上記ステップ(ST62,ST63)により更新された平均転送レート(TR0,TR1)を用いて、分割転送指示部(6)は転送完了時間(T0,T1)を計算する(ST20,ST30)。
【００４５】
以上では、本発明の特徴を分かりやすく説明するために、複数のマスタ(1,2,3)のうちの１つのみがリソース(5)にアクセスする状況を想定して説明したが、複数のマスタ(1,2,3)が共有リソース(5)にアクセスする状況では、図１３に示すような処理の流れになる。
【００４６】
図１３に示すように、ステップ(ST60)において経過時間(t)が単位時間(T)以下ではないと判断されると(ST60でNo)、転送レート監視部(9)は、各マスタ(1,2,3)ごとに平均転送レート(TR0,TR1)を更新する(ST62,ST63)。
【００４７】
(第４の実施形態)
図１４は、本発明の第４の実施形態によるシステムの構成例を示すブロック図である。このシステムは、図１に示したシステムの構成例と比べると、分割転送指示部(6)内に第２の実施形態のバッファ量監視部(8)と第３の実施形態の転送レート監視部(9)とを備えている点が異なっている。
【００４８】
次に、本実施形態によるシステムの動作について説明する。ここでも本発明の特徴を分かりやすく説明するために、複数のマスタ(1,2,3)のうちの１つのみがリソース(5)にアクセスする状況を想定し、図１５を参照しつつ説明する。
【００４９】
リソース転送バス(20)の状態が“待機中”であることを空時間監視部(7)が検知すると(ST10でNo)、バッファ量監視部(8)は、現在の時点で各マスタ(1,2,3)においてバッファリングされているデータ量(BF)を上記[数３]に従って計算する。
【００５０】
また、ステップ(ST60)において経過時間(t)が単位時間(T)以下ではないと判断されると(ST60でNo)、転送レート監視部(9)は、たとえば上記[数５][数６]に従って調停情報から学習していく方法により、平均転送レート(TR0,TR1)をそれぞれ更新する(ST62,ST63)。また、バッファ量監視部(8)は、例えば上記[数４]に従って調停情報から学習していく方法により、バッファ準備レート(BFR)を更新する(ST61)。
【００５１】
上記のようにステップ(ST62,ST63,ST61)において平均転送レート(TR0,TR1)およびバッファ準備レート(BFR)を更新した後、分割転送指示部(6)は、経過時間(t)をリセットし(ST70)、ステップ(ST10)に戻る。
【００５２】
以上では、本発明の特徴を分かりやすく説明するために、複数のマスタ(1,2,3)のうちの１つのみがリソース(5)にアクセスする状況を想定して説明したが、複数のマスタ(1,2,3)が共有リソース(5)にアクセスする状況では、図１６に示すような処理の流れになる。
【００５３】
図１６に示すように、リソース転送バス(20)の状態が“待機中”であることを空時間監視部(7)が検知すると(ST10でNo)、分割転送指示部(6)は、各マスタ(1,2,3)ごとに上述のステップ(ST11,ST20〜ST40)の処理を実行する。また、ステップ(ST60)において経過時間(t)が単位時間(T)以下ではないと判断されると(ST60でNo)、転送レート監視部(9)は、各マスタ(1,2,3)ごとに平均転送レート(TR0,TR1)およびバッファ準備レート(BFR)を更新する(ST62,ST63,ST61)。
【００５４】
(第５の実施形態)
図１７は、本発明の第５の実施形態による光ディスク装置の概略構成を示すブロック図である。この光ディスク装置は、ドライブ側に復調処理部(101)，ECC(Error Correction Code)処理部(102)，デバイスIF(103)，共有メモリコントローラ(104)，共有メモリ(105)，分割転送指示部(6)を備え、ホスト側にホストIF(201)，フレームメモリ(202)を備えている。
【００５５】
図１７において、光ディスクには、所定の規格(例えばDVDフォーマット)に従ったデータが記録されている。共有メモリ(105)は、誤り訂正時の作業用，あるいは光ディスクとホスト側インターフェイス(201)との入出力バッファとして使われる汎用記憶装置である。共有メモリコントローラ(104)は、各信号処理ブロック(101,102,103)と共有メモリ(105)と間のデータ転送を制御する。復調処理部(101)は、光ディスクから読み出したデータを復調する。ECC処理部(102)は、共有メモリ(105)に格納された復調済みデータに対してECCブロック単位で誤り訂正処理を行う。
【００５６】
デバイス側インターフェイス(103)は、光ディスクの読み取りデータをホスト側へ送信するための制御を行う。ホスト側インターフェイス(201)は、ドライブ側からのデータを受信するための制御を行う。フレームメモリ(202)は、ドライブ側から送られた光ディスクの読み取りデータを一時的に格納する。
【００５７】
図１７の光ディスク装置は、３つのチャネル(CH0,CH1,CH2)のDMA転送を使って光ディスクからの読み出しと解読処理を実行する。チャネル(CH0)は、復調処理部(101)で復調された記録セクタを共有メモリ(105)へ転送する。チャネル(CH1)は、記録セクタを共有メモリ(105)からECC処理部(102)へ転送する。チャネル(CH2)は、デスクランブルされたデータセクタを共有メモリ(105)から読み出しデバイス側インターフェイス(103)へ転送する。
【００５８】
図１７の光ディスク装置の各構成要素は、上記第１〜４の実施形態のシステムの各構成要素と次のように対応している。復調処理部(101)，ECC処理部(102)，デバイスIF(103)がそれぞれマスタ(1,2,3)に対応し、共有メモリコントローラ(104)がリソース制御部(4)に対応し、共有メモリ(105)が共有リソース(5)に対応している。
【００５９】
したがって、上記第１〜４の実施形態と同様、本実施形態の光ディスク装置においても、復調処理部(101)，ECC処理部(102)，デバイスIF(103)から共有メモリ(105)へのアクセスがない状態を空時間監視部(7)が検知すると、分割転送指示部(6)は、単位時間(T)に必要なデータ転送量(M)の転送完了時間を分割なし(T0)，分割あり(T1)のそれぞれの場合について予測し(ST20,ST30)、その結果に応じて分割転送指示(21,22,23)を復調処理部(101)，ECC処理部(102)，デバイスIF(103)に与える(ST40,ST50)。分割転送指示(21,22,23)を受けた復調処理部(101)，ECC処理部(102)，デバイスIF(103)は、その時点で蓄積されているデータを共有メモリ(105)へ転送し(分割転送)、その後は平均転送レート(TR1)にて共有メモリ(105)へのデータ転送を実行する。これにより、復調処理部(101)，ECC処理部(102)，デバイスIF(103)から共有メモリ(105)へのアクセス要求がない場合でも、最低限必要なメモリアクセスバンド幅を維持し、かつ、共有メモリ(105)の使用効率を上げることができる。
【産業上の利用可能性】
【００６０】
本発明によれば、マスタから共有リソースへのアクセス要求がない場合でも、マスタが最低限必要なアクセスバンド幅を維持することができる。そのため、マスタから共有リソースへのアクセスバンド幅を維持する必要があるすべての機器に対して有効である。特に、光ディスク録再機器等のような共有メモリへの高速アクセスが必要な機器においては特に効果的である。
【図面の簡単な説明】
【００６１】
【図１】第１の実施形態によるシステムの全体構成を示すブロック図である。
【図２】単位時間内における各マスタの状態，経過時間とデータ転送量の関係の一例を示す図である。
【図３】単位時間内における各マスタの状態，経過時間とデータ転送量の関係の一例を示す図である。
【図４】第１の実施形態によるシステムの処理の流れを示すフローチャートである。
【図５】各マスタの単位時間内における経過時間とデータ転送量の関係の一例を示す図である。
【図６】各マスタの単位時間内における経過時間とデータ転送量の関係の一例を示す図である。
【図７】第１の実施形態によるシステムの処理の流れを示すフローチャートである。
【図８】第２の実施形態によるシステムの全体構成を示すブロック図である。
【図９】第２の実施形態によるシステムの処理の流れを示すフローチャートである。
【図１０】第２の実施形態によるシステムの処理の流れを示すフローチャートである。
【図１１】第３の実施形態によるシステムの全体構成を示すブロック図である。
【図１２】第３の実施形態によるシステムの処理の流れを示すフローチャートである。
【図１３】第３の実施形態によるシステムの処理の流れを示すフローチャートである。
【図１４】第４の実施形態によるシステムの全体構成を示すブロック図である。
【図１５】第４の実施形態によるシステムの処理の流れを示すフローチャートである。
【図１６】第４の実施形態によるシステムの処理の流れを示すフローチャートである。
【図１７】第５の実施形態による光ディスク装置の全体構成を示すブロック図である。
【符号の説明】
【００６２】
1,2,3…マスタ
4…リソース制御部
5…共有リソース
6…分割転送指示部
7…空時間監視部
8…バッファ量監視部
9…転送レート監視部
11,12,13…アクセス要求
14,15,16…アクセス許可
17,18,19…転送データバス
20…リソース転送データバス
21,22,23…分割転送指示
101…復調処理部
102…ECC処理部
103,201…デバイスIF
104…共有メモリコントローラ
105…共有メモリ
202…フレームメモリ
【図１】
2010055541.tif 000003
【図２】
2010055541.tif 000004
【図３】
2010055541.tif 000005
【図４】
2010055541.tif 000006
【図５】
2010055541.tif 000007
【図６】
2010055541.tif 000008
【図７】
2010055541.tif 000009
【図８】
2010055541.tif 000010
【図９】
2010055541.tif 000011
【図１０】
2010055541.tif 000012
【図１１】
2010055541.tif 000013
【図１２】
2010055541.tif 000014
【図１３】
2010055541.tif 000015
【図１４】
2010055541.tif 000016
【図１５】
2010055541.tif 000017
【図１６】
2010055541.tif 000018
【図１７】
2010055541.tif 000019