孩子都能学会的FPGA:第二十八课——用FPGA实现最近最少使用(LRU)算法

这篇具有很好参考价值的文章主要介绍了孩子都能学会的FPGA:第二十八课——用FPGA实现最近最少使用(LRU)算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

(原创声明:该文是作者的原创,面向对象是FPGA入门者,后续会有进阶的高级教程。宗旨是让每个想做FPGA的人轻松入门作者不光让大家知其然,还要让大家知其所以然!每个工程作者都搭建了全自动化的仿真环境,只需要双击top_tb.bat文件就可以完成整个的仿真(前提是安装了modelsim),降低了初学者的门槛。如需整个工程请留言(WX:Blue23Light),不收任何费用,但是仅供参考,不建议大家获得资料后从事一些商业活动!

LRU算法用于cache管理或任何其他需要对访问权进行周期更新的场合。基于时间和空间考虑,cache中存储着近期将会用到的数据项。当cache被用满后,如果有新的数据项到来,需要将某个现有的数据项从cache中清除,为新进入者提供空间。此时通常使用的算法被称为LRU(Least Recently Used,近期最少使用),通过LRU算法可以找到最久未被使用过的数据项,cache将该数据项清除,并将新的数据项写入此处。

比如我们在图书馆借书,图书馆那么多好书,但是一次只能借10本书,所以你只能借最近可能会用到的书,别的书虽然也很好,可以后续再去借。可以把看完的书还过去再去借新书,有些书虽然没有看完,或者根据就没有看,而且最近也不打算看了,也可以还过去,这样就可以借更多想看的书了。LRU算法的思路基本就是这样的,当然这个算法如何使用不是本文的重点,本文是来讲这个算法如果通过FPGA来实现。

LRU算法有多种实现方法,本文FPGA实现LRU采用的是矩阵法。假设有一个表,可存储4个表项,当前表项为A、B、C和D。我们的目标是确定哪一个是最久没有被访问过的,具体步骤如下:

1. 构建一个4x4的存储单元矩阵,这儿可以采用寄存器,RAM,或者数组。

2. 将所有存储单元初始化为零。

3. 只要有一个表项被访问,其对应的一行全部置为1,其对应列全部置为0

4. 只要某个表项被访问,重复上一步操作。

5. 全零的一行对应的表项是近期最少使用者,是要被新的表项替代的对象。

假定访问顺序为A、D、C、A、B,在此情形下,D是最近使用最少的表项,它应该被替换掉。下面用4x4矩阵演示的上述算法。

孩子都能学会的FPGA:第二十八课——用FPGA实现最近最少使用(LRU)算法,轻松入门FPGA,fpga开发,算法,fpga

LRU算法的FPGA实现其实非常简单,因为用到了矩阵,本节其实是主要来讲解一下矩阵如何初始化和赋值,还有就是generate语句如何使用。

假设cache内可以存储8个数据,lru模块输入的是数据的使能信号和数据的标号值,输出的是最少使用数据的标号值,这个值可以从cache中删除,然后让新的数值进入cache

fpga代码里定义了一个二维的数值matrix,维数是8x8,matrix的每个一维数据代表矩阵的一行,比如matrix[0]代表第0行,这样利用了generate语句,就可以对矩阵generate的每一行的每一列同时进行运算控制。在generate快里面使用了for语句,简化了代码的设计。generate语句相关与把8x8=64个always语句合并在了一起,每个always语句完成矩阵matrix一位的运算和控制。

孩子都能学会的FPGA:第二十八课——用FPGA实现最近最少使用(LRU)算法,轻松入门FPGA,fpga开发,算法,fpga

找到全零的行,即为近期最少使用者,将其标号输出即可。

孩子都能学会的FPGA:第二十八课——用FPGA实现最近最少使用(LRU)算法,轻松入门FPGA,fpga开发,算法,fpga

新建仿真文件,产生0-7间的随机数做为新数据的标号进行输入,双击sim目录下的top_tb.bat文件,完成自动化仿真。

孩子都能学会的FPGA:第二十八课——用FPGA实现最近最少使用(LRU)算法,轻松入门FPGA,fpga开发,算法,fpga

modelsim的仿真结果如下所示,输出lru_index可以当成cache清除数据的依据。

孩子都能学会的FPGA:第二十八课——用FPGA实现最近最少使用(LRU)算法,轻松入门FPGA,fpga开发,算法,fpga文章来源地址https://www.toymoban.com/news/detail-825088.html

到了这里,关于孩子都能学会的FPGA:第二十八课——用FPGA实现最近最少使用(LRU)算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 孩子都能学会的FPGA:第三十课——用FPGA实现均值滤波

    (原创声明:该文是 作者的原创 ,面向对象是 FPGA入门者 ,后续会有进阶的高级教程。宗旨是 让每个想做FPGA的人轻松入门 , 作者不光让大家知其然,还要让大家知其所以然 !每个工程作者都搭建了全自动化的仿真环境,只需要双击 top_tb.bat 文件就可以完成整个的仿真(前

    2024年02月02日
    浏览(55)
  • 孩子都能学会的FPGA:第十七课——用FPGA实现定点数的乘法

    (原创声明:该文是 作者的原创 ,面向对象是 FPGA入门者 ,后续会有进阶的高级教程。宗旨是 让每个想做FPGA的人轻松入门 , 作者不光让大家知其然,还要让大家知其所以然 !每个工程作者都搭建了全自动化的仿真环境,只需要双击 top_tb.bat 文件就可以完成整个的仿真(前

    2024年02月04日
    浏览(51)
  • 孩子都能学会的FPGA:第十六课——用FPGA实现IIR滤波器滤波

    (原创声明:该文是 作者的原创 ,面向对象是 FPGA入门者 ,后续会有进阶的高级教程。宗旨是 让每个想做FPGA的人轻松入门 , 作者不光让大家知其然,还要让大家知其所以然 !每个工程作者都搭建了全自动化的仿真环境,只需要双击 top_tb.bat 文件就可以完成整个的仿真(前

    2024年01月21日
    浏览(59)
  • 孩子都能学会的FPGA:第三十一课——用FPGA实现SPI主机发送数据

    (原创声明:该文是 作者的原创 ,面向对象是 FPGA入门者 ,后续会有进阶的高级教程。宗旨是 让每个想做FPGA的人轻松入门 , 作者不光让大家知其然,还要让大家知其所以然 !每个工程作者都搭建了全自动化的仿真环境,只需要双击 top_tb.bat 文件就可以完成整个的仿真(前

    2024年02月04日
    浏览(43)
  • 孩子都能学会的FPGA:第十二课——利用内存产生正弦波

    (原创声明:该文是 作者的原创 ,面向对象是 FPGA入门者 ,后续会有进阶的高级教程。宗旨是 让每个想做FPGA的人轻松入门 , 作者不光让大家知其然,还要让大家知其所以然 !每个工程作者都搭建了全自动化的仿真环境,只需要双击 top_tb.bat 文件就可以完成整个的仿真(前

    2024年02月03日
    浏览(43)
  • 从0开始学C++ 第二十八课 数据结构深入 - 栈和队列

    第二十八课:数据结构深入 - 栈和队列 学习目标: 理解栈(Stack)的基本概念和特性。 掌握队列(Queue)的基本概念和特性。 学会在C++中使用栈和队列。 了解栈和队列的典型应用场景。 学习内容: 栈(Stack) 概念:栈是一种后进先出(LIFO, Last In First Out)的数据结构,元素

    2024年01月23日
    浏览(47)
  • 孩子都能学会的FPGA:第九课——多字节数据的发送和接收

    (原创声明:该文是 作者的原创 ,面向对象是 FPGA入门者 ,后续会有进阶的高级教程。宗旨是 让每个想做FPGA的人轻松入门 , 作者不光让大家知其然,还要让大家知其所以然 !每个工程作者都搭建了全自动化的仿真环境,只需要双击 top_tb.bat 文件就可以完成整个的仿真(前

    2024年02月04日
    浏览(61)
  • 孩子都能学会的FPGA:第十课——UART通信增加CRC校验

    (原创声明:该文是 作者的原创 ,面向对象是 FPGA入门者 ,后续会有进阶的高级教程。宗旨是 让每个想做FPGA的人轻松入门 , 作者不光让大家知其然,还要让大家知其所以然 !每个工程作者都搭建了全自动化的仿真环境,只需要双击 top_tb.bat 文件就可以完成整个的仿真(前

    2024年02月05日
    浏览(50)
  • 孩子都能学会的FPGA:第十一课——基于握手机制的跨时钟域同步

    (原创声明:该文是 作者的原创 ,面向对象是 FPGA入门者 ,后续会有进阶的高级教程。宗旨是 让每个想做FPGA的人轻松入门 , 作者不光让大家知其然,还要让大家知其所以然 !每个工程作者都搭建了全自动化的仿真环境,只需要双击 top_tb.bat 文件就可以完成整个的仿真(前

    2024年02月04日
    浏览(53)
  • 【正点原子FPGA连载】第二十八章 以太网ARP测试实验 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

    1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: http://www.openedv.com/thread-340252-1-1.html 在以太网中,一个主机和另一个主机进行通信,必须要知道目的主机的MAC地址(物理地址),而目的MAC地址的

    2023年04月08日
    浏览(97)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包