小奥的学习笔记

  • Home
  • Learning & Working
    • Speech Enhancement Notes
    • Programming language
    • Computer & DL
    • MOOC
  • Life
    • Life Time
    • Thinking & Comprehension
    • Volunteer
    • Plan
    • Travel
  • Footprints
  • GuestBook
  • About
    • About Me
    • 个人履历
    • 隐私策略
  1. 首页
  2. Study-notes
  3. Computer & DL
  4. Linux
  5. 正文

计算机组成原理笔记第三章

2018年9月16日 1704点热度 1人点赞 0条评论

3.1 总线的基本概念

一、为什么要用总线?

为了实现不同部分之间的连接。另外如果分别使用不同的线,那么成本非常高,难度也非常大,设备之间的接口要占用大量的空间,如果要新增一个模块,那么就要增加N束线,所以又不能用分散连接。所以使用总线(BUS)。

二、什么是总线?

总线是连接各个部件的信息传输线,是各个部件共享的传输介质。

三、总线上信息的传送

包括串行和并行。不再做解释。通常情况下,并行距离比较短,串行距离比较长。

四、总线结构的计算机举例

1.单总线结构框图

图1.1 单总线结构图

把所有部件都连接到1个总线上。但是它存在以下问题:

(1)同一时刻只能一个部分使用总线,这会成为整个系统的瓶颈。如果主存在和一个I/O设备传输的话,主存和CPU就无法进行传输,那实际上,如果不采取措施,在主存和I/O进行传输的时候,CPU的工作就无法进行,严重影响CPU运行效率;

(2)若总线较长,则远端设备向主存传输信息,时间延时也会比较长;

(3)总线争用。

2.面向CPU的双总线结构框图

图1.2 面向CPU的双总线结构

这种方法解决了CPU与主存传输、主存与I/O传输两者的冲突,但是也存在问题:如果主存想和I/O设备进行数据传输,那么主存无法和I/O设备直接进行传输,只能通过CPU来作为中介进行传输,一旦发生外部设备与主存进行传输,那么CPU还是会无法运行。

3.以存储器为中心的双总线结构框图

图1.3 以存储器为中心的双总线结构框图

本框图解决了图1.1、图1.2框架的问题。但是现代技术来说,这个框架仍然有问题,CPU、主存无法同时和I/O接口进行传输数据(目前采用的是分时传输)。

3.2总线的分类

从位置可分为:

1.片内总线:芯片内部的总线。

2.系统总线:计算机各部件之间的信息传输线,包括:

(1)数据总线:双向,与机器字长、存储字长有关;

(2)地址总线:单向,与存储地址、I/O地址有关;

(3)控制总线:有出(中断请求、总线请求),有入(存储器读、存储器写,总线允许、中断确认)。

3.通信总线:用于计算机系统之间或计算机系统与其他系统之间的通信。

从传输方式可分为串行通信总线和并行通信总线。

3.3 总线的特性及性能指标

一、总线物理实现

图3.1 总线的物理实现

总线就是在主板上的,CPU、主存等都是通过接口与总线相连的。

二、总线特性

1、机械特性:尺寸、形状、管脚数及排列顺序;

2.电气特性:传输方向和有效电平范围;

3.功能特性:每条传输线的功能(地址、数据、控制);

4.时间特性:信号的时序关系。

三、总线的性能指标

1.总线宽度:数据线的根数;

2.标准传输率:每秒传输的最大字节数(MBps);

3.时钟同步:同步、不同步;

4.总线复用:地址线与数据线复用;

5.信号线数:地址线、数据线和控制线的总和;

6.总线控制方式:突发、自动、仲裁、逻辑、计数;

7.其它指标:负载能力(能挂载多少I/O设备)。

四、总线标准

图3.2 总线标准

3.4 总线结构

一、单总线结构

如图1.1所示。

二、多总线结构

1.双总线结构

除了图1.2、图1.3所示类型,还有其他类型。如下:

4.1 双总线结构的一种框图

通道有自己的控制系统,能执行一些简单的程序。通道的程序是由操作系统编写,而不是程序员编写。

2.三总线结构

图4.2 三总线结构(1)

三总线是:I/O总线、DMA总线(直接内存存取)、主存总线。DMA是外部设备直接访问主存。但是一些高速设备和主存进行存取,是通过DMA总线,低速设备依旧需要通过I/O总线。

3.三总线结构形式2

图4.3 三总线结构(2)

上面是一条局部总线,CPU和主存的交换是最大的,但是CPU发展速度很快,但是主存性能提高很慢,为了解决这个问题,添加了一个小容量、高速的Cache。还有一个局部I/O控制器,连接一些高速的I/O设备。各种设备都可以连接到扩展总线上。但是看到多种传输速度的设备都连接到了扩展总线上,是会影响外部设备工作速度。

4.四总线结构

图4.4 四总线结构

四总线包括:局部总线、系统总线、高速总线、扩展总线。局部总线实现了CPU和Cache/桥的连接,系统总线实现了主存和Cache/桥的连接。Cache/桥扩展出高速总线,所有高速设备都连接到高速总线上。高速总线拓展出一个拓展总线接口,与之相连一个扩展总线,所有低速设备连接到这个总线上,通过扩展总线接口逐步连接到Cache/桥上。这种方式把高速设备和低速设备,使得传输速率可以更高。

三、总线结构举例

1.传统微型机总线结构

图4.5 传统微型机总线结构

CPU和存储器通过系统总线相连接,通过标准总线控制器可以拓展与其他控制器相连接。

2.VL-BUS局部总线结构

图4.6 VL-BUS局部总线结构

3.PCI总线结构

图4.7 PCI总线结构

4.多层PCI总线结构

图4.8 多层PCI总线结构(PCI总线能力不够的情况下)

3.5 总线控制

一、总线判优控制

因为总线在同时只能有一个设备控制,若两个或两个以上设备申请使用总线则会产生冲突。所以需要研究总线的判友控制。

1.基本概念

主设备(模块) 对总线有控制权

从设备(模块) 响应从主设备发来的总线命令

总线判优控制分为两类,其一是集中式(链式查询、计数器定时查询、独立请求方式),其二是分布式。

2.集中式——链式查询方法

图5.1 链式查询方式

总线控制部分是集中在一起的,这是集中式总线判优控制的典型特征。另外还有数据总线用于信息交换数据传输,还有地址总线,主设备占用了总线之后,要通过地址总线找到从设备。再另外,还有三条很重要。

一条是BR(总线请求),所有设备都从这条线发出总线占用或者总线使用的请求。

BS(总线忙),如果某个设备占用了总线控制权,那么就通过这个信号告诉其它部件总线忙。

BG(总线同意,这是链式查询的特征地方),是一个一个向下查询。如果I/O接口n想要占用总线,它会向总线控制部件提出占用请求,总线控制部件接受请求后,并且此时可以让出控制权给该I/O设备控制的时候,总线要通过BG逐个向下查询。

在多个I/O接口向总线控制部件提出控制请求后,首先查I/O接口0,看它是否提出了请求,如果它提出了,那么总线使用权限就给了0,如果0没有提出,那么就继续往下传递,直到第一个提出总线占用请求的设备(此时假设第一个提出的是1),然后I/O接口1发出BS表示总先忙,然后开始传输信息。

这个方式有以下特征:

(1)各个设备占用总线的优先级确认方式:优先级和BG的查询顺序有直接关系,,这个连接顺序是固定好了的,谁靠近控制部件近,谁优先,这样的话距离较远的设备可能永远都得不到使用总线的权限。

(2)对询问链的电路故障很敏感,如果第i个设备的接口中有关链的电路有故障,那么第i个以后的设备都不能进行工作。

(3)结构简单,一共3条线,增删设备非常容易,可以向后一直排下去,进行可靠性设计的时候比较容易实现。

(4)速度较慢

