话说CPU:
当下的人类环境,计算机离我们有多近,可见一斑。上至眼睛老花的长者,下至1~2岁的“北鼻”,早上起床后到晚上睡觉前,都会忍禁不住喵一眼?。有人会说,你错了,你说的那是手机?。同志们呐,现在的手机不是一台计算机(电脑)吗?有些手机的价格比笔记本电脑还贵,内部配置比较台式机也不相上下。
提及计算机,首先提到的就是CPU,(有些非“挨踢”行业童鞋们,可能对于内存空间和硬盘空间大小是混淆的,不过不影响使用就行),CPU这个名词连老人都不会弄错了,地球人都知道CPU越快越好.....这里对于硬件相关的制造工艺、针脚、硬件布线、频率、cache...在此我们都不做介绍,这些对消费者和使用者来说,也许是商家的营销标语或是区别不同代产品的标示,有兴趣的童鞋可以自行查阅一些相关资料。
大家或许听过这样的话:“做图,用苹果电脑最好....”,作为一个敬业的IT屌丝,我禁不住问,why?
多数人:“处理快,显示好,外观好看.....”
好吧,外观和显示问题,先不说了,这个不涉及计算机的处理,我们单说“处理快”。所谓处理快,字面理解那应该是一款软件处理图像的能力很强,效率很高吧,这些东西,统统都离不开CPU的处理,那就不得不说说CPU那点事了。
在这里我们着重说一下CPU的指令,为什么要说指令呢?隔壁老王都一直在说“频率快,有能力”呢?
因为跟我们生活和工作最密切相关的就是程序(操作系统其实也是一种程序),简单的理解程序有两个部分组成:
- 指令(软件处理图像的各种操作,后台就是发给CPU的一个个指令)
- 数据 (需要处理的图像)
这里我们先说指令,程序就是一组只读的指令组成,将这些指令交由CPU处理,就能得到我们想要的结果。其实这也是一系列指令转换的过程,比如,由高级语言(c语言)编写的一个程序,程序员在写程序时就使用了c语言的相关指令,但是这些指令cpu并不认识,需要层层转换为cpu可以运算的指令。
抽象的过程:
人类比较容易识别的指令(高级语言,c语言指令)-->半人类识别指令(低级语言,汇编指令)-->机器语言(硬件指令,比如cpu指令)
这里就说一下机器语言-cpu指令,从指令集说起:
CPU指令集(架构之分)
主要分为两种:
- RISC(Reduced Instruction Set Computing,精简指令集计算机)
- CISC(Complex Instruction Set Computer,复杂指令集计算机)
以上两种时当前CPU的两种架构,它们的区别在于不同的CPU设计理念和方法。大家不要以为先有的RISC,事实上先有的CISC。为什么叫做精简指令,因为是在复杂指令集的基础上,精简出一些必须用到,单个指令只能实现简单功能,但是多个指令的组合可以实际多种功能。
举个例子,作为强大的吃货,复杂指令就属于比较方便快捷的食品那种,拿北方面食为例,复杂指令集里面已经有了面条、包子、饺子、大饼、馒头...,貌似很方便提供的食物比较丰富,但是我们会发现,饺子或许一个月就吃几次,面条和馒头每天都在吃;饺子对应的指令,利用率很低,也有可能发现,现成的这些食物口味和口感并不是自己想要的,就算面条,可能每个地域的人喜欢的也都不一样,比如南方人喜欢碱水面,北方人可能喜欢拉面、刀削面、拉条子等等。
而作为精简指令集,可能就只提供面粉,至于怎么做,看个人的喜好,味道如何看自己的手艺;这样就能吃到妈妈的味道,在饭店永远也吃不到家里妈妈的味道,也是这个情况。
CISC和RISC的区别详见下表:
指令系统 复杂,庞大 简单,精简
指令数目 一般大于200 一般小于100
指令格式 一般大于4 一般小于4
寻址方式 一般大于4 一般小于4
指令字长 不固定 等长
可访存指令 不加限制 只有LOAD/STORE指令
各种指令使用频率 相差很大 相差不大
各种指令执行时间 相差很大 绝大多数在一个周期内完成
优化编译实现 很难 较容易
程序源代码长度 较短 较长
控制器实现方式 绝大多数为微程序控制 绝大多数为硬布线控制
软件系统开发时间 较短 较长
CISC和RISC对应的硬件:
一般来说RISC多数用在小型机主机上,IBM的 Power PC为RISC CPU的结构,HP的PA-RISC CPU,CISCO 的CPU也是RISC的结构。
经常见到的PC中的CPU使用的大都是CISC,Pentium-Pro(P6)、Pentium-II,Cyrix的M1、M2、AMD的K5、K6实际上是改进了的CISC,也可以说是结合了CISC和RISC的部分优点。
题外话:
早期Macintosh,Apple公司的主机使用的是RISC指令集,使用IBM-power pc CPU,算是桌面服务器比较特殊的,一直公认apple power系列处理图像等运算比普通pc好很多,原因也在与此。同样的频率下,使用RISC性能会优于CISC。
从侧面也说明,CPU性能按照业界公布出来的所谓频率....为主要指标,也是忽悠广大群众的,因为CISC的CPU研发周期相对短些,自然整出些指标来宣示自己的进步。大家是否发现,pc已经更新这么高的配置,微软的系统依然还是那样的速度,office依然还是卡顿,动不动还是会hung;
CPU指令(使用权限之分)
上面说了CPU指令集,这个是对硬件或事整体对外的情况,我们说一下指令使用方面的分类:
我们需要提及“环”(Ring)的概念,这个就像孙大圣保护唐僧画的一个圈圈⭕️,叫啥名字多个版本,也能算是个结界。CPU有四个环,0、1、2、3: 其中
环1、环2:保留不用
环0:这是特权环指令,直接由内核接管,也叫内核空间,负责与硬件相关的操作。
环3:这个是用户空间,主要是应用程序调用的普通指令。
题外话:
可以想象如果环0开放,分分钟黑客可以让全球的电子设备化为乌有......那就天下大同了。