计算机的结构
由于介绍的是特定的CPU和IO,所以必然缺乏对不同种类CPU和IC的适应性。而且由于LSI和I0的性能提高很快,现有关于这些器件的介绍,很快就会变成过时的.因此,我们的讨论不局限于特定的LSI和IC,而以实际上不存在的假想LSI和IC为对象进行讨论。
堆栈型计算机是计算机的一种具有代表性的结构,幸运的是,可以认为这类计算机对谁来说都没有阴显的不同,基于这种理由,这里采用了一种堆栈型假想计算机,在实际存在的计算机中,也具有通用性特点。
堆栈型计算机所谓堆栈型计算机,就是具有被称为堆栈的暂时操作区域,并对堆栈内的数据具有处理能力的一种计算机.向堆栈内压入数据时用push命令,从堆栈内取出数据用pop命令:用pop命令首先得到的数据,是最后压人(push)堆栈的数据(LIFO,lastinfirstout,即“后进先出”)。图4.1表示了这种存取方式,根据push命令,按照α,β的顺序,将数据从普通存贮器取出,并压入堆栈。根据pop命令,则按照β,α的顺序,从堆栈把数据取出并存入普通存贮器。堆栈型计算机,对堆栈内的数据具有处理功能。例如,如果执行mul这条命令,则完成最后一个压入数据与其前一个压入数据的乘法运算。图4.1表示了这条命
令的执行结果,当利用这种具有堆栈的计算机,作3+4*5的计
算时,只要依照下列顺序执行命令就可以了(参考图4.2):
[1]压入3
[2]压人
[3]压入5
[4]执行mul命令
[5]执行add命令(求数据和)
假想计算机PCOM在控制用的堆栈型计算机中,图4.3所示的计算机恐怕是结构最简单的一种了,当然,这是一种假想
计算机,取名为PCOM.PCOM由CPU(centralprocessingunit),ROM(readonlymemory),RAM(randomaccessmem-ory),ADC(analogdigitalconverter),DAC(digitalanalogconverter),和定时器组成,在计算机内,CPU用来执行数据的传送和算术运算等指令(CPU从存贮器读人指令).CPU内有程序计数器(pc),栈顶指针(tp),栈底指针(bp)。堆栈指针(p),中断屏蔽(im).地址总线和数据总线CPU利用被称作地址的数区分外围设备。由CPU出来的地址线通过地址总线输送到外围设备。CPU与外围设备之间的数据交换,通过地址总线来进行,PCOM的地址是8位的,因此它具有0--255个地址,而PCOM的数据则是32位的。因为数据是32位的,所以能够区别出2²种数据,这些数据或者因为是整数,或者因为是浮点表示的实数,或者因为是文字等,而具有不同的含义。例如32位的数据00000041(H),如着作为整数,则是65(,如看作为浮点(IEEE格式)表示的实数,则是65×10-⁴9,如看作为文字,则表示A.其中ao),(H)分别表示10进制数和16进制数。因为A(H)=10(4o),Bcn)=1koy,Cc)=12(ao),Dcn=13(o,,E(H)—14(n),F(H)=15(10x,所以有ICFHy一(1×16²+12×16¹+15×16)(10)。当CPU往外围设备传送数据时,通过地址总线传送地址,同时选择所需设备,并通过数据总线将数据传送出去。反之,当希望从外围设备得到数据时,也需要通过地址总线传送地址,同时选择所需设备。在图4.4上表示了一个具体例子,它表示CPU在地址11001101-CD(g,中,写入
数据FFFFFFFF(n的情况,通过地址总线和数据总线,分别送出地址和数据。与此同时,地址总线上信号的有效性由地址选通信
号as表示,ior与iow命令是否执行由mem/1o表示,数据是写入还是读出由r/w加以区别,这里分别选取·as-1(有效),mem/io1(存贮),r/w=0(写人).作为对mem/io的补充,在PCOM的命令中,对外围设备的存取,尚有ior,iow(后者表示取出).在执行ior和iow时,mem/io-0.除此之外则mem/io=1.如果事先设计这样一种电路,使得当mem/io=1时选择存贮器,而mem/io=0时,则选择与外部输人输出装置相连,这样存贮器和地址虽重复,但外围设备却能分别使用。通过ior和iow这种特殊命令进行存取的方法,称为1O映射I0(IOmappedI0).与此相对,将所有存贮器和不重复的地址分配给外围设备,用与存贮器存取相同的方法,对所有外围设备进行存取,这种方法称为存贮器映射10(memorymapped10)。存贮器存贮器内的数据,可以应用分配给存贮器的地址进行存取。PCOM中使用的存贮器,有1个ROM和3个RAM,它们分别具有6根地址引脚和32根数据引脚(图4.4),总之,这些存贮器具有2⁶=64个可以区别的存贮器单位,每个存亡器单位又由32个字节的记忆单元组成(图4.5),因此,这种存贮器被
称为具有64×32字节记忆单元的存贮器。采用4个这样的存贮器构成存贮器系统时,可以有若干种方法。在CPU区分为2⁸
256个地址时,存贮器方面则只区分为2⁶=64个地址。解决这个问题的办法是利用存贮器IC的片选(cs)接线端。当这个接线端为1时,这个IC被选择为加到ao—as上的地址有效,在对应的地址上,由r/w接线端上给定的意义进行操作。当Cs=0时,存贮器IC对外部将不产生任何反应。当CPU是由4个存贮器组成时,如图4.4所示,地址总线a—as将与所有存贮器IC的接线端a₀—as连接,而利用arsa₇构成片选信号,以确定选择4个IC中的哪一个工作。例如图4.4中的存贮器,设它具有从11000000—192到11111111-255的地址,则只要设cs=ag·ay*as·mem/io就可以了,式中“”表示逻辑积(与)运算。在图4.3上用译码器表示了这种逻辑电路。根据这种电路,PCOM的存贮器可以划分成图4.6所示形式。
在PCOM内应用的4个存贮器中,1个是ROM,3个是RAM,RAM是既能对数据进行读出,又能对数据进行写人的存贮器,在执行程序过程中,用作变量区和堆栈区等。ROM是一种只能进行读出,但CPU不能对其进行写入的存贮器,它用来存贮指令和常数。当然,把指令和常数存贮到RAM上也是可以的,但是一旦电源切断,存贮信息将会消失,因此每次执行前,都必须从磁盘等设备中将有关信息取出,并存贮到RAM内。
图4.7表示了存贮器的存贮区在PCOM中的分配情况.CPU内的pc值是下一个应该执行的指令的存放地址。CPU从pc指示的地址中,将指令取出(fetch),然后使pc的值增加1,并且执行取出的指令。tp和bp的值,表示程序执行过程中局部参量存贮区的界限。sp表示堆栈区的界限,但是,变量区是从地址40cH)开始,依次往下排列,而堆栈区则是从地址FF)开始,依次往上排列。
AD变换器与DA变换器
PCOM的CPU为了对IO设备进行访问,具有ior,iow这类命令,例如当执行iorl时,地址1便连通地址总线,且有as=1(地址总线上的信号有效),r/w=1(读入),mem/ia=0(ior或iow在执行过程中)。在mem/io条件下存贮器不能进行存取.在PCOM中,I0设备的地址1是为ADC和DAC设计的,在ior1条件下,从ADC取数据,在iowl条件下,向DAC送数据。
ADC是将模拟信号转变成32
图4.7存贮器的存贮区分配
位数字信号的装置,且数字信号以整数数据给出。DAC则相反,它是将32位整数转变为模拟信号的装置。当cs-1时,DAC将数据总线上的信号转变为模拟信号,而ADC则将模拟量转变为数据总线上的信号,因此,ADC的cs为cs=·蒸·厘*画·丽·盖·丽·ao*as·(mem/io)·(:/w),而DAC的cs则为cs=…··a。·as*(mem/io)(r/w).定时器和中断PCOM中有一种被称为定时器的装置,定时器每经过一定时间间隔,向CPU发出一次中断信号,这个时间间隔为10ms,利用这个信号对模拟信号进行采样。下面介绍中断的具体进行方式定时器每隔10ms向CPU主动发出一个中断请求信号int,如图4.8所示。CPU未必总处于能接收中断信号的状态,它是否能接收中断信号,由特征符im决定。im=1时能接收中断,im一0时则不能接收中断。im的值可以通过软件设定,如果执行eni和dsi,则分别有im=1和im=0.若CPU可以中断,即im-1,int:变为有效时,将自动完成下列工作。
(i)在时间上能够识别中断信号的接收,并且发出中断响应信号ack。
(ii)在堆栈中,将现在的pc值排列到前面的地址中,并设定出动态连接方案(先进后出).
(ii)存贮器的地址1一将写进跳转表(sharptable)的值放进pc中,且使im=0(中断不能进行),并执行该地址中的指令。定时器接收来自.CPU的ack信号,获悉中断已被接收后,撤消中断要求int。针对中断请求,CPU.将转入处理程序,并自动执行中断处理。当结束中断处理后,便开始执行reti.若reti被执行,则im变为1,并且将压入堆栈的原来地址弹入pc,然后就能从这个地址开始,重新执行中断前的程序(tp,bp的值也返回到原来的状态(先进后出)).复位在CPU中具有reset接点,它可以使PCOM返回到初始状态;从而可以保证从头开始执行程序。总之,当通过开关使reset信号为1时,则存贮器的地址0一将存放在跳转表中的值存放人pc中,且使im=0(中断不能进行),并且执行该地址中的指令。这时tp,bp和sp的值均被初始化。
随便看看
- 2024-12-31挖掘机工作无力故障的排除
- 2024-09-19液压阀的联接-液压传动基础知识
- 2024-11-27液压传动系统的组成及其特点
- 2024-09-19缓冲装置-液压传动基础知识
- 2024-10-04电气控制系统的功能