计组期末版

第一章 计算机系统概论

1.计算机的发展史

  • 电子管计算机:使用机器语言,逻辑元件采用电子管;
  • 晶体管计算机:使用高级语言、磁心储存器,逻辑元件采用晶体管;
  • 项目中小规模集成电路计算机:产生分时操作系统、半导体储存器,逻辑元件采用中小规模集成电路;
  • 超大规模集成电路计算机:产生微处理器,产生并行、流水线、高速缓存、虚拟内存的概念
    :微处理器技术是微型计算机发展的标志

2.计算机硬件的组成

  • 组成部件:运算器、控制器、存储器、输入设备、输出设备

  • 冯 · 诺依曼机——存储结构的机器
    体系结构:单指令流和单数据流系统(SISD)
    特点:
    指令和数据以同等地位储存在储存器中,可按地址寻访

    指令、数据均用二进制代码表示

    指令由操作码和地址码组成

    指令在储存器内按顺序存放

    早期机以运算器为中心,运算器控制器分离;

    新机以储存器为中心,储存器与运算器集合在CPU上

  • 存储器
    用途:存放程序和数据
    分类
    主存储器(内存储器)——CPU可直接访问
    辅助存储器(外存储器)——信息必须调入主存后才可被CPU访问
    地址寄存器(MAR):存放访存地址,经译码后找到所选的存储单元,反映了存储单元的个数
    数据寄存器(MDR):暂存从存储器中读写的信息,主存与外部件的中介,反映了存储字长

  • 运算器

    • 用途:对数据进行加工处理完成算数/逻辑运算
    • 组成
      逻辑运算单元(ALU):运算器的核心
      通用寄存器:用于暂存操作数和中间结果
      累加器(ACC)
      乘商寄存器 (MQ):乘法中保存乘数,除法中保存商
      操作数寄存器(X)
      程序状态寄存器(PSW):保留各类运算/测试指令的结果的各类状态信 息,表征系统的运行状态
  • 控制器
    • 用途
      解释指令:取址 → 分析 → 取操作数 → 执行指令 → 保存结果
      保证指令的按序执行
    • 组成
      程序计数器(PC):用于存放当前欲执行指令的地址,可自动加1形成下一条指令的地址,与MAR之间有一条直接通路
      指令寄存器(IR):用于存放当前的指令,接收来自MDR的指令信息;
      控制单元(CU):用于分析指令并发出各种微操作命令序列;
      指令组成
      操作码OP(IR):用于表示操作的性质,由IR发送至CU;
      地址码Ad(IR):表示操作数在存储器中的位置,由IR发送至MAR

3.计算机的层次系统

  • 多级组成的计算机系统

    • 微程序设计级或逻辑电路级—直接由硬件执行
    • 一般机器级—微程序
    • 操作系统级—操作系统
    • 汇编语言级—汇编程序
      汇编语言和机器语言(计算机可以直接识别的语言)是一一对应的
    • 高级语言级—编译程序
  • 常见的计算机语言处理程序:

    软件与硬件在逻辑功能上是等效的(等价是否正确?)

4.计算机的性能指标(重点)

运算速度

  • 吞吐量:指系统在单位时间内处理请求的数量,是评价计算机系统性能的综合参数。(取决于信息输入内存的速度、CPU取指令、数据从内存取出或存入、所得结果从内存送到外部设备的速度。)以上四步均与主存有关,系统吞吐量主要取决于贮存的存取周期

  • 响应时间:指用户向计算机发送一个请求,到系统对该请求作出响应并获得所需结果的等待时间(包括CPU时间、等待时间)

  • CPU时钟周期:通常为节拍脉冲或 T周期,即主频的倒数。是CPU中最小的时间单位

  • 主频(CPU时钟频率):机器内部主时钟的频率,是衡量机器速度的重要参数。对同一型号计算机,主频越高,完成指令的一个执行步骤所用时间越短,执行指令的速度越快(以MHz为单位,1Hz表示每秒一次)

CPI:执行一条指令所需的时钟周期数
IPC:一个时钟周期内可执行的指令数量
MIPS:每秒执行多少百万条指令
MIPS=指令条数/(执行时间×10^6)=主频/CPI

MFLOPS:每秒执行多少百万次浮点运算

CPU执行时间(是CPU性能的代表)tc
定义:只运行一个程序所花的时间
公式:tc =CPU时钟周期数/主频=(指令条数×CPI)/主频
觉得这样看更舒服点:指令条数×执行一条指令所需的时钟周期数(CPI)×T

例题:

第二章 数据的表示与运算

1.关于原码·补码·移码

在这里插入图片描述
这里需要注意的是为什么补码和移码的 0 只有一种表示方法:根据定义可知[+0]=[-0]=0.0000,由定义[-1]补=10.0000-1.0000=1.0000,可见对于小数,补码比原码多表示一个-1

在这里插入图片描述
原码,反码,补码,移码其关系如下:
在这里插入图片描述

2.定点数的运算

  • 移位运算(算术移位,逻辑移位(~unsigned))
    • 算术移位
      正数:+0
      负数:原码+0
      补码 左移+0,右移+1
    • 逻辑移位
      +0
  • 加减法运算(写例题吧,感觉效果更快一点)
    在这里插入图片描述

[学习通习题]
某八位计算机中,假定x和y是两个带符号整数变量,用补码表示,[x]补=44H,[y]补=DCH,则x-2y的机器数以及相对应的溢出标志OF分别是:

A、8CH,0
B、68H,1
C、8CH,1
D、68H,0
在这里插入图片描述

3.关于溢出

  • 常见标志位

    一、溢出OF标志位的判定。

      OF是有符号数溢出标志。
    
      OF=Cn⊕Cn-1(Cn表示第n位的进位,Cn-1表示第n-1位的进位,OF=0无溢出,OF=1有溢出)。
    

    二、进位CF标志位的判定。

      CF是无符号数溢出标志。
    
      CF=Cn⊕Sub(Cn表示第n位的进位,Sub表示做减法)。
    

    三*、符号SF标志位的判定。

      如果计算结果的最高位是1,SF=1,否则,SF=0。
    

    四*、零ZF标志位的判定。

      如果计算结果的所有位是0,ZF=1,否则,ZF=0。
    
  • 算术左移的溢出
    补码:当数据的最高位和符号位不同时,此时进行算术左移会导致符号的变化,从而超出该数据设定的范围大小(造成溢出)。

【栗1】
数位每左移1位相当于原数乘以2,为防止左移操作造成溢出,补码左移的前提条件是:其原最高有效位
A.为0 B.为1 C.与原符号位相同 D.与原符号位相异 答案: C
【栗2】
某字长为8 位的计算机中,已知整型变量 x、 y 的机器数分别为[x]补=1 1110100, [y]补=10110000。若整型变量 z=2*x+y/2,则 z 的机器数为( )。
解:x的补码算术左移为11101000,y的补码算术右移为11011000, 两者相加可得111000000。可知符号位产生的进位为1,最高有效位产生的进位也为1,两者相同,则无溢出。 最高一位1丢掉得最终结果11000000。

第三章 存储系统

本章总览
在这里插入图片描述

1.存储器的分类

在这里插入图片描述
在这里插入图片描述
半导体SRAM靠触发器存储信息,半导体DRAM靠电容存储信息。

【RAM】DRAM和SRAM都是随机存储器(断电后信息丢失);但SRAM是非破坏性读出(无需刷新),注意:如果说RAM都是非破坏性读出则错(DRAM是破坏性读出)。
DRAM刷新方式:集中刷新、分散刷新

学习通习题
DRAM结构512×512,如果刷新周期为8ms,对于分散式刷新,每隔多久进行一次刷新? [8ms/512=0.015625ms]

【ROM】FLASH同时具有ROM和RAM特性(Flash属于只读存储器ROM,但又可以随时改写其中的信息——相当于RAM)

双端口RAM
在这里插入图片描述

