【技术实现步骤摘要】
【国外来华专利技术】用于使用多个子锁来控制对具有读取器-写入器锁的共享数据结构的访问的系统和方法
技术介绍
现代计算机通过使用多处理器管芯和(在某些情况下)单个管芯上的多个处理器核来实现增加的性能。为了利用这些改善的硬件布置,创建软件以在单个处理器核上同时地运行多个线程。附图说明针对本专利技术的示例性实施方式的详细描述,现在将对附图进行参考,在所述附图中:图1a和1b示出了根据本公开的各种示例的用于控制对共享数据结构的访问的系统的替换框图;图2a-2i示出了根据本公开的各种示例的示例性存储器图;图3示出了根据本公开的各种示例的数据访问控制系统;图4示出了根据本公开的各种示例的用于控制对共享数据结构的访问的方法的流程图;以及图5示出了根据本公开的某些示例的示例性子锁打包方案。表示法和命名法遍及以下描述和权利要求使用某些术语来指示特定系统部件。本领域的技术人员将认识到计算机公司可用不同的名称来指示部件。本文并不意图区别在名称而非功能方面不同的部件。在以下讨论中和权利要求中,以开放末端方式使用术语“包括”和“包含”,并且因此应解释成意指“包括但不限于...”。并且,术语“耦合”意图指间接、直接、光学或无线电连接。因此,如果第一器件耦合到第二器件,则该连接可通过直接电连接、通过经由其他设备和连接的间接电连接、通过光学电连接或者通过无线电连接。本文所使用的术语“处理单元”指的是执行计算任务的物理或逻辑资源。逻辑资源的示例包括线程和进程。物理资源的示例包括虚拟CPU核、物理CPU核、共享一个或多个高速缓存器层级的分组CPU核、公共管芯上的CPU核、公共多芯片模块上的CPU核、公共插座上的CPU ...
【技术保护点】
一种用于控制对共享数据结构的访问的计算机系统,包括:第一处理单元,被耦合到专用于第一处理单元的第一高速缓存器;第二处理单元,被耦合到专用于第二处理单元的第二高速缓存器;共享存储器,被耦合到第一和第二处理单元,存储多锁以控制对被第一和第二处理单元共享的数据结构的访问,多锁包括与第一处理单元相关联的第一子锁和与第二处理单元相关联的第二子锁,子锁包括读部分和写部分;相干性总线,将第一和第二高速缓存器耦合并在第一和第二高速缓存器之间载送相干性信息;以及数据访问控制引擎,用以从第一处理单元接收用以从数据结构进行读取的请求,并且作为结果: 确定在第一高速缓存器中是否存在第一子锁的私人可修改拷贝; 如果在第一高速缓存器中存在第一子锁的私人可修改拷贝,则获取第一子锁的读部分且不跨相干性总线传送该获取;以及 如果在第一高速缓存器中不存在第一子锁的私人可修改拷贝,则在第一高速缓存器中没有拷贝的情况下将第一子锁加载到第一高速缓存器中,选中第一子锁的其他拷贝,并获取第一子锁的读部分。
【技术特征摘要】
【国外来华专利技术】1.一种用于控制对共享数据结构的访问的计算机系统,包括:第一处理单元,被耦合到专用于第一处理单元的第一高速缓存器;第二处理单元,被耦合到专用于第二处理单元的第二高速缓存器;被耦合到第一和第二处理单元的共享存储器,存储多锁以控制对被第一和第二处理单元共享的数据结构的访问,多锁包括与第一处理单元相关联的第一子锁和与第二处理单元相关联的第二子锁,子锁包括读部分和写部分;相干性总线,将第一和第二高速缓存器耦合并在第一和第二高速缓存器之间载送相干性信息;以及数据访问控制引擎,用以从第一处理单元接收用以从数据结构进行读取的请求,并且作为结果:确定在第一高速缓存器中是否存在第一子锁的私人可修改拷贝;如果在第一高速缓存器中存在第一子锁的私人可修改拷贝,则获取第一子锁的读部分且不跨相干性总线传送该获取;以及如果在第一高速缓存器中不存在第一子锁的私人可修改拷贝,则在第一高速缓存器中没有拷贝的情况下将第一子锁加载到第一高速缓存器中,选中第一子锁的其他拷贝,并获取第一子锁的读部分。2.权利要求1所述的计算机系统,其中,所述相干性总线载送实现MESI高速缓存相干性协议的相干性信息。3.权利要求2所述的计算机系统,其中,如果将第一子锁存储在第一高速缓存器中的高速缓存线处于已修改或独有状态,则第一子锁的拷贝是私人可修改的。4.权利要求2所述的计算机系统,其中,如果将第一子锁存储在第一高速缓存器中的高速缓存线处于共享或无效状态或者不存在将第一子锁存储在第一高速缓存器中的高速缓存线,则第一子锁的拷贝不是私人可修改的,并且其中,如果将第一子锁存储在第一高速缓存器中的高速缓存线处于共享状态,则在相干性总线上向第二高速缓存器发布选中并获取第一子锁的读部分。5.权利要求2所述的计算机系统,其中,所述数据访问控制引擎还被配置成从第一处理单元接收用以向共享数据结构进行写入的请求,并且作为结果,针对多锁的每个子锁:如果读部分指示不存在已获取子锁的读部分的处理单元且将子锁存储在第一高速缓存器中的高速缓存线处于已修改或独有状态,则获取子锁的写部分;如果读部分指示不存在已获取子锁的读部分的处理单元且将子锁存储在第一高速缓存器中的高速缓存线处于共享状态,则获取子锁的写部分并向除第一高速缓存器之外的高速缓存器发布选中;以及如果在第一高速缓存器中不存在子锁的私人可修改拷贝,则在第一高速缓存器中没有拷贝的情况下将子锁加载到第一高速缓存器中,获取子锁的写部分,并且如果读部分指示不存在已获取子锁的读部分的处理单元、则向除第一高速缓存器之外的高速缓存器发布选中。6.权利要求1所述的计算机系统,其中,当从共享存储器将第一子锁加载到第一高速缓存器中时,在相干性总线上向第二高速缓存器发布选中。7.一种用于控制对共享数据结构的访问的方法,包括:存储多锁以控制对数据结构的访问,多锁包括与第一处理单元相关联的第一子锁和与第二处理单元相关联的第二子锁,每个子锁包括读部分和写部分;从第一处理单元接收用以从数据结构进行读取的请求;确定在专用于第一处理单元的第一高速缓存器中是否存在第一子锁的私人可修改拷贝;如果在第一高速缓存器中存在第一子锁的私人可修改拷贝,则获取第一子锁的读部分且不跨第一高速缓存器与专用于第二处理单元的第二高速缓存器之间的相干性总线传送该获取;以及如果在第一高速缓存器中没有拷贝,则将第一子锁加载到第一高速缓存器中,并且如果在第一高速缓存器中不存在第一...
【专利技术属性】
技术研发人员:JA图塞克,
申请(专利权)人:惠普发展公司,有限责任合伙企业,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。