计算机系统概述
计算机发展历程
从数据表示:
计算机可以分为数字计算机与模拟计算机
1946 第一台电子数字计算机 ENIAC 在宾夕法尼亚大学诞生,标志进入电子计算机时代
时间 | 计算机发展阶段 |
---|---|
1946-1958 | 电子管计算机时代 |
1958-1964 | 晶体管计算机时代 |
1964-1971 | 集成电路计算机时代 |
1971-至今 | 超大规模集成电路计算机时代 |
摩尔定律
当价格不变,集成电路上可以容纳的晶体管数量大约18-24个月翻一番,性能提升一杯
计算机系统的组成
计算机 = 软件+硬件
固件: 固化的软件,兼备软件与硬件的特性
计算机硬件系统: 构成计算机系统的电子线路与电子元件等物理设备总称
硬件是构成计算机的物质基础,是计算机系统的核心
冯诺依曼体系结构
二进制作为数字计算机数制基础的理论
主要思想: 存储程序,程序控制
计算机硬件 = 运算器 + 控制器 + 存储器+ 输入设备 + 输出设备
计算机软件 = 应用软件+系统软件
cpu = 运算器+控制器
计算机系统的层次结构
软件
高级语言:高级语言
汇编语言 :汇编语言
操作系统:汇编语言
硬件
指令集架构层:通过解释到微代码层,机器语言
微代码层:微程序
逻辑门层:硬件工程师看到的
在抽象的较高层,使用问题环境的语言,以概述的方式解决问题,在抽象的较低层,采用过程化的方式
计算机的层次结构是1960 之后引入计算机领域的概念,是计算机中使用抽象方法的具体实例
计算机性能指标与评价
基本性能指标
- 字长: cpu一次处理的数据位数,用二进制的位数表示
- 主存容量;主存能存储的最大信息量,一般用M*N,M代表存储单元数,N表示每个存储单元的存储的二进制位数
时间性能指标
- 时间周期:计算机中最基本,最小的时间单位,一个时间周期,cpu只能完成一个动作
- CPI:执行每条指令所需要的平均时间周期数量
- IPC:cpi的倒数,每个时间周期cpu执行的指令数量
- MIPS:每秒百万条指令,更大的单位GIPS
- MFLOPS:计算机每秒执行的浮点运算的位数
数据的机器级表示与运算
数据表示的作用
数据表示的作用给是将数据按照某种方式组织起来,以便计算机硬件能直接识别与使用
在设计与选择计算机数据表示方式的时候需要考虑的因素
- 数据类型
- 表示范围与精度
- 存储与处理的代价
- 软件的可移植性
二进制由于编码最少,容易与简单的物理状态对应,算术逻辑运算电路更容易实现等优势成为现代计算机中数据表示的必然选择,采用二进制可以表示任何的数据信息
数值数据的表示
机器数/机器码: 符号+数值一起编码表示的二进制数
定点数的机器码: 原码,反码,补码,移码
- 原码
最高位:符号位,0正,1负数
数值:绝对值
与真值最接近的一种表示方法 - 反码
符号位同原码
真值为负数的时候: 数值位取反 - 补码
真值为负数的时候: 数值位取反+1 - 移码
只表示定点整数,常用于表示浮点数的阶码
正数:原码反码补码同
0:
定点数表示
- 无符号数的表示
指的是正整数的表示,表示的是数的绝对值
机器字长的全部位数来表示数值的大小,
若字长n+1位,则无符号数的表示范围:0~2(n+1) -1
- 带符号数的表示
最高位符号位,0正1负
浮点数表示
浮点数: 小数点可以移动的数据
符号位+阶码+尾数
阶码部分用移码表示
定点数运算
- 移位运算:
算术移位:带符号数移位
逻辑移位:无符号数移位 - 原码定点数的加/减运算
- 补码定点数的加/减运算
- 定点数的乘/除运算
浮点数加/减运算
对阶
尾数加减
规格化
舍入
检查溢出
进位计数制及其相互转换
信息 | 计算机数据表示 |
---|---|
整数 | 定点数 |
实数 | 浮点数 |
布尔数 | 逻辑数 |
字符 | |
字符串 | |
无符号数在计算机中的表示 |
- 位数不等的二进制码
- BCD码,分为压缩BCD 和 非压缩BCD
- ASCLL码 ,包含128个编码
52个大小写字母
10个十进制数字字符
32个标点符号,运算符号,特殊号
34个不可以显示打印的控制字符编码
数据校验
数据校验码
加进一些冗余码,使得合法编码出现某些错误的时候,就成为错误编码
码距
根据任意两个合法码之间至少有几个二进制位不相同确定,仅有1位不同称之为码距为1
奇偶校验码
原理:
使码距由1增加到2
如果编码中由1位二进制数出错了,这样的出错的编码就成为非法编码,就可以知道出现了错误
在原有的编码上再增加1位校验位,原编码n位,形成新的编码n+1位,增加的方式有两种
- 奇校验
增加的0/1使得整个编码中1的个数为奇数个 - 偶校验
增加的0/1使得整个编码中1的个数为偶数个
海明校验码
原理:
在数据中加入几个校验位,并把数据中的每一个二进制位分配到几个奇偶校验组中,当某一位出错引起相关的校验组发生错误
这样可以定位发生错误的是哪一位,还给自动纠错提供保障
只有k=2®-1-r能用于纠正被传送数据的位数
CRC校验码
原理:
在k位信息后拼接r位校验码
如何从k位信息得到r位校验码?
指令系统
指令系统
指令系统
计算机的工作是反复执行指令
指令是用户使用计算机与计算机运行的基本单位
高级语言指令与汇编语言指令属于软件层次
机器语言指令与微指令则属于硬件层次
软件层次的指令 翻译
层机器语言指令 才能被计算机硬件识别并执行
机器指令是计算机硬件与软件的界面,是用户操作与使用计算机硬件的接口
指令系统是计算机系统性能的集中体现,是计算机软,硬件系统的设计基础
指令格式
操作码+地址码
- 操作码:
- 操作数的地址
- 操作结果的存储地址
- 下一条指令的地址
指令寻址方式
根据存储程序的概念,计算机在运行之前必须把指令与数据存放在主存的相应地质单元
运行程序的时候,不断从主存取指令与数据
主存是基于地址访问的,只有获取指令与数据在主存中的地址(有效地址EA),CPU才能访问指令与数据
寻址方式就是寻找指令或操作数有效地址的方式
寻址方式 | 分类 |
---|---|
数据寻址 | 立即/直接/间接/寄存器/寄存器间接/相对/变址/基址/堆栈 寻址 |
指令寻址 | 顺序/跳跃 寻址 |
CISC 与 RISC
名字 | 内容 |
---|---|
CICS复杂指令集计算机 | 随着VLSI技术发展,指令系统复杂庞大, 大多数采用微程序控制器 缩短高级语言与指令系统的差别 源代码长度短 |
RISC简单指令集计算机 | IBM公司的John提出,指令简单长度固定 硬布线控制逻辑为主,一般用高级语言编程 优化编译,源代码长度长 |
中央处理器
CPU 功能和组成
cpu 功能
- 程序控制
程序中指令执行顺序控制 - 操作控制
机器指令翻译成执行部件所需要的操作控制信号 - 时序控制
控制操作信号的产生,持续时间 - 数据加工
对数据进行算术,逻辑运算,或将数据在相关部件之间传送 - 中断处理
cpu及时响应内部异常与外部中断请求
cpu组成
运算器+控制器
控制器功能
取指令,分析指令,执行指令
控制器组成
- 程序计数器 PC
- 指令寄存器 IR
- 存储器地址寄存器AR 存储器数据寄存器 DR
- 指令译码器或操作码译码器
- 脉冲源及启停线路
- 时序控制信号形成部件
指令执行过程
???
数据通路的功能与基本结构
cpu 的数据通路是连接cpu内部各个部件与cpu外部的各个部件之间的数据与控制信号的连接关系图
控制器的功能与工作原理
硬布线控制器
1.时序与节拍
每一步由一个机器周期来完成,假设采取4个机器周期,需要4个不同的信号输出来表示
2.操作码译码器
指令的操作码部分指出本指令将执行什么指令,对于不同的指令采用不同的代码表示
3.操作控制信号的产生
微程序控制器
计算机中一条指令的功能是通过按照一定的次序执行一系列基本的操作完成的
这些基本操作称为微操作
实现微操作的控制命令就是微命令
1.微程序,微指令,微命令
- 微指令:一组微操作就是微指令,一条指令可以被分为若干条微指令
- 微程序:计算机每条指令都是由微指令序列解释完成,这些序列的集合叫做微程序
2.微指令的编码方式
- 直接控制法
- 字段直接编译法
- 字段间接编译法
存储器分层体系结构
存储器体系结构
随机访问存储器
随机存储器可以按照地址随机读写数据存储单元,且存储访问时间与存储单元的位置无关
半导体存储器 分为 随机存储器与只读存储器
存储器 | 特点 |
---|---|
SRAM | 随机访问存储器,易失性存储器,可以作为高速缓存存储器,也可以用在CPU上面 |
DRAM | 随机访问存储器,易失性存储器,常用于主存 |
PROM | 只能被编程一次 |
EPROM | 可以编程多次 |
闪存 | 非易失性存储器,基于EEPROM |
访问主存
数据通过总线在处理器与DRAM之间来来回回
每次cpu与主存之间的数据传送都是通过一系列步骤完成的,这些步骤称为总线事务
读事务:主存传送数据到CPU
写事务:CPU传送数据到主存
IO桥: 将系统总线的电子信号翻译成为存储器总线的电子信号
磁盘存储
磁盘由多个叠放在一起的盘片组成,整体称为磁盘驱动器,简称磁盘
SSD 没有移动的部分
高速缓存
互连与输入输出系统
I/O系统概念
I/O系统主要用于实现CPU与外部设备,外部设备与主存之间的信息交换
包括 I/O设备.I/O接口,总线,I/O管理部件等硬件设备
驱动程序,软件访问接口,用户程序等软件设备
输入输出设备的发展
- 早期:分散连接,CPU 与I/O设备串行工作,程序查询方式
- 接口模块和DMA阶段:总线连接,CPU与I/O设备并行工作,中断方式和DMA方式
- 具有通道机构的阶段
- 具有I/O处理机的阶段
I/O接口的功能
接口
- 总线接口:标准的
- 内部接口:因设备而异,非标准的
功能
- 设备寻址:接收来自总线的地址信息,经过译码电路,选择对应外部设备的寄存器与存储器
- 数据交互:实现外部设备,主存,cpu之间的数据交换
- 设备控制:传送cpu命令
- 状态检测:反应外部设备的工作状态
- 数据缓冲:匹配cpu与外部设备的速度差距
- 格式转换:实现数据格式转化或逻辑电平信号转换
还应该有中断,时序控制,数据检错,纠错的功能
外部设备
输入设备
- 键盘
常见的ASCLL字符
功能键盘
光标控制键
编辑键 - 鼠标
机械式:金属球电位器
光电式:光电转换器
输出设备
- 显示器
按器件分类:CRT显示器,LED显示器,等离子体显示器
按显示内容分类:字符发生器(CRT),图形显示器(主观图像),图像显示器(客观图像) - 打印机
按印字原理分类:- 打击式:点阵式打印机
- 非打击式:激光,静电,喷墨等
按照工作方式分类: - 串行打印机,逐字打印
- 行式打印机,逐行打印
外存储器
- 硬盘存储器
- 磁盘阵列
RAID 采用低成本的小温盘,使得多台磁盘构成同步化的磁盘阵列
分类:RAID0~RAID6
RAID6能支持两块磁盘同时出错 - 光盘存储器
只读光盘
写一次/多次读光盘
可重写光盘
I/O接口(IO控制器)
基本功能
- 实现设备的选择
- 实现数据缓冲达到速度匹配
- 实现数据串并格式转换
- 实现电平转换
- 传送控制命令
- 反映设备的状态
基本组成
功能 | 组成 |
---|---|
选址 | 设备选择电路 |
传送命令 | 命令寄存器,命令译码器 |
传送数据 | 数据缓冲寄存器 |
反映设备状态 | 设备状态标记 |
I/O端口及其编址
cpu采用两种方式访问I/O设备,也称I/O端口编址方式
- 专门的io指令
由相应的控制信号来区分CPU执行的什么指令 - 利用访问存储器命令完成io功能
从主存地址空间分一部分作为io的设备代码
没有控制信号区分存储器还是端口
I/O方式
cpu与外部设备进行信息交换,根据外部设备不同采取不同的控制方式
- 程序查询方式
cpu不断的询问外部设备是否准备好 - 程序中断方式
进程进入等待队列,当外设准备好后向cpu发送中断请求,cpu响应中断请求,展厅当前执行的程序,调用中断服务程序,由中断服务程序唤醒正在等待的进程
CPU与外设可以并行工作 - DMA方式
IO设备与主存之间由硬件组成的数据通路 - 通道方式
总线
分类
方式 | 分类 |
---|---|
传送信息的方式 | 串行/并行/复合传送(先传地址,再传送数据) |
传送信息的类型 | 数据总线DB/地址总线AB/控制总线CB/复合总线AD |
按照连接的距离与对象分类 | 片内总线/系统总线/外总线 |
总线协议
总线传输的周期
- 总线请求
- 总线仲裁
- 寻址阶段
- 传输阶段
- 结束阶段
四种方式:
- 同步通信
- 异步通信
- 半同步通信
- 分离式通信
并行处理系统
多核处理器
是在超线程,多处理器,超标量的基础上发展的
GPU
GPU是适合做大量重复运算的处理器
集群
由完整的计算机和独立的可以扩展的网络构建的