JAJZ036A December 2024 – July 2025 AM2752-Q1 , AM2754-Q1
IA:IA でデッドロック シナリオが発生する可能性があります
割り込みアグリゲータ (IA) には、イベント トランスポート レーン (ETL) バスに到着したイベントを割り込みステータス ビットに変換するというメイン機能が 1 つあります。これは、レベル割り込みの生成に使用されます。IA バージョン 1.0 でこの関数を実行したブロックはステータス イベント ブロックと呼ばれていました。
ステータス イベント ブロックに加えて、マルチキャスト イベント ブロックとカウント イベント ブロックという 2 つの主要な処理ブロックがあります。マルチキャスト ブロックは、実際にはイベント スプリッタとして機能します。イベントが発生するたびに、2 つの出力イベントを生成できます。カウント イベント ブロックは、高周波イベントを読み取り可能なカウントに変換するために使用されます。入力イベントをカウントし、0 以外のカウント値との間のカウント遷移時に出力イベントを生成します。ステータス イベント ブロックとは異なり、マルチキャストおよびカウント イベント ブロックは出力 ETL イベントを生成し、他の処理ブロックにマッピングします。
設計後に、IA のデッドロックを引き起こす可能性のある問題が発見されました。この問題は、これら 3 つの処理ブロック間でイベント「ループ」が発生した場合に発生します。パスがブロックされているために処理ブロックがイベントを出力できず、イベントを出力できないために、新しい入力イベントを取得できない状況が発生する場合があります。この入力イベントを受信できないため、出力パスがアンワインドできなくなり、両方のパスがブロックされたままになります。
図 2-1 に、IA 1.0 の概念ブロック図を示します。潜在的なループは、カウント イベント ブロックがマルチキャスト ブロックにイベントを送信しないようにするポリシーを採用することで回避できます。最初にイベントを分割してから、他の場所に送信する間に 1 を数えるのが一般的であるために、この方法が選択されました。このパスが慣例によってブロックされている場合、1 つのイベントが複数回ブロックにアクセスすることはできず、出力がブロックされない限り、パスがブロックされることはありません。
図 2-1 割り込みアグリゲータ バージョン 1.0ここに概説されているルールに従うと、システムは、デッドロック シナリオを発生させる可能性のあるループ危険性を回避して安全に動作できます。