计算机组成原理例题习题_第1页
计算机组成原理例题习题_第2页
计算机组成原理例题习题_第3页
计算机组成原理例题习题_第4页
计算机组成原理例题习题_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章计算机系统概论第二章运算方法和运算器第三章存储系统第四章指令系统第五章中央处理器第六章总线系统目录【例】用一台40MHz处理机执行标准测试程序,程序所含的混合指令数和每类指令的CPI如表所示,求有效CPI、MIPS速率和程序的执行时间。

【解】:总指令数为:45000+32000+15000+8000=100000条各类指令所占的比例分别是:整数运算为45%,数据传送为32%,浮点操作为15%,控制传送为8%。有效CPI、MIPS速率和程序的执行时间分别计算如下:(1)有效CPI为1×0.45+2×0.32+2×0.15+2×0.08=1.55CPI(2)MIPS速率为40×106/(1.55×106)≈25.8MIPS(3)程序的执行时间为100000×1.55/(40×106)=0.003875s【例】假设浮点数x的二进制存储格式为(41360000)16,求其32位浮点数的十进制值。【解】:将x展开成二进制:

0100,0001,0011,0110,0000,0000,0000,0000

数符:0

阶码:1000,0010

尾数:011,0110,0000,0000,0000,0000

指数e=阶码-127=10000010-01111111=00000011=(3)10

包括隐藏位1的尾数:

1.M=1.01101100000000000000000=1.011011

于是有x=(-1)s×1.M×2e

=+(1.011011)×23=+1011.011=(11.375)10【例】:将十进制数20.59375转换成32位浮点数的二进制格式来存储。【解】:首先分别将整数和分数局部转换成二进制数:20.59375=10100.10011然后移动小数点,使其在第1,2位之间10100.10011=1.010010011×24e=4于是得到:e=E–127S=0,E=4+127=131=1000,0011,M=010010011最后得到32位浮点数的二进制存储格式为01000001101001001100000000000000=(41A4C000)16

【例】设机器字长16位,定点表示,尾数15位,数符1位,问:

(1)定点原码整数表示时,最大正数是多少?最小负数是多少?

(2)定点原码小数表示时,最大正数是多少?最小负数是多少?

【解】

(1)定点原码整数表示

最大正数值=(215-1)10=(+32767)10

0111111111111111

最小负数值=-(215-1)10=(-32767)10

1111111111111111

(2)定点原码小数表示

最大正数值=(1-2-15)10=(+0.111...11)2

最小负数值=-(1-2-15)10=(-0.111..11)2

假设把问题换成补码,那么结果又是什么?即(1)定点补码整数表示时,最大正数是多少?最小负数是多少?

(2)定点补码小数表示时,最大正数是多少?最小负数是多少?【解】

(1)定点补码整数表示

最大正数值=(215-1)10=(+32767)10

0111111111111111

最小负数值=-215=(-32768)10

1000

0000

0000

0000(2)定点补码小数表示

最大正数值=(1-2-15)10=(+0.111...11)2

最小负数值=-1

【解】

[x]补=00.1100

[y]补=00.1000

[x]补

00.1100

+

[y]补

00.1000

01.0100

符号位出现“01〞,表示已溢出,正溢。即结果大于+1【例】x=+0.1100,y=+0.1000,用变形补码求x+y。

【解】

[x]补=11.0100

[y]补=11.1000

[x]补

11.0100

+

[y]补

11.1000

10.1100符号位出现“10〞,表示已溢出,负溢出。即结果小于-1【例】x=-0.1100,y=-0.1000,用变形补码求x+y。

【例】:x=+011,y=+110,变形移码求[x+y]移和[x-y]移,并判断是否溢出。【解】:阶码取3位〔不含符号位〕,其对应的真值范围是:-8~+7[x]移=01011,[y]补=00110,[-y]补=11010[x+y]移=[x]移+[y]补=[x-y]移=[x]移+[-y]补=

01011+0011010001结果上溢。结果正确,为-3。

01011+1101000101【例】设x=+15,y=-13,用带求补器的原码阵列乘法器求出乘积x×y=?〔设最高位为符号位〕【解】

输入数据为:

[x]原=01111

[y]原=11101乘积符号位:xf⊕yf=1

算前求补器的使能控制信号=0,算前求补输出为:

|x|=1111,|y|=1101

1

1

1

1

×)

1

1

0

1

1

1

1

1

0

0

0

0

1

1

1

1

1

1

1

10

11

0

0

0

0

1

1

算后求补器的使能控制信号也为0,算后求补输出为:11000011,加上符号位,最后乘积[x·y]原=111000011

其真值为:x×y=-11000011B=-195【例】

设x=+15,y=-13,用带求补器的补码阵列乘法器求出乘积x·y=?

【解】设最高位为符号位,那么输入数据为:[x]补=01111[y]补=10011符号位单独运算,算前求补级输出为:|x|=1111,|y|=11011111

×)1101

1111

0000

1111

11110

11000011

算后求补级输出为:00111101,最后乘积[x·y]补=100111101其真值为:-11000011B=-195【例】设x=0.1101,y=-0.1011,分别用带求补器的原码阵列乘法器、带求补器的补码阵列乘法器和直接补码阵列乘法器计算x×y。【解】①带求补器的原码阵列乘法器[x]原=0.1101[y]原=1.1011乘积的符号位为:xf⊕yf=0⊕1=1因符号位单独考虑,算前求补器的使能控制信号为0,经算前求补后输出x′=1101,y′=1011,其中x′和y′分别是x和y原码的数值位。因算后求补器的使能控制信号为0,经算后求补后输出为10001111,加上乘积符号位1,得[x×y]原=1.10001111所以x×y=-0.100011111101

×

1011

1101

1101

0000

+1101

10001111【解】②带求补器的补码阵列乘法器[x]补=0.1101[y]补=1.0101乘积的符号位为:xf⊕yf=0⊕1=1因算前求补器的使能控制信号分别为被乘数和乘数的符号位,经算前求补后输出x′=1101,y′=1011,其中x′和y′分别是x和y原码的数值位。1101

×

1011

1101

1101

0000

+1101

10001111因算后求补器的使能控制信号为乘积的符号位,经算后求补后输出为01110001,加上乘积符号位1,得[x×y]补=1.01110001所以x×y=-0.10001111③直接补码阵列乘法器[x]补=0.1101[y]补=1.0101

(0)1101

×(1)0101

(0)1101

(0)0000

(0)1101

(0)0000

+0(1)(1)(0)(1)

.00(1)(1)110001

(1)101110001[x×y]补=1.0111001所以x×y=-0.10001111注意:在这三种阵列运算中,一定要注意运算结果的位数。例如,参与运算的数位都是5位,那么运算结果的位数就应该是10位。【例】设x=101001,y=-111,用原码阵列除法器计算x÷y。

【解】:[x]原=0101001,[y]原=1111商的符号位为:xf⊕yf=0⊕1=1令x′=101001,y′=111,其中x′和y′分别为[x]原和[y]原的数值局部:[x′]补=0101001,[y′]补=0111,[-y′]补=1001

被除数/余数商说明

0101001被除数[x′]补

+[-y′]补

1001第一步减去除数,即+[-y′]补

1110001q0=0

最高位向前产生的进位为0,即商0+[y′]补

0111向右错开1位,加上除数,即+[y′]补

001101q1=1

最高位向前产生的进位为1,即商1+[-y′]补

1001向右错开1位,减去除数,即+[-y′]补

11111q2=0

最高位向前产生的进位为0,即商0+[y′]补

0111向右错开1位,加上除数,即+[y′]补

0110q3=1

最高位向前产生的进位为1,即商1

故得商q=q0q1q2q3=0101,

余数r=r3r4r5r6=0110

所以[x÷y]原=1101,[余数]原=0110其中,余数的符号位与被除数相同即x÷y=-101,余数=110【例】:利用74181和74182器件设计如下三种方案的64位ALU;〔1〕行波CLA;〔2〕两级行波CLA;〔3〕三级CLA。【解】:(1)行波CLA

仅使用74181,用芯片的Cn+4进位输出作为下一级的进位输入Cm,片子内部有先行进位,片与片之间采用串行进位。64位ALU共需要16片74181,运算速度最慢。

〔2〕两级行波CLA需要16片74181和4片74182。每4片74181为一组,使用1片74182,可实现4片74181之间的第二级先行进位。共有四组,组与组之间采用行波进位。速度比〔1〕快。(3)三级CLA如下图:多用一片74182,实现第三级先行进位。此方案速度最快,最低位的进位信号可以直接传送到最高位〔第64位〕。【例】两浮点数x=201×0.1101,y=211×(-0.1010)。假设尾数在计算机中以补码表示,可存储4位尾数,2位保护位,阶码以原码表示,求x+y。【解】:将x,y转换成浮点数据格式

[x]浮

=0001,00.1101, [y]浮

=0011,11.0110步骤1:对阶,阶差为11-01=10,即2,因此将x的尾数右移两位,得 [x]浮

=0011,00.001101步骤2:对尾数求和,得: [x+y]浮

=0011,11.100101步骤3:由于符号位和第一位数相等,不是规格化数,向左规格化,得 [x+y]浮

=0010,11.001010步骤4:截去。 [x+y]浮

=0010,11.0010步骤5:数据无溢出,因此结果为

x+y=210×(-0.1110)【例】设有浮点数x=2-50.0110011,y=23(-0.1110010),阶码用4位移码表示,尾数(含符号位)用8位补码表示。求[xy]浮。要求用补码完成尾数乘法运算,运算结果尾数保存高8位(含符号位),并用尾数低位字长值处理舍入操作。【解】:阶码采用双符号位,尾数补码采用单符号位,那么有

[Mx]补=0.0110011,[My]补=1.0001110,[Ex]移=00011,[Ey]移=01011,[Ey]补=00011,[x]浮=00011,0.0110011,[y]浮=01011,1.0001110(1)求阶码和[Ex+Ey]移=[Ex]移+[Ey]补=00011+00011=00110,值为移码形式-2。(2)尾数乘法运算

可采用补码阵列乘法器实现,即有[Mx]补

[My]补=[0.0110011]补

[1.0001110]补=[1.1010010,1001010]补(3)规格化处理

乘积的尾数符号位与最高数值位符号相同,不是规格化的数,需要左规,阶码变为00101(-3),尾数变为1.0100101,0010100。(4)舍入处理尾数为负数,取尾数高位字长,按舍入规那么,舍去低位字长,故尾数为1.0100101。最终相乘结果为

其真值为x

y=2-3

(-0.1011011)[x

y]浮=00101,1.0100101

【例】设有假设干片256K×8位的SRAM芯片,设CPU的接口信号有地址信号、数据信号、控制信号MREQ#和R/W#。问:

(1)如何构成2048K×32位的存储器?需要多少片RAM芯片?

(2)该存储器需要多少字节地址位?

(3)画出该存储器与CPU连接的结构图。【解】:采用字位扩展的方法。需要32片SRAM芯片。

ramsel73-8译码ramsel2ramsel1ramsel0…A20-18A20-0A17-0OE#MREQ#R/W#CPUD31~D0D31~D0D31~D0D31~D0D31~D0WEACE256Kx84片DWEACE256Kx84片DWEACE256Kx84片DWEACE256Kx84片D存储器设计举例CPU的地址总线16根(A15—A0,A0为低位);双向数据总线8根(D7—D0),控制总线中与主存有关的信号有:MREQ#,R/W#。主存地址空间分配如下:0—8191为系统程序区,由只读存储芯片组成;8192—32767为用户程序区;最后(最大地址)2K地址空间为系统程序工作区。现有如下存储器芯片:EPROM:8K×8位(控制端仅有CS);SRAM:16K×1位,2K×8位,4K×8位,8K×8位。请从上述芯片中选择适当芯片设计该计算机主存储器,画出主存储器逻辑框图,注意画出选片逻辑(可选用门电路及3∶8译码器74LS138)与CPU的连接,说明选哪些存储器芯片,选多少片。【解】:(1)主存地址空间分布如下图。16根地址线寻址——64K地址范围:0000~FFFFH(65535)

根据条件,选定芯片:EPROM:8K×8位1片系统程序区SRAM:8K×8位3片用户程序区2K×8位1片系统程序工作区8K(EPROM)24K(SRAM)30K(空)2K(SRAM)00001FFF20007FFFF800FFFF地址空间分配表(2)连接电路片内寻址:8K芯片——片内13根A12~A02K芯片——片内11根A10~A0片间寻址:前32KA15A14A13译码线

000Y0#001Y1#

010Y2#011Y3#最后2K111加A12A11

11EPROM:0000H~1FFFHSRAM1:2000H~3FFFHSRAM2:4000H~5FFFHSRAM3:6000H~7FFFHSRAM4:F800H~FFFFH【例】某CPU地址总线为A15~A0,数据总线为D7~D0;其主存系统中,地址空间0000H~1FFFH为ROM区域,ROM芯片为8K×8位;从地址4000H开始,用8K×4位的SRAM芯片组成一个24K×8位的RAM区域,假设RAM芯片有WE#和CS#信号控制端。设读/写控制信号为R/W#,访存允许信号为MREQ#,要求:〔1〕给出地址译码方案及各存储芯片地址分配表;〔2〕画出主存与CPU的连接图。【解】:根据题意,需要ROM1片,需要RAM6片〔3组,每组2片〕。其中A12~A0用于片内译码,A15~A13用于片间译码。采用3:8译码器,各存储芯片地址为:ROM:0000H----1FFFHY0#RAM1:4000H----5FFFHY2#RAM2:6000H----7FFFHY3#RAM3:8000H----9FFFHY4#【例】设主存储器容量为256字,字长为32位,模块数m=4,分别用顺序方式和交叉方式进行组织。主存储器的存储周期T=200ns,数据总线宽度为32位,总线传送周期τ=50ns。假设按地址顺序连续读取4个字,问顺序存储器和交叉存储器的带宽各是多少?【解】:顺序存储器和交叉存储器按地址顺序连续读出4个字的信息总量都是:q=32b×4=128b顺序存储器和交叉存储器按地址顺序连续读出4个字所需的时间分别是:t顺=nT=4×200ns=800nst交=T+(n-1)τ=200ns+3×50ns=350ns顺序存储器和交叉存储器的带宽分别是:W顺=q/t顺=128b÷800ns=160Mb/sW交=q/t交=128b÷350ns≈366Mb/s【例】设存储器容量为32字,字长64位,模块数m=4,分别用顺序方式和交叉方式进行组织。存储周期T=200ns,数据总线宽度为64位,总线传送周期τ=50ns。问顺序存储器和交叉存储器的带宽各是多少?【解】顺序存储器和交叉存储器连续读出m=4个字的信息总量都是:q=64位×4=256位顺序存储器和交叉存储器连续读出4个字所需的时间分别是:t2=mT=4×200ns=800ns=8×10-7s;t1=T+(m-1)τ=200ns+3×50ns=350ns=3.5×10-7s顺序存储器和交叉存储器的带宽分别是:W2=q/t2=256÷(8×10-7)=32×107[位/s]

W1=q/t1=256÷(3.5×10-7)=73×107[位/s]

【例】CPU执行一段程序时,Cache完成存取的次数为1900次,主存完成存取的次数为100次,Cache存取周期为50ns,主存存取周期为250ns,求Cache/主存系统的效率和平均访问时间。【解】先求出命中率及倍率:

Cache/主存系统的效率:

平均访问时间:

或【例】一台计算机的主存容量为16M字,Cache容量为64K字,每块的大小为1K个字,主存和Cache之间采用组相联映像,假设每组为16块。请设计在此条件下的主存地址格式和Cache地址格式。

【解】:主存容量16M=224字,Cache容量64K=216字,块的大小1K=210字∵64K/(16×1K)=4∴Cache分为4组。主存分区:16M/64K=28因此主存分为256〔28〕个区。Cache地址格式如下:主存地址格式如下:

组号块号块内地址2位4位10位组号块号块内地址区号8位2位4位10位【例】:主存容量为64MB,虚存容量为4GB,页面大小为16KB,求页表长度?【解】:以字节为单位,:主存容量为64MB=225B,即主存地址为25位;虚存容量为4GB=232B,虚存地址为32位;页面大小为16KB=214B,即页大小为14位;因页表要包含所有虚〔逻辑〕页号,故页表长度为:32-14=18位,即218。虚页号(18位)页地址(14位)虚存容量(32位)【例】:某虚拟存储器共有8个页面,每页为1024个字,实际主存为4096个字,采用页表法进行地址映象。映象表如表所示〔1表示装入〕。【解】:〔1〕页面失效的虚页号:2、3、5、7。〔2〕地址〔逻辑地址〕0,3728,1023,1024。页内位移:0,656,1023,0实地址:3072,无,4095,10241.会发生页面失效的全部虚页号;2.按以下虚地址计算主存实地址:0,3728,1023,1024。

扩展操作码举例【例】设某指令系统,有三类指令,如下图,假设二地址指令有15条,一地址指令62条,那么零地址指令最多有多少条?整个指令系统可以有多少条指令?【分析】二地址指令有15条,那么其未使用的编码还剩下:24-15=1个设没使用的编码为1111,这个编码作为一地址指令操作码的扩展标志,1111XXXXXX

由于A1字段的位数是6位,因此用一个扩展标志1111就可以扩展出26=64种一地址指令的操作码。如果机器只需要62条一地址指令,那么余下的两个编码〔1111111110、1111111111〕都可以作为零地址指令操作码的扩展标志,扩展到一地址指令的A字段,就形成了零地址指令。1111111110

1111111111由于A字段的位数是6位,因此用两个标志位可以扩展出2×26=128种零地址指令的操作码。整个指令系统可以有15+62+128=205条指令。假设指令系统要求设计180条一地址指令,那么二地址指令最多可以有多少条?此时零地址指令最多可以有多少?假设一地址指令180条,那么需要3个扩展标志,那么二地址指令最多可以有24-3=13条,零地址指令最多可以有〔3*26-180〕*26=768条【例】:机器字长为16位,指令格式如下所示,其中OP为操作码,试分析指令格式的特点。

OP

--------

源寄存器

目标寄存器15

9

7

43

0【解】:(1)单字长二地址指令。(2)操作码字段OP可以指定128条指令。(3)源存放器和目标存放器都是通用存放器〔可分别指定16个〕,所以是RR型指令,两个操作数均在存放器中。(4)这种指令结构常用于算术逻辑运算类指令。【例】:一种二地址RS型指令的结构如下所示:

OP—通用寄存器IX偏移量D6位4位1位2位16位其中I为间接寻址标志位,X为寻址模式字段,D为偏移量字段,通过I,X,D的组合,可构成下表所示的寻址方式。请写出6种寻址方式的名称。寻址方式举例寻址方式IX有效地址E算法说明(1)(2)(3)(4)(5)(6)000110000110110011E=DE=(PC)±DE=(R2)±DE=(R3)E=(D)E=(R1)±D

PC为程序计数器R2为变址寄存器

R1为基址寄存器解:〔1〕直接寻址〔6〕基址寻址〔2〕相对地址〔3〕变址寻址〔4〕存放器间接寻址〔5〕间接寻址【例】

设有一台计算机,其指令长度为16位,有一类RS型指令的格式:

