JP7381603B2 - データ転送装置およびデータ転送方法 - Google Patents

データ転送装置およびデータ転送方法 Download PDF

Info

Publication number
JP7381603B2
JP7381603B2 JP2021562282A JP2021562282A JP7381603B2 JP 7381603 B2 JP7381603 B2 JP 7381603B2 JP 2021562282 A JP2021562282 A JP 2021562282A JP 2021562282 A JP2021562282 A JP 2021562282A JP 7381603 B2 JP7381603 B2 JP 7381603B2
Authority
JP
Japan
Prior art keywords
remaining time
time counter
data transfer
masters
offset
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021562282A
Other languages
English (en)
Other versions
JPWO2021111583A1 (ja
Inventor
豊 村田
隆輔 土田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Olympus Corp
Original Assignee
Olympus Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Olympus Corp filed Critical Olympus Corp
Publication of JPWO2021111583A1 publication Critical patent/JPWO2021111583A1/ja
Application granted granted Critical
Publication of JP7381603B2 publication Critical patent/JP7381603B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Bus Control (AREA)

Description

本発明は、データ転送装置およびデータ転送方法に関する。
メモリシステムにバスを介して複数のマスタが接続されるデータ転送装置では、複数のマスタにバス使用権を順次割り当てる調停を実施するバスアービタが設けられている。バスアービタは、マスタの優先度等に基づいてバス使用権を調停する。複数のマスタによるデータ転送をデータの欠損なく効率よく実施するため、様々な調停方法が考案されている。
例えば、特許文献1に記載のバス制御装置は、マスタが保有するバッファに格納されたデータ量とマスタのデータ転送速度とから算出したマスタごとの残時間カウンタに基づいてバス使用権を調停する。特許文献1に記載のバス制御装置は、マスタが保有するバッファのデータ転送状況に応じてバス使用権を調停するため、データ転送におけるデータの欠損を好適に防止できる。
一方、LPDDR4のような低電圧で駆動されるメモリは最高性能を出すために、電源電圧、温度、個体の出来栄え等に起因する特性ばらつきを補償するキャリブレーションを初期起動時に行うことが必須となってきている。更に、起動後についても温度上昇等の環境変化に対する特性シフトを補償するために動作中の定期的なキャリブレーションを実施することがメモリメーカから推奨されており、これを実施しない場合にはデータ転送エラーを引き起こす恐れがある。このようなメモリを使用するメモリシステムに接続されるマスタは、メモリシステムがキャリブレーションを実施している期間において間欠的にメモリアクセスが禁止される。メモリアクセスが禁止されるメモリアクセス禁止期間が間欠的に発生するメモリシステムを用いるデータ転送装置では、メモリアクセス禁止期間において、全てのマスタからのメモリアクセスが禁止される。
メモリアクセス禁止期間が間欠的に発生するメモリシステムに接続される複数のマスタのバス使用権を調停するバスアービタは、全てのマスタにおいてデータ転送におけるデータの欠損が発生しないようにバス使用権を調停する必要がある。特に表示処理等のリアルタイム処理を実施するマスタにおいては、メモリアクセス禁止期間が間欠的に発生する場合であっても、データ転送におけるデータの欠損を発生させることはできない。
特許第3708923号公報
しかしながら、メモリアクセス禁止期間が間欠的に発生するメモリシステムを用いるデータ転送装置において、全てのマスタにおいてデータ転送におけるデータの欠損が発生しないようにバス使用権を調停するためには、メモリアクセス禁止期間に備えて全マスタのバッファ残量を管理する必要があり、複雑で大規模な調停処理が必要となる。
上記事情を踏まえ、本発明は、メモリアクセス禁止期間が間欠的に発生するメモリシステムを用いるデータ転送装置およびデータ転送方法において、より簡易な仕組みによりデータ転送におけるデータの欠損の発生を抑制することを目的とする。
上記課題を解決するために、この発明は以下の手段を提案している。
本発明の第一の態様に係るデータ転送装置は、それぞれがバッファを有し、それぞれが前記バッファのデータ量に基づいて残時間カウンタを算出する複数のマスタと、前記複数のマスタとデータ転送を行い、前記複数のマスタからのアクセスが間欠的に禁止されるメモリアクセス禁止期間を有するメモリシステムと、前記残時間カウンタに基づいて前記複数のマスタの調停を行うバスアービタと、前記メモリアクセス禁止期間の開始までの前記残時間カウンタを調整する残時間カウンタオフセットを、前記複数のマスタの少なくとも一つに対応する前記残時間カウンタに付加する残時間カウンタ調整部と、を備える。
本発明の第二の態様に係るデータ転送方法は、複数のマスタとデータ転送を行い、前記複数のマスタからのアクセスが間欠的に禁止されるメモリアクセス禁止期間を有するメモリシステムにおけるデータ転送方法であって、前記複数のマスタがそれぞれ有するバッファのデータ量に基づいて前記複数のマスタごとに対応する残時間カウンタを算出する残時間カウンタ算出工程と、前記メモリアクセス禁止期間の開始までの前記残時間カウンタを調整する残時間カウンタオフセットを、前記複数のマスタの少なくとも一つに対応する前記残時間カウンタに付加する残時間カウンタオフセット付加工程と、前記残時間カウンタに基づいて前記複数のマスタの調停を行う調停工程と、を備える。
本発明のデータ転送装置およびデータ転送方法は、メモリアクセス禁止期間が間欠的に発生するメモリシステムを用いるデータ転送において、より簡易な仕組みによりデータ転送におけるデータの欠損の発生を抑制することができる。
本発明の第一実施形態に係るデータ転送装置の全体構成を示す図である。 同データ転送装置のマスタの機能ブロック図である。 同データ転送装置のバスアービタによる調停の例を説明する図である。 同データ転送装置のメモリアクセス禁止期間前後におけるマスタの調整残時間カウンタの推移を示している。 比較例のデータ転送装置におけるマスタの残時間カウンタの推移を示している。 本発明の第二実施形態に係るデータ転送装置のメモリアクセス禁止期間前後におけるマスタの調整残時間カウンタの推移を示している。 同データ転送装置の残時間カウンタ調整部の変形例によるマスタの調整残時間カウンタの推移を示している。
(第一実施形態)
本発明の第一実施形態について、図1から図5を参照して説明する。
図1は、本実施形態に係るデータ転送装置100の全体構成を示す図である。
データ転送装置100は、マスタ1と、メモリシステム2と、バスアービタ3と、残時間カウンタ調整部4と、を備えている。メモリシステム2には複数のマスタ1がバスを介して接続されている。マスタ1はいずれも表示処理等のリアルタイム処理が必要なモジュールである。以降の説明において、複数のマスタ1を区別する場合は、それぞれのマスタ1を第一マスタ1a、第二マスタ1b、第三マスタ1cと記載する。なお、メモリシステム2には、リアルタイム処理を必要としない他のマスタも接続されていてもよい。
図2は、マスタ1の機能ブロック図である。
マスタ1は、データ処理部11と、バッファ12と、バスインターフェイス13と、残時間カウンタ算出部14と、を有している。データの転送方向がメモリシステム2からマスタ1である場合(メモリリードの場合)、バスインターフェイス13を介してメモリシステム2から転送されデータは、バッファ12に一時的に格納された後、データ処理部11に転送される。データの転送方向がマスタ1からメモリシステム2である場合(メモリライトの場合)、データ処理部11が処理したデータは、バッファ12に一時的に格納された後、バスインターフェイス13を介してメモリシステム2に転送される。
残時間カウンタ算出部14は、バッファ12のデータ量と、データ転送に必要な帯域(以降、「必要帯域」という)とに基づいて残時間カウンタを算出する(残時間カウンタ算出工程)。
残時間カウンタ算出部14が残時間カウンタの算出に使用するバッファ12のデータ量は、データの転送方向がメモリシステム2からマスタ1である場合(メモリリードの場合)、バッファ12の蓄積データ量となる。一方、データの転送方向がマスタ1からメモリシステム2である場合(メモリライトの場合)、残時間カウンタ算出部14が算出するデータ量はバッファ12の空きデータ量となる。
残時間カウンタ算出部14が残時間カウンタの算出に使用する必要帯域は、データ処理部11がデータの欠損なくデータ処理を行うために必要なデータの帯域である。例えば、データ処理部11が4クロックに32ビットのデータ処理が常時必要である場合、必要帯域は8ビット/クロック(32ビット/4クロック)となる。必要帯域はレジスタ等に格納することでCPU等により設定変更可能にしてもよい。
残時間カウンタ算出部14は、バッファ12のデータ量を必要帯域で除算した値に比例した値を残時間カウンタとして算出する。すなわち、(残時間カウンタ)∝(バッファ12のデータ量[bit])/(必要帯域[bit/clock])である。データの転送方向がメモリシステム2からマスタ1である場合(メモリリードの場合)、残時間カウンタはバッファ12が空状態(バッファエンプティ)になるまでのクロック数に比例した数値を示す。一方、データの転送方向がマスタ1からメモリシステム2である場合(メモリライトの場合)、残時間カウンタはバッファ12が満状態(バッファフル)になるまでのクロック数に比例した数値を示す。算出した残時間カウンタが小さいほど、バッファエンプティやバッファフルへ到達するサイクル数が少なくなるため、データ転送におけるデータの欠損が発生する可能性があり緊急性が高い。
メモリシステム2は、図1に示すように、メモリ21と、メモリコントローラ22と、スレーブバスインターフェイス23と、を有している。メモリシステム2は、スレーブバスインターフェイス23を経由して転送されるマスタ1からのリード要求やライト要求に応じて、メモリ21からのデータの読み出しやデータの書き込みを実施する。
メモリ21は、例えばLPDDR4のような低電圧で駆動されるメモリであり、温度等に起因するばらつきを補償するキャリブレーションを、初期起動時だけでなく動作中も定期的に実施する必要があるメモリである。
メモリコントローラ22は、メモリ21に対するコマンド発行およびデータ転送を行う。また、メモリコントローラ22は、上記キャリブレーションの実施するために必要なコマンド発行も実施する。メモリコントローラ22は、上記キャリブレーションの実施中において、メモリ21に対してデータの読み出しやデータの書き込みを実施できない。
スレーブバスインターフェイス23は、マスタ1からのリード要求やライト要求を受け付ける。メモリコントローラ22が上記キャリブレーションを実施している期間において、スレーブバスインターフェイス23は、メモリコントローラ22が受付可能な範囲を超えたリード要求やライト要求に応答できない。すなわち、マスタ1は、メモリシステム2がキャリブレーションを実施している期間においてメモリアクセスが禁止される。マスタ1がメモリアクセスが禁止される期間を「メモリアクセス禁止期間」とする。キャリブレーションは動作中も定期的に実施する必要があるため、メモリアクセス禁止期間は間欠的に発生する。
バスアービタ3は、複数のマスタ1とメモリシステム2との間に設けられており、残時間カウンタに基づいて複数のマスタ1の調停を行う(調停工程)。バスアービタ3は、残時間カウンタが小さいマスタに優先的にバス使用権を付与する。バスアービタ3によってバス使用権を与えられたマスタ1が、メモリシステム2にアクセスできる。なお、バスアービタ3は、メモリシステム2と一体に設けられていてもよいし、メモリシステム2と別体に設けられていてもよい。
図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の優先順位が第三位となる。
ここで、各バッファ12のバッファサイズが異なっている場合には、バスアービタ3はバッファサイズの違いを考慮してバス優先権を調停することがより好ましい。例えば、バスアービタ3は、各バッファ12のバッファサイズに対応した重み付けを残時間カウンタに対して行ってからバス優先権を調停する。具体的には、バスアービタ3が調停に用いる残時間カウンタに重み付け係数(0<重み付け係数≦1)を乗算する。ここで、重み付け係数は各バッファ12のバッファサイズの比を示す係数であり、例えば最大のバッファサイズに対する比として表される。図3の例では全てのバッファ12のバッファサイズが等しいので、重み付け係数は全て「1」となる。
残時間カウンタ調整部4はマスタ1に対して、メモリアクセス禁止期間の開始までのバスアービタに提示する残時間カウンタを実際にマスタ1で実際に計算された値よりも小さく調整するオフセット(残時間カウンタオフセット)を、複数のマスタ1の少なくとも一つに付加する(残時間カウンタオフセット付加工程)。ここでマスタ1は、リアルタイム性があり常時データ処理等を実行するためにメモリアクセス禁止期間中にデータ転送におけるデータの欠損が発生する可能性が高くなる。それを回避するため、マスタ1はメモリアクセス禁止期間が開始する前に、メモリアクセス禁止期間中におけるデータの欠損を生じず処理を継続できるだけの蓄積データ量(必要バッファ量)をバッファに貯めておく、もしくはバッファに空きデータ量(必要バッファ量)を確保することが必要となる。残時間カウンタオフセット付加工程によりバスアービタに提示する残時間カウンタを必要バッファ量の分だけ小さくすることで、メモリアクセス禁止期間が開始するまで、必要バッファ量を確保し続けることができる。なお、メモリアクセス禁止期間の長さや発生タイミングは既知であるため、必要バッファ量は事前に算出可能である。
ここで、残時間カウンタオフセットが付加された残時間カウンタを「調整残時間カウンタ」と称する。すなわち(調整残時間カウンタ)=(マスタ1によって算出された残時間カウンタ)+(残時間カウンタオフセット)である。本実施形態においては、残時間カウンタの値が小さいほど緊急性は高いため、緊急性を高くする残時間カウンタオフセットは負の値である。
残時間カウンタ調整部4は、複数のマスタ1に対して残時間カウンタオフセットを付加する。残時間カウンタ調整部4は、複数のマスタ1に同じ値の残時間カウンタオフセットを付加してもよいし、複数のマスタ1ごとに異なる値の残時間カウンタオフセットを付加してもよい。残時間カウンタオフセットの値は、上記必要バッファ量の分以上の値とする必要がある。なお、残時間カウンタ調整部4は、リアルタイム処理を必要としない他のマスタに対しては残時間カウンタオフセットを付与しない。
マスタ1の残時間カウンタ算出部14は、残時間カウンタ算出部14が算出した残時間カウンタに残時間カウンタ調整部4から転送された残時間カウンタオフセットを付加して算出した調整残時間カウンタをバスアービタ3に転送する。
残時間カウンタ調整部4は、論理回路で構成されていてもよいし、CPUにおいて動作するソフトウェアで構成されていてもよい。残時間カウンタ調整部4は、メモリアクセス禁止期間に動作する必要があるため、論理回路で構成されていることが好ましい。
残時間カウンタ調整部4は、メモリアクセス禁止期間中において、残時間カウンタオフセットのオフセット量(絶対値)を小さくする。本実施形態においては、残時間カウンタ調整部4はメモリアクセス禁止期間中において、残時間カウンタオフセットの値をゼロとする。
次にデータ転送装置100の作用について説明する。図4は、メモリアクセス禁止期間前後におけるマスタ1(第一マスタ1a、第二マスタ1b、第三マスタ1c)の調整残時間カウンタの推移を示している。
マスタ1(第一マスタ1a、第二マスタ1b、第三マスタ1c)は、図4に示すように、メモリアクセス禁止期間の開始まで残時間カウンタオフセットが付加されており、調整残時間カウンタは実際に算出された残時間カウンタより小さい。バスアービタ3は、全てのマスタ1の残時間カウンタが安全水準付近となるように調停を行う。そのため、残時間カウンタオフセットが付加されたマスタ1は、バスアービタ3によるバス使用権の調停において、必要バッファ量を確保しながら通常の優先順位で調停が行われる。
データの転送方向がメモリシステム2からマスタ1である場合(メモリリードの場合)、マスタ1のバッファ12の蓄積データ量はより多くなる。一方、データの転送方向がマスタ1からメモリシステム2である場合(メモリライトの場合)、マスタ1のバッファ12の空きデータ量はより多くなる。
残時間カウンタ調整部4は、メモリアクセス禁止期間中において必要バッファ量をメモリアクセス禁止期間が開始されるまでに確保されるように付加する残時間カウンタオフセットの値を調整する。
データの転送方向がメモリシステム2からマスタ1である場合(メモリリードの場合)、メモリアクセス禁止期間中にバッファ12が空状態(バッファエンプティ)にならない十分な量のデータがメモリシステム2から読み出されてバッファ12に格納されるように、メモリアクセス禁止期間の開始前における残時間カウンタオフセットの値が調整される。
一方、データの転送方向がマスタ1からメモリシステム2である場合(メモリライトの場合)、メモリアクセス禁止期間中にバッファ12が満状態(バッファフル)にならない十分な量のデータがバッファ12から取り出されてメモリシステム2に対して書き込まれるように、メモリアクセス禁止期間の開始前における残時間カウンタオフセットの値が調整される。
マスタ1は、メモリアクセス禁止期間においてメモリアクセスが禁止される。そのため、図4に示すように、メモリアクセス禁止期間においてマスタ1の残時間カウンタは時間経過に従い小さくなる。しかしながら、メモリアクセス禁止期間の終了時において、いずれのマスタ1の残時間カウンタも危険水準には達しておらず、データ転送におけるデータの欠損は発生していない。
残時間カウンタ調整部4はメモリアクセス禁止期間の開始時において、残時間カウンタオフセットの値をゼロとする。図4に示すように、メモリアクセス禁止期間の開始前と終了後において、マスタ1の調整残時間カウンタはいずれも同水準であり、危険水準には達していない。そのため、バスアービタ3は、メモリアクセス禁止期間の終了時において、一部のマスタ1に集中的にバス使用権を付与するような調停を行うことなく、メモリアクセス禁止期間の開始前と同様の通常優先順位での調停を継続できる。
図5は、比較例として、残時間カウンタ調整部4を有さないデータ転送装置におけるマスタ1(第一マスタA、第二マスタB、第三マスタC)の残時間カウンタの推移を示している。メモリアクセス禁止期間の開始まで残時間カウンタオフセットが付加されていないため、危険水準はメモリアクセス禁止期間に耐えうるだけの必要バッファ量を確保した大きい水準に設定されていて、マスタ1の残時間カウンタはメモリアクセス禁止期間の終了時において複数のマスタが危険水準を大きく超えることとなり、複数マスタでの緊急性の高い調停が発生する。これにより通常優先順位での調停と異なり好適なスケジューリングが行えずメモリアクセス禁止期間にマスタ1はデータ転送におけるデータの欠損が発生する場合もあり得る。
比較例のデータ転送装置は、図5に示すように、メモリアクセス禁止期間の終了時において、第一マスタA、第二マスタB、第三マスタCの残時間カウンタの全てが危険水準に達している。バスアービタ3が、図5に示すように、残時間カウンタが危険水準に達しているマスタ1のうち優先度が高い第一マスタAに対して連続的にバス使用権を付与する調停を実施した場合、第一マスタAの残時間カウンタは安全水準まで戻る。しかしながら、優先度が低い第三マスタCは、バス使用権の付与を受けることができず、データ転送におけるデータの欠損が発生している。
本実施形態のデータ転送装置100によれば、メモリアクセス禁止期間が間欠的に発生するメモリシステム2を用いるデータ転送装置100において、より簡易な仕組みによりデータ転送におけるデータの欠損の発生を抑制することができる。残時間カウンタ等を用いてバス使用権の調停を実施する一般的なデータ転送装置に残時間カウンタ調整部4を追加するのみで、メモリアクセス禁止期間が間欠的に発生する場合であっても、データ転送におけるデータの欠損の発生を抑制することができる。残時間カウンタを用いてバス使用権の調停を実施するバスアービタ3側には、メモリアクセス禁止期間の発生に対応するための大きな仕様変更が不要である。
以上、本発明の第一実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。また、上述の実施形態および変形例において示した構成要素は適宜に組み合わせて構成することが可能である。
(変形例1)
例えば、上記実施形態において残時間カウンタ調整部4は、各マスタ1に対して残時間カウンタオフセットを付加し、マスタ1が算出した残時間カウンタに対して残時間カウンタオフセットを付加した調整残時間カウンタを算出していたが、調整残時間カウンタの算出態様はこれに限定されない。残時間カウンタオフセットの付加は、マスタ1ではなく、バスアービタ3が実施してもよい。
(変形例2)
例えば、上記実施形態においてマスタ1の残時間カウンタ算出部14は、バッファ12のデータ量と必要帯域とに基づいて残時間カウンタを算出していたが、残時間カウンタの算出態様はこれに限定されない。残時間カウンタ算出部14は、バッファのデータ量のみから残時間カウンタを算出してもよい。緊急性の予測精度は低下するが、より簡易に残時間カウンタを算出することができる。
(第二実施形態)
本発明の第二実施形態に係るデータ転送装置100Bについて、図6から図7を参照して説明する。以降の説明において、既に説明したものと共通する構成については、同一の符号を付して重複する説明を省略する。データ転送装置100Bは、第一実施形態のデータ転送装置100と比較して、残時間カウンタの調整方法が異なる。
データ転送装置100Bは、マスタ1と、メモリシステム2と、バスアービタ3と、残時間カウンタ調整部4Bと、を備えている。
残時間カウンタ調整部4Bは、複数のマスタ1に対して残時間カウンタオフセットを付加する。残時間カウンタ調整部4は、メモリアクセス禁止期間の終了時からメモリアクセス禁止期間の開始までに残時間カウンタオフセットのオフセット量(絶対値)を段階的に大きくする。
図6は、データ転送装置100Bにおけるメモリアクセス禁止期間前後におけるマスタ1の調整残時間カウンタの推移を示している。
マスタ1は、図6に示すように、メモリアクセス禁止期間の終了時からメモリアクセス禁止期間の開始まで段階的に変化する残時間カウンタオフセットが付加される。マスタ1からバスアービタ3に転送される調整残時間カウンタは急激に高くなることなく段階的に高くなるため、バスアービタ3は調整残時間カウンタが急激に高くなったマスタ1に対して極端にバス使用権の優先順位を下げることはない。他のマスタ1にも同様の処理を実施することで、あるマスタ1のみに集中的にバス使用権の付与を実施するような調停を行うことなく、効率的な調停を実施できる。
本実施形態のデータ転送装置100Bによれば、メモリアクセス禁止期間が間欠的に発生するメモリシステムを用いるデータ転送装置100において、より簡易な仕組みによりデータ転送におけるデータの欠損の発生を抑制することができる。段階的に変化する残時間カウンタオフセットを付加することで、残時間カウンタオフセット付与時のバスアービタ3の調停をスムーズに行うことができる。
以上、本発明の第二実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。また、上述の実施形態および変形例において示した構成要素は適宜に組み合わせて構成することが可能である。
(変形例3)
図7は、残時間カウンタ調整部4Bの変形例である残時間カウンタ調整部4Cによるマスタ1の調整残時間カウンタの推移を示している。
残時間カウンタ調整部4Cは、メモリアクセス禁止期間の終了時からメモリアクセス禁止期間の開始までにマスタ1ごとに時間差を設けて残時間カウンタオフセットを変化させる。図7に示すように、残時間カウンタ調整部4Cは、メモリアクセス禁止期間の終了後、まず第一マスタ1aの残時間カウンタオフセットのオフセット量(絶対値)を段階的に大きくする。その後、残時間カウンタ調整部4Cは第二マスタ1bの残時間カウンタオフセットのオフセット量(絶対値)を段階的に大きくする。
複数のマスタ1の残時間カウンタオフセットを同時に変化させる場合と比較すると、バスアービタ3において、バス使用権を要求する競合が発生しにくく、より効率的にバスを使用することができる。
本発明は、複数のマスタがメモリシステムに接続されるデータ転送装置に適用することができる。
100,100B データ転送装置
1 マスタ
1a 第一マスタ
1b 第二マスタ
1c 第三マスタ
11 データ処理部
12 バッファ
13 バスインターフェイス
14 残時間カウンタ算出部
2 メモリシステム
21 メモリ
22 メモリコントローラ
23 スレーブバスインターフェイス
3 バスアービタ
4,4B,4C 残時間カウンタ調整部

Claims (10)

  1. それぞれがバッファを有し、それぞれが前記バッファのデータ量に基づいて残時間カウンタを算出する複数のマスタと、
    前記複数のマスタとデータ転送を行い、前記複数のマスタからのアクセスが間欠的に禁止されるメモリアクセス禁止期間を有するメモリシステムと、
    前記残時間カウンタに基づいて前記複数のマスタの調停を行うバスアービタと、
    前記メモリアクセス禁止期間の開始までの前記残時間カウンタを調整する残時間カウンタオフセットを、前記複数のマスタの少なくとも一つに対応する前記残時間カウンタに付加する残時間カウンタ調整部と、を備える、
    データ転送装置。
  2. 前記複数のマスタは、前記バッファの前記データ量に加えて、前記データ転送に必要な帯域を用いて前記残時間カウンタを算出し、
    前記残時間カウンタは、前記バッファに格納した前記データ量が空状態もしくは満状態となるまでの時間が短いほど小さくなる、
    請求項1に記載のデータ転送装置。
  3. 前記残時間カウンタ調整部は、前記メモリアクセス禁止期間の終了時から前記メモリアクセス禁止期間の開始までに前記残時間カウンタオフセットのオフセット量を段階的に大きくする、
    請求項1または請求項2に記載のデータ転送装置。
  4. 前記残時間カウンタ調整部は、前記複数のマスタごとに異なる値の前記残時間カウンタを付加する前記残時間カウンタオフセットを付加する、
    請求項3に記載のデータ転送装置。
  5. 前記残時間カウンタ調整部は、前記複数のマスタごとに時間差を設けて前記残時間カウンタオフセットを変化させる、
    請求項1から請求項4のいずれか一項に記載のデータ転送装置。
  6. 複数のマスタとデータ転送を行い、前記複数のマスタからのアクセスが間欠的に禁止されるメモリアクセス禁止期間を有するメモリシステムにおけるデータ転送方法であって、
    前記複数のマスタがそれぞれ有するバッファのデータ量に基づいて前記複数のマスタごとに対応する残時間カウンタを算出する残時間カウンタ算出工程と、
    前記メモリアクセス禁止期間の開始までの前記残時間カウンタを調整する残時間カウンタオフセットを、前記複数のマスタの少なくとも一つに対応する前記残時間カウンタに付加する残時間カウンタオフセット付加工程と、
    前記残時間カウンタに基づいて前記複数のマスタの調停を行う調停工程と、
    を備える、
    データ転送方法。
  7. 前記残時間カウンタ算出工程は、前記バッファの前記データ量に加えて、前記データ転送に必要な帯域を用いて前記残時間カウンタを算出し、
    前記残時間カウンタは、前記バッファに格納した前記データ量が空状態もしくは満状態となるまでの時間が短いほど小さくなる、
    請求項6に記載のデータ転送方法。
  8. 前記残時間カウンタオフセット付加工程は、前記メモリアクセス禁止期間の終了時から前記メモリアクセス禁止期間の開始までに前記残時間カウンタオフセットのオフセット量を段階的に大きくする、
    請求項6または請求項7に記載のデータ転送方法。
  9. 前記残時間カウンタオフセット付加工程は、前記複数のマスタごとに異なる値の前記残時間カウンタを付加する前記残時間カウンタオフセットを付加する、
    請求項8に記載のデータ転送方法。
  10. 前記残時間カウンタオフセット付加工程は、前記複数のマスタごとに時間差を設けて前記残時間カウンタオフセットを変化させる、
    請求項6から請求項9のいずれか一項に記載のデータ転送方法。
JP2021562282A 2019-12-05 2019-12-05 データ転送装置およびデータ転送方法 Active JP7381603B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/047625 WO2021111583A1 (ja) 2019-12-05 2019-12-05 データ転送装置およびデータ転送方法

Publications (2)

Publication Number Publication Date
JPWO2021111583A1 JPWO2021111583A1 (ja) 2021-06-10
JP7381603B2 true JP7381603B2 (ja) 2023-11-15

Family

ID=76221567

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021562282A Active JP7381603B2 (ja) 2019-12-05 2019-12-05 データ転送装置およびデータ転送方法

Country Status (4)

Country Link
US (1) US11842071B2 (ja)
JP (1) JP7381603B2 (ja)
CN (1) CN114503089B (ja)
WO (1) WO2021111583A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003337741A (ja) 2002-05-21 2003-11-28 Sony Corp データ転送システム及び方法、並びに、アクセスモニタ装置
JP2004252523A (ja) 2003-02-18 2004-09-09 Fujitsu Ltd データ転送装置
JP2007108996A (ja) 2005-10-13 2007-04-26 Sharp Corp メモリ装置およびメモリ制御方法
JP2007280253A (ja) 2006-04-11 2007-10-25 Canon Inc 情報処理装置及び情報処理方法
WO2019043822A1 (ja) 2017-08-30 2019-03-07 オリンパス株式会社 メモリアクセス装置、画像処理装置、および撮像装置
JP2019134240A (ja) 2018-01-29 2019-08-08 キヤノン株式会社 画像処理装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3214736A (en) * 1959-04-20 1965-10-26 Burroughs Corp Magnetic tape scan with field selection
JPH05244426A (ja) * 1992-02-28 1993-09-21 Fujitsu Ltd 符号データ供給方式
JP3190852B2 (ja) * 1997-04-24 2001-07-23 甲府日本電気株式会社 情報処理システムのディスパッチ方式
JP2000029822A (ja) * 1998-07-15 2000-01-28 Matsushita Electric Ind Co Ltd ブリッジ装置
EP1289196A1 (de) * 2001-08-27 2003-03-05 Siemens Aktiengesellschaft Verfahren zur Übermittlung von Paketdaten unterschiedlicher Prioritätsstufen in einem Telekommunikationsnetz
JP2004055084A (ja) * 2002-07-23 2004-02-19 Renesas Technology Corp メモリ制御回路
JP2004078508A (ja) * 2002-08-16 2004-03-11 Nec Micro Systems Ltd バス調停回路、バス調停方法およびそのプログラム
JP4522808B2 (ja) 2004-09-29 2010-08-11 オリンパス株式会社 バス制御装置
WO2007079985A1 (en) * 2006-01-13 2007-07-19 Freescale Semiconductor, Inc. Protection system and method of operation therein
JP4455540B2 (ja) * 2006-06-15 2010-04-21 キヤノン株式会社 バスシステム及び調停方法
JP4105221B2 (ja) * 2006-09-20 2008-06-25 松下電器産業株式会社 中継伝送機器および中継伝送方法
US7774520B2 (en) * 2006-12-19 2010-08-10 Intel Corporation Method and apparatus for maintaining synchronization of audio in a computing system
JP2008269176A (ja) * 2007-04-18 2008-11-06 Canon Inc バスマスタ装置、情報処理システム、バスマスタ装置の制御方法並びにコンピュータプログラム
JP2009266152A (ja) * 2008-04-30 2009-11-12 Toshiba Corp コントローラ、ハードディスクドライブおよびコントロール方法
JP2011182369A (ja) * 2010-03-04 2011-09-15 Ricoh Co Ltd データ転送装置、データ転送方法、データ転送プログラム及び記録媒体
JP2012003527A (ja) 2010-06-17 2012-01-05 Fujitsu Semiconductor Ltd データ転送管理装置、データ転送管理方法およびデータ転送管理プログラム
JP5426036B2 (ja) * 2010-11-25 2014-02-26 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数のプロセッサのメモリ共有化のためのメモリアクセス装置、及びそのアクセス方法
JPWO2013014841A1 (ja) * 2011-07-22 2015-02-23 パナソニック株式会社 データ処理装置およびデータ処理方法
US9361145B1 (en) * 2014-06-27 2016-06-07 Amazon Technologies, Inc. Virtual machine state replication using DMA write records
US10430352B1 (en) * 2018-05-18 2019-10-01 Apple Inc. Methods and apparatus for reduced overhead data transfer with a shared ring buffer
JP2021196681A (ja) * 2020-06-10 2021-12-27 ルネサスエレクトロニクス株式会社 半導体装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003337741A (ja) 2002-05-21 2003-11-28 Sony Corp データ転送システム及び方法、並びに、アクセスモニタ装置
JP2004252523A (ja) 2003-02-18 2004-09-09 Fujitsu Ltd データ転送装置
JP2007108996A (ja) 2005-10-13 2007-04-26 Sharp Corp メモリ装置およびメモリ制御方法
JP2007280253A (ja) 2006-04-11 2007-10-25 Canon Inc 情報処理装置及び情報処理方法
WO2019043822A1 (ja) 2017-08-30 2019-03-07 オリンパス株式会社 メモリアクセス装置、画像処理装置、および撮像装置
JP2019134240A (ja) 2018-01-29 2019-08-08 キヤノン株式会社 画像処理装置

Also Published As

Publication number Publication date
US11842071B2 (en) 2023-12-12
JPWO2021111583A1 (ja) 2021-06-10
CN114503089B (zh) 2024-05-14
WO2021111583A1 (ja) 2021-06-10
CN114503089A (zh) 2022-05-13
US20220261179A1 (en) 2022-08-18

Similar Documents

Publication Publication Date Title
US5903283A (en) Video memory controller with dynamic bus arbitration
US7904666B2 (en) Access control device, access control integrated circuit, and access control method
US20120042105A1 (en) Bus arbitration apparatus
EP1852783B1 (en) Access arbiter and arbiterable condition verification device
JP2010282405A (ja) データ処理システム
US20150220460A1 (en) Arbitrating direct memory access channel requests
KR20230017865A (ko) Dram을 위한 리프레시 관리
US20130254444A1 (en) Image processing apparatus
JP4308578B2 (ja) 集積回路装置のバスアービター
JP7381603B2 (ja) データ転送装置およびデータ転送方法
JP2008040650A (ja) バスアービトレーション装置
EP3588318B1 (en) Semiconductor device and bus generator
JP4666143B2 (ja) データ転送処理装置
JP2006215621A (ja) Dma制御装置
JP5293516B2 (ja) データ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体
JP2004078508A (ja) バス調停回路、バス調停方法およびそのプログラム
EP1424634B1 (en) Avoidance of extended bus occupancy through simple control operation
JP6036806B2 (ja) バスアクセス調停回路およびバスアクセス調停方法
JP4151362B2 (ja) バス調停方式、データ転送装置、及びバス調停方法
JP7226084B2 (ja) 情報処理装置
JPH09185580A (ja) バスシステム
JP7259537B2 (ja) 情報処理装置
JP2009075942A (ja) Dmaコントローラ
JP7292044B2 (ja) 制御装置および制御方法
WO2003071409A1 (en) Systems and methods for fair arbitration between multiple request signals

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220805

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230815

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231003

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20231024

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231102

R151 Written notification of patent or utility model registration

Ref document number: 7381603

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151