《第3章 微处理器体系结构.ppt》由会员分享,可在线阅读,更多相关《第3章 微处理器体系结构.ppt(44页珍藏版)》请在课桌文档上搜索。
1、第3章 微处理器体系结构3.1 8086处理器体系结构3.2 ARM7内核体系结构3.3 ARM7内部寄存器3.4 ARM7运行状态标志寄存器CPSR3.5 存储器及存储器映射I/O3.6 ARM处理器的其他特性3.7 基于ARM处理器的SOC芯片设计产业模式,3.1 80X86处理器结构本节的学习应该掌握:8086/8088微处理器的结构 8086/8088指令执行的操作过程 8086的操作时序,3.1 8086/8088微处理器3.1.1 8086/8088性能特点与组成结构8086:Intel系列的16位微处理器;16条数据线;20条地址线,可寻址地址范围220=1MB;单5V 供电、一
2、个5MHz时钟。8088:内部与8086兼容,16位微处理器;对外数据总线为8位,称为准16位微处理器;有包括乘法和除法的16位运算指令;能处理16位和8位数据;20根地址线,寻址的空间达1M字节。,AH AL,BH BL,CH CL,DH DL,SP,BP,DI,SI,通用寄存器,运算寄存器,ALU,标志,执行部分控制电路,1 2 3 4 5 6,CS,DS,SS,ES,IP(PC),内部寄存器,总线I/O控制电路,地址加法器,20位,16位,8位,指令队列缓冲器,外总线,执行部件,总线接口部件,8086CPU结构图,总线接口部件总线接口功能:(1)从取指令送到指令队列。(2)CPU执行指令
3、时,到指定的位置取操作数,并将其送至要求的位置单元中。,(2)16位指令指针寄存器IP(PC);(3)20位的地址加法器;(4)六字节的指令队列缓冲器。,总线接口的组成:(1)四个段地址寄存器 CS 16位代码段寄存器 DS 16位数据段寄存器 ES 16位附加段寄存器 SS 16位堆栈段寄存器;,总线接口部件说明:(1)指令队列缓冲器:在执行指令的同时,将取下一条指令,并放入指令队列缓冲器中,CPU执行完一条指令后,可以执行下一条指令(流水线技术),提高CPU效率。(2)地址加法器:产生20位地址,CPU内无论是段地址寄存器还是偏移量都是16位的,通过地址加法器产生20位地址。,2.执行部件
4、执行部件作用:*从指令队列中取出指令;*指令译码,发出相应相应的控制信号;*收发数据,接收由总线接口送来的数据或发送数据至接口;*算术逻辑运算,执行部件组成:*四个通用寄存器 AX、BX、CX、DX。四个通用寄存器都是16位或作两个8位来使用。*专用寄存器 SP-堆栈指针寄存器 BP-基址指针寄存器 DI-目的变址寄存器 SI-源变址寄存器*算术逻辑单元ALU 完成8位或者16位二进制算术和逻辑运算,计算偏移量。*数据暂存寄存器 协助ALU完成运算,暂存参加运算的数据。,*控制电路 取出指令操作码,通过译码电路分析,发出相应的控制命令,控制ALU数据流向。,*标志寄存器,*标志寄存器16位寄存
5、器,其中有7位未用。,D15,D0,OF DF IF TF SF ZF AF PF CF,进借位标志,奇偶标志,半进借位标志,零标志,符号标志,单步中断,中断允许,方向标志,溢出标志,1-有进、借位0-无进、借位,1-低8位有偶数个10-低8位有奇数个1,1-低4位向高4位有进、借位0-低4位向高4位无进、借位,1-结果为00-结果不为0,3.1.2 8086 CPU执行程序的操作过程(1)形成20位地址送至程序存储器 从指定单元取出指令字节 放入指令队列中。(2)8086指令队列中有2个空字节 总线接口部件就会自动取指令至队列中。(3)执行部件从指令队列首取出指令代码 执行该指令。(4)队列
6、已满,执行部件又不使用总线时,总线接口部件进入空闲状态。,(5)执行转移指令、调用指令、返回指令时,先清空队列内容,再将要执行的指令放入队列中。,3.1.3 8086引脚功能 根据所连的存储器和外设规模的不同,使它们可以在两种模式下工作:系统的最小模式:只有一8086/8088CPU。系统的最大模式:有两个或两个以上的CPU,一个为主CPU8086/8088,另一个为协CPU8087/8089。指令周期:执行一条指令所需要的时间。总线周期(机器周期):CPU通过总线与存储器或I/O接口进行一次数据传输所需的时间。T状态(时钟周期):CPU处理动作的最小单位。,T1,T2,T3,TWaite,T
7、4,总线周期,0102030405060708091011121314151617181920,4039383736353433323130292827262524232221,GND,AD14/A14,AD13/A13,AD12/A12,AD11/A11,AD10/A10,AD9/A9,AD8/A8,AD7,AD6,AD5,AD4,AD3,AD2,AD1,AD0,NMI,INTR,CLK,GND,VCC(5V),AD15/A15,A16/S3,A17/S4,A18/S5,A19/S6,/BHE/S7 HIGH(SSO),MN/MX,/RD,HOLD(/RQ/GT0),HLDA(/RQ/GT1
8、),/WR(/LOCK),M/IO(/S2),DT/R(/S1),/DEN(/S0),ALE(QS0),/INTA(QS1),/TEST,READY,RESET,8086/8088,1.地址/数据总线 AD15-AD0:地址/数据复用引脚,双向,三态。AD15-AD0:16位地址总线A15-A0,输出访问存储器或I/O的地址信息。AD15-AD0:16位数据总线D15-D0,与存储器和I/O设备交换数据信息。AD7-AD0:(8088)8位数据总线D7-D0,与存储器和I/O设备交换数据信息。地址/数据总线:复用分时工作。,2.地址/状态总线 A19/S6-A16/S3:地址/状态总线复用引脚
9、,输出,三态。,A19/S6-A16/S3:20位地址的高4位地址A19-A16。A19/S6-A16/S3:输出CPU的工作状态。A19/S6-A16/S3:分时工作,T1状态:输出地址的高4位信息;T2、T3、T4状态:输出状态信息。S6:指示8086/8088当前是否与总线相连,S6=0,表示8086/8088当前与总线相连。S5:表明中断允许标志当前的设置。S5=0,表示CPU中断是关闭的,禁止一切可屏蔽中断源的中断请求;S5=1,表示CPU中断是开放的,允许一切可屏蔽中断源的中断申请。S4、S3:指出当前使用段寄存器的情况。,3.控制总线(1)/BHE:与A0配合实现按字节存取Mem
10、ory(2)/RD:读信号,三态输出,低电平有效。/RD=0,表示当前CPU正在对存储器或I/O端口进行读操作。(3)/WR:写信号,三态输出,低电平有效。/WR=0,表示当前CPU正在对存储器或I/O端口进行读操作。,(4)M/IO:存储器或IO端口访问信号,三态输出。M/IO=1,表示CPU正在访问存储器;M/IO=0,表示CPU正在访问IO端口。(5)READY:准备就绪信号,输入,高电平有效。READY=1,表示CPU访问的存储器或IO端口已准备好传送数据。若CPU在总线周期T3状态检测到READY=0,表示未准备好,CPU自动插入一个或多个等待状态TW,直到READY=1为止。,(6
11、)INTR:可屏蔽中断请求信号,输入,高电平有效。当INTR=1,表示外设向CPU发出中断请求,CPU在当前指令周期的最后一个T状态去采样该信号,若此时,IF=1,CPU响应中断,执行中断服务程序。(7)/INTA:中断响应信号,输出,低电平有效。表示CPU响应了外设发来的中断申请信号INTR。(8)NMI:不可屏蔽中断请求信号,输入,上升沿触发。该请求信号不受IF状态的影响,也不能用软件屏蔽,一旦该信号有效,则执行完当前指令后立即响应中断。(9)/TEST:测试信号,输入,低电平有效。当CPU执行WAIT指令时,每隔个时钟周期对/TEST进行一次测试,若/TEST=1,继续等待,直到/TES
12、T=0。,(10)RESET:复位信号,输入,高电平有效。RESET信号至少要保持4个时钟周期。复位时:标志寄存器、IP、DS、SS、ES为0,CS=FFFFH,复位后CPU从FFFF0H处开始 执行。(11)ALE:地址锁存允许信号,输出,高电平有效。用来锁存地址信号A15-A0,分时使用AD15-AD0地址/数据总线。,(12)DT/R:数据发送/接收控制信号,三态输出。此信号控制数据总线上的收发器8286的数据传送方向,DT/R=1,发送数据-写操作;DT/R=0,接收数据-读操作。(13)/DEN:数据允许信号,三态输出,低电平有效。作为数据总线上收发器8286的选通信号。,(14)H
13、OLD:总线请求信号,输入,高电平有效。当系统中 PU之外的另一个控制器要求使用总线时,通过它向CPU发一高电平的请求信号。(15)HLDA:总线请求响应信号,输出,高电平有效。当HLDA有效时,表示CPU对其它控制器的总线请求作出响应,与此同时,所有与三总线相接的CPU的线脚呈现高阻抗状态,从而让出总线。(16)MN/MX:工作模式选择信号,输入。MN/MX=1,表示CPU工作在最小模式系统;MN/MX=0,表示CPU工作在最大模式系统。(17)CLK:主时钟信号,输入。8086/8088的时钟频率为5MHZ。,4.电源线和地线 8086/8088采用单+5V,20引脚为地线。5.最大模式下
14、的有关引脚(1)QS1、QS2:指令队列状态信号,输出。QS1 QS2 含义 0 0 无操作 0 1 将指令首字节送入指令队列 1 0 队列为空 1 1 将指令其余字节送指令队列,(2)S2、S1、S0:总线周期状态信号,三态输出。S2、S1、S0状态信号的编码 S2 S1 S0 操作过程 产生信号 0 0 0 发中断响应信号/INTA 0 0 1 读I/O端口 IORC 0 1 0 写I/O端口 IOWC 0 1 1 暂停 无 1 0 0 取指令/MRDC 1 0 1 读存储器/MRDC 1 1 0 写存储器/AMWC 1 1 1 无作用 无,3.1.4 8086系统存储器的组织和堆栈1.8
15、086系统存储器的组织标准结构:8086是16位的微处理器;偶地址单元的数据通过AD0 AD7传送;奇地址单元的数据通过AD8 AD15传送;操作按字节/字为单位来处理的;因此每个字节用一个唯一的地址码表示。非规则字:任何连续存放的两个字节,都可以称为一个字;低位字节从奇数地址开始称为非规则方式;奇数地址开始的字称为非规则字;低位字节从偶数地址开始的字称为规则字。,(2)8086存储器的分段结构 20条地址线,寻址空间:220(1M)字节;把1M字节的存储器分为216数量的存储段;每段最多可达寻址216(64K)字节;一个存储段是可独立寻址的一个逻辑段,每段64K字节;8086有四段寄存器:C
16、S,DS,SS和ES;四个段寄存器存放了CPU当前可以寻址的四个段的基址;逻辑段可以存取指令代码和数据。设定了四个段寄存器,就规定了CPU当前寻址的段。,(3)8086存储器的逻辑地址和物理地址 存储器中存储单元的地址来表示两种形式:实际地址:也称物理地址,是用唯一的20位二进制数所表示的地址,规定了1M字节存储体中某个具体单元的地址。逻辑地址:CPU看到的地址空间,在程序中使用为“段地址:偏移地址”.如 CS:BX(4)物理地址的形成 物理地址有两部分组成:段基址和偏移地址。,8086CPU中有一个地址加法器,它将段地址左移4位,与16位的偏移地址相加,并锁存在物理地址锁存器中。物理地址=段
17、基址*16+偏移地址。段基址:CS、DS、ES、SS。偏移地址:IP、DI、SI、BP、SP等。,段寄存器值,偏移量,+,物理地址,16位,4位,16位,20位,存储器物理地址的计算方法,CS 0000,IP(PC),代码段,DS或ES 0000,SI、DI或BX,SS 0000,SP或BP,数据段,堆栈段,存储器,段寄存器和偏移地址寄存器组合关系,0 x0 0000,0 xf ffff,2.堆栈 堆栈用于暂存数据和(过程调用或处理中断)断点信息。(1)堆栈概念 堆栈是在存储器中开辟的一片数据存储区,这片存储区的一端固定,另一端活动,且只允许数据从活动端进出。采用“先进后出”的规则。(2)堆栈
18、的组织 堆栈指示器SP,他总是指向堆栈的栈顶堆栈的伸展方向既可以从大地址向小地址,也可以从小地址向大地址。8086的堆栈的伸展方向是从大地址向小地址。,3.1.5 8086总线的操作时序 在微机系统中,CPU是在时钟信号CLK控制下,按节拍有序地执行指令序列。从取指令开始,经过分析指令、对操作数寻址,然后执行指令、保存操作结果,这个过程称为指令执行周期。指令周期:执行一条指令所需要的时间。总线周期(机器周期):CPU通过总线与存储器或I/O接口 进行一次数据传输所需的时间。T状态(时钟周期):CPU处理动作的最小时间单位。,T1,T2,T3,TW,T4,总线周期,3.1.6 8086时序808
19、6的总线时序包括以下一个部分:(1)系统复位;(2)存储器读操作;(3)存储器写操作;(4)中断响应操作;(5)输入输出周期;(6)空转周期。总线操作 总线读操作:CPU从存储器或外设读取数据。总线写操作:CPU将数据写入存储器或外设。,1.存储器读周期 总线周期包括:T1、T2、T3、(TW)、T4机器周期。(1)T1周期 M/IO:从存储器读还是从I/O设备中读数据;AD19-AD0:确定20位地址;/BHE:选择奇地址存储体选择。ALE:地址锁存信号,以使地址/数据线分开。,(2)T2状态 S6-S3:出现S6-S3状态信号。AD15-AD0:高阻状态/RD:由高电平变为低电平,开始进行
20、读操作/DEN:变低电平,做好接收数据的准备。,(3)T3状态 若存储器或I/O端口已做好发送数据准备,则在T3状态期间将数据放到数据总线上,并在T3结束时,CPU从AD15-AD0上读取数据。(4)TW状态 在T3状态,存储器或外设没有准备好数据,不能在T3状态将数据放到总线上,外设使READY=0,则CPU在T3和T4之间插入一个或几个TW状态,直到数据准备好READY=1为止。(注:TW状态时总线的动作与T3时相同)(5)T4状态 CPU对数据总线进行采样,读出数据。,2.存储器写周期(1)T1状态 M/IO信号:对存储器写还是对I/O设备中写数据;AD19-AD0:确定20位地址;/B
21、HE:选择奇地址存储体选择;ALE:地址锁存信号,以使地址/数据线分开;DT/R:为高电平,指示收发器发送数据,写操作。(2)T2状态 S6-S3:出现S6-S3状态信号;AD15-AD0:发出16位数据;/WR:由高电平变为低电平,开始进行写操作;/DEN:变低电平,启动收发器做好发送数据的准备。,(3)T3状态 若存储器或I/O端口已做好接收数据准备,则在T3状态期间将数据放到数据总线上,在T3结束时,CPU将总线数据写入到存储器或I/O设备中。(4)TW状态 在T3状态,存储器或外设没有准备好接收数据,外设使READY=0,CPU在T3、T4之间插入若干个Tw状态,直到设备准备好READ
22、Y=1为止。(5)T4状态 在T4状态,数据从数据总线上被撤除,各种控制信号和状态信号进入无效状态,CPU完成了对存储器或I/O设备的写操作。,3 输入/输出周期 8086与外设通讯,也即从外设输入数据,或把数据输出给外设的时序,与CPU同存储器之间的通讯时序,几乎完全相同,只是IOM信号应为高。所以我们就不赘述。4 空转周期 8086只有在CPU于存储器或外设要传送指令或操作时,才能执行如上所述的总线周期,若CPU不执行总线周期,则总线接口执行空转操作。,5.中断响应周期 中断响应周期:从CPU中止现行程序转中断服务程序这一过程。中断响应周期要用两个总线周期。第一个响应周期 使AD15-AD
23、0、/BHE/S7、A19/S6-A16/S3悬空。第二个响应周期 外设向数据总线上输送一个字节的中断类型号。每一响应周期的T1状态输出一个高电平脉冲,作为地址锁存信号。,CLK,T1,T2,T3,T4,T1,T2,T3,T4,第一中断响应周期,第二中断响应周期,ALE,/INTA,AD7-AD0,8086中断响应周期的时序图,6.总线保持和响应周期(保持响应信号HLDA)7.系统复位 条件:RESET端上的高电平维持4个时钟周期,可使CPU复位。CPU复位动作:PSW、DS、ES、SS、IP等寄存器;指令队列被清零;CS寄存器设置为FFFFH。注:由于复位后,IF=0,处关中断状态,初始化程
24、序中应开中断,使CPU可响应中断请求;当RESET由高电平变低电平7个机器周期后,CPU开始从FFFF0处执行程序。,8086复位时序:,CLK,RESET输入,RESET内部,三态门,浮空,3.1.7 32位微处理器 80 x86的工作模式(286-686)实地址方式:具有32条地址线的微处理器只有低20条地址线起作用,能寻址1M字节的物理地址。寻址机构、存储器管理、中断处理机构和8086一样,寻址机构、存储器管理、中断处理机构和8086一样 操作数默认长度为16位,但允许访问处理器的32位寄存器组,在使用32位寄存器组时,指令中要加上前缀以表示越权存取。不用虚拟地址的概念,存储器容量最大为
25、1M字节;采用分段方式,每段大小固定为64K字节,存储段可以彼此覆盖,即一个64K字节的段如未用完,另一个段可以覆盖未用的存储区。实地址方式下,存储器中保留两个固定区域,一个为初始化程序区,另一个为中断向量区。前者为FFFF0HFFFFFH,后者为00000003FFH。在实地址方式下,运行的程序不分特权等级,实际上,实地址方式下的程序相当于工作在特权级0,除保护虚地址方式下的一些专用指令外,所有其他指令都能在实地址方式下运行。,保护虚地址方式:在保护方式下,全部32根地址有效;可寻址达4G字节的物理空间;支持多任务,一个任务可运行多达16KB个段;每个段最大可为4G字节,一个任务最大可达64
26、MM字节的虚拟地址;能快速的进行任务切换和任务保护环境;在保护方式运行的程序分为4个特权级:0、1、2、3;操作系统核心运行在最高特权等级0;用户程序运行在最低特权等级3。,应用程序,3级,常用扩展程序,内核0级,2级,系统服务程序,1级,系统和应用程序分离,保护方式下的寻址机制 在保护方式下,存储单元的地址:由段基地址、段内偏移量两部分组成。在保护方式下,段基地址也是32位的,所以就不能由段寄存器的内容直接形成32位的段基地址,而是要经过转换。于是在内存中就有一个表,每一个内存段对应着表中的一项,此项中包含32位的段基地址。在80 x86中,一个段用一个8字节的描述符来描述,多个描述符构成一个表,称为描述表。由描述符中所规定的段基地址加上32位的段内偏移量就可以寻址一个存储单元,如图所示。,段寄存器 偏移量,访问权,界 限,GDT基地址表,存储器操作数,段内基址,段界,选择段大到4GB,