在印象笔记里发现组成原理当时整理的笔记, 这里整理一篇blog, 方便查找. 当时主要应用是在考试方面, 内容比较基础, 但是应付期末考试之类的应该还是可以的. 不废话了, 纪念当年的组成原理ヾ(≧O≦)〃嗷~.
第一章--概述
1.基本概念
(1)指令:人让机器所做的操作的命令.(都是0,1代码)
由操作码与地址码组成,操作码是指要做什么操作,地址码是存放操作数地址.
操作码有n位,则操作种类有2n位.
指令越多,功能越强.
(2)程序:指令的有序组合.
(3)指令系统:一台机器拥有的全部指令.
2.冯诺依曼存储原理:
(1)由存储器/运算器/控制器/输入设备/输出设备组成.
(2)指令和数据都是二进制形式,顺序存放于存储器中.(指令与数据都是二进制,无法进行区分)->二进制原理
(3)机器自动顺序取出每条指令,分析/执行规定操作.->程序控制原理
3.总线
多个功能部件间进行信息传输的公共通道.
三种总线结构需要分析.
4.接口的作用
为什么外设必须加接口才能加到总线上,翻课本查一下
5.字节:就是8位二进制,规定必须。
字:自己规定位数,与字节区别。其中字长为字的二进制位数。
机器字长决定了寄存器/运算器/数据总线的位数
6.计算机的核心:操作系统
硬件系统的核心:控制器
运算器的核心:加法器
第二章--计算机中数据信息表示法
1.基数与权的概念
基数:数制中所用到的代码的个数.
十进制为0~9,二进制为0~1
权:比如十进制的为,个位代表0/十位代表10等
2.为什么用二进制:
(1)便于物理器件实现
(2)运算规则简单
(3)便于实现逻辑运算
3.最好的数据为e进制(2.71828)
为什么不用三进制:现实世界三个状态的物理器件比较少,不便于物理器件实现
4.机器数:数据在机器中的表示
特点:
(1)数的符号数值化(0-正,1-负) [机器中数的符号数值化,0为正,1为负(错误的,因为移码是相反的)]
(2)表示范围受字长限制,超出范围--溢出
(3)小数点的位置需要约束 [机器中小数点是约定的,分为定点数/浮点数]
5.小数点的位置[通过位置进行确定]n+1为机器字长
****.(定点整数)
表示范围:1<=|X|<=2n-1
*.***(定点小数)
表示范围:2-n<=|X|<=1-2-n(不包括0,0为特殊的数)
浮点表示:(小数点位置不固定)-----用了浮点数所以计算机的精度高
基本格式:
阶符 | 阶值 | 尾符 | 尾数值 |
尾数部分用定点小数表示
阶码部分用定点整数表示->用移码表示, 尾数n位,阶码m位.保证浮点数足够大的数值范围,并要求精度,合理选择m,n
****浮点数的规格化:->只要求尾数
原码表示:要求S1位必须为1
补码表示:正数,尾数最高位为1,即Ss.S1=0.1
负数,尾数最高位为0,即Ss.S1=1.0
为什么这种设计方式: 直接使用异或门就可以实现,硬件设计简单
表示范围:
|X|max:Js=0,J1...Jm全部为1,S1...Sn为1
|X|min:Js=1,J1...Jm全部为1,Sn为1,其他为0
2-n*2-(2^m-1)<=|X|<=(1-2-n)*2(2^m-1)
尾数为0,不论阶码为何值机器都为0
定点数与浮点数的比较:
(1)定点表示简单,省硬件.浮点表示麻烦,价格贵.
(2)浮点表示比定点表示范围大
6.定点机器数
正数:原反补码相同
负数:原反补码不同
[X]原反补:此处必须符合4的特点, 此数必须有符号位/必须约定小数点
7.原码(注意补齐位数)->0的原码表示不为一必须有一位为符号位
小数原码[X]原的表示:
正数 [X]原=X
负数 [X]原=1-X=1+|X|
整数原码[X]原的表示:
正数: [X]原=X
负数: [X]原=2n+X
机器字长的符号位加入字长中.
此处为一个例题:+8用原码表示,且机器字长为4位,表示不下,发生溢出。
原码表示的优点:
(1)直观易懂。
(2)机器数和真值间的转换容易
(3)实现乘除运算简单
原码表示的缺点
加减运算规则复杂
8.补码[做加减运算的时候使用]
为什么用补码做加减:
(1)克服原码在加减运算中的复杂的缺点
(2)符号位参与运算
(3)使减法变成加法,简化机器运算电路[以时钟为例子解释,11-5=11+7时钟]
目的为(2)(3)
模的求解:
小数补码的模:2
整数补码的模:2n+1 n+1为机器字长
9.移码(都为正数域中)
与补码的符号位相反,其它位相同
性质:
(1)0为负数,1为正数
(2)移码全零,真值最小
(3)0的移码表示唯一
(4)与补码的符号位相反,其它位相同
(5)移码表示把真值映射到正数域,可按照无符号数比较大小.
10.表示范围
原码:
整数:0,1111~1,1111从此处进行计算范围->-2n<X<2n
小数:0.1111~1.1111注意这是小数,应该为1-2n[此处n为负数]->-1<X<1
反码:
与原码表示一样
补码:
整数:0<=X<2n && -2n<=X<0[n为机器字长减一]->-2n<=X<2n
小数:0<=X<1 && -1<=X<0->-1<=X<1
补码比原码多出一位,例子:
机器字长4位,表示多出的一位都为1,000
11.原反补码的表示
正数的原反补码一致,负数不同,特别重要
12.非数值数据编码表示
(1)BCD码->4位二进制表示
有权码/无权码区别:是否每一位是否有权
有权码
->8421码:将0~9用4位二进制表示
->2421码:每一位分别表示2/4/2/1,不允许0101~1010的出现
(2)检错纠错码
1)奇偶校验码--用于并行数据传送--只能选择其中一种,只能检错,不能纠错. 就是在k位数据码之外增加1位校验码,使k+1位码取值为1的位数总保持为偶数(偶校验)或奇数(奇校验)
2)海明码与循环冗余码用于纠错
(3)字符编码
1)ASCII码
ASCII-7:
8位:7位,区别不同字符,128个; 1位,奇偶检验
ASCII-8,扩展ASCII码,256个
2)汉字
计算机中两个字节表示一个汉字,每个字节只使用7位,最高的一位为1----目的:将汉字与ASCII码进行区别
3)字符串表示
一串连续的字符,计算机中表示为占据主存中连续的多个字节,每个字节存放一个字符. 可以从低位到高位,也可以从高位到低位
取字符串的方法:首先给首地址,然后给字符串的字符长度
4)逻辑数据的表示
1表示真,0表示
第三章--运算方法和运算器
1.移位运算
逻辑移位:寄存器中数据左移右移,出现空位都补0.
(1)算数移位: 左移x=2*x 右移x=1/2*x 左加右减 移位后,符号位保持不变
正数移位:无论原反补码都用空位补0
负数移位:原码左移右移空位都补0
反码左移右移空位都补1
补码左移空位补0 右移空位补1
是否2[X]补=[2X]补?是否1/2[X]补=[1/2X]补?
答:当X>=0时,成立->条件:不溢出
当X<0时,左移成立;当X>0时,右移不成立->左移成立条件:不溢出
(2)舍入操作
1)恒舍:多余的部分全部去掉
2)冯诺依曼舍入法:末位恒置1
3)0舍1入发->0就舍,1就+1,进位
4)ROM舍入法->查表
2.定点加减法(乘除->不做要求)
(1)原码加减法->不用 反码加减法->不用
(2)补码加减法->为便于判断溢出,常采用模4的补码形式,就是符号位改为2位->以模4做习题,第一个符号位始终指示正确的符号
[X+Y]补=[X]补+[Y]补
[X-Y]补=[X]补+[-Y]补
[Y]补与[-Y]补的转换:符号位,数值位全部变反,最后+1
[Y]补变[Y],除符号位,将数值位变反,+1
(3)溢出判断
符号位为00,表示正数;符号位为11,表示负数
符号位为01,表示正溢;符号位为10,表示负溢
符号位为100的时候为什么不溢出:因为采用的是模4进行表示,所以不会溢出,仅仅丢掉的是模.
3.基本加减法运算器设计
要求:
1)速度快,门的级数少
2)逻辑设计与实现完整性(尽量使用相同的器件)
3)除提供的功能,最好提供其他功能
(1)串行加法器
(2)并行加法器->进位仍为串行
1)串行加法器的进位链
C2->C1,C3->C2(需要以前的进位依赖),所用的时间为n位*2ty
2)并行加法器的进位链
进位的C=AiBi+(Ai+Bi)Ci-1=Gi+PiCi A和B表示需要运算的两位,C表示进位;G表示AB的与,P表示A+B的AB或。
当A和B都为1的时候,一定产生进位即G为1.只要A或B有一个1,进位C才能产生进位。
3)看课本P 看C2/C3/C4等如何全部推到C0,就是将前一步求的值,在这一步中展开就可以显示C0->仅需2ty就行
虽然上面是2ty,但是现实中不存在这样的元器件.受到扇入系数的影响
4)设计思想
将串行与并行结合起来设计.比如16位,分成4组,每组4个,组内为并行,组间用串行的.
4.十进制加减法/定点乘法/定点除法->不要求
5.逻辑运算->按位进行,不存在进位与借位现象
(1)逻辑非
(2)逻辑加->逻辑或
(3)逻辑乘->逻辑与
(4)逻辑异
6.定点运算器设计->运算器的核心为ALU
寄存器A即存运算数又存最后的结果/寄存器B有X和X非,若为加则选择X,若为减则选择X非.
寄存器A称为:累加器
ALU中为什么存在+1这一项?
因为寄存器B中存的数都为反码,通过ALU的+1则可以变成补码进行运算,设计方便.还可以用于PC+1
7.规格化浮点运算->对阶与规格化都需要移位
(1)对阶--小阶向大阶看齐->阶码相同
移动尾数部分的数值,改变阶码的值.
(2)尾数求和
(3)规格化
补码正数:00.1的形式
补码负数:11.0的形式
左规:尾数左移一位,阶码减一
右规:尾数右移一位,阶码加一
01.000和10.000:在定点数表示溢出,在浮点数中允许.这种情况用右移使其规格化即可
(4)舍入
(5)溢出处理
第四章--指令系统
1.指令系统概述
指令:就是OP(操作码)与D(地址码)组成
指令字长:一个指令字中包含二进制的位数
机器字长:计算机能直接处理的二进制数据的位数,决定了计算机的运算精度
存储字长:内存单元二进制的位数
单字长指令:指令字长=机器字长
半字长指令:指令字长=1/2机器字长
双字长指令:指令字长=2倍机器字长
指令字长与机器字长的关系?
无固定关系
确定指令字长的原则:
1)指令字长尽可能短;节省内存空间,提高执行速度
2)等于字节的整数倍->避免存贮空间的浪费
2.指令的分类->讨论机器指令
从计算机组成的层次结构分:
微指令
机器指令->介于微指令与宏指令之间,简称指令
宏指令->许多机器指令组成的软件
3.机器语言是机器能够直接识别的,汇编语言不能识别.
高级语言与计算机的硬件结构及指令系统无关
4.指令格式
操作码m位,地址码n位->操作数种类2m,操作数的范围为2n
m和n的位数一般是固定的,不能随时变化
5.操作码
操作码:主操作码(基本操作)和辅操作码(有移位等)
组织形式:
(1)定长的操作码
若操作码为4位,需要用译码器译成16位
(2)变长的操作码
优点:用较少的位数表示更多的指令格式,同时满足操作数地址的需求
缺点:计算机硬件设计复杂,指令译码和执行速度慢
(3)操作码与操作数地址有所交叉->基本不用
6.地址码->指出参与操作的数据地址
(1)CPU内部的通用寄存器-最快
(2)内存的单元--次之
(3)外设接口中的寄存器--最慢
指令中的地址码:
1)四地址指令--op|A1( 第一个操作数 ) |A2( 第二个操作数 )|A3 (结果) |A4(下一条指令地址) ->访问内存:5次/取指令别忘记
2)三地址指令--op|A1( 第一个操作数 ) |A2( 第二个操作数 ) |A3( 结果) ->访问内存:4次,下一条指令地址在PC中
3)二地址指令--op|A1( 第一个操作数 和结果) |A2( 第二个操作数 )->访问内存:4次,下一条指令地址在PC中->多数机器采用
4)一地址指令--op|A1(操作数)->累加器中存放一个操作数,最后的结果存放于累加器中->访问内存:2次->微型机应用广泛
5)零地址指令--op-><1>无需操作数,NOP(空转),<2>所需的操作数由堆栈提供
6)寄存型地址格式指令->操作数全部放在寄存器中也有单地址/二地址/三地址之分--访问内存:1次,操作数存放在寄存器中,只有取指令的时候访内
7.堆栈->先进后出
硬堆栈->寄存器堆 软堆栈->内存中的指定区域
堆栈两端:
固定:栈底
活动:栈顶,SP指针指示
自底向上的堆栈:
压栈:先修改SP,后存数据
出栈:先取出数据,后修改SP
8.寻址方式(地址:形式地址和有效地址,形式地址->指令给出的地址;有效地址->操作数真正的地址,又称物理地址)
指令寻址:如何找指令(PC)
操作数寻址:寻找操作数
区分:指令地址与指令中的地址
指令地址:存放指令的地址,即OP|D的地址
指令中的地址:操作数的形式地址
寻址方式:->一台机器,可能只用其中几种寻址方式/机器不同,寻址方式相同,表达方式和含义也可不同(页面寻址:拼接的内容可能不同,参考页面寻址)
(1)立即寻址->OP|D其中D就是操作数(访存1次)
特点:执行指令时不访问内存,速度快/立即数的位数受字长的限制
(2)直接寻址->OP|D其中D为操作数的地址(假设为n位,则寻址范围为2n)(访存2次)
特点:直观/寻址空间受限
(3)间接寻址->OP|D其中D为操作数地址的地址
寻址空间受内存储器的位数限制,存储字的位数S位,寻址范围2S
一次间址:形式地址是操作数地址的地址.
多次间址:指令中设间址特征位,此位为1,继续间址,直至此位为0.
(4)隐含寻址->OP|D--操作数地址
ACC OP(D)->ACC--操作数隐含在累加器ACC中
(5)变址寻址->OP|Ri(得到变址寄存器的位置)|变址偏移量
(IR)+D=有效地址EA
(6)基址寻址->OP|Ri(得到基址寄存器的位置)|变址偏移量
(BR)+D=有效地址EA
变址寻址与基址寻址的异同:
相同:有效地址的形成方式不同,都能扩大寻址空间(变址/基址寄存器为n位,寻址空间为2n)
不同:1)变址寻址中,变址寄存器提供变址量,形式地址提供基准量,这个基准量位数较长
基址寻址中,基址寄存器BX提供基准量,形式地址提供偏移量,这个偏移量位数短
变址:变址量(小)+形式地址(大)=有效地址
基址:基址值(大)+形式地址(小)=有效地址
2)变址寄存器的值由用户确定,且随意改变
基址寄存器的值由操作系统确定
(7)复合寻址
先变址后间址: ((IX)+D)--有效地址
先间址后变址:(D)+(IX)--有效地址
(8)相对寻址
有效地址EA=(PC)+D
与变址寻址的区别:
变址寄存器可以是多个寄存器中的一个,而相对寻址中的寄存器已确定为PC,无须在指令中确定.
(9)页面寻址(扩充寻址)
扩充地址寄存器内容作高位,形式地址为低位--页内地址,二者联合--有效地址
扩充地址寄存器+指令中的形式地址,即D的地址,可以变成一个更长的地址
(10)寄存器寻址
形式地址就是寄存器的编号
(11)堆栈寻址
入栈操作:指令 PUSH A
操作:SP-1->SP
出栈操作:指令 POP A
操作:SP+1->S
9.指令的种类
(1)算逻运算类
(2)数据传送类
(3)指令控制类
(4)I/O类
(5)其他:停机->所有机器都包含此指令
10.指令系统的要求
(1)完备性 (2)有效性 (3)规整性 (4)兼容性
11.系列机
基本指令系统相同,基本结构相同的一系列计算机->可能由于时间不同,结构方面可能有所不同,但是必须满足软件向上兼容.
要求:
(1)各机种有相同的指令集
(2)新机种的指令系统一定包含旧机种的所有指令系统.
12.CISC/RISC
CISC:复杂指令集计算机.功能强,指令条数多,研制周期长,系统效率低
RISC:精简指令集计算机.指令系统尽可能简单.->优点更好
13.设计机器时,一般追求指令格式可变:指令长度可变,操作码长度可变,地址码可变的优劣
指令字长固定:控制简单,浪费存贮空间.
指令字长可变:节约存贮空间,提高机器效率,控制复杂,成本高.
14.视频4-5有例题
(1)存贮器的页面:64K/28,每个页面的单元数28.这里的8为地址码位数,64K为内存空间
(2)寄存器16位,访问1M的存储空间,这里左移4位是什么意思?
15.MAR(存储器地址寄存器):指令地址从PC通过总线放入MAR,然后译码找到存储单元->取指令
MDR(存储器数据寄存器):将取出的指令放入MDR中
第五章--存储器
1.基本概念
计算机中最小的存储单位:二进制位->用一个触发器存储或者记忆单元(存储一个二进制位)存储.
8个二进制位称为一个字节,位用b,字节用B表示.
当一个二进制数称为一个整体进行操作时,就称为一个字.一个字中的二进制位数叫字长.
多位二进制用多个记忆单元存储,多个单元称为存贮单元.->可以存放一个字,多个存贮单元组成一个存贮体-存贮器的核心.
2.存储器的主要技术指标
(1)存储容量:
字节编制:以字节数来表示容量->B
字编制:以字数*字长来表示容量
例题:某计算机容量为64K*16(这里16表示有16个二进制位数),表示有64K个字,每个字的字长为16位;用字节数表示,则可以记为128K字节.
(2)存取速度(存取周期/存取时间)
存取时间:从启动一次存储器操作到完成该操作所经历的时间
存取周期:从接受读/写命令信号开始,将信息读出或写入后,到接到下一个读/写命令为止所需的时间.
存取周期>存取时间
(3)可靠性->以平均无故障时间(两次故障之间的平均间隔)来衡量
(4)性能/价格比
(5)功耗->耗电不是主要问题,主要问题是温度,发热会使器件击穿.
3.存储器分类->存储器的矛盾:速度与容量
(1)功能
寄存器:位于CPU内,速度与CPU匹配
主存:主机内,直接与CPU交换信息,速度快
辅存:主机外,不能与CPU交换信息,速度慢
高速缓存:CPU与内存之间,容量小,速度与CPU匹配/CPU内部也有高速缓存(现在CPU内部有运算器/控制器/Cache)
(2)读写方式
RAM:随机存取存储器->静态MOS(Cache)/动态MOS(内存)
ROM:只读存储器
注意:一个时刻只能对一个单元进行读和写
(3)读写顺序
SAM:顺序存取->磁带
RAM:随机存取
DAM:直接存取->磁盘
(4)存储介质
磁芯:永久存储(使用寿命内),速度慢
半导体:易逝性(断电易逝),速度高
(5)寻址方式
地址寻址
内容寻址:以关键字来找所需信息
4.半导体随机读写存储器
基本结构:
存储体:采用矩阵的形式进行存储,课本P
数据线->双向(RAM双向/ROM单向) 地址线->单向 地址选择线(译码器译出的线)
地址译码器:单译码/双译码(不能节省地址线的数目,但是可以节省地址选择线的数目,现一般都采用此结构)->用图体会
视频5-2-1中12:00时介绍.
读/写电路:选中存储单元的读/写
控制电路:片选线CS->先选片/读写控制线WE(CS与WE都是低电平有效)
5.高速缓冲器Cache->速度比内存快,与CPU一个级别.存储空间比内存小很多.->Cache的速度,内存的容量
目的:提高内存速度,解决内存与CPU速度不匹配的问题.
CPU<->Cache<->内存
CPU<->内存
理论基础:
(1)时间上的局部性->某一地址空间的程序被访问,则近期可能还会被访问.
(2)空间上的局部性->某一地址空间的程序被访问,则附近空间的程序可能还会被访问.
CPU与Cache可以直接连接,同时防止Cache中若未有程序而在内存中,所以CPU也可以与内存进行连接.
容量与命中率问题:
(1)容量
太大:影响CPU效率,且硬件线路复杂,但是与Cache交换的信息量大
太小:命中率低
(2)命中率
h=Nc/(Nc+Nm)
Nc/Nm为在Cache,主存中命中的次数
地址映射->主存中的块如何在Cache中定位
地址变换->主存地址如何变换成Cache地址
全相联映射/直接映射/组相连映射->不要求
为提高速度,Cache需要全部用硬件实现,Cache全部由静态RAM组成.
用了Cache后,以Cache的速度,以内存的容量与CPU相关联.
6.动态MOS存储器的刷新
(1)刷新的时间间隔->必须在2ms内刷新
(2)要求
1)两次刷新的时间间隔不能超过允许时间2ms
2)刷新优先于访存,但不能打断访存周期
3)刷新期间内,不准访存
(3)刷新方式
1)集中式:在2ms内,集中安排刷新时间
存取/刷新周期=500ns,需要刷新32行,2ms/500ns=4000,刷新时间32*500ns
特点:存取周期不受刷新影响,速度快存在死区,刷新期间不能读/写
2)分散式:把系统周期分成读/写和刷新两个部分,其中读/写+刷新的时间为系统周期
系统周期=500ns+500ns=1us,刷新时间为32us
特点:刷新时间间隔短,就用系统周期*需要刷新的行数,无死区.系统存取周期长,降低了整机速度,不适用于Cache.
3)异步式:将上面两种方法结合
2ms/32=62.5us,其中读/写=60us,刷新=0.5us
特点:异步刷新方式还是采取不定期刷新方式,可以在主机不访存的时间内刷新,这种方式取消了死区,但刷新控制线路复杂.
(4)注意:
1)刷新对CPU是透明的,CPU不知道刷新存在,但是它真实存在
2)刷新按行进行,不需要列地址
3)刷新与读出操作相似但是又不同
读出时,要对C1或C2充电,刷新时也要对其充电,但是刷新只是补充电荷,不涉及信息输出.
4)刷新和重写(再生)是两个完全不同的概念
重写是随机的,某个存储单元只有被破坏性读出后才需要重写./重写是按照存储单元进行的.
刷新是定时的,即使许多记忆单元未长期访问,也要及时补充电荷/刷新以存储体的一行进行的.
7.存储器芯片与CPU的连接->地址译码采用双译码->节省地址选择线的数目
RAM芯片:地址线/数据线/片选线/读写控制线/电源/地线
(1)存储器组织
字长扩展(将片选连接起来,平行扩展)/字数扩展(垂直扩展)
(2) 与CPU链接
存储器--CPU/地址线--地址线(方向为单向)/数据线--数据线(方向为双向)/CS--MREQ(方向为双向) /WE--WR(方向为双向) /
地址范围:就是0000000000-1111111111,即0000H-03FFH->看的是多少K
1K(210)*4组成8K(213)*8的地址范围:->必须为16进制
0,1片:000 0000000000~000 1111111111
2,3片:001 0000000000~001 1111111111
4,5片:010 0000000000~010 1111111111
看视频5-3的11:30->特别重要
1K(210)*4组成8K(213)*8的CPU连线:其中多的3位用来进行译码,A10A11A12通过译码与CS0-7相连,MREQ与A10A11A12 译码器相连
8.只读存储器ROM
(1)特点:只能读不能写,即存储的内容不能改写,并且关机不会丢失.
ROM(掩膜只读存储器)->PROM(可编程ROM,只允许写一次)->EPROM(可擦除可编程ROM,紫外线擦除)->EEPROM(电擦除)
9.提高存储器性能的技术
(1)双端口存储器->为存储体配置两套设备->当A读/写的时候,B也可以读/写
地址A 地址B
| |
译码 译码
|
存储体
| |
数据A 数据B
(2)主存多体交叉存取方式
把内存分成多个容量相同的个体,每个个体相互独立,都有一套自己的外围线路,CPU可以分时访问每个个体.
存在->相关问题->后面的程序需要前面的结果/指令的相关和数据的相关
10.虚拟存储器->解决容量的问题
(1)问题的提出
由于成本,工艺,速度的原因,内存的容量受到限制,用户希望内存容量增大.
解决办法:
把外存当内存用,所需的程序和数据及时自动地从外存调入内存
(2)虚拟存储器->对系统程序员不透明,对应用程序员透明
由主存和辅存组成,速度相当于主存,容量相当于存储系统.
(3)理论依据
一个程序运行时,在一小段时间内,只会用到程序和数据的很小一部分,仅把这部分程序和数据装入主存储器中.
(4)相关概念
1)地址(虚拟地址)->可以很大
程序员编程以及CPU通过指令访问内存,所用的程序地址,寻址空间完全由指令中地址码成度决定,地址码32位,寻址空间可超过4G
2)物理地址(真实地址)
内存实际提供的地址,寻址空间大小完全由内存容量决定.
3)辅存地址(磁盘地址)
区分:形式地址,有效地址,指令的地址,指令中的地址
(5)地址映像与地址变换
与Cache中的相同
地址变换一般由OS(操作系统)自动变换
(6)实现
软硬件共同实现
11.存储器系统的层次结构
CPU<->Cache<->内存<->外存
CPU<->内存<->外存
(1)Cache<->内存
速度接近与Cache,容量接近内存,价格接近主存,解决了高速度和低成本之间的矛盾.
(2)内存<->外存
速度接近内存,容量接近外存,CPU不能直接访问辅存,辅存只与内存交换信息.
(3)三级Cache
主板上的Cache
CPU内部
CPU两边分离
原则上任何外设都可以有Cache
第六章--中央处理器--控制器
1.控制器是硬件系统的核心
操作系统是计算机系统的核心
加法器是运算器的核心
控制器/运算器/Cache组成CPU
2.取指令:(以下都为微操作)
1)PC-(AR)->MAR
2)发出读信号
3)M[MAR]->MDR
4)MDR-(DR)->IR
5)PC+1->PC
分析指令:(从IR中分析指令)
(1)操作码经过译码器进行译码
(2)分析操作数
执行指令:
3.微操作信号发生器
用于发出微操作信号
4.控制器的基本组成
(1)组成原理图,课本P
(2)基本组成
1)指令部件
程序计数器PC,指令寄存器IR,指令译码器ID
PC:功能->存放后继指令(下一条指令)的地址
注意:取指刚开始时,PC中包含的是现行指令的地址.取指完成后,PC中包含的是后继指令,PC的位数应该与MAR(存储器地址寄存器)的位数相同,单向
IR:功能->存放现行指令
注意:IR的位数等于指令字长,指令字长等于存储字长的整数倍
ID:功能->分析指令所代表的操作,产生相应的控制信号
2)时序电路
功能->产生计算机各功能部件所需的各种时序信号
3)微操作序列形成部件(核心)
功能->综合指令部件提供的操作信号,时序部件产生的时序信号部件的反馈信号,形成不同机器指令所需的不同微操作指令.
4)中断机构:处理异常,特殊功能
5)其他
地址形成部件:形成操作数的有效地址
控制台:实现用户对机器的干预
总线及控制逻辑:对总线进行管理
5.控制器的功能
(1)MAR是单向的,MDR是双向的,IR是单向的
(2)取指令
1)PC-(AR)->MAR
2)发出读信号
3)M[MAR]->MDR
4)MDR-(DR)->IR
5)PC+1->PC
(2)分析指令
指令在IR中进行分析:对操作码部分译码,送至微操作序列形成部件,形成指令所对应的一系列微操作,地址码部分送至地址形成部件(取决于所采用的寻址方式),形成操作数的有效地址.
(3)执行指令
从有效地址中取出操作数,并按照操作性质完成指令代表的各种操作.
(4)控制主机与I/O设备交换信息
(5)中断控制
6.控制器分类
微操作控制信号发生器是控制器的核心,根据微操作信号的产生方式不同,可以把控制器分成:组合逻辑控制器和微程序控制器两大类.
(1)组合逻辑控制器->纯硬件实现
特点:设计,测试,维修困难,难于实现设计自动化/速度快
(2)微程序控制器
程序存储思想:
使一条机器指令对应一个微程序序列,执行微程序序列,相当于执行指令对应的微操作序列,从而实现指令规定的操作.
特点:调试,修改方便,但速度不及组合逻辑控制器
注意:这两种控制器的设计方法不同,但是完成的功能一样,所产生的微操作命令序列一样.
7.控制方式与时序系统
(1)控制器的控制方式
控制器如何在时序上对指令的执行过程实施控制.
1)同步控制->所有指令的时间必须一样,以最长的时间为标准.
在任何情况下,已定的指令在执行时所需的机器周期数和时钟周期都固定不变,都由CPU统一的时序信号控制(与主频同步)
特点:控制简单,设计方便,实现容易,费时,效率低
现在微,小型机中,都用改进的同步控制方式
中央控制:指令执行时间接近,相同的指令,由中央控制器的主时钟实现同步
局部控制:少数执行时间差别大的指令,由局部控制器发出的节拍控制,但是局部控制器的时钟也要与中央时钟同步.
2)异步控制(分散控制)
机器没有统一的时钟,各部件分设自己的时钟,按照微操作实际所需,由应答线路控制.
机器执行指令,需要多少时间就分配多少时间.
特点:省时,效率高,但是控制复杂.
3)联合控制
同步与异步结合使用
执行时间差不多的指令用同步,执行时间差异大的,用异步.
一般:功能部件内,用同步;功能部件间,用异步的方式
特点:较折中
8.时序系统->产生各种定时信号,以协调各部件工作
(1)有关概念
1)指令周期->从取指开始,到执行完该指令所需的全部时间.
不同指令,指令周期长短不一,乘法比加法费时,间接寻址比直接寻址费时.指令执行时间越长,指令周期越长.
2)机器周期->CPU执行一个基本操作(以CPU在内存中读取一个指令字的最短时间规定CPU周期,例如:取指令,分析指令等都为一个机器周期)所需的时间
一个指令周期包含2~n个机器周期
若某个机器周期被CPU用来
取指--CPU取指周期
执行--CPU执行周期
间址--CPU间址周期
处理中断--CPU中断周期
为标志CPU工作在哪个周期,每个周期设置一个周期状态触发器,CPU进入此周期,触发器为1,否则为0.
存储器中存储的指令和数据,如何区分指令和数据?
从CPU取指周期取出的一定为指令,其他的可能为数据.
3)时钟周期->微机主频的倒数->一个机器周期包含多个节拍
计算机中最基本的时间单位->不能在分的时间单位(与节拍区分开)
一个时钟周期,一个时钟周期可以完成一个,两个,多个微操作
每个时间段对应一个电位信号,称为节拍电位信号->微机系统中就是一个时钟周期
取指令->以下为微操作
1)PC-(AR)->MAR
2)发出读信号
3)M[MAR]->MDR
4)MDR-(DR)->IR
5)PC+1->PC
(2)机器主频16M,平均每条指令执行时间为2个机器周期,每个机器周期由2个时钟周期组成,机器速度.
机器速度=1s/(2*2/16M)=4MIPS
(3)两种常见时序系统
1)机器周期-电位-脉冲制
一个机器周期划分成多若干个相等的时间段,每个时间段对应一个电位信号(就是节拍)
一个节拍完成一个或者几个微操作,为实现较强的控制,在一个节拍内设一个或几个脉冲,作为触发信号
如:寄存器在一个节拍内接受数据->微操作有:清0,打开数据传送通路,接受->一个节拍,三个脉冲(节拍做准备,脉冲来工作)
注意:脉冲是一种触发信号,并非最小的时间单位
2)时钟周期时序系统
在一些微型机中,只设机器周期和时钟周期,不设脉冲.时钟周期就是电位信号,也就是相当于上面的脉冲.
(4)影响时序系统的因素
1)指令系统->指令种类直接影响控制方式的确定,指令所需的时间差不多采用同步,差距很大采用异步
2)指令格式及寻址方式
9.CPU中寄存器设置
(1)通用寄存器
运算器:ACC,R组(几~上百个)->寄存器组
(2)专用寄存器
指令寄存器(IR) 程序计数器(PC) 存储器地址寄存器(MAR) 存储器数据寄存器(MDR) 状态标志寄存器(PSW)->程序状态字
(3)CPU中的6个主要寄存器
IR--MAR--PC--MDR--ACC--PSW
10.加法指令ADD R1,@R0
取指令:(PC)->MAR,read
M[MAR]->MDR
MDR->IR
(PC)+1->PC
分析指令:OP(IR)->ID
执行指令:(R0)->MAR,read
M[MAR]->MDR
(MDR)->Y
(R1)->ALUr
+,(Z)->R1
上面的顺序不能够改变,以上为一个微操作序列.执行微操作序列,执行完毕后就是执行完指令
另一种加法指令:ADD @R1,R0
取指令:(PC)->MAR,read
M[MAR]->MDR
MDR->IR
(PC)+1->PC
分析指令:OP(IR)->ID
执行指令:(R1)->MAR,read
M[MAR]->MDR
MDR->LB
(R0)->LA
+,ALU->MDR
Write
11.组合逻辑控制器的设计
(1)设计步骤
1)根据用途确定指令系统(寻址方式等)
2)根据指令系统确定总体结构->指令系统确定,字长和格式都确定,确定数据通路等,设置的寄存器都需要确定
3)根据指令系统和总体结构安排时序->一个指令周期分成几个机器周期,一个机器周期分成几个节拍,一个节拍分成几个脉冲
4)根据总体结构和时序系统确定每条指令的微操作序列
5)根据微操作序列,列出微操作时间表,设计控制逻辑
12.微程序控制器设计
(1)以软件方法进行微操作信号,以存储逻辑控制来取代组合逻辑控制,以方便克服组合逻辑控制器设计,调试,维修,困难等缺点.
(2)主要思想:存储逻辑->代替组合逻辑
将所有的微操作指令全部合成一个大的集合,取指令/执行指令的时候,若里面包含其中的微操作则显示为1,没有则显示为0,形成一个新的微程序.
_ _ _ _ _ _ _ _ _ _/1000011000,其中_ 为所有的微操作集合,1/0分别表示有还是没有,有1的时候执行,0则表示不执行.
机器指令与微指令的区别:
不同的机器指令,对应不同的微程序,将这些微程序存储于控制存储器中.执行机器指令时,只需要执行对应的微程序.
机器指令 有序的集合->程序 存储位置->存储器
微程序 有序的集合->微程序 存储位置->控制存储器(只读)
一条机器指令:取指,执行两个阶段
取指 执行
取指微程序段 执行微程序段
(3)相关概念:
微命令:控制器控制部件通过控制线向执行部件发出的各种控制命令.
微操作:执行部件接受所执行的操作.
注意:一个微命令对应一个微操作
微指令:在机器的一个CPU周期(机器周期),一组实现一定操作功能的微命令的组合
机器指令->操作码|地址码
微指令->微操作码|微地址码--微地址码部分:给出下一条微指令的地址
微程序:微指令序列
控制存储器:存放微程序的存储器,一般为ROM
微地址:控制存储器的单元地址
微周期:取出并执行一条微指令所需的时间->一个节拍?
指令周期:取出并执行一条指令所需的时间
13.组成部件->没有uMDR
uCM:控制存储器,存微程序->相当于存储器
uMAR:控存地址寄存器->相当于MAR->首址放于uCAM
uIR:微指令寄存器,存微指令->相当于IR->由微操作码和微地址码(下一条微指令地址,自动+1)组成
14.工作过程
(1)工作前:
微程序->uCM
机器指令首地址->PC
对应微程序首址->uMAR
(2)机器指令:取指周期,执行周期 取指周期->取指微程序(对不同的机器指令,全部相同) 执行->执行微程序
(3)一条机器指令执行过程:
1)取指周期(公操作->全部相同)
微首址
|
uMAR-(微指令)->uIR->uOP:微操作命令/uD:下一条微操作的地址
2)执行周期
OP | D----->注意:执行的微操作是从指令的操作码中得出的
|
---------->uMAR------>同上
(4)微指令地址形成方式
机器指令的OP直接给出->仅负责给出"执行"阶段所对应的微程序的首地址,除首地址外,其余首地址都是从微地址中给出
微指令的微地址码字段给出
15.CPU中流水线结构
对指令的控制:
时序:同步,异步,联合方式->前面内容见7
指令执行:顺序,重叠和流水
(1)指令的顺序控制
就是指令顺序的执行一遍
取指:内存,IR,总线忙,运算器空闲
执行:运算器忙,其他空闲
(2)重叠技术->取指和指令重叠,CPU工作周期没延长,使用一套分析部件和一套执行部件->不能两个同时分析/执行
就是一条指令还没有执行完毕就开始执行下一条指令
取指 分析 执行
取指 分析 执行
或
取指 分析 执行
取指 分析 执行
取指 分析 执行
注意:
1)重叠不能加快一条指令的实现,只能加快相邻的两条或一段程序的实现.
2)不能增加功能部件为前提
3)实现重叠,控制困难
(3)流水技术->由重叠发展而来->高程度的重叠
1)思路:将一个复杂过程分成多个需时相等的子过程,每个子过程由一个独立的功能部件完成
入->取指->译码->取数->执行->出(就是将重叠进行进一步的细化)
2)需要的总时间:n*t+(n-1)*t
3)注意:->浮点数的加减法运用流水的方式实现
流水线只能使用一套功能部件
要保证流水的效率,必须使流水线不断流
流水控制要解决许多控制上的问题
第七章--总线系统
1.总线概念
总线:计算机多个功能部件间进行信息传送的公共通路 。
2.总线基本特征:
(1)共享性:多个部件链接在同一个总线上,各部件相互交换信息都通过这组总线传送.
(2)分时性:同一时刻只能在一对部件之间传送信息,系统多个部件不能同时传送信息.
3.总线特性
(1)物理特性:链接方式
(2)功能特性:总线是地址线还是数据线,还是控制总线
(3)电气特性:传递方向是单向还是双向
(4)时间特性:什么时间有效
4.总线性能指标
(1)总线宽度->传输的二进制位数
(2)标准传输率->总线上每秒传输的最大字节量
总线宽度32位,时钟频率33MHz,最大数据传输速率=132MB/s(过程:32*33/8=132)
(3)总线带宽->总线能达到的最高传输率
5.总线传送方式
(1)串行传送->按照位进行传输
(2)并行传送->有多少二进制位,就有多少条传输线
(3)分时传送
6.单总线结构:
优点:设备扩充,增减方便,灵活
缺点:分时使用总线
双总线结构:
面向CPU:
优点:简单,对总线传输速率要求低
缺点:I/O设备与内存交换信息需经CPU,CPU效率低
面向存储器:
优点:存取速度高,减轻系统总线负担
缺点:硬件成本高,控制逻辑复杂
三总线结构:->系统总线,存储总线,I/O总线
10.总线控制(考题:为什么设置总线判优控制?常见的集中式总线控制几种方法?各有特点?那种速度最快?那种最敏感?)
为什么设置总线判优控制?->解决多部件同时申请总线的使用权分配问题
(1)总线仲裁->当多个部件同时申请时,决定哪个部件使用总线
1)说明:
a)链接到总线的功能模块有主动和被动,CPU可以为主方也可以为从方,存储器一定为从方,总线操作只能有一个主方占用总线.
b)必须有总线仲裁部件决定
c)采用优先级和公平策略仲裁
2)按照总线仲裁电路的设置不同,仲裁方式分为集中式仲裁和分布式仲裁两类。
集中式 ->总线仲裁控制逻辑集中在一处
a)链式查询方式 ->BR-总线请求信号;BG-总线授权信号;BS-总线忙
链式查询的过程:
总线仲裁器接到总线请求后,若BS=0,则总线授权信号串行地从一个I/O接口传送到下一个I/O接口;
假如BG到达的接口无总线请求,则继续往下查询;
假如BG到达的接口有总线请求,BG信号便不再往下查询,该I/O接口就获得了总线控制权,使BS=1。
特点:
判优方法简单,扩充设备容易;
总线请求优先级较低的设备容易被忽略;
总线授权信号串行传送,因设备的差错,容易造成堵塞。
优点:只用很少几根线就能按一定优先次序实现总线仲裁。
缺点:对询问链的电路故障很敏感。
b)计数器定时查询方式->多了一组设备地址线,少了一根总线允许线BG
计数器定时查询过程:
各设备经BR发出请求;
总线仲裁电路判断:当BS=0时,开始计数;
计数值经地址线送各设备:计数值=某设备地址,该设备获总线授权;
当计数从0开始时,谁的地址号越小越优先,当计数值从终止点开始,所有设备优先级相同。
优点:比较灵活。
缺点:线数比较多。
c)独立请求方式->每个设备有独立的BR和BG。 当有总线请求时,有总线总裁内部进行判优裁决。
优点:判优及相应的速度快;优先次序控制灵活。
缺点:设备、电路复杂。
分布式->不需要中央仲裁器,以优先级总裁策略为基础.
11.总线的定时
(1)总线一次信息传送过程:请求总线->总线仲裁->寻址->信息传送->状态返回
同步定时->按照统一的时钟进行同步
异步定时
12.接口的功能
1.设置数据的寄存、缓冲逻辑,以适应CPU与外设之间的速度差异;
2.能够进行数据类型、格式等方面的转换;
3.能够协调CPU和外设两者在信息的类型和电平方面的差异;
4.协调时序差异;
5.地址译码和设备选择功能;
6.设置中断和DMA控制逻辑,以保证在中断和DMA允许的情况下产生中断和DMA请求信号,并在接收到中断和DMA应答之后完成中断处理和DMA传输。
第八章--输入输出系统
1.中断系统->程序安排一条指令启动外设,外设准备,CPU继续执行源程序,准备好后发出中断请求->一次中断只传送一个单位数据,一个字或一个字节
(1)中断与转子的区别
1)转子是程序安排好的,事先安排的,中断多是一些特殊情况,随机的
2)转子程序之间有联系,而中断程序没有联系
3)中断过程复杂,中断多有硬件实现.
(2)中断类型
自愿中断:人为设置
强迫中断
处理方式:
程序中断/简单中断(DMA)
中断源:
可屏蔽中断/不可屏蔽中断
(3)中断过程
1)中断请求
CPU在现行指令周期结束后才查询有无中断请求.
每个中断源必须设置中断请求触发器IQ,保存请求信号.
中断屏蔽触发器IM,反应主机是否允许I/O设备提出中断请求.IM=1说明屏蔽,请求不送CPU
2)排队判优
可由硬件或者软件实现
3)中断响应
条件:
a)一条指令执行完毕
b)IQ=1,IM=0
c)开中断
关中断->保护旧现场(使用堆栈)->建立新现场
为什么关中断?
要保护旧现场.
关中断后外来更高级的中断怎么办?
中断处理时在使用
4)中断处理
开中断->运行中断程序->关中断->恢复旧现场
5)中断返回
(4)多重中断
1)条件:
a)CPU响应中断后,开中断,响应更高级别中断
b)优先级高的中断源才能中断优先级低的中断源
2)中断处理顺序
1->2->3->4,屏蔽字设置?->1的优先级最高,4的最低
1 2 3 4
1 1 1 1 1
2 0 1 1 1
3 0 0 1 1
4 0 0 0 1
(5)中断特点
1)能响应外设的随机请求
2)CPU与外设并行工作(一定程度)
3)对于高速外设,频繁中断会使其效率下降,CPU不及时响应请求会造成信息丢失
2.直接存储器存储方式DMA->内存与外设之间设置DMA
(1)DMA产生的原因:对于高速外设,频繁中断会使其效率下降,CPU不及时响应请求会造成信息丢失.
(2)高速外设采用DMA,高速外设不采用中断的方式.
(3)概念:->内存与外设之间直接传送数据的通路
完全由硬件实现的I/O实现方式.在I/O设备与主存之间建立传送数据的通路,在DMAC的控制下进行数据交换,不需要CPU干预.
(4)基本操作
1)外围设备发出DMA请求
2)CPU响应请求,DMAC接管总线控制
3)DMAC对内存寻址
4)向CPU报告DMA操作结束
(5)DMA与内存交换信息时,此时CPU一直工作,要是CPU请求访内,该如何处理?
1)CPU停机法:DMA优先拥有总线使用权,直至数据传送完毕,CPU才执行访内.->DMA不优先导致信息丢失
特点:控制简单,适用于数据传输率极高的设备.
CPU与内存效率低
2)周期窃取法:DMA优先,窃取1~2个周期,交换1~2个单位的数据,CPU访内
为什么DMA优先?
I/O操作有时间要求,前一个I/O数据必须在下一个I/O数据访内请求到来之前完成,否则造成数据丢失
特点:
实现I/O传送,发挥了CPU与内存的效率,常用
3)交替访存法:系统周期分成两部分:一个给DMA,一个给CPU
特点:不停止源程序的执行,保证DMA完成,一个高效方式,硬件成本高
(6)DMA特点
1)I/O与内存交换信息,不占用CPU,CPU效率高.
2)DMA交换一批数据开始前和开始后,仍要以中断方式进行处理.
3)DMA与中断方式,有区别但是又互相配合.
第九章--外部设备
1.内存->半导体->速度快,容量小
外存->磁性->容量大,速度慢
2.磁盘:最上面的一层和最下面的一层不记录数据.->正反都可以存数据
有效记录面:m-2(m为多少面)
3.磁盘的磁道->最外面为0,最里面的为n->都是同心圆
每一个磁道上有扇区->每个扇区存储512B->最里面的密度最大,最外面的密度最小
4.存取方式:
磁头移动的位置为随机的,磁道顺序存放信息.
5.存储容量
C=n*k*s(n:面数,k:道数/面,s:位数/道)
容量(B)=柱面量*磁头数*扇区数*512
格式化容量:容量(B)/1024
出厂容量:容量(B)/1000
转载请注明出处, O(∩_∩)O谢谢