(57)【要約】【課題】優先度の高い処理に関連するデータ転送をできるだけ短時間で完了させ、転送時間のばらつきが少ないＤＭＡコントローラを提供すること。【解決手段】本発明のＤＭＡコントローラは、転送要求設定情報に従って転送要求を通知する複数の転送要求生成部と、複数の転送要求生成部からの転送要求を受け取り、優先順位設定情報に基づいて転送要求をスケジューリングし、スケジューリング結果に基づいて、実行対象となる転送設定番号を１つ選択して通知するスケジューラと、スケジューラから通知された転送設定番号に対応する転送設定情報を読み出してＤＭＡ転送を実行するＤＭＡ転送実行部とを備える。転送要求生成部は、転送要求設定情報に含まれる先行待機時間が含まれており、スケジューラは先行待機時間に基づいた待機要求に基づいてＤＭＡ転送実行部に待機通知をすることで、優先度の低いデータ転送を事前に禁止することが可能となる。【選択図】図１
2016151949.tif 000002
【特許請求の範囲】
【請求項１】
ＤＭＡ転送を制御するＤＭＡコントローラにおいて、
少なくとも転送設定番号および転送起動条件が設定された転送要求設定情報に基づいて、スケジューラに転送要求を通知する複数の転送要求生成部と、
複数の前記転送要求生成部からの転送要求を受け取り、予め設定された優先順位設定情報に基づいて該受け取った転送要求をスケジューリングし、該スケジューリング結果に基づいて実行対象となる転送要求で指令される転送設定に対応する転送設定番号を１つ選択してＤＭＡ転送実行部へ通知するスケジューラと、
前記スケジューラからの通知された転送設定番号を受け取り、予め設定された複数の転送設定情報から前記受け取った転送設定番号に対応する転送設定情報を読み出してＤＭＡ転送を実行するＤＭＡ転送実行部と、
を備え、
前記転送要求設定情報は先行待機時間を含み、前記転送要求生成部は、前記先行待機時間に基づいて、転送要求よりも先行して待機要求を前記スケジューラに通知し、
前記スケジューラは前記待機要求を受け取り、前記予め設定された優先順位設定情報に基づいて前記ＤＭＡ転送実行部に待機通知をする、
ことを特徴とするＤＭＡコントローラ。
【請求項２】
前記転送要求生成部は、ＤＭＡコントローラ外部から転送要求と待機要求を受け取り、前記スケジューラに該転送要求と該待機要求を通知する、
ことを特徴とする請求項１に記載のＤＭＡコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＭＡコントローラに関し、特に優先度の低い転送に待たされることなく、優先度の高い転送を開始できるＤＭＡコントローラに関する。
【背景技術】
【０００２】
コンピュータでは、効率の良いデータ転送を行うために、ＣＰＵを介さずにメモリやデバイスの間で直接データ転送を行うＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）という方式が使われる。ＤＭＡ転送は、図５に示すようにＤＭＡコントローラによって制御され、転送データとしてはネットワークパケットや画像データ、音声データなどが有る。
【０００３】
ＤＭＡコントローラは、１回のサイクルで、指定したアドレスから連続したアドレスの複数のデータを一括して転送するバーストモード転送を行うため、ＣＰＵが直接メモリを転送するよりも高速に転送できるという利点がある。
また、ＤＭＡコントローラはＣＰＵとは独立して動作するため、ＤＭＡ転送が実行されている間、ＣＰＵは別のタスクを処理できるという利点が有る。
【０００４】
ＤＭＡコントローラには、多種多様のデータ転送が同時に依頼されることがあるため、それら複数のデータ転送を効率よく処理するために、優先順位を管理する機能をもつ場合が多い。例えば、特許文献１には、優先順位決定回路により予め決められた優先順位に従ってデータ転送を制御することでメモリアクセスを最適化し、システム全体のデータ転送のスループットを向上する技術が開示されている。
【０００５】
また、ＤＭＡコントローラに依頼されるデータ転送には、周期的な起動を要求するもの、転送時間を要求するものがあるため、ＤＭＡコントローラには優先順位の他に、起動条件、転送時間条件など、様々な項目が設定される。例えば、特許文献２には、転送量の期待値と実際の転送量を比較して、優先順位に反映することで期待した転送量のデータ転送を実現する技術が開示されている。
これらの技術により、優先順位の異なる複数のデータを効率的に転送する、決められた時間の中で転送するという事が可能である。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−２７１５３９号公報
【特許文献２】特開２００３−００６１３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
産業機器や組込みシステムのようにリアルタイム性が高いシステムにおいては、リアルタイムＯＳが採用され、複数の処理がスケジューリングされ、優先度の高い処理から順番に処理される。また、システムがある入力を受け付けてからある処理を行うなど、特定の処理については、決められた時間内に処理が確実に完了するよう配慮されている。
【０００８】
高いリアルタイム性が要求されるシステムにおいては、一定時間内で必ず処理しなければならない、もしくはできるだけ早く処理しなくてはならない優先度の高い処理が存在するため、優先度の高い処理に関連するデータ転送は、できるだけ短時間でデータ転送が完了すること、転送時間のばらつきが少ないことが望ましい。
【０００９】
前述したように、特許文献１，２に開示される従来技術のＤＭＡコントローラには転送データに優先順位を設ける、設定された転送時間に間に合うように優先順位を制御する、転送時間に転送が間に合わなかったらアラームをあげるという機能はあるが、優先度の高いデータ転送をできるだけ短時間で完了するとか、転送時間のばらつきが少なくするという、更に高いリアルタイム性を追求する概念が無い。
【００１０】
ＤＭＡコントローラは、効率が良い転送を目的として使用されるため、前述したように、バーストモード転送を行うのが一般的である。バーストモードとは、１回のサイクルで、指定したアドレスから連続するアドレスの複数のデータを一括して転送するモードのことである。従って、１回のサイクル時間が長くなる傾向がある。特に、応答の遅いデバイスにアクセスした場合や、転送先までの経路で他のサイクルとコンフリクトした場合などは、サイクル時間が更に長くなる。
【００１１】
優先度の低いデータ転送を実行中に、優先度の高いデータ転送を開始しようとすると、実行中のデータ転送が終わるまで優先度の高いデータ転送を開始できない。前述したように、実行中のサイクルが長い場合には、この待ち時間も長くなる。したがって、優先順位を加味したスケジューリングを行っているにも関わらず、優先度の高いデータの転送が待たされる、また転送の完了時間にばらつきが発生するという問題が有った。
【００１２】
ＳｏＣの内部バスサイクルは数百ｎｓ、シリアル通信サイクルは数μｓ程度であるので、これらの影響を無視できるかどうかは、システムに要求されるリアルタイム性による。
なお、優先度の低いデータ転送を実行中に、優先度の高いデータ転送を開始しようとした場合に、即座に優先度の低いデータ転送を中止できれば問題ない。しかし、ＤＭＡのアクセス先はシステム内部メモリから外部のストレージ、通信ラインで接続された外部機器など多岐に渡り、必ずしも転送サイクルを即座に停止できるとは限らない。
【００１３】
そこで本発明の目的は、産業機器や組込みシステムのようにリアルタイム性が高いシステムに適用可能であり、優先度の高い処理に関連するデータ転送をできるだけ短時間で完了させ、転送時間のばらつきが少ないＤＭＡコントローラを提供することである。
【課題を解決するための手段】
【００１４】
本願の請求項１に係る発明は、ＤＭＡ転送を制御するＤＭＡコントローラにおいて、少なくとも転送設定番号および転送起動条件が設定された転送要求設定情報に基づいて、スケジューラに転送要求を通知する複数の転送要求生成部と、複数の前記転送要求生成部からの転送要求を受け取り、予め設定された優先順位設定情報に基づいて該受け取った転送要求をスケジューリングし、該スケジューリング結果に基づいて実行対象となる転送要求で指令される転送設定に対応する転送設定番号を１つ選択してＤＭＡ転送実行部へ通知するスケジューラと、前記スケジューラからの通知された転送設定番号を受け取り、予め設定された複数の転送設定情報から前記受け取った転送設定番号に対応する転送設定情報を読み出してＤＭＡ転送を実行するＤＭＡ転送実行部と、を備え、前記転送要求設定情報は先行待機時間を含み、前記転送要求生成部は、前記先行待機時間に基づいて、転送要求よりも先行して待機要求を前記スケジューラに通知し、前記スケジューラは前記待機要求を受け取り、前記予め設定された優先順位設定情報に基づいて前記ＤＭＡ転送実行部に待機通知をする、ことを特徴とするＤＭＡコントローラである。
【００１５】
本願の請求項２に係る発明は、前記転送要求生成部は、ＤＭＡコントローラ外部から転送要求と待機要求を受け取り、前記スケジューラに該転送要求と該待機要求を通知する、ことを特徴とする請求項１に記載のＤＭＡコントローラである。
【発明の効果】
【００１６】
本発明では、優先度の高いデータ転送は、データ転送開始時点から待たされることなく転送サイクルを発生することができるため、転送時間が短くなる、転送時間のばらつきが少なくなるという効果を得る。これにより、システムのリアルタイム性が向上する。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施形態におけるＤＭＡコントローラの概略ブロック図である。
【図２】本発明のＤＭＡコントローラによる先行待機時間を用いたＤＭＡ転送制御について説明する図である。
【図３】本発明のＤＭＡコントローラによる優先度の異なる２つのＤＭＡ転送要求を制御する例を示す図である。
【図４】本発明のＤＭＡコントローラによる外部入力信号に基づいたＤＭＡ転送制御について説明する図である。
【図５】ＤＭＡ転送を説明する図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施の形態を図面と共に説明する。
本発明のＤＭＡコントローラは、優先度の高いデータ転送の開始よりも一定時間先行して待機要求を発行することで、優先度の低いデータ転送を予め禁止することを特徴とする。これにより、優先度の低いデータ転送を実行中に、優先度の高いデータ転送を開始しようとした時に、優先度の高いデータの転送が待たされるという従来の問題点を解消する。
【００１９】
図１は、本発明の一実施形態におけるＤＭＡコントローラの要部ブロック図である。ＤＭＡコントローラ１は転送要求生成部１０、スケジューラ２０、ＤＭＡ転送実行部３０を備えている。
【００２０】
転送要求生成部１０は、スケジューラ２０に対してデータ転送を要求するための転送要求を通知する役割を持つ。転送要求生成部１０は、１つのＤＭＡコントローラ１の中に複数設けられており、それぞれの転送要求生成部１０に対して異なる転送要求設定１１を設定することが可能である。転送要求生成部１０は、転送要求設定１１に設定されている起動条件が満たされるとスケジューラ２０に対して転送設定番号を含む転送要求を通知する。転送要求生成部１０の転送要求設定１１には、例えば、タイマ１２を用いた周期的な起動や、外部起動信号によるランダムな起動が設定可能である。転送要求生成部１０は、スケジューラからの転送完了通知を受けることで転送要求をクリアする。
【００２１】
スケジューラ２０は、複数の転送要求生成部１０からの転送要求を受け付け、予め設定された優先順位設定に従って１つの転送要求を選択する。そして、選択した転送要求に対応した転送設定番号をＤＭＡ転送実行部３０に通知する（スケジューリング）。また、ＤＭＡ転送実行部３０からの転送完了通知を該当する転送要求生成部１０に通知する。スケジューラ２０は、ＤＭＡ転送実行部３０からの再スケジュール通知を受けた場合、もしくは特定の転送要求を受けた場合に再度スケジューリングを行う機能を有する。
【００２２】
ＤＭＡ転送実行部３０は、スケジューラ２０からの転送設定番号通知を受け付け、対応する番号の転送設定３１から、転送元アドレス、転送先アドレス、転送データ量、転送サイクル数、再スケジュール通知設定などの各種転送情報を読み出し、ＤＭＡ転送サイクルを発生させる。転送設定３１は、システム起動時の初期設定時などにあらかじめ設定され、転送設定番号と関連付けて管理されている。
【００２３】
ＤＭＡ転送実行部３０は転送設定の再スケジュール通知設定に従って、１つもしくは複数の書き込みサイクルが終了する度に、スケジューラ２０に再スケジュール通知を発行し、スケジューラはそれを受けて再びスケジューリングする。また、ＤＭＡ転送実行部３０は転送が完了すると、スケジューラ２０に転送完了を通知し、それを受けたスケジューラ２０は該当する転送要求生成部１０に転送完了を通知し、それを受けた転送要求生成部１０は転送要求をクリアする。
【００２４】
本願のＤＭＡコントローラは、図３に示すように、転送要求生成部１０の転送要求設定１１に先行待機時間を設定でき、転送要求を通知するタイミングより一定時間前に待機要求をスケジューラ２０に通知可能である。これにより、転送を開始するタイミングよりも一定時間前からＤＭＡコントローラを待機させることができ、転送を開始するタイミングにおいて、優先度が低い転送サイクルに邪魔されることなく、転送を開始することができる。これにより、ＤＭＡ転送を設定タイミング通りに開始でき、ＤＭＡ転送時間を短くすること、また、ＤＭＡ転送の完了時間のばらつきを少なくすることが可能である。
【００２５】
優先度の高いデータ転送Ａと、優先度の低いデータ転送Ｂの転送タイミングの例を図３に示す。
この例では、図３に示すように、データ転送Ａはタイマによって周期的に起動し、更に先行待機時間が有効になっている。また、データ転送Ｂはデータ転送Ａよりも長い周期で起動するものとする。このような転送設定がされている場合、データ転送Ｂは、データ転送Ａが完了し、かつ先行待機時間以外の時間帯で実行されるようにスケジューラ２０によりスケジューリングされる。
【００２６】
ここまで説明してきたように、タイマを用いて転送要求を周期的に生成する場合は、設定された先行待機時間に従って、待機要求を通知するタイミングをＤＭＡコントローラ１内で計算することが可能である。一方、外部入力信号によってランダムに転送要求を生成する場合は、待機要求を通知するタイミングをＤＭＡコントローラに通知する必要がある。
【００２７】
例えば、図４に示すように、通信回路がパケットを受信して、受信データを受信メモリに書き込んだ後にＤＭＡコントローラを外部入力信号で起動する場合を考えると、通信回路がパケットを受信した段階や、受信メモリに書き込む前などのタイミングで、待機要求をＤＭＡコントローラに通知することができる。このようにすることで、外部デバイスからランダムにＤＭＡ転送を起動する場合でも、優先度の低い転送に待たされることなく、優先度の高い転送を開始できる。
【符号の説明】
【００２８】
１  ＤＭＡコントローラ
１０  転送要求生成部
１１  転送要求設定
１２  タイマ
２０  スケジューラ
２１  優先順位設定
３０  ＤＭＡ転送実行部
３１  転送設定
【図１】
2016151949.tif 000003
【図４】
2016151949.tif 000004
【図５】
2016151949.tif 000005
【図２】
2016151949.tif 000006
【図３】
2016151949.tif 000007