免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
21 [报告]
发表于 2008-12-14 19:16 |只看该作者
信息冗余不可避免,但统一的处理对于RISC来说才是最重要的

论坛徽章:
0
22 [报告]
发表于 2008-12-15 18:33 |只看该作者

从PC机的发展历史来看

:wink:
赫赫,x86采用变长编码也是必然,再到CISC也是必然。
单从解码效率上说,绝对是定长优于变长。
复杂性上,RISC易于CISC.
RISC,定长优点是很明显的。但是为什么PC的CPU为啥舍易求难呢?
其实仔细想想,不过是他们当时设计考虑不周而已 ,或者说是受当时技术条件限制而发展成现在这个局面。
我想是这样的:
1.早期考虑到当时memory等成本问题,指令码当然越短越好,但毕竟还是定长为好(其指令码并不是1位,2位,...这样的),所以还是定下了8位,料想0x00~0xFF的空间应该够日后扩展。不料摩尔定律的发展大大超出他们的想象。
2.memory的发展从8位,16位,32位,64位memory出现,不得不再此基础上另作扩展。
3.后来多媒体技术的发展,对cpu的浮点,多媒体处理能力的要求随之而来,再次不得不另作扩展。
4.Intel的x86架构用户群已经成型,其指令扩展必须考虑软件兼容性。想当年如ibm的powerpc势与x86争锋,powerpc比之x86何其强大,但是用户不买账。
5.作为PC机用cpu,也是其特定场合限制。
这么扩展来扩展去,定长也变成变长了,RISC也CISC了。
所以说X86发展至今,
其采用CISC,变长编码策略也是不得已而为之,全是几十年一路走来,历经市场考验的见证。这一路走来,还真不容易啊!
说来说去,还是市场决定。

再来看看RISC,变长编码指令。两者都是设计使然,但是与cisc来比,其不易扩展。对比x86,个人反觉的其不适合个人PC用CPU(想到龙芯)。
原因很简单,RISC,变长编码这些技术尽管能够保证孤立的CPU设计能够达到很高的性能,但是从长远看,不太能经受住时间的历练。
联系x86的发展历程,就可想而知.未来的memory,图像,视频等等发展一切都是未料,必然有兼容性要求。到头来还是要发展到x86这个格局。

不过不必为它担心,RISC,变长编码这样的CPU已经找到了他们更好的发展路径,看看现下的嵌入式CPU,甚至高档的server如sun的sparc都是RISC,定长编码的CPU。
这些CPU是这样补其不足的,既然我指令扩展不易,那么我发展CPU系列。于是他们将CPU按指令集分为大类。如专用于定点的,专用于浮点的,专用于图像处理的等等。这个刚好与x86相反,x86的发展思路确是,我不管你什么定点,浮点,多媒体指令,我都在我的一个系列里实现。

其实,cisc/risc/变长/定长这些技术都是伴随兼容机/系列机的发展而生,兼容机/系列机的介绍体系结构的书上大概都会说到。

另外事实上真正的变长编码我理解是这样的,指令码应该是1位,2位,3位这样的,所以说x86采用字节基数的变长,还不算真正变长编码指令。仅仅是一种伪变长而已。不过估计也没那家去真的实现一个这样的变长码指令集。
至于CISC,RISC的区别恐怕更多的是指一种发展格局,类似于兼容机/系列机的区别。其它还真看不出这两者有什么本质不同

[ 本帖最后由 fineamy 于 2008-12-15 18:55 编辑 ]

论坛徽章:
0
23 [报告]
发表于 2008-12-15 19:25 |只看该作者

还真是这样

定长还是变长,从设计理念上来说,与CISC还是RISC确实无关,但CISC的设计方式很容易把指令设计成变长的.而RISC一般是定长的,我好象没看过变长的(指令模式切换例外),RISC自然有存在的意义,那么多的机器上跑着RISC呢,呵呵


从x86 CPU发展来看,其它场合不知道,单就PC CPU 来说,RISC最终必然发展到CISC,定长必然发展到变长。
CISC必然变长,RISC必然定长。
这个结论单就孤立的CPU设计来讲绝不成立,单是发展角度来看绝对是这样,至少在个人PC领域即是如此。

这个格局的形成也是个人用户与PC发展相互妥协的结果。
用户追逐高性能,势必像RISC发展,PC要迎合用户需求,必然又向CISC发展。
不然当年PowerPC早打败x86了

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


从x86 CPU发展来看,其它场合不知道,单就PC CPU 来说,RISC最终必然发展到CISC,定长必然发展到变长。
CISC必然变长,RISC必然定长。
这个结论单就孤立的CPU设计来讲绝不成立,单是发展角度来看绝对是这样 ...

