一种基于DMA的数据复制延时的优化方法技术

技术编号:34249347 阅读:30 留言:0更新日期:2022-07-24 11:10
本发明专利技术涉及数据处理技术领域,具体涉及一种基于DMA的数据复制延时的优化方法,该方法包括:解析并记录复制命令中包含的源起始地址和目的起始地址,并获取复制数据的长度;根据源起始地址和复制数据的长度计算读请求的虚拟地址,根据目的起始地址和复制数据的长度计算写请求的虚拟地址;将虚拟地址空间划分为多个虚拟页,分别将读写请求对应的自然顺序排列的虚拟地址序列更新为乱序顺序排列的虚拟地址序列;将乱序顺序排列的虚拟地址序列发给地址翻译单元进行地址翻译得到对应的物理地址,根据物理地址读写数据以完成复制。按照乱序顺序提前翻译所有虚拟页的首地址,缩短地址翻译的周期,提高数据复制效率。提高数据复制效率。提高数据复制效率。

An optimization method of data replication delay based on DMA

【技术实现步骤摘要】
一种基于DMA的数据复制延时的优化方法


[0001]本专利技术涉及数据处理
,具体涉及一种基于DMA的数据复制延时的优化方法。

技术介绍

[0002]DMA数据复制传输过程中,一个非常重要的处理流程就是属于COPY操作的读写虚拟地址翻译。系统中使用虚拟地址而非物理地址,物理地址是真实存在的物理内存地址;虚拟地址是一种逻辑意义上的地址,虚拟地址需要转换为物理地址才能执行访问操作。DMA执行COPY的过程就涉及到两次将虚拟地址转换为物理地址的过程,分别为读虚拟地址转换为读物理地址以及写虚拟地址转换为写物理地址的过程。虚拟地址到物理地址的转换,需要MMU(Memory Management Unit)和页表(page table)的共同参与。
[0003]页表包括页表和页目录表:页表(Page Table Entry)简称为PTE,记录着虚拟地址的真实物理地址;页目录表(Page Directory Entry)简称为PDE,记录着页的目录。页目录表和页表的划分可根据不同位宽的操作系统划分为多个级别,虚拟地址翻译为物理地址的过程就是使用虚拟地址为索引,在多级页表中一级一级地搜索到对应的物理地址。GPU虚拟地址页设置的最小物理单元为1个物理页,物理页的大小可根据操作系统位宽和物理内存设置,以32

bit的操作系统为例,一个物理页的大小是4KB,那么虚拟地址的lsb12标识页内地址的偏移(offset address),页索引号或者称为物理地址页入口(Entry)是虚拟地址的msb20。物理页是物理内存中固定大小的连续内存块,系统中都按照设置的固定大小对齐划分,因此只要定位到物理地址页入口,映射到本物理页内物理地址的所有虚拟地址的翻译过程即完成。
[0004]控制所述页表搜索的功能单元为MMU,MMU由TLB和Table walk unit单元组成。因为访问内存中的页表相对耗时,尤其是在现在普遍使用多级页表的情况下,需要多次的内存访问,为了加快访问速度,为页表设置了一个硬件缓存:TLB,CPU会首先在TLB中查找,因为在TLB中找起来很快。TLB之所以快,一是因为它含有的物理地址页入口的数目较少,二是TLB是集成进CPU的,它几乎可以按照CPU的速度运行。虚拟地址翻译首先在TLB中查询,如果命中则完成虚拟地址翻译;否则需要多次访问内存,查询多级页表获取物理地址页入口,显然翻译延时远大于TLB。DMACOPY的虚拟地址翻译造成的延时,是对COPY性能提升的一个很关键的影响因素;TLB可以存放的物理页Entries有限,COPY的读写虚拟地址翻译需要频繁地访问页表,这样就使得虚拟地址翻译延时对COPY效率和性能的影响非常关键。
[0005]基于DMA的复制一般执行流程为:DMA解析出COPY命令之后,首先分析源起始地址和目的起始地址以及COPY的数据长度,并根据AXI burst设置分别计算读虚拟地址和写虚拟地址序列,虚拟读地址和写地址均是自然顺序;自然顺序的读请求首先发出,执行地址翻译,地址翻译完成后的物理地址经由AXI以及SOC总线(如PCIe)向源内存(memory)读取数据,数据返回后根据关联ID对应的读请求自然顺序(offset)来计算写请求的虚拟地址(写初始地址+offset),然后将写请求和读回的数据一起发送到地址翻译模块,完成地址翻译
之后经由AXI和SOC总线发送到目的memory,执行写操作;DMA等待写返回,完成这一笔COPY。上述一般执行流程的缺点如下:读写虚拟地址均以自然顺序发送给地址翻译模块,所以同属于1个物理页的所有地址会集中地按自然顺序开始地址翻译;由于同属1个物理地址页内的所有虚拟地址,使用页索引号(Entry)+偏移地址(offset address)即可,所以同一个物理地址页内有1个地址翻译完毕,页索引号存储在TLB内,当这个物理地址页内的其他虚拟地址翻译操作执行时,仅需要在TLB内查询并匹配到页索引号即可完成,几个时钟周期即可完成;每一个物理地址页的第一个地址执行翻译时,需要多次访问内存里的多级页表,一次内存访问的延时可达几百个时钟周期,依赖于多级页表访问的地址翻译延时远远大于访问TLB的延时。因此以自然顺序发送的虚拟地址翻译请求,页与页之间因为访问多级页表延时会发生空拍,不能形成流水,影响复制的性能。

技术实现思路

[0006]为了解决上述技术问题,本专利技术的目的在于提供一种基于DMA的数据复制延时的优化方法,所采用的技术方案具体如下:一种基于DMA的数据复制延时的优化方法,该方法包括以下步骤:解析并记录复制命令中包含的源起始地址和目的起始地址,并获取复制数据的长度;根据所述源起始地址和复制数据的长度计算读请求的虚拟地址,根据所述目的起始地址和复制数据的长度计算写请求的虚拟地址,其中读写请求分别对应的虚拟地址为自然顺序排列;将虚拟地址空间划分为多个虚拟页,分别将读写请求对应的自然顺序排列的虚拟地址序列更新为乱序顺序排列的虚拟地址序列;其中,所述乱序顺序排列的虚拟地址序列包括由提前读取的首地址构成的子序列和由更新后的虚拟页中的虚拟地址构成的子序列,所述首地址为每个虚拟页中任意一个虚拟地址,所述更新后的虚拟页包括缺项虚拟页和组合虚拟页,所述缺项虚拟页包括页内虚拟地址,所述组合虚拟页包括页内虚拟地址和一个剩余首地址,其中所述页内虚拟地址为虚拟页内除了首地址之外的虚拟地址,剩余首地址为在后排列的剩余虚拟页中的首地址,所述剩余虚拟页为除了提前读取首地址的虚拟页之外的虚拟页;按照乱序顺序将虚拟地址序列发给地址翻译单元进行地址翻译得到对应的物理地址,根据所述物理地址读写数据以完成复制。
[0007]本专利技术具有如下有益效果:本专利技术实施例提供了一种基于DMA的数据复制延时的优化方法,该方法通过在将虚拟地址翻译为物理地址之前,将自然顺序的虚拟地址进行乱序排列,使地址翻译单元预先翻译多个虚拟页中的首地址,同时将剩余虚拟页中的首地址加入到提前读取首地址的虚拟页中,进而使地址翻译单元提前翻译所有虚拟页的首地址,相对于现有技术中按照自然顺序翻译地址导致等待不存在页表项的首地址的翻译延时过长的方法来说,极大的缩短地址翻译的周期,提高数据复制效率。
附图说明
[0008]为了更清楚地说明本专利技术实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅
仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
[0009]图1为本专利技术一个实施例所提供的一种基于DMA的数据复制延时的优化方法流程图;图2为本专利技术一个实施例所提供的虚拟页中虚拟地址的示意图。
具体实施方式
[0010]为了更进一步阐述本专利技术为达成预定专利技术目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本专利技术提出的一种基于DMA的数据复制延时的优化方法,其具体实施方式、结构、特征及其功效,详细说明如下。在下述说明中,不同的“一个实施例”或“本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于DMA的数据复制延时的优化方法,其特征在于,该方法包括以下步骤:解析并记录复制命令中包含的源起始地址和目的起始地址,并获取复制数据的长度;根据所述源起始地址和复制数据的长度计算读请求的虚拟地址,根据所述目的起始地址和复制数据的长度计算写请求的虚拟地址,其中读写请求分别对应的虚拟地址为自然顺序排列;将虚拟地址空间划分为多个虚拟页,分别将读写请求对应的自然顺序排列的虚拟地址序列更新为乱序顺序排列的虚拟地址序列;其中,所述乱序顺序排列的虚拟地址序列包括由提前读取的首地址构成的子序列和由更新后的虚拟页中的虚拟地址构成的子序列,所述首地址为每个虚拟页中任意一个虚拟地址,所述更新后的虚拟页包括缺项虚拟页和组合虚拟页,所述缺项虚拟页包括页内虚拟地址,所述组合虚拟页包括页内虚拟地址和一个剩余首地址,其中所述页内虚拟地址为虚拟页内除了首地址之外的虚拟地址,剩余首地址为在后排列的剩余虚拟页中的首地址,所述剩余虚拟页为除了提前读取首地址的虚拟页之外的虚拟页;按照乱序顺序将虚拟地址序列发给地址翻译单元进行地址翻译得到对应的物理地址,根据所述物理地址读写数据以完成复制。2.根据权利要求1所述的一种基于DMA的数据复制延时的优化方法,其特征在于,所述首地址进一步为:相对于每个虚拟页的起始地址,偏移量相同的虚拟地址为首地址。3.根据权利要求1所述的一种基于DMA的数据复制延时的优化方法,其特征在于,所述首地址为虚拟页中第一个进行地址翻译的地址,作为虚拟页的入口地址。4.根据权利要求1所述的一种基于DMA的数据复制延时的优化方法,其特征在于,所述提前读取的首地址数量的确定方法为:根据访问多级页表的总延时长...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:沐曦科技北京有限公司
类型:发明
国别省市:

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

1