第三章 总线和存储器

第三章 总线和存储器

总线概述

定义:信息传输通道,计算机系统中各个部件之间(甚至各个系统之间)传递信息的一组共享的电导线。

总线系统一般由传输线+接口+总线控制器组成。

电气特性:每根传输线上信号的传递方向和有效电平范围,分为单向总线(单工),双向总线(全双工、半双工)。

最基本的电气特性:在任一时刻,只能有一个方向的信息流动,不允许有相向行为。可以一发一收,一发多收;不能多发一收,多发多收。

挂接在总线上的主设备,在任意时刻只允许有一个主设备向总线上发送数据。

三态逻辑:高电平、低电平、高阻态

  • 高阻等效于将输出的影响从后级电路中移除。
  • 系统总线上往往连接有多个总线主设备,每一个时刻只能有一个总线主设备占用总线,其他总线主设备输出的地址、数据、控制信号必须处于高阻状态

总线仲裁:当总线上有多个候选的主部件同时申请使用总线时,必须有一个总线仲裁机构按照策略对申请进行仲裁。

集中式总线仲裁:

  • 串行/链式查询

    • 优点:链式查询方式优先级固定,设计简单
    • 缺点:对硬件电路的故障敏感,而且优先级不能跳变。当优先级高的部件频繁使用总线时,优先级较低的部件长期不能使用总线。
  • 计数器定时式查询

    • 优点:可以改变优先次序,对电路的故障没有链式敏感

      若每次都从0号设备开始,各个设备的优先级次序同链式查询法相同,此时优先级的次序的顺序时固定的;若每次从中止点之后的设备开始,则每个设备的优先级相等

    • 缺点:增加了控制线数,若设备有 N N N个,则需要的控制线条数为 log ⁡ 2 N + 2 \log_2 N+2 log2N+2

  • 并行/独立请求式查询

    • 优点:

      • 响应速度快,总线允许信号BG直接从控制器发送到有关设备,不必在设备间传递或者查询
      • 对优先次序的控制相当灵活
    • 缺点:

      • 控制线数量多,若设备有 n n n个,则需要 2 n + 1 2n+1 2n+1条控制线。其中+1为BS线,其用处为,用于设备向总线控制部件反馈已经使用完毕总线。
      • 总线的控制逻辑更加复杂

    image-20220104101858423

总线通信

在总线通信中,发出数据的部件称为源部件,接受数据的部件称为目的部件。

基于“无需感知”观点进行总线通信控制的通信称为同步通信

基于“需要感知”观点进行总线通信控制的通信称为异步通信

同步通信:是指参与通信的两个部件之间的信息传送是由定宽、定距的时标来控制的。

每隔一个时标,源部件就向总线发送一个数据,而不对目的部件是否接收到数据进行确认。目的部件每隔一个时标就对总线进行采样来获取数据,而不去确认数据是否已发出,也不向源部件确认收到的数据是正确的。

异步通信:是指参与通信的两个部件需要“感知”对方的操作,这个“感知”是通过“握手信号”实现的,一般用一组应答来进行双发的联络信号。

适合工作速率不同的部件之间相互通信,通信线路受到干扰的场合(长距离)。

异步通信的“握手”协议分为:

  • 单边控制,指通信过程是由源部件或目的部件控制

    image-20220104104301652

    发送端送出数据延迟一段时间后处于数据就绪状态,理想情况是接收端收到就绪状态取走数据。

    image-20220104104311751

    接收端发出数据请求,延迟一定时间后取走数据

  • 双边控制,指通信过程是由源部件和目的部件共同控制

    不互锁只存在一个递推关系,即回应信号是在接到对方的请求信号发出的,请求端不接收回应信号,而是延迟一段时间后自动撤销请求信号。

    实质上就是一种单边控制。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8b7RqyhA-1655600236284)(https://raw.githubusercontent.com/wjrzm/PicGO/main/img/202206190855154.png)]

    半互锁存在两个递推关系,即回应信号是在接到对方请求信号发出的,同时请求信号是在接到对方的回应信号后撤销的。

    安全性更好。

    image-20220104104833731

    全互锁存在三个递推关系,即回应信号是在接到对方的请求信号发出的,同时请求信号是在接到对方的回应信号后撤销的,最后回应信号是在接到对方的请求信号撤销后再撤销。

    安全性最高,但控制麻烦,在网络通信中采用较多。

    image-20220104104856402

总线性能指标

  • 总线宽度:数据总线位数,通常就是数据总线的根数。

  • 总线的时钟频率:即一秒内有多少个时钟,即时钟周期T的倒数。

  • 总线带宽(标准传输率):单位时间上总线上,可以传输的数据位数。
    总线带宽 = 总线工作频率 × 总线宽度   ( b i t / s ) = 总线工作频率 × 总线宽度 8   ( B / s ) = 总线宽度 8 × 总线周期   ( B / s ) \begin{aligned}总线带宽&=总线工作频率 \times 总线宽度 \: (bit/s) \\&= 总线工作频率 \times \frac{总线宽度}{8} \: (B/s) \\&= \frac{总线宽度}{8 \times 总线周期} \: (B/s)\end{aligned} 总线带宽=总线工作频率×总线宽度(bit/s)=总线工作频率×8总线宽度(B/s)=8×总线周期总线宽度(B/s)

  • 单个数据传送周期数

    • 正常模式:传送时先送地址,然后再送数据(即两个工作周期送一个数)

    • 突发模式:只第一个数采用正常方式(两个工作周期),后续数据只需一个工作周期即可(通常满足局部性原理,不需再送地址,地址自动加1即可)

      image-20220104110410145

  • RS232-C:低速率的单端异步串行通讯

    采取不平衡传输方式,其收、发端的数据信号是相对于信号地,抗共模干扰能力差。近距离通讯,只能用于点对点通讯。近距离通信常采用三线连接法(RXD,TXD,GND),可以做到双向传输,全双工通讯。由于RS232-C采用负逻辑,所以与单片机连接时常常要加入电平转换芯片。

    在RS232-C传输中,空闲时是高电平状态,左边数据是LSB,右边数据是MSB。

存储器

存储器:是许多存储单元的集合,用来存放当前运行的程序和数据。

依据冯诺依曼架构原理,所有的程序必须在执行前调入内存中才能执行。因此CPU执行程序时是从内存中取指令和数据的。

存储器基本操作:

  • 读——从内存中取出数据,不破坏原有存储单元的内容
  • 写——将信息存入存储单元中,用现有的信息替代原有的部分

存储器分类:

微信图片_20220104115232

主存储器:用于存放指令和数据,能被CPU直接寻址。

辅助存储器:无法与CPU直接交互,特点是容量相当大,成本低

缓存:位于主存和CPU之间,主要存放正在执行的程序段和相关数据,以便供CPU高速使用;Cache的速度是所有存储器中最高的,容量小,成本高。

存储容量=存储字数 × \times ×字长,每个内存单元能存储8个bit,也就是8个二进制位,称为1个字节

  • 主存与辅存的层次关系:解决计算机容量小的问题
  • 缓存和主存层次关系:解决主机内部速度过慢的问题

当储存超过一个字节的数据时,采用小端模式和大端模式。

小端模式:采用低低,高高的模式。

每个内存单元能存储8个Bit(二进制位),成为一个字节。

每一个储存位都是由类似触发器(Flip Flop)的具有记忆功能的电路组成。

RAM(Random Access Memory)随机读写存储器:可以随机地对其中的各个存储单元进行读和写操作,是计算机系统的主要存储部件。也就是我们常说的内存。

  • 对任意单元的内容地读写所需时间与单元所处的位置无关
  • 储存单元的内容在断电后全部丢失,无法恢复
  • 根据存储电路的工作原理的不同,RAM可以分为静态RAM和动态RAM

**SRAM(Static RAM)**是以双稳态触发器为基础的(电路复杂,成本高),只要不掉电,信息永远不会丢失,不需要刷新电路。

  • 存储信息稳定,只要不断电,没有读写操作,保存的信息恒定
  • 读写操作速度快,接近CPU的速度
  • 功耗较大,集成度低,价格昂贵,一般用作Cache

**DRAM(Dynamic RAM)**是依靠电容来存储信息的,电路简单集成度高,但电容漏电,信息会丢失,故需要专用的电路定期进行刷新。

  • 容量大、功耗较小、速度较慢,被广泛地用作内存。
  • 刷新:将DRAM中存放的每一位信息读出并重新写入地过程。
  • 特点:存储信息不稳定,需要定时刷新,集成度高,价格便宜,一般用作系统的主存储器-内存。

ROM(Read Only Memory)只读存储器:内容只可读出,不可写入,最大优点是所存信息可长期保存,断电时,ROM中的信息不会消失,主要用于存放固定的程序和数据,通常用它存放引导装入程序。

2764的存储容量为8K*8Bits,意味着该芯片的地址线位为13(2^13),数据线为8。

  • 存储器的种类

    ROM存放系统程序,标准子程序和各种常数

    RAM是为了用户编程设置的

存储器扩展

  • 位扩展:增加存储字长

    要求一个1024$\times 8 位的存储器,可以用两片 1024 8位的存储器,可以用两片1024 8位的存储器,可以用两片1024\times$4的芯片进行扩展,在这里地址线并联,数据线串联。

    image-20220104150818843

  • 字扩展:增加存储子的容量

    要求一个64K$\times 8 位的存储器,可以用 4 片 16 K 8位的存储器,可以用4片16K 8位的存储器,可以用416K\times$8位的存储器,多出来的两个地址线用一个2-4译码器接通片选信号。原来的十四根地址线并联在一起。

    image-20220104150905860

  • 判断奇偶地址:判断一个字/字节的奇偶属性只需看第0位,1是奇,0是偶。

存储器与CPU接口

X86访问外设是独立的,ARM则不然。

I/O接口是CPU与外设之间交互的桥梁,内存是数据与程序的仓库。

80x86访问I/O方式:独立I/O地址,与访问内存隔离

MIPS/PowerPC/ARM访问I/O方式:存储器映射式的I/O地址(统一编址)

存储器与I/O芯片寻址的问题:

image-20220104184221244

由138译码器的真值表可知, A 15 = 1 A_{15}=1 A15=1 A 14 = 0 A_{14}=0 A14=0,输出 Y 4 ‾ = 0 \overline{Y_4}=0 Y4=0 A 13 A 12 A 11 = 100 A_{13}A_{12}A_{11}=100 A13A12A11=100,所以存储器的范围为 1010000000000000 ∼ 1010011111111111 1010000000000000 \sim 1010011111111111 10100000000000001010011111111111也就是 A 000 ∼ A 7 F F A000 \sim A7FF A000A7FF

高速缓冲存储器

构成系统主存的大容量存储器是DROM,速度比CPU慢很多,而与CPU速度匹配的SROM价格很高。计算机从内存中取指令和取数是最主要的操作,慢速存储器严重限制了CPU性能的发挥。在CPU和主存之间增加一层少量的静态存储器,此静态存储器即为高速缓存Cache

  • 时间局部性:如果一个信息项正在被访问,那么在近期它很可能还会被再次访问。 如程序循环、 堆栈等。
  • 空间局部性:在最近的将来将用到的信息很可能与正在使用的信息在空间地址上是临近的,如序列代码,数组的元素。

Cache和内存是书桌和书柜的关系。

将Cache与内存都划分成大小相同的页面和块,因此实现主存地址和Cache地址的变换,就是设计如何将主存页面映射到Cache页面上。

具体看PPT上的说法:

  • 直接映射(Direct-mapped):一对一按照序号映射
  • 全相连(Fully associative):主存任意页面可以映射到Cache任意页面
  • 组相连(Set associative):分成若干组,组之间直接映射,组内全相连映射

题目:

  • 总线带宽=总线工作频率*总线宽度
  • 在Cache的地址映射中,若主存中的任意一块均可映射到Cache内的任意一块的位置上,则这种方法称为-全相联映射
  • 在集中式总线仲裁中,独立请求方式响应时间最快
  • 总线周期是指BIU完成一次访问存储器或I/O端口操作所需要的时间
  • 以传输同样多的字为比较条件,则读出数据传输率最高的是-SRAM
  • 用2K*4位的SRAM芯片组成16K字节的存储器,共需SRAM芯片16
  • 有一个微机系统,采用CPU的低10位地址线A0~A9作为输入输出口的地址线,系统中接口芯片内部有16个端口地址,该接口芯片的片选信号由地址译码器产生,则地址译码器的输入地址线一般为A4~A9。(对应着4根地址线,一般选最高位,但是还需要一个片选信号)
  • 容量为1M*1bit的某DRAM芯片,引脚上除了OE、WE、RAS、CAS,电源和地线以外,还有地址线10根数据线1根
  • 在32位的数据总线上读写一个字(32位),当该字起始地址最低两位为00时效率最高
  • 通常构成微机系统内存的RAM主要有SRAM和DRAM两种,与SRAM相比,DRAM的主要技术优点是存储密度高
  • 掉电后,SRAM、DRAM和SDRAM都不能有效保持数据
  • 动态存储器相对于静态存储器的优势在于成本低
  • 地址/数据总线复用的情况下,存储器地址线和CPU地址线引脚需通过地址锁存器相连
  • 与动态存储器相比,静态存储器具有速度快的优势
  • 内存和外存的技术特点主要体现在与CPU的连接方式
  • 在存储器层次结构中,性能由高到低的顺序是Reg>SRAM>DRAM>HDD
  • 数据总线传输数据和状态信息,是双向三态的。
  • 地址总线传输地址信息,是单向三态的。
  • 控制总线传输控制信号,是单向的。

Cache分块

  • 直接映射:一对一按照序号映射,先将主存和Cache以同样大小分块(也成为行),主存再按整个Cache的大小分为若干个区。映射规则:主存某一区第Y块只能装入到Cache的第Y块。
  • 组相连:分成若干组,组之间直接映射,组内全相连映射。即主存和Cache按同样大小分块,Cache分为若干组,如两块一组,主存按Cache组数分区。映射规则:主存任何一区的第n块只能映射至Cache的第n组(直接方式),可以是第n组两块中的任何一块(全相联方式)
  • 全相连模式:主存任意页面可以映射到Cache任意页面。先将主存和Cache以同样大小分块(也称为行)。映射规则:内存中某一块可以装入Cache的任何一块中。(需要记录对应关系)。地址变换表TAG:单元数与Cache块数一致且对应,内容是与Cache块相联主存块号。

组之间直接映射,组内全相连映射。即主存和Cache按同样大小分块,Cache分为若干组,如两块一组,主存按Cache组数分区。映射规则:主存任何一区的第n块只能映射至Cache的第n组(直接方式),可以是第n组两块中的任何一块(全相联方式)

  • 全相连模式:主存任意页面可以映射到Cache任意页面。先将主存和Cache以同样大小分块(也称为行)。映射规则:内存中某一块可以装入Cache的任何一块中。(需要记录对应关系)。地址变换表TAG:单元数与Cache块数一致且对应,内容是与Cache块相联主存块号。

猜你喜欢

转载自blog.csdn.net/wjrzm2001/article/details/125354481