一种PCIe虚拟通道的数据处理方法及相关装置与流程

文档序号:23722509发布日期:2021-01-26 13:33阅读:189来源:国知局
一种PCIe虚拟通道的数据处理方法及相关装置与流程
一种pcie虚拟通道的数据处理方法及相关装置
技术领域
[0001]
本申请涉及计算机技术领域,特别涉及一种pcie虚拟通道的数据处理方法、数据处理装置、服务器以及计算机可读存储介质。


背景技术:

[0002]
随着信息技术的不断发展,需要处理越来越多数据的种类,相应的需求的速度也越来越快。其中,pcie(peripheral component interconnect express)是一种高速串行计算机扩展总线标准,属于高速串行点对点双通道高带宽传输,所连接的设备分配单独的通道带宽,不共享总线带宽,主要支持主动电源管理,错误报告,端对端的可靠性传输,热插拔以及服务质量等功能。在fpga(field programmable gate array,现场可编程逻辑门阵列)及asic(application specific integrated circuit,专用集成电路)设计中,pcie接口逻辑被广泛应用于存储设备及soc(system on chip,系统级芯片)中。
[0003]
目前在pcie的相关技术中,采用pcie的虚拟通道的功能时,pcie的物理层至pcie内核部分,时钟频率差较大,造成数据传输存在时间间隔,同时越来越多的数据传输使得在数据链路层面造成越来越大的数据传输压力,降低了数据传输的效率。
[0004]
因此,如何缓解pcie链路层的带宽压力是本领域技术人员关注的重点问题。


技术实现要素:

[0005]
本申请的目的是提供一种pcie虚拟通道的数据处理方法、数据处理装置、服务器以及计算机可读存储介质,通过在多个虚拟通道中确定目标虚拟通道并进行处理,缓解了对pcie链路层的带宽压力,提高了数据传输的效率。
[0006]
为解决上述技术问题,本申请提供一种pcie虚拟通道的数据处理方法,包括:
[0007]
根据每个虚拟通道的优先级在多个虚拟通道中确定待处理的目标虚拟通道;
[0008]
当所述目标虚拟通道的操作信息为读操作时,根据所述目标虚拟通道的操作信息执行读操作;
[0009]
当所述目标虚拟通道的操作信息为写操作时,根据所述目标虚拟通道的操作信息执行写操作。
[0010]
可选的,根据每个虚拟通道的优先级在多个虚拟通道中确定待处理的目标虚拟通道,包括:
[0011]
获取每个所述虚拟通道的通道状态;
[0012]
根据每个所述虚拟通道的通道状态对每个虚拟通道进行分类,得到多个虚拟通道类别;
[0013]
根据每个所述虚拟通道的优先级和对应的虚拟通道类别将所述多个虚拟通道进行重要性排序,将第一位的虚拟通道作为所述待处理的目标虚拟通道。
[0014]
可选的,还包括:
[0015]
当虚拟通道的容量不足时,判断是否存在未分配通道;
[0016]
若是,则将所述未分配通道的地址拼接至所述虚拟通道的地址末尾。
[0017]
可选的,还包括:
[0018]
当虚拟通道的数量不足时,执行虚拟通道构建操作得到新的虚拟通道。
[0019]
可选的,当所述目标虚拟通道的操作信息为读操作时,根据所述目标虚拟通道的操作信息执行读操作,包括:
[0020]
当所述目标虚拟通道的操作信息为读操作时,判断所述目标虚拟通道的地址是否为已缓存地址;
[0021]
若是,则从缓存中读取目标数据;
[0022]
若否,则通过dma根据所述地址读取目标数据。
[0023]
可选的,当所述目标虚拟通道的操作信息为写操作时,根据所述目标虚拟通道的操作信息执行写操作,包括:
[0024]
当所述目标虚拟通道的操作信息为写操作时,判断所述目标虚拟通道的地址是否为存储器的地址;
[0025]
若是,则根据该地址将待写入数据映射至缓存中,当所述缓存写入预设大小的待写入数据时,通过dma将所述待写入数据写入存储器中。
[0026]
若否,则根据该地址写入待写入数据。
[0027]
本申请还提供一种pcie虚拟通道的数据处理装置,包括:
[0028]
虚拟通道仲裁模块,用于根据每个虚拟通道的优先级在多个虚拟通道中确定待处理的目标虚拟通道;
[0029]
读操作模块,用于当所述目标虚拟通道的操作信息为读操作时,根据所述目标虚拟通道的操作信息执行读操作;
[0030]
写操作模块,用于当所述目标虚拟通道的操作信息为写操作时,根据所述目标虚拟通道的操作信息执行写操作。
[0031]
可选的,所述虚拟通道仲裁模块,包括:
[0032]
状态获取单元,用于获取每个所述虚拟通道的通道状态;
[0033]
状态分类单元,用于根据每个所述虚拟通道的通道状态对每个虚拟通道进行分类,得到多个虚拟通道类别;
[0034]
重要性排序单元,用于根据每个所述虚拟通道的优先级和对应的虚拟通道类别将所述多个虚拟通道进行重要性排序,将第一位的虚拟通道作为所述待处理的目标虚拟通道。
[0035]
本申请还提供一种服务器,包括:
[0036]
存储器,用于存储计算机程序;
[0037]
处理器,用于执行所述计算机程序时实现如上所述的数据处理方法的步骤。
[0038]
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的数据处理方法的步骤。
[0039]
本申请所提供的一种pcie虚拟通道的数据处理方法,包括:根据每个虚拟通道的优先级在多个虚拟通道中确定待处理的目标虚拟通道;当所述目标虚拟通道的操作信息为读操作时,根据所述目标虚拟通道的操作信息执行读操作;当所述目标虚拟通道的操作信息为写操作时,根据所述目标虚拟通道的操作信息执行写操作。
[0040]
通过在多个虚拟通道中根据虚拟通道的优先级选择待处理的目标虚拟通道,然后根据该目标虚拟通道中的操作信息执行对应的读操作或写操作,以便采用多个虚拟通道pcie传输过程的压力进行换届,避免对pcie链路层的带宽造成过大的压力,提高数据的传输效率。
[0041]
本申请还提供一种pcie虚拟通道的数据处理装置、服务器以及计算机可读存储介质,具有以上有益效果,在此不做赘述。
附图说明
[0042]
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0043]
图1为本申请实施例所提供的一种pcie虚拟通道的数据处理方法的流程图;
[0044]
图2为本申请实施例所提供的另一种pcie虚拟通道的数据处理方法的流程示意图;
[0045]
图3为本申请实施例所提供的另一种数据处理方法的写操作的流程示意图;
[0046]
图4为本申请实施例所提供的另一种数据处理方法的读操作的流程示意图;
[0047]
图5为本申请实施例所提供的一种pcie虚拟通道的数据处理装置的结构示意图。
具体实施方式
[0048]
本申请的核心是提供一种pcie虚拟通道的数据处理方法、数据处理装置、服务器以及计算机可读存储介质,通过在多个虚拟通道中确定目标虚拟通道并进行处理,缓解了对pcie链路层的带宽压力,提高了数据传输的效率。
[0049]
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0050]
相关技术中,采用pcie的虚拟通道的功能时,pcie的物理层至pcie内核部分,时钟频率差较大,造成数据传输存在时间间隔,同时越来越多的数据传输使得在数据链路层面造成越来越大的数据传输压力,降低了数据传输的效率。
[0051]
因此,本申请提供一种pcie虚拟通道的数据处理方法,通过在多个虚拟通道中根据虚拟通道的优先级选择待处理的目标虚拟通道,然后根据该目标虚拟通道中的操作信息执行对应的读操作或写操作,以便采用多个虚拟通道pcie传输过程的压力进行换届,避免对pcie链路层的带宽造成过大的压力,提高数据的传输效率。
[0052]
以下通过一个实施例,对本申请提供的一种pcie虚拟通道的数据处理方法进行说明。
[0053]
请参考图1,图1为本申请实施例所提供的一种pcie虚拟通道的数据处理方法的流程图。
[0054]
本实施例中,该方法可以包括:
[0055]
s101,根据每个虚拟通道的优先级在多个虚拟通道中确定待处理的目标虚拟通道;
[0056]
本步骤旨在通过每个虚拟通道的优先级在多个虚拟通道中确定待处理的目标虚拟通道。也就是,选出优先级最高的虚拟通道作为当前处理的目标虚拟通道。
[0057]
可见,本步骤中每个虚拟通道存在对应的优先级。该优先级可以是虚拟通道发布操作时接收到的优先级,也可以是对该虚拟通道提前设置的优先级,还可以是根据任务类型匹配的优先级。可见,本步骤中设置优先级的方式并不唯一,在此不做具体限定。
[0058]
进一步的,为了提高虚拟通道的确定效果,本实施例中还可以先将虚拟通道进行分类,根据分类后的结果再选取出对应的待处理的目标虚拟通道。
[0059]
为了进一步提高目标虚拟通道的选取的效率,本步骤可以包括:
[0060]
步骤1,获取每个虚拟通道的通道状态;
[0061]
步骤2,根据每个虚拟通道的通道状态对每个虚拟通道进行分类,得到多个虚拟通道类别;
[0062]
步骤3,根据每个虚拟通道的优先级和对应的虚拟通道类别将多个虚拟通道进行重要性排序,将第一位的虚拟通道作为待处理的目标虚拟通道。
[0063]
可见,本可选方案主要是对如何确定目标虚拟通道进行说明。本可选方案中首先,获取每个虚拟通道的通道状态;然后,根据每个虚拟通道的通道状态对每个虚拟通道进行分类,得到多个虚拟通道类别;最后,根据每个虚拟通道的优先级和对应的虚拟通道类别将多个虚拟通道进行重要性排序,将第一位的虚拟通道作为待处理的目标虚拟通道。可见,在对每个虚拟通道进行分类的基础上,基于分类可以减少对每个虚拟通道判断的数量,提高虚拟通道判断的效率。
[0064]
可选的,为了提高单个虚拟通道的容量,本实施例还可以包括:
[0065]
当虚拟通道的容量不足时,判断是否存在未分配通道;
[0066]
若是,则将未分配通道的地址拼接至虚拟通道的地址末尾。
[0067]
可见,本可选方案中主要是当虚拟通道的容量不足时,判断是否存在还未分配通道。若是,还存在未分配通道,则将该未分配通道的地址拼接在虚拟通道的地址末尾,以便将该虚拟通道的容量进行扩充,增加该通道的容量。
[0068]
可选的,本实施例还可以包括:
[0069]
当虚拟通道的数量不足时,执行虚拟通道构建操作得到新的虚拟通道。
[0070]
可见,本可选方案中主要是当虚拟通道的数量不足时,直接执行虚拟通道构建操作构建出新的虚拟通道,以便通过该新的虚拟通道增加虚拟通道的数量,避免出现虚拟通道不够用的情况。
[0071]
s102,当目标虚拟通道的操作信息为读操作时,根据目标虚拟通道的操作信息执行读操作;
[0072]
在s101的基础上,本步骤旨在当目标虚拟通道的操作信息为读操作时,根据目标虚拟通道的操作信息执行读操作
[0073]
其中,目标虚拟通道的操作信息就是执行目标虚拟通道中存在的操作信息。一般来说,操作信息包括读操作和写操作。当操作信息为读操作时,则包括目标地址等。当操作信息为写操作时,则包括目标地址和写入数据。
[0074]
其中,本步骤中执行读操作的过程还可以通过dma(direct memory access,直接存储器访问)直接从存储设备中获取到数据,而不用通过总线再获取到对应的数据,提高数据的获取效率,降低对总线的占用。
[0075]
为了进一步提高数据读取的效率,本步骤可以包括:
[0076]
步骤1,当目标虚拟通道的操作信息为读操作时,判断目标虚拟通道的地址是否为已缓存地址;若是,则执行步骤2;若否,则执行步骤3;
[0077]
步骤2,从缓存中读取目标数据;
[0078]
步骤3,通过dma根据地址读取目标数据。
[0079]
可见,在本可选方案中主要是对读操作进行说明。本可选方案中首先判断目标虚拟通道的地址是否为已缓存地址。若是,则直接从缓存中读取该数据,避免再从存储介质中获取数据。若否,则通过dma根据地址读取目标数据。
[0080]
s103,当目标虚拟通道的操作信息为写操作时,根据目标虚拟通道的操作信息执行写操作。
[0081]
在s102的基础上,本步骤旨在当目标虚拟通道的操作信息为写操作时,根据目标虚拟通道的操作信息执行写操作。
[0082]
本步骤中,还可以是当目标虚拟通道的操作信息为写操作时,直接通过dma将数据写入到目标地址中,而不是通过总线的方式写入数据,降低了对总线的占用率。
[0083]
可选的,为了降低写操作对总线的占用率,本步骤可以包括:
[0084]
当目标虚拟通道的操作信息为写操作时,判断目标虚拟通道的地址是否为存储器的地址;
[0085]
若是,则根据该地址将待写入数据映射至缓存中,当缓存写入预设大小的待写入数据时,通过dma将待写入数据写入存储器中。
[0086]
若否,则根据该地址写入待写入数据。
[0087]
可见,本可选方案中主要是对写操作的过程进行说明。本可选方案中当目标虚拟通道的操作信息为写操作时,判断目标虚拟通道的地址是否为存储器的地址。若是,则根据该地址将待写入数据映射至缓存中,当缓存写入预设大小的待写入数据时,通过dma将待写入数据写入存储器中。若否,则根据该地址写入待写入数据。
[0088]
综上,本实施例通过在多个虚拟通道中根据虚拟通道的优先级选择待处理的目标虚拟通道,然后根据该目标虚拟通道中的操作信息执行对应的读操作或写操作,以便采用多个虚拟通道pcie传输过程的压力进行换届,避免对pcie链路层的带宽造成过大的压力,提高数据的传输效率。
[0089]
以下通过一个具体的实施例,对本申请提供的一种pcie虚拟通道的数据处理方法进行说明。
[0090]
请参考图2,图2为本申请实施例所提供的另一种pcie虚拟通道的数据处理方法的流程示意图。
[0091]
本实施例位于pcie的事务层。本实施例可以包括:
[0092]
ddr(double data rate,双倍速率同步动态随机存储器)控制器:双倍速率同步动态随机存储器,通用模块;
[0093]
快速访存逻辑、dma逻辑:建立与ddr的缓存映射,具备命中记录功能;
[0094]
主信道:通道选择后,获得传输的信号;
[0095]
虚拟通道切换逻辑:负责所有子通道状态收集、状态分析、仲裁,扩展新通道;
[0096]
选通:数据选择器;
[0097]
快速通道:存放系统消息数据包,优先级较高的通道;
[0098]
慢速通道:存放通用数据包,优先级较低;
[0099]
未分配通道:暂未定义的通道,未定义前不可用,可用于拓展通道;
[0100]
通道状态:记录通道目前状态(满,空,拓展余量)。
[0101]
其中,虚拟通道切换逻辑包括:
[0102]
状态收集:每个通道有通道状态寄存器,该模块读取通道状态寄存器,获取通道状态;状态分析:将每个通道的状态进行分类整理;主要是根据快、慢通道各自目前的状态,以及通道数据包传输量的余量,是否达到阈值对通道进行分类。分类包括:
[0103]
快速通道,快速通道内数据包传输的余量,设一个阈值,当达到一定的阈值后,若此时时间阈值也达到,则会有状态码的变化;状态变化后,仲裁会收集,对数据包的优先级进行调整。
[0104]
慢速通道,快速通道内数据包传输的余量,设一个阈值,当达到一定的阈值后,会有状态码的变化;慢通道是时间不敏感数据,所以不需要设时间阈值。
[0105]
主通道,主信道的数据包容量占用情况。
[0106]
通道间仲裁:快速通道0优先级>快速通道1优先级;快速通道优先级>慢速通道优先级;慢速通道0优先级>慢速通道1优先级;
[0107]
通道内仲裁:通道内按数据包进入顺序编码0.1.2.3.4

,优先级0>1>2>3


[0108]
扩展通道容量:查询通道拓展余量,是否可以拓展,是的话拓展通道容量,将未分配通道接到需要拓展的通道地址后面,使用该通道性质;
[0109]
扩展通道数量:在通道数量不够时,可以再定义快速或慢速通道,供pcie链路层使用。
[0110]
请参考图3,图3为本申请实施例所提供的另一种数据处理方法的写操作的流程示意图。
[0111]
当主信道执行写操作时:输入地址,判断是否为ddr地址空间,如果是,将地址的高位22位去掉,从低位0开始缓存,至10

b10_0000_0000,存储于缓存中;凑齐512b后,配置dma,将整块数据由dma写入到ddr中,缓存0处于工作状态时,填充缓存1;如果地址不是ddr空间,则不需要映射,直接访问对应寄存器即可。
[0112]
请参考图4,图4为本申请实施例所提供的另一种数据处理方法的读操作的流程示意图。
[0113]
当主信道执行读操作时:输入地址后,地址判断,是否存有历史记录及单位时间内访问次数;旧地址,更新访问记录,更新访问次数,从缓存中快速获取数据,返回给主信道;新地址,添加访问记录,更新映射,同时配置dma,dma访问ddr,获取数据,批量传输更新缓存。
[0114]
在以上基础上,首先读取状态寄存器,查看状态位,评定优先级,确定主信道执行哪一个虚拟通道的操作,后续如需要拓宽信道则执行信道拓展功能;主信道执行读操作时,参考快速访存逻辑—快速访问命中替换逻辑(主信道读);主信道执行写操作时,参考快速
访存逻辑—虚通道至ddr的映射逻辑(主信道写)。
[0115]
可见,本实施例通过在多个虚拟通道中根据虚拟通道的优先级选择待处理的目标虚拟通道,然后根据该目标虚拟通道中的操作信息执行对应的读操作或写操作,以便采用多个虚拟通道pcie传输过程的压力进行换届,避免对pcie链路层的带宽造成过大的压力,提高数据的传输效率。
[0116]
下面对本申请实施例提供的一种pcie虚拟通道的数据处理装置进行介绍,下文描述的一种pcie虚拟通道的数据处理装置与上文描述的一种pcie虚拟通道的数据处理方法可相互对应参照。
[0117]
请参考图5,图5为本申请实施例所提供的一种pcie虚拟通道的数据处理装置的结构示意图。
[0118]
本实施例中,该装置可以包括:
[0119]
虚拟通道仲裁模块100,用于根据每个虚拟通道的优先级在多个虚拟通道中确定待处理的目标虚拟通道;
[0120]
读操作模块200,用于当目标虚拟通道的操作信息为读操作时,根据目标虚拟通道的操作信息执行读操作;
[0121]
写操作模块300,用于当目标虚拟通道的操作信息为写操作时,根据目标虚拟通道的操作信息执行写操作。
[0122]
可选的,该虚拟通道仲裁模块100,可以包括:
[0123]
状态获取单元,用于获取每个虚拟通道的通道状态;
[0124]
状态分类单元,用于根据每个虚拟通道的通道状态对每个虚拟通道进行分类,得到多个虚拟通道类别;
[0125]
重要性排序单元,用于根据每个虚拟通道的优先级和对应的虚拟通道类别将多个虚拟通道进行重要性排序,将第一位的虚拟通道作为待处理的目标虚拟通道。
[0126]
本申请实施例还提供一种服务器,包括:
[0127]
存储器,用于存储计算机程序;
[0128]
处理器,用于执行所述计算机程序时实现如以上实施例所述的数据处理方法的步骤。
[0129]
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上实施例所述的数据处理方法的步骤。
[0130]
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0131]
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应
认为超出本申请的范围。
[0132]
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
[0133]
以上对本申请所提供的一种pcie虚拟通道的数据处理方法、数据处理装置、服务器以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1