原码机器中有+0,一0之分。
(2)补码表示法
对于定点小数X=X0X1X2…Xn,其补码的数学定义为:
[X]补=X当0≤X<1
[X]补=2+X一2一︱X︱当一1≤x≤o
对于顶点整数X=X0X1X2…Xn,其补码的数学定义为:
4.什么是存储器的分级结构?
对存储器的要求是容量大、速度快、成本低,但是在一个存储器中要求同时兼顾这三方面是困难的。
为了解决这方面的矛盾,目前在计算机系统中,统称采用多级存储器体系统结构,即使用高速缓冲存储器、主存储器。
CPU能或字节访问的存储器称为内存储器,它包括高速缓冲存储器和主存储器。
CPU不能直接访问外存储器,外存储器的信息必须调入内存储器后才能为CPU进行处理。
5.闪速存储器有哪些特点?
固有的非易失性:
SRAM和DRAM断电后保存的信息随即丢失,为此SRAM需要备用电池来确保数据存留,而DRAM需要磁盘作为后援存储器。
由于闪速存储器具有可靠的非易失性,它是一种理想的存储器。
廉价的高密度:
不计SRAM电池的额外花费和占用空间,1M位闪速存储器的位成本比SRAM低一半以上,而16M位闪速存储器的位成本更低。
相同存储器容量的闪速存储器和DRAM相比,位成本基本相近,但闪速存储器节省了后援存储器(磁盘)的额外费用和空间。
可直接执行:
闪速存储器直接与CPU连接,由于省去了从磁盘到RAM的加载步骤,工作速度仅取决于闪速存储器的存取时间。
固态性能:
闪速存储器是一种低功耗、高密度且没有机电移动装置的半导体技术,因而特别适合于便携式等微型计算机系统,使它成为替代磁盘的一种理想工具。
6.什么是多模块交叉存储器,有什么特点?
一个由若干个模块组成的主存储器是线性编址的。
这些地址在各模块有两种安排方式:
一种是顺序方式,一种是交叉方式。
顺序方式:
某个模块进行存取时,其他模块不工作,某一模块出现故障时,其他模块可以照常工作,通过增添模块来扩充存储器容量比较方便。
但各模块串行工作,存储器的带宽受到了限制。
交叉方式:
地址码的低位字段经过译码选择不同的模块,而高位字段指向相应模块内的存储字。
连续地址分布在相邻的不同模块内,同一个模块内的地址都是不连续的。
对连续字的成块传送可实现多模块流水式并行存取,大大提高了存储器的带宽。
多模块交叉存储器的每个模块各自以等同的方式与CPU传送信息。
CPU同时访问各个模块,由存储器控制部件控制它们分时使用数据总线进行信息传递。
这是一种并行存储器结构。
下面做定量分析:
若模块字长等于数据总线宽度,模块存取一个字的存储周期为T,总线传送周期为T,存储器的交叉模块数为m,为了实现流水线方式存取,应当满足
T=mτ(m=T/τ称为交叉存取度)
交叉存储器要求其模块数必须大于或等于m,以保证启动某模块后经mr时间再次启
动该模块时,它的上次存取操作已经完成。
这样,连续读取m个字所需的时间为
t1=T+(m=1)τ
而顺序方式存储器连续读取m个字所需时间为t2=mT.假设q为读取m个字的信息
量,则带宽为
W1=q/t1
W2=q/t2
可见,交叉存储器的带宽确实大大提高了。
7.简述Cache存储器的原理、特点,并给出命中率的计算方法:
(1)功能和特点
cache是一种高速缓冲存储器,是为了解决CPU和主存之间速度不匹配而采用的一项重要技术。
cache是介于CPU和主存之间的小容量存储器,但存取速度比主存快。
目前主存容量配置几十MB的情况下,cache的典型值是几百KB。
cache能高速地向CPU提供指令和数据,从而加快了程序的执行速度。
从功能上看,它是主存的缓冲存储器,由高速的SRAM组成。
为追求高速,包括管理在内的全部功能由硬件实现,因而对程序员是透明的。
当前随着半导体器件集成度的进一步提高,cache已放入到CPU中,其工作速度接近于CPU的速度,从而能组成两级以上的cache系统。
(2)原理
cache除包含SRAM外,还要有控制逻辑。
若cache在CPU芯片外,它的控制逻辑一般与主存控制逻辑合成在一起,称为主存/cache控制器;若cache在CPU内,则由CPU提供它的控制逻辑。
CPU与cache之间的数据交换是以字为单位,而cache与主存之间的数据交换是以块为单位。
一个块由若干字组成,是定长的。
当CPU读取主存中一个字时,便发出此字的内存地址到cache和主存。
此时cache控制逻辑依据地址判断此字当前是否在cache中:
若是,此字立即传送给CPU;若非,则用主存读周期把此字从主存读出送到CPU,与此同时,把含有这个字的整个数据块从主存读出送到cache中。
(3)命中率
从CPU来看,增加一个cache的目的,就是在性能上使主存的平均读出时间尽可能接近cache的读出时间。
为了达到这个目的,在所有的存储器访问中由cache满足CPU需要的部分应占很高的比例,即cache的命中率应接近于l。
在一个程序执行期间,设N表示cache完成存取的总次数,Nm表示主存完成存取的总次数,h定义为命中率,则有h=Nc/(Nc十Nc)。
若tc表示命中时的cache访问时间,tm表示未命中时的主存访问时间,1一h表示未命中率,则cache/主存系统的平均访问时间tm为:
ta=h·tc+(1—h)tm
我们追求的目标是,以较小的硬件代价使cache/主存系统的平均访问时间ta越接近tc越好。
设r=tm/tc表示主存慢于cache的倍率,e表示访问效率,则有
e=tc/ta=tc/[htc+(1一h)tm_]=1/[h+(1一h)r]一l/[r+(1一r)h]
由表达式看出,为提高访问效率,命中率h越接近1越好,r值以5~10为宜,不宜太大。
命中率h与程序的行为、cache的容量、组织方式、块的大小有关。
8.典型的数据寻址方式有哪些?
形成指令地址的方式,称为指令寻址方式,有顺序寻址和跳跃寻址两种,由指令计数器来跟踪。
形成操作数地址的方式,称为数据寻址方式。
操作数可放在专用寄存器、通用寄存器、内存和指令中。
按操作数的物理位置不同,有RR型和RS型。
前者比后者执行的速度快。
隐含寻址:
这种类型的指令,不是明显地给出操作数的地址,而是在指令中隐含着操作数的地址。
立即寻址:
指令的地址字段指出的不是操作数的地址,而是操作数本身,这种寻址方式称为立即寻址。
直接寻址:
直接寻址是一种基本的寻址方法,其特点是:
在指令格式的地址字段中直接指出操作数在内存的地址D。
由于操作数的地址直接给出而不需要经过某种变换。
有效地址E=D。
间接寻址:
间接寻址是相对于直接寻址而言的,在间接寻址的情况下,指令地址字段中的形式地址D不是操作数的真正地址,而是操作数地址的指示器,或者说D单元的内容才是操作数的有效地址。
有效地址E=(D)。
寄存器寻址方式:
当操作数不放在内存中,而是放在CPU的通用寄存器中时,可采用寄存器寻址方式。
显然,此时指令中给出的操作数地址不是内存的地址单元号,而是通用寄存器的编号。
指令结构中的RR型指令,就是采用寄存器寻址方式的例子。
有效地址E=Ri。
寄存器间接寻址方式:
寄存器间接寻址方式与寄存器寻址方式的区别在于,指令格式中的寄存器内容不是操作数,而是操作数的地址,该地址指明的操作数在内存中。
有效地址E=(Ri)。
相对寻址:
是把程序计数器PC的内容加上指令格式中的形式地址D而形成操作数的有效地址。
程序计数器的内容就是当前指令的地址。
因此,所谓“相对”寻址,就是相对于当前指令地址而言,有效地址E一(PC)+D。
基值寻址:
在基值寻址方式中将CPU中基值寄存器的内容,加上指令格式中的形式地址而形成操作数的有效地址,有效地址E一(基值R)+D。
变址寻址方式与基值寻址方式计算有效地址的方法很相似,它把CPU中某个变值寄存器的内容与偏移量D相加来形成操作数有效地址,有效地址E===(变址R)+D。
块寻址方式:
经常用在输入输出指令中,以实现外存储器或外围设备同内存之间的数据块传送。
块寻址方式在内存中还可用于数据块搬家。
段寻址方式:
微型机中采用段寻址方式。
9.指令有哪些分类?
典型的指令系统有哪些?
一台计算机中所有机器指令的集合,称为这台计算机的指令系统。
指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也影响到系统软件。
不同机器的指令系统是各不相同的,从指令的操作码功能来考虑,一个较完善的指令系统,应当包括数据传送类指令、算术运算类指令、逻辑运算类指令、程序控制类指令、输入输出类指令、字符串类指令、系统控制类指令。
典型的指令系统有CISC和RISC两类。
(1)复杂指令集计算机(CISC)
长期来,计算机性能的提高往往是通过增加硬件的复杂性来获得。
随着集成电路技术,特别是vLSI(超大规模集成电路)技术的迅速发展,为了软件编程方便和提高程序的运行速度,硬件工程师采用的办法是不断增加可实现复杂功能的指令和多种灵活的编址方式.甚至某些指令可支持高级语言语句归类后的复杂操作,至使硬件越来越复杂,造价也相应提高。
为实现复杂操作,微处理器除向程序员提供类似各种寄存器和机器指令功能外,还通过存于只读存储器(ROM)中的微程序来实现其极强的功能,微处理在分析每一条指令之后执行一系列初级指令运算来完成所需的功能,这种设计的形式被称为复杂指令集计算机(ComplexInstructionSetComputer—CISC)结构。
一般CISC计算机所含的指令数目至少300条以上,有的甚至超过500条。
(2)精简指令集计算机(RISC)
采用复杂指令系统的计算机有着较强的处理高级语言的能力.这对提高计算机的性能是有益的.但当计算机的设计沿着这条道路发展时.有些人开始怀疑这种传统的做法:
IBM公司设在纽约Yorktown的JhomasI.Wason研究中心于1975年组织力量研究指令系统的合理性问题。
因为当时日趋庞杂的指令系统不但不易实现.而且还可能降低系统性能。
1979年以帕特逊教授为首的一批科学家也开始在美国加州大学伯克莱分校开展这一研究。
结果表明,CISC存在许多缺点。
首先,在这种计算机中,各种指令的使用率相差悬殊:
一个典型程序的运算过程所使用的80%指令只占一个处理器指令系统的20%,事实上最频繁使用的指令是取、存和加这些最简单的指令,所以长期致力于复杂指令系统的设计实际上是在设计一种难得在实践中用得上的指令系统的处理器;同时复杂的指令系统必然带来结构的复杂性,这不但增加了设计的时间与成本还容易造成设计失误;此外,尽管VLSI技术现在已达到很高的水平,但也很难把CISC的全部硬件做在一个芯片上,这也妨碍单片计算机的发展;在CISC中,许多复杂指令需要极复杂的操作,这类指令多数是某种高级语言的直接翻版,因而通用性差;由于采用二级的微码执行方式,它也降低那些被频繁调用的简单指令系统的运行速度。
因而,针对CISC的这些弊病,帕特逊等人提出了精简指令的设想即指令系统应当只包含那些使用频率很高的少量指令,并提供一些必要的指令以支持操作系统和高级语言。
按照这个原则发展而成的计算机被称为精简指令集计算机(ReducedInstructionSetComputer—RISC)结构,简称RISC。
10.CISC与RISC的区别是什么?
Intel公司X86为核心的PC系列正是基于CISC体系结构,而Apple公司的
Macintosh则是基于RIS(:
体系结构,CISC与RISC到底有何区别?
从硬件角度来看CISC处理的是不等长指令集,它必须对不等长指令进行分割,因此在执行单一指令的时候需要进行较多的处理工作;而RISC执行的是等长精简指令集,CPU在执行指令的时候速度较快且性能稳定,因此在并行处理方面RISC明显优于CISC,RISC可同时执行多条指令,它可将一条指令分割成若干个进程或线程,交由多个处理器同时执行。
另外,由于RISC执行的是精简指令集,所以它的制造工艺简单且成本低廉。
从软件角度来看,CISC运行的则是我们所熟识的DOS、windows操作系统,而且它拥有大量的应用程序,因为全世界有65%以上的软件厂商都理为基于CISC体系结构的PC及其兼容机服务的,像Microsoft就是其中的一家;而RISC在此方面却显得有些势单力薄,虽然在RISVC也可运行DOS、windows,但是需要一个翻译过程,所以运行速度要慢许多。
目前CISC与RISC正在逐步走向融合,PentiumPro、Nx586、K5就是一个最明显的例子,它们的内核都是基于RISC体系结构的,接受CISC指令后将其分解分类成RISC指令以便在遇一时间内能够执行多条指令。
由此可见,下一代的CPU将融合CISC与RISC两种技术,从软件与硬件方面看二者会取长补短。
11.CPU的功能有哪些?
CPU对整个计算机系统的运行是极其重要的,它具有如下四方面的基本功能。
(1)指令控制
程序的顺序控制,称为指令控制。
由于程序是一个指令序列,这些指令的相互顺序不能任意颠倒,必须严格按程序规定的顺序进行,因此,保证机器按顺序执行程序是CPU的首要任务。
(2)操作控制
一条指令的功能往往是由若干个操作信号的组合来实现的,因此,CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。
(3)时间控制
对各种操作实施时间上的定时,称为时间控制。
因为在计算机中,各种指令的操作信号均受到时间的严格定时。
另一方面,一条指令的整个执行过程也受到时间的严格定时。
只有这样,计算机才能有条不紊地自动工作。
(4)数据加工
所谓数据加工,就是对数据进行算术运算和逻辑运算处理。
完成数据的加工处理,这是CPU的根本任务。
因为,原始信息只有经过加工处理后才能对人们有用。
12.CPU中有哪些主要的寄存器?
功能是什么?
各种计算机的CPU可能有这样或那样的不同,但是在CPU中至少要有六类寄存器,这些寄存器是:
指令寄存器(IR);程序计数器(PC);地址寄存器(AR);缓冲寄存器(DR);累加寄存器(AC);状态条件寄存器(PSW)。
(1)数据缓冲寄冲器(DR)
用来暂时存放由内存储器读出的一条指令或一个数据字;当向内存存人一条指令或一个数据字时,也暂时将它们存放在数据缓冲寄存器中。
缓冲寄存器的作用是:
作为CPU和内存、外部设备之间信息传送的中转站;补偿CPU和内存、外围设备之间在操作速度上的差别;在单累加器结构的运算器中,数据缓冲寄存器还可兼作为操作数寄存器。
(2)指令寄存器(IR)
指令寄存器用来保存当前正在执行的一条指令。
(3)程序计数器(PC)
为了保证程序能够连续地执行下去,CPU必须具有某些手段来确定下一条指令的地址。
而程序计数器正是起到这种作用,所以通常又称为指令计数器。
程序计数器的结构应当是具有寄存信息和计数两种功能的结构。
(4)地址寄存器(AR)
地址寄存器用来保存当前CPU所访问的内存单元的地址。
由于在内存和CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到内存的读/写操作完成为止。