MESI State Transitions

Transition Table

Current State

Event

Resulting Action

Next State

I

CPU Read

Send ReadShared

S (or E if no other sharers)

I

CPU Write

Send ReadExclusive

E (then silent E M on write)

S

CPU Read

(Cache hit, no action)

S

S

CPU Write

Send Upgrade

M

E

CPU Read

(Cache hit, no action)

E

E

CPU Write

(Silent transition)

M

M

CPU Read

(Cache hit, no action)

M

M

CPU Write

(Cache hit, no action)

M

M

Eviction

Send WriteBack (dirty data)

I

S

Eviction

(Silent drop, no WriteBack needed)

I

E

Eviction

(Silent drop, no WriteBack needed)

I

S

Invalidate (from CM)

Send InvAck, drop line

I

E

Invalidate (from CM)

Send InvAck, drop line

I

M

Invalidate (from CM)

Send WriteBack (implicit InvAck), drop line

I