一种片上网络消息缓冲区的存储管理模块.pdf

上传人:32 文档编号:1666998 上传时间:2018-07-03 格式:PDF 页数:20 大小:2.37MB
返回 下载 相关 举报
摘要
申请专利号:

CN201510040741.7

申请日:

2015.01.27

公开号:

CN104636085A

公开日:

2015.05.20

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 3/06申请日:20150127|||公开

IPC分类号:

G06F3/06

主分类号:

G06F3/06

申请人:

北京理工大学

发明人:

王一拙; 王小军; 石峰; 计卫星; 高玉金

地址:

100081北京市海淀区中关村南大街5号北京理工大学

优先权:

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

本发明涉及一种片上网络消息缓冲区的存储管理模块,属于计算机体系结构及芯片设计领域,该模块负责片上网络计算节点各个端口接收和转发消息时缓冲区存储单元的分配与回收,本发明的存储管理模块采用多端口同步访问模式,多个端口可同时申请或释放消息缓冲区中的存储单元;申请存储单元过程采用预先分配策略,不是申请时才分配,而是在初始化时预先为每个端口分配存储单元,之后每次有端口申请存储单元时再预先为下一次申请提前分配好存储单元。对比现有技术,本发明通过多端口并发访问和预先分配策略缩短了存储单元分配和回收的时间,从而减小了消息存储转发的延迟,提高了存储效率,采用环形队列保存缓冲区空闲存储单元地址,简化了电路设计。

权利要求书

权利要求书
1.  一种片上网络消息缓冲区的存储管理模块,其特征在于:包括多于2个 可同时申请或释放消息缓冲区中的存储单元的端口;申请存储单元的过程采用 预先分配策略,即初始化时预先为每个端口分配存储单元,之后每次有端口申 请存储单元时预先为下一次申请提前分配好存储单元。

2.  根据权利要求1所述的一种片上网络消息缓冲区的存储管理模块,其特 征在于:由读地址生成模块、写地址生成模块、表项存储模块和表长计算模块 组成;读、写地址生成模块分别与表项存储模块相连,表长计算模块与读、写 地址生成模块相连;表项存储模块用于以环形队列的形式保存消息缓冲区所有 空闲存储单元的地址,读地址生成模块用于对每个端口的读通道生成读取上述 环形队列的表项地址,写地址生成模块用于根据各个端口写通道的申请情况为 将要写入的数据分配写入到上述环形队列的表项地址,表长计算模块用于从读 地址生成模块得到环形队列当前的队首地址Head,从写地址生成模块得到环形 队列当前的队尾地址Tail,然后计算出当前时刻的队列长度;各端口对消息缓 冲区存储单元的申请通过读地址生成模块进行,对消息缓冲区存储单元的释放 回收通过写地址生成模块进行。

3.  根据权利要求2所述的一种片上网络消息缓冲区的存储管理模块,其特 征在于:所述表项存储模块是一个多端口存储器,以环形队列的形式保存消息 缓冲区所有空闲存储单元的地址;该环形队列所能存储的队列表项总个数等于 消息缓冲区存储单元个数加一;在所述表项存储模块中不需要进行地址冲突仲 裁,多个端口可同步访问。

4.  根据权利要求2所述的一种片上网络消息缓冲区的存储管理模块,其特 征在于:所述读地址生成模块,对每个端口的读通道生成读取环形队列的表项 地址,并维护环形队列的队首地址Head,对N个同时申请读的通道,读地址生 成分两种情况:当N小于消息缓冲区空闲存储单元的数目时,按照通道优先级 将Head、Head+1、…、Head+N-1分配给各通道作为读取地址;当N大于消息 缓冲区空闲存储单元的数目时,按照通道优先级顺序,高优先级的通道获得分 配。

5.  根据权利要求2所述的一种片上网络消息缓冲区的存储管理模块,其特 征在于:所述写地址生成模块,对N个同时申请写入的通道,按照通道标号从 小到大的顺序将当前队尾地址Tail、Tail+1、…、Tail+N-1分配给各通道作为写 入地址,N个通道在同一时钟驱动下同时将数据写入环形队列上述各地址,并 将队尾地址修改为Tail+N。

6.  一种具有4个同时读/写通道的片上网络消息缓冲区的存储管理模块实 现电路,其特征在于:所述存储管理模块的外部接口包括4个写入数据总线 Dwr0(4:0)~Dwr3(4:0)和4个读出数据总线Drd0(4:0)~Drd3(4:0),与4个写入数 据总线相关的4个写入控制信号WR0~WR3;与4个读出数据总线相关的4个 读出控制信号RD0~RD3以及待读状态指示信号RE0~RE3(用于表示是否有一个 有效数据在相应读出数据总线Drd0(4:0)~Drd3(4:0)上);以及复位信号RST和时 钟信号CLK;所述存储管理模块内部由写地址生成模块IMG_WrAGen、读地址 生成模块IMG_RdAGen、表项存储模块IMG_Mem5x32和表长计算模块 IMG_QueLen四个模块组成;连接关系如下:
表项存储模块IMG_Mem5x32通过Awr0(4:0)~Awr3(4:0)接口与写地址生成 模块IMG_WrAGen的Awr0(4:0)~Awr3(4:0)接口相连,通过Ard0(4:0)~Ard3(4:0) 接口与读地址生成模块IMG_RdAGen的Ard0(4:0)~Ard3(4:0)接口相连;表长计 算模块IMG_QueLen通过Tail(4:0)接口与写地址生成模块IMG_WrAGen的 CurTail(4:0)接口相连,通过Len(4:0)接口与读地址生成模块IMG_RdAGen的 QuLen(4:0)接口相连,通过Head(4:0)接口与读地址生成模块IMG_RdAGen的 Head(4:0)接口相连;外部接口RST、CLK与写地址生成模块IMG_WrAGen、读 地址生成模块IMG_RdAGen和表项存储模块IMG_Mem5x32三个模块相连,写 入控制信号WR0~WR3与写地址生成模块IMG_WrAGen和表项存储模块 IMG_Mem5x32相连,读出控制信号RD0~RD3以及待读状态指示信号 RE0~RE3与读地址生成模块IMG_RdAGen相连,4个写入数据总线Dwr0(4:0)~ Dwr3(4:0)和4个读出数据总线Drd0(4:0)~Drd3(4:0)与表项存储模块 IMG_Mem5x32相连;
所述写地址生成模块IMG_WrAGen由5个5选1多路选择器IMG_M5_1x5e (TailSel和CH0~CH3模块)、地址译码模块IMG_SelGenWR、或门OR4、锁存 器IMG_FDx5pe(TL模块)和地址增量加法器IMG_AddressInc组成,其中5 个IMG_M5_1x5e之间通过D0(4:0)~D4(4:0)互相连接,TailSel模块的E接口连 接高电平,同时和CH0~CH3模块通过各自的S(2:0)接口分别与模块 IMG_SelGenWR的接口TailSel(2:0)、AwrSet0(2:0)~AwrSet3(2:0)相连; IMG_SelGenWR通过接口WrCtrl0~WrCtrl3同时与外部写入控制信号 WR0~WR3相连,主要通过WR0~WR3的译码,给出各通道写入地址选择信 号、下一时刻队尾Tail计算选择信号;锁存器IMG_FDx5pe用于锁存当前的队 尾地址,同时隔离下一时刻队尾地址,其通过D(4:0)接口与5选1多路选择器 TailSel的O(4:0)相连,通过Q(4:0)与地址增量加法的运算模块IMG_AddressInc 的Din(4:0)接口相连,外部写入控制信号WR0~WR3经过或门OR4与其CE接 口相连;同时外部写入控制信号WR0~WR3分别与5选1多路选择器CH0~CH3 的E接口相连;IMG_AddressInc是一个地址增量加法的运算模块,给出 Din+1、Din+2、Din+3、Din+4的计算结果,该模块以当前环形队列队尾地址 CurTail作为输入,输出CurTail+0、CurTail+1、CurTail+2、CurTail+3、 CurTail+4,这些值分别通过接口O0(4:0)~O4(4:0)与5个5选1多路选择器的对 应接口D0(4:0)~D4(4:0)相连;
所述读地址生成模块IMG_RdAGen由5个5选1多路选择器IMG_M5_1x5e (HS和CH0~CH3模块)、地址译码模块IMG_SelGenRD(OpSel)、或门OR4、 锁存器IMG_FDPEx5(HeadLatch模块)、地址增量加法器IMG_AddressInc和4 个IMG_RdALatch(C0~C3模块)组成,其中5个IMG_M5_1x5e均通过D0(4:0)~ D4(4:0)互相连接D0(4:0)~D4(4:0)接口与IMG_AddressInc的O0(4:0)~O4(4:0)接口 相连;IMG_AddressInc通过Din(4:0)接口与HeadLatch模块的Q(4:0)接口相连; 模块HS通过O(4:0)接口与HeadLatch模块的D(4:0)接口相连;OpSel模块生成 的各种选择信号,用于读出表项地址和队首指针,通过HSel(2:0)、 ArdSet0(2:0)~ArdSet3(2:0)接口分别与HS模块、CH0~CH3模块各自的S(2:0)接 口相连,通过其PreRE0~PreRE3接口分别与C0~C3模块各自的NxtRE接口相 连;CH0~CH3模块分别通过各自的O(4:0)接口与C0~C3模块相应的NxtA(4:0) 接口相连;外部接口RST和CLK与HeadLatch模块、C0~C3模块的对应接口相 连;外部读控制信号RD0~RD3与OpSel模块的RdCtrl0~RdCtrl3接口相连,并 与相对应的C0~C3模块的CE接口以及CH0~CH3模块的E接口相连,同时这 四条读控制信号线经过OR4或门后与HeadLatch模块的CE接口相连;C0~C3 模块则向表项存储模块输出初始化的Pre0(31:0)~Pre3(31:0)信号和 Ard0(4:0)~Ard3(4:0)信号,向外部输出RE0~RE3信号;
所述表项存储模块IMG_Mem5x32由5个IMG_Mem1x32模块并联组成, 这5个模块分别保存所有表项的5位二进制数的一位,IMG_Mem1x32模块由4 个扩展模块IMG_D5_32E(CHwr0~CHwr3模块)、地址和数据合并模块 IMG_WrExt4P1x32(CHwrExt模块)、存储器IMG_FDPE x32(MEM模块)和 数据读出模块IMG_RdExt4P1x32(CHrdExt模块)组成;外部连线WR0~WR3 和Awr0(4:0)~Awr3(4:0)分别与CHwr0~CHwr3模块的E接口和A(4:0)接口相连, 外部连线Dwr0~Dwr3与CHwrExt模块的Din0~Din3接口相连,初始化地址信 号Pre(31:0)和外部信号RST、CLK与MEM模块的Pre(31:0)、Reset、C接口相 连,外部连线Ard0(4:0)~Ard3(4:0)作为输入与CHrdExt模块的A0(4:0)~A3(4:0) 接口相连;CHwr0~CHwr3模块分别通过各自的端口D(31:0)与CHwrExt模块 的WrCtrl0(31:0)~WrCtrl3(31:0)相连;CHwrExt模块通过Data(31:0)、WrEn(31:0) 接口与MEM模块的D(31:0)、CE(31:0)接口相连;MEM模块通过Q(31:0)接口 与CHrdExt模块的D(31:0)接口相连;
所述表长计算模块IMG_QueLen由2个4位减法器ADSU4模块串联构成, 外部的循环队列的队尾指针数据线Tail(0)~Tail(3)和队头指针数据线Head(0)~ Head(3)分别与上面的ADSU4子模块的A0~A3接口与B0~B3接口相连,队尾指 针数据线Tail(4)和队头指针数据线Head(4)与下面的ADSU4子模块的A0接口 与B0接口相连;上面的ADSU4模块的S0~S3接口生成队列长度连线 Len(0)~Len(3),下面的ADSU4子模块的S0接口生成队列长度连线Len(4);上 面ADSU4子模块通过ADD接口与下面ADSU4子模块的A2、A3、B1~B3、 ADD接口以及“地”信号同时相连,同时上面ADSU4子模块通过CO接口与 下面ADSU4子模块的C1接口相连,通过C1接口与下面ADSU4子模块的A1 接口以及VCC相连;上面ADSU4子模块的OFL接口和下面ADSU4子模块的 OFL、CO接口、S1~S3接口均置空。

说明书

说明书一种片上网络消息缓冲区的存储管理模块
技术领域
本发明涉及一种片上网络消息缓冲区的存储管理模块,属于计算机体系结构 及芯片设计领域,适用于片上多核、众核处理器核间互连单元的构建。
背景技术
随着多核、众核处理器体系结构的发展,越来越多的处理核被集成在单个芯 片上,这对核间通信提出了极大的需求,片上网络作为核间通信的一种有效解决 方案正被广泛研究和采用。在一个片上网络体系结构中,数据被打包成消息在处 理核(计算节点)之间进行传递,消息传递过程采用存储转发的方式进行,每个 计算节点的路由模块与当前计算节点以及其它相邻计算节点的路由模块相连,如 二维网格片上网络的路由模块具有东、西、南、北四个端口和一个本地端口,当 路由模块接收到某个端口上的消息时需要将其写入消息缓冲区,之后根据目标路 由,读出缓冲区中的消息到某个端口。由于消息缓冲区的大小是固定的,多个端 口可能在同一时刻并发的接收或发送消息,因此,必须实现消息缓冲区存储空间 的自动管理,即存储管理模块,该模块负责消息缓冲区存储空间的分配和回收, 即当某个端口上要写入消息时,由存储管理模块给出消息缓冲区中空闲存储单元 的地址,当某个端口上读出消息时,将该消息对应的存储单元地址保存到存储管 理模块中,表示该地址对应的消息缓冲区存储单元可用。
目前,片上网络消息缓冲区的存储管理模块都采用即时分配策略,即当某端 口上接收到消息,向存储管理模块申请消息缓冲区空间时,存储管理模块才在内 部获取消息缓冲区空闲单元的一个地址,并将其发送到读出通道的数据总线上。 这种方式在接收到消息时才申请空间,需要等待存储管理模块内部的一系列操作, 会使消息的存储转发过程延迟至少一个时钟周期。
本发明采用另一种策略,即预先分配策略,存储管理模块预先将消息缓冲区 空闲单元地址发送到读出通道的数据总线上,当有消息到来时直接从本发明的存 储管理模块的读出通道数据总线上获得消息缓冲区空闲单元地址,这样就避免了 延迟等待存储管理模块内部操作的时间。
另外,现有片上网络消息缓冲区的存储管理模块都采用多端口异步访问模式, 如当多个端口同时接收消息时,存储管理模块为各个端口逐一提供消息缓冲区空 闲单元地址,这种模式实现简单,但效率较低。针对这一点,本发明采用同步访 问模式,即多个端口可同时读写存储管理模块,也就是同时进行消息缓冲区多个 存储单元的分配和回收。
发明内容
本发明的目的是为解决现有存储管理模块延迟大的问题,提供一种片上网络 消息缓冲区的存储管理模块,该存储管理模块采用多端口同步访问模式,多个端 口可同时申请或释放消息缓冲区中的存储单元;在申请存储单元时,采用预先分 配策略,减少消息存储转发的延迟。
本发明的目的是通过以下技术方案实现的:
一种片上网络消息缓冲区的存储管理模块,包括多于2个可同时申请或释放 消息缓冲区中的存储单元的端口;申请存储单元的过程采用预先分配策略,即初 始化时预先为每个端口分配存储单元,之后每次有端口申请存储单元时预先为下 一次申请提前分配好存储单元。
较优的,所述存储管理模块由读地址生成模块IMG_RdAGen、写地址生成模 块IMG_WrAGen、表项存储模块IMG_Mem5x32和表长计算模块IMG_QueLen 组成;读、写地址生成模块分别与表项存储模块相连,表长计算模块与读、写地 址生成模块相连;表项存储模块用于以环形队列的形式保存消息缓冲区所有空闲 存储单元的地址,读地址生成模块用于对每个端口的读通道生成读取上述环形队 列的表项地址,写地址生成模块用于根据各个端口写通道的申请情况为将要写入 的数据分配写入到上述环形队列的表项地址,表长计算模块用于从读地址生成模 块得到环形队列当前的队首地址Head,从写地址生成模块得到环形队列当前的队 尾地址Tail,然后计算出当前时刻的队列长度;各端口对消息缓冲区存储单元的 申请通过读地址生成模块进行,对消息缓冲区存储单元的释放回收通过写地址生 成模块进行。
较优的,所述表项存储模块是一个多端口存储器,以环形队列的形式保存消 息缓冲区所有空闲存储单元的地址;该环形队列所能存储的队列表项总个数等于 消息缓冲区存储单元个数加一;在所述表项存储模块中不需要进行地址冲突仲裁, 多个端口可同步访问。
较优的,所述读地址生成模块,对每个端口的读通道生成读取环形队列的表 项地址,并维护环形队列的队首地址Head,对N个同时申请读的通道,读地址 生成分两种情况:当N小于消息缓冲区空闲存储单元的数目时,按照通道优先级 将Head、Head+1、…、Head+N-1分配给各通道作为读取地址;当N大于消息缓 冲区空闲存储单元的数目时,按照通道优先级顺序,高优先级的通道获得分配。
较优的,所述写地址生成模块,对N个同时申请写入的通道,按照通道标号 从小到大的顺序将当前队尾地址Tail、Tail+1、…、Tail+N-1分配给各通道作为写 入地址,N个通道在同一时钟驱动下同时将数据写入环形队列上述各地址,并将 队尾地址修改为Tail+N。
下面以一种具有4个同时读/写通道的存储管理模块实现电路为例说明本发明 原理:
本发明一种片上网络消息缓冲区的存储管理模块的外部接口包括4个写入数 据总线Dwr0(4:0)~Dwr3(4:0)和4个读出数据总线Drd0(4:0)~Drd3(4:0),与4个写 入数据总线相关的4个写入控制信号WR0~WR3;与4个读出数据总线相关的4 个读出控制信号RD0~RD3以及待读状态指示信号RE0~RE3(用于表示是否有一 个有效数据在相应读出数据总线Drd0(4:0)~Drd3(4:0)上);以及复位信号RST和 时钟信号CLK。
如图2所示是本发明的顶层结构,包含四个模块:写地址生成模块 IMG_WrAGen、读地址生成模块IMG_RdAGen、表项存储模块IMG_Mem5x32和 表长计算模块IMG_QueLen。任何通道申请表项存储模块IMG_Mem5x32的空间 时,都在其队首附近读取一个空闲地址,读取后,该地址已经不在表项存储模块 中,表明相应存储空间已经分配;任何一个通道从表项存储模块中读取的地址消 息一旦发送出去,该消息所占用的表项存储模块空间将被释放,即相应的地址将 会被写入表项存储模块的队尾附近,以待其他通道申请时使用。其中,表项存储 模块IMG_Mem5x32通过Awr0(4:0)~Awr3(4:0)接口与写地址生成模块 IMG_WrAGen的Awr0(4:0)~Awr3(4:0)接口相连,通过Ard0(4:0)~Ard3(4:0)接口与 读地址生成模块IMG_RdAGen的Ard0(4:0)~Ard3(4:0)接口相连;表长计算模块 IMG_QueLen通过Tail(4:0)接口与写地址生成模块IMG_WrAGen的CurTail(4:0) 接口相连,通过Len(4:0)接口与读地址生成模块IMG_RdAGen的QuLen(4:0)接口 相连,通过Head(4:0)接口与读地址生成模块IMG_RdAGen的Head(4:0)接口相连; 外部接口RST、CLK与写地址生成模块IMG_WrAGen、读地址生成模块 IMG_RdAGen和表项存储模块IMG_Mem5x32三个模块相连,写入控制信号 WR0~WR3与写地址生成模块IMG_WrAGen和表项存储模块IMG_Mem5x32相 连,读出控制信号RD0~RD3以及待读状态指示信号RE0~RE3与读地址生成模块 IMG_RdAGen相连,4个写入数据总线Dwr0(4:0)~Dwr3(4:0)和4个读出数据总线 Drd0(4:0)~Drd3(4:0)与表项存储模块IMG_Mem5x32相连。
写地址生成模块的电路结构如图3所示。写地址生成模块IMG_WrAGen的4 个写入通道是并行的,IMG_WrAGen根据各个写入通道的申请情况为将要写入的 数据分配写入地址,如果WRi为1表示写入通道i申请写入数据,则各个通道写 入数据时,IMG_AddressInc为各通道分配的写入地址。写地址生成模块根据各个 端口写通道的申请情况为将要写入的数据分配写入到环形队列中的地址,当同时 有N个通道申请写入时,按照通道标号从小到大的顺序将当前队尾地址Tail、 Tail+1、…、Tail+N-1分配给各通道作为写入地址,N个通道在同一时钟驱动下同 时将数据写入环形队列上述各地址,并将队尾地址修改为Tail+N。由于环形队列 可保存的表项个数为消息缓冲区存储单元个数加一,而写入过程实际对应的是消 息缓冲区存储单元的释放回收,每次回收写入环形队列一个表项,每次分配取走 环形队列一个表项,因此写入时不存在队列满了无法写入的状态。IMG_M5_1x5e 是5选1多路选择器,图中共有5个,分别为TailSel、CH0~CH3模块,它们之 间通过D0(4:0)~D4(4:0)互相连接;5选1多路选择器TailSel模块的E接口连接高 电平,同时和CH0~CH3模块通过各自的S(2:0)接口分别与模块IMG_SelGenWR 的接口TailSel(2:0)、AwrSet0(2:0)~AwrSet3(2:0)相连;地址译码模块 IMG_SelGenWR通过接口WrCtrl0~WrCtrl3同时与外部写入控制信号WR0~WR3 相连,主要通过WR0~WR3的译码,给出各通道写入地址选择信号、下一时刻队 尾Tail计算选择信号;锁存器IMG_FDx5pe用于锁存当前的队尾地址,同时隔离 下一时刻队尾地址,其通过D(4:0)接口与5选1多路选择器TailSel的O(4:0)相连, 通过Q(4:0)与地址增量加法的运算模块IMG_AddressInc的Din(4:0)接口相连,外 部写入控制信号WR0~WR3经过或门OR4与其CE接口相连;同时外部写入控制 信号WR0~WR3分别与5选1多路选择器CH0~CH3的E接口相连; IMG_AddressInc是一个地址增量加法的运算模块,给出Din+1、Din+2、Din+3、 Din+4的计算结果,该模块以当前环形队列队尾地址CurTail作为输入,输出 CurTail+0、CurTail+1、CurTail+2、CurTail+3、CurTail+4,这些值分别通过接口 O0(4:0)~O4(4:0)与5个5选1多路选择器的对应接口D0(4:0)~D4(4:0)相连。
读地址生成模块IMG_RdAGen,其功能是给出表项存储模块IMG_Mem5x32 队首表项地址,同时对于读操作进行控制以免发生读溢出,电路结构如图4所示。 读地址生成模块对每个端口的读通道生成读取环形队列的表项地址,读过程实际 上就是为接到消息的端口分配消息缓冲区存储单元的过程,读地址生成模块维护 环形队列的队首地址Head,当有N个通道同时申请读的时候,按照通道优先级 将Head、Head+1、…、Head+N-1分配给各通道作为读取地址,并得到新的队首 地址,如果同时申请的通道数目少于消息缓冲区空闲存储单元的数目则每个申请 读的通道都会被分配一个地址,如果同时申请的通道数目多于空闲存储空间数目, 则只有高优先级的通道才会获得分配。通道优先级可由用户静态设置,如按照通 道标号从小到大的顺序设置优先级从高到低,也可以在运行过程中动态修改。读 过程采用预先分配策略,系统初始化时消息缓冲区的所有存储单元均空闲,因此 初始化时顺序为每个端口分配一个消息缓冲区存储单元,即在每个端口的读出数 据总线上输出一个有效的消息缓冲区存储单元地址,并将每个端口的待读状态指 示信号RE设为1(可读),初始化之后,当端口申请读时,外部电路直接从读出 数据总线上获得预先分配的地址,读地址生成模块同时生成读取上述环形队列的 表项地址,为下次相应端口的读请求预先分配消息缓冲区存储单元地址。RE标识 了读出数据总线上的数据的有效性,所以当RE为0时,数据总线上的数据可以 是任何值,另外,凡是没有申请读操作的通道,相应的输出数据和RE均保持不 变,这两点可用于优化读地址生成模块的电路逻辑设计。与写通道不同,读通道 由于需要考虑同时申请读出操作的优先级、控制读溢出等因素,其内部逻辑操作 比写通道要复杂,与系统所处的三种状态有关:其一,系统初始化状态。所有消 息存储单元均为闲置状态,因此初始化时可以为每个输入通道都预先分配一个消 息存储器地址,而无需考虑该通道是否接收到消息;其二,已分配了消息存储空 间。此时读出通道在接收消息时,会发现已经分配了存储空间。申请消息存储空 间的输入通道是否能够被分配,与同时申请的通道数以及各通道的优先级有关, 如果同时申请的通道数目少于空闲存储空间的数目则每个申请存储空间的通道都 会被分配一个地址,如果同时申请的通道数目多于空闲存储空间数目,则只有那 些高优先级的通道才会获得分配;其三,未分配到消息存储空间。此时该通道应 该不断地申请消息存储空间,直到被分配到存储空间为止。读地址生成模块 IMG_RdAGen的连接关系如下:
模块CH0~CH3为IMG_M5_1x5e的5选1多路选择器,其分别通过各自的 D0(4:0)~D4(4:0)接口与IMG_AddressInc地址增量加法运算模块的O0(4:0)~O4(4:0) 接口相连,同样的与模块HS5选1多路选择器的D0(4:0)~D4(4:0)接口相连; IMG_AddressInc地址增量加法运算模块通过Din(4:0)接口与HeadLatch模块的 Q(4:0)接口相连;模块HS通过O(4:0)接口与HeadLatch模块的D(4:0)接口相连;名 称为OpSel的IMG_SelGenRD模块生成的各种选择信号,用于读出表项地址和队 首指针,通过HSel(2:0)、ArdSet0(2:0)~ArdSet3(2:0)接口分别与HS模块、CH0~CH3 模块各自的S(2:0)接口相连,通过其PreRE0~PreRE3接口分别与C0~C3模块各自 的NxtRE接口相连;CH0~CH3模块分别通过各自的O(4:0)接口与C0~C3模块相 应的NxtA(4:0)接口相连;外部接口RST和CLK与名称为HeadLatch的 IMG_FDPEx5模块、C0~C3的IMG_RdALatch模块的对应接口相连;外部读控制 信号RD0~RD3与名称为OpSel的IMG_SelGenRD模块的RdCtrl0~RdCtrl3接口 相连,并与相对应的C0~C3模块的CE接口以及CH0~CH3模块的E接口相连, 同时这四条读控制信号线经过OR4或门后与名称为HeadLatch的IMG_FDPEx5 模块的CE接口相连。名称为IMG_RdALatch的C0~C3锁存器模块则向表项存储 模块输出初始化的Pre0(31:0)~Pre3(31:0)信号和Ard0(4:0)~Ard3(4:0)信号,向外部 输出RE0~RE3信号。
表项存储模块IMG_Mem5x32电路结构图如图7所示,其是一个多端口存储 器,该多端口存储器各个端口的读写地址信号分别由读地址生成模块和写地址生 成模块提供,读地址生成模块和写地址生成模块保证了同一时刻多个端口访问不 同的地址,因此在表项存储模块中不需要进行地址冲突仲裁,多个端口可以同步 访问。其以环形队列的形式保存消息缓冲区所有空闲存储单元的地址,该多端口 存储器的空间大小由消息缓冲区存储单元个数决定,为避免环形队列首尾指针重 叠时对队列是满还是空的判断,环形队列所能存储的表项总个数设为消息缓冲区 存储单元个数加一。
外部连线WR0~WR3和Awr0(4:0)~Awr3(4:0)分别与相应子模块序号 CHwr0~CHwr3的E接口和A(4:0)接口相连,外部连线Dwr0~Dwr3与子模块名称 为CHwrExt的Din0~Din3接口相连,初始化地址信号Pre(31:0)和外部信号RST、 CLK与子模块名称为MEM的Pre(31:0)、Reset、C接口相连,外部连线 Ard0(4:0)~Ard3(4:0)作为输入与子模块名称为CHrdExt的A0(4:0)~A3(4:0)接口相 连;子模块CHwr0~CHwr3分别通过各自的端口D(31:0)与子模块CHwrExt的 WrCtrl0(31:0)~WrCtrl3(31:0)相连;子模块CHwrExt通过Data(31:0)、WrEn(31:0) 接口与子模块MEM的D(31:0)、CE(31:0)接口相连;子模块MEM通过Q(31:0) 接口与子模块CHrdExt的D(31:0)接口相连。
表长计算模块IMG_QueLen,电路结构如图8所示,是一个5bit二进制减法 器。表长计算模块从读地址生成模块得到环形队列当前的队首地址Head,从写地 址生成模块得到上述环形队列当前的队尾地址Tail,然后计算出当前时刻的队列 长度,该队列长度被读地址生成模块用来判断多个通道同时申请读取时是否有足 够的队列表项,也就是多个端口同时接到消息时,消息缓冲区是否有足够的空闲 存储单元。表长计算模块与读地址生成模块和写地址生成模块实际上构成了表项 存储模块多端口存储器的访问控制,也就是上述环形队列的出队和入队控制。表 长计算模块IMG_QueLen的电路连接关系如下:
循环队列的队尾指针数据线Tail(0)~Tail(3)和队头指针数据线Head(0)~ Head(3)分别与上面的ADSU4子模块的A0~A3接口与B0~B3接口相连,队尾指 针数据线Tail(4)和队头指针数据线Head(4)与下面的ADSU4子模块的A0接口与 B0接口相连;上面的ADSU4子模块的S0~S3接口生成队列长度连线 Len(0)~Len(3),下面的ADSU4子模块的S0接口生成队列长度连线Len(4);上面 ADSU4子模块通过ADD接口与下面ADSU4子模块的A2、A3、B1~B3、ADD 接口以及“地”信号同时相连,同时上面ADSU4子模块通过CO接口与下面ADSU4 子模块的C1接口相连,通过C1接口与下面ADSU4子模块的A1接口以及VCC 相连;上面ADSU4子模块的OFL接口和下面ADSU4子模块的OFL、CO接口、 S1~S3接口均置空。
有益效果
与现有技术相比,本发明具有以下优点:
1)本发明支持多端口并发申请或释放消息缓冲区存储空间,提高了存储管理 的效率;
2)本发明在消息缓冲区存储单元申请时采用预先分配策略,缩短了存储单元 申请的时间,从而缩短了消息存储转发的延迟;
3)本发明采用环形队列保存消息缓冲区空闲存储单元地址,申请和释放分别 在环形队列头部和尾部进行,不产生访问冲突,环形队列长度冗余一个单位避免 了首尾指针重叠时对队列是满还是空的判断,简化了电路设计。
附图说明
图1是本发明实施例的对外接口信号示意图;
图2是本发明实施例的组成结构示意图;
图3是写地址生成模块的电路结构示意图;
图4是写地址生成模块在环形队列中的操作时序示意图;
图5是读地址生成模块的电路结构示意图;
图6是读地址生成模块在环形队列中表项充足情况下的操作时序示意图;
图7是读地址生成模块在环形队列中表项不足情况下的操作时序示意图;
图8是模块IMG_Mem1x32的电路结构示意图;
图9是表长计算模块的电路结构示意图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细描述。
下面以基三互连的片上网络为例基于Xilinx软件平台对本发明电路进行说 明。
基三互连的片上网络中每个节点具有三个外接端口和一个本地端口,因此总 的端口数量为4,消息缓冲区存储单元个数为31,地址总线宽度为5bit。
如图1所示是本发明实施例的外部接口信号示意图,4个端口对应4个读出 通道和4个写入通道,与4个写入通道相关的有写入控制信号WR0~WR3和写入 数据总线Dwr0~Dwr3;与4个读出通道相关的有读出控制信号RD0~RD3、读出 数据总线Drd0~Drd3以及待读状态指示信号RE0~RE3;复位信号RST和时钟信 号CLK。读出时可能出现失败的情况,即消息缓冲区没有空闲存储单元可供分配, 因此需要信号RE0~RE3指示读出数据总线Drd0~Drd3上是否有有效数据(消息 缓冲区空闲存储单元地址)。写入时相当于消息缓冲区存储单元的回收,将回收的 存储单元地址写入存储管理模块中的环形队列,由于环形队列总长度等于消息缓 冲区存储单元个数加一,因此不存在写入失败的情况,不需要其它状态指示信号。
本发明实施例一种片上网络消息缓冲区的存储管理模块组成结构如图2所 示,包含四个模块:写地址生成模块IMG_WrAGen、读地址生成模块 IMG_RdAGen、表项存储模块IMG_Mem5x32和表长计算模块IMG_QueLen;表 项存储模块IMG_Mem5x32通过Awr0(4:0)~Awr3(4:0)接口与写地址生成模块 IMG_WrAGen的Awr0(4:0)~Awr3(4:0)接口相连,通过Ard0(4:0)~Ard3(4:0)接口与 读地址生成模块IMG_RdAGen的Ard0(4:0)~Ard3(4:0)接口相连;表长计算模块 IMG_QueLen通过Tail(4:0)接口与写地址生成模块IMG_WrAGen的CurTail(4:0) 接口相连,通过Len(4:0)接口与读地址生成模块IMG_RdAGen的QuLen(4:0)接口 相连,通过Head(4:0)接口与读地址生成模块IMG_RdAGen的Head(4:0)接口相连; 外部接口RST、CLK与写地址生成模块IMG_WrAGen、读地址生成模块 IMG_RdAGen和表项存储模块IMG_Mem5x32三个模块相连,写入控制信号 WR0~WR3与写地址生成模块IMG_WrAGen和表项存储模块IMG_Mem5x32的 对应接口相连,读出控制信号RD0~RD3以及待读状态指示信号RE0~RE3与读地 址生成模块IMG_RdAGen的对应接口相连,4个写入数据总线Dwr0(4:0)~ Dwr3(4:0)和4个读出数据总线Drd0(4:0)~Drd3(4:0)与表项存储模块 IMG_Mem5x32相连。各模块的组成结构和时序具体描述如下:
1)写地址生成模块IMG_WrAGen,电路结构如图3所示。初始时刻RST信 号对锁存器的队尾地址进行初始化,即都为高电平11111。写入控制信号 WR0~WR3一方面通过接口WrCtrl0~WrCtrl3连接模块IMG_SelGenWR,经过译 码得到的信号通过输出接口TailSel(2:0)、AwrSel0(2:0)~AwrSel3(2:0)分别向名称为 TailSel、CH0~CH3通道的5个多路选择模块的S(2:0)接口发送下一时刻队尾地址 选择信号和4个通道写入地址选择信号。同时写入控制信号WR0~WR3分别向 CH0~CH3模块相应的E接口发送信号用于判断相应端口对应模块上写地址是否 有效。然后写入控制信号WR0~WR3再经过或门OR4生成的信号连入锁存器 IMG_FDx5pe的CE接口,用于判断是否有有效使锁存器使能信号求。5个 IMG_M5_1x5e 5选1多路选择器互相连接,其中D0(4:0)~D3(4:0)为4个端口的地 址信号,D4(4:0)为队尾地址信号,当模块TailSel的D0(4:0)~D4(4:0)有输入信号 请求后,通过S(2:0)接口的信号来判断选择哪个接口的信号作为队尾地址 NxtTail(4:0)通过O(4:0)输出到锁存器IMG_FDx5pe的D(4:0)接口,用于锁存当前 的队尾地址,在下一个时钟周期且写地址控制信号有效时将锁存器里的队尾地址 作为当前队尾地址进行输出,如果此时锁存器IMG_FDx5pe上的CE、C接口信 号有效,则通过Q(4:0)将NxtTail(4:0)信号作为当前队尾地址CurTail(4:0)输出到 IMG_AddressInc模块,此模块是一个地址增量加法的运算模块,该模块以当前环 形队列队尾地址CurTail(4:0)通过Din(4:0)接口作为输入,通过O0(4:0)~O4(4:0)接 口输出CurTail+0、CurTail+1、CurTail+2、CurTail+3、CurTail+4,这些值由模块 IMG_SelGenWR根据各通道当前申请写入情况通过IMG_M5_1x5e选择后赋值给 各个通道。例如WR0=WR1=1,WR2=WR3=0时,即通道0和1申请写入,假设 此时环形队列队尾地址为00011(5bit二进制数),则IMG_AddressInc输出端口 O0~O4上的5个值分别为00011、00100、00101、00110、00111,IMG_SelGenWR 根据WR0~WR3的译码,给出通道0对应的多路选择器CH0的选择信号,使其 选择输出D0口上的值00011,给出通道1对应的多路选择器CH1的选择信号, 使其选择输出D1口上的值00100,并给出图3中左上角多路选择器TailSel的选 择信号,使其选择输出D2口上的值00101作为下一时刻队尾地址。锁存器TL模 块里新的CurTail(4:0)信号作为当前队尾地址连入表长计算模块,用于计算循环队 列的长度。
图4是写地址生成模块IMG_WrAGen在环形队列中的操作时序,图4所示 为第一个脉冲信号到来之前RST信号有效,此时锁存器内队尾地址初始化为 11111,由于此时Wr0~Wr3均未有写地址申请信号,因此Awr0(4:0)~Awr3(4:0)端 口的值均为无效信号00000。当第一个脉冲信号到来时,Wr0~Wr3均有写地址请 求信号,因此就从队尾地址11111开始为Awr0(4:0)~Awr(4:0)端口依次分配 11111~00010,此时新的队尾地址00011已经在锁存器里。在第二个时钟周期里, 随着第二个时钟脉冲的到来,锁存器提供新的队尾地址00011。同时由于Wr0~Wr2 有写地址请求信号,因此从队尾地址00011开始为Awr0(4:0)~Awr2(4:0)端口依次 分配00011~00101,因为Wr3没有写地址请求,就将Awr3(4:0)端口置为无效地址。 依此按照时钟周期依此分配下去,可以看到在每个时钟周期上一时钟周期的队尾 地址都要翻转成为新的队尾地址。
2)读地址生成模块IMG_RdAGen,电路结构如图5所示。由表长计算模块 IMG_QueLen发出的QuLen(4:0)信号连入IMG_SelGenRD模块的QuLen(4:0)接口, 用于判断循环队列的长度是否满足读地址模块各端口RD0~RD3的请求数。读地 址请求信号RD0~RD3连接IMG_SelGenRD模块的RdCtrl0~RdCtrl3,经过译码生 成ArdSel0(2:0)~ArdSel3(2:0)信号作为选择逻辑,分别连入多路选择器CH0~CH3 的S(2:0)接口,同时RD0~RD3请求信号分别作为相应多路选择器CH0~CH3的使 能信号和锁存器C0~C3模块的使能信号连接对应模块的E接口和CE接口,作为 CH0~CH3通道下次读申请时将要读取的表项地址,该地址将在下一个CLK前沿 由锁存器C0~C3锁存并出现在输出端Ard0~Ard3;经过译码生成的HSel(2:0)信号 连入多路选择器HS模块的S(2:0)接口,用于生成下一周期预取的队头地址,由于 有4个端口所以读地址请求数可能在0~4之间,所以需3位二进制表示,比如现 在端口2,3,4有读请求,端口数为3则下次队头地址则为Head+3;经过译码生 成PreRE0~PreRE3信号分别连入锁存器C0~C3模块的NxtRE端口,用于锁存预 分配的下次读请求地址使能信号。请求信号RD0~RD3经过OR4或门生成的信号 连入锁存器HeadLatch模块CE接口,用于决定是否有有效的读请求。多路选择 器HS根据输入信号S(2:0)与D0(4:0)~D4(4:0)选择一个地址作为下一时刻队头地 址通过接口O(4:0)输出到锁存器HeadLatch的D(4:0)接口进行锁存,等到接口CE、 CLK、RST同时有效时,通过Q(4:0)接口输出循环队列的队头地址Head(4:0)到 IMG_AddressInc模块的Din(4:0)端口,此模块是一个地址增量加法的运算模块, 该模块以当前环形队列队首地址Head作为输入,分别通过O0(4:0)~O4(4:0)输出 Head+0、Head+1、Head+2、Head+3、Head+4到多路选择器HS、CH0~CH3模块 的D0(4:0)~D4(4:0)接口,然后各个多路选择器根据各自S(2:0)信号,通过O(4:0) 输出下一时刻读地址信号NxtH(4:0)(此信号已在上面提到,此处不再赘述)和 NxtArd0(4:0)~NxtArd3(4:0)到锁存器C0~C3的NxtA(4:0)接口进行锁存,在下一 有效时刻即下一读请求信号到来时根据NxtRE、CE、CLK、RST信号通过各自的 CurA(4:0)接口输出,同时通过CurRE接口输出下一时刻的对外输出信号 RE0~RE3,而C0~C3的PreData(4:0)接口信号作为各自读取表项存储模块的初始 化值,由于循环队列的队头地址从00000开始,因此C0~C3的初始值就分别为从 00000~00011,这些信号经过扩展转化成Pre(31:0)信号。在输出端使用这样一组锁 存器是因为采用了预先分配策略,各通道申请读时输出端Ard0~Ard3上是已经预 先读出的环形队列表项地址,这些地址在被读取前不能被当前CLK新分配的地址 冲掉,因此需要锁存新分配地址,在下一个CLK预先分配的地址被读走后再输出 到输出端。锁存器HeadLatch模块输出的Head(4:0)信号同时也作为当前队头地址 连入表长计算模块,用于计算循环队列的长度。
图6是读地址生成模块IMG_RdAGen在环形队列中表项充足情况下的操作时 序,图6所示为初始化结束后,在各时钟周期(CLK)后沿同时申请读的通道数 目分别为4、3、2、1、0时的情况,初始化结束时,即图中100ns前,Ard3=0x03、 Ard2=0x02、Ard1=0x01、Ard0=0x00,Head=0x04,RE3=RE2=RE1=RE0=1。随着 各通道的读出控制信号RD0~RD3置1(申请读),0x00~0x03的环形队列表项被 读走,接着在下一CLK前沿(140ns处)将新的地址值0x04~0x07输出到 Ard0~Ard3,该CLK后沿申请读的通道数目变为了3个,此时RD3=0,由于各通 道的RD信号被用作各通道输出锁存器的使能信号,因此图6中RD3=0以后Ard3 的值始终保持不变。图6中几次读申请时队列长度始终大于申请通道数目,因此 RE0~RE3始终为1。
图7是读地址生成模块IMG_RdAGen在环形队列中表项不足情况下的操作时 序,图中340ns左右4个通道开始同时申请读,而此时队列长度QueLen=3,队首 地址Head=0x0E,在下一个时钟CLK前沿(390ns处),通道0、1、2均被分配 了地址(0x0E、0x0F、0x10),通道3由于剩余表项不足而没有分配地址,此时 RE3被置为0,由于逻辑实现优化的原因,尽管队列已无剩余表项,但内部操作 仍为通道3分配了下一个地址,即此时Ard3=0x11,只不过相应的RE3=0表明该 地址无效。与上述类似的情况(队列长度分别为2、1、0)分别发生于490ns、790ns、 890ns附近。而490ns到790ns之间的波形给出的是队列长度为2时,同时申请读 的通道数目分别为4、3、2的情况,此过程中由于同时有写入发生,才使得队列 长度始终为2。
3)表项存储模块IMG_Mem5x32,其中存放的是消息缓冲区空闲存储单元的 地址,由于消息缓冲区存储单元个数为31,其地址为5bit,为避免环形队列首尾 指针重合的判断,环形队列长度为32,因此表项存储空间的大小为5×32bit,另 外,由于本实施例有4个端口,因此表项存储模块是一个4入4出的多端口存储 器。IMG_Mem5x32由5个IMG_Mem1x32模块并联组成,这5个模块分别保存 所有表项的5位二进制数的一位。下面以一个IMG_Mem1x32电路为例进行说明, IMG_Mem1x32的电路结构示意图如图8所示,由于消息缓冲区存储单元个数为 31,其地址为5bit。循环队列开始时每个存储单元的地址需要进行初始化,地址 从00000~11111,Pre(31:0)就是为每个IMG_Mem1x32存储模块提供初始化值的信 号,通过IMG_FDPEx32模块的Pre(31:0)接口对IMG_Mem1x32进行初始化,即 系统上电后或在外部信号RST的作用下,将Pre(31:0)信号数据写入消息缓冲区。 外部信号WR0~WR3和写地址模块发过来的Awr0(4:0)~Awr3(4:0)信号分别连接名 称为IMG_D5_32E的CHwr0~CHwr3模块的使能接口E和A(4:0)接口进行地址扩 展,由5位地址扩展为32位地址。例如,Awr1~Awr3写入地址分别为00100~00110 则扩展后的地址为 00000000000000000000000000010000~00000000000000000000000001000000。 CHwrExt模块的作用就是将写入的地址控制信号和数据进行扩展与合并组合成对 应到1x32MEM模块的地址控制信号和数据。扩展之后的地址通过各自的D(31:0) 接口连入CHwrExt模块的WrCtrl0(31:0)~WrCtrl3(31:0)接口,作为各端口写入地 址的控制信号,CHwrExt模块将WrCtrl0(31:0)~WrCtrl3(31:0)端口扩展后的写地 址控制信号合并到一起,作为一个写地址控制信号通过WrEn(31:0)输出,即 00000000000000000000000000010000~00000000000000000000000001000000合并 为00000000000000000000000001110000输出到MEM模块的CE(31:0),作为写地 址控制信号。而各个端口写入的数据Dwr0(4:0)~Dwr3(4:0)中的一位数据 Din0~Din3连入CHwrExt模块的Din0~Din3接口,经过CHwrExt模块的扩展形成 32位的数据如上所述端口1、2、3有写地址请求,则将相应端口数据根据写地址 控制信号所提供的相应地址空间写入来自Din1~Din3的写数据即可。此后 CHwrExt模块将扩展成32位的地址和数据分别通过WrEn(31:0)和Data(31:0)接口 发送到MEM模块的CE(31:0)和D(31:0)接口,这样表项存储模块就完成了写地址 模块的数据写入。名称为IMG_RdExt4P1x32的一个CHrdExt模块的功能是根据 读地址模块各个端口的地址Ard0(4:0)~Ard3(4:0)从MEM模块读取对应地址数据 5bit位中的一位进行输出。Ard0(4:0)~Ard3(4:0)来自读地址模块的C0~C3各自的 CurA(4:0)接口,连入CHrdExt模块的A0(4:0)~A3(4:0)接口,此信号表示要从MEM 模块的哪些地址空间读取数据,然后通过CHrdExt模块的D(31:0)和MEM模块的 Q(31:0)模块的连线进行查询和数据读取,其中也要进行相关的地址扩展。例如 Ard0(4:0)~Ard3(4:0)的读地址分别为01000~01011,即四个端口通道要读取 1x32MEM模块里相应9~12位置上的数据,通过CHrdExt模块的D(31:0)和MEM 模块的Q(31:0)连线一次全部读取1x32MEM模块的数据,然后将相应位置上的数 据通过CHrdExt模块将取得的各端口上的一位数据通过D0~D3作为外部信号发 送出去。
4)表长计算模块IMG_QueLen,电路结构如图9所示,是一个5bit二进制减 法器,用于计算循环队列的长度。当读地址模块申请地址空间时,表长计算模块 将根据循环队列的当前队尾地址Tail(0)~Tail(4)和队头地址Head(0)~Head(4)对应 位相减,来判断是否有足够的地址空间满足读地址模块的申请。由于单个ADSU4 模块为4位二进制减法器,所以对5bit二进制来说需要2个ADSU4模块。上面 ADSU4子模块通过对循环队列队尾地址值后四位Tail(0)~Tail(3)减去队头指针地 址值后四位Head(0)~Head(3)得到循环队列长度的后四位,下面ADSU4子模块通 过对循环队列队尾地址值最高位Tail(4)减去队头指针地址值最高位Head(4)得到 循环队列长度的最高位,由上下两个ADSU4子模块共同得出循环队列的长度, 上面ADSU4得到循环队列长度的低4位Len(0)~Len(3),下面ADSU4得到循环 队列长度的最高位Len(4)。例如现在队头地址为00010,队尾地址为11111,队尾 地址的后四位与队头地址的后四位在上面的ADSU4进行相减得到1101,由于不 产生进位,直接通过S0~S3进行输出,同样最高一位在下面的ADSU4里面进行 计算得到最高位1,通过S0输出。两个ADSU4产生的值组合后得到最终循环队 列的长度值11101。由于ADSU4为相关软件提供的标准组件,其接法如图9所示, 即使出现队头地址大于队尾地址,模块内部也有相应机制进行处理得到正确结果, 在此不再叙述。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况 下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相 应的改变和变形都应属于本发明所附的权利要求的保护范围。

一种片上网络消息缓冲区的存储管理模块.pdf_第1页
第1页 / 共20页
一种片上网络消息缓冲区的存储管理模块.pdf_第2页
第2页 / 共20页
一种片上网络消息缓冲区的存储管理模块.pdf_第3页
第3页 / 共20页
点击查看更多>>
资源描述

《一种片上网络消息缓冲区的存储管理模块.pdf》由会员分享,可在线阅读,更多相关《一种片上网络消息缓冲区的存储管理模块.pdf(20页珍藏版)》请在专利查询网上搜索。

本发明涉及一种片上网络消息缓冲区的存储管理模块,属于计算机体系结构及芯片设计领域,该模块负责片上网络计算节点各个端口接收和转发消息时缓冲区存储单元的分配与回收,本发明的存储管理模块采用多端口同步访问模式,多个端口可同时申请或释放消息缓冲区中的存储单元;申请存储单元过程采用预先分配策略,不是申请时才分配,而是在初始化时预先为每个端口分配存储单元,之后每次有端口申请存储单元时再预先为下一次申请提前分配。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1