文章目录

  • 计算机组成原理重点复习内容
    • 一、I/O部分
      • 1.中断系统流程图与结构图
      • 2.DMA系统的流程图与结构图
    • 二、CPU的数据通路
      • 1.基础知识部分
      • 2.大题部分
    • 三、Cache的映射问题
    • 四、磁盘相关的计算和概念
    • 五、浮点数计算问题
    • 六、芯片字位扩展问题

计算机组成原理重点复习内容

一、I/O部分

1.中断系统流程图与结构图

细节:

  • 能够画出上述流程图,脑子里需要有整个中断流程
  • 中断周期是硬件执行,中断服务子程序是软件执行
  • 中断周期是在执行周期之后,下一条取址周期之前
  • 保存现场是指将PC、寄存器的内容、状态标志位保存到堆栈中
  • 中断向量是中断服务程序入口的地址,而中断向量地址是中断服务程序入口的地址的地址

这里还会设计到一个概念:中断向量

当CPU响应中断时,由硬件直接产生一个固定的地址(即向量地址),由向量地址指出中断服务程序入口,这种方法称为向量中断

CPU中:

  • IM(中断屏蔽触发器):是CPU是否受理中断的标志。IM为“1”,CPU不理外界中断;IM为“0”,则可以受理。

  • IR(中断请求触发器):暂存由设备发出的中断请求信号。当IR为“1”,说明某设备发出了中断请求。

接口中:

  • EI(允许中断触发器):可以通过程序指令来置位。EI为“1”,某设备可以向CPU发出中断请求,EI为“1”,该中断源的中断请求是被禁止的。也就是通过软件来控制某设备是否能发出中断请求。

  • RD(准备就绪触发器):一旦设备做好一次数据的接受或发送,便发出一个设备动作完毕信号,使RD置”1“。

2.DMA系统的流程图与结构图

DMA基本思想(原理):通过硬件控制实现数据在主存和I/O之间的传送,在传送过程中无需CPU的干预。数据传输是在DMA控制器的控制下进行的。

内存地址寄存器:用于存放内存中要交换数据的地址

字计数器:用于记录传送数据快的长度。传送完毕后会引起中断请求

数据缓冲寄存器:用于暂存每次传送的数据。整个DMA传送过程是传送了一个数据块,但实际上是每次从设备传送一个字,把字累积到数据块之后再传送给内存。

DMA请求标志:每当设备准备好一个数字后给出一个控制信号,使“DMA请求”标志置“1”。

控制/状态逻辑:用于修改内存地址计数器和字计数器,指定传送类型,并对“DMA请求”信号和CPU响应信号进行协调和同步

中断机构:报告一组数据传送结束

要求:

  • 能够闭着眼画出上述流程图,脑子里得有上述过程而不是死记硬背
  • 知道DMA的预处理正式传送后处理都干了啥

预处理:

由CPU执行几条输入输出指令,测试设备状态,向DMA控制器的设备地址寄存器中送入设备号并启动设备,向内存地址计数器中送入起始地址,向字计数器中送入交换的数据字个数。在这些工作完成后,CPU继续执行原来的主程序。

正式处理:

当外设准备好发送数据(输入)或接受数据(输出)时,它发出DMA请求,由DMA控制器向 CPU发出总线使用权的请求(HOLD)。DMA的数据传送是以数据块为基本单位进行的,因此,每次DMA控制器占用总线后,无论是数据输入操作,还是输出操作,都是通过循环来实现的。当进行输入操作时,外围设备的数据(一次一个字,此时并不中断CPU)传向内存;当进行输出操作时,内存的数据传向外围设备。

后处理:

一旦DMA的中断请求得到响应,CPU停止主程序的执行,转去执行中断服务程序做一些DMA 的结束处理工作。这些工作包括校验送入内存的数据是否正确;决定继续用DMA方式传送下去,还是结束传送;测试在传送过程中是否发生了错误等等

二、CPU的数据通路

1.基础知识部分

1.CPU的四个功能:①指令控制②操作控制③时间控制④数据加工

2.CPU分为运算器控制器

控制器里有:

  • PC(程序计数器):存放下一条指令的地址
  • IR(指令寄存器):存放当前执行的指令,包含了操作码和操作数,进行指令译码
  • MAR(数据地址寄存器):存放CPU当前要访问数据的地址
  • MDR(数据缓冲寄存器):存放ALU结果,从内存读出的数据或来自设备的数据

运算器里有:

  • PSW(状态字寄存器):保存由算术指令和逻辑指令运算或测试结果的状态
  • Ri(通用寄存器):存放操作数、地址等
  • ALU

3.数据通路:寄存器间传送信息的通路称为数据通路

4.操作控制器的功能:根据指令操作码和时序信号,产生各种操作控制信号,以便正确地选择数据通路,把有关数据传送到一个寄存器,从而完成取指令和执行指令地控制。

  • 时序逻辑型:硬布线控制器
  • 存储逻辑型:微程序控制器

5.微程序控制器的流程图和结构图

控制存储器:存放实现全部指令系统的微程序,它是一种只读型存储器。要求速度快,读出周期短

微地址寄存器:存放读出微指令的直接地址,决定要读取的下一条微指令的地址

地址转移逻辑:承担自动完成修改微地址的任务,接受P字段状态标识时钟信号

微命令寄存器:保存读出微指令的操作控制字段和判别测试字段的信息

2.大题部分

由于我看老师说这个必考,所以我给大家复习一下这部分。

这部分考试形式是这样:

考试的形式是让你写出MOV,ADD,LDA,STA指令的执行过程。

做题前我们需要一些前置知识

  • (A)表示取A寄存器的值(通常放在等号左边,传值),A表示这个寄存器(通常放在箭头右边)
  • AR(IR)表示取IR指令中的操作地址,AD(IR)表示取IR指令中的操作数
  • MAR保存的是地址,M(MAR)表示从内存中取MAR中的内容
  • MDR保存的是数据,所以使用MDR的使用不需要加括号
  • 有些指令能写在一行,说明这些指令执行的时候不会产生总线冲突

首先无论是什么指令的执行过程,我们脑子里都要有取指,执行这两个过程(有的可能需要间址周期)。而每个指令的取指过程都是一样的:
T 0 : P C → M A R T 1 : M ( M A R ) → M D R , P C + 1 → P C T 2 : M D R → I R \begin{aligned} T_0:&PC \to MAR \\ T_1:&M(MAR) \to MDR ,PC+1 \to PC\\ T_2:&MDR \to IR \end{aligned} T0​:T1​:T2​:​PC→MARM(MAR)→MDR,PC+1→PCMDR→IR​
这三步基本做题的时候是死的,首先在 T 0 T_0 T0​将PC的地址传给MAR,同时PC自增。然后 T 1 T_1 T1​从内存中取出MAR地址的内容并传送给MDR,此时MDR存放的是指令。接着 T 2 T_2 T2​将MDR的数据传送给IR,取值周期结束。

接下来就要根据指令的功能不同进行不同的流程,但思路都是一样的。我举两个例子给大家说一下:

写出指令ADD # a(#为立即寻址,隐含的操作数在ACC中)在执行阶段的操作序列
T 0 : A D ( I R ) → R 1 T 1 : ( A C C ) + ( R 1 ) → R 2 T 2 : ( R 2 ) → A C C \begin{aligned} T_0:&AD(IR) \to R1 \\ T_1:&(ACC)+(R1) \to R2 \\ T_2:&(R2) \to ACC \end{aligned} T0​:T1​:T2​:​AD(IR)→R1(ACC)+(R1)→R2(R2)→ACC​
首先我们先从IR中取出操作数(AD操作)传送给R1寄存器(因为R1寄存器是ALU寄存器存放加数的)。之后我们在将隐含在ACC的操作数与R1相加,结果保存在R2中。最后将R2寄存器的结果保存在ACC中,执行周期结束。

写出指令LDA @X(将主存地址X中的内容保存至ACC中)的整个指令过程
取 值 阶 段 T 0 : P C → M A R T 1 : M ( M A R ) → M D R , P C + 1 → P C T 2 : M D R → I R 执 行 阶 段 T 3 : A d ( I R ) → M A R T 4 : M ( M A R ) → M D R T 5 : M D R → A C C \begin{aligned} 取值阶段\\ T_0:&PC \to MAR \\ T_1:&M(MAR) \to MDR ,PC+1 \to PC\\ T_2:&MDR \to IR \\ 执行阶段\\ T_3:&Ad(IR) \to MAR \\ T_4:&M(MAR) \to MDR \\ T_5:&MDR \to ACC \end{aligned} 取值阶段T0​:T1​:T2​:执行阶段T3​:T4​:T5​:​PC→MARM(MAR)→MDR,PC+1→PCMDR→IRAd(IR)→MARM(MAR)→MDRMDR→ACC​
在执行阶段中,我们需要将指令中的操作数X取出(Ad操作)并传送给MAR。之后从内存中取出MAR的数据传送给MDR。最后MDR的数据传送给ACC即可。

在做题的时候需要注意以下问题

  1. 使用ALU的时候注意有没有流入ALU的寄存器ALU流出的寄存器
  2. 有时候题目中会有R(读)操作W(写)操作,在对内存进行读写之前需要加上
  3. 如果是立即寻址,ad(IR)取操作数;如果是寄存器间接寻址,ad(IR)取的是寄存器,还需要将寄存器中的地址通过MAR和MDR。

三、Cache的映射问题

考试会考直接相联组相联的问题。这里我就分析一个问题

首先我们对直接映射方式进行分析。

有了上面的分析我们就可以进行计算了。

对于主存地址3200,我们首先要计算出这个3200地址所在的主存块号。
主 存 块 号 = 3200 64 = 50 主存块号=\frac{3200}{64}=50 主存块号=643200​=50
然后根据cache有8行,我们对8取余就可以得到对应的cache行数了
c a c h e 行 号 = 50 % 8 = 4 cache行号=50 \% 8=4 cache行号=50%8=4
即第4行。

PS:如果是按照字寻址,一个字是32位,那么
主 存 块 号 = 3200 64 / 4 = 3200 16 = 200 主存块号=\frac{3200}{64/4}=\frac{3200}{16}=200 主存块号=64/43200​=163200​=200
64 / 4 64/4 64/4是因为此时一个地址存放4字节的数据,则有16个连续的地址对应一个主存块

如果采用2路组相联映射,那么等于8行cache给划分成了4组,每组有2行cache。其原理跟直接映射一样,就相当于此时cache有4行而已。
c a c h e 组 号 = 50 % 4 = 2 cache组号=50\%4=2 cache组号=50%4=2
即地址3200被分到了cache的第2组,也就是映射cache的第4、5行

四、磁盘相关的计算和概念

老师说考试会考到磁盘的问题,我这里也就是分析一道例题。知识点相关的可以看ppt或者我csdn上给整理出的知识。《计算机组成原理》复习第七章

(1)从上面图可以看出,实际存储区域的宽度为5.5cm,由此我们可以根据道密度来计算出磁道总数
磁 道 总 数 = 5.5 × 60 × 4 = 1320 磁道总数=5.5×60×4=1320 磁道总数=5.5×60×4=1320
(2)根据最外层的周长乘以位密度可以得出一条磁道上存储信息的数量,因为每条磁道上存储信息的数量相同,再通过记录面从而得到整个磁盘的容量
磁 盘 容 量 = 2 × 3.14 × 15.5 × 600 × 330 × 8 = 9636660 B 磁盘容量=2×3.14×15.5×600×330×8=9636660B 磁盘容量=2×3.14×15.5×600×330×8=9636660B
(3)若长度超过了一个磁道,那么把文件记录在同一个柱面上比较合理。因为这样做就不需要重新寻找磁道了。

(4)参考ppt

(5)读一个磁盘中数据所用的时间=寻道时间+找扇区的时间+数据传输时间

寻道时间题目给出是10.5ms,找扇区的时间为旋转一周所需时间的一半,也就是转速的倒数再除以2为5ms,数据传输时间为传送一个扇区的数据所需要的时间。我们发现1s可以转100转,每转一次会读取12个磁道,那么1s读取1200个磁道,则
KaTeX parse error: No such environment: align* at position 8: \begin{̲a̲l̲i̲g̲n̲*̲}̲ 平均存取时间=&10.5ms…

五、浮点数计算问题

关于IEEE754标准的浮点数,考察最多的就是32和64位浮点数,其数据格式为:

其中S为符号位,E为阶码(移码表示),M为尾数位。其32位浮点数的数值表示为
真 值 = ( − 1 ) S × 1. M × 2 E − 127 真值=(-1)^S×1.M×2^{E-127} 真值=(−1)S×1.M×2E−127
浮点数的运算问题的步骤如下:

  • 先将x,y转为补码
  • 对阶,小阶向大阶看齐
  • 进行运算
  • 规格化,左规(非规格化)和右规(溢出,修改符号位)
  • 舍入,一般0舍1入

我们来分析一道例题,求[x+y]的值

首先先对x,y进行取补操作
[ x ] 补 = 00.100101 , 阶 码 为 − 011 [ y ] 补 = 11.100010 , 阶 码 为 − 010 [x]_{补}=00.100101,阶码为-011\\ [y]_补=11.100010,阶码为-010 [x]补​=00.100101,阶码为−011[y]补​=11.100010,阶码为−010
我们判断x的阶码(-3)小于y的阶码(-2),则x向y看齐,阶码+1同时尾数右移(变小)
[ x ] 补 = 00.010010 ( 1 ) , 阶 码 为 − 010 [ y ] 补 = 11.100010 , 阶 码 为 − 010 [x]_{补}=00.010010(1),阶码为-010\\ [y]_补=11.100010,阶码为-010 [x]补​=00.010010(1),阶码为−010[y]补​=11.100010,阶码为−010
接着我们进行尾数加法操作,得到结果为
[ x + y ] 补 = 11.110100 ( 1 ) [x+y]_补=11.110100(1) [x+y]补​=11.110100(1)
此时尾数是非规格化小数,而负数的规格化形式为11.0XXX,我们需要左规,同时阶码减小。规格化后的结果为:
[ x + y ] 补 = 11.010010 , 阶 码 为 − 100 [x+y]_补=11.010010,阶码为-100 [x+y]补​=11.010010,阶码为−100

如果规格化前发生了溢出,即双符号位为01或10,不能判断结果为溢出,现金新规格化操作。若规格化后仍溢出,则证明结果溢出。

则结果真值为
2 − 4 × ( − 0.101110 ) = − 23 512 2^{-4}×(-0.101110)=-\frac{23}{512} 2−4×(−0.101110)=−51223​

六、芯片字位扩展问题

这部分大题小题都会考。

芯片通常会有地址线和数据线。地址线取决于芯片的存储容量,数据线取决于芯片的存储字长。假如说一个芯片是4K×8位,说明地址线有12根( 2 12 = 4 K 2^{12}=4K 212=4K),数据线有8根(每根数据线对应一位数据)

我们看一下这道题:

CPU的地址总线为24根,说明内存寻址空间为 2 24 2^{24} 224,每个地址存储的数据字长为32b,也就是4B。而计算芯片的个数,我们可以容易得出
芯 片 个 数 = 2 24 × 32 2 19 × 8 = 128 个 芯片个数=\frac{2^{24}×32}{2^{19}×8}=128个 芯片个数=219×8224×32​=128个
大题可能主要是关于芯片与CPU的连线问题。分别有①地址线的连接②数据线的连接③读/写命令线的连接④片选线的连接

字扩展

字扩展这里需要注意:

  • 芯片间的地址线可以公用,但数据线不能公用。
  • 读写线也是公用的。

位扩展

由于位扩展扩充了存储容量,导致寻址空间变大,所以地址线位数也会增多。但每个芯片所能接受的地址线却没有改变。这就需要多余的地址线当作片选线。

位扩展需要注意的是:

  • 数据总线可以公用,低地址的地址线可以公用
  • 高地址的地址线(片选线)则充当了控制电路

最后给大家总结一下比较重要的内容:

  1. 计算机的MIPS、时钟周期、主频的计算
  2. 已知 [ x ] 补 [x]_补 [x]补​求 [ − x ] 补 [-x]_补 [−x]补​
  3. 数值表示的范围
  4. DRAM、SRAM、ROM之间的区别
  5. TLB,Page,Cache,内存数据存在性的关系
  6. 不同寻址方式中操作数A的含义
  7. 对于多地址指令,如何分配指令长度。他们的特点和区别
  8. CPU的结构和数据通路!!!
  9. 微程序控制器结构!!!微程序、微指令、微命令的关系
  10. 指令流水线的相关计算:加速比、吞吐率、效率
  11. 总线的分类,三种仲裁方式、三种通信方式与应用
  12. RAID0-5的特点(有无校验,有无冗余,有无镜像)
  13. 中断和DMA!!!

由于本人的水平有限,能补充的知识也就这些,剩下的全靠同学们的努力和付出。

大家加油!
B y L a n g Z h i Z h e n By \quad LangZhiZhen ByLangZhiZhen

《计算机组成原理》期末习题讲解和重点复习内容相关推荐

  1. 中断原理在计算机中的应用,计算机组成原理期末考试简答题重点

    6.DMA方式和程序中断方式比较有什么不同? DMA:采用内在和外设直接数据交换的方式,只有当有一段数据传送时才会请求CPU中断,减少了CPU的负担. 程序中断:只适用于简单的少量外设的计算机系统,会 ...

  2. 简述中断处理的6个步骤_计算机组成原理期末考试简答题重点分解

    一.简答题 1.试述浮点数规格化的目的和方法. 答:浮点的规格化是为了使浮点数尾数的最高数值位为有效数位.当尾数用补码表示时,若符号位与小数点后的第一位不相等,则被定义为已规格化的数,否则便是非规格化 ...

  3. 计算机组成原理 北理,北京理工大学计算机组成原理期末复习.pdf

    计算机组成原理 期末复习 北京理工大学管理与经济学院 关磊 博士 提纲 内容回顾 练习题 2014年6月 北京理工大学管理与经济学院关磊博士 内容回顾 第1章引言 第2章数据表示 方法与数字逻辑 第3 ...

  4. 计算机组成原理考试知识点总结,最新2018计算机组成原理期末复习考试知识点复习考点归纳总结总结...

    电大计算机组成原理期末复习考试考点 归纳总结 科学研究和工程技术计算是计算机最早的领域. 信息处理是计算机应用的最广泛的领域. 计算机系统分为硬件和软件两大部分.硬件是实体部件,是看得见摸得着的.软件 ...

  5. 长春工业大学计算机组成原理考试开卷考吗,计算机组成原理期末复习资料

    长春工业大学人文信息学院 计算机星系工程系 计算机组成原理 期末复习资料 计算机组成原理 一.缩写词解释 CPU:中央处理器 ALU:算术逻辑单元 I/O:输入输出接口 RAM:随机存储器 SRAM: ...

  6. 某微型计算机指令格式如图,计算机组成原理期末复习试题2套不含答案

    计算机组成原理期末复习试题2套不含答案 (8页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 附录C:<计算机组成原理>期末试卷样 ...

  7. 计算机组成原理期末复习第三章-3(唐朔飞)

    计算机组成原理期末复习第三章-3(唐朔飞) ✨欢迎关注

  8. BISTU计算机组成原理期末复习指导

    BISTU计算机组成原理期末复习指导 一.学时分配 计算机系统概论(2学时) 运算方法和运算器(12学时) 存贮器(10学时) 指令系统(4学时) 中央处理器(14学时) 输入输出系统(6学时) 二. ...

  9. 南通大学计算机组成原理期末考试题,南通大学计算机组成原理期末考试范围.docx...

    南通大学计算机组成原理期末考试范围 计算机组成原理选择填空题 15分填空题 20 分计算题 50分设计题 15分第一章计算机的主要性能指标冯·诺依曼型计算机的体系结构.组成部分控制器的基本任务计算机系 ...

最新文章

  1. Python-EEG工具库MNE中文教程(12)-注释连续数据
  2. OVS对VXLAN报文解封包
  3. ubuntu 12.04 解压安装jdk
  4. redis常用命令(一)
  5. SEO全套精品教程价值300元[159课]
  6. Oracle开发常用知识
  7. 05 MapReduce应用案例03
  8. 3224: Tyvj 1728 普通平衡树
  9. 5404. 用栈操作构建数组
  10. 在线代码编辑器 CodeMirror 配置说明 - javascript开发的代码语法高亮显示引擎
  11. 一键提升多媒体内容质量:漫谈图像超分辨率技术
  12. 使用ASP.NET Core、JavaScript和Angular防止CSRF攻击
  13. 5-5图层的链接-新版本不常用
  14. perl 安装 ZooKeeper模块
  15. 基于单片机的自动加热水壶控制器代码_应用于实时温度控制的单片机设计
  16. 开始→运行(cmd)命令大全(绝对经典)
  17. golang版微信小程序图片上传,服务器保存
  18. vim---操作命令大全
  19. 思博伦spirent testcenter 抓包,过滤特定报文
  20. uma是什么意思_UMA是什么意思?

热门文章

  1. iOS编程------SQLite / 数据库
  2. DEP6957: 未能使用“通用身份验证”连接到设备“127.0.0.1”
  3. 江西师大计算机系周洁,江西师大2005年学习之星申报者汇总表.doc
  4. MySQL中查看数据库
  5. 我认得embdedding
  6. itextsharp 获取文本_利用iTextSharp提取PDF文件中的文本内容
  7. [生活] 领带的打法
  8. Markdown使用进阶教程
  9. php页眉,自定义页眉
  10. 【echarts应用】---pie饼图篇