CN107193752A - 一种解决外插卡内存地址不够分配的方法 - Google Patents
一种解决外插卡内存地址不够分配的方法 Download PDFInfo
- Publication number
- CN107193752A CN107193752A CN201710358593.2A CN201710358593A CN107193752A CN 107193752 A CN107193752 A CN 107193752A CN 201710358593 A CN201710358593 A CN 201710358593A CN 107193752 A CN107193752 A CN 107193752A
- Authority
- CN
- China
- Prior art keywords
- address
- outer plug
- card
- enough
- bios
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000013468 resource allocation Methods 0.000 claims abstract description 5
- 230000004048 modification Effects 0.000 claims description 7
- 238000012986 modification Methods 0.000 claims description 7
- 238000013507 mapping Methods 0.000 claims description 4
- 230000006399 behavior Effects 0.000 claims 1
- 230000002093 peripheral effect Effects 0.000 abstract description 2
- 230000008859 change Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- 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/10—Program control for peripheral devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种解决外插卡内存地址不够分配的方法,具体包括以下步骤:1)、BIOS的自检程序检测到外插卡;2)、PCIE设备初始化,资源分配;3)、BIOS检测CPU的内存寻址范围,并判断地址范围是否够用;4)、如果够用,则使用真实的地址为外插卡分配资源,启动进入OS;否则执行步骤5)操作;5)、为外插卡分配虚拟的地址,启动进入OS。突破了现有的内存资源分配方式,通过使用该方法可以支持更多的外插卡,节省大量的硬件成本。通过分配虚拟内存地址的方式实现支持更多的外设。
Description
技术领域
本发明涉及服务器、存储类服务器测试技术领域,具体地说是一种解决外插卡内存地址不够分配的方法。
背景技术
随着云时代的来临,大数据(Big data)也吸引了越来越多的关注.大数据(Bigdata)通常用来形容一个公司创造的大量非结构化和半结构化数据,这些数据在下载到关系型数据库用于分析时会花费过多时间和金钱。大数据分析常和云计算联系到一起,因为实时的大型数据集分析需要像MapReduce一样的框架来向数十、数百或甚至数千的电脑分配工作。因此在此背景下,在特定的应用场景下,传统服务器很难满足需求。就需要有几十个甚至上百个外插卡的机器来实现功能。
发明内容
本发明的目的在于提供一种解决外插卡内存地址不够分配的方法,用于解决由于内存地址分配不够导致的系统不能启动宕机的问题。
本发明解决其技术问题所采取的技术方案是:一种解决外插卡内存地址不够分配的方法,其特征是,具体包括以下步骤:
1)、BIOS的自检程序检测到外插卡;
2)、PCIE设备初始化,资源分配;
3)、BIOS检测CPU的内存寻址范围,并判断地址范围是否够用;
4)、如果够用,则使用真实的地址为外插卡分配资源,启动进入OS;否,则执行步骤5)操作;
5)、为外插卡分配虚拟的地址,启动进入OS。
进一步地,步骤3)中BIOS检测CPU的内存寻址范围,并判断地址范围是否够用的方法具体包括:
31)、BIOS读取CPU内部寄存器;
32)、得到CPU支持的地址线根数N,从而得到CPU自身支持的地址范围0-2N;
33)、BIOS检测外插卡的地址空间,判断其是否大于2N,如果是,则表示CPU地址范围不够用;否则,则表示CPU地址范围够用。
进一步地,步骤5)操作中为外插卡分配虚拟的地址的具体方法包括:
51)、BIOS修改PciResourceMem64Base和PciResourceMem64Base;
52)、BIOS修改FakeMMIObase和FakeMMIOSize;
53)、把分配的虚拟地址加入MMIO。
进一步地,步骤51)操作中修改PciResourceMem64Base和PciResourceMem64Base的具体方式为:
从CPU支持的最大地址范围起建立虚拟地址,虚拟地址的长度为从CPU支持的最大地址范围起的外插卡内存地址的空间。
进一步地,步骤52)操作中BIOS修改FakeMMIObase和FakeMMIOSize的具体方法为:
定义虚拟地址的base和长度与检测到外插卡的起始地址和长度一致。
进一步地,步骤53)操作中把分配的虚拟地址加入MMIO的方法具体包括:
把虚拟地址定义为MMIO,加入内存地址映射空间供BIOS使用。
本发明的有益效果是:
本发明修改底层代码(BIOS)在为PCIE外插卡分配内存资源时分配虚拟地址(假地址),从而避免了由于内存地址分配不够导致的系统不能启动宕机的问题。突破了现有的内存资源分配方式,通过使用该方法可以支持更多的外插卡,节省大量的硬件成本。通过分配虚拟内存地址的方式实现支持更多的外设。
附图说明
图1为本发明的流程图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
如图1所示,一种解决外插卡内存地址不够分配的方法,具体包括以下步骤:
1)、BIOS的自检程序检测到外插卡;
2)、PCIE设备初始化,资源分配;
3)、BIOS检测CPU的内存寻址范围,并判断地址范围是否够用;
4)、如果够用,则使用真实的地址为外插卡分配资源,启动进入OS;否,则执行步骤5)操作;
5)、为外插卡分配虚拟的地址,启动进入OS。
步骤3)中BIOS检测CPU的内存寻址范围,并判断地址范围是否够用的方法具体包括:
31)、BIOS读取CPU内部寄存器;
32)、得到CPU支持的地址线根数N,从而得到CPU自身支持的地址范围0-2N;
33)、BIOS检测外插卡的地址空间,判断其是否大于2N,如果是,则表示CPU地址范围不够用;否则,则表示CPU地址范围够用。
步骤5)操作中为外插卡分配虚拟的地址的具体方法包括:
51)、BIOS修改PciResourceMem64Base和PciResourceMem64Base;
52)、BIOS修改FakeMMIObase和FakeMMIOSize;
53)、把分配的虚拟地址加入MMIO。
步骤51)操作中修改PciResourceMem64Base和PciResourceMem64Base的具体方式为:
从CPU支持的最大地址范围起建立虚拟地址,虚拟地址的长度为从CPU支持的最大地址范围起的外插卡内存地址的空间。
步骤52)操作中BIOS修改FakeMMIObase和FakeMMIOSize的具体方法为:
定义虚拟地址的base和长度与检测到外插卡的起始地址和长度一致。
步骤53)操作中把分配的虚拟地址加入MMIO的方法具体包括:
把虚拟地址定义为MMIO,加入内存地址映射空间供BIOS使用。
本实施例采用的CPU有36根地址线,其寻址范围为64G;采用16张K40GPU外插卡,外插卡需要16x32GB=512GB内存地址空间,因此明显CPU的寻址范围不够用,因此提出了一种解决外插卡内存地址不够分配的方法。
1)、BIOS的自检程序检测到外插卡,外插卡的内存地址空间为512G;
2)、PCIE设备初始化,资源分配;
3)、BIOS检测CPU的内存寻址范围为64G,判断地址范围不够用;
4)、为外插卡分配虚拟的地址,启动进入OS。
5)、BIOS修改PciResourceMem64Base和PciResourceMem64Base,从64G起建立512G的虚拟空间;
6)、BIOS修改FakeMMIObase和FakeMMIOSize,定义虚拟地址的base和长度与检测到外插卡的起始地址和长度一致,为512G。
7)、把分配的虚拟地址定义为MMIO,加入内存地址映射空间供BIOS使用。
以上所述只是本发明的优选实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也被视为本发明的保护范围。
Claims (6)
1.一种解决外插卡内存地址不够分配的方法,其特征是,具体包括以下步骤:
1)、BIOS的自检程序检测到外插卡;
2)、PCIE设备初始化,资源分配;
3)、BIOS检测CPU的内存寻址范围,并判断地址范围是否够用;
4)、如果够用,则使用真实的地址为外插卡分配资源,启动进入OS;否则执行步骤5)操作;
5)、为外插卡分配虚拟的地址,启动进入OS。
2.根据权利要求1所述的一种解决外插卡内存地址不够分配的方法,其特征是,步骤3)中BIOS检测CPU的内存寻址范围,并判断地址范围是否够用的方法具体包括:
31)、BIOS读取CPU内部寄存器;
32)、得到CPU支持的地址线根数N,从而得到CPU自身支持的地址范围0-2N;
33)、BIOS检测外插卡的地址空间,判断其是否大于2N,如果是,则表示CPU地址范围不够用;否则,表示CPU地址范围够用。
3.根据权利要求1所述的一种解决外插卡内存地址不够分配的方法,其特征是,步骤5)操作中为外插卡分配虚拟的地址的具体方法包括:
51)、BIOS修改PciResourceMem64Base和PciResourceMem64Base;
52)、BIOS修改FakeMMIObase和FakeMMIOSize;
53)、把分配的虚拟地址加入MMIO。
4.根据权利要求3所述的一种解决外插卡内存地址不够分配的方法,其特征是,步骤51)操作中修改PciResourceMem64Base和PciResourceMem64Base的具体方式为:
从CPU支持的最大地址范围起建立虚拟地址,虚拟地址的长度为从CPU支持的最大地址范围起的外插卡内存地址的空间。
5.根据权利要求3所述的一种解决外插卡内存地址不够分配的方法,其特征是,步骤52)操作中BIOS修改FakeMMIObase和FakeMMIOSize的具体方法为:
定义虚拟地址的base和长度与检测到外插卡的起始地址和长度一致。
6.根据权利要求3所述的一种解决外插卡内存地址不够分配的方法,其特征是,步骤53)操作中把分配的虚拟地址加入MMIO的方法具体包括:
把虚拟地址定义为MMIO,加入内存地址映射空间供BIOS使用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710358593.2A CN107193752B (zh) | 2017-05-19 | 2017-05-19 | 一种解决外插卡内存地址不够分配的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710358593.2A CN107193752B (zh) | 2017-05-19 | 2017-05-19 | 一种解决外插卡内存地址不够分配的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107193752A true CN107193752A (zh) | 2017-09-22 |
CN107193752B CN107193752B (zh) | 2020-08-25 |
Family
ID=59875228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710358593.2A Active CN107193752B (zh) | 2017-05-19 | 2017-05-19 | 一种解决外插卡内存地址不够分配的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107193752B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1071234A2 (en) * | 1999-07-19 | 2001-01-24 | General Instrument Corporation | Implementation of opportunistic data on a statistical multiplexing encoder |
CN1920783A (zh) * | 2005-08-24 | 2007-02-28 | 英业达股份有限公司 | 存储器测试方法 |
US20070276994A1 (en) * | 2006-05-23 | 2007-11-29 | Jason Caulkins | Methods for managing data writes and reads to a hybrid solid-state disk drive |
CN102110054A (zh) * | 2009-12-23 | 2011-06-29 | Tcl集团股份有限公司 | 一种pci设备与系统内存的通讯方法和装置 |
US20110302357A1 (en) * | 2010-06-07 | 2011-12-08 | Sullivan Jason A | Systems and methods for dynamic multi-link compilation partitioning |
US8103912B2 (en) * | 2008-09-07 | 2012-01-24 | EADS North America, Inc. | Sequencer and test system including the sequencer |
CN102646074A (zh) * | 2012-02-22 | 2012-08-22 | 中国人民解放军国防科学技术大学 | 龙芯3a平台大内存设备的地址映射方法 |
CN104182352A (zh) * | 2014-08-19 | 2014-12-03 | 湖北盛天网络技术股份有限公司 | 用于访问4gb以上物理内存地址空间的方法及装置 |
CN105138487A (zh) * | 2015-08-26 | 2015-12-09 | 浪潮电子信息产业股份有限公司 | 一种外插卡cpld/fpga程序下载方法 |
CN106100953A (zh) * | 2016-05-20 | 2016-11-09 | 北京百度网讯科技有限公司 | PCIe 设备共享网络的生成方法、装置及系统 |
-
2017
- 2017-05-19 CN CN201710358593.2A patent/CN107193752B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1071234A2 (en) * | 1999-07-19 | 2001-01-24 | General Instrument Corporation | Implementation of opportunistic data on a statistical multiplexing encoder |
CN1920783A (zh) * | 2005-08-24 | 2007-02-28 | 英业达股份有限公司 | 存储器测试方法 |
US20070276994A1 (en) * | 2006-05-23 | 2007-11-29 | Jason Caulkins | Methods for managing data writes and reads to a hybrid solid-state disk drive |
US8103912B2 (en) * | 2008-09-07 | 2012-01-24 | EADS North America, Inc. | Sequencer and test system including the sequencer |
CN102110054A (zh) * | 2009-12-23 | 2011-06-29 | Tcl集团股份有限公司 | 一种pci设备与系统内存的通讯方法和装置 |
US20110302357A1 (en) * | 2010-06-07 | 2011-12-08 | Sullivan Jason A | Systems and methods for dynamic multi-link compilation partitioning |
CN102646074A (zh) * | 2012-02-22 | 2012-08-22 | 中国人民解放军国防科学技术大学 | 龙芯3a平台大内存设备的地址映射方法 |
CN104182352A (zh) * | 2014-08-19 | 2014-12-03 | 湖北盛天网络技术股份有限公司 | 用于访问4gb以上物理内存地址空间的方法及装置 |
CN105138487A (zh) * | 2015-08-26 | 2015-12-09 | 浪潮电子信息产业股份有限公司 | 一种外插卡cpld/fpga程序下载方法 |
CN106100953A (zh) * | 2016-05-20 | 2016-11-09 | 北京百度网讯科技有限公司 | PCIe 设备共享网络的生成方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107193752B (zh) | 2020-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11048492B2 (en) | Reducing downtime while patching binaries on a cluster | |
WO2019029160A1 (zh) | 应用程序构建方法、系统、计算机设备和存储介质 | |
CN103365702B (zh) | IaaS云环境下轻量级虚拟机进程追踪系统和方法 | |
US10241824B2 (en) | Identifying application usage roles for devices provided to virtual machines | |
US9606899B1 (en) | Software testing using shadow requests | |
US10042744B2 (en) | Adopting an existing automation script to a new framework | |
US10521259B2 (en) | Device and method for monitoring resources in full virtualization system | |
CN105357204B (zh) | 生成终端识别信息的方法及装置 | |
CN105868389A (zh) | 一种基于mongoDB的数据沙盒实现方法及系统 | |
US20150169850A1 (en) | Execution-Based License Discovery and Optimization | |
CN112732567B (zh) | 基于ip的mock数据测试方法、装置、电子设备及存储介质 | |
CN109271414A (zh) | 一种基于ipc的数据库本地通信的审计方法 | |
CN106708727B (zh) | 一种分布式病毒特征样本验证方法及系统 | |
GB2616578A (en) | Anticipated containerized infrastructure used in performing cloud migration | |
CN104298918B (zh) | 一种在虚拟机中基于数据块的病毒扫描方法和系统 | |
CN113835897A (zh) | 一种在分布式计算集群Kubernetes上对GPU资源进行分配使用的方法 | |
US9703573B1 (en) | Interposer for dynamic mapping of API calls | |
CN113220367A (zh) | 小程序的运行方法、装置、电子设备及存储介质 | |
CN107193752A (zh) | 一种解决外插卡内存地址不够分配的方法 | |
WO2018040271A1 (zh) | 线程处理器及线程处理方法 | |
CN114338051B (zh) | 区块链获取随机数的方法、装置、设备和介质 | |
US9378057B2 (en) | Paravirtualized migration counter | |
CN102546628A (zh) | 一种样本鉴定方法及系统 | |
CN114416596A (zh) | 一种测试应用的方法、装置、计算机设备及存储介质 | |
CN104182339B (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200727 Address after: 215100 No. 1 Guanpu Road, Guoxiang Street, Wuzhong Economic Development Zone, Suzhou City, Jiangsu Province Applicant after: SUZHOU LANGCHAO INTELLIGENT TECHNOLOGY Co.,Ltd. Address before: 450018 Henan province Zheng Dong New District of Zhengzhou City Xinyi Road No. 278 16 floor room 1601 Applicant before: ZHENGZHOU YUNHAI INFORMATION TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |