计算机系统概论
计算机的基本组成
冯诺依曼计算机的特点
(1)计算机由运算器,存储器,控制器,输入设备,输出设备五大部件组成。
(2)指令和数据以同等地位存放于存储器内,可按地址访问。
(3)指令和数据均用二进制数表示。
(4)指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置。
(5)指令在存储器内顺序存放。
(6)机器以运算器为中心,输入输出设备与存储器间的数据传送通过运算器完成。
计算机的硬件框图
通常把运算器与控制器统称为中央处理器,即CPU。把输入/输出设备成为I/O设备,也可称为外部设备。
CPU与主存储器合起来称为主存。
控制元(CU)用来解释存储器中的指令,并发出各种操作命令来执行指令。
计算机硬件的主要技术指标
机器字长;
存储容量:MAR位数反映的存储单元的个数,MDR的位数反映了存储字长;
运算速度:MIPS(百万条指令每秒),CPI(执行一条指令所需的时钟周期);
附加
指令字长=存储字长=机器字长(三者可以相等也可以不等)
1 | 机器字长:CPU一次能处理的二进制数据的最大位数。通常与CPU内寄存器的位数有关。栗子:windows 64位/32位,这里的64位和32位指的就是该操作系统的机器字长。 |
用以指定待执行指令所在地址的是程序计数器
磁盘驱动器具有输入及输出功能
完整的计算机系统应该包括配套的硬件设备和软件系统
计算机与日常使用的袖珍计算器的本质区别在于自动化程度的高低。
有些计算机将一部分软件永恒地存于只读存储器中,称为固件
计算机系统软件包括:
1 | 标准程序库,如监控程序,用于监视计算机工作 |
存储元件(又称存储基元、存储元)用来存放一位二进制信息。存储单元由若干个存储元件组成,能存放多位二进制信息。每个存储单元中二进制代码的组合即为存储字,它可代表数值、指令、地址或逻辑。每个存储单元中二进制代码的位数就是存储字长。
计算机系统量化分析基础
计算机体系结构的概念
计算机体系结构概念的演变
阿姆道尔首次明确计算机体系结构是程序员所看到的计算机的属性,即概念性结构与功能特性。
对于通用寄存器型机器,这些属性主要是指:
1 | (1)数据表示:硬件能直接辨认和处理的数据类型 |
计算机体系结构、组成和实现
体系结构包括以下三个方面
1 | (1)计算机指令系统 |
系列机
1 | 一种指令集结构可以有多种组成。同样,一种组成可以有多种物理实现。系列机就是指在一个厂家生产的具有相同的指令集结构,但具有不同组成和实现的一系列不同型号的机器。 |
兼容性
1 | 向上(下)兼容指的是按某档机器编制的程序,不加修改的就能运行于比它高(低)档的机器 |
计算机体系结构的发展
并行性
1 | 计算机系统在同一时刻或者同一时间间隔内进行多种运算或操作。 |
从执行程序的角度来看,并行性等级从低到高可分为
1 | 指令内部并行:单条指令中各微操作之间的并行。 |
从处理数据的角度来看,并行等级从低到高可分为:
1 | 字串位串:每次只对一个字的一位进行处理。 |
按照指令和数据的关系,把计算机系统的结构分为4类。Flynn分类法
1 | 单指令流单数据流SISD |
提高并行性的技术途径
1 | (1)时间重叠 |
耦合度 反映多机系统中各机器之间物理连接的紧密程度和交互作用能力的强弱。
量化设计的基本原则:
1 | 1.大概率事件优先原则 |
具有高性能价格比的计算机系统是一个带宽平衡的系统,而不是看它使用的某些部件的性能
CPU性能公式
1 | 执行一个程序所需的CPU时间 |
总线
总线的基本概念
总线是连接多个部件的信息传输线,是各部件共享的传输介质。在某一时刻,只允许有一个部件向总线发送信息,而多个部件可以同时从总线上接受相同的信息。
M总线:存储总线
I/O总线:输入输出总线
总线的分类
片内总线
芯片内部 的总线
系统总线
计算机各部件之间 的信息传输线
数据总线
1 | 用来传输各功能部件之间的数据信息 |
地址总线
1 | 用来指出数据总线上的源数据或目的数据在主存单元的地址或I/O设备的地址。 |
控制总线
1 | 发出各种控制信号的传输线。 |
通信总线
用于 计算机系统之间 或 计算机系统与其他系统(如控制仪表、移动通信等)之间的通信
有串行通信和并行通信两种。
总线特性及性能指标
总线特性
总线的性能指标
总线结构
单总线结构
双总线结构
三总线结构
主存总线用于CPU与主存之间的传输;I/O总线供CPU与各类I/O设备之间传递信息;DMA总线用于高速I/O设备(磁盘,磁带等)与主存之间直接交换信息。
另一种三总线结构
Cache可通过系统总线与主存传递信息;且I/O设备与主存之间的传输也不必通过CPU,还有一条扩展总线。
SCSI:小型计算机接口;MODEM:调制解调器
四总线结构
高速总线上挂了一些告诉的I/O设备。
总线控制
总线判优控制
总线上所连接的各类设备,按其对总线有无控制功能可分为主设备(模块)和从设备(模块)两种。
集中式判优控制将控制逻辑集中在一处,如CPU;后者将控制逻辑分散在与总线连接的各个部件或设备上。
1 | 特点:只需要很少几根线就能按一定优先次序实现总线控制,并且很容易扩展设备,但对电路故障很敏感,且优先级别低的设备很难获得请求 |
1 | 对电路故障不如链式查询方法敏感,但增加了控制线(设备地址)数,控制也较复杂。 |
1 | 响应速度快,优先次序控制灵活,但控制线数量多,总线控制更复杂。 |
总线通信控制
目的:解决通信双方 协调配合 问题
总线传输周期(一次总线操作的时间)
1 | 申请分配阶段 主模块申请,总线仲裁决定 |
总线通信的四种方式
1 | 同步通信 由统一时标 控制数据传送 |
同步式
异步
应答方式又分为三种
1 | 不互锁方式: |
异步串行通信的数据传送速率用波特率来衡量。波特率是指单位时间内传送二进制数据的位数,单位用bps(位/s),记作波特。
同步传送速度高于异步传送。
半同步
1 | 同步 发送方 用系统 时钟前沿 发信号,接收方 用系统 时钟后沿 判断、识别 |
适用于系统工作速度不高但又包含了由许多工作速度差异较大的各类设备组成的简单系统。半同步通信比异步通信简单,可靠性高。缺点是对系统时钟频率不能要求太高,故从整体看,系统工作速度还不是很高。
分离式通信
1 | 一个总线传输周期 |
特点
1 | 1. 各模块有权申请占用总线 |
附加
影响总线带宽的因素:总线宽度,传输距离,总线发送和接受电路工作频率的限制以及数据传输形式。
PCI总线是一个与处理器时钟频率无关的告诉外部总线。
AGP总线是显卡专用的局部总线。
计算机之间的远距离通信除了直接由网卡经网线传输外,还可用RS-232总线通过载波电话线传输。
总线管理主要包括判优控制和通信控制。
在高档PC机中,系统总线主要连接CPU和存储器;PCI总线主要连接多媒体卡,高速局域网适配器,高性能图形版等高速部件;ISA或EISA总线连接图文传真机、调制解调器,打印机等低速部件。系统总线和PCI通过PCI桥路相连,PCI总线又通过标准总线控制器与IS和EIS总线相连。
指令系统
机器指令
每一趟机器语言的语句称为机器指令,又将全部机器指令的集合称为机器的指令系统。
指令由地址码和操作码构成。操作码可固定可不固定。
1 | 扩展操作码技术:操作码的位数随地址数的减少而增加 |
四地址指令:
需进行四次访存,取指令一次,取两个操作数两次,存放结果一次
三地址指令:
下条指令地址隐藏在程序计数器PC中,同样也需要进行四次访存。
二地址指令:
一地址指令:
零地址指令:无地址码
早起计算机指令字长、机器字长和存储字长均相等。
操作数类型和操作类型
操作类型
1 | 数据传送; |
寻址方式
分为数据寻址与指令寻址
指令寻址
分为顺序寻址和跳跃寻址。
数据寻址
指令地址码字段称为形式地址,记为A;而操作数的真实地址称为有效地址,记为EA。
立即寻址
1 | 形式地址A就是操作数 |
直接寻址
1 | A=EA |
隐含寻址
1 | 操作数地址隐含在操作码中 |
间接寻址
1 | 有效地址由形式地址间接提供 |
寄存器寻址
1 | EA=R_i |
寄存器间接寻址
1 | EA=(R_i)有效地址在寄存器中 |
基址寻址
1 | (1)采用专用寄存器作基址寄存器 |
1 | (2) 采用通用寄存器作基址寄存器 R0 作基址寄存器 |
变址寻址
1 | EA = ( IX ) +A IX 为变址寄存器(专用) |
相对寻址
1 | EA = ( PC ) + A |
堆栈寻址
多个寄存器可构成硬堆栈,指定的存储空间构成软堆栈。
指令系统结构的分类
CPU中用来存储操作数的存储单元主要有
1 | 堆栈,累加器,一组寄存器 |
寄存器-寄存器型
1 | 优点:指令字长固定,指令结构简洁,是一种简单的代码生成模型,各种指令的执行时钟周期数相近。 |
寄存器-存储器型
1 | 优点:可以在ALU指令中直接对存储器操作数进行引用,而不必先用load指令进行加载,容易对指令进行编码,目标代码比较紧凑。 |
存储器-存储器型
1 | 优点:目标代码最紧凑,不需要设置存储器来保存变量。 |
指令系统的设计和优化
基本原则
包括指令的功能设计和指令格式的设计
在确定哪些基本功能用硬件来实现时,主要考虑3个因素:速度,成本,灵活性
1 | 硬件实现:速度快,成本高。灵活性差 |
对指令系统的基本要求
1 | 完整性,规整性,正交性,高效率,兼容性 |
控制指令
1 | “调用者保存”(caller saving)方法:如果采用调用者保存策略,那么在一个调用者调用别的过程时,必须保存调用者所要保存的寄存器,以备调用结束返回后,能够再次访问调用者。 |
指令操作码的优化
等长扩展码
1 | 便于分级译码 |
定长操作码
1 | 固定长度的操作码:所有指令的操作码都是同一的长度。 |
指令系统的发展和改进
一个方向是强化指令功能,实现软件功能向硬件功能转移,基于这种指令集结构而设计实现的计算机系统称为复杂指令集计算机(CISC)。
八十年代发展起来的精简指令集计算机(RISC),其目的是尽可能地降低指令集结构的复杂性,以达到简化实现,提高性能的目的。
面向目标程序增强指令功能
提高运算型指令功能;
提高传送指令功能;
增加程序控制指令功能。
面向高级语言和编译程序改进指令系统
增加对高级语言和编译系统支持的指令功能;
高级语言计算机指令系统。
附加
零操作数来自栈顶和次栈顶。
寄存器间址有利于编制循坏程序。
在非立即寻址的一地址格式指令中,其中一个操作数通过指令的地址字段安排在寄存器或存储器中。
一个较完善的指令系统应该包括数据传送,算术逻辑运算,程序控制,输入输出,其他。
变址寻址只要用于处理数组程序;基址寻址支持多道程序的应用。
RR型指令,执行指令时不访问存储器。
RS型指令,执行指令时需访问存储器,且通过变址运算,时间最长。
CPU设计与实现
CPU的结构
CPU的寄存器
用户可见寄存器
1 | (1) 通用寄存器 |
控制寄存器
1 | 其中 MAR、MDR、IR 用户不可见 |
状态寄存器
1 | PSW寄存器 存放程序状态字 |
运算方法与ALU
算数移位运算
有符号数移位称为算数移位,无符号数移位称为逻辑移位。
单符号位判断溢出与双符号位判断溢出。
浮点四则运算
浮点加减法
1 | 对阶:求阶差,小阶向大阶对其 |
多级时序系统
指令周期
取出并执行一条指令所需的全部时间
微指令分析
1 | 取指阶段: |
在机器周期所含时钟周期数 相同 的前提下,
两机 平均指令执行速度之比 等于 两机主频之比
一个指令周期包含若干个机器周期
一个机器周期包含若干个时钟周期
附加
流水线
概述
流水线特点
1 | 流水过程由多个相关的子过程组成,这些子过程称为流水线的“级”或“段”。段的数目称为流水线的“深度”。 |
分类
1 | 单功能流水线和多功能流水线 |
1 | 静态流水线和动态流水线 |
1 | 部件级、处理机级及处理机间流水线 |
1 | 标量流水处理机和向量流水处理机 |
1 | 线性流水线和非线性流水线 |
基本流水线
性能分析
吞吐率
1 | 吞吐率是指单位时间内流水线所完成的任务数或输出结果的数量。 |
1 | 最大吞吐率取决于流水线中最慢一段所需的时间,该段成为流水线的瓶颈 |
加速比
1 | 流水线速度与等功能的非流水线速度之比 |
效率
1 | 流水线的设备利用率 |
效率是实际加速比S与最大加速比m之比。
当△t0不变时,流水线的效率与吞吐率呈正比。为提高效率而采取的措施,也有助于提高吞吐率。
注
1 | 流水线并不能减少(而且一般是增加)单条指令的执行时间,但能够提高吞吐率 |
流水线冲突
流水线冲突是指相邻或相近的两条指令因存在某种关联,后一条指令不能在原先指定的时钟周期开始执行。
三种不同类型的冲突
1 | 结构冲突(Structural Hazard):当指令在重叠执行过程中,硬件资源满足不了指令重叠执行的要求而发生的冲突。 |
导致结构冲突的常见原因:
1 | 功能部件不是全流水 |
避免结构冲突的方法:
1 | 所有功能单元完全流水化 |
有些设计方案允许结构冲突存在
1 | 降低成本 |
数据冲突
1 | 产生原因:当指令在流水线中重叠执行时,流水线有可能改变指令读/写操作数的顺序,使之不同于它们在非流水实现时的顺序,这将导致数据冲突。 |
1 | 通过定向技术减少数据冲突带来的暂停 |
编译调度
1 | 编译器可以通过重新排列代码的顺序来消除这种暂停,这种技术就是“流水线调度”或“指令调度” |
1 | 指令发射(Issue):指令从流水线的译码段进入执行段的过程称为指令发射。 |
指令级并行
记分牌的性能受限于以下几个方面:
1 | 程序代码中可开发的并行性,即是否存在可以并行执行的不相关的指令。 |
Tomasulo算法的优点
1 | 分布式硬件冲突检测。 |
缺点
1 | 高复杂性:需要大量硬件 |
分支预测
1 | 最简单的分支预测策略 |