Notes of "Pentium Processor System Architecture" - Mutiple Processors and the MESI Model
Posted on 2005-05-15 17:56 bullfinch 阅读(671) 评论(0) 编辑 收藏 举报Single Processor MESI Implementation:
Initial Read from System Memory:
(II)[SE] L2-E L2-WB/WT#=0 L1-S
First Write to the Internal Cache Line:
(SE)[EM] L2-M L2-WB/WT#=1 L1-E (Write-Once Policy)
Bus Master Read from Line Stored in the M State in L2 Cache:
(EM)[SE] L2-backoff-snoop L1(E) L2-INV=0 L1-S L2-Write Back-release backoff L2-E(/S)
Bys Master Write to a Line Stored In the M State in the L2 Cache:
(EM)[II] L2-backoff-snoop L1(E) L2-INV=1 L1-I L2-Write Back-release backoff L2-I
Second and Subsequent Writes to the Internal Cache:
(EM)[MM] L1-M (Write-Once Policy)
Bus Master Read from a Modified Line in the L1 Data Cache:
(MM)[SE] L2-backoff-snoop L1(M) L1-Write Back L2-INV=0 L1-S L2-E(/S) L2-release backoff
Bus Master Write to a Modified Line in the L1 Cache:
(MM)[II] L2-backoff-snoop L1(M) L1-Write Back L2-INV=1 L1-I L2-I L2-release backoff
* L1-S indicates that any update should be written through to L2
* (xx)indicates the state of L1 and L2 before transition
* [xx]indicates the state of L1 and L2 after transition
Multi Processor MESI Implementation:
Mulitmaster systems have to use write-back look-through caches to avoid overloading the bus with numerous accesses made by each bus master.And communication exists between the L2 cache controllers in order to indicate the result of snoop operations.
Read by Processor B from a Line Present in Processor A's Cache
Scenario 1: Cache state after reading target line from system memory. A(SE)[SS]
B(II)[SS] AL2-S (no snoop AL1) AL2-CHIT#=0 BL2-S BL2-WB/WT#=0 BL1-S
Scenario 2: Cache state after 1st internal write to target line. A(EM)[SS]
B(II)[SS] AL2-CHIT#=0-CHITM#=0 BL2-BOFF#=0 AL2-snoop AL1(E) AL2-INV=0 AL1-S AL2-Write Back AL2-S AL2-CHIT#=1-CHITM#=1 BL2-BOFF#=1 AL2-CHIT#=0 BL2-S BL2-WB/WT#=0 BL1-S
Scenario 3: Cache state after 2nd and subsequent internal writes to target. A(MM)[SS]
B(II)[SS] AL2-CHIT#=0-CHITM#=0 BL2-BOFF#=0 AL2-snoop AL1(M) AL2-INV=0 AL1-Write Back AL1-S AL2-S AL2-CHIT#=1-CHITM#=1 BL2-BOFF#=1 AL2-CHIT#=0 BL2-S BL2-WB/WT#=0 BL1-S
Write by Processor B to a Line Present in Processor A's Cache
Scenario 1: Initial cache line state after reading target line from system memory. A(SE)[II]
B(II)[II] AL2-I AL2-snoop AL1(S) AL2-INV=1 AL1-I (B depends on allocate-on-write support)
Scenario 2: Cache line state upon completion of 1st internal wrtie to target line after it's placed in L1 cache. A(EM)[II]
B(II)[II] AL2-CHIT#=0-CHITM#=0 BL2-BOFF#=0 AL2-snoop AL1(E) AL2-INV=1 AL1-I AL2-Write Back AL2-I A2-CHITM#=1 BL2-BOFF#=1
Scenario 3: Cache line state after 2nd and subsequent internal writes to target line by the processor. A(MM)[II]
B(II)[II] AL2-CHIT#=0-CHITM#=0 BL2-BOFF#=0 AL2-snoop AL1(M) AL2-INV=1 AL1-Write Back AL1-I AL2-I AL2-CHITM#=1 BL2-BOFF#=1
Scenario 4: Cache line state after anotehr bus master reads from target line. A(SS)[II]
B(SS)[SE] BL2-E AL2-I AL2-snoop AL1(S) AL2-INV=1 AL1-I
Table 1 L1 Cache State Changes During Momory Reads
Present State |
Pin Activity |
Next State |
Description |
M |
n/a |
M |
Read Hit. |
E |
n/a |
E |
Read Hit. |
S |
n/a |
S |
Read Hit. |
I |
CACHE#, KEN#, PWT low and WB/WT# high |
E |
Read Miss. L2 write-through or not present. |
I |
CACHE#, KEN# low, (WB/WT# low or PWT hight) |
S |
Read Miss. L2 write-back. |
I |
CACHE# or KEN# high |
I |
Read Miss. non-cacheable. |
Table 2 L1 Cache State Changes During Momory writes
Present State |
Pin Activity |
Next State |
Description |
M |
n/a |
M |
Write Hit. |
E |
n/a |
M |
Write Hit. |
S |
PWT low and WB/WT# high |
E |
Write Hit. L2 write-once |
S |
PWT, WB/WT# low |
S |
Write Hit. |
S |
PWT high |
S |
Write Hit. write-through page |
I |
n/a |
I |
Write Miss. write-through |
Table 3 L1 Cache State Changes During Read or Write Snoop
Present State |
Next State |
Next State |
Description |
M |
I |
S |
snoop hit to amodified line. |
E |
I |
S |
a snoop hit to clean line in exclusive state. |
S |
I |
S |
a snoop hit to a clean line in shared state. |
I |
I |
I |
snoop miss. |