复试——计算机组成原理

文章最后补充了一些可能会被问到的概念啥的

第一章 概述

冯诺依曼计算机:
将指令以代码的形式事先输入到计算机主存储器中,然后按其在存储器中的首地址执行程序的第一条指令,以后就按照该程序的规定顺序执行其他命令,直至程序执行结束。
特点:
1、计算机硬件系统是由运算器、存储器、控制器、输入设备和输出设备五大部件组成
2、指令和数据以同等地位存于存储器中,并可按地址寻访
CPU区分指令和数据的依据:指令周期的不同阶段
3、指令和数据均用二进制代码表示
4、指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置
5、指令在存储器内按顺序存放。通常,指令是按顺序执行的,在特定条件下,可根据运算结果或根据设定的部件改变执行顺序
6、早起的冯诺依曼机以运算器为中心,输入/输出设备通过运算器和存储器传送数据

机器字长、指令字长、存储字长区别
机器字长:计算机可直接处理的二进制数据位数,一般等于CPU内部寄存器的大小
指令字长:一个指令字包含的二进制代码位数(一般为存储字长的整数倍)
存储字长:一个存储单元存储的二进制代码长度(MDR的位数)

计算机系统的层次结构
虚拟机器M3(高级语言机器)——用编译程序编译成汇编语言程序
虚拟机器M2(汇编语言机器)——用汇编程序翻译成机器语言程序,与机器语言一一对应
传统机器M1(用机器语言的机器)——直接执行二进制代码

第二章 数据的表示和运算

在计算机中为什么采用二进制表示数据
1、从可行性角度,二进制只有两种状态0和1,很多电子元件都能表示这两种状态
2、从运算简易性角度,二进制运算法则少,运算简单,有利于简化计算机硬件结构
3、从逻辑角度,0和1对应逻辑代数的假和真,有逻辑代数理论基础

浮点数加减运算步骤
1、对阶:对齐小数点位置,原则是小阶向大阶看齐
2、尾数求和:对阶后的尾数按定点数加减法运算规则运算
3、规格化:将求和之后的尾数进行规格化
4、舍入:规格化之后可能会将尾数低位丢失,引起误差,影响精度,因此需要舍入
5、溢出判断

第三章 存储系统

存取时间和存取周期的区别
存取时间:从启动一次存储器到完成该操作的时间
存取周期:两次独立访问存储器操作之间的最小间隔
存取周期 = 存取时间 + 恢复时间

半导体随机存取存储器
SRAM由双稳态触发器构成,速度快,非破坏性读出,用来做高速缓冲存储器(Cache)
DRAM由电容来存储数据,破坏性读出,需要刷新,用作内存,采用地址复用技术
SRAM与DRAM的区别图:
在这里插入图片描述
多体存储器——高位交叉编址
高位是体号,低位是体内地址,连续的地址在同一个模块中
在这里插入图片描述
多体存储器——低位交叉编址
高位为体内地址,低位为体号,连续的地址在不同的模块中,可以通过流水线技术降低存取时间
在这里插入图片描述
Cache与主存的映射方式有哪些
**直接映射:**主存块放在Cache的唯一位置
主存地址:【主存字块标记】【Cache字块地址】【字块内地址】
**全相联映射:**主存块可放在Cache的任意位置
主存地址:【主存字块标记】【字块内地址】
**组相联映射:**将Cache分为若干组,主存块可放在每组的任意位置
主存地址:【主存字块标记】【组地址】【字块内地址】

Cache替换算法
1、随机算法:随机地确定替换的Cache块
2、先进先出算法FIFO:选择最早调入的行进行替换,但也没有依据程序访问的局部性原理
3、近期最少使用算法LRU:依据程序访问的局部性原理选择近期内长久未访问过的存储行作为替换的行
4、最不经常使用算法LFU:将一段时间内被访问次数最少的存储行换出

Cache写策略
写策略—命中:写回法
若命中,则只修改Cache,不修改主存;只有当该块被覆盖时,才修改主存内的内容
写策略—命中:写直通法(全写法)
若命中,则不仅修改Cache,且修改主存的内容
写策略—未命中:写分配法
若未命中,先加载主存到Cache当中,然后在Cache中修改
一般搭配写回法
写策略—未命中:非写分配法
若未命中,则直接在主存中进行修改,不调入Cache
一般搭配写直通法

第四章 指令系统

指令的寻址方式有哪些
1、指令寻址
①、顺序寻址:通过程序计数器(PC)加一,自动生成下一条指令的地址
②、跳跃寻址:通过转移指令实现,由本条指令给出下一条指令地址的计算方式
2、数据寻址
(以下访存次数均不包括向主存中存结果)
①、隐含寻址
②、立即数寻址:直接给出操作数,访存1次
③、直接寻址:给出操作数在主存中的地址,访存2次
④、间接寻址:给出操作数在主存中的地址的地址,访存3次
⑤、寄存器寻址:给出存储操作数的寄存器地址,访存1次
⑥、寄存器间接寻址:在寄存器中给出操作数在主存中的地址,访存2次
⑦、相对寻址:给出相对于当前指令的位移量
⑧、基址寻址:给出相对于基址寄存器中地址的位移量,基址寄存器中的值一般不可变,多用于多道程序设计
⑨、变址寻址:给出相对于变址寄存器中地址的位移量,变址寄存器中的值由用户指定,可变,多用于数组
⑩、堆栈寻址:操作数存放在堆栈中,隐含使用堆栈指针(SP)作为操作数地址

复杂指令集计算机CISC与精简指令集计算机RISC
CISC:指令集复杂,数目多,指令长度不固定,寻址方式多,采用微程序控制,可使用的通用寄存器数量很少,代码很难优化
RISC:指令集简单,数目少,定长指令,采用组合逻辑控制,寻址方式少,采用组合逻辑控制,可使用通用寄存器数量多,可以采用优化手段生成高效代码

第五章 中央处理器

CPU的功能
1、指令控制:完成取指令、分析指令和执行指令的操作,即程序的顺序控制
2、操作控制:一条指令的功能往往是由若干操作信号的组合来实现的。CPU管理并产生由内存取出的没条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作
3、时间控制:对各种操作加以时间上的控制。时间控制要为每条指令按时间顺序提供应有的控制信号
4、数据加工:对数据进行算数和逻辑运算
5、中断处理:对计算机运行过程中出现的异常情况和特殊请求进行加工处理

CPU的组成
运算器
1、算数逻辑单元(ALU)
2、累加寄存器(ACC)
3、程序状态字寄存器(PSW)
4、通用寄存器
5、暂存寄存器、移位器、计数器
控制器
1、程序计数器(PC)
2、指令寄存器(IR)
3、指令译码器(ID)
4、存储器地址寄存器(MAR)
5、存储器数据寄存器(MDR)
6、时序系统、微操作信号发生器

CPU基本结构
在这里插入图片描述
什么是指令周期、机器周期和时钟周期
指令周期:CPU每取出并执行一条指令所需的全部时间
机器周期:执行指令周期中一步相对完整的操作所需的时间(如取值周期),通常取机器周期为存取周期
时钟周期:计算机主频的倒数,是计算机运行的最基本时序单位
指令周期常常用若干机器周期来表示
一个机器周期又包含若干个时钟周期
每个指令周期内机器周期数可以不等,每个机器周期内的节拍数也可以不等

指令周期流程
取指周期:取指令
间址周期:取地址
执行周期:存取操作数或结果
中断周期:存程序断点

取指周期:
①、当前指令地址送至存储器地址寄存器 (PC)-》MAR
②、CU发出控制信号,经控制总线传到主存,这里是读信号 1-》R
③、将MAR所指主存中的内容经数据总线送入MDR M(MAR)-》MDR
④、将MDR中的内容(指令)送入IR (MDR)-》IR
⑤、CU发出控制信号,形成下一条指令地址 (PC)+1-》PC
在这里插入图片描述
间址周期(一次间址为例):
①、将指令的地址码送入MAR Ad(IR)-》MAR 或 Ad(MDR)-》MAR
②、CU发出控制信号,启动主存做读操作 1-》R
③、将MAR所指主存中的内容经数据总线送入MDR M(MAR)-》MDR
在这里插入图片描述
执行周期
没有统一的数据流向

中断周期
中断:暂停当前任务去完成其他任务
步骤:形成断点并保存;形成中断服务程序入口地址;关中断
一般用堆栈来保存断点,这里用SP表示栈顶地址,假设SP指向栈顶元素,进栈操作时先修改指针,后存入数据
①、CU控制将SP减1,修改后的地址送入MAR (SP)-1-》SP,(SP)-》MAR
②、CU发出控制信号,启动主存做写操作 1-》W
③、将断点(PC内容)送入MDR (PC)-》MDR
④、CU控制将中断服务程序的入口地址送入PC 向量地址-》PC

控制器是计算机系统的指挥中心(控制器功能):
1、从主存中取出一条指令,并指出下一条指令在主存的位置
2、对指令进行译码和测试,产生相应的操作控制信号,以便启动规定的动作
3、指挥并控制CPU、主存、输入输出设备之间的数据流动方向

