Skip to content

Inter unit dependencies

Ashish Gehani edited this page Mar 16, 2019 · 6 revisions

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

In Engagements 2 to 5, we no longer report unit → memory and memory → unit dependencies. Instead, we stream process these dependencies and only report final 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. abstract 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. perform the analogous abstraction for memory → write → unit dependencies, and

  4. abstract 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 of inter-unit dependency information reported, without any loss of completeness in causality tracking.

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.