Skip to content

Inter unit dependencies

Ashish Gehani edited this page Apr 24, 2017 · 7 revisions

The definition of a unit in Engagement 2 has not changed from Engagement 1. (It still pertains BEEP loops.)

In Engagement 2, we no longer report unit → memory and memory → unit dependencies. Instead, we stream process these dependencies and only report unit → unit dependencies.

In particular, we:

  1. eliminate many dependencies between units and memory locations (and vice versa) when there is no complete unit → memory → unit dependency,

  2. abstracts multiple unit → read → memory dependencies between the same unit and memory instances into a single unit → memory intermediate dependency (that is abstracted away, as described below),

  3. performs the analogous abstraction for memory → write → unit dependencies,

  4. abstracts each pair of intermediate unit 1 → memory and memory → unit 2 dependencies into a single unit 1 → unit 2 inter-unit dependency.

Together, these significantly decrease the volume inter-unit dependency information reported, without any loss of completeness in causality tracking.

Clone this wiki locally