第五章 处理器内核_第1页
第五章 处理器内核_第2页
第五章 处理器内核_第3页
第五章 处理器内核_第4页
第五章 处理器内核_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五章处理器内核和存储空间映射何宾2023.08主要内容8位单片机处理器核的内部结构字节存储顺序8位单片机存储器结构和地址空间32位单片机处理器核的内部结构32位单片机存储器结构和地址空间中断系统原理及功能处理器内核和存储空间映射Intel的MCS-251单片机是对其MCS-51单片机的扩展和发展(即MCS-251向下兼容MCS-51),而STC公司最新的STC32系列MCU是对IntelMCS-251单片机的进一步改进和发展通过兼容MCS-251ISA,STC32系列MCU实现了整体性能的极大提升一方面在处理器核内部实现了8位、16位和32位操作另一方面通过扩展片内程序和数据存储器的容量,进一步提高了处理器核运行复杂程序代码的能力处理器内核和存储空间映射

--本章内容编排首先,介绍STC公司STC15/STC8系列增强型8位MCU内部处理器核功能以及存储器结构和地址空间映射然后,介绍STC328/16/32位MCU内部处理器核功能以及存储器结构和地址空间映射。最后,介绍了STC32G系列单片机中断系统的原理及功能处理器内核和存储空间映射

--8位单片机处理器核的内部结构本节以Intel公司经典的MCS-51(也称为8051)单片机为例,其目的是为了说明8位MCU内部的关键功能单元将8051单片机称为8位单片机,这是因为该单片机中的数据总线宽度为8位,并且寄存器也是8位宽度(DPTR寄存器为16位)本质上,MCS-51ISA就能体现出8位的本质运算器存储器和SFRP0.0~P0.7缓冲区程序地址寄存器程序计数器(PC)DPTR16端口0锁存端口2锁存程序存储器RAM地址寄存器端口0驱动RAM数据存储器8特殊功能寄存器(SFR)

中断、串口和定时器块B寄存器累加器(ACC)程序状态字(PSW)TMP2TMP1ALU振荡器XTAL1XTAL2指令寄存器时序和控制RSTALE/PROGPSENEA/Vpp端口1锁存端口1驱动P1.0~P1.7P2.0~P2.7端口3锁存端口3驱动P3.0~P3.7端口2驱动堆栈指针VCCVSSPC递增器8外设控制器时钟处理器内核和存储空间映射

--8位单片机处理器核的内部结构从上图可知,该单片机内包含了处理器核、存储器、外设和时钟系统共4个子系统处理器内核和存储空间映射

--8位单片机处理器核的内部结构MCS-51单片机内的CPU核由运算器和控制器构成运算器主要由算术逻辑单元(ArithmeticLogicUnit,ALU)和寄存器构成ALU用于执行算术和逻辑运算,它也用于计算目标地址控制器产生不同的节拍信号以控制ALU所执行的操作以及处理器核对存储器和外设的访问在处理器核内部,通过处理器内部总线将运算器和控制器连接在一起处理器内核和存储空间映射

--8位单片机处理器核的内部结构在MCS-51单片机中,提供了独立的程序存储器和数据存储器程序存储器用于保存程序中的代码和一些常数,而数据存储器用于保存在程序代码运行过程中需要保存的临时数据Flash存储器(也称为闪存)充当程序存储器静态随机访问存储器(StaticRandomAccessMemory,SRAM)充当数据存储器处理器内核和存储空间映射

--8位单片机处理器核的内部结构通过特殊功能寄存器(SpecificalFunctionRegister,SFR),处理器核就可以访问片上的外部设备(简称外设)比如,通用输入输出(GeneralPurposeInput&Output,GPIO)和通用异步串行收发器(UniversalAsynchronousReceiver&Transmitter,UART)处理器内核和存储空间映射

