今天听了intel的一位大牛讲解Apple A7cylone 的架构。
由于不是专业人士所以,没有听的很明白,仅把自己还记得的东西记录下来
1. branch predict使用的是最先进的Path-Based NeuralBranch Prediction.
命中率高达98%。miss的代价好像是10几个时钟周期把。
而intel使用的是gshare。命中率只有95%-97%之间。
附上wiki的branch predictor的链接以供参考:http://en.wikipedia.org/wiki/Branch_predictor
所以大牛的建议,把循环内的分支提取出来的优化可以不做了。:)
2. ROB 高达188个。通过寄存器重命名,可以达到load/store out of order.
我迷惑的地方是编译器也牵涉到寄存器分配问题。如果cpu都可以重命名,那貌似寄存器分配就不用了?
惯例:给wiki链接 http://en.wikipedia.org/wiki/Register_renaming
3. 有4M的eDram的L3cache,连着包括cpu在内的众多soc部件。大牛提出了个想法,对做软件的我很有冲击力。
这块内存也许可以分配来作为进程通信的共享内存用,好比android的binder传递的数据。因为eDram的存取时间在110cycles,
内存的存取时间在200多cycle。快了一半啊。
还有很多架构方面的细节内容不记得了 :( 主啊,原谅我这个老菜鸟,知识不足,记性不好吧。
但是最后的猜想,我却记下来了。哈哈。大牛说A7的架构的和Haswell的架构同样先进,甚至更先进。
最后有个性能测试图,A7相比i5-2400m性能相差一半,但是A7是双核 i5-2400m是四核,所以也就是A7和i5-2400m性能/核心比是相等的。
所以大牛有个大胆的猜想。Apple下一代的macbook aire也许就会采用自己的CPU了,而放弃Intel的了。
特此记录下来,等待后续验证。
PS:各位看官不要乱喷。我是cpu arch方面的菜鸟,只是记录下自己所听的,有高手愿意指正,高兴万分。