数据有效位统一配置的流控式FIFO缓存结构及方法技术

技术编号:21999942 阅读:25 留言:0更新日期:2019-08-31 05:19
本发明专利技术公开了数据有效位统一配置的流控式FIFO缓存结构及方法,包括第一FIFO和第二FIFO,第一FIFO和第二FIFO共同连接至用于选择全双工模式或半双工模式的全双工模式配置寄存器。本发明专利技术能够提高与主机接口的数据传输效率,减少通过软件进行数据整合的开销,并且设计硬件管理的流控模式从而避免FIFO的溢出现象。

Flow Control FIFO Cache Structure and Method for Unified Configuration of Data Valid Bits

【技术实现步骤摘要】
数据有效位统一配置的流控式FIFO缓存结构及方法
本专利技术涉及串行通信控制领域,具体涉及一种数据有效位统一配置的流控式FIFO缓存结构及方法。
技术介绍
在串行通信控制领域,FIFO是普遍存在的用来缓存与主机交互的并行数据的一种基本结构。针对实际应用情况,目前的FIFO位宽主要有两种形式:(1)FIFO存储宽度为标准的八位数据字节。在这种结构下,主机每进行一次并行数据传输时,只有其中一个字节的数据有效,因此其数据传输效率较低。例如,当主机并行数据位宽为32位时,每次传输只有其中8位数据与FIFO关联,而其它的24位数据都被浪费掉,即便主机要发送一个32位的数据,它也需要进行四次传输。(2)FIFO存储宽度等于主机数据位宽。在这种结构下,主机的一个并行数据只通过一次传输操作就可完成与FIFO的关联,但它可能需要额外的软件拼凑开销。例如,当串行通信应用只需对并行数据字中的一部分字节进行传输时,那么在开始传输前,就需要通过软件手段把这些分散在各个并行数据字中的数据字节整合在一起,然后再装入到FIFO中进行发送。另外,针对FIFO的空满状态与控制,现有技术也主要是通过软件查询或者中断方式来实现的,由于软件处理速度慢、系统中断优先级抢占等情况的出现,经常导致FIFO数据传输不及时,从而引起FIFO溢出的现象数见不鲜。总体而言,现有的FIFO设计结构存在着数据传输效率低、需要软件交互开销大,以及容易引发溢出错误等多方面的缺点。经检索相关文献,目前尚没有一种很好的解决办法。
技术实现思路
本专利技术的目的在于提供一种数据有效位统一配置的流控式FIFO缓存结构及方法,以解决现有FIFO结构中存在的问题,本专利技术能够提高与主机接口的数据传输效率,减少通过软件进行数据整合的开销,并且设计硬件管理的流控模式从而避免FIFO的溢出现象。为达到上述目的,本专利技术采用如下技术方案:数据有效位统一配置的流控式FIFO缓存结构,包括第一FIFO(1)和第二FIFO(2),第一FIFO(1)和第二FIFO(2)共同连接至用于选择全双工模式或半双工模式的全双工模式配置寄存器;第一FIFO(1)上连接有用于产生数据字节有效位的第一流控配置电路及用于接收第一FIFO(1)填充状态信息的第一流控逻辑电路,第一流控配置电路包括第一FIFO对齐模式配置寄存器、第一突发传输大小配置寄存器和第一串行传输字节计数器,第一FIFO对齐模式配置寄存器和第一突发传输大小配置寄存器的输出端均连接至第一流控逻辑电路,第一串行传输字节计数器和第一流控逻辑电路双向交互;第二FIFO(2)上连接有用于产生数据字节有效位的第二流控配置电路及用于接收第二FIFO(2)填充状态信息的第二流控逻辑电路,第二流控配置电路包括第二FIFO对齐模式配置寄存器、第二突发传输大小配置寄存器和第二串行传输字节计数器,第二FIFO对齐模式配置寄存器和第二突发传输大小配置寄存器的输出端均连接至第二流控逻辑电路,第二串行传输字节计数器和第二流控逻辑电路双向交互;第一流控逻辑电路和第二流控逻辑电路均连接至用于选择DMA或CPU响应数据传输请求的DMA使能配置寄存器,所述数据传输请求包括突发数据传输请求、最后一次突发数据传输请求、单字数据传输请求和最后一次单字数据传输请求。进一步地,第一FIFO(1)和第二FIFO(2)均通过主机接口连接至DMA或CPU。进一步地,第一FIFO(1)和第二FIFO(2)的数据位宽与主机接口的数据位宽相等。进一步地,第一FIFO(1)和第二FIFO(2)均通过串行外设接口连接至外界通信总线。数据有效位统一配置的流控式FIFO缓存方法,包括以下步骤:步骤一:用户配置全双工模式配置寄存器,当选择全双工模式时,第一FIFO(1)用于数据的发送,第二FIFO(2)同时用于数据的接收;当选择半双工模式时,第一FIFO(1)用于数据的发送或接收,并进行时分复用,第二FIFO(2)不使用;步骤二:当在全双工模式下,用户配置第一FIFO对齐模式配置寄存器、第一突发传输大小配置寄存器、第一串行传输字节计数器、第二FIFO对齐模式配置寄存器、第二突发传输大小配置寄存器、第二串行传输字节计数器和DMA使能配置寄存器;然后第一流控逻辑电路和第二流控逻辑电路自动产生数据传输请求并发送至DMA或CPU进行处理。进一步地,第一流控逻辑电路和第二流控逻辑电路自动产生数据传输请求并发送至DMA或CPU进行处理具体为:第一流控逻辑电路根据第一FIFO对齐模式配置寄存器的值、第一突发传输大小配置寄存器的值、第一串行传输字节计数器的值以及第一FIFO(1)填充状态信息自动判断当前是进行突发数据传输、最后一次突发数据传输、单字数据传输,还是最后一次单字数据传输,并发出相应的发送数据传输请求;同时第二流控逻辑电路根据第二FIFO对齐模式配置寄存器的值、第二突发传输大小配置寄存器的值、第二串行传输字节计数器的值以及第二FIFO(2)填充状态信息自动判断当前是进行突发数据传输、最后一次突发数据传输、单字数据传输,还是最后一次单字数据传输,并发出相应的接收数据传输请求;根据DMA使能配置寄存器的值选择DMA或CPU响应上述两个数据传输请求,当数据传输请求被CPU或DMA处理后,第一流控逻辑电路从第一串行传输字节计数器的值中减去当前传输的数据字节数以作为下次需要进行的数据传输总量,并将其更新到第一串行传输字节计数器中,如此继续,直到第一串行传输字节计数器的值为0;同时第二流控逻辑电路从第二串行传输字节计数器的值中减去当前传输的数据字节数以作为下次需要进行的数据传输总量,并将其更新到第二串行传输字节计数器中,如此继续,直到第二串行传输字节计数器的值为0;至此,全双工模式的数据发送和接收完成。当在半双工模式下,用户配置第一FIFO对齐模式配置寄存器、第一突发传输大小配置寄存器、第一串行传输字节计数器和DMA使能配置寄存器;然后第一流控逻辑电路自动产生数据传输请求并发送至DMA或CPU进行处理。进一步地,第一流控逻辑电路自动产生数据传输请求并发送至DMA或CPU进行处理具体为:第一流控逻辑电路根据第一FIFO对齐模式配置寄存器的值、第一突发传输大小配置寄存器的值、第一串行传输字节计数器的值以及第一FIFO(1)填充状态信息自动判断当前是进行突发数据传输、最后一次突发数据传输、单字数据传输,还是最后一次单字数据传输,并发出相应的发送或接收数据传输请求;根据DMA使能配置寄存器的值选择DMA或CPU响应上述发送或接收数据传输请求,当数据传输请求被CPU或DMA处理后,第一流控逻辑电路从第一串行传输字节计数器的值中减去当前传输的数据字节数以作为下次需要进行的数据传输总量,并将其更新到第一串行传输字节计数器中,如此继续,直到第一串行传输字节计数器的值为0,至此,半双工模式的数据发送或接收完成。与现有技术相比,本专利技术具有以下有益的技术效果:(1)降低了软件的辅助操作开销。目前FIFO中存储的都是有效数据,如果实际应用中待传输的源或目标数据是散落在各个不同地址空间上的非连续字节或半字,那么就需要主机接口的软件对这些数据进行加工处理。例如发送操作,需要先将这些分散的数据拼凑在一起再写入FIFO中;对于接收操作,需要将这些从FIFO中读出本文档来自技高网...

【技术保护点】
1.数据有效位统一配置的流控式FIFO缓存结构,其特征在于,包括第一FIFO(1)和第二FIFO(2),第一FIFO(1)和第二FIFO(2)共同连接至用于选择全双工模式或半双工模式的全双工模式配置寄存器;第一FIFO(1)上连接有用于产生数据字节有效位的第一流控配置电路及用于接收第一FIFO(1)填充状态信息的第一流控逻辑电路,第一流控配置电路包括第一FIFO对齐模式配置寄存器、第一突发传输大小配置寄存器和第一串行传输字节计数器,第一FIFO对齐模式配置寄存器和第一突发传输大小配置寄存器的输出端均连接至第一流控逻辑电路,第一串行传输字节计数器和第一流控逻辑电路双向交互;第二FIFO(2)上连接有用于产生数据字节有效位的第二流控配置电路及用于接收第二FIFO(2)填充状态信息的第二流控逻辑电路,第二流控配置电路包括第二FIFO对齐模式配置寄存器、第二突发传输大小配置寄存器和第二串行传输字节计数器,第二FIFO对齐模式配置寄存器和第二突发传输大小配置寄存器的输出端均连接至第二流控逻辑电路,第二串行传输字节计数器和第二流控逻辑电路双向交互;第一流控逻辑电路和第二流控逻辑电路均连接至用于选择DMA或CPU响应数据传输请求的DMA使能配置寄存器,所述数据传输请求包括突发数据传输请求、最后一次突发数据传输请求、单字数据传输请求和最后一次单字数据传输请求。...

【技术特征摘要】
1.数据有效位统一配置的流控式FIFO缓存结构,其特征在于,包括第一FIFO(1)和第二FIFO(2),第一FIFO(1)和第二FIFO(2)共同连接至用于选择全双工模式或半双工模式的全双工模式配置寄存器;第一FIFO(1)上连接有用于产生数据字节有效位的第一流控配置电路及用于接收第一FIFO(1)填充状态信息的第一流控逻辑电路,第一流控配置电路包括第一FIFO对齐模式配置寄存器、第一突发传输大小配置寄存器和第一串行传输字节计数器,第一FIFO对齐模式配置寄存器和第一突发传输大小配置寄存器的输出端均连接至第一流控逻辑电路,第一串行传输字节计数器和第一流控逻辑电路双向交互;第二FIFO(2)上连接有用于产生数据字节有效位的第二流控配置电路及用于接收第二FIFO(2)填充状态信息的第二流控逻辑电路,第二流控配置电路包括第二FIFO对齐模式配置寄存器、第二突发传输大小配置寄存器和第二串行传输字节计数器,第二FIFO对齐模式配置寄存器和第二突发传输大小配置寄存器的输出端均连接至第二流控逻辑电路,第二串行传输字节计数器和第二流控逻辑电路双向交互;第一流控逻辑电路和第二流控逻辑电路均连接至用于选择DMA或CPU响应数据传输请求的DMA使能配置寄存器,所述数据传输请求包括突发数据传输请求、最后一次突发数据传输请求、单字数据传输请求和最后一次单字数据传输请求。2.根据权利要求1所述的数据有效位统一配置的流控式FIFO缓存结构,其特征在于,第一FIFO(1)和第二FIFO(2)均通过主机接口连接至DMA或CPU。3.根据权利要求2所述的数据有效位统一配置的流控式FIFO缓存结构,其特征在于,第一FIFO(1)和第二FIFO(2)的数据位宽与主机接口的数据位宽相等。4.根据权利要求1所述的数据有效位统一配置的流控式FIFO缓存结构,其特征在于,第一FIFO(1)和第二FIFO(2)均通过串行外设接口连接至外界通信总线。5.数据有效位统一配置的流控式FIFO缓存方法,采用权利要求1所述的数据有效位统一配置的流控式FIFO缓存结构,其特征在于,包括以下步骤:步骤一:用户配置全双工模式配置寄存器,当选择全双工模式时,第一FIFO(1)用于数据的发送,第二FIFO(2)同时用于数据的接收;当选择半双工模式时,第一FIFO(1)用于数据的发送或接收,并进行时分复用,第二FIFO(2)不使用;步骤二:当在全双工模式下,用户配置第一FIFO对齐模式配置寄存器、第一突发传输大小配置寄存器、第一串行传输字节计数器、第二FIFO对齐模式配置寄存器、第二突发传输大小配置寄存器、第二串行传输字节计数器和DMA使能配置寄存器;然后第一流控逻辑电路和第二流控逻辑电路自动产生数...

【专利技术属性】
技术研发人员:肖建青刘思源杨靓张海金贾一鸣
申请(专利权)人:西安微电子技术研究所
类型:发明
国别省市:陕西,61

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

1