计组一命速通
第一章
硬件、软件在逻辑上等价
计算机硬件系统的五大功能部件:运算器、存储器、控制器、输入设备、输出设备
CPU(运算器、控制器);主机(运算器、控制器、内存储器);外设(输入设备、输出设备、外存储器)
冯·诺依曼型计算机:
- 采用
存储程序
工作方式(冯·诺依曼思想的核心) - 按
地址
自动执行 - 采用二进制代码表示数据和指令
五大部件
:包括控制器、运算器、存储器、输入设备、输出设备
第二章
不同进位制数的等值转换:
除基取余;乘基取整
原码、补码、反码、移码
真值,机器数
机器码(原码、补码、反码、移码)
原码
优点:
表示简单,易于同真值之间进行转换,实现乘除运算规则简单;进行加减运算十分麻烦
补码
正数的补码就是正数的本身,负数的补码是原负数加上模
真值0在补码中是唯一
的
符号位既起指示正负号的作用,又参与运算
补码与原码的关系
:正数一样,负数除符号位,取反加一
补码与机器负数的关系
:含符号位,取反加一(不包含-1,-2^n,因为原码中取不到)
优点:
可以将减法运算转换成加法运算
反码
补码的特例,反码的模比补码的模小一个最低位上的一
与原码的关系:
负数除符号位,取反(不加一)
移码
范围:-2^n~2^n-1
与补码的关系:
表示范围相同;代码形式上符号位相反,数值部分相同
移码和补码尾数相同,符号位相反
题目
浮点数
(26.75)10=(11010.11)2 =(+0.1101011*2+101)2
规格化
尾数为非规格化数时,调整阶码,使尾数达到规格化,否则作为机器零处理
表示范围
IEEE754
规则规定了单精度(32)和双精度(64)的基本格式.
规则中,尾数用原码
,指数用移码
基数R=2,基数固定,采用隐含方式来表示它
32位的浮点数:
- S数的符号位,1位,在最高位,“0”表示正数,“1”表示负数
- M是尾数, 23位,在低位部分,采用纯小数表示(原码)
- E是阶码,8位,采用移码表示。移码比较大小方便
- 规格化: 若不对浮点数的表示作出明确规定,同一个浮点数的表示就不是惟一的
- 尾数域最左位(最高有效位)总是1, 故这一位经常不予存储,而认为隐藏在小数点的左边
- 采用这种方式时,将浮点数的指数真值e变成阶码E时,应将指数e加上一个固定的偏移值127(01111111),即E=e+127
十进制数串
校验技术
奇偶校验码
奇校验:使整个校验码中“1”的个数为奇数
偶校验:使整个校验码中“1”的个数为偶数
校验位一般放在末尾
不能检查偶数位错,不能纠错
海明校验码
检一纠一
检二纠一
P5放在最高位即可,也就是H13
补码加减法
补码加法: [X+Y]补 = [X]补 + [Y]补
补码减法: [X-Y]补 = [X]补 -[Y]补= [X]补 + [-Y]补
溢出
正溢出:运算结果大于机器所能表示的最大正数
负溢出:运算结果小于机器所能表示的最小负数
溢出检测
根据两个操作数的符号与结果的符号判别(两个正数相加不可能出现负数)
根据两数相加时产生的进位判别(最高位进位和符号位进位两者相异则溢出)
双符号位判断
Sf1 Sf2 = 00 结果为正,无溢出
Sf1 Sf2 = 01 结果为正溢出
Sf1 Sf2 = 11 结果为负,无溢出
Sf1 Sf2 = 10 结果为负溢出
定点运算器
半加器
Hi=Ai ⊕ Bi
不考虑进位全加器
考虑低位进位Ci-1和向高位的进位Ci
异或门延迟是3T,其他为1T
定点乘法
考试碰到乘法:
有没有写成原码的形式;符号位有没有撇开;数值位的绝对值在做乘法
[x]原=xf.xn-1…x1x0 [y]原=yf.yn-1…y1y0
[x.y]原=(xf ⊕ yf)+(0. xn-1…x1x0).(0. yn-1…y1y0)
符号位撇开单独运算
尾数乘法如下:
设x=0.1101,y=0.1011
0.1101 (x)
× 0.1011 (y)
1101
1101
0000
+ 1101 0.10001111 (z)
阵列乘法器
步骤一:M*N个与门并行产生每个部分乘积项
步骤二:( M-1)*(N)个全加器形成的被加数矩阵完成最终结果
带符号的阵列乘法器(间接法)
算前求补——乘法器——算后求补
补码阵列乘法器(题目是真值)
- 写出真值的补码
- 把补码转成原码
- 符号位单独计算
- 数值位单独计算
- 把符号位和数值位拼起来是一个原码的计算结果
- 把结果转成补码
定点除法
移位
逻辑左移/右移:补零
循环左移/右移:高位补到低位;低位补到高位;
原码算术移位:符号位不变,补零
补码算术移位:单符号位(符号位不变);双符号位(第一符号位不变)
- 左移:浮空位补零
- 右移:移空位补与符号位相同的代码
舍入
0舍1入法(考试中常用):舍去的是1就要向前进一位
恒舍(一定比原来数小)
末位恒置1
查表舍入法(计算机中常用)
定点除法
被除数比除数大,直接溢出
恢复余数的除法
注意一定是补码
第一个上商一定是0,不是有效数值位
左移了几次要恢复
如果最后一次上商为0要恢复回去(说明不够减但还是减了,就需要恢复)
[q]原 = 1.1101
[r]原 = 1.0111 * 2^-4(余数的符号位和被除数相同)
不恢复余数的除法(重点)
加减交替法
当i-1次求商的余数为正时:
上商为1;Ri+1=2Ri-Y(左移,减)
当i-1次求商的余数为负时:
上商为0;Ri+1=2(Ri+Y)-Y=2Ri+Y(左移,加)
并行除法器
浮点数运算
浮点数加减运算
设有两个浮点数x和y,它们分别为
x=2^Ex·Mx
y=2^Ey·My
其中Ex和Ey分别为数x和y的阶码,Mx和My为数x和y的尾数。两浮点数进行加法和减法的运算规则是x±y=(Mx^(2Ex-Ey)±My)2^Ey,设Ex<=Ey
运算步骤
0 操作数的检查,看有无简化操作的可能
比较阶码大小并对阶:
小阶向大阶对齐
- 若△E=0,表示两数阶码相等,即Ex=Ey;若△E>0,表示Ex>Ey;若△E<0,表示Ex>Ey
- 当Ex≠Ey 时,要
移动尾数
以改变Ex或Ey,使之相等
尾数进行加或减运算
结果规格化并进行舍入处理
- 左规:尾数需要左移才能满足规格化条件
- 右规:尾数需要右移才能满足规格化条件
浮点数乘除运算
- 0操作数检查
- 阶码加减操作
- 尾数乘除操作
- 结果规格化和舍入处理
浮点数的阶码运算(移码的运算规则)
[X+Y]移=[X]移+[Y]补
[X-Y]移=[X]移-[Y]补=[X]移+[-Y]补
移码采用双符号位,为了对溢出进行判断
01 为正 00 为负
10 上溢 11 下溢
浮点除法运算
- 预置;尾数调整,使得 |被除数|<|除数|
- 求阶差
- 尾数相除
第三章
存储器概述
分类
按存储介质
分类:磁芯存储器,半导体存储器,磁表面存储器,光存储器
按存取方式
分类:随机存取存储器(RAM) ,顺序存取存储器(SAM),半顺序存取存储器(直接存取存储器DAM)
按读写功能
分类:RAM(双极型/MOS),ROM(MROM/PROM/EPROM/EEPROM)
按信息的可保存性
分类:易失性存储器,非易失性存储器
按存储器系统中的作用
分类:辅存(外存),主存(内存),缓存(高速缓冲存储器),控制存储器
内存的编址单元
- 字节存储单元:存放一个字节(8位)的单元,相应的地址称为字节地址。
- 字存储单元:存放一个机器字的存储单元,相应的单元地址叫字地址。
- 编址单元相同,主存容量越大,地址码越长;主存容量相同,编址单位越小,地址码越长
- 内存64MB,按字节编址或字(机器字长为16位)编址,求地址范围?(字节编址:0~2^26-1,A:26b;B:8b)
性能指标
存储容量:指一个存储器中可以容纳的存储单元总数。存储容量越大,能存储的信息就越多。
存取时间(存储器访问时间):指一次读/写操作命令发出到该操作完成。
存储周期:指连续启动两次读/写操作所需间隔的最小时间。通常,存储周期略大于存取时间,其时间单位为ns。
存储器带宽:单位时间里存储器所存取的信息量,通常以位/秒或字节/秒做度量单位。
半导体存储器
SRAM
静态读写存储器(SRAM):存取速度快
动态读写存储器(DRAM):存储容量大
按4位一个单元编址,总共有64个单元(64x4b)-> A:6 D:4(注意不要混淆)
地址和数据要稳定,在使能的情况下
DRAM
DRAM 1024行,刷新周期8ms,8ms/1024行=7.8(跟单元无关,按行)
SRAM和DRAM的区别
SRAM | DRAM | |
---|---|---|
结构 | 复杂 | 简单 |
容量 | 小 | 大 |
体积 | 大 | 小 |
速度 | 快 | 慢 |
价格 | 高 | 低 |
应用 | Cache | 内存 |
芯片拓展
位扩展
利用1K×4位的SRAM芯片,设计一个存储容量为1K×8位的SRAM存储器
解:所需芯片数量=(1K×8)/(1K×4)=2片
字扩展
利用16K×8位的DRAM芯片,设计64K×8位的DRAM存储器(字扩展)
解:所需芯片数d=(64K×8)/(16K×8)=4(片)
地址分配
综合
某半导体存储器,总容量4KB。其中固化区(只读)2KB,选用EPROM芯片2716(2Kx8/片);工作区2KB,选用SRAM芯片2114 (1Kx4/片)。地址总线A15~A0(低),双向数据总线D7~D0
(1)计算芯片数
ROM区: 2Kx8 1片2716
RAM区:位扩展 2片1Kx4 ;字扩展 2组1Kx8
4片2114
(2)地址分配与片选逻辑
(3)连接方式
例题:现有如下存储芯片:2K×4的ROM 、8K×4的ROM 、4K×4的RAM。若用它们组成容量为16KB的存储器,前4KB为ROM,后12KB为RAM,CPU的地址总线为16位。
(1)各种存储芯片分别用多少片?
(2)各个芯片的地址如何分配?
(3)正确选择译码器及门电路,并画出相应的逻辑结构图。
2片2K × 4 位扩展 2K × 8; 2组2K × 8 字扩展 4K × 8;4
2片4K × 4 位扩展 4K × 8; 3 组4K × 8 字扩展 12K × 8; 6
并行存储器
双端口:空间上的并行,资源的重复
多模块:时间上的并行,时间的重叠,流水
无冲突读写控制,有冲突读写控制(书本P87,88的两张表)
双端口存储器

异步时序图
如果是同步的话,要有时间约束(比如脉冲信号)
第一张图应该是有冲突的时序图
多模块交叉存储器
一个由若干个模块组成的主存储器是线性编址的。这些地址在各模块中如何安排,有两种方式:一种是顺序方式
,一种是交叉方式
顺序的没有并行性
通常在一个存储器周期内,n个存储体必须分时启动,各个存储体的启动间隔为τ,T为一个字的存取周期,则 n ≥ T /τ (n为交叉存取度)
设存储器容量为32字,字长64位,模块数m=4,分别用顺序方式和交叉方式进行组织。存储周期T=200ns,数据总线宽度为64位,总线传送周期=50ns。若连续读出4个字,问顺序存储器和交叉存储器的带宽各是多少?
解:顺序存储器和交叉存储器连续读出m=4个字的信息总量都是:
q=64b×4=256b
顺序存储器和交叉存储器连续读出4个字所需的时间分别是:
t2=mT=4×200ns=800ns=8×10-7s
t1=T+(m-1)t=200ns+3*50ns=350ns=35×10-7s
顺序存储器和交叉存储器的带宽分别是:
W2=q/t2=256b÷(8×10-7)s=320Mb/s
W1=q/t1=256b÷(35×10-7)s=730Mb/s
Cache
问题:主存存取速度远低于CPU工作速度
解决方法:CPU和主存间设置小容量的高速缓冲存储器(Cache) ,存放主存信息的副本
目的:减少访存次数
,加快运行速度
地址映像(重点)
命中率
CPU执行一段程序时,cache完成存取的次数为1900次,主存完成存取的次数为100次,已知cache存取周期为50ns,主存存取周期为250ns,求cache/主存系统的效率和平均访问时间。
命中率
:h=Nc/(Nc+Nm)=1900/(1900+100)=0.95Cache/主存系统的平均访问时间
:ta=h×tc+(1-h)tm=0.95×50+0.05×250=60访问效率
:e=tc/ta=50/60=83.3%
直接映像
以Cache大小分组,一次性复制一块
全相联映像
优点:冲突概率小,Cache的利用高
缺点:比较器难实现,需要一个访问速度很快代价高的相联存储器
应用场合:适用于小容量的Cache
M 2048块 512B
C 16块 512B
CPU 连续访问1024B,重复访问两遍,一开始C为空,求命中率
2046/2048
组相联映像
标记是8位
主存—Cache层次的存储器,以字编址(1字=4字节)。主存容量为4MB,Cache容量64KB,主存和Cache以相同大小分块(行),每块(行)大小512B。设计一个4路组相联映像(即Cache每组4个块)的Cache组织,问:
1)写出Cache地址字段中Cache组号、块(行)号分别需要几位表示,Cache标记(tag)需要几位表示?
每块512B,512B/4B=128个字(字编址),故块内地址为7位(2^7)
Cache共分64KB /512B=2^7个块,每4块为一组,2^7 /4= 2^5个组,故cache组号为5位
主存器共分4MB/512B= 2^13块,主存以cache组数分组,可分2^13/2^5=28个组, caches标记(tag)用于指出该块来自于主存哪一个组,因此caches标记(tag) 为8位
2)假设Cache初态为空,CPU依次从主存第0,1,2…199个单元读出200个字(主存一次读出一个字),问命中率是多少?如果主存访问时间是Cache访问时间的5倍,问访问效率是多少?
每块包含128个字,因此200个字在主存的第0块和第1块,在该映射方式下,除了第0个单元和第128个单元未命中外,其余均命中。故命中率为198/200=99%
e=1/(h+(1-h)r)=1/(5-4h)=96.15%
3)主存—Cache层次的存储器,CPU对Cache的写入更改了Cache的内容,如何与主存内容保持一致?
全写法
CPU与Cache之间的数据传送是以字为单位
主存与Cache之间的数据传送是以块为单位
替换算法
最不经常使用算法LFU
:被访问的行计数器增加1,换值小的行,不能反映近期cache的访问情况,近期最少使用算法LRU
:近期使用最少的页面先调出,被访问的行计数器置0,其他的计数器增加1
,换值大的行,符合cache的工作原理
设cache有1、2、3、4共4个块,a、b、c、d等为主存中的块,访问顺序一次如下:a、b、c、d、b、b、c、c、d、d、a ,下次若要再访问e块(全相联映像)。问,采用LFU和LRU算法替换结果是不是相同?
替换a;替换b
读写策略
指令系统
- 宏指令:由若干条机器指令组成的软件指令,它属于软件
- 机器指令:介于微指令与宏指令之间,通常简称为指令,每一条指令可完成一个独立的算术运算或逻辑运算操作
- 微指令:微程序级的命令,它属于硬件
复杂指令系统计算机,简称CISC
。但是如此庞大的指令系统不但使计算机的研制周期变长,难以保证正确性,不易调试维护,而且由于采用了大量使用频率很低的复杂指令而造成硬件资源浪费
精简指令系统计算机:简称RISC
,人们又提出了便于VLSI技术实现的精简指令系统计算机
为什么会出现CISC到RISC的转变
- 2/8规则
- 控制器设计难度下降
对指令系统的要求
完备性
:完备性是指指令系统直接提供的指令丰富、功能齐全、使用方便有效性
:有效性是指利用该指令系统所编写的程序能够高效率地运行。高效率主要表现在程序占据存储空间小、执行速度快规整性
:规整性包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性兼容性
:系列机各机种之间具有相同的基本结构和共同的基本指令集,因而指令系统是兼容的,即各机种上基本软件可以通用
指令格式
影响计算机指令格式的因素
- 机器的字长
- 存储器的容量
- 指令的功能
指令能反映以下信息
- 做什么操作
- 如果需要操作数,从哪里取
- 结果送哪里
- 下一条指令从哪里取
地址码
三地址
PC存放的是下一条指令
的地址
二地址
一地址
零地址
操作码
- 固定长度
- 优点:指令规整,译码简单
- 缺点:信息的冗余极大,使程序的总长度增加
- 可变长度
寻址方式
顺序方式(PC)
跳跃方式
隐含寻址
- 指令中隐含着操作数的地址
- 如某些运算,隐含了累加器AC作为源和目的寄存器
立即寻址
- 指令直接给出
操作数
- 这样的操作数被称为
立即数
特点:在取指令时,
操作码和操作数被同时取出
,不必再次访问存储器,从而提高了指令的执行速度但是,因为操作数是指令的一部分,不能被修改;而且对于定长指令格式,
操作数的大小将受到指令长度的限制
,所以这种寻址方式灵活性最差通常用于给某一寄存器或主存单元赋初值,或者用于提供一个常数
直接寻址
- 指令中地址码字段给出操作数的有效地址EA
- EA=A,S=(EA)
操作数地址是不能修改的
,又叫做绝对寻址方式- 另外,在指令的执行过程中,为了取得操作数,必须进行访存操作,降低了指令的执行速度
间接寻址
- 间接寻址意味着指令的地址码部分给出的地址A不是操作数的地址,而是
操作数地址的地址
(间址单元) - EA=(A),S=(EA)=((A))
- 特点:因为操作数的有效地址在主存储器中,可以被灵活的修改而不必修改指令,从而使间接寻址要比直接寻址灵活得多
- 但是,间接寻址在指令执行过程中至少需要两次访问主存储器才能取出操作数,严重降低了指令执行的速度
某机字长为16位,主存容量为64K字,指令格式为单字长单地址,共有64条指令。试说明:
(1)若只采用直接寻址方式,指令能访问多少主存单元?
(2)为扩展指令的寻址范围,可采用直接/间接寻址方式,若只增加一位直接/间接标志,指令可寻址范围为多少?指令直接寻址的范围为多少?(1)1K
(2)64K,512
寄存器寻址
- 指令的地址码给出CPU内某一通用寄存器的编号,指令的操作数存放在相应的寄存器中
- EA=Ri, S=(Ri)
- 由于寄存器在CPU的内部,指令在执行时从寄存器中取操作数比访问主存要快得多
- 由于寄存器的数量较少,因此寄存器编号所占位数也较少,可以有效缩短指令的地址码字段的长度
寄存器间接寻址
- 指令的地址码给出某通用寄存器编号,该寄存器内放操作数的地址,根据该地址到内存找到操作数
- EA=(Ri), S=((Ri))
相对寻址
- 指令的地址码给出相对的位移量D,程序计数器PC提供基准地址,两者相加后作为操作数的有效地址
- EA=(PC)+D,S = ((PC)+D)
基址寻址
- 基址寻址:指令的地址码部分给出偏移量D,而基准地址放在基址寄存器Rb中,最后操作数的有效地址仍然是由基准地址A与偏移量D相加而成,即:EA=(Rb)+D
- 基址寄存器的位数可以设置得很长,从而可以在较大的存储空间中寻址
变址寻址
- 变址寻址:指令的地址码部分给出的基准地址A与CPU内特定的变址寄存器Rx中的内容相加,以形成操作数的有效地址,即:EA=A+(Rx)
数组访问是变址寻址
段寻址方式(x)
堆栈寻址(x)
某16位机器所使用的指令格式和寻址方式如下所示,该机有两个20位基址寄存器,四个16位变址寄存器,十六个16位通用寄存器。指令汇编格式中的S(源),D(目标)都是通用寄存器,M是主存中的一个单元。三种指令的操作码分别是MOV(OP)=(A)H,STO(OP)=(1B)H,LAD(OP)=(3C)H。MOV是传送指令,STO为存数指令,LAD为取数指令。要求:
(1)分析三种指令的指令格式与寻址方式特点。
(2)CPU完成哪一种操作所花时间最短?哪一种操作所花时间最长?第二种指令的执行时间有时会等于第三种指令的执行时间吗?
(3)下列情况下每个十六进制指令字分别代表什么操作?其中如果有编码不正确,如何改正才能成为合法指令?
答:
第五章
CPU的功能和组成
- 指令控制(程序的顺序控制)
- 操作控制(一条指令有若干操作信号实现)
- 时间控制(指令各个操作实施时间的定时)
- 数据加工(算术运算和逻辑运算)
(1)中央处理器CPU=运算器+控制器
(2)控制器
控制器的主要功能:
- 指令的获取
- 指令的译码或测试,并产生相应的操作控制信号
- 各个操作实施时间的定时
- 控制数据流动方向
控制器的组成:程序计数器、指令寄存器、指令译码器、 时序发生器、操作控制器等
CPU的主要寄存器
- 通用寄存器:累加寄存器(AC),R0-R3(程序员可见)
- 暂存器(程序员不可见)
- 地址缓冲寄存器(AR)、数据缓冲寄存器(DR)
- 指令寄存器(IR)
- 程序计数器(PC)
- 程序状态寄存器(PSW)
因为只有一组总线,不可能同时送出两个数据,因此需要暂存器(ALU没有存储功能)
程序计数器PC(Programming Counter)
- 用来存放正在执行的指令的地址或接着将要执行的下一条指令的地址
- 顺序执行时,每执行一条指令,PC的值应加1
- 转移类指令将转移目标地址送往PC ,可实现程序转移
指令寄存器IR(Instruction Register)
- 用来存放从存储器中取出的待执行的指令
- 在执行该指令的过程中,指令寄存器的内容不允许发生变化,以保证实现指令的全部功能
程序状态字寄存器(PSW)
指令译码器ID(Instruction Decoder)
- 指令中的操作码经译码后才能识别出是一条怎样的指令
- 译码器经过对指令进行分析和解释,产生相应的控制信号
地址形成部件
- 根据指令的不同寻址方式,用来形成操作数的有效地址
- 指令流向的控制,即下条指令地址的形成控制
时序产生器
- 机器周期、工作节拍、脉冲及启停控制线路
- 由脉冲源产生一定频率的脉冲信号作为整个机器的时钟脉冲
微操作信号发生器
- 根据指令部件提供的操作信号、时序部件提供的时序信号、被控制功能部件所反馈的状态及条件综合形成真正控制各部件工作的微操作信号
时序产生器
时序产生器:提供定时和时序信号
时序产生器的作用:
- CPU中的控制器用它指挥机器的工作
- CPU可以用时序信号/周期信息来辨认从内存中取出的是指令(取指)还是数据(执行)
- 一个CPU周期中时钟脉冲对CPU的动作有严格的约束
- 操作控制器发出的各种信号是时间(时序信号)和空间(部件操作信号)的函数
三级时序系统
机器周期:指令执行过程中
相对独立
的阶段节拍(时钟周期):组成机器周期的时间区间
时钟脉冲:时序系统的基本定时信号
节拍—脉冲二级体制
控制器的控制方式
同步控制方式:各个操作由统一的时序信号进行同步控制
- 完全统一的机器周期执行各种不同的指令
- 采用不定长机器周期(延长机器周期)
- 中央控制与局部控制的结合
异步控制方式:无统一周期、节拍,各个操作间采用应答方式衔接
联合控制方式:功能部件内部采用同步方式,在功能部件之间采用异步方式
操作控制器
根据微操作信号发生器
的组成方式不同,控制器可分为:
组合逻辑型(硬布线控制器 ):组合逻辑控制器,微操作信号发生器由门电路组成
存储逻辑型(微程序控制器):微程序控制器,把微操作信号代码化,存入控制存储器中
组合逻辑与存储逻辑结合型:PLA控制器
指令周期
指令周期:指取指令、分析指令到执行完该指令所需的全部时间
机器周期:通常把一条指令周期划分为若干个机器周期,每个机器周期完成一个基本操作
- 不同的指令,可能包含不同数目的机器周期
机器周期的划分
(1)取指周期FT
(2)源周期ST
(3)目的周期DT
(4)执行周期ET
(5)中断周期IT
(6)DMA传送周期DMAT
MOV
取指
- 程序计数器PC中装入第一条指令地址101(八进制)
- PC的内容被放到指令地址总线ABUS(I)上,对指存进行译码,并启动读命令
- 从101号地址读出的MOV指令通过指令总线IBUS装入指令寄存器IR
- 程序计数器内容加1,变成102,为取下一条指令做好准备
- 指令寄存器中的操作码(OP)被译码
- CPU识别出是MOV指令,至此,取指周期即告结束
执行
- 操作控制器(OC)送出控制信号到通用寄存器,选择R1(10)作源寄存器,选择R0作目标寄存器
- OC送出控制信号到ALU,指定ALU做传送操作
- OC送出控制信号,打开ALU输出三态门,将ALU输出送到数据总线DBUS上。注意,任何时候DBUS上只能有一个数据
- OC送出控制信号,将DBUS上的数据打入到数据缓冲寄存器DR(10)
- OC送出控制信号,将DR中的数据10打入到目标寄存器R0,R0的内容由00变为10。至此,MOV指令执行结束
LAD
执行
- 操作控制器OC发出控制命令打开IR输出三态门,将指令中的直接地址码6放到数据总线DBUS上
- OC发出操作命令,将地址码6装入数存地址寄存器AR
- OC发出读命令,将数存6号单元中的数100读出到DBUS上
- OC发出命令,将DBUS上的数据100装入缓冲寄存器DR
- OC发出命令,将DR中的数100装入通用寄存器R1,原来R1中的数10被冲掉。至此,LAD指令执行周期结束
ADD
执行
- 操作控制器OC送出控制命令到通用寄存器,选择R1做源寄存器,R2做目标寄存器
- OC 送出控制命令到ALU,指定ALU做R1(100)和R2(20)的加法操作
- OC送出控制命令,打开ALU输出三态门,运算结果120放到DBUS上
- OC送出控制命令,将DBUS上数据打入缓冲寄存器DR;ALU产生的进位信号保存状态字寄存器在PSW中
- OC送出控制命令,将DR(120)装入R2,R2中原来的内容20被冲掉。至此ADD指令执行周期结束
STO
执行
- 操作控制器OC送出操作命令到通用寄存器,选择(R3)=30做数据存储器的地址单元
- OC发出操作命令,打开通用寄存器输出三态门(不经ALU以节省时间),将地址30放到DBUS上
- OC发出操作命令,将地址30打入AR,并进行数存地址译码
- OC发出操作命令到通用寄存器,选择(R2)=120,作为数存的写入数据
- OC发出操作命令,打开通用寄存器输出三态门,将数据120放到DBUS上
- OC发出操作命令,将数据120写入数存30号单元,它原先的数据40被冲掉。至此,STO指令执行周期结束
JMP
执行
- OC发生操作控制命令,打开指令寄存器IR的输出三态门,将IR中的地址码101发送到DBUS上
- CC发出操作控制命令,将DBUS上的地址码101打入到程序计数器PC中,PC中的原先内容106被更换。于是下一条指令不是从106号单元取出,而是转移到101号单元取出。至此JMP指令执行周期结束
方框图
- 指令系统设计(模型机的五指令系统)
- 方框——按CPU周期
- 方框内内容——
数据通路
操作或控制操作 - 菱形符号——判别或测试
- ~——公操作,即一条指令执行完毕以后的一些操作,如中断处理,DMA处理等(取指令也可认为是公操作)
微程序控制器
- 将微操作序列代码化,存放于
控制存储器
中 - 执行指令时,依次读取微指令,产生控制信号
- 微命令:控制部件向执行部件发出的各种控制命令叫作微命令,它是构成控制序列的
最小单位
例如:打开或关闭某个控制门的电位信号、某个寄存器的打入脉冲等
微命令是控制计算机各部件完成某个基本微操作的命令
- 微操作:是微命令的操作过程
微命令和微操作是一一对应的
微命令是微操作的控制信号,微操作是微命令的操作过程
微操作是执行部件中最基本的操作
互斥的微操作,是指不能同时或不能在同一个节拍内并行执行的微操作。可以编码
相容的微操作,是指能够同时或在同一个节拍内并行执行的微操作。必须各占一位
- 微指令:把在同一CPU周期内并行执行的微操作控制信息,存储在控制存储器里,称为一条微指令
它是微命令的组合,微指令存储在控制存储器的一个单元中
操作控制字段,又称微操作码字段,用以产生某一步操作所需的各个微操作控制信号
顺序控制字段,又称微地址码字段,用以控制产生下一条要执行的微指令地址
- 16位的1表示发出LDAR命令,将PC的值放到AR上,准备从主存读; 13位的1表示发出存储器读命令RD信号;14位的1表示发出LDDR信号,将从内存中读出的指令内容放到DR上;15位的1表示发出LDIR命令,将DR上的指令打入指令寄存器IR中;17位的1表示发出PC+1信号,准备取下一条指令
- P1P2=10,表示进行P1测试,假定测试条件为IR中的操作码字段,即用操作码字段(本例中值为1010)作为下一条微指令地址,因此第二条微指令地址修改为1010