CPU是计算机系统的核心部件,它负责获取程序指令、对指令进行译码并加以执行。
1、程序控制:CPU按照程序的安排来执行指令,保证程序指令严格按规定的顺序执行,通过执行程序控制计算机的行为。
2、操作控制:一条指令功能的实现需要若干操作信号来完成,CPU产生每条指令的操作信号并将操作信号送往不同的部件,控制相应的部件按指令的功能要求进行操作。
3、时间控制:CPU对每条指令的整个执行时间需要进行严格控制。同时,指令执行过程中操作信号的出现时间、持续时间及出现的时间顺序都需要进行严格控制。
4、 数据处理: 对数据的加工处理是CPU最根本的任务。
此外,CPU还需要对系统内外部的中断(异常)做出响应,进行相应的处理。
CPU主要由运算器、控制器、寄存器组和内部总线等部件组成。
(1)按存储器所处位置分类:内存、外存。
内存也成为主存,用来存放机器当前运行所需要的程序和数据。容量小,速度快。
外存也成为辅存,用来存放当前不参与运行的大量信息。
(2)按存储器的构成材料分类:磁存储器、半导体存储器和光存储器。
(3)按存储器的工作方式分类:读写存储器和只读存储器。
(4)按访问方式分类:按地址访问的存储器和按内容访问的存储器。
(5)按寻址方式分类:随机存储器、顺序存储器和直接存储器。
随机存储器(RAM),可对任何存储单元存储或读取数据,访问任何一个存储单元所需的时间是相同的。
顺序存储器,访问数据所需要的时间和数据所在的存储位置相关,例如磁带。
直接存储器,介于随机存取和顺序存取之间。如磁盘,它对磁道的寻址是随机的,在一个磁道内则是顺序寻址。
磁盘容量有两种指标:一种是非格式化容量,指一个磁盘所能存储的总位数;另一种是格式化容量,指各扇区中数据区容量总和。
非格式化容量=面数X(磁道数/面)X内圆周长X最大位密度
格式化容量=面数X(磁道数/面)X(扇区数/道)X(字节数/扇区)
总线(Bus),是指计算机设备和设备之间传输信息的公共数据通道。总线是链接计算机硬件系统内多种设备的通信道路。
用于传送数据信息,是双向的。
用于传送CPU发出的地址信息,是单向的。传送地址信息的目的是指明与CPU交换信息的内存单元或I/O设备。
用于传送控制信号、时序信号和状态信息等。
CB中的每一条线的信息传送方向是单方向的且确定的,但是CB作为一个整体而言是双向的。凡涉及控制总线CB,均以双向线表示。
(1)USB:由4条信号线组成,两条用于传送数据,两条用于传送电源。
(1)简化系统结构,便于系统设计制造
(2)大大减少了连线数目,便于布线,减小体积,提高系统的可靠性
(3)便于接口设计,所有与总线连接的设备均采用类似的接口
(4)便于系统的扩充、更新和灵活配置,易于实现系统的模块化
(5)便于设备的软件设计,所有接口的软件就是对不同的接口地址进行操作
(6)便于故障诊断和维修,同时也降低了成本
从硬件角度看,输入/输出(I/O)设备是电子芯片、导线、电源、电子控制设备、电机等组成的物理设备。
从软件角度,只关注输入/输出设备的编程接口。
I/O设备可分为块设备和字符设备。
块设备把信息存放在固定大小的块中,每个块都有自己的地址,独立于其他块,可寻址。
字符设备以字符为单位接收或发送一个字符流,字符设备不可以寻址。例如打印机、网卡、鼠标键盘等。
程序控制I/O是指外设数据的输入/输出过程是在CPU执行程序的控制下完成的。分为无条件传送和程序查询两种。
(1)无条件传送:
外设可以无条件地随时接收CPU发来的输出数据,也可以无条件地随时向CPU提供需要输入的数据。
(2)程序查询方式:
通过CPU执行程序来查询外设的状态,判断外设是否准备好接收或者传送数据。
在中断方式下,I/O设备工作时CPU不再等待,而是进行其他的操作。当I/O设备完成后,通过一个硬件中断信号通知CPU,CPU再处理接下来的工作。
用中断方式完成数据的I/O过程为:当系统与外设进行数据交换时,CPU无需等待也不必去查询I/O设备的状态,而是处理其他任务。当I/O设备准备好以后,就发出中断请求通知CPU,CPU接收到信号保存正在执行程序的现场,转入I/O中断服务程序的执行,完成与I/O系统的数据交换,然后再返回被打断的程序继续执行。
相比于程序控制方式,由于CPU无需等待而提高了效率。
数据在内存与I/O设备之间直接成块传送,即在内存与I/O设备间传送一个数据块的过程,不需要CPU的任何干涉,只需要CPU在过程开始启动(即向设备发出“传送一块数据”的命令)与过程结束(CPU通过轮询或中断得知过程是否结束和下次操作是否准备就绪)时的处理。实际操作由DMA硬件直接执行完成,CPU在传送过程可处理别的任务。
一个数在计算机中的表示形式是二进制的话,这个数就叫机器数。
机器数通常是带有符号的(指有正数和负数之分),计算机用最高位存放符号,这个 bit 一般叫做符号位。 正数的符号位为 0, 负数的符号位为 1。
故而一个bit(8字节),有效的取值范围为[-128,127],即 [ 2 7 , 2 7 − 1 ] [2^7,2^7-1] [27,27−1]
十进制数据的二进制表现形式就是原码,原码最左边的一个数字就是符号位,0为正,1为负。
但是原码不能用于负数计算。
为了二进制中的负数计算。
正数的反码是其本身(等于原码),负数的反码是符号位保持不变,其余位取反。 反码的存在是为了正确计算负数,因为原码不能用于计算负数。
但是反码不能用于负数跨零计算,例如-3+5
为了二进制的跨零计算而生。
正数的补码是其本身,负数的补码等于其反码 +1。例如-1的原码是10000001,反码是11111110,补码是11111110