计算组成原理
一个实际数机内表示所面临的的问题
符号 + -
数码
1. 二进制
2.组合二进制数(八.十六进制),引入只为了书写方便
3.BCD码(ASCII码与BCD码低四位相同)
小数点
阶码E E=0,运算的数是纯小数
E=n,运算的数是纯整数
E=m,(0<m<n),运算的数是浮点数
负数如何处理
1. 符号-绝对值表示(原码)
2. 补码 [-x]补 = ~([x]补) + 1
补码表示,所有位都是1时,十进制一定是-1
在补码中,“0”的表示法是唯一的。
符号位可与数位一起参加运算
补码可以将"正数加负数"转化为"正数加正数",可以将减法转化为加法运算,只设加法器就可以
3. 反码表示
定点加减运算(补码)
1.补码加法
[X+Y]补 = [X]补 + [Y]补
最低的两位有个进位上去,前面两个1写1,一个1写0
2.补码减法
[X-Y]补 = [X+(-Y)]补 = [x]补 + [-Y]补
[-Y] = ~([Y]补) + 1 对[Y]补 连同符号在内取反加一
[Y]补-->[-Y]补:末尾一个1相同,前面一律求反
3.溢出的检测方法
110 001
111 111
结果两位符号的值不一样时表示溢出
s1 s2
0 0 0
0 1 1
1 0 1
1 1 0
双高位判断:数值部分最高位产生进位CS,符号部分向上进位Cf
4.补码定点加减运算的的实现
所需控制信号
ADD +A +B Sigma--> A CPA
SUB +A -B +1 Sigma--> A CPA
加法逻辑结构的改进
1.全加器
三段输入,两端输出的加法网络
100 1 1
010 1
001 1
111 3
110 101 011 111
C_i = A_i B_i + (A_i ^ B_i)C_i-1
| 条件进位
V
C_i = G_i + P_i C_i-1
定点乘法运算
1.原码一位乘法:相当于手算
X 被乘数
Y 乘数
Y_i=1,+X; Y_i=0,不加X.
X寄存器初始值为0
加完后,右移位。
最后加符号位。
2.补码一位乘法
1. Y>0 其乘法与原码相同 [XY]补 = [X]补 * [Y]补
2. Y<0 需校正 [XY]补 = [X]补 * [Y]补 + [-X]补
3.补码一位乘法之比较法(Booth乘法) 跳过
定点除法运算
1.原码恢复余数法
1.符号单独处理,取绝对值相除
2.作减法
3. R<0 商0 恢复余数(+Y) 左移一位 作减法
R>0 商1 左移一位 作减法
重复n步
4.最后一步余数为负,应恢复为正余数
余数和商是同号的
2.原码不恢复余数法
作减法
R<0 商0 左移一位 作加法
R>0 商1 左移一位 作减法
最后一步余数为负,应恢复为正余数
浮点加运算
1.对阶(对大阶) D_E = [A_E]补 + [-B_E]补
A=B
A>B B阶码加1 B尾数右移一位
B>A A阶码加1 A尾数右移一位
2.尾数求和,规格化处理。([A_m]补+[B_m]补=[A_m+B_m]补)
尾数绝对值 >= 1/2
3.规格化处理
左规
右规 尾数右移 阶码+
4.舍入处理
采用0舍1入
5.判断溢出
由于阶码两符号位相同,不溢出
浮点减运算 尾数相减
浮点乘运算 指数相加 尾数相乘
浮点除运算 指数相减 尾数相除
存储系统
RAM 随机存储器
ROM 只读存储器
构成单元
1.六管静态MOS存储单元线路
T1 T2
通 止 存0
止 通 存1
保持信息:不打扰,不送地址选通信号
读出:送地址,发读命令
写入:送地址,送数据发写命令
2.单管动态MOS存储单元线路
电容上有电荷,存1
电容上无电荷,存0
3.MOS型ROM
地址驿码
1.单向译码 字结构
2.双向译码 位结构
双向译码方式,选择线大量减少
存储器扩展
16K x 4
确定地址线 确定数据线
1.位扩充
地址线A 数据线D 片选线~(CS) 读写线~(WE)
所有的A0连在一起;所有的A1连在一起;...;所有的An连在一起;
所有的D0连在一起;所有的D1连在一起;...;所有的Dn连在一起;
读写信号连在一根
片选信号连在一起
2.字扩充
地址线A 数据线D 片选线~(CS) 读写线~(WE)
所有的A0连在一起;所有的A1连在一起;...;所有的An连在一起;
所有的D0连在一起;所有的D1连在一起;...;所有的Dn连在一起;
读写信号连在一根
片选信号分开
3.字位同时扩充
先“位”扩充,后“字”扩充。
所需片数 = (M * N) / (m * n)
4.存储器与CPU的连接
片选线连在译码器
动态存储器DRAM刷新
动态MOS存储器每隔2ms必须进行一次刷新,称作刷新最大周期
1.集中式刷新
读写操作时间 刷新时间
2.分散式刷新
3.异步式刷新
对于集中式而言:减少了刷新次数
对于分散式而言:主机的死区缩短很多
DRAM在与CPU接口时,需考虑:
1.刷新问题。加刷新电路
2.地址信号输入问题。地址输入一般采用两路锁存方式。
DRAM的发展
1.FPM-DRAM
避免了行充电时间
2.EDO-DRAM
3.SDRAM
4.DDR SDRAM
高速缓冲存储器
弥补主存速度的不足
1.地址映象
直接映象
K = I % M
K:Cache的块号
I:主存的块号
M:Cache
主存地址分为三段:
主存区号标志 长度 = 主存地址长度 - Cache地址长度
Cache块号
块内地址
全相联映象
组相联映象:组内全相联映象,组间直接映象
替换算法:1.先进先出算法 2.近期最少使用算法
虚拟存储器
1.页式虚拟存储器
2.段式虚拟存储器
3.段页式虚拟存储器
指令系统
数据字:计算机的字表示一个数
指令字:计算机的字表示一条指令
机器字长:计算机能直接处理二进制数据的位数
指令字长:一条指令中包括二进制码的位数
定字长指令 字结构
变字长指令 字结构
指令:控制器发出的操作命令
操作码 执行什么操作
地址码
常见的存储结构
1.CPU寄存器组
2.主存储器
3.磁带 磁盘
4.堆栈 空栈无法弹出;满栈无法压入
地址结构
1.四地址结构
op 操作码
D1 第一操作数地址
D2 第二操作数地址
D3 结果存放地址
D4 下一条指令地址
2.三地址结构
采用计数器PC,四地址结构->三地址结构
OP
D1
D2
D3
3.二地址指令格式
结果数的地址隐含的由D1或D2给出,三地址结构->二地址结构
OP
D1
D2
4.单地址指令格式
op
D1
5.零地址指令
操作码结构
1.统一编码与逐位定义
2.方式码
3.扩展操作码
寻址方式
1.立即寻址
操作码与操作数同时取出,不必再次访问存储器。
用于地址常数或数据常数。
2.直接寻址
给出的地址A就是操作数的有效地址
不需要任何寻址运算
3.寄存器直接寻址
操作数在指定的寄存器中,指令中给出寄存器号
4.寄存器间接寻址
EA = (Ri)
(1)解决循环程序设计
5.间接寻址
地址部分给出的不是操作数的地址,而是存放操作地址的地址
EA = (A)
(1)查表
6.相对寻址
操作数的有效地址EA = 指令的形式地址 + 程序计数器PC内容
EA = (PC) +/- D
7.变址寻址
操作数的有效地址 = 指令中给出的地址A + 变址寄存器RX的内容
EA = A + (Rx)
RX的内容称为变址值,有正、负之分。
8.基址寻址
操作数的有效地址 = 基址寄存器Rb + 指令中给出的位移量D
EA = (Rb) + D
9.堆栈寻址
10.页面寻址
指令类型与功能配置
1.数据传送指令
传送范围
R <-> R
M <-> R
M <-> M
传送单位
按字节,字,字符串,数据块,等
2.算数运算类指令
加 减不可缺少
3.逻辑运算类指令
中央处理器(运算器 + 控制器)
运算部件
第一级:输入选择器 或 锁存器
第二级:基本算术,逻辑运算部件ALU
第三级:移位器
寄存器
用户可见的寄存器
1.通用寄存器
2.数据寄存器
3.地址寄存器
控制寄存器和状态寄存器(专用寄存器)
1.IR(指令寄存器) 存放当前执行的指令,直至本条指令结束
2.ID(指令译码器)
3.PC(程序计数器) 存放下一条指令执行地址
4.MAR(存储器地址存储器)
5.MDR(存储器数据寄存器)
6.PSW (程序状态字寄存器)
总线
1.CPU内部总线
用来连接CPU内的寄存器与算术逻辑部件,ALU总线
2.部件内总线
芯片之间的连接总线
3.系统总线
4.系统外总线
一台计算机系统与其它设备相连接
时序系统
模型机指令系统
原则:指令系统完备性
传送类:MOV
算术运算类:ADD SUB
逻辑运算类:AND NOT / (OR NOT)
移位类:左移 右移
程序控制类:条件转移 无条件转移 转子 返回
I/O指令:专门的I/O指令 或 具备I/O功能的指令
微程序控制
Last modification:June 23rd, 2019 at 01:37 pm
© 允许规范转载