用在微型计算机或者简单嵌入式系统中。

3.计数器定时查询方式

图5.2 计数器定时查询方式

首先它还是有数据线和地址线,另外还有一条线是设备地址,实际上这条线就是这种方式名称的来源,这上面传输的地址是计数器给出的,用这种方式来查询某个设备是否发出了设备请求,当然BS和BR还是有的。

总线控制部件里面有一个计数器(初值任意),如果某个主设备想占用总线和从设备进行信息传输,它通过BR这条向控制部件提出总线控制请求。总线控制部件在总线可以被控制的情况下就会启动计数器,计数器的值是通过设备地址这条线向外传输,计数器给出哪个值,就对哪个接口进行查询,看哪个接口有提出使用总线请求,若没有则自动对计数器加1,直到找到那个提出请求的,然后此接口被选中,通过BS发出信号,然后开始工作。

这种方法的特点:

(1)优先级确定灵活,既可以是事先确定(计数器初始化为定值或者上一次停止时候的值),也可以是随机的(计数器初始化随机);

(2)这种方式少了BG,多了一个设备地址线(条数和设备数有关系,有logn条),总的来说线条数为(logn)+2条

4.独立请求方式

前两种都是按照顺序来查找的,速度比较慢。独立请求方式改变了这种情况,速度更快。如下图所示。

图5.3 独立请求方式

每个设备都有BR和BG两条线。优先级的排队是用排队器来实现的。优先级的设置是非常灵活,可以人为直接设置,也可以用自适应的方式,也可以采用计数器的方式等。这种方式用线太多,需要2n条线。

二、总线通信控制

1.基本概念

总线通信控制是为了解决通信双方协调配合的问题。总线传输周期有以下过程:

①申请分配阶段:主模块申请,总线仲裁决定。

②寻址阶段:主模块向从模块给出地址和命令。

③传数阶段:主模块和从模块交换数据。

④结束阶段:主模块撤销有关信息。

2.总线通信的四种方式

(1)同步通信:由统一时标控制数据传送。

(2)异步通信:采用应答方式,没有公共时钟标准。

(3)半同步通信:同步、异步结合。

(4)分离式通信:充分挖掘系统总线每个瞬间的潜力。

3.同步通信

(1)同步式数据输入

图5.4 同步式数据输入时序图

加入CPU通过同步的方式从外部设备进行数据输入,同步的特点是由一个定宽定距的的时标来进行控制,如图所示这个,整个总线周期由4个时钟周期组成。在固定时间点上进行固定操作。在T1上升沿,CPU(主设备)必须给出地址信号,在T2上升沿,必须给出读命令信号,告诉从设备要读数据了,在T3上升沿之前,从设备必须给出数据让主设备读取。T4的上升沿读命令和数据撤销,在T4结束的时候,地址命令也撤销。

(2)同步式数据输出

图5.5 同步式数据输出时序图

同步式数据数据与同步式数据输入类似,不再累述。

在同步模式中,主设备和从设备的时钟是强制统一的,因此在速度不同的设备时,要选择最慢的模块作为时钟标准进行设计。这种方式用在总线比较短,各个模块存取时间比较一致的情况下。

4.异步通信

图5.6 异步通信模式图

主设备发起此次通信。主设备和从设备之间没有定宽定距的时标,但是多了两条线——发出请求线和应答线。异步通信有三种方式,分别是不互锁、半互锁和全互锁。

下面来看一下第一种方式,不互锁。主设备发出请求,从设备接收到通信请求后进行应答,之后主设备撤销请求信号,从设备撤销应答信号。在这个过程中,主设备不管是否接收到应答信号,在经过一段时间后都会撤销请求信号,从设备也不管主设备是否接收到应答信号,一段时间后会撤销应答信号。这种方式可靠性有问题。

接下来看半互锁。主设备发出请求,从设备接收到请求后发出应答信号,主设备接收到应答信号后会撤销请求信号,如果没有接收到,会一直发出请求信号。但是从设备不管主设备是否接收到应答信号,一段时间后会撤销应答信号。有可能造成请求信号一直高电平。