其中,OP为操作码,占6位;R为存放器编号,占2位,可访问4个不同的通用存放器;MOD为寻址方式,占2位,与形式地址A一起决定源操作数,规定如下:MOD=00,为立即寻址,A为立即数;MOD=01,为相对寻址,A为位移量;MOD=10,为变址寻址,A为位移量。假定要执行的指令为加法指令,存放在1000H单元中,形式地址A的编码为01H,其中H表示十六进制数。该指令执行前存储器和存放器的存储情况如下图,假定此加法指令的两个源操作数中一个来自于形式地址A或者主存,另一个来自于目的存放器R0,并且加法的结果一定存放在目的存放器R0中。在以下几种情况下,该指令执行后,R0和PC的内容为多少?(1)假设MOD=00,(R0)=;(2)假设MOD=01,(R0)=;(3)假设MOD=10,(R0)=;(PC)=。【解】:(1)假设MOD=00,为立即寻址,那么指令格式中的形式地址局部即为立即数,因此一个源操作数为01H,另一个源操作数为R0的内容0015H,加法指令执行的结果为(R0)=0016H。(2)假设MOD=01,为相对寻址,那么一个源操作数的有效地址E=(PC)+A,在执行加法指令时,PC的值为下一条指令的地址,即(PC)=1001H,由此可以算出这个源操作数的有效地址为E=1001H+01H=1002H,这个操作数为(E)=1150H,另一个源操作数为R0的内容0015H,加法指令执行的结果为(R0)=1165H。(3)假设MOD=10,为变址寻址,那么一个源操作数的有效地址E=(Rx)+A,由此可以算出这个源操作数的有效地址为E=1002H+01H=1003H,这个操作数为(E)=1250H,另一个源操作数为R0的内容0015H,加法指令执行的结果为(R0)=1265H;在执行加法指令时,PC的值为下一条指令的地址,即(PC)=1001H。【例】某微机指令格式如下所示:

15109870OPXD格式中D为位移量,X为寻址方式特征值:X=00,直接寻址;X=01,用变址存放器RI进行变址X=10,用基址存放器RB进行寻址X=11,相对寻址设〔PC〕=2000H,〔RI〕=0150H,(RB)=1889H,请确定如下指令的有效地址:〔1〕4420H(2)2244H(3)730AH(4)3566H(5)6783H【解】:1〕X=00,D=20H,有效地址EA=20H2)X=10,D=44H,有效地址EA=1889H+44H=18CDH3)X=11,D=0AH,有效地址EA=2000H+0AH=200AH4)X=01,D=66H,有效地址EA=0150H+66H=01B6H5)X=11,D=83H,有效地址EA=2000H+FF83H=1F83H【例】设存放器R的值为2000,PC的值为3000,存储器如下图,问在以下寻址方式下,指令访问到的操作数的值为多少?〔1〕存放器直接寻址,R;〔2〕存放器间接寻址,(R);〔3〕直接寻址,2000;〔4〕立即寻址,#2000;〔5〕相对寻址,-2000,〔PC)。【解】〔1〕从存放器R中读取操作数=2000;〔2〕E=2000,即地址为2000的存储单元读取操作数=1000;〔3〕E=2000,即地址为2000的存储单元读取操作数=1000;〔4〕立即数就是要读取的操作数=2000;〔5〕E=1000,即地址为2000的存储单元读取操作数=3000。【例】

假设机器字长16位,主存容量为128K字节,指令字长度为16位或32位,共有99条指令,设计计算机指令格式,要求有直接、立即数、相对、基值、间接、变址六种寻址方式。【解】:由条件,机器字长16位,主存容量128KB/16=64K字,因此MAR=16位,共99条指令,故OP字段占7位。采用单字长和双字长两种指令格式,其中单字长指令用于算术逻辑和I/O类指令,双字长用于访问主存的指令。R2R1OP1598

65320R2XOP1598

65320

D寻址方式由寻址模式X定义如下:X=000直接寻址E=D〔64K〕X=001立即数D=操作数X=010相对寻址E=PC+DPC=16位X=011基值寻址E=Rb+D,Rb=16位X=100间接寻址E=〔D〕X=101变址寻址E=RX+D,RX=10位

OPRiX/p>

其中,OP为操作码,占5位;Ri为通用存放器编号,占3位,用来指定目标空间,机器有独立的变址和基址存放器;X为寻址方式特征码,占2位,与D一起决定源操作数,规定如下:X=00,为立即寻址,D为立即量;X=01,为相对寻址,D为位移量;X=10,为变址寻址,D为位移量;X=11,为基址寻址,D为位移量。假定要执行的指令为加法指令〔OP=1FH〕,存放在3000H单元中。该指令执行前存储器和有关存放器的存储情况如下,其内容用十六进制表示。变址存放器的内容为1000H,基址存放器的内容为2080H。各存放器内容如下:R0=4000H,R1=5000H,R2=6000H,R3=7000H,R4=8000H,R5=9000H,R6=3000H,R7=1080H。【例】:设有一台计算机,其指令长度为16位,指令格式如下:当YY=0F828H,0FA41H,0FBC6H时,分别写出指令执行后,目标存放器和PC的内容。【解】:〔1〕YY=0F828H=1111100000101000X=00,立即寻址;目标存放器为R0,D=28H。执行加法操作后,即〔R0〕+D→R0〔R0〕=4028H〔PC〕=3001H〔2〕YY=0FA41H=1111101001000001X=01,相对寻址;目标存放器为R2,D=1H,〔PC〕=3001H执行完加法操作后,即〔R2〕+〔〔PC〕+D〕→R2〔R2〕=6500H〔PC〕=3001H

