计算机组成原理
1.计算机系统概述
基本概念
早期的冯·诺伊曼机:是基于运算器为中心的,因为当时存储器还很小
现代计算机组织结构:以存储器为中心,I/O操作尽可能绕过CPU,直接在I/O设备和存储器之间完成
功能部件:输入设备,输出设备,存储器,运算器,控制器(CPU由运算器和控制器组成)
软件分类:应用软件和系统软件
三个级别语言:机器语言,汇编语言,高级语言
工作过程:
1.把程序装入主存
2.源程序转换为可执行文件:预处理,编译,汇编翻译,链接
编译程序是将高级语言编译为汇编语言;而汇编程序是将汇编语言翻译为机器语言。
计算机系统的多级层次结构
微程序机器层,传统机器语言层,操作系统层,汇编语言层,高级语言层
计算机性能指标
机器字长:一次整数运算所能处理二进制数据位数,越长,数表示范围越大,精度越高
数据通路带宽:一次所能传输信息的最大位数
主存容量:主存储器所能存储的最大容量
吞吐量:单位时间内处理请求数量
响应时间:用户发送一个请求到接收到系统响应所需要的时间
CPU时钟周期:CPU最小时间单位
主频:机器内部主时钟的频率
基准程序:专门用来进行性能评估的一组程序
计算机组成和计算机体系结构区别
计算机体系结构是程序员能看到的传统机器的属性,是回答了是什么的问题。
但是计算机组成是指如何实现体系结构中所体现的属性,包含许多对程序员来说透明的硬件细节。
比如指令系统属于结构的问题,但是指令的实现比如如何取指令,如何分析指令,则是计算机组成的问题。
2.数据的表示和运算
数制与编码
使用二进制原因
1.两种状态符合正负极性; 2.正好对应真和假 3.编码和预算规则简单
进制
多用2进制,8进制,16进制,而这种的规则都是每一位乘上他的对应的基数的次方再总体相加。
校验码
奇偶校验码
就是通过加入一个校验位,来说明后面信息的1是奇数个还是偶数个,以此判断,只能检错。
海明校验码
就是多重奇偶校验码,但是能为纠错提供依据
循环冗余校验码CRC
就是发送端模二除法,接收端同样,然后看是否和信息码一样,若不一样则出错
定点数表示和运算
无符号数:字长为8位,就可以表示0-255
有符号数:第一位是符号位,通常0代表正,1代表负
定点小数:就是必定是0.xxx这种,小数点隐含在最前面
定点整数:就是没有小数,因为小数点在最后面
原码:就是按进制写就行
补码:符号位不变,数值位取反加1(引入补码是为了方便计算)
反码:就是取反(用于原码到补码的过渡)
二进制可以表示任何整数,但是无法表示所有小数,只能无限逼近
移位
算术移位:对有符号数
逻辑移位:对无符号数
循环移位
原码定点数加减法:
加法就是绝对值相加,符号相同直接相加,符号不同,就是绝对值大的减去绝对值小的,然后符号位与绝对值大的相同
减法:就是将负号变为正号后两数相加
补码定点数加减法:
加法就是直接两个补码相加
减法就是将被减数补码和 减数的负数的补码相加
类型转换
有符号数和无符号数转换
转换的结果保持位值不变,仅仅改变了解释这些位的方式
长字长与短字长数的转换
长变短:高位直接截断
短变长:高位要拓展用原字长的符号位填充。
数据存储
大端方式
就是最高有效字节放最前面,最低有效字节放最后面,平时一般也这样
小端方式
与大端方式相反,最高有效字节放最后,最低有效字节放最前,调用从后往前调
边界对齐存储方式
就是每个数据的存储方式:半字地址一定是2整数倍,字地址是4整数倍,通过填充空白字节使符合要求,虽然浪费了一些存储空间,但可以提高取指令和取数的速度。
算数逻辑单元ALU
运算器:由ALU,累加器,状态寄存器,通用寄存器组成
所以ALU是运算器的组成成分
加法器
一位全加器:最基本加法单元
串行加法器:只有一个全加器,逐位相加
并行加法器:各位数据同时运算
算术逻辑单元结构
带标志加法器:计算带符号数并生成相应标志信息
算术逻辑单元ALU:进行多种算术运算和逻辑运算
补码加减运算部件:
3存储系统
存储器分类
按作用分为:主存储器,辅助存储器,高速缓冲存储器
按存储介质:磁表面存储器,磁心存储器,光存储器
存取方式:随机存储器RAM和只读存储器ROM 和 串行存储器
信息可保存性分类:易失性存储器 和 非易失性存储器
存储器性能指标:
存储容量;单位成本 ;存储速度
多级存储结构
CPU 寄存器 Cache 主存 辅存
Cache主存主要解决速度不匹配问题; 主存辅存主要解决容量问题
半导体随机存储器
静态随机存储器SRAM
用双稳态触发器记忆信息,速度快,功耗大,用在Cache中
动态随机存储器DRAM
速度慢,价格低,容量大,功耗低,用于组成大容量主存系统
存储器芯片
存储体:存储单元的集合
地址译码器:控制电平
I/O控制电路:控制被选中单元读出或写入,放大信息作用
片选控制信号:控制单独芯片被选中,而不影响其他芯片
读/写控制信号:读还是写
只读存储器ROM
结构简单,并且非易失性,可靠性高
主存储器与CPU连接
连接:通过数据总线,地址总线和控制总线连接,其中地址总线位数决定了可寻址的最大内存空间。
主存容量扩展
位拓展法:将多个存储芯片端并联,数据端引出
字拓展法:位数不变,增加存储器中的字数
字位同时拓展法
存储芯片地址分配和片选
线选法和译码片选法
存储器和CPU的连接
合理选择存储芯片:选RAM还是ROM
地址线的连接 :
数据线连接
读/写命令连接
片选线连接
双端口RAM和多模块存储器
双端口RAM
一个存储器有左右两个独立端口,允许两个独立的控制器同时异步地访问存储单元
多模块存储器
提高访存速度,
单体多字存储器:地址必须顺序排列并且处于同一存储单元
多体并行存储器:由多体模块组成,每个模块能并行工作,也可以交叉工作
高速缓冲存储器
局部性原理:
时间局部性:现在使用的未来还会用
空间局部性:现在使用的的临近空间,未来很可能会访问
Cache基本工作原理:就是通过某种策略,预处CPU未来一段时间要访问数据,然后将该数据放入Cache中,CPU访问数据时,先访问Cache,若有则直接操作,没有才访问主存
Cache和主存映射方式
因为Cache中块数比主存少得多,所以必须指明每一块是主存哪一块的副本。
直接映射
主存每一块对应Cache中的唯一地址,若冲突就替换。
全相联映射
主存每一块可以放在Cache中任何位置
组相联映射
就是直接映射和全相联映射的一种折中,把Cache分组,每个主存数据块都会对应唯一的组,但是在组里面采用全相联映射
Cache主存块的替换算法
随机算法:随机分配
先来先服务
最近最久未使用
最少使用算法
Cache写策略
对于命中:
全写法
每次写Cache都要同步更新主存中对应的块,这样保证没有错误,但是频繁访问主存,所以需要一个 写缓冲 ,每次写改变Cache和写缓冲,然后之后写缓冲再慢慢去更改对应主存块
写回法
只改变Cache不改变主存,只有当把Cache块替换,才改变对应主存块,大大较少访问主存次数,但是会有不一致隐患。
对于未命中:
写分配法
会将主存中的块更新到Cache块中
非写分配法
只写入主存,不进行调块进入Cache
虚拟存储器
主存和辅存共同构成虚拟存储器,大大扩充了主存容量
操作系统有,略
4.指令系统
指令:指示计算机执行某种操作的命令。
指令系统:一台计算机的所有指令的集合构成。是计算机主要属性,在软件层和硬件层
指令格式
组成
操作码:就是执行什么操作
地址码:被操作信息的地址
指令长度:就是指指令包含的二进制位数
分为:零地址指令,一地址指令,二地址指令,三地址指令,四地址指令。几个地址代表有几个被操作了。
定长指令格式:就是操作码是定长的
拓展操作码指令格式:操作码长度不是不变的,可根据情况改变的
指令操作类型:
数据传送,算术和逻辑运算,移位操作,转移操作:就是转移到另一个程序执行,输入输出操作
寻址方式
寻址意思就是:我们指令中的地址码字段只是形式地址,我们要通过寻址方式,将形式地址转变为有效地址,才能找到操作数。
指令寻址
就是寻找下一条将要执行的指令
顺序寻址
就是程序计数器加1个指令字长,就是下一条将要执行的指令
跳跃寻址
上一条指令表明了线下一条指令地址的计算方式
数据寻址
就是寻找操作数的地址
有隐含寻址:不明显给出操作数地址,而是通过硬件给出
立即数寻址:地址给出操作数本身
直接寻址:形式地址就是操作数的真实地址
间接寻址:形式地址存储一个地址,而这个地址上的内容才是真实地址,这个真实地址在外存(就是间接),还可以多次间接,但是由于过慢不常用
寄存器寻址:形式地址给出操作数所在的寄存器编号
寄存器间接寻址:形式地址存储一个地址,这个地址上的内容是真实主存地址
相对寻址:把程序计数器的内容加上形式地址才会变成操作数的有效地址
基址寻址:CPU中的基址寄存器的内容加上形式地址变成了操作数的有效地址
变址寻址:变址寄存器的内容加上形式地址变成了操作数的有效地址
堆栈寻址:通过堆栈指针来记录隐含操作数
CISC和RISC基本概念
CISC:增强原有指令功能,更加复杂
RISC:精简指令系统功能,更加追求执行速度
CISC复杂指令系统计算机
指令系统非常庞大,格式多,不固定
但是人们发现,只有20%的指令被频繁使用,所以换了一种思路,RISC应运而生
RISC精简指令系统计算机
指令系统简化,并尽量使用寄存器操作指令
它只有使用频率最高的一些简单指令,复杂指令通过简单指令来实现,长度固定格式较少,而且速度更快。
比较:
RISC优点
1.更能充分利用VLSI芯片面积,2.更能提高运算速度 , 3.便于设计降低成本,4.有利于编译程序优化,代码执行更高效。
5.中央处理器
CPU功能和基本结构
cpu组成:运算器和控制器;
其具体功能包括:
指令控制,操作控制,时间控制,数据加工,中断处理
控制器:负责协调并控制计算机各部件执行顺序的指令序列,是整个系统的指挥中枢,在控制器的控制下,运算器,存储器,输入输出设备形成一个有机的整体,根据指令的要求协调工作。
运算器:对数据进行加工
指令执行过程
指令周期:
组成
CPU从主存中取出并执行一条指令的时间。
每个指令周期会包含若干个机器周期,而机器周期又包含若干个时钟周期(简称节拍)
一个指令周期又包括取址周期,间址周期:就是找有效地址,执行周期,中断周期
指令周期数据流:
就是指令要求依次访问的数据序列。指令执行不同阶段,数据流不同
指令执行方案:
就是指令与指令间的执行步骤的规划
分为:1.单指令周期:每一个指令执行的时间是固定而且是一样的
2.多指令周期:每一个指令执行时间是不固定且多样的,更加符合该指令执行时间
3.流水线方案:就是多个指令并行执行的方案
数据通路的功能和基本结构
数据通路:数据在功能部件之间传送的路径
数据通路部件:路径上的部件
数据通路功能:实现CPU内部运算器和寄存器之间的数据交换
数据通路基本结构:
1.CPU内部单总线方式:就是所有寄存器输入端和输出端都连接到一条公共通路上,但是容易出现较多冲突,性能较低
2.CPU内部三总线方式:就是寄存器输入端和输出端都连接到多条公共通路上,执行效率更高
3.专用数据通路方式:根据指令执行中具体情况安排连接线路,避免使用共享总线。
控制器功能和工作原理
分为硬布线控制器和微程序控制器
硬布线控制器:
根据指令要求,当前时序以及内部状态,按时间顺序发送一系列微操作控制信号。
微程序控制器:
采用存储逻辑实现,把微操作信号代码化,每条机器指令转化成一段微程序并存入一个专门的控制存储器中,然后通过寻址用户程序机器指令的办法来寻址每个微程序中的微指令来调用。
微程序有若干微指令,而微指令会发出不同的微命令。
指令流水线
就是一个指令执行过程可分解为若干个阶段,而每个阶段对应功能部件完成。那么通过流水线方式,就可以让功能部件不停地使用,增加少量硬件就能提高运算速度数倍。
一般分为:取指:取出指令
分析:对操作码翻译
执行:
顺序执行方式:就是一条指令结束再到下一条
流水线执行方式:就是提取下一条指令提前到分析此条指令的期间完成,与顺序执行方式相比,时间缩短了2/3,利用率明显提高。
原则:流水段的时间以最复杂的指令所用的功能段个数为准
特点:
1.一个任务分解为几个小任务,多个任务并行执行,提高速率
2.有缓冲寄存器(锁存器)保存本流水段的执行结果
3.流水线中各功能段时间尽量相等
4.连续不断提供同一种任务才能发挥效果
5.需要 装入时间和排空时间
分类
1.部件功能级,处理机级和处理机间级流水线
2.单功能流水线和多功能流水线
3.动态流水线和静态流水线
4.线性流水线和非线性流水线
影响流水线因素
资源冲突
数据冲突:下一条指令用到当前指令结果
控制冲突:一条指令要确定下一跳指令位置,但此时指令正在运行,产生控制冒险
流水线性能指标
吞吐率:单位时间流水线完成任务量
加速比:就是不使用流水线时间 / 使用流水线时间
效率:时间和空间的使用效率
6.总线
概述
定义
:是一组为多个部件分时共享的公共信息传送线路
特点:
分时:同一时刻只允许一个部件向总线发送信息
共享:总线可以挂接多个部件,各个部件互相交换信息可以通过总线共享。某一时刻只允许一个部件发送信息,但是多个部件可以同时接收。
设备:
主设备:获得总线控制权,用于控制防止冲突
从设备:只能相应从主设备发来的各种总线命令
总线特性:
不是特点,是指机械特性,电气特性,功能特性,时间特性。
猝发传输方式:
传输存储地址连续的多个数据字的总线传输方式
总线分类
1.片内总线:芯片内部总线,
2.系统总线:包括了数据总线,地址总线,控制总线,传输的信息内容不同;注意区分数据总线和数据通路,数据总线是媒介,数据通路表示逻辑路径。
系统总线结构
1.单总线结构:就是CPU,主存,I/O设备都挂在一条总线上
2.双总线结构:一条主存总线,一条I/O总线,实现了分离
3.三总线结构:主存总线,I/O总线,直接内存访问DMA总线:用于内存与高速外设之间传送数据。
3.通信总线:外部的总线,连接计算机系统之间或者是其他远程设备的
引入总线好处
1.简化系统结构
2.减少连接数目,提高可靠性
3.便于接口设计
4.便须系统扩充和系统模块化
5.便于设备软件设计,因为所有接口软件对不同的接口地址操作更方便
6.便于故障诊断维修
总线操作和定时
总线定时:指总线在双方交换数据的过程中需要时间上配合关系的控制;主要分为同步和异步
总线传输4阶段:
申请分配阶段:主模块提出申请
寻址阶段:通过总线发出本次访问的从模块的地址和有关命令
传输阶段:主模块 和 从模块传输
结束阶段
同步定时方式
就是固定一个总线周期,在这个总线周期内,每个部件或设备发送和接收信息固定,当总线周期结束,下一个总线的传送周期开始。
优点:速率块
缺点:因为强制性同步,可能有些没传完,可靠性较差
异步定时方式
就是通过“握手”信号来实现定时控制,主设备发出请求信号,从设备发出回答信号 ,然后再进行交换信息。能保证进行可靠的信息交换。但是速度较慢
方式分为:不互锁方式:不用等待回答信号
半互锁方式:等待回答信号,但是从设备不需要等待响应
全互锁方式:主设备和从设备都要等待响应,才撤销信号
7.输入输出系统
基本概念
外部设备:通过输入/输出接口才能访问的外存储设备
接口:主机和各个外部设备之间传输数据进行各种协调工作的逻辑部件
输入设备
输出设备
外存设备
I/O系统:由I/O软件:驱动程序,用户程序,管理程序,升级补丁 和 I/O硬件:外部设备,设备控制器,接口和I/O总线等
I/O控制方式
程序查询方式
中断方式
DMA控制器方式
I/O通道方式
外部设备
输入设备:键盘,鼠标
输出设备:显示器,打印机
外存储器:磁盘存储器,RAID磁盘阵列
I/O接口
定义:是主机和外设之间交接界面,实现信息交换,解决主机和外设间信息形式和工作速度上巨大差异而设。
功能:
1.主机和外设的通信联络控制
2.地址译码和设备选择:CPU发来的地址码后,需要翻译才能找到对应外设
3.数据缓冲
4.信号格式转换
5.传送控制命令和状态信息
注意端口和接口不同,端口指接口电路中可以进行读/写的寄存器,若干端口才能构成接口
所以引入了端口
端口
就是接口电路中可以被CPU访问的寄存器,每个端口对应一个端口地址。
地址分为统一编址:用统一访存指令就可以访问 和 独立编址:就是地址空间和主存地址空间是两个独立地址空间,需要特定I/O指令来访问
I/O方式
就是实现主机和I/O设备之间数据传送的方式
程序查询方式
就是主机先发出询问信号,读取设备状态并且根据设备状态决定下一步操作是数据传送还是等待。
程序中断方式
中断:就是计算机执行现行程序过程中,出现某些继续处理的情况,CPU暂时中止现行程序,转去处理异常情况或特殊请求,处理完以后回到断点处继续执行。
中断处理过程
关中断:就是保护程序断点和现场信息
保存断点:压入堆栈或特定存储单元
中断服务程序:就是将中断服务程序入口地址传送给程序计数器PC
保存现场和屏蔽字
开中断:允许更高优先级中断请求得到响应
执行和中断服务程序
关中断
恢复现场和屏蔽字
中断返回
DMA方式
就是以前外设想要访问主存,必须通过CPU才能访问,就是CPU将数据传输到外设。但是引入DMA方式后,DMA控制器再外设与内存之间开设了一条通道,信息传输不再经过CPU,而是可以通过DMA控制器传送道外设。
特点
提高效率,更加快速,主存即可被CPU访问,也可直接被外设访问。