--8位单片机处理器核的内部结构这里有必要介绍一下总线(bus)的概念总线是一组用逻辑高电平和逻辑低电平所表征的电信号的集合,这些电信号始终处于高电平(逻辑“1”)和低电平(逻辑“0”)的交替变化中从传输信息内容的角度,将总线进一步划分为数据总线、地址总线和控制总线数据总线用于传输数据地址总线用于传输地址控制总线用于传输控制信息处理器内核和存储空间映射

--8位单片机处理器核的内部结构程序存储器、数据存储器、特殊功能寄存器都“挂在“一条总线上程序存储器和数据存储器都归类为存储器,而SFR主要用于处理器核自己以及处理器访问外设的接口因此,通过总线处理器核就能访问存储器和外设注:上图给出的是经典MCS-51的内部结构,而STC15/STC8系列增强型8051单片机内的处理器核采用了改进的设计结构,使得CPU核的整体性能有了显著提升,其速度比传统8051单片机快8~12倍,并且速度也比STC早期的IT系列单片机(如STC12/11/10系列)的速度快20%。此外,在处理器核内部使用双数据指针(DataPointer,DPTR)扩展传统的MCS-51处理器结构8位单片机处理器核的内部结构

--控制器控制器是处理器核中最重要的功能单元之一作用是保证处理器核内其他功能单元的按节奏有顺序的正常工作比如,控制器根据指令要求发出正确的控制信号,使得运算器能正确的实现加法运算控制器

--程序计数器

单片机采用了存储程序的架构,即需要执行的代码保存在一个称之为程序存储器的单元中在程序计数器(ProgramCounter,PC)的控制下,从程序存储器中源源不断地取出所要执行的指令PC是控制器中最基本的功能单元PC就是下一条所要执行指令的程序存储器地址,通常也说PC总是指向下一条要执行指令的程序存储器地址提示:打开一个程序,debug环境下,演示一下控制器

--程序计数器

从前面给出的MCS-51单片机的内部结构可知,程序计数器、PC递增计数器、缓冲区、程序地址寄存器都挂在其结构右侧的一条总线上程序地址寄存器的输出单向连接到程序存储器的地址线,用于给程序存储器提供写入/读取指令的地址。程序存储器的数据线“双向”连接到MCU的内部总线上这里需要解释一下程序存储器数据线“双向”的含义,这取决于是将指令“烧写”到程序存储器中(写入)还是从程序存储器中“取出”要执行的指令(读取)控制器

--程序计数器

控制器

--程序计数器

在一段代码中,程序指令的执行分为两种情况,一种是顺序执行,另一种是非顺序执行程序地址寄存器程序ROMPC+n1?01?01?01?01?01?01?01?01?01?01?01?01?01?01?01?0程序计数器(16位)新地址(16位)地址指令控制器

--程序计数器

顺序执行顺序执行是指按机器指令在程序存储器中的先后顺序来取出并执行指令由于MCS-51ISA中指令的长度是可变的,根据每条指令的长度n(n=1、2或3),将PC+n后的值作为下一条要执行指令的地址指向程序存储器。然后,从指向的程序存储器的地址中取出下一条要执行的指令控制器

--程序计数器

非顺序执行在编写的软件代码中,经常出现条件判断语句、跳转语句、程序调用语句和中断调用等因此,当执行程序代码的过程中遇到这些指令时,程序的执行顺序并不是按照PC+n->PC来执行程序,而是将这些语句所指向的新指令所在的新目标地址赋给程序地址寄存器控制器

--指令通道指令通道包含取指单元、译码单元、执行指令单元取指单元机器指令保存在程序存储器中,从PC所指向的程序存储器地址中取出一条机器指令在兼容MCS-51ISA的单片机中,机器指令为8位(1个字节)、16位(2个字节)或24位(3个字节)控制器

--指令通道译码单元根据取出指令的操作码字段对指令进行分析,其目的就是将机器指令转换成一系列逻辑控制序列比如控制序列中有一部分用于控制处理器核内运算单元的操作过程控制器

