发展阶段 | 时间 | 硬件技术 | 速度(次/秒) | 特点 |
---|---|---|---|---|
第一代 | 1946-1957 | 电子管 | 4万 | 使用机器语言进行编程;主存用汞 |
第二代 | 1958-1964 | 晶体管 | 20万 | 面向过程的程序设计语言;Fortran有了操作系统雏形 |
第三代 | 1965-1971 | 中小规模集成电路 | 1百万 | 高级语言迅速发展,开始有了分时操作系统 |
第四代 | 1972-1977 | 大规模集成电路 | 1千万 | 产生了微处理器,产生了新的概念:并行,流水线,高速缓存,虚拟储存 |
第五代 | 1978-现在 | 超大规模集成电路 | 1亿 | / |
微型计算机的发展以微处理器技术为标志
微处理器 | 机器字长 | 年份 | 晶体管数目 |
---|---|---|---|
4004 | 4位 | 1971 | 2300个 |
8080 | 8位 | 1974 | / |
8086 | 16位 | 1979 | 2.9万 |
80286 | 16位 | 1982 | 13.4万 |
80386 | 32位 | 1985 | 27.5万 |
80486 | 32位 | 1989 | 120.0万 |
Pentium | 64位(准) | 1993 | 310.0万 |
Pentium pro | 64位(准) | 1995 | 550.0万 |
Pentium II | 64位(准) | 1997 | 750.0万 |
Pentium III | 64位(准) | 1999 | 950.0万 |
Pentium IV | 64位 | 1000 | 3200.0万 |
各种语言
系统软件(管理计算机系统,监视服务,调度系统资源高效运行)
应用软件:(按任务需要编制成的各种程序)
财务软件,文字处理和排版软件,电子表格,CAD,网络通信软件
软件发展的特点
科学计算和数据处理(航空航天,人口普查)
工业控制和实时控制(机械制造,导弹发射)
网络技术的应用
电子商务(网络营销,网购)
网络教育(远程教育,虚拟课堂)
敏捷制造 21世纪制造模式
虚拟现实(虚拟现实演播室,仿真训练系统)
办公自动化和管理信息系统(节约资源,提高效率)
CAD/CAM/CIMS
多媒体技术(声图文的计算机集成)
人工智能(手写输入,语音输入,智能机器人)
超级智能计算机:类似人脑的一些超级智能功能
替代传统的硅芯片
计算机系统的层次结构
机器语言
汇编语言
高级语言
操作系统
微指令系统:对每一条二进制代码指令分析运行的系统
冯诺依曼计算机的特点
计算机软硬件
计算机解决实际问题两个步骤:上机前的各种准备,上机运行
示例:
计算 ax^2^+bx+c=(ax+b)+c
主存地址 | 指令 | 注释 | |
操作码 | 地址码 | ||
0 | 000001 | 0000001000 | 取数x至ACC |
1 | 000100 | 0000001001 | 乘a得ax,存于ACC中 |
2 | 000011 | 0000001010 | 加b得ax+b,存于ACC中 |
3 | 000100 | 0000001000 | 乘x得(ax+b)x,存于ACC中 |
4 | 000011 | 0000001011 | 加c得a(x^2)+bx+c,存于ACC中 |
5 | 000010 | 0000001100 | 将a(x^2)+bx+c,存于主存单元 |
6 | 000101 | 0000001100 | 打印 |
7 | 000110 | 停机 | |
8 | X | 原始数据X | |
9 | a | 原始数据a | |
10 | b | 原始数据b | |
11 | c | 原始数据c | |
12 | 存放结果 |
影响因素:机器主频,执行的操作,主存速度,早期使用完成一次加法或乘法所需的时间来衡量运算速度
衡量方式
1. 主频 主时钟频率(f),单位MHz,GHz。CPU工作节拍受主时钟控制,主时钟不断产生固定频率的时钟
2.吉普森法 综合考虑每条指令的执行时间及他们在全部操作所占的百分比
3.CPI 执行一条指令所需时钟周期数 CPI=执行某段程序所需的CPU时钟周期数/该程序包含的指令条数
4.MIPS 百万条指令每秒 MIPS=指令条数/(程序执行时间×106)=时钟频率/(CPI×106)
5.FLOPS 浮点操作每秒,MFLOPS百万浮点操作每秒,GFLOPS十亿次浮点操作每秒,TFLOPS万亿次浮点操作每秒,PFLOPS千万亿次浮点操作每秒,EFLOPS1018次浮点操作每秒,ZFLOPS1021次浮点操作每秒
其他衡量方式
常用数制
任意进制转换为十进制
对一任意r进制数S,表示为(S)r,转换为十进制的计算方式为:
其中 0≤Ki<r,r称为进位计数值的基数,Ki为第i位数码,i为位序号,ri为第i位的位权整数部分i从右往左计数(0,1,2,3…),小数部分从左到右(-1,-2,-3…)
十进制转换为任意(X)进制
整数部分:除X余数作为当前位数码,商再次除X,循环直至商为0
小数部分:乘X取整作为当前位数码,小数部分再次乘X,循环直至小数部分为0
计算机中参与运算的数有两大类:
计算机中对数据符号位的表示
在计算机中对数据进行运算操作时,符号位是否也同数值位一道参加运算,如何参加运 算?
真值:数值数据的实际值,如257,-33,1011b等
把符号位和数字位一起采用二进制编码表示,产生了原码,补码,反码,移码等数据编码方法
机器数(机器码):数值数据在计算机内的编码表示
原码,补码,反码的共性
这几种编码表示中,正数的编码值与真值一样,负数具有不同的编码
编码的最高位为符号位:0表示正,1表示负
原码表示法
原码的特征:
(1)零有两种表示:+0和-0
[+0]原=0,0000 0.000...0
[-0]原=1,0000 1.000...0
(2)优点:简单直观,便于乘,除法运算
缺点:加减运算不便(符号不能直接参与)
补码表示法
补码的特征:
(1)零的表示唯一
(2)计算机数值数据采用补码形式
(3)补码加减法运算中,符号直接参与运算
(4)定点小数表示中,[-1]补=1.00…0
反码表示法
反码的特征:
(1)零有两种表示:+0和-0
[+0]反=0,0000 0.000…0
[-0]反=1,1111 1.111…1
(2)通常用于求补码
移码表示法
移码的特征:
字符的表示
采用7位ASCII码表示
字符串的表示
连续的一串字符,占用主存连续多个字节,每字节存一个字符
同一主存字中既可按从低向高位字节的顺序,也可反向
汉字的表示方法
内部编码(内码)输入码 显示(打印)码
计算机的数据表示没有小数点“.”
两种定点表示
定点整数
最高位为符号位,其后为数值部分,小数点位置隐含约定在数值部分的后面
n+1位定点整数的表示范围是:
原码 -(2^n^-1)≤X≤2^n^-1
补码 -2^n^≤X≤2^n^-1
反码 -(2^n^-1)≤X≤2^n^-1
定点小数
最高位为符号位,小数点位置隐含约定在符号位后,其后为数值部分
n+1位定点小数的表示范围是:
原码 -(1-2-n)≤X≤1-2n
补码 -2n≤X≤1-2n
反码 -(1-2n)≤X≤1-2n
定点数的移位运算
意义:
规则(符号位不变,移位后空出位置如何填充?)
算术移位:有符号数的移位
逻辑移位:无符号数的移位
逻辑左移:低位补0,高位移丢
逻辑右移:高位补0,低位移丢
原码定点数的加减运算
用原码做加法时可能出现的情况
补码就是为了简化这种情况
使用一个与负数等价的正数代替负数
减法→加法
要求 | 数1 | 数2 | 实际操作 | 结果符号 |
---|---|---|---|---|
加法 | 正 | 正 | 加 | 正 |
加法 | 正 | 负 | 减 | 可正可负 |
加法 | 负 | 正 | 减 | 可正可负 |
加法 | 负 | 负 | 加 | 负 |
补码定点数的加减运算 |
连同符号位一起相加,符号位产生进位丢掉
溢出概念和判别方法
溢出概念
假设机器字长为4位(含符号位),则补码所对应的取值范围为-8~+7,运算过程中如果超过这个范围就称为溢出
溢出判别方法
1.一位符号位判溢出
参加操作的两个数符号相同。其结果的符号与原操作数符号不同,即为溢出硬件
硬件实现:异或电路计算 最高有效位进位,符号位进位
2.两位符号位判溢出
结果双符号位相同未溢出,双符号位不同溢出
最高符号位代表真正符号
定点数的乘除运算
笔算乘法
笔算乘法改进(加法及移位)
定点数的乘运算
硬件要求
原码一位乘运算
特点
原码两位乘运算
补码乘法:[x]补 × [y]补
校正法:
比较法:
统一公式:[X × Y]补 = [x]补 × (0.y1y2....yn)- [x]补 × y0
运算规则不受乘数符号约束,控制线路比较简明,计算机中普遍采用
硬件实现:
补码一位乘(n+2位寄存器),补码两位乘
定点数的除运算
笔算除法
机器除法
原码除法
约束条件
恢复余数法:
商值通过比较被除数和除数的绝对值大小确定:[x^*^]补 + [-y^*^]补
当余数为负时,需加上除数,将其恢复成原来的余数
不恢复余数法:加减交替法
当余数Ri>0,商1,做2 × Ri - y*运算
当余数Ri<0,商0,做2 × Ri + y*运算
补码除法:恢复余数法,加减交替法
补码加减交替法规则
比较被除数(余数)和除数的大小
1.两数符号相同,做减法[x]补 - [y]补,若余数与除数同符号,表示够减
2.两数符号不同,做加法[x]补 + [y]补,若余数与除数不同符号,表示够减
商值的确定
1.[x]补与[y]补同号,商为正,够减时商1,不够减商0
2.[x]补与[y]补异号,商为负,够减时商0,不够减商1
商符在运算中自动形成
余数与原码加减交替法相似
定点机的不足:
浮点数表示:
N = S × rj 其中S尾数,j为阶码,r为基值
浮点数的表示范围
规格化表示
为提高数据的表示精度,当尾数的值不为0时,其绝对值应≥0.5,即尾数域的最高有效位应为1,否则以修改阶码同时左右移小数点的办法,使其变成这一表示形式
如:101.1101 = 0.1011101 × 2^0010 = 0.010111010 × 2^0100
机器零(计算机都把该浮点数看成零值)
IEEE 754标准
总位数 | 符号位 | 阶码 | 尾数 | |
---|---|---|---|---|
短实数 | 32 | 1 | 8 | 23 |
长实数 | 64 | 1 | 11 | 52 |
临时实数 | 80 | 1 | 15 | 64 |
x = Sx × rjx ,y = Sy × rjy
两种情况
运算步骤
舍入
溢出判断
加法器
一位全加器
串行加法器
并行加法器
存储介质是指能存放0,1两种代码并能区别两种状态的物质或元器件
存取时间与物理地址无关(随机访问存储器)
随机存储器RAM 在程序的执行过程中可读可写
只读存储器ROM 在程序的执行过程中只读
存取时间与物理地址有光(串行访问存储器)
顺序存取存储器 磁带
直接存取存储器 磁盘 先定位某个小区域,再在小区域顺序查找
速度,容量,每位价格(位价)
用16K × 1位的存储芯片组成64K × 8位的存储器
半导体存储芯片的译码驱动方式
(1)线选法
(2)重合法
SRAM静态随机存储器
存储元:存放一个二进制的物理器件,存储器的基本单元电路
存储单元:地址码相同的多个存储元
存储体:若干存储单元的集合
静态RAM原理
双稳态触发器(6管MOS)存储信息
非破坏性读出,断电丢失
存取速度快,集成度低,功耗大
静态RAM基本电路的读操作
静态RAM基本电路的写操作
Intel2114外特性
1K×4位,4096个存储电路
64×64矩阵
A3-A8行译码,A0-A2 A9列
lntel2114RAM矩阵(64×64)读
静态RAM读时序
静态RAM写时序
三管动态RAM芯片(lntel1103)
单管动态RAM4116(16K×1位)
动态RAM刷新(行地址相关)
电容只能维持1-2ms
①集中刷新
“死区”:0.5μs × 128 = 64μs;“死时间率”:128/4000 × 100% = 3.2%
②分散刷新
“死区”:无 t© =t(M) + t®
③异步刷新(存取周期为0.5μs)
分散刷新与集中刷新相结合
“死区”:0.5μs每15.6μs 每行每隔2ms刷新一次
将刷新安排在指令译码阶段,不会出现“死区”
动态RAM和静态RAM的比较
DRAM | SRAM | |
---|---|---|
存储原理 | 电容 | 触发器 |
集成度 | 高 | 低 |
芯片引脚 | 少 | 多 |
功耗 | 小 | 大 |
价格 | 低 | 高 |
速度 | 慢 | 块 |
刷新 | 有 | 无 |
ROM中信息即使掉电也不会丢失,只供读出信息的存储器。
结构简单,位密度高;非易失性,可靠性高
根据发展过程及制作工艺划分
从ROM发展而来,目前应用非常广泛,U盘就是一种闪存
计算机电擦除,价格便宜,集成度高,擦除速度快
EPROM | 价格便宜,集成度高 |
---|---|
EPROM | 电可擦洗重写,编程次数有限,写入时间长 |
闪存 | 比EEPROM快,具备RAM功能 |
固态硬盘(Solid State Drivers SSD) |
基于闪存使用电子存储芯片阵列制成的硬盘,包括控制单元,存储单元(Flash芯片)
长期保存信息,快速擦除及重写,对比传统硬盘读写速度快,功耗低,位价高
单个存储芯片容量有限
在字数,字长方面都与实际需求有差距
扩展主存容量:
位扩展法(增加存储字长)
用多个存储器件对字长进行扩充
数据位数与CPU数据线数相等
地址,片选,读写控制并联
数据端分别引出
字扩展法(增加存储字的数量)
位数不变
地址,数据,读写控制并联
片选区分各芯片地址范围
同一时刻只有部分芯片选中
字位同时扩展法
同时增加字数量和存储字长
地址线并联
数据线与片选结合
计算机的程序是由一系列的指令组成的,指令就是要计算机执行某种操作的命令
从计算机组成的层次结构来说,计算机的指令有微指令,机器指令和宏指令之分
微指令:微程序级的命令,它属于硬件;
宏指令:有若干条机器指令组成的软件指令,它属于软件;
机器指令(指令):介于微指令与宏指令之间,每条指令可完成一个独立的算术运算或逻辑运算,是CPU唯一能接收的命令。
指令系统:一台计算机中所有机器指令的集合,它是表征一台计算机性能的重要因素,其格式与功能不仅直接影响到机器的硬件结构,也直接影响到系统软件,影响到机器的适用范围
指令:
操作码:
地址码:
指令长度(指令字长):
一条指令所包含的二进制代码的位数
取决于操作码长度,操作数地址码长度,操作数地址个数
根据和机器字长的大小关系,可分为单字长指令,半字长指令,双字长指令
根据指令系统每条指令的长度是否固定,分为定长指令系统,变长指令系统
定长指令系统
变长指令系统
操作数地址码数目划分:
优点:
可变长操作码
扩展操作码指令格式
形式地址(A)
有效地址(EA)
寻址方式
指令寻址
顺序寻址方式
跳跃寻址方式
数据寻址
(1)立即寻址
指令的地址字段指出的不是操作数的地址,而是操作数本身
(2)直接寻址
在指令格式的地址字段中直接指出操作数在内存的地址D
(3)隐含寻址
操作数地址隐含在操作码中
(4)间接寻址 (有效地址由形式地址间接提供EA=(A))
形式地址不是操作数的真正地址,而是操作数地址的指示器
间接寻址分为寄存器间接寻址和存储器间接寻址
(5)寄存器寻址
操作数在CPU的通用寄存器中
有效地址即为寄存器编号
执行阶段不访存,只访问寄存器,执行速度快
寄存器个数有限,可缩短指令字长
(6)寄存器间接寻址
操作数在CPU的通用寄存器中
有效地址即为寄存器编号
有效地址在寄存器中,操作数在存储器中,执行阶段访存
便于编制循环程序
(7)堆栈寻址
堆栈特点:
堆栈:硬堆栈 多个寄存器
软堆栈 指定的存储空间
(8)相对寻址
程序计数器PC的内容加上指令格式中的形式地址而形成操作数的有效地址
其中形式地址通常称为偏移量,其值可正可负,相对于当前指定地址进行浮动“相对”寻址,就是相对于当前的指令地址而言
(9)基址寻址
将CPU中基址寄存器的内容加上指令格式中的形式地址而形成操作数的有效地址
基址寄存器的位数可以设置得很长,从而可以在较大的存储空间中寻址
(10)变址寻址
把CPU中某个变址寄存器的内容与偏移量相加来形成操作数有效地址
(11)块寻址
在指令中指出数据块的起始地址(首地址)和数据块的长度(字数或字节数)
指令中划出字段指出长度;指令中指出数据块的首,末地址;块结束字符指出数据块长度
可用于数据块搬家,输入输出指令等,实现外存储器或外围设备同内存之间的数据块传送
(12)段寻址方式
段寄存器作为基地址加上某寄存器提供的16位偏移量来形成实际的20位物理地址
微型机中采用了段寻址方式
指令系统的发展方向
增强指令功能,设置更为复杂的新指令实现软件功能的硬化→CISC复杂指令系统计算机Complex Instruction Set Computer,典型代表X86架构的计算机
减少指令种类和简化指令功能,提高指令执行速度→RISC精简指令系统计算机Reduced Instruction Set Computer,典型代表ARM,MIPS架构计算机
4.3.1.复杂指令系统计算机CISC
背景:
硬件成本不断下降,软件成本不断上升,促使人们在指令系统增加更多复杂的指令
CISC特点:
2.精简指令系统计算机RISC
背景:
程序中80%的语句仅使用20%的指令,高频的简单指令因复杂指令的存在而无法提速
能否用20%的简单指令组合不常用的80%的指令功能?
RISC特点:
CISC和RISC对比
5.1.1CPU的功能
中央处理器
CPU基本功能
5.1.2CPU的基本结构
运算器:接受控制器的命令而进行动作,执行部件,负责数据的加工和处理
控制器:
基本组成部件:
5.2.1指令周期
CPU从主存取出并执行一条指令所需时间称为指令周期,也就是CPU完成一条指令的时间
常常用若干机器周期(CPU周期)来表示,机器周期又包含若干时钟周期,
时钟周期,又称节拍或T周期,是CPU操作的基本单位
每个指令周期内机器周期数可以不等
每个机器周期内节拍数可以不等
定长的机器周期,不定长的机器周期
5.2.2指令周期的数据流
数据流是根据指令要求依次访问的数据序列,不同指令,指令的不同阶段数据流不同
执行周期的数据流
不同指令的执行周期数据流不同
根据IR中指令字的操作码和操作数通过ALU操作产生执行结果
中断周期的数据流
处理中断请求,假设程序断点存入堆栈
假设SP栈顶地址,先修改指针后存数据
CU控制SP-1 SP→MAR→地址总线→主存CU写命令→控制总线→主存PC→MDR→数据总线→主存(程序断点存入主存)CU(中断服务程序的入口地址)→PC
一个执行周期中通常有多个执行步骤,从性能和成本出发有三种方案来安排这些执行步骤
单指令周期:会降低系统运行速度
所有指令都选用相同的执行时间来完成,指令在固定的时钟周期内完成,指令间串行执行
多指令周期
不同类型的指令选用不同的执行步骤来完成,指令所需时钟周期不固定,指令间串行执行
流水线方案
指令间可以并行执行(处于不同执行步骤中),一个时钟周期启动一条指令,力争在每个时钟脉冲周期内完成一条指令的执行过程
数据通路
数据在功能部件间传送的路径
运算器和寄存器之间的传送路径就是中央处理器内部数据通路
描述了信息从什么地方开始,中间经过哪个寄存器或多路开关,最后传送到哪个寄存器
建立数据通路的任务是由“操作控制部件”来完成的
数据通路的功能:
实现CPU内部的运算器与寄存器以及寄存器之间的数据交换
CPU内部单总线方式
将所有寄存器的输入端,输出端都连接到一条公共的通道上
结构简单,容易冲突性能较低
CPU内部多总线方式
将所有寄存器的输入端,输出端都连接到多条公共的通道上(双总线,多总线)
同时在多个总线传送不同数据,效率比但总线高
专用通道方式
根据指令执行过程中的数据和地址的流动方向安排连接线路,避免使用共享的总线
性能较高,硬件量大复杂
寄存器之间的数据传送
例如如把PC寄存器内容送入MAR
PC→Bus PC(out)有效
Bus→MAR MAR(in)有效
主存与CPU间数据传送
例如CPU从主存读取指令
PC→Bus→MAR,1→R(CU发读命令),MEM(MAR)→MDR,MDR→Bus→IR
算术逻辑运算的数据传送(加法)
Ad(IR)→Bus→MAR,1→R,MEM→数据线→MDR,MDR→Bus→Y,(ACC)+(Y)→Z,Z→ACC
数据通路结构直接影响CPU内信息的传送路径以及微操作信号形成部件的设计
控制器部件从数据总线接受指令信息,从运算器部件接受指令转移地址
送出指令地址到地址总线,向系统中的部件提供他们运行所需的控制信号
根据产生微操作控制信号的方式分为:
硬布线控制器
微程序控制器
确定和表示指令执行步骤的方法不同
给出控制个部件控制信号的方案不同
PC,IR相同
基本思想:
硬布线控制器是早期设计计算机的一种方法,根据指令要求,当前时序和内部状态,按时间顺序发送一系列操作控制信号,把控制部件看作产生专门固定时序控制信号的逻辑电路,也称组合逻辑控制器
核心部分是微操作产生部件,是一种由门电路和触发器构成的复杂树形逻辑网络
设计目标:以使用最少元件和取得最高操作速度
制成后很难增加新控制功能,除非重新设计或重新布线
硬布线控制单元图
指令的操作码是决定控制信号的关键
为简化逻辑将操作码译码,节拍发生器从CU分离
CU的输入信号来源
经指令译码器译码产生的指令信息
时序系统产生的机器周期信号和节拍信号
执行单元的反馈信息即标志
来自系统总线的控制信号,如中断请求,DMA请求
硬布线控制器的时序系统
时钟周期:时钟信号控制节拍发生器产生节拍,每个节拍的宽度正好对应一个时钟周期,在每个节拍内机器可完成一个或几个需同时执行的操作
机器周期:通常以内存中读取一个指令字的最短时间作为机器周期,所有指令执行过程的一个基准时间
当存储字长等于指令字长时取指周期可以看作机器周期
在一个机器周期可完成若干微操作,使用时钟信号控制产生每一个微操作命令
微操作命令:
控制单元具有发出各种操作命令(控制信号)序列的功能,这些命令与指令有关,必须按一定次序发出机器才能有序工作,对于不同的指令,控制单元需发出各种不同的微操作命令
取指周期微操作命令分析 | 间址周期微操作命令分析 |
---|---|
PC→MAR | AD(IR)→MAR |
1→R | 1→R |
M(MAR)→MDR | M(MAR)→MDR |
MDR→IR | / |
OP(IR)→CU | / |
(PC)+1→PC | / |
执行周期微操作命令分析(非访存指令) | ||
CLA | 清ACC | 0→ACC |
COM | 取反 | AAC→ACC |
SHR | 算术右移 | L(ACC)→R(ACC),ACC0→ACC0 |
CSL | 循环左移 | R(ACC)→L(ACC),ACC0→ACCn |
STP | 停机指令 | 0→G |
执行周期微操作命令分析(访存指令) | ||
ADDX | 加法指令 | Ad(IR)→MAR |
1→R | ||
M(MAR)→MDR | ||
(ACC)+(MDR)→ACC | ||
STA X | 存数指令 | Ad(IR)→MAR |
1→W 写 | ||
ACC→MDR | ||
MDR→M(MAR) | ||
LDA X | 取数指令 | Ad(IR)→MAR |
1→R | ||
M(MAR)→MDR | ||
MDR→ACC |
执行周期微操作命令分析(转移指令) | |||
JMP X | 无条件转移 | Ad(IR)→PC | |
BAN X | 条件转移 | A0*Ad(IR)+A0*(PC)→PC | 负则转 |
CPU控制方式:
每条指令和每个操作所需的执行时间不同,控制一条指令执行的方式有3种
同步控制方式:
控制电路简单,运行速度慢
系统有一个统一时钟,所有控制信号均来自在这个统一的时钟信号
通常以最长的微操作序列和最繁琐的微操作作为标准,采取完全统一的,具有相同时间间隔和相同数目的节拍作为机器周期来运行不同指令
异步控制方式:
不存在基准时标信号,各部件按自身固有速度工作,通过应答方式进行联络
联合控制方式:
介于同步,异步之间,大部分采用同步控制,小部分采用异步控制
硬布线控制单元设计步骤:
1.列出微操作命令的操作时间表
先根据微操作节拍安排,列出微操作命令的操作时间表,包括各个机器周期,节拍下每条指令完成的微操作控制信号
2.进行微操作信号综合
在列出操作时间表后即可对他们进行综合分析,归类,写出各位操作控制信号的逻辑表达式并进行适当简化,包含机器周期,节拍,脉冲,操作码,机器状态条件
3.画出微操作命令的逻辑图
根据逻辑表达式画出对应一个微操作信号的逻辑电路图,并用逻辑门电路实现
工作周期标记 | 节拍 | 状态条件 | 微操作命令信号 | CLA | COM | ADD | STA | LDA | JMP |
FE取指 | T0 | PC→MAR | 1 | 1 | 1 | 1 | 1 | 1 | |
1→R | 1 | 1 | 1 | 1 | 1 | 1 | |||
T1 | M(MAR)→MDR | 1 | 1 | 1 | 1 | 1 | 1 | ||
(PC)+1→PC | 1 | 1 | 1 | 1 | 1 | 1 | |||
T2 | MDR→IR | 1 | 1 | 1 | 1 | 1 | 1 | ||
OP(IR)→ID | 1 | 1 | 1 | 1 | 1 | 1 | |||
I | l→IND | 1 | 1 | 1 | 1 | ||||
l | l→EX | 1 | 1 | 1 | 1 | 1 | 1 | ||
IND间址 | T0 | Ad(IR)→MAR | 1 | 1 | 1 | 1 | |||
l→R | 1 | 1 | 1 | 1 | |||||
T1 | M(MAR)→MDR | 1 | 1 | 1 | 1 | ||||
T2 | MDR→Ad(IR) | 1 | 1 | 1 | 1 | ||||
IND | 1→EX |
核心思想:
采用存储逻辑实现,把微操作信号代码化,每一条机器指令编成一个微程序存入控制存储器中,每个微程序包含若干条微指令,通过寻址获取微程序中的微指令,每一条微指令对应一个或几个微操作,微操作控制信号由微指令产生。目前计算机广泛采用。
微程序控制的基本概念
微操作:
计算机中最基本的,不可再分解的操作,一条机器指令可分解为一个微操作序列
微命令:
控制部件向执行部件发出的控制命令,是构成控制序列的最小单位
微命令与微操作一一对应,微命令是微操作的控制信号,微操作是微命令的执行过程,相容性微命令可以同时产生,共同完成某一些微操作,互斥性微命令不允许同时出现
微程序控制的基本概念
微指令:
若干微命令的集合
微指令基本格式:
一条微指令至少包含两部分
微操作码字段(操作控制字段):产生某一操作所需的各种操作控制信号
微地址码字段(顺序控制字段):产生下一条要执行的微指令地址
微地址:
存放微指令的控制存储器的单元地址
微周期:
从控制存储器读取一条微指令并执行相应的操作所需的时间
主存储器:
用于存放程序和数据,在CPU外部,用RAM实现
控制存储器CM:
用于存放微程序,在CPU内部,用ROM实现
程序:
指令的有序集合,用于完成特定功能,由软件设计人员事先编制好存放在存储器中
微程序:
微指令的有序集合,一条指令的功能有一段微程序来实现,机器指令的实时解释器,由计算机设计者事先编制好存放在控制存储器中,对程序员透明
地址寄存器MAR:
存放主存的读/写地址
微地址寄存器CMAR:
存放控制存储器的读/写微指令的地址
指令寄存器IR:
存放从主存读出的指令
微指令寄存器CMDR或uIR:
存放从控制存储器(控存)中读取的微指令
微程序控制器基本框图
控制存储器CM:
核心部件,用于存放微程序,使用ROM构成
微指令寄存器CMDR:
存放CM取出的微指令,位数与微指令字长相等
微地址形成部件:
产生初始和后继微地址,以保证微指令的连续执行
微地址寄存器CMAR:
接收微地址形成部件送来的微地址,为在CM中读微指令做准备
将取指微程序的入口地址送入CMAR,从CM读取相应的微指令送入CMDR。当取指微程序执行完后,从主存中取出的机器指令就已存入IR中了
微指令的编码方式
也称微指令的控制方式,指微指令的控制字段如何编码形成控制信号
目标是保证速度的前提下尽量缩短微指令字长
微指令的地址形成方式
微指令格式
与微指令编码方式有关
微指令格式对比
微程序控制单元的设计步骤
主要任务:编写各条机器指令所对应的微程序
动态微程序设计
毫微程序设计
硬布线和微程序控制的特点
微程序控制器 | 硬布线控制器 | |
---|---|---|
工作原理 | 微程序控制信号以微程序形式存放在控制存储器中,执行指令时读出即可 | 微操作控制信号由组合逻辑电路根据当前的指令码,状态和时序,即时产生 |
执行速度 | 慢 | 快 |
规整性 | 较规整 | 繁琐,不规整 |
应用场合 | CISC CPU | RISC CPU |
易扩充性 | 易扩充修改 | 困难 |
核心思想
指令流水方式 多条指令在CPU中的执行方式
流水线方式的特点
取指令1 | 分析指令1 | 执行指令1 | 取指令2 | 分析指令2 | 执行指令2 |
---|
指令按顺序执行,串行执行方式,T=3nt
控制简单成本低,速度慢,利用率低
取指令2 | 分析指令2 | 执行指令2 | |||
---|---|---|---|---|---|
取指令2 | 分析指令2 | 执行指令2 | |||
取指令1 | 分析指令1 | 执行指令1 |
把第k条指令执行阶段和k+1条指令取指阶段同时进行,T=(1+2n)*t
执行时间缩短,利用率提高,硬件代价大,控制复杂
取指令2 | 分析指令2 | 执行指令2 | ||
---|---|---|---|---|
取指令2 | 分析指令2 | 执行指令2 | ||
取指令1 | 分析指令1 | 执行指令1 |
在上一条指令的分析阶段同时进行下一条指令的取指操作,T=(2+n)t
处理机同时有3条指令在执行,进一步缩短时间,复杂度提升
流水线的表示方法------时空图法
流水线的分类(多种分类标准)
使用级别划分
流水线可完成功能划分
同一时间内各段的连接方式划分
各个功能段之间是否有反馈信号划分
影响流水线的因素 某些相关的情况导致下一条指令无法在设计的时钟周期内完成
结构相关(资源冲突) 多条指令在同一时刻争用同一资源而形成的冲突
停顿:前一指令访存时,使后一条相关指令暂停一个时钟周期
指令存储器与数据存储器分开:两项操作在不同的存储器进行
指令预取:适合访存周期短的指令
数据相关(数据冲突) 存在必须等前一条指令执行完才能执行后一条指令的情况
后推法:硬件阻塞stall和软件插入NOP指令两种方式,相关指令暂停1到多个时钟周期
数据旁路技术:设置相关专用通道直接把前一条指令ALU计算结果作为自己的输入
编译优化:通过编译器对数据相关的指令进行编译优化,调整指令顺序解决冲突
控制相关(控制冲突) 流水线遇到转移指令和其他改变PC值的指令而造成断流
流水线性能指标
效率
吞吐率
单位时间内流水线所完成指令或输出结果的数量
加速比
完成同一批任务,不使用流水线所用时间与使用流水线所用时间之比
完成n条指令在k段流水线上共需 T=k△t+(n-1)△t
完成n条指令在等效的非流水线上共需 T’=nk△t
超标量流水线技术
超长指令字
动态流水线
同一时间内某段正在实现某种运算,另一些段可进行另一些运算
静态流水线
同一时间内流水线各段只能按同一种功能的连接方式工作
部件间需要信息交换:(CPU----主存,CPU—I/O模块,I/O模块----主存)
在部件之间架设通信线路,把连接各部件的通路的集合称为互连结构,分为分散结构,总线结构
冯机:运算器为中心分散连接,I/O与存储器交换信息需经过运算器,严重影响CPU工作效率
现代计算机:存储器为中心分散连接,I/O与存储器交换信息可以不经过运算器,但I/O设备与主机连接灵活性差,线路多分散复杂,出现了总线连接方式
总线定义
总线时连接各个部件的信息传送线路,是各个部件分时共享的传输介质
如果多部件连接总线,两个以上部件同时发送信息,信号冲突,传输无效
分时:
一个时刻只允许一个部件向总线发送信息,多个部件只能分时的向总线发送信息,但多个部件可同时接受信息
共享:
总线上可以挂接多个部件,各个部件之间相互交换的信息都可以通过这组线路分时共享
CPU,主存,I/O插板通过插头与水平方向总线插槽连接。
奔腾|||以上的微型计算机已将CPU芯片直接集成在主板上,插卡做成了芯片。
按照总线功能划分为3类:
片内总线
芯片内部的总线,CPU芯片内部寄存器与寄存器之间,寄存器与ALU之间的公共连接线
系统总线
计算机系统内各功能部件之间相互连接的总线
通信总线
用于计算机系统之间或者计算机系统与其他系统(远程通信设备,测试设备)之间信息传送的总线,也称为外部总线
系统总线根据传输信息内容划分为三种:
数据总线
传输各功能部件之间的数据信息,双向传输,位数与机器字长,存储字长有关,各个功能部件通过总线连接形成的数据传输路径称为数据通路,表示的是数据流经的途径,数据总线是承载的媒介
地址总线
指出数据总线上的源数据或者目的数据所在的主存单元或IO端口地址,单向传输,位数与主存地址空间的大小有关
控制总线
传输控制信息,包括CPU发出的控制命令和主存(或外设)返回给CPU的反馈信号
按照总线时序控制方式划分
按照总线数据传输格式划分
按照总线使用范围划分
计算机总线,测控总线,网络通信总线
面向CPU的双总线结构框图
M总线(存储总线):用于连接CPU和主存的通道
I/O总线(输入输出总线):用于建立CPU和各I/O设备之间交换信息的通道,I/O设备通过接口挂到I/O总线上,便于增删设备,I/O设备与主存交换信息时会占用CPU,影响CPU的效率
单总线结构框图
CPU,主存和I/O设备挂到一组总线上,便形成了单总线结构的计算机(细分数据,地址,控制线)
I/O设备与主存交换信息时原则上不影响CPU工作,CPU仍可处理不访问主存或I/O设备的操作,可提高CPU效率,若某时刻多部件需用总线会冲突,必须设置总线判优逻辑,按优先级使用。小型计算机,微型计算机多采用此结构
以存储器为中心的双总线结构框图
在单总线基础上又开辟出一条存储总线(CPU与主存之间的总线),存储总线速度高,只供主存与CPU之间传输信息(专道),提高了传输效率,减轻了系统总线负担,I/O设备与存储器交换信息也不需要经过CPU
带通道的双总线结构框图
主存,CPU速度高,I/O设备速度低,主存总线与I/O总线分开。CPU将一部分功能下放由通道对I/O统一管理完成外设和主存间传送。大,中型计算机系统多采用此结构
三总线结构框图
DMA总线:用于高速I/O设备(磁盘,磁带)与主存之间直接交换信息。
在三总线结构中,任一时刻只能使用一种总线,主存总线与DMA总线不能同时对主存进行存取,I/O总线只有在CPU执行I/O指令时候才能用到。
另一形式三总线结构框图
局部总线:用于处理器与高速缓存或更多局部设备之间直接交换信息
扩展总线:用于连接局域网,串行接口(I/O)等,通过扩展总线接口与系统总线相连
优点 | 缺点 | |
---|---|---|
单总线结构 | 结构简单,成本低,便于扩充新设备 | 带宽低,负载 |
双总线结构 | 将速度较低的I/O设备从单总线上分离出来,提高系统的吞吐能力 | 需增加通道等硬件设备,不同I/O设备速度相差很大 |
三总线结构 | 提高I/O设备性能,使其更快地响应命令,提高系统吞吐量 | 系统工作效率较低 |
总线的性能指标
总线传输的四个阶段(总线的一次信息传送过程)
总线定时(总线通信控制)
通信双方如何获知传输开始,传输结束的时间,如何进行协调配合?
总线在双方交换数据的过程中需要对主方,从方的操作进行有序控制必须制订定时协议进行时间上配合关系的控制,这种控制称为总线定时,也就是事件出现在总线上的时序关系。
实质是一种协议或规则,主要有同步,异步两种基本定时方式。
通信双方由统一时标控制数据传输称为同步通信。
时标通常有CPU的总线控制部件发出送到总线上的所有部件,也可由各个部件各自的时序发生器发出,但必须由总线控制部件发出的时钟信号对他们进行同步,每个部件或设备发送或接收信息都在固定的总线传输周期中,一个总线传送周期结束下一个总线传送周期开始
同步数据输入
同步数据输出
优点
传输速度快,具有较高的传输速率
总线控制逻辑简单
缺点
主从设备强制性同步,必须在限定时间完成规定要求
对于速度各不相同的设备必须按最慢速度的部件来设计公共时钟,影响工作效率
设计具有局限性,缺乏灵活性
适用场景
使用于总线长度较短,各功能模块存取时间比较接近的情况
没有公共时钟标准,不要求所有部件严格的统一操作时间,采用应答方式(握手方式):
根据请求,应答信号的撤销是否互锁分为不互锁,半互锁,全互锁三种类型
优点
缺点
总线标准是国际上公布或推荐的各个模块的互联标准,是把各种不同模块组成计算机系统时必须遵守的规范,按总线标准设计的接口可看作通用接口,接口两端任一方只需根据总线标准的要求完成自身方面的功能要求,而无需了解对方接口的要求
常见的总线标准有:ISA,EISA,VESA,PCI,PCI-Express,AGP,RS-232C,USB等
主要区别在于总线宽度,带宽,时钟频率,寻址能力,是否支持突发传送等
industry Standard Architecture工业标准体系结构总线,最早出现的微型计算机总线标准IBM公司1984年推出PC/AT机而建立的系统总线标准,也叫AT总线
主要特点
Extended Industrial Standard Architecture扩展的ISA总线
在ISA总线基础扩充开放的总线标准,为配合32位CPU而设计
主要特点
由Video Electronic Standard Association视频电子标准协会提出的局部总线标准,又称VL-BUS(Video Local-BUS)
局部总线(local-BUS):指在系统外为两个以上模块提供的高速传输信息通道
主要特点
Peripheral Component Interconnect外围部件互连总线
Intel公司于1991年底提出PCI总线概念,并联合IBM,Compaq,Apple等成立PCI集团PCISIG(PCI Special Interest Group PCI专门权益组织),已成为现代计算机最常用的总线之一
主要特点
Peripheral Component Interconnect Express (PCI-E)
随着网络发展以及其他周边设备的技术革新,诸如千兆网卡等设备对PCI总线提出了更高的要求
Intel公司近年来推出了PCI-Express总线
采用类似网络传输TCP/IP协议的分层结构和数据帧逐层传递的模式
是最新的总线和接口标准,将全面取代现行的PCI和AGP,最终实现总线标准的统一
随着多媒体计算机的普及,对三维技术的应用越来越广泛:640✖480像素的分辨率,每秒75次画面更新率,要求数据带宽达370MB/s;800✖600分辨率,带宽达580MB/s
Intel 1996年推出Accelerated Graphics Port加速图形接口,显卡专用局部总线
主要特点