CN101246466B - 多核系统中共享内存的管理方法和装置 - Google Patents

多核系统中共享内存的管理方法和装置 Download PDF

Info

Publication number
CN101246466B
CN101246466B CN2007101784054A CN200710178405A CN101246466B CN 101246466 B CN101246466 B CN 101246466B CN 2007101784054 A CN2007101784054 A CN 2007101784054A CN 200710178405 A CN200710178405 A CN 200710178405A CN 101246466 B CN101246466 B CN 101246466B
Authority
CN
China
Prior art keywords
internal memory
shared
overall situation
cpu
nucleus system
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.)
Expired - Fee Related
Application number
CN2007101784054A
Other languages
English (en)
Other versions
CN101246466A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN2007101784054A priority Critical patent/CN101246466B/zh
Publication of CN101246466A publication Critical patent/CN101246466A/zh
Priority to PCT/CN2008/073148 priority patent/WO2009067950A1/zh
Application granted granted Critical
Publication of CN101246466B publication Critical patent/CN101246466B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

本发明提供了一种多核系统中共享内存的管理方法和装置。该方法主要包括:在多核系统中,利用软件配置的方法,将硬件芯片层面上所有中央处理器CPU都能访问的同一片物理存储空间,灵活地配置成全局共享的内存和局部共享的内存;在系统软件层面上,配置各个CPU的访问权限,使所有中央处理器CPU都能够访问所述全局共享的内存,部分的多个CPU能够访问所述局部共享的内存。该装置主要包括:全局共享内存配置模块和局部共享内存配置模块。利用本发明,可以实现共享内存在各CPU之间自由传递,支持在各CPU上灵活配置内存共享方式,实现多种内存共享方式并存。从而可以简化多核间通信的过程,大大降低共享内存访问冲突的机率,有利于提高多核系统性能。

Description

