计算机组成原理-03-计算机的组成(一)
总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是cpu、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。
假设没有总线这种设计,计算机设备都是分散连接的,如下图:
此时如果新增了一个输入设备2,此时需要分别连接存储器、控制器、运算器,设备一多线路就会十分复杂。
有了总线之后,设备直接连接总线,使得计算机内部结构变得十分清晰,设备的添加和卸载也变得容易。
系统中多个设备或模块可能同时申请对总线的使用权,为避免产生总线冲突,需由总线仲裁机构合理地控制和管理系统中需要占用总线的申请者,在多个申请者同时提出总线请求时,以一定的优先算法仲裁哪个应获得对总线的使用权。
总线授权信号BG串行地从一个I/O接口传送到下一个I/O接口。假如BG到达的接口无总线请求,则继续往下查询;假如BG到达的接口有总线请求,BG信号便不再往下查询,该I/O接口获得了总线控制权。离中央仲裁器最近的设备具有最高优先级,通过接口的优先级排队电路来实现。
好处:只用很少几根线就能按一定优先次序实现总线仲裁,很容易扩充设备。
坏处:对询问链的电路故障很敏感,如果第i个设备的接口中有关链的电路有故障,那么第i个以后的设备都不能进行工作。查询链的优先级是固定的,如果优先级高的设备出现频繁的请求时,优先级较低的设备可能长期不能使用总线。
总线上的任一设备要求使用总线时,通过BR线发出总线请求。中央仲裁器接到请求信号以后,在BS线为“0”的情况下让计数器开始计数,计数值通过一组地址线发向各设备。每个设备接口都有一个设备地址判别电路,当地址线上的计数值与请求总线的设备地址相一致时,该设备 置“1”BS线,获得了总线使用权,此时中止计数查询。
每次计数可以从“0”开始,也可以从中止点开始。如果从“0”开始,各设备的优先次序与链式查询法相同,优先级的顺序是固定的。如果从中止点开始,则每个设备使用总线的优先级相等。
计数器的初值也可用程序来设置,这可以方便地改变优先次序,但这种灵活性是以增加线数为代价的。
每一个共享总线的设备均有一对总线请求线BRi和总线授权线BGi。当设备要求使用总线时,便发出该设备的请求信号。中央仲裁器中的排队电路决定首先响应哪个设备的请求,给设备以授权信号BGi。
独立请求方式的优点:响应时间快,确定优先响应的设备所花费的时间少,用不着一个设备接一个设备地查询。其次,对优先次序的控制相当灵活,可以预先固定也可以通过程序来改变优先次序;还可以用屏蔽(禁止)某个请求的办法,不响应来自无效设备的请求。
缺点:设备连线多,总线控制复杂。
鼠标、键盘、扫描仪、显示器等。
CPU和IO设备的速度是不一致的
提供低速设备通知CPU的一种异步的方式,CPU可以高速运转同时兼顾低速设备的响应。
当外围IO设备准备就绪时,向CPU发送中断信号,CPU内部有专门的电路响应中断信号,CPU收到中断信号后就会中断当前工作转为处理外围设备的工作。待工作完成后,CPU加载之前的工作,继续处理。
当主存与IO设备交换信息时,不需要中断CPU,可以提高CPU的效率。一般计算机的硬盘与显卡都有DMA设备。
利用了局部性原理,在CPU和主存之间增加了一层速度快(容量小)的Cache,目的是为了解决主存速度不足的问题。
将程序经常访问的内存置换到高速缓存即可。
利用了局部性原理,在主存之外增加辅助存储器,目的是解决主存容量不足的问题。
将程序当前使用的数据加载到主存,不使用的数据加载到辅存。
RAM(随机存取存储器:Random Access Memory)
RAM通过电容存储数据,必须隔一段时间刷新一次
如果掉电,那么一段时间后将丢失所有数据
32位系统主存大小为:2^32 =4×2^30 =4𝐺𝐵
64位系统主存大小为:2^64 = 234 × 2^30 = 2^34𝐺𝐵
表面是可磁化的硬磁特性材料
移动磁头径向运动读取磁道信息
先来先服务算法 :按顺序访问进程的磁道读写需求
最短寻道时间优先:与磁头当前位置有关,优先访问离磁头最近的磁道
扫描算法(电梯算法) :每次只往一个方向移动,到达一个方向需要服务的尽头再反方向移动
循环扫描算法:每次只往一个方向移动,到尽头后回到初始位继续扫描
在存储器的层次结构中,高速缓存在CPU和主存之间,主要是为了解决CPU和主存速度不匹配的问题。
在往下看之前,先了解下下面的概念:
高速缓存的结构和主存类似,但是主存的容量是远大于缓存的容量。
缓存中存储的数据是主存中的一份复制,当CPU需要的数据在缓存中,直接从缓存里拿,当CPU需要的数据不在缓存中,则需要从主存里拿。
所以就有了两个量化指标:
命中率 :命中缓存的次数占CPU访问次数的比例
访问效率 :访问缓存时间和访问缓存-主存平均时间之比
当CPU所需要的数据不在高速缓存中时,就需要从主存载入数据到高速缓存。一般有四种替换策略。
随机选取高速缓存中的一个位置再替换
把高速缓存看做是一个先进先出的队列,优先替换最先进入队列的字块
优先淘汰最不经常使用的字块,需要额外的空间记录字块的使用频率
优先淘汰一段时间内没有使用的字块
有多种实现方法,一般使用双向链表,把当前访问节点置于链表前面(保证链表头部节点是最近使用的)
2018-08-21 广告