-
数据总线:传输数据
-
地址总线:传输地址数据(单向传输)
-
控制总线:传输控制信号(对任一控制线而言是单向,对总体而言是双向)
- 通信总线:用于计算机系统之间的通信
-
串行通信,远距离传送,几米到数千千米
-
并行通信,小于30米
-
机械特性:总线在机械连接方式上的一些性能
-
电气特性:总线的每一根传输线上的信号传递方向和有效的电平范围
-
功能特性:每一根传输线的功能
-
时间特性:总线的任一根线在什么时间内有效
-
PCI总线,现代计算机最常用的总线之一。具有高性能、良好的兼容性、支持即插即用的特点
-
USB总线,具有即插即用特性、很强的连接能力、标准统一的特点
其他的还有 ISA总线、EISA总线、VL-BUS总线、PCI-Express总线、AGP总线,RS-232C总线(低电平表示逻辑“1”)
-
单总线结构,相对于多总线工作效率低
-
多总线结构
- 总线判优控制
-
链式查询(电路最简单,但优先级差别大)
-
计数器定时查询
-
独立请求方式(电路最复杂,但优先级分配平均)
- 总线通信控制
-
同步通信:通信双方由统一时钟控制数据传送。规定明确统一,简单,但时钟按最慢的部件来设计,影响效率
-
异步通信
-
不互锁:主模块发送请求信号后经过一段时间便撤销信号
-
半互锁:主模块发送请求信号后,待收到从模块的回答信号后撤销请求信号,从模块一段时间后变撤销回答信号
-
全互锁:主模块发送请求信号后,待收到从模块的回答信号后撤销请求信号,然后主模块发送信号通知从模块撤销回答信号
-
半同步通信:既有同步通信的特点(按照时钟进行),又有异步通信的特点(允许模块速度不同)
==================================================================
-
主存中存储单元的地址分配
-
主存的技术指标
-
存储容量:主存的单位为存储单元,一个存储单元存放的二进制位数为存储字长。故存储容量 = 存储单元个数 × 存储字长
-
存储速度:存取时间是指启动一次存储器操作到完成该操作所需要的时间。存取周期是指存储器进行连续两次独立的存储器操作所需的最小间隔时间
-
存储器带宽指单位时间内存储器存取的信息量。提高存储器带宽的措施:缩短存取周期、增加存储字长、增加存储体
-
存储器的位扩展:增加存储字长(扩展数据线)
-
存储器的字扩展:增加存储器字的数量(扩展地址线,即增加存储容量)
-
存储器字、位扩展设计例题基本步骤
-
将十六进制地址范围转换成二进制地址码
-
根据地址范围的容量,选择存储芯片
-
分配CPU地址线
-
片选信号形成(通常使用74138译码器)
-
基于程序的局部性原理,Cache的出现解决目前主存速度远低于CPU的问题
-
工作原理:将主存与Cache分成若干大小相同的块,每块内包含若干个字。故主存和Cache中的地址分为块号和块内地址。当CPU读取数据某字时,若该字不在Cache中,则会将主存中该字所在的整个块的数据调入Cache中,此时表示CPU访问Cache未命中;若该字在Cache中,表示CPU访问Cache命中。
-
Cache的命中效率、Cache-主存系统的平均访问时间、访问效率的计算
-
Cache的读写操作
-
Cache的改进
-
Cache-主存地址映射
-
直接映射
-
全相联映射
-
组相联映射
-
不同映射方式下主存地址格式的计算
- Cache替换策略
-
FIFO算法
-
LRU算法
-
随机法
=====================================================================
-
I/O软件:I/O指令、通道指令
-
I/O硬件设备
-
程序查询方式:由CPU通过程序不断查询I/O设备是否已经做好准备,从而控制I/O设备与主机交换信息。这种方式使CPU和I/O设备处于串行工作状态,CPU的工作效率不高
-
程序中断方式:当I/O设备准备就绪后向CPU发出中断请求,CPU响应中断请求,与I/O设备交换信息。这种方式CPU的工作效率较高。
-
DMA方式:主存与I/O设备有一条数据通路,交换信息时I/O设备无需向CPU发送中断请求。(若DMA和CPU同时访问主存,CPU将优先权让给DMA,即窃取)。这种方法进一步提高CPU的利用率。
-
中断的概念: 计算机在执行程序过程中,当出现异常情况或特殊请求时,计算机停止现行程序的运行,转向对这些异常情况或特殊请求的处理,处理结束后再返回到现形程序的间断处,继续执行原程序。
-
程序中断的接口电路
-
中断请求触发器和中断屏蔽触发器
-
中断向量地址形成部件
- I/O中断处理的过程
-
CPU响应中断的条件和响应时间
-
I/O中断处理过程
- 中断服务程序的流程
-
保护现场
-
中断服务
-
恢复现场
-
中断返回
- 单重中断与多重中断服务程序的区别
-
引入DMA方式的原因
-
DMA的定义
-
DMA方式的特点
-
DMA与主存交换数据的三种方式
-
停止CPU访问主存: DMA直接抢占主存控制权,数据传送结束后交回给CPU
-
周期挪用(周期窃取):I/O发出DMA请求时,I/O挪用或窃取总线占用权的一个或者几个主存周期
-
DMA与CPU交替访问:DMA与CPU以固定时间轮流获得主存控制权
-
DMA接口的功能和组成
-
DMA的工作过程
=======================================================================
-
机器数的表示方法:原码、反码、补码和移码
-
定点数和浮点数的表示方法
-
定点运算:不同编码算术移位的规则、补码加减法运算、原码移位乘除运算原理
-
浮点运算:加减运算的步骤
-
快速进位链:串行进位链和并行进位链
-
原码、补码移位乘除法原理
功能
-
实现数据的算术和逻辑运算,包含溢出判断,有无进位,判零等
-
暂存参加运算的数据和中间结果,由其内部的一组寄存器承担
-
为了实现乘除运算,运算器设有能自行左右移位的专用寄存器,称为乘商寄存器
组成
-
ALU
-
寄存器组
-
移位寄存器
-
多路选通门
===================================================================
-
指令格式:操作码和地址码、操作码扩展及计算
-
操作类型和操作数类型
-
寻址方式
-
指令寻址:顺序寻址、跳跃寻址(转移类指令实现)
-
数据寻址
- 数据寻址方式
-
立即寻址:操作数本身在指令中,不用访问存储器
-
直接寻址:操作数的有效地址在指令中,通过有效地址访问存储器取出操作数
-
隐含寻址:操作数的地址隐含在操作码或某个寄存器中
-
间接寻址:操作数有效地址的地址在指令中,先从存储器中取出有效地址,再访问存储器取出操作数
-
寄存器寻址:指令中给出操作数在寄存器中的有效地址,用改地址从寄存器中取出操作数
-
寄存器间址:指令中给出操作数的间址,根据间址从寄存器中取出有效地址,再根据有效地址访问存储器取出操作数
-
基址寻址:设有基址寄存器BR存有基地址,指令中给出形式地址。根据基地址与形式地址之和访问存储器取出操作数
-
变址寻址:与基址寻址以为相似,将变址寄存器IX与指令中的形式地址之和访问存储器取出操作数
-
相对寻址:根据程序计数器PC的值和指令中形式地址之和访问存储器取出操作数
-
堆栈寻址:从堆栈中取出操作数有效地址
- RISC与CISC
-
RISC(精简指令系统计算机):80-20规律
-
CISC(复杂指令系统计算机):控制器大多采用微程序控制
========================================================================
取指令、分析指令、执行指令
ALU(算术逻辑单元)、寄存器、中断系统、CU(控制单元)
-
用户可见寄存器: 通用寄存器、数据寄存器、地址寄存器、条件码寄存器
-
控制和状态寄存器
-
MAR(存储器地址寄存器):存放CPU欲访问的存储单元地址
-
MDR(存储器数据寄存器):存放需要CPU处理的数据
-
PC(程序计数器):存放下一条指令的地址
-
IR(指令寄存器):存放欲执行的指令
1.定义
定义:从开始取指到执行完指令的时间(无条件转移指令、加法指令和乘法指令三者区别)
间接寻址的定义
2.四个部分
一个完整的指令周期包含取指、间址、执行、中断四个部分
3.指令周期的数据流
见文章《计算机组成原理》指令周期数据流的详解blog.csdn.net/Dae\_Lzh/ar…
4.指令流水
-
例如执行部件执行指令时,取指部件取下一条指令,原理类似工厂流水线
-
六级流水及影响因素
中断系统解决的问题
1、各中断源如何向CPU提出中断请求
2、多个中断源同时提出请求是,中断系统按照何种优先级响应中断请求
3、CPU在什么条件、什么时候、什么方式来响应中断
4、CPU响应中断后如何保护现场
5、CPU响应中断后,如何停止原程序执行进而转入中断服务程序的入口地址
6、中断服务程序结束后,CPU如何恢复现场,如何返回原程序的间断处
7、在中断处理过程中又出现了新的中断请求,CPU该如何处理
中断请求标记
中断系统中设置中断请求触发器 INTR,其状态为“1”时表示有中断请求
中断判优逻辑
-
硬件排队:链式排队器、CPU内排队器
-
软件排队:通过编写软件查询程序实现
最后
🍅 硬核资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。
🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。
🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。
🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。