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

由图形处理器改进的成组存储器存取效率制造技术

技术编号:13941094 阅读:53 留言:0更新日期:2016-10-29 15:56
将结构阵列(AOS)转换成阵列结构(SOA)改进了从AOS到SOA的传送效率。可使用类似技术有效地从SOA转换成AOS。执行转换的控制器将分区大小计算为第一存储器装置中的组的数量与AOS中结构的结构大小之间的最高公因子,并基于分区大小而不是结构大小传送数据。控制器可从多个不同结构读取分区大小数量的元素以确保对于每次传送都使用全数据传送带宽。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术的实施例一般涉及存储器结构,并且更具体地说,涉及改进存储器总线带宽利用以获取存储器结构。版权声明/许可此专利文档的公开部分可含有受到版权保护的资料。版权拥有人不反对任何人复制该专利文档或专利公开,因为它出现在专利和商标局专利文件或记录中,但以其它方式无论什么都保留所有版权权利。版权声明应用于下面所描述的所有数据,并且在所附的附图中,以及应用于下面描述的任何软件:版权© 2014,英特尔公司,保留所有权利。
技术介绍
大多数电子系统包含某种类型的处理器。处理器可用不同架构制作,并且架构可影响处理器在执行某些处理任务时如何有效。例如,通用处理器倾向于具有一个或小量处理核,并且对于串行处理任务最有效。其它类型处理器可具有许多处理单元,并且在并行处理许多较小任务时更有效。结构阵列(AOS)是供软件使用的方便数据格式,软件可方便地存储在存储器中以便串行运行。然而,阵列结构(SOA)是更方便用于有效并行运行的数据格式。从而,两个不同格式各自更好地适合于不同处理器架构。在许多计算系统中,存在从AOS转换到SOA和/或从SOA转换到AOS的理由。传统上,AOS与SOA之间的转换基于底层数据结构的大小。从而,转换中的总线利用或传送带宽利用取决于底层结构大小,其导致系统资源(总线带宽)上的性能降级或功率损耗,系统资源倾向于受约束,甚至在AOS到SOA转换中没有引入无效的情况下。附图说明如下描述包含具有作为实现本专利技术实施例的示例给出的图示的附图的论述。附图应该作为示例而非作为限制进行理解。如本文所使用的,对一个或多个“实施例”的提及要理解为描述包含在本专利技术至少一个实现中的具体特征、结构和/或特性。从而,在本文中出现的诸如“在一个实施例中”或“在备选实施例中”的短语描述了本专利技术的各种实施例和实现,并且不一定全都指的是同一实施例。然而,它们也不一定是相互排他的。图1是执行结构阵列到阵列结构转换的系统实施例的框图。图2是用于在共享成组存储器中从结构阵列转换到阵列结构的系统架构的实施例的框图。图3A-3H表示在转换操作期间存储器组内容的实施例。图4是用于从结构阵列转换到阵列结构的伪代码的实施例的表示。图5是用于从结构阵列转换到阵列结构的过程实施例的流程图。图6是可实现AOS到SOA转换的计算系统的实施例的框图。图7是可实现AOS到SOA转换的移动装置的实施例的框图。下面描述某些细节和实现,包含附图的描述,附图可描绘一些或所有下面描述的实施例,以及论述本文呈现的专利技术概念的其它潜在实施例或实现。具体实施方式如本文所描述的,控制器将结构阵列(AOS)转换到阵列结构(SOA)或将SOA转换到AOS。而不是基于结构大小从一个格式转换到另一格式,控制器计算分区大小和其它值以确保在AOS与SOA之间传送总线带宽的全使用。传送总线可以是耦合AOS和SOA结构的寄存器或缓冲器。从而,控制器可以确定如何确保获取将在每个操作循环中都充满总线或传送机制的宽度的若干元素。此类方法相对于基于结构大小传送并且通常未充满整个传送总线带宽的传统方法改进了传送效率。除了带宽利用上的效率改进,使用分区允许系统比用传统方法更早地开始生成SOA输出,因为系统一次仅读取一个分区,而不是整个结构。更具体地说,控制器可一次获取多个不同结构的计算部分,而不是获取整个结构。控制器执行计算以确定对于每个传送操作获取的部分的正确大小和部分的数量。传送操作可运行为SIMD(单指令多数据)操作,其对数据集代替单个数据元素执行公共或单个指令。在一个实施例中,执行AOS与SOA之间转换的系统包含对特定数量的元素执行SIMD的传送机制。元素(单个指令可对其操作)数量通常被称为SIMD宽度,并且一般可理解为传送带宽。关于计算,控制器可执行一个或多个如下计算。在一个实施例中,控制器计算最高公因子,并使用最高公因子作为分区大小来确定在获取操作中读取每个结构的多少元素。在一个实施例中,控制器计算若干分区,称为从中读取分区大小的元素的若干结构。基于这些计算,控制器可将单个结构的读取扩散到几个不同传送操作上。然而,此类方法改进了总体带宽利用,从而改进了性能和功耗。在一个实施例中,控制器还计算与在传送中偏移数据来以期望格式恰当地对准(align)数据相关的值。为了简化的目的,如下示例指的是从AOS到SOA的转换。本领域技术人员将理解到,所描述的技术还可适用于从SOA到AOS的转换。对于AOS到SOA描述的某些计算还可对于SOA到AOS执行。更确切地说,用于SOA到AOS的控制器还可计算要读取的分区大小和分区的数量。将理解到,给定不同数据格式,要从中读取的位置将是不同的。从而,控制器可计算不同偏移以读取数据。图1是执行结构阵列到阵列结构转换的系统的实施例的框图。系统100包含AOS被转换到SOA的处理系统。在一个实施例中,系统100包含CPU(中央处理单元)110和GPU(图形处理单元)120。CPU表示具有相对小数量N(例如1、2、4、8、16)的处理核112的处理器架构,它们被设计用于串行处理。CPU 110是系统100的主机处理器,并运行主机操作系统。GPU表示具有相对高数量M(例如数百)的运行单元(EU)122的处理器架构,运行单元被设计用于并行运行小任务。虽然N和M的值可以改变,但一般而言,M会比N的量级大至少一阶或更多量。将理解到,存在可执行SIMD处理的其它架构,其中以串行格式存储用于串行处理的数据被转换成并行格式用于并行处理。从而,本领域技术人员将理解到,不是执行AOS与SOA之间转换用于SIMD处理的系统的每个实施例都将包含主机处理器和GPU。在一个实施例中,CPU 110包含本地高速缓存114,其表示一个或多个片上层或级高速缓存(例如L1和L2高速缓存)。本地高速缓存114为要由CPU 110运行的代码和数据提供高速缓存。在一个实施例中,系统100包含共享高速缓存140,其可以是比本地高速缓存114(例如L3高速缓存)更高层的高速缓存。将理解到,共享高速缓存140可以是某一级高速缓存的一部分。从而,例如,系统100可包含在与共享高速缓存140相同层的但对CPU 110特定代替在CPU 110与GPU 120之间共享的其它高速缓存元件(未明确示出)。在一个实施例中,GPU 120包含SOA缓冲器124,其表示对GPU 120本地的缓冲器或高速缓存以便以SOA格式存储数据。将理解到,SOA缓冲器124不一定表示对GPU 120本地的所有高速缓存。在一个实施例中,共享高速缓存140是共享查找存储器(SLM),其是成组存储器结构。成组存储器结构允许数据在不同组中存储和存取,或者独立控制存储元件或位置阵列。成组存储器可允许无冲突地同时存取不同组。不成组的存储器装置必须串行存取。并行存取存储器装置可允许一次读取和写入多个元素,并且从而提供更宽的存储器数据总线。如所图示的,共享高速缓存140包含多个AOS组142。AOS组142表示存储AOS数据的共享高速缓存140中的存储位置。AOS组142表示高速缓存的可寻址位置,并且从而可由提供地址的存取命令直接存取。AOS数据可由本地高速缓存114从AOS组142存取以便由CPU 110操作。共享高速缓存140还可包含TB(转置缓冲本文档来自技高网...

【技术保护点】
一种用于存取成组存储器的方法,包括:计算第一存储器装置中的组的数量与结构阵列中的结构的结构大小之间的最高公因子,其中所述最高公因子不同于所述结构的结构大小;将分区大小值设置成所述计算的最高公因子;计算等于所述组的数量除以所述分区大小的移位值;在一个操作循环中从等于所述移位值的若干结构中读取等于所述分区大小的若干元素;在所述一个操作循环中将读取的所述元素传送到具有与所述第一存储器装置相等的组的数量的第二存储器装置中的阵列结构;以及在随后操作循环中继续所述读取和传送,直到所述结构阵列的所有元素都被传送到所述阵列结构。

【技术特征摘要】
【国外来华专利技术】2014.04.09 US 14/2491541.一种用于存取成组存储器的方法,包括:计算第一存储器装置中的组的数量与结构阵列中的结构的结构大小之间的最高公因子,其中所述最高公因子不同于所述结构的结构大小;将分区大小值设置成所述计算的最高公因子;计算等于所述组的数量除以所述分区大小的移位值;在一个操作循环中从等于所述移位值的若干结构中读取等于所述分区大小的若干元素;在所述一个操作循环中将读取的所述元素传送到具有与所述第一存储器装置相等的组的数量的第二存储器装置中的阵列结构;以及在随后操作循环中继续所述读取和传送,直到所述结构阵列的所有元素都被传送到所述阵列结构。2.如权利要求1所述的方法,其中所述第一存储器装置和所述第二存储器装置是单个共享存储器装置的不同部分。3.如权利要求1所述的方法,其中将读取的所述元素传送到阵列结构进一步包括:计算等于所述组的数量的基数的取模运算以确定在所述阵列结构中的位置,其中传送所述元素到所述阵列结构中的所述位置。4.如权利要求1所述的方法,其中将读取的所述元素传送到阵列结构进一步包括:运行单指令多数据(SIMD)操作以传送读取的所述元素。5.如权利要求1所述的方法,其中将读取的所述元素传送到所述阵列结构包括将读取的元素从与主机处理器关联的结构阵列传送到与图形处理器关联的阵列结构。6.如权利要求1所述的方法,进一步包括:移位传送到所述阵列结构的所述数据元素以将公共结构的元素对准到公共组。7.一种用于存取成组存储器的设备,包括:具有若干组的第一存储器装置,用于按结构阵列格式存储数据元素;具有若干组的第二存储器装置,用于按阵列结构格式存储数据元素;以及控制器装置,用于将所述数据元素从所述第一存储器装置传送到所述第二存储器装置,包含所述控制器装置配置成执行如下操作:计算所述第一存储器装置中的所述组的数量与所述结构阵列中的结构的结构大小之间的最高公因子,其中所述最高公因子不同于所述结构的结构大小;将分区大小值设置成所述计算的最高公因子;计算等于所述组的数量除以所述分区大小的移位值;在一个操作循环中从等于所述移位值的若干结构中读取等于所述分区大小的若干元素;在所述一个操作循环中将读取的所述元素传送到所述第二存储器装置中的所述阵列...

【专利技术属性】
技术研发人员:S帕尔M孙达雷桑
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1