原来80x86指令系统综合性能劣于苹果的mac使用的arm指令集的啊……

ӄօɮɛ☆-avatar

ӄօɮɛ☆

2022-03-23T03:09:24+00:00

以前还嘲过苹果别具一格,就是不支持x86。

现在刚知道80x86属于CISC(复杂指令系统),arm属于RISC(精简指令系统),在综合性能上后者全面优于前者。目前在移动端智能手机普遍都是RISC风格。

只是在pc领域,英特尔和微软分别在软硬件方面一统江湖,整个行业都在这个框架下互相牵扯,就一直用x86指令集了。
反而是苹果才是勇于打破现状的那个,把pc也拉到更加优秀RISC风格下。[s:ac:晕][s:ac:晕]
razdva34-avatar

razdva34

现在没有纯的cisc和risc了,能上流水线的实质都是risc。
iTreester-avatar

iTreester

给我整麻了,建议了解一下发展历史。。。。
theRagingWrath-avatar

theRagingWrath

arm在移动端是垄断的…但是移动端这个东西,自身就有天花板,不像桌面端可以堆散热,360冷排一上什么东西压不住?
Beamisshh-avatar

Beamisshh

什么年代了还cisc呢·····

x86内核早就是risc体系了,非要说有什么比不上arm的,也就是有兼容老旧指令集的历史包袱而已。
LionLeo-avatar

LionLeo

CISC和RISC互有优劣,不是非黑即白。

x86很早就不是CISC了,现在属于CISC和RISC融合。
Squall-avatar

Squall

昨天刚考完微机原理[s:ac:晕]看到这帖不自主就点进来了[s:ac:瞎]
R3CON1-avatar

R3CON1

ARM64是近十年重新设计过的,定长便于前端解码的实现,有利于核内并行的实现,这也是苹果的大核IPC非常高的原因。

不像x86-64就是在x86上做了拓展,拍脑门设计的指令不少,并行解码很难做,因为要解析后才知道后几位内存里是指令还是数据。很多弱智指令编译器都不生成了,用其他多条指令代替。

SVE指令集也比AVX系列更加灵活。
wiliver-avatar

wiliver

首先现在x86跑得不也是RISC

而且arm的能耗比优势是在低负载的情况下,一旦负债提升优势会迅速缩减
iTreester-avatar

iTreester

正所谓一知半解便高谈阔论。
shanks-avatar

shanks

Reply to [pid=599600585,31285183,1]Reply[/pid] Post by [uid=61635314]雾月lullaby[/uid] (2022-03-31 11:23)现代X86绝对是CISC,CISC决定性特征是不等长指令集。只是在硬件设计上目前偏向risc,x86指令已经改不了了,要么推倒重来不兼容以前的软件。
shanks-avatar

shanks

Reply to [pid=599645885,31285183,1]Reply[/pid] Post by [uid=18580301]f59375443[/uid] (2022-03-31 14:05)依据呢? CISC的优点是程序设计简单,一条指令就能干一堆活,但效率比不上完全软件完全优化的Risc,反过cisc效率比没有优化的risc强。cisc的优化在于芯片设计者,risc的优化在于编程者(主要是编译器)。并不存在高负载不行的说法。
Saboor-avatar

Saboor

[quote][pid=599660439,31285183,1]Reply[/pid] Post by [uid=63521393]三千千千千千[/uid] (2022-03-31 15:01):

依据呢? CISC的优点是程序设计简单,一条指令就能干一堆活,但效率比不上完全软件完全优化的Risc,反过cisc效率比没有优化的risc强。cisc的优化在于芯片设计者,risc的优化在于编程者(主要是编译器)。并不存在高负载不行的说法。[/quote]RISC是解码设计简单,按指令长度截断就行了
X86的解码首先要确定指令边界,然后才是解码
解码器更复杂更难提高解码宽度,而且流水线长度也要更长,在分支预测失败的时候惩罚更大,以及从LSD/MOP Buffer重新切换到解码器工作的时候发射指令有更高延迟,这样产生了流水线空泡
但是前端发射的MOP并不总是来源于解码器,也可能来源于LSD或者MOP Buffer,X86的解码宽度也不是做不宽,流水线空泡也可以降低甚至消除
X86和ARM的后端设计大差不差(除了Intel后端是浮点整数融合,但是AMD的后端和ARM都是采用整数浮点分离的设计)
X86前端一条指令可以被解码成多条指令就提高了指令密度和指令发射速度,这部分略微抵消了X86解码更难设计的弱势
编译器优化都差不多,凭借更好的编译器优化来提高并行度和做缓存预取提高程序性能无论是x86还是arm都可以做到

ARM和X86的CPU产品区别主要在各自设计上,X86会选择更长的流水线和更高的主频设计(会使用不同的工艺库)来获取更强的绝对性能
Intel有过一个用自己的高性能工艺库去实现的ARM微架构,能到达的频率上限更高,功耗也高了很多