首页 > 代码库 > 计算机基础:计算机硬件
计算机基础:计算机硬件
学Python语言为何要先学习计算机基础:计算机基础是在以后所有技术的基石,打好基础我们才能更好的学习其他技术。
一、计算机系统的组成
计算机系统分为:硬件、操作系统、软件。软件如果需要调动硬件,需要通过计算机系统的帮助,软件无法直接调用计算机硬件。
二、计算机硬件
计算机的硬件的基本组成为:CPU、内存、硬盘、I/O设备,这些设备由总线把他们连接在一起。
CPU是整个计算机的核心,负责计算机的控制和运算。
内存负责计算机的暂时性储存,由于是通过电信号写入储存器,所以断电后信息会全部消失。
硬盘耐久度好,有着永久性储存的特性,储存空间较大。固态硬盘与普通硬盘基本相同,但是有着快速读写的,质量轻的优点,但是价格比较昂贵,容量也相对较低。
输入设备指的是向计算机输入数据和信息的设备,例如键盘,鼠标等。
输出设备指的是计算对外的数据的显示和输出设备,例如显示器,音箱等。
三、计算机各部分硬件介绍
1.处理器
CPU是计算机的核心硬件,负责对储存器中的指令进行解释、处理、自行操作,使我们在计算机的操作得以实现。每个CPU都有一套专供自己执行的指令。
CPU的工作过程一般是提取指令→解码→执行,在储存器中提取指令后通过寄存器把提取的指令进行处理。寄存器是CPU内部的组成部分,储存空间有限,但是是高速储存的部件,可以用来暂存指令、数据和地址。寄存器是为了加快对指令提取速度的硬件:因为CPU如果从内存中直接提取的指令速度低下,为了提高速度,才有了和CPU材质相同的寄存器来提高速度。
寄存器大体分为以下几类:
1.1通用寄存器:用来保存和暂存数据。
1.2程序计数器:(CPU在同一时刻只能处理一条指令,如果多条指令需要执行的时候,就必须分多次把这条指令执行完成,程序计数器就是在执行下一条指令的时候,保存当前指令的执行进度,以便再次执行时快速开始)在取指令的过程中,需要根据当前指令存放的地址,将指令从内存存放到寄存器中,当有其他的指令需要继续提取分析时,会在寄存器中保存其指令地址,在执行完成前一件指令后,在取出下一条指令的地址,继续执行,完成每一条的指令。程序计数器就是为了使计算机能够连续快速的完成工作,在执行完上一条指令后,能够快速的提取下一条指令进行执行。
1.3堆栈指针:堆栈指针总是指向栈顶的位置,这个是一种线性的处理方式,只能从栈的最顶端插入或者删除,第一个入栈的数据需要最后一个才能出栈(先进去后出来)。主要用来保存临时数据、局部变量和输入参数。
1.4程序状态寄存器:程序状态寄存器的PSW是一个存放状程序运行中各种状态信息的寄存器。其中包括一种二进制控制模式:叫做内核态和用户态,来控制对CPU的操作。
内核态:是操作系统的CPU运行状态,CPU对操作系统完全允许,可以使用硬件的所用功能。
用户态:是应用程序的CPU运行状态,应用程序只能执行部分操作,无法操作硬件的功能。
两种状态的区别是:能不能直接对硬件进行访问,内核态可以,用户态不可以。
但是应用程序的操作需要从硬件获取支持,就必须要从用户态切换到内核态,这种切换过程叫做系统调用。在这个切换工程中,系统调用会修改程序状态寄存器中的二进制位,内核态就启动了。
当多个程序同时启动的时候,操作系统会经常中止某程序并启动另一个程序,每当停止一个正在运行的程序时,操作系统将会保存所有的寄存器,稍后如果这个程序再次启动时,这些寄存器将重新载入。
为了提高效率节省时间,取指、解码、执行这三个过程被设计成流水线进行执行,三个过程互不耽误大大提高了效率。在超变量CPU中,多个执行单元共同工作,负责不同的任务,当两个及更多的指令解码同时被取出时,会一并装入一个保持缓冲区中,当一个执行单元空闲时,就会检查保持缓冲区中是否还有待处理的指令,从而从中选取完成指令。
moore定律指出,芯片中的晶体管数量每18个月翻一倍,随着晶体管数量增多,CPU功能获得增强:
第一步增强:CPU芯片中加入更大的缓存,材料同CPU相同。
第二步增强:CPU可以“同时进行多个进程”称为多线程,其中进程是资源单位,线程是执行单位。因为硬件的性能提高,才会产生多线程这个概念。
第三步增强:一个CPU包含多(二或四)个独立的CPU芯片,每个核都有自己的一级缓存,如果这几个核想互相通信,需要通过二级缓存来联系(因特尔)。也有每个核都有自己的独立的一级缓存和二级缓存的多核芯片(AMD)。
CPU有向下的兼容性:64位CPU,其中的位指的是二进制,一次取指可以取出64个二进制位,32位的软件可以在64位上运行。
2.储存器
储存器中,访问速度从快到慢分别是:寄存器、高速缓存、内存、磁盘、磁带,容量大小正好相反。
寄存器即L1缓存:材质跟CPU材质一样,速度一样快。
高速缓存即L2缓存:没有一级缓存快,存放一些CPU经常使用的字。CPU在高速缓存找到所需的字称为高速缓存命中,反正为高速缓存未命中。
内存:是易失性,断电后数据全部丢失。
非易失性随机访问储存如ROM:在出厂时上边已经写好需要的程序,切断电源时不会丢失。
闪存:也是非易失性,他是基于电方式存储的,不同于内存的是,断电数据不丢失,一般应用于固态硬盘和便携式音译播放器的磁盘。固态硬盘读取速度快,比机械硬盘更加坚固。
CMOS:是易失性的,一般存储时间、计算机的一些配置参数(BLOS),因为是易失性的,所以在它的电路中会安装一枚电池,因为其耗电很小,往往可以用很多年。
3.磁盘
磁盘中有机械手臂,机械手臂上的磁头会读取磁盘上的数据,类似于黑胶唱片机。
磁盘上的数据都是二进制,数据存放到一段段的扇区上,是磁道上的一小段小圆圈。
8个二进制位组成一个字节:8个bit=1bytes、1024bytes=1KB、1024KB=1MB。
扇区是512bytes,是最小的读写单位。在Linux操作系统下一个block块=8个扇区,即8*512bytes=4096bytes=4KB。
机械手臂从磁面找到数据所在磁道的那个圆圈的时间叫寻道时间。平均找到每一个数据磁道的时间叫做平均寻道时间。
机械手臂找到所需数据的扇区的时间,叫做延迟时间。平均找到数据扇区的时间叫做平均延迟时间。
虚拟内存:当所运行程序需要的内存大于计算机的物理内存时,就会把程序的一部分内存放入硬盘中的一块特定空间,这部分空间就叫做虚拟内存。虚拟内存可以让计算机运行大于其物理内存的程序。当放入虚拟硬盘的那部分程序需要放回原程序中时,他们所需要的转换的映射关系叫做MMU。程序运行到一定状态时所产生的数据状态,下次运行需要调用的叫做上下文,当再次启动该程序需要继续调用时叫做上下文切换,表示程序切换的一个单位。
4.磁带
因为容量大主要用来做备份用的,而且可移动性强。
5.I/O设备
一般包括设备控制器和设备本身
控制器:是主板上的一块芯片或一组芯片,负责控制连接的设备。需要有与之配套的相应程序来使操作系统能控制设备。
6.总线
北桥即PCI桥:连接高速设备。南桥即ISA桥:连接慢速设备
7.计算机的启动
计算机有一个输入输出程序,叫做BLOS,写在主板上,启动时会先加载此程序。
启动流程:
1.1插入电源开机
1.2BLOS开始运行,开始检测硬件是否正常工作。
1.3BLOS读取CMOS储存器上的参数,启动设备,比如系统盘放在了哪里,就会提示启动该系统盘。
1.4从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位)。
1.5根据分区信息读入bootloader启动装载模块,启动操作系统,负责把操作系统的代码往硬盘中读取。
1.6操作系统询问BLOS,获得配置信息,检测系统设备驱动,如果没有,系统会要球用户安装设备驱动。操作系统就将它们调入内核,然后计算机就启动成功了。
打开软件时输入设备会向操作系统提交一个操作请求,操作系统从硬盘找到文件,找到后往内存中读入,然后程序运行起来。
计算机基础:计算机硬件