CPU详解
CPU工作流程
计算机五大组成部分的基本工作流程就是:输入单元=>主存储器=>CPU=>主存储器=>输出单元
而CPU会从内存中取指令->解码->执行,然后再取指->解码->执行下一条指令,周而复始,直至整个程序被执行完成。
所以总结CPU的大致工作流程就是:取指一>解码一>执行,详细见下图
CPU分类和指令集
# x86架构64位(重要)
x86是针对cpu的型号或者说架构的一种统称。64位指的是cpu一次性能从内存中取出多少位二进制指令,64bit指的是一次性能从内存中取出64位二进制指令。
cpu具有向下兼容性:64的cpu既能运行32位的程序也能运行64位的程序;换句话说,32位的程序可以在32位的cpu上运行也可以在64位的cpu上运行。;64位的程序只能在64位的cpu上运行。
# cpu指令集(了解)
# 1.1、精简指令集(了解)
精简指令集(Reduced Instruction Set Computing,RISC):这种CPU的设计中,微指令集较为精简,每个指令的运行时间都很短,完成的动作也很单纯,指令的执行效能较佳;但是若要做复杂的事情,就要由多个指令来完成。
SPARC架构的计算机常用于学术领域的大型工作站中,包括银行金融体系的主服务器也都有这类的计算机架构;
PowerPC架构的应用,如Sony出产的Play Station 3(PS3)使用的就是该架构的Cell处理器。
ARM是世界上使用范围最广的CPU了,常用的各厂商的手机、PDA、导航系统、网络设备等,几乎都用该架构的CPU。
# 1.2、复杂指令集
复杂指令集(Complex Instruction Set Computer,CISC)与RISC不同,在CISC的微指令集中,每个小指令可以执行一些较低阶的硬件操作,指令数目多而且复杂,每条指令的长度并不相同。因此指令执行较为复杂所以每条指令花费的时间较长,但每条个别指令可以处理的工作较为丰富。常见的CISC微指令集CPU主要有AMD、Intel、VIA等的x86架构的CPU。
# 总结:
CPU按照指令集可以分为精简指令集CPU和复杂指令集CPU两种,区别在于前者的指令集精简,每个指令的运行时间都很短,完成的动作也很单纯,指令的执行效能较佳;但是若要做复杂的事情,就要由多个指令来完成。后者的指令集每个小指令可以执行一些较低阶的硬件操作,指令数目多而且复杂,每条指令的长度并不相同。因为指令执行较为复杂所以每条指令花费的时间较长,但每条个别指令可以处理的工作较为丰富。
内核态与用户态(重要)
代表cpu的两种工作状态
1、内核态:运行的程序是操作系统,可以操作计算机硬件
2、用户态:运行的程序是应用程序,不能操作计算机硬件
内核态与用户态的转换
应用程序的运行必然涉及到计算机硬件的操作,那就必须有用户态切换到
内核态下才能实现,所以计算机工作时在频繁发生内核态与用户态的转换
多线程与多核芯片
2核4线程:
2核代表有两个cpu,4线程指的是每个cpu都有两个线程=》假4核
4核8线程
4核代表有4个cpu,8线程指的是每个cpu都有两个线程=》假8核
存储器
存储器是计算机第二重要的部分。目前速度快+容量大+价格便宜是人们所希望的。但是鱼和熊掌不可兼得,于是就产生了如下存储器结构
RAM:内存
ROM:“只读内存”
存放计算机厂商写死计算机上的一段核心程序=》BIOS
CMOS:存取速度慢,断电数据丢失,耗电量极低
硬盘:
机械硬盘:磁盘
磁道:一圈数据,对应着一串二进制(1bit代表一个二进制位)
8bit比特位=1Bytes字节
1024Bytes=1KB
1024KB=1MB
1024MB=1GB
1024GB=1TB
1024TB=1PB
200G=200*1000*1000B
扇区:
一个扇区通过为512Bytes
站在硬盘的解读,一次性读写数据的最小单为为扇区
操作系统一次性读写的单位是一个block块=》8扇区的大小=4096Bytes
柱面
固态硬盘
IO延迟(重要)
# 机械硬盘转速
7200转/min
120转/s
1/120转/s=转一圈需要花费8ms
平均寻道时间:机械手臂转到数据所在磁道需要花费的时间,受限于物理工艺水平,目前机械硬盘可以达到的是5ms
平均延迟时间:转半圈需要花费4ms,受限于硬盘的转速
IO延迟=平均寻道时间+平均延迟时间
优化程序运行效率的一个核心法则:能从内存取数据,就不要从硬盘取
总线
操作系统的启动流程(重要)
BIOS介绍:
BIOS:Basic Input Output System
BIOS被写入ROM设备
裸机:
cpu
ROM:充当内存,存放BIOS系统
CMOS:充当硬盘
操作系统的启动流程(*****)
1.计算机加电
2.BIOS开始运行,检测硬件:cpu、内存、硬盘等
3.BIOS读取CMOS存储器中的参数,选择启动设备
4.从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位)
5.根据分区信息读入bootloader启动装载模块,启动操作系统
6.然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户安装设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核
应用程序的启动流程(*****)
1、双击exe快捷方式--》exe文件的绝对路径,就是在告诉操作系统说:我有一个应用程序要执行,应用程序 的文件路径是(exe文件的绝对路径)
2、操作系统会根据文件路径找到exe程序在硬盘的位置,控制其代码从硬盘加载到内存
3、然后控制cpu从内存中读取刚刚读入内存的应用程序的代码执行,应用程序完成启动