计算机系统概述
计算机系统的层次结构
计算机系统的组成
硬件系统和软件系统共同构成了一个完整的计算机系统
计算机硬件
冯诺伊曼在研究DEVC机时提出了存储程序的概念,控制流驱动的工作方式
存储程序的基本思想:将事先编制好的程序和原始数据送入主存后才能执行,一旦程序被启动,无需干预,计算机会自动逐条执行指令,直至程序执行结束
计算机功能部件
输入设备,输出设备
存储器:主存:按地址存取,辅存
运算器:核心:算术逻辑单元(ALU)
组成:三个必备寄存器:累加器(ACC),乘商寄存器(MQ),操作数寄存器(X)
变址寄存器(IX),基址寄存器(BR),程序状态寄存器(PSW)
控制器:程序计数器(PC),指令寄存器(IR),控制单元(CU)
CPU:ALU,通用寄存器组(GPRs),标志寄存器,控制器,指令寄存器(IR),程序计数器(PC),存储器地址寄存器(MAR),存储器数据寄存器(MDR)
计算机软件
系统软件:操作系统(OS),数据库管理系统(DBMS),语言处理软件,分不式软件系统,网络软件系统,标准库程序,服务性程序
汇编程序:将汇编语言翻译为机器语言
解释程序:将源程序的语句逐条翻译成机器指令并立即执行
编译程序:将高级语言翻译成汇编或机器语言程序
从源程序到可执行文件
预处理,编译,汇编,链接
计算机性能指标
吞吐量:单位时间内处理请求的数量
响应时间:从用户向计算机发送一个请求,到系统对该请求做出响应并获得所需结果的等待时间
影响CPU性能的三个因素:主频 CPI 指令条数
M,G,T,P,E
系列机:具有基本相同的体系结构,使用相同基本指令系统的多个不同型号的计算机组成的一个产品系列
兼容:软件或硬件的通用性(同一型号的计算机系统)
软件可移植性:把使用在某个系列的计算机软件直接或经过很少修改就能运行在另一个系列计算机的可能性
固件:将程序固化在ROM中组成的部件
数据的表示和运算
定点数的移位运算
溢出判别
设A的最高位,B的最高位
,运算结果最高位
溢出表达式:
补码一位乘
操作 | ||
0 | 0 | 右移一位 |
0 | 1 | 加[X]补,右移一位 |
1 | 0 | 加[-X]补,右移一位 |
1 | 1 | 右移一位 |
补码一位除法(加减交替法)
被除数与除数同号,,被除数减去除数
被除数与除数异号,被除数加上除数
余数与除数同号,商1,余数左移一位减去除数
余数与除数异号,商0,余数左移一位加上除数
C语言中的整数类型及类型转换
精简指令系统计算机RISC通常采用边界对齐方式
浮点数的表示与运算
IEEE 754标准
位数采取隐藏位策略(整数部分为1)的原码,阶码用移码(1~2^n-2)表示
类型 | 数符 | 阶码 | 尾数 | 总位数 | 偏置值 | |
短浮点数 | 1 | 8 | 23 | 32 | 7FH | 127 |
长浮点数 | 1 | 11 | 52 | 52 | 3FFH | 1023 |
临时浮点数 | 1 | 15 | 64 | 64 | 3FFFH | 16383 |
溢出问题
在定点运算中,运算结果超出表示范围,发生溢出,浮点运算中,只有规格化后阶码超出所能表示的范围时,才发生溢
三 存储系统
存储器分类
按存储介质分:磁表面存储器(磁盘,磁带)磁芯存储器,半导体存储器(MOS型,双极型)
光存储器(光盘)
按存储方式:
随机存储器(RAM)随机存取,存取时间与存储单元位置无关,(SRAM,DRAM)
只读存储器(ROM)只能随机读不能写入,写入速度比读取速度慢得多
串行访问存储器:按物理位置先后顺序寻址,顺序存取(磁带),直接存取(磁盘,光盘)
性能指标(存储容量,单位成本,存储速度)
存取时间:启动一次存储器到完成该操作所经历的时间,分读出和写入时间
存取周期:存储器进行一次完整的读写操作所需的全部时间,即连续两次独立访问存储器操作之间所需最小时间间隔
通常存取周期大于存取时间,要有一段时间回复内部状态的复原时间
Cache效率:Cache存取周期/平均存取周期
主存储器
主存储器由DRAM实现,Cache有SRAM实现,都属于易失性存储器
SRAM和DRAM
SRAM采用双稳态触发器(六晶体管MOS,非破坏读出)存取速度快,集成度低
DRAM利用存储元电路栅极电容上的电荷来存储信息,易集成
集中刷新:利用一段固定时间对存储器所有行逐一再生
分散刷新:将对每行的刷新分散到各个工作周期(一半读写,一半刷新)
异步刷新:将刷新行的工作平分到整个刷新周期
1.刷新对CPU透明 2.刷新单位为行 3.刷新类似读操作,刷新不需要选片
存储芯片的组成:存储体,I/O读写电路,地址译码,控制电路等组成
只读存储器
结构简单,位密度高,非易失性,可靠性高
ROM类型
掩模式(MROM)生产过程直接写入,无法改变
一次可编程(PROM)实现一次性编程,一旦写入无法改变
可擦除可编程(EPROM)可多次改写,但次数有限,写入时间过长
Flash:基于EPROM和EEPROM(可电擦除)
SSD:基于闪存,固态电子存储芯片阵列制成的硬盘
多模块存储器
多体存储器(低位交叉)
模块存取周期T,总线传送周期r,m=T/r
连续存取m个字所需时间:t=T+(m-1)r
主存储器与CPU的连接
外部存储器
磁盘存储器(非破坏性读出),
磁盘容量:分格式化与非格式化(格式化后比非格式化容量要小)
平均存取时间:寻道时间+旋转延迟时间+传输时间
数据传输率:D=rN(r转速,N每条磁道的容量)
硬盘工作时,第一步取控制字,第二步执行控制字
磁盘阵列
RAID通过同时使用多个磁盘,提高传输率,并行存取提高数据吞吐量,通过镜像功能,提高安全可靠性,通过数据校验,提供容错能力
高速缓冲存储器(Cache)
时间局部性,空间局部性
映射方式
直接,全相联,组相联
标记位+(组号|块号)+块内地址
Cache总容量:存储容量(数据)+标记阵列容量(标记,有效位)
替换控制位,一致性维护位,根据情况
Cache写策略
写命中
1)全写法:需要替换,不必写回,新调入的块直接覆盖
2)回写法:只把数据写入Cache,被换出时写回内存(需要一位脏位标记)
写不命中
1)写分配:不命中就从主存调块
2)非写分配:只写入主存,不进行调块
非写分配常与全写法合用,写分配法常与回写法合用
虚拟存储器
虚实转换:实地址=实页号*页表大小+页内偏移
页式虚拟存储器
页表:虚页号+实页号+有效位+(脏位:回写)+(引用位:替换策略)
优点:页面长度固定,页表简单,调入方便,缺点:浪费
快表:(相联存储器)
TLB,Page,Cache缺失组合
1.TLB命中则Page必命中,信息在主存中,Cache可能命中
2.TLB不命中,Page可能命中,信息在主存,Cache可能命中
3.TLB不命中,Page不命中,信息不在主存,Cache必缺失
Cache缺失处理硬件完成,缺页软件完成(操作系统通过缺页异常处理程序完成)
TLB缺失软硬处理皆可
段式虚拟存储器
段表:段号+段起点+段长+装入位
段页式虚拟存储器
虚拟存储器与Cache
Cache硬件存储器,对所有程序员透明,虚拟存储器由OS和硬件共同实现,是逻辑上的存储器,对系统程序员不透明,对应用程序员透明
缺页中断:指令执行过程中出现中断(指令未完成)
普通中断:指令执行结束后的一小段时间检测间隔内
四 指令系统
指令系统
指令系统:一台计算机所有指令的集合
ISA规定内容:指令格式,数据类型及格式,操作数存放方式,程序可访问的寄存器个数,位数和编号,存储空间的大小和编址方式,寻址方式,指令执行过程的控制方式
指令基本格式(操作码+地址码)
零地址:op
一地址(隐含寻址)op+源
二地址:op+源+目的
三地址:op+源+目的+结果
四地址:op+源+目的+结果+下
定长与扩展操作码
程序控制类指令:改变程序执行顺序,使程序有测试分析,判断,循环执行的能力
中断隐指令:CPU响应中断,经某些操作后,去执行中断服务程序的一种操作
过程:1.保存断点 2.关中断 3.引出中断服务程序
堆栈运算指令的两个操作数来自栈顶和次栈顶
指令寻址方式
指令寻址与数据寻址
1.指令寻址
顺序寻址(PC+1)与跳跃寻址(绝对地址:标记符直接得到 相对地址:PC+1+偏移)
2.数据寻址:操作码+寻址特征+形式地址(A)
数据寻址方式
1.隐含寻址:有利于缩短指令字长,但需要硬件支持
2.立即寻址:形式地址即为操作数
3.直接寻址:EA=A
4.间接寻址(一次间接):EA=(A),可扩大寻址范围,便于编制程序,但多次访存
5.寄存器寻址:EA=R
6.寄存器间接:EA=(R)
7.相对寻址:EA=(PC)+A,广泛应用于转移指令
8.基址寻址:EA=(BR)+A,面向操作系统,多道程序或数据分配空间(编制浮动程序)
9.变址寻址:EA=(IX)+A,面向用户(数组处理)
10.堆栈寻址:寄存器堆栈(硬堆栈)内存区(软堆栈),多表现无操作数指令形式
程序的机器级表示
汇编指令格式
AT&T | Intel | 含义 |
mov $100,%eax | mov eax,100 | 100->R[eax] |
mov %eax,%ebx | mov ebx,eax | R[eax]->R[ebx] |
mov %eax,(%ebx) | mov [ebx],eax | R[eax]->M[R[ebx]] |
mov %eax,-8(%ebp) | mov [ebp-8],eax | R[eax]->M[R[ebp]-8] |
lea 8(%edx,%eax,2),%eax | lea eax,[edx+eax*2+8] | R[eax]+R[eax]*2+8->R[eax] |
movl %eax,%ebx | mov dword ptr ebx,eax | 长度为4字节的R[eax]->R[ebx] |
<reg+位数>几位寄存器,<con+位数>几位常数
CISC和RISC
CISC:长度不固定,格式多,寻址方式多,访存不受限制,各指令使用频度,执行时间相差很大
控制器大多数采用微程序控制
RISC:长度固定,只有Load/Store指令访存,通用寄存器多,一定采用流水线技术,以硬布线为主,不用或少用微程序控制,重视编译优化工作,以减少程序执行时间
五 中央处理器
CPU的功能和结构
CPU的功能
CPU由运算器和控制器组成,控制器负责协调并控制计算机各部件执行程序的指令序列,运算器对数据进行加工
控制器:PC+IR+MAR+MDR+指令译码器+时序系统和微操作信号发生器
指令执行过程
指令周期
CPU取出并执行一条机器指令的时间称为指令周期,指令周期常用若干机器周期(由存取周期决定)表示,一个机器周期又包含若干时钟周期
一个完整的指令周期包含取址,间址,执行,中断4个周期
指令周期的数据流
指令周期的执行方案
单指令周期:所有指令选用相同执行时间(执行时间最长的指令的执行时间)来完成
多指令周期:对不同类型的指令选用不同的执行步骤,可选不同个数的时钟周期
流水线方案:指令间并行执行,每个时钟周期启动一条指令
数据通路的功能和基本结构
组合逻辑(操作元件)+时序逻辑(状态元件)
操作元件:常用的操作元件有多路选择器mux,加法器,ALU,译码器等等,有些操作元件不需要控制信号控制。
时序逻辑:状态元件具有存储功能,输入状态在时钟控制下被写到电路,并保持电路输出值不变,直到下一个时钟到达,输入端状态由时钟决定何时被写入,输出端状态随时可以读出。
数据通路的基本结构
CPU内部单总线:所有部件串联到一条公共通路上(一个时钟周期只允许传输一个数据)
CPU内部多总线:所有部件串联到多条条公共通路上(一个时钟周期可传输传输多个数据,一条上一个)
专用数据通路:专门安排线路
CPU内部总线特点:结构简单,容易实现,性能较低,存在较多冲突
不使用内部总线:结构复杂,硬件量大,不易实现,性能高,不存在冲突
控制器的功能和工作原理
控制器结构和功能
控制部件从数据总线接受指令信息,从运算器部件接受指令转移地址
主要功能:
从主存取出一条指令,指出下条指令在主存的位置
对指令译码或测试,产生相应操作控制信号
指挥并控制CPU,主存,输入和输出设备之间的数据流动方向
硬布线控制器
根据指令要求,当前时序及外部内部状态,按时间顺序发送一系列微操作控制信号(组合逻辑控制器)
CU的信号来源:指令信息,时序系统产生的机器周期信号和节拍信号(CU必须受时钟控制),执行单元的反馈信息(标志)
CPU的控制方式
同步:统一时钟信号控制(以最长微操作序列和最繁琐微操作为标准)
异步:应答方式(运行速度快,但控制电路复杂)
联合:大部分同步,小部分异步
微程序控制器
存储逻辑,微操作信号代码化,微程序存储在控存中,为操作控制信号由微指令产生
微程序的基本概念
一条机器指令对应一个微程序
一个微程序包含多个微指令
一个微指令有一个过或个微操作
一个微操作对应一个微命令
微命令:控制部件项执行部件发出的控制信号
微操作:微命令的执行过程
微指令:微操作码(产生控制信号)+微地址码(下地址)
主存与控存:主存CPU外部RAM实现,控存CPU内部ROM实现
程序与微程序:程序(软件人员编制)机器指令的有序集合,微程序(描述机器指令,对程序员透明)微指令的有序集合
编码方式
直接:用0或1控制
字段直接编码:互斥性微命令组合在同一字段,相容性微命令组合在不同字段(要留空状态)
字段间接编码:一些字段的某些微命令由令一个字段的某些微命令解释
微指令的格式
水平型:定义并执行几种并行的基本操作(微程序短,执行速度快,微指令长,编写微程序麻烦)
垂直型:只能定义并执行一种操作(微指令短,微程序长,执行慢,效率低)
微程序控制的单元的设计步骤
与硬布线控制单元OP(IR)->ID相比,在T2节拍,OP(IR)->微地址形成部件
同时每条微指令都需要增加Ad(CMDR)->CMAR,获得微指令下地址
动态微程序设计和毫微程序设计
实现动态微程序设计可使用EPROM,毫微微指令可直接控制硬件
硬布线与微程序控制器
硬布线:控制器速度取决于电路延迟,由于将控制部件视为专门长生固定时许控制信号的逻辑电路,一旦设计完成,不可更改
微程序:规整性,灵活性,可维护性,但采用存储程序原理,没条指令都要从控存取,影响速度
汇编程序员可见:基址,状态,PC,通用寄存器组
异常和中断
CPU内部产生的意外事件叫异常,来自CPU外部的设备向CPU发出的中断请求叫中断,通常它们的处理过程由操作系统(和驱动程序)完成
异常和中断的分类
1.异常的分类
故障:指令启动后,指令结束前被检测到的异常事件
自陷:预先安排的异常事件
终止:指令执行过程中的硬件故障(外中断也是硬件故障)
2.中断的分类
可屏蔽中断:通过INTR向CPU发出中断请求(可设置相应屏蔽字屏蔽)
不可屏蔽中断:通过NMI向CPU发出中断请求
中断不和任何指令相关联,也不阻止任何指令的完成
异常的检测通常由CPU自身完成,不必通过外部某个信号通知CPU
异常和中断响应过程
关中断,保存断点和程序状态,识别异常(多软件方式)和中断并转到相应的处理程序
指令流水线
指令流水线的基本概念
1.时间上的并行技术:一个任务分解成多个子阶段,每个阶段在不同的部件上并行执行(流水线技术)
2.空间上的并行技术:一个处理机内设置短歌执行相同任务的功能部件(超标量处理机)
流水线的冒险与管理
1.结构冒险:多条指令同一时刻争用同一资源
2.数据冒险:下条指令用到当前指令的结果(RAW,WAR,WAW)
1)暂停多个时钟周期 2)设置相关专用通路 3)指令编译优化
3.控制冒险:遇到改变指令顺序的情况(改变PC值,导致断流)
1)分支预测,尽早生成转移目标地址 2)预取转移成功与不成功两个控制流方向的目标指令
3)加快提前形成体条件码 4)提高转移方向的猜准率
流水线的性能指标
吞吐率
任务数n比上完成n个任务所用的总时间
加速比
表示k段流水线完成n个任务的总时间,
表示顺序完成n个任务的总时间
最大加速比 :
高级流水线技术
多发射技术:采用多个内部功能部件,使流水线功能段能同时处理多条指令
超流水线技术:通过增加流水线级数来使更多指令同时在流水线中重叠执行
1.超标量流水线
动态多发射技术,每个时钟周期可并发多条独立指令,以并行操作两条或多条指令编译执行,为此配置多个功能部件(乱序执行)
静态流水线:同一时间内流水线的各段只能按照同一种功能的连接方式执行
动态流水线:同一时间内,某些段正在实现某种操作,而另外一些段却在实现另一种运算(非指运算操作或指令步骤或程序步骤并行)
2.超长指令字技术
由编译程序挖掘出指令间潜在的并行性,将多条能并行操作的指令组合成一个具有多个操作码字段的超长指令字,为此要采用多个处理部件
3.超流水线技术
功能段细划分,提高流水线主频,级数越大开销越大
k段流水线完成n条指令所需时间:t=k+n/度-1
多处理器的基本概念
1.单指令单数据流(SISD)结构
2.单指令多数据流(SIMD)结构
一个指令流同时对多个数据流进行处理(数据级并行技术)一个指令部件,多个处理单元
3.多指令多数据流(MIMD)结构
同时执行多条指令(线程级或线程级以上的并行计算)分别处理多个不同的数据,分多计算机系统和多处理器系统
多计算机系统:每个计算机节点私有自己的存储器,通过消息传递进行数据传送
多处理器系统:共享地址空间,通过存取指令来访问系统中的所有存储器
硬件多线程
在支持硬件多线程的CPU中,必须为每个线程提供单独的通用寄存器组,单独的程序计数器等,线程的切换只需激活选中的寄存器
1.细粒度多线程:多个线程轮流交叉执行指令,指令间不相关,可乱序并行执行
2.粗粒度多线程:仅当一个线程出现较大开销,才切换线程
3.同时多线程:同一个时钟周期中,发射多个不同线程中的多条指令执行
Intel处理器中的超线程就是同时多线程,在一个处理器或单个核设置两套线程状态部件,共享高速缓存和功能部件
多核处理器的概念
将多个处理单元集成到单个CPU中,每个处理单元称为一个核,每个核可以有自己的Cache也可共享一个Cache,所有和一般是对称的,并且共享主存
共享内存多处理器的基本概念
具有共享大一物理地址的多处理器被称为共享内存多处理器(SMP),它们仍然可以在自己的虚拟空间中独立的运行程序
由于不同处理器对不同存储单元访问时间的差异性不同提出统一存储多处理器(UMA,差异小),非统一存储多处理器(NUMA,差异大)
非统一存储
1.内存控制器被集成到CPU内部,每个CPU都有独立的内存控制器
2.每个CPU都独立连接到一部分内存,CPU直连的内存称本地内存
3.CPU之间通过QPI总线相连,通过QPI访问其他CPU的远程内存
4.访问本地内存快于远程内存
六 总线
总线概述
总线基本概念
分时和共享式总线的两个特点
分时:同一时刻只允许有一个部件向总线发送信息
共享:总线上可以连接多个部件,各部件之间相互交换信息都可以通过这组线路分时共享
总线分类
片内总线:芯片内部寄存器之间,寄存器与ALU间公共连接线
系统总线:连接计算机系统内各功能部件,分数据(双向),地址(单向),控制总线
I/O总线:常见得USB,PCI
通信总线:计算机系统与计算机系统或与其它系统之间传输信息得总线(同步,异步,串行,并行)
系统总线结构
单总线:不是指只有一根信号线,可按传输信息不同分地址,数据,控制总线
双总线:主存总线,CPU主存和通道间传送数据,I/O总线,多个外部设备和通道间传送数据
三总线:主存总线+I/O总线+DMA总线(同一时间内,只有一条可以工作)
常见总线标准
ISA,EISA(扩展的ISA)
VESA:视频电子标准协会,针对多媒体PC要求传送活动图像的大量数据推出,32位局部总线
PCI:外部设备互联(显卡,声卡,网卡)即插即用。PCI总线是一个与处理器时钟频率无关得高速外围总线,属于局部总线
AGP:加速图形接口,视频接口标准,传输视频和三维图形数据,局部总线
PCI-E:最新总线接口标准,取代AGP与PCI,串行接口
RS-232C:应用于DTE与DCE间的标准接口,串行总线
USB:通用串行总线,连接外设的I/O总线,热拔插
PCMCIA:笔记本电脑接口标准
IDE:集成设备电路(ATA),IDE接口磁盘驱动器接口类型
SCSI:小型计算机系统接口,计算机与智能设备间系统级接口的独立处理器标准
SAST:串行硬件驱动器接口
总线事务与定时
总线定时指总线双方交换数据的过程中需要时间上的配合关系(一种协议或规则)
总线事务
从请求总线到完成总线使用的操作序列称为总线事务
请求+仲裁+寻址+传输+释放
突发传送:能够进行连续成组数据的传送,其寻址阶段发送的是连续数据单元的首地址,在传输阶段传送多个连续单元的数据,每个时钟周期可以传送一个字长的信息
不互锁 半互锁 全互锁
七 输入输出系统
I/O接口
I/O接口的功能
进行地址译码和设备选择,解决主机与外设时序配合问题,实现数据缓冲,信号格式转换,传送控制命令和状态信息
对数据缓冲寄存器,状态/控制寄存器的访问操作是由相应的指令完成的,通常称这类指令为I/O指令,I/O指令只能在操作系统内核的底层I/O软件中使用,它们是一种特权指令
I/O端口及其编址
1)统一编址:存储器映射,CPU访问灵活方便,占用存储器地址,利用存储器I/O速度慢
2)独立编址:I/O映射,程序编制清晰,便于理解,I/O指令少,增加了控制的复杂性
I/O方式
CPU响应中断的三个条件
中断源有请求
CPU允许中断及开中断
一条指令执行完毕(异常不受此限制)
中断处理过程
关中断+保存断点+中断服务程序寻址(中断隐指令完成)(硬件自动)
保存现场和屏蔽字+开中断+执行中断服务程序+关中断+恢复现场和屏蔽字+开中断,中断返回(中断服务程序完成)
CPU响应中断,保护的两个关键部件PC和PSW
DMA方式
完全由硬件进行成组信息传送的控制方式,在该方式中,中断的作用仅限于故障和正常传送结束时的处理
DMA传送方式
1)停止CPU访存:数据传送完把总线控制权还给CPU
2)周期挪用:I/O设备挪用一个或多个存储周期,传送玩一个字后立即释放总线(单字传送方式)
3)DMA与CPU交替访存:适用于CPU工作周期(机器周期)比主存存储周期长的情况
DMA传送过程
DMA在传送开始前要通过程序及进行预处理+数据传送+结束后要通过中断方式进行后处理
DMA方式与中断方式的区别
1)中断是程序的切换,需要保护和恢复现场,DMA不需要中断现行程序,除了预处理和后处理,其他时候不占用任何CPU资源
2)中断只能在指令结束后,DMA可以在任一个机器周期结束后
3)中断需要CPU干预,DMA不需要
4)DMA请求优先级高于中断
访管中断是进程请求操作系统某个功能时执行访管指令引起的中断