**硬布线工作原理:**微操作控制信号由组合逻辑电路根据当前的指令码、状态和时序,即时产生
**微程序工作原理:**事先把微操作控制信号存储在一个专门的存储器(控制存储器)中,将每一条机器指令编写成一个微程序,这些微程序可以存到一个控制存储器中,用寻址用户程序机器指令的办法来寻址每个微程序中的微指令
在这里插入图片描述

影响流水线的因素
1、结构相关(资源冲突)
由于多条指令在同一时刻争用统一资源而形成的冲突称为结构冲突
解决办法:后一相关指令暂停一周期,或者资源重复配置
2、数据相关(数据冲突)
指在一个程序中,存在必须等前一条指令执行完才能执行后一条指令的情况,则这两条指令即为数据相关
解决方法:把遇到数据相关的指令及其后续指令都暂停一至几个时钟周期,直到数据相关问题消失之后再继续执行;数据旁路技术,前一条指令的结果不用写回寄存器组,直接作为后一条指令的输入;编译调整顺序
3、控制相关(控制冲突)
当流水线遇到转移指令和其他改变PC值的指令而造成断流时,会引起控制相关
解决办法:尽早判别转移是否发生,尽早生成转移目标地址;预取转移成功和不成功两个控制流方向上的目标指令;提高转移方向的猜准率

第六章 总线

总线:
一组能为多个部件分时共享的公共信息的传送线路
分时和共享是总线的两个特点
分时:同一时刻只允许有一个部件向总线发送两个信息
共享:指总线上可以挂接多个部件,各个部件之间互相交换的信息都可通过这组线路分时共享

数据总线和数据通路的区别
数据总线:承载数据的媒介
数据通路:各个功能部件通过数据总线连接形成的数据传输路径

系统总线结构
1、单总线结构
CPU、主存、I/O设备(通过I/O接口)都连接在一组总线上,允许I/O设备之间、I/O设备与CPU之间或I/O设备与主存之间直接交换信息
2、双总线结构
一条是主存总线,用于在CPU、主存和通道之间传送数据;另一条是I/O总线,用于在多个外部设备与通道之间传送数据
3、三总线结构
在计算机系统各部件之间采用3条各自独立的总线来构成信息通路,这3条总线分别为主存总线、I/0总线和直接访问内存的DMA总线

总线仲裁的方式有哪些
1、链式查询方式
总线上所有的部件共用一根总线请求线,当有部件请求使用总线时,需经此线发总线请求信号到总线控制器,由总线控制器检查总线是否忙,若总线不忙,则立即发总线响应信号,经总线响应线BG串行地从一个部件传送到下一个部件,依次查询。
特点:离总线控制器越近的部件优先级越高

2、计数器定时查询方式
采用一个计数器控制总线使用权,它相对链式查询方式多了一组设备地址线,少了一根总线响应线BG。它仍用一根总线请求线,当总线控制器收到总线请求信号并判断总线空闲时,计数器开始计数,计数值通过设备地址线发向各个部件。当地址线上的计数值与请求使用总线设备的地址一致时,该设备获得总线控制权,同时中止计数器的计数和查询

3、独立请求方式
每个设备都有一堆总线请求线BRi和总线允许线BGi。当总线上的部件需要使用总线时,经各自的总线请求线发送总线请求信号,在总线控制器中排队,当总线控制器按一定的优先次序批准某个部件请求时,给该部件发送总线响应信号,该部件接到此信号后就获得了总线使用权,开始传送数据
在这里插入图片描述
I/O控制方式
1、程序查询方式:
由CPU通过程序不断查询I/O设备是否已做好准备,从而控制I/O设备与主机交换信息
流程:
1、CPU执行初始化程序,并预置传送参数
2、向I/O接口发送命令字,启动I/O设备
3、CPU从接口读取设备状态信息
4、CPU不断查询I/O设备状态,直至外设准备就绪
CPU一旦启动I/O,必须停止现行程序的运行,并在现行程序中插入一段程序
5、传送一次数据
6、修改地址和计数器参数
7、判断传送是否结束,若未结束则转到第三步,直至计数器为0

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

中断的工作流程:
①、中断请求:中断源向CPU发送中断请求信号
②、中断响应:响应中断的条件
中断判优:多个中断源同时提出请求时通过中断判优逻辑响应一个中断源
③、中断处理:中断隐指令、中断服务程序

CPU响应中断必须满足三个条件:
①、中断源有中断请求
②、CPU允许中断即开中断
③、一条指令执行完毕,且没有更紧迫的任务

