计算机组成原理
计算机组成测试
计算机组成
简介
解释概念
计算机系统是由计算机硬件与计算机软件构成的。
计算机硬件是计算机的实体部分。
计算机软件是由看不见摸不着的,由人们事先编制的具有各类特殊功能的程序构成,通常分为系统软件、应用软件。
高级语言:不必了解、掌握实际机器的机型,内部具体组成及其指令系统,只要掌握这类语言的语法就可以直接用来编程。
汇编语言:用符号ADD、SUB、MVL、DIV、等分别表示加减乘除不必使用二进制代码来编写程序。
机器语言:用0、1代码来表示的语言,可以直接在机器上执行。
差别与联系:机器语言可以直接在机器上执行,汇编语言必须用汇编语言程序翻译成机器语言程序才可以运行。高级语言则需要先转变为汇编语言再转变为机器语言才能执行。
冯诺依曼计算机 特点
由运算器、存储器、控制器、输入设备、输出设备五大部分构成。
指令和地址以同等地位存放于存储器内,并可按地址寻访。
指令和地址均用二进制表示。
指令由操作码和地址码组成,操作码表示操作的性质,地址码用来表示操作数在存储器中的位置。
主机:CPU与主存构成。
CPU:由运算器和控制器构成。
主存:包括存储体M,各种逻辑部件及控制电路等。
存储单元:由若干个存储原件构成,可存储一串二进制代码。
存储元件:可存储以为二进制代码。
机器字长:CPU一次能处理数据的位数。
指令字长:机器指令中二进制代码的总位数。
CPU:中央处理器。
PC:程序计数器。
IR:指令寄存器。
CU:控制单元。
ALU:算术逻辑单
ACC:累加器。
MAR:存储器地址寄存器。
MDR:存储器数据寄存器。
I/O:分为I/O设备和I/O接口两个部分。
MIPS:百万条指令每秒。
CPI:执行一条指令所需的时钟周期。
FLOPS:浮点运算次数每秒。
总线带宽:总线的数据传输速率及单位时间内,总线上传输数据的位数通常用每秒传输信息的字节数来衡量。
总线复用:一条信号线上分时传送两种信号。
总线的主设备(或主模块):对总线有控制权。
总线的从设备(或从模块):只能响应主设备,对总线没有控制权。
总线的传输周期:将完成一次总线操作的时间称为总线的传输周期。
主存:可以和CPU直接交换信息的存储器(DRAM+ROM)。
辅存:主存的后援存储器用来存放当前暂时不用的程序和数据,不能与CPU直接交换信息。
Cache:高速缓存,CPU可以将要取的信息送至此处。
RAM:随机存储器是一种可读/写存储器,掉电后数据丢失。
SRAM:静态RAM,触发器来存储信息,既读又写,位价高。
DRAM:动态RAM,利用电容的原理来存储信息,但由于电容的原理需要再生电路。
ROM:只读存储器,只能对其存储的内容读出,而不能对其重新写入的存储器。
PROM:可编程只读存储器,可对存储器进行一次编程。
EPROM:可擦除可编程只读存储器可用紫外线照射擦除内容,再进行编程。
EEPROM:电可擦除可编程只读存储器。
CDROM:光盘。
Flash Memory:闪速存储器,功能与EEPROM相似,但速度快的多。
机器指令:每一条机器语言的语句。
指令系统:全部机器指令的集合。
RISC: 精简指令系统计算机。
CISC:复杂指令系统计算机。
现代计算机硬件框图
ALU(运算器)和CU(控制器)构成CPU
主存和辅存 构成 存储器
CPU 与 存储器 组成 主机
输入输出设备组成 IO设备
以上所有为计算机 硬件
系统复杂性的管理方法
层次化:将被设计的系统划分为多个模块或子模块
模块化: 有明确的定义的功能和接口
规则性: 模块更容易被重用
计算机取数 过程
- 取指令
- PC --> MAR --> M --> MDR -->IR , (PC) + 1 --> PC (PC自增)
- 分析指令
- OP(IR) --> CU
- 执行指令
- Ad(IR) --> MAR --> M --> MDR --> ACC
程序的运行过程
将程序通过输入设备送至计算机
程序首地址 一> PC
启动程序运行
计算机取数过程
- 取指令
- PC --> MAR --> M --> MDR -->IR , (PC) + 1 --> PC (PC自增)
- 分析指令
- OP(IR) --> CU
- 执行指令
- Ad(IR) --> MAR --> M --> MDR --> ACC
- 取指令
...
打印结果
停机
计算机硬件的主要技术指标
计算机硬件的主要技术指标是
机器字长
CPU一次能处理数据的位数与CPU中的寄存器位数有关
存储容量: 存放二进制信息的总位数
主存容量 1K = 2
存储单元个数 * 存储字长
MAR MDR 容量
10 8 1K * 8位 ( $ 1K = 2^{10} $ )
16 32 64K * 32位
字节数
如 $ 2^{13}b = 1KB $ ( $ 1B = 2^{3}b $ )
$ 2^{21}b = 256KB $
辅存容量
- 字节数 80GB ( $ 1GB = 2^{30}B $ )
运算速度
- 主频
- 核数
- 每个核支持的线程数
- 吉普森法 $ T_m = \sum_{i=1}^n f_it_i $
- CPI
- MIPS
- FLOPS
总线
总线是连接各个部件的信息传输线
是各个部件共享的传输介质
总线是连接多个部件的信息传输线,在任一时刻,只允许有一个部件向总线发送信息,而多个部件可以同时从总线上接收信息。
总线的分类
片内总线:芯片内部的总线
系统总线:计算机各个部件之间的信息传输线
- 数据总线:双向 与机器字长、存储字长有关
- 地址总线:单向 与存储地址、I/O地址有关
- 控制总线:有出有入 ( 中断请求、总线请求 )
通信总线:用于计算机系统之间或计算机系统与其他系统 (如控制仪表、移动通信等)之间的通信
- 传输方式
- 串行通信总线
- 并行通信总线
- 传输方式
总线特性及性能指标
总线特性
- 机械特性: 尺寸、形状、管脚数及排列顺序
- 电气特性: 传输方向和有效的电平范围
- 功能特性: 每根传输线的功能
- 地址
- 数据
- 控制
- 时间特性
性能指标
- 总线宽度:数据线的根数
- 标准传输率:每秒传输的最大字节数( MBps )
- 时钟同步/异步:同步、不同步
- 总线复用:地址线 与 数据线 复用
- 信号线数:地址线、数据线何控制线的总和
- 总线控制方式: 突发、自动、仲裁、逻辑、计数
- 其他指标:负载能力
总线标准
按照总线标准生产的各个部件,各模块之间可以集成在一起
- ISA
- EISA
- VESA(VL-BUS)
- PCI
- AGP
- RS-232
- USB
总线结构
单总线结构
- 系统总线
- 所有
- 系统总线
双总线结构
主存总线
- CPU与主存之间传输信息
I/O总线
- I/O接口
- 外部设备
通道:
具有特殊功能的处理器,由通道对I/O统一管理
主存总线与I/O总线通过通道连接,实现IO设备与主存储器、IO设备与CPU直接的通讯、
三总线结构
- 主存总线
- CPU与主存之间传输信息
- I/O总线
- I/O设备与主存之间直接交换信息
- DMA总线
- 外部设备直接存储器访问
- 三总线结构中,任一时刻只能使用一种总线
- 主存总线
三总线结构又一形式
- 局部总线
- 系统总线
- 扩展总线
常用的总线结构有几种?不同的总线结构对计算机的性能有什么影响?举例说明。(单/多)
常见的总线结构分为两种分别是单总线结构和多总线结构。
单总线结构是将CPU、主存,I/O设备(通过I/O接口)都挂在这一总线上、允许I/O设备之间、I/O设备与CPU之间或I/o设备与主存之间直接交换信息。
单总线结构结构简单、易于扩充,但所有的传送都通过这一总线,不允许两个以上的部件在同一时刻向总线传输信息,会影响系统的工作效率,易形成计算机的瓶颈,故常用于功能简单的实验仪器型机器的设计。
多总线结构:双总线结构将速度较低的I/O设备从单总线上分离出来,形成主存总线与I/O总线分开的结构,而多总线结构就是在其基础上增加总线,形成多总线结构,多总线结构,可以实现多种总线之间的数据传递,可明显提升系统的工作效率,例如,现代微机的结构就是多总线结构
总线控制
总线判优控制
基本概念
主设备(模块) 对总线有控制权
从设备(模块) 响应从主设备发来的总线命令
集中式
- 链式查询方式
- 只需要很少的几根线就能按一定优先次序实现总线控制,而且很容易扩充设备,但对电路故障很敏感且优先级别低的设备可能很难获得请求
- 计数器定时查询
- 这种查询方式对电路故障不如链式查询敏感,但增加了控制线设备地址数,控制页较复杂
- 独立请求方式
- 独立请求方式响应速度快,优先次序控制灵活,但控制线数量多,总线控制更复杂。
- 链式查询方式
为什么要设置总线判优控制?
因为总线上连接着多个部件,需要一种机制来决定什么时候有哪个部件发送信息、如何给信息传送定时,如何防止信息丢失、如何规定接收部件的一系列问题,因此,为了解决这些多个部件的使用权问题,出现了总线判优机制。
哪种方式响应时间最快,哪种方式对电路故障最敏感?
独立请求方式响应速度快,链式查询对电路故障敏感。
- 分布式
总线通信控制
目的: 解决通信双方协调配合问题
总线传输周期
- 申请分配阶段:主模块申请,总线仲裁决定
- 寻址阶段:主模块向从模块给出地址和命令
- 传数阶段:主模块和从模块交换数据
- 结束阶段:主模块撤销有关西段
总线通信的四种方式
同步通信:由统一时标控制数据传送
异步通信:采用应答方式,没有公共时钟标准
- 不互锁
- 半互锁
- 全互锁
image-20220913092843039
半同步通信:同步、异步结合
上述三种通信的共同点(一个总线传输周期(以输入数据为例))
- 主模块发地址、命令 占用总线 从模块准备数据 不占用总线 总线空闲 从模块向组模块发数据 占用总线 分离式通信:充分挖掘系统 总线每个瞬间 的潜力
- 特点
- 各模块有权申请占用总线
- 采用同步方式通信,不等对方回答
- 各模块准备数据时,不占用总线
- 总线被占用时,无空闲
- 特点
试比较同步通信和异步通信。
同步通信优点,规划明确,统一模块之间的配合简单一致。
缺点主、从设备时间配合属于强制性同步,必须在限定时间内完成规定的要求,必须按最慢部件来设计公共时钟,严重影响总线的工作效率。
异步通信客服了同步通信的缺点,允许各模块的速度不一致性,没有公共的时钟标准,不要求所有部件严格统一操作时间,即当主模块发出请求,一直等待从模块反馈回来响应。
为什么说半同步通信同时保留了同步通信和异步通信的特点?
同步通信既保留了同步通信的基本特点,如所有的地址命令,数据信号的发出时间都严格参照系统时钟的某个前沿开始,而接收方都采用系统时钟后沿时刻来进行判断识别,同时又像异步通信那样允许不同速度的模块和谐的工作
主存储器
简介
分类
- 存储介质分类
- 半导体存储器:TTL、MOS
- 磁表面存储器:磁头、载磁体
- 磁芯存储器:硬磁材料、环状元件
- 光盘存储器:激光、磁光材料
- 按存取方式分类
- 存取时间与物理地址无关(随机访问)
- 随机存储器:在程序的执行过程中可读可写
- 只读存储器:在程序的执行过程中只读
- 存取时间与物理地址无关(串行访问)
- 顺序存取存储器——磁带
- 直接存取存储器——磁盘
- 存取时间与物理地址无关(随机访问)
- 按在计算机中的作用分类
- 主存储器
- RAM
- 静态RAM(SRAM)
- 保存0和1的原理是什么?
- 基本单元电路的构成是什么?
- 对单元电路如何读出和写入?
- 典型芯片的结构是很么样子的?
- 静态RAM芯片的如何进行读出和写入操作?
- 动态RAM(DRAM)
- 静态RAM(SRAM)
- ROM(只读存储器)
- MROM(掩膜ROM)
- PROM(一次性编程)
- EPROM(多次性编程)——紫外线
- EEPROM(多次性编程)——电可擦写
- RAM
- Flash Memory(闪速型存储器)——U盘
- 高速缓冲存储器(Cache)
- 辅助存储器
- 主存储器
4.8试比较静态 RAM 和动态 RAM 。
静态RAM是由触发器构成的存储器,位价高。
动态RAM是电容构成的存储器,价位低,但需要配置刷新电路。
SRAM在相同的存储容量的条件下,需要更大的体积集成度低,DRAM集成度高。
4.9什么叫刷新?为什么要刷新?说明刷新有几种方法。
电容上的电荷一般只能维持1~2ms 因此,即使电源不掉,电信息也会自动消失,为此,必须在2ms内对其所有存储单元恢复一次原状态,这个过程称为再生或刷新。
刷新的方法有三种:
集中刷新:是在规定的一个刷新周期内,对存储单元集中一段时间内逐行刷新,停止读/写。(有死区)
分散刷新:(抽空刷新)
异步刷新:前两种的结合。
存储器的层次结构
- 缓存-主存(速度问题——硬件解决)
- 主存-辅存(容量问题——软硬件相结合)
- 存储器三个主要特性的关系
主存和CPU的联系
image-20220913121533409
主存中存储单元地址的分配
image-20220913122002262
主存的技术指标
- 存储容量:主存 存放二进制代码的总位数
- 存储速度:
- 存取时间:存储器的访问时间 | 读出时间 写入时间
- 存取周期:连续两次独立的存储器操作(读或写)所需的 最小间隔时间 | 读周期 写周期
存储器的带宽:位/秒
4.2计算机中哪些部件可用于存储信息,按其速度、容量和价格/位排序说明。
计算机中可用寄存器,缓存,主存,磁盘,磁带来存储信息。
寄存器
缓存 越下容量越大
主存 越上速度越快
磁盘 越上位价越贵
磁带
4.3存储器的层次结构主要体现在什么地方,为什么要分这些层次,计算机如何管理这些层次?
存储器的层次结构主要体现在缓存-主存,主存-辅存,这两存储层次上,
缓存-主存,层次主要解决CPU和主存速度不匹配的问题,主存和缓存之间的数据调动是由硬件自动完成的,对程序员是透明的。
主存-辅存层次主要解决系统的容量问题,辅存速度比主存低而且不能与CPU直接交换信息,但容量比储存大CPU要用这些数据时就将辅存中的数据复刻到主存中,由CPU调用直接访问。
现代计算机系统几乎都有这两存储层次,构成了缓存,主存,辅存三级存储系统,并逐渐形成了虚拟存储系统。
4.5什么是存储器的带宽?着存储器的数据总线宽度为32 位,存取周期为200 ns ,则存储器的带宽是
存储带宽是单位时间内存储器存取的信息量。
1/200ns*32=160M位/S
4.10半导体存储器芯片的译码駆动方式有几种?
译码驱动有两种方法,线选法与重合法。
重合法比线选法,更好使得字线根数减少,可以用较少的字线来选择更多的数据,刻电路面积减小。
半导体存储芯片
简介
基本结构
- 片选线:确定存储地址
image-20220913145923018
- 读/写控制线:确定读写
译码驱动方式:给出了存储单元的地址后,怎么去找到指定的存储单元
- 线选法
- 重合法
4.10半导体存储器芯片的译码駆动方式有几种?
译码驱动有两种方法,线选法与重合法。
重合法比线选法,更好使得字线根数减少,可以用较少的字线来选择更多的数据,刻电路面积减小。
存储器与CPU的连接
- 存储器容量的扩展
- 位扩展(增加存储字长)
- 两个芯片的片选使用相同的信号连接
- 字扩展(增加存储字的数量)
- 字、位同时扩展
image-20220913172229791
- 位扩展(增加存储字长)
存储器校验
编码的最小距离:任意两组合法代码之间 二进制位数 的 最小差异编码的纠错、检错能力与编码的最小距离有关
L-1 = D + C (D> = C)
L—— 编码的最小距离
D—— 检测错误的位数
C—— 纠正错误的位数
奇偶校验
汉明码校验
汉明码的组成
- 汉明码的组成需增添?位检测位
- $$ 2^k >= n + k + 1 $$
- 检测位的位置
- $$ 2^i (i= 0,1,2,3,...) $$
- 检测位的取值
- 检测位的取值与该位所在的检测“小组”承担的奇偶校验任务有关
汉明码的检错
汉明码的奇配原则:按照偶配原则计算的Ci后,取反的奇配原则下的检测位取值。
高速缓冲存储器 (Cache)
简介
- 问题的提出
- 避免CPU“空等”现象
- CPU和主存(DRAM)的速度差异
- 程序访问的局部性原理
Cache工作原理
Cache的命中率
命中:主存块调入缓存(主存块与缓存块建立了对应关系)
不命中:主存块未调入缓存(主存块与缓存块未建立对应关系)
命中率:CPU欲访问的信息在Cache中的比率(命中率与Cahche的容量与块长有关)
Cache-主存系统的效率
效率e与命中率有关
$$ e = \frac{访问Cache的时间}{平均访问时间}*100% $$
Cache的基本结构
Cache读写操作
- 读
- 写
- Cache和主存的一致性
- 写直法(Write-through)
- 写操作时数据既写入Cache又写入主存写操作时间就是访问主存的时间, Cache块退出时,不需要对主存执行写操作,更新策略比较容易实现
- 写回法 (Write-back)
- 写操作时只把数据写入Cache而不写入主存当Cache数据被替换出去时才写回主存**,写操作时间就是访问Cache的时间**, Cache块退出时,被替换的块需写回主存,增加Cache的复杂性
- 写直法(Write-through)
- Cache和主存的一致性
Cache改进
- 增加Cache的级数
- 片载(片内)Cache
- 片外Cache
- 统一缓存和分立缓存
- 指令Cache
- 数据Cache
- 与指令执行的控制方式有关 是否流水
Cache-主存的地址映射
- 直接映射
- 某一主存块只能固定映射到某一缓存块
- **特点:**不灵活、Cache利用率低、速度快
- 全相联映射
- 某一主存块能映射到任一缓存块
- **特点:**成本高、Cache利用率高、速度慢
- 组相连映射
- 直接映射和全相联映射的折中。
- 某一主存块只能映射到某一缓存组中的任意缓存块
- **特点:**Cache利用率比较高、速度比较快
- 替换算法
- 解决问题:Cache满时选择正确的块,从Cache中退出
- 先进先出(FIFO)算法
- 近期最少使用(LRU)算法
4.25 什么是程序访问的局部性?存储系统哪一阶段采用了程序访问的局限性原理?
通过大量典型程序分析发现,CPU从主存取指令获取数据,在一定时间内只是对主存局部地址区域的访问,这是由于指令和数据在主存内都是连续存放的,并且有些指令和数据往往会被多次调用,集指令和数据在储存的地址分部不是随机的,而是相对簇聚的,使得CPU在执行程序时访存具有相对的局部性,这就称为程序访问的局部性原理。
Cache-主存层次与主存辅存层次采用了局部性原理。
4.26计算机中设置 Cache 的作用是什么?能不能把 Cache 的容量扩大,最后取代主存,为什么?
Cache的出现,大大提高了CPU访问主存的速度,中央处理器可以不直接访问主存,直接与Cache交换信息,极大地解决了CPU与主存之间速度矛盾的问题。
不可以将Cache的容量扩大,进而取代主存,一般而言,cache容量越大即CPU命中率越高,当然容量也没有必要太大,太大会增加成本,当容量达到一定值时,命中率已不再因容量增加而显著增加。
4.27 Cache 制作在 CPU 芯片内有什么好处?将指令Cache和数据Cache分开又有什么好处?
Cache制作在CPU内部提高了外部总线利用率,因为Cache在CPU内部可直接访问,不必占用外部总线,进而增强了系统的整体效率,也提高了CPU存储速度。
将指令Cache与数据Cache分开有以下好处
可支持超前控制和流水线控制,有利于这类控制方式下指令预取操作的完成。
指令Cache可用ROM实现,提高指令存取可靠性。
数据Cache对不同类型数据支持更为灵活。
辅助存储器
概述
- 特点:不直接与CPU交换信息
I/O系统(输入输出系统)
概述
- 早期
- 分散连接
- CPU和I/O设备 串行 工作 程序查询方式
- 接口模块和DMA阶段
- 总线连接
- CPU和I/O设备 并行 工作
- 中断方式
- DMA方式
- 具有通道结构的阶段
- 具有I/O处理机的阶段
组成
- I/O软件
- I/O指令 CPU指令的一部分
- 操作码
- 命令码
- 设备码
- 通道指令 通道自身的指令
- I/O指令 CPU指令的一部分
- I/O硬件
- 设备 I/O接口
- 设备 设备控制器 通道
I/O设备与主机的联系方式
- I/O设备编址方式
- 统一编址 用取数、存数
- 不统一编址 有专门的I/O指令
- 设备选址
- 用设备选择电路识别是否被选中
- 传送方式
- 串行
- 并行
- 联系方式
计算方法
指令系统
常考
1.多重中断含义
2.多重中断服务程序流程
3.中断隐指令
4.主存Cache容量
5.芯片组成字位扩展
6.CPU为参考点数据地址控制总线的方向
- 数据总线是双向三态形式的总线,它既可以把CPU的数据传送到存储器或IO设备等其他部件,也可以将其它的数据传送到CPU.
- 地址总线专门用于传送地址,只能从CPU传向外部存储器或IO端口
- 控制总线控制总线的传送方向由具体控制信号而定,一般是双向的
7.详细解释微操作CM(CMAR)CMDR含义
- CMAR是控存地址寄存器,用来存放预读的微指令地址
- CMDR是控存数据寄存器,用来存放从控存器读出的微指令
- 将对应控存M地址从单元中的第一条微指令读到控存数据寄存器中,记作CM(CMAR) -> CMDR
8.海明码纠错(例题)
只纠错(如上图例题)
- 海明码:
1000101
- 对应
m1m2m3m4m5m6m7
,其中检测位为m1m2m4
- 海明码:
- 计算
Pi
P1 = m1 + m3 + m5 + m7 = 1 + 0 + 1 + 1 = 1
P2 = m2 + m3 + m6 + m7 = 0 + 0 + 0 + 1 = 1
P3 = m4 + m5 + m6 + m7 = 0 + 1 + 0 + 1 = 0
- 计算
P1P2
为 1 --> 出错,P1P2
共有元素为m3
,因此m3出错,正确的m3为1
正确的海明码为:
1010101
检测并纠错