--指令通道执行单元当分析完指令之后,根据逻辑控制序列(微指令)所产生的逻辑行为,控制处理器核内的其他功能单元,完成指令需要的实现的具体操作行为比如,从数据存储器中加载数据到寄存器中控制器

--指令通道伴随着取指单元、译码单元和执行指令单元的是取指阶段(取指级)、译码阶段(译码级)和执行指令阶段(执行级)也就是说,取指阶段是在取指单元中完成,译码阶段是在译码单元中完成,执行阶段是在指令执行单元完成控制器

--指令通道

控制器

--指令通道对于该指令来说,译码和执行指令涉及下面的操作:从寄存器Rn中取出数据送入ALU的一个输入端口TMP1

(Rn)→(TMP1)从累加器A中取出数据送入ALU的另一个输入端口TMP2

(ACC)→(TMP2)将TMP1和TMP2的数据送到ALU进行相加,产生结果:

(TMP2)+(TMP1)→(总线)将ALU产生的结果,通过内部总线送入到ACC累加器中

(总线)→(ACC)控制器

--流水线传统8051单片机的指令通道采用的是串行结构为了分析问题的方便,下面假设每条指令的取值周期、译码周期和执行周期均相同当采用串行的指令通道时,需要T9个时钟周期才能完成对三条指令的执行。T1

T2

T3

T4

T5

取指1译码1执行指令1取指2译码2执行指令2取指3译码3执行指令3时间指令序列

0

T6

T7

T8

T9

控制器

--流水线与传统8051处理器核采用串行的指令通道相比,STC15/STC8系列增强型8051单片机处理器核内的指令通道采用了改进后的3级流水线结构(假设指令和数据之间无依赖性)T1

T2

T3

T4

T5

取指1译码1执行指令1取指2译码2执行指令2取指3译码3执行指令3时间指令序列0

控制器

--双数据指针数据指针(DataPointer,DPTR)是一个16位的专用寄存器,由DPTR的低8位(DPTRLow,DPL)和DPTR的高8位(DPTRHigh,DPH)组成它们在SFR中的地址分别为82H和83HDPTR是8051中唯一可以直接进行16位操作的寄存器可以按照字节分别对DPH和DPL进行操作控制器

--双数据指针如果8051单片机没有外部数据总线,则它只有一个DPTR。在STC15/STC8系列增强型8051单片机中,提供了外部数据总线,因此它有两个16位的数据指针DPTR0和DPTR1,这两个数据指针公用一个地址空间在STC15/STC8系列增强型8051单片机中,通过软件设置寄存器P_SW1(在SFR中的地址为A2H)中的第0位,即数据指针选择(DataPointerSelect,DPS)位来选择所使用的DPTR助记符地址名字76543210复位值AUXR1P_SW1A2H辅助寄存器1S1_S1S1_S0CCP_S1CCP_S0SPI_S1SPI_S00DPS00000000控制器

--堆栈及指针在8051单片机中,有一个称为堆栈(Stack)的特殊存储空间,其作用主要用于保存上下文(也称为现场)典型的,当执行程序的过程中遇到跳转指令时,就需要将当前PC指向的下一跳指令的地址保存起来,等待执行完跳转指令时,再将所保存的下一条指令的地址恢复到程序地址寄存器中

SP程序地址寄存器新地址步骤1步骤2控制器

--堆栈及指针下面以三个数据0x30、0x31和0x32入栈和出栈过程为例假设当前SP的内容为0x82,即(SP)=0x82也就是SP指向堆栈存储空间地址为0x82的位置控制器

--堆栈及指针入栈操作从上面的过程可以看出,随着数据的入栈操作,(SP)递增,SP总是指向最新保存的数据的存储器位置。也就是通常所说的,SP总是指向栈顶的位置控制器

--堆栈及指针出栈操作从上面的过程可以看出,随着数据的出栈操作,(SP)递减,SP总是指向最新保存的数据的存储器的位置,也就是通常所说的,SP总是指向栈顶的位置。控制器

--堆栈及指针注:当对8051单片机复位后,默认将SP的内容初始化为0x07。所以,实际上堆栈从08H的地址单元开始。考虑到地址范围0x08~0x1F是工作寄存器组1~3的地址空间。因此,如果在程序代码中使用堆栈存储空间时,建议最好将SP的内容改为0x80以上的值。8位单片机处理器核的内部结构

--运算器运算器用于执行丰富的数据操作功能8051单片机处理器核内的运算器包括8位算术逻辑单元、累加器、B寄存器、程序状态字运算器

--8位算术逻辑单元在处理器核内的运算器中,最核心的功能单元就是8位的算术逻辑单元(ArithmeticandLogicUnit,ALU)实现的功能主要包括算术运算,包括8位的加、减、乘和除运算其他运算,包括递增、递减、BCD十进制调整和比较运算逻辑运算,包括实现逻辑“与”、逻辑“或”、逻辑“异或”,逻辑“取反”(NOT)和旋转/移位运算按位运算,包括置位、复位、取补、如果没有设置则跳转操作、如果设置则跳转并且清除操作和移入/移出进位标志寄存器运算器

--

累加器累加器(Accumulator,ACC)简写为A,用于大多数指令结果的累加器累加器位于SFR地址为0xE0的位置运算器

--

B寄存器在乘法和除法运算中,B寄存器有特殊用途。对于在其他情况,它作为普通寄存器B寄存器位于SFR地址为0xF0的位置乘法操作参与乘法运算的一个操作数保存在B寄存器中,另一个保存在A寄存器中。并且,在乘法运算后,乘积的高8位保存在B寄存器中,乘积的低8位保存在A寄存器中除法操作参与除法运算的被除数保存在A寄存器中,除数保存在B寄存器中。并且,在除法运算后,所得的商保存在A寄存器中,余数保存在B寄存器中运算器

--

程序状态字在程序状态字(ProgramStatusWord,PSW)寄存器中,保存一些具有特殊含义的位,这些位反映当前8051单片机内处理器核的工作状态该寄存器位于SFR空间地址为0xD0的位置比特位76543210名字CYACF0RS1RS0OVRSVP运算器

--

程序状态字CY,进位标志算术和位指令操作影响该位在执行加法运算时,如果最高位有进位;或者在进行减法运算时,如果最高位有借位,则将CY设置为“1”;否则该位为“0”运算器

--

程序状态字AC,辅助进位标志ADD,ADDC,SUBB指令影响该位在进行加法运算时,如果第3位向第4位有进位;或者在进行减法运算时,如果第3位向第4位有借位,则将AC设置为“1”;否则设置为“0”设置辅助进位标志的目的是为了便于BCD码加法、减法运算的调整F0,通用标志0运算器

--

程序状态字RS1和RS0,寄存器组选择位用于选择不同的寄存器组RS1RS0当前使用的工作寄存器组(R0~R7)000组(00H~07H)011组(08H~0FH)102组(10H~17H)113组(18H~1FH)运算器

--

程序状态字OV,溢出标志ADD、ADDC、SUBB、MUL和DIV指令影响该位状态RSV,保留位P,奇偶标志位在指令每条指令后,设置或清除该位。该位表示累加器ACC中“1”的个数。如果累加器A中“1”的个数为奇数时,将P设置为“1”;否则,如果累加器A中“1”的个数为偶数时,将P设置为”0“8位单片机处理器核的内部结构

--特殊功能寄存器在8051单片机的处理器核中,SFR是具有特殊功能的RAM区域,它是一系列控制寄存器和状态寄存器的集合8位单片机处理器核的内部结构

