CN114817105B - 设备枚举的方法、装置、计算机设备以及存储介质 - Google Patents
设备枚举的方法、装置、计算机设备以及存储介质 Download PDFInfo
- Publication number
- CN114817105B CN114817105B CN202210425065.5A CN202210425065A CN114817105B CN 114817105 B CN114817105 B CN 114817105B CN 202210425065 A CN202210425065 A CN 202210425065A CN 114817105 B CN114817105 B CN 114817105B
- Authority
- CN
- China
- Prior art keywords
- pcie
- preset
- programmable logic
- program
- logic device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种设备枚举的方法、装置、计算机设备以及存储介质。其中方法包括:响应于进入BIOS阶段,扫描PCIe设备中的可编程逻辑器件,所述PCIe设备包括所述可编程逻辑器件和第一处理器;响应于所述可编程逻辑器件存在需要加载的Option ROM,加载所述Option ROM中的预设程序到所述BIOS中执行,所述预设程序用于读取所述可编程逻辑器件提供的状态寄存器的值;响应于检测到所述状态寄存器的值达到第一预设标志位,执行重启程序,对所述PCIe设备进行重新枚举,所述第一预设标志位表示所述PCIe设备启动完成。实施本申请实施例,可以提高PCIe设备枚举的成功率。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种设备枚举的方法、装置、计算机设备以及存储介质。
背景技术
随着数据中心的高速发展,通信能力和计算能力成为数据中心基础设施的相辅相成的两个重要发展方向。若数据中心仅关注计算能力的提升,通信基础设施的提升跟不上,那么数据中心的整体系统性能依然受限,无法发挥出真正的潜力。数据处理器(dataprocessing unit,DPU)的提出背景就是应对这些数据量和复杂性的增长。为了满足网络对大数据传输的需求,DPU设备需要用到高速串行计算机扩展总线标准(peripheralcomponent interconnect express,PCIe)接口做数据传输,而硬件特性决定了其高速通信接口的特性。但是DPU系统的复杂度也是高于传统的PCIe设备,使得DPU的启动时间可能无法满足PCIe主机枚举的时序要求,因此存在枚举失败的风险。
发明内容
本申请实施例提供了一种设备枚举的方法、装置、计算机设备以及存储介质,可以提高PCIe设备枚举的成功率。
第一方面,本申请实施例提供了一种设备枚举的方法,其中:
响应于进入BIOS阶段,扫描PCIe设备中的可编程逻辑器件,所述PCIe设备包括所述可编程逻辑器件;
响应于所述可编程逻辑器件存在需要加载的Option ROM,加载所述Option ROM中的预设程序到所述BIOS中执行,所述预设程序用于读取所述可编程逻辑器件提供的状态寄存器的值;
响应于检测到所述状态寄存器的值达到第一预设标志位,执行重启程序,对所述PCIe设备进行重新枚举,所述第一预设标志位表示所述PCIe设备启动完成。
第二方面,本申请实施例提供了一种设备枚举的装置,其中:
扫描单元,用于响应于进入BIOS阶段,扫描PCIe设备中的可编程逻辑器件,所述PCIe设备包括所述可编程逻辑器件;
加载单元,用于响应于所述可编程逻辑器件存在需要加载的Option ROM,加载所述Option ROM中的预设程序到所述BIOS中执行,所述预设程序用于读取所述可编程逻辑器件提供的状态寄存器的值;
枚举单元,用于响应于检测到所述状态寄存器的值达到第一预设标志位,执行重启程序,对所述PCIe设备进行重新枚举,所述第一预设标志位表示所述PCIe设备启动完成。
第三方面,本申请实施例提供了一种计算机设备,包括处理器、存储器和通信接口,其中,所述存储器存储有计算机程序,所述计算机程序被配置由所述处理器执行,所述计算机程序包括用于如本申请实施例第一方面中所描述的部分或全部步骤的指令。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序使得计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。
实施本申请实施例,将具有如下有益效果:
采用上述的设备枚举的方法、装置、计算机设备以及存储介质,PCIe主机在进入BIOS阶段之后,扫描PCIe设备中的可编程逻辑器件,若检测到可编程逻辑器件存在需要加载的Option ROM,则加载Option ROM中的预设程序到BIOS中执行,该预设程序用于读取可编程逻辑器件提供的状态寄存器的值,以判断PCIe设备是否启动完成。当检测到状态寄存器的值达到第一预设标志位时,表示PCIe设备启动完成,此时,PCIe主机执行重启程序,之后对PCIe设备进行重新枚举。可以看出,PCIe主机在枚举PCIe设备时,PCIe设备已经启动完成,使得PCIe设备的启动时间可以满足PCIe主机枚举的时序要求,因此,PCIe设备可以被PCIe主机成功枚举。可以理解的是,本申请实施例不需要人为干预,自动化程度较高;而且也不需要BMC系统、管控平台等外部工具的参与,可以减少依赖程度,可靠性也更高。此外,由于本申请实施例的控制程序放在设备中,因此不需要侵入修改PCIe主机BIOS程序,安全性较高,同时具有很好的兼容性和适应性,能够兼容和适配市面上大部分PCIe主机。同时,本申请实施例可以实现PCIe设备通过PCIe与BIOS协商,而不需要预估PCIe设备初始化时间,有助于提高枚举的可靠性和准确性,避免预估时间过长,导致系统启动时间增加,浪费资源;或者避免预估时间过短,导致部分设备无法被成功枚举。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以基于这些附图获得其他的附图。其中:
图1为本申请实施例提供的一种网络架构的结构示意图;
图2为本申请实施例提供的一种设备枚举的方法的流程示意图;
图3为本申请实施例提供的一种设备枚举的装置的结构示意图;
图4为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
还应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
为了便于理解,下文首先介绍本申请实施例涉及的几个基本的概念。
数据处理器(data processing unit,DPU),是最新发展起来的专用处理器的一个大类,是继中央处理器(central processing unit,CPU)、图像处理器(graphicsprocessing unit,GPU)之后,数据中心场景中的第三颗重要的算力芯片,为高带宽、低延迟、数据密集的计算场景提供计算引擎。DPU主要有以下三个特点,分别是卸载、加速、隔离。相应地,DPU的三个主要应用场景分别是网络、存储、安全。在卸载方面,DPU可以作为CPU的卸载引擎,释放CPU的算力到上层应用,例如DPU可以卸载数据中心网络服务(虚拟交换、虚拟路由等等)、数据中心存储服务、数据中心的安全服务(防火墙、加解密等等)等等。在加速方面,DPU将成为算法加速的沙盒,成为最灵活的加速器载体。DPU不完全是一颗固化的专用集成芯片(application specific integrated circuit,ASIC),在CXL(compute expresslink)等标准组织所倡导CPU、GPU与DPU等数据一致性访问协议的铺垫下,将更进一步扫清DPU编程障碍,结合现场可编程门阵列(field programmable gate array,FPGA)等可编程器件,可定制硬件将有更大的发挥空间,“软件硬件化”将成为常态,异构计算的潜能将因各种DPU的普及而彻底发挥出来。在隔离方面,DPU将成为新的数据网关,将安全隐私提升到一个新的高度。非对称加密算法SM2、哈希算法SM3和对称分组密码算法SM4等都可以通过将其固化在DPU中来实现。
高速串行计算机扩展总线标准(peripheral component interconnect express,PCIe),属于高速串行点对点双通道高带宽传输,所连接的设备分配独享通道带宽,不共享总线带宽。其定义了多个宽度的插槽和连接器:x1、x4、x8、x12、x16和x32,通常,低速外设(例如WiFi卡)使用单通道(x1)链路,而图形适配器更多地使用更快更宽的x16通道链路。
基本输入输出系统(basic input output system,BIOS),是一组固化到计算机内主板上一个只读存储器(read-only memory,ROM)芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序。
现场可编程门阵列(field programmable gate array,FPGA),是在可编程阵列逻辑(programmable logic array,PAL)等可编程器件的基础上进一步发展的产物,能够有效的解决原有的器件门电路数较少的问题。FPGA的基本结构包括可编程输入输出单元,可配置逻辑块,数字时钟管理模块,布线资源,内嵌专用硬核,底层内嵌功能单元等等。由于FPGA具有布线资源丰富,可重复编程和集成度高,投资较低的特点,在数字电路设计领域得到了广泛的应用。
Option ROM,也称为Expansion ROM,是PCIe设备上用于初始化PCIe设备和系统启动的程序,一般可以由PCIe主机BIOS调用并执行。
ping-pong机制,是一种数据交换机制。采用ping-pong机制可以不去等待接受模块(下级)处理结束,而是发送模块(上级)继续执行并将结果保存在ping路的缓存中,发送模块继续执行到一定时刻,接收模块处理完成将结果保存在pong路中。这样可以接收模块无需等待继续执行,发送模块也无需等待继续执行,转而将结果存储在ping路,从而提高了处理效率。
复杂可编程逻辑器件(complex programming logic device,CPLD),通过采用电可擦除可编程只读存储器(electrically EPROM,EEPROM)、快闪存储器和静态随机存取存储器(static RAM,SRAM)等编程技术,从而构成了高密度、高速度和低功耗的可编程逻辑器。CPLD是一种用户根据各自需要而自行构造逻辑功能的数字集成电路,其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,并通过下载电缆将代码传送到目标芯片中以实现设计的数字系统。
请参见图1,图1是本申请实施例提供的一种网络架构的结构示意图。如图1所示,该网络架构可以包括PCIe主机100和PCIe设备200。其中,PCIe设备可以包括可编程逻辑器件201和第一处理器202。可编程逻辑器件201可以是FPGA、系统级芯片(system on chip,SOC)或ASIC等,也可以是多核处理器等,或者还可以是其他可编程逻辑器件,本申请实施例对此不做限定。可编程逻辑器件201可以通过PCIe接口与PCIe主机100进行通信。可编程逻辑器件201支持Option ROM,当PCIe主机100进入BIOS阶段时,Option ROM可以由BIOS调用并执行。可编程逻辑器件201包括状态寄存器,状态寄存器可以用于记录第一处理器202或者其他PCIe设备是否启动完成的状态信息,或者也可以用于记录其他相关的状态信息。
可编程逻辑器件201可以通过第一接口与第一处理器202进行通信。第一处理器202可以包括嵌入式处理器(embedded central processing unit,ECPU)、微处理器(microcontroller unit,MCU)或者其他通用处理器等等。第一接口可以是PCIe接口、通用闪存接口(common flash interface,CFI)或串行外设接口(serial peripheralinterface,SPI)、外设组件互连标准(peripheral component interconnect,PCI)接口、局部总线(LocalBus)接口等等,本申请实施例对此不做限定。PCIe设备200也可以包括图1中未示出的存储器(例如Flash存储器),存储器可以用于存储需要运行的程序,存储器可以通过CFI接口与可编程逻辑器件201进行通信。此外,PCIe设备200还可以包括图1中未示出的PCIe交换器(Switch)、GPU、数字信号处理器(digital signal processing,DSP)、磁盘阵列(redundant arrays of independent disks,RAID)等等,本申请实施例对此不做限定。
随着数据中心的高速发展,通信能力和计算能力成为数据中心基础设施的相辅相成的两个重要发展方向。若数据中心仅关注计算能力的提升,通信基础设施的提升跟不上,那么数据中心的整体系统性能依然受限,无法发挥出真正的潜力。DPU的提出背景就是应对这些数据量和复杂性的增长。为了满足网络对大数据传输的需求,DPU设备需要用到PCIe接口做数据传输,而硬件特性决定了其高速通信接口的特性。但是DPU系统的复杂度也是高于传统的PCIe设备,使得DPU的启动时间可能无法满足PCIe主机枚举的时序要求。
目前DPU会在嵌入式处理器(embedded central processing unit,ECPU)端模拟出PCIe设备,但是PCIe主机进入BIOS阶段对PCIe设备进行枚举时,要求PCIe设备端已启动正确响应复位,一旦PCIe设备未启动完成,便无法再完成枚举。因此,存在枚举失败的风险。
现有两种方案来解决上述存在的问题。一是延迟PCIe主机进入BIOS阶段时枚举PCIe设备的时机。然而这种方式需要定制BIOS或依赖特定服务器厂商,很难兼容已有的服务器。此外,这种方式PCIe主机和PCIe设备之间无通信协商机制,因此提供的延迟时间是经验值,可靠性和效率不高。二是通过人工或者基板管理控制器(baseboard managercontroller,BMC)热重启机器。这种方式依赖外部设备和连线,并且需要人为干预,极大的增加了人力成本,且效率低。
为了解决上述问题,本申请实施例提供了一种设备枚举的方法,通过实施该方法,可以提高PCIe设备枚举的成功率。请参照图2,图2是本申请实施例提供的一种设备枚举的方法的流程示意图,该方法适用于任意设备的PCIe枚举的场景,可以适用于传统设备的PCIe枚举的场景,尤其适用于DPU复杂设备的PCIe枚举场景。可以理解地,该方法可以用于图1所示的网络架构中,具体可以由图1所示的PCIe主机100执行,该方法可以包括以下步骤S201-S203,其中:
步骤S201:响应于进入BIOS阶段,扫描PCIe设备中的可编程逻辑器件,所述PCIe设备包括所述可编程逻辑器件。
在本申请实施例中,PCIe设备可以包括可编程逻辑器件和第一处理器,还可以包括存储器、PCIeSwitch、GPU、DSP、RAID等等,本申请实施例对此不做限定。可编程逻辑器件可以是FPGA、SOC或ASIC等,也可以是多核处理器等,或者还可以是其他可编程逻辑器件,本申请实施例对此不做限定。第一处理器可以包括ECPU、MCU或者其他通用处理器等等。其中,可编程逻辑器件可以通过PCIe接口与PCIe主机进行通信。可编程逻辑器件可以通过第一接口与第一处理器进行通信。第一接口可以是PCIe接口、CFI接口或SPI接口等等,本申请实施例对此不做限定。
PCIe主机在开机上电,进入BIOS阶段后,对PCIe设备中的可编程逻辑器件进行枚举。可以理解的是,PCIe主机在开机上电,进入BIOS阶段时,PCIe设备中的可编程逻辑器件已经启动正确响应复位。因此,可编程逻辑器件的启动时间可以满足PCIe主机枚举的时序要求。也就算是说,PCIe主机在进入BIOS阶段,可以正确扫描到PCIe设备中的可编程逻辑器件,即可编程逻辑器件可以正确地被PCIe主机识别。
步骤S202:响应于所述可编程逻辑器件存在需要加载的Option ROM,加载所述Option ROM中的预设程序到所述BIOS中执行,所述预设程序用于读取所述可编程逻辑器件提供的状态寄存器的值。
在本申请实施例中,可编程逻辑器件可以支持Option ROM。当PCIe主机进入BIOS阶段时,若可编程逻辑器件存在需要加载的Option ROM,则可以加载Option ROM中的预设程序到BIOS中执行。该预设程序可以用于读取可编程逻辑器件提供的状态寄存器的值,状态寄存器可以用于记录PCIe设备(例如第一处理器等)是否启动完成的状态信息。PCIe主机根据状态寄存器的值来判断PCIe设备是否已经启动完成。因此,可以通过可编程逻辑器件提供的状态寄存器,实现PCIe设备中的设备(例如第一处理器)与BIOS通信,而不需要侵入修改PCIe主机BIOS程序,安全性较高,同时具有很好的兼容性和适应性,能够兼容和适配市面上大部分PCIe主机。
在一种可能的实施方式中,在步骤S202之前,还可以包括以下步骤:
对用户的身份信息进行验证;响应于验证通过,授予所述用户加载所述OptionROM的权限。
在本申请实施例中,用户可以是PCIe主机的使用者。通常情况下,用户可以修改Option ROM配置。然而如果Option ROM被恶意修改可能会引发网络瘫痪。为了提高安全性,在进入PCIe主机加载Option ROM中的预设程序到BIOS中执行之前,可以对用户的进行身份信息进行验证,若身份信息验证一致则通过,则授予用户加载Option ROM中的预设程序到BIOS中执行的权限;若验证不通过,则无法加载Option ROM中的预设程序到BIOS中执行。
在一种可能的实施方式中,可以通过验证用户输入的密钥与预设密钥是否一致的方式以验证用户的身份信息,若一致,则用户的身份信息验证通过;否则,验证不通过。具体地,可以通过添加时间戳的哈希加密算法生成预设密钥,例如通过获取当前时间,并基于当前时间生成对应的预设密钥。在检测到用户的访问请求时,向用户展示输入密钥的界面,并判断输入密钥的界面接收到的密钥与预设密钥是否一致,从而确定是否授予用户加载Option ROM的权限。
可以看出,在加载Option ROM前对用户身份信息进行验证,若通过则授予用户加载Option ROM的权限,对Option ROM加入保护,从而可以提高安全性。
步骤S203:响应于检测到所述状态寄存器的值达到第一预设标志位,执行重启程序,对所述PCIe设备进行重新枚举,所述第一预设标志位表示所述PCIe设备启动完成。
在本申请实施例中,PCIe主机加载Option ROM中的预设程序到BIOS中执行阶段,该预设程序一直在轮询读取状态寄存器的值,以等待PCIe设备初始化完成。当PCIe设备全部启动完成,会设置例如regs的第一预设标志位,表示PCIe设备全部启动完成。BIOS在检测到状态寄存器的值达到第一预设标志位之后,会触发重启程序,即PCIe主机重新启动,以对PCIe设备进行重新枚举,延缓枚举PCIe设备的时间,从而使得PCIe主机不会错过PCIe设备的枚举时机。可以看出,PCIe主机在枚举PCIe设备时,PCIe设备已经启动完成,使得PCIe设备的启动时间可以满足PCIe主机枚举的时序要求,因此,PCIe设备可以被PCIe主机成功枚举。这种通过使用Option ROM以及结合可编程逻辑器件状态寄存器控制PCIe主机启动时序的方式,可以确保PCIe主机后续启动时BIOS能正确枚举到相关的PCIe设备,因此十分适用于现有的DPU复杂设备的PCIe枚举的场景,对于未来日益复杂的系统也同样适用。本申请实施例不需要人为干预,自动化程度较高;而且也不需要BMC系统、管控平台等外部工具的参与,可以减少依赖程度,可靠性也更高。此外,本申请实施例可以实现PCIe设备通过PCIe与BIOS协商,而不需要预估PCIe设备初始化时间,有助于提高枚举的可靠性和准确性,避免预估时间过长,导致系统启动时间增加,浪费资源;或者避免预估时间过短,导致部分设备无法被成功枚举。
在一种可能的实施方式中,还可以包括以下步骤:
响应于检测到所述状态寄存器的值由所述第一预设标志位变成第二预设标志位,停止执行所述重启程序。
在本申请实施例中,在PCIe设备全部启动完成之后,状态寄存器的值可以从初始值(例如“00”等)变化为第一预设标志位(例如“01”等),BIOS在检测到状态寄存器的值达到第一预设标志位之后,会触发一次重启程序,使得PCIe主机重新启动,以对PCIe设备进行重新枚举,从而正确识别PCIe设备。为了避免PCIe主机可能执行多次重启,导致其他任务无法正常执行,在检测到状态寄存器的值达到第一预设标志位,也就是说,在检测到PCIe设备全部启动完成,可以基于ping-pong机制,将状态寄存器中的值修改成第二预设标志位。例如,将状态寄存器中的值从第一预设标志位(例如“01”等)修改为第二预设标志位(例如“11”等)。PCIe主机BOIS在检测到状态寄存器的值由第一预设标志位变成第二预设标志位时,则停止执行重启程序,防止PCIe主机多次重启。
可以看出,PCIe主机在一次重启完成之后,PCIe主机加载Option ROM中的预设程序到BIOS中执行阶段,此时,状态寄存器的值已经修改为第二预设标志位,BIOS在读取到的状态寄存器的已经从第一预设标志位变成第二预设标志位,因此将不会触发重启程序,从而可以避免PCIe主机多次重启,导致其他任务无法正常执行。
在一种可能的实施方式中,在步骤S202之后,还可以包括以下步骤:响应于检测到所述PCIe设备启动失败或者故障,结束所述预设程序。
在本申请实施例中,PCIe设备启动失败的原因可能是有多种,可能是PCIe设备出现故障。故障类型可以是可校正错误(correctable error,CE)、非致命性不可校正错误(non-fatal uncorrectable error,NFE)或者致命性不可校正错误(fatal uncorrectableerror,FE)等等。可以理解地,PCIe主机加载Option ROM中的预设程序到BIOS中执行阶段,该预设程序一直在轮询读取状态寄存器的值,以等待PCIe设备初始化完成。若PCIe设备启动失败或者故障,则无法给PCIe主机反馈第一预设标志位。若PCIe主机无法正常读取到第一预设标志位,PCIe主机BIOS会一直执行预设程序,导致PCIe主机长时间等待,从而浪费资源,降低枚举的效率。在本申请实施例中,若PCIe主机在检测到PCIe设备启动失败或者故障时,BIOS立即结束预设程序,则可以避免在PCIe设备启动失败或者故障的情况下,PCIe主机长时间等待,而导致资源浪费。
在一种可能的实施方式中,还可以通过与PCIe设备连接的CPLD中的看门狗模块确定PCIe设备是否启动失败或者故障。其中,PCIe设备可以与CPLD进行通信,CPLD可以内置有看门狗模块,用于监测PCIe设备的运行情况。PCIe设备在能正常启动且未出现故障时,会在预设时间内(例如1秒或者0.5秒等)向看门狗模块的定时器发送反馈信号,对定时器进行清零,以此实现喂狗功能。若PCIe设备未在预设时间内对定时器进行喂狗,CPLD可以向PCIe设备中的可编程逻辑器件反馈预设报警信号,以提示PCIe设备未在预设时间内进行响应。可编程逻辑器件在接收到该预设报警信号时,可以将状态寄存器的值修改为第三预设标志位(例如“10”等),以表示PCIe设备启动失败或者故障。PCIe主机加载Option ROM中的预设程序到BIOS中执行阶段,若检测到状态寄存器的值达到第三预设标志位,则结束Option ROM中的预设程序,以节省资源。可以看出,通过CPLD中的看门狗模块确定PCIe设备是否出现故障或者启动失败,可以提高准确性。
或者,在一种可能的实施方式中,CPLD看门狗模块的定时器的输出端可以连接到PCIe设备的复位端。在PCIe设备未在预设时间内对看门狗模块的定时器进行喂狗,定时器在超时溢出之后,可以产生复位信号,对PCIe设备重新复位,以解决PCIe设备重启失败和出现故障的问题。若在PCIe设备的复位次数在预设次数内,可以在预设时间内进行喂狗,则说明对PCIe设备进行重新复位解决了PCIe设备重启失败以及故障的问题,则CPLD可以不向PCIe设备中的可编程逻辑器件反馈预设报警信号,使得状态寄存器的值不变化为上述提的第三预设标志位,以使PCIe主机BIOS继续执行Option ROM中的预设程序。若在PCIe设备的复位次数达到预设次数后,依然未在预设时间内进行喂狗,则说明对PCIe设备进行重新复位无法解决PCIe设备重启失败以及故障的问题,则CPLD可以向PCIe设备中的可编程逻辑器件反馈预设报警信号,以提示PCIe设备未在预设时间内进行响应。可编程逻辑器件在接收到该预设报警信号时,可以将状态寄存器的值修改为上述提及第三预设标志位,以表示PCIe设备启动失败或者故障。PCIe主机加载Option ROM中的预设程序到BIOS中执行阶段,若检测到状态寄存器的值达到第三预设标志位,则结束Option ROM中的预设程序,以节省资源。
在一种可能的实施方式中,在PCIe主机在检测到PCIe设备启动失败或者故障之后,还可以生成例如“警告:PCIe设备启动失败!”等提示消息,以提醒用户,便于用户快速对其进行处理,以提高用户的体验度。
在图2所示的方法中,PCIe主机在进入BIOS阶段之后,扫描PCIe设备中的可编程逻辑器件,若检测到可编程逻辑器件存在需要加载的Option ROM,则加载Option ROM中的预设程序到BIOS中执行,该预设程序用于读取可编程逻辑器件提供的状态寄存器的值,以判断PCIe设备是否启动完成。当检测到状态寄存器的值达到第一预设标志位时,表示PCIe设备启动完成,此时,PCIe主机执行重启程序,之后对PCIe设备进行重新枚举。可以看出,PCIe主机在枚举PCIe设备时,PCIe设备已经启动完成,使得PCIe设备的启动时间可以满足PCIe主机枚举的时序要求,因此,PCIe设备可以被PCIe主机成功枚举。可以理解的是,本申请实施例不需要人为干预,自动化程度较高;而且也不需要BMC系统、管控平台等外部工具的参与,可以减少依赖程度,可靠性也更高。此外,由于本申请实施例的控制程序放在设备中,因此不需要侵入修改PCIe主机BIOS程序,安全性较高,同时具有很好的兼容性和适应性,能够兼容和适配市面上大部分PCIe主机。同时,本申请实施例可以实现PCIe设备通过PCIe与BIOS协商,而不需要预估PCIe设备初始化时间,有助于提高枚举的可靠性和准确性,避免预估时间过长,导致系统启动时间增加,浪费资源;或者避免预估时间过短,导致部分设备无法被成功枚举。
上述详细阐述了本申请实施例的方法,下面提供了本申请实施例的装置。
请参照图3,图3是本申请实施例提供的一种设备枚举的装置的结构示意图。该装置可以应用于PCIe主机。如图3所示,该设备枚举的装置300包括扫描单元301、加载单元302和枚举单元303,各个单元的详细描述如下:
扫描单元,用于响应于进入BIOS阶段,扫描PCIe设备中的可编程逻辑器件,所述PCIe设备包括所述可编程逻辑器件;
加载单元,用于响应于所述可编程逻辑器件存在需要加载的Option ROM,加载所述Option ROM中的预设程序到所述BIOS中执行,所述预设程序用于读取所述可编程逻辑器件提供的状态寄存器的值;
枚举单元,用于响应于检测到所述状态寄存器的值达到第一预设标志位,执行重启程序,对所述PCIe设备进行重新枚举,所述第一预设标志位表示所述PCIe设备启动完成。
在一种可能的实施方式中,设备枚举的装置300还可以包括第一结束单元304,第一结束单元304用于响应于检测到所述状态寄存器的值由所述第一预设标志位变成第二预设标志位,停止执行所述重启程序。
在一种可能的实施方式中,设备枚举的装置300还可以包括第二结束单元305,第二结束单元305用于响应于检测到所述PCIe设备启动失败或者故障,结束所述预设程序。
在一种可能的实施方式中,设备枚举的装置300还可以包括验证单元306,验证单元306用于对用户的身份信息进行验证;响应于验证通过,授予所述用户加载所述OptionROM的权限。
在一种可能的实施方式中,所述可编程逻辑器件包括FPGA、SOC或ASIC。
需要说明的是,各个单元的实现还可以对应参照图2所示的方法实施例的相应描述。
请参照图4,图4是本申请实施例提供的一种计算机设备的结构示意图。如图4所示,该计算机设备400包括处理器401、存储器402和通信接口403,其中存储器402存储有计算机程序404。处理器401、存储器402、通信接口403以及计算机程序404之间可以通过总线405连接。
当计算机设备为PCIe主机时,上述计算机程序404用于执行以下步骤的指令:
响应于进入BIOS阶段,扫描PCIe设备中的可编程逻辑器件,所述PCIe设备包括所述可编程逻辑器件;
响应于所述可编程逻辑器件存在需要加载的Option ROM,加载所述Option ROM中的预设程序到所述BIOS中执行,所述预设程序用于读取所述可编程逻辑器件提供的状态寄存器的值;
响应于检测到所述状态寄存器的值达到第一预设标志位,执行重启程序,对所述PCIe设备进行重新枚举,所述第一预设标志位表示所述PCIe设备启动完成。
在一种可能的实施方式中,所述计算机程序404还用于执行以下步骤的指令:
响应于检测到所述状态寄存器的值由所述第一预设标志位变成第二预设标志位,停止执行所述重启程序。
在一种可能的实施方式中,在所述响应于所述可编程逻辑器件存在需要加载的Option ROM,加载所述Option ROM中的预设程序到所述BIOS中运行之后,所述计算机程序404还用于执行以下步骤的指令:
响应于检测到所述PCIe设备启动失败或者故障,结束所述预设程序。
在一种可能的实施方式中,在所述加载所述Option ROM中的预设程序到所述BIOS中运行之前,所述计算机程序404还用于执行以下步骤的指令:
对用户的身份信息进行验证;
响应于验证通过,授予所述用户加载所述Option ROM的权限。
在一种可能的实施方式中,所述可编程逻辑器件包括FPGA、SOC或ASIC。
本领域技术人员可以理解,为了便于说明,图4中仅示出了一个存储器和处理器。在实际的终端或服务器中,可以存在多个处理器和存储器。存储器402也可以称为存储介质或者存储设备等,本申请实施例对此不做限定。
应理解,在本申请实施例中,处理器401可以是中央处理单元(centralprocessing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
还应理解,本申请实施例中提及的存储器402可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double datarate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器synchronize link DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
需要说明的是,当处理器401为通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件时,存储器(存储模块)集成在处理器中。
应注意,本文描述的存储器402旨在包括但不限于这些和任意其它适合类型的存储器。
该总线405除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各种说明性逻辑块(illustrative logical block,ILB)和步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现如上述方法实施例中记载的任何一种设备枚举的方法的部分或全部步骤。
本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如上述方法实施例中记载的任何一种设备枚举的方法的部分或全部步骤。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种设备枚举的方法,其特征在于,包括:
响应于进入BIOS阶段,扫描PCIe设备中的可编程逻辑器件,所述PCIe设备包括所述可编程逻辑器件;
响应于所述可编程逻辑器件存在需要加载的Option ROM,加载所述Option ROM中的预设程序到所述BIOS中执行,所述预设程序用于读取所述可编程逻辑器件提供的状态寄存器的值;
响应于检测到所述状态寄存器的值未达到第一预设标志位,执行所述预设程序,以使所述预设程序轮询读取所述状态寄存器的值,响应于检测到所述状态寄存器的值达到所述第一预设标志位,执行重启程序,对所述PCIe设备进行重新枚举,所述第一预设标志位表示所述PCIe设备启动完成。
2.根据权利要求1所述的方法,其特征在于,还包括:
响应于检测到所述状态寄存器的值由所述第一预设标志位变成第二预设标志位,停止执行所述重启程序。
3.根据权利要求1所述的方法,其特征在于,在所述响应于所述可编程逻辑器件存在需要加载的Option ROM,加载所述Option ROM中的预设程序到所述BIOS中运行之后,还包括:
响应于检测到所述PCIe设备启动失败或者故障,结束所述预设程序。
4.根据权利要求1所述的方法,其特征在于,在所述加载所述Option ROM中的预设程序到所述BIOS中运行之前,还包括:
对用户的身份信息进行验证;
响应于验证通过,授予所述用户加载所述Option ROM的权限。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述可编程逻辑器件包括FPGA、SOC或ASIC。
6.一种设备枚举的装置,其特征在于,包括:
扫描单元,用于响应于进入BIOS阶段,扫描PCIe设备中的可编程逻辑器件,所述PCIe设备包括所述可编程逻辑器件;
加载单元,用于响应于所述可编程逻辑器件存在需要加载的Option ROM,加载所述Option ROM中的预设程序到所述BIOS中执行,所述预设程序用于读取所述可编程逻辑器件提供的状态寄存器的值;
枚举单元,用于响应于检测到所述状态寄存器的值未达到第一预设标志位,执行所述预设程序,以使所述预设程序轮询读取所述状态寄存器的值,响应于检测到所述状态寄存器的值达到所述第一预设标志位,执行重启程序,对所述PCIe设备进行重新枚举,所述第一预设标志位表示所述PCIe设备启动完成。
7.根据权利要求6所述的装置,其特征在于,还包括:
第一结束单元,用于响应于检测到所述状态寄存器的值由所述第一预设标志位变成第二预设标志位,停止执行所述重启程序。
8.根据权利要求6所述的装置,其特征在于,还包括:
第二结束单元,用于响应于检测到所述PCIe设备启动失败或者故障,结束所述预设程序。
9.一种计算机设备,其特征在于,包括处理器、存储器和通信接口,其中,所述存储器存储有计算机程序,所述计算机程序被配置由所述处理器执行,所述计算机程序包括用于执行权利要求1-5中任一项所述的方法中的步骤的指令。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机程序,所述计算机程序使得计算机执行以实现权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210425065.5A CN114817105B (zh) | 2022-04-22 | 2022-04-22 | 设备枚举的方法、装置、计算机设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210425065.5A CN114817105B (zh) | 2022-04-22 | 2022-04-22 | 设备枚举的方法、装置、计算机设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114817105A CN114817105A (zh) | 2022-07-29 |
CN114817105B true CN114817105B (zh) | 2023-06-27 |
Family
ID=82505539
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210425065.5A Active CN114817105B (zh) | 2022-04-22 | 2022-04-22 | 设备枚举的方法、装置、计算机设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114817105B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115904251A (zh) * | 2023-01-03 | 2023-04-04 | 苏州浪潮智能科技有限公司 | 硬盘顺序调整方法及装置、系统、电子设备、存储介质 |
CN116737636B (zh) * | 2023-08-11 | 2024-09-10 | 珠海星云智联科技有限公司 | Pcie设备热拔插控制方法及相关装置 |
CN116795605B (zh) * | 2023-08-23 | 2023-12-12 | 珠海星云智联科技有限公司 | 一种外围器件互联扩展设备异常自动恢复系统以及方法 |
CN117170744B (zh) * | 2023-11-03 | 2024-01-23 | 珠海星云智联科技有限公司 | DPU的OptionRom功能实现方法及相关装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530254A (zh) * | 2013-10-11 | 2014-01-22 | 杭州华为数字技术有限公司 | 多节点系统的外部设备互联枚举方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130080754A1 (en) * | 2011-09-22 | 2013-03-28 | Cisco Technology, Inc. | Service Profile Based Peripheral Component Interconnect Device Enumeration And Option ROM Loading |
US10572434B2 (en) * | 2017-02-27 | 2020-02-25 | International Business Machines Corporation | Intelligent certificate discovery in physical and virtualized networks |
US11055104B2 (en) * | 2019-10-23 | 2021-07-06 | Mellanox Technologies, Ltd. | Network-adapter configuration using option-ROM in multi-CPU devices |
CN113190273B (zh) * | 2021-04-20 | 2023-05-26 | 长沙海格北斗信息技术有限公司 | 一种多芯片设备及其pcie枚举方法、存储介质 |
CN113688087B (zh) * | 2021-10-25 | 2022-02-18 | 苏州浪潮智能科技有限公司 | 一种pcie设备枚举方法、系统、存储介质及设备 |
-
2022
- 2022-04-22 CN CN202210425065.5A patent/CN114817105B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530254A (zh) * | 2013-10-11 | 2014-01-22 | 杭州华为数字技术有限公司 | 多节点系统的外部设备互联枚举方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114817105A (zh) | 2022-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114817105B (zh) | 设备枚举的方法、装置、计算机设备以及存储介质 | |
CN107025406B (zh) | 母板、计算机可读存储装置以及固件验证方法 | |
US9846617B2 (en) | System and method for self-healing basic input/output system boot image and secure recovery | |
TWI515602B (zh) | 由至少一處理器所執行的連續服務方法、連續服務設備及非暫態電腦可讀取儲存媒體 | |
WO2020063001A1 (zh) | 基本输入输出系统固件的管理方法、装置和服务器 | |
JP5270377B2 (ja) | ブリッジサポートを有するプラットフォーム起動 | |
US9208292B2 (en) | Entering a secured computing environment using multiple authenticated code modules | |
EP4102359A1 (en) | Systems, apparatus and methods for rapid peripheral component interconnect express (pcie) system boot | |
US10255438B2 (en) | Operating system agnostic validation of firmware images | |
US20230342472A1 (en) | Computer System, Trusted Function Component, and Running Method | |
CN114969713A (zh) | 设备验证方法、设备及系统 | |
CN114721493B (zh) | 芯片启动方法、计算机设备及可读存储介质 | |
CN111198832B (zh) | 一种处理方法和电子设备 | |
CN113946854B (zh) | 一种文件访问控制方法、装置及计算机可读存储介质 | |
CN116881929B (zh) | 安全防护方法、装置、电子设备以及基板控制器芯片 | |
CN115827522A (zh) | Bios的设置方法、bios芯片和电子设备 | |
US12072966B2 (en) | System and method for device authentication using a baseboard management controller (BMC) | |
EP4195021A1 (en) | Online migration method and system for bare metal server | |
JP2023544001A (ja) | アクセラレータカードのセキュリティモードの静的構成 | |
CN116257368A (zh) | 一种计算机系统中的通信方法及相关产品 | |
CN116635858A (zh) | 一种安全隔离装置和方法 | |
CN117667465B (zh) | 代码共享方法、装置、交换机、多主机系统、设备和介质 | |
CN118427147B (zh) | 基于eSPI的服务器主板的安全启动方法及相关设备 | |
US11416434B2 (en) | System and method for re-enumerating a secured drive dynamically within an operating system | |
WO2024045828A1 (zh) | 操作系统安全启动方法、操作系统安装方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |