免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: fineamy
打印 上一主题 下一主题

x86指令集疑问 [复制链接]

论坛徽章:
0
31 [报告]
发表于 2008-12-17 13:28 |只看该作者

微指令

有些人喜欢称 RISC 为“load-store”,意思是想强调 RISC 计算机只有 100 多条指令(POWER 体系结构也是如此)。其他的 RISC 计算机并没有采用一套精简指令集,而是采用一组精简过的指令:CISC 的每条复杂指令都被拆分成更小的基本单元,然后再组合起来实现复杂指令的功能。

x86的微指令应该就是指RISC指令,它把一些复杂指令拆成几条RISC指令来代替实现。典型的例子就是 ADD [mem],reg
X86的发展力图保持指令集的绝对向下兼容性。这个兼容性完全由CPU硬件设计保证。
而其它CPU如ARM,MIPS,POWER这些他们保证指令集近似兼容性,而把兼容性的担子很大一部分交给了软件,主要是编译器。这样硬件软件同时作用。
很难说x86是不是再走向死胡同,他们之间总是在相互借鉴。
从这点来说,开源的出现打破了这一格局,使得移植变得不那么可怕。这样CPU设计可以卸下兼容性这样的大包袱,设计出更好更优秀的架构。

[ 本帖最后由 fineamy 于 2008-12-17 13:39 编辑 ]

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
32 [报告]
发表于 2008-12-17 18:37 |只看该作者
“近似兼容性”具体是什么意思?

论坛徽章:
0
33 [报告]
发表于 2008-12-17 22:00 |只看该作者
原帖由 cjaizss 于 2008-12-17 08:55 发表

第一个微指令的CPU是什么我不知道。但微指令的结构的确给了CPU一个灵活的设计思路。
微指令的编码方式一般有三种:不译(1代表做,0代表不做,一个非常明显的状态机结构,微码信息冗余小),最小冗余(按指令 ...

微码后来的发展可以说是FPGA了吧。各种用于CPU的方法也不甚了解,反正知道的多了在项目中应用适当的方法效果会更好一些。

论坛徽章:
0
34 [报告]
发表于 2008-12-17 22:31 |只看该作者

从power来的概念

从用户模式来看,PowerPC? 系列处理器对应用提供了完全的兼容性:从最底层的自动交通指示灯到功能强大的 Apple Xserve G5。另外,PowerPC 微处理器还与 IBM 的其他 RISC 处理器产品线 POWER? 和 Star 共用一大组通用指令集,这样就使得这三条产品线保持着“近似”的兼容性。在很多情况中,这等价于二进制兼容;在有些情况中,则意味着需要进行简单的重编译;不论如何,这都意味着程序移植已经是小菜一碟了。

其它RISC都是这样。

论坛徽章:
0
35 [报告]
发表于 2008-12-18 19:42 |只看该作者
和20楼:
3)我说的好像和总线宽度没一点关系。指令是以二进制流来描

述的,二进制流的长度决定其能容纳的信息量。定长,就难免浪

费。
和29楼:
微程序方式早就有了。在PDP一统小型机世界的时代或更早,就有了。其与硬布线方式相比,较容易纠正指令系统的设计错误,也较容易升级CPU。
和31楼:
所有的,不管是哪种CPU的微指令,全是“RISC”。因为,微指令太简单了,它的“RISC”程度远超RISC指令系统。
和楼上几位:
PC为何选择了Intel8088?x86为何一道跑到黑?全是软件保守性(我想的词)在作怪。

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
36 [报告]
发表于 2008-12-19 20:28 |只看该作者
原帖由 beepbug 于 2008-12-18 19:42 发表
和20楼:
3)我说的好像和总线宽度没一点关系。指令是以二进制流来描

述的,二进制流的长度决定其能容纳的信息量。定长,就难免浪

费。
和29楼:
微程序方式早就有了。在PDP一统小型机世界的时代或更早 ...

对于CPU来说,指令一般是以字节的整数倍。一般不会说,我一条指令3个bit就可以与别的指令区别,那么我就用3个bit为单位,与总线宽度还是有关系的。

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
37 [报告]
发表于 2008-12-19 20:36 |只看该作者
原帖由 cjaizss 于 2008-12-19 20:28 发表

对于CPU来说,指令一般是以字节的整数倍。一般不会说,我一条指令3个bit就可以与别的指令区别,那么我就用3个bit为单位,与总线宽度还是有关系的。

至于浪费不浪费嘛,冗余信息不可避免,等长指令确实可能浪费的多一点,但长期看来也还好。首先我们不可能按照最小冗余来设计指令,其次,以同等长度指令换来的CPU结构的一些方便,还是有得有失的。

论坛徽章:
0
38 [报告]
发表于 2008-12-24 19:19 |只看该作者
原帖由 cjaizss 于 2008-12-19 20:28 发表

对于CPU来说,指令一般是以字节的整数倍。一般不会说,我一条指令3个bit就可以与别的指令区别,那么我就用3个bit为单位,与总线宽度还是有关系的。

请再看看我回的所有帖。

论坛徽章:
0
39 [报告]
发表于 2008-12-24 19:21 |只看该作者
31楼把微指令与RISC搅为一谈了。
微指令与硬布线是一对,是在CPU内如何实现指令系统的两种做法。
RICS和SISC是一对,是设计指令系统的两种思路。

论坛徽章:
0
40 [报告]
发表于 2008-12-24 21:18 |只看该作者

回复 #39 beepbug 的帖子

谢谢,CISC指令有时是分解成多条微指令。我理解这些微指令相当于是RISC指令,仅仅是从流水线执行上说。比如ADD [MEM] ,REG指令,分解为MOV A [MEM] ;ADD A REG ; MOV [MEM] A
而通常RISC指令已经相当于微指令,不能分解了。比如MOV REG [MEM]指令
对微指令没什么概念,不知道是不是这么理解的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP