计算机组成原理

翻译程序

-> 编译程序(C)和解释程序(Python)

冯·诺依曼计算机的特点

  1. 计算机由五大部件组成
  2. 指令和数据以同等地位存于存储器, 可按地址寻访
  3. 指令和数据用二进制表示
  4. 指令由操作码和地址码组成
  5. 指令在存储器内按顺序存放
  6. 以运算器为中心

机器指令格式

-> 操作码+地址码

PC 存放当前欲执行指令的地址,
具有计数功能(PC)+ 1 -> PC

PC Program Counter

IR 存放当前欲执行的指令

IR Instruction Register

机器字长

CPU 一次能处理数据的位数, 与 CPU 中的 寄存器位数 有关,一般字长越长,表示范围就越大,精度也越高。
机器字长也会影响机器运算速度

存储容量

存放二进制信息的总位数

主存容量: 存储单元个数MAR × 存储字长MDR

​ C = 2**MAR + MDR

bit B KB MB GB

运算速度

(1)与主频、执行的操作和主存本身的速度等有关
(2)衡量方法
<1> 完成一次加法或乘法所需要的时间(不合理)
<2> TM=fi*ti(连加)
其中TM 为平均指令执行时间,fi为第i条指令占全部操作的比例,ti为第i条指令的执行时间。
<3> 单位时间内完成的平均指令条数
MIPS (million instruction per second)百万指令每秒
<4> 执行一条指令所需要的平均时钟周期数
CPI (cycle per instruction)
<5> 每秒执行的浮点操作数目
FLOPS(floating point operation per second)
或 MFLOPS (million FLOPS)百万浮点操作每秒
<6> 每个时钟周期数执行的指令数目
IPC(instruction per cycle)
补充:GFLOPS(Giga FLOPS)每秒10亿次 109
TFLOPS(Tera FLOPS)每秒万亿次 1012
PFLOPS(Peta FLOPS)每秒千万亿次 1015

总线

1.片内总线 芯片内部 的总线

2.系统总线 计算机各部件之间 的信息传输线

数据总线(双向),地址总线(单向),控制总线(有出有入)

3.通信总线 用于 计算机系统之间 或 计算机系统与其他系统(如控制仪表、移动通信等)之间的通信

串行通信和并行通信

总线的性能指标

  1. 总线宽度 数据线 的根数
  2. 总线带宽 数据传输率,每秒传字节数(MBps)
-> 总线宽度和总线带宽

总线通信控制四个阶段

申请分配阶段 主模块提出申请,总线仲裁决定

寻址阶段 主模块向从模块 给出地址 和 命令

传数阶段 主模块和从模块 交换数据

结束阶段 主模块 撤消有关信息

->申请分配阶段,寻址阶段,传数阶段,结束阶段

1秒=1000毫秒,1秒=1000000微妙

求总线的数据传输率

例3.1 假设总线的时钟频率为100MHz,总线的传输周期是4个时钟周期,总线的宽度为32位,求总线的数据传输率。若想把数据的传输率提高一倍,可采取什么措施?

解:
法一:
1个时钟周期=1/100MHz=0.01μs
总线传输周期=0.01 μs*4=0.04 μs
因为总线宽度为32位(4B)
所以数据传输率v=x/t=4B/(0.04 μs)=100 MBps
法二:
f = 100MHz -> 1s有100M个时钟周期
100/4 = 25 个总线周期
25 * (32/8)B = 100MBps
提高数据传输率方法: ① 数据宽度改为64位
②总线频率变为200MHz |

比特率和波特率

波特率:单位时间内传送的二进制数据的位数,单位用bps表示。
比特率:单位时间内传送的二进制有效数据的位数,单位用bps表示。

例3.2 在异步串行传输系统中,假设每秒传输120个数据帧,字符格式包含1个起始位,7个数据位,1个奇校验位,1个终止位,计算波特率和比特率。
解:一帧包含1+7+1+1=10位
故波特率为10120=1200bps=1200波特
比特率为7
120=840bps=840比特 |

存储器按存取方式分类

