CN110175385B - 一种基于性能磨损均衡的非易失fpga布局优化方法和系统 - Google Patents
一种基于性能磨损均衡的非易失fpga布局优化方法和系统 Download PDFInfo
- Publication number
- CN110175385B CN110175385B CN201910419760.9A CN201910419760A CN110175385B CN 110175385 B CN110175385 B CN 110175385B CN 201910419760 A CN201910419760 A CN 201910419760A CN 110175385 B CN110175385 B CN 110175385B
- Authority
- CN
- China
- Prior art keywords
- block ram
- layout
- physical block
- fpga
- logic block
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了一种基于性能磨损均衡的非易失FPGA布局优化方法和系统,所述方法包括:随机生成激励作为电路测试的输入,估计每个逻辑Block RAM运行时的写入频率;基于当前布局对应的物理块和逻辑块写入频率,生成初始布局;在初始布局的基础上调整逻辑块到物理块的映射并进行性能和寿命评估,接受评估结果满足设定条件的调整,得到新的布局和相应配置文件;将新的布局作为当前布局,重复该步骤,生成多个配置文件;FPGA首先按照第一个配置文件运行,对每个物理Block RAM的写入次数进行计数,若存在物理Block RAM的写入次数达到预设阈值,按照配置文件的生成顺序调取下一配置文件对布局进行重构。本发明实现了FPGA性能和使用寿命的均衡。
Description
技术领域
本发明涉及非易失FPGA(Nonvolatile Filed Programmable Gate Array)技术领域,尤其涉及一种基于性能磨损均衡的非易失FPGA布局优化方法和系统。
背景技术
FPGA即现场可编程门阵列,是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。传统的岛式FPGA的体系结构包含可配置逻辑块(CLB)、连接块(CB)、交换盒(SB)、Block RAM等。CLB基于查找表实现逻辑功能。CB和SB用于连接各种逻辑、计算和存储资源。Block RAM是高速片上存储器,连接到CLB以存储其输入/输出数据,并用于弥合高速计算单元和缓慢片外存储器之间的速度差。
在使用FPGA之前,需要将CLB配置为所需的逻辑,而CB和SB配置为满足功能连接要求。所有这些配置都包含在可由计算机辅助设计工具(CAD)生成的配置文件中。CAD工具通过逻辑综合和优化、集群和打包、布局和布线,将硬件描述语言(HDL)设计的电路生成配置位流文件。在逻辑综合和优化阶段,将HDL描述的电路转换成基本的门式网络表,打包将网络表与FPGA资源结合起来。打包后,布局阶段将决定电路设计中所有逻辑单元的物理位置。之后,布线阶段打开适当的可编程开关,连接电路设计所需的所有逻辑单元块的输入和输出引脚。
目前,FPGA已经在嵌入式系统、大规模并行计算等许多领域得到广泛应用,BlockRAM是FPGA中的一个重要组成部分,用于参数和数据存储。而当前在FPGA平台上,Block RAM是基于静态随机存取存储器(SRAM),但是SRAM具有高漏电功耗和低存储密度等缺点。因而SRAM已成为建设大容量低功耗FPGA的障碍。为了解决这些问题,研究人员建议用非易失性存储器(NVM)代替FPGA中的SRAM单元。与SRAM相比,NVM具有更高的密度、更低的静态功耗和无波动性等优点,使FPGA有机会拥有更多的存储单元来突破容量不足的瓶颈。尽管非易失性FPGA具有较大的片内RAM容量和接近零的泄漏功率,但它们面临着编程开销大、寿命有限的挑战。例如,阻变存储器(ReRAM)写入大约1012次就失去存储信息的能力,而相变存储器(PCM)只有大概109的写入次数。
为了提高非易失存储器的使用寿命,相关技术人员提出一种磨损均衡策略,其基本思想是平衡NVM各个物理区域的写入量,从而使存储器的使用寿命不依赖于某些因写入频繁导致磨损较早的部分。传统适用于内存的策略是通过地址映射,使现在重度写入和轻度写入区域的动态交换。然而,发明人在研究过程中发现,基于内存领域提出的磨损均衡技术不能直接应用于FPGA中的Block RAM。这是因为不同Block RAM之间的数据放置高度影响了系统在FPGA上运行的性能,而旨在提高寿命的数据交换可能会大幅度降低运行速度。
发明内容
为克服上述现有技术的不足,本发明提供了一种基于性能磨损均衡的非易失FPGA布局优化方法和系统,针对非易失FPGA的片上存储器Block RAM寿命限制问题,提出基于磨损均衡(Wear Leveling)且感知性能的寿命提高方法,以较低的成本有效的解决了此问题。
为实现上述目的,本发明的一个或多个实施例提供了如下技术方案:
一种基于性能磨损均衡的非易失FPGA布局优化方法,包括:
随机生成激励作为电路测试的输入,估计每个逻辑Block RAM运行时的写入频率;
基于当前布局对应的物理块和逻辑块写入频率,生成初始布局;在初始布局的基础上调整逻辑块到物理块的映射并进行性能和寿命评估,接受评估结果满足设定条件的调整,得到新的布局和相应配置文件;将FPGA基于该配置文件运行的写入信息对应地加到各个物理Block RAM写入次数上,重复上述步骤,生成多个配置文件;
FPGA首先按照第一个配置文件运行,对每个物理Block RAM的写入次数进行计数,若存在物理Block RAM的写入次数达到预设阈值,按照配置文件的生成顺序调取下一配置文件对布局进行重构。
一个或多个实施例提供了一种基于性能磨损均衡的非易失FPGA布局优化系统,包括:
静态分析模块,用于随机生成激励作为电路测试的输入,估计每个逻辑Block RAM运行时的写入频率;
布局模块,基于当前布局对应的物理块和逻辑块写入频率,生成初始布局;在初始布局的基础上调整逻辑块到物理块的映射并进行性能和寿命评估,接受评估结果满足设定条件的调整,得到新的布局和相应配置文件;将FPGA基于该配置文件运行的写入信息对应地加到各个物理Block RAM写入次数上,重复上述布局步骤,生成多个配置文件;
动态重构模块,FPGA首先按照第一个配置文件运行,对每个物理Block RAM的写入次数进行计数,若存在物理Block RAM的写入次数达到预设阈值,按照配置文件的生成顺序调取下一配置文件对布局进行重构。
一个或多个实施例提供了一种基于性能磨损均衡的非易失FPGA,片外存储器中存储多个配置文件;
所述FPGA首先按照第一个配置文件运行,对每个物理Block RAM的写入次数进行计数,若存在物理Block RAM的写入次数达到预设阈值,按照配置文件的生成顺序调取下一配置文件对布局进行重构;
其中,所述多个配置文件生成方法包括:
所述FPGA首先按照第一个配置文件运行,对每个物理Block RAM的写入次数进行计数,若存在物理Block RAM的写入次数达到预设阈值,按照配置文件的生成顺序调取下一配置文件对布局进行重构;
其中,所述多个配置文件生成方法包括:
随机生成激励作为电路测试的输入,估计每个逻辑Block RAM运行时的写入频率;
基于当前布局对应的物理块和逻辑块写入频率,生成初始布局;在初始布局的基础上调整逻辑块到物理块的映射并进行性能和寿命评估,接受评估结果满足设定条件的调整,得到新的布局和相应配置文件;将FPGA基于该配置文件运行的写入信息对应地加到各个物理Block RAM写入次数上,重复上述布局步骤,生成多个配置文件。
以上一个或多个技术方案存在以下有益效果:
本发明基于传统的磨损均衡策略,提出了一种性能感知的磨损均衡机制以实现性能和寿命之间的平衡。在布局阶段,引入了每个物理Block RAM的写次数信息,并提前预测每个逻辑Block RAM的写频率信息。修改时序驱动的布局算法,加入写次数信息的考虑,即不把高写入频率的逻辑Block RAM映射到已被写入多次的物理Block RAM上,从而提高非易失FPGA的寿命,且基本不降低FPGA上系统的运行性能。区别于传统内存,Block RAM的位置会影响FPGA的运行性能,本发明采用性能感知的磨损均衡策略,与传统磨损均衡的替换策略相比,大幅提高了性能。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1为本发明一个或多个实施例中基于性能磨损均衡的非易失FPGA布局优化方法流程图;
图2为本发明一个或多个实施例中布局阶段生成多个配置文件的流程图;
图3为本发明一个或多个实施例中采用性能磨损均衡的非易失FPGA布局优化方法的CAD工具实现流程图。
具体实施方式
应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
术语解释:
物理Block RAM:是指FPGA板卡上实际存在的Block RAM。
逻辑Block RAM:是指硬件描述语言HDL中使用的Block RAM。
实施例一
本实施例公开了一种基于性能磨损均衡的非易失FPGA布局优化方法。针对非易失FPGA的Block RAM,采用磨损均衡策略来提高其寿命,进而基于传统时序感知的布局算法,实现性能感知的磨损均衡算法,从而降低传统的磨损均衡策略应用于非易失FPGA的BlockRAM上带来的性能损失,实现非易失FPGA性能和寿命的平衡。具体包括:
(一)静态分析阶段:随机生成激励作为电路测试的输入,估计每个逻辑Block RAM运行时的写入频率。
静态分析阶段的目的是针对具体的待配置电路进行静态分析,计算出每个逻辑Block RAM的写入频率,这是后续磨损均衡策略的基础。但是,大多数待配置电路的输入在实际运行之前是未知的。为了估算不同Block RAM的写入频率,先生成一组随机输入,把它当成电路的原始输入来测试电路,从而推导出每个Block RAM的写使能信号的激活情况。在此基础上,我们可以计算每个逻辑Block RRAM的写入频率。本实施例中,基于不同电路各测试了20组不同的输入激励,并发现大多数Block RAM的写使能信号在不同的输入下相对稳定。由于其稳定性,静态分析方法可用来估计运行时每个逻辑Block RAM的写入频率。
实际上,大多数应用程序开发人员需要在测试过程中生成激励来测试电路逻辑的正确性。可以使用相同的输入来统计每个Block RAM的写入频率,从而可以获得更接近实际运行情况的估算。而为了使静态分析更合理,本实施例中,随机产生多个激励作为电路测试的输入,对于每个激励均可得到一组所有Block RAM的写入频率,根据每个Block RAM对应的不同激励下的写入频率低平均值估算所在的Block RAM运行时的写入频率。
(二)性能感知磨损均衡布局阶段:读取当前物理块写入频率以及预计逻辑块写入频率。然后开始布局过程,首先随机生成初始布局且不允许寿命低的映射存在;在初始布局的基础上调整逻辑块到物理块的映射并进行性能和寿命评估,接受评估结果满足设定条件的调整,该过程一直执行到符合模拟退火的退出条件为止,从而生成一个配置文件;将该配置文件的写入信息对应地加到各个物理Block RAM写入次数上,重复上述布局过程,生成多个配置文件;
布局是FPGA设计中的一个重要步骤,它确定逻辑组件的物理位置。传统CAD工具的布局是基于模拟退火(Simulated Annealing)算法。在打包过程完成后,第一步生成初始布局。然后随机选择两个同种逻辑块(比如同为Block RAM)并交换这两个逻辑块的物理位置。通过计算交换后的关键路径延迟进行评估收益。如果获取收益或满足模拟退火的接受概率,则可以交换这两个逻辑块。迭代这个过程,直到收益很小或满足迭代次数为止。本实施例采用相同的框架,但涉及到写频率相关的考虑。布局阶段主要执行以下步骤:
步骤1:生成初始位置,将高写入次数的物理Block RAM与低写入频率的逻辑BlockRAM相匹配。具体地,对于每个逻辑Block RAM,随机选择一个物理Block RAM,判断该映射是否可接受,判断依据为:如果逻辑Block RAM和物理Block RAM都是写密集型的,则不接受此映射,如果可接受,则完成此逻辑Block RAM到物理的映射。
步骤2:随机选择两个逻辑Block RAM并交换这两个逻辑块的物理位置,基于模拟退火算法计算交换后的关键路径延迟,并进行收益评估。本实施例中,在评估收益时,除了传统的性能考虑之外,我们还添加了寿命因子考虑,以决定是否接受此交换。如果此次交换导致高写入频率的逻辑Block RAM映射到高写入次数物理Block RAM,减少此次交换的概率。
所述收益评估包括:
(1)基于静态分析阶段得到的各逻辑Block RAM预测写入频率和通过计数器得到的实际写入频率(第二次及以后配置是通过软件维护物理块写入频率),对寿命因子进行评估:
(2)如果获取收益或满足模拟退火的接受概率,交换后的整体性能大于交换前的整体性能,且寿命因子大于设定阈值,则执行交换。
步骤3:判断是否满足迭代终止条件,若满足,迭代终止,将当前布局结果经布线阶段后,CAD工具会生成一个配置文件;若不满足,再次随机选择两个逻辑Block RAM并交换这两个逻辑块的物理位置,重复执行步骤2-3,直至满足迭代终止条件。其中,所述迭代终止条件为收益是否小于设定阈值或是否达到迭代次数。
步骤4:将步骤3得到的配置文件作为FPGA的当前布局,获取基于当前布局运行后各物理Block RAM的写入次数,返回步骤1,结合写入次数重新生成初始布局,得到新的配置文件。
如此,可得到多个有顺序的配置文件,前一个配置文件用于指导下一次的初始布局,从而得到下一个配置文件。
传统布局过程是基于模拟退火算法的,而本方法在此基础上添加寿命的考虑。首先随机生成初始布局且不允许寿命低的映射存在;在初始布局的基础上调整逻辑块到物理块的映射并进行性能和寿命评估,接受评估结果满足设定条件的调整,该过程一直执行到符合模拟退火的退出条件为止,从而生成一个配置文件;将FPGA基于该配置文件运行的写入信息对应地加到各个物理Block RAM写入次数上,重复上述布局过程,生成多个配置文件。
(三)重新配置阶段:FPGA首先按照第一个配置文件运行,对每个物理Block RAM的写入次数进行计数,若存在物理Block RAM的写入次数达到预设阈值,按照配置文件的生成顺序调取下一配置文件对布局进行重构。
在运行时,需要在不同的配置文件之间切换以实现写平衡。系统可以根据上述策略生成的配置顺序进行重构。为了确定需要重新配置的时间,本实施例为每个物理BlockRAM设置了一个计数器来记录其写入次数。一旦有一个新的Block RAM变得成熟,即其写入计数器达到预设阈值,将进行重构来切换到另一个配置文件,从而使该Block RAM从繁重的写入中解脱出来。本实施例方案的存储开销包括配置文件存储和写入计数器。配置文件存储在片外存储器中,其容量通常不是问题。同时计数器的开销也是可以接受的。例如,对于最大计数数目为1012的计数器,大小为40位。以Xilinx FPGA为例,大部分Block RAM的典型容量为18K,而每个Block RAM只需要一个计数器,所以维护计数器的开销为40/18K,约0.22%。这些计数器也可以参与到磨损均衡策略中,以实现写平衡。此外,本实施例还对FPGA的重构时间进行了实验测量。切换配置文件需要花费几秒钟的时间,具体取决于配置文件的大小。同时,当Block RAM用作流应用程序的缓冲区时,它的读写频率将达到1MHz。以ReRAM为例,大约写承受次数为1012,如果预设阈值为总写入次数的1%,则配置文件至少可以持续(1%*1012/106)=104秒。因此,重新配置的时间开销可以忽略不计。当所有配置文件被使用过一次,则将所有Block RAM的阈值上调一个单位,例如1%的总写入次数,再从第一个配置文件继续配置运行。这样目的是在FPGA板卡需要更换运行电路时,所有的Block RAM写入次数是相近的。
下面给出本发明的详细实施过程,并结合算法伪代码对本发明提出的嵌入性能感知磨损均衡策略的布局算法进行进一步的详细说明。
表1
Block RAM性能感知磨损均衡布局算法
输入:Logs.ratio:静态分析的结果
输出:配置文件以及各自的关键路径延迟
磨损均衡方案的基本思想是通过考虑写入信息来生成多个配置,并在运行时在这些配置之间进行动态切换。逻辑到物理的映射(将在布局中产生)应该同时考虑Block RAM的历史和未来写入信息,以平衡写入。为了记录写入的历史信息,将维持每个Block RAM的写入计数。同时通过静态分析可以估计出未来的写入频率。为了指导逻辑到物理的映射过程,本实施例主要使用了两个数组Phys.ratio和Logs.ratio,分别为每个Block RAM归一化的历史和未来写入次数。首先,Phys.ratio和Logs.ratio被初始化(第2-3行)。Phys.ratio通过读取FPGA中Block RAM写入计数器的值初始化,Logs.ratio从静态分析中得到。然后该算法尝试生成多个配置文件迭代磨以实现磨损均衡(第4-34行)。生成初始布局时(第5-16行),对于每个逻辑Block RAM,我们尝试为它找到一个物理映射(第6-15行)。具体来说,首先随机选择一个物理Block RAM(第7行),然后检查该映射是否可接受(第8行)。如果是,则完成此逻辑Block RAM到物理的映射。如果否,算法将选择尝试另一个物理Block RAM,直到它被接受。当遍历所有物理Block RAM后依然不能成功地匹配,则返回初始化失败的算法(第12-13行),表示不能生成新配置。接受算法在第35-41行中定义。对于当前映射,如果逻辑Block RAM和物理Block RAM都是写密集型的,则不接受此映射。合理的做法是把写的重的物理块和将来写的轻的逻辑块,或写的轻的物理块和将来写的重的逻辑块之间匹配。此外,当前映射不能使初始放置失败(第37行)。失败的原因是写频率低的逻辑Block RAM映射到写入次数少的物理Block RAM,这将导致以后写频率高的逻辑Block RAM没有映射位置。我们可以通过临时映射物理和逻辑Block RAM,并测试是否存在所有其他映射都满足(1-Phys.ratio)/Logs.ratio>=Minr条件的情况来实现这一功能。初始布局完成后,该算法尝试交换两个逻辑Block RAM(第19-30行)。与传统的布局算法不同,除了检查交换的好处(第22-29行),性能感知的磨损均衡策略还检查基于寿命考虑的接受条件(第21、26行)。我们在接受条件中添加了寿命考虑因素。为了生成高质量的配置,本发明只使用具有高使用寿命的布局配置(第26行)。变量r评估逻辑Block RAM到物理Block RAM映射的理想程度。r值越大说明该映射越合理(即将写频率高的逻辑Block RAM映射到写入次数少的物理BlockRAM)。最后,本实施例可以生成多个配置文件,这些配置文件将被保存并用于FPGA运行时动态重构。
实施例二
本实施例的目的是提供一种计算装置。
为了实现以上目的,本实施例提供了一种基于性能磨损均衡的非易失FPGA布局优化系统,其特征在于,包括:
静态分析模块,用于随机生成激励作为电路测试的输入,估计每个逻辑Block RAM运行时的写入频率;
布局模块,读取当前物理块写入频率以及预计逻辑块写入频率。然后随机生成初始布局且不允许寿命低的映射存在;在初始布局的基础上调整逻辑块到物理块的映射并进行性能和寿命评估,接受评估结果满足设定条件的调整,该过程一直执行到符合模拟退火的退出条件为止,从而生成一个配置文件;将该配置文件的写入信息对应地加到各个物理Block RAM写入次数上,重复上述布局过程,生成多个配置文件;
动态重构模块,FPGA首先按照第一个配置文件运行,对每个物理Block RAM的写入次数进行计数,若存在物理Block RAM的写入次数达到预设阈值,按照配置文件的生成顺序调取下一配置文件对布局进行重构。
实施例三
本实施例的目的是提供一种性能磨损均衡的非易失FPGA。
为了实现以上目的,本实施例提供了一种性能磨损均衡的非易失FPGA,片外存储器中存储多个配置文件;
所述FPGA首先按照第一个配置文件运行,对每个物理Block RAM的写入次数进行计数,若存在物理Block RAM的写入次数达到预设阈值,按照配置文件的生成顺序调取下一配置文件对布局进行重构;
其中,所述多个配置文件生成方法包括:
随机生成激励作为电路测试的输入,估计每个逻辑Block RAM运行时的写入频率;
读取当前物理块写入频率以及预计逻辑块写入频率。然后开始布局过程,首先随机生成初始布局且不允许寿命低的映射存在;在初始布局的基础上调整逻辑块到物理块的映射并进行性能和寿命评估,接受评估结果满足设定条件的调整,该过程一直执行到符合模拟退火的退出条件为止,从而生成一个配置文件;将该配置文件的写入信息对应地加到各个物理Block RAM写入次数上,重复上述布局过程,生成多个配置文件;
以上实施例二和三中涉及的各步骤与方法实施例一相对应,具体实施方式可参见实施例一的相关说明部分。术语“计算机可读存储介质”应该理解为包括一个或多个指令集的单个介质或多个介质;还应当被理解为包括任何介质,所述任何介质能够存储、编码或承载用于由处理器执行的指令集并使处理器执行本发明中的任一方法。
以上一个或多个实施例具有以下技术效果:
基于传统的磨损均衡策略,提出了一种性能感知的磨损均衡机制以实现性能和寿命之间的平衡。在布局阶段,引入了每个物理Block RAM的写次数信息,并提前预测每个逻辑Block RAM的写频率信息。修改时序驱动的布局算法,加入写次数信息的考虑,即不把高写入频率的逻辑Block RAM映射到已被写入多次的物理Block RAM上,从而提高非易失FPGA的寿命,且基本不降低FPGA上系统的运行性能。并且,区别于传统内存,Block RAM的位置会影响FPGA的运行性能,本发明采用性能感知的磨损均衡策略,与传统磨损均衡的替换策略相比,大幅提高了性能。
本领域技术人员应该明白,上述本发明的各模块或各步骤可以用通用的计算机装置来实现,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。本发明不限制于任何特定的硬件和软件的结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (7)
1.一种基于性能磨损均衡的非易失FPGA布局优化方法,其特征在于,包括:
随机生成激励作为电路测试的输入,估计每个逻辑Block RAM运行时的写入频率;
基于当前布局对应的物理Block RAM和逻辑Block RAM写入频率,生成初始布局;在初始布局的基础上调整逻辑Block RAM到物理Block RAM的映射并进行性能和寿命评估,接受评估结果满足设定条件的调整,得到新的布局和相应配置文件;将FPGA基于该配置文件运行的写入信息对应地加到各个物理Block RAM写入次数上,重复上述步骤,生成多个配置文件;
FPGA首先按照第一个配置文件运行,对每个物理Block RAM的写入次数进行计数,若存在物理Block RAM的写入次数达到预设阈值,按照配置文件的生成顺序调取下一配置文件对布局进行重构;
提前预测每个逻辑Block RAM的写频率信息;修改时序驱动的布局算法,为每个逻辑Block RAM匹配一个物理Block RAM,匹配规则为:将高写入次数的物理Block RAM与低写入频率的逻辑Block RAM相匹配,或是低写入次数的物理Block RAM与高写入频率的逻辑Block RAM匹配。
2.如权利要求1所述的基于性能磨损均衡的非易失FPGA布局优化方法,其特征在于,估计每个逻辑Block RAM运行时的写入频率包括:
随机产生多个激励作为电路测试的输入,根据每个逻辑Block RAM对应的不同激励下的写入频率平均值估算该逻辑Block RAM运行时的写入频率。
3.如权利要求2所述的基于性能磨损均衡的非易失FPGA布局优化方法,其特征在于,在初始布局的基础上调整逻辑Block RAM到物理Block RAM的映射并进行性能和寿命评估包括:
随机选择两个逻辑Block RAM并交换这两个逻辑Block RAM的物理位置,基于模拟退火算法计算交换后的关键路径延迟,并进行收益评估:
基于各逻辑Block RAM的写入频率和计数得到的物理Block RAM写入次数,对寿命因子进行评估;
根据关键路径延迟和寿命评估结果进行整体性能评估;
若交换后的整体性能大于交换前的整体性能或者满足模拟退火接受概率,且寿命因子大于设定阈值,则执行交换。
4.如权利要求3所述的基于性能磨损均衡的非易失FPGA布局优化方法,其特征在于,得到新的布局和相应配置文件包括:
判断是否满足迭代终止条件;若满足,迭代终止,将当前布局结果经布线阶段生成一个配置文件;若不满足,进行下一组逻辑Block RAM的物理位置的交换并进行性能和寿命评估,直至满足迭代终止条件;
所述迭代终止条件为收益小于设定阈值或是否达到迭代次数。
5.如权利要求1所述的基于性能磨损均衡的非易失FPGA布局优化方法,其特征在于,所述多个配置文件存储在片外存储器。
6.如权利要求1所述的基于性能磨损均衡的非易失FPGA布局优化方法,其特征在于,所述FPGA的每个物理Block RAM均配置一个计数器,用于记录写入次数。
7.一种基于性能磨损均衡的非易失FPGA布局优化系统,其特征在于,包括:
静态分析模块,用于随机生成激励作为电路测试的输入,估计每个逻辑Block RAM运行时的写入频率;
布局模块,基于当前布局对应的物理Block RAM和逻辑Block RAM写入频率,生成初始布局;在初始布局的基础上调整逻辑Block RAM到物理Block RAM的映射并进行性能和寿命评估,接受评估结果满足设定条件的调整,得到新的布局和相应配置文件;将FPGA基于该配置文件运行的写入信息对应地加到各个物理Block RAM写入次数上,重复执行布局模块,生成多个配置文件;
动态重构模块,FPGA首先按照第一个配置文件运行,对每个物理Block RAM的写入次数进行计数,若存在物理Block RAM的写入次数达到预设阈值,按照配置文件的生成顺序调取下一配置文件对布局进行重构;
提前预测每个逻辑Block RAM的写频率信息;修改时序驱动的布局算法,为每个逻辑Block RAM匹配一个物理Block RAM,匹配规则为:将高写入次数的物理Block RAM与低写入频率的逻辑Block RAM相匹配,或是低写入次数的物理Block RAM与高写入频率的逻辑Block RAM匹配。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910419760.9A CN110175385B (zh) | 2019-05-20 | 2019-05-20 | 一种基于性能磨损均衡的非易失fpga布局优化方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910419760.9A CN110175385B (zh) | 2019-05-20 | 2019-05-20 | 一种基于性能磨损均衡的非易失fpga布局优化方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110175385A CN110175385A (zh) | 2019-08-27 |
CN110175385B true CN110175385B (zh) | 2021-01-15 |
Family
ID=67691725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910419760.9A Active CN110175385B (zh) | 2019-05-20 | 2019-05-20 | 一种基于性能磨损均衡的非易失fpga布局优化方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110175385B (zh) |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090259819A1 (en) * | 2008-04-09 | 2009-10-15 | Skymedi Corporation | Method of wear leveling for non-volatile memory |
TWI385669B (zh) * | 2008-07-23 | 2013-02-11 | Phison Electronics Corp | 用於快閃記憶體的平均磨損方法、儲存系統與控制器 |
CN101383190A (zh) * | 2008-08-11 | 2009-03-11 | 湖南源科创新科技股份有限公司 | 应用于固态硬盘的闪存均衡损耗算法 |
CN101740110B (zh) * | 2009-12-17 | 2013-06-12 | 中兴通讯股份有限公司 | 一种Nand Flash擦除均衡的方法及装置 |
CN102841852B (zh) * | 2011-06-24 | 2015-06-17 | 华为技术有限公司 | 磨损均衡方法、存储装置及信息系统 |
CN102592678B (zh) * | 2011-12-30 | 2014-12-03 | 记忆科技(深圳)有限公司 | 基于动态窗口管理的磨损均衡方法及装置 |
CN102902628B (zh) * | 2012-09-18 | 2016-06-01 | 记忆科技(深圳)有限公司 | 一种基于闪存实现的冷热数据自动分离方法、系统及闪存 |
CN103914587B (zh) * | 2014-03-03 | 2017-01-25 | 西安电子科技大学 | 一种基于模拟退火/回火现场可编程门阵列布局的方法 |
CN105068938B (zh) * | 2015-08-12 | 2018-04-24 | 华中科技大学 | 一种基于多层单元的非易失内存的磨损均衡方法 |
-
2019
- 2019-05-20 CN CN201910419760.9A patent/CN110175385B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110175385A (zh) | 2019-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8578319B2 (en) | Method and apparatus for designing and manufacturing electronic circuits subject to process variations | |
CN105814560B (zh) | 用于实现高吞吐量键-值存储的存储器设置 | |
US20220164294A1 (en) | Cyber security and tamper detection techniques with a distributed processor memory chip | |
Agrawal et al. | Ternary CAM power and delay model: Extensions and uses | |
US7657801B2 (en) | Test apparatus, program, and test method | |
US8578312B2 (en) | Method and apparatus for designing and manufacturing electronic circuits subject to leakage problems caused by temperature variations and/or aging | |
Bona et al. | System level power modeling and simulation of high-end industrial network-on-chip | |
CN111309544B (zh) | 一种读参考电压受多维因子影响的预测建模及施加方法 | |
Li et al. | Black-box performance modeling for solid-state drives | |
US10146555B2 (en) | Adaptive routing to avoid non-repairable memory and logic defects on automata processor | |
CN107122565A (zh) | 基于非易失性存储器的fpga bram架构与设计方法 | |
Ascia et al. | Exploiting data resilience in wireless network-on-chip architectures | |
Xue et al. | Fine-tuning CLB placement to speed up reconfigurations in NVM-based FPGAs | |
CN110175385B (zh) | 一种基于性能磨损均衡的非易失fpga布局优化方法和系统 | |
Huang et al. | Economic aspects of memory built-in self-repair | |
Huai et al. | Performance-aware wear leveling for block RAM in nonvolatile FPGAs | |
US20240005190A1 (en) | Method, apparatus, terminal and storage medium for quantum topology graph optimization | |
US11749343B2 (en) | Memory management device, system and method | |
Sarkar et al. | Periodic Boundary Cellular Automata Based Wear Leveling for Resistive Memory. | |
Zhang et al. | Pearl: Performance-aware wear leveling for nonvolatile FPGAs | |
EP1583009A1 (en) | Method and apparatus for designing and manufacturing electronic circuits subject to process variations | |
US8819612B1 (en) | Analyzing timing requirements of a hierarchical integrated circuit design | |
CN111863109A (zh) | 一种三维闪存层间错误率模型及评估方法 | |
Escuin et al. | Compression-aware and performance-efficient insertion policies for long-lasting hybrid llcs | |
Jone et al. | An efficient BIST method for distributed small buffers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |