Feature Reading

RISC与CISC:标签已难描述硬件实现

将文章核心主题、阅读路径与关联内容进行更清晰的组织,帮助用户以更流畅的节奏进入正文。

RISC与CISC:标签已难描述硬件实现
Sports Insight

当前位置

当前正在查看文章详情,可沿路径返回栏目页或继续切换其他内容。

RISC与CISC:标签已难描述硬件实现

据平博体育整理:

你手机里的Arm芯片是RISC,电脑里的x86是CISC,这个分类你大概听过一百遍。

但要说Arm省电是因为RISC架构,这话经不起推敲。

指令集本身解释不了最大的差异。

更反常识的是:原文指出,30多年来高性能x86核一直在使用与RISC相关的技术,而大核Arm现在也在使用与CISC相关的技术。

RISC和CISC标签仍能说明软件看到的指令集,但已远不能描述实际运行它们的硬件。

一、CISC芯片当年是围着微码转的 1978年的Intel 8086,大量x86指令靠微码控制执行。

这些例程存在片上ROM里,指挥完成一条指令所需的更简单步骤。

Ken Shirriff的反向工程发现,它的控制存储包含512条微指令,每条21位宽,支撑约75种指令类型。

微码是当年实现复杂指令集的常见手段,大型机把它玩得更狠。

斯坦福的John Hennessy和伯克利的David Patterson在图灵奖演讲里提到,VAX有20%的指令占了60%的微码,却只贡献0.

2%的执行时间。

RISC就是他们对这个问题的回应。

RISC的思路很直白:给软件更简单的指令,让硬件不用微码序列就能执行,把芯片资源更多花在寄存器和指令缓存上。

1980年代初,斯坦福的MIPS和伯克利的RISC-I验证了这条路。

两人后来描述过DEC的一次历史对比:CISC每条程序需要的指令更少,但每条指令要更多周期,同等工艺下RISC大约快四倍。

Patterson在DEC帮忙修VAX微码时亲眼见过这种复杂度。

他提出过芯片出货后修复微码的办法,论文被IEEE Computer拒了,审稿人反对把处理器设计得复杂到需要这种修补。

按Patterson的说法,结论很直接:这么设计电脑是蠢办法,加内存、加成本、还要打补丁,简直疯了。

讽刺的是,Intel和AMD现在 routinely 给用户手里的芯片推微码更新。

二、x86一颗芯片一颗芯片地把RISC技术搬了进来 到1980年代末,不少研究者认为x86要输了。

后来当上Intel Pentium Pro高级架构师的Bob Colwell回忆,Intel内部有人劝管理层放弃CISC,公司选了另一条路:不改指令集,改执行方式。

1989年的486展示了不改x86能变多少:五级流水线,条件有利时每个时钟维持一条简单指令。

复杂指令还是要更久,一条更新内存的add光在执行阶段就要三个周期。

更大的变化在1990年代中期,但Intel不是第一个。

NexGen的Nx586在1994年把x86指令翻译成更简单的操作交给内部核心,这是x86世界第一次RISC式改造。

AMD的K5随后跟进,还占了便宜——首席架构师Mike Johnson此前设计过AMD Am29000,据报道K5核心大量借鉴了超标量29000的设计,解码器把x86指令转成一到四个内部操作。

Intel在1995年11月用Pentium Pro跟上,解码器把x86指令翻译成更简单的内部操作,叫micro-ops或uops。

当时被描述为遵循RISC式的load/store模型:一条对内存值做加法的x86指令,可以拆成load、add、store三步,而传统RISC程序会把这三步写成独立指令。

用微操作的好处是方便套用高性能RISC设计的手法。

核心可以乱序执行就绪的操作,再按程序顺序提交结果,软件看到的行为不变。

微码也没消失,硬件解码器处理常见指令,复杂情况走更长的微码序列。

Colwell举过一个例子:通过门调用的远调用可能需要200个微操作。

区别在于,普通代码不再每条指令都依赖那条慢路径。

三、大核Arm现在干起了x86的活 现代Arm核同样把指令拆成微操作,有时甚至几十个。

日本富岳超算用的富士通A64FX上,SVE指令FADDA会展开成63个微操作,执行有序浮点归约并把向量元素累加进标量累加器;

LDADD展开成四个,把内存读、加法、写合并进一条指令。

RISC指令不一定对应简单的硬件操作。

Arm还从x86地盘借了另一样东西:缓存。

about image

