摘要:
首先介绍一下重排序和内存屏障。 重排序分为两种 编译器重排序:有一段代码 由于现代CPU采用多级流水线设计,可以同时执行多条语句,因此上述代码执行过程中,b=2可以直接放入到流水线,而a=a+1必须等a=a/2.0完成以后才能放入流水线。为了提高代码执行效率,编译器会把代码改成 。这就是编译器重排序 阅读全文
posted @ 2018-04-14 17:43
破凡
阅读(239)
评论(0)
推荐(0)
摘要:
无论程序语言如何千变万化,他们都深深地根植于目前的计算机体系结构。 左图是intel CPU的三级高速缓存设计,由于高速缓存对程序员基本不可见,因此可以抽象为右图。 缓存的设计 首先还是先谈谈左图。 1. L1 cache分为两部分,i cache存储指令(只读),d cache存储数据(可读可写) 阅读全文
posted @ 2018-04-14 17:42
破凡
阅读(445)
评论(0)
推荐(0)