为了让CPU更好卖,英特尔将硬件变“软”了
来源:内容整理自互联网 ,谢谢。
这是一篇极具可读性的短文,有趣地揭示了英特尔x86指令集架构(ISA)最近发生的事情。我们看到了扩展的数量和复杂度的急剧增加,及其对系统研究人员(和英特尔)产生的一些有趣的影响。我们也看到越来越多的微代码的使用模糊了ISA作为硬件和软件之间的界限这一角色。
我们认为,这些扩展现在正在逼近类似软件层面的复杂程度,但同时也包含了硬件实现的所有缺点,以及缓慢的部署周期。我们怀疑当前的路径可能是不可持续的,并假设了一个可替代的未来,最终目标是将新的ISA特性与底层硬件分离。
过去:稳定且可控的增长
386参考手册列出了96条指令。随着时间的推移,新的指令在诸如浮点支持,向量扩展,加密加速器,64位等领域都在不断增加。至关重要的是:
……过去的系统设计人员极大程度上忽略了这种变化……除了64位模式和虚拟化扩展之外,x86系统开发人员偶尔也会进行一些调整,以提高性能或纠正明显的缺点,但除此之外,其他方面都被忽略了。即使是64位模式也不会显著增加架构的复杂性……
为什么要购买新CPU?
随着摩尔定律的放缓,英特尔传统的两年“Tick-Tock”发展模式也在放缓。这就提出了一个显而易见的问题:
……如果没有微架构方面的改进,他们的CPU就不会有大幅提速,也不会有更高的效率,而且他们相同价位的CPU的核心数量与先前的CPU完全相同。为什么会有人购买新的CPU?
如果你站在英特尔的角度思考一会儿,你就能明白为什么会有这样的麻烦。你还能做些什么可以让购买新CPU变得有吸引力呢?
英特尔似乎正在转向的一个理由是:如果新的CPU实现了一个重要的ISA扩展——例如,软件提出了一个需求,因为它对于安全至关重要——消费者就会有一个强大的理由去升级。
换言之,加快发布速度很可能是英特尔有意让我们继续购买的策略。结果……
在过去的两年里,ISA的复杂性急剧地增加了(例如:在下图中,我们可以看到架构手册的大小),在此过程中有更多的扩展。
图1:英特尔x86 CPU和ISA的复杂性的增加
上图仍然遵循摩尔定律(注意左侧坐标轴上的对数刻度),最近公布的节奏放缓尚未出现。在手册中使用文字作为复杂性的代表,我们可以看到在2015-16年间因Skylake引入的而引起的大幅增长。
(出于兴趣,我估计手册有200万词,平均阅读速度为每分钟200词,以每周阅读40小时计算,需要一个月才能读完,而这仅仅是为了阅读一份手册!)
下表总结了最近的ISA扩展以及引入的新指令的数量。
复杂性的增加不仅仅来自于新指令的数量,更重要的是来自于与现有指令的交互:
这些最近的扩展引入了新的系统级功能,这经常改变现有指令的语义,并与其他扩展和先前的体系结构特性进行复杂的交互。
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
推荐阅读(点击文章标题,直接阅读)
摩尔邀请您加入精英微信群
你好,感谢长期对半导体行业观察的关注和支持!为了方便各位精英专家交流,我们组建了一些专业、微信交流群,欢迎你加入,我们还会邀请在摩尔直播App做过技术和行业分享的100+技术大牛入群和大家交流。加群方法: 长按二维码,加群主为好友,填写加群需求信息,拉你入群。(微信限制每天好友添加数量只有300人,请耐心等待)
地域群:
上海、深圳、北京、江苏.浙江、西安、武汉、成都.重庆、合肥、厦门.晋华、大连、台湾、新加坡、日本.韩国、美国、欧洲、摩尔直播学习群。
专业群:
模拟射频设计、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最新半导体展会会议日历》
回复 投稿 ,看《如何成为“半导体行业观察”的一员 》
回复 搜索 ,还能轻松找到其他你感兴趣的文章!
【关于转载】:转载仅限全文转载并完整保留文章标题及内容,不得删改、添加内容绕开原创保护,且文章开头必须注明:转自“半导体行业观察icbank”微信公众号。谢谢合作!
【关于征稿】:欢迎半导体精英投稿(包括翻译、整理),一经录用将署名刊登,红包重谢!签约成为专栏专家更有千元稿费!来稿邮件请在标题标明“投稿”,并在稿件中注明姓名、电话、单位和职务。欢迎添加我的个人微信号 MooreRen001或发邮件到 jyzhang@moore.ren
- 半导体行业观察
- 摩尔芯闻
最新新闻
热门文章 本日 七天 本月
- 1 东方晶源YieldBook 3.0 “BUFF叠满” DMS+YMS+MMS三大系统赋能集成电路良率管理
- 2 NVIDIA重磅出击:三台计算机助力人形机器人飞跃
- 3 奕行智能(EVAS Intelligence)完成数亿元A轮融资,加速推出RISC-V计算芯片产品,共同助力新时代到来
- 4 智能驾驶拐点将至,地平线:向上捅破天,向下扎深根