2.存储器性能指标

  • 存储容量=存储字数×字长
  • 单位成本:每位价格=总成本/总容量
  • 存储速度:数据传输率=数据的宽度/存储周期
    • 存取时间:从启动一次存储器操作到完成该操作所经历的时间,分为读出时间和写入时间。
    • 存取周期:(读写周期/访问周期)存储器进行一次完整的读写操作所需的全部时间,即连续两次独立访问存储器操作之间的最小时间间隔。
    • 主存带宽:(数据传输率)美妙从主存进出信息的最大数量(B/s)
      在这里插入图片描述
      16MB在这里插入图片描述
      解:16MB = 2^24B,由于按照半字寻址(16b=2B),所以 2^24B / 2B=2^23

3.存储器容量扩充

  • 位扩展法:将多个存储芯片的地址段、片选端、和读写控制端相应并联,数据段分别引出。
    在这里插入图片描述
  • 字扩展法:增加存储器中字的数量而位数不变。字扩展器将芯片的地址线、数据线、读写控制线相应的并联,由片选信号来区分地址范围。
  • 在这里插入图片描述
  • 字位同时扩展:实际上,存储器往往需要同时扩充字和位。字位同时扩展是指既增加存储字的数量,又增加存储字长。

如图3.10所示,用8片16Kx4位的RAM芯片组成64Kx8位的存储器。每两片构成一组16Kx8位的存储器(位扩展),4组便构成64K>8位的存储器(字扩展)。地址线A1sA14经译码器得到4个片选信号,A1sA14=00时, 输出端0有效,选中第一组的芯片(①和②); AIsA14=01时, 输出端1有效,选中第二组的芯片(③和④),以此类推。
在这里插入图片描述
学习通习题
用2K×16位/片的SRAM存储器芯片设计一个8K×32位的存储器,已知地址总线为A0-A12,数据总线为D0-D31,WE为读写控制信号。

问:

(1)共需几片芯片构成存储器?
(2)请画出该存储器芯片级逻辑图,注明各种信号线,列出片选信号。
在这里插入图片描述

学习通习题
设存储器容量为32字,字长64位,模块数m = 8,分别用顺序方式和交叉方式进行组织。若存储周期T = 200ns,数据总线宽度为64位,总线传送周期为50ns,则顺序存储器和交叉存储器带宽各是多少?
在这里插入图片描述

4.交叉编址&流水线

cache
cache是一种高速缓冲器,是为了解决CPU和主存之间速度不匹配而采用的重要技术。(虽然低位交叉编织优化了速度不匹配的问题,但是优化后的速度和CPU的差距依然很大,所以需要更高速的储存单元)

低位交叉编址:(交叉方式)可通过流水线并行存取,提高存储器带宽(提高储存器的工作速度,eg:m个模块组成的低位交叉编址储存器,可以将带宽提升为m倍)。
高位交叉编址:(顺序方式)访问一个连续主存块时,总是现在一个模块内访问,等到该模块访问完才转到下一个模块访问,CPU总是按顺序访问存储模块,存储模块不能被并行访问,因而不能提高存储器的吞吐率。
PS:高位多体交叉存储器虽不能满足程序的连续读取,但仍可能一次连续读出彼此地址相差一个存储体容量的4个字(只是这么读的概率较小 、期末不考)。


在这里插入图片描述
在这里插入图片描述

5.cache地址映射

cache中存储的内容:标记项+数据
标记项:主存字块标记,有效位…

三种映射

主存块号=主存地址中除了字块内地址外的部分,即下图中在主存右边标出的编号。
拆分方法:如果是二进制就数“高位”;如果是十进制(用主存地址÷块大小=主存块号....字块内地址),本质方法都一样,二进制除法就是移位。 主存块号 ÷ Cache块数 = 主存字块标记....Cache块号

学习通习题】设有一个Cache的容量为2K字,每个块16字,求

(1)该Cache可容纳多少块?

(2)如果主存的容量为256K字,则有多少块?

(3)主存的字地址有多少位?