OPRiX3〕YY=0FBC6H=1111101111000110X=11,变址寻址;目标存放器为R3,D=6H执行完加法操作后,〔R3〕=7700H〔PC〕=3001H第五章中央处理器【例】:为双总线结构机器的数据通路,IR为指令存放器,PC为程序计数器(具有自增功能),M为主存(受R/W信号控制),AR为地址存放器,DR为数据缓冲存放器,ALU由加、减控制信号决定完成何种操作,控制信号G控制的是一个门电路。另外,线上标注有小圈表示有控制信号,例中yi表示y存放器的输入控制信号,R1o为存放器R1的输出控制信号,未标字符的线为直通线,不受控制。(1)“ADDR2,R0〞指令完成(R0)+(R2)→R0的功能操作,画出其指令周期流程图,假设该指令的地址已放入PC中。并列出相应的微操作控制信号序列。(2)“SUBR1,R3〞指令完成(R3)-(R1)→R3的操作,画出其指令期流程图,并列出相应的微操作控制信号序列。【例】:为双总线结构机器的数据通路,IR为指令存放器,PC为程序计数器(具有自增功能),M为主存(受R/W信号控制),AR为地址存放器,DR为数据缓冲存放器,ALU由加、减控制信号决定完成何种操作,控制信号G控制的是一个门电路。另外,线上标注有小圈表示有控制信号,例中yi表示y存放器的输入控制信号,R1o为存放器R1的输出控制信号,未标字符的线为直通线,不受控制。(1)“ADDR2,R0〞指令完成(R0)+(R2)→R0的功能操作,画出其指令周期流程图,假设该指令的地址已放入PC中。并列出相应的微操作控制信号序列。(2)“SUBR1,R3〞指令完成(R3)-(R1)→R3的操作,画出其指令期流程图,并列出相应的微操作控制信号序列。双总线结构机器的数据通路IRPCARDRR0R1R2R3MXYA总线B总线IRiIRoPCiPCoDRiDRoR0iR0oR3iR3oARiR/WXiYi+-GALU执行:PC→AR相应的微操作控制信号:PCO,G,ARiALUOR0→YR2→XR0+R2→R0R0O,G,YiR2O,G,Xi+,G,R0iPC→ARM→DRDR→IRPCO,G,ARiDRo,G,IRiR/W=RR3→YR1→XR3-R1→R3R3O,G,YiR1O,G,Xi-,G,R3iPC→ARM→DRDR→IRPCO,G,ARiDRo,G,IRiR/W=RADDR2,R0SUBR1,R3思考题假设将指令ADDR2,R0改为ADDR2,(R0),画出相应流程【例】单总线结构机器的数据通路如下图,IR为指令存放器,PC为程序计数器,MAR为主存地址存放器,MDR为主存数据缓冲存放器,R0~Rn-1为n个通用存放器,Y为ALU的输入数据暂存存放器,Z为ALU的结果暂存存放器,SR为状态存放器。(1)“ADDRd,Rs1,Rs2〞指令的功能是将Rs1和Rs2中的数据相加,结果送入Rd中,画出其指令周期流程图。(2)“LOADRd,mem〞指令的功能是执行读存储器数据到Rd,其中mem为内存地址值,画出其指令周期流程图。【例】某机器共有微操作控制信号共有60个,构成5个相斥类的微命令组,各组分别包含4个,7个,8个,14个,27个微命令,测试字段长度为4位,微指令字长为32位。问:〔1〕给出该微指令的格式。〔2〕假设不限定微指令字长,其下地址字段长度同〔1〕相同,每个微命令直接进行控制,那么微指令字长为多少位?〔3〕在〔1〕的条件下,控存容量为多少位?【解】:〔1〕微命令字段长度为:3+3+4+4+5=19位。下地址字段长度为:32-19-4=9位。注意:每组中必须包含一个不发出命令的操作。〔2〕字长为:60+4+9=73位。〔3〕控存容量为29✕32=512✕32=214。下地址字段测试字段字段5字段4字段3字段2字段1操作控制顺序控制3位3位4位4位5位4位9位【例】某处理机的微指令格式中操作控制字段由10个别离的控制字段C0~C9组成,每个字段Ci可激活Ni条控制线组中的某一条,其中Ni的定义为:问:(1)为表示这10个控制字段,微指令格式中的操作控制字段至少需要设计多少位?(2)如果微命令的编码采用直接表示法,那么微指令格式中的操作控制字段需要设计多少位?【解】:(1)因为每个字段中微命令是互斥的,所以微命令的编码采用字段直接译码法,需要的控制位为:3+3+2+4+4+5+3+1+4+5=34〔位〕每个字段Ci要留出一种状态,表示本字段不发出任何有效微命令。(2)如果微命令的编码采用直接表示法,那么在微指令格式的操作控制字段中,每一位表示一个微命令,那么总的微命令个数即为操作控制字段的位数。4+4+3+11+9+16+7+1+8+22=85〔位〕微指令格式中的操作控制字段需要设计85位。【例】设某机有8条微指令I1~I8,每条微指令所包含的有效微命令如表所示。

每条微指令所包含的有效微命令列表

a~j分别对应10种不同性质的微命令信号。假设一条微指令的操作控制字段仅限为8位,请安排微指令的操作控制字段格式。【解】:为了压缩操作控制字段的长度,必须设法把互斥性微命令进行分组,并采用字段译码器译码后产生这些互斥性微命令。从表中可以看出,不存在5个或5个以上的互斥性微命令,即对任何一条微指令而言,这些微命令中最多只有一个有效。经分析发现,在10个微命令中存在多组3个互斥的微命令,列举如下:〔b、f、i〕,〔b、f、j〕,〔b、g、j〕,〔b、i、j〕,〔c、f、j〕,〔d、i、j〕,〔e、f、h〕,〔e、f、j〕,〔f、h、i〕,〔f、i、j〕为了将10个微命令信号压缩成8位来表示,需将6个不同的微命令信号分成两个小组,采用字段直接译码法来产生这些互斥性微命令,剩下的4个微命令那么采用直接表示法来产生相应的微命令。因此微指令的操作控制字段可以有四种不同的格式,如下图:【例】微地址存放器有6位(μA5-μA0),当需要修改其内容时,可通过某一位触发器的强置端S将其置“1〞。现有三种情况:(1)执行“取指〞微指令后,微程序按IR的OP字段(IR3-IR0)进行16路分支;(2)执行条件转移指令微程序时,按进位标志CF的状态进行2路分支;(3)执行控制台指令微程序时,按IR4,IR5的状态进行4路分支。请按多路转移方法设计微地址转移逻辑。【解】按所给设计条件,微程序有三种判别测试,分别为P1,P2,P3。由于修改μA5-μA0内容具有很大灵活性,现分配如下:(1)用P1和IR3-IR0修改μA3-μA0;(2)用P2和CF修改μA0;(3)用P3和IR5,IR4修改μA5,μA4。

另外还要考虑时间因素T4(假设CPU周期最后一个节拍脉冲),故转移逻辑表达式如下:μA5=P3·IR5·T4μA4=P3·IR4·T4μA3=P1·IR3·T4μA2=P1·IR2·T4μA1=P1·IR1·T4μA0=P1·IR0·T4+P2·CF·T4由于从触发器强置端修改,故前5个表达式可用“与非〞门实现,最后一个用“与或非〞门实现。【例】指令流水线有取指〔IF〕、译码〔ID〕、执行〔EX〕、访存〔MEM〕、写回存

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论