なぜいくつかのマイクロコントローラーには、このような大きな同期遅延があるのですか?
Atmel SAM-D21シリーズマイクロコントローラーでは、多くの周辺機器がメインCPUクロックと非同期のクロックを使用し、これらの周辺機器へのアクセスは同期ロジックを通過する必要があります。クロックがCPU時間に比べて遅い周辺機器では、これにより非常に大きな遅延が発生する可能性があります。たとえば、RTCが1024Hzクロックを使用するように構成され(設計意図のように見える)、CPUが48Mhzで実行されている場合、「現在時刻」レジスタを読み取ると、バスロジックが200,000を超える待機状態を挿入します(最小1024Hzクロックの5サイクル)。CPUに読み取り要求を発行させ、他の無関係なコードを実行し、200,000サイクル以上を返して時間を取得することは可能ですが、実際に時間をより速く読み取る方法はないようです。 同期についての私の理解では、シングルビット同期回路は宛先クロックの2〜3サイクルだけ信号を遅延させます。マルチビット量の同期は少し難しくなりますが、ソースクロックよりも高速な場合はデスティネーションクロックの5サイクル以内で信頼性の高い動作を保証できるさまざまなアプローチがあり、そうでない場合はわずか数サイクルだけです。同期のためにソースクロックドメインで6サイクルを必要とするAtmel SAM-D21が行うこと、および同期遅延が「同期完了」割り込みを必要とするほど十分に長い設計に有利な要因は何ですか?同期遅延は、そのような割り込みを不要にするほど短いですか?