计组 笔记
计算机组成原理
一、 计算机系统概述
1.1 计算机系统简介
现代计算机的多态性
从小型传感器到HPC到物联网,个人计算机到超算
计算机系统的层次结构
微程序机器(硬件执行微指令)
传统机器(机器语言指令)
上面是硬件,下面是软件 进行实现
操作系统机器(向上提供广义指令)
汇编语言机器(执行汇编指令)
高级语言机器(执行高级语言,编译器、解释器)
计算机体系结构:有无乘法指令
计算机组成:如何实现乘法指令
1.2 计算机的基本组成
冯·诺依曼
ENVAC
硬件在软件上是等效的
五大部件:输入设备、存储器、运算器、控制器、输出设备
指令和数据以同等地位存于存储器上,可按地址寻访
指令和数据都是用二进制表示
指令由地址码和操作码组成
存储程序 (核心特征)
以运算器为中心
现代计算机
以存储器为中心
CPU = 运算器ALU + 控制器CU
系统复杂性管理的方法(3Y)
层次化、模块化、规则性
计算机的工作步骤
建模、确定计算方法、编程
各个硬件
存储器、运算器、控制器 构成主机
- 主存储器:存储体 + MAR + MDR(Memory Data/Adress Register: 寄存器)
- 存储体有多个存储单元,其中二进制代码的组合称为存储字,位数就是字节长
- MAR 的位数表示有$2^n$个存储单元(存储单元的地址)
- MDR 的位数表示每个单元可以存储n bit (一个字节是8 bit)
- 运算器:ACC + MQ + ALU + X
- ACC:累加器
- MQ:乘商寄存器
- X:通用的操作数寄存器
- ALU:算数逻辑单元
- 控制器:CU + IR + PC
- PC:取指令 -> 程序寄存器,存放下一条指令,有自动+1的功能
- IR:分析指令 -> 指令寄存器,存放当前的指令
- CU:执行指令 -> 控制单元,分析指令,给出控制信号
MAR MDR 也可能在CPU里面
PC:Program Counter,程序计数器
IR:Instruction Register,指令寄存器
CU:Control Unit,控制单元
一条指令的步骤
取指令 -> 分析指令 -> 执行(存储器&运算器)
1.3 计算机硬件的主要技术指标
机器字长
CPU 一次能处理数据的位数,与CPU中寄存器的位数有关
注意区分 机器字长、指令字长、存储字长
运算速度
主频:数字脉冲信号振荡的频率,主频 = 1/时钟周期
核心数 & 每个核心支持的线程数
CPI:执行一条指令所需的时钟周期数
执行耗时 = CPI*时钟周期
IPS:每秒执行多少指令(这里不知道指令复杂度如何),常见 MIPS
FLOPS:每秒多少次浮点操作
存储容量
主存容量 = 存储单元个数*存储字长 bit
整体性能
数据通路带宽:数据总线一次所能并行传输信息的位数
吞吐量:系统在单位时间内处理请求的数量
响应时间
二、 系统总线
2.1 总线的基本概念
计算机使用总线结构便于增减外设,同时减少了信息传输线的条数
各个部件共享的传输介质(Bus),并行 || 串行
面向CPU的双总线
I/O 总线 <-> IO 设备; M 总线 <-> 主存;CPU 连接两条总线
面向存储器的双总线
系统总线都连接;CPU 和 主存之间使用存储总线连接
2.2 总线的分类
片内总线:芯片里面
系统总线:各个部件之间
- 数据总线:双向 与机器字长、存储字长有关
- 地址总线:单向 与存储地址、IO地址有关
- 控制总线:有出 有入
通信总线:计算机系统之间或者与其他系统之间
2.3 总线的特性与性能指标
特性
- 机械特性:尺寸、形状、管脚数、排列顺序
- 电气特性:传输方向、有效的电平范围
- 功能特性:每根传输线的功能「地址、数据、控制」
- 时间特性:信号的时序关系
性能 指标
- 总线宽度:数据线的根数
- 标准传输率:每秒传输的最大字节数 (MBps)
- 时钟同步、异步
- 总线复用:地址线、数据线、控制线的复用
- 信号线数:地址线、数据线、控制线的总数
- 总线控制方式
- 其他:负载能力
总线标准
PCI、USB 等
3.4 总线的结构
双总线结构:I/O 总线、M 总线
三总线结构:系统总线、存储总线、DMA 总线
| 局部总线、系统总线、扩展总线
四总线结构:局部总线、系统总线、扩展总线、高速总线
3.5 总线的控制
总线判优控制
主设备:对总线有控制权
从设备:响应从主设备发来的总线命令
分为 集中式 和 分布式
集中式控制
BS —— 总线忙;BR —— 总线请求;BG —— 总线同意
链式查询方式
BG 逐个向下查询
缺点:优先级与连接方式有关、电路敏感
计数器定时查询方式
使用计数器通过地址线查询
缺点:数据线多
独立请求方式
每个接口连接两条BR、BG线,控制器内部实现排队器
总线通信控制
解决通信双方协调配合的问题
总线传输周期
- 申请分配阶段:主模块申请,总线仲裁决定
- 寻址阶段:主向从给出地址和命令
- 传数阶段:交换数据
- 结束阶段:主模块撤回有关消息
总线通信的四种方式
同步:定宽、定距的时钟
异步:请求、应答线
- 不互锁:管你答没答
- 半互锁:答了就行
- 全互锁:我答了你得撤销
半同步通信(同步 & 异步)
- 同步:发送方用时钟前沿发信号 | 接收方使用时钟后沿判断识别
- 异步:允许不同速度的模块和谐工作。增加一条等待信号「WAIT」
一个传输周期内,从模块准备数据是不占用总线的,从而造成资源的浪费
- 分离式通信(总线上所有模块都可以成为主模块)同步
- 子周期 1:主模块申请占用总线,使用完放弃使用权
- 子周期 2:从模块申请占用总线,将各种信息传送到总线上
三、 存储器
3.1 概述
分类
存储介质
- 半导体:TTL、MOS (易失)
- 磁表面:磁头、磁载体
- 磁芯:硬磁材料、环状元件
- 光盘
存取方式
- 随机访问:存储时间与物理地址无关
- 随机存储器
- 只读存储器
- 串行访问:存储时间与物理地址有关
- 顺序存取存储器:磁带
- 直接存取存储器:磁盘
- 作用
- 主存储器:RAM(静态、动态) & ROM
- Flash Memory
- Cache
- 辅助存储器
主存和 CPU 之间增加 Cache 的原因是 「解决CPU和主存之间的速度匹配问题」
3.2 主存储器
概述
主存和CPU之间的联系
主存中存储单地址的分配
字节序(Endianness):组成多字节的字的字节的排列顺序 0x0A0B0C0D
大端序:|
0x0A
|0x0B
|0x0C
|0x0D
|小端序:|
0x0D
|0x0C
|0x0B
|0x0A
|
主存的性能指标
- 存储容量 = 存储字数×字长(如1M×8位)
- 单位成本:每位价格=总成本/总容量
- 存储速度:数据传输率=数据的宽度/存储周期
主存的存储周期一般要比存取时间长(Tm > Ta),因为经历读写之后,需要一段时间来进行内部状态的恢复。
存储周期: 连续两次独立访问存储器操作(读或写操作)之间所需的最小时间间隔
半导体存储器
四、数据的表示和运算
进位计数制
- 基数:r 进制的基数为 r
- 位权:$r^k$ 中的 k