一种方法包含使用第一可编程处理器将共享可变数据存储到第一处理器的第一高速缓冲存储器的高速缓存行。所述方法进一步包含:使用所述第一可编程处理器执行具有释放的存储操作;使用第二可编程处理器执行具有获取的加载操作;及使用所述第二可编程处理器加载来自所述第二可编程处理器的高速缓冲存储器的所述共享可变数据的值。
【技术实现步骤摘要】
【国外来华专利技术】【专利说明】使用释放一致性存储器排序模型的多核心计算高速缓存相 干性 本申请案主张2012年8月6日申请的第61/680, 201号美国临时专利申请案以及 2013年3月15日申请的第61/800, 441号美国临时专利申请案的权益,这些申请案的全部 内容通过引用的方式并入本文中。
本专利技术涉及异构计算中所涉及的技术,且更确切地说,涉及异构计算中的高速缓 存相干性所涉及的技术。
技术介绍
最近已有趋势朝向所谓的异构计算,在所述异构计算中将多个处理器互连为一个 系统。在一些情况下,可在若干处理器之中共享任务。一些作业可较佳适合特定类型的处 理器,例如中央处理单元(CPU)、图形处理单元(GPU)或数字信号处理器(DSP)。执行异构 任务所涉及的每一处理器可具有一或多个高速缓冲存储器。每一高速缓冲存储器可含有在 多个处理器中共享的可变数据的副本。高速缓冲存储器可允许处理器通过使高速缓存的数 据对于处理器的一或多个执行单元较快速地可存取而加速程序执行。当一个处理器存取在 系统的处理器的两个或两个以上高速缓冲存储器中共享的共享可变数据时,被称作"高速 缓存相干性系统"的机制确保存储在处理器高速缓冲存储器中的共享可变数据的副本在所 述系统的所有处理器中一致,且以及时及一致的方式使对所述共享可变数据的改变对于共 享这些变量的所有处理器为可观测的。
技术实现思路
大体来说,本专利技术中描述的技术涉及用于在包含可能不同类型的多个处理器核心 的多核心(例如,异构)计算系统中维持多个高速缓冲存储器及系统存储器当中的高速缓 存相干性(即,数据一致性)的技术。根据本专利技术的技术中的一者,中央处理单元(CPU)、图 形处理单元(GPU)、数字信号处理器(DSP)或另一类型的处理核心可在获取或写入多核心 计算系统的所有处理器中共享的变量时执行指令。当处理器核心(被称为"处理器")尝试 存取共享可变数据时,处理器核心可执行同步操作,例如具有获取的加载及/或具有释放 的存储操作,以便确保应用于共享可变数据的任何操作以有序及相干方式发生。 多核心系统中的处理器中的一些或全部可包含高速缓冲存储器。高速缓冲存储器 可包括频繁使用数据的本地工作集合。在一些情况下,高速缓冲存储器可包含在多核心系 统的一或多个其它处理器中共享的共享可变数据的本地副本。根据本专利技术的技术,其它处 理器中的每一者可同样包含高速缓冲存储器,其包含共享可变数据的本地副本。 在具有多个处理器(例如,第一处理器及第二处理器)的多核心系统中,第一处理 器可改变一些共享可变数据的值。第一处理器接着可清空共享可变数据的值。清空共享可 变数据可致使第一处理器将更新的共享可变数据值例如写入到系统存储器。为确保其它处 理器看见共享可变数据的更新值,响应于所述高速缓存清空,第一或第二处理器可使对应 于第二处理器的高速缓冲存储器中的共享可变数据的高速缓存条目无效。当第二处理器读 取先前含有共享可变数据的值的高速缓存行时,将高速缓存行标记为无效。因为第二处理 器的高速缓存行标记为无效,所以第二处理器从系统存储器检索共享可变数据的最新值, 及更新对应于共享可变数据的第二处理器的高速缓冲存储器,而非从第二处理器的高速缓 冲存储器读取共享可变数据的过时值。以此方式,本专利技术的技术确保共享可变数据经由使 用高速缓存无效及清空而相干。 在一个实例中,一种方法包含:使用第一可编程处理器将共享可变数据存储到第 一处理器的第一高速缓冲存储器的高速缓存行;使用第一可编程处理器执行具有释放的存 储操作;使用第二可编程处理器执行具有获取的加载操作;及使用第二可编程处理器加载 来自第二可编程处理器的高速缓冲存储器的共享可变数据的值。 在另一实例中,本专利技术描述一种装置,其包含:具有第一高速缓冲存储器的第一可 编程处理器;具有第二高速缓冲存储器的第二可编程处理器,其中所述装置经配置以使用 第一可编程处理器将共享可变数据存储到第一处理器的第一高速缓冲存储器的高速缓存 行,使用第一可编程处理器执行具有释放的存储操作,使用第二可编程处理器执行具有获 取的加载操作,及使用第二可编程处理器加载来自第二可编程处理器的高速缓冲存储器的 共享可变数据的值。 在另一实例中,本专利技术描述一种装置,其包含:用于使用第一可编程处理器将共享 可变数据存储到第一处理器的第一高速缓冲存储器的高速缓存行的装置;用于使用第一可 编程处理器执行具有释放的存储操作的装置;用于使用第二可编程处理器执行具有获取的 加载操作的装置;及用于使用第二可编程处理器加载来自第二可编程处理器的高速缓冲存 储器的共享可变数据的值的装置。 在另一实例中,本专利技术描述一种其上存储有指令的非暂时性计算机可读存储媒 体,所述指令在执行时致使可编程处理器:使用第一可编程处理器将共享可变数据存储到 第一处理器的第一高速缓冲存储器的高速缓存行;使用第一可编程处理器执行具有释放的 存储操作;使用第二可编程处理器执行具有获取的加载操作;及使用第二可编程处理器加 载来自第二可编程处理器的高速缓冲存储器的共享可变数据的值。 随附图式及以下描述中陈述一或多个实例的细节。其它特征、目标及优势将从所 述描述及所述图式以及从权利要求书显而易见。【附图说明】 图1是说明根据本专利技术中描述的一或多个实例的多核心计算系统的实例的框图。 图2是说明可实施能够执行指令的图形处理管线的图形处理单元(GPU)的另一实 例的框图,所述指令允许GPU支持按需高速缓存相干性。 图3A是说明经配置以执行GPU内核中的同步操作的GPU的概念图,所述内核可包 含高速缓存无效及清空指令。 图3B是说明用于将操作同步到GPU内核的编译器/驱动器插入指令的概念图。 图4A是说明含有失效共享变量的高速缓冲存储器的概念图。 图4B是说明由于从标记为无效的高速缓存行读取而更新来自主存储器的高速缓 冲存储器的概念图。 图5A是说明含有失效共享变量的主存储器的概念图。 图5B是说明在执行高速缓存清空之后的系统存储器的状态的概念图。 图6是说明根据本专利技术的技术的GPU及CPU的高速缓冲存储器及存储器管理单元 的概念图。 图7是根据本专利技术的技术的说明实施属性位的高速缓存行的概念图。 图8是根据本专利技术的技术的说明GPU高速缓冲存储器的概念图。 图9是根据本专利技术中描述的一或多个实例的说明用于维持多核心系统中的高速 缓存相干性的过程的流程图。【具体实施方式】 最近已有趋势朝向所谓的异构计算,在所述异构计算中将多个处理器或处理器核 心("核心")互连为一个系统。然而,存在与异构计算系统相关联的许多挑战。某些核心 可适合于特定任务。作为实例,CPU可较适合于执行具有大量条件性逻辑(例如,分支及跳 跃)的程序。其它处理器,例如图形处理单元(GPU)可较适合于执行大规模平行操作,例如 向量处理及浮点运算。其它处理器,例如数字信号处理器(DSP)可适合于特定应用程序,例 如数字信号处理,其可包含执行特定数学运算。此类运算可包含快速傅立叶变换(FFT)及 离散余弦变换(DCT)。 逐渐地,例如GPU等I/O处理核心的能力已扩增,以包含类似于较通用CPU的 功能性的功能性。许多GPU包含执行包含条件性逻辑(例如分支及跳跃)的较通用应 用程序的能力。另外,通用计本文档来自技高网...
【技术保护点】
一种方法,其包括:使用第一可编程处理器将共享可变数据存储到所述第一处理器的第一高速缓冲存储器的高速缓存行;使用所述第一可编程处理器执行具有释放的存储操作;使用第二可编程处理器执行具有获取的加载操作;及使用所述第二可编程处理器加载来自所述第二可编程处理器的高速缓冲存储器的所述共享可变数据的值。
【技术特征摘要】
【国外来华专利技术】...
【专利技术属性】
技术研发人员:B·雷赫利克,T·R·曾,A·E·格鲁贝尔,A·V·布尔德,C·C·夏普,E·德默斯,
申请(专利权)人:高通股份有限公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。