一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

Liunx系统下的高速外围组件互联PCIE设备扫描方法及装置与流程

2022-03-30 10:49:00 来源:中国专利 TAG:

liunx系统下的高速外围组件互联pcie设备扫描方法及装置
技术领域
1.本发明涉及通信技术领域,尤其涉及一种liunx系统下的高速外围组件互联pcie设备扫描方法及装置。


背景技术:

2.随着嵌入式技术的发展,linux系统(一种计算机操作系统)被广泛应用于嵌入式设备的开发中,随之而来的多设备的通信问题,使得高速外围组件互联(peripheral component interface express,pcie)一种总线和接口标准,也即是一种高速串行计算机扩展总线标准应运而生。pcie为两个pcie设备之间提供了串行互联标准,采用点到点技术为每个设备分配独立的通道带宽,使得采用pcie标准进行传输的设备之间,具有传输速率高,支持多通路的数据传递方式以及传输流量可控等特点。
3.目前的pcie数据传输系统处于linux系统下,其网络拓扑通常是一种从根联合体(root complex,rc)到一个或多个节点设备(endpoint,ep)的树形网络拓扑。其中,rc可以直接连接一个或多个ep,rc也可以通过交换器(switch,sw)连接一个或多个ep,ep和sw可以统称为pcie设备。在linux系统内核启动时,rc可以进行一次pcie扫描,以确定当前pcie网络拓中包括的pcie设备,并为该pcie设备分配系统总线号、系统地址空间和中断等系统和硬件资源。
4.但是,若在系统运行过程中需要添加pcie设备,则需要人为通过linux系统提供sysfs文件子系统输入并发送命令,以使得linux系统内核对该命令进行解析,执行pcie扫描操作。这种人为触发pcie扫描操作的方式效率较低,且不利于系统设备的维护。


技术实现要素:

5.本发明实施例提供一种liunx系统下的高速外围组件互联pcie设备扫描方法及装置,可以实现自动对pcie数据传输系统进行pcie扫描操作,避免人工干预触发pcie扫描,提高了pcie扫描的效率。
6.本发明实施例提供了一种liunx系统下的pcie设备扫描方法,其特征在于,应用于pcie数据传输系统中的rc,所述pcie数据传输系统还包括至少一个pcie设备,所述方法包括:
7.检测所述至少一个pcie设备中每个pcie设备对应pcie链路的链路状态,所述pcie设备对应pcie链路为以所述pcie设备的上游pcie端口为端点的链路,所述链路状态包括第一状态和第二状态,在所述pcie链路处于第一状态时,所述pcie链路无法传输数据,在所述pcie链路处于第二状态时,所述pcie链路正常传输数据;
8.当任一所述pcie设备对应pcie链路的链路状态由第一状态转为第二状态时,对pcie数据传输系统进行pcie扫描。
9.本发明实施例提供了一种liunx系统下的pcie设备扫描装置,其特征在于,应用于pcie数据传输系统中的rc,所述pcie数据传输系统还包括至少一个pcie设备,所述装置包
括:
10.检测模块,用于检测所述至少一个pcie设备中每个pcie设备对应pcie链路的链路状态,所述pcie设备对应pcie链路为以所述pcie设备的上游pcie端口为端点的链路,所述链路状态包括第一状态和第二状态,在所述pcie链路处于第一状态时,所述pcie链路无法传输数据,在所述pcie链路处于第二状态时,所述pcie链路正常传输数据;
11.扫描模块,用于当任一所述pcie设备对应pcie链路的链路状态由第一状态转为第二状态时,对pcie数据传输系统进行pcie扫描。
12.本发明实施例包括以下优点:
13.本发明实施例提供的一种liunx系统下的pcie设备扫描方法,通过检测至少一个pcie设备中每个pcie设备对应pcie链路的链路状态,以在任一pcie设备对应pcie链路的链路状态由第一状态转为第二状态时,确定当前pcie数据传输系统中存在添加的pcie设备,对pcie数据传输系统进行pcie扫描。这样实现了自动进行pcie扫描操作,避免了人工干预触发pcie扫描,提高了pcie扫描的效率。同时自动进行pcie扫描操作,实现了自动为添加的pcie设备(例如,新就绪的pcie设备或者故障恢复后的pcie设备)分配系统资源,使得可以自动维护pcie数据传输系统中各个pcie设备的正常通信,有利于系统设备的维护,提升了系统的操作维护能力。
附图说明
14.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
15.图1示出了本发明实施例提供的一种pcie数据传输系统的结构示意图;
16.图2示出了本发明实施例提供的另一种pcie数据传输系统的结构示意图;
17.图3示出了pcie标准下pcie通信的设备结构图;
18.图4示出了dlcmsm的状态变换示意图;
19.图5示出了本发明实施例提供的一种liunx系统下的pcie设备扫描方法的流程图;
20.图6示出了本发明实施例提供的另一种liunx系统下的pcie设备扫描方法的流程图;
21.图7示出了本发明实施例提供的再一种liunx系统下的pcie设备扫描方法的流程图;
22.图8示出了本发明实施例提供的一种liunx系统下的pcie设备扫描装置的结构示意图;
23.图9示出了本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
24.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施
例,都属于本发明保护的范围。
25.随着嵌入式技术的发展,linux系统(一种计算机操作系统)被广泛应用于嵌入式设备的开发中,随之而来的多设备的通信问题,使得高速外围组件互联(peripheral component interface express,pcie)一种总线和接口标准,也即是一种高速串行计算机扩展总线标准应运而生,该pcie标准逐渐代替外设部件互连标准(peripheral component interconnect,pci)。与pci标准不同的是,pcie为两个pcie设备之间提供了串行互联标准,采用点到点技术为每个设备分配独立的通道带宽,使得采用pcie标准进行传输的设备之间,具有传输速率高,支持多通路的数据传递方式以及传输流量可控等特点。例如,1代pcie标准支持2.5g/second/lane/direction,2代pcie标准支持5.0g,3代pcie标准支持8.0g。并且该pcie标准可以兼容pci标准。
26.目前的pcie数据传输系统处于linux系统下,其网络拓扑通常是一种从根联合体(root complex,rc)到一个或多个节点设备(endpoint,ep)的树形网络拓扑。其中,rc可以直接连接一个或多个ep,rc也可以通过交换器(switch,sw)连接一个或多个ep,ep和sw可以统称为pcie设备。在linux系统内核启动时,rc可以进行一次pcie扫描,以确定当前pcie网络拓中包括的pcie设备,并为该pcie设备分配系统总线号、系统地址空间和中断等系统和硬件资源。
27.但是,在pcie数据传输系统在不支持热插拔功能的情况下,若在系统运行过程中需要添加pcie设备,则会由于rc设备的扫描操作仅能发生在linux系统内核启动时,导致除非rc设备重新启动,否则无法重新对上述pcie设备进行扫描,使得该pcie设备即使在故障恢复后仍无法进行pcie通信,无法进行正常工作。此时需要人为通过linux系统提供sysfs文件子系统输入并发送命令,以使得linux系统内核对该命令进行解析,执行pcie扫描操作。这种人为触发pcie扫描操作的方式效率较低,且不利于系统设备的维护。
28.其中,在系统运行过程中需要添加的pcie设备可以包括:
29.第一种pcie设备。该第一种pcie设备指的是在在linux系统内核启动时的pcie扫描过程中处于无法连接的不正常状态的设备。若在linux系统内核启动时的pcie扫描过程中,pcie设备处于无法连接的不正常状态,则此次pcie扫描无法得到pcie设备,进而使得pcie设备无法与其他pcie设备进行pcie通信。例如,该第一种pcie设备处于无法连接的不正常状态的原因可以包括,pcie设备未就绪或者与pcie设备通信的物理链路未协商成功。
30.第二种pcie设备。该第二种pcie设备可以指的是在正常工作中故障后被修复的设备。若pcie设备在正常工作中故障,则在故障恢复后,需要rc设备重新对该pcie设备进行扫描,并为其分配系统和硬件资源。
31.当然,在系统运行过程中需要添加的pcie设备还可以为其他情况下的设备,例如,根据需求需要添加的pcie设备,本发明实施例对此不做限定。
32.本发明实施例提供一种pcie数据传输系统,该pcie数据传输系统可以包括rc以及与rc连接的至少一个pcie设备。该pcie设备可以仅包括ep,或者,该pcie设备可以包括ep以及sw。
33.请参考图1,其示出了本发明实施例提供的一种pcie数据传输系统的结构示意图。如图1所示,该pcie数据传输系统包括:rc101以及与rc101连接的至少一个ep102。该至少一个ep102指的是一个或多个ep102,图1中以pcie数据传输系统包括第一ep102a和第二
ep102b为例进行说明。其中,pcie标准采用点对点通信模块,则rc到每个ep之间仅具有唯一路径。示例的,中央处理器(central processing unit,cpu)可以包括一个或多个rc,每个rc用于为与其连接的ep分配系统总线号、系统地址空间和中断等系统和硬件资源(统称系统资源)。ep为pcie标准中定义的标准功能设备,例如以太网、fc网卡、无线宽带(infiniband,ib)网卡等。
34.可选的,请参考图2,其示出了本发明实施例提供的另一种pcie数据传输系统的结构示意图。如图2所示,在图1所示的基础上,该pcie数据传输系统还包括:至少一个sw103,该sw可以包括pcie到外设部件互连标准(peripheral component interconnect,pci)的桥或者pcie到pci-x(一种基于pci总线的扩展架构)的桥等。该一个或多个sw103均分别与rc101和至少一个ep102连接,即rc101可以直接与ep102连接,rc101也可以通过sw103与ep102连接。图2中以为sw设备103的一个sw103,且sw设备连接有第三ep102c和第四ep102d为例进行说明。
35.当然,本发明实施例提供的pcie数据传输系统还可以仅包括rc通过sw与ep连接的情况,图1和图2所示的pcie数据传输系统并不对本发明提供的pcie数据传输系统进行限制。
36.为了便于读者对本发明的理解,本发明实施例先对pcie标准下pcie通信的设备的结构进行介绍。
37.请参考图3,其示出了pcie标准下pcie通信的设备结构图。如图3所示,第一pcie设备与第二pcie设备进行pcie通信,pcie标准将每个pice设备(第一pcie设备和第二pcie设备)划分包括:事务层、数据链路层和物理层,数据链路层介于事务层和物理层之间。发送端pcie设备的事务层可以接收pcie设备核心层的数据请求,并将该数据请求转换成事务层包(transaction layer packet,tlp),存储在缓存器中以发送至数据链路层。数据链路层可以基于tlp转化数据链路层包(data link layer packet,dllp),以发送至物理层。物理层可以基于dllp转成物理层包(physical layer,plp),以发送至对端pcie设备。对端pcie设备接收该plp,进行数据链路层和事务层反向数据包转换处理,发送至pcie设备的核心层,实现两个pcie设备的通信。
38.其中,每个pcie设备中数据链路层管理着点对点(两个进行pcie通信的pcie设备之间)的链路状态。该数据链路层可以从物理层获取pcie端口的当前链路状态,并将该链路状态上报至事务层。pcie端口的链路状态包括数据链路开启状态(dl_up状态)和数据链路端口状态(dl_down状态)。dl_up状态表示检测到pcie端口连接了其他设备。则可以认为pcie端口所属的pcie链路可以正常传输数据。dl_down状态表示未检测到pcie端口连接了其他设备。则可以认为pcie端口所属的pcie链路无法传输数据。
39.数据链路层包括:数据链路控制与管理状态机(data link control and management state machine,dlcmsm),该dlcmsm的状态为pcie端口的数据链路层状态,其可以对应pcie端口的链路状态,以反映两个pcie设备之间的pcie链路的链路状态。
40.具体的,如图4所示,其示出了dlcmsm的状态变换示意图。dlcmsm的状态包括:
41.数据链路无效状态(dl_inactive状态):物理层通知数据链路层当前pcie链路不可用,此时pcie链路的对端可能未连接pcie设备或未检测到对端的pcie设备。当pcie设备复位时,该dlcmsm的状态为dl_inactive状态。此时,pcie设备将丢弃缓存器存储的tlp,并
停止发送dllp。数据链路层向事务层提交pcie端口的链路状态为dl_down状态信息。当物理层进行的链路训练结束后,当前pcie链路状态正常且事务层没有禁用当前pcie链路时,dl_inactive状态迁移到dl_init状态。
42.数链路初始化状态(dl_init状态):在pcie设备进入dl_init状态后,物理层通知数据链路层当前pcie链路可用,但pcie设备不可以收发dllp和tlp。此时数据链路层需要首先进行流量控制初始化,在初始化完成之后,检查物理层链路状态是否正常。若物理层链路状态正常,则向事务层提交pcie端口的链路状态为dl_up状态信息,数据链路层状态将由dl_init状态迁移到dl_active状态。若物理层链路状态不正常,则数据链路层状态将由dl_init状态迁移到dl_inactive状态。
43.数据链路有效状态(dl_active状态):在pcie设备进入dl_active状态后,物理层通知数据链路层当前pcie链路正常,且pcie链路可以正常接收和发送dllp和tlp。此时数据链路层向事务层提交pcie端口的链路状态为dl_up状态信息。若出现异常情况,例如pcie设备故障、pcie设备的链路状态被软件设置为链路禁用状态(link disable状态)或者pcie设备接收到pme_turn_off消息等情况,数据链路层状态将由dl_active状态迁移到dl_inactive状态。
44.方法实施例一
45.请参考图5,其示出了本发明实施例提供的一种liunx系统下的pcie设备扫描方法的流程图。该方法可以应用于图1或图2所示的pcie数据传输系统中的rc。如图5所示,该方法包括:
46.步骤201、检测至少一个pcie设备中每个pcie设备对应pcie链路的链路状态。
47.在linux系统内核正常启动后,rc可以周期性定时检测至少一个pcie设备中每个pcie设备对应pcie链路的链路状态。其中,pcie设备对应pcie链路为以pcie设备的上游pcie端口为端点的链路。pcie端口指的是pcie设备中用于pcie通信的端口。pcie设备的上游pcie端口与rc直接连接或者间接连接。该链路状态包括第一状态和第二状态,在pcie链路处于第一状态时,pcie链路无法传输数据,在pcie链路处于第二状态时,pcie链路正常传输数据。pcie设备包括ep,或者pcie设备包括交换器和ep。
48.示例的,在pcie数据传输系统为图1所示的pcie数据传输系统的情况下,则pcie设备包括ep;在pcie数据传输系统为图2所示的pcie数据传输系统的情况下,则pcie设备包括sw和ep。以图2所示的pcie数据传输系统为例,sw103的上游pcie端口为与rc直接连接的端口,其对应的pcie链路为链路1031,第一ep102a的上游pcie端口为与rc直接连接的端口,其对应的pcie链路为链路102a1,第三ep102c的上游pcie端口为与rc间接连接的端口,其对应的pcie链路为链路102c1。
49.可选的,pcie链路的链路状态可以用pcie链路中至少一个端点对应pcie端口的状态表征。则检测至少一个pcie设备中每个pcie设备对应pcie链路的链路状态的过程包括:检测至少一个pcie设备中每个pcie设备的pcie端口的状态。
50.示例的,pcie端口的状态可以包括pcie端口的链路状态、或者pcie端口的数据链路层状态,或者pcie端口的链路状态和pcie端口的数据链路层状态。其中,pcie端口的链路状态包括dl_up状态和dl_down状态。dl_up状态表示检测到pcie端口连接了其他设备,则可以认为pcie端口所属的pcie链路可以正常传输数据。dl_down状态表示未检测到pcie端口
连接了其他设备。则可以认为pcie端口所属的pcie链路无法传输数据。
51.pcie端口的数据链路层状态包括dl_inactive状态、dl_init状态以及dl_active状态。其中,数据链路层为dl_active状态下,pcie链路可以正常接收和发送dllp和tlp,则可以认为pcie链路可以正常传输数据。数据链路层为dl_inactive状态下,pcie链路的对端可能未连接pcie设备或未检测到对端的pcie设备,则可以认为pcie链路可以正常传输数据。数据链路层为dl_init状态下,pcie链路无法接收和发送dllp和tlp,则可以认为pcie链路无法传输数据。
52.需要说明的是,pcie链路的链路状态可以用pcie链路中至少一个端点对应pcie端口的状态表征,则不难理解rc与其直接连接的pcie设备对应的pcie链路,例如图2中链路1031和链路102a1,其链路状态也可以采用rc的下游pcie端口的状态表征。那么,本技术实施例中,还可以通过检测rc的pcie端口的状态,以实现对与rc直接连接的pcie设备对应的pcie链路的链路状态的检测。
53.步骤202、当任一pcie设备对应pcie链路的链路状态由第一状态转为成为第二状态时,对pcie数据传输系统进行pcie扫描。
54.由于pcie设备对应pcie链路的链路状态由第一状态转为第二状态时,表明与该pcie设备连接的pcie链路由无法进行数据传输的状态转为可进行数据传输的状态。因此,当检测到任一pcie设备对应pcie链路的链路状态由第一状态转为第二状态时,表明当前pcie数据传输系统中该链路状态变化的pcie设备为添加的pcie设备,此时可以对pcie数据传输系统进行pcie扫描,以得到添加的pcie设备,并为添加的pcie设备分配系统资源。该系统资源可以为系统总线号、系统地址空间和中断等系统和硬件资源。该链路状态变化的pcie设备可能为前述第一种pcie设备,也即是新就绪的pcie设备。当然,该链路状态变换的pcie设备也可能为前述第二种pcie设备,也即是故障恢复后的pcie设备。
55.示例的,当检测到任一pcie设备对应pcie链路的链路状态由第一状态转为第二状态时,rc可以通过调用linux系统提供的rescan功能,实现对pcie数据传输系统重新进行pcie扫描。其中,rc可以通过调用linux系统中sysfs文件子系统中重扫描命令(system("echo 1》/sys/bus/pci/rescan")),实现rescan功能的调用。或者rc也可以通过调用重扫描函数,实现rescan功能的调用。
56.综上所述,本发明实施例提供的一种liunx系统下的pcie设备扫描方法,通过检测至少一个pcie设备中每个pcie设备对应pcie链路的链路状态,以在任一pcie设备对应pcie链路的链路状态由第一状态转为第二状态时,确定当前pcie数据传输系统中存在添加的pcie设备,对pcie数据传输系统进行pcie扫描。这样实现了自动进行pcie扫描操作,避免了人工干预触发pcie扫描,提高了pcie扫描的效率。同时自动进行pcie扫描操作,实现了自动为添加的pcie设备(例如,新就绪的pcie设备或者故障恢复后的pcie设备)分配系统资源,使得可以自动维护pcie数据传输系统中各个pcie设备的正常通信,有利于系统设备的维护,提升了系统的操作维护能力。
57.请参考图6,其示出了本发明实施例提供的另一种liunx系统下的pcie设备扫描方法的流程图。该方法可以应用于图1或图2所示的pcie数据传输系统中的rc。如图6所示,该方法包括:
58.步骤301、判断pcie数据扫描系统当前是否完成的pcie扫描。当确定pcie数据扫描
系统当前完成pcie扫描时,执行步骤302;当确定pcie数据扫描系统当前未完成pcie扫描时,执行步骤306。
59.在linux系统内核正常启动后,rc可以周期性地判断pcie数据扫描系统当前是否完成的pcie扫描。可选的,rc存储有pcie扫描完成标记(pcie_device_scan_flag)。该pcie扫描完成标记具有第一数值或第二数值。第一数值表示pcie数据传输系统当前未完成pcie扫描。也即是第一数值表示pcie数据传输系统当前正在进行pcie扫描或者启动pcie扫描。第二数据表示pcie数据传输系统当前完成pcie扫描。示例的,第一数值为true,第二数值为false。rc可以通过获取pcie扫描完成标记,以确定当前pcie扫描完成标记为第一数值或者第二数值。当pcie扫描完成标记为第二数值时,确定pcie数据传输系统当前完成pcie扫描。当pcie扫描完成标记为第一数值时,确定pcie数据传输系统当前未完成pcie扫描。
60.示例的,pcie扫描完成标记可以添加至linux pcie总线驱动代码中。例如,可以在probe驱动函数里,增加一个可供用户层和内核层读写的pcie扫描完成标记,在probe驱动函数执行完成后,设置其初始值为第二数据。rc可以获取probe的驱动函数中的pcie扫描完成标记,以基于该pcie扫描完成标记确定pcie数据传输系统当前是否完成pcie扫描。
61.步骤302、检测至少一个pcie设备中每个pcie设备对应pcie链路的链路状态。
62.rc可以周期性定时检测至少一个pcie设备中每个pcie设备对应pcie链路的链路状态。其中,pcie设备对应pcie链路为以pcie设备的上游pcie端口为端点的链路。pcie端口指的是pcie设备中用于pcie通信的端口。pcie设备的上游pcie端口与rc直接连接或者间接连接。该链路状态包括第一状态和第二状态,在pcie链路处于第一状态时,pcie链路无法传输数据,在pcie链路处于第二状态时,pcie链路正常传输数据。pcie设备包括ep,或者pcie设备包括交换器和ep。
63.可选地,pcie链路的链路状态包括pcie链路中至少一个端点对应pcie端口的状态,也即是pcie链路的链路状态可以用pcie链路中至少一个端点对应pcie端口的状态表征。至少一个端点可以包括pcie链路的两个端点中的任一端点,或者pcie链路的两个端点。pcie端口的状态包括pcie端口的链路状态和/或pcie端口的数据链路层状态。该pcie端口的链路状态和pcie端口的数据链路层状态的解释可以参考上述步骤201中的相关解释,本发明实施例对此不做赘述。
64.示例的,以pcie链路的链路状态以pcie端口的数据链路层状态表征为例进行说明,pcie端口的数据链路层状态包括dl_inactive状态、dl_init状态以及dl_active状态。rc检测至少一个pcie设备中每个pcie设备对应pcie链路的链路状态的过程可以包括:rc检测数据传输系统中所有pcie设备的所有pcie端口的数据链路控制与管理状态机的当前状态。
65.例如,rc可以读取所有pcie设备中每个pcie设备的配置空间,以获取该pcie设备中每个pcie端口的dlcmsm的当前状态,也即是获取每个pcie端口的数据链路层的当前状态。或者,每个pcie设备可以周期性地或者在特定时刻向rc发送数据链路层状态消息。rc在接收到该数据链路层状态消息时,获取该pcie设备中每个pcie端口的数据链路控制与管理状态机的当前状态。其中,数据链路层状态消息可以为pme消息,该pme消息中包括该pcie设备中每个pcie端口的数据链路控制与管理状态机的当前状态。
66.在本发明的一种可选实施例中,在执行步骤302检测至少一个pcie设备中每个
pcie设备对应pcie链路的链路状态之前,所述方法还包括步骤401至步骤402。
67.在步骤401中,判断是否为首次检测至少一个pcie设备中每个pcie设备对应pcie链路的链路状态。当为首次检测至少一个pcie设备中每个pcie设备对应pcie链路的链路状态时,执行步骤402;当为非首次检测至少一个pcie设备中每个pcie设备对应pcie链路的链路状态时,执行步骤302检测至少一个pcie设备中每个pcie设备对应pcie链路的链路状态。
68.rc判断是否为首次检测至少一个pcie设备中每个pcie设备对应pcie链路的链路状态。当为首次检测至少一个pcie设备中每个pcie设备对应pcie链路的链路状态时,表明上一次完成的pice扫描为linux内核启动时进行的pcie扫描,则需要记录pcie设备对应pcie链路的链路状态,以为后续可以判断pcie链路的链路状态是否由第一状态转为第二状态。
69.可选的,rc可以存储链路状态信息集合(pcie_portlinkinfo)。该链路状态信息集合可以用于记录pcie数据传输系统中每个pcie设备的设备标识以及pcie设备对应pcie链路的链路状态。判断是否为首次检测至少一个pcie设备中每个pcie设备对应pcie链路的链路状态的过程可以包括:rc可以获取存储的链路状态信息集合,若该链路状态信息集合为空,则确定为首次检测至少一个pcie设备中每个pcie设备对应pcie链路的链路状态。若该链路状态信息集合为非空,则确定为非首次检测至少一个pcie设备中每个pcie设备对应pcie链路的链路状态。
70.示例的,以pcie链路的链路状态以pcie端口的数据链路层状态表征为例进行说明,则链路状态信息集合包括所有pcie端口的端口标识与pcie端口的状态的对应关系。示例的,该pcie端口的端口标识可以为pcie端口地址,该pcie端口地址可以包括域号,总线号,设备号,功能号。
71.在步骤402中、获取pcie数据传输系统中每个pcie设备的设备标识以及pcie设备对应pcie链路的链路状态,保存至链路状态信息集合。
72.示例的,继续以pcie链路的链路状态以pcie端口的数据链路层状态表征,且pcie端口的端口标识为pcie端口地址为例进行说明,获取pcie数据传输系统中每个pcie设备的设备标识以及pcie设备对应pcie链路的链路状态,保存至链路状态信息集合的过程可以包括:
73.读取pcie数据传输系统中所有pcie设备的所有pcie端口的pcie扫描配置信息以及pcie端口的数据链路层状态,也即是所有pcie端口的pcie扫描结果以及dlcmsm的当前状态。将所有pcie端口的pcie扫描配置信息以及pcie端口的数据链路层状态记录至链路状态信息集合。该pcie端口的pcie扫描结果包括:pcie端口地址。将所有pcie端口的端口地址以及pcie端口的数据链路层状态存储至链路状态信息集合。
74.步骤303、判断pcie数据传输系统中任一pcie设备对应pcie链路的链路状态是否由第一状态转为第二状态。当任一pcie设备对应pcie链路的链路状态由第一状态转为第二状态时,执行步骤304;当任一pcie设备对应pcie链路的链路状态不是由第一状态转为第二状态时,执行步骤305。
75.rc可以判断pcie数据传输系统中任一pcie设备对应pcie链路的链路状态是否由第一状态转为第二状态。由于pcie设备对应pcie链路的链路状态从第一状态转为第二状态时,表明与该pcie设备连接的pcie链路从无法进行数据传输的状态转为可进行数据传输的
状态。因此,当检测到任一pcie设备对应pcie链路的链路状态由第一状态转为第二状态时,表明当前pcie数据传输系统中该链路状态变化的pcie设备为添加的pcie设备。当未检测到任一pcie设备对应pcie链路的链路状态由第一状态转为第二状态时,也即是任一一pcie设备对应pcie链路的链路状态不是由第一状态转为第二状态时,表明当前pcie数据传输系统中不存在添加的pcie设备。
76.示例的,继续以pcie链路的链路状态以pcie端口的数据链路层状态表征为例,判断pcie数据传输系统中任一pcie设备对应pcie链路的链路状态是否由第一状态转为第二状态的过程可以包括:判断pcie数据传输系统中任一pcie端口的当前状态是否由非dl_active状态转为dl_active状态。当任一pcie端口的当前状态由非dl_active状态转为dl_active状态时,也即是任一pcie端口的链路状态由dl_down状态到dl_up状态时,执行步骤304;当任一pcie端口的当前状态不是由非dl_active状态转为dl_active状态时,执行步骤305。其中,非dl_active状态指的是dl_inactive状态或者dl_init状态。
77.在本发明的一种可选实施例中,判断pcie数据传输系统中任一pcie设备对应pcie链路的链路状态是否由第一状态转为第二状态的过程可以包括获取链路状态信息中所有pcie设备对应的pcie链路的链路状态。判断检测到的任一pcie设备对应pcie链路的链路状态是否为第二状态,且该链路状态信息中与任一pcie设备对应pcie设备的链路状态是否为第一状态。
78.示例的,在pcie链路的链路状态为pcie端口的数据链路层状态时,判断pcie数据传输系统中任一pcie设备对应pcie链路的链路状态是否由第一状态转为第二状态的过程可以包括步骤501至步骤502。
79.在步骤501中,获取链路状态信息中所有pcie端口的状态。
80.链路状态信息记录有linux内核启动时进行的pcie扫描后,所有pcie设备的所有pcie端口的dlcmsm的当前状态。或者链路状态信息记录有上一次检测到的所有pcie设备的所有pcie端口的dlcmsm的当前状态,所有pcie端口的端口标识对应的pcie端口的数据链路层状态。rc获取链路状态信息所有pcie端口的端口标识对应的pcie端口的数据链路层状态。
81.在步骤502中,判断检测到的任一pcie端口的dlcmsm的当前状态是否为dl_active状态,且链路状态信息中与任一pcie端口对应pcie端口的状态是否为非dl_active状态。
82.rc比较检测到的任一pcie端口的当前状态是否为dl_active状态,并且比较获取链路状态信息中,与该pcie端口对应pcie端口的数据链路层状态是否为非dl_active状态。
83.当检测到的任一pcie端口的当前状态为dl_active状态,且链路状态信息中对应pcie端口的状态为非dl_active状态时,表明该pcie端口的数据链路层状态由非dl_active状态变为dl_active状态,该pcie端口的链路状态由dl_down状态到dl_up状态。当检测到的任一pcie端口的当前状态不为dl_active状态,或者链路状态信息中对应pcie端口的状态不为非dl_active状态时,表明该pcie端口的数据链路层状态不是由非dl_active状态变为dl_active状态,也即是该pcie端口的链路状态不是由dl_down状态到dl_up状态。
84.步骤304、对pcie数据传输系统进行pcie扫描。
85.当任一pcie设备对应pcie链路的链路状态由第一状态转为第二状态时,rc对pcie数据传输系统进行pcie扫描。
86.可选的,rc对pcie数据传输系统进行pcie扫描的过程可以包括以下步骤601至步骤603。
87.在步骤601中,判断目标pcie端口是否为故障恢复端口。当目标pcie端口为故障恢复端口时,执行步骤602;当目标pcie端口不是故障恢复端口时,执行步骤603。
88.目标pcie端口为当前状态由非dl_active状态转为dl_active状态的端口。故障恢复端口指的是前述第二pcie设备的pcie端口,具体指的是故障恢复后的pcie设备的端口。由于故障恢复后的pcie设备相较于新添加的pcie设备(例如上述第一种设备),不会操作pcie数据传输系统中pcie设备总数的变化,因此当目标pcie是否为故障恢复端口时,无需改变当前pcie数据传输系统中除目标pcie设备外其他pcie设备分配得到的系统资源,仅需要为该目标pcie设备再次分配系统资源即可。而当目标pcie是否不是故障恢复端口时,需要改变当前pcie数据传输系统中除目标pcie设备外其他pcie设备分配得到的系统资源,以为当前pcie数据传输系统中所有pcie设备的系统资源重新分配。所以可以通过判断目标pcie设备是否为故障恢复端口,以在不同的情况下执行不同的操作,避免了在不论目标pcie设备是否为故障恢复端口的情况下,均对当前pcie数据传输系统中所有pcie设备的系统资源重新分配,而造成的设备开销较大,资源浪费。
89.可选的,链路状态信息集合还可以包括pcie数据传输系统中每个pcie端口的端口标识与分配资源信息的对应关系。该分配资源信息包括分配标识或者未分配标识,分配标识用于表示对pcie端口分配过系统资源,也即是表示该分配标识对应的pcie端口为故障恢复端口。未分配标识用于表示未对pcie端口分配过系统资源,也即是表示该分配标识对应的pcie端口不是故障恢复端口。
90.判断目标pcie设备是否为故障恢复端口的过程可以包括:获取目标pcie端口的端口标识和链路状态信息集合。确定链路状态信息集合中目标pcie端口的端口标识对应的分配资源信息。当目标pcie端口的分配资源信息为分配标识时,确定目标pcie端口是故障恢复端口。当目标pcie端口的分配资源信息为未分配标识时,确定目标pcie端口不是故障恢复端口。
91.步骤602、对pcie数据传输系统进行pcie扫描,为目标pcie端口所在pcie设备分配系统资源。
92.示例的,rc可以通过调用linux系统提供的rescan功能,实现对pcie数据传输系统重新进行pcie扫描。并为该目标pcie端口所在pcie设备分配系统资源。其中,rc可以通过调用linux系统中sysfs文件子系统中重扫描命令,实现rescan功能的调用。或者rc也可以通过调用重扫描函数,实现rescan功能的调用。
93.步骤603、释放至少一个pcie设备中每个pcie设备的系统资源,对pcie数据传输系统进行pcie扫描,为扫描得到的每个pcie设备分配系统资源。
94.示例的,rc释放为pcie数据传输系统中每个pcie设备分配系统总线号、系统地址空间和中断等系统和硬件资源。通过调用linux系统提供的rescan功能,实现对pcie数据传输系统重新进行pcie扫描。并为扫描得到的每个pcie设备分配系统资源。
95.在本发明的一种可选实施例中,rc执行步骤304对pcie数据传输系统进行pcie扫描之前,所述方法还包括:当任一pcie设备对应pcie链路的链路状态由第一状态转为第二状态时,rc将pcie扫描完成标记更新为第二数值。
96.且相应的,rc在执行步骤304对pcie数据传输系统进行pcie扫描之后,所述方法还包括:将pcie扫描完成标记更新为第一数值。这样及时更新pcie扫描完成标记,使得pcie扫描完成标记可以真实反映当前pcie数据传输系统pcie扫描状态,便于基于该pcie扫描完成标记判断pcie数据传输系统当前是否完成pcie扫描。
97.步骤305、记录检测得到的至少一个pcie设备中每个pcie设备对应pcie链路的链路状态。
98.rc在检测至少一个pcie设备中每个pcie设备对应pcie链路的链路状态时,记录步骤302检测得到的至少一个pcie设备中每个pcie设备对应pcie链路的链路状态。rc也在执行步骤304进行pcie扫描后,记录步骤302检测得到的至少一个pcie设备中每个pcie设备对应pcie链路的链路状态。
99.可选的,rc存储有链路状态信息集合时,记录检测得到的至少一个pcie设备中每个pcie设备对应pcie链路的链路状态的过程可以包括:
100.基于所有pcie端口的当前状态,更新链路状态信息集合中对应pcie端口的状态。示例的,基于每个pcie端口的端口标识与获取pcie端口的dlcmsm的当前状态,更新链路状态信息集合中该端口标识对应的状态,更新后的链路状态信息集合中,每个pcie端口的端口标识对应的状态均为该pcie端口对应的获取的dlcmsm的当前状态。
101.可选的,链路状态信息集合包括所有pcie端口的端口标识与pcie端口的状态的对应关系中,pcie端口的状态还可以划分为历史状态和当前状态。则链路状态信息集合可以包括:所有pcie端口的端口标识与pcie端口的历史状态以及当前状态的对应关系。
102.rc存储有链路状态信息集合时,记录检测得到的至少一个pcie设备中每个pcie设备对应pcie链路的链路状态的过程可以包括:
103.将链路状态信息集合中各个pcie端口的历史状态,更新为链路状态信息集合中各个pcie端口对应的当前状态;将链路状态信息集合中各个pcie端口的当前状态,更新为对应pcie端口的dlcmsm的当前状态。
104.在本发明的一种可选实施例中,rc在执行步骤304进行pcie扫描后,记录检测得到的至少一个pcie设备中每个pcie设备对应pcie链路的链路状态的过程可以替换为:基于目标pcie端口的dlcmsm的当前状态和目标pcie端口的端口标识,更新链路状态信息集合中目标pcie端口的端口标识对应的状态。更新后的链路状态信息集合中目标pcie端口的端口标识对应的状态为目标pcie端口的dlcmsm的当前状态。这样仅在链路状态信息集合中更新目标pcie端口对应的状态,相较于更新在链路状态信息集合中每个pcie端口对应的状态,节省的设备开销,提高了更新速率,进而提高了所述方法的性能。
105.步骤306、结束操作。
106.rc结束操作,等待下个周期执行上述步骤301。
107.综上所述,本发明实施例提供的一种liunx系统下的pcie设备扫描方法,通过检测至少一个pcie设备中每个pcie设备对应pcie链路的链路状态,以在任一pcie设备对应pcie链路的链路状态由第一状态转为第二状态时,确定当前pcie数据传输系统中存在添加的pcie设备,对pcie数据传输系统进行pcie扫描。这样实现了自动进行pcie扫描操作,避免了人工干预触发pcie扫描,提高了pcie扫描的效率。同时自动进行pcie扫描操作,实现了自动为添加的pcie设备(例如,新就绪的pcie设备或者故障恢复后的pcie设备)分配系统资源,
使得可以自动维护pcie数据传输系统中各个pcie设备的正常通信,有利于系统设备的维护,提升了系统的操作维护能力。
108.请参考图7,其示出了本发明实施例提供的再一种liunx系统下的pcie设备扫描方法的流程图。该方法可以应用于图1或图2所示的pcie数据传输系统中的rc。且该方法中以pcie链路的链路状态为pcie端口的数据链路层状态为例进行说明。如图7所示,该方法包括:
109.步骤701、判断pcie数据扫描系统当前是否完成的pcie扫描。当确定pcie数据扫描系统当前完成pcie扫描时,执行步骤702;当确定pcie数据扫描系统当前未完成pcie扫描时,结束本次检测操作。
110.该步骤701的解释可以参考上述步骤301的解释,本发明实施例对此不做赘述。
111.步骤702、判断是否为pcie扫描后的首次检测。当为首次检测时,执行步骤703和步骤704;当为非首次检测时,执行步骤704。
112.判断是否为pcie扫描后的首次检测至少一个pcie设备中每个pcie设备对应pcie链路的链路状态。当为首次检测至少一个pcie设备中每个pcie设备对应pcie链路的链路状态时,执行步骤703;当为非首次检测至少一个pcie设备中每个pcie设备对应pcie链路的链路状态时,执行步骤704。该步骤702的解释可以参考上述步骤401的解释,本发明实施例对此不做赘述。
113.步骤703、记录各pcie端口扫描配置信息以及数据链路层状态。执行步骤704。
114.该步骤703的解释可以参考上述步骤402的解释,本发明实施例对此不做赘述。
115.步骤704、依次检测pcie数据传输系统中各个pcie端口的数据链路层状态。
116.该步骤704的解释可以参考上述步骤302的解释,本发明实施例对此不做赘述。
117.步骤705、判断pcie数据传输系统中任一pcie端口的当前状态是否由非dl_active状态转为dl_active状态。当任一pcie端口的当前状态由非dl_active状态转为dl_active状态时,执行步骤706;当任一pcie端口的当前状态不是由非dl_active状态转为dl_active状态时,执行步骤710。
118.该步骤705的解释可以参考上述步骤303的解释,本发明实施例对此不做赘述。
119.步骤706、设置pcie扫描完成标记。
120.将pcie扫描完成标记(pcie_device_scan_flag)更新为第二数值,以表示当前pcie数据传输系统未完成pcie扫描。该pcie扫描完成标记的解释可以参考上述步骤301中pcie扫描完成标记的解释。
121.步骤707、判断目标pcie端口是否为故障恢复端口。当目标pcie端口为故障恢复端口时,执行步骤708;当目标pcie端口不是故障恢复端口时,执行步骤709。
122.目标pcie端口为当前状态由非dl_active状态转为dl_active状态的端口。该步骤707的解释可以参考上述步骤601的解释,本发明实施例对此不做赘述。
123.步骤708、重新对pcie数据传输系统进行pcie扫描。执行步骤710。
124.该步骤708的解释可以参考上述步骤602的解释,本发明实施例对此不做赘述。
125.步骤709、释放pcie数据传输系统内所有pcie设备分配的系统资源,重新对pcie数据传输系统进行pcie扫描。
126.释放pcie数据传输系统内所有pcie设备分配的系统资源,也即是释放为至少一个
pcie设备中每个pcie设备分配的系统资源。该步骤709的解释可以参考上述步骤603的解释,本发明实施例对此不做赘述。
127.步骤710、记录当前pcie端口的数据链路层状态。
128.当前pcie端口数据链路层状态为步骤704检测到的pcie端口的数据链路层状态。
129.综上所述,本发明实施例提供的一种liunx系统下的pcie设备扫描方法,通过检测至少一个pcie设备中每个pcie设备对应pcie链路的链路状态,以在任一pcie设备对应pcie链路的链路状态由第一状态转为第二状态时,确定当前pcie数据传输系统中存在添加的pcie设备,对pcie数据传输系统进行pcie扫描。这样实现了自动进行pcie扫描操作,避免了人工干预触发pcie扫描,提高了pcie扫描的效率。同时自动进行pcie扫描操作,实现了自动为添加的pcie设备(例如,新就绪的pcie设备或者故障恢复后的pcie设备)分配系统资源,使得可以自动维护pcie数据传输系统中各个pcie设备的正常通信,有利于系统设备的维护,提升了系统的操作维护能力。
130.需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
131.装置实施例
132.请参考图8,示出了本发明实施例提供的一种liunx系统下的pcie设备扫描装置,应用于pcie数据传输系统中的rc,pcie数据传输系统还包括至少一个pcie设备。如图8所示,该装置包括:
133.检测模块801,用于检测至少一个pcie设备中每个pcie设备对应pcie链路的链路状态,pcie设备对应pcie链路为以pcie设备的上游pcie端口为端点的链路,链路状态包括第一状态和第二状态,在pcie链路处于第一状态时,pcie链路无法传输数据,在pcie链路处于第二状态时,pcie链路正常传输数据,pcie设备包括节点设备ep或者,pcie设备包括交换器和ep。
134.扫描模块802,用于当任一pcie设备对应pcie链路的链路状态由第一状态转为第二状态时,对pcie数据传输系统进行pcie扫描。
135.可选的,pcie链路的链路状态包括pcie链路中至少一个端点对应pcie端口的状态,pcie端口的状态包括pcie端口的链路状态和/或pcie端口的数据链路层状态。
136.可选的,在pcie链路的链路状态包括pcie端口的数据链路层状态时,检测模块801,还用于:检测数据传输系统中所有pcie端口的数据链路控制与管理状态机的当前状态,数据链路控制与管理状态机的状态包括数据链路有效状态。
137.扫描模块802,还用于:当任一pcie端口的当前状态由非数据链路有效状态转为数据链路有效状态时,对pcie数据传输系统进行pcie扫描。
138.可选的,扫描模块802,还用于:
139.当目标pcie端口是故障恢复端口时,对pcie数据传输系统进行pcie扫描,为目标pcie端口所在pcie设备分配系统资源,目标pcie端口为当前状态由非数据链路有效状态转为数据链路有效状态的端口;
140.当目标pcie端口不是故障恢复端口时,释放为至少一个pcie设备中每个pcie设备分配的系统资源,对pcie数据传输系统进行pcie扫描,为扫描得到的每个pcie设备分配系统资源。
141.可选的,该装置还包括:
142.第一获取模块,用于获取目标pcie端口的端口标识和链路状态信息集合,链路状态信息集合包括pcie数据传输系统中每个pcie端口的端口标识与分配资源信息的对应关系,分配资源信息包括分配标识或者未分配标识,分配标识用于表示对pcie端口分配过系统资源,未分配标识用于表示未对pcie端口分配过系统资源。
143.第一确定模块,用于当目标pcie端口的分配资源信息为分配标识时,确定目标pcie端口是故障恢复端口;当目标pcie端口的分配资源信息为未分配标识时,确定目标pcie端口不是故障恢复端口。
144.可选的,链路状态信息集合还包括:pcie数据传输系统中每个pcie端口的端口标识与pcie端口的状态的对应关系,该装置还包括:
145.第一更新模块,用于基于目标pcie端口的当前状态和目标pcie端口的端口标识,更新链路状态信息集合中目标pcie端口的端口标识对应的状态。
146.第二获取模块,用于获取链路状态信息中所有pcie端口的状态。
147.第二确定模块,用于当检测到的任一pcie端口的当前状态为数据链路有效状态,且链路状态信息中对应pcie端口的状态为非数据链路有效状态,确定任一pcie端口的当前状态由非数据链路有效状态转为数据链路有效状态。
148.第二更新模块,还用于当检测到的任一pcie端口的当前状态不是由非数据链路有效状态转为数据链路有效状态时,基于所有pcie端口的当前状态,更新链路状态信息集合中对应pcie端口的状态。
149.可选的,检测模块801,还用于:确定pcie数据传输系统当前完成pcie扫描;检测至少一个pcie设备中每个pcie设备对应pcie链路的链路状态。
150.可选的,检测模块801,还用于:
151.获取pcie扫描完成标记,pcie扫描完成标记具有第一数值或第二数值,第一数值表示pcie数据传输系统当前未完成pcie扫描,第二数据表示pcie数据传输系统当前完成pcie扫描;当pcie扫描完成标记为第二数值时,确定pcie数据传输系统当前完成pcie扫描。
152.可选的,该装置还包括:
153.第三更新模块,用于当任一pcie设备对应pcie链路的链路状态由第一状态转为第二状态时,将pcie扫描完成标记更新为第二数值;当pcie扫描结束后,将pcie扫描完成标记更新为第一数值。
154.综上所述,本发明实施例提供的一种liunx系统下的pcie设备扫描装置,通过rc中检测模块检测至少一个pcie设备中每个pcie设备对应pcie链路的链路状态,以使得扫描模块在任一pcie设备对应pcie链路的链路状态由第一状态转为第二状态时,确定当前pcie数据传输系统中存在添加的pcie设备,对pcie数据传输系统进行pcie扫描。这样实现了自动进行pcie扫描操作,避免了人工干预触发pcie扫描,提高了pcie扫描的效率。同时自动进行pcie扫描操作,实现了自动为添加的pcie设备(例如,新就绪的pcie设备或者故障恢复后的pcie设备)分配系统资源,使得可以自动维护pcie数据传输系统中各个pcie设备的正常通
信,有利于系统设备的维护,提升了系统的操作维护能力。
155.对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
156.本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
157.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
158.本发明的实施例还提供了一种电子设备,参见图9,包括:处理器901、存储器902以及存储在所述存储器902上并可在所述处理器901上运行的计算机程序9021,所述处理器901执行所述程序时实现前述实施例的liunx系统下的pcie设备扫描方法。
159.本公开的实施例还提供了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述实施例的liunx系统下的pcie设备扫描方法。
160.对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
161.在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本公开的实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本公开的实施例的内容,并且上面对特定语言所做的描述是为了披露本公开的实施例的最佳实施方式。
162.在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本公开的实施例的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
163.类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本公开的实施例的示例性实施例的描述中,本公开的实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本公开的实施例要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本公开的实施例的单独实施例。
164.本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
165.本公开的实施例的各个部件实施例可以以硬件实现,或者以在一个或者多个处理
器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本公开的实施例的排序设备中的一些或者全部部件的一些或者全部功能。本公开的实施例还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序。这样的实现本公开的实施例的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
166.应该注意的是上述实施例对本公开的实施例进行说明而不是对本公开的实施例进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本公开的实施例可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
167.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
168.以上所述仅为本公开的实施例的较佳实施例而已,并不用以限制本公开的实施例,凡在本公开的实施例的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本公开的实施例的保护范围之内。
169.以上所述,仅为本公开的实施例的具体实施方式,但本公开的实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开的实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的实施例的保护范围之内。因此,本公开的实施例的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献