[发明专利]基于高速串行总线的DMA结构的pipeline读写方法有效
申请号: | 201210283510.5 | 申请日: | 2012-08-10 |
公开(公告)号: | CN102841871A | 公开(公告)日: | 2012-12-26 |
发明(设计)人: | 张庆敏;张衡;胡刚;宋君 | 申请(专利权)人: | 无锡众志和达存储技术股份有限公司 |
主分类号: | G06F13/28 | 分类号: | G06F13/28 |
代理公司: | 北京中恒高博知识产权代理有限公司 11249 | 代理人: | 宋敏 |
地址: | 214122 江苏省无锡市新*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 高速 串行 总线 dma 结构 pipeline 读写 方法 | ||
1.一种基于高速串行总线的DMA结构的pipeline读写方法,其特征在于,包括写操作和读操作:
所述读操作具体步骤如下:
主机通过DCR设置DMA寄存器,TX状态机根据所述DMA寄存器设置依次循环发送读描述符,读数据和写描述符请求,然后由端口状态机控制完成上述各种请求,所述端口状态机通过LIS总线发出读或写操作,
所述LIS总线读写操作具体如下:
所述端口状态机发送多个读描述符与读数据操作通过LIS总线处理,该LIS总线将所述多个读请求依次顺序发出,然后LIS总线依次收到数据1、数据2直至数据n,所述端口状态机将收到的数据分别更新到寄存器文件或发送到streamLink接口;
在主机设置DCR寄存器的同时,RX状态机根据所述DMA寄存器设置依次循环发送读描述符,写数据和写描述符请求,然后端口状态机控制完成上述各种请求,所述端口状态机通过LIS总线发出读或写操作。
2.根据权利要求1所述的基于高速串行总线的DMA结构的pipeline读写方法,其特征在于,所述TX状态机读取请求如下:
步骤1:判断TX状态机是否处于空闲状态,若处于空闲状态则由主机通过DCR写TX描述符寄存器,TX状态机检测TX寄存器,
步骤2:如果检测到TX寄存器中当前描述符与结尾描述符不同,则发送一个CL8R(读描述符)请求给TX/RX仲裁器,该CL8R请求完成后,将寄存器的完成读描述符功能位置为完成读描述符状态;
步骤3:连续发送几个B16R(读数据)请求给TX/RX仲裁器,直到描述符中要求传输的数据全部从内存读出并发送到StreamLink接口,然后将寄存器的完成数据位置位;
步骤4:所述TX状态机发送一个CL8W(写描述符)请求给TX / RX仲裁器,将完成状态信息写回内存,完成CL8W请求之后,将寄存器的继续信号置位或者将寄存器的停止信号置位,如果状态寄存器显示下一个描述符指针不是一个空指针和未设置停止结束位,则将寄存器的继续信号置位并将????状态机转换到取得描述符状态,否则将寄存器的停止信号置位并将TX状态机转换到空闲状态。
3.根据权利要求1所述的基于高速串行总线的DMA结构的pipeline读写方法,所述RX状态机读取请求如下,包括以下步骤:
步骤1:判断RX状态机是否处于空闲状态,若处于空闲状态则由主机通过DCR写RX描述符寄存器,并检查RX描述符寄存器;
步骤2:如果检测到TX寄存器中当前描述符与结尾描述符不同,则发送一个CL8R请求给TX/RX仲裁器,该CL8R请求完成后,将寄存器的完成读描述符功能位置为完成读描述符状态;
步骤3:连续发送几个B16W(写数据)请求给TX/RX仲裁器,直到StreamLink接口收集到的所有数据并写入内存,将寄存器的完成数据位置位;
步骤4:所述RX状态机发送一个CL8W的请求给TX / RX仲裁器,在完成该CL8W请求之后,将寄存器的DMA继续位置位或者将寄存器的DMA停止位置位,如果状态寄存器显示下一个描述符指针不是一个空指针和未设置停止结束位,则将寄存器的DMA继续位置位并将????状态机转换到取得描述符状态,否则将寄存器的DMA停止位置位并将RX状态机转换到空闲状态。
4.根据权利要求1所述的基于高速串行总线的DMA结构的pipeline读写方法,其特征在于,所述端口状态机完成请求,具体包括以下步骤:
步骤1:判断端口状态机是否处于空闲状态,如端口状态机处于空闲状态,则TX/RX仲裁器发出一个CL8R请求或者B16W请求;
步骤2:所述端口状态机根据上述的CL8R请求或者B16W请求访问寄存器文件中的缓冲区地址和缓冲区长度寄存器;
步骤3:若上述CL8R请求或者B16W请求被接受, 则上述端口状态机将缓冲区地址和缓冲区长度计数器的值从寄存器文件载入;
步骤4:如果所述端口状态机从上述缓冲区载入的地址和数据没有错误,则计数器载入缓冲区的地址和长度计数器的值,然后所述端口状态机发出一个CL8R或者B16W请求,若这个请求被接受,读端口状态机可以转换到步骤5或步骤9两个状态中的其中一个;
步骤5:若接受 CL8R请求,则上述端口状态机在设置控制信号去读取一个描述符;并等待端口状态机上的RdDataRdy的信号被置位;
步骤6:若RdDataRdy的信号被置位,则所述端口状态机请求访问寄存器文件,从PCIE卡的读FIFO中获取下个描述符指针、缓冲区地址、缓冲区长度寄存器以及状态寄存器值,并将描述符指针、缓冲区地址、缓冲区长度寄存器以及状态寄存器值存储在状态寄存器;
步骤7:所述端口状态机清空寄存器中的描述符,等待StreamLink接口接收DMA数据,如StreamLink接口接收到Dst_Rdy信号,则所述端口状态机转换到空闲状态;
步骤8:若接受B16Ws请求,则上述端口状态机设置控制信号从内存读数据传输到StreamLink接口,并将数据存储到寄存器,端口状态机请求访问寄存器文件,如果访问被接受,上述缓冲区地址和缓冲区长度寄存器的值更新为下一次缓冲区地址和缓冲区长度寄存器的值,然后读取内存中的数据并将该数据发送到StreamLink接口;
步骤9:如所有的数据获取完成或者被重置,所述端口状态机就清空所有数据;
步骤10,如数据的最后一个字符被StreamLink接口识别,则端口状态机回到空闲状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡众志和达存储技术股份有限公司,未经无锡众志和达存储技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210283510.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种应用于MSD中的高压连接器
- 下一篇:材料塞贝克系数的测试平台