The Direct I/O (Load/Store) module(即是LSU) serves as the source of all outgoing direct I/O packets(LSU用于配置发起数据读/写的SRIO设备端,发起端发送Direct IO包). With direct I/O, the RapidIO packet contains the specific address where the data should be stored or read in the destination device. Direct I/O requires that a RapidIO source device keep a local table of addresses for memory within the destination device. Once these tables are established, the RapidIO source controller uses this data to compute the destination address and insert it into the packet header(将发起端想要访问的对端的地址插入包头中).The RapidIO destination peripheral extracts the destination address from the received packet header and transfers the payload to memory via the DMA(对端SRIO设备从接收到的包头中提取目的地址(即发起端想要访问的对端内存的地址),然后对端SRIO通过DMA将包的payload传输到该目的地址).When a CPU wants to send data from memory to an external processing element (PE) or read data from an external PE, it provides the RIO peripheral vital information about the transfer such asDSP memory address, target device ID, target destination address,packet priority, etc. Essentially, a means must exist to fill all the header fields of the RapidIO packet. The Load/Store module provides a mechanism to handle this information exchange via a set of MMRs acting as transfer descriptors. These registers,shown in Figure 2-8, are addressable by the CPU through the configuration bus(CPU可访问,这些寄存器就是LSU寄存器). There are 8 LSU in total. Each LSU has its own set of 7-registers(有8组LSU寄存器,即SRIO同时可进行8个Direct IO传输,每组寄存器包括LSU_Reg0~7). LSU_Reg0-4 is used to store “Control” information(LSU_Reg0-4包含用户配置的信息,即是控制信息), LSU_reg5-6 for “Command” and Status information(LSU_reg5-6包含一些状态信息,反映了LSU寄存器的工作状态). All these registers are RW except for LSU_REG6 which has a RO and a WO view. Upon completion of a write to LSUn_REG5, a data transfer is initiated for either an NREAD, NWRITE, NWRITE_R, SWRITE, ATOMIC, or MAINTENANCE RapidIO transaction(一旦完成写LSUn_REG5寄存器,SRIO硬件才真正启动工作,包括产生Direct IO包、发包等。n表示8组LSU寄存器索引). Some fields, such as the RapidIO srcTID/targetTID field, are assigned by hardware and do not have a corresponding command register field.

LSU_Reg4寄存器中的ID Size(占2bit):

8b表示DSP的SRIO设备ID用8bit表示,这样SRIO系统可以支持2^8个SRIO设备。

LSU_Reg4寄存器还可以配置包优先级、包从SRIO的哪个port传输出去、目的DSP的SRIO设备ID。

LSU_Reg5寄存器用于配置包类型(即操作类型)、doorbell的16bit信息等。

LSU_Reg3寄存器用于配置传输的字节数(可以分成多个包进行传输)、其中Drbll_val位的意思是:

当Drbll_val等于1的时候,表示LSU_Reg5中的16bit doorbell信息是有效的,然后会在最后一个数据包发送完毕后,才会发送doorbell包,该包的payload内容就是LSU_Reg5中的16bit doorbell信息,来通知(通过中断)对端SRIO发起端数据已操作完毕,对端可以做相应的处理。图中FType=10的包正是doorbell包,这里的Drbll_val位仅对非doorbell包有效,如NWRITE包,当通过NWRITE操作向对端写数据(通过NWRITE包)完毕后,会产生一个doorbell包通知对端,所以当配置NWRITE等操作时可以配置该位。

TI_DSP_SRIO - DirectIO操作-LSU相关推荐

  1. 【计算机网络】网络层 : 总结 ( 功能 | 数据交换 | IP 数据报 | IPv4 地址 | IPv6 地址 | 路由选择协议 | 路由算法 )★★★

    文章目录 一.网络层功能 二.数据交换方式 ★ 三.IP 数据报 ★ 四. IPv4 地址 ★★ 1 . IP 地址 发展 : 2 . 分类 IP 地址 3 . NAT 转换 4 . 子网划分 5 . ...

  2. 【计算机网络】网络层 : OSPF 协议 ( 协议简介 | 链路状态路由算法 | OSPF 区域 | OSPF 特点 )

    文章目录 一.路由选择协议分类 二.OSPF 协议 简介 三.链路状态路由算法 四.OSPF 区域 五.OSPF 特点 一.路由选择协议分类 路由选择协议分类 : ① 内部网管协议 IGP : 在 自 ...

  3. CCNA学习笔记10-OSPF

    open shortest path first 开放式最短路径 OSPF的优点 1.对网络发生的变化能够快速响应 2.当网络发生变化的时候发送触发式更新(triggered update) 3.支持 ...

  4. 关于大型网站技术演进的思考

    关于大型网站技术演进的思考(一)--存储的瓶颈(1) 前不久公司请来了位互联网界的技术大牛跟我们做了一次大型网站架构的培训,两天12个小时信息量非常大,知识的广度和难度也非常大,培训完后我很难完整理出 ...

  5. linux怎么采srio数据,TI_DSP_SRIO - 两种SRIO操作模式

    DSP SRIO协议的逻辑层定义了操作协议和相应的包格式.DSP上SRIO支持的逻辑层业务(数据发送方法)主要是直接IO/DMA(Direct IO/ Direct Memory Access)和消息 ...

  6. SRIO学习(七)——Direct I/O 操作(二)

    Direct I/O 操作(二) [上回书说到,LSU的CC位能够表示正在进行的传输的状态.] 中断和LSU释放 LSU的CC位能够表示正在进行的传输的状态,自然也能显示出执行过程中的错误,而且一点出 ...

  7. SRIO学习(六)——Direct I/O 操作(一)

    Direct I/O 操作 框架流程 direct I/O(加载/存储)模块是所有传出的direct I/O packets(direct I/O 包)的来源. 通过direct I/O包,Rapid ...

  8. 善用Wink,将电脑操作录屏为flash

    [转载请保留] 作者:善用佳软 出处:http://xbeta.info/free-wink.htm 1. 什么情况下需要wink ? 简言之,Wink 并不是每个人的必需软件.它只适合"软 ...

  9. FPGA+DSP SRIO通信(三)——基于LSU的数据传输

    之前的配置中我们知道如何配置通道速率.设置deviceID. 也就是马路已经铺设好了,我们应该造车了. 搏一搏,单车变摩托! SRIO不是单车,而是摩托车,我们需要搏一搏,把这个摩托车造出来,在我们已 ...

最新文章

  1. hdu 4288 Coder
  2. 长江大学微型计算机课设报告,长江大学B第一学期计算机基础试卷.doc
  3. [学习笔记]状压dp
  4. c语言指针++_C ++此指针| 查找输出程序| 套装1
  5. IDC:2016年第四季度全球企业存储市场出现下滑
  6. 系统学习机器学习之模型诊断与调试
  7. Redis分布式集群搭建
  8. 复变函数思维导图梳理
  9. 回顾传输层的TCP与UDP协议
  10. 跳出都市 赏不一样的月光
  11. 在nameSilo购买域名
  12. 逻辑函数的公式化减法
  13. 在setTimeout或者ajax等异步方法中回调函数的写法与调用
  14. C++先序和中序确定二叉树
  15. RK3326 8.1 otg和host切换
  16. ker矩阵是什么意思_如何理解CAN通信矩阵
  17. 解决虚拟机中Win7系统无法安装vmware tools问题
  18. c语言数组太大,如何处理c语言大数组
  19. 微信小程序_Flex布局
  20. c#第二课,气泡屏保

热门文章

  1. 【HTML】段落开始空两格
  2. 推荐一个为按钮加好看的css网站,大家可以参考一下
  3. 常用javascript技巧
  4. 33. 实现桌球的反弹
  5. 基于Python神经网络的手写字体识别
  6. 超外差接收机原理图讲解(二)--老版合成器
  7. 计算机打字歌,《打字机之歌》
  8. Vue3中实现路由跳转的过渡动画(一)
  9. 微服务定时任务 莫名其妙全部死掉的原因 @Scheduled(cron = 0 */1 * * * ?)
  10. redmi note4 联发科 nikel 刷安卓7的正确打开方式