首页 > 个性签名 正文
【空间flash模块】基于内存映射的闪存高速低功耗驱动实现

时间:2023-02-08 02:44:50 阅读: 评论: 作者:佚名

这个,林龙凤,李辉庆。

(中北大学电子测试技术国家重点研究所,山西省太原030051)

摘要:针对高速大容量闪存芯片控制中出现的高速可靠性低、动态功耗大的问题,研究了将复杂的状态机任务映射到嵌入式Flash中运行的方法。内嵌RAM读取地址的切换允许待机延迟状态跳跃和输出控制。加强时钟管理、组合逻辑分割等,防止信号不必要的反转,大大提高定时操作的可靠性,降低动态功耗。实践表明,与传统状态系统相比,该方法实现的闪存控制时序可以将资源消耗和功耗都减少50%以上,为复杂时序逻辑的实现提供了新思路。

0简介

在FPGA的Flash控制操作中,FSM (Finite State Machine)与多进程描述相比,具有层次、结构、易修改和易移植性等明显优势,被广泛使用。传统状态机在描述寄存器存储状态信息的实现、组合逻辑生成下一个状态和输出值时,将使用FPGA的布线、查找表、寄存器等宝贵资源[1]。

为了实现FPGA的可编程性,内部使用了很多可编程逻辑开关。可编程逻辑开关的电阻比金属丝大得多,引进了大量寄生电容器,增加了电路功耗,降低了电路速度[2](研究表明,总动态功耗的62%来自可编程布线资源。)此外,大量的组合逻辑容易出现布局布线延迟,查找表的输出端会出现“毛刺”,因此,如果系统时钟频率和操作密度大大提高,则很容易出现时间系列逻辑错误[3]。为此,为了有选择地使用FPGA资源,降低FPGA功耗,提高操作可靠性,研究了基于内存映射的有限状态机逻辑实现方法。

1 NAND闪存芯片接口和基本驱动程序的实现

NAND Flash芯片通过异步高性能I/O与主芯片通信,通过8位多路复用总线传输操作指令、操作地址和数据以及多个控制信号来区分总线接口状态,并获得芯片操作状态,如图1所示。

NAND闪存芯片控制器主要完成初始化、错误块检测、块删除、页面编程和页面读取五种基本操作模式。其中,初始化操作和无效块验证是打开系统电源后必须首先执行的操作。控制器随后进入空闲状态,根据输入的相应控制信号完成剩余的块清除、页面编程和页面读取操作。每个操作模式都是状态转移,实现一定时间的输出和接收,可以很容易地用状态机实现。对于块删除,输入信号有Erase_en、Earse_do和R/B三个信号,输出信号有CLE、ALE、WE、RE四个信号,状态切换如图2所示。

基于 2记忆映射的有限状态机设计

2.1基于优化资源配置的低功耗、高可靠性设计思路

目前,主流FPGA芯片内部除了查找表、触发器、布线资源等基本逻辑资源外,还集成了块RAM、分部RAM、时钟管理等多种资源。FPGA的可编程特性主要由布线结构的可编程开关连接可编程逻辑块来实现。

每种资源类型消耗的动态功耗在FPGA总功耗上有所不同。其中,总动态功耗的62%来自布线资源,19%来自时钟网络,可编程逻辑块仅占动态功耗的19%[4]。

根据FPGA不同资源性能、功耗不同的现象,提出了满足系统性能的新设计思路。也就是说,您可以选择性地使用FPGA资源,使用相对低功耗的资源来执行设计任务。通过将有限状态系统映射到FPGA内部RAM,可以减少布线资源的使用,从而减少FPGA的动态功耗,并消除高速状态下由于布线延迟而出现的错误或错误状态[5]。

基于2.2记忆映射的有限状态机设计方法

状态机组合逻辑可以抽象为与特定输入代码和特定输出代码相对应。也就是说,当前状态和输入信号共同决定子状态的编码[6]。为了在块RAM中运行有限状态机,必须将状态机的编码和状态传输等信息映射到块RAM。具体方法是:块RAM中每个存储单元的内容分为状态系统的状态编码信息和状态系统的输出信息。状态系统的当前编码信息和状态系统的输入信息共同构成了以下状态编码信息的存储地址:

