一种基于RapidIO的发送装置和接收装置的制作方法

文档序号:12120823阅读:408来源:国知局
一种基于RapidIO的发送装置和接收装置的制作方法

本发明公开了一种基于RapidIO的数据传输系统,属于高速数据传输领域,尤其涉及对传输速率和传输时延进行改进的数据传输系统。



背景技术:

RapidIO是一种开放式的互连技术标准,应用于芯片间、板间互连系统。其具有传输效率高、拓扑结构灵活、可靠性高等特点,已经各种系统中广泛应用。

在某些基于RapidIO接口的传输系统中,对时敏性能和传输速率都有较高的要求。考虑到时敏因素,加之数据并非匀速传输,数据速率具有较大的随机性,故只能采用短数据帧。在瞬时传输速率较高时,会产生大量的门铃事务(Doorbell)或者信箱(Mailbox)数据传输,接收端CPU会频繁地响应中断,极大地增加了系统开销。以某数据链系统为例,该数据链系统为了保证系统的时敏性能设计通信帧长度为127Bytes,而RapidIO接口传输速率要求达到400Mbps,这样CPU端每秒接收到393700次Doorbell或者Mailbox数据传输,并响应相同次数的中断。这样就极大增加了CPU的系统开销,传输速率急速降低,甚至导致CPU不能正常工作。



技术实现要素:

本发明的发明目的一是提供一种基于RapidIO的发送装置,另一发明目的是提供一种基于RapidIO的接收装置,能够解决现有传输方式的不足,在保证时敏性能的同时,大幅度降低系统开销,提高传输速率。

本发明的发明目的一通过以下技术方案实现:

一种基于RapidIO的发送装置,包含FIFO模块、发送逻辑控制模块,所述FIFO模块用于缓存上层传递的数据;

所述发送逻辑控制模块用于监控所述FIFO模块缓存的数据长度,若数据长度大于或等于RapidIO数据帧规定的数据长度时,则向窗口空间序号为接收装置反馈的Doorbell中窗口空间序号减1的窗口空间发送RapidIO数据帧,并在该窗口空间的信息位标明有效数据长度信息和数据读取标志为未读。

进一步,所述的一种基于RapidIO的发送装置还包含定时器,所述定时器用于在发送逻辑控制模块将RapidIO数据帧发送给窗口空间后,对接收装置返回Doorbell的时间进行计算,若超过一定时间没有接收到Doorbell则触发发送逻辑控制模块向接收装置发送Doorbell,请求接收装置读取窗口空间内的数据。

本发明的另一发明目的通过以下技术方案实现:

一种基于RapidIO的接收装置,包含若干个窗口空间和接收逻辑控制模块,所述窗口空间大小为RapidIO数据帧规定的数据长度再加上信息位,所述信息位包含有效数据长度信息和数据读取标志信息;

所述接收逻辑控制模块用于先读取部分或全部窗口空间的数据读取标志信息,再读取数据读取标志为未读的窗口空间中的有效数据长度信息,最后读取数据读取标志为未读的窗口空间的数据,并更新数据标志信息为已读,以及通过Doorbell返回最后读取的窗口序号给发送装置。

进一步,所述窗口空间的数量根据RapidIO数据帧的写入速度、读取速度和系统的忙闲情况确定。

本发明的有益效果为:

1、接收装置开辟若干个窗口空间,并根据写入速度、读取速度和数据传输系统的忙闲情况确定合适的窗口数量,实现最佳的系统开销。

2、接收装置的每个窗口空间大小为一帧RapidIO数据帧最大值+1*byte信息位,发送装置向各个窗口依次发送RapidIO数据帧,并在信息位标明有效数据长度和数据读取标志信息为未读。接收装置根据对有效数据长度和数据读取标志信息的解析,正确地接收数据。该设计保证了对不同长度数据帧的支持。

3、接收装置根据整个数据传输系统的忙闲情况,调整不同的时间间隔轮询各个窗口空间的数据读取标志信息。如果多个窗口空间的数据读取标志信息为未读,则根据信息位注明的有效数据长度,集中读取该多个窗口空间的数据,更新数据标志为已读。

4、利用Doorbell模式中未被利用的16bits,接收装置在每次读操作结束后,发送最后读取数据窗口的序号至发送装置。

5、根据系统的时延要求,设计定时器,当接收装置超时未读取窗口数据时,发送端发送Doorbell数据,请求接收端读取窗口数据,保证系统的时延要求。

6、接收装置根据系统忙闲程度,自适应调整单次读取窗口的数量。接收装置考虑自身系统的忙闲程度和系统传输时延要求,确定可以执行的任务切换的频率。当接收装置系统比较繁忙时,增加单次读取窗口的数量,减少任务切换的频率,保证高传输速率。当接收装置系统比较闲时,增加任务切换的频率,减少单次读取窗口的数量,这样保证较高传输速率的情况下,降低了系统传输时延,但是比较而言,任务频繁切换会影响接口的传输速率。因此,可以根据传输时延和传输速率的取舍和接收装置自身的系统忙闲限制来确定窗口数量,实现最优的传输时延和传输速率,动态实现系统所能达到的最高传输速率。

7、大大减少了Doorbell或者Mailbox的使用频率。从而使得CPU不需要频繁相应中断,因此大大降低了时敏系统中RapidIO接口的系统开销,而且通过设置定时器,保证了接口的传输时延性能。

附图说明

图1是本发明的结构示意图;

图2是本发明中窗口空间的示意图;

图3是Doorbell的格式示意图。

具体实施方式

为了更好地理解本发明,下面通过附图和实施例对本发明作进一步详细说明。

本实施例是对现有的一种基于RapidIO的数据传输系统进行改进,主要包含对RapidIO数据帧进行扩展,对Doorbell中备用字段进行利用,以及对发送装置、接收装置的结构和控制逻辑进行改进。

对RapidIO数据帧进行扩展主要体现在由原RapidIO数据帧后面再加上1byte的信息位。该信息位的高7比特位表示有效数据长度,最低比特位表示数据读取标志信息,发送装置在将RapidIO数据帧发送给窗口空间时,将该RapidIO数据帧的数据读取标志信息设置为未读;接收装置在从窗口空间读取RapidIO数据帧时,将该传输帧的数据读取标志信息设置为已读。

Doorbell的格式如图3所示,利用原Doorbell中空闲的16bit备用位来传输接收装置最终读取的窗口空间序号。

数据传输系统的硬件部分主要由发送装置和接收装置组成,如图1所示,发送装置由FIFO模块、定时器和发送逻辑控制模块组成。接收装置在由在内存中开辟的若干个窗口空间和接收逻辑控制模块组成。

FIFO模块用于接收上层传递的待发送的数据。

发送逻辑控制模块先对FIFO模块中缓存的数据进行监控,当缓存的数据大于等于一个完整的RapidIO数据帧时,发送逻辑控制模块则向窗口空间序号为接收装置反馈的Doorbell中窗口空间序号减1的窗口空间为起始点依次发送RapidIO数据帧,并在窗口空间的信息位标明有效数据长度信息和数据读取标志为未读。

接收逻辑控制模块用于根据写入速度、读取速度和数据传输系统的忙闲情况在内存中开辟若干个窗口空间(图1举例为32个窗口),窗口数量可以是通过后期的系统联试得到的,也可以通过估算得出大概的数量值。根据接收端系统忙闲程度,可以接受的任务切换频率,例如接收端的系统可以执行每秒200次的接口读取任务,即任务间隔为5ms。估计发送模块在5ms的时间内发送的数据量,例如数据速率为400Mbps,每个窗口的数据为1Kb。则需要80个窗口空间。规定每个窗口空间的大小是一帧RapidIO数据帧的最大值+1*byte信息位;再根据系统的忙闲情况,利用读取速度快的特点,依据每个窗口空间中信息位所注明的有效数据长度和数据读取标志信息,集中读取多个窗口的数据,并更新数据读取标志信息为已读,并通过Doorbell返回最终读取的窗口序号。发送装置根据反馈的窗口序号,保证发送端不覆盖接收端未读取数据。为了保证在系统的时敏性能,如果发送端在一定时间内没有接收到接收端返回的读取窗口信息,定时器会触发一次Doorbell传输,提醒接收端进行数据接收。

整个数据传输系统的流程如下:

接收装置的接收控制逻辑模块开辟32个窗口空间如图2所示,每个窗口空间的大小是一帧RapidIO数据帧长的最大值+1byte,假设数据帧长最大值为127*bytes,则每个窗口大小为127*bytes+1*byte=128bytes。窗口序号分别为窗口1至窗口n,其中每个窗口的第128byte高7比特位表示有效数据长度,单位为byte。最低比特表示数据是否为已读。

在发送装置中,当FIFO模块中数据大于127bytes时,发送逻辑控制模块读取数据,在第128byte相应比特位填写有效数据长度和数据未读标志,向窗口空间序号为接收装置反馈的Doorbell中窗口空间序号减1的窗口空间为起始点依次向连续的窗口空间发送RapidIO数据帧、有效数据长度和数据未读标志。

接收装置的接收控制逻辑模块根据数据传输系统的忙闲情况,确定合适轮询间隔,查看是否有新数据需要读取,并连续读取所有的新数据。然后利用Doorbell的16bits未使用信息发送最后读取的窗口序号index_num至发送端。

发送端根据反馈的窗口序号index_num,发送数据至窗口index_num-1,依次保证发送端不覆盖接收端未读取数据。

发送装置根据系统的时延要求,设计定时器,当超时未收到接收端的反馈窗口信息时,发送控制逻辑模块发送Doorbell数据,请求接收端读取窗口数据,保证系统的时延要求。

可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1