1
user8341 2020-11-03 23:42:32 +08:00 1
快速处理指令的电路……大概是指流水线。RISC 主要的优势就是指令简单、一致,方便设计流水线。
|
2
feast OP @user8341 流水线长度,ARM 的确很短,但是怎么体现出来比 X86 快的?按照 EDA 行业的经验,电子在硅基上的迁移速率都是一样的,何来的单位长度内速度更快这个说法?个人感觉这个说法是有问题的
|
3
feast OP 指令短,消耗的地址位少,当然周期内处理的指令数据就更多,但是什么叫“快速处理”,感觉被微电子坑了
|
4
vk42 2020-11-03 23:53:02 +08:00
从后面“使得指令的译码与数据的处理较快”的描述,应该是指指令和数据预取吧,RISC 定长指令做这些比较简单,但 x86 也不是没有,只是不等长指令实现太复杂
|
5
feast OP 只能说,同样的时间内,ARM 的整条流水线能被执行更多次,但是如果堆叠到 x86 流水线同等长度的话,理论上流水线延迟应该是和 x86 一样的,可能这就是“快速处理”说法的来源
|
7
user8341 2020-11-03 23:56:02 +08:00
@feast
速度快是因为并行化了,一个数据通路同时执行很多条指令。如果你只看 1 条指令,确实没有更快。但是它是多条并行执行,所以才更快。 |
11
vk42 2020-11-03 23:59:50 +08:00
@feast 这和内部微操作有啥关系,你编译器做再多,CPU 也只能从内存取机器码做译码,你还能直接从编译器跳过取码器直接喂执行单元不成……建议 lz 先补下体系结构的课程
|
12
des 2020-11-04 00:00:22 +08:00 1
|
13
user8341 2020-11-04 00:01:39 +08:00
SIMD 是单指令多数据流。pipeline 还是单数据流哦,只不过这个数据流上同时执行着多条指令(的不同阶段),神奇吧。
|
14
feast OP @vk42 我知道你的意思,我的意思是 RISC 的编译器的确就是替代了一部分 x86 译码这块的功能,生成的指令执行难度跟 x86 内部的微操作类似,不然也不会有那么多人抱怨 RISC 编译器难写了
|
15
feast OP @user8341 pipeline 上同时喂多个指令?看来这真是我的知识盲区了,是不是跟 x86 的 OOO execution 有点类似?
|
16
vk42 2020-11-04 00:06:30 +08:00 1
另外对于国内计算机教材实在不能细扣,建议配合国内经典教材服用……
|
21
vk42 2020-11-04 00:18:54 +08:00
@feast 这个教材字面描述很模糊,基本就是科普级别,不知道是什么课程,这种严谨和新不新没啥关系。你也知道了现在很多 CISC 和 RISC 分界已经没有那么严格了,很多东西内部实现大家都是共享的,更多区别还是机器码表示形式上了,对 CPU 实现来说那就是取码器和译码器的区别了。之前写玩具 CPU 把 x86 实现换个 decoder 简单改改就能上 MIPS
|
22
feast OP @vk42 你也注意到严谨性这个问题了,我会告诉你是职称定级的内容?问题就在这里,RISC 同等长度的流水线执行会比 CISC 快?可能有我不了解的具体流水线设计差异导致流水线复杂度不同,但以我的知识储备来看为了提供相对繁多的的分支,x86 作为 CISC 其流水线每一级肯定是比 RISC 要复杂一些的,每一级从微电子设计的角度来讲是会导致行波走过的距离不一样的,最后速度肯定跟 RISC 不同
|
23
feast OP @vk42 像老黄的 Denver,极端的用 VLIW 的 SIMD RISC 模拟 x86,x86 指令译码都在用软件实现,CISC 和 RISC 其实本质上就是软件和硬件难度平衡的调整,两个方向,AMD 放弃 VLIW 就是因为编译器实在太难写了
|
24
vk42 2020-11-04 00:49:13 +08:00
@feast 评职称的东西那更没必要细扣了,看都没人看的东西……
还是那个道理,x86 和 RISC 最大的区别在取码译码,本质上和流水线本身设计没太大关系。Intel 早几年搞深流水是为了极致压迫 cycle 上高频,而且你说反了,深流水的每一级是更简单了。简单的例子,原本把大象放进冰箱要三步 1. 打开冰箱 2. 把大象放进去 3. 关上冰箱 你现在为了增加级数,每一步都再拆分,比如打开冰箱分成握住把手,拉开一半,再拉一半这样 但当然级数多了整个流水线的控制确实复杂了。 #23 超标量不止有 VLIW,CPU 的多发射可以做自动多指令发射,感兴趣可以去看看体系架构圣经: Computer Architecture: A Quantitative Approach 这问题扯得也太远了……就你原问题,结合那个句子前面句,我还是认为说的是取指加译指单元 |
25
feast OP @vk42 哈哈,只是感觉学得太透还不如人家死记硬背的,考虑的东西过多,的确,当年 Prescott 主频就是 31 级深流水线带来的,但是他这个说法很像是在诱导人理解为在整个 CPU 内部,存在类似 NVIDIA 的双倍频 ALU 的东西,然而我实际印象中除了算数单元,没见过指令分支能倍频的,看来还是得多看点英语教材,国内的语言风格实在不严谨
|
26
feast OP @vk42 另外,我对整段话其他的都没有疑问,主要就是这个“快速处理指令”比较迷惑人,“使得指令的译码与数据的处理较快”,他这个较是和上文的 CISC 做对比,没有 x86 指令到类 RISC 微操作的译指自然快
|
27
user8341 2020-11-04 07:20:41 +08:00
David Patterson 有篇科普文章概括介绍了 RISC 与 x86 的恩怨情仇。
链接:ieeexplore.ieee.org/document/8220478 Intel 赢了上半场 硬件将 x86 指令转换为类似 RISC 的指令,从而允许 intel“抄袭”RISC 带来的种种性能改进,比如长流水线、每个时钟周期获取多条指令,分支预测。凭借出色的半导体处理和电路设计,80×86 ISA 最终提供了最快的处理器。它在 2000 年代取代了 RISC 的小型服务器市场,以补充其对 PC 市场几乎的垄断。 后 PC 时代 RISC 逆转胜 鉴于 PC 和服务器的微处理器的晶体管预算很大,因此在能量和硬件转换方面的额外开销是可以承受的,但是对于嵌入式市场而言,这太昂贵了。例如,近 100 %的 Android 和 Apple 手机和平板电脑使用 RISC 处理器。图 1 显示了过去十年中数十亿的 RISC 出货量,自 2007 年以来增长了 7 倍,并且以每年 24 %的速度增长。 |
28
feast OP @user8341 实际上 CISC 和 RISC 如果从概念上看,跟安卓的 JIT 和 AOT 概念有点类似,后者先进行复杂的预编译
|
29
clxtmdb 2020-11-04 10:48:37 +08:00
应该是指 指令流水线吧,,,不过看回帖基本讨论完毕了
|
31
aneostart173 2020-11-04 16:41:31 +08:00
前端译码器吧。
|