(1) 存取时间与物理地址无关(随机访问)

随机存储器:在程序的执行过程中 可 读 可 写

RAM:Random Access Memory(一旦停电,信息丢失)

只读存储器:在程序的执行过程中 只 读

ROM:Read Only memory(存放固定不变的程序、常数、汉字库等)

(2) 存取时间与物理地址有关(串行访问)

顺序存取存储器 磁带

直接存取存储器 磁盘

存储器:主存储器(RAM,ROM),Flash Memory,高速缓冲存储器(Cache),辅助存储器

主存中存储单元地址的分配

​ 小端:低地址存低字节

​ 大端:低地址存高字节

-> 大端和小端
img

动态 RAM 刷新

刷新(再生):由于漏电阻的存在,电容上的电荷一般只能维持1~2ms,即使电源不掉电,信息也会自动消失,因此,必须在2ms内对所有存储单元恢复一次原状态

刷新过程实质上是先将原信息读出,再由刷新放大器形成原信息重新写入再生过程。

刷新周期:在规定时间内,对DRAM全部基本单元电路全部刷新一遍,通常取2ms

刷新是一行行进行的,一次刷新一行

对于 128 ×128 的存储芯片(存取周期为 0.5 gs )

① 集中刷新(存取周期为0.5 微妙

将所有行进行读写,再整体刷新128行

img

“死区” 为 0.5 gs ×128 = 64 gs (gs暂代微秒)

“死时间率” 为 128/4 000 ×100% = 3.2%

② 分散刷新(存取周期为1 gs )

读/写一个,同时刷新该数据

img

tC = tM + tR (无 “死区”)

(存取周期为 0.5 gs + 0.5 gs )

③ 分散刷新与集中刷新相结合(异步刷新)

读/写一行后,同时将该行刷新

img

每行每隔 2 ms 刷新一次 “死区” 为 0.5 gs

将刷新安排在指令译码阶段,不会出现 “死区”

动态 RAM 和静态 RAM 的比较

DRAM SRAM
存储原理 电容 触发器
集成度
芯片引脚
功耗
价格
速度
刷新
主存 触发器

只读存储器(ROM)

行列选择线交叉处有 MOS 管为“1”

行列选择线交叉处无 MOS 管为“0”

-> PD/Progr

功率下降 / 编程输入端 读出时 为 低电平

存储器与 CPU 的连接

  1. 存储器容量的扩展

(1) 位扩展(增加存储字长)-> DBUS

(2) 字扩展(增加存储字的数量)-> ABUS

-> 位扩展和字扩展

汉明码

2**k ≥ n + k + 1

1 :无错误发生
n :错误发生在n个数据位
k : 错误发生在k个校验位

高速缓冲存储器

img

-> 命中率

命中率:h = Nc/(Nc+Nm)

平均访问时间:ta = h*tc+(1-h)tm

效率:e = 访问cache的时间/平均访问时间 * 100%

-> Cache – 主存的地址映射

​ -> 直接映射

img img img

软盘硬盘区别

硬盘 软盘
速度
磁头 固定,活动,浮动 活动,接触盘片
盘片 固定盘、盘组,大部分不可换 可换盘片
价格
环境 苛刻

I/O设备与主机信息传送的控制方式

程序查询方式

程序中断方式

DMA方式

I/O通道方式

I/O处理机方式

I/O 接 口

接口 两个系统或者两个部件之间的交接部分为什么要设置接口?

  1. 实现设备的选择

  2. 实现数据缓冲达到速度匹配

  3. 实现数据串—并格式转换

  4. 实现电平转换

  5. 传送控制命令

  6. 反映设备的状态(“忙”、“就绪”、
    “中断请求”)

接口 Interface
端口 Port

端口:接口电路中的一些寄存器,用来存放数据信息、
控制信息和状态信息

数据端口
控制端口
状态端口

若干个端口加上相应的控制逻辑才组成接口。

总线连接方式的 I/O 接口电路

(1) 设备选择线 (2) 数据线 (3) 命令线 (4) 状态线