CN104268101B - 一种存储空间分配方法及装置 - Google Patents

一种存储空间分配方法及装置 Download PDF

Info

Publication number
CN104268101B
CN104268101B CN201410485867.0A CN201410485867A CN104268101B CN 104268101 B CN104268101 B CN 104268101B CN 201410485867 A CN201410485867 A CN 201410485867A CN 104268101 B CN104268101 B CN 104268101B
Authority
CN
China
Prior art keywords
memory
controller hub
driver
memory controller
space
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
Application number
CN201410485867.0A
Other languages
English (en)
Other versions
CN104268101A (zh
Inventor
李丰旺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dawning Information Industry Co Ltd
Original Assignee
WUXI CITY CLOUD COMPUTER CENTER CO Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by WUXI CITY CLOUD COMPUTER CENTER CO Ltd filed Critical WUXI CITY CLOUD COMPUTER CENTER CO Ltd
Priority to CN201410485867.0A priority Critical patent/CN104268101B/zh
Publication of CN104268101A publication Critical patent/CN104268101A/zh
Application granted granted Critical
Publication of CN104268101B publication Critical patent/CN104268101B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Multi Processors (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种存储空间分配方法及装置,方法包括:接收驱动程序申请存储空间的请求;确定多个可分配存储空间的内存控制器;在多个内存控制器上的内存空间择一分配驱动程序所需的存储空间。由于本发明实施例所提供的技术方案,在驱动程序申请内存的存储空间时,交替使用服务器上的多个内存控制器上的内存空间为驱动程序分配驱动程序所需的存储空间,为后续读写数据提供多通道,实现多通道读写、并行处理,提高了应用程序读写数据的速度,解决了现有技术所存在的读写速度较慢的问题。

Description

一种存储空间分配方法及装置
技术领域
本发明涉及数据处理技术领域,尤其涉及一种存储空间分配方法及装置。
背景技术
龙芯是中国科学院计算所自主研发的通用CPU,采用简单指令集。其中,龙芯3B双路服务器(16核)支持4个内存控制器,在这个平台的高速网络设备为插在主板上的增强型外设部件互连标准(PCI-E,Peripheral Component Interconnect)设备,采用了零拷贝技术。零拷贝技术的基本思想是:数据报从网络设备到用户空间传递的过程中,减少数据拷贝次数、系统调用,实现CPU的零参与,实现零拷贝最主要技术是直接内存存取(DMA,DirectMemory Access)数据传输技术和内存区域映射技术。驱动程序申请缓冲区直接映射到用户空间,这样,数据就可以直接通过DMA写入内存,也就是用户空间。
目前,驱动程序申请的空间是通过调用内核的分页函数得到的一段连续的空间,申请的缓冲区数目和服务器的核数是一致的,也即16个。
现有技术不足在于:
由于驱动程序申请空间是通过调用内核的分页函数来实现,这样就不能保证申请到的16个缓冲区分布在不同的内存控制器上,可能导致应用程序读写网络设备数据的速度较慢。
发明内容
本发明实施例提出了一种存储空间分配方法及装置,解决了现有技术中应用程序读写网络设备数据速度较慢的技术问题。
本发明实施例提供了一种存储空间分配方法,包括如下步骤:
接收驱动程序申请存储空间的请求;
确定多个可分配存储空间的内存控制器;
在多个内存控制器上的内存空间择一分配驱动程序所需的存储空间。
本发明实施例提供了一种存储空间分配装置,包括:
接收单元,用于接收驱动程序申请存储空间的请求;
确定单元,用于确定多个可分配存储空间的内存控制器;
分配单元,用于在多个内存控制器上的内存空间择一分配驱动程序所需的存储空间。
有益效果如下:
当前驱动程序申请内存中的存储空间时可能存在应用程序读写速度较慢的问题,由于本发明实施例所提供的技术方案,在驱动程序申请存储空间时,首先确定多个可以分配存储空间的内存控制器,然后在这多个内存控制器上的内存空间选择其中一个来分配驱动程序所需的存储空间,从而使得驱动程序申请的存储空间可以分布在不同内存控制器上的内存空间,避免了现有技术中由于利用分页函数分配存储空间的随机性导致数据读写速度较慢的技术问题,提高了应用程序读写数据的速度。
附图说明
下面将参照附图描述本发明的具体实施例,其中:
图1示出了本发明实施例中存储空间分配方法实施的流程示意图;
图2示出了本发明实施例中存储空间分配实例示意图;
图3示出了本发明实施例中存储空间分配装置的结构示意图。
具体实施方式
为了使本发明的技术方案及优点更加清楚明白,以下结合附图对本发明的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本发明的一部分实施例,而不是所有实施例的穷举。并且在不冲突的情况下,本说明中的实施例及实施例中的特征可以互相结合。
针对现有技术的不足,本发明实施例提出了一种存储空间分配方法及装置,下面进行说明。
图1示出了本发明实施例存储空间分配方法实施的流程示意图,如图所示,可以包括:
步骤101、接收驱动程序申请存储空间的请求;
步骤102、确定多个可分配存储空间的内存控制器;
步骤103、在多个内存控制器上的内存空间择一分配驱动程序所需的存储空间。
实施中,存储空间可以为用来缓冲输入或输出数据的缓冲区。
本发明实施例在驱动程序申请缓冲区时,不同的缓冲区交替使用服务器中各个内存控制器上的内存空间,从而实现多通道读写、并行处理,提高了应用程序读写数据的速度,解决了现有技术所存在的读写速度较慢的问题。
实施中,择一可以为:确定上一次分配存储空间的内存控制器;在除上一次分配存储空间的内存控制器之外的其他内存控制器上的内存空间分配驱动程序所需的存储空间。
实施中,这些内存控制器的内存空间可以采用统一编址。
实施中,择一可以为:根据上一次分配存储空间的内存控制器以及编址顺序确定本次为驱动程序分配存储空间的内存控制器;
在该内存控制器的内存空间上分配驱动程序所需的存储空间。
本发明实施例通过采用按照编址顺序,轮流或者交替使用服务器上内存控制器的内存空间,使得所有内存控制器的内存空间都可以充分利用起来,实现数据读写速度的最大化。
实施中,择一可以为:选择在已分配空间最少的内存控制器的内存空间上分配驱动程序所需的存储空间。
本发明实施例通过确定已分配空间最少的内存控制器,使得服务器上所有内存控制器的内存空间相对均匀的使用或分配,避免了某一内存控制器的内存空间使用率相对较高而其他内存控制器的内存空间使用率较低的问题,有效提高数据读写速度。
实施中,可以接收16个申请存储空间的请求,在4个内存控制器的内存空间上分配存储空间。
以龙芯3B双路服务器为例,在北桥芯片级里设计有四个内存控制器,这四个内存控制器可以相互独立工作,每个内存控制器控制一个内存通道。由于本发明实施例在驱动程序申请缓冲区时是交替在这4个内存控制器上的内存空间进行的,因此,在这四个内存中CPU可分别寻址、读取数据,从而使内存的带宽更多、数据存取速度也相应的提高。
为了便于本发明的实施,下面以实例进行说明。
假设驱动程序申请16个缓冲区,服务器上有4个内存控制器,这4个内存控制器上的内存空间分别称为DIMM0、DIMM1、DIMM2、DIMM3。
当第一次接收到驱动程序的申请缓冲区请求时,为其在内存控制器的内存空间DIMM0上分配0号缓冲区;当第二次接收到驱动程序的申请缓冲区请求时,为其在内存控制器的内存空间DIMM1上分配1号缓冲区;当第三次接收到驱动程序的申请缓冲区请求时,为其在内存控制器的内存空间DIMM2上分配2号缓冲区;当第四次接收到驱动程序的申请缓冲区请求时,为其在内存控制器的内存空间DIMM3上分配3号缓冲区;
当第五次接收到驱动程序的申请缓冲区请求时,为其在内存控制器的内存空间DIMM0上分配4号缓冲区;
以此类推,使得这16个缓冲区交替在这4个内存控制器上的内存空间上,分配完成后,如下所示:
0,4,8,12号缓冲区在DIMM0;
1,5,9,13号缓冲区在DIMM1;
2,6,10,14号缓冲区在DIMM2;
3,7,11,15号缓冲区在DIMM3。
这样,即使用户空间上的应用程序开启16个线程时,也可以同时达到对内存的并行读写,如图2所示。因此,采用本发明实施例的技术方案,不会导致竞争,从而提高设备读写速度。
本发明实施例提供了一种龙芯刀片服务器下高速网络设备优化读写性能的方法,它主要是通过在申请连续内存的时候,在不同的内存控制器上进行申请空间,从而达到多通道可以并行处理,提高内存的读写速度。
基于同一发明构思,本发明实施例中还提供了一种存储空间分配装置,由于这些设备解决问题的原理与一种存储空间分配方法相似,因此这些设备的实施可以参见方法的实施,重复之处不再赘述。
如图3所示,装置可以包括:
接收单元301,用于接收驱动程序申请存储空间的请求;
确定单元302,用于确定多个可分配存储空间的内存控制器;
分配单元303,用于在多个内存控制器上的内存空间择一分配驱动程序所需的存储空间。
实施中,接收单元301可以进一步用于接收驱动程序的申请用于输入或输出数据的缓冲区的请求,分配单元303进一步用于在多个内存控制器上的内存空间分配驱动程序所需的缓冲区。
实施中,确定单元302可以进一步用于确定上一次分配存储空间的内存控制器;分配单元303可以进一步用于在除上一次分配存储空间的内存控制器之外的其他内存控制器上的内存空间分配驱动程序所需的存储空间。
实施中,分配单元303可以进一步用于在采用统一编址的内存空间分配驱动程序所需的存储空间。
实施中,确定单元302可以进一步用于确定上一次分配存储空间的内存控制器后,根据上一次分配存储空间的内存控制器以及编址顺序确定本次为驱动程序分配所需存储空间的内存控制器;分配单元303可以进一步用于在该内存控制器的内存空间上分配驱动程序所需的存储空间。
实施中,分配单元303可以进一步用于选择在已分配空间最少的内存控制器的内存空间上分配驱动程序所需的存储空间。
实施中,接收单元301可以进一步用于接收16个申请存储空间的请求;分配单元303可以进一步用于在4个内存控制器上的内存空间分配存储空间。
上述实施例中,均可以采用现有的功能元器件模块来实施。例如,接收单元,可以是任意一个具备数据接收功能的设备都具备的元器件;至于确定单元,则可以是任意一个具备确定功能的设备都具备的元器件;分配单元可以采用现有的存储空间分配元器件,至少,现有存储器技术中采用的服务器上便具备实现该功能元器件,本领域技术人员经过相应的设计开发即可实现。
为了描述的方便,以上所述装置的各部分以功能分为各种模块或单元分别描述。当然,在实施本发明时可以把各模块或单元的功能在同一个或多个软件或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

Claims (6)

1.一种存储空间分配方法,其特征在于,包括如下步骤:
接收驱动程序申请存储空间的请求;
确定多个可分配存储空间的内存控制器;
在多个内存控制器上的内存空间择一分配驱动程序所需的存储空间;
所述多个内存控制器的内存空间采用统一编址;
所述的择一为:根据上一次分配存储空间的内存控制器以及编址顺序确定本次为驱动程序分配存储空间的内存控制器;
在所述本次为驱动程序分配存储空间的内存控制器的内存空间上分配驱动程序所需的存储空间。
2.如权利要求1所述的方法,其特征在于,所述的择一为:确定上一次分配存储空间的内存控制器;在除上一次分配存储空间的内存控制器之外的内存控制器上的内存空间分配驱动程序所需的存储空间。
3.如权利要求1至2任一所述的方法,其特征在于,所述的择一为:选择在已分配空间最少的内存控制器的内存空间上分配驱动程序所需的存储空间。
4.一种存储空间分配装置,其特征在于,包括:
接收单元,用于接收驱动程序申请存储空间的请求;
确定单元,用于确定多个可分配存储空间的内存控制器;
分配单元,用于在多个内存控制器上的内存空间择一分配驱动程序所需的存储空间;
所述分配单元进一步用于在采用统一编址的内存空间分配驱动程序所需的存储空间;
所述确定单元进一步用于根据上一次分配存储空间的内存控制器以及编址顺序确定本次为驱动程序分配存储空间的内存控制器;
所述分配单元进一步用于在所述本次为驱动程序分配存储空间的内存控制器的内存空间上分配驱动程序所需的存储空间。
5.如权利要求4所述的装置,其特征在于,所述确定单元进一步用于确定上一次分配存储空间的内存控制器;
所述分配单元进一步用于在除上一次分配存储空间的内存控制器之外的内存控制器上的内存空间分配驱动程序所需的存储空间。
6.如权利要求4至5任一所述的装置,其特征在于,所述分配单元进一步用于选择在已分配空间最少的内存控制器的内存空间上分配驱动程序所需的存储空间。
CN201410485867.0A 2014-09-22 2014-09-22 一种存储空间分配方法及装置 Active CN104268101B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410485867.0A CN104268101B (zh) 2014-09-22 2014-09-22 一种存储空间分配方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410485867.0A CN104268101B (zh) 2014-09-22 2014-09-22 一种存储空间分配方法及装置

Publications (2)

Publication Number Publication Date
CN104268101A CN104268101A (zh) 2015-01-07
CN104268101B true CN104268101B (zh) 2017-12-05

Family

ID=52159624

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410485867.0A Active CN104268101B (zh) 2014-09-22 2014-09-22 一种存储空间分配方法及装置

Country Status (1)

Country Link
CN (1) CN104268101B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110377426B (zh) * 2019-07-19 2021-09-17 苏州浪潮智能科技有限公司 一种数据传输方法、系统及相关组件

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1130520A1 (en) * 2000-02-29 2001-09-05 Quantum Corporation Self-tuning memory management for computer systems
CN101639811A (zh) * 2009-08-21 2010-02-03 成都市华为赛门铁克科技有限公司 数据写入的方法、控制器和多控制器系统
CN103136110A (zh) * 2013-02-18 2013-06-05 华为技术有限公司 内存管理方法、内存管理装置及numa系统
CN103246616A (zh) * 2013-05-24 2013-08-14 浪潮电子信息产业股份有限公司 一种长短周期访问频度的全局共享缓存替换方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1130520A1 (en) * 2000-02-29 2001-09-05 Quantum Corporation Self-tuning memory management for computer systems
CN101639811A (zh) * 2009-08-21 2010-02-03 成都市华为赛门铁克科技有限公司 数据写入的方法、控制器和多控制器系统
CN103136110A (zh) * 2013-02-18 2013-06-05 华为技术有限公司 内存管理方法、内存管理装置及numa系统
CN103246616A (zh) * 2013-05-24 2013-08-14 浪潮电子信息产业股份有限公司 一种长短周期访问频度的全局共享缓存替换方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
多核结构片上网络性能_能耗分析及优化方法;张帅等;《计算机学报》;20130531;第36卷(第5期);第988-1001页 *

Also Published As

Publication number Publication date
CN104268101A (zh) 2015-01-07

Similar Documents

Publication Publication Date Title
CN106056529B (zh) 一种对用于图片识别的卷积神经网络训练的方法与设备
US20170220667A1 (en) Independent data processing environments within a big data cluster system
US9798471B2 (en) Performance of de-clustered disk array by disk grouping based on I/O statistics
CN105283855B (zh) 一种寻址方法及装置
US9405711B2 (en) On-chip traffic prioritization in memory
CN102073461B (zh) 输入输出请求调度方法、相关装置和存储阵列
DE102013017509A1 (de) Effiziente Speichervirtualisierung in mehrsträngigen Verarbeitungseinheiten
DE102013017510A1 (de) Effiziente Speichervirtualisierung in mehrsträngigen Verarbeitungseinheiten
CN105843819B (zh) 一种数据导出方法及装置
CN105868028A (zh) 一种进程间共享数据的方法、装置及终端
DE102012221502A1 (de) System und Verfahren zum Durchführen von gestalteter-Speicherzugriff-Operationen
CN109213697A (zh) 智能存储器数据存储或加载方法和装置
CN114185818B (zh) 基于扩展页表的gpu访存自适应优化方法及装置
CN103970870A (zh) 数据库查询方法和服务器
DE102013205886A1 (de) Dynamische Bankmodus-Adressierung für Speicherzugriff
CN105320608A (zh) 用于控制存储器设备处理访问请求的存储器控制器和方法
JP2016532933A (ja) メモリで制御されるデータ移動及びタイミング
CN106534308A (zh) 一种分布式存储系统中解决数据块访问热点的方法及装置
CN110333827B (zh) 一种数据加载装置和数据加载方法
US20190272238A1 (en) Determining memory access categories for tasks coded in a computer program
CN104050115A (zh) 一种存储控制器及其使用方法
US8869155B2 (en) Increasing parallel program performance for irregular memory access problems with virtual data partitioning and hierarchical collectives
TW201931801A (zh) 一種資源映射方法及裝置、設備
CN106796536A (zh) 用于多操作系统的内存访问方法、装置和电子设备
CN103634374B (zh) 一种并发访问请求的处理方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220110

Address after: 1-3 / F, No.15 Haitai Huake street, Huayuan Industrial Zone, Xiqing District, Tianjin

Patentee after: DAWNING INFORMATION INDUSTRY Co.,Ltd.

Address before: 214131 North 1st floor, block B, whale tower, Wuxi (National) software park, No. 18, Zhenze Road, Wuxi City, Jiangsu Province

Patentee before: WUXI CITY CLOUD COMPUTING CENTER CO.,LTD.

TR01 Transfer of patent right