处理器的存储器共享的制作方法

文档序号:6497676阅读:173来源:国知局
处理器的存储器共享的制作方法
【专利摘要】提出了一种由计算机控制单元的逻辑部实施的方法,其中控制单元包括至少一个第一接口以及若干第二接口,并且控制单元适合通过第一接口与主物理存储器连接,并且通过第二接口与一组数量大于或等于2(N≥2)的非协处理器连接,并且逻辑部可操作地耦合到第一接口以及第二接口。方法包括通过第二接口接收(S10)来自该组中的第一处理器的访问主物理存储器数据的请求,判定(S20)第二处理器是否之前访问过被第一处理器请求的数据,并且当判定(S20)为正时,推迟(S30)来自第一处理器的请求,或者当判定为负时,准许(S40)来自第一处理器的请求。
【专利说明】处理器的存储器共享
【技术领域】
[0001]本发明涉及计算机科学的领域,并且更具体地,涉及由计算机存储器控制单元的逻辑部执行的用于处理器的存储器共享的方法,涉及包括该逻辑部的计算机存储器控制单元,涉及包括用于配置该逻辑部的指令的计算机程序,并且涉及其上记录有该程序的数据存储介质。
【背景技术】
[0002]共享存储器的体系结构使得若干处理器可以共享其存储器地址空间的若干部分。现有的共享存储器的硬件体系结构以及其用于共享存储器的相应的协议假定有一组协处理器。一种现有的可能性是所有处理器都实施相同的存储器访问接口硬件,其不是标准的,而是适合于处理器之间的协作以使它们以顺畅的方式来访问共享存储器。另一个现有的可能性是所有的处理器都有安 装在其上的特定的软件部件,该软件部件允许它们互相通信或者与中心硬件通信,从而协作以仿真虚拟共享存储器。这种现有的可能性要求在每个共享存储器的处理器上安装特定的部件:在一种情况下适合于协作的特定硬件接口 ;或者在其他情况下特定的软件以及使用个体处理器的未共享的存储器来仿真的虚拟共享存储器。这使得该体系结构在前者的情况下实现起来既昂贵又复杂,或者在后者的情况下减弱物理共享存储器的性能。
[0003]随着异质体系结构的越来越普及,人们对于实施这样的机制的兴趣越来越高,所述机制允许非同质体系结构执行能够通过存储器共享区域来进行通信的处理,即使相关的处理器可能不实施相同(或者任何)的共享存储器协议接口。
[0004]因此需要有一种对于存储器共享的改进的解决方案。

【发明内容】

[0005]根据一个方面,本发明体现为由计算机存储器控制单元的逻辑部实施的方法。控制单元包括至少一个第一接口以及第二接口并且所述控制单元适合于通过第一接口与主物理存储器连接,并且通过第二接口与一组数量大于或等于2 (N ^ 2)的非协处理器连接。逻辑部可操作地耦合到所述第一和第二接口。该方法包括通过所述第二接口接收来自该组中的第一处理器的访问主物理存储器的数据的请求。该方法还包括判定(evaluate)第二处理器是否之前访问过被第一处理器请求的数据。该方法进一步包括当判定为正时,推迟来自第一处理器的请求,或者,当判定为负时,准许来自第一处理器的请求。
[0006]在示例中,该方法可以包括一个或者多个下列特征:
[0007]—该方法包括,当推迟来自第一处理器的请求时,向第二处理器发送请求以将与由第一处理器请求的数据相关的缓存行回写到主物理存储器。
[0008]一通过第二处理器的中断引脚来执行向第二处理器发送请求。
[0009]一该方法包括,在推迟来自第一处理器的请求的同时并且在向第二处理器发送请求之后,命令控制单元将由控制单元从第二处理器接收的被请求的缓存行传送到主物理存储器;
[0010]一该方法包括,一旦第二处理器将所请求的缓存行回写到主物理存储器,便准许来自第一处理器的请求。
[0011]一判定的步骤包括在控制单元的数据库中检查第二处理器是否与被第一处理器请求的数据相关联;
[0012]一该方法进一步包括在数据库中将第一处理器与被第一处理器请求的数据关联;
[0013]一第二接口是双倍数据率(double-data-rate)动态随机存取存储器(DDR DRAM)接口 ;和/或
[0014]一访问管理的粒度按照物理存储器地址的范围(块或者页)。
[0015]根据另一个方面,本发明体现为计算机存储器控制单元。控制单元包括至少一个第一接口和第二接口,并且所述控制单元适合于通过第一接口与主物理存储器连接,以及通过第二接口与一组数量大于或等于2 (N >2)的非协处理器连接。控制单元包括可操作地耦合到所述第一和第二接口的并且被配置执行上述方法的逻辑部。
[0016]根据另一个方面,本发明体现为系统,所述系统包括上述的计算机存储器控制单元,其通过第一接口与主物理存储器连接并且通过第二接口与一组数量大于或等于2 (N≥2)的非协处理器连接。
[0017]根据另一个方 面,本发明体现为计算机程序,其包括用于配置逻辑部的指令,该逻辑部适合于可操作地耦合到包括该逻辑部的计算机存储器控制单元的第一接口和第二接口,所述控制单元适合于通过第一接口与主物理存储器连接,以及通过第二接口与一组数量大于或等于2(N ^ 2)的非协处理器连接,所述处理器,所述指令用于配置逻辑部以执行上述的方法。
[0018]根据另一个方法,本发明体现为在其上记录上述计算机程序的数据储存介质。
【专利附图】

【附图说明】
[0019]现在将通过非限定性的示例并且参考附图描述体现本发明的系统和处理,其中:
[0020]一图1示出了本方法的示例的流程图
[0021]一图2示出了包括计算机存储器控制单元的系统的图示。
【具体实施方式】
[0022]提出了由计算机存储器控制单元的逻辑部实施的方法。控制单元包括至少一个第一接口以及(若干个)第二接口,并且所述控制单元适合于通过第一接口与主物理存储器连接,以及通过第二接口与一组数量大于或等于2的非协处理器连接。逻辑部可操作地耦合到所述第一和第二接口。该方法包括通过所述第二接口,接收来自该组中的第一处理器的访问主物理存储器的数据的请求。该方法还包括判定第二处理器是否之前访问过由第一处理器请求的数据。该方法进一步包括当判定为正时,推迟来自第一处理器的请求,或者,当判定为负时,准许来自第一处理器的请求。这样的方法允许通过第二接口连接到控制单元的N个处理器,以改进的方式共享通过第一接口连接到控制单元的存储器。
[0023](计算机存储器)控制单元是硬件材料,其适合于控制多个处理器对物理存储器的访问,所述处理器可以被集成到系统(诸如计算机)中。
[0024]控制单元包括至少一个第一接口和若干第二接口。换句话说,控制单元包括至少一个接口(即,“第一接口 ”)的第一组和至少两个接口(即,“第二接口 ”)的第二组。在一侧的第一接口以及在另一侧的第二接口全部是用于与硬件连接的工具,其包括硬件元素(诸如连接)以及软件元素(诸如用于解释由控制单元通过给定接口接收的信号和/或用于通过给定接口传送信号的程序),第一接口和第二接口区别在于其适合于用不同的材料连接至控制单元。事实上,在一方面,控制单元适合于通过第一接口与(在这种情况下,计算机的)主物理存储器(其因此适合)连接。在另一方面,控制单元适合于通过第二接口与处理器连接。这里至少有两个第二接口,使得总共至少有三个接口(至少一个第一接口和至少两个第二接口)。这样,控制单元可以与一组数量大于或等于2 (N >2)的非协处理器连接。
[0025]主存储器可以是具有与第一接口匹配的相应接口的一个单元。可替换地,主存储器可以具有若干接口,这种情况下,控制单元可能具有若干个第一接口,或者主存储器可以包括每个具有一个或者若干接口的若干单元,在这种情况下控制单元具有若干第一接口,例如,至少每个单元一个接口。
[0026]处理器被称为是非协作的(非协处理器),因为它们可以是标准的处理器。例如,处理器可以排除为处理器间的协作而特别设计的任何硬件部件。处理器也可以排除从协作的角度去考虑而在其上存储的为允许处理器之间的通信而设计的复杂软件。因此,方法允许若干处理器以简单并经济的方式共享存储器。在示例中,处理器可以具有不同的微体系结构以及虚拟存储器接口定义。因此,方法允许若干处理器共享存储器,即使这些处理器可能是不同的。第二接口可以是双倍数据率接口,其是公知的标准的并且因此可以经济又简单地来实施。同样,至少两个第二接口可以是不同的。
[0027]该方法涵盖了硬件体系结构以及对应的访问协议,其允许可能定义了不同的体系结构以及虚拟存储器接口的处理器,来通过存储器的共享区域来通信。该方法因此可以工作在标准DRAM电子以及协议接口的层级下。在一个实施例中,使用指示来自DRAM阵列的数据的可用性的信号来扩展工业标准双倍数据率(DDR)接口。现有的DDR接口已经具有类似的(但是可选的)DQS和RDQS信号。由于这些信号是可选的,许多实施现在假设数据在固定延迟后是可用的。此方法基于这样一个事实:通用处理器,无论其体系结构和虚拟存储器接口定义如何,通过物理性的、标准化的存储器接口(诸如JEDEC标准化DDR存储器接口)访问主存储器。
[0028]控制单元(其也可以被称为相干控制单元(coherence control unit),即(XU)因此与主存储器和每个处理器连接,这两种连接都可能使用标准化的存储器接口,例如JEDEC标准DDR存储器接口。因此,在此之后提到的所有存储器地址可以称为物理DRAM地址。然而,也可以使用跨处理器体系结构和存储器模块广泛支持的任何其它存储器接口。
[0029]控制单元进一步包括逻辑部。逻辑部包括具有处理能力以及遵循预定方案的硬件,例如,基于储存在存储器中的指令。逻辑部可操作地耦合到所述第一和第二接口。换句话来说,逻辑部可访问接口并且因此可以处理通过接口传送的信息。逻辑部可以因此接收并处理由控制单元从控制单元外通过接口接收的信息,和/或逻辑部可以命令控制单元将信息通过接口发送到控制单元外。[0030]由控制单元的逻辑部执行的方法现在将参考图1描述,图1表示了方法的示例的流程图。
[0031]示例的方法包括停留在空闲状态(S5)。在这种情况下,逻辑部在执行动作之前,等待方法的第一激活事件的发生。此外,逻辑部可以在完成了其动作后,返回到空闲状态。
[0032]方法包括从该组中的第一处理器通过第二接口接收(SlO)访问主物理存储器的数据的请求。换句话说,该组中的处理器,也就是“第一”处理器,请求访问主物理存储器。该请求被执行,如同处理器被直接地连接到主存储器一样。换句话说,处理器没有“看到”控制单元,并且如同直接连接到主存储器那样操作,这是通常的情况。
[0033]方法然后包括判定(S20)是否第二处理器之前访问过被第一处理器请求过的数据。换句话说,逻辑部核实是否另一个处理器,也就是“第二”处理器,已经访问过由第一处理器所请求的相同数据。在示例中,判定(S20)包括在控制单元的数据库中检查第二处理器是否与被第一处理器请求的数据相关联。控制单元可以因此包括这样的数据库,并且因此包括用于存储此数据库的专用的存储器(例如,内部存储器,或者主存储器的一部分)。这样的数据库可以包括关联到主存储器数据(例如,主存储器的标识符)和处理器数据(例如,处理器的标识符)的查找表。这允许控制单元避免了处理器之间的冲突,所述处理器请求对于主存储器的相同数据的基本同时发生的访问。
[0034]事实上,当判定(S20)为正时(即,第二处理器之前请求过对与被第一处理器现在请求的数据相同的数据的访问),可能会有冲突(即,两个处理器可能对相同的数据操作;并且可能在没有互相共享更改的情况下,更改数据;或者在一个处理器在更改数据,另一个处理器并不知道其在更改数据的情况下读取所述数据,并且因此没有读取所述更改)。因此在这种情况下,方法包括推迟(S30)(即,搁置)来自第一处理器的请求。这提供了用于实施动作的时间,以确保将没有冲突并且避免冲突。否则(即,如果判定(S20)得出还没有处理器请求过数据的结果),方法包括当判定为否时,准许(S41)来自第一处理器的请求。
[0035]在示例中,当推迟(S30)来自第一处理器的请求时(即,当来自第一处理器的请求被搁置时),方案包括,并行地,向第二处理器发送(S35)请求以将缓存行回写到主物理存储器。被要求回写的缓存行可以与被第一处理器请求的数据相关联。换句话说,逻辑部请求第二处理器,即、访问过被第一处理器请求的相同数据的处理器,将存储在其缓存器中的所有数据(或者仅仅与所请求的数据关联的数据)发送到控制单元。这可以通过第二处理器的中断引脚来执行。如果存在这样的数据(即,第二处理器还没有回写该数据的缓存行),则逻辑部监测该数据的接收(在流程图中没有描绘)并且命令(S36)控制单元将由控制单元从第二处理器接收的所请求的缓存行传送到主物理存储器。换句话说,逻辑部确保数据传送到主存储器。因此,正由第二处理器执行的对于数据的操作便委托给主存储器。
[0036]一旦第二处理器将所有被请求的缓存行回写到主物理存储器,其可以通过(由逻辑部)接收(S7)来自第二处理器的完成信号来确认,则该方法可以包括准许(S42)来自第一处理器的请求。
[0037]准许(S42)和准许(S42)实施相同的动作,但是它们具有不同的附图标记,因为它们之前是本方法的不同步骤。
[0038]在示例中,在准许(S41,S42)第一处理器的请求之前并且紧邻该准许(S41,S42),该方法进一步包括在数据库中将第一处理器与由第一处理器请求的数据相关联。这样的话便可以确保本方法的进一步执行。在具有第二处理器并且判定(S20)的结果为正的情况下,第一处理器可以在数据库中替代第二处理器。
[0039]在示例中,准许(S41,S42)第一处理器的请求包括命令(S39)控制单元将请求传送到主物理存储器并且然后命令(S40)控制单元将来自主物理存储器的返回数据转发到第一处理器。事实上,处理器(包括第一处理器)就如同其直接地连接到主存储器那样工作,而控制单元截取所有的信号并且管理之。这在参考图2描述控制单元时将会变得更清
λ.Μ
/E.ο
[0040]作为效率的优化,在存储器中的数据项目的地址可以被分组为块,其可以在CXU中称为CCU物理页,并且所有的数据所有权管理都按这个粒度执行。这样可以,例如,减少CCU在其数据库中将必须要保持的条目数量,而可能需要在步骤S35中将更多的数据回写到存储器中。
[0041]该方法提供了共享存储器的协议,并且使用同质的存储器组织可以更好的执行该方法。控制单元可以因此定义公共地址空间,并且物理存储器可以因此被分割为共享的物理页-不依赖于在个体的处理器中使用的页大小。每个处理器都可以实施不同的虚拟存储器接口,每个都有其各自的页数目以及页大小。例如,对于32位PowerPC和x86结构体系(处理器之一可以呈现该特征),物理页大小可以是4KB,而对于DEC/Compaq Alpha,其可以是8KB(处理器之一可以呈现该特征)。例如,B.Jacob和T.Mudge于1998年7月发表在IEEE Micro,18:60-70的题为“在当代微处理器中的虚拟存储器(Virtual memory incontemporary microprocessors) ” 的论文角军释了这点。
[0042]控制单元可以将由每个处理器请求的物理地址转化为数据库中的相应的控制单元物理页编号(例如,统一的存储器地址空间),例如物理页ID查找表(PPIDT)。可以使用若干个标准来选择公共控制单元页大小。较大的控制单元页大小可以导致PPIDT中的较小数量的条目,但是当控制单元将回写请求通知给处理器的时候需要将更多的项目回写到存储器,并因此降低性能。
[0043]因此在这种情况下共享的数据以控制单元的物理页粒度来追踪,S卩,对共享存储器地点的数据访问由与该地点相关联的物理页标识符(PPI)来识别。CCU监测每个DRAM存储器访问。使用映射表,CCU纪录在发生到共享地点的存储器访问时发起请求的处理器的身份,以及与被访问的共享的页相关联的PPI。该信息用来保证当不同的处理器试图访问相同的物理地点时的一致性。
[0044]现在讨论另一个实现本方法的示例,其类似于参考图1提出的那个示例。该示例的特点可以被结合到参考图1提供的那个示例。
[0045]在该示例中,起初,CXU处于空闲状态。当处理器启动对存储器的读取时,离开处理器并奔向DRAM的请求被CXU截取。然后CXU在处理器中执行到物理页ID查找表(PPIDT)的查找。该查找用来确定所请求的数据所位于的物理页之前是否被不同的处理器访问(并且因此可能被修改)过。如果对应于该地址的PPID不在表中,那么处理器访问DRAM,并且C⑶更新PPIDT,添加将处理器映射到相应公共物理页的新的条目。然后由CXU启动从DRAM到处理器的数据移动。
[0046]如果不同的处理器试图访问相同物理存储器页中的数据,则PPIDT查找表将揭示出该页之前已被不同的处理器读取过。在那种情况下,为了保证数据的一致性,CCU将请求发送到处理器,以回写所有与在PPDIT中和处理器并排罗列的物理页对应的缓存行。该请求使用中断信号通过通用处理器中断引脚来实施。CCU必须等待直到处理器发回表明存储器写入已被完成的信号,这可以通过通用的输入一输出引脚,或者到非可缓存地址的写入来完成。
[0047]一旦其确认数据已被回写到存储器,C⑶更新PPIDT,移除PPIDT中的旧的条目并且为包含相应CXU物理存储器页的PPID的处理器创建新的条目。最后,CXU启动对于主存储器的请求,使得数据可以被传送到相应的处理器。
[0048]必须确保的是,处理器在固定的延迟后没有以数据字(data word)开始计时,如同处理器直接连接(通过其存储器控制器)到DRAM那样。在标准接口是DDR的实施例中,确保这样的一个方案是,确保使用CXU的处理器实施(并且如实地监测)针对每个读取请求的可选的DQS DDS接口信号;这使得处理器知道何时能得到有效数据。可能的替代方案可以包括覆盖现有的存储器时序设置信息,所述存储器时序设置信息存储在存储器DIMM(双列直插式存储器模块)上串行存在检查(serial presence detect (SPD)) EEPROM(电可擦可编程只读存储器)中,并且在启动时被处理器读取。当来自DRAM的数据准备就绪时,CCU将其转发给相应的处理器。
[0049]根据以上所述,只要处理器启动了新的事务,PPIDT便更新。然而处理器缓存可能在此期间被清洗,或者使得将新条目添加到表中的数据可能被驱出以分配最近的数据。在这种情况下,CCU可能不能够监测到处理器缓存中的变化。CCU因此必须在内部为不同的存储器缓存的缓存替换建立模型,使得CCU能够预测特定的数据项目是否被从存储区中驱出。在不可能在CCU中建模的情况下,在相应的缓存中的所有行可能不得不被驱出。
[0050]替代实施例可以包括每个处理器具有一个控制单元,以及可能在CXU之间使用互连网络来进行控制单元的不同实例(instance)的同步。
[0051]现在,逻辑部可以是计算机存储器控制单元的一部分。控制单元包括至少一个第一接口和若干第二接口,并且控制单元适合于与主物理存储器通过第一接口连接,以及与一组数量大于或等于2 (N >2)的非协处理器通过第二接口连接。控制单元进一步包括逻辑部,其也可操作地耦合到所述第一和第二接口并且被配置为执行该方法。这样的计算机存储器控制单元允许多个非协处理器以有效的、经济的并且简单的方式来共享相同的主物理存储器。
[0052]计算机存储器控制单元其自身可以是系统的一部分,所述系统包括通过第一接口与主物理存储器连接的以及通过第二接口与一组数量大于或等于2的非协处理器连接的计算机存储器控制单元。
[0053]图2是系统的示例的硬件框图,其可以是具有共享主物理存储器的多个处理器的计算机系统,或者包含共享主物理存储器(可能是虚拟存储器)的多个计算机(以及因此多个处理器)的计算机网络。
[0054]在示例中,系统200包括计算机存储器控制单元100。计算机存储器控制单元100通过第一接口 Iio与主物理存储器210连接(其也是系统200的一部分)。计算机存储器控制单元100进一步通过第二接口 120与三个处理器220连接。
[0055]控制单元100因此包括至少一个第一接口 110以及至少两个第二接口 120 (在示例中为8个)并且适合于通过第一接口 110与主物理存储器210连接,并且通过第二接口120与非协处理器220连接。控制单元100进一步包括(控制)逻辑部130,其可操作地通过数据路径115耦合到第一接口 110以及第二接口 120,并且被配置执行该方法。每个第二接口 120都包括中断器125,所述中断器125适合于通过处理器220的中断引脚发送信号以将请求发送到所述处理器220从而回写缓存行。
[0056]数据路径115适合集中由控制逻辑130发送的或者从任何接口(110,120)接收的信息。数据路径115可以为此包括用于引导数据的任何一种装置或者其组合,例如重定向多路转换器,回写缓存器,和/或总线。
[0057]控制单元100还包括请求队列140,其适合于将由处理器220接收的请求进行列队。控制单元100还包括配置寄存器150以及储存PPIDT165的内部存储器160。以这种方式,控制单元100适合于将接收的来自处理器220的请求解释为访问主存储器210的给定页的请求,并且可以,基于查找表165,判定另一个处理器220之前是否访问过所述给定页。
[0058]如被本领域技术人员理解的那样,本发明的方面可以体现为计算机化的系统,用于使用或者配置该系统的方法,或者用于执行该方法的计算机程序产品。相应地,本发明的方面可以采取完全硬件实施例的形式,完全软件实施例(包括固件,驻留软件,微码等)的形式,或者合并了软件和硬件方面的实施例的形式,这些实施例在这里可以广义地称为“电路”,“模块”或者“系统”。进一步,本发明的方面可以采取计算机程序产品的形式,所述计算机程序产品体现为具有记录在其上的计算机可读程序代码的一个或者多个计算机可读介质(即,数据存储介质)。
[0059]可以使用一个或者多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质可以是,例如,但是不限于,电子的、磁性的、光学的、电磁的、红外的或者半导体的系统、设备或者器件,或者前述的任何适当组合。计算机可读存储介质的更多的具体示例(非穷尽名单)可以包括如下:便携式计算机磁盘,硬盘,随机存取存储器(RAM),只读存储器(ROM),可擦除可编程只读存储器(EPR0M或者闪存),光纤,便携式压缩盘只读存储器(CD-ROM),光学存储器设备,磁性存储设备,或者前述的任何合适组合。在本文的背景下,计算机可读存储介质,即,数据存储介质,可以是任何有形的介质,其能够包括或者存储被指令执行系统、装置或设备使用的或者与其有关的程序。
[0060]计算机可读信号介质可以包括计算机可读程序代码体现在其中的传播的数据信号,例如,在基带中或者做为载波的一部分。这种传播的信号可以采取多种形式中任意一种,包括但不限于,电磁的,光学的,或者其任何合适的组合。计算机可读信号介质可以是并非计算机可读存储介质的任何计算机可读介质,并且其可以传达、传播或者传输被指令执行系统、装置或者设备使用的或者与其相关的程序。
[0061]体现在计算机可读介质上的程序代码可以使用任何合适的介质进行传输,包括但是不限于无线,有线,光纤电缆,射频等,或者前述的任何适当组合。
[0062]执行本发明的方面的操作的计算机程序代码可以用一种或者多种编程语言的任何组合来编写,所述编程语目包括面向对象的编程语目(诸如,Java, Smalltalk, C++等)和传统的程序设计语言(诸如,“C”编程语言或者类似的编程语言)。程序代码可以完全地在用户的计算机上被执行,部分地在用户的计算机上被执行,做为独立的软件包,部分地在用户的计算机上并且部分在远程计算机上被执行,或者完全地在远程计算机或者服务器上被执行。在后者的情况下,远程计算机可以通过任何种类的网络连接到用户的计算机,所述网络包括局域网(LAN)或者广域网(WAN),或者可以被实现的到外部计算机的连接(例如,通过使用因特网业务提供商的因特网)。
【权利要求】
1.一种由计算机存储器控制单元的逻辑部实施的方法,其中 所述控制单元包括至少一个第一接口以及若干第二接口,并且所述控制单元适合于: 一通过所述第一接口与主物理存储器连接,以及 一通过所述第二接口与一组数量大于或等于2的非协处理器连接, 所述逻辑部可操作地耦合到所述第一接口以及所述第二接口,并且 所述方法包括: 通过所述第二接口接收(SlO)来自所述组中的第一处理器的访问所述主物理存储器的数据的请求, 判定(S20)第二处理器是否之前访问过被所述第一处理器请求的所述数据,以及当判定(S20)是正的时候,推迟(S30)来自所述第一处理器的所述请求,或者,当判定是负的时候,准许(S41)来自所述第一处理器的所述请求。
2.根据权利要求1所述的方法,其中所述方法包括:当推迟(S30)来自所述第一处理器的所述请求的时候,向所述第二处理器发送(S35)请求以将与由所述第一处理器请求的所述数据相关的缓存行回写到所述主物理存储器。
3.根据权利要求2所述的方法,其中向所述第二处理器发送(S35)请求的步骤是通过所述第二处理器的中断引脚执行的。
4.根据权利要求3所述的方法,其中所述方法包括:当推迟(S30)来自所述第一处理器的所述请求时,并且在向所述第二处理器发送(S35)请求之后,命令(S36)所述控制单元将由所述控制单元从所述 第二处理器接收的被请求的缓存行传送给所述主物理存储器。
5.根据权利要求4所述的方法,其中所述方法包括:一旦所述第二处理器将所有被请求的缓存行回写到所述主物理存储器,则准许(S42)来自所述第一处理器的所述请求。
6.根据权利要求1一 5中的任何一个所述的方法,其中判定(S20)的步骤包括:在所述控制单元的数据库中检查第二处理器是否与由所述第一处理器请求的数据相关联。
7.根据权利要求6所述的方法,其中所述方法进一步包括:在所述数据库中将所述第一处理器与由所述第一处理器请求的所述数据关联(S38)。
8.根据权利要求1一 7中的任何一个所述的方法,其中所述第二接口是双倍数据率动态随机访问存储器(DDR DRAM)接口。
9.根据权利要求1一 8中的任何一个所述的方法,其中访问管理的粒度按物理存储器地址的范围,即块或者页。
10.一种计算机存储器控制单元,其中: 所述控制单元包括至少一个第一接口以及若干第二接口,并且所述控制单元适合于: 一通过所述第一接口与主物理存储器连接,以及 一通过所述第二接口与一组数量大于或等于2的非协处理器连接, 所述控制单元包括可操作地耦合到所述第一接口以及所述第二接口并且被配置以执行权利要求1 一 9中的任何一个所述的方法的逻辑部。
11.一种系统,其包括权利要求10所述的计算机存储器控制单元,所述计算机存储控制单元通过所述第一接口与主物理存储器连接以及通过所述第二接口与一组数量大于或等于2的非协处理器连接。
12.—种计算机程序,其包括用于配置逻辑部的指令,所述计算机程序适合于可操作地与包括所述逻辑部的计算机存储器控制单元的第一接口以及第二接口耦合,所述控制单元适合于通过所述第一接口与主物理存储器连接,以及通过所述第二接口与一组数量大于或者等于2的非协处理器连接,所述处理器,所述指令是用来配置所述逻辑部以执行权利要求I一 9中的任何一个所述的方法。
13.一种数据存储介 质,其上记录有权利要求12所述的计算机程序。
【文档编号】G06F13/16GK103999063SQ201280062000
【公开日】2014年8月20日 申请日期:2012年11月20日 优先权日:2011年12月16日
【发明者】V·卡帕洛斯卡布扎斯, R·扬里乌斯, M·L·施马茨, P·斯坦利-马伯尔 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1