一种多核并行系统及其数据处理方法

文档序号:6503777阅读:146来源:国知局
一种多核并行系统及其数据处理方法
【专利摘要】本申请提供了一种多核并行系统及其数据处理方法;方法包括:将串行化关键区域中的数据按照第一规则分配给所述多核并行系统中的多个处理器保存;当所述多个处理器中任一处理器需要处理串行化关键区域中的数据且待处理数据不在本处理器上时,根据所述第一规则确定保存待处理数据的处理器,生成串行化关键区域处理请求发送给所确定的处理器;接收到所述串行化关键区域处理请求的处理器根据所接收的串行化关键区域处理请求进行处理;处理完成后,将处理结果返回给生成所述串行化关键区域处理请求的处理器。本申请能够提局多核并行系统对串行化关键区域的处理性能。
【专利说明】一种多核并行系统及其数据处理方法

【技术领域】
[0001] 本发明涉及计算机领域,尤其涉及一种多核并行系统及其数据处理方法。

【背景技术】
[0002] 最近几年内,处理器厂商受到功耗和温度的限制,同时为了保持高性能运算持续 增长,计算机已经朝着多核计算机体系架构方向发展。为了充分利用多核架构,应用程序被 拆分成多个可独立运行在单个CPU上面的线程,这样设计程序可以并行执行提高整体运行 效率。基于这样的程序体系,为了保证数据处理的同步性和数据完整性,线程之间需要用锁 来串行访问共享区域。用锁来保证的共享数据串行化操作的这段共享区域被称之为串行化 关键区域。随着CPU的增加,并行处理的线程也开始增多,这使串行化的操作变得更加频 繁,串行化操作将原本可以并行操作的事物串行操作,从Amdahl定律可知程序代码包括两 个部分,并行处理和串行处理代码,串行化操作时间比例越大越会阻碍并行程序的性能提 升,约束系统架构的可扩展性。
[0003] 当前多核体系架构的主流设计方案的一个例子如图1所示,图la中共有16个CPU 核,彼此通过路由(图中粗线)可相互访问,图lb中是每个CPU的框架,其中*Ln代表First Level Cache (-级缓存)缓存 L1,或者 L1 及 Second Level Cache (二级缓存)缓存 L2 ; Last Level Cache为最后一级缓存,简称LLC,*Ln和LLC及路由相连,LLC的目录和路由相 连。当从内存中读出内存数据后会将内存数据均匀分摊到每个处理器的LLC。
[0004] 为了加快串行关键区域代码的运行,现有的一些方案提出通过使用非对称多核架 构(Asymmetric Multi-Core Architectures),将在众多小核(small cpu cores)中执行的 串行化关键区域放到一个功能强大的CPU core中执行,缩短串行化关键区域的执行时间, 试验结果取得了很好的并行性和扩展性。
[0005] 但是,这些方案将不可避免的带来非常大的数据迁移,比如固定的大处理器需要 对分布在其他小处理器上面的共享数据做串行化处理的时候,就不得不将数据迁移过来, 然后进行操作;但是随着CPU核数目和并行程序的增多,这种换入换出的操作变得更加频 繁,数据在CPU网络间迁移的延迟使关串行化键区域处理时间变得更长;而且当完成操作 的时候,大处理器会将处理结果写到本地缓存*Ln中,数据一致性处理增加了 CPU网络之间 的负担;由于内部总线的延迟,芯片上远方缓存(cache)数据的访问也将成为瓶颈;因此, 现有方案当CPU核数目/并行程序增多后会导致多核并行系统的性能下降,影响多核并行 系统的可扩展性。


【发明内容】

[0006] 本申请要解决的技术问题是如何提高多核并行系统对串行化关键区域的处理性 能。
[0007] 为了解决上述问题,本申请提供了一种多核并行系统的数据处理方法,包括:
[0008] 将串行化关键区域中的数据按照第一规则分配给所述多核并行系统中的多个处 理器保存;
[0009] 当所述多个处理器中任一处理器需要处理串行化关键区域中的数据且待处理数 据不在本处理器上时,根据所述第一规则确定保存待处理数据的处理器,生成串行化关键 区域处理请求发送给所确定的处理器;
[0010] 接收到所述串行化关键区域处理请求的处理器根据所接收的串行化关键区域处 理请求进行处理;处理完成后,将处理结果返回给生成所述串行化关键区域处理请求的处 理器。
[0011] 进一步地,所述串行化关键区域处理请求中包括以下传输参数:
[0012] 待处理数据的地址,返回地址、及待进行的处理;
[0013] 所述待进行的处理以串行化关键区域函数的地址表示。
[0014] 进一步地,将处理结果返回给生成所述串行化关键区域处理请求的处理器的步骤 包括:
[0015] 根据所述第一规则确定返回地址所在的处理器;
[0016] 在所确定的处理器的缓存中,根据所述返回地址逐级查找所述返回地址对应的位 置;
[0017] 查找到后将处理结果写入所查找到的位置。
[0018] 进一步地,所述接收到所述串行化关键区域处理请求的处理器根据所接收的串行 化关键区域处理请求进行处理的步骤包括:
[0019] 31、接收到所述串行化关键区域处理请求的处理器暂停执行本处理器上的线程;
[0020] 32、根据所述串行化关键区域处理请求中串行化关键区域函数的地址,执行相应 的串行化关键区域函数;在执行过程中,如果判断执行所需数据不在本处理器上,则进行步 骤33 ;如果在本处理器上,则进行步骤34 ;
[0021] 33、根据所述第一规则确定保存执行所需数据的处理器,将所述串行化关键区域 处理请求中的待处理数据的地址修改为执行所需数据的地址后,转发给所确定的处理器, 继续执行所暂停的线程;接收到所述串行化关键区域处理请求的处理器进行步骤31 ;
[0022] 34、执行所述串行化关键区域函数处理本处理器上相应的数据,完成后将处理结 果返回给生成所述串行化关键区域处理请求的处理器,恢复执行所暂停的线程。
[0023] 进一步地,所述将串行化关键区域中的数据按照第一规则分配给多核并行系统中 的多个处理器保存的步骤包括:
[0024] 从串行化关键区域中读出数据;
[0025] 对于读出的每条数据,分别用该数据的地址对N取模,N为所述多核并行系统中, 用于保存串行化关键区域的数据的处理器的个数;
[0026] 将读出的数据分配给该数据取模结果所代表的处理器;
[0027] 处理器将所分配的数据保存在本处理器的缓存中;
[0028] 所述根据所述第一规则确定保存待处理数据的处理器的步骤包括:
[0029] 用待处理数据的地址对N取模;取模结果所代表的处理器为保存所述待处理数据 的处理器。
[0030] 本申请还提供了一种多核并行系统,包括:
[0031] 分配单元,用于将串行化关键区域中的数据按照第一规则分配给所述多核并行系 统中的多个处理器保存;
[0032] 多个处理器;
[0033] 各所述处理分别包括:
[0034] 请求单元,用于当需要处理串行化关键区域中的数据且待处理数据不在本处理器 上时,根据所述第一规则确定保存待处理数据的处理器,生成串行化关键区域处理请求发 送给所确定的处理器;
[0035] 执行单元,用于当接收到串行化关键区域处理请求时,根据所接收的串行化关键 区域处理请求进行处理;处理完成后,将处理结果返回给生成所述串行化关键区域处理请 求的处理器。
[0036] 进一步地,所述串行化关键区域处理请求中包括以下传输参数:
[0037] 待处理数据的地址,返回地址、及待进行的处理;
[0038] 所述待进行的处理以串行化关键区域函数的地址表示。
[0039] 进一步地,所述执行单元将处理结果返回给生成所述串行化关键区域处理请求的 处理器是指:
[0040] 所述执行单元根据所述第一规则确定返回地址所在的处理器;在所确定的处理器 的缓存中,根据所述返回地址逐级查找所述返回地址对应的位置;查找到后将处理结果写 入所查找到的位置。
[0041] 进一步地,所述执行单元包括:
[0042] 转发模块;
[0043] 中断模块,用于当接收到所述串行化关键区域处理请求时暂停执行本处理器上的 线程;
[0044] 函数执行模块,用于根据所述串行化关键区域处理请求中串行化关键区域函数的 地址,执行相应的串行化关键区域函数,完成后将处理结果返回给生成所述串行化关键区 域处理请求的处理器,通知所述中断模块恢复执行所暂停的线程;在执行过程中,如果判断 执行所需数据不在本处理器上,则通知转发模块;
[0045] 所述转发模块用于根据所述第一规则确定保存执行所需数据的处理器,将所述串 行化关键区域处理请求中的待处理数据的地址修改为执行所需数据的地址后转发给所确 定的处理器,通知所述中断模块恢复执行所暂停的线程。
[0046] 进一步地,所述分配单元将串行化关键区域中的数据按照第一规则分配给多核并 行系统中的多个处理器保存是指:
[0047] 所述分配单元从串行化关键区域中读出数据;对于读出的每条数据,分别用该数 据的地址对N取模,N为所述多核并行系统中,用于保存串行化关键区域的数据的处理器的 个数;将读出的数据分配给该数据取模结果所代表的处理器;
[0048] 各所述处理器将所分配的数据保存在本处理器的缓存中;
[0049] 所述请求单元根据所述第一规则确定保存待处理数据的处理器是指:
[0050] 所述请求单元用待处理数据的地址对N取模;取模结果所代表的处理器为保存所 述待处理数据的处理器。
[0051] 本申请的至少一个备选方案系统全面地考虑并且利用了共享数据在多核系统中 的分布特性,不需要迁移共享数据来完成串行化关键区域的操作,可以减少访问数据延迟, 提高了处理速度,避免了处理器核数目或并行程序增加而导致性能降低的问题;本申请的 一个优化方案当完成串行化操作时会将结果直接写到发出请求的处理器,减少执行结果导 致的缓存缺失,提高了系统的可扩展性;本申请的又一个优化方案将正常情况下必须要串 行执行的代码,根据数据分布的特点自适性的转变为动态并行处理,可以减少整体系统的 串行化时间,大大提高系统整体效率和可扩展性。另外,本申请可以在不增加新的硬件的情 况下实现。当然,实施本申请的任一产品必不一定需要同时达到以上所述的所有优点。

【专利附图】

【附图说明】
[0052] 图la为多核并行系统中多个处理器的示意图;
[0053] 图lb为各处理器的结构示意图;
[0054] 图2为实施例一的多核并行系统的数据处理方法的流程示意图;
[0055] 图3为实施例一中例子里处理器之一的流程示意图;
[0056] 图4为实施例一中例子里处理器之二的流程示意图。

【具体实施方式】
[0057] 下面将结合附图及实施例对本申请的技术方案进行更详细的说明。
[0058] 需要说明的是,如果不冲突,本申请实施例以及实施例中的各个特征可以相互结 合,均在本申请的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况 下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0059] 在一个典型的配置中,多核并行系统可包括多个处理器(CPU)、一个或多个输入/ 输出接口、网络接口和内存。
[0060] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/ 或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质 的示例。
[0061] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法 或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。 计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、 动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电 可擦除可编程只读存储器(EEPR0M),快闪记忆体或其他内存技术、只读光盘只读存储器 (CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁 性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中 的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据 信号和载波。
[0062] 实施例一、一种多核并行系统的数据处理方法,如图2所示,包括:
[0063] S101、将串行化关键区域中的数据按照第一规则分配给所述多核并行系统中的多 个处理器保存;
[0064] S102、当所述多个处理器中任一处理器需要处理串行化关键区域中的数据且待处 理数据不在本处理器上时,根据所述第一规则确定保存待处理数据的处理器,生成串行化 关键区域处理请求发送给所确定的处理器;
[0065] S103、接收到所述串行化关键区域处理请求的处理器根据所接收的串行化关键区 域处理请求进行处理;处理完成后,将处理结果返回给生成所述串行化关键区域处理请求 的处理器。
[0066] 本实施例根据串行化关键区域中的数据(后文称为共享数据)在多核并行系统各 处理器上的分布特性,将处理请求发送给保存共享数据的处理器,避免共享数据的来回传 输影响性能。考虑到随着并行程序的增加共享数据将会越来越多,而多数共享数据是一个 处理器进行写操作后,其他处理器也仅仅需要读取一次,所以进行实际处理的处理器当串 行化关键区域处理结束后,没有必要保留处理结果(该处理结果也是共享数据),而是将处 理结果返回给最初生成串行化关键区域处理请求的请求者,从而避免了不必要的数据一致 性要求,而且不会在处理者缓存中增加不必要的共享数据,更加有助于性能提升。
[0067] 本实施例的一种备选方案中,所述步骤S101具体可以包括:
[0068] 从串行化关键区域中读出数据;
[0069] 对于读出的每条数据,分别用该数据的地址对N取模,N为所述多核并行系统中, 用于保存串行化关键区域的数据的处理器的个数;
[0070] 将读出的数据分配给该数据取模结果所代表的处理器;
[0071] 处理器将所分配的数据保存在本处理器的缓存中。
[0072] 相应地,步骤S102中根据所述第一规则确定保存待处理数据的处理器的步骤具 体可以包括:
[0073] 用待处理数据的地址对N取模;取模结果所代表的处理器为保存所述待处理数据 的处理器。
[0074] 本备选方案中,是将串行化关键区域的数据按照取模公式n = A mod N均匀分配 到每个处理器上,保存在每个处理器的LLC或其它级缓存中;这里η为处理器的标号,或其 它能唯一指定一处理器的标识,是〇至Ν-1的整数,Α为数据的地址。比如图1中Ν为16, 则串行化关键区域的数据分别位于处理器P〇至P 15上;数据的取模结果为1时,Ρ:就是保存 该数据的处理器,依此类推。当处理器Pk(k为0至N-1的整数)做串行化关键区域处理的 数据保存在处理器Ρ η(η尹k)中时,Pn称为拥有者,Pk仅仅将串行化关键区域处理请求发送 给处理器P n,Pn处理后将处理结果写入Pk的缓存。
[0075] 在其它备选方案中,也可以采用其它的规则来为串行化关键区域的数据分配处理 器、及确定待处理数据所在的处理器。
[0076] 本实施例的一种备选方案中,所述串行化关键区域处理请求中包括以下传输参 数:
[0077] 待处理数据的地址,返回地址、及待进行的处理。
[0078] 本备选方案中,由于所述串行化关键区域处理请求包含的内容很少,同时由数据 拥有者?"来更快地处理本地数据,所以带来更短的延迟。举例来说处理器P〇需要串行化处 理的数据来自于P 6所对应的LLC上,不需要像现有技术那样让匕将P6的LLC上的共享数 据拿到P〇本地执行串行化关键区域操作;由于P 6为此共享数据的拥有者,仅仅需要P〇将串 行化关键区域处理请求发送给P6,让P6执行后将处理结果按照所述返回地址写回到匕的缓 存中相应位置即可。
[0079] 本备选方案的一种实施方式中,将处理结果返回给生成所述串行化关键区域处理 请求的处理器的步骤具体可以包括:
[0080] 根据所述第一规则确定返回地址所在的处理器;
[0081] 在所确定的处理器的缓存中,根据所述返回地址逐级查找所述返回地址对应的位 置;
[0082] 查找到后将处理结果写入所查找到的位置。
[0083] 生成串行化关键区域处理请求的处理器当检测到该返回地址对应的位置被写入 处理结果后就可以开始进行下一步的处理。可以认为,P n处理串行化关键区域处理请求的 过程和Pk处理存在于本处理器Pk上的串行化关键区域数据的过程,除了接收串行化关键区 域处理请求的步骤之外,是完全相同的,就好比P n模仿Pk进行了处理。这样有效地避免了 数据迁移及共享数据过多的问题。
[0084] 本备选方案的一种实施方式中,所述待进行的处理可以但不限于以串行化关键区 域函数的地址表示(比如为Serial_Function地址)。
[0085] 本实施方式中,所述步骤S103具体可以包括:
[0086] 31、接收到所述串行化关键区域处理请求的处理器暂停执行本处理器上的线程;
[0087] 32、根据所述串行化关键区域处理请求中串行化关键区域函数的地址,执行相应 的串行化关键区域函数;在执行过程中,如果判断执行所需数据不在本处理器上,则进行步 骤33 ;如果在本处理器上,则进行步骤34 ;
[0088] 33、根据所述第一规则确定保存执行所需数据的处理器,将所述串行化关键区域 处理请求中的待处理数据的地址修改为执行所需数据的地址后,转发给所确定的处理器, 继续执行所暂停的线程;接收到所述串行化关键区域处理请求的处理器进行步骤31 ;
[0089] 34、执行所述串行化关键区域函数处理本处理器上相应的数据,完成后将处理结 果返回给生成所述串行化关键区域处理请求的处理器,恢复执行所暂停的线程。
[0090] 在执行串行化关键区域函数的过程中,可能不同步骤需要不同的数据,比如第一 个数据在本处理器上,而第二个数据不在;此时就需要转发所述串行化关键区域处理请求, 并将传输参数里待处理数据的地址修改为该第二个数据的地址。收到所转发的所述串行化 关键区域处理请求的处理器也是一样,如果执行过程中发现有的数据不在本处理器上,则 修改待处理数据的地址后继续转发,直到串行化关键区域函数执行完毕。由于无论转发多 少次,返回地址是不变的,所以最后执行完串行化关键区域函数的处理器可以直接将处理 结果写入到最初生成串行化关键区域处理请求的处理器缓存中。当然,所转发到的处理器 也有可能是是生成串行化关键区域处理请求的处理器,比如执行到某步骤时所需数据正好 属于生成串行化关键区域处理请求的处理器。
[0091] 可见,原本由一个大处理器串行执行的函数有可能会被分到多个处理器上执行, 因此本实施方式是将共享数据串行化操作在一定程度上转变为并行处理,从多核并行系统 的整体而言,提高了处理性能。
[0092] 本实施方式中,所述生成串行化关键区域处理请求的步骤中还可以包括:
[0093] 将执行串行化关键区域函数所需要的运行参数填写到所述返回地址对应的单元 结构之中。
[0094] 本实施方式中,所有的指令分布会通过部分重复来减少访问的延迟。
[0095] 本实施方式中,传输参数中待处理数据的地址以指针shared_cirtical_data表 示,生成串行化关键区域处理请求的处理器可根据取模公式η = A mod N得到处理器?"的 标号。
[0096] 传输参数中的返回地址就是函数内容返回的地址,属于生成所述串行化关键区 域处理请求的处理器,以指针return_private_data_structure表示;该传输参数的内容 结构完全由发出请求者与执行者共同灵活的决定,比如这是一个包含多条记录的结构体。 同时这个结构体也可以指示执行串行化关键区域过程中传递的、实时的运行参数的位置, 例如发出请求者和执行者可以将串行化关键区域函数的运行参数保存在最后一个返回变 量之后的内存中,注意这段内存是属于最初生成请求的处理器,所有执行者在执行的过程 中都可能访问这段内存,直到执行结束。当执行结束之后,执行函数的处理器即共享数据 (shared_cirtical_data)的拥有者(比如在未转发过串行化关键区域处理请求的情况下 为处理器P n)会将执行的结果写入所述返回地址,执行函数的处理器根据所述取模公式确 认此返回地址的拥有者是生成串行化关键区域处理请求的P k。
[0097] 本实施方式中,所述串行化关键区域函数可以但不限于为如下形式:

【权利要求】
1. 一种多核并行系统的数据处理方法,包括: 将串行化关键区域中的数据按照第一规则分配给所述多核并行系统中的多个处理器 保存; 当所述多个处理器中任一处理器需要处理串行化关键区域中的数据且待处理数据不 在本处理器上时,根据所述第一规则确定保存待处理数据的处理器,生成串行化关键区域 处理请求发送给所确定的处理器; 接收到所述串行化关键区域处理请求的处理器根据所接收的串行化关键区域处理请 求进行处理;处理完成后,将处理结果返回给生成所述串行化关键区域处理请求的处理器。
2. 如权利要求1所述的方法,其特征在于,所述串行化关键区域处理请求中包括以下 传输参数: 待处理数据的地址,返回地址、及待进行的处理; 所述待进行的处理以串行化关键区域函数的地址表示。
3. 如权利要求2所述的方法,其特征在于,将处理结果返回给生成所述串行化关键区 域处理请求的处理器的步骤包括: 根据所述第一规则确定返回地址所在的处理器; 在所确定的处理器的缓存中,根据所述返回地址逐级查找所述返回地址对应的位置; 查找到后将处理结果写入所查找到的位置。
4. 如权利要求2所述的方法,其特征在于,所述接收到所述串行化关键区域处理请求 的处理器根据所接收的串行化关键区域处理请求进行处理的步骤包括: 31、 接收到所述串行化关键区域处理请求的处理器暂停执行本处理器上的线程; 32、 根据所述串行化关键区域处理请求中串行化关键区域函数的地址,执行相应的串 行化关键区域函数;在执行过程中,如果判断执行所需数据不在本处理器上,则进行步骤 33 ;如果在本处理器上,则进行步骤34 ; 33、 根据所述第一规则确定保存执行所需数据的处理器,将所述串行化关键区域处理 请求中的待处理数据的地址修改为执行所需数据的地址后,转发给所确定的处理器,继续 执行所暂停的线程;接收到所述串行化关键区域处理请求的处理器进行步骤31 ; 34、 执行所述串行化关键区域函数处理本处理器上相应的数据,完成后将处理结果返 回给生成所述串行化关键区域处理请求的处理器,恢复执行所暂停的线程。
5. 如权利要求1到4中任一项所述的方法,其特征在于,所述将串行化关键区域中的数 据按照第一规则分配给多核并行系统中的多个处理器保存的步骤包括: 从串行化关键区域中读出数据; 对于读出的每条数据,分别用该数据的地址对N取模,N为所述多核并行系统中,用于 保存串行化关键区域的数据的处理器的个数; 将读出的数据分配给该数据取模结果所代表的处理器; 处理器将所分配的数据保存在本处理器的缓存中; 所述根据所述第一规则确定保存待处理数据的处理器的步骤包括: 用待处理数据的地址对N取模;取模结果所代表的处理器为保存所述待处理数据的处 理器。
6. -种多核并行系统,其特征在于,包括: 分配单元,用于将串行化关键区域中的数据按照第一规则分配给所述多核并行系统中 的多个处理器保存; 多个处理器; 各所述处理分别包括: 请求单元,用于当需要处理串行化关键区域中的数据且待处理数据不在本处理器上 时,根据所述第一规则确定保存待处理数据的处理器,生成串行化关键区域处理请求发送 给所确定的处理器; 执行单元,用于当接收到串行化关键区域处理请求时,根据所接收的串行化关键区域 处理请求进行处理;处理完成后,将处理结果返回给生成所述串行化关键区域处理请求的 处理器。
7. 如权利要求6所述的系统,其特征在于,所述串行化关键区域处理请求中包括以下 传输参数: 待处理数据的地址,返回地址、及待进行的处理; 所述待进行的处理以串行化关键区域函数的地址表示。
8. 如权利要求7所述的系统,其特征在于,所述执行单元将处理结果返回给生成所述 串行化关键区域处理请求的处理器是指: 所述执行单元根据所述第一规则确定返回地址所在的处理器;在所确定的处理器的缓 存中,根据所述返回地址逐级查找所述返回地址对应的位置;查找到后将处理结果写入所 查找到的位置。
9. 如权利要求7所述的系统,其特征在于,所述执行单元包括: 转发模块; 中断模块,用于当接收到所述串行化关键区域处理请求时暂停执行本处理器上的线 程; 函数执行模块,用于根据所述串行化关键区域处理请求中串行化关键区域函数的地 址,执行相应的串行化关键区域函数,完成后将处理结果返回给生成所述串行化关键区域 处理请求的处理器,通知所述中断模块恢复执行所暂停的线程;在执行过程中,如果判断执 行所需数据不在本处理器上,则通知转发模块; 所述转发模块用于根据所述第一规则确定保存执行所需数据的处理器,将所述串行化 关键区域处理请求中的待处理数据的地址修改为执行所需数据的地址后转发给所确定的 处理器,通知所述中断模块恢复执行所暂停的线程。
10. 如权利要求6到9中任一项所述的系统,其特征在于,所述分配单元将串行化关键 区域中的数据按照第一规则分配给多核并行系统中的多个处理器保存是指: 所述分配单元从串行化关键区域中读出数据;对于读出的每条数据,分别用该数据的 地址对N取模,N为所述多核并行系统中,用于保存串行化关键区域的数据的处理器的个 数;将读出的数据分配给该数据取模结果所代表的处理器; 各所述处理器将所分配的数据保存在本处理器的缓存中; 所述请求单元根据所述第一规则确定保存待处理数据的处理器是指: 所述请求单元用待处理数据的地址对N取模;取模结果所代表的处理器为保存所述待 处理数据的处理器。
【文档编号】G06F9/38GK104216684SQ201310219732
【公开日】2014年12月17日 申请日期:2013年6月4日 优先权日:2013年6月4日
【发明者】马凌, 张磊, 郑灏 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1