CN106201905B - 一种内存编址方法 - Google Patents

一种内存编址方法 Download PDF

Info

Publication number
CN106201905B
CN106201905B CN201610543080.4A CN201610543080A CN106201905B CN 106201905 B CN106201905 B CN 106201905B CN 201610543080 A CN201610543080 A CN 201610543080A CN 106201905 B CN106201905 B CN 106201905B
Authority
CN
China
Prior art keywords
access
memory
controller hub
memory controller
address
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
CN201610543080.4A
Other languages
English (en)
Other versions
CN106201905A (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.)
Inspur Beijing Electronic Information Industry Co Ltd
Original Assignee
Inspur Beijing Electronic Information Industry 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 Inspur Beijing Electronic Information Industry Co Ltd filed Critical Inspur Beijing Electronic Information Industry Co Ltd
Priority to CN201610543080.4A priority Critical patent/CN106201905B/zh
Publication of CN106201905A publication Critical patent/CN106201905A/zh
Application granted granted Critical
Publication of CN106201905B publication Critical patent/CN106201905B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

本发明公开了一种内存编址方法,该方法包括:调整内存全局编址算法,将访问指令中地址位的中间M位值作为片选值;M大于等于1,M为正整数;依据作为片选值的中间M位值,将内存数据均衡地分配给不同内存控制器进行控制。该方法实现降低非统一内存访问系统中内存访问的拥塞概率,提高系统的并发性。

Description