最后看全互锁。主设备发出请求,从设备接收到请求后发出应答信号,只有主设备接收到应答信号后会撤销请求信号,同样,只有主设备的请求信号撤销以后,从设备才会撤销应答请求。

5.半同步通信(同步、异步结合)

同步特征:有一个定宽定距的时标。发送方用系统时钟前沿发信号;接收方用系统时钟后沿判断、识别。

异步特征:允许不同速度的模块和谐工作,为了协调快慢,增加一条“等待”响应信号(WAIT)

以输入数据为例的半同步通信时序,如图所示。

图5.7 半同步通信时序图

上述三种通信的共同点:

一个总线传输周期(以输入数据为例)

(1)主模块发地址、命令:占用总线。

(2)从模块准备数据:不占用总线,总线空闲。

(3)从模块向主模块发数据:占用总线。

我们说总线连接了多个模块,总线的传输能力是系统的瓶颈。而在这个过程中中间这个步骤总线是空闲的,对总线资源来说是一种浪费。

6.分离式通信

充分挖掘系统总线每个瞬间的潜力。

一个总线传输周期:

(1)子周期1:主模块申请占用总线,使用完后即放弃总线的使用权。

(2)子周期2:从模块申请占用总线,将各种信息送至总线。

分离式通信特点:

(1)各模块有权申请占用总线;

(2)采用同步方式通信,不等对方回答;

(3)各模块准备数据时,不占用总线;

(4)总线被占用时,无空闲。

充分提高了总线的有效占用!

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 计算机组成原理
最后更新:2018年9月16日

yszhang

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

搜索
欢迎关注我的个人公众号
最新 热点 随机
最新 热点 随机
DEEPFILTERNET:一种基于深度滤波的全频带音频低复杂度语音增强框架 奥地利匈牙利九日游旅程 论文阅读之Study of the General Kalman Filter for Echo Cancellation 小奥看房之鸿荣源珈誉府 杭州往返旅途及西溪喜来登和万怡的体验报告 2022年的第一篇碎碎念
奥地利匈牙利九日游旅程论文阅读之Study of the General Kalman Filter for Echo CancellationDEEPFILTERNET:一种基于深度滤波的全频带音频低复杂度语音增强框架
个人日记-091222 《鸟哥的Linux私房菜》(基础篇)笔记整理(第19章)Part.1 Leetcode题目解析(191105) 我校举办“我的世园,我的志愿”对话交流活动 C语言程序学习网站 随机漫步模型之python实现
标签聚合
高中 Java linux Python 生活 学习 python学习 算法 leetcode 鸟哥的linux私房菜
最近评论
davidcheung 发布于 6 个月前(02月09日) The problem has been fixed. May I ask if you can s...
tk88 发布于 6 个月前(02月07日) Hmm is anyone else having problems with the pictur...
cuicui 发布于 10 个月前(10月20日) :wink:
niming 发布于 11 个月前(09月19日) 同级校友,能刷到太巧了
davidcheung 发布于 2 年前(08月16日) 我得找一下我之前整理的word文档看一下,如果找到了我就更新一下这篇文章。
Nolan 发布于 2 年前(07月25日) 您的笔记非常有帮助。贴图不显示了,可以更新一下吗?
davidcheung 发布于 3 年前(06月19日) 到没有看webrtc的代码。现在主要在看我们公司的代码了。。。只是偶尔看一看webrtc的东西。。。
aobai 发布于 3 年前(03月13日) gain_change_hangover_ 应该是每三个block 只能够调整一次,这样保证每帧...
匿名 发布于 5 年前(12月30日) 烫
小奥 发布于 5 年前(12月12日) webRTC里面的NS本身我记得就是在C++里面呀

COPYRIGHT © 2025 小奥的学习笔记. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

陕ICP备19003234号-1

鲁公网安备37120202000100号