(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-07
(45)【発行日】2023-11-15
(54)【発明の名称】データ転送装置およびデータ転送方法
(51)【国際特許分類】
G06F 13/16 20060101AFI20231108BHJP
G06F 13/36 20060101ALI20231108BHJP
G06F 13/362 20060101ALI20231108BHJP
【FI】
G06F13/16 520A
G06F13/36 520B
G06F13/362 510Z
(21)【出願番号】P 2021562282
(86)(22)【出願日】2019-12-05
(86)【国際出願番号】 JP2019047625
(87)【国際公開番号】W WO2021111583
(87)【国際公開日】2021-06-10
【審査請求日】2022-08-05
(73)【特許権者】
【識別番号】000000376
【氏名又は名称】オリンパス株式会社
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100139686
【氏名又は名称】鈴木 史朗
(74)【代理人】
【識別番号】100147267
【氏名又は名称】大槻 真紀子
(74)【代理人】
【識別番号】100207789
【氏名又は名称】石田 良平
(72)【発明者】
【氏名】村田 豊
(72)【発明者】
【氏名】土田 隆輔
【審査官】北村 学
(56)【参考文献】
【文献】特開2019-134240(JP,A)
【文献】特開2004-252523(JP,A)
【文献】特開2007-108996(JP,A)
【文献】特開2003-337741(JP,A)
【文献】特開2007-280253(JP,A)
【文献】国際公開第2019/043822(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
IPC G06F 12/00 - 12/06
G06F 13/16 - 13/18
G06F 13/20 - 13/378
(57)【特許請求の範囲】
【請求項1】
それぞれがバッファを有し、
それぞれが前記バッファのデータ量に基づいて残時間カウンタを算出する複数のマスタと、
前記複数のマスタとデータ転送を行い、前記複数のマスタからのアクセスが間欠的に禁止されるメモリアクセス禁止期間を有するメモリシステムと、
前記残時間カウンタに基づいて前記複数のマスタの調停を行うバスアービタと、
前記メモリアクセス禁止期間の開始までの前記残時間カウンタを調整する残時間カウンタオフセットを、前記複数のマスタの少なくとも一つ
に対応する前記残時間カウンタに付加する残時間カウンタ調整部と、を備える、
データ転送装置。
【請求項2】
前記複数のマスタは、前記バッファの前記データ量に加えて、前記データ転送に必要な帯域を用いて前記残時間カウンタを算出し、
前記残時間カウンタは、前記バッファに格納した前記データ量が空状態もしくは満状態となるまでの時間が短いほど小さくなる、
請求項1に記載のデータ転送装置。
【請求項3】
前記残時間カウンタ調整部は、前記メモリアクセス禁止期間の終了時から前記メモリアクセス禁止期間の開始までに前記残時間カウンタオフセットのオフセット量を段階的に大きくする、
請求項1または請求項2に記載のデータ転送装置。
【請求項4】
前記残時間カウンタ調整部は、前記複数のマスタごとに異なる値の前記残時間カウンタを付加する前記残時間カウンタオフセットを付加する、
請求項3に記載のデータ転送装置。
【請求項5】
前記残時間カウンタ調整部は、前記複数のマスタごとに時間差を設けて前記残時間カウンタオフセットを変化させる、
請求項1から請求項4のいずれか一項に記載のデータ転送装置。
【請求項6】
複数のマスタとデータ転送を行い、前記複数のマスタからのアクセスが間欠的に禁止されるメモリアクセス禁止期間を有するメモリシステムにおけるデータ転送方法であって、
前記複数のマスタが
それぞれ有するバッファのデータ量に基づいて
前記複数のマスタごとに対応する残時間カウンタを算出する残時間カウンタ算出工程と、
前記メモリアクセス禁止期間の開始までの前記残時間カウンタを調整する残時間カウンタオフセットを、前記複数のマスタの少なくとも一つ
に対応する前記残時間カウンタに付加する残時間カウンタオフセット付加工程と、
前記残時間カウンタに基づいて前記複数のマスタの調停を行う調停工程と、
を備える、
データ転送方法。
【請求項7】
前記残時間カウンタ算出工程は、前記バッファの前記データ量に加えて、前記データ転送に必要な帯域を用いて前記残時間カウンタを算出し、
前記残時間カウンタは、前記バッファに格納した前記データ量が空状態もしくは満状態となるまでの時間が短いほど小さくなる、
請求項6に記載のデータ転送方法。
【請求項8】
前記残時間カウンタオフセット付加工程は、前記メモリアクセス禁止期間の終了時から前記メモリアクセス禁止期間の開始までに前記残時間カウンタオフセットのオフセット量を段階的に大きくする、
請求項6または請求項7に記載のデータ転送方法。
【請求項9】
前記残時間カウンタオフセット付加工程は、前記複数のマスタごとに異なる値の前記残時間カウンタを付加する前記残時間カウンタオフセットを付加する、
請求項8に記載のデータ転送方法。
【請求項10】
前記残時間カウンタオフセット付加工程は、前記複数のマスタごとに時間差を設けて前記残時間カウンタオフセットを変化させる、
請求項6から請求項9のいずれか一項に記載のデータ転送方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ転送装置およびデータ転送方法に関する。
【背景技術】
【0002】
メモリシステムにバスを介して複数のマスタが接続されるデータ転送装置では、複数のマスタにバス使用権を順次割り当てる調停を実施するバスアービタが設けられている。バスアービタは、マスタの優先度等に基づいてバス使用権を調停する。複数のマスタによるデータ転送をデータの欠損なく効率よく実施するため、様々な調停方法が考案されている。
【0003】
例えば、特許文献1に記載のバス制御装置は、マスタが保有するバッファに格納されたデータ量とマスタのデータ転送速度とから算出したマスタごとの残時間カウンタに基づいてバス使用権を調停する。特許文献1に記載のバス制御装置は、マスタが保有するバッファのデータ転送状況に応じてバス使用権を調停するため、データ転送におけるデータの欠損を好適に防止できる。
【0004】
一方、LPDDR4のような低電圧で駆動されるメモリは最高性能を出すために、電源電圧、温度、個体の出来栄え等に起因する特性ばらつきを補償するキャリブレーションを初期起動時に行うことが必須となってきている。更に、起動後についても温度上昇等の環境変化に対する特性シフトを補償するために動作中の定期的なキャリブレーションを実施することがメモリメーカから推奨されており、これを実施しない場合にはデータ転送エラーを引き起こす恐れがある。このようなメモリを使用するメモリシステムに接続されるマスタは、メモリシステムがキャリブレーションを実施している期間において間欠的にメモリアクセスが禁止される。メモリアクセスが禁止されるメモリアクセス禁止期間が間欠的に発生するメモリシステムを用いるデータ転送装置では、メモリアクセス禁止期間において、全てのマスタからのメモリアクセスが禁止される。
【0005】
メモリアクセス禁止期間が間欠的に発生するメモリシステムに接続される複数のマスタのバス使用権を調停するバスアービタは、全てのマスタにおいてデータ転送におけるデータの欠損が発生しないようにバス使用権を調停する必要がある。特に表示処理等のリアルタイム処理を実施するマスタにおいては、メモリアクセス禁止期間が間欠的に発生する場合であっても、データ転送におけるデータの欠損を発生させることはできない。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、メモリアクセス禁止期間が間欠的に発生するメモリシステムを用いるデータ転送装置において、全てのマスタにおいてデータ転送におけるデータの欠損が発生しないようにバス使用権を調停するためには、メモリアクセス禁止期間に備えて全マスタのバッファ残量を管理する必要があり、複雑で大規模な調停処理が必要となる。
【0008】
上記事情を踏まえ、本発明は、メモリアクセス禁止期間が間欠的に発生するメモリシステムを用いるデータ転送装置およびデータ転送方法において、より簡易な仕組みによりデータ転送におけるデータの欠損の発生を抑制することを目的とする。
【課題を解決するための手段】
【0009】
上記課題を解決するために、この発明は以下の手段を提案している。
本発明の第一の態様に係るデータ転送装置は、それぞれがバッファを有し、それぞれが前記バッファのデータ量に基づいて残時間カウンタを算出する複数のマスタと、前記複数のマスタとデータ転送を行い、前記複数のマスタからのアクセスが間欠的に禁止されるメモリアクセス禁止期間を有するメモリシステムと、前記残時間カウンタに基づいて前記複数のマスタの調停を行うバスアービタと、前記メモリアクセス禁止期間の開始までの前記残時間カウンタを調整する残時間カウンタオフセットを、前記複数のマスタの少なくとも一つに対応する前記残時間カウンタに付加する残時間カウンタ調整部と、を備える。
【0010】
本発明の第二の態様に係るデータ転送方法は、複数のマスタとデータ転送を行い、前記複数のマスタからのアクセスが間欠的に禁止されるメモリアクセス禁止期間を有するメモリシステムにおけるデータ転送方法であって、前記複数のマスタがそれぞれ有するバッファのデータ量に基づいて前記複数のマスタごとに対応する残時間カウンタを算出する残時間カウンタ算出工程と、前記メモリアクセス禁止期間の開始までの前記残時間カウンタを調整する残時間カウンタオフセットを、前記複数のマスタの少なくとも一つに対応する前記残時間カウンタに付加する残時間カウンタオフセット付加工程と、前記残時間カウンタに基づいて前記複数のマスタの調停を行う調停工程と、を備える。
【発明の効果】
【0011】
本発明のデータ転送装置およびデータ転送方法は、メモリアクセス禁止期間が間欠的に発生するメモリシステムを用いるデータ転送において、より簡易な仕組みによりデータ転送におけるデータの欠損の発生を抑制することができる。
【図面の簡単な説明】
【0012】
【
図1】本発明の第一実施形態に係るデータ転送装置の全体構成を示す図である。
【
図2】同データ転送装置のマスタの機能ブロック図である。
【
図3】同データ転送装置のバスアービタによる調停の例を説明する図である。
【
図4】同データ転送装置のメモリアクセス禁止期間前後におけるマスタの調整残時間カウンタの推移を示している。
【
図5】比較例のデータ転送装置におけるマスタの残時間カウンタの推移を示している。
【
図6】本発明の第二実施形態に係るデータ転送装置のメモリアクセス禁止期間前後におけるマスタの調整残時間カウンタの推移を示している。
【
図7】同データ転送装置の残時間カウンタ調整部の変形例によるマスタの調整残時間カウンタの推移を示している。
【発明を実施するための形態】
【0013】
(第一実施形態)
本発明の第一実施形態について、
図1から
図5を参照して説明する。
図1は、本実施形態に係るデータ転送装置100の全体構成を示す図である。
【0014】
データ転送装置100は、マスタ1と、メモリシステム2と、バスアービタ3と、残時間カウンタ調整部4と、を備えている。メモリシステム2には複数のマスタ1がバスを介して接続されている。マスタ1はいずれも表示処理等のリアルタイム処理が必要なモジュールである。以降の説明において、複数のマスタ1を区別する場合は、それぞれのマスタ1を第一マスタ1a、第二マスタ1b、第三マスタ1cと記載する。なお、メモリシステム2には、リアルタイム処理を必要としない他のマスタも接続されていてもよい。
【0015】
図2は、マスタ1の機能ブロック図である。
マスタ1は、データ処理部11と、バッファ12と、バスインターフェイス13と、残時間カウンタ算出部14と、を有している。データの転送方向がメモリシステム2からマスタ1である場合(メモリリードの場合)、バスインターフェイス13を介してメモリシステム2から転送されデータは、バッファ12に一時的に格納された後、データ処理部11に転送される。データの転送方向がマスタ1からメモリシステム2である場合(メモリライトの場合)、データ処理部11が処理したデータは、バッファ12に一時的に格納された後、バスインターフェイス13を介してメモリシステム2に転送される。
【0016】
残時間カウンタ算出部14は、バッファ12のデータ量と、データ転送に必要な帯域(以降、「必要帯域」という)とに基づいて残時間カウンタを算出する(残時間カウンタ算出工程)。
【0017】
残時間カウンタ算出部14が残時間カウンタの算出に使用するバッファ12のデータ量は、データの転送方向がメモリシステム2からマスタ1である場合(メモリリードの場合)、バッファ12の蓄積データ量となる。一方、データの転送方向がマスタ1からメモリシステム2である場合(メモリライトの場合)、残時間カウンタ算出部14が算出するデータ量はバッファ12の空きデータ量となる。
【0018】
残時間カウンタ算出部14が残時間カウンタの算出に使用する必要帯域は、データ処理部11がデータの欠損なくデータ処理を行うために必要なデータの帯域である。例えば、データ処理部11が4クロックに32ビットのデータ処理が常時必要である場合、必要帯域は8ビット/クロック(32ビット/4クロック)となる。必要帯域はレジスタ等に格納することでCPU等により設定変更可能にしてもよい。
【0019】
残時間カウンタ算出部14は、バッファ12のデータ量を必要帯域で除算した値に比例した値を残時間カウンタとして算出する。すなわち、(残時間カウンタ)∝(バッファ12のデータ量[bit])/(必要帯域[bit/clock])である。データの転送方向がメモリシステム2からマスタ1である場合(メモリリードの場合)、残時間カウンタはバッファ12が空状態(バッファエンプティ)になるまでのクロック数に比例した数値を示す。一方、データの転送方向がマスタ1からメモリシステム2である場合(メモリライトの場合)、残時間カウンタはバッファ12が満状態(バッファフル)になるまでのクロック数に比例した数値を示す。算出した残時間カウンタが小さいほど、バッファエンプティやバッファフルへ到達するサイクル数が少なくなるため、データ転送におけるデータの欠損が発生する可能性があり緊急性が高い。
【0020】
メモリシステム2は、
図1に示すように、メモリ21と、メモリコントローラ22と、スレーブバスインターフェイス23と、を有している。メモリシステム2は、スレーブバスインターフェイス23を経由して転送されるマスタ1からのリード要求やライト要求に応じて、メモリ21からのデータの読み出しやデータの書き込みを実施する。
【0021】
メモリ21は、例えばLPDDR4のような低電圧で駆動されるメモリであり、温度等に起因するばらつきを補償するキャリブレーションを、初期起動時だけでなく動作中も定期的に実施する必要があるメモリである。
【0022】
メモリコントローラ22は、メモリ21に対するコマンド発行およびデータ転送を行う。また、メモリコントローラ22は、上記キャリブレーションの実施するために必要なコマンド発行も実施する。メモリコントローラ22は、上記キャリブレーションの実施中において、メモリ21に対してデータの読み出しやデータの書き込みを実施できない。
【0023】
スレーブバスインターフェイス23は、マスタ1からのリード要求やライト要求を受け付ける。メモリコントローラ22が上記キャリブレーションを実施している期間において、スレーブバスインターフェイス23は、メモリコントローラ22が受付可能な範囲を超えたリード要求やライト要求に応答できない。すなわち、マスタ1は、メモリシステム2がキャリブレーションを実施している期間においてメモリアクセスが禁止される。マスタ1がメモリアクセスが禁止される期間を「メモリアクセス禁止期間」とする。キャリブレーションは動作中も定期的に実施する必要があるため、メモリアクセス禁止期間は間欠的に発生する。
【0024】
バスアービタ3は、複数のマスタ1とメモリシステム2との間に設けられており、残時間カウンタに基づいて複数のマスタ1の調停を行う(調停工程)。バスアービタ3は、残時間カウンタが小さいマスタに優先的にバス使用権を付与する。バスアービタ3によってバス使用権を与えられたマスタ1が、メモリシステム2にアクセスできる。なお、バスアービタ3は、メモリシステム2と一体に設けられていてもよいし、メモリシステム2と別体に設けられていてもよい。
【0025】
図3は、バスアービタ3による調停の例を説明する図である。
図3に示す例において、第一マスタ1a、第二マスタ1bおよび第三マスタ1cのデータの転送方向は、メモリシステム2からマスタ1である(メモリリード)。また、第一マスタ1aの必要帯域は4[bit/clock]、第二マスタ1bの必要帯域は2[bit/clock]、第三マスタ1cの必要帯域は4[bit/clock]とする。また、第一マスタ1aのバッファ12には40ビット、第二マスタ1bのバッファ12には24ビット、第三マスタ1cのバッファ12には32ビットのデータがそれぞれ格納されているとする。この場合、第一マスタ1aの残時間カウンタは10、第二マスタ1bの残時間カウンタは12、第三マスタ1cの残時間カウンタは8である。この場合、残時間カウンタが一番小さい第三マスタ1cの優先順位が第一位となり、第一マスタ1aの優先順位が第二位、残時間カウンタが一番大きい第二マスタ1bの優先順位が第三位となる。
【0026】
ここで、各バッファ12のバッファサイズが異なっている場合には、バスアービタ3はバッファサイズの違いを考慮してバス優先権を調停することがより好ましい。例えば、バスアービタ3は、各バッファ12のバッファサイズに対応した重み付けを残時間カウンタに対して行ってからバス優先権を調停する。具体的には、バスアービタ3が調停に用いる残時間カウンタに重み付け係数(0<重み付け係数≦1)を乗算する。ここで、重み付け係数は各バッファ12のバッファサイズの比を示す係数であり、例えば最大のバッファサイズに対する比として表される。
図3の例では全てのバッファ12のバッファサイズが等しいので、重み付け係数は全て「1」となる。
【0027】
残時間カウンタ調整部4はマスタ1に対して、メモリアクセス禁止期間の開始までのバスアービタに提示する残時間カウンタを実際にマスタ1で実際に計算された値よりも小さく調整するオフセット(残時間カウンタオフセット)を、複数のマスタ1の少なくとも一つに付加する(残時間カウンタオフセット付加工程)。ここでマスタ1は、リアルタイム性があり常時データ処理等を実行するためにメモリアクセス禁止期間中にデータ転送におけるデータの欠損が発生する可能性が高くなる。それを回避するため、マスタ1はメモリアクセス禁止期間が開始する前に、メモリアクセス禁止期間中におけるデータの欠損を生じず処理を継続できるだけの蓄積データ量(必要バッファ量)をバッファに貯めておく、もしくはバッファに空きデータ量(必要バッファ量)を確保することが必要となる。残時間カウンタオフセット付加工程によりバスアービタに提示する残時間カウンタを必要バッファ量の分だけ小さくすることで、メモリアクセス禁止期間が開始するまで、必要バッファ量を確保し続けることができる。なお、メモリアクセス禁止期間の長さや発生タイミングは既知であるため、必要バッファ量は事前に算出可能である。
【0028】
ここで、残時間カウンタオフセットが付加された残時間カウンタを「調整残時間カウンタ」と称する。すなわち(調整残時間カウンタ)=(マスタ1によって算出された残時間カウンタ)+(残時間カウンタオフセット)である。本実施形態においては、残時間カウンタの値が小さいほど緊急性は高いため、緊急性を高くする残時間カウンタオフセットは負の値である。
【0029】
残時間カウンタ調整部4は、複数のマスタ1に対して残時間カウンタオフセットを付加する。残時間カウンタ調整部4は、複数のマスタ1に同じ値の残時間カウンタオフセットを付加してもよいし、複数のマスタ1ごとに異なる値の残時間カウンタオフセットを付加してもよい。残時間カウンタオフセットの値は、上記必要バッファ量の分以上の値とする必要がある。なお、残時間カウンタ調整部4は、リアルタイム処理を必要としない他のマスタに対しては残時間カウンタオフセットを付与しない。
【0030】
マスタ1の残時間カウンタ算出部14は、残時間カウンタ算出部14が算出した残時間カウンタに残時間カウンタ調整部4から転送された残時間カウンタオフセットを付加して算出した調整残時間カウンタをバスアービタ3に転送する。
【0031】
残時間カウンタ調整部4は、論理回路で構成されていてもよいし、CPUにおいて動作するソフトウェアで構成されていてもよい。残時間カウンタ調整部4は、メモリアクセス禁止期間に動作する必要があるため、論理回路で構成されていることが好ましい。
【0032】
残時間カウンタ調整部4は、メモリアクセス禁止期間中において、残時間カウンタオフセットのオフセット量(絶対値)を小さくする。本実施形態においては、残時間カウンタ調整部4はメモリアクセス禁止期間中において、残時間カウンタオフセットの値をゼロとする。
【0033】
次にデータ転送装置100の作用について説明する。
図4は、メモリアクセス禁止期間前後におけるマスタ1(第一マスタ1a、第二マスタ1b、第三マスタ1c)の調整残時間カウンタの推移を示している。
【0034】
マスタ1(第一マスタ1a、第二マスタ1b、第三マスタ1c)は、
図4に示すように、メモリアクセス禁止期間の開始まで残時間カウンタオフセットが付加されており、調整残時間カウンタは実際に算出された残時間カウンタより小さい。バスアービタ3は、全てのマスタ1の残時間カウンタが安全水準付近となるように調停を行う。そのため、残時間カウンタオフセットが付加されたマスタ1は、バスアービタ3によるバス使用権の調停において、必要バッファ量を確保しながら通常の優先順位で調停が行われる。
【0035】
データの転送方向がメモリシステム2からマスタ1である場合(メモリリードの場合)、マスタ1のバッファ12の蓄積データ量はより多くなる。一方、データの転送方向がマスタ1からメモリシステム2である場合(メモリライトの場合)、マスタ1のバッファ12の空きデータ量はより多くなる。
【0036】
残時間カウンタ調整部4は、メモリアクセス禁止期間中において必要バッファ量をメモリアクセス禁止期間が開始されるまでに確保されるように付加する残時間カウンタオフセットの値を調整する。
【0037】
データの転送方向がメモリシステム2からマスタ1である場合(メモリリードの場合)、メモリアクセス禁止期間中にバッファ12が空状態(バッファエンプティ)にならない十分な量のデータがメモリシステム2から読み出されてバッファ12に格納されるように、メモリアクセス禁止期間の開始前における残時間カウンタオフセットの値が調整される。
【0038】
一方、データの転送方向がマスタ1からメモリシステム2である場合(メモリライトの場合)、メモリアクセス禁止期間中にバッファ12が満状態(バッファフル)にならない十分な量のデータがバッファ12から取り出されてメモリシステム2に対して書き込まれるように、メモリアクセス禁止期間の開始前における残時間カウンタオフセットの値が調整される。
【0039】
マスタ1は、メモリアクセス禁止期間においてメモリアクセスが禁止される。そのため、
図4に示すように、メモリアクセス禁止期間においてマスタ1の残時間カウンタは時間経過に従い小さくなる。しかしながら、メモリアクセス禁止期間の終了時において、いずれのマスタ1の残時間カウンタも危険水準には達しておらず、データ転送におけるデータの欠損は発生していない。
【0040】
残時間カウンタ調整部4はメモリアクセス禁止期間の開始時において、残時間カウンタオフセットの値をゼロとする。
図4に示すように、メモリアクセス禁止期間の開始前と終了後において、マスタ1の調整残時間カウンタはいずれも同水準であり、危険水準には達していない。そのため、バスアービタ3は、メモリアクセス禁止期間の終了時において、一部のマスタ1に集中的にバス使用権を付与するような調停を行うことなく、メモリアクセス禁止期間の開始前と同様の通常優先順位での調停を継続できる。
【0041】
図5は、比較例として、残時間カウンタ調整部4を有さないデータ転送装置におけるマスタ1(第一マスタA、第二マスタB、第三マスタC)の残時間カウンタの推移を示している。メモリアクセス禁止期間の開始まで残時間カウンタオフセットが付加されていないため、危険水準はメモリアクセス禁止期間に耐えうるだけの必要バッファ量を確保した大きい水準に設定されていて、マスタ1の残時間カウンタはメモリアクセス禁止期間の終了時において複数のマスタが危険水準を大きく超えることとなり、複数マスタでの緊急性の高い調停が発生する。これにより通常優先順位での調停と異なり好適なスケジューリングが行えずメモリアクセス禁止期間にマスタ1はデータ転送におけるデータの欠損が発生する場合もあり得る。
【0042】
比較例のデータ転送装置は、
図5に示すように、メモリアクセス禁止期間の終了時において、第一マスタA、第二マスタB、第三マスタCの残時間カウンタの全てが危険水準に達している。バスアービタ3が、
図5に示すように、残時間カウンタが危険水準に達しているマスタ1のうち優先度が高い第一マスタAに対して連続的にバス使用権を付与する調停を実施した場合、第一マスタAの残時間カウンタは安全水準まで戻る。しかしながら、優先度が低い第三マスタCは、バス使用権の付与を受けることができず、データ転送におけるデータの欠損が発生している。
【0043】
本実施形態のデータ転送装置100によれば、メモリアクセス禁止期間が間欠的に発生するメモリシステム2を用いるデータ転送装置100において、より簡易な仕組みによりデータ転送におけるデータの欠損の発生を抑制することができる。残時間カウンタ等を用いてバス使用権の調停を実施する一般的なデータ転送装置に残時間カウンタ調整部4を追加するのみで、メモリアクセス禁止期間が間欠的に発生する場合であっても、データ転送におけるデータの欠損の発生を抑制することができる。残時間カウンタを用いてバス使用権の調停を実施するバスアービタ3側には、メモリアクセス禁止期間の発生に対応するための大きな仕様変更が不要である。
【0044】
以上、本発明の第一実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。また、上述の実施形態および変形例において示した構成要素は適宜に組み合わせて構成することが可能である。
【0045】
(変形例1)
例えば、上記実施形態において残時間カウンタ調整部4は、各マスタ1に対して残時間カウンタオフセットを付加し、マスタ1が算出した残時間カウンタに対して残時間カウンタオフセットを付加した調整残時間カウンタを算出していたが、調整残時間カウンタの算出態様はこれに限定されない。残時間カウンタオフセットの付加は、マスタ1ではなく、バスアービタ3が実施してもよい。
【0046】
(変形例2)
例えば、上記実施形態においてマスタ1の残時間カウンタ算出部14は、バッファ12のデータ量と必要帯域とに基づいて残時間カウンタを算出していたが、残時間カウンタの算出態様はこれに限定されない。残時間カウンタ算出部14は、バッファのデータ量のみから残時間カウンタを算出してもよい。緊急性の予測精度は低下するが、より簡易に残時間カウンタを算出することができる。
【0047】
(第二実施形態)
本発明の第二実施形態に係るデータ転送装置100Bについて、
図6から
図7を参照して説明する。以降の説明において、既に説明したものと共通する構成については、同一の符号を付して重複する説明を省略する。データ転送装置100Bは、第一実施形態のデータ転送装置100と比較して、残時間カウンタの調整方法が異なる。
【0048】
データ転送装置100Bは、マスタ1と、メモリシステム2と、バスアービタ3と、残時間カウンタ調整部4Bと、を備えている。
【0049】
残時間カウンタ調整部4Bは、複数のマスタ1に対して残時間カウンタオフセットを付加する。残時間カウンタ調整部4は、メモリアクセス禁止期間の終了時からメモリアクセス禁止期間の開始までに残時間カウンタオフセットのオフセット量(絶対値)を段階的に大きくする。
【0050】
図6は、データ転送装置100Bにおけるメモリアクセス禁止期間前後におけるマスタ1の調整残時間カウンタの推移を示している。
マスタ1は、
図6に示すように、メモリアクセス禁止期間の終了時からメモリアクセス禁止期間の開始まで段階的に変化する残時間カウンタオフセットが付加される。マスタ1からバスアービタ3に転送される調整残時間カウンタは急激に高くなることなく段階的に高くなるため、バスアービタ3は調整残時間カウンタが急激に高くなったマスタ1に対して極端にバス使用権の優先順位を下げることはない。他のマスタ1にも同様の処理を実施することで、あるマスタ1のみに集中的にバス使用権の付与を実施するような調停を行うことなく、効率的な調停を実施できる。
【0051】
本実施形態のデータ転送装置100Bによれば、メモリアクセス禁止期間が間欠的に発生するメモリシステムを用いるデータ転送装置100において、より簡易な仕組みによりデータ転送におけるデータの欠損の発生を抑制することができる。段階的に変化する残時間カウンタオフセットを付加することで、残時間カウンタオフセット付与時のバスアービタ3の調停をスムーズに行うことができる。
【0052】
以上、本発明の第二実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。また、上述の実施形態および変形例において示した構成要素は適宜に組み合わせて構成することが可能である。
【0053】
(変形例3)
図7は、残時間カウンタ調整部4Bの変形例である残時間カウンタ調整部4Cによるマスタ1の調整残時間カウンタの推移を示している。
残時間カウンタ調整部4Cは、メモリアクセス禁止期間の終了時からメモリアクセス禁止期間の開始までにマスタ1ごとに時間差を設けて残時間カウンタオフセットを変化させる。
図7に示すように、残時間カウンタ調整部4Cは、メモリアクセス禁止期間の終了後、まず第一マスタ1aの残時間カウンタオフセットのオフセット量(絶対値)を段階的に大きくする。その後、残時間カウンタ調整部4Cは第二マスタ1bの残時間カウンタオフセットのオフセット量(絶対値)を段階的に大きくする。
複数のマスタ1の残時間カウンタオフセットを同時に変化させる場合と比較すると、バスアービタ3において、バス使用権を要求する競合が発生しにくく、より効率的にバスを使用することができる。
【産業上の利用可能性】
【0054】
本発明は、複数のマスタがメモリシステムに接続されるデータ転送装置に適用することができる。
【符号の説明】
【0055】
100,100B データ転送装置
1 マスタ
1a 第一マスタ
1b 第二マスタ
1c 第三マスタ
11 データ処理部
12 バッファ
13 バスインターフェイス
14 残時間カウンタ算出部
2 メモリシステム
21 メモリ
22 メモリコントローラ
23 スレーブバスインターフェイス
3 バスアービタ
4,4B,4C 残時間カウンタ調整部