POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
12
返回列表 发新帖
楼主: stevejobs
打印 上一主题 下一主题

A7处理器架构比肩Intel桌面CPU 苹果设计思路超前

[复制链接]
21#
发表于 2014-4-3 15:07 | 只看该作者
以下内容转自知乎,请勿直接对本楼进行攻击。


这阵子一共看到两个逗逼报道,其一是SemiAccurate用开发板的电源适配器来估测Tegra K1功耗,只能用“惊为天人”四个字来形容,然后告诫自己以后不要再看SemiAccurate。其二就是AnandTech这个。AnandTech让我很失望。以前只是犯些小错,文章质量还不错,这次大失水准。

AnandTech说A7是6发射,画了6个decoder,好吧,可是AnandTech自己贴出的截图里面明明写着6 dispatch,而LLVM commit的全文中没有出现decode字样。这让我很疑惑AnandTech是不是根本分不清decode和dispatch。这是不懂微结构设计的外行常犯的毛病。一般我们说发射宽度都是用流水线最窄的一段衡量,比如Cortex A15是3-issue,Silvermont是2-issue,都是这么来的。

把dispatch width或者reservation station issue width算成总的issue width也不是不行,只要标准统一即可:
如果说6 dispatch就是6 issue,Pentium 4也是6 dispatch,以后Pentium 4也一跃成为6发射处理器。

觉得按照dispatch width把Pentium 4算成6发射有些滑稽,那按照reservation station issue width来算的也可以啊,这么一来Cortex A15就是8-issue,从此以后Cortex A15就摇身一变成为8发射处理器。
这种逗逼的做法我就不做进一步评论了。

目前看来ROB确实比同期其他处理器大了不少,但是我看不懂那些issue queue/reservation station是怎么组织的,这个也没办法评论。

再说那个测issue-width。我不知道AnandTech要用什么来测issue-width。

除了可以看到内部细节的微结构simulator,以及硬件内建的性能计数器可以有办法去做这种细粒度的测试外,我暂时还不知道其他的方法。显然AnandTech不具备这两种实验的能力。能做这两种实验的人都去ISCA,MICRO等牛会上发论文了。很多人都是构造一段汇编指令测timing来做估计,这种貌似专业的测试流毒甚广,根本不准。
没有任何程序可以测decode width
没有任何程序可以测dispatch width
没有任何程序可以测issue width
所有程序都只能测retire width
这个道理非常的简单,只有指令从ROB retire了之后,结果才会更新到ISA可见的寄存器里面,上层才能看到。没有retire之前,一切都是空谈。再牛逼的程序也只能测到流水线最末端的retire width。

假设有一个处理器从reservation station每周期issue 8条指令给各种执行单元,但是ROB每次只能retire 4条,那么最多最多只能测出4-issue,反之,如果retire width是4但每周期只能issue 3条,但是搭配了某种不必issue指令就能获取指令结果的技术(e.g. 针对move reg,#0这种特别指令的register renaming,Cyclone就具备这项优化),最后测出来的issue-width也有可能是4.

最后,这种测试issue-width的东西也没有多大意义,issue-width只是决定处理器性能众多因素之一,现在最严重的瓶颈根本不在核心流水线,而在cache和memory。

众所周知Intel的CPU是4-issue,理想IPC是4,但是在很多基准测试里面IPC只能勉强超过1,有的甚至只有0.1~0.2,构造一堆汇编指令测timing真的是小孩子过家家似的东西。
回复 支持 反对

使用道具 举报

22#
发表于 2014-4-4 01:00 | 只看该作者
本帖最后由 codecos 于 2014-4-4 01:05 编辑

4月1日的东西,能信吗?
没准人家在屏幕旁哈哈大笑了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2025-8-19 22:25

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

快速回复 返回顶部 返回列表