--特殊功能寄存器地址0/81/92/A3/B4/C5/D6/E7/F地址0xF8P7CHCCAP0HCCAP1HCCAP2H———0xFF0xF0BPWMCFGPCA_PWM0PCA_PWM1PCA_PWM0PWMCRPWMIFPWMFDCR0xF70xE8P6CLCCAP0LCCAP1LCCAP2L———0xEF0xE0ACCP7M1P7M0———CMPCR1CMPCR20xE70xD8CCONCMODCCAPM0CCAPM1CCAPM2———0xDF0xD0PSWT4T3MT4HRL_TH4T4LRL_TL4T3HRL_TH3T3LRL_TL3T2HRL_TH2T2LRL_TL20xD70xC8P5P5M1P5M0P6M1P6M0SPSTATSPCTLSPDAT0xCF0xC0P4WDT_CONTRIAP_DATAIAP_ADDRHIAP_ADDRLIAP_CMDIAP_TRIGIAP_CONTR0xC70xB8IPSADENP_SW2—ADC_CONTRADC_RESADC_RESL—0xBF0xB0P3P3M1P3M0P4M1P4M0IP2IP2HIPH0xB70xA8IESADDRWKTCLWKCTL_CNTWKTCHWKTCH_CNTS3CONS3BUF—1E20xAF0xA0P2BUS_SPEEDAUXR1P_SW1—————0xA70x98SCONSBUFS2CONS2BUF—P1ASF——0x9F0x90P1P1M1P1M0P0M1P0M0P2M1P2M0CLK_DIVPCON20x970x88TCONTMODTL0RL_TL0TL1RL_TL1TH0RL_TH0TH1RL_TH1AUXRINT_CLK0AUXR20x8F0x80P0SPDPLDPHS4CONS4BUF—PCON0x878位单片机处理器核的内部结构

--特殊功能寄存器与传统8051单片机相比,在STC15/STC8系列单片机的SFR中又增加了新的一些寄存器8051单片机的SFR和高128字节的RAM使用相同的地址范围,即都使用0x80~0xFF的区域。因此,需要使用直接寻址方式访问SFR只有当SFR内的寄存器地址能够被8整除时才可以对该寄存器的每一位通过位地址进行操作,即上表中浅绿色区域可以进行位操作,其他区域不可以进行位操作8位单片机处理器核的内部结构

--扩展特殊功能寄存器在8位8051单片机中,SFR的地址映射空间范围为0x80~0xFF,一共128个字节SFR区域提供了用于单片机内处理器与片上外设进行交互的控制寄存器和状态寄存器也就是说,SFR本质上是多个控制寄存器和状态寄存器的集合随着8位8051单片机内所集成外设数量的不断增加,SFR区域无法为更多的控制寄存器和状态寄存器提供可用的地址空间一个棘手的问题是,如果SFR区域不能为新集成外设提供控制寄存器和状态寄存器的地址空间,那么就意味着无法实现在8位8051单片机内集成更多的外设,这将成为在8位8051单片机中集成更多外设的瓶颈8位单片机处理器核的内部结构

--扩展特殊功能寄存器如何解决这个棘手的问题呢?在STC15/STC8系列8位8051单片机中,通过扩展特殊功能寄存器(eXtendedSFR,XSFR)巧妙地解决了这个问题其方法就是在与扩展数据RAM存储器相同的地址空间内放置控制寄存器和状态寄存器物理上,XSFR和扩展数据RAM存储器又相互独立。在相同的地址空间内,如何访问两个相互独立的XSFR空间和数据RAM空间呢?技术上的创新,妙!实在是妙!8位单片机处理器核的内部结构

--扩展特殊功能寄存器在STC15/STC8系列单片机中,提供了一个端口配置寄存器P_SW2。通过配置P_SW2的EAXSFR位/P_SW2.7位,就可以使用户通过程序独立访问XSFR区域或扩展数据RAM区域当EAXSFR位设置为“0”时,处理器访问的是扩展数据RAM区域;当EAXSFR位设置为“1”时,处理器访问的是XSFR,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论