多核系统中共享内存的管理方法和装置
技术领域
本发明涉及计算机应用领域,尤其涉及一种多核系统中共享内存的管理方法和装置。 
背景技术
当今电子、通信、IT行业中,不论是嵌入式系统,还是通用计算机系统,单核处理器的局限性日益明显,已经越来越不能满足用户对高性能、大容量的要求。于是,多核(即多CPU(Central Processing Unit,中央处理器))技术应运而生,并且不断发展、成熟,在市场中应用范围迅速扩大,多核技术取缔传统的单核技术已成为不可避免的趋势。 
多核内存管理技术是多核技术中的一种关键技术,整个系统架构都依赖于它,其性能的好坏直接影响到多核处理器的性能及其竞争力,因此,不断改进、优化多核内存管理技术对多核系统来说是非常重要的。 
现有技术中一种内存管理方法为:不支持内存在多核之间传递,当多核之间进行通信时,需要对内存内容进行多次复制。 
在该方案中,一种两个CPU之间进行通信时的原理示意图如图1所示,具体处理流程包括如下步骤: 
步骤1、CPU1从自己的内存空间内申请内存块; 
步骤2、CPU1构造数据包,该数据包中包含CPU1与CPU2的通信内容; 
步骤3、CPU1将上述数据包承载在申请的内存块中,并将数据包发送到CPU1与CPU2之间的通信线路上; 
步骤4、CPU1释放上述申请的内存块,以便内存块重复利用; 
步骤5、上述数据包通过通信线路被传输到CPU2; 
步骤6、CPU2从自己的内存空间内申请内存块; 
步骤7、CPU2从通信线路上读取上述数据包,并数据包存放到自己申请的内存块内; 
步骤8、CPU2处理上述数据包; 
步骤9、CPU2处理上述数据包完毕,释放申请的内存块,通信结束。 
在实现本发明的过程中,发明人发现上述现有技术中的内存管理方法的缺点为:由于内存不能在多核间传递,导致通信过程相当繁杂,其间的内存申请、释放开销大,而且,通信过程越复杂,其开销就越大。从而降低了系统性能,不能满足多核芯片、多核操作系统等前沿技术的新需求。 
发明内容
本发明实施例的目的是提供一种多核系统中共享内存的管理方法和装置,从而可以解决现有的由于内存不能在多核间传递,导致多核间通信过程繁杂,多核间通信的开销大的问题。 
本发明实施例的目的是通过以下技术方案实现的: 
一种多核系统中共享内存的管理方法,包括: 
根据多核系统中的各种业务数据包的长度,在多核系统中配置各种长度类型的全局共享的内存和局部共享的内存,多核系统中的所有中央处理器CPU都能够访问所述全局共享的内存,多核系统中的部分CPU能够访问所述局部共享的内存; 
所述多核系统中的CPU通过所述全局共享的内存和局部共享的内存来承载信息,当多核系统中存在多种类型的所述全局共享内存和/或所述局部共享的内存能够承载同一种业务数据包时,选择长度最小的类型的所述全局共享内存和/或所述局部共享的内存中的空闲内存块来承载所述业务数据包; 
将承载所述业务数据包的全局共享的内存在各个CPU之间进行传递,由最后使用所述全局共享的内存的CPU将所述全局共享的内存释放掉。 
一种多核系统中共享内存的管理装置,包括: 
全局共享内存配置模块,用于在多核系统中配置全局共享的内存,多核系统中的所有CPU都能够访问所述全局共享的内存; 
局部共享内存配置模块,用于在多核系统中配置局部共享的内存,多核  系统中的部分CPU能够访问所述局部共享的内存; 
内存类型配置模块,用于根据各种业务数据包的长度,配置对应的各种长度类型的所述全局共享的内存和/或所述局部共享的内存; 
内存匹配处理模块,用于当多核系统中存在多种类型的所述全局共享的内存和/或所述局部共享的内存能够承载同一种业务数据包时,选择长度最小的类型的所述全局共享的内存或所述局部共享的内存中的空闲内存块来承载所述业务数据包; 
内存传递模块,用于将承载所述业务数据包的全局共享的内存在各个CPU之间进行传递,由最后使用所述全局共享的内存的CPU将所述全局共享的内存释放掉。 
由上述本发明实施例提供的技术方案可以看出,本发明实施例通过在多核系统中配置全局共享的内存和局部共享的内存。从而可以支持共享内存在各CPU之间自由传递,大大降低了共享内存访问冲突的机率,有利于提高多核系统性能。 
附图说明
图1为现有技术中一种两个CPU之间进行通信的原理示意图; 
图2为本发明实施例一提供的一种多种共享方式并存的内存共享示意图; 
图3为本发明实施例一提供的通过内存映射实现的全局共享区和局部共享区的划分原理示意图; 
图4为本发明实施例一提供的一种在多核间传递内存块的示意图; 
图5为本发明实施例二提供的一种多种类型的共享内存的利用率示意图; 
图6为本发明实施例二提供的一种基于最小匹配原则的内存匹配处理流程图; 
图7为本发明实施例三提供的一种内存层面的多播技术原理示意图; 
图8为本发明实施例四提供的实现多核内存共享的处理装置的实施例的结构示意图。 
具体实施方式
本发明实施例提出了多核间全局共享(Global Shared)、局部共享(Local Shared)、全共享(Full Shared)、半共享(Half Shared)等多种共享方式并存的内存共享技术。下面分别介绍上述各种共享方式。 
全局共享:全局共享的内存从访问权限的角度考虑,所有CPU均可以访问; 
局部共享:局部共享的内存从访问权限的角度考虑,仅有部分CPU可以访问,其它CPU不能访问; 
全共享:全共享的内存从操作权限的角度考虑,访问的CPU可完全控制; 
半共享:半共享的内存从操作权限的角度考虑,访问的CPU只有部分权限,比如可读但不能写,可使用内存但不能申请内存等。 
基于上述各种共享方式,本发明实施例在多核系统中配置上述全局共享的内存和局部共享的内存。 
并且,在所述全局共享的内存中配置全局全共享和全局半共享的内存,多核系统中的所有CPU都能够对所述全局全共享的内存进行完全控制,多核系统中的部分CPU能够对所述全局半共享的内存进行完全控制,而其它CPU只能够对所述全局半共享的内存进行部分控制。 
并且,在所述局部共享的内存中配置局部全共享和局部半共享的内存,多核系统中的能够访问所述局部共享的内存的部分CPU都能够对所述局部全共享的内存进行完全控制,能够访问所述局部共享的内存的部分CPU中的特定CPU,能够对所述局部半共享的内存进行完全控制。 
本发明实施例根据多核系统中的各种业务数据包的长度,配置各种长度类型的所述全局共享的内存和局部共享的内存。当多核系统中存在多种类型的所述全局共享内存和/或所述局部共享的内存能够承载同一种业务数据包时,选择长度最小的类型的所述全局共享内存和/或所述局部共享的内存中的空闲内存块来承载所述业务数据包。 
本发明实施例将承载业务数据包的全局共享的内存在各个CPU之间进行传递,由最后使用所述全局共享的内存的CPU将所述全局共享的内存释放掉。将多播数据包承载于所述全局共享的内存中,将所述多播数据包的地址  信息复制多份,向各个目的CPU分别发送多份所述多播数据包的地址信息,所述各个目的CPU根据所述地址信息,从所述全局共享的内存中获取所述业务数据包。 
下面结合附图来详细描述本发明实施例。 
实施例一、该实施例提供的一种多种共享方式并存的内存共享示意图如图2所示,该多种共享方式并存的原理是将内存共享区划分成若干个子区域,并灵活设置每个子区域的访问权限和读写权限,以实现多种共享方式并存的目的。 
如图2所示,根据CPU应用模型,将共享内存划分成若干个全局共享区、局部共享区,全局共享区和局部共享区的划分与各CPU上业务分布有关。全局共享区允许所有CPU访问,局部共享区允许部分(一个或几个)CPU访问,各局部共享区之间不能互相访问。 
如图2所示,局部共享区1只允许CPU1和CPU2访问,局部共享区m只允许CPUn访问,全局共享区则允许所有CPU(CPU1~CPUn)访问。因此,通过将共享内存区划分成全局共享区和局部共享区,可以降低多CPU竞争的可能性,把原来的所有CPU竞争变成了部分CPU竞争或者完全不竞争(一个CPU独享局部共享区)。 
根据可访问内存区的各个CPU的操作权限,可以进一步将某一局部共享区或全局共享区细分成全共享区和半共享区。如图2所示,局部共享区1的全共享区,CPU1和CPU2都可完全控制,而局部共享区1的半共享区,CPU1只有部分操作权限,CPU2可完全控制;局部共享区m的全共享区,CPUn可完全控制,而局部共享区m的半共享区,CPUn只有部分操作权限;全局共享区的全共享区,所有CPU均可完全控制,而全局共享区的半共享区,CPU1~CPUn-1只有部分操作权限,CPUn可完全控制。 
因此,通过将全局共享区或多CPU均可访问的局部共享区划分成全共享  区和半共享区,明确各个CPU的操作权限,可以进一步降低多CPU竞争,在半共享区内,各CPU按照各自的权限进行操作,仅允许一个CPU有完全控制权限。 
上述多种共享方式并存的方法可以适用于多核系统中的多种应用场景,比如,应用场景1,为各个CPU分配独立的代码段和数据段,各CPU不互斥地访问自己的数据段;应用场景2,只允许一个CPU修改心跳计数值,其它CPU只读取心跳计数值。 
实施例一提供的通过内存映射实现的全局共享区和局部共享区的划分原理示意图如图3所示。 
假设基于通用MIPS(Microprocessor without Interlocked  PipelineStages,无内部互锁流水级的微处理器)架构的某多核系统中有32个CPU,CPU0负责控制维护业务,CPU1、CPU2负责多播处理及MAC层的消息收发,CPU3~CPU31能独立处理语音业务和数据业务。由于各CPU是独立工作的,所以需要在共享内存中划分32个独立的代码段和数据段(局部共享区),供各个CPU处理业务使用;另外,各个CPU之间需要通信,且内存需要在CPU间传递,因此,还需要在共享内存中划分一个多核通信段(全局共享区)。 
在实施例一中,全局共享区和局部共享区的划分可通过内存映射来实现,该内存映射是指虚拟地址到物理地址一种转换关系。在MIPS架构的多核处理器中,CPU是以虚拟地址访问内存的,如图3所示,在各CPU上,将相同的虚拟地址空间映射到不同的物理内存上,可以实现局部共享区,在CPU0上,访问的数据段是实箭头所指部分;在CPU31上,访问的数据段是虚箭头所指部分。类似地,在各CPU上,将相同的虚拟地址空间映射到同一片物理内存上,可以实现全局共享区,如图3中的多核通信段。 
各CPU在访问各自的代码段和数据段时,是不需要互斥的,这样就达到  了尽可能减少内存访问冲突的目的,从而提高多核系统性能。多核处理器都提供相关的硬件实现内存映射,内存映射也可以由软件实现。 
在多核系统中,由于多核之间需要互相通信,而且还要支持内存在多核间进行传递,那么动态内存池必须部署在全局共享区内,这样所有CPU均可以在动态内存池中申请、释放内存,并且申请得到的内存对其它CPU亦是可见的,可以用来在CPU之间进行传递。 
实施例一提供的一种在多核间传递内存块的示意图如图4所示。 
如图4所示,在全局共享区内,以软件的方法,为每个CPU建立一个私有内存池,这里的私有是相对的,并不是其它CPU不能访问,而是指该私有内存池的所有者可以从中申请、释放内存,而其它CPU只能使用并释放,但没有申请权限,因此,该私有内存池为半共享内存区。同时,考虑到如果为每个CPU都建立私有内存池所需要的内存较多,而且在业务流量突发的情况下,存在资源不足的风险。因此,在全局共享区内,再建立一个公共内存池,该公共内存池为全共享区。 
私有内存池和公共内存池设置为多大才能达到资源和效率之间的平衡点,在实际应用中,可以采用一种近似原则:设置在正常业务情况下,约80%以上的内存操作发生在私有内存池内。具体配置可以根据实际业务模型进行调整。 
在上述全共享与半共享相结合的内存共享方式下,大部分情况下,CPU可以在自己的私有内存池里申请内存,只有在少数情况下,才会去公共内存池申请内存,因此,多CPU同时申请内存的冲突会变得很小,达到了本发明降低共享内存访问冲突的目的。 
由于多核通信段位于全局共享区,所有CPU均可访问该区域,而且各CPU的私有内存池中的内存块可以在多核间任意传递,并采用终点释放原则,由最后使用内存块的CPU将内存块释放回最先申请该内存块的CPU。如  图4所示,CPU0申请的内存块可以在其它CPU间传递,并由最后使用内存块的CPU(CPU1)将内存块释放回CPU0的私有内存池。利用上述多核间传递内存块的方法可以实现多核间通信0拷贝,避免了通信内容多次拷贝。 
实施例二,该实施例提供了多核系统中共享内存类型多样化设计,能根据具体的业务需求,配置相应的内存类型和内存块数量,自动选择合适的内存以承载、传递业务数据,提高内存利用率。 
假设多核系统中有多种业务类型,每种业务的数据包长度不等,其中最大的数据包长度为1024字节,那么可以将共享内存配置成32字节、64字节、128字节、256字节、512字节、1024字节等多种类型,并按照实际业务模型,为各种类型的内存分配一定数量的内存块,形成内存池。比如,如果128字节~512字节的数据包数量占总流量的50%以上,那么就为128字节、256字节、512字节的内存多分配一些内存空间,为其它类型的内存少分配一些内存空间。 
该实施例提供的一种多种类型的共享内存的利用率示意图如图5所示,如图5所示,30字节的数据包占20%,500字节的数据包占70%,1024字节的数据包占10%,相应的内存利用率为93.75%,97.66%,93.75%,加权内存利用率为(20%*93.75%+70%*97.66%+10%*100%)  =97.112%,由此可见,相对于单一的内存类型来说,内存利用率大大提高了。 
实施例二提供的一种基于最小匹配原则的内存匹配处理流程图如图6所示。对于不同的业务类型,通过“最小匹配原则”快速选择适合的内存类型,具体处理过程如下: 
在开始选择内存时,首先判断系统中是否存在与业务数据包匹配的内存,当判断系统中存在多种类型的内存都与业务数据包匹配时,选择长度最小的第一内存类型来承载该业务数据包。然后,继续判断该第一内存类型中是否存在空闲的内存块,如果是,选择其中空闲的内存块,内存匹配处理流  程结束;否则,继续选择与业务数据包匹配的长度第二小的第二内存类型,并继续判断该第二内存类型中是否存在空闲的内存块。重复继续上述处理,直到选择到空闲的内存块来承载该业务数据包。 
例如,业务数据包长度为500字节,系统中有512字节、1024字节的两种类型的内存可以用于承载该业务数据包,根据“最小匹配原则”,首先选择512字节的内存,如果该512字节的内存没有相应的空闲内存块,则进一步选择1024字节的内存。 
实施例三,该实施例提供的提出的一种内存层面的多播技术原理示意图如图7所示。该实施例基于多核间内存共享,提出了内存层面的多播技术,具体处理过程如下:在共享内存区划分时,为支持多播功能的CPU开辟一个或多个专用的多播池,多播池中存放一定数量的多播消息块,比如4096个,具体数量依据多播业务的多少而定,每个多播消息块包括多播包地址、大小域及多播控制域(如多播计数、多播锁等),所有多播消息块引用同一个多播包的地址。 
在多核间进行数据包多播时,不复制多播数据包,而通过消息通道将多播数据包的信息(包括地址及其大小)传递到目的地,由目的CPU根据多播数据包的信息获得多播数据包并进行处理。 
如图7,CPU1收到一个多播数据包,将该多播数据包存放在全局共享区的内存中。然后,CPU1访问专用的多播池,申请并构造多播消息包(多播消息块中包含多播数据包的存放地址及其大小等信息),并将构造好的多播消息包依次传递到各个目的CPU。接着,各个目的CPU根据多播消息包中的信息解析多播数据包的存放地址及其大小,根据该存放地址获取多播数据包,对多播包进行相应的处理。在上述处理过程中,始终只有一份多播数据包,从而避免了多播过程中复制多播数据包的环节,提高了多播处理效率。 
实施例四、该实施例提出的实现多核内存共享的处理装置的实施例的结  构示意图如图8所示,包括如下模块: 
全局共享内存配置模块,用于在多核系统中配置全局共享的内存,多核系统中的所有CPU都能够访问所述全局共享的内存;包括:全局全共享内存配置模块、全局半共享内存配置模块。 
局部共享内存配置模块,用于在多核系统中配置局部共享的内存,多核系统中的部分CPU能够访问所述局部共享的内存。包括:局部全共享内存配置模块、局部半共享内存配置模块。 
内存映射模块,用于将各个CPU的虚拟地址空间映射到同一个物理地址空间,为各个CPU配置所述全局共享的内存;将各个CPU的虚拟地址空间映射到不同的物理地址空间,为各个CPU配置所述局部共享的内存。 
内存类型配置模块,用于根据各种业务数据包的长度,配置对应的各种长度类型的所述全局共享的内存和/或所述局部共享的内存。 
内存匹配处理模块,用于当多核系统中存在多种类型的所述全局共享的内存和/或所述局部共享的内存能够承载同一种业务数据包时,选择长度最小的类型的所述全局共享的内存或所述局部共享的内存中的空闲内存块来承载所述业务数据包。 
内存传递模块,用于将承载业务数据包的所述全局共享的内存在各个CPU之间进行传递,由最后使用所述全局共享的内存的CPU将所述全局共享的内存释放掉。 
多播数据包处理模块,用于将多播数据包承载于全局共享的内存中,将所述多播数据包的地址信息复制多份,向多个目的CPU分别发送多份所述多播数据包的地址信息,所述多个目的CPU根据所述地址信息,从所述全局共享的内存中获取所述多播数据包。 
上述全局共享内存配置模块中的全局全共享内存配置模块,用于在所述全局共享的内存中配置全局全共享的内存,多核系统中的所有CPU都能够对  所述全局全共享的内存进行完全控制; 
上述全局共享内存配置模块中的全局半共享内存配置模块,用于在所述全局共享的内存中配置全局半共享的内存,多核系统中的部分CPU能够对所述全局半共享的内存进行完全控制,而其它CPU只能够对所述全局半共享的内存进行部分控制。 
上述局部共享内存配置模块中的局部全共享内存配置模块,用于在所述局部共享的内存中配置局部全共享的内存,多核系统中的能够访问所述局部共享的内存的部分CPU都能够对所述局部全共享的内存进行完全控制; 
上述局部共享内存配置模块中的局部半共享内存配置模块,用于在所述局部共享的内存中配置局部半共享的内存,多核系统中的能够访问所述局部共享的内存的部分CPU中的特定CPU,能够对所述局部半共享的内存进行完全控制。 
综上所述,本发明实施例支持共享内存在各CPU之间自由传递,支持在各CPU上灵活配置内存共享方式,实现多种内存共享方式并存。从而可以简化多核间通信的过程,大大降低共享内存访问冲突的机率,有利于提高多核系统性能,并能实现多核通信时0拷贝。 
本发明实施例采用内存类型多样化设计,提高了内存利用率,降低开发成本。实现了多核间内存层面的多播技术,提高了多播处理效率,有利于提高多核系统性能。 
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。 

