首页 > 代码库 > 计算机硬件知识整理
计算机硬件知识整理
I.1.编程语言的作用
编程语言是程序员与计算机沟通的介质
2.软件、操作系统和硬件的关系
计算机系统:硬件、操作系统、软件。
软件运行在操作系统之上,操作系统运行在硬件之上,来控制硬件。
II.CPU、内存、硬盘
CPU:中央处理器,是一台计算机的运算核心与控制核心,相当于人的大脑。
内存:计算机组成结构中,很重要的部分。它是 临时存储器,负责数据中转而不永久保存。它的容量和处理速度决定了电脑数据传输的快慢。
内存是CPU能直接访问的的存储器,CPU从内存中读取操作指令和数据,又把运算或处理的结果送回内存。
硬盘:计算机的最重要的存储设备。相当于人的笔记本,负责永久存储数据。
能做运行的只有 CPU,内存和硬盘只是 存储设备。
III.1.CPU与寄存器
在计算机中,寄存器是CPU内部的元件。寄存器拥有非常之高的读写速度,所以在寄存器之间的数据传送非常快。
CPU,都有一套可执行的专门指令,任何软件的的执行最终要转为CPU的指令去执行。
访问内存以得到指令或数据的时间远比CPU执行指令花费的时间多的多,所以,所以CPU内部都有些用来保存 关键变量和临时数据的寄存器。因此,通常在CPU的指令集中专门提供一些指令,用来将一组数据从内存调入寄存器,以及将一组数据存入内存。CPU其他指令集可以把来自寄存器、内存的操作数据结合,或用两者产生一个结果,比如 将两组数据相加并把结果存在寄存器或内存中。
2、寄存器的分类
1.通用寄存器:用来保存变量和临时结果
2.程序计数器:多数计算机外加一些对程序员课件的专门寄存器。它保存了将要取出的下一条的内存地址。在指令取出后,程序计数器就被更新以便执行后期的指令
3.堆栈指针:指向内存中 当前栈的顶端。该栈包含已经进入但是已经进入但是还没有 退出 的每个过程中的一个框架。在一个过程框架中保存了有关的输入参数、局部变量以及那些没有保存在寄存器中的临时变量。
堆栈:先进后出
队列:先进先出
4.程序状态寄存器:(Program Status Word, PSW)
它包含了 条码位(由比较指令设置)、CPU优先级、模式(用户态和内核态),以及各种其他控制位。用户通常读入整个PSW,但是只对其中少量的字段写入。在系统调用和I/O中,PSW非常之重要。
5.内核态与用户态
除了在嵌入式系统中的非常简单的CPU之外,多数CPU都有两种模式,即 内核态与用户态。
通常,PSW中有一个 二进制位控制这两种模式。
内核态:当CPU在内核运行时,CPU可以执行指令集中 所有 的指令。所有的指令包含了 使用硬件的所有功能(操作系统在内核状态下运行,从而可 访问整个硬件)
用户态:用户程序在 用户态下运行,仅仅 只能指令集的 一个子集,该子集中不包含操作硬件功能的部分,因此,一般情况,在用户态中有关I/O和内存保护(操作系统占用的内存 是受保护的,不能被别的程序占用)。当然,在用户态下,将PSW中的模式设置成 内核态也是 禁止的。
6.内核态与用户态 切换
用户态 下的工作的软件不能操作硬件,但我们的软件如 暴风,一定会有操作硬件的需求,如从磁盘上读一个电影文件,必须经历 从用户态切换到内核态 的过程为此,用户必须使用 系统调用(System Call),系统调用 陷入内核并调用操作系统,TRAP指令把 用户态切换成内核态,并启用操作系统从而获得服务。
把系统调用看成:一个特别的过程调用就可以了,指令具有从用户态切换到内核态的 特别能力
IV.存储器
1.存储器系统如下图 分层结构
顶层 速度较高,容量较小,成本较高
2.L1缓存(即寄存器)
与CPU材质相同,速度一样快,因此CPU访问它 无延时。
典型容量是: 在32位CPU中为 32*32
在 64位CPU中为 64*64
在两种情况下容量均 <1KB
3.L2缓存(即高速缓存)
主要由 硬件 控制 高速缓存的存取,内存中有高速缓存行(0~64字节为 行0,64~127为 行1…)。
最常用的高速缓存放置在CPU内部或非常接近CPU的高速缓存中。当某个程序需读一个存储字,高速缓存硬件检查所需的高速缓存行 是否在高速缓存中。 如果 是,则称为 高速缓存命中,缓存满足了请求,就不需通过总线把访问请求送往主存(内存),毕竟是慢的。
高速缓存的命中通常需 两个周期。高速缓存为命中,就必须访问内存,这需大量时间。由于高速缓存价格高昂,所以其大小有限,有些机器具有两级甚至三级高速缓存,每一级高速缓存比前一级 慢但是容量大。
缓存无处不在。只要存在大量的资源可以划分为 小的部分,那么这些资源中的某些部分肯定会比其他部分更频发的得到使用,此时用缓存可带来 性能上的提升。
4.内存
主存乃存储系统的主力,主存通常称为 随机访问存储RAM,就是所说的 内存。容量一直在不断攀升,所有不能再高速缓存中找到的,都会到主存中找。
主存是 易失性存储,断电后数据全部消失。
除主存RAM之外,许多计算机使用少量的 非易失性随机访问存储如ROM(Read Only Memory)。在电源切断后,非易失性存储的内容并不会丢失,ROM只读存储器在工厂中就被编程完毕,然后再也不能修改。ROM速度快且便宜,有些计算机,用于启动计算机的引导加载模块就存放在ROM中,另外一些I/O卡也采用ROM处理底层设备的控制。
EEPROM(Electrically Erasable PROM,电可檫处可编程ROM)和闪存(flash memory)也是非易失性的。但是与ROM相反,它们可以檫除和重写。不过重写时花费的时间比写入RAM要多。在便携式电子设备中,闪存通常作为 存储媒介。闪存是数码相机的胶卷,是便携式音译播放器的磁盘,还应用于固态硬盘。闪存在速度上介于 RAM和磁盘 之间,单于磁盘不同的是,闪存檫除的次数过多,就被磨损。
CMOS:易失性的 ,用来 保持当前时间和日期。CMOS存储器和递增时间的电路由一小块 电池驱动,。即使,计算机没电,时间也仍然正确的更新。除此之外, CMOS还可以保存配置的参数,比如,哪一个是 启动磁盘。
V.磁盘
磁盘中有1 一个或多个金属盘片,以5400,7200,或10800RPM(revolutions per minute 每分钟多少转)的速度旋转。
磁盘容量是:磁盘能写多少个2进制位。
8 bit = 1 bytes
1024 bytes = 1 K
1024 K = 1 k
1 K = 1024 M
1024 M =1 G
数据都存放于一段一段的扇区(扇区典型值 512字节),即磁道这个圆圈的一小段圆圈,从磁盘读取一段数据需要经历 寻道时间和延迟时间。
平均寻道时间:
机械手臂从一个柱面随机移动到相邻的柱面的时间称为 寻道时间,找到了磁道就可认为找到了数据所在的那个圈圈,但是还不知数据具体在这个圆圈的具体位置
平均延迟时间:
机械手臂到达正确的磁道之后还必须等待旋转到所在的扇区下,这段时间称为 延迟时间
虚拟内存:
许多计算机支持 虚拟内存机制,该机制是计算机可运行大于物理内存的程序。过程是:将正在使用的程序放入内存去执行而暂时不需要执行的程序放到磁盘的某个地方,这块地称为 虚拟内存。
在linux中称为swap,这种机制的核心在于 快速地映射内存地址,由CPU中的一个部件负责,称为 存储器管理单元(Memory Management Unit MMU)。
从一个程序切换到另外一个程序,称为 上下文交换(context switch),缓存和 MMU的出现提升了系统性能,尤其是上下文切换
VI.1.磁带
磁带拥有大容量(常用来做 备份,常见于大型数据库系统中),速度低于磁盘
2.I/O设备
CPU和存储器并不是操作系统唯一需要管理的资源,I/O设备也是非常重要的一环。
I/O设备包括:设备控制器
设备本身
控制器:查找主板上的一块芯片或一组芯片(硬盘,网卡,声卡等都需插到一个口上,这个口连得便是控制器),控制器负责控制连接设备,它从操作系统接受命令,比如 读取硬盘数据,然后就对硬盘设备发起读者请求来读出内容。
控制器功能:通常情况下对设备的控制是非常复杂和具体的,控制器的任务就是为操作系统屏蔽这些复杂而具体的工作,提供给操作系统一个简单而清晰的接口。
设备本身:有相对简单的接口且标准的,大家都可为其编写驱动程序了。要想调用设备,必须根据该接口编写复杂而具体的程序,于是有了控制器提供设备驱动接口给操作系统。必须把设备驱动程序安装到操作系统中。
VII.总线
单总线,如下图
随着处理器和内存器速度越来越快,单总线很难处理总线的交通流量,于是出现 多总线
北桥:即PCI桥,连接高速设备
南桥:即ISA桥,连接慢速设备
VIII.启动计算机
计算机主板有一基本的 输入输出程序(Basic Input Output System BIOS)
BIOS相当于一个小的操作系统,它有底层得I/O软件,包括读键盘,写屏幕,进行磁盘I/O,该程序存放于——非易失性闪存RAM中。
启动流程
1. 计算机加电
2. BIOS开始运行,检测硬件:CPU,内存,硬盘等
3. BIOS读取CMOS存储器中的参数,选择启动设备
4. 从启动设备上读取第一个扇区的内容(MBR主引导记录 512字节,前446 为引导信息,后64 为分区信息,最后两个为 标志位)
5. 根据分区信息读入bootloader启动装载模块,启动操作系统
6. 然后操作系统询问BIOS,以获取配置信息。对于每种设备,系统会检查设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核,然后初始有关的表格(如进程表),创建需要的进程,并在每个终端上启动登录程序或GUI(Graphical User Interface,称作图形用户界面 或 图形用户接口)
计算机硬件知识整理