欢迎来到天天文库
浏览记录
ID:33585013
大小:216.22 KB
页数:38页
时间:2019-02-27
《现代计算机组成原理 - 华侨大学》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章CPU功能模块设计4.2CPU中的基本部件4.2.7程序计数器与地址寄存器1.程序计数器为了保证程序按其指令序列执行下去,必须对下一条指令进行跟踪,以便取得下一条指令。程序计数器(PC)的功能就是用来确定下一条指令在主存中的地址。当CPU取得当前要执行的指令后,通过修改程序计数器中的值来确定下一条指令在主存中的存放地址。4.2CPU中的基本部件4.2.7程序计数器与地址寄存器1.程序计数器程序计数器值的修改分两种情况,一种是顺序执行指令的情况,另一种是分支转移指令的执行情况。当CPU顺序执行指令时,程序计数器值的修改较为简单。即若当前取得的指令是单字节指令,便将程序计数器的
2、值加1(PC+1→PC);而若当前取得的指令是双字节指令,则将程序计数器的值加2。一般而言,如果当前取得的指令是n字节,则将程序计数器的值加n。在执行分支转移指令时,由分支转移指令的寻址方式确定下一条指令在主存中的地址。若分支转移指令的寻址方式是相对寻址,于是,程序计数器的值就修改为当前地址加上相对偏移量;若分支转移指令的寻址方式是绝对寻址,即将转移指令中绝对转移地址送给程序计数器;而当执行间接寻址方式的分支转移指令时,程序计数器的值从指令指定的寄存器或主存储单元中提取。4.2CPU中的基本部件4.2.7程序计数器与地址寄存器1.程序计数器lpm_counter1upcounte
3、rsloadd[7..0]INVCPUCTdata[7..0]q[7..0]OUTPUTq[7..0]LOADINPUTVCCCLKINVCPUCTclocklracinstRSTINPUTVCC图4-26程序计数器结构图图4-26程序计数器结构图lpm_counter1upcountersloadd[7..0]INVCPUCTdata[7..0]q[7..0]OUTPUTq[7..0]LOADINPUTVCCCLKINVCPUCTclocklracinstRSTINPUTVCC程序计数器采用LPM库中的元件lpm_counter来完成,计数器的数据宽度为8位,其结构如图所示。图
4、中各信号的作用分别是:CLK是时钟脉冲输入信号;aclr是计数器的异步清零端,当CPU复位时,可用RST复位信号对计数器清零;LOAD是计数器数据加载端,当发生程序转移时,可用它向计数器加载新的转移地址;data[7..0]是计数器的数据输入端;q[7..0]是计数器的数据输出端。图4-26程序计数器结构图lpm_counter1upcountersloadd[7..0]INVCPUCTdata[7..0]q[7..0]OUTPUTq[7..0]LOADINPUTVCCCLKINVCPUCTclocklracinstRSTINPUTVCC在图中,程序计数器可以有三种工作状态:(1
5、)当CPU复位时,复位信号RST可以使程序计数器清零。(2)正常情况下,从程序存储器读取一个字节后,程序计数器在CLK脉冲信号作用下自动加1。(3)当发生程序转移时,在LOAD信号的作用下,从d[7..0]向程序计数器装载新的计数器初值,进行程序转移。4.2CPU中的基本部件4.2.7程序计数器与地址寄存器2.地址寄存器地址寄存器(AR)用来保存当前CPU所要访问的主存单元或I/O端口的地址。当CPU要对存放在主存或外围设备的信息进行存取时,需要解决的是地址的定位问题。地址定位是通过CPU将地址信息传送到地址总线上,再由地址译码电路实现。在对主存或I/O端口内的信息存取过程中,地
6、址信号必须是稳定的。因此地址信息要由一个寄存器来保存,这个寄存器就是地址寄存器。地址寄存器采用单纯的寄存器结构。在对主存或I/O端口进行访问时,地址寄存器存放当前访问的地址,数据缓冲器实现数据的缓冲。CPU通过修改地址寄存器中的值,就可访问不同的存储器单元及不同的I/O端口。4.2CPU中的基本部件4.2.7程序计数器与地址寄存器2.地址寄存器lpm_latch0data[7..0]q[7..0]gateinst15图4-27地址寄存器结构图图4-27地址寄存器结构图lpm_latch0data[7..0]q[7..0]gateinst15地址寄存器可用LPM库中的元件lpm_l
7、atch锁存器来完成。地址寄存器的数据宽度应当与程序计数器的数据宽度一致。data[7..0]是地址寄存器的数据输入端,q[7..0]是地址寄存器的数据输出端,gate是地址锁存器的控制端。gate的作用是当锁存控制脉冲到来时,高电平时数据进入锁存器,低电平时锁存数据,保持输出数据稳定不变。4.2CPU中的基本部件4.2.8指令寄存器当CPU从主存取指令时,取得的指令经缓冲寄存器转送给指令寄存器(IR)。因此,指令寄存器用来保存当前CPU正在执行的一条指令。一条指令由地址码和操作
此文档下载收益归作者所有