Arm核会缓存已解码的操作,避免重复解码同一条指令。

2019年的Cortex-A77加了1.

5K条目的宏操作缓存,术语和x86的微操作缓存不同,目的类似——复用解码成果,提升吞吐,减少取指和解码活动。

这不代表AArch64变成了CISC架构,它仍然是定宽32位指令,普通算术一般和内存访问分开。

但一条指令照样可以描述一大摊工作,向量和原子操作尤其如此。

核心越宽越激进,内部机制就越长得像,哪怕指令集依然不同。

四、不是所有人都认“x86里有RISC核” 包括设计它的人。

把x86的微操作叫“类RISC”,是有前提的,Pentium Pro的架构师Colwell本人就不同意。

他反对混淆软件看到的指令集和实现它的硬件。

他的辩护很简单:指令集是对软件的承诺,微架构是某颗芯片兑现承诺的方式。

设计

平博体育将继续整理相关资讯。

觉得有用?分享给朋友

让更多人看到这篇内容

推荐阅读

Search
热点新闻
郑钦文怎么了?武网退赛后再退赛,连退4站比赛,提前告别本赛季
郑钦文怎么了?武网退赛后再退赛,连退4站比赛,提前告别本赛季

郑钦文怎么了?武网退赛后再退赛,连退4站比赛,提前告别本赛季! 说到郑钦文相信很多球迷都不陌生,郑钦文是一名非常出色的网球运动员,前不久在中国举办的网球公开赛场,大家都看到了郑钦文拿着P卡,从资格赛开始打起,过五关斩六将,击败各路豪杰,最终成功晋级到决赛,决赛面对新科大满贯冠军安德列瓦,郑钦文在开局不利的情况下连续上演逆风翻盘,最终2:0击败了俄斯名将安德烈瓦,成功夺得中国网球公开赛的冠军。 经常

突发!昌平这家店悄悄闭店!
突发!昌平这家店悄悄闭店!

昌平生活攻略 ID:changping77 ☀这是一个专注昌平地区的微信平台!网络吃喝玩乐信息,关注发展建设、民生动态。商务合作电话:18612011600。 昌平的朋友们,开在昌平一中旁边的 大古力蛋糕店已经闭店 。这家在当地经营多年的蛋糕店,是很多周边居民和学生日常选购甜品、预定生日蛋糕的去处。 此前门店只贴出暑假休息的通知,不少顾客一直等待门店重新营业,等到后来才发现商家已经停业,并且无法取

教师反思的3重跃迁 | 中国教师报名师版百期回望
教师反思的3重跃迁 | 中国教师报名师版百期回望

《中国教师报》名师版已刊出百期,我们循着已刊发的名师文章,梳理出教师成长的9个范式,本期聚焦“反思前行”,探寻如何在有效反思中更新自我、发展自我、超越自我。 来源 | 中国教师报 本报记者 | 冯永亮 平时,有不少老师向我讲述自己的困惑:教了多年的书,但总感觉只是在重复过去的经验。问题出在哪里?我觉得大概因为只是“做了”而没有“想”,出在积累了经验却没有进行反思。 孔子说:“学而不思则罔,思而不学

尼克松晚年坦言当年后悔访华,多次写书警告,他是看到了什么吗?
尼克松晚年坦言当年后悔访华,多次写书警告,他是看到了什么吗?

1972年2月21日,北京的早春依旧寒意料峭。 当时针指向北京时间上午11点30分,一架银蓝相间的波音707飞机,著名的“空军一号”,带着巨大的轰鸣声,缓缓降落在北京首都机场。 舱门打开,寒风灌入,但此时此刻,理查德·尼克松的心却是火热的。 他整理了一下西装,甚至特意在走出舱门前停顿了片刻,好让那一刻被历史的镜头完美捕捉。 随后,他快步走下舷梯,在距离地面还有好几级台阶时,就迫不及待地伸出了手。

RISC与CISC:标签已难描述硬件实现
RISC与CISC:标签已难描述硬件实现

你手机里的Arm芯片是RISC,电脑里的x86是CISC,这个分类你大概听过一百遍。但要说Arm省电是因为RISC架构,这话经不起推敲。指令集本身解释不了最大的差异。 更反常识的是:原文指出,30多年来高性能x86核一直在使用与RISC相关的技术,而大核Arm现在也在使用与CISC相关的技术。RISC和CISC标签仍能说明软件看到的指令集,但已远不能描述实际运行它们的硬件。 一、CISC芯片当年是