计算机这个黑箱子
计算机展示在我们面前就是一个黑箱子,我们给出声明式的指示(点击键盘、点击鼠标)它就可以做出一系列复杂的响应并给出相应的结果。计算机在短短的几毫秒内发生了什么神奇的事情,始终像是蒙了一层层的纱布,看不清。如何将这个巨大的机器怪物剖析开来,了解它的内部细节?
cpu大观
计算机的cpu初步看是这样
一眼看上去是不是也没什么稀奇?而内部确是大有玄机,世界上第一个商用微处理器—4004都集成晶体管2300只。cpu内部的电路板更是错综复杂,CPU的电路板好几十层,问了下专业人士,说有20多层,画一张CPU图纸比美国纽约城市还大一张。要是想彻底搞清楚cpu是如何设计出来的,还得很多的前置知识。只需要知道,不同的cpu被设计成支持各种各样的“命令”,下命令就可以让cpu执行既定的动作。
cpu的指令集简介
从大类来分,一般将指令集分为精简指令集和复杂指令集。
CISC(复杂指令集)
即 冯·诺依曼结构(普林斯顿结构),指令与数据存储在同一存储器中;
采用CISC结构的处理器,指令线与数据线分时复用;
程序指令存储地址与数据存储地址指向同一个存储器的不同物理位置,则程序指令和数据的宽度相同;
取指令与取数据不能同时进行,速度受限;
Intel 8051、Motorola MC68xxx、Atmel AT89
RISC(精简指令集)
即 哈佛结构,指令与数据存储于两个不同的存储空间;
程序存储器与数据存储器相互独立,独立编址,独立访问;
分离的程序总线与数据总线在一个机器周期中,可同时获得指令字和操作数,提高执行效率;
取指令和取数据同时进行,且一般指令线宽与数据线,可包含更多的处理信息;
Motorola/IBM PowerPC、Atmel AVR、Microchip PIC、ARM
通俗的理解,RISC指令集是针对CISC指令集中的一些常用指令进行优化设计,放弃了一些复杂的指令,对于复杂的功能,需要通过组合指令来完成。自然,两者的使用场合不一样,对于复杂的系统,CISC更合适。否则,RISC更合适,且功耗低。注意,当初本没有RISC和CISC之分。最开始,Intel x86的第一个CPU定义了第一套指令集,这就是最开始的指令集,后来一些公司发现很多指令并不常用,所以决定设计一套简介高效的指令集,称之为RISC指令集,从而将原来的Intel x86指令集定义为CISC指令集。