跳到主要内容

期末复习

[toc]

第一章 概论

  1. 冯·诺依曼计算机的特点
    1. 计算机由运算器、存储器、控制器、输入设备、输出设备五大部件组成
    2. 指令和数据用二进制代码表示,指令由操作码地址码组成
    3. 程序存储,指令在存储器内按顺序存放
    4. 机器以运算器为中心
  2. 计算机硬件的主要技术指标:机器字长、存储容量、运算速度
  3. 计算机的软件系统分类:系统软件、应用软件
    1. 计算机的五级软件层次:微程序级、机器指令级、操作系统级、系统软件级、应用软件级

第三章 信息编码与数据表示

  1. “0”的原码有2种,反码2种,补码1种,移码1种

  2. 已知 [x]补=1,1100 [-x]补=0,0011+1=0,0100 [x]移=0,1100

    提示

    移码=补码符号位取反

    移码小数=[1+X补]mod2

    移码整数=[2^n+X]mod 2^n+1

  3. 真值(11.375)10,求其32位浮点机器数

    image-20230624170819794

  4. 常用的三种校验码:奇偶校验码、海明码、CRC循环冗余校验码。

第四章 运算方法和运算器

  1. 用补码计算X+Y和X-Y,并用双符号法判断有无溢出。

    image-20230624150323528

    提示

    00/11无溢出、01正溢出、10负溢出

  2. 设X=0.1001,Y=-0.0101,求:[X]补, [2X]补, [X/2]补, [Y]补, [2Y]补, [Y/2]

    image-20230624150607233

    复习一下补码

    提示

    [Y]补=2+X mod 2=2-0.0101=1.1011

    怎么记?你就想着最右面的一位是一样,其余相反,然后相加能=0

  3. (1)标识寄存器五个标志位ZF、CF、OF、SF、PF的含义?

    (2)两条指令MOV AL,80H;ADD AL,80H的功能是80H+80H→AL,试写出运算结果及其标志位。

    1. Zero Flag、Carry Flag、Overflow Flag、Signal Flag、Parity Flag
    2. ZF=1零标志,CF=1进位,OF=1溢出,SF=0正,PF=1奇

第五章 存储体系

  1. 存储系统层次结构:CPU↔Cache↔主存↔辅存。

    三种高速存储器:双端口多体交叉相联存储器

    Cache的多层次设计:单级与两级指令Cache数据Cache

    Cache的三种替换算法:随机替换先进先出最近最少使用

    Cache的两种写策略:写贯穿写回

    地址空间:虚拟地址空间(逻辑地址空间)和实地址空间(物理地址空间)。

  2. ROM有MROM、 PROM、 EPROM、 EEPROM、 Flash Memory等种类。

    RAM类型:SRAM和DRAM,其中DRAM需要刷新电路,常用的刷新方法有集中式、分散式、异步式三种。

  3. 一个8K×8位的动态RAM芯片,其内部结构排列成256×256形式,存取周期为0.1μs。试问采用集中刷新、分散刷新及异步刷新三种方式的刷新间隔各为多少?

    解:设DRAM的刷新最大间隔时间为2ms,刷新一行时间=存取周期为0.1μs

    异步刷新:死区时间0.1us,则异步刷新的刷新间隔 =2ms/256行 =0.0078125ms =7.8125μs,即每7.8125μs刷新一行。

    集中刷新时,死区时间为256*0.1us=25.6us。

    分散刷新,刷新间隔0.2us,死区时间为0.1us,读写周期0.2us。

    提示

    1ms=1000us

    1us=1000ns

  4. 若存储器的数据总线宽度为 32 位,存取周期为 200ns

    32bits200ns=16bits100ns=0.16bit/ns(乘个100010001000=109)=160106bit/s(除以8)=20106B/s=2107B/s=19MB/s\frac{32bits}{200ns}= \frac{16bits}{100ns}= 0.16bit/ns(乘个1000*1000*1000=10^{9}) =160*10^{6}bit/s(除以8)=20*10^{6}B/s=2*10^{7}B/s=19MB/s

  5. 某机字长为 32 位,其存储容量是 64KB,按字节编址它的寻址范围是0~64K,按字编址它的寻址范围是0~[(64K×8)位/ 32]字=0~16K字。

  6. 一个容量为 16K×32 位的存储器,其地址线和数据线的总和为 14 + 32 = 46根;(1k十根,16要4位,相加=14 当选用下列不同规格的存储芯片:1K×4 位,2K×8 位, 4K×4 位,16K×1 位,4K×8 位,8K×8 位时,各需要128片,32片,32片,32片,16片 ,8片。

  7. 设有若干片256K×8位的SRAM芯片,构成2048K×32位的存储器问:

    (1) 用256K×8位SRAM芯片构成2048K×32位存储器,需要用多少片? (2) 256K×8位存储器需要多少位字节地址? (3) 2048K×32位的存储器需要多少位字节地址? (4) 画出该存储器与CPU连接的结构图,设CPU的接口信号有地址信号、数据信号、控制信号MREQ#和R/W#。 (5) 写出图中第2片的地址范围(用十六进制数表示)

    1. 8*4=32
    2. 10+log2(256)=18位
    3. 10+log2(2048)+log2(4)=10+11+2=23位
  8. 设一个Cache中有8个块,访问主存进行读操作的块地址序列为22、26、22、26、16、4、16、18,直接映像方式,求每次访问后Cache中的内容。

    提示

    调进、替换、命中

    image-20230624145726993

第六章 指令系统

  1. 设计指令系统要求:完备性、有效性、规整性、兼容性

  2. 为取出操作数,立即数寻址访存0次,寄存器寻址访存0次,直接寻址访存1次,间接寻址访存2次,寄存器间接寻址访存1次。

  3. 若双字节指令 ADD 04H, R0功能为R0+(04H)→R0,寄存器R0值加上地址04H的内存单元内容,然后又将 加法“和”赋值给寄存器R0;请问此指令访存几次?

    答:3次(两字节指令,含取指令2次,取主存04H号单元的数据1次)

    若指令 ADD (04H), R0功能为R0+(04H)→(04H),请问此指令访存几次?

    答:4次(含取指令2次,取主存04H号单元的数据1次,ALU加法运算结果,写入主存04H号单元1次)

  4. 基址寻址和变址寻址有效地址分别为EA=A+(BR)和EA=A+(IX)。BR为基址寄存器,IX为变址寄存器,A为偏移地址。基址寻址时,BR不变,A可变;变址寻址时,A不变,IX可变。

  5. image-20230623125942286

    如何评价?

    先看题,目前有PC=03,BR=04

    直接寻址的话地址指的03,内容是=02,操作数找到02地址的内容=0A

    间接寻址的话地址指的03,找到02地址,要找的地址=0A,操作数=09

    立即寻址就地址直接=BR=04,操作数=07

    变址=BR+BR的内容=04+07=0B,操作数=08

  6. 设某计算机其字长十六位,分析下面指令格式的特点。

    image-20230623130436933

    解:

    (1)双字长二地址指令,用于访问存储器

    (2)操作码字段OP为6位,可以指定26=64种操作

    (3)一个操作数在源寄存器(共24=16个),另一个操作数在存储器中,所以是寄存器-存储器型指令(RS型指令)

第七章 控制器

image-20230622154510362

中央处理器中有哪几个主要寄存器?试说明它们的结构和功能

暂存运算和控制过程的中间结果、最终结果及控制、状态信息,分为通用寄存器和专用寄存器。

通用寄存器可以放原始数据和运算结果

专用寄存器专门用来完成某一特殊功能,如:程序计数器PC、指令寄存器IR、存储器地址寄存器MAR、存储器数据寄存器MDR、状态标志寄存器PSWR

微指令有 直接控制法字段直接编译法字段间接编译法等三种方法

后继微地址产生方法:计数器方式判定方式下址字段法

画出指令周期机器周期时钟周期节拍信号的关系图

由小到大 时钟周期->(下降沿)触发节拍信号->控制一个CPU(机器周期)->两个/多个组成一个指令周期

image-20230622155002598

CPU 结构如下图所示,其中有一个累加寄存器AC 、一个状态条件寄存器和其他4 个寄存器,各部件之间的连线表示数据通路,箭头表示信息传送方向。image-20230622161356928

  1. 标明4 个寄存器的名称。
  2. 简述指令从主存取出送到控制器的数据通路。
  3. 简述数据在运算器和主存之间进行存取访问的数据通路。

image-20230622163801230

  1. 指令MOV R0,04H的功能是将主存地址04H单元的内容赋值给寄存器 R0,即(04H)→ R0,请简述指问完成过程,此指令需要几个机器周期?访存几次?

image-20230622164109435

  1. 取指阶段

    在 (PC- B)#, B-MAR微命令作用下,PC值送入MAR,选择主存MEM相应的地址单元,在(M-R)# 微命令作用下,读出主存中指令MOV R0,04H机器码的第一个字(包含操作码),经过系统总线,在B-IR 微命令作用下,到达指令寄存器IR,然后进入指令译码器,对操作码进行译码,产生操作控制信号。

    image-20230622165833427

  2. 执行指令阶段

    PC+1微命令使PC值加1,在 (PC- B)#, B-MAR微命令作用下,加1后的PC值进入MAR,选择主存MEM相应的地址单元,读出主存中指令MOV R0,04H机器码的第二个字,其内容为04H, 04H经系统总线,然后在B-MAR微命令作用下,进入MAR,选中主存MEM的04H单元,在(M-R)# 微命令作用下,读出主存04H单元的内容,即操作数,操作数经过系统总线,在B-R0微命令的作用下,进入R0寄存器。 image-20230622171023770

  3. 此指令需要3个机器周期,需要访问存储器3次(其中取出指令2次,读出主存04H单元的内容1次)。

image-20230623123522357

第八章 IO

  1. 主机与外设交换信息的方式有
    1. 程序查询方式程序中断方式直接存储器访问方式(DMA)、通道方式输入输出处理机方式
    2. 其中程序查询方式下,CPU被外设独占
    3. 程序中断方式下,则支持CPU与外设并行工作,并且可以用于突发事件的处理;
    4. 直接存储器访问方式用于高速、大批量的数据传送,并由硬件实现。
  2. 中断过程:中断申请中断响应中断服务中断返回
  3. 中断向量中断服务程序入口地址
    1. 断点信息:程序中断处PC和程序状态字PSW;断点通常保存在堆栈中。
    2. 响应中断时,无需用户编程,CPU先通过硬件保存程序断点(PC值)标志寄存器,以便中断返回,此过程称为CPU执行了中端隐指令。
  4. 中断响应过程:① 关中断保存断点识别中断源转入服务程序入口地址

假设有4个中断源A、B、C、D,硬件排队后,中断优先级别从高到低为A→B→C→D,现在要将4个中断源得到CPU响应的次序更改为C→A→D→B,写出各个中断源的中断服务程序中应该设置的中断屏蔽字。

解:中断屏蔽字位数=中断源个数,若中断屏蔽字某位为0,表示开放对应中断;若中断屏蔽字某位为1,表示关闭对应中断。

A、 B、C、D中断服务程序的中断屏蔽字分别为:

这个怎么记?

提示

前面有谁要响应就开哪个,其他的看原来的优先级来屏蔽

看A,响应C,开C,其他的看原来的优先级来屏蔽

第九章 总线

  1. 总线的基本概念:计算机分时共享传输数据的公共通道—— 一组传输线。
  2. 总线四个特性:电气特性机械特性功能特性时间特性
  3. 总线分类:
    • 连接部件分为CPU内部总线系统总线通信总线
    • 数据传送方式分为串行总线并行总线
    • 通信方式分同步总线异步总线
  4. 总线性能指标:
    1. 总线宽度(位数)总线周期(或总线频率MHz) 总线带宽(每秒兆字节数)
    2. 此外,还有信号类型仲裁方法定时方式等指标
  5. 三种总线结构:单总线双总线三总线
    1. 单总线:计算机各大部件通过一根总线连接,所有信息在此总线上传输;
    2. 双总线:在单总线基础上,增加CPU与存储器总线;
    3. 三总线:系统总线、存储总线、I/O总线

设总线工作频率为33MHz,如果一个总线周期中并行传送32位数据,则总线的带宽是多少?

带宽=33M(32/8)=132MBps带宽 = 33M*(32/8)=132MBps(每秒兆字节数)

在异步串行传输中,字符格式为:1个起始位、7位数据位、1位校验位、1个终止位。若要求每秒传输240个字符,则需要传输的波特率是多少?

1s内传输240*10bit=2400bit/s 2400/8=300B/s

第十章 流水线

  • 流水线分为

    单功能流水线
    多功能流水线
    静态流水线
    动态流水线
    线性流水线
    非线性流水线
    标量流水线
    向量流水线
    等等。

  • 引起流水线阻塞的主要因素有:结构(或资源)相关数据相关控制相关。解决这三类相关的最简单的方法是暂时停顿流水线

    • image-20230622085103165

    • 如图,其中RAW、顺序、部件、WAW都是引起流水线堵塞的

    • 原因如下

      • 结构(或资源)相关:因为乘法单元需要3个周期,普通加减1个周期,因为结构或者资源的不同,会导致两者需要的时间不同,如果需要按序完成,先完成的要等没完成的。

        当多条指令需要同时访问同一个资源时,就会发生结构相关。这种情况下,流水线中的指令需要等待前面的指令完成对资源的访问,才能继续执行。常见的结构相关包括数据冲突(Data Hazard)和控制冲突(Control Hazard)

      • 数据相关:RAW、WAW应该对应的先读后写、写后再写,导致数据出错

        chatgpt 当指令之间存在数据依赖关系时,就会发生数据相关。这种情况下,后面的指令需要等待前面的指令完成数据的计算,才能继续执行。常见的数据相关包括真依赖(True Dependency)、反依赖(Anti-Dependency)和输出依赖(Output Dependency)。

      • 控制相关

        当分支指令的跳转目标还没有确定时,就会发生控制相关。这种情况下,流水线中的指令需要等待分支指令的跳转目标确定后,才能继续执行。常见的控制相关包括分支相关(Branch Hazard)和异常相关(Exception Hazard)

  • 减少或消除结构相关的办法主要是采用资源重复方法时间重叠方法

    消除数据相关的方法主要是采用定向技术

    消除和减少控制相关的方法主要是提前生成转移目标地址采用优化延迟转移技术

  • 高级流水线技术:超标量流水线超流水线技术超标量超流水线技术超长指令技术

假设原来某计算机执行一条指令分取指IF、译码ID、读操作数并执行EX(EX段不可以拆分)和写回WB四段完成,每段执行所需时间如下图。

计算机执行一条指令每段执行所需时间图

image-20230622095312572

计算机连续执行完成6条指令,指令之间没有相关性。

  1. 画出流水线的时空图;
  2. 求流水线的最大吞吐率和实际吞吐率。
  3. 求加速比;
  4. 求效率。
  5. 现在改进计算机流水线,该如何安排比较合理?
  1. 1687399398003

  2. WB123456
    EX112233445566
    ID123456
    IF123456
    123456789101112131415
  1. 求流水线的最大吞吐率和实际吞吐率。

    1. image-20230622101116322

    2. 这个每两个t才一次,所以是1/2t1/2t?

    3. 实际吞吐率=n/Tn/T 设流水线为m段T流水=mΔT+(n1)ΔTT_{流水}=m\Delta T+(n-1)\Delta T 见鬼了,老师的公式(有个鬼公式)

      直接记n/T ,实际吞吐率6/[(2+6*2+1)t] = 6/(15 t)

  2. 计算机流水线的加速比=(不用流水线时间)/(用流水线时间)

    流水线的加速比6*5t/15t=2

  3. 流水线效率 5*6/(15*4)=50%(即设备利用率)

    1. 大概可以记忆为占了多少面积,5*6的话,一个指令占5个周期,一共6条指令
    2. 15*4的话,15个周期,一共有4个指令
  4. 现在改进计算机流水线,该如何安排比较合理?

    1. 把流水线的ID、EX 平均分成两段,每段执行时间为t;或者并联重复设置两次ID、EX段。

超标度为2的超标量流水线结构模型如图下所示。它分为4个段,即取指(F)段、译码并读取寄存器的数(D)段、执行(E)段和写回(W)段。F,D,W段只需一个时钟周期完成。E段有多个功能部件,其中取数/存数部件完成数据cache访问,只需一个时钟周期;加法器完成需两个时钟周期,乘法器需三个时钟周期,它们都已流水化。F段和D段要求成对的输入。E段有内部数据定向传送,结果生成即可使用。

image-20230622133613456

现有如下6条指令序列:

I1 LAD R1,A ; 取数M(A)→R1,M(A)是存储器单元 I2 ADD R2,R3;(R2)+(R3)→R2 I3 ADD R4,R2;(R2)+(R4)→R4 I4 MUL R5,R2;(R5)×(R2)→R5 I5 MUL R6, R7; (R6)×(R7)→R6

I6 LAD R6, B ; 取数M(B)→R6,M(B)是存储器单元

问题: (1)请画出指令按序发射按序完成的流水线时空图。

(2) 指出指令之间的相关性。

  1. I1FDEW
    I2FDEEW
    I3FDRAWEEW
    I4FDRAWEEEW
    I5FDWAWEEEW注意,这里的乘法部件我共用了,需要等一个周期
    I6FDWAWWAWWAWWAWEW
    12345678910
  2. I2和I3对R2写后读、I2对I4写后读、I4和I5资源相关、I5和I6写后写

答案:

image-20230622142729934

指出指令之间的相关性:I2与I3 对R2写后读;I2与I4 对R2写后读;I5与I6写后写。I4与I5资源相关