CN101114236A - 二级堆栈装置及其数据压栈和出栈方法 - Google Patents

二级堆栈装置及其数据压栈和出栈方法 Download PDF

Info

Publication number
CN101114236A
CN101114236A CNA2007101512581A CN200710151258A CN101114236A CN 101114236 A CN101114236 A CN 101114236A CN A2007101512581 A CNA2007101512581 A CN A2007101512581A CN 200710151258 A CN200710151258 A CN 200710151258A CN 101114236 A CN101114236 A CN 101114236A
Authority
CN
China
Prior art keywords
latch
data
subroutine
order
signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2007101512581A
Other languages
English (en)
Other versions
CN101114236B (zh
Inventor
江猛
贾力
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SUZHOU HUAXIN MICRO-ELECTRONICS Co Ltd
Original Assignee
SUZHOU HUAXIN MICRO-ELECTRONICS Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SUZHOU HUAXIN MICRO-ELECTRONICS Co Ltd filed Critical SUZHOU HUAXIN MICRO-ELECTRONICS Co Ltd
Priority to CN2007101512581A priority Critical patent/CN101114236B/zh
Publication of CN101114236A publication Critical patent/CN101114236A/zh
Application granted granted Critical
Publication of CN101114236B publication Critical patent/CN101114236B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

本发明公开了一种二级堆栈装置,其特征在于包括一控制器、一二级堆栈寄存器和一地址总线模块,其中,控制器产生控制信号,用于控制数据的压栈和出栈操作;二级堆栈寄存器由复数个基本单元组成,用于存储压栈的数据;地址总线模块通过地址总线与所述二级堆栈寄存器连接。本发明还公开了该二级堆栈装置的数据压栈和出栈方法。本发明的有益效果在于将地址总线(PC)和堆栈(STACK)相结合,利用4相时钟的特点来实现堆栈(STACK)的数据压栈和出栈操作,电路结构简单,控制方便,电路面积小,有效降低了成本。

Description

二级堆栈装置及其数据压栈和出栈方法
技术领域
本发明涉及集成电路领域的一种二级堆栈装置及其数据压栈和出栈方法。
背景技术
在多点控制单元(MCU)电路中,堆栈(STACK)是不可或缺的模块。堆栈的特性是先入后出,这是子程序调用的关键。二级堆栈意味着能够实现两级子程序嵌套,即主程序可以调用子程序1,子程序1可以调用子程序2,而子程序2不能够再调用其它子程序。
在对堆栈的设计中,往往把堆栈(STACK)和地址总线(PC)分离开来,堆栈(STACK)用随机存储器(RAM)结构来实现。如果地址总线(PC)为10位,可寻址1K的存储器空间,则二级堆栈需用两个10位的随机存储器(RAM)单元来实现,用以存储两次子程序调用时的跳转地址。但用随机存储器(RAM)结构实现堆栈(STACK)电路复杂,控制不易,且电路面积大,成本高。
发明内容
有鉴于此,本发明的目的就在于提供一种二级堆栈装置,不采用RAM结构,将地址总线(PC)和堆栈(STACK)结合,利用4相时钟的特点来实现堆栈(STACK)的数据压栈和出栈操作。
为实现上述发明目的,本发明采用的技术方案如下:
一种二级堆栈装置,其特征在于所述二级堆栈装置包括一控制器、一二级堆栈寄存器和一地址总线模块,其中,
控制器产生控制信号,用于控制数据的压栈和出栈操作;
二级堆栈寄存器由复数个基本单元组成,用于存储压栈的数据;
地址总线模块通过地址总线与所述二级堆栈寄存器连接。
所述基本单元包括第一、第二级锁存器,一逻辑控制单元和一使能传送器,其中,
第一级锁存器用于存储第二级子程序的返回地址数据;
第二级锁存器用于存储第一级子程序的返回地址数据;
逻辑控制单元在选择信号的控制下将返回地址数据送入第一级锁存器;
使能传送器在出栈使能信号的控制下执行地址数据的出栈操作。
所述第一级锁存器的反向输出端连接第二级锁存器的数据输入端,第一、二级锁存器分别受第一、二钟控信号控制。
所述第一、二钟控信号由所述控制器产生。
所述逻辑控制单元为二选一数据选择器,该二选一数据选择器的一个数据输入端接收入栈的地址数据,另一个数据输入端接收第二锁存器的输出数据,其输出端与第一锁存器的数据输入端连接,其控制端接收选择信号。
所述使能传送器的输入端连接第一锁存器的反向输出端,其使能端接收出栈使能信号。
所述控制器包括用于接收系统控制信号的复数个输入端。
所述系统控制信号包括四相时钟、子程序调用指令使能信号、子程序返回指令使能信号、总线复位/置位信号和跳转指令使能信号。
本发明还提供了上述二级堆栈装置的一种数据压栈和出栈方法,其特征在于该数据压栈和出栈方法包括:
系统执行第一次子程序调用指令时,控制器接收有效的子程序调用指令使能信号,在指令周期的第二个时钟周期产生有效的第二钟控信号,将第一级锁存器的数据读入第二级锁存器,在指令周期的第三个时钟周期产生有效的第一钟控信号,通过逻辑控制单元将第一级子程序的返回地址数据读入第一级锁存器;
系统执行第二次子程序调用指令时,控制器接收有效的子程序调用指令使能信号,在指令周期的第二个时钟周期产生有效的第二钟控信号,将第一级锁存器中的第一级子程序的返回地址数据读入第二级锁存器,在指令周期的第三个时钟周期产生有效的第一钟控信号,通过逻辑控制单元将第二级子程序的返回地址数据读入第一级锁存器;
系统执行子程序返回指令时,控制器接收第一个有效的子程序返回指令使能信号,在第一个指令周期的第四个时钟周期产生有效的出栈使能信号,将第一级锁存器中的第二级子程序的返回地址数据通过使能传送器送出,在第二个指令周期的第二个时钟周期,控制器产生有效的第一钟控信号,通过逻辑控制单元将第二级锁存器中的第一级子程序的返回地址数据送入第一级锁存器,控制器接收第二个有效的子程序返回指令使能信号时,在第一个指令周期的第四个时钟周期产生有效的出栈使能信号将第一级锁存器中的数据通过使能传送器送出。
本发明将地址总线(PC)和堆栈(STACK)相结合,通过设置控制器,利用4相时钟的特点来实现堆栈(STACK)的数据压栈和出栈操作。本发明的有益效果在于电路结构简单,控制方便,电路面积小,有效降低了成本。
附图说明
下面结合附图和具体实施方式对本发明作进一步的阐述。
附图1为本发明所述二级堆栈装置的结构框图;
附图2为二级堆栈寄存器的基本单元的电路结构图;
附图3为本发明所述二级堆栈装置的工作时序图。
具体实施方式
如图1所示,一种二级堆栈装置,包括控制器PC_STACK CONTROL、总线模块PC和二级堆栈寄存器STACK,总线模块PC和二级堆栈寄存器STACK通过地址总线连接,并在控制器PC_STACK CONTROL的控制下进行数据的压栈和出栈操作。
控制器PC_STACK CONTROL包括八个信号输入端,其中四个输入端作为四相时钟的输入端;一个输入端接收系统的子程序调用指令使能信号CALL_EN,子程序调用指令使能信号CALL_EN在子程序调用指令执行时有效;一个输入端接收系统的跳转指令使能信号JMP_EN,跳转指令使能信号JMP_EN在跳转指令执行时有效(含子程序调用指令和地址跳转指令);一个输入端接收系统的子程序返回指令使能信号RET_EN,子程序返回指令使能信号RET_EN在子程序返回指令执行时有效;还有一个输入端接收总线复位/置位信号CLR。控制器PC_STACK CONTROL为总线模块PC和二级堆栈寄存器STACK产生控制信号,控制总线地址的增加和跳转以及地址数据的压栈和出栈操作。总线模块PC为n位地址总线PC,用以控制只读存储器ROM,读取指令;二级堆栈寄存器STACK由与地址总线模块PC对应的n个基本单元组成,每个基本单元分别对应地址总线PC的一位数据。
如图2为二级堆栈寄存器的基本单元的电路结构图。该基本单元包括第一级锁存器I1、第二级锁存器I2、使能传送器G(高电平有效)和二选一数据选择器mux2。第一级锁存器I1的反向输出端Q连接第二级锁存器I2的数据输入端D,二选一数据选择器mux2的数据输入端A接收入栈的地址数据PCin,数据输入端B连接第二锁存器I2的反向输出端Q。二选一数据选择器mux2的输出端Y与第一锁存器I1的数据输入端D连接,其控制端S接收选择信号SEL。使能传送器G的输入端连接第一锁存器I1的反向输出端Q_,其使能端接收出栈使能信号Pop,其输出端STout输出出栈的地址数据。
第一级锁存器I1和第二级锁存器I2为普通的锁存器(LATCH)。二选一数据选择器mux2当选择信号SEL=0时,输出Y=A;当选择信号SEL=1时,输出Y=B。当出栈使能信号Pop有效时(高电平有效),使能传送器G的输出端STout输出第一锁存器I1的输出值,用以影响地址总线PC的当前值。第一钟控信号CK1和第二钟控信号CK2由控制器PC_STACK CONTROL产生,分别作为第一级锁存器I1和第二级锁存器I2的时钟输入。
图2所示电路结构的工作原理如下:当第一钟控信号CK1=1时,第一锁存器I1读入二选一数据选择器mux2的输出端Y的值;当第二钟控信号CK2=1时,第二锁存器I2读入第一锁存器I1的值。当出栈使能信号Pop=1时,能传送器G的输出端Stout输出第一级锁存器I1的输出值。
下面结合图2、图3对数据压栈和出栈操作过程进行介绍:
如图3所示,四相时钟Q1~Q4为构成一个指令周期的四个时钟周期,第一个时钟周期Q1修改地址总线PC的当前值,第二个时钟周期Q2取指令进行译码,第三个时钟周期Q3执行逻辑算术运算,第四个时钟周期Q4写入结果。子程序调用指令使能信号CALL_EN和子程序返回指令使能信号RET_EN在第二个时钟周期Q2时有效。当系统执行第一次子程序调用指令时,子程序调用指令使能信号CALL_EN=1,第二钟控信号CK2在第二个时钟周期Q2时有效,第二锁存器I2读入第一锁存器I1的值,第一钟控信号CK1在第三个时钟周期Q3时有效,此时选择信号SEL=0,第一寄存器I1读入地址总线PC的值PCin(此时,第一锁存器I1存入的为第一次子程序调用时的返回地址,第二锁存器I2存入不确定量);当系统执行第二次子程序调用指令时,子程序调用指令使能信号CALL_EN=1,当第二钟控信号CK2=1时,第二锁存器I2读入第一锁存器I1的值(此时第二锁存器I2的值为第一次子程序调用时的返回地址),当第一钟控信号CK1=1时,第一锁存器I1读入当前要跳转时的地址值,此时第一锁存器I1的值为第二次子程序调用时的返回地址。这样就实现了堆栈的特性,即压栈时,后入的数据在栈顶(即第一锁存器I1)。
当子程序返回(返回指令需要执行2个指令周期)时,子程序返回指令使能信号RET_EN有效。当执行第一次子程序返回指令时,出栈使能信号Pop在第一个指令周期的第四个时钟周期Q4有效,第一锁存器I1的值通过使能传送器G传送到输出端STout,即栈顶的数据先出栈。在第二个指令周期的第二个时钟周期Q2时,第一钟控信号CK1=1,选择信号SEL=1,第一锁存器I1读入第二锁存器I2的值(此时第一锁存器I1的值为第二次子程序调用时的返回地址),这样,栈底的值被送到栈顶。当执行第二次子程序返回指令时,同理,第一锁存器I1的值被送到使能传送器G的输出端STout。这样就实现了二级堆栈的功能,也就实现了两级子程序调用。

Claims (9)

1.一种二级堆栈装置,其特征在于所述二级堆栈装置包括一控制器、一二级堆栈寄存器和一地址总线模块,其中,
控制器产生控制信号,用于控制数据的压栈和出栈操作;
二级堆栈寄存器由复数个基本单元组成,用于存储压栈的数据;
地址总线模块通过地址总线与所述二级堆栈寄存器连接。
2.如权利要求1所述的二级堆栈装置,其特征在于所述基本单元包括第一、第二级锁存器,一逻辑控制单元和一使能传送器,其中,
第一级锁存器用于存储第二级子程序的返回地址数据;
第二级锁存器用于存储第一级子程序的返回地址数据;
逻辑控制单元在选择信号的控制下将返回地址数据送入第一级锁存器;
使能传送器在出栈使能信号的控制下执行地址数据的出栈操作。
3.如权利要求2所述的二级堆栈装置,其特征在于所述第一级锁存器的反向输出端连接第二级锁存器的数据输入端,第一、二级锁存器分别受第一、二钟控信号控制。
4.如权利要求3所述的二级堆栈装置,其特征在于所述第一、二钟控信号由所述控制器产生。
5.如权利要求2所述的二级堆栈装置,其特征在于所述逻辑控制单元为二选一数据选择器,该二选一数据选择器的一个数据输入端接收入栈的地址数据,另一个数据输入端接收第二锁存器的输出数据,其输出端与第一锁存器的数据输入端连接,其控制端接收选择信号。
6.如权利要求2所述的二级堆栈装置,其特征在于所述使能传送器的输入端连接第一锁存器的反向输出端,其使能端接收出栈使能信号。
7.如权利要求1所述的二级堆栈装置,其特征在于所述控制器包括用于接收系统控制信号的复数个输入端。
8.如权利要求7所述的二级堆栈装置,其特征在于所述系统控制信号包括四相时钟、子程序调用指令使能信号、子程序返回指令使能信号、总线复位/置位信号和跳转指令使能信号。
9.如权利要求2所述的二级堆栈装置的一种数据压栈和出栈方法,其特征在于所述数据压栈和出栈方法包括:
系统执行第一次子程序调用指令时,控制器接收有效的子程序调用指令使能信号,在指令周期的第二个时钟周期产生有效的第二钟控信号,将第一级锁存器的数据读入第二级锁存器,在指令周期的第三个时钟周期产生有效的第一钟控信号,通过逻辑控制单元将第一级子程序的返回地址数据读入第一级锁存器;
系统执行第二次子程序调用指令时,控制器接收有效的子程序调用指令使能信号,在指令周期的第二个时钟周期产生有效的第二钟控信号,将第一级锁存器中的第一级子程序的返回地址数据读入第二级锁存器,在指令周期的第三个时钟周期产生有效的第一钟控信号,通过逻辑控制单元将第二级子程序的返回地址数据读入第一级锁存器;
系统执行子程序返回指令时,控制器接收第一个有效的子程序返回指令使能信号,在第一个指令周期的第四个时钟周期产生有效的出栈使能信号,将第一级锁存器中的第二级子程序的返回地址数据通过使能传送器送出,在第二个指令周期的第二个时钟周期,控制器产生有效的第一钟控信号,通过逻辑控制单元将第二级锁存器中的第一级子程序的返回地址数据送入第一级锁存器,控制器接收第二个有效的子程序返回指令使能信号时,在第一个指令周期的第四个时钟周期产生有效的出栈使能信号将第一级锁存器中的数据通过使能传送器送出。
CN2007101512581A 2007-09-18 2007-09-18 二级堆栈装置及其数据压栈和出栈方法 Expired - Fee Related CN101114236B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007101512581A CN101114236B (zh) 2007-09-18 2007-09-18 二级堆栈装置及其数据压栈和出栈方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007101512581A CN101114236B (zh) 2007-09-18 2007-09-18 二级堆栈装置及其数据压栈和出栈方法

Publications (2)

Publication Number Publication Date
CN101114236A true CN101114236A (zh) 2008-01-30
CN101114236B CN101114236B (zh) 2011-11-30

Family

ID=39022595

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101512581A Expired - Fee Related CN101114236B (zh) 2007-09-18 2007-09-18 二级堆栈装置及其数据压栈和出栈方法

Country Status (1)

Country Link
CN (1) CN101114236B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011109970A1 (zh) * 2010-03-10 2011-09-15 上海海尔集成电路有限公司 数据堆栈存储电路及微控制器
CN105224485A (zh) * 2014-07-03 2016-01-06 刘伯安 一种普适的串行数据的接收方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201107770Y (zh) * 2007-09-18 2008-08-27 苏州市华芯微电子有限公司 二级堆栈装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011109970A1 (zh) * 2010-03-10 2011-09-15 上海海尔集成电路有限公司 数据堆栈存储电路及微控制器
CN102193868A (zh) * 2010-03-10 2011-09-21 上海海尔集成电路有限公司 数据堆栈存储电路及微控制器
CN102193868B (zh) * 2010-03-10 2013-06-19 上海海尔集成电路有限公司 数据堆栈存储电路及微控制器
CN105224485A (zh) * 2014-07-03 2016-01-06 刘伯安 一种普适的串行数据的接收方法及装置
CN105224485B (zh) * 2014-07-03 2019-05-07 刘伯安 一种普适的串行数据的接收方法及装置

Also Published As

Publication number Publication date
CN101114236B (zh) 2011-11-30

Similar Documents

Publication Publication Date Title
US7903456B2 (en) Superconducting circuit for high-speed lookup table
CN102981776B (zh) 双倍数据率虚拟静态随机存取存储器及其控制器、存取与操作方法、写入与读取方法
US8441888B2 (en) Write command and write data timing circuit and methods for timing the same
US9965386B2 (en) Method for generating row transposed architecture based on two-dimensional FFT processor
CN100585852C (zh) 使用最少引脚而被测试的半导体器件、以及测试其的方法
CN101847986B (zh) 一种实现fft/ifft变换的电路及方法
CA3103818A1 (en) Superconducting non-destructive readout circuits
CN101231877A (zh) 存取n端口存储器m个存储器地址的方法及n端口存储器
CN102508803A (zh) 一种矩阵转置存储控制器
CN1945737B (zh) 具有等待时间计数器的半导体器件
CN103279309A (zh) 基于fpga的ddr控制装置及方法
JP2004523056A5 (zh)
CN102789815A (zh) 一种用于fpga配置的prom电路架构
CN103048644A (zh) 合成孔径雷达成像系统的矩阵转置方法及转置装置
CN101114236B (zh) 二级堆栈装置及其数据压栈和出栈方法
CN212112470U (zh) 一种矩阵乘法计算电路
WO2013097223A1 (zh) 多粒度并行存储系统与存储器
CN201107770Y (zh) 二级堆栈装置
TW293107B (zh)
WO2013097228A1 (zh) 多粒度并行存储系统
EP0520425B1 (en) Semiconductor memory device
CN1949396B (zh) 半导体存储器件的修复电路
CN104572519A (zh) 一种用于多处理器的多端口访存控制器及其控制方法
CN104461956A (zh) 访问同步动态随机访问存储器的方法、装置及系统
CN106571156B (zh) 一种高速读写ram的接口电路及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20080130

Assignee: East Branch, China Electronic Product Reliability and Environmental Testing Research Institute,Mll

Assignor: Suzhou Huaxin Microelectronics Co., Ltd.

Contract record no.: 2018110000030

Denomination of invention: B grade stacking device and data stack pushing and out-stack method

Granted publication date: 20111130

License type: Exclusive License

Record date: 20180503

EE01 Entry into force of recordation of patent licensing contract
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20111130

Termination date: 20200918

CF01 Termination of patent right due to non-payment of annual fee