(57)【要約】組み込みシステムおよびそのようなものを制御するための方法が、開示される。組み込みシステムは、複数のチャネルを備えるダイレクトメモリコントローラを含み、複数のチャネル調停スキームが、プログラム可能であり、ＤＭＡコントローラは、規定されたチャネル上のブロックデータ転送を複数の別個のデータ転送に分割するようにプログラム可能であり、規定されたチャネル上のデータ転送が、データ転送の別個のデータ転送間で中断されることができる。
2018516406.tif 000002
【特許請求の範囲】
【請求項１】
複数のチャネルを備えるダイレクトメモリコントローラを備える組み込みシステムであって、複数のチャネル調停スキームが、プログラム可能であり、ＤＭＡコントローラは、規定されたチャネル上のブロックデータ転送を複数の別個のデータ転送に分割するようにプログラム可能であり、規定されたチャネル上のデータ転送が、前記データ転送の別個のデータ転送間で中断されることができる、組み込みシステム。
【請求項２】
前記調停スキームは、ラウンドロビンスキームを含む、請求項１に記載の組み込みシステム。
【請求項３】
前記調停スキームは、固定優先順位スキームを含む、請求項１に記載の組み込みシステム。
【請求項４】
前記調停スキームは、割当可能優先順位スキームを含む、請求項１に記載の組み込みシステム。
【請求項５】
ブロックデータ転送は、制御レジスタ内のビットの設定に応じて、前記複数の別個のデータ転送に分割される、前記請求項のうちの１項に記載の組み込みシステム。
【請求項６】
別個のデータ転送は、プログラム可能な最大値のデータバイトを含む、前記請求項のうちの１項に記載の組み込みシステム。
【請求項７】
前記プログラム可能な最大値は、制御レジスタ内に記憶される値である、請求項５に記載の組み込みシステム。
【請求項８】
別個のデータ転送は、固定数のデータバイトを含む、前記請求項のうちの１項に記載の組み込みシステム。
【請求項９】
前記固定数のデータバイトは、１バイトである、請求項７に記載の組み込みシステム。
【請求項１０】
組み込みシステムを動作させるための方法であって、
複数のチャネルを備えるダイレクトメモリコントローラを動作させるステップであって、複数のチャネル調停スキームが、プログラム可能である、ステップと、
規定されたチャネル上のブロックデータ転送を複数の別個のデータ転送に分割するようにＤＭＡコントローラをプログラムするステップであって、規定されたチャネル上のデータ転送が、前記データ転送の別個のデータ転送間で中断されることができる、ステップと、
を含む、方法。
【請求項１１】
前記調停スキームは、ラウンドロビンスキームを含む、請求項１０に記載の方法。
【請求項１２】
前記調停スキームは、固定優先順位スキームを含む、請求項１０に記載の方法。
【請求項１３】
前記調停スキームは、割当可能優先順位スキームを含む、請求項１０に記載の方法。
【請求項１４】
ブロックデータ転送は、制御レジスタ内のビットの設定に応じて、前記複数の別個のデータ転送に分割される、請求項１０−１３のうちの１項に記載の方法。
【請求項１５】
別個のデータ転送は、プログラム可能な最大値のデータバイトを含む、請求項１０−１４のうちの１項に記載の方法。
【請求項１６】
プログラム可能な最大値は、制御レジスタ内に記憶される値である、請求項１０−１５のうちの１項に記載の方法。
【請求項１７】
別個のデータ転送は、固定数のデータバイトを含む、請求項１０−１６のうちの１項に記載の方法。
【請求項１８】
前記固定数のデータバイトは、１バイトである、請求項１７に記載の方法。
【請求項１９】
組み込みシステムであって、
複数のチャネルを備えるダイレクトメモリコントローラであって、複数のチャネル調停スキームが、プログラム可能である、ダイレクトメモリコントローラを備え、
ＤＭＡコントローラは、規定されたチャネル上のブロックデータ転送を複数の別個のデータ転送に分割するようにプログラム可能であり、
規定されたチャネル上のデータ転送が、前記データ転送の別個のデータ転送間で中断されることができ、
ブロックデータ転送は、制御レジスタ内のビットの設定に応じて、前記複数の別個のデータ転送に分割され
前記別個のデータ転送は、固定数のデータバイトを含み、
前記調停スキームは、ラウンドロビンスキームと、固定優先順位スキームとを含み、
前記調停スキームは、ラウンドロビンスキームと、割当可能優先順位スキームとを含む、
組み込みシステム。
【請求項２０】
前記調停スキームのうちの少なくとも１つは、ラウンドロビンスキーム、固定優先順位スキーム、および割当可能優先順位スキームから成る群から選択される、請求項１９に記載の組み込みシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本願は、２０１５年６月１日に出願された共有に係る米国仮特許出願第６２／１６９，３５４号に対する優先権を主張するものであり、該米国仮特許出願は、あらゆる目的のために参照により本明細書中に援用される。
【０００２】
本開示は、特に、ダイレクトメモリアクセス（ＤＭＡ）コントローラにおける分割バースト帯域幅調停のための方法および装置に関する。
【背景技術】
【０００３】
マイクロコントローラ等の多くの組み込みシステムは、マイクロコントローラの内部システムバスにわたって効率的かつ高速のデータ転送を可能にするＤＭＡコントローラを備える。バス、特に、組み込みシステム内のシステムバスは、概して、組み込みシステムの種々のコンポーネントが通信することを可能にする。ＤＭＡコントローラは、多くの場合、高速度における大量データ転送を提供する、いわゆるバースト動作を提供する。しかしながら、そのようなバースト動作は、バス全体を遮断し得、アクセスを要求する他のコンポーネントは、バースト転送が完了するまで、バスにアクセスすることが可能ではないであろう。したがって、保留中のトランザクションの要求およびステータスを記録し続けるための付加的手段が、要求される。
【発明の概要】
【課題を解決するための手段】
【０００４】
バースト動作では、長い時間期間にわたって低優先順位エージェントがバスを占有することを防止する必要性が存在する。バースト動作をトランザクションに分割することによって、バス帯域幅は、他のモジュール間で共有されることができる。
【０００５】
組み込みシステムおよびそのようなものを制御するための方法が、開示される。組み込みシステムは、複数のチャネルを備えるダイレクトメモリコントローラを含み、複数のチャネル調停スキームが、プログラム可能であり、ＤＭＡコントローラは、規定されたチャネル上のブロックデータ転送を複数の別個のデータ転送に分割するようにプログラム可能であり、規定されたチャネル上のデータ転送が、データ転送の別個のデータ転送間で中断されることができる。
【０００６】
種々の実施形態によると、組み込みシステムが、開示される。組み込みシステムは、複数のチャネルを備えるダイレクトメモリコントローラを含み得、複数のチャネル調停スキームが、プログラム可能であり、ＤＭＡコントローラは、規定されたチャネル上のブロックデータ転送を複数の別個のデータ転送に分割するようにプログラム可能であり、規定されたチャネル上のデータ転送が、データ転送の別個のデータ転送間で中断されることができる。
【０００７】
いくつかの実施形態では、調停スキームは、ラウンドロビンスキームと、固定優先順位スキームとを含む。他の実施形態では、調停スキームは、ラウンドロビンスキームと、割当可能優先順位スキームとを含む。いくつかの実施形態では、ブロックデータ転送は、制御レジスタ内のビットの設定に応じて、複数の別個のデータ転送に分割され得る。
【０００８】
いくつかの実施形態では、別個のデータ転送は、プログラム可能な最大値のデータバイトを含み得る。そのような実施形態では、プログラム可能な最大値は、制御レジスタ内に記憶される値である。
【０００９】
いくつかの実施形態では、別個のデータ転送は、固定数のデータバイトを含み得る。そのような実施形態では、固定数のデータバイトは、１バイトであり得る。
【００１０】
種々の実施形態では、組み込みシステムを動作させるための方法が、開示される。本方法は、複数のチャネルを備えるダイレクトメモリコントローラを動作させるステップであって、複数のチャネル調停スキームが、プログラム可能である、ステップと、規定されたチャネル上のブロックデータ転送を複数の別個のデータ転送に分割するようにＤＭＡコントローラをプログラムするステップであって、規定されたチャネル上のデータ転送が、データ転送の別個のデータ転送間で中断されることができる、ステップとを含み得る。
【００１１】
本方法のいくつかの実施形態では、調停スキームは、ラウンドロビンスキームと、固定優先順位スキームとを含み得る。他の実施形態では、調停スキームは、ラウンドロビンスキームと、割当可能優先順位スキームとを含み得る。
【００１２】
本方法のいくつかの実施形態では、ブロックデータ転送は、制御レジスタ内のビットの設定に応じて、複数の別個のデータ転送に分割され得る。同一または代替実施形態では、別個のデータ転送は、プログラム可能な最大値のデータバイトを含み得る。そのような実施形態では、プログラム可能な最大値は、制御レジスタ内に記憶される値である。
【００１３】
本方法のいくつかの実施形態では、別個のデータ転送は、固定数のデータバイトを含み得る。そのような実施形態では、固定数のデータバイトは、１バイトであり得る。
【図面の簡単な説明】
【００１４】
【図１】図１は、本開示のある実施形態による、マイクロコントローラの種々の周辺デバイスを接続する内部システムバスと結合される中央処理ユニットを含む、マイクロコントローラ等の典型的組み込みシステムを示す。
【図２】図２は、本開示のある実施形態による、本スキームによる３つのチャネルの例示的典型的データ転送を図示する。
【図３】図３は、本開示のある実施形態による、チャネル１に対する転送がいくつかのサブトランザクションに分割される実施例を示す。
【発明を実施するための形態】
【００１５】
バースト動作では、長い時間期間にわたって低優先順位エージェントがバスを占有することを防止する必要性が存在する。バースト動作をトランザクションに分割することによって、バス帯域幅は、他のモジュール間で共有されることができる。
【００１６】
図１は、本開示のある実施形態による、マイクロコントローラの種々の周辺デバイス１３０−１５０を接続する内部システムバスと結合される中央処理ユニット（ＣＰＵ）１１０を含む、マイクロコントローラ等の典型的組み込みシステム１００を示す。周辺デバイスのうちの１つは、周辺機器１３０、１４０等とメモリ１６０との間、またはメモリ１６０内のデータ転送を可能にする、ダイレクトメモリアクセスコントローラ（「ＤＭＡ」または「コントローラ」）１５０であり得る。組み込みＤＭＡコントローラ１５０は、複数の伝送チャネル、例えば、１６個のチャネルを提供し、各チャネルは、割当可能もしくは固定チャネル優先順位を有し得る、またはコントローラ１５０は、ラウンドロビン割当を使用し得る。各チャネル動作は、個別の信号によってトリガされ得る。複数の選択されたトリガが、複数のチャネル間で同時に生じる場合、ＤＭＡマクロは、ラウンドロビンまたは固定優先順位スキームのいずれかに基づいて、サービスのための次のチャネルを選択するように設計される。両方のスキームが、いくつかの実施形態による、以下の共通特性を共有することに留意されたい。
【００１７】
いくつかの実施形態では、トリガ毎に、全ての関連付けられるトランザクションが、完了されなければならない。「ワンショット」転送モードに関して、次のチャネルは、現在のチャネルが次のトリガを待機している間にサービス提供され得る。「連続」モードに関して、次のチャネルは、現在のチャネルのカウンタ（例えば、「ＣＮＴ［１５：０］」）がゼロにデクリメントされるときのみサービスを受けるであろう。同一または代替実施形態では、読取および書込の両方のトランザクション組み合わせが、データ順序付け問題を回避するために、別のチャネルにサービス提供する前に完了されなければならない。
【００１８】
いくつかの実施形態では、許可判定が、命令サイクル毎に評価される。本プロセスは、設定されたスキームに基づいて、最高優先順位を現在有する要求チャネルを判定することから開始する。次いで、許可は、選ばれたＤＭＡチャネルのバス帯域幅が利用可能であるときのみ与えられる。選ばれたＤＭＡチャネルによって要求されている特定のバスの帯域幅が利用可能ではない場合、本プロセスは、次の命令サイクルにおいて繰り返される。
【００１９】
いくつかの実施形態では、「ラウンドロビン」優先順位スキームが、使用され得る。そのようなスキームでは、優先順位は、（例えば）少なくとも優先順位ビットが制御レジスタ内で設定されているときに使用され得る。例えば、個別の制御レジスタ内のＤＭＡＣＯＮ．ＰＲＩＯＲＩＴＹビットが低に設定されると、ラウンドロビン優先順位スキームが、サービスのための次のＤＭＡチャネルを選択する際に採用される。例えば、スキームがチャネル０で開始する場合、選択されるべき次のチャネルは、ラウンドを通して最低のチャネル番号を伴うチャネルである。例えば、チャネル０、１、および２が同時にトリガされる場合、それぞれ、チャネル０が、最初にサービスのためにスケジューリングされ、次いで、チャネル１およびチャネル２が、サービス提供される。以下の表１は、本例示的デフォルト設定を例証する。図２は、本開示のある実施形態による、本スキームに従う３つのチャネルの例示的典型的データ転送を図示する。
【表１】
2018516406.tif 000003
【００２０】
しかしながら、いくつかの構成では、チャネル０がその後の任意の時点で再びトリガされる場合、これは、次のラウンドの開始時のみ最初にサービス提供されるであろう。チャネル０が２回目にトリガされる前にチャネル１がサービス提供された後に再びトリガされる場合であっても、チャネル１は、第２ラウンドにおいてチャネル０の後にサービス提供されるであろう。
【００２１】
いくつかの実施形態では、「固定」優先順位スキームが、使用され得る。そのようなスキームでは、優先順位は、（例えば）少なくとも優先順位ビットが制御レジスタ内で設定されているときに使用され得る。例えば、ＤＭＡＣＯＮ．ＰＲＩＯＲＩＴＹビットが個別の制御レジスタ内で高に設定されると、優先順位スキームは、チャネル番号に基づいて固定される。例えば、チャネル０で開始すると、選択されるべき次のチャネルは、前に何事が起ころうとも、最低のチャネル優先順位を伴うチャネルである。例えば、チャネル０、１、および２が同時にトリガされる場合、それぞれ、チャネル０が、最初にサービスのためにスケジューリングされ、チャネル１およびチャネル２が続く。チャネル０が再びトリガされる場合、これは、いったん現在の反復（１つまたはそれを上回るトランザクションから構成される）が完了すると、サービスのためにスケジューリングされるであろう。以下の表２は、そのようなスキームに関する例示的設定を例証する。
【表２】
2018516406.tif 000004
【００２２】
多くのシステムでは、複数のＤＭＡチャネルが、見出される。ある調停スキームは、典型的には、固定優先順位を使用し、バスアクセスが、典型的には、図２に示されるように中断されることができない転送全体に対して許可され得る。これらのタイプのスキームは、長期間実行される低優先順位転送が高優先順位要求のサービス提供を有意に遅延させてしまうことになる。
【００２３】
種々の実施形態によると、チャネル状態は、維持され、これは、転送を中断可能にし、転送を再開可能にする。さらに、転送が、（例えば、バイトレベルにおける）いくつかのサブトランザクションに分割され、これは、可能な限り多くの調停機会を可能にし得る。図３は、本開示のある実施形態による、チャネル１に対する転送がいくつかのサブトランザクション２１０ａ、２１０ｂ、２１０ｃ、２１０ｄ、および２１０ｅに分割される実施例を示す。同様に、チャネル０上の転送は、サブトランザクション２００ａ、２００ｂ、および２００ｃに分割される。チャネル２上の転送は、サブトランザクション２２０ａおよび２２０ｂに分割される。種々の調停スキームが、実装されることができ、それらは、転送毎ではなく、トランザクション毎に適用されることができ、これは、より高い優先順位転送による低優先順位バースト転送の分割を可能にし得る。図３の実施例は、図２を参照して上記に説明されるものに類似する固定優先順位スキームにおいて参照されるサブトランザクションを図示する。チャネル１およびチャネル２が第１の時間ｔ１において転送を要求すると仮定すると、より高い優先順位に起因して、チャネル１の転送が、最初に開始される。しかしながら、転送は、中断可能なサブトランザクション２０１ａ−ｅに分割され得る。したがって、チャネル０が時間ｔ２において転送を要求すると、チャネル０転送は、中断され、時間ｔ３において再開するであろう。時間ｔ４において、チャネル２は、いかなるより高い優先順位転送も保留されていないため、許可されるであろう転送を要求する。
【００２４】
種々の実施形態が、以下の利点を提供する。すなわち、組み込みシステムは、他のコンピュータとは異なる使用プロファイルを有する。組み込みシステムでは、スループットの代わりに、待ち時間が、より重要なシステム特性である可能性が高い。システムは、現在可能なものよりも数桁も優れた最小反応時間を満たすことが可能であろう。これは、８ビットマイクロコントローラを用いてサービス可能な問題領域を増加させる。
【図１】
2018516406.tif 000005
【図２】
2018516406.tif 000006
【図３】
2018516406.tif 000007
【国際調査報告】
2018516406.tif 000008
2018516406.tif 000009