MESI协议
2020-10-10 11:33:41 0 举报
从MESI协议到硬件底层如何实现可见性与有序性
作者其他创作
大纲/内容
flag
处理器A
cache line
tag
read S
高速缓存(底层数据结构:拉链散列表)
处理器B
先把flag置为E,再去更新,更新完flag置为M
bucket
flag=Sfalg=Eflag=M
只有等CPU所有核返回invalid ACK后才会把原更新到写寄存器的数据更新到高速缓存
tag对应主存中的地址
发送invalid消息
总线BUS
总线嗅探到invalid ack
写寄存器
invalid消息全部写入
cache entry
返回invalid ACK
直接更新到
处理器B读处理器A高速缓冲的数据时,A会把flag=M刚修改后的数据的flag置为S共享态
无效队列
cacheLine包含多个变量的值
后续慢慢消费无效队列里的invalid消息,把相应的数据flag置为I
flag =I
主存
总线嗅探接收到invalid消息
flag标识缓存行的状态
0 条评论
下一页