一、计算机的抽象和计算
冯诺依曼结构(存储结构计算机)
特点:
- 由输入设备, 运算器 (数据通路) , 控制器, 存储器, 输出设备
- 以运算器为核心
- 程序以二进制数据的形式进行编码 ( 包括指令和地址码 )
- 从计算机中逐条读取指令加以执行
结构框图:
计算机硬件组成
CPU:
CU (control unit) 控制单元
Data path 数据通路 ( 运算器 ) :
- ALU寄存器(Arithmetic and Logic unit 算术逻辑单元)
- PC寄存器(Program counter 程序计数器) 用于存放指令的地址
- IR寄存器(Instruction Register 指令寄存器) 用于存放当前正在执行的指令
完成一条指令的步骤:PC取指令,IR分析指令,CU执行指令 一般来说PC取完指令后,通常要进行(PC + 1 -> PC)来取出下一条指令
存储器
内存 ( RAM random access memory ) : MDR ( memory data register 数据寄存器 ), MAR ( memory address register 地址寄存器 )
外存 ( ROM Read-Only Memory )
内存大小容量=存储单元个数×存储字长
即$2^{MAR} \times MDR$
- 存储字长:存储单元的二进制位数
- 存储字:存储单元的二进制代码组合
I/O设备
计算机硬件通过总线连接, 计算机的物理层抽象, 将门电路封装抽象成了这些计算机硬件
计算机性能评价
字长的概念
字长 一个字中的二进制的位数
机器字长 CPU一次能处理数据的位数,与CPU中的寄存器位数有关,通常与主存单元位数一致。
指令字长 一个指令字中包含二进制的位数
存储字长 一个存储单元中包含二进制的位数
衡量计算机性能的基本指标
- 响应时间 (Response Time) : 执行时间, 等待时间
- 主频
- 吞吐量 (Throughout) : 带宽 (Bandwidth)
- 指令执行速度 (CPI 每执行一条指令所需的时钟周期数, MIPS 每秒执行百万指令数, MFLOPS 每秒执行百万浮点运算数)
- 功耗 (Power)
- 制造成本
$$ 一般来说的计算机性能 : 响应时间 (执行时间) 的倒数 $$
- CPU 执行时间
时钟周期 : 固定的频率的硬件时钟, 决定计算机硬件各种事件发生的时间和顺序 时钟频率: 时钟周期数的倒数, 一般计算机的单位都为GHz
一个程序的CPU时钟周期数 = 程序的指令数×每条指令的时钟周期数 (CPI)
一个程序的CPU执行时间 = 一个程序的CPU时钟周期数×时钟周期
总执行时间 = sum (执行时间×频率)
MIPS (每秒百万指令数)
$MIPS = \frac{指令数}{执行时间\times10^6} = \frac{时钟频率}{CPI\times10^6}$
功耗
略
二、系统指令
计算机硬件和软件的接口及界面 两种类型指令系统:CISC,RISC
设计原则 :完备性,有效性,规整性,兼容性
一个较为完善的指令系统应该包括的指令有:数据传送指令,输入输出指令,算术逻辑运算指令,系统控制与程序控制指令
指令格式
- 基本指令操作格式:操作码+地址码
PS:操作码只能有一个,地址码可以有0或者多个
- 操作码设计:定长操作码,扩展操作码
定长操作码:指令的操作码部分固定长度 扩展操作码:指令的操作码部分长度分成几种固定长度, 地址码位数随操作码位数增加而减少
- 寻址方式
扩大访存范围 提高访问数据的灵活性和有效性 支持软件技术的发展:多道程序设计
立即数寻址
例: MOV AX, 1000H
将1000H存放到寄存器AX中
存储器直接寻址
例: MOV AX, [1000H]
将存储器中地址为[1000H]单元中存放的数存放到寄存器AX中
寄存器直接寻址
例: MOV BX, AX
将寄存器AX中存放的数存放到寄存器BX中
存储器间接寻址
例: MOV AX, @(1000H)
寄存器间接寻址
例: MOV AX, [BX]
偏移寻址
堆栈寻址
复合寻址
数据在计算机中的表示形式
1Byte = 8bit
字长: CPU中数据通路的宽度
表示实数:
符号位 s, 阶码(指数,移码) e, 尾数 f
阶码表示小数点的浮动,浮点数是对尾数和小数进行分别编码
移码:将补码加上一个偏置常数,方便进行正数和负数大小的比较(可以直接进行硬件比对)。
规格化:$1/2 <= |f|<1$
右规:$|f| > 1$ 右移一位,阶码加一
左规:$f| < 1 / 2|$ 左移一位,阶码减一
尾数为原码
单精度(SP):$(-1)^s\times(1 + Significand) \times 2^{Exponent-127}$
双精度(DP):$(-1)^s\times(1 + Significand) \times 2^{Exponent-1023}$
数据存放:
多字节数据采用大端或小端方式存放。
大端指的是存放的数据的最高有效位放在低地址单元中;
小端指存放数据的最高有效位放在高地址单元中。
三、系统总线
总线分类(按连接部件)
片内总线(芯片内部的总线)
系统总线(计算机各部件的信息传输线): 数据总线(双向), 地址总线(单向),控制总线(有出有入)
一般通过控制总线的信号: 时钟,复位,总线请求,总线允许,中断请求,中断回答,存储器读,存储器写,I/O读,I/O写,传输确认
- 通信总线(用于计算机系统之间或者计算机与其他系统之间的通信):串行通信总线,并行通信总线
总线特性及性能指标
总线特性:
机械特性:尺寸,形状,管脚数,排列顺序
电气特性:方向,电平范围
功能特性:地址,数据,控制
时间特性:信号的时序关系
总线的性能指标
- 总线的传输周期(总线周期)
一次总线操作所需要的时间(包括申请阶段,寻址阶段,传输阶段和结束阶段),通常由若干个总线时钟周期构成。
- 总线时钟周期
即机器的时钟周期。计算机有一个统一的时钟周期,以控制整个计算机的各个部件总线也要受此时钟周期的控制。
- 总线的工作频率
总线上各种操作的频率,为总线周期的倒数,实际上指一秒内传送几次数据。
- 总线的时钟
即机器的时钟频率,为时钟周期的倒数。实际上指一秒内有多少个时钟周期
- 总线宽度
又称总线位数,并行一次传输数据量,它是总线上能同时传输的数据位数,通常是数据总线的根数,如32根称为32位(bit)总线
- 总线带宽
可理解为总线的数据传输率,即单位时间内总线上可传输数据的位数,通常用每秒传送信息的字节数来衡量,单位可用字节/秒(B/s)表示
总线带宽 = 总线工作频率X总线宽度(bit/s) = 总线工作频率X(总线宽度/8)(B/s)
- 总线复用
总线复用是指一种信号线在不同的时间传输不同的信息。可以用较少的线传输更多的信息,从而节省空间成本
- 信号线数
地址总线,数据总线,控制总线3种总线数和称为信号线数
时钟同步/异步
总线控制方式 并发,自动,仲裁,逻辑,计数
负载能力
总线标准
PCI,EISA,VESA(LV-BUS),ISA,AGP,RS-232,USB
总线标准 | 数据线 | 总线时钟 | 带宽 |
---|---|---|---|
ISA | 16 | 8 MHz(独立) | 33 MBps |
EISA | 32 | 8 MHz(独立) | 33 MBps |
VESA (VL-BUS) | 32 | 32 MHz(CPU) | 133 MBps |
PCI | 32 64 | 33 MHz(独立) 64 MHz(独立) | 132 MBps 528 MBps |
AGP | 32 | 66.7 MHz(独立) 133 MHz(独立) | 266 MBps 533 MBps |
RS-232 | 串行通信 总线标准 | 数据终端设备(计算机)和数据通信设备(调制解调器)之间的标准接口 | |
USB | 串行接口 总线标准 | 普通无屏蔽双绞线 带屏蔽双绞线 最高 | 12 Mbps (USB1.1) 480 Mbps (USB2.0) 4.8 Gbps (USB3.0) |
总线结构
单总线结构
结构:CPU,主存,I/O设备(通过I/O接口)都连接在一组总线,允许I/O设备之间,I/O设备和CPU之间或I/O设备与主存之间直接交换信息。
优点:结构简单,成本低,易于接入新的设备
缺点:总线在某一时间只能允许一对部件之间传送数据,限制信息的吞吐量
(注)单总线并不是指只有一根信号线,系统总线按传送信息的不同可以细分为地址总线,数据总线和控制总线
双总线结构
结构:双总线结构有两条总线,一条是主存总线,用于CPU,主存和通道之间进行传送,另一条是I/O总线,用于多个外部设备与通道之间进行数据传送。
优点:将较低速的I/O设备从单总线上分离出来。实现存储器总线和I/O总线分离
缺点:需要增加硬件等通道设备
支持突发(猝发)传送,送出一个地址,收到多个地址连续的数据
通道是具有特殊功能的处理器,能对I/O设备进行统一管理。通道程序存放在主存中
双总线B
三总线结构
结构:三总线结构是在计算机系统各部件之间采用3条各自独立的总线来构成信息的通路。这三条总线分别为主存总线,I/O总线和直接内存访问DMA总线 (DMA:Direct Memory Access 直接内存访问)
优点:提高了I/O设备的性能,使其更快的相应命令,提高系统的吞吐量
缺点:系统工作效率较低
四总线结构
总线控制
总线控制: 判优控制(优先级):集中式(链式查询,计数器定时查询,独立请求方式),分布式
主设备,从设备
(16条消息) 计算机组成原理——总线控制(总线判优控制、总线通信控制)_总线判优控制的三种方式_小草dym的博客-CSDN博客
- 链式查询方式
注:在查询链中离总线控制器最近的部件具有最高优先权,离总线控制器越远,优先权越低。
- 计数器定时查询方式:
注:计数器的初值可用程序设置,以方便地改变优先次序。当然这种灵活性是以增加控制线数为代价的。
- 独立请求方式
总线通信控制
总线传输周期的四个阶段
1. 申请分配阶段
由需要使用总线的主设备提出申请,经总线仲裁机构决定将下一代传输周期的总线使用授权给予某一申请着。也可将此阶段细分为传输请求和**总线仲裁(总线判优)**两个阶段。
2. 寻址阶段
获得使用权的主设备通过总线发出本次要访问的从设备的地址及有关命令。启动参与本次传输的从设备
3. 传输阶段
主设备和从设备进行数据交换,可单向或双向进行数据传送
4. 结束阶段
主设备的有关信息均从系统总线上撤除,让出总线使用权
总线通信的四种方式
同步通信(同步定时方式) 由统一时钟控制数据传送
优点:规定明确、统一,模块间配合简单 缺点:主从模块时间配合强制“同步”,造成对不同速度的部件而言,必须按最慢速度的部件设计公共时钟。 适用于总线长度短、部件存取时间比较一致的场合。
异步通信(异步定时方式) 采用应答方式,没有公共时钟标准
半同步通信 同步异步结合,发送方用系统时钟前沿发信号,接收方用系统时钟后沿判断、识别,增加一个wait信号
半同步通信集同步与异步通信之优点,既保留了同步通信的基本特点,如所有的地址、命令、数据信号的发出时间,都严格参照系统时钟的某个前沿开始,而接收方都采用系统时钟后沿时刻来进行判断识别。同时又像异步通信那样,允许不同速度的模块和谐地工作。为此增设了一条“等待”响应信号线。
分离式通信 充分挖掘系统总线每瞬间的潜力
四、IO设备
显示设备:分辨率,灰度级,刷新率(显存)
IO接口:
- 实现设备的徐泽
- 实现数据缓冲达到速度匹配
- 实现数据串-并格式转化
- 实现电平转化
- 传送控制命令
- 反应设备状态
IO总线
- 设备选择线
- 数据线
- 命令线 (主机 -> 外设)
- 状态线 (外设 -> 主机)
轮询,中断
请求 判优 响应 服务 返回
DMA工作过程
预处理,数据传输,后处理
五、存储器
存储器的分类
- 按存储介质分类
- 半导体存储器:TTL、MOS
- 磁表面存储器:磁头,磁载体
- 磁芯存储器:硬磁材料、环状元件
- 光盘存储器:激光、磁光材料
- 按存取方式分类
随机存储器RAM 只读存储器ROM 串行访问存储器
- 按在计算机中的作用分类
主存 Flash 高速缓存(Cache) 辅助存储器
存储器的层次结构
(寄存器,缓存,主存,磁盘,……)自顶向下容量逐渐增大,速度逐渐减慢
存储器的技术指标
存储容量=$2^{MAR} \times MDR$ 存储速度(存取时间,存取周期) 存储器的带宽=$\frac{数据宽度}{存储周期}$
RAM半导体存储芯片
- 基本结构
地址线,片选线,数据线,I/O控制线
- SRAM和DRAM
SRAM:利用双稳态触发器来保存信息,只要不断电,信息不会丢失,因为其不需要进行动态刷新,故称为“静态”存储器。 DRAM:利用MOS电容存储电荷来保存信息,使用时需要给电容充电才能使信息保持,即要定期刷新。
DRAM 刷新
- 集中刷新
- 分散刷新
- 分散刷新与集中刷新相结合
存储器与CPU连接
位扩展(增加存储字长)
字扩展(增加存储数量)
存储器的校验
- 汉明码 第$2^k$位为校验码,$C_k$为检测组,那么组内所有位置与$k$等于$k$,例如$C_1$组包含$1, 3, 5, 7, 9, 11, …$
偶校验每组异或和为$0$则为无误,奇校验反之。
提高访存速度的措施
- 采用高速器件
- 采用层次结构 Cache - 主存
- 调整主存结构
单体多字系统、多体并行系统、双端口存储器
Cache
$$ h = \frac{C_c}{C_c + C_m} $$ 其中$h$表示Cache命中率,$C_c$表示执行某段程序中访问Cache的命中次数,$C_m$b表示访问主次的次数。
$$ t = h \times t_c + (1 - h) \times t_m $$ 其中$t$平均访存时间,$t_c$表示Cache的存取周期,$t_m$表示主存的存取周期
$$ e = \frac{t_c}{t} $$ 其中$e$表示效率
$$ 性能提高 = \frac{t_m}{t} $$
映射方法
- 直接映射
高位标记 低位索引 块内地址
- 组相联映射
高位标记 低位索引 块内地址
- 全相联映射
标记 块内地址
替换算法
先进先出、近期最少使用、随机法
辅助存储器
不直接与CPU交换信息 硬盘(磁道,位密度)