RISC 里面的"快速处理指令的电路"具体指的是什么电路单元?

2020-11-03 23:33:54 +08:00
 feast
类似老黄 GPU 的双倍频率 ALU ? NVIDIA 的 GPU 可以看做是 MIMD RISC 处理器,但是可是 x86 好像也有类似 ALU 倍频的功能啊,我反正没找到任何实物可以支撑这一点,这教材够古老的,0 几年的

'RISC 是精简指令集 CPU,指令位数较短,内部还有快速处理指令的电路,使得指令的译码与数据的处理较快,所以执行效率比 CISC 高,不过,必须经过编译程序的处理,才能发挥它的效率,IBM 的 Power PC 为 RISC CPU 的结构,CISCO 的 CPU 也是 RISC 的结构。'
2072 次点击
所在节点    程序员
31 条回复
user8341
2020-11-03 23:42:32 +08:00
快速处理指令的电路……大概是指流水线。RISC 主要的优势就是指令简单、一致,方便设计流水线。
feast
2020-11-03 23:47:58 +08:00
@user8341 流水线长度,ARM 的确很短,但是怎么体现出来比 X86 快的?按照 EDA 行业的经验,电子在硅基上的迁移速率都是一样的,何来的单位长度内速度更快这个说法?个人感觉这个说法是有问题的
feast
2020-11-03 23:50:30 +08:00
指令短,消耗的地址位少,当然周期内处理的指令数据就更多,但是什么叫“快速处理”,感觉被微电子坑了
vk42
2020-11-03 23:53:02 +08:00
从后面“使得指令的译码与数据的处理较快”的描述,应该是指指令和数据预取吧,RISC 定长指令做这些比较简单,但 x86 也不是没有,只是不等长指令实现太复杂
feast
2020-11-03 23:54:47 +08:00
只能说,同样的时间内,ARM 的整条流水线能被执行更多次,但是如果堆叠到 x86 流水线同等长度的话,理论上流水线延迟应该是和 x86 一样的,可能这就是“快速处理”说法的来源
feast
2020-11-03 23:55:32 +08:00
@vk42 x86 内部的微操作其实早就是类似 RISC 的了,x86 理论上不能叫纯 CISC
user8341
2020-11-03 23:56:02 +08:00
@feast
速度快是因为并行化了,一个数据通路同时执行很多条指令。如果你只看 1 条指令,确实没有更快。但是它是多条并行执行,所以才更快。
feast
2020-11-03 23:56:39 +08:00
@vk42 不用过度复杂理解,ARM 主要是把译码交给软件了,x86 则是硬件实现,前者所以硬件要简单很多
feast
2020-11-03 23:57:27 +08:00
@user8341 问题是并行化 x86 的 MMX 可是早就有的
user8341
2020-11-03 23:59:40 +08:00
@feast 都是并行化没错,但是原理不一样。MMX 是 SIMD,这里说的是 pipeline,不是一个层面上的。
vk42
2020-11-03 23:59:50 +08:00
@feast 这和内部微操作有啥关系,你编译器做再多,CPU 也只能从内存取机器码做译码,你还能直接从编译器跳过取码器直接喂执行单元不成……建议 lz 先补下体系结构的课程
des
2020-11-04 00:00:22 +08:00
user8341
2020-11-04 00:01:39 +08:00
SIMD 是单指令多数据流。pipeline 还是单数据流哦,只不过这个数据流上同时执行着多条指令(的不同阶段),神奇吧。
feast
2020-11-04 00:03:02 +08:00
@vk42 我知道你的意思,我的意思是 RISC 的编译器的确就是替代了一部分 x86 译码这块的功能,生成的指令执行难度跟 x86 内部的微操作类似,不然也不会有那么多人抱怨 RISC 编译器难写了
feast
2020-11-04 00:06:02 +08:00
@user8341 pipeline 上同时喂多个指令?看来这真是我的知识盲区了,是不是跟 x86 的 OOO execution 有点类似?
vk42
2020-11-04 00:06:30 +08:00
另外对于国内计算机教材实在不能细扣,建议配合国内经典教材服用……
feast
2020-11-04 00:08:00 +08:00
@des 目前来看,应该就是描述的流水线,理解出现了问题
vk42
2020-11-04 00:09:06 +08:00
@feast 就是多发射啊,可以去了解下 superscalar
vk42
2020-11-04 00:10:41 +08:00
@feast 另外 OOO 不是 x86 独有的,现在体系大部分都有 OOO
feast
2020-11-04 00:11:47 +08:00
@vk42 问题是 x86 早就是超标量了啊,起码在这个教程之前的 Pentium II 都已经是了,8086 就不说了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/721562

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX