基于高速串行总线的DMA结构的pipeline读写方法技术

技术编号:8131058 阅读:235 留言:0更新日期:2012-12-27 03:13
本发明专利技术公开了一种基于高速串行总线的DMA结构的pipeline读写方法,主机通过DCR设置DMA寄存器,TX状态机根据设置依次循环发送读描述符,读数据和写描述符请求,然后由端口状态机控制完成上述各种请求,端口状态机通过LIS总线发出读或写操作,端口状态机发送多个读描述符与读数据操作通过LIS总线处理,该LIS总线将所述多个读请求依次顺序发出,然后LIS总线依次接受数据,端口状态机将收到的数据分别更新到寄存器文件或发送到streamLink接口;同时,RX状态机根据设置依次循环发送读描述符,写数据和写描述符请求,然后端口状态机控制完成各种请求,所述端口状态机通过LIS总线发出读或写操作。

【技术实现步骤摘要】

本专利技术涉及数据通信领域,具体地,涉及ー种用于读取内存数据的。
技术介绍
目前,随着计算机技术的发展,总线也由并行总线发展到高速串行总线。总线的读写带宽已经达到了 lGB/s以上,大数据量的读写多依靠DMA来处理,所以DMA工作模式,读写方式会直接影响总线带宽的利用率。现有的DMA多为并行总线设计,仅适合于并行总线读写方式。如果应用到高速串行总线,会极大地影响读写效率,无法发挥高速串行总线的高带宽。以总线的读过程为例,总线主端会先发送读请求,从端收到读请求,然后响应请求数据,传输数据直到完成。并行 总线的响应速度很快,仅几个时钟,IOOns内响应读请求,但是传输数据相对较慢。而高速串行总线,由于总线延时较大,读请求响应很慢,Ius以上,但是数据传输比较快。
技术实现思路
本专利技术的目的在于,针对上述问题,提出,以实现数据传输快并且响应快的优点。为实现上述目的,本专利技术采用的技术方案是 一种,包括写操作和读操作 所述读操作具体步骤如下 主机通过DCR设置DMA寄存器,TX状态机根据所述DMA寄存器设置依次循环发送读描述符,读数据和写描述符请求,然后由端ロ状态机控制完成上述各种请求,所述端ロ状态机通过LIS总线发出读或写操作, 所述LIS总线读写操作具体如下 所述端ロ状态机发送多个读描述符与读数据操作通过LIS总线处理,该LIS总线将所述多个读请求依次顺序发出,然后LIS总线依次收到数据I、数据2直至数据n,所述端ロ状态机将收到的数据分别更新到寄存器文件或发送到StreamLink接ロ ; 在主机设置DCR寄存器的同吋,RX状态机根据所述DMA寄存器设置依次循环发送读描述符,写数据和写描述符请求,然后端ロ状态机控制完成上述各种请求,所述端ロ状态机通过LIS总线发出读或写操作。进ー步的,所述TX状态机读取描述符,包括以下步骤 步骤I:判断TX状态机是否处于空闲状态,若处于空闲状态则由主机通过DCR写TX描述符寄存器,TX状态机检测TX寄存器, 步骤2 :如果检测到TX寄存器中当前描述符与结尾描述符不同,则发送ー个CL8R (读描述符)请求给TX/RX仲裁器,该CL8R请求完成后,将寄存器的完成读描述符功能位置为完成读描述符状态; 步骤3 :连续发送几个B16R (读数据)请求给TX/RX仲裁器,直到描述符中要求传输的数据全部从内存读出并发送到StreamLink接ロ,然后将寄存器的完成数据位置位; 步骤4 :所述TX状态机发送ー个CL8W (写描述符)请求给TX / RX仲裁器,将完成状态信息写回内存,完成CL8W请求之后,将寄存器的继续信号置位或者将寄存器的停止信号置位,如果状态寄存器显示下ー个描述符指针不是ー个空指针和未设置停止结束位,则将寄存器的继续信号置位并将状态机转换到取得描述符状态,否则将寄存器的停止信号置位并将TX状态机转换到空闲状态。进ー步的,所述RX状态机读取描述符,包括以下步骤 步骤I:判断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状态机转换到空闲状态。进ー步的,所述端ロ状态机读取描述符并将数据发送到TX_streamlink和RX_streamlink接口上,包括以下步骤 步骤I :判断端ロ状态机是否处于空闲状态,如端ロ状态机处于空闲状态,则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接ロ识别,则端ロ状态机回到空闲状态。本专利技术的技术方案提供ー种DMA架构,并采用读取描述符的方法,并将描述符集中读取中描述符列表中,提前对描述符进行预读,然后根据预读的描述符命令进行数据的读写,从而达到了数据传输快并且响应快的目的。下面通过附图和实施例,对本专利技术的技术方案做进ー步的详细描述。·附图说明附图用来提供对本专利技术的进ー步理解,并且构成说明书的一部分,与本专利技术的实施例一起用于解释本专利技术,并不构成对本专利技术的限制。在附图中 图I为本专利技术实施例所述的DMA的结构框 图2为采用了本专利技术所述的DMA结构的PCIE压缩卡结构框 图3为本专利技术实施例所述的DMA控制模块的结构框 图4为本专利技术所述的RX状态机读写数据的流程 图5为本专利技术所述的TX状态机读写数据的流程 图6为本专利技术所述端ロ状态机读的流程 图7为本专利技术所述端ロ状态机写的流程 图8为本专利技术所述的读时序图; 图9为本专利技术所述的读读序图。具体实施例方式以下结合附图对本专利技术的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本专利技术,并不用于限定本专利技术。如图I至图3所示,一种基于高速串行总线的通用DMA结构,包括负责DMA数本文档来自技高网...

【技术保护点】
一种基于高速串行总线的DMA结构的pipeline读写方法,其特征在于,包括写操作和读操作:?所述读操作具体步骤如下:主机通过DCR设置DMA寄存器,TX状态机根据所述DMA寄存器设置依次循环发送读描述符,读数据和写描述符请求,然后由端口状态机控制完成上述各种请求,所述端口状态机通过LIS总线发出读或写操作,所述LIS总线读写操作具体如下:所述端口状态机发送多个读描述符与读数据操作通过LIS总线处理,该LIS总线将所述多个读请求依次顺序发出,然后LIS总线依次收到数据1、数据2直至数据n,所述端口状态机将收到的数据分别更新到寄存器文件或发送到streamLink接口;在主机设置DCR寄存器的同时,RX状态机根据所述DMA寄存器设置依次循环发送读描述符,写数据和写描述符请求,然后端口状态机控制完成上述各种请求,所述端口状态机通过LIS总线发出读或写操作。

【技术特征摘要】
1.一种基于高速串行总线的DMA结构的pipeline读写方法,其特征在于,包括写操作和读操作 所述读操作具体步骤如下 主机通过DCR设置DMA寄存器,TX状态机根据所述DMA寄存器设置依次循环发送读描述符,读数据和写描述符请求,然后由端ロ状态机控制完成上述各种请求,所述端ロ状态机通过LIS总线发出读或写操作, 所述LIS总线读写操作具体如下 所述端ロ状态机发送多个读描述符与读数据操作通过LIS总线处理,该LIS总线将所述多个读请求依次顺序发出,然后LIS总线依次收到数据I、数据2直至数据n,所述端ロ状态机将收到的数据分别更新到寄存器文件或发送到StreamLink接ロ ;· 在主机设置DCR寄存器的同吋,RX状态机根据所述DMA寄存器设置依次循环发送读描述符,写数据和写描述符请求,然后端ロ状态机控制完成上述各种请求,所述端ロ状态机通过LIS总线发出读或写操作。2.根据权利要求I所述的基于高速串行总线的DMA结构的pipeline读写方法,其特征在于,所述TX状态机读取请求如下 步骤I:判断TX状态机是否处于空闲状态,若处于空闲状态则由主机通过DCR写TX描述符寄存器,TX状态机检测TX寄存器, 步骤2 :如果检测到TX寄存器中当前描述符与结尾描述符不同,则发送ー个CL8R (读描述符)请求给TX/RX仲裁器,该CL8R请求完成后,将寄存器的完成读描述符功能位置为完成读描述符状态; 步骤3 :连续发送几个B16R (读数据)请求给TX/RX仲裁器,直到描述符中要求传输的数据全部从内存读出并发送到StreamLink接ロ,然后将寄存器的完成数据位置位; 步骤4 :所述TX状态机发送ー个CL8W (写描述符)请求给TX / RX仲裁器,将完成状态信息写回内存,完成CL8W请求之后,将寄存器的继续信号置位或者将寄存器的停止信号置位,如果状态寄存器显示下ー个描述符指针不是ー个空指针和未设置停止结束位,则将寄存器的继续信号置位并将? ?状态机转换到取得描述符状态,否则将寄存器的停止信号置位并将TX状态机转换到空闲状态。3.根据权利要求I所述的基于高速串行总线的DMA结构的pipeline读写方法,所述RX状态机读取请求如下,包括以下步骤 步骤I:判断RX状态机是否处于空闲状态,若处于空闲状态则由主机通过DCR写RX描述符寄存器,并检查RX描述符寄存器; 步骤2 :如果检测到TX寄存器中当前描述符与结尾描述符不同,则发送ー个CL8R请求给TX/RX仲裁器,该CL8R请求完成后,将寄存器的完成读描述符功能位置为完成读描述符状态; 步骤3 :连续发送几个B16W (写数据)请求给TX/R...

【专利技术属性】
技术研发人员:张庆敏张衡胡刚宋君
申请(专利权)人:无锡众志和达存储技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1