本发明专利技术提供一种处理器系统及其多通道内存拷贝DMA加速器和方法。该处理器系统,包括通过数据总线连接在处理器核及内存之间的多通道直接内存访问DMA加速器,用于在处理器核发出内存拷贝命令产生数据读写请求时,根据所述数据读写请求的任务信息判断并分解所述数据读写请求的任务信息,并根据分解后的数据读写请求的任务信息,以及其中多个读写通道的读写频率和优先级,以及所述读写通道的标记位的值,控制多个读写通道并行向内存发出多次读写请求,完成数据读写。其具有高带宽、低延迟,高并行度,可重配置化,平台无关性的优点。
【技术实现步骤摘要】
本专利技术涉及计算机硬件体系结构和处理器设计
,特别涉及一种支持异步访存、内存读写并行的基于处理器内嵌多通道直接内存访问(Direct Memory Access,DMA)的处理器系统及其多通道内存拷贝DMA加速器和方法。
技术介绍
在现有计算机系统中,内存拷贝(Memory Copy)是一种在内存不同位置之间传输数据的重要操作。其广泛存在于操作系统和各类应用程序当中,相关研究发现内存拷贝操作在TCP/IP协议处理中可以占到总时间开销的20%-40%。在操作系统中,内存拷贝操作通过系统内核定义的标准系统函数memcpy、bcopy等实现其功能。针对不同的计算机体系结构,操作系统对该组函数的具体实现也不同。在用户程序中,C语言标准库(ANSIC)也对内存拷贝操作提供了函数实现。如附图说明图1所示,为现有的内存拷贝处理器系统结构,包括处理器核(CPU)l、二级缓存(Cache)模块2、内存3,其中,处理器核包括控制单元11、运算部件12、寄存器堆13、译码和访存单元14、一级缓存(Cache)模块15等。典型的内存拷贝操作,在微观上可以将其分解为对内存的一系列交替的读写操作。处理器核先对A地址发出一个读操作,当其完成后,发出一个写操作将读回的值V(A)写入地址B;之后向A+1发出读请求,将读回结果V(A+1)写入B+1 ;反复执行这一过程直到整个内存拷贝操作完成。现有的一种内存拷贝加速方法是进行指令重排优化的内存拷贝方法,该方法根据特定体系结构处理器的流水线特点,对内存拷贝操作程序指令进行重新排列,以获得连续不断的访存流并提高访存效率并降低延迟。其在操作系统内核内存拷贝函数中内嵌相应汇编指令代码替换原有通用C代码来提高程序执行效率。并根据特定体系结构的特点重排汇编访存指令,以减少处理器执行指令时的流水线停顿,如MIPS体系结构下内存拷贝函数将load和store指令四四分组排列。现有的一种内存拷贝加速方法是内存拷贝与访问同步优化的内存拷贝方法,该方法通过增加额外的硬件模块来记录分析内存拷贝操作和内存访问操作的地址,从而不阻塞处理器来提高指令执行效率。并在操作系统中提供优化的拷贝操作原语,以实现拷贝过程与其他内存访问过程的同步。现有的内存拷贝加速方法具有以下缺点(一 )系统效率低。现有技术进行内存拷贝时仍需要处理器执行相关访存和控制指令,导致整个拷贝过程中处理器无法进行其他操作,其本质上属于处理器控制的串行同步内存拷贝。(二)拷贝速度慢。现有技术的处理器内部一般集成1-2个访存部件,只有当前访存指令完成后才能执行后面的访存指令,因此现有内存拷贝方法在微观上只是对内存的串行访问,无法同时进行不相关的内存读写操作,导致拷贝速度慢。(三)不具有通用兼容性。该方法与处理器结构和程序指令集紧密相关,不同体系结构下优化后的内存拷贝程序不能相互兼容。
技术实现思路
本专利技术的目的在于提供一种处理器系统及其多通道内存拷贝DMA加速器和方法,其具有高带宽、低延迟,高并行度,可重配置化,平台无关性的优点。为实现本专利技术目的而提供的一种处理器系统,包括处理器核,以及内存,还包括通过数据总线连接在处理器核及内存之间的多通道DMA加速器;所述多通道DMA加速器,用于在处理器核发出内存拷贝命令产生数据读写请求时,根据所述数据读写请求的任务信息判断并分解所述数据读写请求的任务信息,并根据分解后的数据读写请求的任务信息,以及其中多个读写通道的读写频率和优先级,以及所述读写通道的标记位的值,控制多个读写通道并行向内存发出多次读写请求,完成数据读写。较优地,所述的处理器系统,还包括连接在内存及多通道DMA加速器之间的缓存模块,用于缓存在内存和多通道DMA加速器之间传输的数据。较优地,所述多通道DMA加速器包括至少一 DMA引擎模块和两个接口 ;所述DMA引擎模块,用于根据所述数据读写请求的任务信息判断并分解所述数据读写请求的任务信息,并根据分解后的数据读写请求的任务信息,以及其中多个读写通道的读写频率和优先级,以及所述读写通道的标记位的值,控制多个读写通道并行向内存发出多次读写请求;所述至少两个接口,为至少一个数据接口和一个控制与通信接口 ;所述数据接口,用于,传输所述内存拷贝命令的数据读写请求所需要读写的数据;所述控制与通信接口,用于与所述处理器核和内存进行通信,接收处理器核配置数据,并根据所述配置数据配置并存储至所述读写通道的配置寄存器。较优地,所述DMA引擎模块包括多个读写通道及其相应的标记位,连接所述处理器核和所述内存的两个流控单元及数据缓冲区;所述多个读写通道至少包括一读通道和一写通道;所述读通道,用于在所述流控单元的控制下,从内存中读取数据到所述处理器核;所述写通道,用于在所述流控单元的控制下,将处理器核发送来的数据写入到内存;所述流控单元,用于根据配置寄存器中的配置数据和读写通道的标记位的值,以及初始化时设置的值统计各读写通道使用数据总线的情况,将数据总线分配给优先级最高的读写通道使用,对每条读写通道的频率和优先级进行控制,控制不同的通道启动不同的数据传输任务,并与所述控制单元交互读写通道的工作状态;所述数据缓冲区,用于缓存读写通道中的数据;每一所述读写通道包括一配置寄存器,用于接收并存储处理器核发送来的、供读写通道读写的配置数据;每个标记位标记所述读写通道每次读写请求所读写的数据量。较优地,所述处理器核的控制单元,包括初始化子单元和配置子单元,其中所述初始化子单元,用于在处理器核进行初始化时,对所述流控单元进行初始化,设置其初始工作状态,并启动通道的数据传输任务;所述配置子单元,用于通过所述控制与通信接口,向每条读写通道发送配置数据到所述读写通道的配置寄存器,设置每条读写通道的相应的配置寄存器的值。为实现本专利技术目的还提供一种多通道内存拷贝DMA加速器,用于在接收到处理器核向内存发出拷贝数据读写请求时,根据所述数据读写请求的任务信息判断并分解所述数据读写请求的任务信息,并根据分解后的数据读写请求的任务信息,以及其中多个读写通道的读写频率和优先级,以及所述读写通道的标记位的值,控制多个读写通道并行向内存发出多次读写请求,完成数据读写。为实现本专利技术目的更提供一种内存拷贝加速方法,包括如下步骤步骤S101,处理器核的控制单元向多通道DMA加速器发出内存拷贝命令;步骤S102,多通道内存拷贝DMA加速器在接收到处理器核向内存发出的内存拷贝数据读写请求时,根据所述数据读写请求的任务信息判断并分解所述数据读写请求的任务信息,并根据分解后的数据读写请求的任务信息,以及其中多个读写通道的读写频率和优先级,以及所述读写通道的标记位的值,控制多个读写通道并行向内存发出多次读写请求,并行数据读写,直至完成所有读写操作。较优地,所述步骤S102中,所述判断并分解所述数据读写请求的任务信息,包括如下步骤多通道内存拷贝DMA加速器根据所述任务信息判断,当拷贝数据总长度大于所述多通道DMA加速器的单个通道的总线位宽时,则对所述内存拷贝命令的任务信息进行分解,根据分解后的内存拷贝命令的任务信息,由多通道DMA加速器通过多个通道向内存发出多次读写请求;否则,多通道内存拷贝DMA加速器随机选择一通道向内存发出数据读写请求。较优地,所述并行数据读写,包括如本文档来自技高网...
【技术保护点】
【技术特征摘要】
【专利技术属性】
技术研发人员:苏文,苏孟豪,
申请(专利权)人:龙芯中科技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。