数据堆栈存储电路及微控制器制造技术

技术编号:6536638 阅读:182 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种数据堆栈存储电路及微控制器,该数据堆栈存储电路包括数据堆栈存储器和数据堆栈控制电路;所述数据堆栈存储器和数据堆栈控制电路相连接;所述数据堆栈存储器连接于数据总线;所述数据堆栈控制电路连接于控制总线;且数据堆栈控制电路用于根据所述控制总线中的进栈操作信号,将所述数据总线中已准备好压栈的数据压入所述数据堆栈存储器的栈顶,或者用于根据所述控制总线中的出栈操作信号,将已准备好弹栈的数据从所述数据堆栈存储器的栈顶弹出至所述数据总线中。本发明专利技术实现了进栈和出栈操作通过指令可完成的目的,提高了对数据堆栈进行进栈与出栈操作的执行效率。

【技术实现步骤摘要】

本专利技术涉及计算机
,尤其涉及一种数据堆栈存储电路及微控制器
技术介绍
堆栈的进栈与出栈操作作为一种数据处理方式,在微控制器中被广泛采用。堆栈主要包括程序堆栈和数据堆栈,其中,程序堆栈几乎应所有的微控制器中,主要程序跳转或中断处理时,对当前程序地址的保存及恢复。由于早期较为低端的微控制器需要处理的数据处理量相对较少,而应用程序结构又相对简单,因此很少涉及到数据堆栈。但随着微控制器的广泛应用,以及应用系统复杂度的提升,使得数据处理量和应用程序结构的复杂度增力口,特别是高级语言开发环境的使用,要经常保存和恢复大量的函数变量;在这种情况下, 由于数据堆栈能够方便地实现大量数据的保护和恢复,因此,越来越多的微控制器开始应用数据堆栈,同时对数据堆栈操作方式也在不断改进,以提升保存和恢复大量的函数变量进行效率。图4为现有技术的中低端微控制器的堆栈结构示意图。如图4所示,在现有技术中,对于中低端微控制器,很少采用硬件结构的数据堆栈,而多以片内通用数据存储器作为硬件基础,并通过软件的方式模拟数据堆栈的操作。具体地,将通用数据存储器的一段地址空间的存储器作为数据堆栈;用某个通用数据存储器或寄存器作为堆栈指针,存储当前栈顶的地址,并且所有的进栈与出栈操作都是通过普通的存储器转移或运算指令来完成。在这些中低端微控制器中,由于数据堆栈需占用通用数据存储器的部分数据空间,很难保证该数据堆栈中被保护的数据与该通用数据存储器其他数据的相对独立性。具体地,在执行相关程序而调用该通用数据存储器的其他数据时,很有可能会误操作数据堆栈中的内容, 从而造成数据堆栈中所保护的数据被改写,因此具有上述数据堆栈的低端微控制器构架形式存在数据安全性差的缺点。图5为现有技术的中高端微控制器中的堆栈结构示意图。如图5所示,对于中高端微控制器,则多采用硬件结构的数据堆栈,为独立的数据堆栈存储器。具体地,通过设置读或写控制寄存器所包括的数据堆栈读或写控制位,对读或写缓冲寄存器暂存准备进栈的数据或出栈读出的数据进行操作;由特定的硬件寄存器作为堆栈指针,存储当前栈顶的地址, 以进行进栈或出栈操作。在这些中高端微控制器的数据堆栈相关构架中,由于需通过读或写控制寄存器和读或写缓冲寄存器间接地对数据堆栈进行操作,而使得进栈与出栈操作执行效率不高。
技术实现思路
本专利技术提供一种数据堆栈存储电路及微控制器,用以解决现有微控制器中由于需通过读或写控制寄存器和读或写缓冲寄存器间接地对数据堆栈进行操作,而使得进栈与出栈操作执行效率不高的缺陷。本专利技术提供一种数据堆栈存储电路,其中,包括数据堆栈存储器和数据堆栈控制电路;所述数据堆栈存储器和数据堆栈控制电路相连接;所述数据堆栈存储器连接于数据总线;所述数据堆栈控制电路连接于控制总线;且数据堆栈控制电路用于根据所述控制总线中的进栈操作信号,将所述数据总线中已准备好压栈的数据压入所述数据堆栈存储器的栈顶,或者用于根据所述控制总线中的出栈操作信号,将已准备好弹栈的数据从所述数据堆栈存储器的栈顶弹出至所述数据总线中。本专利技术提供一种微控制器,包括控制器,其中,还包括数据堆栈存储电路;所述控制器连接于控制总线,且所述控制器用于通过分析进栈指令的操作码,以生成第一控制信号集合并发送至所述控制总线;或者,用于通过分析出栈指令的操作码,以生成第二控制信号集合并发送至所述控制总线;所述数据堆栈存储电路包括数据堆栈存储器和数据堆栈控制电路;所述数据堆栈存储器和数据堆栈控制电路相连接;所述数据堆栈存储器连接于数据总线;所述数据堆栈控制电路连接于所述控制总线;且数据堆栈控制电路用于根据所述第一控制信号集合中的进栈操作信号,将所述数据总线中已准备好压栈的数据压入所述数据堆栈存储器的栈顶,或者用于根据所述第二控制信号集合中的出栈操作信号,将已准备好弹栈的数据从所述数据堆栈存储器的栈顶弹出至所述数据总线中。本专利技术的数据堆栈存储电路及微控制器,通过数据堆栈存储电路所包括的数据堆栈控制电路根据控制总线中的进栈操作信号,将数据总线中已准备好压栈的数据压入数据堆栈存储器的栈顶,或者根据所控制总线中的出栈操作信号,将已准备好弹栈的数据从数据堆栈存储器的栈顶弹出至数据总线中的技术方案,解决了现有微控制器中由于需通过读或写控制寄存器和读或写缓冲寄存器间接地对数据堆栈进行操作,而使得进栈与出栈操作执行效率不高的缺陷,实现了进栈和出栈操作通过各自所对应的相关指令即可完成的目的,省去了读或写控制寄存器及读或写缓冲寄存器复杂的芯片构架形式,且提高了对数据堆栈进行进栈与出栈操作的执行效率。附图说明图1为本专利技术数据堆栈存储电路的结构示意图;图2为本专利技术微控制器实施例一的结构示意图;图3为本专利技术微控制器实施例二的结构示意图;图4为现有技术的中低端微控制器的堆栈结构示意图;图5为现有技术的中高端微控制器的堆栈结构示意图。具体实施例方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合本专利技术中的附图,对本专利技术的技术方案进行描述。图1为本专利技术数据堆栈存储电路的结构示意图。如图1所示,本实施例的数据堆栈存储电路包括数据堆栈存储器101和数据堆栈控制电路102,该数据堆栈存储器101和数据堆栈控制电路102相连接,其中,数据堆栈存储器101连接于数据总线,数据堆栈控制电路102连接于控制总线,且数据堆栈控制电路102包括进栈控制电路模块1021和出栈控制电路模块1022。其中,数据堆栈存储器101是专用来存放数据,而不是存放程序地址的; 且数据堆栈存储器与程序保护栈、通用数据寄存器堆是相互独立的,对数据堆栈存储器101 的操作需通过进栈指令(在程序语言中可标识为PUSH指令)和出栈指令(在程序语言中可标识为POP指令)来进行,而不能用控制器的普通读写操作来对数据堆栈存储器101进行操作。在进栈操作的过程中,数据堆栈控制电路102中的进栈控制电路模块1021根据控制总线中的进栈操作信号,将数据总线中已准备好压栈的数据压入数据堆栈存储器101的栈顶,其中已准备好压栈的数据可以为寻址IO 口而获得的数据、中断操作中所需保护的数据或者寻址数据存储器而获得的数据;在出栈操作的过程中,数据堆栈控制电路102中的出栈控制电路模块1022根据控制总线中的出栈操作信号,将已准备好弹栈的数据从数据堆栈存储器101的栈顶弹出至数据总线中。在实际应用中,数据堆栈存储器101可为一个独立的存储器,或者为一个独立的存储器的部分存储空间,或者为至少两个独立的存储器的组合,或者为至少一个独立的存储器和至少一个独立的存储器的部分存储空间的组合,或者为至少两个独立的存储器中部分存储空间的组合。进一步地,本实施例的数据堆栈存储电路还包括硬件堆栈指针103,该硬件堆栈指针103连接于控制总线和数据堆栈存储器101,且硬件堆栈指针103在进栈控制电路模块 1021根据控制总线中的进栈操作信号将数据总线中已准备好压栈的数据压入数据堆栈存储器101的栈顶后,可根据所述控制总线中的硬件堆栈指针加1信号而自行加1 ;或者在出栈控制电路模块1022根据控制总线中的出栈操作信号将已准备好弹栈的数据从数据堆栈存储器101的栈顶弹出至数据总线后,可根据所述控制总线中的硬件堆栈指针减1信号而自行减1。再进一步地,本实施例的数据堆栈存储电本文档来自技高网
...