[d 23360d 0]表示闪存块删除状态系统的八种操作状态,[d43360d3]表示三次发送的块地址信息,[D5]表示使用的两个操作命令,则可以使用操作状态代码、地址代码和命令代码来唯一确定状态系统的当前状态(

其中次态的高4位是状态机向下一状态转化时的输出值,用于对Flash芯片的控制;当前态的高3位是状态机的输入控制信号。采用这种编码方式容易将图2所示的有限状态机表示为当前态与次态对应的真值表见表1。

将表1中当前态作为RAM的存储地址,次态作为RAM中存储的数据,即可以将图2所示的有限状态机映射到存储器上执行,如图4所示。状态机进行转化时,下一状态的编码信息存储地址由当前状态的编码信息和状态机的输入信息共同决定。同样,Flash操作中其他的操作模式均可以按这种方式编码并映射为用存储器执行的有限状态机。

实现有限状态机到存储映射所需要的存储空间最大为:

M=2i×(O+S)

其中i表示状态机输入的位数,O表示状态机输出的位数,S是状态编码的位数。

当然,当有限状态机越来越复杂时,其所需的存储空间容量越来越大,也可以适当地根据实际情况通过逻辑控制对地址控制进行修正来减小存储空间需求。

3 NAND Flash控制中的低功耗优化设计

FPGA的功耗主要包含静态功耗和动态功耗两部分。静态功耗主要取决于所选FPGA的型号;动态功耗是所有电容性节点充放电产生的组合功耗和电路转换过程中的短路电流形成的功耗[7]。降低FPGA动态功耗的思路为:在保证满足设计要求的情况下,通过降低内部信号的翻转率来降低功耗。其手段包括对时钟进行管理与增加防火墙寄存器。

3.1 基于时钟管理模块的低功耗优化

在FPGA内部时钟信号不断翻转,由时钟信号派生出的信号通常运行在主时钟频率的较小分量[8](通常为12%~15%)。所以在所有高耗能信号中,时钟是主要矛盾。通常情况下,一个状态机会在某个时间段内保持同一个状态不变,但其时钟始终处于翻转状态。因此,关闭闲置模块程序的时钟可以降低时钟资源产生的功耗[9]。在Flash操作中,当FPGA处于擦除模式时,初始化操作、无效块校验、页编程和页读取模式均处于闲置状态。图4中时钟管理模块负责对FPGA内部各模块的时钟进行管理,只有该模块处于工作状态时时钟信号才会翻转。在设计中增加时钟管理模块非常简单,可以在硬件描述语言中添加,也可以通过综合工具自动添加。

3.2 增加防火墙寄存器的低功耗优化

在FPGA程序设计中大量组合逻辑很容易受到布局布线延迟在查找表的输出端产生“毛刺”。“毛刺”在后续组合逻辑电路的传播中,可能导致多米诺骨牌效应,致使系统变得不稳定,而且增加了调试难度,消耗了大量的能量。研究表明,由“毛刺”在大量组合逻辑中的传递引起的动态功耗占总动态功耗的10%。用FPGA实现大多数电路功能时,FPGA内部大部分的基本逻辑单元中的触发器(Flip-Flop,FF)没有使用,将这些未用的FF添加到信号传输路径上被称作增加防火墙寄存器[10](如图5)。通过在程序中添加防火墙寄存器来分割组合逻辑,把每个逻辑功能限制在相邻的逻辑单元中,从而缩短布线长度和减小负载电容,将“毛刺”波的传递限制在最小范围,达到降低功耗的目的。

4 仿真实验结果及分析

为了比较分析传统状态实现方法与基于RAM映射的有限状态机设计以及低功耗优化方法的性能差别,对设计完成FPGA内部资源消耗情况、功耗评估以及理论最高工作频率3方面进行测试。

整个试验以Xilinx公司的Spartan-6系列FPGA XC6SLX150为目标器件,选用ISE13.1版本的综合工具,并利用ISE中自带的XPower进行功耗分析。XPower从布局和布线(.ncd)文档中获得FPGA设计信息,从Vcd文档中获得设计中所需的时钟、开关活动等信息,该文件可在布局和布线时在Pwr文档中得出功耗报告。仿真结果如表2。

从表中可以看出,基于RAM映射的有限状态机设计仅仅增加一个片内Block RAM资源的使用就使内部其他资源占用率下降到传统方式的1/3,总功耗也能下降到原来的50%以下,并且最大工作频率有明显提高。对基于RAM映射的有限状态机进行低功耗优化后仅仅增加了小部分闲置FFs资源的使用,使FPGA总功耗进一步下降到传统状态机设计的43.1%,而且最大工作频率提高了65.6%。

5 结论

文章针对Flash控制应用中实现复杂状态机的设计时存在高速可靠性与动态功耗的问题进行研究,提出了一种优化FPGA内部资源使用方法,利用FPGA内部存储资源构成有限状态机的设计并进行了低功耗优化。其将传统方式下的状态机电路结构中不断变化的状态机寄存器信息转化成RAM中的固定模块,减少了使用功耗较高的布线资源。不仅有效降低了FPGA动态功耗,而且能够消除高速状态下切换布线延迟产生的错误或者无效状态,特别适合大规模的复杂状态机结构,使得各个状态机切换具有等间隔的时间延迟。增加时钟管理模块关闭闲置模块的运行以及添加防火墙寄存器限制“毛刺”传播,进一步降低了FPGA的动态功耗,提高了系统可靠性。该方法很容易迁移到其他FPGA应用设计中,有较高的实用价值。

参考文献

[1] 马寅,安军社,王连国.基于Scrubbing的空间SRAM型FPGA抗单粒子翻转系统设计[J].空间科学学报,2012,32(2):270-276.

[2] SHANG L,KAVIANI A,BALHALA K.Dynamic power consumption in Vinex-I1 FPGA family[C].Proceedings of the 2002 ACM/SIGDA tenth international symposium on Field-programmable gate arrays.2002:157-164.

[3] CROMAR S,LEE J,CHEN D M.FPGA-targeted high-level binding algorithm for power and area reduction with glitch-estimation[C].Proc of the 46th Annual Design Automation Con York:ACM Press,2009:838-843.

[4] 李列文.FPGA低功耗设计相关技术研究[D].长沙:中南大学信息科学与工程学院,2014.

[5] 吴强,张逸中.FPGA位流解析及电路还原方法[J].计算机工程,2013,39(5):714-726.

[6] 储成群.存储测试系统若干关键技术研究[D].太原:中北大学仪器与电子学院,2015.

[7] 李宏钧,胡小龙.流水线的FPGA低功耗设计[J].计算机系统应用,2011(8):234-237.

[8] WANG Q,GUPTA S,ANDERSON J.Clock power reduction for Virtex-5 FPGAs[C].Proceedings of the ACM/SIGDA international symposium on Field programmable gate arrys.2009:13-22.

[9] 何艳霞,何永泰.FPGA低功耗的设计研究[J].楚雄师范学院学报,2012(6):22-25.

[10] 黄娟,杨海钢,谭宜涛,等.防火墙寄存器技术的FPGA低功耗布线算法研究[J].计算机应用研究,2011(8):2954-2957.

  • 评论列表

发表评论: