为什么没有3核cpu9位cpu?

科普第9篇——为什么32位CPU不能支持大于4GB内存?_宫崎骏吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:405,479贴子:
科普第9篇——为什么32位CPU不能支持大于4GB内存?
打算组台台式当服务器 ...
1866频率? 2400频率?
都搬出来吧,超级无敌饼...
有多少人和我一样,发...
正在用ntsetup装
电脑开不了机,风扇全部...
刚从win10换回win7。注...
其实这个问题就是错的,32位是可以访问4GB以上内存的,通过一种叫做PAE(物理地址扩展,Physical Address Extension)的技术。之所以不能支持是因为的市场策略问题(服务器版的就支持PAE)。这个问题其实应该问“为什么32位不能直接支持大于4GB的内存?”(其实这个问题也不正确,看完下面就知道了。)
要解释这个问题,必须首先说明,什么是“32位”。首先,位(比特,bit)这个概念,再说一遍,就是指二进制数的位数。具体可以去看《科普第3篇——2、8、10、16》。里有很多,有储存指令的指令寄存器,有储存数据的数据寄存器,有储存地址的地址寄存器,还有既可以储存数据又可以储存地址的通用寄存器等等。的作用是储存的所需要的或生成的数据的。寄存器的大小通常不大,前面说的32位,其实就是寄存器的大小。早期的计算机甚至有更小的,比如16bit 甚至8bit更小(但都是2的倍数,二进制嘛)。8bit=1B,8比特1,所以现在的的就有32/8=4B,这么小,貌似储存不了多少数据,但是其实能表示的数已经很多了。32位二进制数,能表示的整数就是0 ~ 232(0~4,294,967,296),或者加上正负号的话是-(216-1) ~ 216(-6)(为什么要负数要减1呢?因为有一个数是表示0的)。表示浮点数(这里可以简单理解为就是小数)的话因就是负数 -3.28860e38 ~ -1.81707e-45,正数 1.81707e-45 ~ 3.28860e38。(什么?看不懂这种表示方法?这是科学计数法的另一种写法,-3.28860e38就是-3.2)。浮点数是把32bit的分成三部分,一部分表示整个数的正负号(1bit),一部分表示科学计数法后面的指数(8bit),一部分表示前面的尾数(23bit)。32位对于数学计算来说确实不少,而且的处理速度很快,很短的时间内就可以进行很多次计算,所以看来是足够了,但是实际处理的数据量很大,虽然CPU处理得过来,但是却放不下,所以我们需要外部的存储空间来存放这些东西,这就是内存的作用了。但是内存那么大,要知道从那么大的内存的什么地方取数据,就必须给内存的空间编地址。而这个地址,是储存在的中的,所以32位CPU的内存地址也只有32位二进制数来表示。每个地址对应着内存的8bit、也就是一的空间,所以32位二进制数就能表示232个一字节的空间,也就是4,294,967,296B,按照1024B=1KB,1024KB=1MB,1024MB=1GB换算一下,不就是4GB吗!(其实换算可以更简单点,因为B、KB、MB、GB之间都是相差210的,所以B和GB之间就相差210×210×210=230,232/230=22=4)可是,地址不光是给内存用的,但计算机的其他部件也需要地址,所以虽然能编址4GB的空间,但实际用到内存上的只有3.2GB,这也就是为什么4GB内存在Windows上只能使用3.2GB的原因了。PAE就是通过一种转换方式,来表示更多的内存地址的(比如一个地址可以住两个人,再通过名字来区分这两人)。PAE可以使用到64GB的内存。而现在基本普及的64位,也没有什么特别的,就是加大了的大小而已,所以能编址的空间就是:264B=264/230=234GB,很惊人吧!再继续1024GB=1TB,1024TB=1PB,1024PB=1EB,换算下来就是234GB/230=24=16EB!外加。。。估计我们是等不到64位的物理地址被用完的那一天了!
30分钟了,应该完了吧。
MARK。。。。
我是不是走错吧了?
太赞!!讲的好清楚阿!!!
科普辛苦了~
贴吧热议榜
使用签名档&&
保存至快速回贴[转载]计算机组成原理课后参考答案
1.2& 如何理解计算机系统的层次结构?
答:从计算机系统的层次结构来看,它通常可有五个以上的层次,在每一层次(级)上都能进行程序设计。由下至上可排序为:第一级微程序设计级,微指令由硬件直接执行;第二级传统机器级,用微程序解释机器指令;第三级操作系统级,一般用机器语言程序解释作业控制语句;第四级汇编语言机器级,这一级由汇编程序支持和执行;第五级高级语言机器级,采用高级语言,由各种高级语言编译程序支持和执行。还可以有第六级应用语言机器级,采用各种面向问题的应用语言。
1.3& 说明高级语言、汇编语言和机器语言的差别及联系。
答:机器语言由代码0、1组成,是计算机能直接识别的一种语言。汇编语言是面向机器的语言,它用一些特殊的符号表示指令。高级语言是面向用户的语言,它是一种接近于人们使用习惯的语言,直观、通用,与具体机器无关。
它们之间的联系:汇编语言和高级语言编写的源程序必须通过汇编或编译成机器语言程序才能在机器上运行。
1.4& 如何理解计算机组成和计算机体系结构?
答:计算机体系结构是指程序员所见到的计算机系统的属性,即概念性的结构与功能特性。通常是指用机器语言编程的程序员(也包括汇编语言程序设计者和汇编程序设计者)所看到的传统机器的属性,包括指令集、数据类型、存储器寻址技术、I/O机理等,大都属于抽象的属性。
计算机组成是指如何实现计算机体系结构所体现的属性,它包含了许多对程序员来说是透明的(即程序员不知道的)硬件细节。例如一台机器是否具备乘法指令是一个结构问题,而实现乘法指令采用什么方式是一个组成问题。
1.9& 画出主机框图,分别以存数指令“STA M”和加法指令“ADD
M”(M均为主存地址)为例,在图中按序标出完成该指令(包括取指阶段)的信息流程。假设主存容量为256M&32位,在指令字长、存储字长、机器字长相等的条件下,指出图中各寄存器的位数。
(1)存数指令STA M的信息流程为(图略):
取指令:PC→MAR→M→MDR→IR
分析指令:OP(IR)→CU
执行指令:Ad(IR)→MAR→M,ACC→MDR→M
(2)加法指令ADD M的信息流程为(图略):
取指令:PC→MAR→M→MDR→IR
分析指令:OP(IR)→CU
执行指令:Ad(IR)→MAR→M→MDR→X,ACC→ALU,同时X→ALU,
&&&&&&&&&&&&&
(3)由主存容量为256M&32位得228=256M,故MAR为28位,MDR为32位。
因指令字长=存储字长=机器字长,则IR、ACC、MQ、X均为32位。
第三章& 系统总线
什么是总线?总线传输有何特点?为了减轻总线的负载,总线上的部件都应具备什么特点?
答:总线是连接各个部件的信息传输线,是各个部件共享的传输介质。
总线上信息传输的特点:某一时刻只允许有一个部件向总线发送信息,但多个部件可以同时从总线上接收相同的信息。
以CPU片内总线为例,在每个需要将信息送至总线的寄存器输出端接三态门,由三态门控制端控制什么时刻由哪个寄存器输出。当控制端无效时,寄存器和总线之间呈高阻状态。
为什么要设置总线判优控制?常见的集中式总线控制有几种,各有何特点,哪种方式响应时间最快,哪种方式对电路最敏感?
答:由于总线上连接着多个部件,而总线传输的特点就是在某一时刻,只允许有一个部件向总线发送信息,如果有两个以上的部件同时向总线发送信息,势必导致信号冲突传输无效,故需用判优来解决。
常见的集中式总线控制有链式查询方式、计数器定时方式和独立请求方式三种。
链式查询方式的特点:只需很少几根线就能按一定优先次序实现总线控制,且容易扩充设备,但对电路故障很敏感。
计数器定时方式特点:计数可以从“0”开始,也可以从中止点开始,初始值还可以由程序来设置,这就可以方便地改变优先次序,增加系统的灵活性。
独立请求方式特点:响应时间快,优先次序控制灵活,但控制线数量多,总线控制更复杂。
三种控制方式中,独立请求方式响应时间最快,链式查询方式对电路最敏感。
3.6& 试比较同步通信和异步通信。
答:同步通信和异步通信的主要区别是前者有公共时钟,总线上的所有设备按统一的时序统一的传输周期进行信息传输,通信双方按约定好的时序联络;后者没有公共时钟,没有固定的传输周期,采用应答方式通信,具体的联络方式有不互锁、半互锁和全互锁三种。不互锁方式通信双方没有相互制约关系;半互锁方式通信双方有简单的制约关系;全互锁方式通信双方有完全的制约关系。其中全互锁通信可靠性最高。
3.15&&&&&&
在一个32位的总线系统中,总线的时钟频率为66MHz,假设总线最短传输周期为4个时钟周期,试计算总线的最大数据传输率。若想提高数据传输率,可采取什么措施?
答:总线的最大数据传输率为:
4B/(4&T)=1B&f=66&106Hz≈63MBps
若想提高数据传输率,可采用以下两种措施:外部数据总线宽度改为64位;时钟频率提高到132 MHz。
3.16&&&&&&
在异步串行传送系统中,字符格式为:1个起始位、8个数据位、1个校验位、2个终止位。若要求每秒传送120个字符,试求传送的波特率和比特率。
答:根据题目给出的字符格式,一个字符包含1+8+1+2=12位
故波特率为120&12=1440bps
比特率为& 1440&(8/12)=960bps
某机字长为32位,其存储容量是64KB,按字编址其寻址范围是多少?若主存以字节编址,试画出主存字地址和字节地址的分配情况。
答:按字编址的寻址范围是16K。分配情况可参考书P73图4.6a所示。
一个8K&8位的动态RAM芯片,其内部结构排列成256&256形式,存取周期为0.1ms。试问采用集中刷新、分散刷新及异步刷新三种方式的刷新间隔各为多少?
答:(1)集中刷新间隔为:2ms(共20000个存取周期)
(2)分散刷新间隔为:256个存取周期(但存取周期为0.2ms),即51.2ms。
(3)异步刷新间隔为:2ms/256=7.8ms,即每隔7.8ms刷新一行,但对每行来说,刷新间隔仍为2ms。
4.14 某8位微型计算机地址码为18位,若使用4K&4位的RAM芯片组成模块板结构的存储器,试问:
(1)该机所允许的最大主存空间是多少?
(2)若每个模块板为32K&8位,共需几个模块板?
(3)每个模块板内共有几片RAM芯片?
(4)共有多少片RAM?
(5)CPU如何选择各模块板?
答:(1)主存容量为218=256KB
(2)共需模块板数为:256/32=8
(3)每个模块板内芯片数为:32&8/(4&4)=16片
(4)共需RAM芯片数为:8&16=128片
(5)18根地址线分配如下:A11A0作为4K&4位的RAM芯片本身的地址线;A14~A12作为模块板内片选地址,采用3-8译码器共8个输出,每个输出选2片4K&4位的RAM芯片;A17~A15作为模块板的地址,同样采用3-8译码器,每个输出分别选8个模块板中的任一块。
4.15 设CPU共有16根地址线,8根数据线,并用 (低电平有效)作访存控制信号,
作读/写命令信号(高电平为读,低电平为写)。现有这些存储芯片:ROM(2K&8位,4K&4位,8K&8位),RAM(1K&4位,2K&8位,4K&8位)及74138译码器和其他门电路(门电路自定)。试从上述规格中选用合适的芯片,画出CPU和存储芯片的连接图。要求如下:
(1)最小4K地址为系统程序区,地址范围为用户程序区。
(2)指出选用的存储芯片类型及数量。
(3)详细画出片选逻辑。
答:(1)写出对应的二进制地址码。
ROM区地址范围为(4K&8位):
因而可选2片4K&4位的ROM芯片。
RAM区地址范围为:
RAM容量为12K&8位,因此可选3片4K&8位的RAM芯片。
(2)分配地址线:
A11~A0接4K&4位的ROM芯片的地址线和4K&8位的RAM芯片的地址线。
(3)确定片选信号:
A14A13A12连3-8译码器的C、B、A端,A15连译码器的G2A非使能端,
连3-8译码器的G2B非使能端,译码器的G1使能端接+5V电源。译码器的Y0输出端同时接2片ROM芯片片选端;Y1、Y2、Y3输出端分别接3片RAM芯片片选端。
(4)CPU和存储芯片的连接图:略
4.23 设CPU共有16根地址线,8根数据线,并用 作为访问存储器或I/O的控制信号(高电平为访存,低电平为访I/O),
(低电平有效)为写命令,
(低电平有效)为读命令。设计一个容量为64KB的采用低位交叉编址的8体并行结构存储器。画出CPU和存储芯片(芯片容量自定)的连接图,并写出图中每个存储芯片的地址范围(用十六进制数表示)。
答:(1)确定芯片数量:8片8K&8位的RAM芯片
(2)写出对应的二进制地址码。
第0片:即、0010、…、FFF8H
第1片:即、0011、…、FFF9H
第2片:即A、0012、…、FFFAH
第3片:即B、0013、…、FFFBH
第4片:即C、0014、…、FFFCH
第5片:即D、0015、…、FFFDH
第6片:即E、0016、…、FFFEH
第7片:即F、0017、…、FFFFH
(3)分配地址线
A15~A3接8K&8位的RAM芯片的地址线。
(3)确定片选信号:
A2A1A0连3-8译码器的C、B、A端,
通过非门连译码器的G2A非和G2B非使能端,译码器的G1使能端接+5V电源。
(4)CPU和存储芯片的连接图:略
4.28 设主存容量为256K字,Cache容量为2K字,块长为4。
(1)设计Cache地址格式,Cache中可装入多少块数据?
(2)在直接映射方式下,设计主存地址格式。
(3)在四路组相联映射方式下,设计主存地址格式。
(4)在全相联映射方式下,设计主存地址格式。
(5)若存储字长为32位,存储器按字节寻址,写出上述三种映射方式下主存的地址格式。
答:(1)根据Cache容量为2K字=211,得Cache字地址为11位。根据块长为4,且访存地址为字地址,得字块内地址为2位,即b=2,且Cache共有=29块,即c=9。所以Cache地址格式为:
Cache块号&&&&&&&&&&&
字块内地址
(2)根据主存容量为256K字==218,得主存字地址为18位。在直接映射方式下,主存字块标记为18-11=7,故主存地址格式为:
主存字块标记&&&&&&&&&&
Cache字块地址&&&&
字块内地址
(3)根据四路组相联的条件,一组内有4块,得Cache共分512/4=128=2q组,即q=7,主存字块标记为18-q-b=18-7-2=9位,其地址格式为:
主存字块标记&&&&&&&&&&
组地址&&&&&&&&&&
&& 字块内地址
(4)在全相联映射方式下,主存字块标记为18-b=18-2=16位,其地址格式为:
主存字块标记&&&&&&
字块内地址
主存字块标记&&&&&&&&&&&&&
Cache字块地址&&&&
字地址&&&&&&&&&&&&&&&
(5)若存储字长为32位,存储器按字节寻址,上述三种映射方式下主存的地址格式分别为:
直接映射:
主存字块标记&&&&&&&&&&&&&
组地址&&&&&&&&&&&&&
字地址&&&&&&&&&&&&&&&
四路组相联映射:
&主存字块标记&&&&&&&&&&&
字地址&&&&&&&&
& 字节地址
全相联映射:
假设CPU执行某段程序时共访问Cache命中4800次,访问主存200次,已知Cache的存取周期是30ns,主存的存取周期是150ns,求Cache的命中率以及Cache-主存系统的平均访问时间和效率,试问该系统的性能提高了多少?
答:(1)Cache的命中率为:4800/()=96%
(2)Cache-主存系统的平均访问时间为:0.96&30+(1-0.96)&150=34.8ns
(3)Cache-主存系统的效率为:e=访问Cache的时间/平均访问时间=30/34.8=86.2%
(4)性能提高为:150/34.8-1=3.31倍
设主存容量为1MB,采用直接映射方式的Cache容量为16KB,块长为4,每字32位。试问主存地址为ABCDEH的存储单元在Cache中的什么位置?
答:根据主存容量为1MB,得主存地址20位,Cache容量为16KB=214B,得Cache地址14位。因为采用直接映射方式,主存地址的低14位就是映射后的Cache地址,因而主存地址为ABCDEH的存储单元在Cache中的地址为10,即3CDEH。
设某机主存容量为4MB,Cache容量为16KB,每字块有8个字,每字32位,设计一个四路组相联映射的Cache组织。
(1)画出主存地址字段中各段的位数
(2)设Cache的初态为空,CPU依次从主存第0,1,2,…,89号单元读出90个字(主存一次读出一个字),并重复按此次序读8次,问命中率是多少?
(3)若Cache的速度是主存的6倍,试问有Cache和无Cache相比,速度约提高多少倍?
答:(1)根据每个字块有8个字,每个字32位,得主存地址字段中字块内地址字段为5位,其中3位为字地址,2位为字节地址。
根据Cache容量为16KB=214B,字块大小为25B,得Cache共有29块,故c=9。根据四路组相联映射2r=4,得r=2,则q=c-r=9-2=7位。
主存字块标记&&&&&&&&&&
组地址&&&&&&&&&&
&& 字块内地址
根据主存容量4MB=222B,得主存地址字段中主存字块标记为22-7-5=10位。主存地址字段各段格式为:
(2)由于每个字块中有8个字,而且初态Cache为空,因此CPU读第0号单元时,未命中,必须访问主存,并将该字所在的块调入Cache第0组中的任一块内,但接着CPU读1~7号单元时均命中。同理,CPU读第8、16、…、88号单元时均未命中。可见CPU在连续读90字中共有12次未命中,而后7次循环读90个字全部命中(因为总共只有13个块,而Cache共有128组),命中率为:
(90&8-12)/90&8=98.3%
(3)有Cache速度提高:[6t&90&8/(t&(720-12)+6t&12)]-1=4.54
第五章& 输入输出系统
5.11 简述I/O接口的功能和基本组成。
答:(1)I/O接口的功能有:选址、传送命令、传送数据和反映设备状态。
(2)I/O接口的基本组成:设备选择电路、命令寄存器和命令译码器、数据缓冲寄存器、设备状态标记触发器。
5.16 在什么条件和什么时间,CPU可以响应I/O的中断请求?
答:(1)CPU响应I/O设备提出中断请求的条件是:必须满足CPU中的允许中断触发器EINT为“1”;I/O本身有请求又未被屏蔽;经排队后又被选中。
(2)CPU响应中断的时间一定是在每条指令执行阶段的结束时刻。
5.28 CPU对DMA请求和中断请求的响应时间是否相同?为什么?
答:(1)不相同,响应中断请求是在每条指令执行周期结束的时刻,而响应DMA请求是在存取周期结束的时刻。
(2)因为中断方式是程序切换,而程序又是由指令组成,所以必须在一条指令执行完毕才能响应中断请求。而且CPU只有在每条指令执行周期的结束时刻才发出查询信号,以获取中断请求信号,此时若条件满足,便能响应中断请求。DMA请求是由DMA接口根据设备的工作状况向CPU申请占用总线,此时只要总线未被CPU占用,即可立即响应DMA请求;若总线正被CPU占用,则必须等待该存取周期结束时,CPU才交出总线的使用权。
假设某设备向CPU传送信息的最高频率是40KHz,而相应的中断处理程序执行时间为40ms,试问该外设是否可用程序中断方式与主机交换信息,为什么?
答:根据题意,该设备每隔1/40K=25ms向CPU传送一次信息,如果采用程序中断方式,需40ms(&25ms)才能处理一次数据,从而造成数据丢失,所以不能用程序中断方式与主机交换信息。
5.33 试从下面7个方面比较程序查询、程序中断和DMA三种方式的综合性能。
传送数据基本单位
CPU与I/O串行
CPU与I/O并行
传输与主程序串行
CPU与I/O并行
传输与主程序串行
介于查询和DMA之间
高速成批传输
当十六进制数9BH和FFH分别表示为原码、补码、反码、移码和无符号数时,所对应的十进制数各为多少(设机器数采用1位符号位)?
答:(1)9BH对应表示为原码、补码、反码、移码和无符号数时的十进制数分别为:-27、-101、-100、+27、155
(2)FFH对应表示为原码、补码、反码、移码和无符号数时的十进制数分别为:-127、-1、-0、+127、255
6.12设浮点数格式为:阶码5位(含1位阶符),尾数11位(含1位数符)。写出 所对应的机器数。要求如下:
(1)阶码和尾数均为原码。
(2)阶码和尾数均为补码。
(3)阶码为移码,尾数为补码。
=0..-1=0.&2-0001
(1)阶码和尾数均为原码表示的浮点数为:1 0110000
(2)阶码和尾数均为补码表示的浮点数为:1 0110000
(3)阶码为移码,尾数为补码的浮点数为:0 0110000
6.16设机器数字长为16位,写出下列各种情况下它能表示的数的范围。设机器数采用1位符号位,答案均用十进制数表示。
(1)无符号数
(2)原码表示的定点小数
(3)补码表示的定点小数
(4)补码表示的定点整数
(5)原码表示的定点整数
(6)浮点数的格式为:阶码6位(含1位阶符),尾数10位(含1位数符)。分别写出正数和负数的表示范围。
(7)浮点数格式同(6),机器数采用补码规格化形式,分别写出其对应的正数和负数的范围。
答:(1)无符号数:0~65535
(2)原码表示的定点小数:-~+
(3)补码表示的定点小数:-1~+
(4)原码表示的定点整数:-3
(5)补码表示的定点整数:-3
(6)浮点数(负数):-231&(1-2-9)~
&&&&&&&&&&&&&
浮点数(正数):2-31&2-9~231&(1-2-9)
(7)补码表示的浮点规格化负数:-231~
-2-32&(2-1+2-9)
&&&&&&&&&&&&&
补码表示的浮点规格化正数:2-32&2-1~231&(1-2-9)
6.17设机器数字长为8位(含1位符号位),对下列各机器数进行算术左移一位、两位,算术右移一位、两位,讨论结果是否正确。
(1)[x]原=0.0011010,算术左移一位:0.0110100,两位:0.1101000;算术右移一位:0.0001101,两位:0.0000110(低位丢1,影响精度)
(2)[x]原=1.1101000,算术左移一位:1.1010000(高位丢1,结果出错),两位:1.0100000(高位丢1,结果出错);算术右移一位:1.1110100,两位:1.1111010
(3)[x]原=1.0011001,算术左移一位:1.0110010,两位:1.1100100;算术右移一位:1.1001100(低位丢1,影响精度),两位:1.1100110
(4)[x]补=0.1010100,算术左移一位:0.0101000(高位丢1,结果出错),两位:0.1010000;算术右移一位:0.0101010,两位:0.0010101
(5)[x]补=1.1101000,算术左移一位:1.1010000,两位:1.0100000;算术右移一位:1.1110100,两位:1.1111010
(6)[x]补=1.0011001,算术左移一位:1.0110010(高位丢0,结果出错),两位:1.1100100(高位丢0,结果出错);算术右移一位:1.1001100(低位丢1,影响精度),两位:1.1100110
(7)[x]反=1.0101111,算术左移一位:1.1011111(高位丢0,结果出错),两位:1.0111111;算术右移一位:1.1010111,两位:1.1101011
(8)[x]反=1.1101000,算术左移一位:1.1010001,两位:1.0100011;算术右移一位:1.1110100(低位丢0,影响精度),两位:1.1111010(低位丢0,影响精度)
(9)[x]反=1.0011001,算术左移一位:1.0110011(高位丢0,结果出错),两位:1.1100111(高位丢0,结果出错);算术右移一位:1.1001100,两位:1.1100110(低位丢0,影响精度)
6.19设机器数字长为8位(含1位符号位),用补码运算规则计算下列各题。
(1)A= ,B= - ,求A+B。
(2)A= ,B= - ,求A-B。
答:(1)A= =0.001001,B= - =
-0.01101,[A]补=0.0010010,[B]补=1.1001100,
[A+B] 补=0...1011110,A+B=
-0.0100010= -
(2)A= =0.10011,B= - = -0.0010001
[A]补=0.1001100,[B]补=1.1101111,[-B]补=0.0010001
[A-B] 补=0...1011101,A-B=
0.1011101=
6.20用原码一位乘、两位乘和补码一位乘计算x&y。
(2)x= -0.010111,y= -0.010101
(4)x=0.11011,y= -0.11101
答:(2)x= -0.010111,y=
-0.010101,x*=0.010111,y*=0.010101
① 原码一位乘
部分积初态Z0=0
部分积和乘数右移1位
部分积和乘数右移1位
部分积和乘数右移1位
+0,直接右移
部分积和乘数右移1位
+0,直接右移1位,乘法结束
∵XS&AYS=1&A1=0,∴[X&Y]原=0.,X&Y=
原码两位乘:[X*]补=0.010111,[-X*]补=1.101001,[2X*]补=0.101110
000.000000
000.010111
部分积初态Z0=0,Cj=0
000.010111
000.000101
000.010111
部分积和乘数算术右移2位
+ X*,Cj=0
000.011100
000.000111
000.010111
部分积和乘数算术右移2位
000.011110
部分积和乘数算术右移2位
∵XS&AYS=1&A1=0,∴[X&Y]原=0.,X&Y=
补码一位乘:[X]补=1.101001,[-X]补=0.010111,[Y]补=1.101011
00.000000
00.010111
部分积初态Z0=0
00.010111
00.001011
00.000101
11.101001
部分积和乘数算术右移1位
+0,直接算术右移1位
11.101110
11.110111
00.010111
部分积和乘数算术右移1位
00.001110
00.000111
11.101001
部分积和乘数算术右移1位
11.110000
11.111000
00.000111
部分积和乘数算术右移1位
00.001111
00.000111
部分积和乘数算术右移1位
加0,最后1步不移位,乘法结束
&[X&Y]补=0.,∴X&Y=
(4)x=0.11011,y= -0.11101,,x*=0.11011,y*=0.11101
① 原码一位乘
部分积初态Z0=0
+0,右移1位
右移1位,乘法结束
∵XS&AYS=0&A1=1,∴[X&Y]原=1.,X&Y=
原码两位乘:[X*]补=0.11011,[-X*]补=1.00101,[2X*]补=1.10110
000.00000
000.11011
部分积初态Z0=0,Cj=0
000.11011
000.00110
111.00101
[-X*]补,Cj=1
111.01011
111.11010
001.10110
+2X*,Cj=0
001.10000
000.11000
右移1位,乘法结束
∵XS&AYS=0&A1=1,∴[X&Y]原=1.,X&Y=
补码一位乘:[X]补=0.11011,[-X]补=1.00101,[Y]补=1.00011
部分积初态Z0=0
+0,直接右移1位
+0,直接右移1位
+0,直接右移1位
最后一步不移位
∵[X&Y]补=11.,∴X&Y= -0.
6.21用原码加减交替法和补码加减交替法计算x&y。
(1)x= 0.100111,y= 0.101011
答:(1)原码加减交替法:X*= 0.100111,Y*=
0.101011,[X*]补=00.100111,[Y*]补=00.101011,[-Y*]补=11.010101
被除数(余数)
00.100111
11.010101
11.111100
11.111000
00.101011
余数为负,上商0
00.100011
01.000110
11.010101
余数为正,上商1
00.011011
00.110110
11.010101
余数为正,上商1
00.001011
00.010110
11.010101
余数为正,上商1
11.101011
11.010110
00.101011
余数为负,上商0
00.000001
00.000010
11.010101
余数为正,上商1
11.010111
00.101011
&& 0111010
余数为负,上商0
恢复正余数,+[Y*]补
00.000010
∵XS&AYS=0&A0=0,[X&Y]原=0.111010,∴X&Y=0.111010,余数R=0.-6
(2)补码加减交替法:
[X]补=00.100111,[Y]补=00.101011,[-Y]补=11.010101
被除数(余数)
00.100111
11.010101
同号,+[-Y]补
11.111100
11.111000
00.101011
余数与除数异号,上商0
00.100011
01.000110
11.010101
余数与除数同号,上商1
00.011011
00.110110
11.010101
余数与除数同号,上商1
00.001011
00.010110
11.010101
余数与除数同号,上商1
11.101011
11.010110
00.101011
余数与除数异号,上商0
00.000001
00.000010
余数与除数同号,上商1
左移1位,末位恒置“1”
∵XS&AYS=0&A0=0,[X&Y]补=0.111011,∴X&Y=0.111011,余数R=0.-6
6.22设机器数字长为16位(含1位符号位),若一次移位需1&s,一次加法需1&s,试问原码一位乘、补码一位乘、原码加减交替法和补码加减交替法最多各需多少时间?
答:(1)原码一位乘加15次,移位15次,共30&s。
(2)原码两位乘加8次,移位8次(最后一次移一位),共16&s。
(3)补码一位乘加16次,移位15次,共31&s。
(4)原码加减交替法加16次,移位15次,共31&s。
(5)补码加减交替法(采用末位恒置“1”法)加15次,移位15次,共30&s。
6.27假设阶码取3位,尾数取6位(均不包括符号位),计算下列各题。
(1) [25& ]+[ 24&(- )]
答:X=25& =25&0.1011,Y=&(-
)=24&(-0.1001)
假设两数在计算机中以补码表示,并采用双符号位,可表示为
运算步骤为:
[ΔE]补=[EX]补+[-EY]补=00,101+11,100=00,001,即ΔE
=1,Y的阶码小,应使MY右移1位,EY加1,得&&&&&&&&&&&
[Y]浮=00 101 11 )
(2)尾数求和
00..)=00.)
(3)规格化处理
结果的符号位00与最高数值位0相同,需左归。尾数左移一位,阶码减1,得
[X+Y]浮=00
(4)舍入处理
采用0舍1入法处理得尾数为00.110100
(5)判溢出
阶码符号位为00,不溢出,故得最终结果为:
[X+Y]浮=00
某指令系统字长为16位,地址码取4位,试提出一种方案,使该指令系统有8条三地址指令、16条二地址指令、100条一地址指令。
答:固定操作码为4位。
8条三地址指令操作码为:(剩下共8个扩展窗口)
16条二地址指令操作码为:00 1111
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
(剩下11 个扩展窗口)
100条一地址指令操作码为:0~1
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
设指令字长为16位,采用扩展操作码技术,每个操作数的地址为6位。如果定义了13条二地址指令,试问还可安排多少条一地址指令?
答:指令字长为16位,每个操作数的地址为6位,固定操作码为4位,最多可定义16条二地址指令。现共定义了13条二地址指令,故剩下3个扩展窗口,最多可安排一地址指令条数为:
3&26=192条
某机指令字长16位,每个操作数的地址码为6位,设操作码长度固定,指令分为零地址、一地址和二地址三种格式。若零地址指令有M种,一地址指令有N种,则二地址指令最多有几种?若操作码位数可变,则二地址指令最多允许有几种?
答:(1)若操作码长度固定,则操作码位数为4位,故二地址指令条数为:16-M-N
(2)若操作码位数可变,假设二地址指令有X种,则:
&&&&&&&&&&&&&
M=[(16-X)&26-N]&26
&&&&&&&&&&&&&
∴X=16-N&2-6-M&2-12
7.12 画出“SUB
@R1”指令对操作数的寻址及减法过程的流程图。设被减数和结果存于ACC中,@表示间接寻址,R1寄存器的内容为2074H。
答:流程图如下所示
设相对寻址的转移指令占两个字节,第一字节是操作码,第二字节是相对位移量(用补码表示),假设当前转移指令第一字节所在地址为2000H,且CPU每取出一个字节便自动完成(PC)+1→PC的操作。试问当执行“JMP
* +8”和“JMP * -9”指令时,转移指令第二字节的内容各为多少?
答:(1)根据汇编语言指令JMP *
+8,即要求转移后的目标地址为08H,但因为CPU取出该指令后PC值已修改为2002H,故转移指令第二字节的内容应为+6(十进制),写成补码为06H。
(2)同理,执行“JMP * -9”指令时,要求转移指令第二字节的内容应为-11(十进制),写成补码为:F5H
7.16某机主存容量为4M&16位,且存储字长等于指令字长,若该机指令系统可完成108种操作。操作码位数固定,且具有直接、间接、变址、基址、相对、立即六种寻址方式,试回答以下问题。
(1)画出一地址指令格式并指出各字段的作用;
(2)该指令直接寻址的最大范围;
(3)一次间接寻址和多次间接寻址的寻址范围;
(4)立即数的范围(十进制表示)
(5)相对寻址的位移量(十进制表示)
(6)上述六种寻址方式的指令中哪一种执行时间最短,哪一种最长,为什么?哪一种便于程序浮动,哪一种最适合处理数组问题?
(7)如何修改指令格式,使指令的寻址范围可扩大到4M?
(8)为使一条转移指令能转移到主存的任一位置,可采取什么措施?简要说明之。
答:(1)一地址指令格式为:
OP&&&&&&&&&&&&&&&&&&&&&&&
M&&&&&&&&&&&&&&&&&&&&&&&&
其中OP为操作码字段,共7位,可完成108种操作;
M为寻址方式特征位,共3位,可反映6种寻址方式;&&&&&&
A形式地址,共16-7-3-6位。
(2)直接寻址的最大范围为:26=64
(3)由于存储字长为16位,故一次间址的寻址范围为216。若多次间址,需用存储字的最高位来区别是否继续间接寻址,故寻址范围为215。
(4)立即数的范围是-32~+31(有符号数)或0~63(无符号数)
(5)相对寻址的位移量为-32~+31
(6)上述六种寻址方式中,因立即数由指令直接给出,故立即寻址的指令执行时间最短。间接寻址在指令的执行阶段要多次访存,故执行时间最长。
OP&&&&&&&&&&&&&&&&&&&&&&&
M&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&
(7)若指令的格式改为双字指令,即
其中OP 7位,M 3位,A1 6位,A2
16位,即指令的地址码字段共16+6=22位,则指令的直接寻址范围可扩大到4M。
(8)为使一条转移指令能转移到主存的任一位置,寻址范围需达到4M,除了采用(7)所示的格式外,还可配置22位的基址寄存器或22位的变址寄存器,使EA=(BR)+A或EA=(IX)
+A,便可访问4M存储空间。还可以通过16位的基址寄存器左移6位再和形式地址相加,也可达到同样的效果。
7.18设某机器共能完成78种操作,若指令字长16位,试问一地址格式的指令地址码可取几位?若想使指令的寻址范围扩大到216,可采用什么办法?举出三种以上不同的例子加以说明。
答:根据78种操作,可求出操作码位数为7位,则单地址格式的指令地址码占16-7=
9位。直接寻址范围为29=512。若想使指令的寻址范围扩大到216,可采用以下三种寻址方法:
(1)若指令字长等于存储字长均为16位,则采用间接寻址可使寻址范围扩大到216,因为间址时(设非多次间址)从存储单元中取出的有效地址为16位。
(2)采用变址寻址,并设变址寄存器RX为16位,则有效地址EA=(RX)+A(形式地址),即可使寻址范围扩大到216。
(3)采用基址寻址,并设基址寄存器RB为16位,则有效地址EA=(RB)+A(形式地址),即可使寻址范围扩大到216。
CPU内有32个32位的通用寄存器,设计一种能容纳64种操作的指令系统。假设指令字长等于机器字长,试回答以下问题。
(1)如果主存可直接或间接寻址,采用寄存器-存储器型指令,能直接寻址的最大存储空间是多少?画出指令格式并说明各字段的含义。
(2)在满足(1)的前提下,如果采用通用寄存器作基址寄存器,则上述寄存器-存储器型指令的指令格式有何特点?画出指令格式并指出这类指令可访问多大的存储空间?
答:(1)根据题意指令格式如下:
OP&&&&&&&&&&&&&&&&
&R&&&&&&&&&&&&&&&&&&&&&&&
其中OP占6位,为操作码,可容纳64种操作;I占1位,为直接/间接寻址方式(I=1为间址,I=0为直接寻址);R占5位,为32个通用寄存器编号;A占20位,为形式地址。
这种指令格式能直接寻址的存储空间为220=1M。
(2)根据题意,保留(1)格式的OP,I,R字段,增加B字段,用以指出哪个寄存器为基址寄存器。此时基址寻址的特征隐含在OP中。其指令格式如下:
OP&&&&&&&&&&&&&&&&
I&&&&&&&&&&
B&&&&&&&&&&&&&&&&&&&&&&&&&
其中OP占6位,为操作码,对应64种操作;I占1位,为直接/间接寻址方式(I=1为间址,I=0为直接寻址);R占5位,为32个通用寄存器编号;B占5位,为基址寄存器编号;A占15位,为形式地址。
因为通用寄存器32位,用它作基址寄存器后,有效地址EA等于基址寄存器内容加上形式地址,可得32位得有效地址,故寻址范围可达232=4G。
CPU的结构和功能
8.2什么是指令周期?指令周期是否有一个固定值?为什么?
答:指令周期是CPU每取出并执行一条指令所需的全部时间,也即CPU完成一条指令的时间。由于各种指令操作功能不同,因此各种指令的指令周期是不同的,指令周期的长短主要和指令在执行阶段的访存次数和执行阶段所需要完成的操作有关。
8.8 什么是指令流水?画出指令二级流水和四级流水的示意图,它们中的哪个更能提高处理器速度,为什么?
答:指令流水就是改变各条指令按顺序串行执行的规则,使机器在执行上一条指令的同时,取出下一条指令。其示意图分别如下:
把指令周期划分得更细,使更多的指令在同一时间内执行,更能提高处理器速度,故四级流水比二级流水的处理速度高。
8.11今有四级流水线,分别完成取指(IF)、译码并取数(ID)、执行(EX)、写结果(WR)四个步骤。假设完成各步操作的时间依次为100ns、100ns、70ns、50ns。
(1)流水线的时钟周期应取何值?
(2)若相邻的指令发生数据相关,那么第二条指令安排推迟多少时间才能不发生错误?
(3)若相邻两指令发生数据相关,而不推迟第二条指令的执行,可采取什么措施?
答:(1)流水线的时钟周期应取100ns。
(2)若相邻的指令发生数据相关,需使第二条指令暂停执行,直到前面指令产生结果后,再执行第二条指令,因此至少要延迟两个时钟周期。
(3)若想不推迟第二条指令执行,在硬件技术上可采取旁路技术,即设置直接传送数据的通路。
8.25某机有五个中断源L0、L1、L2、L3、L4,按中断响应的优先次序由高向低排序为L0→L1→L2→L3→L4,现要求中断处理次序改为L1→L4→L2→L0→L3,写出各中断源的屏蔽字。
L0&&&&&&&&&
L1&&&&&&&&&
L2&&&&&&&&
L3&&&&&&&&
控制单元的功能
9.1设CPU内有这些部件:PC、IR、MAR、MDR、AC、CU。
(1)写出取指周期的全部微操作。
(2)写出减法指令“SUB X”、取数指令“LDA X”、存数指令“STA
X”(X均为主存地址)在执行阶段所需的全部微操作。
(3)当上述指令为间接寻址时,写出执行这些指令所需的全部微操作。
(4)写出无条件转移指令“JMP Y”和结果溢出则转指令“BAO,Y”在执行阶段所需的全部微操作。
答:参考P382例9.1。
9.3什么是指令周期、机器周期和时钟周期?三者有何关系?
答:指令周期是CPU每取出并执行一条指令所需的全部时间,也即CPU完成一条指令的时间。机器周期是所有指令执行过程中的一个基准时间,通常以存取周期作为机器周期。时钟周期是机器主频的倒数,也可称为节拍,它是控制计算机操作的最小单位时间。
一个指令周期包含若干个机器周期,一个机器周期又包含若干个时钟周期,每个指令周期内的机器周期数可以不等,每个机器周期的时钟周期数也可以不等。
9.4能不能说CPU的主频越快,计算机的运行速度就越快?为什么?
答:不能说CPU的主频越快,计算机的运行速度就越快。因为机器的速度不仅与主频有关,还与机器周期中所含的时钟周期数以及指令周期中所含的机器周期数有关。同样主频的机器,由于机器周期所含时钟周期数不同,机器的速度也不同。机器周期中所含时钟周期数少的机器,速度更快。
此外,机器的速度还和其他很多因素有关,如主存的速度、机器是否配有Cache、总线的数据传输率、硬盘的速度以及机器是否采用流水技术等。
9.5设机器A的主频为8MHz,机器周期含4个时钟周期,且该机的平均指令执行速度是0.4MIPS,试求该机的平均指令周期和机器周期。每个指令周期包含几个机器周期?如果机器B的主频为12MHhz,且机器周期也包含4个时钟周期,试问B机的平均指令执行速度为多少MIPS?
答:根据机器A的主频为8MHz,得时钟周期为1/8MHz=0.125ms
(1)机器周期=0.125ms&4=0.5ms
(2)平均指令执行时间是1/0.4MIPS=2.5ms
(3)每个指令周期含2.5/0.5=5个机器周期
(4)B机的平均指令执行速度为0.4&12/8=0.6MIPS
9.6设某计算机的CPU主频为8MHz,每个机器周期平均含2个时钟周期,每条指令平均有4个机器周期,试问该计算机的平均指令执行速度为多少MIPS?若CPU主频不变,但每个机器周期平均含4个时钟周期,每条指令平均有4个机器周期,则该机的平均指令执行速度又是多少MIPS?由此可得出什么结论?
答:根据主频为8MHz,得时钟周期为1/8MHz=0.125ms,机器周期为0.125ms&2=0.25ms,指令周期为0.25ms&4=1ms。
(1)平均指令执行速度为1/1=1MIPS
(2)若CPU主频不变,机器周期含4个个时钟周期,每条指令平均有4个机器周期,则指令周期为0.125ms&4&4=2ms,故平均指令执行速度为1/2=0.5MIPS。
(3)可见机器得速度并不完全取决于主频。
9.14已知单总线结构的计算机如图9.5所示,其中M为主存,XR为变址寄存器,EAR为有效地址寄存器,LATCH为锁存器。假设指令地址已存于PC中,画出“LDA&
*& D”(*表示相对寻址,D为相对位移量)和“SUB&
X,D”(X为变址寄存器XR,D为形式地址)指令的指令周期信息流程图,并列出相应的控制信号序列。
答:(1)两条指令取指周期信息流程为:
PC→Bus→MAR&&&&&&&&&&&&&&&&&&&&&&&&
M(MAR)→MDR&&&&&&&&&&&&&&&&&&&
MARo,R/W=R,MDRi
MDR→Bus→IR&&&&&&&&&&&&&&&&&&&&&&&&&
(PC)+1→PC&&&&&&&&&&&&&&&&&&&&&&&&&
(2)“LDA& *& D”指令的执行流程为:
(PC)+Ad(IR)→EAR&&&&&&&&&&&&&&
PCo,Ad(IR)o,+,EARi
&&&&&&&&&&&&&
EAR→Bus→MAR&&&&&&&&&&&&&&&&&&&&&
EARo,MARi
M(MAR)→MDR&&&&&&&&&&&&&&&&&&&
MARo,R/W=R,MDRi
MDR→Bus→ACC&&&&&&&&&&&&&&&&&&&&&
MDRo,ACCi
(3)“SUB& X,D”指令的执行流程为:
(XR)+Ad(IR)→EAR&&&&&&&&&
XRo,Ad(IR)o,+,EARi
&&&&&&&&&&&&&
EAR→Bus→MAR&&&&&&&&&&&&&&&&&&&&&
EARo,MARi
M(MAR)→MDR&&&&&&&&&&&&&&&&&&&
MARo,R/W=R,MDRi
MDR→Bus→X&&&&&&&&&&&&&&&&&&&&&&&&&&
(ACC)-(X)→LATCH&&&&&&&&&
ACCo,Xo,Ki=
LATCH→Bus→ACC&&&&
&&&&&&&&&&&&&
LATCHo,ACCi
控制单元的设计
10.5假设CPU在中断周期用堆栈保存程序断点,且进栈时栈指针减一,出栈时栈指针加一。试写出中断返回指令(中断服务程序的最后一条指令),在取指阶段和执行阶段所需的全部微操作命令及节拍安排。若采用微程序控制,则还需要增加哪些微操作。
答:组合逻辑设计的微操作命令:
T0:PC → MAR,1 → R
T1:M[MAR] → MDR, PC+1 → PC
T2:MDR → IR, OP[IR] → ID
T0:SP → MAR, 1 → R
T1:M[MAR] → MDR
T2:MDR → PC, SP+1 → SP
微程序设计的微操作命令:
取指微程序:
T0:PC → MAR, 1 → R
T1:Ad[CMIR] → CMAR
T2:M[MAR] → MDR, PC+1 → PC
T3:Ad[CMDR] → CMAR
T4:MDR → IR, OP[IR] → 微操作形成部件
T5:OP[IR] → CMAR
中断返回微程序:
T0:SP → MAR
T1:Ad[CMDR] → CMAR
T2:M[MAR] → MDR
T3:Ad[CMDR] → CMAR
T4:MDR → PC, SP+1 → SP
T5:Ad[CMDR] → CMAR
10.6已知带返转指令的含义如下图所示,写出机器在完成带返转指令时,取指阶段和执行阶段所需的全部微操作及节拍安排。
答:(1)取指阶段:
T0:PC → MAR,1 → R
T1:M(MAR)→ MDR, (PC)+1 → PC
T2:MDR → IR, OP(IR) → ID
(2)由图可知,带返转指令执行阶段需完成将返回地址M+1,存入指令的地址码字段K所指示的存储单元中,从K+1号单元才是子程序的真正内容,故执行阶段的微操作命令及节拍安排为:
T0:Ad(IR)→ MAR, 1 → W
T1:PC→ MDR
T2:MDR →M(MAR), Ad(IR)+1 → PC
10.15设控制存储器的容量为512&48位,微程序可在整个控存空间实现转移,而控制微程序转移的条件共有4个(采用直接控制),微指令格式如下:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&转移条件&&&&&&&&&&&&&&&&&&
试问微指令中的3个字段分别为多少位?
答:已知控制存器有512个单元,故下地址段字段应为9bit。又已知有4个测试条件,若采用直接表示法,故需4位。这样微命令字段即为48-4-9=35bit。
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 为什么没有3核cpu 的文章

 

随机推荐