目录
计算机的总线
USB:Universal Serial Bus(通用串行总线)
作用:提供了对外连接的接口
不同设备可以通过USB接口进行连接
连接的标准,促使外围设备接口的统一
总线的分类:
片内总线
芯片内部的总线
连接寄存器与控制器,存储器之间
高集成芯片中的信息传输线
系统总线
数据总线
双向传输各个部件的数据信息
数据总线的位数(总线宽度)是数据总线的重要参数
一般与CPU位数相同(32位、64位)
地址总线
指定源数据或目的的数据在内存中的地址
地址总线位数=n,则寻址范围:0~2^n
控制总线
控制总线是用来发出各种控制信号的传输线
控制信号经由控制总线从一个组件发给另外一个组件
控制总线可以监视不同组件之间的状态(就绪/未就绪)
总线的仲裁
链式查询
好处:电路复杂度低,仲裁方式简单
坏处:优先级低的设备难以获得总线的使用权
对电路故障敏感
计数器定时查询
仲裁控制器对设备编号并使用计数器累计计数
接收到仲裁信号后,往所有设备发出计数值
计数值与设备编号一致,则获得总线使用权
独立请求
每个设备均有总线独立连接仲裁器
设备可单独向仲裁器发送请求和接受请求
当同时收到多个请求信号,仲裁器有权按优先级分配使用权
好处:响应速度快,优先顺序可以动态改变
坏处:线路相对复杂
计算机的输入输出设备
字符输入设备
键盘
薄膜键盘
机械键盘
黑轴、红轴、青轴、茶轴
电容键盘
图形输入设备
鼠标
数位板
输入板和压感笔
扫描仪
将图形信息转换为数字信号
输入输出接口的通用设计
数据线
是I/O设备与主机之间进行数据交换的传送线
单向传输数据线
双向传输数据线
状态线
IO设备状态向主机报告的信号线
查询设备是否已经正常连接并就绪
查询设备是否已经被占用
命令线
发送命令信号
设备选择线
对连在总线上的 设备进行选择
CPU与IO设备的通信
程序中断
当外围IO设备就绪时,向CPU发出终端信号
DMA(直接存储器访问)
当主存与IO设备交换信息时,不需要中断CPU,可以提高CPU的效率
计算机存储器
存储器的分类:
按存储介质:
半导体存储器:内存,u盘,固态硬盘
磁存储器:磁带,磁盘
按存取方式:
随机存储器(RAM):随机读取,与位置无关
串行存储器:与位置有关,按顺序查找
只读存储器:只读不写
存储器的层次结构:
考虑因素:
读写速度,存储容量,价格
性价比单位:容量+价格=>位价:每比特位价格
层次结构:
缓存:速度快,位价高,容量最低
主存:速度适中,位价适中,容量适中
辅存:速度最慢,位价最低,容量最大
主存——缓存层次
原理:局部性原理
实现:在CPU与主存之间增加一层速度快(容量小)的Cache
目的:解决主存速度不足的问题
主存———辅存层次
原理:局部性原理
实现:主存之外增加辅助存储器(磁盘,SD卡,U盘等)
目的:解决主存容量不足的问题
计算机的主存储器与辅助存储器
主存储器——内存
RAM(随机存区存储器)
RAM通过电容存储数据,每隔一段时间刷新一次,所以断电会丢失数据
32位系统:最多支持4GB的内存
64位系统:最多支持2^34GB内存
辅助存储器——磁盘
先来先服务算法
按顺序读取存储信息
最短寻道时间优先
与磁头当前位置有关
优先访问与磁头距离最近的磁道
扫描算法(电梯算法)
每次只往一个方向移动
到达一个方向所需要服务的尽头后才会向反方向移动
循环扫描算法
只会向一个方向扫描,不会到尽头后往反方向移动。
计算机存储器的高速缓存
高速缓存的工作原理
字:只存放在一个存储单元中的二进制代码组合
字块:存储在连续的存储单元中而被看作是一个单元的一组字
主存
一个字有32位
一个字块共B个字
主存共M个字块
B*M=主存总字数
B*M*32=主存容量(bits)
字的地址:包含两部分
前m位指定字块的地址
2^m=B
后b位指定字在字块中的地址
2^b=M
缓存
主存>缓存
存储的逻辑结果类似,容量较小,缓存速度更快
一个字有32位
一个字块共C个字
主存共M个字块
C*M=主存总字数
C*M*32=主存容量(bits)
字的地址:包含两部分
前c位指定字块的地址
2^c=C
后b位指定字在字块中的地址
2^b=M
命中率h
命中率是衡量缓存的重要性能指标
理论上CPU每次都能从高速缓存取数据的时候,命中率为1
计算公式
访问主存次数:Nm 访问Cache次数:Nc
命中率h=Nc/(Nc+Nm)
访问效率e
访问主存时间:tm 访问缓存时间:tc
访问Cache-系统平均时间:ta = htc+(1-h)tm
访问效率::e=tc/ta=tc/htc+(1-h)tm
高速缓存的替换策略
随机算法
先进先出算法——像个队列一样操作
最不经常使用算法——优先淘汰最不经常使用的字块,需要额外的空间记录每个字块的使用频率
最近最少使用算法——优先淘汰一段时间内没有使用的字块
有多种实现方法,一般使用双向链表,把当前访问节点置于链表前面(保证链表头部节点是最近使用)
计算机的指令系统
机器指令的形式
由两部分组成:操作码,地址码
操作码:
操作码指明指令所要完成的操作
操作码的位数反映了机器的操作种类:种类数=2^位数
地址码:
地址码直接给出操作数或操作数的地址
分三地址指令,二地址指令和一地址指令:代表地址码中包含地址的个数
零地址指令
在机器指令中无地址码。
空操作、停机操作、中断返回操作等
机器指令的操作类型
数据传输
寄存器之间、寄存器与存储单元、存储单元之间传送
数据读写、交换地址数据、清零置一操作
算术逻辑操作
操作数之间的逻辑运算
移位操作
数据左移右移,完成数据在算术逻辑单元的必要操作
控制指令
等待指令、停机指令、空操作指令、中断指令
机器指令的寻址方式
指令寻址
顺序寻址、跳跃寻址
数据寻址
立即寻址
指令直接获得操作数
无需访问存储器
优点:速度快
缺点:地址码位数限制操作数表示范围
直接寻址
直接给出操作数在主存的地址
优点:寻找操作数简单
缺点:地址码位数限制操作数表示范围
寻找操作数简单,无需计算数据地址
间接寻址
指令给出的是操作数地址的地址
需要访问一次或多次主存获取操作数
优点:操作寻址范围大
缺点:速度较慢
计算机的控制器
控制器是协调和控制计算机运行的
组成部分:
程序计数器
用来存储下一条指令的地址
循环从程序计数器拿出指令
时序发生器
电气工程领域,用于发送时序脉冲
CPU依据不同的时序脉冲有节奏的进行工作
指令译码器
翻译操作码对应的操作以及控制传输地址对应的数据
指令寄存器
从主存或高速缓存取计算机指令
主存地址寄存器
保存当前CPU正要访问的内存单元的地址
主存数据寄存器
保存当前CPU正要读或写的主存数据
通用寄存器
用于暂时存放或传送数据或指令
可保存ALU的运算中间结果
容量比一般专用寄存器要大
计算机的运算器
用于对数据进行计算加工
数据缓冲器
分为输入缓冲和输出缓冲
输入缓冲暂时存放外设送过来的数据
输出缓存暂时存放送往外设的数据
ALU
算术逻辑单元,是运算器的主要组成部分
完成常见的位运算和算术运算
状态字寄存器
存放运算状态,存放运算控制信息
通用寄存器
用于暂时存放或传送数据或指令
可保存ALU的运算中间结果
容量比一般专用寄存器大