一种内存编址方法
技术领域
本发明涉及处理器系统技术领域,特别是涉及一种内存编址方法。
背景技术
目前,在当前多处理器系统之中,随着系统规模的扩大,多处理器之间连接方式由总线连接逐渐转为点对点互连,内存也从挂接处理器外部桥接芯片转变为直接挂接处理器。由于内存挂接方式的变化,内存在系统中的分布也发生变化,从而导致多处理器系统中内存访问的非均一性,故当前多处理器系统多为NUMA(Non-Uniform Memory Access,非统一内存访问)架构系统。
在整个NUMA系统中多个内存的编址方式大多是采用连续编址的方式,该方式的优点就是实现简单,逻辑清晰。每个内存控制器独立负责一片连续地址空间中的连续一段。在系统运行过程中,鉴于访存操作的局部性原理,在同一个内存控制器中的连续地址空间在一段时间内都有被访问的可能,若运行于整个系统的计算机应用程序的访存操作优化不合理,对内存地址的访问分布不均衡,访存指令集中于少量或者单一内存的话,多处理器的访存操作势必造成拥塞降低整个系统的运行性能。
发明内容
本发明的目的是提供一种内存编址方法,以实现降低非统一内存访问系统中内存访问的拥塞概率,提高系统的并发性。
为解决上述技术问题,本发明提供一种内存编址方法,应用于非统一内存访问系统,该方法包括:
调整内存全局编址算法,将访问指令中地址位的中间M位值作为片选值;M大于等于1,M为正整数;
依据作为片选值的中间M位值,将内存数据均衡地分配给不同内存控制器进行控制。
优选的,所述内存全局编址算法用于放置内存数据以及所述访问指令中地址与多个内存控制器之间的映射。
优选的,所述片选值为内存控制器片选值。
优选的,所述将内存数据均衡地分配给不同内存控制器进行控制,包括:
将预设范围内的地址空间的内存数据分配给同一内存控制器进行控制,将超过所述预设范围的地址空间的内存数据分别分配给不同内存控制器进行控制。
优选的,所述方法还包括:
若两个访问操作并发,分别获取每个访问操作的访问地址的中间M位值;M大于等于1,M为正整数;
依据每个访问操作的访问地址的中间M位值,将所述两个并发操作分别映射到不同的两个内存控制器上。
优选的,所述将所述两个并发操作分别映射到不同的两个内存控制器上之后,还包括:
由所述不同的两个内存控制器分别进行读写操作。
优选的,所述内存控制器的个数为至少两个。
本发明所提供的一种内存编址方法,应用于非统一内存访问系统,调整内存全局编址算法,将访问指令中地址位的中间M位值作为片选值;M大于等于1,M为正整数;依据作为片选值的中间M位值,将内存数据均衡地分配给不同内存控制器进行控制。可见,在非统一内存访问系统中内存的编址采用地址位中间数位作为片选值,区别于传统的方式中使用地址位高位作为片选值的方式,即将传统的访存指令中地址位的高位作为片选值的方式更改为使用地址位的中间数位作为片选值,降低了在地址位高位值相同的情况下,内存访问拥塞的出现的概率,提高了系统的并发性,用以在满足一定程度的内存访问局部性需求的前提下,尽量将内存访问均匀分散到整个内存系统,提高系统的并发性,所以该方法实现降低非统一内存访问系统中内存访问的拥塞概率,提高系统的并发性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明所提供的一种内存编址方法的流程图;
图2为本地址ADDR示意图。
具体实施方式
本发明的核心是提供一种内存编址方法,以实现降低非统一内存访问系统中内存访问的拥塞概率,提高系统的并发性。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明所提供的一种内存编址方法的流程图,该方法应用于非统一内存访问系统,该方法包括:
S11:调整内存全局编址算法,将访问指令中地址位的中间M位值作为片选值;
其中,M大于等于1,M为正整数;
S12:依据作为片选值的中间M位值,将内存数据均衡地分配给不同内存控制器进行控制。
可见,在非统一内存访问系统中内存的编址采用地址位中间数位作为片选值,区别于传统的方式中使用地址位高位作为片选值的方式,即将传统的访存指令中地址位的高位作为片选值的方式更改为使用地址位的中间数位作为片选值,降低了在地址位高位值相同的情况下,内存访问拥塞的出现的概率,提高了系统的并发性,用以在满足一定程度的内存访问局部性需求的前提下,尽量将内存访问均匀分散到整个内存系统,提高系统的并发性,所以该方法实现降低非统一内存访问系统中内存访问的拥塞概率,提高系统的并发性。
具体的,内存全局编址算法用于放置内存数据以及访问指令中地址与多个内存控制器之间的映射。M就是代表位数的个数,即选定作为片选值的中间位数的个数,M的数值可自由设置,M大于等于1。例如M=4,就是将访问指令中地址位的中间4位值作为片选值。
其中,所述片选值为内存控制器片选值。
其中,内存控制器的个数为至少两个。
进一步的,步骤S12中将内存数据均衡地分配给不同内存控制器进行控制的过程具体为:将预设范围内的地址空间的内存数据分配给同一内存控制器进行控制,将超过预设范围的地址空间的内存数据分别分配给不同内存控制器进行控制。
进一步的,上述方法还包括以下步骤:
S21:若两个访问操作并发,分别获取每个访问操作的访问地址的中间M位值;M大于等于1,M为正整数;
S22:依据每个访问操作的访问地址的中间M位值,将两个并发操作分别映射到不同的两个内存控制器上。
其中,将两个并发操作分别映射到不同的两个内存控制器上之后,由不同的两个内存控制器分别进行读写操作。
在传统NUMA系统中,内存系统采用连续编址的方式进行访问,这种方式易发生内存访问拥塞的情况。本发明提出一种内存编址方法,用于非统一内存访问系统,将传统的访存指令中地址位的高位作为片选值的方式更改为使用地址位的中间数位作为片选值,降低了在地址位高位值相同的情况下,内存访问拥塞的出现的概率,提高了系统的并发性,在NUMA系统中内存的编址采用地址位中间数位作为片选值,区别于传统的方式中使用地址位高位作为片选值的方式,用以在满足一定程度的内存访问局部性需求的前提下,尽量将内存访问均匀分散到整个内存系统,提高系统的并发性。本发明可以有效降低NUMA系统中内存访问的拥塞问题,增加NUMA系统中内存访问的并发性,提高系统的整体性能。
本方法中,调整内存全局编址算法,将访问指令中地址位的中间M位值作为片选值,得到了将访存指令中地址位的中间M位值作为内存控制器片选值的内存全局编址算法,用于内存数据的放置以及访存指令中地址与多个内存控制器之间的映射。
通过调整内存全局编址算法,将内存数据较均衡的分散放置于不同内存控制器控制之下,将一定范围N字节的地址空间的数据放置在同一内存控制器之下,将超过这一范围的地址空间分别放置在不同内存控制器之下,既满足了内存访问的局部性需求,又不会造成将大量针对连续地址空间的访问集中到同一个内存控制器从而产生拥塞的情况。
图2为本地址ADDR示意图。假设本发明所应用的系统中内存的地址空间范围为0~2N,那么访存指令地址ADDR的有效长度<=N bits,如图2所示,地址位0~N-1。
在传统的划分方式中,ADDR的高M位可作为片选信号,M值的大小取决于内存条数,剩余低N-M位作为片内地址偏移,进行读写操作。如图2标黑所示,本发明中,将N位ADDR的中间M位作为片选信号,M=4,偏移offset=4,剩余的N-M位地址作为片内偏移,进行读写操作,本文中M和offset的具体取值只作为说明用,并非确定值,具体值需根据系统规模进行调整至最优。
详细的,根据访存操作的局部性原理,假设要对地址段addrs:0xAF0~0xAFF地址空间连续访问,addrs的中间M位的值为0xF(0b1111),那么这一批访存操作将都会映射到0xF内存控制器上,加上内存控制器对局部性访问的优化,可以取得比较好的读写性能。
假设有两个访存操作并发,访问地址分别为addr1:0xBF0,addr1:OxBA0。addr1的中间M位的值为0xF(0b1111),addr2的中间M位的值为0xA(0b1010),那么这两笔访存操作将分别映射到0xF和0xA两个内存控制器上。由于分别由两个内存控制器进行读写操作,互不干扰,可以实现并发。在传统编址实现方式上就会将这两个访存操作映射到同一个0xB内存控制器之上,造成等待,0xB是这两个访存操作的地址高位值,推广到多处理器并发处理访存的类似场景,很有可能造成对单一内存控制器的访问拥塞,而本发明则很好的降低了拥塞发生的概率。当然本发明可适用多个访存操作并发场景,上述以两笔操作为例。
本发明不同地方在于两个访存操作的高位地址不同,中间M位相同的情况,本发明会比传统方式造成更多的拥塞情况。本发明可以将计算机应用程序的访存地址比较均匀的分布于整个地址空间范围,可以比较有效的解决访存操作拥塞的问题。本发明能够有效的控制计算机应用程序对连续地址空间访问的过程中的拥塞,提高访存效率,增强系统整体性能。
在类CC-NUMA系统的研发测试初期,测试强度以及复杂度远比不上系统在真实环境运行,本发明可以将访存操作分散化,分布于整个系统的所有内存控制器。这样就能够有效的增加测试的覆盖范围,包括所有带测试单元器件以及处理器和内存控制器之间的交互网络。
综上,本发明所提供的一种内存编址方法,应用于非统一内存访问系统,调整内存全局编址算法,将访问指令中地址位的中间M位值作为片选值;M大于等于1,M为正整数;依据作为片选值的中间M位值,将内存数据均衡地分配给不同内存控制器进行控制。可见,在非统一内存访问系统中内存的编址采用地址位中间数位作为片选值,区别于传统的方式中使用地址位高位作为片选值的方式,即将传统的访存指令中地址位的高位作为片选值的方式更改为使用地址位的中间数位作为片选值,降低了在地址位高位值相同的情况下,内存访问拥塞的出现的概率,提高了系统的并发性,用以在满足一定程度的内存访问局部性需求的前提下,尽量将内存访问均匀分散到整个内存系统,提高系统的并发性,所以该方法实现降低非统一内存访问系统中内存访问的拥塞概率,提高系统的并发性。
以上对本发明所提供的一种内存编址方法进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (4)

