基于缓存单元ID的存储管理电路的制作方法

文档序号:15236596发布日期:2018-08-24 05:41阅读:183来源:国知局

本发明属于计算机硬件技术,涉及一种基于缓存单元id的存储管理电路。



背景技术:

在通信领域,外部消息的接收通常是先经过消息接收模块对消息进行接收,再发送到主机对消息进行处理,但是通常主机对消息进行处理的速度慢于接收速度,就会造成消息的拥塞。为解决这一问题通常在消息接收机和主机之间设置缓冲模块,将接收到的消息存储在缓冲模块,由主机调用缓冲模块中的消息。缓冲模块中设置多个缓冲区,如何快速的在多个缓冲区中找到空闲缓存单元将消息存储进去,加快缓冲效率,成为需要解决的问题。

芯片设计中,对数据通道的通信带宽一般有严格的要求,例如基于大队列fc-asm协议处理芯片fc数据通信带宽峰值不小于线速80%,为了达到芯片中对通信带宽的要求,需要对数据通道中的各个环节进行最优化设计,存储管理电路经常用于芯片的设计中,而不合理的存储管理电路会制约整个芯片数据通道的通信带宽。



技术实现要素:

发明目的:

为了解决背景技术中存在的上述问题,本发明提供一种基于缓存单元id的存储管理电路,提高芯片存储管理模块的速率。

技术方案:

一种基于缓存单元id的存储管理电路,包含缓存模块、调度模块、应答模块,

缓存模块,分为n个缓存区,每个缓存区包含多个缓存单元;每个缓存单元有惟一的id,缓存单元用于存储外部接收模块发送的消息;主机从缓存单元读取并处理完消息后,释放对应的存储单元,使该存储单元成为空闲的缓存单元,可以存储新的消息,n的值根据存储管理电路的具体需求确定,

调度模块,用于查找可用的缓存单元,当查到可用的缓存单元时,将缓存单元id发送给应答模块,

应答模块,在接收到外部接收模块的请求时,将预先查找的可用缓存单元id发送给外部接收模块,外部接收模块将消息存储至该可用的缓存单元。

有益效果:由于事先将空闲缓冲区的地址存储在寄存器中,来自接收模块的消息可以快速的存储到空闲缓存地址中,省去了当时查找空闲存储地址的时间,提高了存储效率。

附图说明:

图1为存储管理电路结构图;

图2为调度模块的调度顺序图

具体实施方式:

下面结合附图对本发明做详细描述。

本发明基于缓存单元id的存储管理电路,包含缓存模块、调度模块、应答模块,

缓存模块,分为n个缓存区,每个缓存区包含多个缓存单元;每个缓存单元有惟一的id,缓存单元用于存储外部接收模块发送的消息;主机从缓存单元读取并处理完消息后,释放对应的存储单元,使该存储单元成为空闲的缓存单元,可以存储新的消息,n的值根据存储管理电路的具体需求确定,

调度模块,用于查找可用的缓存单元,当查到可用的缓存单元时,将缓存单元id发送给应答模块,

应答模块,在接收到外部接收模块的请求时,将预先查找的可用缓存单元id发送给外部接收模块,外部接收模块将消息存储至该可用的缓存单元。

缓冲区模块设计了容量为3*512加1*32个缓存单元。即共有4个缓冲块,缓冲块1、2、3各包含512个缓存单元,缓冲块4包含32个缓存单元;调度模块用来查找每个缓冲区模块可用的缓存单元;应答模块将调度的结果发送至接收模块。存储管理电路图如图1所示。

对于容量为512的缓冲块,调度时的规则如下:

电路开始工作后,根据预先调度的特性,缓冲区的每个缓冲块都会调度出一个待分配的缓存单元,即每个缓冲块的缓存单元0。请求信号有效时,根据请求写入的队列号,直接给出该队列可用的缓存单元id;

上次调度的应答信号撤销后,存储管理电路根据上次调度的结果,将每个缓冲块待分配的128个缓存单元送入调度模块。根据调度模块的算法,得出下一次请求有效时,要分配的缓存单元id。

对于容量为32的缓冲块,在调度模块时,vlque_req[127:0]信号的高96位一致填充“0”。

该存储管理电路的特点就是预先调度。电路中设计了一个128位的调度模块,模块的功能如下:

调度模块的信号vlque_req[127:0]为当前缓存单元的占用标志。信号rxmgt_bufid上次请求分配的缓存单元id。在完成应答信号rxmgt_ack有效时,该模块锁存上次分配的结果。如图2所示,如果上次分配的缓存单元id为m时,即小于m的缓存单元id全部被置为不可用,则首先从m+1开始查询当前可用的缓存单元id。如果从m+1开始到127,无可用的缓存单元。则重新从下一个缓冲区的第0个缓存单元开始查询当前可用的缓存单元id。当查到可用的缓存单元时,将缓存单元id转换成二进制编码输出,即信号txsch_vlque。



技术特征:

技术总结
一种基于缓存单元ID的存储管理电路,包含缓存模块、调度模块、应答模块,其中缓存模块,分为N个缓存区,每个缓存区包含多个缓存单元;每个缓存单元有惟一的ID,缓存单元用于存储外部接收模块发送的消息;主机从缓存单元读取并处理完消息后,释放对应的存储单元,使该存储单元成为空闲的缓存单元,可以存储新的消息,N的值根据存储管理电路的具体需求确定,调度模块,用于查找可用的缓存单元,应答模块在接收到外部接收模块的请求时,将预先查找的可用缓存单元ID发送给外部接收模块,外部接收模块将消息存储至该可用的缓存单元。由于事先将空闲缓冲区的地址存储在寄存器中,省去了查找空闲存储地址的时间。

技术研发人员:张荣华;田泽;郭亮;刘浩;张亮
受保护的技术使用者:中国航空工业集团公司西安航空计算技术研究所
技术研发日:2016.12.12
技术公布日:2018.08.24
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1