赞
踩
一,SRIO协议简介
1,两种基本操作模式:
–直接
•针对特定内存地址的读/写操作
–发送设备知道接收设备的内存映射
•功能单元:
–LSU(加载/存储单元)
–MAU(内存访问单元)
–消息传递
•邮箱和信件指示符
–发送设备不需要了解接收设备的内存映射
•功能单元:
–TXU(信息传输单元)
–RXU(信息接收单元)
•差分输入/输出端口上的数据通信
2,整体RapidIO架构分为三层:SRIO三层协议
(1)物理层:RapidIO物理层IP
(2)传输层:将数据包从物理层传输到逻辑层协议单元
(3)逻辑层:协议单元(如LSU、TXU等)
3,SRIO包格式
(1)红色物理层:
ACKID:包传输序列号
PRIORITY:4级优先级,0-3(低到高)
CRC:
(2)绿色传输层:
DESTID
SRCID:可为8或16BIT
ID LENGTH:指定ID长度
(3)灰色逻辑层:
FORMAT TYPE:包格式
(4)两层响应:
物理层响应(必备):每个包含ACKID,发送包后自加1
CRC效验
逻辑层响应(可选):需要逻辑层确认的包类型
4,传输类型
DIRECT IO:直接访问
MASTER必须知道SLAVE的MEMORY MAP
包格式:NWRITE不需要响应;NWRITE_R需要响应;SWRITE不要响应包,数据包大小为8的整数倍,效率高
MESSAGE PASSING
类似以太网,无需知道SLAVE的MEMORY MAP
比较:
二,SRIO中模块
1,SRIO功能模块框图
2, 串并行转换模块
3,LSU
寄存器0和1表示目的端MEMORY地址支持64BIT地址;寄存器2表示传输端MEMORY地址支持32BIT范围;寄存器3表示一次传输的BYTE_COUNT,12个BIT表示一次传4KB数据,大于256B时物理层自动拆分;寄存器4表示输出口、目标ID、是否产生中断;寄存器5表示LSU传输的触发字,PACKET TYPE表示包类型;寄存器6状态寄存器,传输启动BUSY1,传输结束BUSY0,结束课查看COMPLETION CODE
4,中断
5,消息描述表
6,SRIO FORWARDING:转发功能——实现菊花链
三,
三,SRIO的使用
1,C66x DirectIO操作与C64x的比较:
•8个LSU/4个LSU
•最大事务大小(字节计数字段)为1MB/4KB
–每个LSU编程最多可提供256字节的4K数据包
•阴影寄存器概念
•总共128个未完成的未投递数据包,每个LSU 16个(不包括
•传输结束时自动生成门铃:–在发送最后一包后发送门铃。
或者-收到最后一个回复后按门铃,–如果出现错误,则不发送门铃。
•重新启动并刷新LSU事务。
2,包含了Doorbell包,Doorbell是一种快速的通知类型的短消息,包头和携带信息都很短,用于master srio设备通知slave srio设备,可用于DSP对FPGA/DSP之间的消息通知;如下图阴影处为有效位,其他为reserve位。Doorbell包payload的大小为16bit。5,6位用于选择Doorbell中断状态寄存器,对于TI DSP的srio包含了四个中断状态寄存器,即DOORBELL[0-3]_ICSR,每个寄存器仅有16位有效,即每个寄存器可以支持16个中断源,所以四个寄存器可以支持64个中断源,在TI Nyquist的4 core DSP中,我们在使用中可以为每个core分别配置一个ICSR寄存器,这样当对应的寄存器的某位置位了,相应core会相应该中断。对应于ISCR的四个寄存器的是4个DOORBELL[0-3]_ICCR寄存器,他与ICSR一一对应,用于清除ISCR寄存器中的中断请求位。
3,写操作
DSP发起WRITE操作,检测源地址0x0C000000,长度1K,发送完成后使用门铃推给另一端的FPGA或DSP通知一下。
4,读操作
另一端FPGA或DSP检测到DSP的数据后,进行缓存,检测收到门铃后延迟一段时间并回发收到的数据。DSP响应另一端回发的门铃,产生中断,如此重复上面步骤进行数据校验。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。