基于FPGA的栈空间管理器的研究和设计
[09-12 18:35:36] 来源:http://www.88dzw.com EDA/PLD 阅读:8899次
文章摘要: 摘 要: 提出了一种将堆栈空间划分为任务栈和中断嵌套栈的设计结构,使堆栈空间最小化。采用VHDL硬件语言,在FPGA设备上模拟实现了具有自动检验功能的栈空间管理器。栈空间管理器由不同功能的逻辑模块组成,主要阐述了状态控制逻辑模块和地址产生逻辑模块的设计方法。航空航天、工业控制、汽车电子和核电站建设等领域的高速发展,对嵌入式操作系统实时性的要求越来越高。同时,由于FPGA的集成度和速度的不断提高,使嵌入式操作系统硬件化实现成为发展趋势。硬实时操作系统中的堆栈管理对系统的实时性和可靠性起着至关重要的作用,而传统操作系统内核是将每个任务的堆栈空间直接进行最大化处理,导致大量存储空间浪费,
基于FPGA的栈空间管理器的研究和设计,标签:eda技术,eda技术实用教程,http://www.88dzw.com摘 要: 提出了一种将堆栈空间划分为任务栈和中断嵌套栈的设计结构,使堆栈空间最小化。采用VHDL硬件语言,在FPGA设备上模拟实现了具有自动检验功能的栈空间管理器。栈空间管理器由不同功能的逻辑模块组成,主要阐述了状态控制逻辑模块和地址产生逻辑模块的设计方法。
航空航天、工业控制、汽车电子和核电站建设等领域的高速发展,对嵌入式操作系统实时性的要求越来越高。同时,由于FPGA的集成度和速度的不断提高,使嵌入式操作系统硬件化实现成为发展趋势。硬实时操作系统中的堆栈管理对系统的实时性和可靠性起着至关重要的作用,而传统操作系统内核是将每个任务的堆栈空间直接进行最大化处理,导致大量存储空间浪费,另外采用通用RAM寻址方式也不能满足对被切换任务信息的快速保护。
基于上述问题,本文提出了一种堆栈空间结构,设计了一款具有自动检验功能的栈空间管理器,并在Xilinx公司的集成开发环境FPGA系统上实现。
1 堆栈空间结构
堆栈空间是按先进后出(LIFO)原则分配的连续存储器空间,可以满足保护任务切换信息和中断响应时保护处理器状态和任务参数数据的需要[1],且对每个任务分配一个单独的任务栈和一个响应系统中断任务的中断嵌套栈。如图1所示,栈空间划分为n个任务栈和1个中断嵌套栈。
任务栈主要保护被切换任务的信息。它存放的数据有:任务代码首地址、任务参数、任务中定义的局部变量、被调用函数的参数和局部变量及任务中各个函数的返回地址。中断嵌套栈存放被中断任务的数据,包括发生中断时需要保存的上下文、中断嵌套时需要保存的上下文和中断服务程序的局部变量。
在硬实时操作系统中,当发生中断或中断嵌套时,堆栈地址指针从任务栈切换到中断嵌套栈。当所有的中断服务程序全部执行完成后,堆栈地址指针从中断嵌套栈切换到任务栈,继续执行该被中断的任务。这种管理方式同以往操作系统采用被中断任务的数据保存到相应任务堆栈的方法相比,更有效节约了堆栈空间开销。
2 栈空间管理器总体结构
为了节约RAM开销,从总体结构上构建了一款具有LIFO及自检功能的栈空间管理器。栈空间管理器结构包括一个双端口存储单元、状态控制逻辑模块、地址产生逻辑模块、中断判断逻辑。其中状态控制逻辑模块由空/满标志产生逻辑、二进制运算逻辑和标志寄存器组3部分组成;地址产生逻辑模块由读/写地址逻辑、中断栈逻辑和地址寄存器组3部分组成。
由图2可知,状态控制逻辑模块的工作过程为:从标志寄存器组中读出当前任务栈的使用量fcount信号值,fcount信号值传送至二进制运算逻辑。在读/写控制信号有效的情况下,二进制运算逻辑有效,修改fcount信号值,修改后的值作为USED的输出值,同时写回到标志寄存器的对应fcount位中。修改后的信号值也作为空/满标志产生逻辑的输入信号,空/满标志产生逻辑生成Full/Empty标志,并把该标志位写回到标志寄存器对应位Full/Empty中。其中标志寄存器freg的结构如图3所示,初始值为0000001000000000B。
中断判断逻辑由输入信号INT与标志寄存器位IntNeSTing值决定是否有效。如果有中断发生,则中断栈逻辑有效,中断栈逻辑生成读/写地址,否则读/写地址逻辑有效,生成相应的读/写地址。
在读/写控制信号有效的情况下,从堆栈地址寄存器组中读出当前任务的地址,经过读/写地址逻辑或中断栈逻辑产生堆栈地址指针,作为HOS 堆栈空间的入栈/出栈地址。执行入栈时,在同步时钟和入栈控制信号有效的情况下,中断判断逻辑判断是否存在中断或中断嵌套,如果没有,则由写地址逻辑生成入栈地址;否则由中断栈逻辑生成写地址。同理,执行出栈时,在同步时钟和出栈控制信号有效的情况下,中断判断逻辑判断是否存在中断或中断嵌套,如果没有,则读地址逻辑生成出栈地址;否则中断栈逻辑生成出栈地址。
《基于FPGA的栈空间管理器的研究和设计》相关文章
- › 基于FPGA的单片彩色LCD投影机设计
- › 256级灰度LED点阵屏显示原理及基于FPGA的电路设计
- › 基于FPGA的LCD%26amp;VGA控制器设计
- › 基于FPGA的信道化接收机
- › 基于FPGA和SMT387的SAR数据采集与存储系统
- › 基于FPGA的栈空间管理器的研究和设计
- 在百度中搜索相关文章:基于FPGA的栈空间管理器的研究和设计
- 在谷歌中搜索相关文章:基于FPGA的栈空间管理器的研究和设计
- 在soso中搜索相关文章:基于FPGA的栈空间管理器的研究和设计
- 在搜狗中搜索相关文章:基于FPGA的栈空间管理器的研究和设计