Claims (10)

1.一种多核系统中共享内存的管理方法,其特征在于,包括:
根据多核系统中的各种业务数据包的长度,在多核系统中配置各种长度类型的全局共享的内存和局部共享的内存,多核系统中的所有中央处理器CPU都能够访问所述全局共享的内存,多核系统中的部分CPU能够访问所述局部共享的内存;
所述多核系统中的CPU通过所述全局共享的内存和局部共享的内存来承载信息,当多核系统中存在多种类型的所述全局共享内存和/或所述局部共享的内存能够承载同一种业务数据包时,选择长度最小的类型的所述全局共享内存和/或所述局部共享的内存中的空闲内存块来承载所述业务数据包;
将承载所述业务数据包的全局共享的内存在各个CPU之间进行传递,由最后使用所述全局共享的内存的CPU将所述全局共享的内存释放掉。
2.根据权利要求1所述的多核系统中共享内存的管理方法,其特征在于,所述在多核系统中配置全局共享的内存和局部共享的内存具体包括:
将多核系统中的各个CPU的虚拟地址空间映射到同一个物理地址空间,为各个CPU配置所述全局共享的内存;
将多核系统中的各个CPU的虚拟地址空间映射到不同的物理地址空间,为各个CPU配置所述局部共享的内存。
3.根据权利要求1所述的多核系统中共享内存的管理方法,其特征在于:
所述全局共享的内存中包括全局全共享的内存和全局半共享的内存,多核系统中的所有CPU都能够对所述全局全共享的内存进行完全控制,多核系统中的部分CPU能够对所述全局半共享的内存进行完全控制,而其它CPU只能够对所述全局半共享的内存进行部分控制。
4.根据权利要求1所述的多核系统中共享内存的管理方法,其特征在于:
所述局部共享的内存中包括:局部全共享的内存、局部半共享的内存,多核系统中的能够访问所述局部共享的内存的部分CPU都能够对所述局部全共享的内存进行完全控制,多核系统中的能够访问所述局部共享的内存的部分CPU中的特定CPU,能够对所述局部半共享的内存进行完全控制。
5.根据权利要求1至4任一项所述的多核系统中共享内存的管理方法,其特征在于,所述方法还包括:
将多播数据包承载于所述全局共享的内存中,将所述多播数据包的地址信息复制多份,向各个目的CPU分别发送多份所述多播数据包的地址信息,所述各个目的CPU根据所述地址信息,从所述全局共享的内存中获取所述多播数据包。
6.一种多核系统中共享内存的管理装置,其特征在于,包括:
全局共享内存配置模块,用于在多核系统中配置全局共享的内存,多核系统中的所有CPU都能够访问所述全局共享的内存;
局部共享内存配置模块,用于在多核系统中配置局部共享的内存,多核系统中的部分CPU能够访问所述局部共享的内存;
内存类型配置模块,用于根据各种业务数据包的长度,配置对应的各种长度类型的所述全局共享的内存和/或所述局部共享的内存;
内存匹配处理模块,用于当多核系统中存在多种类型的所述全局共享的内存和/或所述局部共享的内存能够承载同一种业务数据包时,选择长度最小的类型的所述全局共享的内存或所述局部共享的内存中的空闲内存块来承载所述业务数据包;
内存传递模块,用于将承载所述业务数据包的全局共享的内存在各个CPU之间进行传递,由最后使用所述全局共享的内存的CPU将所述全局共享的内存释放掉。
7.根据权利要求6所述的多核系统中共享内存的管理装置,其特征在于,还包括:
内存映射模块,用于将各个CPU的虚拟地址空间映射到同一个物理地址空间,为各个CPU配置所述全局共享的内存;将各个CPU的虚拟地址空间映射到不同的物理地址空间,为各个CPU配置所述局部共享的内存。
8.根据权利要求6所述的多核系统中共享内存的管理装置,其特征在于,所述全局共享内存配置模块具体包括:
全局全共享内存配置模块,用于在所述全局共享的内存中配置全局全共享的内存,多核系统中的所有CPU都能够对所述全局全共享的内存进行完全控制;
全局半共享内存配置模块,用于在所述全局共享的内存中配置全局半共享的内存,多核系统中的部分CPU能够对所述全局半共享的内存进行完全控制,而其它CPU只能够对所述全局半共享的内存进行部分控制。
9.根据权利要求6所述的多核系统中共享内存的管理装置,其特征在于,所述局部共享内存配置模块具体包括:
局部全共享内存配置模块,用于在所述局部共享的内存中配置局部全共享的内存,多核系统中的能够访问所述局部共享的内存的部分CPU都能够对所述局部全共享的内存进行完全控制;
局部半共享内存配置模块,用于在所述局部共享的内存中配置局部半共享的内存,多核系统中的能够访问所述局部共享的内存的部分CPU中的特定CPU,能够对所述局部半共享的内存进行完全控制。
10.根据权利要求6至9任一项所述的多核系统中共享内存的管理装置,其特征在于,还包括:
多播数据包处理模块,用于将多播数据包承载于所述全局共享的内存中,将所述多播数据包的地址信息复制多份,向多个目的CPU分别发送多份所述多播数据包的地址信息,所述多个目的CPU根据所述地址信息,从所述全局共享的内存中获取所述多播数据包。
CN2007101784054A 2007-11-29 2007-11-29 多核系统中共享内存的管理方法和装置 Expired - Fee Related CN101246466B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN2007101784054A CN101246466B (zh) 2007-11-29 2007-11-29 多核系统中共享内存的管理方法和装置
PCT/CN2008/073148 WO2009067950A1 (fr) 2007-11-29 2008-11-21 Procédé et dispositif de gestion de mémoire partagée dans un système multicœur

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007101784054A CN101246466B (zh) 2007-11-29 2007-11-29 多核系统中共享内存的管理方法和装置

Publications (2)

Publication Number Publication Date
CN101246466A CN101246466A (zh) 2008-08-20
CN101246466B true CN101246466B (zh) 2012-06-20

Family

ID=39946926

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101784054A Expired - Fee Related CN101246466B (zh) 2007-11-29 2007-11-29 多核系统中共享内存的管理方法和装置

Country Status (2)

Country Link
CN (1) CN101246466B (zh)
WO (1) WO2009067950A1 (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101246466B (zh) * 2007-11-29 2012-06-20 华为技术有限公司 多核系统中共享内存的管理方法和装置
CN101770403B (zh) * 2008-12-30 2012-07-25 北京天融信网络安全技术有限公司 一种多核平台上控制系统配置并发与同步的方法
CN102110196B (zh) * 2009-12-25 2015-04-29 中国长城计算机深圳股份有限公司 并行运行多用户操作系统间的数据安全传输方法及系统
CN102117241A (zh) * 2009-12-30 2011-07-06 华为技术有限公司 一种多核系统调试方法和多核系统
CN102547146A (zh) * 2010-12-29 2012-07-04 新奥特(北京)视频技术有限公司 一种字幕数据交互的系统和方法
CN102955817A (zh) * 2011-08-30 2013-03-06 腾讯数码(深圳)有限公司 一种基于共享内存的对象管理与恢复方法及系统
CN103019809B (zh) * 2011-09-28 2015-05-27 中国移动通信集团公司 业务处理装置和方法、及业务处理控制装置
CN102508738B (zh) * 2011-10-14 2014-02-19 北京华为数字技术有限公司 一种多核处理器业务信息的备份方法、内核和备份内核
CN103870333B (zh) 2012-12-17 2017-08-29 华为技术有限公司 一种全局内存共享方法、装置和一种通信系统
CN103136110B (zh) * 2013-02-18 2016-03-30 华为技术有限公司 内存管理方法、内存管理装置及numa系统
CN104123265B (zh) 2013-04-26 2017-12-22 华为技术有限公司 一种众核间通信方法及系统
CN105487933A (zh) * 2015-11-24 2016-04-13 无锡江南计算技术研究所 一种基于核间异步消息队列与共享内存的域间通信方法
DE102016222691A1 (de) * 2015-12-15 2017-06-22 Continental Teves Ag & Co. Ohg Mikrocontrollersystem und Verfahren zur Kontrolle von Speicherzugriffen in einem Mikrocontrollersystem
CN106899545B (zh) * 2015-12-18 2019-10-18 联芯科技有限公司 一种终端安全通信的系统和方法
CN107341076B (zh) * 2016-04-29 2020-08-28 展讯通信(上海)有限公司 通信处理器的故障辅助定位方法、装置及终端
CN108628676A (zh) * 2017-03-16 2018-10-09 哈尔滨英赛克信息技术有限公司 一种面向多核系统的内存管理装置及方法
WO2019076442A1 (en) * 2017-10-17 2019-04-25 Huawei Technologies Co., Ltd. COMPUTER SYSTEM FOR ACCESSING A UNIFIED MEMORY
CN109783220B (zh) * 2017-11-10 2020-12-11 安徽寒武纪信息科技有限公司 内存分配方法、装置、计算机系统及存储介质
CN108829631A (zh) * 2018-04-27 2018-11-16 江苏华存电子科技有限公司 一种提升多核处理器的信息管理方法
CN109462587B (zh) * 2018-11-09 2020-03-27 四川虹微技术有限公司 区块链分层共识方法、区块链网络系统及区块链节点
WO2021035609A1 (zh) * 2019-08-29 2021-03-04 深圳市大疆创新科技有限公司 一种交互方法、设备、系统及可读存储介质
CN111800353B (zh) * 2020-06-30 2022-04-12 翱捷科技股份有限公司 一种嵌入式系统内存零拷贝的方法及装置
WO2022027196A1 (zh) * 2020-08-03 2022-02-10 Oppo广东移动通信有限公司 共享内存处理装置、调制解调器以及方法和存储介质
CN112486704B (zh) * 2020-11-27 2024-02-06 中船重工(武汉)凌久电子有限责任公司 一种基于共享存储的多核多处理器同步与通信系统
CN112612623B (zh) * 2020-12-25 2022-08-09 苏州浪潮智能科技有限公司 一种共享内存管理的方法和设备
CN112905522A (zh) * 2021-02-22 2021-06-04 深圳市显控科技股份有限公司 多核共享启动系统及其控制方法、存储介质
CN117573583A (zh) * 2024-01-12 2024-02-20 上海励驰半导体有限公司 数据处理方法、装置、芯片及交通设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1766865A (zh) * 2004-10-28 2006-05-03 Lg电子株式会社 移动通信终端的多处理装置及其方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060171244A1 (en) * 2005-02-03 2006-08-03 Yoshiyuki Ando Chip layout for multiple cpu core microprocessor
CN100375067C (zh) * 2005-10-28 2008-03-12 中国人民解放军国防科学技术大学 异构多核微处理器局部空间共享存储方法
CN101008922A (zh) * 2007-01-26 2007-08-01 浙江大学 面向异构多核体系的段页式存储空间管理方法
CN101246466B (zh) * 2007-11-29 2012-06-20 华为技术有限公司 多核系统中共享内存的管理方法和装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1766865A (zh) * 2004-10-28 2006-05-03 Lg电子株式会社 移动通信终端的多处理装置及其方法

Also Published As

Publication number Publication date
WO2009067950A1 (fr) 2009-06-04
CN101246466A (zh) 2008-08-20

Similar Documents

Publication Publication Date Title
CN101246466B (zh) 多核系统中共享内存的管理方法和装置
CN1243308C (zh) 使用处理器互连进行微处理器通信的方法和数据处理系统
CN1253800C (zh) 多处理器无线网络中微处理器通信的方法和数据处理系统
CN100487660C (zh) 一种多线程处理器动态内存管理系统及方法
CN1128406C (zh) 数据处理系统及其中断处理方法
CN102214117B (zh) 虚拟机管理方法、系统及虚拟机管理服务器
CN107690622A (zh) 实现硬件加速处理的方法、设备和系统
CN101291245B (zh) 一种分布式处理方法、系统及其装置
CN101908036B (zh) 一种高密度多处理器系统及其节点控制器
CN102831018B (zh) 低延迟先进先出消息交换系统
CN107852339A (zh) 用于无损网络中的高效虚拟化的系统和方法
CN101216814A (zh) 一种多核多操作系统之间的通信方法及系统
CN102007479A (zh) 点对点专用处理器结构和方法
CN101127685A (zh) 一种进程间通讯装置及其进程间通讯方法
CN103365726A (zh) 一种面向gpu集群的资源管理方法和系统
GB2510005A (en) Allocation of processing cores among a set of software programs
CN101866326B (zh) 一种消息传递接口支持总线通信框架
CN1506837A (zh) 微处理器通信的方法、处理单元及数据处理系统
CN101415270B (zh) 移动终端及其处理模块的通讯方法
CN102571580A (zh) 数据接收方法和计算机
CN109857517A (zh) 一种虚拟化系统及其数据交换方法
CN1270242C (zh) 多处理器集群系统中微处理器通信的方法和数据处理系统
CN109964211A (zh) 用于半虚拟化网络设备队列和存储器管理的技术
CN105224258B (zh) 一种数据缓冲区的复用方法与系统
CN104519150B (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
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120620

Termination date: 20171129