[转贴] CPU指令集扫盲帖_风起云涌_百度空间

看到大家都在讨论“龙芯”的前景,但有一些不是很熟悉计算机的朋友可能会听的比较乱,所以特此开帖扫盲,普及一下基础知识。

指令集是什么?

指令集就是指令的集合——有朋友说了,您这不废话吗——哈哈,那指令又是什么?简单的说,就是你吩咐CPU去做什么事情,给它下的命令。比如你有一个老婆,你给她下指令:老婆,倒水!老婆,做饭!老婆,洗碗!这就是指令,把所有的指令总结一下,就是指令集,如果你老婆的指令集里不包括的东西,比如拿拖鞋,那你命令她:老婆,拿拖鞋!那她是没反应的。

CPU必须要指令集才能工作,不同的CPU有不同的指令集,基本上可以分为两种:复杂指令集CISC和精简指令集RISC

有什么不同呢?

CISC指令集动不动就上百条,基本上是一个功能一条,这样编程时就比较方便,大部分桌面机的CPU用的都是CISC,由于厂商的支持和开发,CISC在多媒体应用上表现很好。

后来人们发现,其实百分之八十的程序只用到了百分之二十的指令,其他的指令很少用到,于是就在这百分之二十的指令的基础上,开发出了RISC体系。

相比CISC指令集,RISC指令集就小多了,而且格式非常标准,只提供基础的指令,如果要实现复杂的功能,就要拆解成几条指令来做,编程上会麻烦一些——当然,你要用高级语言的话是感觉不到的,只苦了写汇编的哥们。

CISC家族都有哪些呢?基本上市面上主流的CPU都是这个家族的。

X86家族演义

当年有“八叛逆”之称的八个才俊创办了大名鼎鼎的仙童半导体,后来又因为各种原因陆续出瞳走自立门户,今天整个全球芯片行业的底子,差不多都是这家公司打下的,以致于仙童有了电子行业的“西点军校”之誉,这些人创办的公司里有一家叫Intel,还有一家叫AMD。

也是这些人赶上了好时侯,IT总瓢把子蓝色巨人推出了世界上{dy}台个人计算机——就是我们所说的PC——,CPU用的是Intel的8080,IBM录当时有意把一些业务外包,硬件上就给了Intel,软件上就给了一个叫比尔盖茨的小年青,既然老大看的起,小弟们自然感激,后来这俩小弟做的都不赖,没给老大丢人。比尔当年在地下室里憋出了DOS1.0,Intel后来则交出了划时代的8086处理器。

后来PC突飞猛进,8086变成了80286、80386、486和奔腾,他们用的都是当年8086的指令集,于是这个指令集被称做X86指令集,AMD向Intel购买了X86指令集的使用权,之后的故事,就是这两家垄断桌面处理器市场并相互竞争的历史了。

后来Intel为了更好的支持多媒体应用,在指令集里多加了一些专门针对多媒体应用的指令,推出了MMX指令集,后来又有了SSE、SSE2、SSE3等,AMD也推出了3DNow!等。后来随着64位CPU的问世,双方又都推出了一些64位系统的指令集。

X86是一种CISC,Intel当年同意AMD使用X86一失足成千古恨,如今是绝不可能再给自己安排一个竞争对手的,所以X86指令集一直被这两家垄断,后来为了封杀我们的龙芯,才由AMD出面,居心叵测的免费给了我们种X86的低功耗方案。

而我们的龙芯呢?龙芯用的是MIPS,这是一种RISC,这是龙芯不能跑Windows的根本原因。

Windows为了多媒体应用,使用的大量的多媒体扩展指令,在RISC体系中不支持这些指令,所以RISC没办法跑Windows,其实只要微软把Windows源代码重新编译,稍做修改就可以推出支持RISC的版本,可微软和Intel、AMD合穿一条裤子,这么做是不可能的。还好Windows不支持还有Linux,后者是源代码开放的,我们自己可以随便编译。

RISC vs CISC 准技高一筹?

RISC执行效率、芯片功耗、制造成本都比CISC更好事实上,现在无论是Inter还是AMD,在CPU的设计上都从RISC借鉴了很多优点。按说RISC是业内公认的“好孩子”,尤其在在服务器领域——没谁会要求服务器跑不跑的了{jp}飞车,服务器也不待见Windows。但无奈的是,技术改变不了市场,X86+Windows一直霸占着桌面市场,以至有"Wintel"的戏称。但在服务器领域和嵌入式市场,RISC几乎一统天下。而Linux的出现打破了Windows一统天下的局面,如果用熟了Linux,你会发现,RISC的潜力是多么巨大。

从这里我们不难看出,RISC前景一片光明!龙芯只要能紧紧跟上,将会大有可为。

回贴

intel和AMD将RISC和CISC融合是不得已而为之,纯CISC很难利用超流水线的优势。如果你细细研究一下就会发现只有RISC才和超流水线是弘然一体。融合RISC和CISC一个必须要面对的问题时解码,虽说可以预解码但这无疑增加了硬件的复杂度。你现在还在用汇编编程吗?RISC产生的代码是多一点,但这些代码都是编译器产生的,用不着你操心,而且RISC的汇编代码比CISC更容易优化。实事上是反是用的着汇编编程的地方都不在乎什么工时、人力,而是更注重代码效率,像许多单片机开发,都是用的ARM芯片,而ARM是RISC型。

本人认为CPU的硬件设计方面在未来5-10年内不会再有什么突破性的进展,CPU的突破主要集中在以下两个方面:

1)把编译器也考虑进来,走VLIW/EPIC的方向。

2)多核CPU,已及多个CPU(类似于并行计算)。



郑重声明:资讯 【[转贴] CPU指令集扫盲帖_风起云涌_百度空间】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——