1.一种内存编址方法,其特征在于,应用于非统一内存访问系统,包括:
调整内存全局编址算法,将访问指令中地址位的中间M位值作为片选值;M大于等于1,M为正整数;
依据作为片选值的中间M位值,将内存数据均衡地分配给不同内存控制器进行控制;
其中,所述内存全局编址算法用于放置内存数据以及所述访问指令中地址与多个内存控制器之间的映射;所述片选值为内存控制器片选值;
其中,所述将内存数据均衡地分配给不同内存控制器进行控制,包括:
将预设范围内的地址空间的内存数据分配给同一内存控制器进行控制,将超过所述预设范围的地址空间的内存数据分别分配给不同内存控制器进行控制。
2.如权利要求1所述的方法,其特征在于,还包括:
若两个访问操作并发,分别获取每个访问操作的访问地址的中间M位值;M大于等于1,M为正整数;
依据每个访问操作的访问地址的中间M位值,将所述两个访问操作分别映射到不同的两个内存控制器上。
3.如权利要求2所述的方法,其特征在于,所述将所述两个访问操作分别映射到不同的两个内存控制器上之后,还包括:
由所述不同的两个内存控制器分别进行读写操作。
4.如权利要求1至3中任意一项所述的方法,其特征在于,所述内存控制器的个数为至少两个。
CN201610543080.4A 2016-07-11 2016-07-11 一种内存编址方法 Active CN106201905B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610543080.4A CN106201905B (zh) 2016-07-11 2016-07-11 一种内存编址方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610543080.4A CN106201905B (zh) 2016-07-11 2016-07-11 一种内存编址方法

Publications (2)

Publication Number Publication Date
CN106201905A CN106201905A (zh) 2016-12-07
CN106201905B true CN106201905B (zh) 2019-09-24

Family

ID=57476360

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610543080.4A Active CN106201905B (zh) 2016-07-11 2016-07-11 一种内存编址方法

Country Status (1)

Country Link
CN (1) CN106201905B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004362151A (ja) * 2003-06-03 2004-12-24 Hcx:Kk 車載電子装置
CN101034373A (zh) * 2007-03-27 2007-09-12 华为技术有限公司 一种外部存储器控制器及基于外部存储器控制器的地址变换的方法
CN103842968A (zh) * 2013-11-22 2014-06-04 华为技术有限公司 一种内存数据的迁移方法、计算机和装置
CN105452986A (zh) * 2013-08-08 2016-03-30 高通股份有限公司 用于具有选择性功率或性能优化的内存通道交织的系统和方法
CN105677373A (zh) * 2014-11-17 2016-06-15 杭州华为数字技术有限公司 一种节点热插拔的方法和numa节点

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004362151A (ja) * 2003-06-03 2004-12-24 Hcx:Kk 車載電子装置
CN101034373A (zh) * 2007-03-27 2007-09-12 华为技术有限公司 一种外部存储器控制器及基于外部存储器控制器的地址变换的方法
CN105452986A (zh) * 2013-08-08 2016-03-30 高通股份有限公司 用于具有选择性功率或性能优化的内存通道交织的系统和方法
CN103842968A (zh) * 2013-11-22 2014-06-04 华为技术有限公司 一种内存数据的迁移方法、计算机和装置
CN105677373A (zh) * 2014-11-17 2016-06-15 杭州华为数字技术有限公司 一种节点热插拔的方法和numa节点

Also Published As

Publication number Publication date
CN106201905A (zh) 2016-12-07

Similar Documents

Publication Publication Date Title
US4980822A (en) Multiprocessing system having nodes containing a processor and an associated memory module with dynamically allocated local/global storage in the memory modules
US7913041B2 (en) Cache reconfiguration based on analyzing one or more characteristics of run-time performance data or software hint
US6205528B1 (en) User specifiable allocation of memory for processes in a multiprocessor computer having a non-uniform memory architecture
CN100399300C (zh) 用于数据处理的系统和方法和用于分配资源的系统和方法
EP2480975B1 (en) Configurable cache for multiple clients
EP2179361B1 (en) Cache sector allocation
US20040215893A1 (en) Method for use of ternary cam to implement software programmable cache policies
CN105103144A (zh) 用于存储器的自适应控制的设备及方法
JP2004192622A (ja) クラスタベースのマルチプロセッサ無線ネットワークでのマイクロプロセッサ通信の方法およびデータ処理システム
JP2004192620A (ja) マルチプロセッサ・システムでのプロセッサ相互接続を使用するマイクロプロセッサ通信の方法およびデータ処理システム
US6421761B1 (en) Partitioned cache and management method for selectively caching data by type
US20220206944A1 (en) Cache allocation method and device, storage medium, and electronic device
CN115168247B (zh) 用于并行处理器中动态共享存储空间的方法及相应处理器
JP2004192619A (ja) マルチプロセッサ・システムでのマイクロプロセッサ通信の方法、処理ユニット、およびデータ処理システム
US6094710A (en) Method and system for increasing system memory bandwidth within a symmetric multiprocessor data-processing system
Siddique et al. Lmstr: Local memory store the case for hardware controlled scratchpad memory for general purpose processors
CN106201905B (zh) 一种内存编址方法
CN100377116C (zh) 处理器高速数据缓存重配置方法
CN110618872B (zh) 混合内存动态调度方法及系统
CN109324899B (zh) 基于PCIe池化硬件资源的编址方法、装置及主控节点
CN110704362A (zh) 一种处理器阵列局部存储混合管理技术
JP2004192621A (ja) クラスタベースのマルチプロセッサ・システムでのマイクロプロセッサ通信の方法およびデータ処理システム
EP3832470A1 (en) High bandwidth memory system with dynamically programmable distribution scheme
TW202219758A (zh) 在虛擬機器間無需複製而移動資料的技術
Das et al. A framework for block placement, migration, and fast searching in tiled-DNUCA architecture

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