[发明专利]具有多个处理器、缓存电路和共享存储器的数据处理系统无效
申请号: | 200880111762.1 | 申请日: | 2008-10-14 |
公开(公告)号: | CN101828173A | 公开(公告)日: | 2010-09-08 |
发明(设计)人: | 马可·J·G·贝库伊 | 申请(专利权)人: | NXP股份有限公司 |
主分类号: | G06F12/08 | 分类号: | G06F12/08;G06F9/46 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 王波波 |
地址: | 荷兰艾*** | 国省代码: | 荷兰;NL |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 具有 处理器 缓存 电路 共享 存储器 数据处理系统 | ||
技术领域
本发明涉及用于使用缓存存储器同时处理关于多个计算机程序的数据的多处理电路。
背景技术
在同时执行的、使用共享数据的计算机程序的设计中,已知使用所谓的释放一致性模型。使用该模型以避免在对来自不同程序的共享数据的访问上强加严格的计时关系。
当形成一个程序的指令从存储位置读取共享数据并且来自另一程序的指令向相同位置写入时,读取指令的结果将根据执行写入指令的相关时间的不同而不同。如果必须避免这种差异,则这可能使得同时执行的程序和多处理电路的设计非常复杂。
避免这种问题的一个方式是使用释放一致性模型。释放一致性模型需要在程序中使用同步指令。这些指令典型地称作获取和释放指令。当程序必须向共享数据写入时,该程序必须首先包含针对该数据的获取指令,之后是写入指令,所述写入指令之后必须是针对该数据的释放指令。另一方面,多处理电路的硬件实现必须被设计为:(a)确保该多处理电路不允许在接着前一获取指令而执行完整的释放指令之前完成获取指令的执行,以及(b)确保释放指令仅在先前写入的数据对所有程序可见之后完成。
可以通过为共享数据对象提供信号旗(semaphore)(标志数据)来实现释放一致性模型,所述信号旗针对每个数据对象指示是否已经针对该数据对象执行了获取指令并且在该获取指令之后尚未有相应的释放指令。当执行获取指令时,读取相关的信号旗并将该信号旗设置为一个不可分割的读取修改写入操作,仅在发现信号旗先前并不处于置位状态的情况下完成获取指令的执行。否则,重复读取修改写入操作。当执行释放指令时,清除信号旗。
除了共享存储器之外,多处理器还可以包括针对相应处理器的缓存存储器,用于存储来自共享存储器的数据的拷贝。在多处理器系统中,缓存存储器可能引起一致性问题。
典型地,在一个处理器写入了数据之后,硬件必须确保检验所写入的数据的拷贝是否存储在任何其他处理器的缓存存储器中。如果是,则必须在这些缓存存储器中更新所写入的数据,或者必须使这些缓存存储器中具有旧数据的缓存线(cache line)无效。
当使用具有缓存存储器的多处理器来执行使用释放一致性模型的程序时,必须确保不能在不同的缓存存储器中独立地设置信号旗。否则,释放一致性模型可能降低缓存一致性需求,这是因为在执行释放指令之前会出现缓存更新。
不幸地,对于维持缓存一致性的需要导致了大量的信号开销。当缓存的数目增大时,这种开销不均衡地提高。
发明内容
本发明的目的是提供一种具有缓存存储器的多处理器电路,该处理器电路需要更小的开销来确保一致性。
权利要求1中阐述了一种操作这种多处理电路的方法。在该方法中,每当执行针对数据对象的释放指令和/或获取指令时,缓存电路中包含来自数据对象的数据的所有缓存线都无效。从而,使用处理器的程序的释放/获取指令来避免缓存不一致性,而无需使用监听或类似的开销来维持缓存一致性。在实施例中,可以在执行获取与释放指令之间使用缓存管理,所述缓存管理并不对来自所获取的数据对象的数据与其他数据进行区分。因此,例如,可以依赖于对共享存储器地址的访问,将具有来自所获取的数据对象的数据的缓存线加载或不加载到缓存中,正如具有其他数据的缓存线一样。作为另一示例,当需要让出空间时,可以将具有来自所获取的数据对象的数据的缓存线从缓存中去除,正如具有其他数据的缓存线一样。然而,当执行释放指令时,对数据加以区别,即,来自数据对象的数据如果在缓存中则该数据无效。
在实施例中,回写(write back)缓冲器用于以先入先出顺序从处理器向共享存储器发送写入操作。在该实施例中,可以通过检测是否缓冲器中的所有写入操作记录都已经过处理,来控制释放指令的完成。从而,可以利用很小的开销来实现对释放指令的执行的控制。
在回写缓冲器用于以先入先出顺序从处理器向共享存储器发送写入操作的该实施例或另一实施例中,可以根据缓存数据是否属于所获取的数据对象来针对缓存的数据使用不同的回写机制。可以经由回写缓冲器来写入来自所获取的数据对象的数据,可以通过在从缓存中去除脏缓存线时拷贝回该脏缓存线,来写入其他数据。因此,每当在数据处于所获取的数据对象之外的情况下写入数据时,可以避免回写该数据。
附图说明
使用以下附图,通过示例实施例的描述,这些和其他对象和优点方面将变得显而易见,附图中:
图1示出了多处理器电路。
图2a、b示出了缓存电路。
图3-4示出了缓存电路。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于NXP股份有限公司,未经NXP股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200880111762.1/2.html,转载请声明来源钻瓜专利网。