一种现场可编程门阵列数据缓存的管理方法技术

技术编号:3487840 阅读:197 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种现场可编程门阵列数据缓存的管理方法,写数据时,首先,写操作模块将分片数据写入数据存储器,记录所述分片数据的长度并获得所述分片数据在所述数据存储器中的起始地址;然后,所述写操作模块将所述分片数据的长度及其在所述数据存储器中的起始地址写入存储控制器;读数据时,首先,读操作模块读取所述存储控制器获得分片数据的长度及其在所述数据存储器中的起始地址;然后,所述读操作模块根据所述起始地址给出所述数据存储器的读地址后,读取所述分片数据。本发明专利技术所述技术方案使得每个报文分片在数据存储器中的位置得到明确的标识。

【技术实现步骤摘要】

本专利技术涉及一种数据緩存的管理方法,尤其是一种FPGA (Field Programmable Gate Array,现场可编程门阵列)数据緩存的管理方法。
技术介绍
当FPGA接收到待处理的数据后,将数据写入数据FIFO (First Input First Output,先入先出队列),即数据存储器,并将控制信息 写入控制FIFO,即存储控制器;当控制FIFO非空时,表示有数据。 下游模块读控制FIFO得到控制信息,然后从数据FIFO中读取相应数 据加以处理。常规的FIFO实现包含 一 个FIFO控制器和双口 RAM (random-access memory,随机访问内存),双口RAM的一口作为写端 口,而另一口作为读端口,读写端口独立操作。FIFO控制器完成读写 操作的管理,包含读写操作地址指针、FIFO内部数据个数计数器、一 个深度常数以及FIFO内部空满状态指示。如专利号为 "ZL200410034425. 0",名称为" 一种多通道数据緩沖设计方法与装 置,,的中国专利即描述了上述FIFO的实现方法。然而,其双口 RAM 的读写地址由FIFO控制器产生,外部发起写操作或读操作的模块无法 知道当前的读写地址, 一旦写模块和读模块有一个发生操作错误的话, 就会导致整个RAM内部以及后续的数据发生混乱而无法恢复;并且,该专利中将不同通道的报文按通道进行緩存,要求每个通道必须有一组FIFO控制信息,如读写地址指针、空满状态指示、个数计数器等, 通道数量较多时,就会导致管理不便及逻辑资源浪费;再者,该专利 中需要设定一个深度常数,多个通道便需要多个不同的深度常数。专利号为"US5664116"的美国专利描述了一种才艮文緩存的方法, 即采用每个通道分配一个单独的FIFO来緩存数据,但每个报文分片在 数据FIFO中的位置没有明确的标识, 一旦读写操作有一方发生4ti吴 时,整个緩存区的数据都会发生读取混乱,导致无法恢复的错误。
技术实现思路
本专利技术要解决的技术问题是提供一种FPGA数据緩存的管理方法, 使得每个报文分片在数据FIFO中的位置得到明确的标识,确保了某个 报文分片在读写操作发生错误时后续报文緩存的正确性。本专利技术解决其技术问题所采用的技术方案是一种FPGA数据緩存的管理方法,写数据时包括以下步骤a、 写操作模块将分片数据写入数据FIFO,记录所述分片数据的 长度并获得所述分片数据在所述数据FIFO中的起始地址;b、 所述写操作模块将所述分片数据的长度及其在所述数据FIFO 中的起始地址写入控制FIFO;读数据时包括以下步骤A、 读操作模块读取所述控制FIFO获得分片数据的长度及其在所 述数据FIFO中的起始地址;B、 所述读操作模块根据所述起始地址给出所述数据FIFO的读地址后,读取所述分片数据。上述方案中,写数据时,所述起始地址是由所述数据FIFO通过预 设接口传输给所述写操作模块的。上述方案中,读数据时,所述数据FIF0的读地址是由所述读操作 模块根据所述起始地址,通过预设接口给出的。上述方案中,读数据时,所述步骤B通过以下步骤实现(1) 、所述读操作模块通过所述预设接口给出所述数据FIFO的读地址;(2) 、所述读操作模块根据所述读地址进行一次读操作;(3) 、根据所述分片数据的长度判断所述分片数据是否已经全部读 出,若已全部读出,则结束流程,否则,将所述读地址加l后回到步 骤(2)。上述方案中,所述分片数据包括按固定长度划分才艮文数据得到的 分片以及数据通道号、报文开始标志和报文结束标志。本专利技术的有益效果主要表现在本专利技术在写操作时返回数据FIFO 的地址,而在读操作时给出数据FIFO的起始地址,使得每个报文分片 在数据FIFO中的位置得到明确的标识,即使某个报文分片在读写操作 时发生错误,也不会引起整个数据FIFO发生混乱,保证后续报文緩存 的正确性;再者,本专利技术将通道号随同数据一起写入数据FIFO,只管 理一个数据FIFO,便可以緩存多通道数据,极大地简化了实现的复杂 度,节省了逻辑资源。附图说明图1为本专利技术FPGA数据緩存的管理中写数据FIFO的方法流程图2为本专利技术FPGA数据緩存的管理中读数据FIFO的方法流程图。具体实施例方式下面分别结合图l及图2对本专利技术作进一步的描述。参照图1, FPGA的上游模块发送报文数据时,数据緩存的管理方 法包括以下步骤步骤101:写操作模块判断控制FIFO和数据FIFO是否均非满, 若两者均非满,则表明还能緩存报文数据,ii^步骤102;否则,表 明不能从上游模块接收数据,再次执行步骤101;步骤102:写操作模块接收报文数据,并得到数据通道号、报文 开始标志及^R文结束标志;步骤103:写操作模块将报文数据按固定长度划分得到分片,并 将各个分片分别连同数据通道号、报文开始标志及才艮文结束标志组成 各个分片数据;步骤104:写操作模块将一分片数据全部写入数据FIFO,记录该 分片数据的长度并获得该分片数据在数据FIFO中的起始地址;其中, 该起始地址是由数据FIFO通过预设的Wr-addr接口传输给写操作模块 的;记录分片数据的长度是由于报文的长度不固定,往往不是划分时 设定的固定长度的整数倍,这使得报文数据最后一个分片的长度不足 设定的固定长度;步骤105:写操作模块将该分片数据的长度及其在数据FIFO中的 起始地址写入控制FIFO;步骤106:写操作模块判断是否还有分片数据需要写入数据FIFO, 若是,回到步骤104,否则,结束流程。参照图2,从FPGA读取报文数据时,数据緩存的管理方法包括以 下步骤步骤201:读操作模块判断控制FIFO是否非空,若非空,表示至 少有一个分片数据緩存在数据FIFO中,进入步骤202;否则,再次执 行步骤201;步骤202:读操作模块读取控制FIFO获取一分片数据的长度及其 在数据FIFO中的起始地址;步骤203:读操作模块根据读操作模块根据该起始地址通过预设 的Rd-addr接口给出数据FIFO的读地址;步骤204:读操作模块根据该读地址对数据FIFO进行一次读操作, 同时控制FIFO中的初值为0的读取次数计数器加1;步骤205:根据该分片数据的长度及读取次数计数器的值判断该 分片数据是否读取完毕,若两者相同,表示分片数据已读取完毕,回 到步骤201再次进行判断操作;否则,进入步骤206;步骤206:将该读地址增加l,并回到步骤204。权利要求1、,其特征在于,写数据时包括以下步骤a、写操作模块将分片数据写入数据存储器,记录所述分片数据的长度并获得所述分片数据在所述数据存储器中的起始地址;b、所述写操作模块将所述分片数据的长度及其在所述数据存储器中的起始地址写入存储控制器;读数据时包括以下步骤A、读操作模块读取所述存储控制器获得分片数据的长度及其在所述数据存储器中的起始地址;B、所述读操作模块根据所述起始地址给出所述数据存储器的读地址后,读取所述分片数据。2、 如权利要求1所述的现场可编程门阵列数据緩存的管理方法, 其特征在于写数据时,所述起始地址是由所述数据存储器通过预设 接口传输给所述写操作才莫块的。3、 如权利要求2所述的现场可编程门阵列数据緩存的管理方法, 其特征在于读数据时,所述数据存储器本文档来自技高网
...

【技术保护点】
一种现场可编程门阵列数据缓存的管理方法,其特征在于,写数据时包括以下步骤:a、写操作模块将分片数据写入数据存储器,记录所述分片数据的长度并获得所述分片数据在所述数据存储器中的起始地址;b、所述写操作模块将所述分片数据的长度及其在所述数据存储器中的起始地址写入存储控制器;读数据时包括以下步骤:A、读操作模块读取所述存储控制器获得分片数据的长度及其在所述数据存储器中的起始地址;B、所述读操作模块根据所述起始地址给出所述数据存储器的读地址后,读取所述分片数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:邱圣斌
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利