説明

データ転送制御装置、データ転送システム及びデータ転送方法

【課題】実行中のDMA転送の転送速度要求を満たしつつ、DMA転送とアクセス先が競合するマスタのアクセスを実行可能にする。
【解決手段】本発明に係るデータ転送制御装置110は、CPU101及び第1のDMAC102からの要求に従い、第1の記憶装置107へアクセスする第1のIF105と、第1のDMAC102からの要求に従い、第2の記憶装置108へアクセスする第2のIF106と、第2のIF106が第2の記憶装置108にアクセスを開始してからの経過時間をカウントするカウンタ109とを備える。第1のIF105は、連続転送動作中に、CPU101から第1の記憶装置107へのアクセス要求を受けた場合において、経過時間が基準値以下の場合、CPU101から第1の記憶装置107へのアクセスを許可する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ダイレクトメモリアクセス(以下、DMAという)転送におけるアクセス競合を制御するためのデータ転送制御装置及びデータ転送システムに関するものである。
【背景技術】
【0002】
一般に情報処理装置では、DMAコントローラ(以下、DMACという)を用いて、DMA転送を行うことで、CPUを介さずに効率よくデータ転送を行うことができる。しかし、一般的にメモリアクセスに共通バスを使用している計算機においては、DMA転送中は、DMACがバスを占有するためにCPUによるアクセス及び他のDMA転送が実行できないという課題があった。
【0003】
これを解決する手段が特許文献1にて提示されている。特許文献1に記載の構成は、複数のバスと、複数のバスマスタと、バス制御部と、複数のバスに対応して設けられ転送データを格納する複数のデータ記憶部とを備える。そして、バス制御部がバス毎に独立に調停を行うことで、異なるバスに対する複数の転送要求を同時に実行することが可能となる。ただし、一つのバスに対し、二以上のバス獲得要求が発生した場合には、アクセスが競合するため、優先度に従いDMACにバス使用権が与えられる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2003−091501号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1で提示されている技術では、バスが競合しない場合には同時アクセスが可能であるが、アクセス先が競合した場合は、DMA転送期間中はCPU等のマスタのアクセスが待たされるという課題があった。
【0006】
一方で、DMA転送中にCPU等のマスタのアクセスを許可した場合には、マスタのアクセスによって後続のDMA転送に遅延が発生する。そのため、DMA転送速度の低下が発生することにより、要求されるDMA転送速度が満たされない恐れがあるという課題があった。
【0007】
本発明は、上記従来の課題を解決するものであり、実行中のDMA転送の転送速度要求を満たしつつ、DMA転送とアクセス先が競合するマスタのアクセスを実行可能にできるデータ転送制御装置、データ転送システム及びデータ転送方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本発明の一形態に係るデータ転送装置は、第1の記憶装置及び第2の記憶装置の一方から他方にデータを転送するデータ転送制御装置であって、前記第1の記憶装置に対してアクセスを行うマスタと、前記マスタから独立した第1のバスと、前記第1のバスを介して、前記第1の記憶装置及び前記第2の記憶装置の一方からデータを読み出し、かつ読み出したデータを他方へ書き込むデータ転送動作を繰り返し連続して行う連続転送動作を行う第1のDMAC(Direct Memory Access Controller)と、前記マスタ及び前記第1のDMACからの要求に従い、前記第1の記憶装置へアクセスする第1のインターフェース部と、前記第1のDMACからの要求に従い、前記第2の記憶装置へアクセスする第2のインターフェース部と、前記第2のインターフェース部が前記第2の記憶装置にアクセスを開始してからの第1の経過時間をカウントするカウンタとを備え、前記第1のインターフェース部は、前記連続転送動作中に、前記マスタから前記第1の記憶装置へのアクセス要求を受けた場合において、(1)前記第1の経過時間が第1の基準値以下の場合、前記マスタから前記第1の記憶装置へのアクセスを許可し、(2)前記第1の経過時間が前記第1の基準値より大きい場合、前記マスタから前記第1の記憶装置へのアクセスを禁止する第1のアクセス制御部を備える。
【0009】
ここで、DMACは転送元からの読み出しと転送先への書き込みとを交互に連続で行うことでデータ転送を行う。よって、一方の記憶装置にアクセスを行っている間、他方の記憶装置は後続のDMA転送開始までの間はアクセスが行われていない空き状態となる。
【0010】
そこで、本発明の一形態に係るデータ転送制御装置は、マスタと第1のDMACが第1の記憶装置に対するアクセス競合を起こすときに、第1の記憶装置におけるアクセスの空き状態期間を見積もり、第1の経過時間が第1の基準値以下の場合にはマスタのアクセスを許可する。これにより、当該データ転送装置は、DMA転送中であっても、DMA転送とアクセス先が競合するマスタのアクセスを実行可能にできる。また、当該データ転送制御装置は、第1の経過時間が第1の基準値より大きい場合にはマスタのアクセスを禁止する。これにより、当該データ転送装置は、実行中のDMA転送の転送速度要求を満たすことができる。
【0011】
また、前記第1のインターフェース部は、さらに、前記第1のDMACから前記第2の記憶装置への1回のアクセスに必要な第1のDMACアクセス時間と、前記マスタから前記第1の記憶装置への1回のアクセスに必要な第1のマスタアクセス時間とを保持する第1のレジスタを備え、前記第1のアクセス制御部は、前記第1のDMACアクセス時間から前記第1のマスタアクセス時間を減算することで、前記第1の基準値を算出してもよい。
【0012】
この構成によれば、本発明の一形態に係るデータ転送制御装置は、第1のDMACアクセス時間と第1のマスタアクセス時間とから第1の基準値を算出できる。
【0013】
また、前記第1のレジスタは、さらに、1回の前記データ転送動作の第1の遅延許容値を保持し、前記第1のアクセス制御部は、前記第1のDMACアクセス時間から前記第1のマスタアクセス時間を減算したうえで、前記第1の遅延許容値を加算することで、前記第1の基準値を算出してもよい。
【0014】
この構成によれば、本発明の一形態に係るデータ転送制御装置は、DMA転送の遅延量を遅延許容値内に抑えつつ、DMA転送中のマスタによる第1の記憶装置へのアクセスを実現できる。
【0015】
また、前記第1のインターフェース部は、さらに、1回の前記連続転送動作における全体遅延許容量を保持する第2のレジスタを備え、前記第1のアクセス制御部は、前記マスタから前記第1の記憶装置へのアクセス要求が発生した際に、前記第1のDMACアクセス時間から前記第1のマスタアクセス時間を減算したうえで、前記全体遅延許容量以下の第1の遅延許容値を加算することで、前記第1の基準値を算出し、前記第1の経過時間が前記第1の基準値以下の場合、前記マスタから前記第1の記憶装置へのアクセスを許可するとともに、前記第2のレジスタに保持されている前記全体遅延許容量を減らし、前記第2のレジスタに保持されている前記全体遅許容延量が予め定められた値以下になった場合、前記第1の基準値として、前記第1のDMACアクセス時間から前記第1のマスタアクセス時間を減算した値を用いてもよい。
【0016】
この構成によれば、本発明の一形態に係るデータ転送制御装置は、連続転送動作における全体の時間要求は満たしつつ、DMA転送中のマスタによる第1の記憶装置へのアクセスを実現できる。
【0017】
また、前記第1の遅延許容値は、前記全体遅延許容量であってもよい。
【0018】
この構成によれば、本発明の一形態に係るデータ転送制御装置は、連続転送動作における全体の時間要求は満たしつつ、DMA転送中のマスタによる第1の記憶装置へのアクセスを実現する制御を容易に行うことができる。
【0019】
また、前記第1のアクセス制御部は、前記全体遅延許容量が予め定められた閾値以上の場合、第1の値を前記遅延許容値として用い、前記全体遅延許容量が前記閾値未満の場合、前記第1の値の値より小さい第2の値を前記遅延許容値として用いてもよい。
【0020】
この構成によれば、本発明の一形態に係るデータ転送制御装置は、全体遅延許容量に余裕がある場合には、より多くのマスタからのアクセスを許可できる。
【0021】
また、前記第1のアクセス制御部は、前記第1の経過時間が前記第1の基準値以下の場合、前記マスタから前記第1の記憶装置へのアクセスを許可するとともに、前記第1の経過時間と前記第1のマスタアクセス時間とを加算し、加算した値から前記第1のDMACアクセス時間を減算することで、第1の遅延時間を算出し、前記第2のレジスタに保持されている前記全体遅延許容量から前記第1の遅延時間を減算することで、前記第2のレジスタに保持されている前記全体遅延許容量を更新してもよい。
【0022】
この構成によれば、本発明の一形態に係るデータ転送制御装置は、連続転送動作における全体の時間要求は満たしつつ、DMA転送中のマスタによる第1の記憶装置へのアクセスを実現できる。
【0023】
また、前記第2のレジスタは、1回の前記連続転送動作を分割した複数の部分区間の各々に対応する部分遅延許容量を保持し、前記第1のアクセス制御部は、前記マスタから前記第1の記憶装置へのアクセス要求が発生した際に、前記第1のDMACアクセス時間から前記第1のマスタアクセス時間を減算したうえで、対応する部分区間の前記部分遅延量を加算することで、前記第1の基準値を算出し、前記第1の経過時間が前記第1の基準値以下の場合、前記マスタから前記第1の記憶装置へのアクセスを許可するとともに、前記第2のレジスタに保持されている、対応する部分区間の前記部分遅延許容量を減らし、前記第2のレジスタに保持されている、対応する区間の前記部分遅延量が予め定められた値以下になった場合、前記第1の基準値として、前記第1のDMACアクセス時間から前記第1のマスタアクセス時間を減算した値を用いてもよい。
【0024】
この構成によれば、本発明の一形態に係るデータ転送制御装置は、マスタによるアクセスを連続転送動作中において均一化できる。
【0025】
また、前記第1のDMACは、1回の前記データ転送動作において、前記第1の記憶装置又は前記第2の記憶装置へ連続してアクセスする回数を示す連続アクセス回数を保持する第3のレジスタと、前記第1の記憶装置又は前記第2の記憶装置から、読み出したデータを保持するバッファとを備え、前記第1のDMACは、1回の前記データ転送動作において、前記第1の記憶装置及び前記第2の記憶装置の一方から前記連続アクセス回数分、連続してデータを読み出し、当該連続して読み出したデータを前記バッファに格納し、前記バッファに格納したデータを、前記連続アクセス回数分の書き込み動作で、前記第1の記憶装置及び前記第2の記憶装置の他方へ書き込み、前記カウンタは、前記第2のインターフェース部による、前記第2の記憶装置への前記連続アクセス回数分のアクセスのうち初回のアクセスが開始されてからの時間を前記第1の経過時間としてカウントしてもよい。
【0026】
この構成によれば、本発明の一形態に係るデータ転送制御装置は、1回のデータ転送動作において複数回のアクセスが連続して行われる場合にも適用できる。
【0027】
また、前記第1のインターフェース部は、さらに、前記第1のDMACから前記第2の記憶装置への1回のアクセスに必要な第1のDMACアクセス時間と、前記マスタから前記第1の記憶装置への1回のアクセスに必要な第1のマスタアクセス時間とを保持する第1のレジスタを備え、前記第1のアクセス制御部は、前記第1のDMACアクセス時間と前記連続アクセス回数との積から前記第1のマスタアクセス時間を減算することで、前記第1の基準値を算出してもよい。
【0028】
この構成によれば、本発明の一形態に係るデータ転送制御装置は、1回のデータ転送動作において複数回のアクセスが連続して行われる場合にも、第1の基準値を算出できる。
【0029】
また、前記第1のレジスタは、さらに、1回の前記データ転送動作の第1の遅延許容値を保持し、前記第1のアクセス制御部は、前記第1のDMACアクセス時間と前記連続アクセス回数との積から前記第1のマスタアクセス時間を減算したうえで、前記第1の遅延許容値を加算することで、前記第1の基準値を算出してもよい。
【0030】
この構成によれば、本発明の一形態に係るデータ転送制御装置は、DMA転送の遅延量を遅延許容値内に抑えつつ、DMA転送中のマスタによる第1の記憶装置へのアクセスを実現できる。
【0031】
また、前記データ転送制御装置は、さらに、前記第1のバスから独立した第2のバスを備え、前記マスタは、前記第2のバスを介して前記第1の記憶装置へのアクセスを行う第2のDMACであってもよい。
【0032】
この構成によれば、本発明に一形態に係るデータ転送装置は、実行中のDMA転送の転送速度要求を満たしつつ、DMA転送とアクセス先が競合する第2のDMACのアクセスを実行可能にできる。
【0033】
また、前記マスタは、前記第1のバスから独立した第2のバスを介して、前記第1の記憶装置及び前記第2の記憶装置にアクセスし、前記第2のインターフェース部は、さらに、前記マスタからの指示に従い、前記第2の記憶装置へアクセスし、前記カウンタは、さらに、前記第1のインターフェース部が前記第1の記憶装置にアクセスを開始してからの第2の経過時間をカウントし、前記第2のインターフェース部は、前記連続転送動作中に、前記マスタから前記第2の記憶装置へのアクセス要求を受けた場合、前記第2の経過時間が第2の基準値以下の場合、前記マスタから前記第2の記憶装置へのアクセスを許可し、前記第2経過時間が前記第2の基準値より大きい場合、前記マスタから前記第2の記憶装置へのアクセスを禁止する第2のアクセス制御部を備えてもよい。
【0034】
この構成によれば、本発明の一形態に係るデータ転送制御装置は、マスタと第1のDMACとが、第1及び第2の記憶装置に対して独立してアクセスを行い、いずれかの記憶装置でアクセス競合を起こす時に、実行中のDMA転送の転送速度要求を満たしつつ、DMA転送とアクセス先が競合するマスタのアクセスを実行可能にできる。
【0035】
また、前記第1のインターフェース部は、さらに、前記第1のDMACから前記第2の記憶装置への1回のアクセスに必要な第1のDMACアクセス時間と、前記マスタから前記第1の記憶装置への1回のアクセスに必要な第1のマスタアクセス時間とを保持する第1のレジスタを備え、前記第1のアクセス制御部は、前記第1のDMACアクセス時間から前記第1のマスタアクセス時間を減算することで、前記第1の基準値を算出し、前記第2のインターフェース部は、さらに、前記第1のDMACから前記第1の記憶装置への1回のアクセスに必要な第2のDMACアクセス時間と、前記マスタから前記第2の記憶装置への1回のアクセスに必要な第2のマスタアクセス時間とを保持する第4のレジスタを備え、前記第2のアクセス制御部は、前記第2のDMACアクセス時間から前記第2のマスタアクセス時間を減算することで、前記第2の基準値を算出してもよい。
【0036】
この構成によれば、本発明の一形態に係るデータ転送制御装置は、第1のDMACアクセス時間と第1のマスタアクセス時間とから第1の基準値を算出できるとともに、第2のDMACアクセス時間と第2のマスタアクセス時間とから第2の基準値を算出できる。
【0037】
また、前記第1のレジスタは、さらに、1回の前記データ転送動作の第1の遅延許容値を保持し、前記第1のアクセス制御部は、前記第1のDMACアクセス時間から前記第1のマスタアクセス時間を減算したうえで、前記第1の遅延許容値を加算することで、前記第1の基準値を算出し、前記第4のレジスタは、さらに、1回の前記データ転送動作の第2の遅延許容値を保持し、前記第2のアクセス制御部は、前記第2のDMACアクセス時間から前記第2のマスタアクセス時間を減算したうえで、前記第2の遅延許容値を加算することで、前記第2の基準値を算出してもよい。
【0038】
この構成によれば、本発明の一形態に係るデータ転送制御装置は、DMA転送の遅延量を遅延許容値内に抑えつつ、DMA転送中のマスタによる第1及び第2の記憶装置へのアクセスを実現できる。
【0039】
また、前記データ転送制御装置は、さらに、1回の前記連続転送動作における全体遅延許容量を保持する第2のレジスタを備え、前記第1のアクセス制御部は、前記マスタから前記第1の記憶装置へのアクセス要求が発生した際に、前記第1のDMACアクセス時間から前記第1のマスタアクセス時間を減算したうえで、前記全体遅延許容量以下の第1遅延許容値を加算することで、前記第1の基準値を算出し、前記第1の経過時間が前記第1の基準値以下の場合、前記マスタから前記第1の記憶装置へのアクセスを許可するとともに、前記全体遅延許容量を減らし、前記第2のレジスタに保持されている前記全体遅延量が予め定められた値以下になった場合、前記第1の基準値として、前記第1のDMACアクセス時間から前記第1のマスタアクセス時間を減算した値を用い、前記第2のアクセス制御部は、前記マスタから前記第2の記憶装置へのアクセス要求が発生した際に、前記第2のDMACアクセス時間から前記第2のマスタアクセス時間を減算したうえで、前記全体遅延許容量以下の第2遅延許容値を加算することで、前記第2の基準値を算出し、前記第2の経過時間が前記第2の基準値以下の場合、前記マスタから前記第2の記憶装置へのアクセスを許可するとともに、前記全体遅延許容量を減らし、前記第2のレジスタに保持されている前記全体遅延量が予め定められた値以下になった場合、前記第2の基準値として、前記第2のDMACアクセス時間から前記第2のマスタアクセス時間を減算した値を用いてもよい。
【0040】
この構成によれば、本発明の一形態に係るデータ転送制御装置は、連続転送動作における全体の時間要求は満たしつつ、DMA転送中のマスタによる第1及び第2の記憶装置へのアクセスを実現できる。
【0041】
また、前記マスタは、CPU(Central Processing Unit)であってもよい。
【0042】
この構成によれば、本発明に一形態に係るデータ転送装置は、実行中のDMA転送の転送速度要求を満たしつつ、DMA転送とアクセス先が競合するCPUアクセスを実行可能にできる。
【0043】
なお、本発明は、このようなデータ転送制御装置として実現できるだけでなく、データ転送制御装置に含まれる特徴的な手段をステップとするデータ転送方法として実現したり、そのような特徴的なステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、CD−ROM等の非一時的なコンピュータ読み取り可能な記録媒体、及びインターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
【0044】
さらに、本発明は、このようなデータ転送制御装置の機能の一部又は全てを実現する半導体集積回路(LSI)として実現したり、このようなデータ転送制御装置を含むデータ転送システムとして実現したりできる。
【発明の効果】
【0045】
以上より、本発明は、実行中のDMA転送の転送速度要求を満たしつつ、DMA転送とアクセス先が競合するマスタのアクセスを実行可能にできるデータ転送制御装置、データ転送システム及びデータ転送方法を提供できる。
【図面の簡単な説明】
【0046】
【図1】本発明の実施の形態1に係るデータ転送制御システムのブロック図である。
【図2】本発明の実施の形態1に係る第1のIFのフローチャートである。
【図3】本発明の実施の形態1に係る、DMA転送中のそれぞれの記憶装置へのアクセス状態を示すタイミングチャートである。
【図4】本発明の実施の形態1に係る、CPUアクセス許可時のタイミングチャートである。
【図5】本発明の実施の形態1に係る、CPUアクセス不許可時のタイミングチャートである。
【図6】本発明の実施の形態1に係る、比較例におけるタイミングチャートである。
【図7】本発明の実施の形態1に係るデータ転送制御システムの変形例のブロック図である。
【図8】本発明の実施の形態2に係るデータ転送制御システムのブロック図である。
【図9】本発明の実施の形態2に係る第1のIFのフローチャートである。
【図10】本発明の実施の形態2に係る、CPUアクセス許可時のタイミングチャートである。
【図11】本発明の実施の形態2に係る、CPUアクセス不許可時のタイミングチャートである。
【図12】本発明の実施の形態2に係る、CPUアクセス許可時のタイミングチャートである。
【図13】本発明の実施の形態2に係る、CPUアクセス不許可時のタイミングチャートである。
【図14】本発明の実施の形態3に係るデータ転送制御システムのブロック図である。
【図15】本発明の実施の形態3に係る、DMA連続転送全体のタイミングチャートである。
【図16】本発明の実施の形態3に係る第1のIFのフローチャートである。
【図17】本発明の実施の形態3に係る、CPUアクセス許可時のタイミングチャートである。
【図18】本発明の実施の形態3に係る、CPUアクセス不許可時のタイミングチャートである。
【図19】本発明の実施の形態4に係るデータ転送制御システムのブロック図である。
【図20】本発明の実施の形態4に係る第1のIFのフローチャートである。
【図21】本発明の実施の形態4に係る、DMA転送中のそれぞれの記憶装置へのアクセス状態を示すタイミングチャートである。
【図22】本発明の実施の形態4に係る、CPUアクセス許可時のタイミングチャートである。
【図23】本発明の実施の形態4に係る、CPUアクセス不許可時のタイミングチャートである。
【図24】本発明の実施の形態5に係るデータ転送制御システムのブロック図である。
【図25】本発明の実施の形態5に係る、CPUアクセス許可時のタイミングチャートである。
【図26】本発明の実施の形態5に係る、CPUアクセス不許可時のタイミングチャートである。
【図27】本発明の実施の形態6に係るデータ転送制御システムのブロック図である。
【図28】本発明の実施の形態7に係るデータ転送制御システムのブロック図である。
【図29】本発明の実施の形態8に係るデータ転送制御システムのブロック図である。
【図30】本発明の実施の形態9に係るデータ転送制御システムのブロック図である。
【図31】本発明の実施の形態10に係るデータ転送制御システムのブロック図である。
【図32】本発明の実施の形態11に係るデータ転送制御システムのブロック図である。
【図33】本発明の実施の形態12に係るデータ転送制御システムのブロック図である。
【発明を実施するための形態】
【0047】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
【0048】
(実施の形態1)
本発明の実施の形態1に係るデータ転送制御装置は、DMACが第2の記憶装置にアクセス中に、CPUから第1の記憶装置へのアクセス要求があった場合、DMACが第2の記憶装置にアクセスを開始した時刻からの第1の経過時間が基準値以下であるか否かを判定する。そして、当該データ転送制御装置は、第1の経過時間が基準値以下の場合にCPUから第1の記憶装置へのアクセスを許可する。
【0049】
これにより、当該データ転送制御装置は、実行中のDMA転送の転送速度要求を満たしつつ、DMA転送とアクセス先が競合するマスタのアクセスを実行可能にできる。
【0050】
まず、本発明の実施の形態1に係るデータ転送制御装置の構成を説明する。
【0051】
図1は、本発明の実施の形態1に係るデータ転送システム100の構成を示すブロック図である。図1に示すデータ転送システム100は、第1の記憶装置107と、第2の記憶装置108と、データ転送制御装置110とを備える。
【0052】
データ転送制御装置110は、第1の記憶装置107及び第2の記憶装置108の一方から他方にデータを転送する。例えば、データ転送制御装置110は、第1の記憶装置107からデータを読み出して処理を行うと共に、第2の記憶装置108から第1の記憶装置107に対してデータ転送を行う。
【0053】
第1の記憶装置107は、例えば、揮発性メモリであり、第2の記憶装置108は、第1の記憶装置107に比べアクセス時間が長い不揮発メモリである。なお、第1の記憶装置107及び第2の記憶装置108の種類は、これに限定されない。
【0054】
データ転送制御装置110は、CPU101と、第1のDMAC102と、第1のDMACバス104と、第1のIF105と、第2のIF106と、カウンタ109とを備える。
【0055】
CPU101は、第1の記憶装置107へのアクセスを行うマスタである。
【0056】
第1のDMACバス104は、本発明の第1のバスに相当し、CPU101から独立してデータ転送が可能である。
【0057】
第1のDMAC102は、第1のDMACバス104を介して、第1の記憶装置107と第2の記憶装置108との間でデータ転送を行う。具体的には、第1のDMAC102は、第1のDMACバス104を介して、連続転送動作を行う。ここで連続転送動作とは、第1の記憶装置107及び第2の記憶装置108の一方からデータを読み出し、かつ読み出したデータを他方へ書き込むデータ転送動作を繰り返し連続して行う動作である。また、この連続転送動作において、第1の記憶装置107及び第2の記憶装置108の一方からデータを読み出す動作と、読み出したデータを他方へ書き込む動作とは時系列に排他的に行われる。また、以下ではこの連続転送動作をDMA転送又はDMA転送動作とも呼ぶ。
【0058】
これらCPU101と第1のDMAC102はそれぞれ独立して動作する。
【0059】
第1のIF105は、本発明の第1のインターフェース部に相当し、第1の記憶装置107へのアクセスを制御する。具体的には、第1のIF105は、CPU101及び第1のDMAC102からの要求に従い、第1の記憶装置107へアクセスする。
【0060】
第2のIF106は、本発明の第2のインターフェース部に相当し、第2の記憶装置108へのアクセスを制御する。具体的には、第2のIF106は、第1のDMAC102からの要求に従い、第2の記憶装置108へアクセスする。また、第2のIF106は、第2の記憶装置108へアクセスを開始した際に、アクセス開始信号をカウンタ109へ出力する。
【0061】
カウンタ109は、第2のIF106が第2の記憶装置108にアクセスを開始してからの第1の経過時間(カウント値)をカウントする。具体的には、カウンタ109は、第2のIF106からアクセス開始信号を受け取るとカウントを開始する。また、カウンタ109は、アクセス制御部152にカウント値を渡す。
【0062】
第1のIF105は、第1のレジスタ151と、アクセス制御部152とを備える。
【0063】
第1のレジスタ151は、レジスタ153及び154を含む。
【0064】
レジスタ153は、DMACアクセス時間T1を保持する。このDMACアクセス時間T1は、本発明の第1のDMACアクセス時間に相当し、第1のDMAC102から第2の記憶装置108への1回のアクセスに必要な時間を示す。具体的には、DMACアクセス時間T1は、第1のDMAC102から第2の記憶装置108への1回のアクセスに必要なクロックのサイクル数を示す。
【0065】
レジスタ154は、CPUアクセス時間T2を保持する。このCPUアクセス時間T2は、本発明の第1のマスタアクセス時間に相当し、CPU101から第1の記憶装置107への1回のアクセスに必要な時間を示す。具体的には、CPUアクセス時間T2は、CPU101から第1の記憶装置107への1回のアクセスに必要なクロックのサイクル数を示す。
【0066】
アクセス制御部152は、本発明の第1のアクセス制御部に相当し、第1のDMAC102による連続転送動作中における、CPU101から第1の記憶装置107へのアクセスの可否を判定する。
【0067】
具体的には、アクセス制御部152は、連続転送動作中に、CPU101から第1の記憶装置107へのアクセス要求を受けた場合、第1の基準値と、カウンタ109でカウントされた第1の経過時間(カウント値)とを比較する。そして、アクセス制御部152は、第1の経過時間が第1の基準値以下の場合、CPU101から第1の記憶装置107へのアクセスを許可する。また、アクセス制御部152は、第1の経過時間が第1の基準値より大きい場合、CPU101から第1の記憶装置107へのアクセスを禁止する。ここで、第1の基準値とは、DMACアクセス時間T1からCPUアクセス時間T2を減算した値である。つまり、アクセス制御部152は、DMACアクセス時間T1からCPUアクセス時間T2を減算することで、第1の基準値を算出する。
【0068】
以下、以上のように構成されたデータ転送制御装置110の動作を説明する。
【0069】
本発明は、DMA転送中の動作を特徴とするものである。よって、以下では、DMA転送を実行中の動作を説明する。
【0070】
まず、第1のDMAC102の動作を説明する。第1のDMAC102は、転送元の記憶装置と転送先の記憶装置とに交互に連続してアクセスすることで連続転送動作を行う。ここで、第1の記憶装置107から第2の記憶装置108へのデータ転送を考える。この場合、第1のDMAC102は、まず第1のIF105に対して、第1の記憶装置107からのデータ読み出し要求を発行する。そして、第1の記憶装置107からのデータ読み出しが完了すると、第1のDMAC102は、第2のIF106に対して、第2の記憶装置108へのデータ書き込み要求を発行することで、先ほど読み出したデータを第2の記憶装置108に書き込む。データ書き込みが完了すると、第1のDMAC102は、引き続き、アドレスを更新し、再度第1の記憶装置107に対する読み出しを開始する。第1のDMAC102は、以降同様に交互にアクセスを実行する。第1のDMAC102は、最終的に転送すべきデータの転送が完了すると連続転送動作を終了する。
【0071】
次に、第1のIF105の動作を説明する。
【0072】
図2は、DMA転送を実行するときの第1のIF105による動作のフローチャートである。
【0073】
まず、CPU101又は第1のDMAC102により、レジスタ153にDMACアクセス時間T1が設定され、レジスタ154にCPUアクセス時間T2が設定される(S101)。なお、このDMACアクセス時間T1及びCPUアクセス時間T2は、連続転送動作の前に予め設定されていてもよいし、連続転送動作ごとに、DMACアクセス時間T1及びCPUアクセス時間T2のうち少なくとも一方が設定されてもよい。
【0074】
また、以下では、CPU101から第1の記憶装置107へのアクセスをCPUアクセスと呼び、第1のDMAC102から第1の記憶装置107又は第2の記憶装置108へのアクセスをDMAアクセスと呼ぶ。また、CPUアクセスの要求をCPUアクセス要求と呼び、DMAアクセスの要求をDMAアクセス要求と呼ぶ。
【0075】
ここで、図2に示すステップS102の時点で、第1のIF105でCPUアクセスが実行中であった場合には、CPUアクセスが完了後に連続転送動作を開始してもよいし、CPUアクセスをキャンセルして連続転送動作を開始してもよいものとする。
【0076】
最初に、連続転送動作中にCPUアクセスが発生しない場合の動作を、図2及び図3を用いて説明する。
【0077】
まず、第1のIF105は、DMAC102からのアクセス要求を受け取り(S102)、DMAアクセスを開始する(S103)。当該DMAアクセスが完了すると(S104)、次に、第1のDMAC102は第2の記憶装置108へのアクセスを行う。この間は第1のIF105は処理を行わない。その後、第2の記憶装置108へのアクセスが終了し(S106でYes)、かつ、ステップS110において連続転送動作が完了していなければ(S110でNo)、第1のIF105は、再度ステップS102でDMAアクセス要求を受け取り、DMAアクセスを実行する(S103)。最終的にステップS110において連続転送動作が完了していれば(S110でYes)、DMA連続転送動作が終了する。
【0078】
図3は、このときの第1の記憶装置107及び第2の記憶装置108へのアクセス状況を示す図である。図3に示すように、連続転送動作において第1のDMAC102は、第1の記憶装置107と第2の記憶装置108とに交互にアクセスを行っている。
【0079】
次に、第1のDMAC102が第1の記憶装置107にアクセス中、つまり、図2におけるステップS102からステップS104の期間中にCPUアクセス要求が発行された場合の動作を説明する。
【0080】
このときは、DMAアクセスを実行中のため、CPUアクセス要求は受理されない。
【0081】
次に、第1のDMAC102が第1の記憶装置107にアクセスを行っていないとき、すなわち図2におけるステップS104の後からステップS110の期間中にCPUアクセス要求が発行された場合の動作、又は、ステップS102からステップS104の期間に発行され受理されなかったCPUアクセス要求がステップS104のDMAアクセス完了時点まで待ち状態であった場合の動作を説明する。
【0082】
まず、DMAアクセス終了(S104)の後、カウンタ109は、第2の記憶装置108へのDMAアクセスの開始と同時に、カウントを開始する(S105)。
【0083】
その後、第1のIF105は、第1の記憶装置107へのDMAアクセスが終了するまでの期間において(S106でNo)、所定の期間ごとに、CPUアクセス要求が発行されたか否かを判定する(S107)。
【0084】
CPUアクセス要求が発行された場合(S107でYes)、第1のIF105は、当該CPUアクセスの可否を判定する。具体的には、第1のIF105は、カウンタ109によるカウンタ値が第1の基準値以下の場合(S108でYes)には、CPUアクセスを実行する(S109)。また、第1のIF105は、カウンタ109によるカウンタ値が第1の基準値より大きい場合(S108でNo)には、CPUアクセス要求を受理しない。
【0085】
このアクセス判定動作の具体例を、図4及び図5を用いて説明する。また、図4及び図5において、カウント値は、第1のDMAC102による第2の記憶装置108へのアクセス開始からの第1の経過時間であり、カウンタ109から値が出力されている。また、残り期間T3は、CPUアクセス要求の発生から後続の第1の記憶装置107に対するDMAアクセス開始までの期間を示し、これはDMACアクセス時間T1からカウント値を減算することで算出できる。
【0086】
図4は、CPUアクセス要求の発生時点で、後続のDMAアクセス開始までの残り期間T3より、CPUアクセス時間T2が小さい場合の動作例を示す図である。この場合、CPUアクセス要求は受理され、CPUアクセスが実行される。また、DMA転送の動作自体は図3と同様となり、DMA転送を阻害することなくCPU101によるアクセスが実行される。
【0087】
図5は、残り期間T3より、CPUアクセス時間T2が大きい場合の動作例を示す図である。この場合、CPUアクセスを許可してしまうと、当該CPUアクセスが後続の第1の記憶装置107に対するDMA転送と競合することになる。よって、この場合は、CPUアクセスは許可されない。
【0088】
図6は、比較のための図であり、残り期間T3より、CPUアクセス時間T2が大きい場合において、本発明の実施の形態1に係る処理を行わない場合の動作例を示す図である。図6に示すように、このような場合に、CPUアクセスを許可してしまうと、当該CPUアクセスが後続の第1の記憶装置107に対するDMA転送と競合することになる。これにより、後続のDMA転送が遅延してしまう。
【0089】
以上のように、本発明の実施の形態1に係るデータ転送制御装置110は、後続のDMAアクセス開始までの残り期間T3より、CPUアクセス時間T2が小さい場合にのみCPUアクセスを許可する。これにより、当該データ転送制御装置110は、後続のDMAアクセスを遅延させることなく、CPU101による第1の記憶装置107へのアクセスを実行できる。
【0090】
なお、上記説明では、第1のレジスタ151がDMACアクセス時間T1及びCPUアクセス時間T2を保持する例を説明したが、図7に示すように、第1のレジスタ151は、上記第1の基準値(=T2−T1)を保持するレジスタ155を含んでもよい。この場合、アクセス制御部152は、当該第1の基準値とカウント値とを比較することによりアクセス判定を行う。
【0091】
また、図4では、次のDMA転送を開始するまでにCPUアクセスが1度発生する動作例を記載しているが、後続のDMAアクセス開始までの残り期間T3よりCPUアクセス時間T2が小さい条件を満たすのであれば、次のDMA転送を行うまでに何度CPUアクセスを実行してもよい。
【0092】
また、図1に示す例では、データ転送システム100は、一つのCPU101のみを含むが、第1のDMAC102と独立したバスを持ち、第1の記憶装置107に対してアクセスを行う、任意の個数のCPUを含んでもよい。この場合も、簡単な機能の追加で同様の効果を実現できる。
【0093】
また、図1に示す例では、第1のDMAC102が2個の記憶装置にアクセス可能な例を示したが、第1のDMAC102は、第1の記憶装置107を含む3個以上の記憶装置にアクセス可能であってもよい。この場合も、簡単な機能の追加で同様の効果を実現できる。
【0094】
また、上記では主に、第1の記憶装置107から第2の記憶装置108へデータを転送する例を述べたが、本発明は、第1の記憶装置107及び第2の記憶装置108の一方からデータを読み出し、かつ読み出したデータを他方へ書き込むデータ転送動作を繰り返し連続して行う連続転送動作を行う場合に適用できる。
【0095】
また、上述したように、第1の記憶装置107は、例えば、揮発性メモリであり、第2の記憶装置108は、第1の記憶装置107に比べアクセス時間が長い不揮発メモリである。このような場合に本発明の実施の形態1に係るデータ転送制御装置110を用いることで、アクセス時間の長い第2の記憶装置108に保持されているデータを順次第1の記憶装置107に転送すると共に、第1の記憶装置107からデータを読み出すことができるので、効率よく処理を実行できる。
【0096】
なお、接続される記憶装置はデータアクセスが可能な装置であればその構成は上記に制限されない。
【0097】
(実施の形態2)
本発明の実施の形態2では、上述した実施の形態1の変形例について説明する。本発明の実施の形態2に係るデータ転送制御装置210は、さらに、遅延許容値T4を用いて、CPUアクセスの可否を判定する。
【0098】
図8は、本発明の実施の形態2に係るデータ転送システム200の構成を示すブロック図である。図8に示すデータ転送制御装置210は、実施の形態1に係るデータ転送制御装置110に対して、第1のIF205の構成が異なる。具体的には、第1のレジスタ151は、さらに、1回のデータ転送動作における遅延の許容値である遅延許容値T4を保持するレジスタ256を有する。この遅延許容値T4は本発明の第1の遅延許容値に相当する。また、アクセス制御部252は、CPUアクセスの可否の判定に当該遅延許容値T4を使用する。それ以外の構成要素は実施の形態1と同様である。
【0099】
上記実施の形態1では、DMA転送と競合しない場合にのみCPUアクセスを許可していた。それに対し、本発明の実施の形態2では、一定値までDMA転送の遅延を許容し、競合した場合でもDMA転送を遅延させてCPUアクセスを実行する。
【0100】
具体的には、アクセス制御部252は、DMACアクセス時間T1からCPUアクセス時間T2を減算したうえで、遅延許容値T4を加算することで、第1の基準値を算出する。次に、アクセス制御部252は、算出した第1の基準値と、カウンタ109でカウントされた第1の経過時間(カウント値)とを比較する。そして、アクセス制御部252は、第1の経過時間が第1の基準値以下の場合、CPU101から第1の記憶装置107へのアクセスを許可する。また、アクセス制御部252は、第1の経過時間が第1の基準値より大きい場合、CPU101から第1の記憶装置107へのアクセスを禁止する。
【0101】
図9は、本発明の実施の形態2におけるDMA転送中の第1のIF205による動作のフローチャートである。なお、図9に示す処理は、図2に示す処理に対して、ステップS201及びS208の処理が異なる。また、図9に示す処理は、さらに、ステップS211の処理を含む。
【0102】
まず、CPU101又は第1のDMAC102により、レジスタ153にDMACアクセス時間T1が設定され、レジスタ154にCPUアクセス時間T2が設定され、レジスタ256に遅延許容値T4が設定される(S201)。
【0103】
図9において、DMAアクセス要求が発行された時(S102)、CPUアクセスが既に実行中であれば(S211でYes)、CPUアクセスが完了するまでDMA転送が待たされる。ステップS211でCPUアクセスが終了すると、DMAアクセスが実行される(S103)。フローチャートのそれ以外の動作は実施の形態1と同様である。
【0104】
また、ステップS103からステップS104のDMAアクセス実行中は、実施の形態1と同様にCPUアクセス要求は受理されない。
【0105】
ステップS104のDMAアクセス完了以降にCPUアクセス要求が存在する場合(S107でYes)は、アクセス制御部252はアクセス判定を行い、CPUアクセスの可否を決定する(S208)。
【0106】
このときのアクセス判定について図10及び図11を用いて説明する。図10及び図11において、遅延許容値T4はDMA転送に遅延が発生しても要求性能を満たすことができる遅延の許容時間であり、レジスタ256に保持されている。
【0107】
図10は、CPUアクセス要求の発生時点で、後続のDMAアクセス開始までの残り期間T3と遅延許容値T4との合計値より、CPUアクセス時間T2の方が小さい場合の動作例を示す図である。この場合、CPUアクセス要求は受理され、CPUアクセスが実行される。また、図10に示すDMAアクセス要求発行時点ではCPUアクセスを実行中のため、後続のDMA転送は待ち状態になり遅延が発生するが、この時のDMA転送の遅延は設定されている遅延許容値T4以内に収まっている。
【0108】
図11は、後続のDMAアクセス開始までの残り期間T3と遅延許容値T4との合計値より、CPUアクセス時間T2の方が大きい場合の動作例を示す図である。この場合、CPUアクセスを許可してしまうと、後続のDMA転送の遅延が設定されている遅延許容値T4よりも大きくなってしまうため、CPUアクセスは許可されない。
【0109】
以上のように、本発明の実施の形態2に係るデータ転送制御装置210は、DMA転送の遅延を設定した遅延許容値以内に収めつつCPUアクセスを実行できる。
【0110】
また、上述した実施の形態1においては、DMACアクセス時間T1よりCPUアクセス時間T2の方が小さい時のみCPUアクセスを行うことができるが、実施の形態2においては、遅延許容値T4の値によっては、DMACアクセス時間T1よりCPUアクセス時間T2が大きい場合でもCPUアクセスを実現可能である。この時の動作を図12及び図13を用いて説明する。
【0111】
この時も同様に、図12に示すようにDMA転送の遅延が、設定された遅延許容値T4内に収まるのであればCPUアクセスを実行できる。また、同様に、図13に示すようにDMA転送の遅延が遅延許容値T4を超える場合にはCPUアクセスは許可されない。
【0112】
なお、実施の形態2に係るデータ転送制御装置210に、上述した実施の形態1と同様の変形例を適用してもよい。
【0113】
例えば、第1のレジスタ151は、DMACアクセス時間T1、CPUアクセス時間T2、及び遅延許容値T4のかわりに、第1の基準値(=T1−T2+T4)を保持していてもよい。
【0114】
(実施の形態3)
本発明の実施の形態3では、上述した実施の形態1の変形例について説明する。本発明の実施の形態3に係るデータ転送制御装置310は、さらに、全体遅延許容量T5を用いて、CPUアクセスの可否を判定する。
【0115】
図14は、本発明の実施の形態3に係るデータ転送システム300の構成を示すブロック図である。図14に示すデータ転送制御装置310は、実施の形態1に係るデータ転送制御装置110に対して、第1のIF305の構成が異なる。具体的には、第1のIF305は、さらに、第2のレジスタ357を備える。また、アクセス制御部352の機能が、アクセス制御部152と異なる。
【0116】
第2のレジスタ357は、第1のDMAC102による一度の連続転送動作における全体遅延許容量T5を保持するレジスタ358を含む。この全体遅延許容量T5について図15を用いて説明する。
【0117】
第1のDMAC102は予め決まった量のデータを連続して転送する連続転送動作を行う。この時、図15に示すDMA転送要求時間は、DMA転送を完了させる必要がある時刻までの経過時間であり設計時に与えられている。また、最速DMA転送完了時間は、DMA転送がアクセス競合で阻害されなかった場合に最速でDMA転送を完了することができる時間であり、一度のアクセスにかかる時間と必要アクセス回数とから予め算出できる。全体遅延許容量T5は、これらの値から算出でき、DMA転送に途中で遅延が発生したとしてもDMA転送要求時間内にDMA転送を完了させることができる遅延時間の許容量である。
【0118】
アクセス制御部352は、CPU101から第1の記憶装置107へのアクセス要求が発生した際に、以下の処理を行う。
【0119】
まず、アクセス制御部352は、DMACアクセス時間T1からCPUアクセス時間T2を減算したうえで、全体遅延許容量T5を加算することで、第1の基準値を算出する。そして、アクセス制御部352は算出した第1の基準値を用いて、CPUアクセスの可否を判定する。
【0120】
また、アクセス制御部352は、カウント値が第1の基準値以下であり、CPUアクセスを許可した場合、カウンタ値とCPUアクセス時間T2とを加算し、加算した値からDMACアクセス時間T1を減算することで、遅延時間T6を算出する。この遅延時間T6は本発明の第1の遅延時間に相当する。次に、アクセス制御部352は、第2のレジスタ357に保持されている全体遅延許容量T5から遅延時間T6を減算することで、第2のレジスタ357に保持されている全体遅延許容量T5を更新する。
【0121】
図16は、本発明の実施の形態3におけるDMA転送中の第1のIF305による動作のフローチャートである。なお、図16に示す処理は、図9に示す処理に対して、ステップS301及びS308の処理が異なる。また、図16に示す処理は、さらに、ステップS312の処理を含む。
【0122】
まず、CPU101又は第1のDMAC102により、レジスタ153にDMACアクセス時間T1が設定され、レジスタ154にCPUアクセス時間T2が設定され、レジスタ358に全体遅延許容量T5が設定される(S301)。
【0123】
また、ステップS104のDMAアクセス完了以降にCPUアクセス要求が存在する場合(S107でYes)は、アクセス制御部352はアクセス判定を行い、CPUアクセスの可否を決定する(S308)。
【0124】
このアクセス判定について、図17及び図18を用いて説明する。また、実施の形態3ではアクセス判定と同時に、第1のレジスタ151及び第2のレジスタ357の値を更新する。その動作についても説明する。
【0125】
説明のために、第1のレジスタ151は実施の形態1と同様の構成を有し、DMACアクセス時間T1、及びCPUアクセス時間T2を保持するとする。また、残り期間T3はDMACアクセス時間T1からカウント値を引くことで算出される。
【0126】
なお、これらの値は第1のレジスタ151に設定される値を限定するものではなく、アクセス許可を判定する第1の基準値を第1のレジスタ151に保持しておいてもよい。
【0127】
図17は、全体遅延許容量T5が十分大きい値のときの動作例を示す図である。このとき、カウント値は、第1の基準値(=T1−T2+T5)以下なので(S308でYes)、CPUアクセス要求は受理され、CPUアクセスが実行される(S109)。
【0128】
次に、アクセス制御部352は、遅延時間T6を算出する。この遅延時間T6は、CPUアクセスによって後続のDMAアクセスに遅延が発生した場合の遅延値である。このとき、DMA転送は遅延時間T6の時間だけ遅延が発生しているため、アクセス制御部352は、第2のレジスタ357に保持されている全体遅延許容量T5から遅延時間T6を減算し、これを新しい全体遅延許容量T5として第2のレジスタ357に保持する(S312)。
【0129】
図18は、DMA転送に遅延が生じた結果、第2のレジスタ357に保持している全体遅延許容量T5がCPUアクセス時間T2よりも小さくなったときの動作例を示す図である。このとき、CPUアクセスによりDMA転送が遅延すると、場合によってはDMA転送の遅延許容量を超え、DMA転送要求を満たさない恐れがある。したがって、アクセス制御部352は、カウント値が第1の基準値(=T1−T2+T5)より大きい(S308でNo)ことにより、後続のDMA転送に遅延が発生する場合にはCPUアクセスを許可しない。
【0130】
以上のように、本発明の実施の形態3に係るデータ転送制御装置310は、DMA転送の遅延が発生するたびに全体遅延許容量T5を再計算し、全体遅延許容量T5を元にアクセス判定の基準値を更新する。これにより、データ転送制御装置310は、DMA転送に要求される完了時間は満たしつつ、柔軟にCPUによるアクセスを実行できる。
【0131】
なお、実施の形態3に係るデータ転送制御装置310に、上述した実施の形態1又は2と同様の変形例を適用してもよい。
【0132】
また、アクセス制御部352は、DMA転送の遅延時間T6を算出するのではなく、DMA転送に遅延が発生するたびに、予め定められた値を全体遅延許容量T5から減算してもよい。
【0133】
また、上記説明では、DMACアクセス時間T1からCPUアクセス時間T2を減算した値に全体遅延許容量T5を加算した値を第1の基準値として用いているが、実施の形態2と同様の遅延許容値T4を用いて、DMACアクセス時間T1からCPUアクセス時間T2を減算した値に遅延許容値T4を加算した値を第1の基準値として用いてもよい。この場合、アクセス制御部352は、上記と同様に、遅延時間T6を算出し、順次、全体遅延許容量T5から遅延時間T6を減算する。そして、全体遅延許容量T5が遅延許容値T4以下になった場合に、アクセス制御部352は、全体遅延許容量T5を用いて、第1の基準値を算出する。
【0134】
さらに、アクセス制御部352は、上記の遅延許容値T4を、残りの全体遅延許容量T5に応じて、段階的に変化させてもよい。例えば、全体遅延許容量T5の初期値が100サイクルの場合、アクセス制御部352は、全体遅延許容量T5が30サイクル以上の場合は、遅延許容値T4を10サイクルに設定し、全体遅延許容量T5が30サイクル未満の場合は、遅延許容値T4を5サイクルに設定する。
【0135】
また、アクセス制御部352は、一回の連続転送動作を複数の期間に分け、それぞれの期間ごとに全体遅延許容量T5を設定してもよい。言い換えると、第2のレジスタ357は、1回の連続転送動作を分割した複数の部分区間の各々に対応する部分遅延許容量を保持する。また、アクセス制御部352は、ある部分区間においては、上述した処理における全体遅延許容量T5の代わりに、当該部分区間に対応する部分遅延許容量を用いればよい。
【0136】
(実施の形態4)
本発明の実施の形態4では、上述した実施の形態1の変形例を説明する。本発明の実施の形態4では、一回のデータ転送動作において、各記憶装置に連続してアクセスを行う場合を説明する。
【0137】
図19は、本発明の実施の形態4に係るデータ転送システム400の構成を示すブロック図である。図19に示すデータ転送制御装置410は、実施の形態1に係るデータ転送制御装置110に対して、第1のDMAC402、第1のIF405に含まれるアクセス制御部452、及び第2のIF406の機能が異なる。
【0138】
第1のDMAC402は、バッファ421と、第3のレジスタ422とを含む。第3のレジスタ422は、1回のデータ転送動作において、第1の記憶装置107又は第2の記憶装置108へ連続してアクセスする回数を示す連続アクセス回数423を保持する。
【0139】
バッファ421は、第1の記憶装置107又は第2の記憶装置108から、読み出したデータを保持する。
【0140】
第1のDMAC402は、1回のデータ転送動作において、第1の記憶装置107及び第2の記憶装置108の一方から連続アクセス回数423分、連続してデータを読み出し、当該連続して読み出したデータをバッファ421に格納する。その後、第1のDMAC402は、バッファ421に格納したデータを、連続アクセス回数423分の書き込み動作で、第1の記憶装置107及び第2の記憶装置108の他方へ書き込む。
【0141】
また、カウンタ109は、第2のIF406による、第2の記憶装置108への連続アクセス回数423分のアクセスのうち初回のアクセスが開始されてからの時間を第1の経過時間としてカウントする。具体的には、第2のIF406は、連続アクセスの初回アクセス時にアクセス開始信号を発行する。そして、カウンタ109は、当該アクセス開始信号に応じて、カウントを開始する。
【0142】
以下、第1のDMAC402の動作を説明する。ここでは、第1の記憶装置107から第2の記憶装置108へデータを転送する連続転送動作を行う場合を例に挙げる。まず、第1のDMAC402は第1の記憶装置107からのデータ読み出しを実行し、読み出したデータをバッファ421に保持する。引き続き、第1のDMAC402は、第1の記憶装置107に対して連続でアクセスを行い、読み出したデータを順次バッファ421に保持する。第1のDMAC402は、この動作を第3のレジスタ422に保持されている連続アクセス回数423分繰り返す。なお、バッファ421は一度の読み出しデータサイズ×連続アクセス回数423分のデータを保持することができるものとする。その後、第1のDMAC402は、バッファ421に保持されているデータを順次第2の記憶装置108に書き込む。また、第1のDMAC402は、この動作も、連続アクセス回数423分繰り返す。以降、第1のDMAC402は、これらの一連のデータ転送動作を繰り返すことで連続転送動作を実行する。
【0143】
図20は、実施の形態4におけるDMA転送中の第1のIF405による動作のフローチャートである。なお、図20に示す処理は、図2に示す処理に対して、ステップS401、S406及びS408の処理が異なる。また、図20に示す処理は、さらに、ステップS413の処理を含む。
【0144】
まず、CPU101又は第1のDMAC102により、レジスタ153にDMACアクセス時間T1が設定され、レジスタ154にCPUアクセス時間T2が設定され、第3のレジスタ422に連続アクセス回数423が設定される(S401)。
【0145】
また、第1のIF405は、ステップS102からステップS104で一度のアクセスを行った後、ステップS413にて指定回数(連続アクセス回数423)分のアクセスが完了していなければ(S413でNo)、再度ステップS102からステップS104の処理が実行する。一方、ステップS413で連続アクセス回数分のアクセスが完了した後(S413でYes)、第1のIF405は、一度、DMACアクセスを終了する。その間、第1のDMAC402は第2の記憶装置108に対して同様に指定回数分のアクセスを連続で実行している。
【0146】
第1のDMAC402による第2の記憶装置108へのアクセスが完了後(S406でYes)、ステップS110において連続転送動作が完了していなければ(S110でNo)、第1のIF405は、再度ステップS102でアクセス要求を受け取り、DMAアクセスを実行する(S103)。最終的にS110において連続転送動作が完了していれば(S110でYes)、第1のIF405は連続転送動作を終了する。
【0147】
図21は、DMA転送中にCPU101によるアクセスが発生しない場合の動作例を示す図である。また、図21では、連続アクセス回数423が2回の場合の例に示す。なお、連続アクセス回数423には任意の回数が設定されてよい。
【0148】
また、ステップS413のDMAアクセス完了以降にCPUアクセス要求が存在する場合(S107でYes)は、アクセス制御部452はアクセス判定を行い、CPUアクセスの可否を決定する(S408)。
【0149】
このアクセス判定動作を、図22及び図23を用いて説明する。図22及び図23において、DMACアクセス時間T1bは、第1のDMAC402が第2の記憶装置108に連続アクセス回数423分のアクセスを行っている期間を示す。このDMACアクセス時間T1bは、DMACアクセス時間T1と、連続アクセス回数423との積である。カウント値は、第1のDMAC402による第2の記憶装置108への連続アクセスの初回アクセス開始からの第1の経過時間であり、カウンタ109から出力されている。残り期間T3はCPUアクセス要求の発生から後続の第1の記憶装置107に対する後続のDMAアクセス開始までの期間を示す。この残り期間T3は、DMACアクセス時間T1bからカウント値を減算することで算出できる。
【0150】
アクセス制御部452は、上記の値を用いて、実施の形態1と同様にCPUアクセスの可否を判断する。図22に示すように、CPUアクセス要求の発生時点で残り期間T3よりCPUアクセス時間T2が小さい場合、つまり、カウント値が第1の基準値(=T1b−T2)以下の場合(S408でYes)、アクセス制御部452は、CPUアクセスを許可する(S109)。また、図23に示すように、CPUアクセス要求の発生時点で残り期間T3よりCPUアクセス時間T2が大きい場合、つまり、カウント値が第1の基準値(=T1b−T2)より大きい場合(S408でNo)、アクセス制御部452は、CPUアクセスを許可しない。
【0151】
以上のように、本発明の実施の形態4に係るデータ転送制御装置410は、後続のDMAアクセス開始までの残り期間T3より、CPUアクセス時間T2が小さい場合のみCPUアクセスを許可する。これにより、データ転送制御装置410は、後続のDMAアクセスを遅延させることなく、CPU101による第1の記憶装置107へのアクセスを実行できる。
【0152】
また、実施の形態4では、第1のDMAC402が同一の記憶装置に対して連続アクセスを行うことで、DMACアクセス時間T1より、CPUアクセス時間T2が大きい場合でも、DMA転送を遅延させることなくCPU101による第1の記憶装置107へのアクセスを実行できる。
【0153】
なお、実施の形態4に係るデータ転送制御装置410に、上述した実施の形態1〜3と同様の変形例を適用してもよい。
【0154】
(実施の形態5)
本発明の実施の形態5では、上述した実施の形態4に係るデータ転送制御装置410に対して、上述した実施の形態2と同様の変更を施した例を説明する。
【0155】
図24は、本発明の実施の形態5に係るデータ転送システム500の構成を示すブロック図である。図24に示すデータ転送制御装置510は、実施の形態4に係るデータ転送制御装置410に対して、第1のIF505の構成が異なる。具体的には、第1のレジスタ151は、さらに、遅延許容値T4を保持するレジスタ256を有する。また、アクセス制御部552の機能が、アクセス制御部452と異なる。
【0156】
実施の形態2と同様に、実施の形態5では、一定値までDMA転送の遅延を許容し、競合した場合にDMA転送を遅延させることで、CPUアクセスを実行する。
【0157】
実施の形態5におけるアクセス判定について、図25及び図26を用いて説明する。なお、アクセス可否の判定は実施の形態2と同様である。
【0158】
図25に示すように、残り期間T3と遅延許容値T4との合計より、CPUアクセス時間T2のほうが小さい場合、CPUアクセスは許可される。また、図26に示すように残り期間T3と遅延許容値T4との合計より、CPUアクセス時間T2のほうが大きい場合、CPUアクセスは許可されない。
【0159】
以上のように、本発明の実施の形態5に係るデータ転送制御装置510は、DMACアクセス時間T1よりCPUアクセス時間T2が大きい場合でも、DMA転送の遅延を設定した遅延許容値T4以内に収めつつCPUアクセスを実行できる。
【0160】
(実施の形態6)
本発明の実施の形態6では、データ転送制御装置610が、CPU101の代わりに第2のDMAC601を備える例を説明する。
【0161】
図27は、本発明の実施の形態6に係るデータ転送システム600の構成を示すブロック図である。図27に示すデータ転送制御装置610は、実施の形態1に記載のデータ転送制御装置110に対して、CPU101の代わりに、第2のDMACバス603と、第2のDMAC601を備える。第2のDMACバス603は、本発明の第2のバスに相当し、第1のDMACバス104から独立してデータ転送が可能である。第2のDMAC601は、第2のDMACバス603を介して第1の記憶装置107及び第3の記憶装置611にアクセスを行う。
【0162】
また、第2のDMAC601による第1の記憶装置107へのアクセスは第1のDMAC102による第1の記憶装置107へのアクセスより優先度が低いものとする。
【0163】
また、実施の形態6に係るデータ転送制御装置610の動作は、実施の形態1におけるCPU101からのアクセス要求が第2のDMAC601からのアクセス要求に代わったものであり、それ以外の動作は実施の形態1と同様である。つまり、実施の形態1におけるCPU101を第2のDMAC601に置き換えて、簡単な機能の追加で同様の効果を実現できる。
【0164】
なお、実施の形態2から実施の形態5までのそれぞれの実施の形態についても、CPU101を第2のDMAC601に置き換えて、同様の効果を実現できる。
【0165】
また、ここでは、データ転送制御装置610が、2個のDMACを備える例を述べたが、データ転送制御装置610は、3個以上のDMACを備えてもよい。この場合も簡単な機能の追加で同様の効果を実現できる。また、データ転送制御装置610は、任意の個数のCPUと任意の個数のDMACとを備えてもよい。この場合も、簡単な機能の追加で同様の効果を実現できる。
【0166】
(実施の形態7)
本発明の実施の形態7では、第2のIFも第1のIFと同様の処理を行う場合を説明する。
【0167】
図28は、本発明の実施の形態7に係るデータ転送システム700の構成を示すブロック図である。図28に記載のデータ転送制御装置710は、図1に示すデータ転送制御装置110に対して、カウンタ709及び第2のIF706の機能が異なる。また、データ転送制御装置710は、第1のDMACバス104から独立してデータ転送が可能であるCPUバス703を備える。このCPUバス703は、本発明の第2のバスに相当する。
【0168】
CPU101はCPUバス703を介して第1の記憶装置107及び第2の記憶装置108に対するアクセスを行う。
【0169】
第2のIF706は、さらに、CPU101からの指示に従い、第2の記憶装置108へアクセスする。この第2のIF706は、第4のレジスタ751と、アクセス制御部752とを備える。第4のレジスタ751は、レジスタ753とレジスタ754を含む。レジスタ753は、第1のDMAC102から第2の記憶装置108へのアクセスに要する時間を示すDMACアクセス時間T1(第2のDMACアクセス時間)を保持する。レジスタ754は、CPU101から第2の記憶装置108へのアクセスに要する時間を示すCPUアクセス時間T2(第2のマスタアクセス時間)を保持する。
【0170】
カウンタ709は、さらに、第1のIF105が第1の記憶装置107にアクセスを開始してからの第2の経過時間をカウントする。
【0171】
アクセス制御部752は、連続転送動作中に、CPU101から第2の記憶装置108へのアクセス要求を受けた場合、第2の経過時間が第2の基準値以下の場合、CPU101から第2の記憶装置108へのアクセスを許可し、第2経過時間が第2の基準値より大きい場合、CPU101から第2の記憶装置108へのアクセスを禁止する。
【0172】
具体的には、第1のIF105は、第1のDMAC102から第1の記憶装置107へのアクセス開始時にアクセス開始信号を発行する。第2のIF706は、第1のDMAC102から第2の記憶装置108へのアクセス開始時にアクセス開始信号を発行する。カウンタ709は第1のIF105もしくは第2のIF706いずれかからのアクセス開始信号を受け取るとカウントを開始する。
【0173】
つまり、第2のIF706の機能は、第1のIF105においてアクセス先を第1の記憶装置107から第2の記憶装置108に置き換えた場合と同様である。
【0174】
また、DMA転送中にCPU101が第1の記憶装置107にアクセスする際の第1のIF105の動作は、カウンタ709が第2のIF706からのアクセス開始信号を受け、カウントを開始するときである。この動作は実施の形態1における第1のIF105の動作と同様である。
【0175】
DMA転送中にCPU101が第2の記憶装置108にアクセスする際の第2のIF706の動作は、カウンタ709が第1のIF105からのアクセス開始信号を受け、カウントを開始する時である。これらの動作は第1のIF105において、第1の記憶装置107と第2の記憶装置108とが入れ替わった場合と同様であり、実質的に実施の形態1の第1のIF105の動作と同様である。
【0176】
(実施の形態8)
本発明の実施の形態8では、上述した実施の形態7に係るデータ転送制御装置710に対して、上述した実施の形態2と同様の変更を施した例を説明する。
【0177】
図29は、本発明の実施の形態8に係るデータ転送システム800の構成を示すブロック図である。なお、実施の形態8に係るデータ転送制御装置810に対する、実施の形態7からの第1のIF205における変更点は、実施の形態1に対する実施の形態2の変更点と同じである。また、実施の形態7からの第2のIF806における変更点も、第1の記憶装置107と第2の記憶装置108が入れ替わるだけで、実施の形態1に対する実施の形態2の変更点と同様である。
【0178】
具体的には、第4のレジスタ751は、さらに、遅延許容値T4(第2の遅延許容値)を保持するレジスタ856を有する。また、アクセス制御部852の機能が、アクセス制御部752と異なる。
【0179】
また、DMA転送中にCPU101が第1の記憶装置107にアクセスする際の、第1のIF205の動作は、実施の形態2における第1のIF205の動作と同様である。
【0180】
DMA転送中にCPU101が第2の記憶装置108にアクセスする際の、第2のIF806の動作も、第1の記憶装置107と第2の記憶装置108とを入れ替えた場合の第1のIF205の動作と同様である。
【0181】
(実施の形態9)
本発明の実施の形態9では、上述した実施の形態7に係るデータ転送制御装置710に対して、上述した実施の形態3と同様の変更を施した例を説明する。
【0182】
図30は、本発明の実施の形態9に係るデータ転送システム900の構成を示すブロック図である。
【0183】
第1のIF305に含まれる第1のレジスタ151は実施の形態3の第1のレジスタ151と同様である。また、アクセス制御部352は実施の形態3のアクセス制御部352と同様である。なお、実施の形態3では、第1のIF305が第2のレジスタ357を備えていたが、データ転送制御装置910は、当該第2のレジスタ357の代わりに、第2のレジスタ957を備えている。
【0184】
第2のIF906に含まれる第4のレジスタ751は、第1の記憶装置107と第2の記憶装置108とを入れ替えた場合の第1のレジスタ151と同様である。また、アクセス制御部952は、第1の記憶装置107と第2の記憶装置108とを入れ替えた場合のアクセス制御部352と同様である。
【0185】
第2のレジスタ957は、実施の形態3の第2のレジスタ357と同様に、一度の連続転送動作における全体遅延許容量T5を保持する。ここで、第2のレジスタ957に保持される全体遅延許容量T5は、アクセス制御部352及びアクセス制御部952のそれぞれのアクセス制御で遅延が発生するたびに更新される。
【0186】
また、DMA転送中にCPU101が第1の記憶装置107にアクセスする際の、第1のIF305の動作は、実施の形態3における第1のIF305の動作と同様である。
【0187】
DMA転送中にCPU101が第2の記憶装置108にアクセスする際の、第2のIF906の動作は、第1の記憶装置107と第2の記憶装置108とを入れ替えた場合の第1のIF305の動作と同様である。
【0188】
(実施の形態10)
本発明の実施の形態10では、上述した実施の形態7に係るデータ転送制御装置710に対して、上述した実施の形態4と同様の変更を施した例を説明する。
【0189】
図31は、本発明の実施の形態10に係るデータ転送システム1000の構成を示すブロック図である。
【0190】
図31に記載のデータ転送制御装置1010において、第1のDMAC402は実施の形態4における第1のDMAC402と同様である。
【0191】
第1のIF405は、実施の形態4の第1のIF405と同様である。また、DMA転送中にCPU101が第1の記憶装置107にアクセスする際の第1のIF405の動作は、実施の形態4における第1のIF405の動作と同様である。
【0192】
第2のIF1006に含まれる第4のレジスタ751及びアクセス制御部1052は、第1の記憶装置107と第2の記憶装置108とを入れ替えた場合の、第1のIF405に含まれる第1のレジスタ151及びアクセス制御部452と同様である。また、DMA転送中にCPU101が第2の記憶装置108にアクセスする際の第2のIF1006の動作は、第1の記憶装置107と第2の記憶装置108とを入れ替えた場合の第1のIF405の動作と同様である。
【0193】
(実施の形態11)
本発明の実施の形態11では、上述した実施の形態7に係るデータ転送制御装置710に対して、上述した実施の形態5と同様の変更を施した例を説明する。
【0194】
図32は、本発明の実施の形態11に係るデータ転送システム1100の構成を示すブロック図である。
【0195】
図32に記載のデータ転送制御装置1110において、第1のDMAC402は実施の形態5における第1のDMAC402と同様である。
【0196】
第1のIF505は、実施の形態5における第1のIF505と同様である。また、DMA転送中にCPU101が第1の記憶装置107にアクセスする際の第1のIF505の動作は、実施の形態5における第1のIF505の動作と同様である。
【0197】
第2のIF1106に含まれる第4のレジスタ751及びアクセス制御部1152は、第1の記憶装置107と第2の記憶装置108とを入れ替えた場合の、第1のIF505に含まれる第1のレジスタ151及びアクセス制御部552と同様である。また、DMA転送中にCPU101が第2の記憶装置108にアクセスする際の第2のIF1106の動作は、第1の記憶装置107と第2の記憶装置108とを入れ替えた場合の第1のIF505の動作と同様である。
【0198】
(実施の形態12)
本発明の実施の形態12では、上述した実施の形態7に係るデータ転送制御装置710に対して、上述した実施の形態6と同様の変更を施した例を説明する。
【0199】
図33は、本発明の実施の形態12に係るデータ転送システム1200の構成を示すブロック図である。図33に示すデータ転送制御装置1210は、実施の形態7に記載のデータ転送制御装置710に対して、CPU101の代わりに、第2のDMAC601を備える。第2のDMAC601によるそれぞれの記憶装置へのアクセスは、第1のDMAC102によるアクセスより優先度が低いものとする。
【0200】
実施の形態12の動作は、実施の形態7におけるCPU101からの要求が第2のDMAC601からのアクセス要求に代わったものであり、それ以外の動作は実施の形態7と同様である。実施の形態7におけるCPU101を第2のDMAC601に置き換えて、簡単な機能の追加で同様の効果を実現できる。
【0201】
なお、実施の形態8から実施の形態11までのそれぞれの実施の形態についても、CPU101を第2のDMAC601に置き換えても、同様の効果を実現できる。
【0202】
以上、本発明の実施の形態に係るデータ転送制御装置について説明したが、本発明は、この実施の形態に限定されるものではない。
【0203】
また、上記実施の形態に係るデータ転送制御装置に含まれる各処理部は典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。
【0204】
典型的には、上記データ転送制御装置は、1チップの半導体集積回路として構成される。なお、データ転送制御装置と第1の記憶装置とを含む回路が、1チップの半導体集積回路として構成されてもよい。
【0205】
また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【0206】
また、本発明の実施の形態に係る、データ転送制御装置の機能の一部又は全てを、CPU等のプロセッサがプログラムを実行することにより実現してもよい。
【0207】
さらに、本発明は上記プログラムであってもよいし、上記プログラムが記録された非一時的なコンピュータ読み取り可能な記録媒体であってもよい。また、上記プログラムは、インターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
【0208】
また、上記実施の形態1〜12に係る、データ転送制御装置、及びその変形例の機能のうち少なくとも一部を組み合わせてもよい。
【0209】
また、上記で用いた数字は、全て本発明を具体的に説明するために例示するものであり、本発明は例示された数字に制限されない。
【0210】
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
【0211】
また、上記フローチャートで示す処理手順に含まれるステップが実行される順序は、本発明を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。
【0212】
更に、本発明の主旨を逸脱しない限り、本実施の形態に対して当業者が思いつく範囲内の変更を施した各種変形例も本発明に含まれる。
【産業上の利用可能性】
【0213】
本発明に係るデータ転送制御装置は、記憶装置間のデータ転送における転送要求を満たしながら、それらの記憶装置へのアクセスを含む処理を並列して行うことができるので、外部記憶装置又は内蔵記憶装置など複数の記憶装置を持つ情報処理装置に有効である。
【符号の説明】
【0214】
100、200、300、400、500、600、700、800、900、1000、1100、1200 データ転送システム
101 CPU
102、402 第1のDMAC
104 第1のDMACバス
105、205、305、405、505 第1のIF
106、406、706、806、906、1006、1106 第2のIF
107 第1の記憶装置
108 第2の記憶装置
109、709 カウンタ
110、210、310、410、510、610、710、810、910、1010、1110、1210 データ転送制御装置
151 第1のレジスタ
152、252、352、452、552、752、852、952、1052、1152 アクセス制御部
153、154、155、256、358、753、754、856 レジスタ
357、957 第2のレジスタ
421 バッファ
422 第3のレジスタ
423 連続アクセス回数
601 第2のDMAC
603 第2のDMACバス
611 第3の記憶装置
703 CPUバス
751 第4のレジスタ
T1、T1b DMACアクセス時間
T2 CPUアクセス時間
T3 残り期間
T4 遅延許容値
T5 全体遅延許容量
T6 遅延時間

【特許請求の範囲】
【請求項1】
第1の記憶装置及び第2の記憶装置の一方から他方にデータを転送するデータ転送制御装置であって、
前記第1の記憶装置に対してアクセスを行うマスタと、
前記マスタから独立した第1のバスと、
前記第1のバスを介して、前記第1の記憶装置及び前記第2の記憶装置の一方からデータを読み出し、かつ読み出したデータを他方へ書き込むデータ転送動作を繰り返し連続して行う連続転送動作を行う第1のDMAC(Direct Memory Access Controller)と、
前記マスタ及び前記第1のDMACからの要求に従い、前記第1の記憶装置へアクセスする第1のインターフェース部と、
前記第1のDMACからの要求に従い、前記第2の記憶装置へアクセスする第2のインターフェース部と、
前記第2のインターフェース部が前記第2の記憶装置にアクセスを開始してからの第1の経過時間をカウントするカウンタとを備え、
前記第1のインターフェース部は、
前記連続転送動作中に、前記マスタから前記第1の記憶装置へのアクセス要求を受けた場合において、(1)前記第1の経過時間が第1の基準値以下の場合、前記マスタから前記第1の記憶装置へのアクセスを許可し、(2)前記第1の経過時間が前記第1の基準値より大きい場合、前記マスタから前記第1の記憶装置へのアクセスを禁止する第1のアクセス制御部を備える
データ転送制御装置。
【請求項2】
前記第1のインターフェース部は、さらに、
前記第1のDMACから前記第2の記憶装置への1回のアクセスに必要な第1のDMACアクセス時間と、前記マスタから前記第1の記憶装置への1回のアクセスに必要な第1のマスタアクセス時間とを保持する第1のレジスタを備え、
前記第1のアクセス制御部は、前記第1のDMACアクセス時間から前記第1のマスタアクセス時間を減算することで、前記第1の基準値を算出する
請求項1に記載のデータ転送制御装置。
【請求項3】
前記第1のレジスタは、さらに、1回の前記データ転送動作の第1の遅延許容値を保持し、
前記第1のアクセス制御部は、前記第1のDMACアクセス時間から前記第1のマスタアクセス時間を減算したうえで、前記第1の遅延許容値を加算することで、前記第1の基準値を算出する
請求項2に記載のデータ転送制御装置。
【請求項4】
前記第1のインターフェース部は、さらに、
1回の前記連続転送動作における全体遅延許容量を保持する第2のレジスタを備え、
前記第1のアクセス制御部は、前記マスタから前記第1の記憶装置へのアクセス要求が発生した際に、
前記第1のDMACアクセス時間から前記第1のマスタアクセス時間を減算したうえで、前記全体遅延許容量以下の第1の遅延許容値を加算することで、前記第1の基準値を算出し、
前記第1の経過時間が前記第1の基準値以下の場合、前記マスタから前記第1の記憶装置へのアクセスを許可するとともに、前記第2のレジスタに保持されている前記全体遅延許容量を減らし、
前記第2のレジスタに保持されている前記全体遅許容延量が予め定められた値以下になった場合、前記第1の基準値として、前記第1のDMACアクセス時間から前記第1のマスタアクセス時間を減算した値を用いる
請求項2に記載のデータ転送制御装置。
【請求項5】
前記第1の遅延許容値は、前記全体遅延許容量である
請求項4に記載のデータ転送制御装置。
【請求項6】
前記第1のアクセス制御部は、
前記全体遅延許容量が予め定められた閾値以上の場合、第1の値を前記遅延許容値として用い、
前記全体遅延許容量が前記閾値未満の場合、前記第1の値の値より小さい第2の値を前記遅延許容値として用いる
請求項4に記載のデータ転送制御装置。
【請求項7】
前記第1のアクセス制御部は、
前記第1の経過時間が前記第1の基準値以下の場合、前記マスタから前記第1の記憶装置へのアクセスを許可するとともに、前記第1の経過時間と前記第1のマスタアクセス時間とを加算し、加算した値から前記第1のDMACアクセス時間を減算することで、第1の遅延時間を算出し、前記第2のレジスタに保持されている前記全体遅延許容量から前記第1の遅延時間を減算することで、前記第2のレジスタに保持されている前記全体遅延許容量を更新する
請求項4に記載のデータ転送制御装置。
【請求項8】
前記第2のレジスタは、1回の前記連続転送動作を分割した複数の部分区間の各々に対応する部分遅延許容量を保持し、
前記第1のアクセス制御部は、前記マスタから前記第1の記憶装置へのアクセス要求が発生した際に、
前記第1のDMACアクセス時間から前記第1のマスタアクセス時間を減算したうえで、対応する部分区間の前記部分遅延量を加算することで、前記第1の基準値を算出し、
前記第1の経過時間が前記第1の基準値以下の場合、前記マスタから前記第1の記憶装置へのアクセスを許可するとともに、前記第2のレジスタに保持されている、対応する部分区間の前記部分遅延許容量を減らし、
前記第2のレジスタに保持されている、対応する区間の前記部分遅延量が予め定められた値以下になった場合、前記第1の基準値として、前記第1のDMACアクセス時間から前記第1のマスタアクセス時間を減算した値を用いる
請求項4に記載のデータ転送制御装置。
【請求項9】
前記第1のDMACは、
1回の前記データ転送動作において、前記第1の記憶装置又は前記第2の記憶装置へ連続してアクセスする回数を示す連続アクセス回数を保持する第3のレジスタと、
前記第1の記憶装置又は前記第2の記憶装置から、読み出したデータを保持するバッファとを備え、
前記第1のDMACは、1回の前記データ転送動作において、前記第1の記憶装置及び前記第2の記憶装置の一方から前記連続アクセス回数分、連続してデータを読み出し、当該連続して読み出したデータを前記バッファに格納し、前記バッファに格納したデータを、前記連続アクセス回数分の書き込み動作で、前記第1の記憶装置及び前記第2の記憶装置の他方へ書き込み、
前記カウンタは、前記第2のインターフェース部による、前記第2の記憶装置への前記連続アクセス回数分のアクセスのうち初回のアクセスが開始されてからの時間を前記第1の経過時間としてカウントする
請求項1に記載のデータ転送制御装置。
【請求項10】
前記第1のインターフェース部は、さらに、
前記第1のDMACから前記第2の記憶装置への1回のアクセスに必要な第1のDMACアクセス時間と、前記マスタから前記第1の記憶装置への1回のアクセスに必要な第1のマスタアクセス時間とを保持する第1のレジスタを備え、
前記第1のアクセス制御部は、前記第1のDMACアクセス時間と前記連続アクセス回数との積から前記第1のマスタアクセス時間を減算することで、前記第1の基準値を算出する
請求項9に記載のデータ転送制御装置。
【請求項11】
前記第1のレジスタは、さらに、1回の前記データ転送動作の第1の遅延許容値を保持し、
前記第1のアクセス制御部は、前記第1のDMACアクセス時間と前記連続アクセス回数との積から前記第1のマスタアクセス時間を減算したうえで、前記第1の遅延許容値を加算することで、前記第1の基準値を算出する
請求項10に記載のデータ転送制御装置。
【請求項12】
前記データ転送制御装置は、さらに、
前記第1のバスから独立した第2のバスを備え、
前記マスタは、前記第2のバスを介して前記第1の記憶装置へのアクセスを行う第2のDMACである
請求項1〜11のいずれか1項に記載のデータ転送制御装置。
【請求項13】
前記マスタは、前記第1のバスから独立した第2のバスを介して、前記第1の記憶装置及び前記第2の記憶装置にアクセスし、
前記第2のインターフェース部は、さらに、前記マスタからの指示に従い、前記第2の記憶装置へアクセスし、
前記カウンタは、さらに、前記第1のインターフェース部が前記第1の記憶装置にアクセスを開始してからの第2の経過時間をカウントし、
前記第2のインターフェース部は、前記連続転送動作中に、前記マスタから前記第2の記憶装置へのアクセス要求を受けた場合、
前記第2の経過時間が第2の基準値以下の場合、前記マスタから前記第2の記憶装置へのアクセスを許可し、
前記第2経過時間が前記第2の基準値より大きい場合、前記マスタから前記第2の記憶装置へのアクセスを禁止する第2のアクセス制御部を備える
請求項1に記載のデータ転送制御装置。
【請求項14】
前記第1のインターフェース部は、さらに、
前記第1のDMACから前記第2の記憶装置への1回のアクセスに必要な第1のDMACアクセス時間と、前記マスタから前記第1の記憶装置への1回のアクセスに必要な第1のマスタアクセス時間とを保持する第1のレジスタを備え、
前記第1のアクセス制御部は、前記第1のDMACアクセス時間から前記第1のマスタアクセス時間を減算することで、前記第1の基準値を算出し、
前記第2のインターフェース部は、さらに、
前記第1のDMACから前記第1の記憶装置への1回のアクセスに必要な第2のDMACアクセス時間と、前記マスタから前記第2の記憶装置への1回のアクセスに必要な第2のマスタアクセス時間とを保持する第4のレジスタを備え、
前記第2のアクセス制御部は、前記第2のDMACアクセス時間から前記第2のマスタアクセス時間を減算することで、前記第2の基準値を算出する
請求項9に記載のデータ転送制御装置。
【請求項15】
前記第1のレジスタは、さらに、1回の前記データ転送動作の第1の遅延許容値を保持し、
前記第1のアクセス制御部は、前記第1のDMACアクセス時間から前記第1のマスタアクセス時間を減算したうえで、前記第1の遅延許容値を加算することで、前記第1の基準値を算出し、
前記第4のレジスタは、さらに、1回の前記データ転送動作の第2の遅延許容値を保持し、
前記第2のアクセス制御部は、前記第2のDMACアクセス時間から前記第2のマスタアクセス時間を減算したうえで、前記第2の遅延許容値を加算することで、前記第2の基準値を算出する
請求項14に記載のデータ転送制御装置。
【請求項16】
前記データ転送制御装置は、さらに、
1回の前記連続転送動作における全体遅延許容量を保持する第2のレジスタを備え、
前記第1のアクセス制御部は、前記マスタから前記第1の記憶装置へのアクセス要求が発生した際に、
前記第1のDMACアクセス時間から前記第1のマスタアクセス時間を減算したうえで、前記全体遅延許容量以下の第1遅延許容値を加算することで、前記第1の基準値を算出し、
前記第1の経過時間が前記第1の基準値以下の場合、前記マスタから前記第1の記憶装置へのアクセスを許可するとともに、前記全体遅延許容量を減らし、
前記第2のレジスタに保持されている前記全体遅延量が予め定められた値以下になった場合、前記第1の基準値として、前記第1のDMACアクセス時間から前記第1のマスタアクセス時間を減算した値を用い、
前記第2のアクセス制御部は、前記マスタから前記第2の記憶装置へのアクセス要求が発生した際に、
前記第2のDMACアクセス時間から前記第2のマスタアクセス時間を減算したうえで、前記全体遅延許容量以下の第2遅延許容値を加算することで、前記第2の基準値を算出し、
前記第2の経過時間が前記第2の基準値以下の場合、前記マスタから前記第2の記憶装置へのアクセスを許可するとともに、前記全体遅延許容量を減らし、
前記第2のレジスタに保持されている前記全体遅延量が予め定められた値以下になった場合、前記第2の基準値として、前記第2のDMACアクセス時間から前記第2のマスタアクセス時間を減算した値を用いる
請求項14に記載のデータ転送制御装置。
【請求項17】
前記マスタは、CPU(Central Processing Unit)である
請求項1〜11、及び13〜16のいずれか1項に記載のデータ転送制御装置。
【請求項18】
請求項1〜17のいずれか1項に記載のデータ転送制御装置と、
前記第1の記憶装置と、
前記第2の記憶装置とを含む
データ転送システム。
【請求項19】
第1の記憶装置及び第2の記憶装置の一方から他方にデータを転送する集積回路であって、
前記第1の記憶装置に対してアクセスを行うマスタと、
前記マスタから独立した第1のバスと、
前記第1のバスを介して、前記第1の記憶装置及び前記第2の記憶装置の一方からデータを読み出し、かつ読み出したデータを他方へ書き込むデータ転送動作を繰り返し連続して行う連続転送動作を行う第1のDMAC(Direct Memory Access Controller)と、
前記マスタ及び前記第1のDMACからの要求に従い、前記第1の記憶装置へアクセスする第1のインターフェース部と、
前記第1のDMACからの要求に従い、前記第2の記憶装置へアクセスする第2のインターフェース部と、
前記第2のインターフェース部が前記第2の記憶装置にアクセスを開始してからの第1の経過時間をカウントするカウンタとを備え、
前記第1のインターフェース部は、
前記連続転送動作中に、前記マスタから前記第1の記憶装置へのアクセス要求を受けた場合において、(1)前記第1の経過時間が第1の基準値以下の場合、前記マスタから前記第1の記憶装置へのアクセスを許可し、(2)前記第1の経過時間が前記第1の基準値より大きい場合、前記マスタから前記第1の記憶装置へのアクセスを禁止する第1のアクセス制御部を備える
集積回路。
【請求項20】
第1の記憶装置及び第2の記憶装置の一方から他方にデータを転送するデータ転送制御装置におけるデータ転送方法であって、
前記データ転送制御装置は、
前記第1の記憶装置に対してアクセスを行うマスタと、
前記マスタから独立した第1のバスと、
前記第1のバスを介して、前記第1の記憶装置及び前記第2の記憶装置の一方からデータを読み出し、かつ読み出したデータを他方へ書き込むデータ転送動作を繰り返し連続して行う連続転送動作を行う第1のDMAC(Direct Memory Access Controller)とを備え、
前記データ転送方法は、
前記マスタ及び前記第1のDMACからの要求に従い、前記第1の記憶装置へアクセスするステップと、
前記第1のDMACからの要求に従い、前記第2の記憶装置へアクセスするステップと、
前記第2の記憶装置にアクセスを開始してからの第1の経過時間をカウントするステップと、
前記連続転送動作中に、前記マスタから前記第1の記憶装置へのアクセス要求を受けた場合において、(1)前記第1の経過時間が第1の基準値以下の場合、前記マスタから前記第1の記憶装置へのアクセスを許可し、(2)前記第1の経過時間が前記第1の基準値より大きい場合、前記マスタから前記第1の記憶装置へのアクセスを禁止するステップとを含む
データ転送方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate


【公開番号】特開2012−221125(P2012−221125A)
【公開日】平成24年11月12日(2012.11.12)
【国際特許分類】
【出願番号】特願2011−84866(P2011−84866)
【出願日】平成23年4月6日(2011.4.6)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】