2021-05-03

本文探讨了链表在硬件中的实现,特别是在动态缓存管理中的应用。链表通过 bitmap 式空闲地址管理和头尾指针更新模块,实现共享缓存,减少资源浪费。硬件实现中,链表元素包括 vld、hp(头指针)、tp(尾指针)和 body ram。在链接过程中,头尾指针和 vld 用于跟踪数据状态。当队列数量增加时,可能需要使用内存来存储头尾指针以解决拥塞问题,并考虑读延迟和写穿的影响。此外,多链表策略可用于提升读取性能。
摘要由CSDN通过智能技术生成

链表的硬件实现

IC小狮子 IC小狮子 4月14日

知乎搜索链表,基本上跳出来的全是C或者C++中软件行为方式的链表描述。链表在动态缓存管理中是应用得非常广泛的,其让多个队列共享一片资源大的缓存,能够避免队列流量不均导致的缓存的膨胀。最简单的fifo结构的缓存,基于每个队列用fifo缓存,那么最大的量就是队列的个数乘以最大突发量队列的fifo的缓存大小。若用链表结构的共享缓存则可以减小总的缓存空间,极大的降低面积,节约成本。

先来说说链表由哪些部分组成:1、bitmap式空闲地址管理模块(提供申请地址和回收地址功能);2、头尾指针更新管理模块 。缓存部分则根据需求设计:一般共享缓存的资源大,可以采用2片SP替换一片TP的mem,pingpong操作,能够节省面积。

*********************分割线*******************************

C中的链表如下图所示:

图片

实际硬件实现的链表元素如下:

vld:指示链表中有无数据。

hp(head pointer):链表头指针【实际使用REG来存储】

tp(tail pointer)    :链表尾指针【实际使用REG来存储】

body ram:链表指针存储ram【使用RAM来存储】(存的是下一跳地址࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值