期末复习
[toc]
第一章 概论
- 冯·诺依曼计算机的特点
- 计算机由运算器、存储器、控制器、输入设备、输出设备五大部件组成
- 指令和数据用二进制代码表示,指令由操作码和地址码组成
- 程序存储,指令在存储器内按顺序存放
- 机器以运算器为中心
- 计算机硬件的主要技术指标:机器字长、存储容量、运算速度
- 计算机的软件系统分类:系统软件、应用软件
- 计算机的五级软件层次:微程序级、机器指令级、操作系统级、系统软件级、应用软件级
第三章 信息编码与数据表示
“0”的原码有2种,反码2种,补码1种,移码1种
已知 [x]补=1,1100 [-x]补=0,0011+1=0,0100 [x]移=0,1100
提示移码=补码符号位取反
移码小数=[1+X补]mod2
移码整数=[2^n+X]mod 2^n+1
真值(11.375)10,求其32位浮点机器数
常用的三种校验码:奇偶校验码、海明码、CRC循环冗余校验码。
第四章 运算方法和运算器
用补码计算X+Y和X-Y,并用双符号法判断有无溢出。
提示00/11无溢出、01正溢出、10负溢出
设X=0.1001,Y=-0.0101,求:[X]补, [2X]补, [X/2]补, [Y]补, [2Y]补, [Y/2]补
复习一下补码
提示[Y]补=2+X mod 2=2-0.0101=1.1011
怎么记?你就想着最右面的一位是一样,其余相反,然后相加能=0
(1)标识寄存器五个标志位ZF、CF、OF、SF、PF的含义?
(2)两条指令MOV AL,80H;ADD AL,80H的功能是80H+80H→AL,试写出运算结果及其标志位。
- Zero Flag、Carry Flag、Overflow Flag、Signal Flag、Parity Flag
- ZF=1零标志,CF=1进位,OF=1溢出,
SF=0正
,PF=1奇
第五章 存储体系
存储系统层次结构:CPU↔Cache↔主存↔辅存。
三种高速存储器:
双端口
、多体交叉
、相联存储器
Cache的多层次设计:
单级与两级
,指令Cache
与数据Cache
;Cache的三种替换算法:随机替换、先进先出、最近最少使用
Cache的两种写策略:写贯穿、写回;
地址空间:虚拟地址空间(逻辑地址空间)和实地址空间(物理地址空间)。
ROM有MROM、 PROM、 EPROM、 EEPROM、 Flash Memory等种类。
RAM类型:SRAM和DRAM,其中DRAM需要刷新电路,常用的刷新方法有集中式、分散式、异步式三种。
一个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
若存储器的数据总线宽度为 32 位,存取周期为 200ns
某机字长为 32 位,其存储容量是 64KB,按
字节编址
它的寻址范围是0~64K,按字编址
它的寻址范围是0~[(64K×8)位/ 32]字=0~16K字。一个容量为 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片。
设有若干片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片的地址范围(用十六进制数表示)
- 8*4=32
- 10+log2(256)=18位
- 10+log2(2048)+log2(4)=10+11+2=23位
设一个Cache中有8个块,访问主存进行读操作的块地址序列为22、26、22、26、16、4、16、18,直接映像方式,求每次访问后Cache中的内容。
提示调进、替换、命中
第六章 指令系统
设计指令系统要求:完备性、有效性、规整性、兼容性
为取出操作数,立即数寻址访存0次,寄存器寻址访存0次,直接寻址访存1次,间接寻址访存2次,寄存器间接寻址访存1次。
若双字节指令 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次)
基址寻址和变址寻址有效地址分别为EA=A+(BR)和EA=A+(IX)。BR为基址寄存器,IX为变址寄存器,A为偏移地址。基址寻址时,BR不变,A可变;变址寻址时,A不变,IX可变。
如何评价?
先看题,目前有PC=03,BR=04
直接寻址的话地址指的03,内容是=02,操作数找到02地址的内容=0A
间接寻址的话地址指的03,找到02地址,要找的地址=0A,操作数=09
立即寻址就地址直接=BR=04,操作数=07
变址=BR+BR的内容=04+07=0B,操作数=08
设某计算机其字长十六位,分析下面指令格式的特点。
解:
(1)双字长二地址指令,用于访问存储器
(2)操作码字段OP为6位,可以指定26=64种操作
(3)一个操作数在源寄存器(共24=16个),另一个操作数在存储器中,所以是寄存器-存储器型指令(RS型指令)
第七章 控制器
中央处理器中有哪几个主要寄存器?试说明它们的结构和功能
暂存运算和控制过程的中间结果、最终结果及控制、状态信息,分为通用寄存器和专用寄存器。
通用寄存器可以放原始数据和运算结果
专用寄存器专门用来完成某一特殊功能,如:程序计数器PC、指令寄存器IR、存储器地址寄存器MAR、存储器数据寄存器MDR、状态标志寄存器PSWR
微指令有 直接控制法,字段直接编译法,字段间接编译法等三种方法。
后继微地址产生方法:计数器方式、判定方式(下址字段法)
画出指令周期、机器周期、时钟周期及节拍信号的关系图
由小到大 时钟周期->(下降沿)触发节拍信号->控制一个CPU(机器周期)->两个/多个组成一个指令周期
CPU 结构如下图所示,其中有一个累加寄存器AC 、一个状态条件寄存器和其他4 个寄存器,各部件之间的连线表示数据通路,箭头表示信息传送方向。
- 标明4 个寄存器的名称。
- 简述指令从主存取出送到控制器的数据通路。
- 简述数据在运算器和主存之间进行存取访问的数据通路。
- 指令MOV R0,04H的功能是将主存地址04H单元的内容赋值给寄存器 R0,即(04H)→ R0,请简述指问完成过程,此指令需要几个机器周期?访存几次?
取指阶段
在 (PC- B)#, B-MAR微命令作用下,PC值送入MAR,选择主存MEM相应的地址单元,在(M-R)# 微命令作用下,读出主存中指令MOV R0,04H机器码的第一个字(包含操作码),经过系统总线,在B-IR 微命令作用下,到达指令寄存器IR,然后进入指令译码器,对操作码进行译码,产生操作控制信号。
执行指令阶段
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寄存器。
此指令需要3个机器周期,需要访问存储器3次(其中取出指令2次,读出主存04H单元的内容1次)。
第八章 IO
- 主机与外设交换信息的方式有
- 程序查询方式、程序中断方式、直接存储器访问方式(DMA)、通道方式、输入输出处理机方式
- 其中程序查询方式下,CPU被外设独占;
- 程序中断方式下,则支持CPU与外设并行工作,并且可以用于突发事件的处理;
- 直接存储器访问方式用于高速、大批量的数据传送,并由硬件实现。
- 中断过程:中断申请、中断响应、中断服务、中断返回。
- 中断向量:中断服务程序入口地址 ;
- 断点信息:程序中断处PC和程序状态字PSW;断点通常保存在堆栈中。
- 响应中断时,无需用户编程,CPU先通过硬件保存程序断点(PC值)及标志寄存器,以便中断返回,此过程称为CPU执行了中端隐指令。
- 中断响应过程:① 关中断②保存断点③识别中断源,转入服务程序入口地址
假设有4个中断源A、B、C、D,硬件排队后,中断优先级别从高到低为A→B→C→D,现在要将4个中断源得到CPU响应的次序更改为C→A→D→B,写出各个中断源的中断服务程序中应该设置的中断屏蔽字。
解:中断屏蔽字位数=中断源个数,若中断屏蔽字某位为0,表示开放对应中断;若中断屏蔽字某位为1,表示关闭对应中断。
A、 B、C、D中断服务程序的中断屏蔽字分别为:
这个怎么记?
前面有谁要响应就开哪个,其他的看原来的优先级来屏蔽
看A,响应C,开C,其他的看原来的优先级来屏蔽
第九章 总线
- 总线的基本概念:计算机分时共享传输数据的公共通道—— 一组传输线。
- 总线四个特性:电气特性、机械特性、功能特性、时间特性
- 总线分类:
- 按连接部件分为CPU内部总线、系统总线和通信总线
- 按数据传送方式分为串行总线和并行总线
- 按通信方式分同步总线和异步总线
- 总线性能指标:
- 总线宽度(位数)、总线周期(或总线频率MHz) 总线带宽(每秒兆字节数)
- 此外,还有信号类型、仲裁方法、定时方式等指标
- 三种总线结构:单总线、双总线、三总线;
- 单总线:计算机各大部件通过一根总线连接,所有信息在此总线上传输;
- 双总线:在单总线基础上,增加CPU与存储器总线;
- 三总线:系统总线、存储总线、I/O总线
设总线工作频率为33MHz,如果一个总线周期中并行传送32位数据,则总线的带宽是多少?
(每秒兆字节数)
在异步串行传输中,字符格式为:1个起始位、7位数据位、1位校验位、1个终止位。若要求每秒传输240个字符,则需要传输的波特率是多少?
1s内传输240*10bit=2400bit/s 2400/8=300B/s
第十章 流水线
流水线分为
和、和、和、和等等。引起流水线阻塞的主要因素有:结构(或资源)相关、
数据相关
和控制相关
。解决这三类相关的最简单的方法是暂时停顿流水线
。如图,其中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四段完成,每段执行所需时间如下图。
计算机执行一条指令每段执行所需时间图
计算机连续执行完成6条指令,指令之间没有相关性。
- 画出流水线的时空图;
- 求流水线的最大吞吐率和实际吞吐率。
- 求加速比;
- 求效率。
- 现在改进计算机流水线,该如何安排比较合理?
WB 1 2 3 4 5 6 EX 1 1 2 2 3 3 4 4 5 5 6 6 ID 1 2 3 4 5 6 IF 1 2 3 4 5 6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
求流水线的最大吞吐率和实际吞吐率。
这个每两个t才一次,所以是?
实际吞吐率=
设流水线为m段见鬼了,老师的公式(有个鬼公式)直接记n/T ,实际吞吐率6/[(2+6*2+1)t] = 6/(15 t)
计算机流水线的加速比=(不用流水线时间)/(用流水线时间)
流水线的加速比6*5t/15t=2
流水线效率
5*6/(15*4)=50%
(即设备利用率)- 大概可以记忆为占了多少面积,5*6的话,一个指令占5个周期,一共6条指令
- 15*4的话,15个周期,一共有4个指令
现在改进计算机流水线,该如何安排比较合理?
- 把流水线的ID、EX 平均分成两段,每段执行时间为t;或者并联重复设置两次ID、EX段。
超标度为2的超标量流水线结构模型如图下所示。它分为4个段,即取指(F)段、译码并读取寄存器的数(D)段、执行(E)段和写回(W)段。F,D,W段只需一个时钟周期完成。E段有多个功能部件,其中取数/存数部件完成数据cache访问,只需一个时钟周期;加法器完成需两个时钟周期,乘法器需三个时钟周期,它们都已流水化。F段和D段要求成对的输入。E段有内部数据定向传送,结果生成即可使用。
现有如下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) 指出指令之间的相关性。
I1 F D E W I2 F D E E W I3 F D RAW E E W I4 F D RAW E E E W I5 F D WAW E E E W 注意,这里的乘法部件我共用了,需要等一个周期 I6 F D WAW WAW WAW WAW E W 1 2 3 4 5 6 7 8 9 10 - I2和I3对R2写后读、I2对I4写后读、I4和I5资源相关、I5和I6写后写
答案:
指出指令之间的相关性:I2与I3 对R2写后读;I2与I4 对R2写后读;I5与I6写后写。I4与I5资源相关