"RISC最终必然发展到CISC"
这句话好象有点问题.RISC是后来出现的概念,最开始的时候应该都是CISC.还是设计理念的问题吧.
CISC有CISC存在的意义,RISC也有RISC的意义。
RISC和CISC之不同,从表面上来看是指令集的支持,而从深处来看是处理器的结构。(虽然相同的指令级可以用完全不同的架构,但依然可以大致的这么去看)
而现代的处理器设计,越来越意识到两者皆有可取之处,于是就会在设计的时候考虑到另一方的优点。

论坛徽章:
0
25 [报告]
发表于 2008-12-16 18:14 |只看该作者
大量的x86的软件会让intel爽很久,而且目前来看还会爽下去,ARM的性能上去的话倒是有可能成为新一代霸主。
POWER的指令早就不精简了,x86早就是RISC核了,只要能抓住老鼠,啥猫都行。

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
26 [报告]
发表于 2008-12-16 18:26 |只看该作者
原帖由 prolj 于 2008-12-16 18:14 发表
大量的x86的软件会让intel爽很久,而且目前来看还会爽下去,ARM的性能上去的话倒是有可能成为新一代霸主。
POWER的指令早就不精简了,x86早就是RISC核了,只要能抓住老鼠,啥猫都行。

这倒也是,不过它的RISC依赖于微指令方式的CPU架构

论坛徽章:
0
27 [报告]
发表于 2008-12-16 18:57 |只看该作者

回复 #26 cjaizss 的帖子

x86的微码虽然有一些灵活性,但是出厂的时候也不能改了,以前听说微码在ROM里面(不知道现在如何),如果是可擦除重写的ROM的话就可以修改了。
x86的RISC依赖于微指令方式的CPU架构,你的意思是x86的Arch核心是微码吧?不知道x86核的RISC是啥指令,也不知道微码啥样子,我猜x86的RISC核就是执行微码的。此外,微码结构还带来一些别的现象。
x86的不定长指令必然导致了取指和译码单元的复杂,还有一个负责发现和发射数据无关微操作大多翻译叫做退役单元的东西,这都是复杂电路啊,和其他部件的配合也是提高性能的重要瓶颈,而且x86的乱序什么的都是作用在微码上面,同时发射也是送几个微操作到执行单元。不了解x86的RISC啥样子,好象是CPU不能有效的自动乱序load-store和store-store操作,所以在这方面x86还是需要指令排序的。

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
28 [报告]
发表于 2008-12-16 19:18 |只看该作者
原帖由 prolj 于 2008-12-16 18:57 发表
x86的微码虽然有一些灵活性,但是出厂的时候也不能改了,以前听说微码在ROM里面(不知道现在如何),如果是可擦除重写的ROM的话就可以修改了。
x86的RISC依赖于微指令方式的CPU架构,你的意思是x86的Arch核心是 ...

微指令属于商业秘密,除非内部,否则没有办法搞到具体某一款处理器的微指令设计的。
微码在ROM里,但一般不可能是可擦除重写的ROM,其实ROM不过是一个访问相同地址永远都可以得到相同值的数字电路而已。满足这个性质的,都叫ROM。这里的ROM结构就是一个定死的组合电路。
我觉得第一个提出微指令的家伙真的好牛,想到了处理器中的处理器的这个思想,想到了把软件也应用于这里,太强了。

论坛徽章:
0
29 [报告]
发表于 2008-12-16 21:41 |只看该作者

回复 #28 cjaizss 的帖子

哦,绛紫啊。原来存放微码的ROM可以认为是一个“冗余”一点的电路。好像是因为ROM的速度比较快,结构比较简单。
第一个微指令的CPU是PDP?还是AVX?第一个提出来微码的思维开阔,不过不知道是谁。

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
30 [报告]
发表于 2008-12-17 08:55 |只看该作者
原帖由 prolj 于 2008-12-16 21:41 发表
哦,绛紫啊。原来存放微码的ROM可以认为是一个“冗余”一点的电路。好像是因为ROM的速度比较快,结构比较简单。
第一个微指令的CPU是PDP?还是AVX?第一个提出来微码的思维开阔,不过不知道是谁。

第一个微指令的CPU是什么我不知道。但微指令的结构的确给了CPU一个灵活的设计思路。
微指令的编码方式一般有三种:不译(1代表做,0代表不做,一个非常明显的状态机结构,微码信息冗余小),最小冗余(按指令信息熵编码,可能导致有个很大的解码),字段直接编码(很像cpu指令集了,这个比较常用)
我们可以去学习CPU的设计思路,最主要的目的并不是为了设计CPU,而是借鉴它的思想来弄我们自己的设计。
数字设计里能够想到的点子CPU基本都用过,呵呵。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP