SSID (Single Slave per ID) の規則は、主にインターコネクト コンポーネントが若干の性能低下と引き換えに実装を簡略化する手段として使用します。この規則は、次の条件がすべて成立した場合に適用されます。
- あるマスターがトランザクションを複数の出力ポート (スレーブ) に送信している。
- 保留中のトランザクションが複数ある。
- 複数のトランザクションが同じ ID を使用している。
AXI ID の規則では、ID が同じトランザクションは、発行されたのと同じ順番で応答を返す必要があります。ただし、上記の条件がすべて成立する場合は、スレーブごとにレイテンシが異なる可能性があるため、発行とは異なる順番で応答が返されることがあります。このような事態を防ぐため、コンポーネントは次のように動作します。
- ポート B に対して ID x の未処理トランザクションが既に存在している状態で、ポート A に対して ID x のトランザクションが到着した場合、マスターはポート B に対する ID x の未処理トランザクションがすべて完了するのを待ってから、新しい要求をポート A に送信します。
このようにすると、いずれの ID も 1 つのスレーブ デスティネーションでのみ保留中となり、応答は必ず発行されたのと同じ順番で返されることになります。これが、「Single Slave per ID (ID ごとに 1 つのスレーブ)」の名前の由来です。特にインターリーブ メモリなどでは、これによって性能が低下することがあります。