计算机硬件知识整理
计算机硬件知识整理
一.编程语言的作用
编程语言,就是让计算机为解决某个问题,而使用某种程序设计语言编写程序代码,并最终得到相应结果的过程。
为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路通过计算机能够理解的形式告诉计算机,这种人和计算机之间交流的过程就是编程。
目前的主要编程语言有,Java, C, C++, Python, PHP, Pearl等。
二. 编程语言的作用及与操作系统和硬件的关系
操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件的计算机程序,任何其他软件都必须在操作系统的支持下才能运行。
操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。操作系统的功能包括管理计算机系统的硬件、软件及数据资源,控制程序运行,改善人机界面,为其它应用软件提
供支持,让计算机系统所有资源最大限度地发挥作用,提供各种形式的用户界面,使用户有一个好的工作环境,为其它软件的开发提供必要的服务和相应的接口等。实际上,用户是不用接触
操作系统的,操作系统管理着计算机硬件资源,同时按照应用程序的资源请求,分配资源,如:划分CPU时间,内存空间的开辟,调用打印机等。
我们今天的软件例如QQ, Youtube等都是在操作系统上运行的,在远古时代,程序员把硬件拆开,研究掌握硬件的所有具体细节,用编程语言之间操作硬件来编程的,但这是在没有任何操作系
统的环境下进行的,因此也就影响了开发效率。所以,计算机硬件,操作系统,软件三者是相互依托,不可分离的。因此,我们可以看到,一套完整的计算机系统分为:计算机硬件,操作系
统,软件(程序员开发的就是软件)。
三. 计算机硬件介绍
计算机硬件由CPU、内存以及I/O设备构成,这些都由一条系统总线(bus)连接起来并通过总线与其他设备通信。
各部分具体介绍:
CPU: *处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计算机指令以及处
理计算机软件中的数据。它相当于人的大脑,负责命令和运算。
内存(Memory),用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的
影响非常大。其作用是只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。 内存是由内存芯
片、电路板、金手指等部分组成的,它相当于人的记忆,负责临时存储。
硬盘(Hard Disk)是电脑主要的存储媒介之一,由一个或者多个铝制或者玻璃制的碟片组成。碟片外覆盖有铁磁性材料。
硬盘有固态硬盘(SSD 盘,新式硬盘)、机械硬盘(HDD 传统硬盘)、混合硬盘(HHD 一块基于传统机械硬盘诞生出来的新硬盘)。硬盘就像是人的笔记本,负责永久存储。
输入设备(Input Device)是人或外部与计算机进行交互的一种装置,键盘,鼠标,摄像头,扫描仪,光笔,手写输入板,游戏杆,语音输入装置等都属于输入设备。输入设备是,用于把原始
数据和处理这些数的程序输入到计算机中。输入设备是耳朵或眼睛,负责接收外部的信息传给CPU。
输出设备(Output Device)是计算机硬件系统的终端设备,用于接收计算机数据的输出显示、打印、声音、控制外围设备操作等。也是把各种计算结果数据或信息以数字、字符、图像、声音。
等形式表现出来。常见的输出设备有显示器、打印机、绘图仪、影像输出系统、语音输出系统、磁记录设备等。输出设备相当于你的表情,负责经过处理后输出的结果。
以上所有的设备都通过总线连接,总线相当于人的神经。
3.1 处理器
CPU的处理过程:取指->解码->执行下一条指令,周而复始,直至整个程序被执行完成。
寄存器(Register)是*处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。在*处理器的控制部件中,包含的寄存器有指令寄存器(IR)
和程序计数器(PC)。在*处理器的算术及逻辑部件中,存器有累加器(ACC)。
寄存器的分类:
1.通用寄存器:用来保存变量和临时结果的寄存器。
2.程序计数器:它保存了将要取出的下一条指令的内存地址,在指令取出后,程序计算器就被更新以便执行后期的指令。
3.堆栈指针,它指向内存中当前栈的顶端。该栈包含已经进入但是还没有退出的每个过程中的一个框架。在一个过程的堆栈框架中保存了有关的输入参数、局部变量以及那些没有保存在寄存
器中的临时变量。
4.程序状态字寄存器(Program Status Word,PSW),这个寄存器包含了条码位(由比较指令设置)、CPU优先级、模式(用户态或内核态),以及各种其他控制位。用户通常读入整个PSW,但是只
对其中少量的字段写入。在系统调用和I/O中,PSW是非常重要的!
寄存器的维护:操作系统必须知晓所有的寄存器。在时间多路复用的CPU中,操作系统会经常中止正在运行的某个程序并启动(或再次启动)另一个程序。每次停止一个运行着的程序时,操作
系统必须保存所有的寄存器,这样在稍后该程序被再次运行时,可以把这些寄存器重新装入。
内核态与用户态
除了在嵌入式系统中的非常简答的CPU之外,多数CPU都有两种模式,即内核态与用户态。
内核态: CPU可以访问内存所有数据, 包括外围设备, 例如硬盘, 网卡. CPU也可以将自己从一个程序切换到另一个程序
用户态: 只能受限的访问内存, 且不允许访问外围设备. 占用CPU的能力被剥夺, CPU资源可以被其他程序获取
内核态与用户态切换
2. 用户态和内核态的转换
1)用户态切换到内核态的3种方式
a. 系统调用
这是用户态进程主动要求切换到内核态的一种方式,用户态进程通过系统调用申请使用操作系统提供的服务程序完成工作,比如前例中fork()实际上就是执行了一个创建新进程的系统调用。
而系统调用的机制其核心还是使用了操作系统为用户特别开放的一个中断来实现,例如Linux的int 80h中断。
b. 异常
当CPU在执行运行在用户态下的程序时,发生了某些事先不可知的异常,这时会触发由当前运行进程切换到处理此异常的内核相关程序中,也就转到了内核态,比如缺页异常。
c. 外围设备的中断
当外围设备完成用户请求的操作后,会向CPU发出相应的中断信号,这时CPU会暂停执行下一条即将要执行的指令转而去执行与中断信号对应的处理程序,如果先前执行的指令是用户态下的程
序,那么这个转换的过程自然也就发生了由用户态到内核态的切换。比如硬盘读写操作完成,系统会切换到硬盘读写的中断处理程序中执行后续操作等。
这3种方式是系统在运行时由用户态转到内核态的最主要方式,其中系统调用可以认为是用户进程主动发起的,异常和外围设备中断则是被动的。
计算机中第二重要的就是存储了,所有人都意淫着存储:速度快(这样cpu的等待存储器的延迟就降低了)+容量大+价钱便宜。然后同时兼备三者是不可能的,所以有了如下的不同的处理方式
3.2 存储器
存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据。计算机中的全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控
制器指定的位置存入和取出信息。
L1缓存就是一级缓存,L2缓存就是二级缓存。
一级缓存即L1 Cache。集成在CPU内部中,用于CPU在处理数据过程中数据的暂时保存。由于缓存指令和数据与CPU同频工作,L1级高速缓存缓存的容量越大,存储信息越多,可减少CPU与
内存之间的数据交换次数,提高CPU的运算效率。但因高速缓冲存储器均由静态RAM组成,结构较复杂,在有限的CPU芯片面积上,L1级高速缓存的容量不可能做得太大。
二级缓存就是一级缓存的缓冲器:一级缓存制造成本很高因此它的容量有限,二级缓存的作用就是存储那些CPU处理时需要用到、一级缓存又无法存储的数据。同样道理,三级缓存和内存
可以看作是二级缓存的缓冲器,它们的容量递增,但单位制造成本却递减。需要注意的是,无论是二级缓存、三级缓存还是内存都不能存储处理器操作的原始指令,这些指令只能存储在CPU的
一级指令缓存中,而余下的二级缓存、三级缓存和内存仅用于存储CPU所需数据。
内存:内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。内存(Memory)也被称为内存储器
,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来
,内存的运行也决定了计算机的稳定运行。 内存是由内存芯片、电路板、金手指等部分组成的。
NVRAM 非易失性随机访问存储器 (Non-Volatile Random Access Memory),是指断电后仍能保持数据的一种RAM。 如果通俗地解释非易失性存储器,那就是指断电之后,所存储的数据不丢
失的随机访问存储器。 之所以加如此的定语,是因为: 1.与此对应的随机访问存储器(Random Access Memory,RAM)包含SRAM和DRAM(其又分为SDRAM,DDR SDRAM,DDR2 SDRAM ,
RDRAM,Direct RDRAM),断电之后信息就丢失了。其中,DRAM又分为SDRAM(由6个晶体管组成),DDR SDRAM(有一个晶体管组成),DDR2 SDRAM(利用电平脉冲的上升沿和下降沿传输数据
,使得数据传输频率相对于普通的DDR SDRAM加倍) ,和采用RSL技术的RDRAM,Direct RDRAM。
闪存(Flash Memory)是一种长寿命的非易失性(在断电情况下仍能保持所存储的数据信息)的存储器,数据删除不是以单个的字节为单位而是以固定的区块为单位,区块大小一般为256KB到
20MB。闪存是电子可擦除只读存储器(EEPROM)的变种,EEPROM与闪存不同的是,它能在字节水平上进行删除和重写而不是整个芯片擦写,这样闪存就比EEPROM的更新速度快。由于其断电时
仍能保存数据,闪存通常被用来保存设置信息,如在电脑的BIOS(基本输入输出程序)、PDA(个人数字助理)、数码相机中保存资料等。另一方面,闪存不像RAM(随机存取存储器)一样以
字节为单位改写数据,因此不能取代RAM。
CMOS与BIOS电池
磁盘结构
所谓BIOS,实际上就是微机的基本输入输出系统(Basic Input-Output System),其内容集成在微机主板上的一个ROM芯片上,主要保存着有关微机系统最重要的基本输入输出程序,系统信
息设置、开机上电自检程序和系统启动自举程序等。
CMOS(本意是指互补金属氧化物半导体存储嚣,是一种大规模应用于集成电路芯片制造的原料)是微机主板上的一块可读写的RAM芯片,主要用来保存当前系统的硬件配置和操作人员对某些参数
的设定。CMOS RAM芯片由系统通过一块后备电池供电,因此无论是在关机状态中,还是遇到系统掉电情况,CMOS信息都不会丢失。
由于CMOS RAM芯片本身只是一块存储器,只具有保存数据的功能,所以对CMOS中各项参数的设定要通过专门的程序。早期的CMOS设置程序驻留在软盘上的(如IBM的PC/AT机型),使用很不方便
。现在多数厂家将CMOS设置程序做到了 BIOS芯片中,在开机时通过按下某个特定键就可进入CMOS设置程序而非常方便地对系统进行设置,因此这种CMOS设置又通常被叫做BIOS设置。
3.3 磁盘
计算机的外部存储器中也采用了类似磁带的装置,比较常用的一种叫磁盘。将圆形的磁性盘片装在一个方的密封盒子里,这样做的目的是为了防止磁盘表面划伤,导致数据丢失。有了磁盘之
后,人们使用计算机就方便多了,不但可以把数据处理结果存放在磁盘中,还可以把很多输入到计算机中的数据存储到磁盘中,这样这些数据可以反复使用,避免了重复劳动。可是不久之后
,人们又发现了另一个问题:人们要存储到磁盘上的内容越来越多,众多的信息存储在一起,很不方便。这样就导致了文件系统的产生。只有低格才对磁盘有很大的伤害,其它的读写是不要
紧的。
平均寻道时间
一般硬盘的平均寻道时间在7.14ms
这里的寻道时间主要是指平均寻道时间,平均寻道时间是指MO磁光盘机在接收到系统指令后,磁头从开始移动到移动到数据所在磁道所需要的平均时间,它是指计算机在发出一个寻址命令,到相
应目标数据被找到所需时间,单位为毫秒(ms).这是衡量MO磁光盘机的一个重要参数,其数值越小,则性能越好.
平均寻道时间实际上是由MO磁光盘机转速、盘片容量等多个因素综合决定的一个参数,MO磁光盘机的转速越快,磁头在单位时间内所能扫过的盘片面积就越大;而MO磁光盘机的盘片容量越高,其
数据记录密度也越高,磁头读写相同容量的数据时所需要扫过的盘片面积就越小,从而使平均寻道时间减少,从而提高MO磁光盘机性能.我们常以它来描述硬盘读取数据的能力.平均寻道时间越小
,硬盘的运行速率相应也就越快。
平均延迟时间
机械臂到达正确的磁道之后还必须等待旋转到数据所在的扇区下,这段时间成为延迟时间。
虚拟内存:
虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存
储在外部磁盘存储器上,在需要时进行数据交换。目前,大多数操作系统都使用了虚拟内存,如Windows家族的“虚拟内存”;Linux的“交换空间”等。
3.4 磁带
计算机磁带(cornputer magnetic tape),与磁带机起构成大中型计算机外存贮系统,要求存储容量大,可靠性高,数据传输快。
3.5 I/O设备
I/O设备,管理和控制计算机的所有输入/输出(I/O)设备是操作系统的主要功能之一,主要分为字符设备和块设备。一般由机械和电子两个部分组成。
现代计算机系统中配置了大量的外围设备,即I/O设备。依据它们的工作方式的不同,通常进行如下分类:
(1)字符设备(character device),又叫做人机交互设备。用户通过这些设备实现与计算机系统的通信。它们大多是以字符为单位发送和接受数据的,数据通信的速度比较慢。例如,键盘
和显示器为一体的字符终端、打印机、扫描仪、包括鼠标等,还有早期的卡片和纸带输入和输出机。含有显卡的图形显示器的速度相对较快,可以用来进行图像处理中的复杂图形的显示。
(2)块设备(block device),又叫外部存储器,用户通过这些设备实现程序和数据的长期保存。与字符设备相比,它们是以块为单位进行传输的,如磁盘、磁带和光盘等。块的常见尺寸为
512~32768B之间。
(3)网络通信设备。这类设备主要有网卡、调制解调器等,主要用于与远程设备的通信。这类设备的传输速度比字符设备高,但比外部存储器低。这种分类的方法并不完备,有些设备并没有
包括。例如,时钟既不是按块访问,也不是按字符访问,它所做的是按照预先规定好的时间间隔产生中断。但是这种分类足以使操作系统构造出处理I/O设备的软件,使它们独立于具体的设备
。
3.6 总线
总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,
分别用来传输数据、数据地址和控制信号。总线是一种内部结构,它是cpu、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与
总线相连接,从而形成了计算机硬件系统。在计算机系统中,各个部件之间传送信息的公共通路叫总线,微型计算机是以总线结构来连接各个功能部件的。
北桥
它主要负责CPU与内存之间的数据交换,并控制AGP、PCI数据在其内部的传输,是主板性能的主要决定因素。随着芯片的集成度越来越高,它也集成了不少其它功能。如:由于Althon64内部
整合了内存控制器;nVidia在其NF3 250、NF4等芯片组中,去掉了南桥,而在北桥中则加入千兆网络、串口硬盘控制等功能。现在主流的北桥芯征的牌子有VIA、NVIDIA及SIS等
南桥
南桥芯片主要是负责I/O接口等一些外设接口的控制、IDE设备的控制及附加功能等等。常见的有VIA的8235、8237等;INTEL的有CH4、CH5、CH6等;nVIDIA的MCP、MCP-T、MCP RAID等。在这
部分上,名牌主板与一般的主板并没有很大的差异,但是名牌主板凭着其出色的做工,还是成为不少人的首选。而不排除一部分质量稍差的主板为了在竞争中取得生存,可能会采用功能更强
的南桥以求在功能上取胜。
3.7 启动计算机
计算机启动过程如下图: