System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及通用串行总线(usb),特别涉及一种缓冲存储器及其数据传输方法、usb传输设备。
技术介绍
1、usb(universal serial bus)最初是为了提供易操作的外设与主机连接的方式而提出的。如今,usb的功能已日趋完善,广泛应用于数据存储领域。
2、目前市面上主流的应用是usb3.0设备。usb3.0支持最高5gt/s(理论传输带宽:500mb/s)的数据传输速率。更高的传输速率意味着对传输延迟的容忍度更低,为提高数据的传输效率,典型的做法是采用pipeline设计,通过面积换性能,在长的数据传输路径上引入ram(缓冲存储器)作为数据缓存区,使得多个任务可以并行执行。
3、当ram大小设置过小,尤其在时钟频率较低的情况下,可能会由于当前正在传输的数据包来不及被处理,仍占据ram的空间,使得后续的数据包被阻塞,性能降低;而当ram大小设置过大时,则会导致资源浪费。
4、因此,ram的空间如何分配,才能既满足性能,又不会产生不必要的资源浪费,成了设计者需要考虑的问题。
技术实现思路
1、鉴于上述问题,本专利技术的目的在于提供一种缓冲存储器及其数据传输方法、usb传输设备,通过将缓冲存储器分配为多个不同功能的单元,从而使得多个功能可以并行执行,提高数据传输效率。
2、根据本专利技术的一方面,提供一种缓冲存储器,用于usb传输设备,其中,包括:第一缓冲单元,用于存储传输请求;第二缓冲单元,用于存储向外部发送的第一数据;第
3、可选地,所述第一缓冲单元、所述第二缓冲单元和所述第三缓冲单元的存储大小不同。
4、可选地,所述第一数据和所述第二数据在端点之间进行发送和接收,所述端点的类型包括:控制端点、批量端点、同步端点和中断端点。
5、可选地,所述第一缓冲单元的存储大小根据usb传输设备的突发数据量、传输请求块数量以及最大包长度计算,所述第一缓冲单元的大小为:a*[b+a*最大包长度/系统页面大小],其中,a表示usb传输设备的最大突发数据量;b表示特殊的传输请求块的数量;最大包长度表示单个数据包的最大长度;系统页面大小表示取决于系统配置,用于限制单个传输请求块的数据长度。
6、可选地,所述第一缓冲单元的大小为:h*i*[j+(n个突发数据量的最大包长度和/系统页面大小)+k+l],其中,h表示传输请求块的长度;i表示每个端点的方向数量;j表示控制端点支持的数据突发量;n个突发数据量的最大包长度和表示第一端点至第n端点支持的突发数据量与最大数据包长度之积的和,所述第一端点至第n端点的类型为批量端点、同步端点和中断端点中的任一种;系统页面大小取决于系统配置,用于限制单个传输请求块的数据长度;k表示标准协议定义的命令传输请求块的类型数量;l表示连接传输请求块的数量。
7、可选地,所述第二缓冲单元的大小根据端点的类型进行计算。
8、可选地,在所述端点的类型包括控制端点的情况下,所述第二缓冲单元的大小等于控制端点的最大数据包长度。
9、可选地,在所述端点的类型还包括批量端点、同步端点和中断端点中的至少一种的情况下,所述第二缓冲单元的大小为:c+(第一端点的突发数据量+第二端点的突发数据量+……+第n端点的突发数据量)*d,其中,c表示控制端点的最大数据包长度,d表示第一端点至第n端点支持的最大数据包长度,所述第一端点至第n端点的类型为批量、同步和中断中的任一种。
10、可选地,所述第三缓冲单元的大小为第二数据的最大数据包长度的2倍加上用于存储建立令牌请求的大小。
11、可选地,所述第三缓冲单元还包括备用空间,根据最大包长度、建立令牌请求包长度和备用空间大小计算得到所述第三缓冲单元的大小:第三缓冲单元的大小=2*e+f+g,其中,e表示第二数据的最大数据包长度;f表示建立令牌请求的包长度;g表示备用空间大小。
12、根据本专利技术的另一方面,提供一种usb传输设备,包括:处理器,控制器,系统内存和缓冲存储器,所述缓冲存储器如上述所述,用于存储第一数据和第二数据。
13、根据本专利技术的再一方面,提供一种用于缓冲存储器的数据传输方法,上述的缓冲存储器用于执行所述数据传输方法,所述数据传输方法包括:接收至少一个传输请求,所述传输请求包括读传输请求和写传输请求;根据所述传输请求传输相应数据,所述数据包括向外部发送的第一数据和从外部接收的第二数据,其中,根据传输请求同时发送第一数据以及接收第二数据。
14、本专利技术提供的缓冲存储器及其数据传输方法、usb传输设备,将主机和从机的缓冲存储器分为三个单元,包括第一缓冲单元,第二缓冲单元和第三缓冲单元,按照其功能第一缓冲单元为指令存储区,第二缓冲单元为数据发送区,第三缓冲单元为数据接收区。即一个主机或从机在接收到指令后,进行数据发送或数据读取,由于数据发送区与数据接收区分离,因此数据发送和数据接收可以同时进行,提高了主机或从机的传输效率。
15、进一步地,在对缓冲存储器进行分区域的基础上,根据不同区域所要执行的功能对该区域进行大小配置,实现保持设备能够实现最大数据传输效率的情况下,降低了设备中缓冲存储器不必要的面积资源浪费。
本文档来自技高网...【技术保护点】
1.一种缓冲存储器,用于USB传输设备,其中,包括:
2.根据权利要求1所述的缓冲存储器,其中,所述第一缓冲单元、所述第二缓冲单元和所述第三缓冲单元的存储大小不同。
3.根据权利要求2所述的缓冲存储器,其中,所述第一数据和所述第二数据在端点之间进行发送和接收,所述端点的类型包括:控制端点、批量端点、同步端点和中断端点。
4.根据权利要求3所述的缓冲存储器,其中,所述第一缓冲单元的存储大小根据USB传输设备的突发数据量、传输请求块数量以及最大包长度计算,所述第一缓冲单元的大小为:A*[B+A*最大包长度/系统页面大小],
5.根据权利要求3所述的缓冲存储器,其中,所述第一缓冲单元的大小为:H*I*[J+(n个突发数据量的最大包长度和/系统页面大小)+K+L],
6.根据权利要求3所述的缓冲存储器,其中,所述第二缓冲单元的大小根据端点的类型进行计算。
7.根据权利要求6所述的缓冲存储器,其中,在所述端点的类型包括控制端点的情况下,所述第二缓冲单元的大小等于控制端点的最大数据包长度。
8.根据权利要求7
9.根据权利要求3所述的缓冲存储器,其中,所述第三缓冲单元的大小为第二数据的最大数据包长度的2倍加上用于存储建立令牌请求的大小。
10.根据权利要求9所述的缓冲存储器,其中,所述第三缓冲单元还包括备用空间,根据最大包长度、建立令牌请求包长度和备用空间大小计算得到所述第三缓冲单元的大小:
11.一种USB传输设备,包括:处理器,控制器,系统内存和缓冲存储器,所述缓冲存储器如权利要求1-10中任一项所述,用于存储第一数据和第二数据。
12.一种用于缓冲存储器的数据传输方法,如权利要求1-10中任一项所述的缓冲存储器用于执行所述数据传输方法,所述数据传输方法包括:
...【技术特征摘要】
1.一种缓冲存储器,用于usb传输设备,其中,包括:
2.根据权利要求1所述的缓冲存储器,其中,所述第一缓冲单元、所述第二缓冲单元和所述第三缓冲单元的存储大小不同。
3.根据权利要求2所述的缓冲存储器,其中,所述第一数据和所述第二数据在端点之间进行发送和接收,所述端点的类型包括:控制端点、批量端点、同步端点和中断端点。
4.根据权利要求3所述的缓冲存储器,其中,所述第一缓冲单元的存储大小根据usb传输设备的突发数据量、传输请求块数量以及最大包长度计算,所述第一缓冲单元的大小为:a*[b+a*最大包长度/系统页面大小],
5.根据权利要求3所述的缓冲存储器,其中,所述第一缓冲单元的大小为:h*i*[j+(n个突发数据量的最大包长度和/系统页面大小)+k+l],
6.根据权利要求3所述的缓冲存储器,其中,所述第二缓冲单元的大小根据端点的类型进行计算。
7.根据权利要求6所述的缓冲存储器,其中,在所述端点的类型包括控制端点的情况下...
【专利技术属性】
技术研发人员:倪立争,李磊,蒋辉,
申请(专利权)人:联芸科技杭州股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。