(4)Cache字地址有多少位?

(5)直接映像方式下,主存中的198块映像到Cache中的哪一块中?

(6)进行地址映像时,存储器的地址分成3段,各段分别为多少位?(书写数字时逗号间隔)
在这里插入图片描述

学习通习题
CPU执行一段程序时,cache完成存取的次数为1900次,主存完成存取的次数为100次,已知cache存取周期为50ns,主存存取周期为250ns,cache-主存系统的效率为(),平均访问时间为()。
在这里插入图片描述

cache的命中率:CPU欲访问的信息已经在Cache中的比率(缺失率M=1-H)。
设一个程序执行期间Cache的总命中次数为Nc,访问主存的次数为Nm,则【Cache的命中率】H=Nc/(Nc+Nm
设tc为命中时Cache的访问时间,tm为未命中时的访问时间,则Cache-主存系统的平均访问时间Ta=Htc+(1-H)tm
Cache系统的访问效率e=tc/Ta
在这里插入图片描述
例题1:假设cache的速度是主存的5 倍,且cache的命中率为95%,采用cache后,储存性能提高多少(设cache和主存同时被访问,若cache命中则中断访问主存)

解:设cache的存取周期为t,则主存的存取的周期为5t ,故系统的平均访问时间为Ta=0.95t+0.055t=1.2t
设每个周期可以存取的数据量为S,则存储系统带宽为S/1.2,不采用cache时带宽为S/5t,
故性能提升为原来的(s/1.2t)/(s/1.5t)=5t/1.2t=4.17,提高了3.17倍记得-1
系统的效率e=t/1.2t=83.3%
若采用先访问cache在访问贮存的方式,不命中时,访问cache耗时为t,发现不命中在访问主存耗时为5t,共6t。
故系统的平均访问时间为Ta=0.95t+0.056t=1.25t,性能为原来的5t/1.25t=4,提高了3倍。

例题2:CPU 执行一段程序时, cache 完成存取的次数为5000次,主存完成存取的次数为200次。已知 cache 存取周期为40 ns ,主存存取周期为160 ns 。求:
1.Cache 命中率 H
2.平均访问时间 Ta
3.Cache /主存系统的访问效率 e 。【答案26/29】

第四章 指令系统

1.指令格式

在这里插入图片描述

注意:

1.指令长度和机器字长没有固定关系,可以 > < =

2.指令的操作类型: 数据传送、算术和逻辑运算、移位操作、转移操作、输入输出操作
[栗]
在这里插入图片描述
中断隐指令: 由硬件自动完成,并不是指令系统中存在的指令

特权指令: 仅用于操作系统或其他系统软件的指令,为确系统与数据保安全起见,这类指令不提供给用户使用。在这里插入图片描述

2.扩展操作码格式

  • 定长操作码:在指令字的最高位部分分配固定的若干位(定长)表示操作码。一般n位操作码字段的指令系统最大能够表示2n条指令。(可以简化计算机硬件设计)
  • 变长操作码:最常见的方法是扩展操作码
    • 注意:
      1.不允许断码是长码的前缀,即操作码不能与长操作码的前面部分相同。
      2.各指令操作码不可重复。

在这里插入图片描述
[学习通习题]
某计算机字长是32位,计算机采用四字节长指令,内存基于字节寻址,指令中的数据采用补码表示且PC的值在取指阶段完成修改。

(1)若某采用相对寻址指令的当前地址为2003H,且要求转移后的目标地址为200AH,则该指令形式地址字段的值为多少?(用8位二进制补码表示)
(2)若某采用相对寻址指令的当前地址为2008H,且要求转移后的目标地址为2001H,则该指令形式地址字段的值为多少?(用8位二进制补码表示)
在这里插入图片描述

[学习通习题]
某计算机为定长指令字结构,采用扩展操作码编码方式,指令长度为16位,每个地址码占4位,三地址指令15条,二地址指令8条,一地址指令127条,则剩下的零地址指令最多为( )条。
在这里插入图片描述
[栗]
在这里插入图片描述

[答案] 214-m*26-n/26

[栗]
假设指令字长为16位,操作数的地址码为6位,指令有零地址、-地址、二地址3种格式。
1)设操作码固定,若零地址指令有M种,- -地址指令有N种,则二地址指令最多有几种?
2)采用扩展操作码技术,二地址指令最多有几种?
3)采用扩展操作码技术,若二地址指令有P条,零地址指令有2条,则一地址指令最多有几种?

