当前位置: 首页 > 专利查询>英特尔公司专利>正文

事务存储器(TM)系统中的读和写监控属性技术方案

技术编号:15119110 阅读:226 留言:0更新日期:2017-04-09 17:39
本文描述了用于用硬件来监控存储器访问以支持事务执行的方法和装置。属性监控对数据项的访问,其中不用考虑以物理存储结构粒度进行检测,但是保证至少以数据项粒度进行监控。例如,属性被添加到高速缓存的状态位,以实现新的高速缓存一致性状态。一旦对数据项进行了可以选择性确定的被监控的存储器访问,与所述数据项相关联的一致性状态被更新为监控状态。因此,通过将请求类型与所述数据项的被监控的一致性状态相组合来检测对所述数据项的无效请求。

【技术实现步骤摘要】

本专利技术涉及处理器执行领域,并且具体来说,涉及多组指令的执行。相关申请的交叉引用本申请涉及以下与其一同递交的专利申请:Gad Sheaffer等于2008年12月30日递交的代理人卷号为P29132、标题为“Extending Cache CoherencyProtocols to Support Locally Buffered Data”的美国专利申请no.12/346,543;Gad Sheaffer等于2008年12月30日递交的代理人卷号为P29131、标题为“Memory Model for Hardware Attributes Within a Transactional MemorySystem”的美国专利申请no.12/346,539;Gad Sheaffer等于2008年12月30日递交的代理人卷号为P29129、标题为“Registering a User-Handler inHardware for Transactional Memory Event Handling”的美国专利申请no.12/346,518;Gad Sheaffer等于2008年12月30日递交的代理人卷号为P29128、标题为“Metaphysical Address Space for Holding Lossy Meta-data inHardware”的美国专利申请no.12/346,500。
技术介绍
半导体工艺和逻辑设计技术的进步已经使得集成电路设备上可以存在的逻辑的数量得到增加。因此,计算机系统配置已经从一个系统中有单个或多个集成电路演进到在单独集成电路上存在多个核心和多个逻辑处理器。处理器或集成电路通常包括单个处理器管芯,其中,处理器管芯可以包括任意数量的核心或逻辑处理器。集成电路上数量不断增加的核心和逻辑处理器使得能够同时执行更多软件线程。然而,可以同时执行的软件线程的数量的增加已经造成了与同步这些软件线程之间共享的数据有关的问题。访问多核或多逻辑处理器系统中的共享数据的一种通用方案包括使用锁来确保对共享数据进行的多个访问上的互斥性。然而,不断提高的执行多个软件线程的能力仍然可能导致执行的误竞争(false contention)和串行化。例如,考虑保存有共享数据的哈希表。对于锁系统,程序员可以锁定整个哈希表,允许一个线程访问整个哈希表。然而,其他线程的吞吐量和性能可能受到不利影响,因为在锁被释放之前它们不能访问该哈希表中的任何条目。可替代地,哈希表中的每个条目都可以被锁定。对于任何一种方式,在将该简单示例外推到大型可扩展程序之后,显而易见的是,锁竞争、串行化、细粒度同步以及避免死锁的复杂性会成为程序员的极繁重的负担。另一种近来的数据同步技术包括使用事务存储器(transactionalmemory,TM)。通常,事务执行包括执行由多个微操作、操作或指令组成的组。在上面的示例中,两个线程均在哈希表中执行,并且它们的存储器访问被监控/跟踪。如果两个线程访问/改变同一条目,则可以执行冲突解决来保证数据的有效性。一种事务执行包括软件事务存储器(STM),其中,用软件来执行存储器访问的跟踪、冲突解决、中止任务和其他事务任务,通常没有硬件的支持。在强原子性软件事务存储器(STM)系统中,为了保证不发生事务存储器操作和非-->事务存储器操作之间的运行时冲突,编译器将每个非事务存储器操作视为单个操作事务。换言之,在事务存储器访问处和非事务存储器访问处插入事务屏障(barrier),以将事务彼此之间以及与非事务存储器访问进行隔离。然而,在每个事务存储器操作和非事务存储器操作处执行事务屏障可能是昂贵且复杂的。另一种事务执行包括硬件事务存储器(HTM)系统,其中,硬件被包括在内来支持访问跟踪、冲突解决以及其他事务任务。然而,之前在对事务执行的硬件支持方面上的尝试并未有效地将软件事务的优点(例如,在任何数据粒度级上进行访问跟踪和冲突检测)集成到硬件中。附图说明通过举例的方式来说明本专利技术,并且附图并不意图限制本专利技术。图1说明了包括能够同时执行多个软件线程的多个处理部件的处理器的实施例。图2说明了处理器中支持事务执行的结构的实施例。图3说明了在存储器访问监控的选择性关联模式下或者在存储器访问监控的非选择性关联模式下工作的方法的流程图的实施例。图4说明了包括额外监控的高速缓存一致性状态的高速缓存一致性状态的状态转变图的另一实施例。图5说明了监控存储器访问的方法的流程图的实施例。具体实施方式在以下描述中,为了提供对本专利技术的透彻理解,阐述了许多特定细节,例如,事务执行的特定硬件结构、访问监控器的特定类型和实现、特定的高速缓存实现、特定类型的高速缓存一致性模型、特定的数据粒度,以及存储器访问和位置的特定类型等的示例。然而,将对本领域技术人员显而易见的是,实践本专利技术并不一定要采用这些特定细节。在其他示例中,为了避免不必要地混淆本专利技术,未详细描述熟知的组件或方法,例如,软件中事务的编码、事务的划分、特定且可选的多核与多线程处理器架构、特定的编译器方法/实现,以及微处理器的特定操作细节。本文所描述的方法和装置用于提供存储器访问监控器来支持事务执行。特别地,主要参照与高速缓冲存储器结构相关联、用于跟踪对存储器地址的访问的监控器,来讨论提供存储器访问监控器。实际上,在下面图2和4中具体参照与高速缓冲存储器相关联的监控器。然而,用于提供存储器访问监控器的方法和装置并不限于此,它们可以结合用于跟踪对数据元素的存储器访问的任何结构来实现。参照图1,说明了能够同时执行多个线程的处理器的实施例。注意,处理器100可以包括对硬件事务执行的硬件支持。以结合硬件事务执行的方式或者以单独进行的方式,处理器100还可以对以下项提供硬件支持:软件事务存储器(STM)的硬件加速、STM的单独执行,或者其组合,例如混合型事务存储器(TM)系统。处理器100包括任意处理器,例如,微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器,或执行代码的其他设备。如所示出的,处理器100包括多个处理部件。在一个实施例中,处理部件是指线程单元、处理单元、上下文、逻辑处理器、硬件线-->程、核心,和/或能够保持处理器的状态(例如,执行状态或架构状态)的任何其他部件。换言之,在一个实施例中,处理部件是指能够与代码(例如,软件线程、操作系统、应用程序或其他代码)独立相关的任何硬件。物理处理器通常是指集成电路,其可以包括任意数量的其他处理部件,例如多个核心或多个硬件线程。核心通常是指位于集成电路上能够维持独立的架构状态(其中,每个独立维持的架构状态与至少一些专用执行资源相关联)的逻辑。与核心相对地,硬件线程通常是指位于集成电路上能够维持独立的架构状态(其中,独立维持的架构状态共享对执行资源的访问)的任何逻辑。如可以看到的,当某些资源被共享而其他资源专用于一个架构状态时,硬件线程和核心的命名之间的界线有重叠。然而通常来说,核心和硬件线程被操作系统视为单独的逻辑处理器,其中,操作系统能够单独调度每个逻辑处理器上的操作。如图1中所示,物理处理器100包括两个核心,核心101和102,它们共享对更高级高速缓存110的访问。尽管处理器100可以包本文档来自技高网...

【技术保护点】
一种装置,包括:执行逻辑,用于执行涉及与数据项相关联的存储器地址的事务存储器访问操作;存储器,其耦合到处理逻辑,用于响应于所述执行逻辑执行所述事务存储器访问操作而保存所述数据项;以及硬件监控器,其与所述存储器相关联,用于在不管所述存储器的粒度的情况下响应于所述执行逻辑执行所述事务存储器访问操作,而执行所述数据项的有界访问监控。

【技术特征摘要】
2008.12.30 US 12/346,5301.一种装置,包括:执行逻辑,用于执行涉及与数据项相关联的存储器地址的事务存储器访问操作;存储器,其耦合到处理逻辑,用于响应于所述执行逻辑执行所述事务存储器访问操作而保存所述数据项;以及硬件监控器,其与所述存储器相关联,用于在不管所述存储器的粒度的情况下响应于所述执行逻辑执行所述事务存储器访问操作,而执行所述数据项的有界访问监控。2.根据权利要求1所述的装置,其中,所述硬件监控器是响应于所述执行逻辑执行用户级指令而可读并且可修改的。3.根据权利要求1所述的装置,其中,所述存储器包括数据高速缓存,并且其中,与所述数据高速缓存相关联的硬件监控器包括与所述数据高速缓存的多个高速缓存行相对应的多个读监控器和多个写监控器。4.根据权利要求3所述的装置,其中,所述数据高速缓存的所述多个高速缓存行中的数个高速缓存行保存与所述多个高速缓存行的边界未对齐的数据项。5.根据权利要求4所述的装置,其中,所述事务存储器访问操作包括事务载入,并且其中,与所述数据高速缓存相关联、用于在不管所述存储器的粒度的情况下响应于所述执行逻辑执行所述事务载入而执行所述数据项的有界访问监控的硬件监控器包括所述多个读监控器中的数个读监控器,所述数个读监控器对应于所述多个高速缓存行中保存所述数据项的至少一部分的数个高速缓存行,所述数个读监控器响应于所述执行逻辑执行所述事务载入而被更新到监控读状态。6.根据权利要求5所述的装置,其中,所述事务存储器访问操作包括事务存储,并且其中,与所述数据高速缓存相关联、用于在不管所述存储器的粒度的情况下响应于所述执行逻辑执行所述事务存储而执行所述数据项的有界访问监控的硬件监控器包括所述多个写监控器中的数个写监控器,所述数个写监控器对应于所述多个高速缓存行中保存所述数据项的至少一部分的数个高速缓存行,所述数个写监控器响应于所述执行逻辑执行事务写操作而被更新到监控写状态。7.根据权利要求6所述的装置,其中,当所述数个读监控器中对应于所述数个高速缓存行中的一高速缓存行的一读监控器被更新到所述监控读状态时,响应于控制逻辑检测到对所述一高速缓存行的外部写请求,所述控制逻辑检测到事务冲突。8.根据权利要求6所述的装置,其中,当所述数个写监控器中对应于所述数个高速缓存行中的一高速缓存行的一写监控器被更新到所述监控写状态时,响应于控制逻辑检测到对所述一高速缓存行的外部读请求,所述控制逻辑检测到事务冲突。9.根据权利要求6所述的装置,其中,响应于所述执行逻辑执行用户级清除操作,所述数个读监控器和所述数个写监控器要被重置为非监控状态。10.根据权利要求6所述的装置,其中,所述数个包括大于1的整数个。11.根据权利要求1所述的装置,其中,所述硬件监控器基于所述数据项的大小来与所述存储器动态相关联。12.根据权利要求11所述的装置,其中,所述硬件监控器基于所述数据项的大小来与所述存储器动态相关联包括:逻辑响应于所述数据项的大小大于所述存储器的一行并且所述执行逻辑执行所述事务存储器访问操作,动态地从读监控器和写监控器的池向所述存储-->器的多个行指派读监控器和写监控器,所述多个行保存所述数据项的至少一部分。13.根据权利要求12所述的装置,其中,与所述存储器相关联、用于在不管所述存储器的粒度的情况下响应于所述执行逻辑执行所述事务存储器访问操作而执行所述数据项的有界访问监控的硬件监控器包括:指派给所述多个行、响应于所述执行逻辑执行事务载入操作而被设置为监控读状态的读监控器,和指派给所述多个行、响应于所述执行逻辑执行事务存储操作而被设置为监控写状态的写监控器。14.一种处理器,包括:用户可访问寄存器,其保存用于指示所述处理器的非选择性工作模式的非选择性值,和用于指示所述处理器的选择性工作模式的选择性值;控制逻辑,其耦合到所述用户可访问寄存器,用于响应于所述用户可访问寄存器保存有所述选择性值,而基于选择准则来确定是否要监控存储器访问操作;以及硬件属性,用于响应于所述用户可访问寄存器保存有所述非选择性值或者所述控制逻辑基于所述选择准则确定要监控所述存储器访问操作,而跟踪对存储器进行的所述存储器访问操作。15.根据权利要求14所述的装置,其中,所述硬件属性与高速缓冲存储器相关联,所述高速缓冲存储器保存与所述存储器访问操作涉及的存储器地址相关联的数据元素,并且其中,所述硬件属性跟踪对存储器进行的所述存储器访问操作包括:响应于所述处理器执行所述存储器访问操作,将所述硬件属性更新为已访问状态,来指示所述数据元素已经被访问。16.根据权利要求14所述的装置,其中,所述非选择性值包括第一逻辑值,而所述选择性值包括第二逻辑值。17.根据权利要求14所述的装置,其中,所述选择准则包括译码逻辑可识别的、用来指示操作要被监控的操作码,并且其中,所述控制逻辑基于所述操作码来确定是否要监控存储器访问操作包括:所述译码逻辑检测到所述操作码与所述存储器访问操作相关联。18.根据权利要求14所述的装置,其中,所述选择准则包括从以下项组成的组中选择的、由用户级软件在第二用户可访问寄存器中规定的准则:一范围内的虚拟地址、一范围内的物理地址、存储器类型、输入/输出(I/O)地址空间、保护域地址空间、操作码、前缀,以及数据类型。19.根据权利要求18所述的装置,其中,所述控制逻辑基于选择准则来确定是否要监控存储器访问操作包括:将与所述存储器访问操作相关联的准则与所述选择准则...

【专利技术属性】
技术研发人员:G·谢弗S·赖金V·巴辛R·萨德E·科亨O·马古利斯
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1