CN116346781B - 一种地址空间分配方法、服务器、电子设备和存储介质 - Google Patents
一种地址空间分配方法、服务器、电子设备和存储介质 Download PDFInfo
- Publication number
- CN116346781B CN116346781B CN202310235746.XA CN202310235746A CN116346781B CN 116346781 B CN116346781 B CN 116346781B CN 202310235746 A CN202310235746 A CN 202310235746A CN 116346781 B CN116346781 B CN 116346781B
- Authority
- CN
- China
- Prior art keywords
- address space
- mmio address
- bios
- external
- mmio
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000003860 storage Methods 0.000 title claims abstract description 16
- 230000006870 function Effects 0.000 claims abstract description 115
- 230000015654 memory Effects 0.000 claims description 41
- 238000004590 computer program Methods 0.000 claims description 16
- 238000013507 mapping Methods 0.000 claims description 8
- 230000006978 adaptation Effects 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000013468 resource allocation Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5038—Address allocation for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5053—Lease time; Renewal aspects
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供了一种地址空间分配方法、服务器、电子设备和存储介质,该方法包括:在4G以上MMIO地址空间功能开启的情况下,BIOS获取多个外接设备的目标标识,目标标识符用于指示是否使用4G以上MMIO地址空间功能;针对目标标识为使用4G以上的MMIO地址空间功能的外接设备,分配64位的MMIO地址空间;针对目标标识为不使用4G以上的MMIO地址空间功能的外接设备,分配32位的MMIO地址空间。可以在不影响64位MMIO地址空间分配逻辑下,实现需要用4G以下MMIO地址空间或4G以上MMIO地址空间的外接设备动态适配,不会因为MMIO地址空间分配的问题导致网卡无法进行PXE引导等功能的使用。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种地址空间分配方法、一种服务器、一种电子设备和一种计算机可读存储介质。
背景技术
现阶段的服务器设计中,外接PCIE设备的多少是衡量服务器性能的一个重要因素,对于X86架构的服务来说,我们最常关注的也许是服务器可以兼容的内存是哪些,是否可以搭配NVME硬盘,可以搭载的存储硬盘的数量等等,但是对于PCIE网卡的兼容性也是越来越受重视。
现在PCIE网卡的研发制造大厂有很多个,例如:Intel,Mellanox,NVIDIA等等,对于不同厂家的网卡,AMD的CPU兼容性是不一样的,部分网卡是需要依据其运营商代码(VendorId)和设备代码(DeviceId)进行特殊适配才可以识别,当然不同的网卡对于操作的内存映射I/O(MMIO)资源要求是不一样的,需要根据不同的网卡进行固定的适配,这也就需要4G以上地址空间(Above 4G Decoding)功能。
现有技术中,对于AMD Milan和Rome的CPU来说,在适配其MMIO操作资源的时候是在PciBus.c(分配具体设备的MMIO资源所在函数的C文件)的设备链表中进行固定分配,需要依赖网卡的设备代码(DeviceId)和运营商代码(VendorId)设定网卡的BarType field(MMIO资源分配的基本地址字段)。这样当我们需要用的网卡的MMIO资源要求是4G以下时,网卡才可以正常进行PXE(Pre-boot Execution Environment,预引导执行环境)引导,才可以正常传输数据资源。该种分配方式适配比较复杂,大多数情况下我们是不清楚哪些网卡需要用的MMIO资源是4G以下的,只有在出现问题的时候才会注意到这个影响因素,对产品的兼容性较差,而且一般4G以上地址空间(Above 4G Decoding)功能默认情况下是对所有的网卡开放的,当需要用的网卡的MMIO资源是4G以下时,就需要手动进设置功能(Setup)关闭该选项,这对于不熟悉BIOS的人是非常困难的,不利于产品的使用。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种地址空间分配方法、一种服务器、一种电子设备和一种计算机可读存储介质。
为了解决上述问题,本发明实施例公开了一种地址空间分配方法,应用于服务器,所述服务器连接有多个外接设备,所述服务器运行有基本输入输出系统BIOS,所述方法包括:
在4GB以上内存映射I/O MMIO地址空间功能开启的情况下,所述BIOS获取所述多个外接设备的目标标识,其中,所述目标标识符用于指示是否使用4GB以上MMIO地址空间功能;
针对所述目标标识为不使用4GB以上的MMIO地址空间功能的外接设备,所述BIOS分配32Bit的MMIO地址空间;
针对所述目标标识为使用4GB以上的MMIO地址空间功能的外接设备,所述BIOS分配64Bit的MMIO地址空间。
可选地,所述针对所述目标标识为不使用4GB以上的MMIO地址空间功能的外接设备,所述BIOS分配32Bit的MMIO地址空间,包括:
当所述目标标识符的设置值为1时,所述目标标识指示不使用4GB以上的MMIO地址空间功能,针对所述目标标识为不使用4GB以上的MMIO地址空间功能的外接设备,所述BIOS分配32Bit的MMIO地址空间。
可选地,还包括:
所述BIOS获取外接设备列表和预设设备列表;所述外接设备列表记录所述服务器当前连接的外接设备的列表,所述预设设备列表记录不能使用4GB以上MMIO地址空间功能的外接设备的列表;
所述BIOS将所述外接设备列表中的外接设备,分别与所述预设设备列表中的设备进行一一比对,判断所述外接设备列表中的外接设备是否在所述预设设备列表中;
若所述外接设备列表中的外接设备在所述预设设备列表中,则所述BIOS将所述外接设备的目标标识符的设置为1。
可选地,所述针对所述目标标识为使用4GB以上的MMIO地址空间功能的外接设备,所述BIOS分配64Bit的MMIO地址空间,包括:
当所述目标标识符的设置值为0时,所述目标标识指示使用4GB以上的MMIO地址空间功能的外接设备,针对所述目标标识为使用4GB以上的MMIO地址空间功能的外接设备,所述BIOS分配64Bit的MMIO地址空间。
可选地,还包括:
若所述外接设备列表中的外接设备不在所述预设设备列表中,则所述BIOS将所述外接设备的目标标识符的设置为0。
可选地,所所述BIOS获取与所述服务器连接的外接设备的外接设备列表,包括:
所述BIOS通过PCI总线接口获取所述外接设备列表和所述预设设备列表。
本发明实施例还公开了一种服务器,所述服务器连接有多个外接设备,所述服务器运行有BIOS基本输入输出系统,
所述BIOS,用于在4GB以上内存映射I/O MMIO地址空间功能开启的情况下,获取所述多个外接设备的目标标识,其中,所述目标标识符用于指示是否使用4GB以上MMIO地址空间功能;
所述BIOS,用于针对所述目标标识为使用4GB以上的MMIO地址空间功能的外接设备,分配64Bit的MMIO地址空间;
所述BIOS,用于针对所述目标标识为不使用4GB以上的MMIO地址空间功能的外接设备,分配32Bit的MMIO地址空间。
可选地,所述BIOS,用于当所述目标标识符的设置值为1时,所述目标标识指示不使用4GB以上的MMIO地址空间功能,针对所述目标标识为不使用4GB以上的MMIO地址空间功能的外接设备,所述BIOS分配32Bit的MMIO地址空间。
可选地,所述BIOS,还用于获取外接设备列表和预设设备列表;所述外接设备列表记录所述服务器当前连接的外接设备的列表,所述预设设备列表记录不能使用4GB以上MMIO地址空间功能的外接设备的列表;
所述BIOS,还用于将所述外接设备列表中的外接设备,分别与所述预设设备列表中的设备进行一一比对,判断所述外接设备列表中的外接设备是否在所述预设设备列表中;
所述BIOS,还用于若所述外接设备列表中的外接设备在所述预设设备列表中,则将所述外接设备的目标标识符的设置为1。
可选地,所述BIOS,用于当所述目标标识符的设置值为0时,所述目标标识指示使用4GB以上的MMIO地址空间功能的外接设备,针对所述目标标识为使用4GB以上的MMIO地址空间功能的外接设备,所述BIOS分配64Bit的MMIO地址空间。
可选地,所述BIOS,用于若所述外接设备列表中的外接设备不在所述预设设备列表中,则将所述外接设备的目标标识符的设置为0。
可选地,所述BIOS,用于通过PCI总线接口获取所述外接设备列表和所述预设设备列表。
本发明实施例还公开了一种电子设备,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上述的地址空间分配方法的步骤。
本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上述的地址空间分配方法的步骤。
本发明实施例包括以下优点:
在本发明实施例中,在4GB以上内存映射I/O MMIO地址空间功能开启的情况下,BIOS获取多个外接设备的目标标识,其中,目标标识符用于指示是否使用4GB以上MMIO地址空间功能;针对目标标识为使用4GB以上的MMIO地址空间功能的外接设备,BIOS分配64Bit的MMIO地址空间;针对目标标识为不使用4GB以上的MMIO地址空间功能的外接设备,BIOS分配32Bit的MMIO地址空间。可以在不影响64Bit MMIO地址空间分配逻辑下,实现需要用的4G以下MMIO地址空间或4G以上MMIO地址空间的外接设备动态适配,不会因为外接设备MMIO地址空间分配的问题导致网卡无法进行PXE引导等功能的使用。
附图说明
图1是本发明实施例提供的一种地址空间分配方法的步骤流程图;
图2是本发明实施例提供的一种4GB以上MMIO地址空间执行逻辑图;
图3是本发明实施例提供的一种服务器的结构框图;
图4是本发明实施例提供的一种电子设备;
图5是本发明实施例提供的一种计算机可读存储介质。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
PCIE网卡,即PCI插槽的网卡。是工作在数据链路层的网路组件,是局域网中连接计算机和传输介质的接口。其不仅能实现与局域网传输介质之间的物理连接和电信号匹配,还涉及帧的发送与接收、帧的封装与拆封、介质访问控制、数据的编码与解码以及数据缓存的功能等,对互联网客户以及大数据处理客户的作用可谓至关重要。
MMIO(Memory mapping I/O)即内存映射I/O,它是PCI规范的一部分,I/O设备被放置在内存空间而不是I/O空间。从处理器的角度看,内存映射I/O后系统设备访问起来和内存一样。这样访问AGP/PCI-E显卡上的帧缓存,BIOS,PCI设备就可以使用读写内存一样的汇编指令完成,简化了程序设计的难度和接口的复杂性。I/O作为CPU和外设交流的一个渠道,主要分为两种,一种是Port I/O,一种是MMIO(Memory mapping I/O。
目前,大多数的CPU都支持36bit寻址,也就是说寻址范围达到了64G,但这只是从“系统”的视角来说,从“内存控制器”的视角来说,由于32bit的寻址能力的限制,只能访问4G空间。如果需要计算机正常工作,则所有必须的设备地址都需要存在这4G的空间当中,使计算机正常工作除了内存之外,也包括许多IO设备。图中展示了4Gb地址的大致分布,除去main memory之外,大多数都只占据极少的内存,一般为几M或者几十M,除了PCIE设备。
现有技术通过在网卡设备的MMIO资源所在函数的C文件的设备链表中,进行固定分配的方式,需要依赖网卡的设备代码(DeviceId)和运营商代码(VendorId)设定网卡的BarType field,该方式存在以下问题:
1)适配比较复杂,大多数情况下用户是不清楚哪些网卡需要用的MMIO资源是4G以下的,只有在出现问题的时候才会注意到这个影响因素,对产品的兼容性较差。
2)后期代码维护不方便,代码的可读性和可移植性比较差,AMI的Above 4GDecoding选项默认情况下是对所有的网卡开放的,这样当用户需要用的网卡的MMIO资源是4G以下时,就需要手动进Setup关闭该选项,这对于不熟悉BIOS的用户是非常困难的,不利于产品的使用。
3)需要修改代码重新发布BIOS版本才可以实现对网卡的兼容,假如版本已经到了用户那里,更新用户的BIOS版本对用户来说风险是很大的,对用户的使用体验会有很大的影响。
因此,亟需要解决对于不同MMIO资源要求的设备的兼容性较差,原始的适配方法过于复杂,移植性差的技术问题。
本发明实施例的核心构思之一在于,通过在AMI代码的基础上进行改进,完善Above 4G Decoding的功能,可以依据适配的外接设备进行动态分配MMIO资源,在不影响64位MMIO资源分配逻辑下,实现不同外接设备4G MMIO资源动态分配,不会因为外接设备MMIO资源分配的问题导致外接设备无法进行PXE引导等功能的使用。
参照图1,示出了本发明实施例提供的一种地址空间分配方法的步骤流程图,应用于服务器,所述服务器连接有多个外接设备,所述服务器运行有BIOS基本输入输出系统,所述方法具体可以包括如下步骤:
步骤101,在4GB以上MMIO地址空间功能开启的情况下,所述BIOS获取所述多个外接设备的目标标识,其中,所述目标标识符用于指示是否使用4GB以上MMIO地址空间功能。
本发明实施例中,服务器中的CPU可以支持64Bit MMIO资源。在多任务操作系统中,每个进程都运行于自己的内存中。这个内存就是地址空间,在32位系统下它是一个4G的内存地址块,内核空间和用户空间所占的比例是1:3,还有128M的低地址空间有操作系统独享,不被任何进程访问。即地址空间是内存映射出来的存放地址的集合。
示例性地,地址空间是对物理内存编码(地址编码)的范围,编码是对每一个物理存储单元(一个字节)分配一个唯一的地址号码,这个过程又叫做“编址”或者“地址映射”。4GB的地址空间可以分为两大部分,0MB~物理内存顶端的地址分配给主板上安装的物理内存,4GB到物理内存顶端的地址分配给BIOS(ROM)和PCI/PCI-E设备的存储器。由于这些存储器基本上是用于系统的输入和输出,所以Intel又把这段地址空间称之为“MMIO”(Memory-Mapped I/O—I/O存储器映射)。
BIOS具有支持内存重映射的功能模块,即4GB以上MMIO地址空间功能,以便根据用户安装的内存容量来确定是否需要启用内存重映射功能。
作为一种示例,在BIOS的设置选项中开启4G地址空间功能后,BIOS可以基于MMIOHigh Base(高端MMIO基本地址)选项设置基址,基于MMIO High Granularity Size(高端MMIO资源的分配大小字块)选项设置64位MMIO地址空间范围。BIOS可以根据设置的基址和设置的64位MMIO地址空间范围给所有请求4GB以上译码的外接设备分配MMIO地址空间。
作为一种示例,可以预先对外接设备设置标识符,用于指示该外接设备是否使用4GB以上MMIO地址空间功能。例如,可以设置外接设备的目标标识为Decode4gDisable。
作为一种示例,与服务器相连的外接设备可以为多个,可以为与服务器相连的全部外接设备设置标识符,也可以为与服务器相连的部分外接设备设置标识符。
作为一种示例,在4GB以上MMIO地址空间功能开启后,BIOS可以获取多个外接设备的目标标识。
步骤102,针对所述目标标识为不使用4GB以上的MMIO地址空间功能的外接设备,所述BIOS分配32Bit的MMIO地址空间。
在本发明实施例中,BIOS可以根据目标标识分配MMIO地址空间。例如,可以在资源分配阶段根据Decode4gDisable标识符给外接的PCI设备分配分配MMIO资源。
作为一种示例,若外接设备的目标标识指示不使用4GB以上的MMIO地址空间功能,则BIOS可以分配32Bit的MMIO地址空间给该外接设备。
在本发明的一种实施例中,所述针对所述目标标识为不使用4GB以上的MMIO地址空间功能的外接设备,所述BIOS分配32Bit的MMIO地址空间,包括:当所述目标标识符的设置值为1时,所述目标标识指示不使用4GB以上的MMIO地址空间功能;针对所述目标标识为不使用4GB以上的MMIO地址空间功能的外接设备,所述BIOS分配32Bit的MMIO地址空间。
在本发明实施例中,可以将目标标识符的值设置为1,表示不使用4GB以上的MMIO地址空间功能,将目标标识符的值设置为0,表示使用4GB以上的MMIO地址空间功能。
作为一种示例,当BIOS获取的目标标识符的设置值为1时,目标标识指示外接设备不使用4GB以上的MMIO地址空间功能,BIOS可以分配32Bit的MMIO地址空间给该外接设备,从而可以实现对不使用4GB以上的MMIO地址空间功能的设备的动态配置。
在本发明的一种实施例中,所述BIOS获取外接设备列表和预设设备列表;所述外接设备列表记录所述服务器当前连接的外接设备的列表,所述预设设备列表记录不能使用4GB以上MMIO地址空间功能的外接设备的列表;所述BIOS将所述外接设备列表中的外接设备,分别与所述预设设备列表中的设备进行一一比对,判断所述外接设备列表中的外接设备是否在所述预设设备列表中;若所述外接设备列表中的外接设备在所述预设设备列表中,则所述BIOS将所述外接设备的目标标识符的设置为1。
作为一种示例,BIOS可以获取外接设备列表和预设设备列表;其中,外接设备列表可以记录服务器当前连接的外接设备的列表,预设设备列表可以记录不能使用4GB以上MMIO地址空间功能的外接设备的列表。
作为一种示例,BIOS可以将外接设备列表中的外接设备,分别与预设设备列表中的设备进行一一比对,判断外接设备列表中的外接设备是否在预设设备列表中。若外接设备列表中的外接设备在所述预设设备列表中,则可以将外接设备的目标标识符的设置为1。
在本发明的一种实施例中,所述BIOS通过PCI总线接口获取所述外接设备列表和所述预设设备列表。
作为一种示例,BIOS可以预先在代码中预留PCI总线接口,用于获取外接设备列表和预设设备列表。
作为一种示例,PCI总线接口可以动态识别外接的PCIE设备,然后在Setup界面动态生成相应的PCIE设备的列表,以便我们可以清晰看到外接的PCIE设备,从而进行下一步的操作。
作为一种示例,BIOS可以通过驱动PCI总线接口检测不使用4GB以上的MMIO地址空间功能是否开启,当检测到不使用4GB以上的MMIO地址空间功能开启时,外接设备的原64Bit地址空间请求将被强制分配32Bit MMIO地址空间。
步骤103,针对所述目标标识为使用4GB以上的MMIO地址空间功能的外接设备,所述BIOS分配64Bit的MMIO地址空间。
作为一种示例,若外接设备的目标标识指示使用4GB以上的MMIO地址空间功能,则BIOS可以分配64Bit的MMIO地址空间给该外接设备。
作为一种示例,可以设置不使用4GB以上的MMIO地址空间功能的优先级高于使用4GB以上的MMIO地址空间功能的优先级。从而当4GB以上的MMIO地址空间功能打开,但外接设备的目标标识指示不使用4GB以上的MMIO地址空间功能时,BIOS可以关闭带有目标标识的外接设备的4G以上MMIO地址空间功能。
在本发明的一种实施例中,所述针对所述目标标识为使用4GB以上的MMIO地址空间功能的外接设备,所述BIOS分配64Bit的MMIO地址空间,包括:当所述目标标识符的设置值为0时,所述目标标识指示使用4GB以上的MMIO地址空间功能的外接设备;针对所述目标标识为使用4GB以上的MMIO地址空间功能的外接设备,所述BIOS分配64Bit的MMIO地址空间。
作为一种示例,当BIOS获取的目标标识符的设置值为0时,目标标识指示外接设备0使用4GB以上的MMIO地址空间功能,BIOS可以分配64Bit的MMIO地址空间给该外接设备,从而可以实现对0使用4GB以上的MMIO地址空间功能的设备的动态配置。
在本发明的一种实施例中,若所述外接设备列表中的外接设备不在所述预设设备列表中,则所述BIOS将所述外接设备的目标标识符的设置为0。
作为一种示例,BIOS可以获取外接设备列表和预设设备列表;其中,外接设备列表可以记录服务器当前连接的外接设备的列表,预设设备列表可以记录不能使用4GB以上MMIO地址空间功能的外接设备的列表。BIOS可以将外接设备列表中的外接设备,分别与预设设备列表中的设备进行一一比对,判断外接设备列表中的外接设备是否在预设设备列表中。若外接设备列表中的外接设备不在所述预设设备列表中,则BIOS可以将外接设备的目标标识符的设置为0。
在本发明实施例中,在4GB以上MMIO地址空间功能开启的情况下,BIOS获取多个外接设备的目标标识,其中,目标标识符用于指示是否使用4GB以上MMIO地址空间功能;针对目标标识为使用4GB以上的MMIO地址空间功能的外接设备,BIOS分配64Bit的MMIO地址空间;针对目标标识为不使用4GB以上的MMIO地址空间功能的外接设备,BIOS分配32Bit的MMIO地址空间。可以在不影响64Bit MMIO地址空间分配逻辑下,实现需要用的4G以下MMIO地址空间或4G以上MMIO地址空间的外接设备动态适配,不会因为外接设备MMIO地址空间分配的问题导致网卡无法进行PXE引导等功能的使用。
作为一种示例,如图2所示为本发明实施例提供的一种4GB以上MMIO地址空间执行逻辑图:
S200,开始。
示例性地,可以开启4GB以上MMIO地址空间功能。
S201,BIOS通过PCI总线模块生成外接PCIE设备列表。
示例性地,PCI总线模块可以动态识别外接的PCIE设备,然后在BIOS的Setup界面动态生成相应的外接PCIE设备列表,以便我们可以清晰看到外接的PCIE设备,从而进行下一步的操作。
例如,模块文件列表可以为:
universal\fixed4gdecodelib\fixed4gdecodelib.cif
universal\fixed4gdecodelib\fixed4gdecodelib.sdl
universal\fixed4gdecodelib\fixed4gdecodelib.inf
universal\fixed4gdecodelib\fixed4gdecodelib.c
示例性地,BIOS通过PCI总线接口获取必须关闭4G地址空间功能才能正常工作的外接设备列表,对所述外接设备列表设置Decode4gDisable标识符(不能分配4G MMIO资源的标识符)。
S202,Above 4G Decoding功能给PCIE设备进行64位MMIO资源分配。
示例性地,BIOS通过4GB以上MMIO地址空间功能可以对64位资源请求的PCIE设备进行64位MMIO资源分配。
S203,获取BIOS的Setup界面上外接PCIE设备列表和需要4GB以下MMIO资源的设备列表。
S204,将Setup界面上外接PCIE设备列表中的PCIE设备,分别和需要4GB以下MMIO资源的设备列表中的设备进行比对。
S205,PCIE设备是否在需要4GB以下MMIO资源的设备列表中;
示例性地,可以通过Decode4gDisable标识符判断PCIE设备是否在需要4GB以下MMIO资源的设备列表中。
S206,若在,则将PCIE设备的Decode4gDisable标识设置为1;
示例性地,Decode4gDisable标识用于指示是否使用4GB以上MMIO地址空间功能,若该PCIE设备在需要4GB以下MMIO资源的设备列表中,则可以将Decode4gDisable标识设置为1。
S207,将该PCIE设备MMIO资源分配4G以下;
S208,若不在,则将PCIE设备的Decode4gDisable标识设置为0;
示例性地,若该PCIE设备不在需要4GB以下MMIO资源的设备列表中,则说明PCIE设备可以使用4GB以上的MMIO资源,可以将Decode4gDisable标识设置为0。
S209,将该PCIE设备MMIO资源按照AMI的逻辑分配64位资源。
S210,结束。
本发明实施例在AMI代码的基础上进行了改进,完善了Above 4GDecoding的功能,可以依据适配的PCIE设备进行动态分配MMIO资源,在不影响64位MMIO资源分配逻辑下,实现部分PCIE设备依赖的4G MMIO资源分配,从而实现PCIE设备的动态适配,不会因为网卡MMIO资源分配的问题导致网卡无法进行PXE引导等功能的使用。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图3,示出了本发明实施例提供的一种服务器的结构框图,所述服务器30连接有多个外接设备,所述服务器运行有BIOS基本输入输出系统,具体可以包括如下:
所述BIOS 301,用于在4GB以上内存映射I/O MMIO地址空间功能开启的情况下,获取所述多个外接设备的目标标识,其中,所述目标标识符用于指示是否使用4GB以上MMIO地址空间功能;
所述BIOS 301,用于针对所述目标标识为使用4GB以上的MMIO地址空间功能的外接设备,分配64Bit的MMIO地址空间;
所述BIOS 301,用于针对所述目标标识为不使用4GB以上的MMIO地址空间功能的外接设备,分配32Bit的MMIO地址空间。
在一种可选的实施例中,所述BIOS,用于当所述目标标识符的设置值为1时,所述目标标识指示不使用4GB以上的MMIO地址空间功能,针对所述目标标识为不使用4GB以上的MMIO地址空间功能的外接设备,所述BIOS分配32Bit的MMIO地址空间。
在一种可选的实施例中,所述BIOS,还用于获取外接设备列表和预设设备列表;所述外接设备列表记录所述服务器当前连接的外接设备的列表,所述预设设备列表记录不能使用4GB以上MMIO地址空间功能的外接设备的列表;
所述BIOS,还用于将所述外接设备列表中的外接设备,分别与所述预设设备列表中的设备进行一一比对,判断所述外接设备列表中的外接设备是否在所述预设设备列表中;
所述BIOS,还用于若所述外接设备列表中的外接设备在所述预设设备列表中,则将所述外接设备的目标标识符的设置为1。
在一种可选的实施例中,所述BIOS,用于当所述目标标识符的设置值为0时,所述目标标识指示使用4GB以上的MMIO地址空间功能的外接设备,针对所述目标标识为使用4GB以上的MMIO地址空间功能的外接设备,所述BIOS分配64Bit的MMIO地址空间。
在一种可选的实施例中,所述BIOS,用于若所述外接设备列表中的外接设备不在所述预设设备列表中,则将所述外接设备的目标标识符的设置为0。
在一种可选的实施例中,所述BIOS,用于通过PCI总线接口获取所述外接设备列表和所述预设设备列表。
在本发明实施例中,在4GB以上MMIO地址空间功能开启的情况下,BIOS获取多个外接设备的目标标识,其中,目标标识符用于指示是否使用4GB以上MMIO地址空间功能;针对目标标识为使用4GB以上的MMIO地址空间功能的外接设备,BIOS分配64Bit的MMIO地址空间;针对目标标识为不使用4GB以上的MMIO地址空间功能的外接设备,BIOS分配32Bit的MMIO地址空间。可以在不影响64Bit MMIO地址空间分配逻辑下,实现需要用的4G以下MMIO地址空间或4G以上MMIO地址空间的外接设备动态适配,不会因为外接设备MMIO地址空间分配的问题导致网卡无法进行PXE引导等功能的使用。
对于服务器实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种电子设备40,包括:
包括处理器401、存储器402及存储在所述存储器上并能够在所述处理器上运行的计算机程序4021,该计算机程序被处理器执行时实现上述地址空间分配方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供了一种计算机可读存储介质50,计算机可读存储介质上存储计算机程序501,计算机程序被处理器执行时实现上述地址空间分配方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种地址空间分配方法、一种服务器、一种电子设备和一种计算机可读存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种地址空间分配方法,其特征在于,应用于服务器,所述服务器连接有多个外接设备,所述服务器运行有基本输入输出系统BIOS,所述方法包括:
在4GB以上内存映射I/O MMIO地址空间功能开启的情况下,所述BIOS获取所述多个外接设备的目标标识,其中,所述目标标识符用于指示是否使用4GB以上MMIO地址空间功能;
针对所述目标标识为不使用4GB以上的MMIO地址空间功能的外接设备,所述BIOS分配32Bit的MMIO地址空间;
针对所述目标标识为使用4GB以上的MMIO地址空间功能的外接设备,所述BIOS分配64Bit的MMIO地址空间。
2.根据权利要求1所述的方法,其特征在于,所述针对所述目标标识为不使用4GB以上的MMIO地址空间功能的外接设备,所述BIOS分配32Bit的MMIO地址空间,包括:
当所述目标标识符的设置值为1时,所述目标标识指示不使用4GB以上的MMIO地址空间功能;
针对所述目标标识为不使用4GB以上的MMIO地址空间功能的外接设备,所述BIOS分配32Bit的MMIO地址空间。
3.根据权利要求2所述的方法,其特征在于,还包括:
所述BIOS获取外接设备列表和预设设备列表;所述外接设备列表记录所述服务器当前连接的外接设备的列表,所述预设设备列表记录不能使用4GB以上MMIO地址空间功能的外接设备的列表;
所述BIOS将所述外接设备列表中的外接设备,分别与所述预设设备列表中的设备进行一一比对,判断所述外接设备列表中的外接设备是否在所述预设设备列表中;
若所述外接设备列表中的外接设备在所述预设设备列表中,则将所述外接设备的目标标识符的设置为1。
4.根据权利要求3所述的方法,其特征在于,所述针对所述目标标识为使用4GB以上的MMIO地址空间功能的外接设备,所述BIOS分配64Bit的MMIO地址空间,包括:
当所述目标标识符的设置值为0时,所述目标标识指示使用4GB以上的MMIO地址空间功能的外接设备;
针对所述目标标识为使用4GB以上的MMIO地址空间功能的外接设备,所述BIOS分配64Bit的MMIO地址空间。
5.根据权利要求4所述的方法,其特征在于,还包括:
若所述外接设备列表中的外接设备不在所述预设设备列表中,则将所述外接设备的目标标识符的设置为0。
6.根据权利要求3所述的方法,其特征在于,所所述BIOS获取与所述服务器连接的外接设备的外接设备列表,包括:
所述BIOS通过PCI总线接口获取所述外接设备列表和所述预设设备列表。
7.一种服务器,其特征在于,所述服务器连接有多个外接设备,所述服务器运行有基本输入输出系统BIOS,
所述BIOS,用于在4GB以上内存映射I/O MMIO地址空间功能开启的情况下,获取所述多个外接设备的目标标识,其中,所述目标标识符用于指示是否使用4GB以上MMIO地址空间功能;
所述BIOS,用于针对所述目标标识为使用4GB以上的MMIO地址空间功能的外接设备,分配64Bit的MMIO地址空间;
所述BIOS,用于针对所述目标标识为不使用4GB以上的MMIO地址空间功能的外接设备,分配32Bit的MMIO地址空间。
8.根据权利要求7所述的服务器,其特征在于,
所述BIOS,用于当所述目标标识符的设置值为1时,所述目标标识指示不使用4GB以上的MMIO地址空间功能;
所述BIOS,用于针对所述目标标识为不使用4GB以上的MMIO地址空间功能的外接设备,所述BIOS分配32Bit的MMIO地址空间。
9.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-6中任一项所述的地址空间分配方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1-6中任一项所述的地址空间分配方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310235746.XA CN116346781B (zh) | 2023-03-13 | 2023-03-13 | 一种地址空间分配方法、服务器、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310235746.XA CN116346781B (zh) | 2023-03-13 | 2023-03-13 | 一种地址空间分配方法、服务器、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116346781A CN116346781A (zh) | 2023-06-27 |
CN116346781B true CN116346781B (zh) | 2024-06-11 |
Family
ID=86883291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310235746.XA Active CN116346781B (zh) | 2023-03-13 | 2023-03-13 | 一种地址空间分配方法、服务器、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116346781B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117369891B (zh) * | 2023-12-06 | 2024-02-27 | 苏州元脑智能科技有限公司 | 一种服务器的启动运行方法、装置、服务器及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648878A (zh) * | 2015-10-29 | 2017-05-10 | 华为技术有限公司 | 一种系统及其动态分配mmio资源的方法 |
CN112099941A (zh) * | 2016-08-26 | 2020-12-18 | 华为技术有限公司 | 实现硬件加速处理的方法、设备和系统 |
CN113194161A (zh) * | 2021-04-26 | 2021-07-30 | 山东英信计算机技术有限公司 | 一种服务器系统mmioh基地址的设置方法、装置 |
CN113867743A (zh) * | 2021-09-29 | 2021-12-31 | 苏州浪潮智能科技有限公司 | 网络操作系统加载烧录方法、装置、电子设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012019328A (ja) * | 2010-07-07 | 2012-01-26 | Fujitsu Ltd | 通信プログラム、通信方法及び電気機器 |
US10929302B2 (en) * | 2018-06-08 | 2021-02-23 | International Business Machines Corporation | MMIO addressing using a translation table |
-
2023
- 2023-03-13 CN CN202310235746.XA patent/CN116346781B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648878A (zh) * | 2015-10-29 | 2017-05-10 | 华为技术有限公司 | 一种系统及其动态分配mmio资源的方法 |
CN112099941A (zh) * | 2016-08-26 | 2020-12-18 | 华为技术有限公司 | 实现硬件加速处理的方法、设备和系统 |
CN113194161A (zh) * | 2021-04-26 | 2021-07-30 | 山东英信计算机技术有限公司 | 一种服务器系统mmioh基地址的设置方法、装置 |
CN113867743A (zh) * | 2021-09-29 | 2021-12-31 | 苏州浪潮智能科技有限公司 | 网络操作系统加载烧录方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116346781A (zh) | 2023-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109656630B (zh) | 配置空间的访问方法、装置、架构及储存介质 | |
US7526578B2 (en) | Option ROM characterization | |
US20170277530A1 (en) | Technologies for securing a firmware update | |
US8386679B2 (en) | Dynamic allocation of a direct memory address window | |
US20140281069A1 (en) | Multi root shared peripheral component interconnect express (pcie) end point | |
US20190243757A1 (en) | Systems and methods for input/output computing resource control | |
US7600093B2 (en) | Device, method and computer program product for multi-level address translation | |
CN116346781B (zh) | 一种地址空间分配方法、服务器、电子设备和存储介质 | |
US10310759B2 (en) | Use efficiency of platform memory resources through firmware managed I/O translation table paging | |
RU2611018C2 (ru) | Общий способ построения виртуального pci-устройства и виртуального mmio-устройства | |
EP3304294A1 (en) | Method and system for allocating resources for virtual hosts | |
CN110990114A (zh) | 一种虚拟机资源分配方法、装置、设备及可读存储介质 | |
TWI699655B (zh) | 使用轉譯表進行記憶體映射輸入輸出定址 | |
CN109857553B (zh) | 内存管理方法及装置 | |
US20160292088A1 (en) | Dynamic storage key assignment | |
CN106648878B (zh) | 一种系统及其动态分配mmio资源的方法 | |
CN115664953B (zh) | 一种外接设备的资源分配方法及相关装置 | |
US20190377687A1 (en) | Mmio addressing using a translation lookaside buffer | |
WO2020029619A1 (zh) | 数据处理的方法、设备和服务器 | |
US20170017579A1 (en) | Flexible i/o dma address allocation in virtualized systems | |
CN111221584A (zh) | 终端单双卡适配方法、装置、计算机设备及存储介质 | |
CN114116524A (zh) | 一种创建安全页表及访问内存的方法及装置 | |
US8631221B2 (en) | Method and apparatus for allocating host memory for a memory-less add-on devices | |
US20130159564A1 (en) | Direct data transfer for device drivers | |
US12013801B2 (en) | Devices, systems, and methods for PCIe endpoint interrupt |
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 |