教材:《计算机组成原理(第六版)》白中英等著
第一代:电子管计算机 数据处理机 ENIAC EDVAC 冯·诺伊曼结构
第二代:晶体管计算机 工业控制机
第三代:中小规模集成电路计算机 小型计算机
第四代:大规模和超大规模集成电路计算机微型计算机
第五代:巨大规模集成电路计算机 单片计算机
铁磁体环
半导体存储器
摩尔定律
吞吐量:整体性能
响应时间:CPU执行时间+等待时间
处理机字长=机器字长:运算器一次整数运算处理的二进制位数
总线宽度:cpu中运算器与存储器之间互连的内部总线二进制位数
存储器容量
存储器带宽:单位时间内从存储器读出的二进制数信息量,单位字节数/s
主频:cpu工作频率
时钟周期:1/f,单位微秒
CPI(cycle per instruction)每条指令周期数:执行一条指令需要的平均时钟周期数
IPS(instructions per second)每秒执行指令数:MIPS:每秒执行百万条(million)定点指令数
FLOPS(floating-point operation per second):每秒执行浮点操作次数
实际电脑:
主板
CPU
GPU(显卡)
内存
硬盘
网卡
散热器、风扇
电源
抽象术语:
位bit(b)
字节Byte(B)=8b
字word:8~64位,即1-8字节
符号Xn | 尾数Xn-1 ~ X0 |
---|
整数表示范围: 0 ≤ ∣ x ∣ ≤ 2 n − 1 0\le |x|\le 2^n-1 0≤∣x∣≤2n−1
纯小数表示范围: 0 ≤ ∣ x ∣ ≤ 1 − 2 − n 0\le |x|\le 1-2^{-n} 0≤∣x∣≤1−2−n
阶符E | 阶码 | 数符M | 尾数 |
---|
规格化浮点数:
尾数最高有效位为1,即0.1xxxx
原码:正数0.1xx 负数1.1xxx
补码:正数0.1xx 负数1.0xx
( − 1 ) S ∗ ( 1. M ) ∗ 2 E − 127 (-1)^S*(1.M)*2^{E-127} (−1)S∗(1.M)∗2E−127
数符S | 阶码E(移码) | 尾数M(原码) |
---|---|---|
1位 | 8位:0-255 | 23位(实际表示24位) |
数符:0正1负,表整个数的正负
阶码:E-127,真实表示范围为-127~128
尾数:隐含了首位的1,多存一位
正常范围:
1<=E<=254,真实范围是-126~127
因此数据表示范围是1e-38~1e38
尾数精度达不到阶码这么高
特殊情况:
E=0,M!=0,非规格化小数,隐藏位变为(0.M)
E=0,M=0,正负0
E=255,M!=0,NaN
E=255,M=0, ± ∞ \pm \infin ±∞
数符S | 阶码E(移码) | 尾数M(原码) |
---|---|---|
1位 | 11位:0-1024 | 52位(实际表示53位) |
要指明起址和长度
ascii码,8位,最高位是校验位
符号位 0正 1负
正数和原码相同
负数将符号位以外的数位取反
正数和原码相同
负数将符号位以外的数位取反再+1
考研速算:固定符号位,从右向左看第一个1不变,在它之前的数位取反
常用于表示浮点数的阶码 +2^k
移码的符号位和上面的相反
奇偶校验:
奇数个1异或=1
偶数个1异或=0
优点:开销小,常用于检验一个字节长的数据
常用于:存储器读写校验、按字节传输过程中的数据校验,计算机网络
缺点:只能监测奇数或偶数个错误,无法定位错误位置
上溢,下溢
双符号位(变形补码):不同表示溢出,最高位始终表示正确的符号
标志位
阶码溢出
ALU(74181)+阵列乘除器+寄存器+多路开关+三态缓冲器+数据总线
后续复
基本构成是全加器
串行4个FA,构成4位ALU
需要先行进位发生器(CLA,Lookahead Carry Adder)
16位ALU需要片内先行进位,片间串行进位
把两个操作数输入到ALU需要两次,完成ALU计算任务需要三次串行选通操作
把两个操作数输入到ALU需要1次,完成ALU计算任务需要2次串行选通操作
完成ALU计算任务需要1次串行选通操作
(都是在补码下的)
实现时间并行性
流水线中各段的时间应该尽量相等
有装入时间和排空时间
具有k级过程段的流水线处理n个任务需要的时钟周期数为k+n-1
加速比: n ∗ k k + n − 1 \frac{n*k}{k+n-1} k+n−1n∗k
冯诺依曼架构以运算器为中心
以存储器为中心的计算机架构
按存储介质
存取方式
读写功能
信息的保存性
在计算机中的作用
存储系统
cpu内:寄存器 多级cache
主板内:主存
主板外:磁盘 光盘
离线:磁带
大端:高字节放低地址端
小端:低字节放低地址端(常用)
非易失性,访问速度比RAM慢
在运行过程中只读,更新方式实际上是编程
分类
用锁存器作为存储元
双译码方式
读周期:地址线有效->片选&读出使能有效->读出数据->撤销片选&使能->地址线改变
写周期:地址线有效->片选&读出使能有效->写入数据->撤销片选&使能->地址线改变
用作高速缓存 cache
元件简化,会漏电,需要刷新,读出是破坏性的,需要刷新。需要额外的电路支持。
有刷新计数器,行地址锁存器,列地址锁存器,行、列使能端,读写使能端
分时传送地址码
读周期:地址线传行地址->行选通信号将其打入行地址锁存器->地址线传列地址->列选通信号将其打入列地址锁存器->行列地址译码&读出使能有效->读出数据
写周期:地址线传行地址->行选通信号将其打入行地址锁存器->地址线传列地址->列选通信号将其打入列地址锁存器->行列地址译码&写入使能有效->写入数据
刷新策略:
周期性刷新和读写操作交替进行,通过2选1多路开关实现
有片内刷新计数器自动生成地址来刷新
新型DRAM:
同步 SDRAM synchronous
快速页模式 FPM DRAM Fast Page Mode DRAM
根据局部性原理实现
允许在选定行的情况下,对每个列地址快速读写
高速缓冲 Cached CDRAM
在DRAM里放一个小容量的SRAM(cache),存放最后一次访问数据
更快的存储可以给较慢的作缓存
双倍速率 DDR DRAM double data rate
在时钟上升沿和下降沿都能传输数据
芯片数=要求容量/单片容量
注意DRAM的扩展,地址线只需要SRAM的一半,因为分时复用
字数够,但位数不够,不满足字长。
地址线、控制线公用,数据线分高x位和低x位分别与两片IO端相连接,两片同时工作
画图
位数够,扩充容量。地址总线和数据总线公用,读写信号线公用,由地址总线的高位译码产生片选信号,让各个芯片分时工作
画逻辑框图
时间:多模块交叉存储器
空间:双端口存储器
程序的局部性原理,多级cache
SRAM+控制逻辑(cpu提供,或主存/cache控制器提供)
命中率h
平均访问时间ta
访问效率e=tc/ta
cpu与cache 以字为单位传输
cache与主存 以块为单位传输
主存块对应cache行、槽
主存块映射到cache的固定行中
主存标记(块群号) | cache槽号 | 块内地址 |
---|
主存块映射到cache的任意行中
块号 | 块内地址 |
---|
访问内存单元时先查cache中有无块号,如果miss则去内存里找
主存块映射到cache的固定组的任意行中
标记 | 组号 | 块内地址 |
---|
减少查找次数,但命中率低
失靶率和命中时间成负相关
FIFO
LRU 计数器 命中行清零,其他+1
LFU 计数器 调出最小计数器的行,清零
随机替换Random
写回法:调出时才写回
全写法:分为WTWA和WTNWA法
写一次法
本节可在 汇编语言&微机原理 课程继续学习
指令集是存储在cpu内部,对cpu运算进行指导的硬程序
常见:
x86-16,x86-32(IA32),x86-64(x64)
IA64
MIPS,ARM,RISC-V,PowerPC
高级语言(宏指令)
汇编语言
机器指令——指令 √
微程序
伪指令
微命令
微操作
完备性,有效性,规整性,兼容性
指令=指令字=包含一条指令的机器字
操作码字段OP | 地址码字段A |
---|
地址码
三地址指令 A3是结果地址 通常三个都是通用寄存器里的地址
OP | A1 | A2 | A3 |
---|
二地址指令(常见) A1既是操作数又是存放结果的地址
OP | A1 | A2 |
---|
SS存储器-存储器
RS寄存器-存储器
RR寄存器-寄存器
一地址指令 指定一个操作数,另一个隐含,结果隐含
OP | A1 |
---|
零地址指令 无需操作数或隐含在寄存器中,如HALT信号,return,clear
OP | 空 |
---|
为了保证等长,操作码会占用消失的地址码长度,但实际上指令也没有那么多,高位可能会占一些无意义的东西
操作数类型:
一个指令的位数
单字长指令:指令字长度=机器字长
半字长指令
双字长指令
多字长指令
等长指令字结构(现代多用)
变长指令字结构
取值-》译码-》取操作数-》执行-》存结果-》下一条指令
典型指令:
数据传送
算术运算
逻辑运算
程序控制
输入输出
字符串处理
特权
其他
程序计数器PC累加
OP | 变址X | 间址I | 形式地址A(偏移量) |
---|
如果无间址和变址,则形式地址就是有效地址
如果有,需要地址变换,这就是寻址过程
隐含了累加器作为目的寄存器
地址字段给的是操作数本身,立即数
不需要变换直接寻址
间址I=0 直接寻址
间址I=1 间接寻址 两次访存
直接寻址+寄存器间接寻址
相对寻址 PC
基址寻址 基址寄存器
变址寻址 变址寄存器
寄存器堆栈
存储器堆栈
功能:指令控制,操作控制,时间控制,数据加工
包含
从cache的指存中取指令(取哪条是从程序计数器PC中通过地址总线ABUS取出指令地址,PC++),送到控制器的指令寄存器IR,指令分为操作码和地址码,把操作码送给指令译码器,把地址码通过地址总线送给地址寄存器AR,同时译码成功,时序发生器和操作控制器产生控制信号,通过数据总线DBUS在cache的数存中取数据放到运算器的数据打入ALU,ALU计算出结果放入数据缓冲寄存器,之后送到相应的地方,检测异常,处理异常,处理中断,进入下一条指令
寄存器:
数据缓冲寄存器DR 用来暂时存放ALU的运算结果
指令寄存器IR 用来保存从指存中读出的数据
程序计数器PC program counter=指令计数器
数据地址寄存器AR 保存当前访问数存的地址
通用寄存器 有64个,为ALU提供工作区
程序状态字寄存器PSWR program state word register
操作控制器
硬布线
微程序
指令周期由若干机器周期=CPU周期组成,机器周期又由时钟周期(节拍)组成
指令周期可能包含取指周期,间址周期,执行周期,中断周期(最全版)
单CPU周期:在一个时钟周期内完成指令所有工作
多CPU周期:√
取指,间址,执行,中断
MOV R0,R1 是RR指令
LAD R1,6
RS,三个CPU周期,一次访问指存,一次访问数存
ADD R1,R2
RR 两个cpu周期
STO R2,(R3)
RS 三个CPU周期
JMP 101
1个CPU周期
AND R1,R3
用方框图表示指令周期
有时钟,控制单元CU,标志,指令寄存器
逻辑电路
微指令:操作控制+顺序控制,字长可为32位
每位代表一个微命令
微程序控制器:控制存储器+微指令寄存器(微地址寄存器+微命令寄存器)+地址转移逻辑
好东西
直接表示法
编码表示法
混合表示法
微地址的形成方式
多路转移方式
计数器法方式
微指令格式
水平型微指令
垂直型微指令
并行的三种:时间、空间、两个都(超标量流水线)
组成:
指令流水线(指令部件)
指令队列
运算流水线(执行部件)
n条指令需要时间:t=4+n-1
流水线分类:
算术流水线
处理机流水线(宏流水线)
指令流水线
主要问题:
资源相关
数据相关:写后读,读后写,写后写
控制相关
为减小转移指令的影响,常用两种技术:延迟转移法,转移预测法
分时,共享
总线由适配器(接口,adapter)构成
常见:ISA,EISA,VESA(video electronics standard association),PCI(Peripheral Component Interconnect,“外围器件互联”),PCI-E(pci-express),AGP(Accelerated Graphics Port,图形加速端口),RS-322,USB(Universal Serial Bus,通用串行总线),SCSI(small computer system interface),SATA(serial advanced technology attachment)
总线功能:传输指令,数据,io操作
接口功能:控制、缓冲、状态、转换、整理、程序中断
片内总线(cpu内)
系统总线(cpu外部,主板内)
通信总线(io总线)
桥,具有缓冲、转换、控制功能的逻辑电路
地址线、数据线、控制线
一根总线连cpu,内存和io设备
cpu和主存专门一套(系统总线)
在双总线系统上增加IO总线
cpu总线-北桥-pci总线-南桥-isa总线(比较老旧的版本了,现在也不用了)
传送方式:
串行(pcie),并行(pci),分时传送
总线宽度:数据线的根数
总线带宽:数据传输速率 MBps million Byte per second
时钟:同步、异步
总线复用:地址线与数据线是否复用
信号线数
总线控制方式:链式、计数、独立
链式查询方法:菊花链查询,计数器定时查询,独立请求方式
以优先级仲裁策略为基础,多个仲裁器竞争使用总线,获胜的仲裁号保留在仲裁总线上
信息传送过程分为五个阶段:请求总线,总线仲裁,寻址,信息传送,状态返回
定时:事件出现在总线上的时序关系
存储介质,驱动装置,控制电路
磁头:可移动、固定(一个磁道对应一个磁头)
盘片:可换、固定
温彻斯特盘(温盘)是一种可移动磁头固定盘片的磁盘机
盘面(一个磁盘有两面),磁道,扇区,柱面,块block/簇bluster
一个扇区:头空+序标+数据+校验字+尾空、
T=寻道时间+旋转等待时间+数据传输时间
Ta=Ts+1/2r+b/rN
数据传输率Dr=旋转速度*磁道容量 (字节/秒)
地址格式
台号 | 柱面号(磁道号) | 盘面号(磁头号) | 扇区号 |
---|
存储密度:道密度,位密度,面密度
存储容量:面密度+记录面数
注意:磁盘的单位进制是1000而不是2e10
独立磁盘冗余阵列
0:数据分布在阵列所有的磁盘上,速度快,不安全
1:备份,利用率50%,可靠性高
5:奇偶校验块分布在各个盘中
不考的:
2:海明校验法,冗余盘存校验码
3:奇偶校验盘(一个)
4:奇偶校验盘(一个)
6:冗余分布在所有磁盘上,数据以块交叉方式存放
7:带cache
CRT,LCD,等离子体
统一编址方式,IO独立编址方式
IO接口与外设之间的数据传送方式:
cpu与IO接口之间的传送方式
常用IO标准接口:SCSI,IEEE1394
置1或置0,测试设备的状态,传送数据
程序查询接口:设备选择电路,数据缓冲寄存器,设备状态标志
限制:cpu在查询时不能做其他工作&不能实时数据交换,可能造成丢失
外围设备主动告诉cpu中断
中断源:握手联络,故障处理,实时处理,程序调度,软中断(打断点)
响应中断时机:在cpu执行当前指令完毕后转入公操作
断点保护
原子操作:开中断和关中断问题
单级中断:串行排队链法
多级中断:挂起入栈
通过硬件实现主存与IO设备的直接数据传送,数据交换不经过CPU而在内存和设备之间进行,不需要保护现场
需要在主存中有专用缓冲器
在数据传输前后需要用中断对缓冲器和DMA控制器进行预处理和后处理
选择型和多路型DMA控制器
以上三种方法都需要CPU的介入,都需要接口硬件支持
一种特殊的处理机
选择通道
多路通道