CPU指令集扫盲帖

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


指令集是什么?

[ 转自铁血社区 http://bbs.tiexue.net/ ]


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


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


有什么不同呢?


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


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


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

[ 转自铁血社区 http://bbs.tiexue.net/ ]


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


X86家族演义


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


也是这些人赶上了好时侯,IT总瓢把子蓝色巨人推出了世界上第一台个人计算机——就是我们所说的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位系统的指令集。

[ 转自铁血社区 http://bbs.tiexue.net/ ]


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是业内公认的“好孩子”,尤其在在服务器领域——没谁会要求服务器跑不跑的了极品飞车,服务器也不待见Windows。但无奈的是,技术改变不了市场,X86+Windows一直霸占着桌面市场,以至有"Wintel"的戏称。但在服务器领域和嵌入式市场,RISC几乎一统天下。而Linux的出现打破了Windows一统天下的局面,如果用熟了Linux,你会发现,RISC的潜力是多么巨大。


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

[ 转自铁血社区 http://bbs.tiexue.net/ ]


亲娘!写这么多,累死我了!

你可能感兴趣的:(汇编)