【技术保护点】
1.一种数据堆栈存储电路,其特征在于,包括数据堆栈存储器和数据堆栈控制电路;所述数据堆栈存储器和数据堆栈控制电路相连接;所述数据堆栈存储器连接于数据总线;所述数据堆栈控制电路连接于控制总线;且数据堆栈控制电路用于根据所述控制总线中的进栈操作信号,将所述数据总线中已准备好压栈的数据压入所述数据堆栈存储器的栈顶,或者用于根据所述控制总线中的出栈操作信号,将已准备好弹栈的数据从所述数据堆栈存储器的栈顶弹出至所述数据总线中。

【技术特征摘要】
1.一种数据堆栈存储电路,其特征在于,包括数据堆栈存储器和数据堆栈控制电路; 所述数据堆栈存储器和数据堆栈控制电路相连接;所述数据堆栈存储器连接于数据总线;所述数据堆栈控制电路连接于控制总线;且数据堆栈控制电路用于根据所述控制总线中的进栈操作信号,将所述数据总线中已准备好压栈的数据压入所述数据堆栈存储器的栈顶,或者用于根据所述控制总线中的出栈操作信号,将已准备好弹栈的数据从所述数据堆栈存储器的栈顶弹出至所述数据总线中。2.根据权利要求1所述的数据堆栈存储电路,其特征在于,所述数据堆栈存储器为一个独立的存储器,或者为一个独立的存储器的部分存储空间,或者为至少两个独立的存储器的组合,或者为至少一个独立的存储器和至少一个独立的存储器的部分存储空间的组合,或者为至少两个独立的存储器中部分存储空间的组合。3.根据权利要求1所述的数据堆栈存储电路,其特征在于,所述数据堆栈控制电路包括进栈控制电路模块和出栈控制电路模块;所述进栈控制电路模块用于根据所述控制总线中的进栈操作信号,将所述数据总线中已准备好压栈的数据压入所述数据堆栈存储器的栈顶;所述出栈控制电路模块用于根据所述控制总线中的出栈操作信号,将已准备好弹栈的数据从所述数据堆栈存储器的栈顶弹出至所述数据总线中。4.根据权利要求1所述的数据堆栈存储电路,其特征在于,还包括硬件堆栈指针,所述硬件堆栈指针连接于所述控制总线和所述数据堆栈存储器;所述硬件堆栈指针用于在所述数据总线中已准备好压栈的数据被压入所述数据堆栈存储器的栈顶后,根据所述控制总线中的硬件堆栈指针加1信号而自行加1 ;或者在已准备好弹栈的数据从所述数据堆栈存储器的栈顶弹出至所述数据总线后,根据所述控制总线中的硬件堆栈指针减1信号而自行减1。5.根据权利要求4所述的数据堆栈存储电路,其特征在于,还包括溢出标志寄存器,所述溢出标志寄存器连接于所述硬件堆栈指针,且所述溢出标志寄存器包括上溢标志位和下溢标志位。6.一种微控制器,包括控制器,其特征在于,还包括数据堆栈存储电路;所述控制器连接于控制总线,且所述控制器用于通过分析进栈指令的操作码,以生成第一控制信号集合并发送至所述控制总线;或者,用于通过分析出栈指令的操作码,以生成第二控制信号集合并发送至所述控制总线;所述数据堆栈存储电路包括数据堆栈存储器和数据堆栈控制电路;所述数据堆栈存储器和数据堆栈控制电路相连接;所述数据堆栈存储器连接于数据总线;所述数据堆栈控制电路连接于所述控制总线;且数据堆栈控制电路用于根据所述第一控制信号集合中的进栈操作信号,将所述数据总线中已准备好压栈的数...

【专利技术属性】
技术研发人员:史卫东潘松岳卫杰许云峰
申请(专利权)人:上海海尔集成电路有限公司
类型:发明
国别省市:31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1