-------------------------------------------------------------------- CS 757 Parallel Computer Architecture Spring 2012 Section 1 Instructor Mark D. Hill -------------------------------------------------------------------- ------------ Coherence 3 -- Directories ------------ OUTLINE * Directories * MSI * E and O * State (e.g., sharers) * Where? LLC, etc.? ------------------------------ Chapter 8 --------- Directories Simple idea Actually, interleaved for different blocks Figure 8.2 -- state // log2(owner) // sharer list Figure 8.3 basic transactions Deadlock and virtual networks Table 8.1 MSI Directory Protocol -- in detail * I to S -- 2 common, 1 race ... Above stalls * e.g., forward in transient * no Upgrade Adding E state * We make E/M the owner with need to explicit replacement * Could allow silent reeplacements of E, e.g., SGI Origin 2000 -- in E both * memory (data) and E-core responses (S,E -- no data, M -- overriding data) Adding O state Representing Directory state * complete sharer bit vector * coarse sharer list * limited i-pointers where each cache also has a pointer Dir[i]B -- if >i broadcast Dir[i]NB -- force recalls Directory Organization * Logically with every block in memory ... now add directory cache ... * Directory cache -- backed by DRAM -- forget it ... now subtract state at memory * Directory cache w/ inclusive LLC -- need recalls on LLC replacement (also * can't have enough associativity) -- Intel * Standalone directory cache -- dupicates tags, need recalls on LLC * replacement -- AMD probe filter