(57)【要約】      （修正有）【課題】トランザクション制御セットのリンク付きリストシーケンスを受信するように構成されたトランザクション制御レジスタのセットを備えるＤＭＡコントローラを提供する。【解決手段】このトランザクション制御セットは全体として、ＤＭＡコントローラが周辺装置からデータを、前記周辺装置のインタフェースに互いに並列に配置された第１のメモリバッファと第２のメモリバッファとに交互に移動させるためのデータ伝送を記述するものである。ＤＭＡコントローラは、リンク付きリストシーケンス内の第１のトランザクション制御セットに従って周辺装置からデータの第１のセットを第１のメモリバッファへ伝送するように構成されていて、その次に、前記リンク付きリストシーケンス内の第２のトランザクション制御セットに従って前記周辺装置から前記データの第２のセットを第２のメモリバッファへ伝送するように構成されている。【選択図】図４
2019008793.tif 000002
【特許請求の範囲】
【請求項１】
直接メモリアクセス（ＤＭＡ）コントローラであって、
トランザクション制御セットのシーケンスを受信するように構成されたトランザクション制御レジスタのセットを備えており、
前記トランザクション制御セットは、リンク付きリストで配列されており、全体として、前記ＤＭＡコントローラがデータを移動させるためのデータ伝送を記述するものであり、
前記データ伝送は、周辺装置から、前記周辺装置のインタフェースに互いに並列に配置された第１のメモリバッファと第２のメモリバッファとに交互にデータを移動させるためのものであり、
前記ＤＭＡコントローラは、前記シーケンス内の第１のトランザクション制御セットに従って前記周辺装置からデータの第１の一部分を前記第１のメモリバッファへ伝送するように構成されていて、その次に、前記シーケンス内の第２のトランザクション制御セットに従って前記周辺装置から前記データの第２の一部分を前記第２のメモリバッファへ伝送するように構成されている、
直接メモリアクセス（ＤＭＡ）コントローラ。
【請求項２】
前記ＤＭＡコントローラは、前記第１のトランザクション制御セットに従い、前記周辺装置から前記データ伝送で移動させるべきデータを読み出して、読み出した前記データの第１の数の連続するワードを前記第１のメモリバッファに書き込み、その後、前記第２のトランザクション制御セットに従って、前記読み出したデータの第２の数の連続するワードを前記第２のメモリバッファに書き込むように構成されている、
請求項１記載のＤＭＡコントローラ。
【請求項３】
前記ＤＭＡコントローラは、前記第１のメモリバッファが満杯になるまで、前記第１の数の連続するワードを前記第１のメモリバッファに書き込み、前記第１のメモリバッファが満杯である場合のみ、前記第２の数の連続するワードを前記第２のメモリバッファに書き込むように切り替わるように構成されている、
請求項２記載のＤＭＡコントローラ。
【請求項４】
前記ＤＭＡコントローラが前記第２の数の連続するワードを前記第２のメモリバッファに書き込んだ後、前記第２のメモリバッファが満杯であるか否かに基づいて選択的に、前記ＤＭＡコントローラは前記周辺装置から前記第１のメモリバッファへの他のデータの書き込みに切り替わって戻るように構成されている、
請求項２記載のＤＭＡコントローラ。
【請求項５】
前記ＤＭＡコントローラはさらに、完全性検査部を備えており、
前記完全性検査部は、前記第１および／または第２のトランザクション制御セットの実行中に前記ＤＭＡコントローラによって実際に処理されたデータまたはアドレスの第１および／または第２のセットに基づいて実際の誤り検出符号を求めるように構成されており、前記実際の誤り検出符号が、前記シーケンス内の第３のトランザクション制御セットに含まれる期待される誤り検出符号と同一であるか否かに基づいて、選択的に誤りを標識するように構成されている、
請求項１記載のＤＭＡコントローラ。
【請求項６】
前記第３のトランザクション制御セットは、前記シーケンス内の前記第１のトランザクション制御セットと前記第２のトランザクション制御セットとの間の位置に配置される、
請求項５記載のＤＭＡコントローラ。
【請求項７】
第１の周辺装置と、
前記第１の周辺装置に動作可能に結合されている処理ユニットと、
前記第１の周辺装置と前記処理ユニットとの間に結合されている第１のメモリバッファと、
前記第１の周辺装置と前記処理ユニットとの間に結合されており、前記第１のメモリバッファに対して並列に配置されている第２のメモリバッファと、
前記第１の周辺装置と前記第１のメモリバッファと前記第２のメモリバッファとに結合されている直接メモリアクセス（ＤＭＡ）コントローラと、
を備えているシステムであって、
前記ＤＭＡコントローラは、前記ＤＭＡコントローラが前記第１の周辺装置と前記第１のメモリバッファおよび前記第２のメモリバッファとの間でデータを移動させるための第１のデータ伝送を全体として記述するトランザクション制御セットの第１のシーケンスを受信するように構成されたトランザクション制御レジスタのセットを備えており、
前記ＤＭＡコントローラは、前記第１のシーケンス内の第１のトランザクション制御セットに従って前記第１のメモリバッファと前記第１の周辺装置との間でデータの第１の一部分を伝送するように構成されていて、その次に、前記第１のシーケンス内の第２のトランザクション制御セットに従って前記第２のメモリバッファと前記第１の周辺装置との間で前記データの第２の一部分を伝送するように構成されている、
システム。
【請求項８】
前記第１の周辺装置は、送信元周辺装置であり、
前記ＤＭＡコントローラは、前記送信元周辺装置からデータを読み出して、読み出した前記データの第１の一部分を前記第１のメモリバッファに書き込み、前記読み出したデータの第２の一部分を前記第２のメモリバッファに書き込むように構成されている、
請求項７記載のシステム。
【請求項９】
前記データの前記第１の一部分は、前記第１のメモリバッファに書き込まれる複数のワードを含み、
前記データの前記第２の一部分は、前記データの前記第１の一部分の全てが前記第１のメモリバッファに書き込まれた後にのみ前記第２のメモリバッファに書き込まれる複数のワードを含む、
請求項８記載のシステム。
【請求項１０】
前記ＤＭＡコントローラは、前記第１のメモリバッファが完全に満杯になったときに相当する時点で、前記データの前記第１の一部分の書き込みから前記データの前記第２の一部分の書き込みに切り替わるように構成されている、
請求項８記載のシステム。
【請求項１１】
前記第１の周辺装置は、宛先周辺装置であり、
前記ＤＭＡコントローラは、
前記第１のトランザクション制御セットに従い、前記第１のメモリバッファの内容全部を読み出して、前記第１のメモリバッファの内容全部を前記宛先周辺装置に書き込むことと、
前記第２のトランザクション制御セットに従い、前記第２のメモリバッファの内容全部を読み出して、前記第２のメモリバッファの内容全部を前記宛先周辺装置に書き込むことと、
を交互に行うように構成されている、
請求項７記載のシステム。
【請求項１２】
前記システムはさらに、
第２の周辺装置と、
前記第２の周辺装置と前記処理ユニットとの間に結合されている第３のメモリバッファと、
前記第２の周辺装置と前記処理ユニットとの間に結合されており、前記第３のメモリバッファに対して並列に配置されている第４のメモリバッファと、
を備えており、
前記ＤＭＡコントローラは、前記ＤＭＡコントローラが前記第２の周辺装置と前記第３のメモリバッファおよび前記第４のメモリバッファとの間でデータを移動させるための第２のデータ伝送を全体として記述するトランザクション制御セットの第２のシーケンスを受信するように構成されており、
前記ＤＭＡコントローラはさらに、前記第２のシーケンス内の第１のトランザクション制御セットに従って前記第３のメモリバッファと前記第２の周辺装置との間で移動させるべきデータの第１の一部分を伝送するように構成されていて、その次に、前記第２のシーケンス内の第２のトランザクション制御セットに従って前記第４のメモリバッファと前記第２の周辺装置との間で前記移動させるべきデータの第２の一部分を伝送するように構成されている、
請求項７記載のシステム。
【請求項１３】
前記処理ユニットは、前記第３のメモリバッファと前記第２の周辺装置との間で移動させるべきデータの前記第１の一部分を、前記データの前記第１の一部分に基づいて生成するように構成されている、
請求項１２記載のシステム。
【請求項１４】
前記ＤＭＡコントローラはさらに、完全性検査部を備えており、
前記完全性検査部は、前記第１および／または第２のトランザクション制御セットの実行中に前記ＤＭＡコントローラによって実際に処理されたアドレスまたはデータの前記第１および／または第２の一部分に基づいて実際の誤り検出符号を求めるように構成されており、前記実際の誤り検出符号が、前記第１のシーケンス内の第３のトランザクション制御セットに含まれる期待される誤り検出符号と同一であるか否かに基づいて、選択的に誤りを標識するように構成されている、
請求項７記載のシステム。
【請求項１５】
前記第３のトランザクション制御セットは、前記シーケンス内の前記第１のトランザクション制御セットと前記第２のトランザクション制御セットとの間の位置に配置される、
請求項１４記載のシステム。
【請求項１６】
前記システムはさらに、
第２の周辺装置と、
前記第２の周辺装置と前記処理ユニットとの間に結合されている第３のメモリバッファと、
前記第２の周辺装置と前記処理ユニットとの間に結合されており、前記第３のメモリバッファに対して並列に配置されている第４のメモリバッファと、
を備えており、
前記ＤＭＡコントローラは、リンク付きリストで配列されたトランザクション制御セットの第２のシーケンス内の第１のトランザクション制御セットに従い、前記第３のメモリバッファと前記第２の周辺装置との間でデータの第３のセットを伝送するように構成されていて、その次に、前記第２のシーケンス内の第２のトランザクション制御セットに従って前記第４のメモリバッファと前記第２の周辺装置との間で前記データの第４のセットを伝送するように構成されている、
請求項７記載のシステム。
【請求項１７】
周辺装置からデータを、前記周辺装置のインタフェースに互いに並列に配置された第１のメモリバッファと第２のメモリバッファとに交互に伝送する方法であって、
メモリ内にてリンク付きリスト構造で配列されたトランザクション制御セットのシーケンスであって、前記周辺装置から前記第１のメモリバッファと前記第２のメモリバッファとに交互のデータ伝送を全体として記述するトランザクション制御セットのシーケンスを、ＤＭＡコントローラにおいて受信するステップと、
前記トランザクション制御セットのシーケンス内の第１のトランザクション制御セットに基づき、前記第１のメモリバッファの内容全部を読み出して、前記第１のメモリバッファの内容全部を前記周辺装置に書き込むステップと、
前記第１のメモリバッファの内容全部を前記周辺装置に書き込んだ後、前記トランザクション制御セットのシーケンス内の第２のトランザクション制御セットに基づき、前記第２のメモリバッファの内容全部を読み出して前記第２のメモリバッファの内容全部を前記周辺装置に書き込むステップと、
を有する方法。
【請求項１８】
前記方法はさらに、
前記第１および／または第２のトランザクション制御セットの実行中に前記ＤＭＡコントローラによって実際に処理された前記第１のメモリバッファの内容および／または前記第２のメモリバッファの内容に基づいて、実際の誤り検出符号を求めるステップを有する、
請求項１７記載の方法。
【請求項１９】
前記方法はさらに、
前記シーケンスに含まれており、かつ期待される誤り検出符号を含む第３のトランザクション制御セットを読み出すステップと、
前記実際の誤り検出符号が前記期待される誤り検出符号と同一であるか否かに基づいて、選択的に誤りを標識するステップと、
を有する、
請求項１８記載の方法。
【請求項２０】
前記第３のトランザクション制御セットは、前記シーケンス内の前記第１のトランザクション制御セットと前記第２のトランザクション制御セットとの間の位置に配置される、
請求項１９記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
背景技術
セーフティ関連アプリケーションでは、マイクロコントローラがその意図された機能を当該用途の全てのフェーズにおいて適正に実行することを保証することが重要である。かかる実行は、ハードウェア構成要素およびソフトウェア構成要素の双方が、当該構成要素の仕様および当該機能の不具合のない実行に関して適正であることを前提とする。一般的に、セーフティ関連アプリケーションは、システム故障を回避するため、かつ当該アプリケーションの実行中にランダムなハードウェア故障が生じた場合にこれを検出して応答するため、特別な基準を使用して構成されている。
【図面の簡単な説明】
【０００２】
【図１】アクチュエータ、センサおよびマイクロプロセッサを備えたセーフティシステムのブロック図である。
【図２】一部の実施形態の、ダブルバッファリングを備えたＤＭＡコントローラを使用するセーフティシステムのブロック図である。
【図３】ＤＭＡコントローラが動作中にどのようにダブルバッファリングを使用できるかの一例を示す図である。図３の上部分は、どのようにサンプルを記憶して、第１の送信元メモリバッファおよび第２の送信元メモリバッファから取り出すかを時系列で示しており、図３の下部分は対応するタイムチャートを示している。
【図４】図５と共にセーフティシステムのデータ伝送を示す図であり、セーフリンク付きリストを用いて送信元周辺装置から第１の送信元メモリバッファおよび第２の送信元メモリバッファへのデータ伝送を示している。
【図５】図４と共にセーフティシステムのデータ伝送を示す図であり、セーフリンク付きリストを用いて第１の宛先メモリバッファおよび第２の宛先メモリバッファから宛先周辺装置へのデータ伝送を示している。
【図６】ダブルバッファリングおよびセーフリンク付きリストを使用するＤＭＡコントローラを備えたセーフティシステムにおけるデータ伝送方法を示す図である。
【発明を実施するための形態】
【０００３】
詳細な説明
以下の説明は図面を参照してなされており、図面において同様の符号は一般的に、全体を通じて同様の要素を指し示すために使用されており、種々の各構造は必ずしも、実寸の比率通りに描かれているとは限らない。以下の記載では説明を目的として、理解しやすくするために、数多くの具体的な詳細事項を記載しているが、当業者であれば、これらの具体的な詳細事項のより少ない程度で、本願にて記載されている１つまたは複数の側面を実施できる場合があることは明らかである。他にも、理解しやすくするために公知の構造および装置をブロック図で示している事例がある。
【０００４】
また、「第１」、「第２」、「第３」等の用語は単なる一般的な識別子であり、複数の要素の時間的、空間的または他の関係を示唆するものではないことが明らかである。さらに、１つの実施形態の「第１の」メモリバッファが他の実施形態の「第２の」メモリバッファに相当し得る等といったように、これらの用語は複数の実施形態の間で入れ替わる場合もある。
【０００５】
図１は、マイクロプロセッサ１０２とアクチュエータ１０４とセンサ１０６とを備えたセーフティシステム１００の一例を示している。マイクロプロセッサ１０２は、処理ユニット１０８と、第１のセンサメモリバッファ１１０と、第２のセンサメモリバッファ１１２と、第１のアクチュエータメモリバッファ１１４と、第２のアクチュエータメモリバッファ１１６と、を備えている。フィードバックパス１１８がセンサ１０６を介して出力端１２０をコンパレータまたは加算器１２３の第２の入力端１２２へ帰還結合する。
【０００６】
動作中は、アクチュエータ１０４は出力端１２０で運動または制御動作を促進するように期待されている。理想的には、出力端１２０における運動または制御動作は、加算器１２３の第２の入力端１２２に供給される基準入力信号を正確に追従して、基準入力信号とセンサ１０６からの観測対象のサンプルとの間の差を表す誤差信号１２４が０になる。よって、出力端１２０における運動または制御動作が第２の入力端１２２の基準入力信号に従っている限りは、アクチュエータ１０４の出力は一定に維持され、センサ１０６からの観測対象のサンプルは基準入力信号と一致する。
【０００７】
しかし、たとえば外乱１２６または第２の入力端１２２における基準入力信号の変化等に起因して、観測対象のサンプルが基準入力信号から偏差すると、誤差信号１２４は非ゼロとなる。この非ゼロの誤差信号に基づき、出力端１２０における出力が再び基準入力信号と一致するまで、マイクロプロセッサ１０２は、アクチュエータ１０４の出力を「チューニング」することに繋がる制御サンプルを供給する。たとえば、出力信号の周波数が、（たとえば外乱１２６に起因して、または入力基準信号の最近の変化に起因して）基準入力信号によって指示されるものより低い場合、出力信号の周波数が基準入力信号によって指示されるものになるまで、誤差信号１２４は出力信号の周波数の上昇を引き起こすことができる。逆に、出力信号の周波数が、基準入力信号によって指示されるものより高い場合、誤差信号１２４は出力信号の周波数の低下を引き起こすことができる。
【０００８】
しかし、図１のシステムは、メモリバッファ１１０〜１１６を継続して管理するために処理ユニット１０８が必要とされ、他のタスクのために割り当てることができたはずのシステムリソースをかかる管理のために使用する点では、決して最適ではない。メモリバッファを「より深く」すると、処理ユニット１０８がバッファをアンロードできる間の時間量は増大するのに、それでもなお、プロセッサオーバーヘッドが必要である。さらに、より深いバッファは、メモリバッファをアンロードできるまでにかかる時間を延長し得るが、メモリバッファがより深くなるということは、データが場合によって移動される場合、このデータを移動する実際の動作は、より浅いメモリバッファを使用した場合より長い時間を要することとなる。また、マイクロプロセッサ１０２がオーバーロード状態になると、観測対象のサンプルまたは制御サンプルが失われ得る機会が存在する可能性がある。かかる機会によって、危険な状況が万一に失われる可能性が残ることとなり、セーフティシステム１００はかかる状況に対して適切な安全措置を提供することができない。よって、図１のセーフティシステム１００は複数の理由により、理想には及ばない。
【０００９】
したがって、本願の開示内容の各側面は、直接メモリアクセス（ＤＭＡ）セーフリンク付きリストを使用したダブルバッファシステムおよび技術を提供する。一部の実施形態ではＤＭＡコントローラは、トランザクション制御セットのリンク付きリストシーケンスを受信するように構成されたトランザクション制御レジスタのセットを備えている。このトランザクション制御セットは全体として、ＤＭＡコントローラが周辺装置からデータを、当該周辺装置のインタフェースに互いに並列に配置された第１のメモリバッファと第２のメモリバッファとに交互に移動させるためのデータ伝送を記述するものである。ＤＭＡコントローラは、リンク付きリストシーケンス内の第１のトランザクション制御セットに従って周辺装置からデータの第１の一部分を第１のメモリバッファへ伝送するように構成されていて、その次に、当該リンク付きリストシーケンス内の第２のトランザクション制御セットに従って当該周辺装置から当該データの第２の一部分を第２のメモリバッファへ伝送するように構成されている。一部の実施形態では、当該第１のトランザクション制御セットが適切に実行されたか否かを、第１のトランザクション制御セットと第２のトランザクション制御セットとの間にある第３のトランザクション制御セットが検査することができる。第１のトランザクション制御セットが適切に実行されなかったと判定される場合には、ＤＭＡコントローラはシーケンス内の第２のトランザクション制御セットの実行前に当該シーケンスの実行を停止する。これにより、ＤＭＡコントローラが他のタスクのために処理ユニットのリソースを空けるために第１のバッファおよび第２のバッファの管理を追い越す他に、ＤＭＡコントローラは、危険な状況が失われる機会を制限する向上した安全措置を提供させることもできる。
【００１０】
図２は、一部の実施形態のセーフティシステム２００を示している。セーフティシステム２００は、マイクロプロセッサ２０２を備え、マイクロプロセッサ２０２は、第１の送信元メモリバッファ（２０４）および第２の送信元メモリバッファ（２０６）と、処理ユニット２０８と、第１の宛先メモリバッファ（２１０）と、第２の宛先メモリバッファ（２１２）と、から構成されている。他の周辺装置（図示されていない）の中では特に、送信元周辺装置２１６と、宛先周辺装置２１８と、入出力（Ｉ／Ｏ）モジュール２２０と、割込みコントローラ２２２と、を、システムバス２１４を介してマイクロプロセッサ２０２に結合することもできる。一部の実施形態では、送信元周辺装置２１６はセンサとすることができ、宛先周辺装置２１８はアクチュエータとすることができ、図１と同様に、マイクロプロセッサ２０２はセンサから第１の送信元メモリバッファ（２０４）および第２の送信元メモリバッファ（２０６）を介してサンプルを受信して解析し、アクチュエータの制御を基準信号と一致するように維持するため、アクチュエータに対する制御信号を生成して、第１の宛先メモリバッファ（２１０）および第２の宛先メモリバッファ（２１２）を介して送信することができる。
【００１１】
各メモリバッファ（２０４，２０６，２１０，２１２）はそれぞれ、別個のメモリ部品、たとえばシフトレジスタ、ファーストイン・ファーストアウト（ＦＩＦＯ）メモリ、ラストイン・ファーストアウト（ＬＩＦＯ）メモリ、ランダムアクセスメモリ、または他のメモリ記憶装置として実現されている。各送信元メモリバッファ（２０４，２０６）および各宛先メモリバッファ（２１０，２１２）は、システムバス２１４を介して処理ユニット２０８と１つまたは複数の周辺装置（たとえば２１６，２１８，２２０）との間でデータを伝送することができる。たとえば、第１の送信元メモリバッファ（２０４）と第２の送信元メモリバッファ（２０６）とは互いに並列に配置されており、送信元周辺装置２１６からシステムバス２１４を介して観測対象のデータサンプルを受信することができ、その後、システムバス２１４を介して、または第１の内部マイクロプロセッサバス２１５を介して、観測対象のデータサンプルを処理ユニット２０８へ伝送することができる。第１の宛先メモリバッファ（２１０）および第２の宛先メモリバッファ（２１２）も互いに並列に配置されており、両宛先メモリバッファは処理ユニット２０８からシステムバス２１４を介して、または第２の内部マイクロプロセッサバス２１７を介して、制御サンプルを受信することができ、その後、システムバス２１４を介して当該制御サンプルを宛先周辺装置２１８へ伝送することができる。
【００１２】
どの周辺装置とメモリバッファとの間でも効率的なデータ伝送を実現するため、ＤＭＡコントローラ２２４が備えられている。ＤＭＡコントローラ２２４はトランザクション制御セット（ＴＣＳ）レジスタ２２６のセットを備えている。このＴＣＳレジスタ２２６のセットは、制御フィールド２２９と、送信元アドレスフィールド２３０と、宛先アドレスフィールド２３２と、サイズフィールド２３４と、を備えており、これらのフィールドは、データの１つまたは複数のブロックをＤＭＡコントローラ２２４によってどのように伝送すべきかを記述するものである。ＴＣＳレジスタ２２６のセット内の情報に基づき、ＤＭＡコントローラ２２４はメモリ２２８からＴＣＳの１つまたは複数のシーケンスを検索することができ、このＴＣＳのシーケンスはリンク付きリスト構造で配置されている。
【００１３】
図２の実施例では、第１のＴＣＳシーケンス２３６は全体として、ＤＭＡコントローラ２２４が送信元周辺装置２１６から第１および第２の送信元メモリバッファ（２０４，２０６）へデータを移動させるための第１のデータ伝送を記述し、第２のＴＣＳシーケンス２３８は全体として、ＤＭＡコントローラ２２４が第１および第２の宛先メモリバッファ（２１０，２１２）から宛先周辺装置２１８へデータを移動させるための第２のデータ伝送を記述する。図２の実施例は、第１および第２の各ＴＣＳシーケンス（２３６，２３８）がそれぞれ４つのＴＣＳまたは４つの「リンク」を有し、各リンクがシーケンス内の次の連続するリンクをポインティングする構成を示しているが、かかるシーケンス内に含まれるＴＣＳまたは「リンク」の数は任意の数とすることができることが明らかである。第１のＴＣＳシーケンス２３６および第２のＴＣＳシーケンス２３８がどのように動作するかについてのより詳細な説明を、以下記載する。
【００１４】
第１のＴＣＳシーケンス２３６では、メモリ２２８に記憶される各ＴＣＳはそれぞれ制御情報と、ＤＭＡコントローラ２２４によって伝送すべき１つまたは複数のブロックに関する送信元アドレスと、宛先アドレスと、サイズと、を指定する。第１のＴＣＳシーケンス２３６にかかるＤＭＡ動作は、処理ユニット２０８がＴＣＳレジスタ２２６のセットに第１のＴＣＳシーケンス２３６の第１の送信元ＴＣＳ２４０をロードしたとき、かつ／またはＤＭＡコントローラ２２４を、第１の送信元ＴＣＳ２４０が記憶されているメモリアドレスにポインティングしているときに開始する。図２の実施例では、第１の送信元ＴＣＳ２４０は送信元周辺装置２１６をポインティングする送信元アドレスと、第１の送信元メモリバッファ２０４をポインティングする宛先アドレスと、を有し、また、第１の送信元メモリバッファ２０４のサイズと等しいサイズを有する。これにより、ＤＭＡコントローラ２２４は処理ユニット２０８の介入なく、指定された送信元アドレス（たとえば送信元周辺装置２１６）から上述のサイズのデータを、指定された宛先アドレス（たとえば第１の送信元メモリバッファ２０４）へ伝送する。よって、第１の送信元ＴＣＳ２４０のロードに基づいてＤＭＡコントローラ２２４は送信元周辺装置２１６を監視し、送信元周辺装置２１６が準備完了状態であるデータを有する場合、ＤＭＡコントローラ２２４は処理ユニット２０８からの介入なしでこのデータを読み出して、当該データを第１の送信元メモリバッファ２０４に書き込む。第１の送信元ＴＣＳ２４０で指定されるサイズが第１の送信元メモリバッファ２０４のサイズと等しい一部の事例では、第１の送信元メモリバッファ２０４が満杯になるまで、ＤＭＡコントローラ２２４は送信元周辺装置２１６から第１の送信元メモリバッファ２０４へデータの連続するワードを移動させる。ＤＭＡコントローラ２２４が、第１の送信元ＴＣＳ２４０で指定されたところによりデータの移動を完了させると、ＤＭＡコントローラ２２４は第２の送信元ＴＣＳ２４２の場所を特定する。この第２の送信元ＴＣＳ２４２のメモリアドレスは、第１の送信元ＴＣＳ２４０で指定される。
【００１５】
一部の事例では、第２の送信元ＴＣＳ２４２は、第１の送信元ＴＣＳ２４０が適切に実行されたことを検査することができる。第２の送信元ＴＣＳが、第１の送信元ＴＣＳ２４０の実行中にエラーが発生したと判定した場合、ＤＭＡコントローラ２２４は、処理ユニット２０８が適切な救済措置をとることができるように割込みを表明する。他方、第１の送信元ＴＣＳ２４０が適切に実行されたことを第２の送信元ＴＣＳ２４２が確認した場合は、ＤＭＡコントローラ２２４は第３の送信元ＴＣＳ２４４の場所を特定する。この第３の送信元ＴＣＳ２４４の場所は、第２の送信元ＴＣＳ２４２で指定される。
【００１６】
第１の送信元ＴＣＳ２４０が適切に実行された場合（かつ適切に実行されたことを第２の送信元ＴＣＳ２４２が確認した場合）、第１の送信元メモリバッファ２０４は満杯になっている。図示の第１のＴＣＳシーケンス２３６はこれを見越したものであり、第３の送信元ＴＣＳ２４４自体は、送信元周辺装置２１６が、読み出し準備完了状態である次のデータを有する場合に当該次のデータを送信元周辺装置２１６から読み出して第２の送信元メモリバッファ２０６へ書き込むことを指定する。よって、より具体的には、ＤＭＡコントローラ２２４は第３の送信元ＴＣＳ２４４をロードすることにより、送信元アドレス（ここでは送信元周辺装置２１６）と宛先アドレス（ここでは第２の送信元メモリバッファ２０６）とデータサイズ（ここでは第２の送信元メモリバッファ２０６のサイズ）とを特定する。ＤＭＡコントローラ２２４は再び、送信元周辺装置２１６を監視する。送信元周辺装置２１６が準備完了状態であるデータを有する場合、ＤＭＡコントローラ２２４は処理ユニット２０８からの介入なしでこのデータを読み出して第２の送信元メモリバッファ２０６に書き込む。ＤＭＡコントローラ２２４が送信元周辺装置２１６から第２の送信元メモリバッファ２０６へデータを移動させている間、処理ユニット２０８は第１の送信元メモリバッファ２０４からデータを読み出して解析することができる。その間、処理ユニット２０８は第１および第２の宛先メモリバッファ２１０，２１２を介して、第１の送信元メモリバッファ２０４からの解析されたデータに基づく制御サンプルを宛先周辺装置２１８へ送信することもできる。第３の送信元ＴＣＳ２４４で指定されるサイズが第２の送信元メモリバッファ２０６のサイズと等しい一部の事例では、第２の送信元メモリバッファ２０６が満杯になるまで、ＤＭＡコントローラ２２４は送信元周辺装置２１６から第２の送信元メモリバッファ２０６へデータの連続するワードを移動させる。ＤＭＡコントローラ２２４が、第３の送信元ＴＣＳ２４４で指定されたところによりデータの移動を完了させると、ＤＭＡコントローラ２２４は第４の送信元ＴＣＳ２４６の場所を特定する。この第４の送信元ＴＣＳ２４６の場所は、第３の送信元ＴＣＳ２４４で指定される。
【００１７】
一部の事例では、第４の送信元ＴＣＳ２４６は、第３の送信元ＴＣＳ２４４が適切に実行されたことを検査することができる。第３の送信元ＴＣＳ２４４が適切に実行されたことを第４の送信元ＴＣＳ２４６が確認した場合、ＤＭＡコントローラ２２４は、次の送信元ＴＣＳ（図示されていない）があればその場所を特定する。図２の実施例では、第４の送信元ＴＣＳ２４６が第１のＴＣＳシーケンス２３６の最後の「リンク」であり、第４の送信元ＴＣＳ２４６内の制御情報がその旨を示し、ＤＭＡコントローラ２２４自体は第１のＴＣＳシーケンス２３６によって指定されたデータ移動タスクが完了したことをシステムに対して通知するための第１の割込みを標識することができる。また、第４の送信元ＴＣＳ２４６が、第３の送信元ＴＣＳ２４４の実行中にエラーが発生したと判定した場合、ＤＭＡコントローラ２２４は、処理ユニット２０８が適切な救済措置をとることができるように第２の割込みを表明する。これらの割込みは別個とすることができ、かつ／またはＤＭＡコントローラ２２４が有効な状態で完了したかまたはエラー状態で完了したかをシステムに通知するために、これらの割込みはそれぞれ異なる優先レベルを有することができ、または代替的に、１つの割込みのみを表明するが、エラー状態が生じたかまたはデータ伝送がエラーなしで終了したかを示すためにＤＭＡコントローラ２２４の状態レジスタに複数の異なる状態値が存在することが可能であり、マイクロプロセッサ２０２は、ＤＭＡコントローラ２２４の状態レジスタを読み出すことによってこれを判断する。
【００１８】
上記では、第１のＴＣＳシーケンス２３６が４つの送信元ＴＣＳ（２４０〜２４６）を有するものとして図解および説明したが、多くの事例において４つより多くの送信元ＴＣＳを第１のＴＣＳシーケンス２３６に含めることができることが明らかである。多くの事例では、第１のＴＣＳシーケンス２３６に含まれる連続した各送信元ＴＣＳは送信元周辺装置２１６からデータを読み出すが、連続した送信元ＴＣＳは第１の送信元メモリバッファ２０４へのデータの書き込みと第２の送信元メモリバッファ２０６へのデータの書き込みとの間で交互に切り替わる。このようにして、ＤＭＡコントローラ２２４が１つの送信元メモリバッファ（たとえば２０４）にデータを書き込んでいる間、他の送信元メモリバッファ（たとえば２０６）は凍結状態となり、および／または処理ユニット２０８によって読み出される。当該シーケンス内において次の送信元ＴＣＳについては、ＤＭＡコントローラ２２４は上述の他の送信元メモリバッファ（たとえば２０６）にデータを書き込み、その間、上述の１つの送信元メモリバッファ（たとえば２０４）は凍結状態となり、および／または処理ユニット２０８によって読み出される。このようにして、リンク付きリストとして配列されたＴＣＳのシーケンスは、送信元周辺装置２１６から２重の送信元メモリバッファ２０４，２０６へ交互にデータを連続的に伝送することができる。他の実施形態では、２つより多くの送信元メモリバッファを設けることができ、複数の連続するＴＣＳまたはリンクが総当たり方式で送信元メモリバッファに書き込むことができる。たとえば、第１の送信元メモリが満杯になるまで第１のＴＣＳが第１の送信元メモリバッファにデータを書き込み、その後、第２の送信元メモリが満杯になるまで第２のＴＣＳが第２の送信元メモリバッファにデータを書き込み、その後、第３の送信元メモリが満杯になるまで第３のＴＣＳが第３の送信元メモリバッファにデータを書き込み、以下同様である。その間にあるＴＣＳがその際にも、次のＴＣＳで指定されたデータ伝送を実行する前に先行のＴＣＳの実行の適否を検証することができる。宛先メモリバッファについても同様の機能が当てはまる。
【００１９】
図３は、図２のＤＭＡコントローラ２２４が動作中に第１および第２の送信元メモリバッファ２０４，２０６へデータをロードできる態様の一部の実施形態のより詳細な例を示している。図３の上部分は、どのようにサンプルを記憶して、第１の送信元メモリバッファ２０４および第２の送信元メモリバッファ２０６から取り出すかを時系列で示しており、図３の下部分は対応するタイムチャートを示している。
【００２０】
時点Ｔ０において送信元周辺装置２１６は、準備完了状態である第１のサンプルを有する。送信元周辺装置２１６から第１のサンプルを移動させる準備をするため、ＤＭＡコントローラ２２４は第１の送信元ＴＣＳ２４０をそのＴＣＳレジスタのセットへロードする（３０１）。図３の実施例では、第１の送信元ＴＣＳ２４０は送信元周辺装置２１６の送信元アドレスと、第１の送信元メモリバッファ２０４の宛先アドレスと、４つのサンプルのデータサイズ（たとえば、本実施例では第１の送信元メモリバッファのサイズと一致する４ワード）と、を指定する。もちろん、他の実施形態ではしばしば、第１の送信元メモリバッファ２０４が４ワードより大きいことも多く、たとえば数百バイトのオーダ、数千バイトのオーダ、数百万バイトのオーダ等であることも多いが、４つのサンプル／ワード数はここでは、分かりやすくするために例示したものである。
【００２１】
時点Ｔ１において、ＤＭＡコントローラ２２４は第１のサンプルを送信元周辺装置２１６から第１の送信元メモリバッファ２０４へ移動させる。各サンプルが移動されるたびにＤＭＡコントローラ２２４は、第１の送信元ＴＣＳ２４０について移動された総データサイズのトラックを維持する。よって、時点Ｔ１では１つのサンプルが移動完了し、移動すべき４つのサンプルのデータサイズには未だ達していない。
【００２２】
時点Ｔ２において、送信元周辺装置２１６が、準備完了状態である第２のサンプルを保有していた後、ＤＭＡコントローラ２２４は第２のサンプルを第１の送信元メモリバッファ２０４へ移動させる。よって、時点Ｔ２では２つのサンプルが移動完了し、移動すべき４つのサンプルのデータサイズには未だ達していない。
【００２３】
時点Ｔ３において、送信元周辺装置２１６が、準備完了状態である第３のサンプルを保有していた後、ＤＭＡコントローラ２２４は第３のサンプルを第１の送信元メモリバッファ２０４へ移動させる。よって、時点Ｔ３では３つのサンプルが移動完了し、移動すべき４つのサンプルのデータサイズには未だ達していない。
【００２４】
時点Ｔ４において、送信元周辺装置２１６が、準備完了状態である第４のサンプルを保有していた後、ＤＭＡコントローラ２２４は第４のサンプルを第１の送信元メモリバッファ２０４へ移動させる。この時点でＤＭＡコントローラ２２４は、第１の送信元ＴＣＳ２４０によって指示されたところによって４つのサンプルのデータサイズが移動完了したと判定する。したがって、ＤＭＡコントローラ２２４は時点Ｔ４において、第１の送信元メモリバッファ２０４が満杯である旨を処理ユニット２０８に対して通知するための割込み３０２を表明することができ、処理ユニット２０８は、送信元メモリバッファ２０４に記憶されたサンプルを解析することができる。
【００２５】
時点Ｔ５において、処理ユニット２０８は第１の送信元メモリバッファ２０４を凍結し（３０４）、また、第１の送信元メモリバッファ２０４に記憶されているデータサンプルの解析を開始する（３０６）。ここでＤＭＡコントローラ２２４は、第１の送信元ＴＣＳ２４０に記憶されている制御情報に基づき、ＴＣＳのシーケンスが第２のＴＣＳを含むか否かを特定することもできる。本実施例では、シーケンスに第２の送信元ＴＣＳ２４２が含まれており（かつ第１の送信元ＴＣＳ２４０によってポインティングされ）、よって、ＤＭＡコントローラ２２４は第２の送信元ＴＣＳ２４２をロードする（３０８）。図３の実施例では、第２の送信元ＴＣＳ２４２は送信元周辺装置２１６の送信元アドレスと第２の送信元メモリバッファ２０６の宛先アドレスとを指定する。第２の送信元メモリバッファ２０６は４つのサンプルのバッファサイズを有し、また、第２の送信元ＴＣＳ２４２で指定されているデータサイズも４つのサンプルである。
【００２６】
時点Ｔ６において、ＤＭＡコントローラ２２４は第５のサンプルを送信元周辺装置２１６から第２の送信元メモリバッファ２０６へ移動させる。ここでも、各サンプルが移動されるたびにＤＭＡコントローラ２２４は、第２の送信元ＴＣＳ２４２について移動された総データサイズのトラックを維持する。よって、時点Ｔ６では第２の送信元ＴＣＳ２４２について１つのサンプルが移動完了し、移動すべき４つのサンプルのデータサイズには未だ達していない。処理ユニット２０８は時点Ｔ６の間、第１の送信元メモリバッファ２０４内のサンプルの解析を継続している（３０６）。
【００２７】
時点Ｔ７において、送信元周辺装置２１６が、準備完了状態である第６のサンプルを保有していた後、ＤＭＡコントローラ２２４は第６のサンプルを第２の送信元メモリバッファ２０６へ移動させる。よって、時点Ｔ７では第２の送信元ＴＣＳ２４２について２つのサンプルが移動完了し、移動すべき４つのサンプルのデータサイズには未だ達していない。
【００２８】
ここで、処理ユニット２０８は時点Ｔ８において、第１の送信元メモリバッファ２０４内のサンプルの解析を完了している。したがって、処理ユニット２０８は受信すべきデータの他のセットのために、たとえば第１の送信元メモリバッファ２０４に記憶されていたサンプルをクリアすることによって、第１の送信元メモリバッファ２０４をセットアップする（３１０）。
【００２９】
時点Ｔ９において、送信元周辺装置２１６が、準備完了状態である第７のサンプルを保有していた後、ＤＭＡコントローラ２２４は第７のサンプルを第２の送信元メモリバッファ２０６へ移動させる。よって、時点Ｔ９では第２の送信元ＴＣＳ２４２について３つのサンプルが移動完了し、移動すべき４つのサンプルのデータサイズには未だ達していない。よって、第１の送信元メモリバッファ２０４が書き込みできる状態に戻っても、ＤＭＡコントローラ２２４は第２の送信元メモリバッファ２０６へのデータサンプルの書き込みを継続する。
【００３０】
時点Ｔ１０において、送信元周辺装置２１６が、準備完了状態である第４のサンプルを保有していた後、ＤＭＡコントローラ２２４は第４のサンプルを第２の送信元メモリバッファ２０６へ移動させる（図示されていない）。この時点でＤＭＡコントローラ２２４は、第２の送信元ＴＣＳ２４２によって指示されたところによって４つのサンプルのデータサイズが第２の送信元メモリバッファ２０６へ移動完了したと判定する。したがって、ＤＭＡコントローラ２２４は時点Ｔ１１において、第２の送信元メモリバッファ２０６が満杯である旨を処理ユニット２０８に対して通知するための割込みを表明することができる（３１２）。ＤＭＡコントローラ２２４は再度、他の送信元ＴＣＳがシーケンス内に存在するか否か、または第２の送信元ＴＣＳ２４２がシーケンスにおいて最後のリンクであったか否かを判定し、送信元ＴＣＳで指定されたところによりデータの書き込みを継続し、第１の送信元メモリバッファ（２０４）と第２の送信元メモリバッファ（２０６）とに交互にデータを書き込むことができる。たとえば、図２において説明したように、第３の送信元ＴＣＳ２４４が送信元周辺装置２１６から第１の送信元メモリバッファ２０４へデータを伝送し、その後、第４の送信元ＴＣＳが送信元周辺装置から第２の送信元メモリバッファ２０６へデータを伝送することができる。
【００３１】
図４〜図５を参照すると、本願の開示内容の一部の実施形態のセーフティシステム４００の追加の図を見ることができる。簡単にいうと、図４は、ＤＭＡコントローラ４２４としてのセーフティシステム４００が第１のＴＣＳシーケンス４３６を使用して、送信元周辺装置４１６から第１および第２の送信元メモリバッファ４０４，４０６へデータを移動させる旨を示しており、図５は、ＤＭＡコントローラ４２４としてのセーフティシステム４００が第２のＴＣＳシーケンス４３８を使用して、第１および第２の宛先メモリバッファ４１０，４１２から宛先周辺装置４１８へデータを移動させる旨を示している。
【００３２】
図４〜図５では、ＤＭＡコントローラ４２４は完全性検査モジュール４５０と、バスコントローラ４５２と、トランザクション制御セット（ＴＣＳ）レジスタ４５４と、を備えている。ここで詳細に理解できるように、処理ユニット４０８がＴＣＳレジスタ４５４にリンク付きリスト構造の第１のトランザクション制御セット（ＴＣＳ）をロードしたとき、ＤＭＡ動作は開始することができる。この第１のＴＣＳは、メモリ４２８内の伝送すべきデータの１つまたは複数のブロックに関する送信元アドレスと、宛先アドレスと、サイズと、制御情報と、を指定し、ＴＣＳシーケンス内に次のリンクがあれば、そのアドレスを指定する。
【００３３】
図４では、第１の送信元ＴＣＳ４４０がＴＣＳレジスタ４５４に書き込まれ（番号１参照）、その後、バスコントローラ４５２が、たとえば送信元周辺装置４１６からデータの１つまたは複数のワードを読み出して（番号２参照）当該ワードを第１の送信元バッファ４０４に書き込む（番号３参照）ことによって、第１の送信元ＴＣＳ４４０によって指定されたデータ伝送を実行する。各ワードが伝送されるたびに、完全性検査モジュール４５０は実際の巡回冗長チェックサムを計算する。この実際の巡回冗長チェックサムは、第１の送信元ＴＣＳ４４０の実行中にＤＭＡコントローラ４２４によって実際にアクセスされるメモリアドレスに基づく（実際のアドレスＣＲＣレジスタ４６４内に記憶された）実際のアドレス巡回冗長チェックサムの形態をとることができる。実際の巡回冗長チェックサムはまた、第１の送信元ＴＣＳ４４０の実行中にＤＭＡコントローラ４２４によって実際に伝送されるデータに基づく（実際のデータＣＲＣレジスタ４６６内に記憶された）実際のデータ巡回冗長チェックサムの形態をとることもできる。
【００３４】
第１の送信元ＴＣＳ４４０によって指定されたデータが伝送完了すると、ＤＭＡコントローラ４２４は、第１の送信元ＴＣＳ４４０に含まれるポインタフィールド４６８に基づいて第２の送信元ＴＣＳ４４２を特定する（番号４参照）。その後、ＤＭＡコントローラ４２４は第２の送信元ＴＣＳ４４２をロードする。第２の送信元ＴＣＳ４４２は、第１の送信元ＴＣＳ４４０が適切に実行されたことを検証するセーフリンク付きリスト動作を定義する。具体的には第２の送信元ＴＣＳ４４２は、期待される巡回冗長チェックサム４７０を含み、よってＤＭＡコントローラ４２４内の論理部４７２は、期待される巡回冗長チェックサム４７０と、第１の送信元ＴＣＳ４４０について計算された実際の巡回冗長チェックサム（たとえば４６４または４６６に記憶されているもの）と、を比較することができる。４６４／４６６に記憶されている（１つまたは複数の）実際の巡回冗長チェックサムが４７０内の（１つまたは複数の）期待される巡回冗長チェックサムと異なる場合には、ＤＭＡコントローラ４２４はデータ伝送を停止し、ダメージを制限するために誤りを標識する（たとえば割込みＩＲＱ）。誤りが検出されない場合には、ＤＭＡコントローラ４２４は、処理ユニット４０８が他のタスクを割込みされることなく継続できるように、割込みを標識することなく、第１のＴＣＳシーケンス４３６内の次の送信元ＴＣＳを特定する（番号５参照）。このようにして、実際の巡回冗長チェックサムと期待される巡回冗長チェックサムとを比較して適切な安全措置を実施することにより、ＤＭＡコントローラ４２４は、ＤＭＡが正しい送信元アドレスからデータを読み出し、かつ正しい宛先アドレスにデータを書き込み完了することを保証するために寄与することができる。
【００３５】
その後、第３の送信元ＴＣＳ４４４がＴＣＳレジスタ４５４に書き込まれ、バスコントローラ４５２が、たとえば送信元周辺装置４１６からデータの１つまたは複数のワードを読み出し（番号６参照）、当該ワードを第２の送信元バッファ４０６に書き込む（番号７参照）ことによって、第３の送信元ＴＣＳ４４４によって指定されたデータ伝送を実行する。典型的には、第１の送信元バッファ４０４はこの時点で満杯となり、これ自体は凍結され、かつ／または処理ユニット４０８によって読み出される。送信元周辺装置４１６から第２の送信元バッファ４０６へ各ワードが伝送されるたびに、完全性検査モジュール４５０は実際の巡回冗長チェックサムを計算する。この実際の巡回冗長チェックサムは、第３の送信元ＴＣＳ４４４の実行中にＤＭＡコントローラ４２４によって実際にアクセスされるメモリアドレスに基づく（実際のアドレスＣＲＣレジスタ４６４内に記憶された）実際のアドレス巡回冗長チェックサムの形態をとることができる。実際の巡回冗長チェックサムはまた、第３の送信元ＴＣＳ４４４の実行中にＤＭＡコントローラ４２４によって実際に伝送されるデータに基づく（実際のデータＣＲＣレジスタ４６６内に記憶された）実際のデータ巡回冗長チェックサムの形態をとることもできる。
【００３６】
第３の送信元ＴＣＳ４４４によって指定されたデータが伝送完了すると、ＤＭＡコントローラ４２４は、第３の送信元ＴＣＳ４４４に含まれるポインタフィールドに基づいて第４の送信元ＴＣＳ４４６を特定する（番号８参照）。その後、ＤＭＡコントローラ４２４は第４の送信元ＴＣＳ４４６をロードする。第４の送信元ＴＣＳ４４６は、第３の送信元ＴＣＳ４４４が適切に実行されたことを検証するセーフリンク付きリスト動作を定義する。具体的には、第４の送信元ＴＣＳ４４６は期待される巡回冗長チェックサム４７１を含み、よって、ＤＭＡコントローラ４２４内の論理部４７２は、期待される巡回冗長チェックサム４７１と、第３の期待される送信元ＴＣＳ４４４について計算された実際の巡回冗長チェックサム（たとえば４６４または４６６に記憶されているもの）と、を比較することができる。４６４／４６６に記憶されている（１つまたは複数の）実際の巡回冗長チェックサムが４７１内の（１つまたは複数の）期待される巡回冗長チェックサムと異なる場合には、ＤＭＡコントローラ４２４はデータ伝送を停止し、ダメージを制限するために誤りを標識する（たとえば割込みＩＲＱ）。誤りが検出されない場合、ＤＭＡコントローラ４２４は、第１のＴＣＳシーケンス４３６内に次の送信元ＴＣＳがあれば、それを特定する。このようにして、実際の巡回冗長チェックサムと期待される巡回冗長チェックサムとを比較して適切な安全措置を実施することにより、ＤＭＡコントローラ４２４は、データの移動が正確に移動完了することを保証するために寄与することができる。第１のシーケンスにおける最後の送信元ＴＣＳに達した場合、ＤＭＡコントローラ４２４は、指定されたデータ伝送が完了したことを処理ユニットに通知するための割込みを表明することができる。
【００３７】
図５では、第１の宛先ＴＣＳ４４１がＴＣＳレジスタ４５４に書き込まれ（番号１参照）、その後、バスコントローラ４５２が、たとえば宛先バッファ４１０からデータの１つまたは複数のワードを読み出し（番号２参照）、当該ワードを宛先周辺装置４１８に書き込むこと（番号３参照）によって、第１の宛先ＴＣＳ４４１によって指定されたデータ伝送を実行する。各ワードが伝送されるたびに、完全性検査モジュール４５０は実際の巡回冗長チェックサムを計算する。この実際の巡回冗長チェックサムは、第１の宛先ＴＣＳ４４１の実行中にＤＭＡコントローラ４２４によって実際にアクセスされるメモリアドレスに基づく（実際のアドレスＣＲＣレジスタ４６４内に記憶された）実際のアドレス巡回冗長チェックサムの形態をとることができる。実際の巡回冗長チェックサムはまた、第１の宛先ＴＣＳ４４１の実行中にＤＭＡコントローラ４２４によって実際に伝送されるデータに基づく（実際のデータＣＲＣレジスタ４６６内に記憶された）実際のデータ巡回冗長チェックサムの形態をとることもできる。
【００３８】
第１の宛先ＴＣＳ４４１によって指定されたデータが伝送完了すると、ＤＭＡコントローラ４２４は、第１の宛先ＴＣＳ４４１に含まれるポインタフィールドに基づいて第２の宛先ＴＣＳ４４３を特定する（番号４参照）。その後、ＤＭＡコントローラ４２４は第２の宛先ＴＣＳ４４３をロードする。第２の宛先ＴＣＳ４４３は、第１の宛先ＴＣＳ４４１が適切に実行されたことを検証するセーフリンク付きリスト動作を定義する。具体的には、第２の宛先ＴＣＳ４４３は期待される巡回冗長チェックサム４７３を含み、よって、ＤＭＡコントローラ４２４内の論理部４７２は、期待される巡回冗長チェックサム４７３と、第１の宛先ＴＣＳ４４１について計算された実際の巡回冗長チェックサム（たとえば４６４または４６６に記憶されているもの）と、を比較することができる。４６４／４６６に記憶されている（１つまたは複数の）実際の巡回冗長チェックサムが４７３内の（１つまたは複数の）期待される巡回冗長チェックサムと異なる場合には、ＤＭＡコントローラ４２４はデータ伝送を停止し、ダメージを制限するために誤りを標識する（たとえば割込みＩＲＱ）。誤りが検出されない場合には、ＤＭＡコントローラ４２４は、処理ユニット４０８が他のタスクを割込みされることなく継続できるように、割込みを標識することなく、第２のＴＣＳシーケンス４３８内の次のＴＣＳを特定する（番号５参照）。たとえば、処理ユニットは第１および／または第２の送信元バッファ４０４，４０６内のデータの解析を継続することができ、かつ／または凍結状態にある第２の宛先バッファ４１２へ制御サンプルを書き込むことができる。このようにして、実際の巡回冗長チェックサムと期待される巡回冗長チェックサムとを比較して適切な安全措置を実施することにより、ＤＭＡコントローラ４２４は、データの移動が正確に移動完了することを保証するために寄与することができる。
【００３９】
その後、第３の宛先ＴＣＳ４４５がＴＣＳレジスタ４５４に書き込まれ、バスコントローラ４５２が、たとえば第２の宛先バッファ４１２からデータの１つまたは複数のワードを読み出し（番号６参照）、当該ワードを宛先周辺装置４１８に書き込むこと（番号７参照）によって、第３の宛先ＴＣＳ４４５によって指定されたデータ伝送を実行する。第１の宛先バッファ４１０はこの時点で完全に読み出され、または空になり、これ自体は凍結され、かつ／または処理ユニット４０８によって再び埋められる。第２の宛先バッファ４１２から宛先周辺装置４１８へ各ワードが伝送されるたびに、完全性検査モジュール４５０は実際の巡回冗長チェックサムを計算する。この実際の巡回冗長チェックサムは、第３の宛先ＴＣＳ４４５の実行中にＤＭＡコントローラ４２４によって実際にアクセスされるメモリアドレスに基づく（実際のアドレスＣＲＣレジスタ４６４内に記憶された）実際のアドレス巡回冗長チェックサムの形態をとることができる。実際の巡回冗長チェックサムはまた、第３の宛先ＴＣＳ４４５の実行中にＤＭＡコントローラ４２４によって実際に伝送されるデータに基づく（実際のデータＣＲＣレジスタ４６６内に記憶された）実際のデータ巡回冗長チェックサムの形態をとることもできる。
【００４０】
第３の宛先ＴＣＳ４４５によって指定されたデータが伝送完了すると、ＤＭＡコントローラ４２４は、第３の宛先ＴＣＳ４４５に含まれるポインタフィールドに基づいて第４の宛先ＴＣＳ４４７を特定する（番号８参照）。その後、ＤＭＡコントローラ４２４は第４の宛先ＴＣＳ４４７をロードする。第４の宛先ＴＣＳ４４７は、第３の宛先ＴＣＳ４４５が適切に実行されたことを検証するセーフリンク付きリスト動作を定義する。具体的には、第４の宛先ＴＣＳ４４７は期待される巡回冗長チェックサム４７５を含み、よって、ＤＭＡコントローラ４２４内の論理部４７２は、期待される巡回冗長チェックサム４７５と、第３の宛先ＴＣＳ４４５について計算された実際の巡回冗長チェックサム（たとえば４６４または４６６に記憶されているもの）と、を比較することができる。４６４／４６６に記憶されている（１つまたは複数の）実際の巡回冗長チェックサムが４７５内の（１つまたは複数の）期待される巡回冗長チェックサムと異なる場合には、ＤＭＡコントローラ４２４はデータ伝送を停止し、ダメージを制限するために誤りを標識する（たとえば割込みＩＲＱ）。誤りが検出されない場合、ＤＭＡコントローラ４２４は、第２のＴＣＳシーケンス４３８内に次のＴＣＳがあれば、それを特定する。第２のシーケンスにおける最後のＴＣＳに達した場合、ＤＭＡコントローラ４２４は、指定されたデータ伝送が完了したことを処理ユニットに通知するための割込みを表明することができる。
【００４１】
ここでいう「巡回冗長チェックサム」とは、ビット、ワード、または他のサイズのデータ内に存在するデータ誤りを検出するために使用できることが理解できる。「巡回冗長チェックサム」との用語は、とりわけ誤り検出符号、（１つまたは複数の）パリティビット、およびハッシュ値を含み得るが、これらに限定されない。一部の事例では、誤り検出符号を誤り訂正符号として具現化し、誤り訂正符号に含まれる情報は、誤りが存在するか否かを検出するだけでなく、誤りを訂正するためにも用いられるようにすることができる。
【００４２】
図６を参照すると、本願の開示内容の一部の実施形態の方法を図解するフローチャートを見ることができる。本方法は６０２において、第１のＤＭＡトランザクション制御セット（ＴＣＳ１）を使用してセンサから観測対象のサンプルを第１の送信元メモリバッファへ伝送する際に開始する。一部の事例ではＴＣＳ１は、第１の送信元メモリバッファを満杯にするように、第１の送信元メモリバッファのサイズと等しい、伝送すべきデータサイズを指定する。一部の事例では、ＴＣＳ１が実行されている間、第２の送信元メモリバッファを凍結し、かつ／またはＴＣＳ１が実行されている間、処理ユニットが第２の送信元メモリバッファから読み出すことができる。
【００４３】
６０４において、ベースアドレスが第１のＤＭＡトランザクション制御セットによってポインティングされる第２のＤＭＡトランザクション制御セット（ＴＣＳ２）を使用して、ＴＣＳ１が適正に実行されたことを検証する。
【００４４】
６０６において、ベースアドレスが第２のＤＭＡトランザクション制御セットによってポインティングされる第３のＤＭＡトランザクション制御セット（ＴＣＳ３）を使用して、センサから観測対象のサンプルを第２の送信元メモリバッファへ伝送する。一部の事例ではＴＣＳ３は、第２の送信元メモリバッファを満杯にするように、第２の送信元メモリバッファのサイズと等しい、伝送すべきデータサイズを指定する。一部の事例では、ＴＣＳ３が実行されている間、第１の送信元メモリバッファを凍結し、かつ／またはＴＣＳ３が実行されている間、処理ユニットが第１の送信元メモリバッファから読み出すことができる。
【００４５】
６０８において、ベースアドレスが第３のＤＭＡトランザクション制御セットによってポインティングされる第４のＤＭＡトランザクション制御セット（ＴＣＳ４）を使用して、ＴＣＳ３が適正に実行されたことを検証する。
【００４６】
６１０において、第５のＤＭＡトランザクション制御セット（ＴＣＳ５）を使用して、第１の宛先メモリバッファセンサから制御サンプルを宛先周辺装置へ伝送する。一部の事例ではＴＣＳ５は、第１の宛先メモリバッファの全部の内容を宛先周辺装置へ移動させるように、第１の宛先メモリバッファのサイズと等しい、伝送すべきデータサイズを指定する。一部の事例では、ＴＣＳ５が実行されている間、第２の宛先メモリバッファを凍結し、かつ／またはＴＣＳ５が実行されている間、処理ユニットが第２の宛先メモリバッファへ書き込むことができる。
【００４７】
６１２において、ベースアドレスが第５のＤＭＡトランザクション制御セットによってポインティングされる第６のＤＭＡトランザクション制御セット（ＴＣＳ６）を使用して、ＴＣＳ５が適正に実行されたことを検証する。
【００４８】
６１４において、ベースアドレスが第６のＤＭＡトランザクション制御セットによってポインティングされる第７のＤＭＡトランザクション制御セット（ＴＣＳ７）を使用して、第２の宛先メモリバッファから制御サンプルを宛先周辺装置へ伝送する。一部の事例ではＴＣＳ７は、第２の宛先メモリバッファの全部の内容を宛先周辺装置へ移動させるように、第２の宛先メモリバッファのサイズと等しい、伝送すべきデータサイズを指定する。一部の事例では、ＴＣＳ７が実行されている間、第１の宛先メモリバッファを凍結し、かつ／またはＴＣＳ７が実行されている間、処理ユニットが第１の宛先メモリバッファから読み出すことができる。
【００４９】
６１６において、ベースアドレスが第７のＤＭＡトランザクション制御セットによってポインティングされる第８のＤＭＡトランザクション制御セット（ＴＣＳ８）を使用して、ＴＣＳ７が適正に実行されたことを検証する。
【００５０】
本願に含まれる実施形態の説明では、図面に示され、または本願明細書で記載された機能ブロック、装置、構成要素、回路要素、または他の物理的もしくは機能的ユニットの直接的な接続または結合は全て、間接的な接続または結合によって、すなわち１つまたは複数の介在要素を有する接続または結合によって、実現することもできると解すべきである。さらに、図面中において示されている機能的ブロックまたはユニットは、一部の実施形態ではそれぞれ別個の回路として実現することができ、また、その機能的ブロックまたはユニットの全部または一部を、他の実施形態では同一の回路または同一の集積回路で実装することもでき、または一部の事例では、これに対応して１つのプロセッサをプログラミングすることによって共に実装することも可能であることが明らかである。
【００５１】
図面は、本発明の実施形態の一部の構成および一部の側面を詳解するためのものであり、単なる概略図とみなすべきであることに留意すべきである。とりわけ、図面に示されている各要素は、必ずしも互いに実寸の比率通りであるとは限らず、図面中の複数の要素の配置は、各実施形態を分かりやすくするために選択されたものであり、図示されている複数の構成要素および要素の実際の相対位置を必ず表すものであると解すべきものではない。本願で記載されている複数の実施形態の構成は、互いに組み合わせることができる。また、複数の構成を有する１つの実施形態を記載していることは、本発明を実施するために当該複数の構成全てを要することを示唆するものであると解すべきではない。というのも、他の実施形態はそれより少ない構成および／または代替構成を有し得るからである。
【図１】
2019008793.tif 000003
【図２】
2019008793.tif 000004
【図３】
2019008793.tif 000005
【図４】
2019008793.tif 000006
【図５】
2019008793.tif 000007
【図６】
2019008793.tif 000008
【外国語明細書】
2019008793.tif 000009
2019008793.tif 000010
2019008793.tif 000011
2019008793.tif 000012
2019008793.tif 000013
2019008793.tif 000014
2019008793.tif 000015
2019008793.tif 000016
2019008793.tif 000017
2019008793.tif 000018
2019008793.tif 000019
2019008793.tif 000020
2019008793.tif 000021
2019008793.tif 000022
2019008793.tif 000023
2019008793.tif 000024
2019008793.tif 000025
2019008793.tif 000026
2019008793.tif 000027
2019008793.tif 000028
2019008793.tif 000029
2019008793.tif 000030
2019008793.tif 000031
2019008793.tif 000032
2019008793.tif 000033
2019008793.tif 000034
2019008793.tif 000035
2019008793.tif 000036
2019008793.tif 000037
2019008793.tif 000038
2019008793.tif 000039