高速接口-SRIO RapidIO是一种非私有的、高带宽的、系统级的互联方式。它是一个包交换的互联,主要作为片间和板件的互联接口。可用于微处理器、内存、内存映射的IO设备间的连接。 RapidIO的基本特征如下: a、灵活的系统架构,支持点对点通信; b、带有错误检测的健壮的通信机制; c、频率及端口宽度的可扩展性; d、非软件密集型的操作(门铃机制,避免了轮询查看数据) e、拥有高带宽及低开销的特点 f、低引脚数 g、低功耗 h、低延迟 RapidIO数据流 1、外围数据流 RapidIO外围设备是一个外部驱动的从模块,它可以在DSP芯片中起主控作用。这意味着一个外部设备可以根据需要向DSP写入数据,并在写入过程中,没必要产生中断,或依赖EDMA。这有几点好处,它减少了中断的总数,减少了与只读外部设备相关的延迟,并且节省了EDMA的使用。 SRIO专用的数据包最多可以携带256个字节。很多时候,事务可以跨多个包。RapidIO指定每条消息最多16个包。尽管为每个包事务生成一个请求,以便DMA可以将数据传输到L2内存,但是只有在消息的最后一个包之后才会生成一个中断。这个中断通知CPU,L2中的数据已经到达,等待处理。 作为端点设备,外设根据设备ID接收数据。共有两种接收模式,一种是只接收目标ID与本设备ID相同的数据包;另一种是接收多播组的数据包。 2、SRIO数据包 逻辑层中,数据包包括头部(定义了连接的类型),以及负载数据。 传输层依赖系统中的物理层,包括源和目的设备的ID编号; 物理层依赖与物理接口(即串行与并行RapidIO),并包含优先级、确认和错误检查的字段。 3、操作流程
上图中,系统中的发起器件(Initiator)通过产生一个请求事务(Request)开始一次操作。该请求包传送至交换结构器件(Fabric),通常是一个交换机,交换结构器件发出控制符号确认收到了该请求包,然后交换结构将该包转发至目标器件(Target),这就完成了此次操作的请求过程。 目标器件(Target)完成要求的操作,产生响应事务(Response)。通过交换结构(Fabric)将承载该事务的响应包传送回发起器件(Initiator).传送时使用控制符号对每一跳(hop)进行确认。一旦响应包到达发起器件(Initiator)并得到确认,就可认为此次操作已经完成 SRIO端点通常不会直接连在一起,而是通过中间连接的交换设备。控制符号用于管理SRIO物理互联中的事务流。控制符号用于包确认、流控制信息和维护功能。 4、门铃机制 当对方将数据传输到本地内存后,会收到门铃中断,用于通知DSP有数据到达,等待处理。随后在中断处理函数中,提取门铃消息,并可以将消息提交给工作队列处理。
和以太网一样,RapidIO也是基于包交换的互连技术。RapidIO包由包头、可选的载荷数据和16bits CRC校验组成。包头的长度因为包类型不同可能是十几到二十几个字节。每包的载荷数据长度不超过256字节,这有利于减少传输时延,简化硬件实现。
门铃事务格式: RapidIO提供了一种有用的消息传递机制, RapidlO消息传递协议描述了支持信箱和门铃通信的事务。RapidIO信箱是一个端口,器件间可通过它发送消息。接收器件在消息到达后对其进行处理。RapidIO消息的长度从0到4096字节不等。一个接收器件有1~4个可寻址消息队列来捕获输人的消息。 RapidIO门铃 (Doorbell )是一种基于端口的轻量级事务,可用于带内(in-band)中断。门铃消息包括一个由软件定义的16位字段,该字段可用来在两个器件间传达多种不同意图的消息。它没有数据载荷,包格式如下:
上图中Ftype字段固定为10,表示这是一个门铃事务,8位的Reserved字段应该置0,Source TID指的是请求方的事务ID, info(msb)表示的是发送信息的高8位,info(lsb)表示的是发送信息的低8位。 一个完整的门铃操作由DOORBELL事务和RESPONSE事务(通常是DONE响应)组成。处理单用这个操作将非常短的消息通过互连结构发送到另一个处理器部件。门铃事务包括用于保持事务信息的信息字段。该事务没有数据载荷。它的信息字段是由软件定义的,可以用于任何目的。通常,运行在处理器上的操作系统会定义门铃事务使用的信息字段的意义。收到门铃事务的处理器部件将包放进处理器部件中的门铃消息队列,该队列可以在硬件或者本地存储器中实现。 消息事务 一个消息请求包的格式如下图所示
Ftype=11表示驱动这是一个MESSAGE事务,尽管RapidIO规范使用信箱(MailBox)、信件(Letter)和消息分段(Message Segment)之类的术语,但是这些字段在逻辑上指的是一个8位的消息标识符信息。消息标识符信息可以用来惟一的标识和管理任意两个处理部件之间最多256个不同的消息流。接收处理部件的消息传递硬件会根据该信息计算应该把事务数据存放在本地存储器的什么位置。
RapidlO 协议是三层定义:逻辑层、传输层和物理层。
逻辑层 逻辑层定义了总体协议和包格式。这是必要的信息。启动和完成事务的终结点,逻辑层定义了操作协议。 RapidlO 支持的逻辑层业务主要是:直接 IO / DMA ( Direct IO / Direct Memory Ac cess )和消息传递( MessagePassing )。 直接 IO / DMA 模式是最简单实用的传输方式,其前提是主设备知道被访问端的存储器映射。在这种模式下,主设备可以直接读写从设备的存储器。直接 IO / DMA 在被访问端的功能往往完全由硬件实现,所以被访问的器件不会有任何软件负担。对上层应用来说,发起直接 IO / DMA 传输主要需提供以下参数:目地器件 ID 、数据长度、数据在目地器件存储器中的地址。 直接 IO / DMA 模式又可进一步分为以下几种传输格式: 1.NWRITE:写操作,不要求接收端响应。 2. NWRITE _ R :带响应的 NWRITE ( NWRITE with Respons e ),要求接收端响应。 3.SWRITE:流写( Stream Write ),数据长度必须是8字节的整数倍,不要求接收端响应。 4.NREAD:读操作。SWRITE 是最高效的传输格式;带响应的写操作或读操作效率则较低,一般只能达到不带响应的传输的效率的一半。消息传递( Message Passing )模式则类似于以太网的传输方式,它不要求主设备知道被访问设备的存储器状况。数据在被访问设备中的位置则由邮箱号(类似于以太网协议中的端口号)确定。从设备根据接收到的包的邮箱号把数据保存到对应的缓冲区,这一过程往往无法完全由硬件实现,而需要软件协助,所以会带来一些软件负担。对上层应用来说,发起消息传递主要需提供以下参数:目地器件 ID 、数据长度、邮箱号。 传输层 传输层提供路由。数据包从端点移动到端点所必需的信息,传输层定义了包交换、路由和寻址机制。 RapidlO 网络主要由两种器件,终端器件( End Point )和交换器件( Switch )组成。终端器件是数据包的源或目的地,不同的终端器件以器件 ID 来区分。 RapidIO 支持8 bits 或16bits器件 ID ,因此一个 RapidIO 网络最多可容纳256或65536个终端器件。与以太网类似, RapidIO 也支持广播或组播,每个终端器件除了独有的器件 ID 外,还可配置广播或组播 ID 。交换器件根据包的目地器件 ID 进行包的转发,交换器件本身没有器件 ID 。 RapidIO 的互连拓扑结构非常灵活,除了通过交换器件外,两个终端器件也可直接互连。 物理层 物理层描述设备级接口细节,物理层定义了电气特性、链路控制和纠错重传等。这个分区提供了在逻辑规范中添加新事务类型的灵活性。需要对传输层或物理层规范进行修改。串行 Rapid IO 基于现在已广泛用于背板互连的 SerDes ( Serialize Deseria lize )技术,它采用差分交流耦合信号。差分交流耦合信号具有抗干扰强、速率高、传输距离较远等优点。差分交流耦合信号的质量不是由传统的时序参数来衡量,而是通过眼图来衡量,眼图中的”眼睛”张得越开则信号质量越好。 根据物理层接口标准,可分为并行RapidIO(8/16bits)技术和串行RapidIO(1x/4x) 技术。 并行RapidIO 8/16 LP-LVDS技术采用并行物理层。其在并行物理层采用IEEE 标准LVDS技术同时发送或接收8/16bits数据、时钟和帧信号。8位接口需要40个信号引脚,16位接口需要76个信号引脚,其传输速率为0.5~2Gbps/link,主要适合于板级互连。
串行RapidIO(1x/4x) 技术采用串行物理层。其在串行物理层采用每个方向上支持一个或四个差分对信号线进行数据传输。1x接口需要4个信号引脚,4x接口需要16个信号引脚,其传输速率每通道为1.25 Gbps、2.5 Gbps和3.125Gbps,主要适合于芯片级、和背板级互连。
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/67575.html