3.指令寻址方式

  • 指令寻址:顺序寻址、跳跃寻址(下一条指令由PC给出
  • 数据寻址:指如何在指令中表示一个操作数的地址,如何用这种表示得到操作数或怎样计算出操作数的地址
  • 常见的10种数据寻址方式:
    1.隐含寻址:程序指定
    在这里插入图片描述

2.立即寻址(指令执行时间最短)A即操作数
3.直接寻址:EA=A

在这里插入图片描述

4.间接寻址:(一次间接寻址)EA=(A)在这里插入图片描述
5.寄存器寻址:EA=Ri
6.寄存器间接寻址:EA=(Ri)
在这里插入图片描述
7.相对寻址:EA=(PC)+A
(应用:转移指令)
在这里插入图片描述
8.基址寻址:EA=(BR)+A
(多道程序,浮动程序)
在这里插入图片描述
9.变址寻址EA=(IX)+A
(处理数组,循环程序)
在这里插入图片描述
10.堆栈寻址
在这里插入图片描述
[栗1]
一条双字长的Load指令存储在地址为200和201的存储位置,该指令将指定的内容装入累加器(ACC)中。指令的第一个字指定操作码和寻址方式,第二个字是地址部分。主存内容示意图如下图所示。PC值为200, R1值为400, XR值为100.
在这里插入图片描述
[答]
注意: 题目要求是地址EA,还是ACC的值
1)EA=500,ACC=800
2) ACC=500
3) EA=800,ACC=300
4) EA=(PC)+A=202+500=702;ACC=325
注意: PC的值
5) EA=(XP)+A=100+500=600;ACC=900
6) ACC=400
7) EA=(R1)=400;ACC=700

[栗2]
在这里插入图片描述
[答]

  1. 0100 0100 0010 0000
    直接寻址:D=20H
  2. 0010 0010 0100 0100
    变址寄存器X2:D=1122H+44H=1166H
  3. 0001 0011 0010 0010
    相对寻址: D=1235H+22H=1257H
  4. 0011 0101 0010 0001
    变址寄存器X1:D=0037H+21H=0058H
  5. 0110 0111 0010 0011
    相对寻址: D=1235H+23H=1258H

4.CISC & RISC

复杂指令集CISC & 精简指令集RISC
在这里插入图片描述

第五章 中央处理器

1.CPU的功能与基本结构

  • 功能:指令控制、操作控制、时间控制、数据加工、中断处理
  • 构成:运算器、控制器
    • 运算器:算术逻辑单元、暂存寄存器、累加寄存器、通用寄存器组、程序状态字寄存器、移位器、计数器
    • 控制器:程序计数器、指令寄存器、指令译码器、存储器地址寄存器、存储器数据寄存器、时序系统、微操作信号发生器
      在这里插入图片描述

2.指令执行过程

指令周期
CPU从主存取出一条指令并执行这条指令的时间,不同指令的指令周期可能不同。

指令周期通常用若干个CPU周期数来表示,CPU周期又称机器周期,或时钟周期。一个CPU周期时间又包含若干个T周期(通常称为节拍脉冲,它是处理操作最基本的单位)

指令周期=取值周期+简直周期+执行周期+中断周期

指令执行方案:
1.单指令周期:对所有指令都选用相同的执行时间来完成。
2.多指令周期:对不同类型的指令选用不同的执行步骤来完成。
3.流水线方案:指令之间可以并行执行的方案。

3.微程序控制器

