为了让CPU更好卖,英特尔将硬件变“软”了

2017-06-28 09:43:00 来源: 互联网

china0513-624x468

来源:内容整理自互联网 ,谢谢。

这是一篇极具可读性的短文,有趣地揭示了英特尔x86指令集架构(ISA)最近发生的事情。我们看到了扩展的数量和复杂度的急剧增加,及其对系统研究人员(和英特尔)产生的一些有趣的影响。我们也看到越来越多的微代码的使用模糊了ISA作为硬件和软件之间的界限这一角色。

我们认为,这些扩展现在正在逼近类似软件层面的复杂程度,但同时也包含了硬件实现的所有缺点,以及缓慢的部署周期。我们怀疑当前的路径可能是不可持续的,并假设了一个可替代的未来,最终目标是将新的ISA特性与底层硬件分离。

过去:稳定且可控的增长

386参考手册列出了96条指令。随着时间的推移,新的指令在诸如浮点支持,向量扩展,加密加速器,64位等领域都在不断增加。至关重要的是:

……过去的系统设计人员极大程度上忽略了这种变化……除了64位模式和虚拟化扩展之外,x86系统开发人员偶尔也会进行一些调整,以提高性能或纠正明显的缺点,但除此之外,其他方面都被忽略了。即使是64位模式也不会显著增加架构的复杂性……

为什么要购买新CPU?

随着摩尔定律的放缓,英特尔传统的两年“Tick-Tock”发展模式也在放缓。这就提出了一个显而易见的问题:

……如果没有微架构方面的改进,他们的CPU就不会有大幅提速,也不会有更高的效率,而且他们相同价位的CPU的核心数量与先前的CPU完全相同。为什么会有人购买新的CPU?

如果你站在英特尔的角度思考一会儿,你就能明白为什么会有这样的麻烦。你还能做些什么可以让购买新CPU变得有吸引力呢?

英特尔似乎正在转向的一个理由是:如果新的CPU实现了一个重要的ISA扩展——例如,软件提出了一个需求,因为它对于安全至关重要——消费者就会有一个强大的理由去升级。

换言之,加快发布速度很可能是英特尔有意让我们继续购买的策略。结果……

在过去的两年里,ISA的复杂性急剧地增加了(例如:在下图中,我们可以看到架构手册的大小),在此过程中有更多的扩展。

china0513-624x468

图1:英特尔x86 CPU和ISA的复杂性的增加

上图仍然遵循摩尔定律(注意左侧坐标轴上的对数刻度),最近公布的节奏放缓尚未出现。在手册中使用文字作为复杂性的代表,我们可以看到在2015-16年间因Skylake引入的而引起的大幅增长。

(出于兴趣,我估计手册有200万词,平均阅读速度为每分钟200词,以每周阅读40小时计算,需要一个月才能读完,而这仅仅是为了阅读一份手册!)

下表总结了最近的ISA扩展以及引入的新指令的数量。

china0513-624x468

复杂性的增加不仅仅来自于新指令的数量,更重要的是来自于与现有指令的交互:

这些最近的扩展引入了新的系统级功能,这经常改变现有指令的语义,并与其他扩展和先前的体系结构特性进行复杂的交互。

SGX和CET示例

鲍曼引用SGX和CET扩展作为主要例子。我们以前一定在《晨报》上看到过SGX很多次吧。

功能强大的组合以及强大的物理安全(内存加密)使得SGX对研究人员和从业者都有吸引力……但是,SGX引入了大量的复杂性:用近200页的英文/伪代码规范描述了26条指令。

在这200页中,有近20页专门用于介绍SGX与先前架构特征的交互。而事实证明,其中一种交互可能会破坏SGX寻求提供的安全保障。这对我来说是新鲜的,尽管我读过很多关于研究SGX系统的文章。

如果你感兴趣的话,你可以在这里参考“防止页面错误告诉你的秘密”(CCS’16)。攻击依赖于操作系统控制下的侧面通道(因此在SGX威胁模型中被认为是攻击者的控制):页面错误。通过在几乎每条指令上诱导一个页面错误,足够的信息被泄漏出去,平均27%的密钥位可以恢复,如果使用OpenSSL和libgcrypt的加密密钥则可以恢复100%的密钥位。

也许具有讽刺意味的是,已知的最优方法利用了与事务内存扩展的看似无意的交互:事务中止而不是页面错误,因此操作系统不能观察事务性的扩展内存访问。

老实说,CET(控制流程执行技术)扩展听起来很酷。它通过维护影子堆栈和间接分支跟踪来防御代码重用攻击(如ROP)。影子堆栈只包含返回地址,并且无法访问正常代码。在返回的时候,来自常规和影子堆栈的地址会被弹出并进行比较——如果它们不匹配,就会有麻烦了!

CET承诺为不安全的C / C ++代码增加强大的防御,代价是牺牲大量的架构复杂度……主要的复杂性来自于功能交互。在x86上的控制传输已经非常复杂,包括许多调用和返回的形式,比如对不同的段或特权级别的调用。总共有9条指令(其中一些有很多变体,如JMP)被CET修改。

我们能保持这种速度吗?

随着复杂交互的系统级特性的复杂性的快速增长,我们看到了很高的变化速度。然而,“x86语义的忠实实现对于x86兼容的处理器、虚拟机、仿真器、JIT编译器、动态翻译器、反汇编器、调试器、评测器等都是至关重要的。”

……我们不得不质疑,在许多实现中,x86承诺的无限向后兼容性是否可持续。

当改进通过新的指令进行时,取得收益需要更长的时间

第一个SGX规格发布于2013年,首颗实现它的CPU直到2015年才发货,而支持SGX的服务器级CPU仍然在2017年初出现。另外再加上充分部署的时间,那么从初始规格到广泛适用便需要10年时间。在这个周期的某个时刻,软件开发人员将能够以合理的假设来开始SGX的开发。

这代表了软件开发人员的一个艰难的权衡;之前ISA扩展也花了很长时间部署,但是它们通常只能加速现有的功能;具有像SGX这样的功能,开发人员面临着一个严峻的选择;无限期地为安全性而等待,或者立即就部署它。

加上这个软件的滞后,我们可能会看到,新功能的普遍开发大概需要十多年的时间。

硬件和软件之间的界限正在变得模糊

仔细阅读英特尔的专利,你会看到,SGX指令完全以微代码实现。如果新的ISA功能是新的微代码,那么就可以在现有的CPU上支持它们。例如,或许(许多)新指令的(性能较差的)版本可以通过这种方式实现,从而为新特性的采用提供了一个更快的途径。它的许可和收入模式是一个开放的问题(与出售新CPU的愿望的相互作用)。

……现在比以往任何时候都更需要重新考虑指令集的概念,它不再是硬件和软件之间的界限,而是堆栈中的另一个翻译层。

今天是《半导体行业观察》为您分享的第1319期内容,欢迎关注。

R

eading

推荐阅读(点击文章标题,直接阅读)

TI这颗芯片的失误,间接成就了Intel

芯片的未来:继续缩小OR改变封装?

关于肉夹馍和良率那点事儿

摩尔邀请您加入精英微信群

你好,感谢长期对半导体行业观察的关注和支持!为了方便各位精英专家交流,我们组建了一些专业、微信交流群,欢迎你加入,我们还会邀请在摩尔直播App做过技术和行业分享的100+技术大牛入群和大家交流。加群方法: 长按二维码,加群主为好友,填写加群需求信息,拉你入群。(微信限制每天好友添加数量只有300人,请耐心等待)

china0513-624x468

地域群:

上海、深圳、北京、江苏.浙江、西安、武汉、成都.重庆、合肥、厦门.晋华、大连、台湾、新加坡、日本.韩国、美国、欧洲、摩尔直播学习群。

专业群:

模拟射频设计、EDA.IP、数字芯片设计、模拟混合信号设计、版图Layout、数字PR.验证、晶圆制造Fab、设备EE、半导体材料、半导体设备、封装测试、半导体投资、市场销售、AE.FAE、嵌入式开发、实习交流、采购.IC代理

专业微信群规则:

1. 专业、高效交流,建议进群请修改群昵称,格式:公司或学校+职位或专业+中文或英文,请服从群主管理,如果多次违规会被请出交流群;

2. 原则上每人加不超过3个群,精彩讨论内容,群主会负责在不同群同步,既然加了群,请大家尽量置顶群,积极参与群讨论;

3. 群里聊天讨论仅限半导体专业内容,杜绝专业无关内容,特别是养生、拉票、微商等内容,严格禁止,为自己公司打广告以不引起群友反感为限;

4. 前100人免费,超过100人后,新进群者发新人红包,金额随意,讨个彩头。群友每增加100人,群主发群红包庆祝,金额等于群友人数。

关注微信公众号 半导体行业观察,后台回复关键词获取更多内容

回复 雄心 ,看《苹果的芯片帝国雄心》

回复 张汝京 ,看《中国半导体教父张汝京的“三落三起”》

回复 国产 ,看《国产手机崛起背后的最大受益者》

回复 ASR ,看《ASR收购Marvell MBU背后:一段有关RDA的爱恨情仇》

回复 IC ,看《一文看懂 IC 产业结构及竞争关系》

回复 展会 ,看《2017最新半导体展会会议日历》

回复 投稿 ,看《如何成为“半导体行业观察”的一员 》

回复 搜索 ,还能轻松找到其他你感兴趣的文章!

china0513-624x468

【关于转载】:转载仅限全文转载并完整保留文章标题及内容,不得删改、添加内容绕开原创保护,且文章开头必须注明:转自“半导体行业观察icbank”微信公众号。谢谢合作!

china0513-624x468

【关于征稿】:欢迎半导体精英投稿(包括翻译、整理),一经录用将署名刊登,红包重谢!签约成为专栏专家更有千元稿费!来稿邮件请在标题标明“投稿”,并在稿件中注明姓名、电话、单位和职务。欢迎添加我的个人微信号 MooreRen001或发邮件到 jyzhang@moore.ren

china0513-624x468

责任编辑:mooreelite
半导体行业观察
摩尔芯闻

热门评论