计算机组成原理
基本概念
机器字长:CPU一次能处理数据的位数
存储字:存放在一个存储单元中的二进制代码位数
存储单元:存放一个存储字的所有存储元集合
第1章 计算机系统概述
32位微处理器指的是一次能够处理的数据长度,称为机器字长,机器字长通常等于通用寄存器的长度
32位操作系统指的是操作系统最多可以访问2^32个地址,是一个软件的概念
1.1 计算机发展历程
1)第一代计算机——电子管时代:逻辑元件采用电子管,使用机器语言进行编程
2)第二代计算机——晶体管时代:逻辑元件采用晶体管,软件开始使用高级语言,如Fortran
3)第三代计算机——中小规模集成电路时代:逻辑元件采用中小规模集成电路,开始有了分时操作系统
4)第四代计算机——超大规模集成电路时代:逻辑元件采用大规模集成电路和超大规模集成电路,并产生了微处理器
1.2 计算机系统层次结构
计算机系统:硬件系统和软件系统
早期的冯诺依曼机的特点:
1)计算机硬件系统由运算器、存储器、控制器、输入设备、输出设备五大部件组成
2)指令和数据以同等地位存于存储器内,并可按地址寻访
3)指令和数据均用二进制代码表示
4)指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置
5)指令在存储器内按顺序存放
6)早期的冯诺依曼机以运算器为中心,输入/输出设备通过运算器与存储器传送数据
现代计算机已经发展为以存储器为中心,使I/O操作尽可能地绕过CPU,直接在I/O设备和存储器之间完成,以提高系统的整体运行效率。
输入设备:键盘、鼠标、扫描仪、摄像机等等
输出设备:显示器、打印机
存储器:主存储器和辅助存储器
主存储器的工作方式是按存储单元的地址进行存取的,称为按地址存取方式。(相联存储器是按内容访问的)
地址寄存器MAR用于寻址,其位数对应着存储单元的个数,MAR的长度与PC的长度相等。
数据寄存器MDR和存储字长相等。
MAR和MDR的位数分别为(地址码长度、存储字长)
注意:MAR和MDR虽然是存储器的一部分,但在现代CPU中却是存在于CPU中的,另外后文提到的高速缓存Cache也是存在于CPU中。
运算器:算术逻辑单元ALU、通用寄存器(累加器ACC、乘商寄存器MQ、操作数寄存器X、变址寄存器IX、基址寄存器BR)、程序状态寄存器PSW
控制器:程序计数器PC、指令寄存器IR、控制单元CU
数据库管理系统DBMS和数据库系统DBS是有区别的,DBMS是系统软件,而DBS一般由数据库、数据库管理系统、数据库管理员DBA和应用系统构成
机器语言是计算机唯一可以直接识别和执行的语言;
高级语言需要经过编译程序编译成汇编语言程序,然后经过汇编操作得到机器语言程序,或者直接由高级语言程序翻译成机器语言程序。
注意:(PC)指程序计数器PC中存放的内容,括号不能省略,即(PC)+1->PC不能写成PC+1->PC
1.3 计算机的性能指标
主频(CPU时钟频率):主频的倒数是CPU时钟周期,对于同一个型号的计算机,其主频越高,完成指令的一个执行步骤所用的时间越短,执行指令的速度越快。
CPI:执行一条指令所需的时钟周期数
CPU执行时间,指运行一个程序所花费的时间
CPU执行时间=CPU时钟周期数/主频=(指令条数*CPI)/主频
总线带宽=总线宽度*总线工作频率
总线的工作频率=总线时钟频率/n
n为一次总线操作所需要的时钟周期数
CPU的性能:取决于三个要素:主频,每条指令执行所用的时钟周期数(CPI)、指令条数
MIPS:每秒执行多少百万条指令。MIPS=指令条数/(执行时间*)=主频/CPI
机器字长是指计算机进行一次整数运算(即定点整数运算)
数据通路带宽是指数据总线一次所能并行传送信息的位数
吞吐量:系统吞吐量主要取决于主存的存取周期
响应时间:通常包括CPU时间(运行一个程序所花费的时间)与等待时间
CPU时钟周期:即主频的倒数,它是CPU中最小的时间单位
MFLOPS:每秒执行多少百万次浮点计算,
GFLOPS:每秒执行多少十亿次浮点计算,
TFLOPS:每秒执行多少万亿次浮点计算,
PFLOPS:每秒执行多少一千万亿次浮点计算,
EFLOPS:每秒执行多少一百京次浮点计算,
ZFLOPS:每秒执行多少十万京次浮点计算,
1.4 常见问题和易混淆知识点
汇编程序把汇编语言源程序翻译成机器语言程序。
在CPU中,IR、MAR和MDR对各类程序员都是透明的。
机器字长:计算机能直接处理的二进制数据的位数,机器字长一般等于内部寄存器的大小,它决定了计算机的运算精度。
指令字长:一个指令字中包含二进制代码的位数。
存储字长:一个存储单元存储二进制代码的长度。
在逻辑功能上,软件和硬件是等效的。在计算机系统中,许多功能既可以由硬件直接实现,也可以在硬件的配合下由软件实现。
翻译程序是指把高级语言源程序翻译成机器语言程序(目标代码)的软件,可以分为两种:一种是编译程序,将高级语言源程序一次全部翻译成目标程序,只要源程序不变,就无须重新编译,目标程序与体系结构相关,但仍不是计算机硬件能够直接执行的程序;另一种是解释程序,翻译一句执行一句,并且不会生成目标程序。
第2章 数据的表示和运算
机器数在题目中默认是补码,特别是对于负数。
奇偶校验码:在原编码上加一个校验位,它的码距等于2,可以检测出一位错误(或奇数位错误),但不能确定出错的位置,也不能够检测出偶数位错误,增加的冗余位称为奇偶校验位。
奇校验码:整个校验码(有效信息位和校验位)中“1”的个数为奇数
偶校验码:整个校验码(有效信息位和校验位)中“1”的个数为偶数
海明(汉明)校验码:不但可以发现错位,还能指出错位的位置,为自动纠错提供了依据。
L-1=D+C且D≥C,即编码最小码距L越大,则其检测错误的位数D越大,纠正错误的位数C也越大,且纠错能力恒小于或等于检错能力。
信息位n和校验位k应满足n+k≤2^k-1
循环冗余校验码(CRC):在K为信息码后再拼接R位的校验码,整个编码的长度为N位
2.2 定点数的表示与运算
真值零的补码表示是唯一的
有符号数的运算规则
正数
正数的补码、反码、移码和原码相同
负数
用‘0’表示‘正’,用‘1’表示‘负’
负整数
补码:按位取反,末位加1,符号位不变
反码:按位取反
移码:补码的反符号位
负小数
补码:整数部分为1,按位取反,末位加1,符号位不变
反码:整数部分为1,按位取反
移码:整数部分为1,补码的反符号位
【y】补和【-y】补的关系
连同符号位在内,每位取反,末位加1
定点数和浮点数的区别
定点数受字长的限制,超出范围会有溢出。浮点数的精度由尾数决定,数的表示范围由阶码决定。
算术移位规则(有符号数)
左乘右除
正数
无论是左移还是右移,添补代码均为0
负数
原码:无论是左移还是右移,添补代码均为0
补码:左0右1
反码:无论是左移还是右移,添补代码均为0
逻辑移位规则(无符号数)
逻辑左移时,高位移丢,低位添0,逻辑右移时,低位移丢,高位添0
无符号数的扩展
只需在高位添0
定点整数的扩展
正数:添0
负数:原码添0、反码和补码添1
定点小数的符号扩展
正数:添0
负数:原码和补码0、反码添1
无符号数和有符号数的转化
先将数字用原码表示出来,然后转化为补码
无符号数转化为有符号数:将第一个数字当成符号位
有符号位转化为无符号数:将符号位当成数字
加法和减法运算
现代计算机中,都采用补码作加减法运算
加法
整数 [A]补+[B]补=[A+B]补(mod 2^(n+1))
小数 [A]补+[B]补=[A+B]补(mod 2)
减法
整数 [A-B]补=[A]补+[-B]补(mod 2^(n+1))
小数 [A-B]补=[A]补+[-B]补(mod 2)
连同符号位一起相加,符号位产生的进位自然丢掉
溢出
正数:
符号相同的两个数相加才可能出现溢出
符号不同的两个数相加是不会溢出的
负数:
符号不同的两个数相减才可能出现溢出
符号相同的两个数相减不会溢出
判断溢出的方法
无论加法还是减法。只要实际参加操作的两个数(减法时即为被减数和“求补”以后的减数)符号相同,结果又与原操作数的符号不同,即为溢出
两位符号位判断溢出
两位符号位不同时,表示溢出,否则,无溢出
高位(第一位)符号位永远代表正真的符号
“10”符号位为1,0表示负溢出
“01”符号位为0,1表示正溢出
补码定点数加减运算溢出判断的方法有3种:
1)采用一位符号位:只要参加运算的两个数符号相同,结果又与原操作数符号不同,则表示结果溢出。
2)采用双符号位:运算结果的两个符号位相同,表示未溢出;运算结果的两个符号位不同,表示溢出,此时最高位符号位代表真正的符号。
00,表示结果为正数,无溢出;
01,表示结果正溢出;
10,表示结果负溢出;
11,表示结果为负数,无溢出。
3)采用一位符号位根据数据位的进位情况判断溢出:如果符号位的进位与最高数位的进位相同,说明没有溢出,否则表示发生溢出。
小端模式:先存储低位字节、后存储高位字节的顺序(即从低位字节向高位字节顺序)存放字符串的内容
大端模式:先存储高位字节、后存储低位字节的顺序(即从高位字节向低位字节顺序)存放字符串的内容
2.3 浮点数的表示与运算
浮点数的加减运算:
1)对阶
2)尾数求和
3)规格化
4)舍入
5)溢出判断
第3章 存储系统
3.1 存储器的概述
ROM和RAM的存取方式为随机存取
性能指标
存储容量=存储字数*字长,存储字数表示存储器的地址空间大小,字长表示一次存取操作的数据量
存储速度:数据传输率=数据的宽度/存储周期
存取时间Ta:指从启动一次存储器操作到完成该操作所经历的时间,分为读出时间和写入时间
存取周期Tm:指存储器进行一次完整的读写操作所需的全部时间,即连续两次独立地访问存储器操作(读或写操作)之间所需的最小时间间隔
主存带宽Bm:又称数据传输率,表示每秒从主存进出信息的最大数量
存取时间不等于存储周期,通常存储周期大于存取时间。
3.2 存储器的层次化结构
“Cache-主存”:解决CPU和主存速度不匹配的问题
“主存-辅存”:解决存储系统的容量问题
Cache、主存能与CPU直接交换信息,辅存则要通过主存与CPU交换信息;主存与CPU、Cache、辅存都能交换信息
注意:
主存和Cache之间的数据调动是由硬件自动完成的,对所有程序员均是透明的
主存和辅存之间的数据调动是由硬件和操作系统共同完成的,对应用程序员是透明的
Cache中的内容只是主存中内容的一部分,主存中的内容只是辅存中内容的一部分
3.3 半导体随机存储器
SRAM(静态随机存储器):
用双稳态触发器(六管MOS)来记忆信息,属于易失性半导体存储器,一般用来组成高速缓冲存储器
DRAM(动态随机存储器):
利用存储元电路中栅极电容上的电荷来存储信息,一般用来组成大容量主存系统。
刷新方式有三种:集中刷新、分散刷新(不存在死时间)、异步刷新
DRAM采用地址复用技术
SRAM DRAM
存储信息 触发器 电容
破坏性读出 非 是
需要刷新 不要 需要
送行列地址 同时送 分两次送
运行速度 快 慢
集成度 低 高
存储成本 高 低
主要用途 高速缓存 主机内存
3.4 主存储器与CPU的连接
1)主存储器通过数据总线、地址总线和控制总线与CPU连接
2)数据总线的位数与工作频率的乘积正比于数据传输率
3)地址总线的位数决定了可寻址的最大内存空间
4)控制总线(读/写)指出总线周期的类型和本次输入/输出操作完成的时刻
主存容量的扩展:位扩展法、字扩展法、字位同时扩展法
CPU要实现对存储单元的访问,首先要选择存储芯片,即进行片选,然后再为选中的芯片依地址码选择相应的存储单元,以进行数据的存取,即进行字选。
片选信号的产生分为线选法和译码片选法。
3.5 双口RAM和多模块存储器
双端口RAM:指同一个存储器有左、右两个独立的端口,分别具有两组相互独立的地址线、数据线和读写控制线,允许两个独立的控制器同时异步地访问存储单元。
1)两个端口不同时对同一地址单元存取数据(正常)
2)两个端口同时对同一地址单元读出数据(正常)
3)两个端口同时对同一地址单元写入数据(可能会写入错误)
4)两个端口同时对同一地址单元,一个写入数据,另一个读出数据(出现读出错误)
多模块存储器:
单体多字存储器:存储器中只有一个存储体,每个存储单元存储m个字,总线宽度也为m个字。一次并行读出m个字,地址必须顺序排列并处于同一存储单元
多体并行存储器:由多体模块组成,每个模块都有相同的容量和存取速度,各模块都有独立的读写控制电路、地址寄存器和数据寄存器,既能并行工作,又能交叉工作
多体并行存储器由分为高位交叉编址(顺序方式)和低位交叉编址(交叉方式)
高位交叉编址:高位地址表示体号,低位地址为体内地址
低位交叉编址:低位地址为体号,高位地址为体内地址
流水线方式,存储器交叉模块数应大于等于m=T/r(T为存取周期,r为总线传送周期),连续读取m个字所需时间为t1=T+(m-1)r,而顺序方式连续读取m个字所需时间为t2=mT
3.6 高速缓冲存储器
高速缓冲技术就是利用程序访问的局部性原理。
当CPU发出读请求时,如果访存地址在Cache中命中,就将此地址转换成Cache地址,直接对Cache进行读操作,与主存无关;如果Cache不命中,则仍需访问主存,并把此字所在的块一次从主存调入Cache内。若此时Cache已满,则需根据某种替换算法,用这个块替换掉Cache中原来的某块信息。
注意:CPU与Cache之间的数据交换以字位单位,而Cache与主存之间的数据交换以Cache块为单位
Cache命中率
平均访问时间
Cache和主存的映射方式(3种)
Cache和主存的映射关系
置换算法:
1)随机算法RAND:没有依据程序访问的局部性原理
2)先进先出算法FIFO:没有依据程序访问的局部性原理
3)近期最少使用算法LRU
4)最不经常使用算法LFU
Cache写策略
对于Cache写命中:
1)全写法(写直通法write-through):必须把数据同时写入Cache和主存
2)写回法(write-back):只修改Cache的内容,而不立即写入主存,只有当此块被换出时才写回主存
对于Cache写不命中:
1)写分配法(write-allocate):加载主存中的块到Cache中,然后更新这个Cache块
2)非写分配法(not-write-allocate):只写入主存,不进行调块
非写分配法通常与全写法合用,写分配法通常和写回法合用。
3.7 虚拟存储器
主机和联机工作的辅存共同构成了虚拟存储器,对于应用程序而言,虚拟存储器是透明的。
页式虚拟存储器:以页为基本单位,虚拟空间和主存空间都被划分成同样大小的页,主存的页称为实页,虚存的页称为虚页。把虚拟地址分为两个字段:虚页号和页内地址。
优点是页面的长度固定,页表简单,调入方便。缺点是由于程序不可能正好是页面的整数倍,最后一页的零头将无法利用而造成浪费,并且页不是逻辑上独立的实体,所以处理、保护和共享都不及段式虚拟存储器方便。
段式虚拟存储器:段是按程序的逻辑结构划分的,各个段的长度因程序而异。把虚拟地址分为两部分:段号和段内地址。
优点是段的分界与程序的自然分界相对应,因而具有逻辑独立性,使它易于编译、管理、修改和保护,也便于多道程序的共享;缺点是因为段长度可变,分配空间不便,容易在段间留下碎片,不好利用,造成浪费。
段页式虚拟存储器:把程序按逻辑结构分段,每段再划分为固定大小的页,主存空间也划分为大小相等的页,程序对主存的调入、调出仍以页为基本传送单位。每个程序对应一个段表,每段对应一个页表,段的长度必须是页长的整数倍,段的起点必须是某一页的起点。虚地址分为段号、段内页号、页内地址三部分。
优点是兼具页式和段式虚拟存储器的优点,可以按段实现共享和保护。缺点是在地址变换过程中需要两次查表,系统开销比较大。
快表TLB依据程序执行的局部性原理,快表只是慢表Page的一个副本,而且只存放了慢表中很少的一部分。
查找时,快表和慢表同时进行,快表由于根据内容指定地址,一般使用相联存储器。
注意:TLB是Page的一个很小的副本,所以若TLB命中则Page一定命中。在同时具有虚拟页式存储器(有TLB)和Cache的系统中,访问顺序为TLB->页表->Cache->主存。TLB,Page,Cache命中情况组合共有五种,分别为111,110,011,010,000。
虚拟存储器和Cache的不同之处:
1)Cache主要解决系统速度,而虚拟存储器是为了解决主存容量
2)Cache全由硬件实现,是硬件存储器,对所有程序员透明;而虚拟存储器由OS和硬件共同实现,是逻辑上的存储器,对系统程序员不透明,但对应用程序员透明。
3)虚拟存储器系统不命中时对系统性能影响更大。
4)Cache不命中时主存能和CPU直接通信,同时将数据调入Cache中;而虚拟存储器系统不命中时,只能先由硬盘调入内存中,而不能直接和CPU通信。
第4章 指令系统
4.1 指令格式
4.2 指令寻址方式
指令寻址
1)顺序寻址方式:(PC)+1(1为指令字长)
2)跳跃寻址方式:通过转移类指令实现。就是计算下一条指令的地址,然后修改程序计数器(PC)
数据寻址
1)隐含寻址:
在指令中隐含着操作数的地址,累加器ACC对单地址指令格式来说是隐含地址
优点:有利于缩短指令字长
缺点:需增加存储操作数或隐含地址的硬件
2)立即(数)寻址:
指出的是操作数本身,又称为立即数
优点:指令在执行阶段不访问主存,指令执行时间最短
缺点:A的位数限制了立即数的范围
3)直接寻址:
指令字中的形式地址A就是操作数的真实地址EA,即EA=A
优点:简单,指令在执行阶段仅访问一次主存,不需要专门计算操作数的地址
缺点:A的位数决定了该指令操作数的寻址范围,操作数的地址不易修改
4)间接寻址:
指令的地址字段给出的形式地址不是操作数的真正地址,而是操作数有效地址所在的存储单元的地址,也就是操作数地址的地址,
即EA=(A)
优点:可扩大寻址范围,便于编制程序(用间接寻址可以方便地完成子程序返回)
缺点:指令在执行阶段要多次访存(一般问到扩大寻址范围通常都是寄存器间接寻址)
5)寄存器寻址:
在指令字中直接给出操作数所在的寄存器编号,即EA=Ri,其操作数在由Ri所指的寄存器内
优点:指令在执行阶段不访问主存,只访问寄存器,执行速度快,支持向量/矩阵运算
缺点:寄存器价格昂贵,寄存器个数有限
6)寄存器间接寻址:在寄存器Ri中给出的不是一个操作数,而是操作数所在主存单元的地址,即EA=(Ri)
优点:与一般间接寻址相比速度更快
缺点:需要访问主存
7)相对寻址:
把程序计数器PC的内容加上指令格式中的形式地址A而形成操作数的有效地址,即EA=(PC)+A
优点:操作数的地址不是固定的,随着PC的变化而变化,并且与指令地址之间总是相差一个固定值,因此便于程序浮动,广泛应用于转移指令
8)基址寻址:
将CPU中基址寄存器(BR)的内容加上指令格式中的形式地址A,而形成操作数的有效地址,即EA=(BR)+A
优点:可扩大寻址范围,用户不必考虑自己的程序位于主存的哪一空间区域,故有利于多道程序设计,以及用于编制浮动程序
9)变址寻址:
有效地址EA等于指令字中的形式地址A与变址寄存器IX的内容相加之和,即EA=(IX)+A
优点:可扩大寻址范围,用于处理数组问题
10)堆栈寻址:硬堆栈、软堆栈
寻址方式 有效地址 访存次数
隐含寻址 程序指定 0
立即寻址 A即是操作数 0
直接寻址 EA=A 1
一次间接寻址 EA=(A) 2
寄存器寻址 EA=Ri 0
寄存器间接一次寻址 EA=(Ri) 1
相对寻址 EA=(PC)+A 1
基址寻址 EA=(BR)+A 1
变址寻址 EA=(IX)+A 1
X86汇编指令入门
4.3 CISC和RISC的基本概念
类别 CISC RISC
指令系统 复杂,庞大 简单,精简
指令数目 一般大于200条 一般小于100条
指令字长 不固定 固定
可访存指令 不加限制 只Load/Store指令
各种指令执行时间 相差较大 一个周期内完成
各种指令使用频度 相差很大 都比较常用
通用寄存器数量 较少 多
控制方式 微程序控制 组合逻辑控制
指令流水线 可以通过一定方式实现 必须实现
RISC:选取使用频率最高的、简单的指令作为RISC指令
第5章 中央处理器
5.1 CPU的功能和基本结构
具体功能:
指令控制、操作控制、时间控制、数据加工、中断处理
运算器:主要由算术逻辑单元、暂存寄存器、累加寄存器、通用寄存器组、程序状态字寄存器、移位器、计数器等组成
控制器:主要由程序计数器、指令寄存器、指令译码器、存储器地址寄存器、存储器数据寄存器、时序系统和微操作信号发生器等组成
注意:
用户可见:通用寄存器组、程序状态字寄存器、程序计数器
用户不可见的(即对用户是透明的):
存储器地址寄存器、存储器数据寄存器、指令寄存器
5.2 指令执行过程
一个指令周期通常包含若干机器周期,一个机器周期又包含若干时钟周期。一个完整的指令周期应包括取指、间址、执行和中断四个周期。
取指周期是根据PC中的内容从主存中取出指令代码并存放在指令寄存器IR中,取指令的同时,PC加1
间址周期是取操作数有效地址
执行周期:是根据IR中的指令字的操作码和操作数通过ALU操作产生执行结果
中断周期是处理中断请求,假设程序断点存入堆栈中,并用SP表示栈顶地址,而且进栈操作是先修改栈顶指针,后存入数据。
注意:中断周期中进栈操作是将SP减1,和传统意义上的进栈操作相反,因为计算机的堆栈中都是向低地址增加,所以进栈操作是减1,不是加1。
指令执行方案
单指令周期:对所有指令都选用相同的时间来完成,指令之间串行执行,指令周期取决于执行时间最长的指令的执行时间。
多指令周期:指令之间串行执行,不再要求所有指令占用相同的执行时间
流水线方案:指令之间并行执行,尽量让多条指令同时执行,但各自处在不同的执行步骤中
5.3 数据通路的功能和基本结构
数据在功能部件之间传送的路径称为数据通路,其功能是实现CPU内部的运算器和寄存器以及寄存器之间的数据交换。
基本结构:
1)CPU内部单总线方式:所有寄存器的输入端和输出端都连接到一条公共的通路上。结构简单,但数据传输中存在较多冲突现象,性能较低
2)CPU内部三总线方式:所有寄存器的输入端和输出端都连接到多条公共的通路上。效率CPU内部单总线方式相对有所提高
3)专用数据通路方式:根据指令执行过程中的数据和地址的流动方向安排连接线路,避免使用共享的总线。性能较高,但硬件量大
前两者为内部总线,第三个为专用数据总线
#区分内部总线和系统总线(地址总线,数据总线,控制总线)
5.4 微指令的格式:
1)水平型微指令:
指令字中的一位对应一个控制信号,有输出时为1,否则为0。一条水平型微指令定义并执行几种并行的基本操作。
优点是微程序短,执行速度快;
缺点是微指令长,编写微程序较麻烦。
2)垂直型微指令:
类似机器指令操作码的方式,设置微操作码字段,由微操作码规定微指令的功能。一条垂直型微指令只能定义并执行一种基本操作。
优点是微指令短、简单、规整,便于编写微程序;
缺点是微程序长,执行速度慢,工作效率低。
3)混合型微指令
5.5 指令流水线
一条指令的执行过程:
取指:根据PC内容访问主存储器,取出一条指令送到IR中
分析:对指令操作码进行译码,按照给定的寻址方式和地址字段中的内容形成操作数的有效地址EA,并从有效地址EA中取出操作数
执行:根据操作码字段,完成指令规定的功能,即把运算结果写到通用寄存器或主存中
1)顺序执行方式:前一条指令执行完后,才启动下一条指令,T=3nt
2)一次重叠执行方式:第k条指令的执行阶段和第k+1条指令的取指阶段同时进行,T=(1+2n)t
3)二次重叠执行方式:把取第k+1条指令提前到分析第k条指令的期间完成,而将分析第k+1条指令与执行第k条指令同时进行,T=(2+n)t
流水线的分类
按使用级别分:部件功能级流水线、处理机级流水线、处理机间级流水线
按完成功能分:单功能流水线、多功能流水线
按连接方式分:动态流水线、静态流水线
按有无反馈信号分:线性流水线、非线性流水线
影响流水线的因素
1)结构相关(资源冲突):
2)数据相关(数据冲突,数据冒险):
3)控制相关(控制冲突,控制冒险):
流水线的性能指标
1)流水线的吞吐率:,n是任务数,Tk是处理完成n个任务所用的时间;一条k段线性流水线能够在k+n-1个时钟周期内完成n个任务,此时,t为时钟周期;当n趋于无穷时,得到最大吞吐率
2)流水线的加速比:完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比。,当n趋于无穷时,得到最大加速比
3)流水线的效率:=n个任务占用k时空区有效面积/n个任务所用的时间与k个流水段所围成的时空区总面积=,当n趋于无穷时,最高效率为
第6章 总线
6.1 总线特性:
机械特性、电气特性、功能特性、时间特性
总线的分类:
1)片内总线:CPU芯片内部寄存器与寄存器之间、寄存器与ALU之间的公共连接线
2)系统总线:计算机系统内各功能部件(CPU、主存、I/O接口)之间相互连接的总线
a. 数据总线:用来传输各功能部件之间的数据信息,双向传输,其位数与机器字长、存储字长有关
b. 地址总线:用来指出数据总线上的源数据或目的数据所在的主存单元或I/O接口的地址,单向传输,其位数与主存地址空间有关
c. 控制总线:传输控制信息,包括CPU送出的控制命令和主存(或外设)返回CPU的反馈信号
3)通信总线:用于计算机系统之间或计算机系统与其他系统(如远程通信设备、测试设备)之间信息传送的总线,也称为外部总线
系统总线的结构:
1)单总线结构:CPU、主存、I/O设备(通过I/O接口)都挂在一组总线上
2)双总线结构:主存总线、I/O总线
3)三总线结构:主存总线、I/O总线、DMA总线
总线的性能指标:
1)传输周期,简称总线周期
2)时钟周期
3)工作频率:总线周期的倒数,总线工作频率=时钟频率/N(N表示N个时钟周期)
4)时钟频率
5)总线宽度,又称总线位宽,是总线上同时能够传输的数据位数,通常是指数据总线的根数
6)总线带宽,总线的数据传输率,即单位时间内总线上可传输数据的位数,总线带宽=总线工作频率 * (总线宽度/8)
总线带宽=总线宽度 * 总线频率
6.2 总线仲裁
为解决多个主设备同时竞争总线控制权的问题,应当采用总线仲裁部件,以某种方式选择一个主设备优先获得总线控制权。
集中仲裁方式:将所有的总线请求集中起来,利用一个特定的裁决算法进行裁决
1)链式查询方式:离总线控制器越近的部件,其优先级越高。优点:链式查询方式优先级固定,结构简单,扩充容易;缺点:对故障敏感,优先级不能改变
2)计数器定时查询方式:优点:设备使用总线的优先级相等,优先次序可以改变,对故障不敏感;缺点:增加了控制线数,相对复杂
3)独立请求方式:优点:响应速度快,对优先次序的控制相当灵活;缺点:控制线数量多,逻辑更复杂
链式查询 计数器定时查询 独立请求
控制线数 3 2n+1
优点 优先级固定;结构简单;扩充容易 优先级灵活 响应速度快;优先级灵活
缺点 对电路故障敏感;优先级不灵活 控制线多;控制复杂 控制线多;控制复杂
分布仲裁方式:不需要中央仲裁器,每个潜在的主模块都有自己的仲裁号和仲裁器。如果仲裁总线上的号优先级高,则它的总线请求不予响应,并撤销它的仲裁号,最后获胜者的仲裁号保留在仲裁总线上。
6.3 总线操作和定时
同步定时方式:系统采用一个统一的时钟信号来协调发送和接收双方的传递定时关系。适用于总线长度较短及总线所接部件的存取时间比较接近的系统。
优点:传送速度快,具有较高的传输速率;总线控制逻辑简单
缺点:主从设备属于强制性同步;不能及时进行数据通信的有效性检验,可靠性较差
异步定时方式:没有统一的时钟,也没有固定的时间间隔,完全依靠传送双方相互制约的“握手”信号来实现定时控制。
优点:总线周期长度可变,能保证两个工作速度相差很大的部件或设备之间可靠地进行信息交换,自动适应时间的配合
缺点:比同步控制方式稍复杂一些,速度比同步定时方式慢
1)不互锁方式:主设备自动撤销“请求”信号,从设备自动撤销“回答”信号,双方不存在互锁关系
2)半互锁方式:主设备发出“请求”信号后,必须待接到从设备的“回答”信号后,才撤销“请求”信号,有互锁关系;而从设备在接到“请求”信号后,发出“回答”信号,但不必等待获知主设备的“请求”信号已经撤销,而是隔一段时间后自动撤销“回答”信号,不存在互锁关系。
3)全互锁关系:主设备发出“请求”信号后,必须待从设备“回答”后,才撤销“请求”信号;从设备发出“回答”信号,必须待获知主设备“请求”信号已撤销后,再撤销其“回答”信号。双方存在互锁关系。
6.4 总线标准
ISA总线:最早出现的微型计算机的系统总线标准,应用在IBM的AT机上
EISA总线:为配合32位CPU而设计的总线扩展标准,EISA对ISA完全兼容
VESA总线:32位标准的计算机局部总线,是针对多媒体PC要求高速传送活动图像的大量数据应运而生的
PCI总线:高性能的32位或64位总线,专为高度集成的外围部件、扩充插板和处理器/存储器系统而设计的互联机制。目前常用的PCI适配器有显卡、声卡、网卡等。PCI总线支持即插即用,与处理器时钟频率无关,属于局部总线,可以通过桥连接实现多层PCI总线
PCI-Express(PCI-E)是最新的总线和接口标准,将全面取代现行的PCI和AGP,最终实现总线标准的统一
AGP:是一种视频接口标准,专用于连接主存和图形存储器,属于局部总线。AGP技术为传输视频和三维图形数据提供了切实可行的解决方案。
RS-232C总线是由美国电子工业协会(EIA)推荐的一种串行通信总线标准,是应用于串行二进制交换的数据终端设备(DTE)和数据通信设备(DCE)之间的标准接口
USB总线:连接外部设备的I/O总线标准,属于设备总线,具有即插即用、热插拔等优点,有很强的连接能力
PCMCIA:广泛应用于笔记本电脑中的一种接口标准,是一个小型的用于扩展功能的插槽,可即插即用
IDE总线:ATA,是一种IDE接口磁盘驱动器接口类型,硬盘和光驱通过IDE接口与主板连接
SCSI:用于计算机和智能设备之间(硬盘、软驱、光驱、打印机等)系统级接口的独立处理器标准
SATA:基于行业标准的串行硬件驱动器接口,硬盘接口规范
第7章 输入/输出系统
I/O控制方式:
1)程序查询方式:
由CPU通过程序不断查询I/O设备是否已做好准备,从而控制I/O设备与主机交换信息
2)程序中断方式:
只在I/O设备准备就绪并向CPU发出中断请求时才予以响应
3)DMA方式:
主存和I/O设备之间有一条直接数据通路,当主存和I/O设备交换信息时,无需调用中断服务程序
4)通道方式:
在系统中设有通道控制部件,每个通道都挂接若干外设,主机在执行I/O命令时,只需启动有关通道,通道将执行通道程序,从而完成I/O操作。
7.2 外部设备
显示存储器VRAM:
VRAM容量 = 分辨率 * 灰度级位数
VRAM带宽 = 分辨率 * 灰度级位数 * 帧频
平均存取时间由寻道时间(磁头移动到目的磁道)、旋转延迟时间(磁头定位到所在扇区)和传输时间(传输数据所花费的时间)三部分构成
硬盘属于机械式部件,其读写操作是串行的,不可能在同一时刻既读又写,也不可能在同一时刻读两组数据或写两组数据。
RAID0没有容错能力,RAID1-RAID5的几种方案中,无论何时有磁盘损坏,都可以随时拔出受损的磁盘再插入好的磁盘,而数据不会损坏。
RAID0:无冗余和无校验的磁盘阵列
RAID1:镜像磁盘阵列
RAID2:采用纠错的海明码的磁盘阵列
RAID3:位交叉奇偶校验的磁盘阵列
RAID4:块交叉奇偶校验的磁盘阵列
RAID5:无独立校验的奇偶校验磁盘阵列
RAID通过同时使用多个磁盘,提高了传输率
通过在多个磁盘上并行存取来提高存储系统的数据吞吐量
通过镜像功能,可以提高安全可靠性
通过数据校验,可以提供容错能力
程序中断方式:CPU与I/O并行工作
程序中断是指在计算机执行现行程序的过程中,出现某些急需处理的异常情况或特殊请求,CPU暂时中止现行程序,而转去对这些异常情况或特殊请求进行处理,在处理完毕后CPU又自动返回到现行程序的断点处,继续执行原程序。
程序中断方式工作流程:
1)中断请求:中断源向CPU发出中断信号
外中断:来自处理器和内存以外的部件引起的中断
内中断:在处理器和内存内部产生的中断
硬件中断属于外中断;软件中断属于内中断。
非屏蔽中断是一种硬件中断,属于外中断;可屏蔽中断也是一种硬件中断,属于外中断。
2)中断判优:
判断多个中断源的优先级,可由硬件实现或软件实现
硬件中断属于最高级,其次是软件中断,非屏蔽中断优于可屏蔽中断,DMA请求优于I/O设备传送的中断请求,高速设备优于低速设备,输入设备优于输出设备,实时设备优于普通设备。
3)CPU响应中断的条件
有中断源提出中断请求
CPU允许中断及开中断
一条指令执行完毕且没有更紧迫的任务
4)中断隐指令:完成关中断、保存断点、引出中断服务程序,由硬件直接实现,不允许、也不可能为用户使用的特殊指令。
5)中断向量:查询中断服务程序的入口地址
注意:中断向量是中断服务程序的入口地址,中断向量地址地址是指中断服务程序的入口地址的地址。
6)中断处理:执行中断服务程序最后恢复现场,中断返回
中断服务程序的最后一条指令通常是一条中断返回指令,使其返回到原程序的断点处,以便继续执行原程序。
多重中断:当CPU处理中断时,又有更高优先级的中断请求
条件:
1)在中断服务程序中提前设置开中断指令
2)优先级高的中断源有权中断优先级低的中断源
DMA方式和中断方式的区别:
1)中断方式是程序的切换,需要保护和恢复现场;而DMA方式除了预处理和后处理,其他时候不占用CPU的任何资源
2)对中断请求的响应只能发生在每条指令执行完毕时(即指令的执行周期之后);而对DMA请求的响应可以发生在每个机器周期结束时(在取指、间址、执行周期之后均可),只要CPU不占用总线就可以被响应
3)中断传送过程需要CPU的干预;而DMA传送过程不需要CPU的干预,故数据传输速率非常高,适合于高速外设的成组数据传送
4)DMA请求的优先级高于中断请求
5)中断方式具有对异常事件的处理能力,而DMA方式仅限于传送数据块的I/O操作
6)从数据传送来看,中断方式靠程序传送,DMA方式靠硬件传送