微程序逻辑采用存储逻辑实现,其基本思想为:把操作控制信号编制成微指令,存放在存储器中,运行的时候,从存储器中取出微指令,从而产生指令运行所需要的操作控制信号。所以所谓的微程序设计技术,实际上是用软件的方法来设计硬件的技术。

处理器的内部可以分为:控制器部件和执行部件。

微命令:控制器部件向执行部件发出的控制命令,是构成控制序列的最小单位,例如打开或者关闭控制门的电位信号。是各部件完成某个基本微操作的命令
微操作:执行部件接受微命令后所进行的操作,和微操作是一一对应的。
(实际上,微命令是微操作的控制信号,微操作是微命令的执行过程,微操作是执行部件中最基本的操作)

微指令:若干微命令的集合,存放在一个控制存储器中,而存放微指令的控制存储器的单元成为微地址。在同一CPU周期内,并行执行的一组微命令,存储在控制存储器上面,称为一条微指令。

微周期:从读取一条微指令,到执行执行完毕所需要的时间称为微周期。

控制存储器:之前介绍的主存,主要用来存放程序和数据,位于CPU的外部,使用的是RAM。而控制存储器,则主要用于存储微程序,位于CPU内部,采用的是ROM。

微程序:实现一条机器指令功能的微指令序列。

下面说说他们之间的相互关系:
指令系统 = 所有机器指令的集合;
一条机器指令 = 一个微程序
微程序 = 若干微指令
微指令 = 一组微命令
微命令 ->微操作
程序与微程序:程序由机器指令构成,编写好以后放到主存中运行,可以改写。而微程序由微指令构成,事先编写好在CM(控制存储器)中,一般是不可改写的。

微指令的构成
微指令由操作控制字段跟顺序控制字段构成。

  • 操作控制字段:又称微操作码字段,用以产生某一步操作所需要的各个微操作所需的各个控制信号
  • 顺序控制字段:又称微地址码字段,用来控制产生下一条将要执行的微指令的地址。(类似于PC)在这里插入图片描述

上图中的控制存储器是微程序控制单元的核心,CMAR中存放着欲读出的微指令地址,而顺序逻辑则用于形成下一条微指令。

微指令的控制方式
(如何对微指令的控制字段进行编码,以形成控制信号)

  • 直接编码方式
    操作控制字段中的各位分别可以直接控制计算机,不需要进行译码。其中每一位都代表一个微操作命令,例如控制字段中的某位为1,则代表着控制信号有效,0代表无效。
    优点:简单直观,执行速度快;微命令的并行控制能力强,编制的微程序短。
    缺点:微指令字太长。空间不能充分利用,比如如果是微命令有N个,那么微指令的控制字段就要N位,这样就会造成控存容量极大。

  • 字段直接编码方式
    将操作控制字段分为若干个小段,每段内采用最短编码法(互斥微命令),段与段之间采用直接编码方式(兼容微命令)。这句话比较难理解。
    举个例子,例如用3位二进制译码后代码可以表示7位互斥的微命令,留出的一位,用作状态码,表示不发出微命令,那么对比直接编码,采用7位来表示,减少了4位。
    在设计上:互斥性的微命令分在同一段内,兼容性的微命令分在不同段内
    优点:可以避免互斥,使指令字大大缩短
    缺点:增加了译码电路,使微程序的执行速度减慢
    混合编码方式‘
    将前两种结合在一起,兼顾两者特点。一个字段的某些编码不能独立地定义某些微命令,而需要与其他字段的编码来联合定义

微指令的地址形成主要有两个方式:

直接由微指令的顺序控制字段(或者称为下地址)给出。
根据指令的操作码形成(一般由增量计数法,分支转移法,硬件直接产生)

微指令格式
微指令的格式与微指令的编码方式有关,通常分为水平型跟垂直型微指令。
水平型微指令的特点是,一次能定义并执行多个并行操作的微命令,从编码方式来看,直接编码,字段直接编码,以及混合编码都属于水平类型。
垂直型微指令的特点是,采用类似机器指令操作码方式,在微指令字段中,设置微操作码字段,由微操作码规定微指令功能,不过这种微指令并不强调并行控制功能。

例如寄存器数据传送型的微指令格式:

000 元寄存器 目的寄存器 其他
前面的000表是微操作码。

两者之间的比较:

水平型微指令并行操作能力强,效率高,灵活性强
水平型微指令执行一条指令的时间短,并行好
水平型微指令字长较长,微程序短;垂直型指令字长短,微程序长
垂直型与指令相似,易于编写。
两种控制器之间的对比:
在这里插入图片描述

硬布线控制器 *

4.指令流水线 & 计算

1.流水线表示方法:(时空图)

在这里插入图片描述
2.流水线中的主要问题:

  • 资源相关:多条指令进入流水线后在同一机器时钟周期内争用同一个功能部件所发生的冲突
  • 数据相关:(对流水线影响最严重)在一个程序中,下一条指令用到当前指令计算出来的结果,此时这两条指令即为数据冲突。(RAW、WAR、WAW)[课本P173~栗]。
  • 控制相关:一条指令要确定下一条指令的位置,例如在执行转移、调用或返回等指令时会改变PC的值,而造成断流,会引起控制冒险。

3.流水线性能指标

  • 流水线吞吐率 TP = n/Tk = n/(k+n-1)t
    n 任务数,Tk 处理完n个任务所用时间

在这里插入图片描述

  • 流水线加速比 S = T0/Tk
    T0 不使用流水线的执行时间,Tk使用流水线的执行时间

  • 流水线效率 E=T0/kTk
    简单理解来说就是时空图上的 有效面积/总面积

[栗1]
在这里插入图片描述
[栗2]
在这里插入图片描述

[答案]在这里插入图片描述

5.超标量流水线*

(略)
在这里插入图片描述

|
|
|
|
在这里插入图片描述

第六章 总线

1.总线基本概述

  • 分类

    • 片内总线:CPU内连接各寄存器及运算部件之间的总线
    • 系统总线:CPU同计算机系统的其他高速功能部件,如存储器、通道等相互连接的总线
    • I/O总线:中、低速I/O设备之间相连接的总线
  • 总线的连接方式

    • 单总线结构
    • 多总线结构(桥)

2.总线带宽、数据传输率例题

[栗1]
设总线的时钟频率为8MHZ,一个总线周期等于一个时钟周期。如果一个总线周期中并行传送16位数据,试问总线的带宽是多少?
[答案]
由时钟频率8MHz,数据位数为16位得,
总线的带宽为 8 × 16 = 128 Mbps

[栗2]
在一个32位的总线系统中,总线的时钟频率为66MHZ,假设总线最短传输周期为4个时钟周期,试计算总线的最大数据传输率。若想提高数据传输率,可采取什么措施?
[答案]
1)由总线传输周期 4/66 M秒,得总线的最大数据传输率为 32 / ( 4/66 )= 528 Mbps
2)若想提高数据传输率,可以提高总线时钟频率、增大总线的宽度或减少总线传输周期的时钟个数

[栗3]
在异步传输系统中,字符格式为:1个起始位、8个数据位、1个校验位、2个终止位.若要求传输120个字符,求传送的波特率和比特率?

[答案]

1)由题意,一个字符有 1+8+1+2=12位,
则每秒传送120个字符时,波特率为 12 × 120 = 1440bps , 比特率为 8 × 120 = 960bps

笔记:
1.总线带宽的两种计算方法
第一种:带宽 = 时钟频率 × 数据位数
第二种:带宽 = 数据位数 / 总线传输周期,总线传输周期 = n×时钟周期,时钟周期 = 1 / 时钟频率
其中n是题目中规定的总线传输周期对应的时钟周期的个数,这种方法也适用于计算数据传输率

2.提高传输率的方法
根据数据传输率的计算公式(带宽计算的第二种方法),显而易见,可以通过提高总线时钟频率、增大总线的宽度或减少总线传输周期的时钟个数这三种方法。

3.波特率和比特率
波特率为单位时间内传输的二进制数据的位数
比特率为单位时间内传输的二进制有效数据的位数

3.总线仲裁

  • 集中仲裁方式

    • 链式查询方式:
      总线上所有的部件共用一根总线请求线,当有部件请求使用总线时,需经此线发总线请求信号到总线控制器。由总线控制器检查总线是否忙,若总线不忙,则立即发总线响应信号,经总线响应线BG串行地从一-个部件传送到下-一个部件,依次查询。若响应信号到达的部件无总线请求,则该信号立即传送到下一个部件;若响应信号到达的部件有总线请求,则信号被截住,不再传下去。

      思考:“总线忙”的信号建立者是?
      在这里插入图片描述
      在链式查询中,部件离总线控制器越近,其优先级越高;部件离总线控制器越远,其优先级越低。

      优点:链式查询方式优先级固定。此外,只需很少几根控制线就能按一定优先次序实现总线控制,结构简单,扩充容易。

      缺点:对硬件电路的故障敏感,且优先级不能改变。当优先级高的部件频繁请求使用总线时,会使优先级较低的部件长期不能使用总线。

    • 计数器定时查询方式:
      采用一个计数器控制总线使用权,相对链式查询方式多了一组设备地址线,少了-根总线响应线BG。它仍共用一根总线请求线, 当总线控制器收到总线请求信号并判断总线空闲时,计数器开始计数,计数值通过设备地址线发向各个部件。当地址线.上的计数值与请求使用总线设备的地址-致时,该设备获得总线控制权,同时中止计数器的计数及查询。
      在这里插入图片描述
      优点:计数可从“0”开始,此时一旦设备的优先次序被固定,设备的优先级就按0, 1,"',n的顺序降序排列,而且固定不变;计数也可从上一次的终点开始,即采用一一种循环方法, 此时设备使用总线的优先级相等;计数器的初值还可由程序设置,因此优先次序可以改变,且这种方式对电路的故障没有链式查询方式敏感。

      缺点:增加了控制线数(若设备有n个,则大致需要[ log2n1+ 2条控制线),控制也比相对链式查询要复杂。

    • 独立请求方式:
      在这里插入图片描述
      优点:响应速度快,总线允许信号BG直按从控制器发送到有关设备,而不必在设备间传递或查询,而且对优先次序的控制相当灵活。

      缺点:控制线数量多(设备有n个,需要2n+ 1条控制线,其中加的那条控制线为BS线,基作用是让设备向总线控制部件反馈已使用完总线),总线控制逻辑更复杂。

  • 分布仲裁方式 *

在这里插入图片描述

第七章 输入输出系统

1.I/O控制方式

  • 程序查询方式。由CPU通过程序不断查询I/O设备是否已做好准备,从而控制I/O设备与主机交换信息。

  • 程序中断方式。只在I/O设备准备就绪并向CPU发出中断请求时才予以响应。

  • DMA(直接内存访问)方式。主存和IO设备之间有一条直接数据通路,当主存和I/O设备交换信息时,无须调用中断服务程序。.

  • 通道方式。在系统中设有通道控制部件,每个通道都挂接若干外设,主机在执行I/O命令时,只需启动有关通道,通道将执行通道程序,从而完成I/O操作。

程序中断方式

在这里插入图片描述

  • 工作过程
    1.中断请求:中断源向CPU发送中断请求信号。
    2.中断判优:多个中断源同时提出请求时,通过中断判优
    3.逻辑响应一个中断源。
    4.中断响应及中断隐指令。
    5.中断服务程序寻址
    6.执行中断服务程序

在这里插入图片描述

注意问题:
1.保存现场:为了能够正确的返回到原来的主程序,中断时需要保存 PC内容 、寄存器
2.中断处理过程是由硬件和软件结合完成
3.中断分为内中断与外中断。机器内部原因导致出错引起的中断叫内中断,也叫异常。外部请求服务中断叫外中断。
4.中断隐指令,不属于机器指令由硬件自动完成。

  • 35
    点赞
  • 104
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值