中断隐指令
软件无法完成保存PC的任务,应由硬件实现:中断隐指令
主要任务:
①、关中断:在中断服务程序中,为了保护中断现场(即CPU主要寄存器中的内容)期间不被新的中断所打断,必须关中断,从而保证被中断的程序在中断服务程序执行完毕后能接着正确执行下去
②、保存断点:为了保证中断服务程序执行完毕后能正确地返回到原来的程序,必须将原来程序的断点(即程序计数器PC 的内容)保存起来。可以存入堆栈或者指定单元
③、引出中断服务程序。引出中断服务程序的实质是取出中断服务程序的入口地址并传送给程序计数器PC

中断服务程序的主要任务
①、保存现场
一是保存程序断点PC,这已由中断隐指令完成
二是保存通用寄存器和状态寄存器的内容,由中断服务程序完成,可以使用堆栈或者特定存储单元
②、中断服务(设备服务)
主体服务,如通过程序控制需打印的字符代码送入打印机的缓冲存储器中
③、恢复现场
通过出栈指令或取数指令把之前保存的信息送回寄存器中
④、中断返回
通过中断返回指令回到原程序断点处

中断处理过程
在这里插入图片描述
程序中断方式工作图示
在这里插入图片描述
3、DMA方式:
主存和I/O设备之间有一条数据通路,当主存和I/O设备交换信息时,无需调用中断服务程序
在这里插入图片描述
DMA与中断方式比较
在这里插入图片描述
4、通道方式:
在系统中设有通道控制部件(微型CPU),每个通道都挂接若干外设,主机在执行I/O命令时,只需启动有关通道,通道将执行通道程序,从而完成I/O操作

一些概念(部分在上面文章中重复出现过的概念未添加)

1、输入设备:主要功能是将程序和数据以机器所能识别和接受的信息形式输入计算机
2、输出设备:任务数是将计算及处理的结果以人们能接受的形式或其他系统所要求的信息形式输出
3、存储器:是计算机的存储部件,用来存放程序和数据
4、运算器:是计算机的执行部件,用于对数据进行加工处理,完成算术运算和逻辑运算
5、控制器:是计算机的指挥中心,由其“指挥”各部件自动协调地进行操作
6、机器字长:指计算机进行一次整数运算所能处理的二进制数据的位数
7、指令字长:一个指令字中所包含的二进制代码的位数
8、存储字长:一个存储单元存储的二进制代码的位数
9、无符号数:整个机器字长的全部二进制位均为整数位
10、有符号数:将符号数值化,通常约定二进制数的最高位为符号位,组成有符号数
11、溢出:指运算的结果超出了数的表示范围。通常称大于机器所能表示的最大正数为上溢,称小于机器所能表示的最小负数为下溢
12、随机存储器RAM:存储器的任何一个存储单元的内容都可以随机存取,而且存取的时间与存储单元的物理位置无关
13、只读存储器ROM:存储器的内容只能随机读出而不能写入,信息一旦写入存储器就固定不变,即使断电也不会丢失
14、位扩展法:CPU的数据线数与存储器芯片的数据位数不一定相等,就必须对存储芯片进行扩位(即进行位扩展,用多个存储器件对字长进行扩充,以增加存储字长)
15、字扩展法:指增加存储器中字的数量,,而位数不变。字扩展将芯片的地址线、数据线、读写控制线相应并联,而在片选信号来区分各芯片的地址范围。
16、时间局部性原理:指在最近的未来要用到的信息,可能是现在正在使用的信息
17、空间局部性原理:指在最近的未来要用到的信息,可能与现在正在使用的信息在存储空间上是邻近的
18、虚拟存储器:将主存或辅存的地址空间统一编址,形成一个庞大的地址空间,在这个空间内,用户可以自由编程,而不必在乎实际的主存容量和程序在主存中实际的存放位置
19、指令:又称机器指令,指示计算机执行某种操作的命令,是计算机运行的最小功能单位
20、指令集:一台计算机的所有指令的集合构成该机的指令系统,也称指令集
21、流水线:计算机的流水线把一个重复的过程分解为若干子过程,每个子过程与其他子过程并行执行。
22、I/O接口:是主机和外设的交接界面,通过接口可以实现主机和外设之间的信息交换
23、中断:指在计算机执行现行程序时,出现某些急需处理的异常情况或特殊请求,CPU暂时中止现行程序,而转去对这些异常情况或特殊请求进行处理,在处理完毕后CPU又自动返回到现行程序的断点处,继续执行现程序

  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值