• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 25
    • 下载费用:30 金币  

    重庆时时彩必中万能号: 处理装置和调和模式产生器.pdf

    关 键 词:
    处理 装置 调和 模式 产生器
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201280045050.0

    申请日:

    2012.09.13

    公开号:

    CN103797458A

    公开日:

    2014.05.14

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 授权|||实质审查的生效IPC(主分类):G06F 9/06申请日:20120913|||公开
    IPC分类号: G06F9/06; G06F9/305 主分类号: G06F9/06
    申请人: 三星电子株式会社
    发明人: 郑武坰; 徐雄; 柳秀晶; 刘东勋; 赵渊坤; 金浩荣; 李振锡; 陈昇熏; 金昶武
    地址: 韩国京畿道水原市
    优先权: 2011.09.14 KR 10-2011-0092604
    专利代理机构: 北京铭硕知识产权代理有限公司 11286 代理人: 张军;张云珠
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201280045050.0

    授权公告号:

    ||||||

    法律状态公告日:

    2018.04.20|||2014.10.08|||2014.05.14

    法律状态类型:

    授权|||实质审查的生效|||公开

    摘要

    本发明提供了一种减少由于在矢量处理时执行调和指令而造成的开销。调和模式产生器被配置为提供针对至少一个矢量寄存器或矢量处理单元的数据集的调和模式。调和模式产生器可重构为生成用于不同的矢量运算的各种调和模式。

    权利要求书

    权利要求书
    1.  一种处理装置,包括:
    矢量寄存器,被配置为存储包括矢量运算的数据元素的数据集;
    矢量处理单元,被配置为执行矢量运算;
    调和模式产生器,被连接到矢量寄存器和矢量处理单元,并被配置为创建针对数据集的调和模式。

    2.  根据权利要求1所述的处理装置,其中,调和模式产生器还被配置为组合数据集的数据元素或改变数据集的数据元素的顺序以创建调和模式。

    3.  根据权利要求1所述的处理装置,还包括:另一矢量寄存器,被配置为存储包括矢量运算的其他数据元素的另一数据集,其中,调和模式产生器还被连接到另一矢量寄存器并被配置为组合数据集的数据元素和另一数据集的其他数据元素以创建调和模式。

    4.  根据权利要求1所述的处理装置,还包括:另一矢量寄存器,被配置为存储包括矢量运算的其他数据元素的另一数据集,其中,调和模式产生器还被连接到另一矢量寄存器并被配置为组合数据集的数据元素和另一数据集的其他数据元素以创建调和模式和另一调和模式。

    5.  根据权利要求3所述的处理装置,其中,调和模式被输入到矢量处理器作为用于矢量运算的数据集。

    6.  根据权利要求1所述的处理装置,其中,调和模式产生器包括:调和网络,被配置为创建调和模式。

    7.  根据权利要求6所述的处理装置,其中,调和网络包括:多条数据线,被配置为创建调和模式,每条数据线具有连接到矢量寄存器的输出的一个端点和连接到矢量处理单元的输入的另一个端点。

    8.  根据权利要求6所述的处理装置,其中,调和网络包括:多条数据线,被配置为创建调和模式,每条数据线具有连接到矢量处理单元的输出的一个端点。

    9.  根据权利要求6所述的处理装置,其中,调和模式产生器包括:调和寄存器,被配置为存储调和模式。

    10.  根据权利要求9所述的处理装置,其中,调和网络包括:多条数据线,被配置为创建调和模式,每条数据线包括连接到矢量处理单元的输出的 一个端点和连接到调和寄存器的输入的另一个端点。

    11.  根据权利要求9所述的处理装置,其中,调和网络包括:多条数据线,被配置为创建调和模式,每条数据线包括连接到矢量寄存器的输出的一个端点和连接到调和寄存器的输入的另一个端点。

    12.  根据权利要求1所述的处理装置,其中,调和模式产生器包括:调和寄存器,被配置为存储调和模式。

    13.  根据权利要求6所述的处理装置,其中,调和网络包括:可重构为创建各种调和模式的多条数据线。

    14.  根据权利要求13所述的处理装置,其中,调和网络包括:开关,包括用于所述多条数据线中的每条的可重构的连接,并被配置为基于可重构的连接产生各种调和模式;开关表,被连接到开关,并被配置为存储用于与各种调和模式相应的所述多个数据线的可重构的连接的各种开关连接。

    15.  根据权利要求1所述的处理装置,其中,调和模式产生器还被配置为在从矢量寄存器输出数据集时,实质上同时创建调和模式。

    16.  根据权利要求1所述的处理装置,其中,调和模式产生器还被配置为在数据集输入到矢量寄存器时,实质上同时创建调和模式。

    17.  一种处理装置,包括:
    矢量寄存器,被配置为存储与矢量运算相关的数据集;
    矢量处理单元,被配置为执行矢量运算;
    调和模式产生器,被连接到矢量寄存器的输出和矢量处理单元的输入,并被配置为组合数据集的数据元素或改变数据集的数据元素的顺序以创建调和模式作为用于矢量运算的输入。

    18.  根据权利要求17所述的处理装置,还包括:另一矢量寄存器,被配置为存储与矢量运算相关的另一数据集,
    其中,调和模式产生器还被连接到另一矢量寄存器的输出,并且还被配置为组合数据集和另一数据集的数据元素或改变数据集和另一数据集的数据元素的顺序以创建调和模式和另一第二调和模式作为用于矢量运算的输入。

    19.  一种处理装置,包括:
    矢量处理单元,被配置为执行矢量运算;
    矢量寄存器,被配置为存储与从矢量处理单元接收到的矢量运算结果相应的数据集;
    调和网络,被连接到矢量处理单元的输出,并被配置为组合数据集的数据元素或改变数据集的数据元素的顺序以创建调和模式,同时将数据集存储到矢量寄存器中;
    调和寄存器,被连接到调和网络,并被配置为存储调和模式。

    20.  根据权利要求19所述的处理装置,还包括:
    另一矢量寄存器,被配置为存储与从矢量处理单元接收到的矢量运算结果相应的另一数据集;
    另一调和寄存器,被配置为存储另一调和模式,
    其中,调和模式产生器还被配置为组合数据集和另一数据集的数据元素或改变数据集和另一数据集的数据元素的顺序以创建调和模式和另一第二调和模式。

    21.  一种调和模式产生设备,包括:
    第一数据端点;
    第二数据端点,被连接到至少一个矢量寄存器或矢量处理单元的输出;
    调和网络,包括被连接到第一数据端点和第二数据端点的多个数据连接,并被配置为在第一数据端点基于所述多个数据连接针对从所述至少一个矢量寄存器或矢量处理器输出的数据集来产生调和模式。

    22.  根据权利要求21所述的设备,其中,调和网络的多个数据连接可重构为产生数据连接的各种排列并产生与数据连接的各种排列相应的各种调和模式。

    23.  根据权利要求21所述的设备,其中,调和网络包括:可重构的开关,被配置为建立从第一端点到第二端点的多个数据连接以基于数据连接的排列产生各种调和模式;开关表,被连接到开关,并被配置为存储用于与各种调和模式相应的可重构的开关的从第一端点到第二端点的数据连接的各种排列。

    24.  根据权利要求21所述的设备,还包括:至少一个调和寄存器,被连接到第一端点,并被配置为以与调和模式相应的顺序来存储数据元素。

    25.  根据权利要求22所述的设备,还包括:至少一个调和寄存器,被连接到第一端点,并被配置为以与各种调和模式相应的顺序来存储数据元素。

    26.  根据权利要求21所述的调和模式提供设备,其中,在第一端点从调和网络输出的数据元素提供至少一个虚拟调和寄存器和与输出的数据元素的 排列相应的调和模式。

    27.  根据权利要求22所述的设备,其中,在第一端点从调和网络输出的数据元素提供至少一个虚拟调和寄存器以及与数据连接的排列和每个连接的输出数据元素相应的调和模式。

    说明书

    说明书处理装置和调和模式产生器
    技术领域
    以下描述涉及处理装置和用于矢量运算的调和(swizzle)指令。
    背景技术
    近年来,处理数据加载已在许多不同的领域(列举几种诸如多媒体、通信和图形应用等)大幅增加。这种数据处理加载的增加已经对任何数量的处理装置(诸如高性能服务器计算机、通用个人计算机(PC)、甚至移动装置)的性能产生显著影响。通常,处理装置需要在有限的时间内处理尽可能多的数据。因此,为了满足这种需求,许多尖端处理器增加一次处理的数据的宽度。一个示例,这样的处理装置为单指令流多数据流(SIMD)处理器,也称为矢量处理器。
    由于SIMD和矢量处理器同时运算多个数据集,因此这些处理器擅长数据处理。当执行矢量或SIMD运算(下文中简称为矢量运算)时,多条矢量数据和矢量数据元素以期望的顺序放置。例如,用于相应的矢量运算的数据集被放置在与执行该运算的矢量处理单元相关的特定矢量寄存器中。为了生成数据集,多个标量数据被收集并存储为矢量寄存器中的数据元素。当数据集在矢量运算之间传送时,数据集的数据元素以适当的顺序被重新排列。此外,当以标量形式存储矢量运算的结果时,数据元素也以适当的顺序被放置。在一个示例中,调和指令用来整理或重新排列用于相关的矢量运算的数据集的数据元素。
    调和指令对已被读取为用于矢量运算的输入的数据集进行排列。调和指令也可以介于矢量运算的各种指令之间。例如,调和指令可介于加载指令和矢量运算指令之间以对与矢量运算相应的数据集的数据元素进行排列。此外,调和指令可介于矢量运算指令之间以重新排列数据集并允许前面的矢量运算的结果被后续的矢量运算所使用。此外,调和指令可介于矢量运算指令和存储指令之间以重新排列数据集并传送用于来自矢量运算的输出的重新排列的 数据集。
    然而,当调和指令介于其他指令(诸如加载指令、矢量指令和存储指令)之间时,处理器执行指令的性能会下降。在一些情况下,一个或更多个调和指令介于矢量运算的所有加载指令、存储指令和矢量运算指令之间。因此,处理器性能会显著下降。
    发明内容
    技术方案
    在一总体方面,一种处理装置包括:矢量寄存器,被配置为存储包括矢量运算的数据元素的数据集;矢量处理单元,被配置为执行矢量运算;调和模式产生器,被连接到矢量寄存器和矢量处理单元,并被配置为创建针对数据集的调和模式。
    调和模式产生器还可以被配置为组合数据集的数据元素或改变数据集的数据元素的顺序以创建调和模式。
    处理装置还可以包括:另一矢量寄存器,被配置为存储包括矢量运算的其他数据元素的另一数据集,其中,调和模式产生器还被连接到另一矢量寄存器并被配置为组合数据集的数据元素和另一数据集的其他数据元素以创建调和模式。
    处理装置还可以包括:另一矢量寄存器,被配置为存储包括矢量运算的其他数据元素的另一数据集,其中,调和模式产生器还被连接到另一矢量寄存器并被配置为组合数据集的数据元素和另一数据集的其他数据元素以创建调和模式和另一调和模式。调和模式可以被输入到矢量处理器作为用于矢量运算的数据集。
    调和模式产生器可包括:调和网络,被配置为创建调和模式。调和网络可包括:多条数据线,被配置为创建调和模式,每条数据线具有连接到矢量寄存器的输出的一个端点和连接到矢量处理单元的输入的另一个端点。类似地,调和网络可包括:多条数据线,被配置为创建调和模式,每条数据线具有连接到矢量处理单元的输出的一个端点。
    调和模式产生器还可以包括:调和寄存器,被配置为存储调和模式。
    另外,调和网络可包括:多条数据线,被配置为创建调和模式,每条数据线包括连接到矢量处理单元的输出的一个端点和连接到调和寄存器的输入 的另一个端点。类似地,调和网络可包括:多条数据线,被配置为创建调和模式,每条数据线包括连接到矢量寄存器的输出的一个端点和连接到调和寄存器的输入的另一个端点。
    调和网络可包括:多条数据线,可重构为创建各种调和模式。例如,调和网络可包括:开关,包括用于所述多条数据线中的每条的可重构的连接,并被配置为基于可重构的连接产生各种调和模式;开关表,被连接到开关,并被配置为存储用于与各种调和模式相应的所述多条数据线的可重构的连接的各种开关连接。
    调和模式产生器还可以被配置为在从矢量寄存器输出数据集时,实质上同时创建调和模式。类似地,调和模式产生器还可以被配置为在数据集输入到矢量寄存器时,实质上同时创建调和模式。
    在另一总体方面,一种处理装置包括:矢量寄存器,被配置为存储与矢量运算相关的数据集;矢量处理单元,被配置为执行矢量运算;调和模式产生器,被连接到矢量寄存器的输出和矢量处理单元的输入,被配置为组合数据集的数据元素或改变数据集的数据元素的顺序以创建调和模式作为用于矢量运算的输入。
    另一矢量寄存器,可被配置为存储与矢量运算相关的另一数据集,其中,调和模式产生器,还被连接到另一矢量寄存器的输出,并且还被配置为组合数据集和另一数据集的数据元素或改变数据集和另一数据集的数据元素的顺序以创建调和模式和另一第二调和模式作为用于矢量运算的输入。
    在另一总体方面,一种处理装置包括:矢量处理单元,被配置为执行矢量运算;矢量寄存器,被配置为存储与从矢量处理单元接收到的矢量运算结果相应的数据集;调和网络,被连接到矢量处理单元的输出,并被配置为组合数据集的数据元素或改变数据集的数据元素的顺序以创建调和模式,同时将数据集存储到矢量寄存器;调和寄存器,被连接到调和网络,并被配置为存储调和模式。
    另一矢量寄存器可被配置为存储与从矢量处理单元接收到的矢量运算结果相应的另一数据集,并且另一调和寄存器可被配置为存储另一调和模式,其中,调和模式产生器还被配置为组合数据集和另一数据集的数据元素或改变数据集和另一数据集的数据元素的顺序以创建调和模式和另一第二调和模式。
    在另一总体方面,调和模式发生设备包括:第一数据端点;第二数据端点,被连接到至少一个矢量寄存器或矢量处理单元的输出;调和网络,包括被连接到第一数据端点和第二数据端点的多条数据连接,并被配置为在第一数据端点基于所述多个数据连接针对从所述至少一个矢量寄存器或矢量处理器输出的数据集来产生调和模式。
    调和网络的多个数据连接可以被重构为产生数据连接的各种排列并产生与数据连接的各种排列相应的各种调和模式。
    调和网络可包括:可重构的开关,被配置为建立从第一端点到第二端点的多个数据连接以基于数据连接的排列产生各种调和模式;开关表,被连接到开关,并被配置为存储用于与各种调和模式相应的可重构的开关的从第一端点到第二端点的数据连接的各种排列。
    至少一个调和寄存器,可被连接到第一端点,并被配置为以与调和模式相应的顺序存储数据元素。类似地,至少一个调和寄存器,被连接到第一端点,并被配置为以与各种调和模式相应的顺序存储数据元素。
    在第一端点从调和网络输出的数据元素可提供至少一个虚拟调和寄存器和与输出的数据元素的排列相应的调和模式。
    通过以下具体实施方式、附图和权利要求,其他特征和方面会变得清楚。
    有益效果
    根据本描述,当输入或输出矢量寄存器的相应数据集时,通过执行调和指令产生的相同的调和模式被同时产生,而无需使矢量处理单元执行实际的调和指令。因此,减少由执行调和指令造成的不必要的开销,并增强处理性能。
    附图说明
    包括附图以提供对本发明的进一步理解并且所述附图被包含于本说明书中并构成本说明书的一部分,所述附图示出本发明的实施例,并连同描述一起用于解释本发明的原理。
    图1是示出处理装置的示例的示图;
    图2是示出调和模式的示例的示图;
    图3是示出调和模式的其他示例的示图;
    图4是示出调和模式产生器的示例的示图;
    图5是示出调和模式产生器的另一示例的示图;
    图6是示出调和模式产生器的另一示例的示图;
    图7是示出应用于粗粒度阵列(CGA)的处理装置的示例的示图;
    图8是示出应用于CGA的处理装置的另一示例的示图;
    图9是描述处理两个连续的矢量运算的通用处理器的运算流程的示图;
    图10是将图9中示出的示例的运算流程应用于CGA的示图;
    图11是示出使用调和模式产生器的处理器的运算流程的示图;
    图12是将图11中示出的示例的运算流程应用于CGA的示图。
    具体实施方式
    提供以下的描述以帮助读者获得对这里所描述的方法、设备和/或系统的全面的理解。因此,这里所描述的方法、设备和/或系统的各种变化、修改和等同物将被建议给本领域普通技术人员。此外,为了增加清楚和简洁,可以省略对公知的功能和结构的描述。
    图1示出处理装置100的示例。处理装置100可使用例如配备有单核的处理器、配备有多核的处理器、可重构的粗粒度阵列(CGA)机器或超长指令字(VLIW)机器来实现。
    参照图1,处理装置100包括矢量处理单元101、多个矢量寄存器(例如,矢量寄存器102a、矢量寄存器102b和矢量寄存器102c)和调和模式产生器103。
    矢量处理单元101执行矢量运算。例如,矢量处理单元101计算输入矢量的和或乘积并提供结果。
    多个矢量寄存器(例如,102a、102b和102c)中的每个矢量寄存器存储包括与矢量运算相关的多个数据元素(即,矢量数据)的数据集。例如,数据集可包括被排列为数据元素的多个标量数据。
    调和模式产生器103可创建针对由矢量寄存器102c存储的数据集调和模式。调和模式是以期望的顺序排列至少一个数据集的数据元素的结果。例如,调和模式可通过组合至少一个矢量寄存器(例如,矢量寄存器102c)的数据集中的数据元素或改变所述数据元素的顺序来获得。调和模式还可以通过组合存储在第一矢量寄存器中的数据集的数据元素和存储在第二矢量寄存器中 的数据集的数据元素来获得(例如,如图4和图5所示,并在下面更详细地描述)。用于一个或更多个数据集的通过调和模式产生器103产生的调和模式可与以下调和模式相同或等同:即,通过对数据集中的一个或更多个执行调和指令的结果。然而,调和模式产生器103在不实际执行调和指令的情况下提供了实质上与对一个或更多个数据集执行调和指令相同的结果(即,调和模式)。因此,减少或消除与执行调和指令相关联的开销,从而提高整体处理性能。
    在一个示例中,调和模式产生器103包括调和寄存器110和调和网络120。调和寄存器110可以是如图1中所示的物理矢量寄存器例如,具有与矢量寄存器102a、102b和102c相同的属性的寄存器,或者,调和寄存器110可以是不使用实际的存储装置的虚拟寄存器(如以下更详细的描述)。如图1中所示,调和寄存器110是存储/提供与一个或更多个相关矢量寄存器(例如,矢量寄存器102c)相关的调和模式的物理寄存器或虚拟寄存器。
    调和网络120包括多个电线或数据线。每个电线或数据线具有至少两个端点。在一个示例中,如图1中所示,电线或数据线的一个端点连接到矢量寄存器102c的输入,另一个端点连接到调和寄存器110。调和网络120促进各种调和模式的产生,并且产生的调和模式可通过调和寄存器110来存储。例如,当数据元素(例如,x1,x2,x3和x4)以x1,x2,x3,x4的顺序被输入到矢量寄存器102c时,在将这些数据元素输入到矢量寄存器时,调和模式(例如,以x3,x2,x4,x1的顺序排列的数据集)可通过调和网络120来产生(如下面更详细的描述),并通过调和寄存器110来存储。
    图1示出连接到矢量寄存器102c的输入的调和网络120。然而,这只是调和网络的实施例的一个示例。例如,矢量寄存器的输出和连接到调和寄存器的另一个端点(例如,如图7中所示及以下更详细的细节)。此外,图1示出针对存储在矢量寄存器102c中的单个数据集产生的调和模式。然而,这只是一个示例,通过组合来自两个或更多个矢量寄存器的数据元素而产生的调和模式也可以被存储在调和寄存器中(例如,如图4中所示以及以下进一步的细节)。
    图2和图3示出调和模式的示例??苫诟ǖ氖噶考拇嫫鞯氖菁瓷赏?中示出的调和模式。
    参照图2,每个矢量寄存器(例如,vr0、vr1、vr2、vr3)存储矢量数据 集(例如,{a3,a2,a1,a0},{b3,b2,b1,b0},{c3,c2,c1,c0}和{d3,d2,d1,d0})。在此示例中,每个矢量数据集包括四个数据元素。每个调和寄存器(例如,svr0、svr1、svr2、svr3、svr4、svr5、svr6和svr7)存储针对相应的矢量寄存器的数据集的调和模式?;痪浠八?,调和寄存器存储通过组合一个矢量寄存器的数据元素而获得的结果和通过改变一个矢量寄存器的数据元素的顺序而获得的结果。
    例如,调和寄存器svr0存储针对矢量寄存器vr0的数据集{a3,a2,a1,a0}的调和模式"a3,a3,a2,a2"。在此示例中,通过组合由矢量寄存器vr0存储的矢量数据集{a3,a2,a1,a0}中的数据元素a3和数据元素a2来获得由调和寄存器svr0存储的调和模式“a3,a3,a2,a2”。
    图3示出调和模式的其他示例??苫诙喔鍪噶考拇嫫鞯氖菁床?中示出的调和模式。
    参照图3,每个矢量寄存器(例如,vr0、vr1、vr2、vr3)存储矢量数据集(例如,{a3,a2,a1,a0},{b3,b2,b1,b0},{c3,c2,c1,c0}和{d3,d2,d1,d0})。在此示例中,每个矢量数据集包括四个数据元素。每个调和寄存器(例如,svr0、svr1、svr2、svr3、svr4、svr5、svr6和svr7)存储针对多个矢量寄存器的数据集的调和模式?;痪浠八?,每个调和寄存器存储通过组合来自由多个矢量寄存器存储的多个数据集的数据元素而获得的结果。
    例如,调和寄存器svr0存储针对由矢量寄存器vr0存储的数据集{a3,a2,a1,a0}和由矢量寄存器vr1存储的数据集{b3,b2,b1,b0}的调和模式(例如,a3,a3,b1,b1)。在此示例中,通过组合矢量寄存器vr0的数据元素a3和矢量寄存器vr1的数据元素b1来获得由调和寄存器存储的调和模式“a3、a3、b1、b1”。
    当然,图2和图3中示出的调和模式只是可能的调和模式的一些可能的示例。此外,可根据运行的应用的类型来定义调和模式。此外,可使用预定数量的调和模式。
    图4示出调和模式产生器的另一示例。图4中示出的调和模式产生器使用物理存储装置。参照图4,调和模式产生器300包括调和网络301和调和模式存储装置,诸如调和寄存器302a和调和寄存器302b。
    调和网络301包括具有至少两个端点的多条数据线或电线。每条电线的一个端点连接到矢量寄存器的输入,并且每条电线的另一个端点连接到调和 寄存器302a和调和寄存器302b中的至少一个,以基于连接来创建预定的调和模式。
    调和寄存器302a和调和寄存器302b可以是在物理上与矢量寄存器vr0和vr1相同类型的寄存器的矢量寄存器。例如,除了其他已知的存储器或存储装置之外,还可使用诸如各种触发器、锁存器的硬件来实现调和寄存器302a和调和寄存器302b。
    如图4中所示,调和寄存器svr0的第一区域经由调和网络301连接到矢量寄存器vr0的第一区域。调和寄存器svr0的第二区域经由调和网络301连接到矢量寄存器vr0的第一区域。以类似的方式,调和虚拟寄存器svr0的第三区域和第四区域连接到矢量寄存器vr0的第二区域。因此,当使矢量寄存器vr0能够以a3、a2、a1和a0的顺序存储数据集时,实质上同时将数据集以一种顺序(例如,a3、a3、a2和a2)存储在调和寄存器svr0中,从而创建针对存储在矢量寄存器vr0中的数据集{a3,a2,a1,a0}调和模式“a3、a3、a2和a2”。
    此外,调和寄存器svr1存储与通过组合来自矢量寄存器vr0的数据元素和来自矢量寄存器vr1的数据元素而获得的结果相应的调和模式。例如,调和寄存器svr1的第一区域经由调和网络301连接到矢量寄存器vr0的第一区域。调和寄存器svr1的第二区域经由调和网络301连接到矢量寄存器vr0的第二区域。以类似的方式,调和寄存器svr1的第三区域和第四区域分别连接到矢量寄存器vr1的第一区域和第三区域。因此,当使矢量寄存器vr0能够以a3、a2、a1和a0的顺序存储数据集并且使矢量寄存器vr1能够以b3、b2、b1和b0的顺序存储数据集时,实质上同时将数据集以一种顺序(例如,a0、a1、b0和b1)存储在调和寄存器svr1中,从而创建针对组合存储在矢量寄存器vr0中的数据集{a3,a2,a1,a0}和存储在矢量寄存器vr1中的数据集{b3,b2,b1,b0}的调和模式“a0、a1、b0和b1”。
    因此,当矢量处理单元要求或需要执行调和指令的结果时,可以使用存储在调和寄存器302a和调和寄存器302b中的每个中的调和模式来代替使矢量处理单元执行调和指令。因此,减少或消除由于执行调和指令而造成的开销。
    图5示出调和模式产生器的另一示例。图5中示出的调和模式产生器没有使用物理存储装置。参照图5,调和模式产生器400包括调和网络401和 虚拟调和寄存器402a和虚拟调和寄存器402b。
    调和网络401包括多条数据线或电线,每条数据线或电线具有至少两个端点。每条数据线的一个端点连接到矢量寄存器的输出,并且另一个端点“连接”到虚拟调和寄存器402a和虚拟调和寄存器402b中的至少一个。与如图4中的示例不同,虚拟调和寄存器402a和虚拟调和寄存器402b是以示出此示例为目的的(例如,通过虚线在图5中表示的)虚拟寄存器,而不是实际的物理存储装置或空间。即,虚拟调和寄存器402a和402b中的每个虚拟调和寄存器通过针对连接到虚拟网络401的输入的矢量寄存器vr0和矢量寄存器vr1组合输出自调和网络401的电线来形成。
    如图5中所示,虚拟调和寄存器svr0的第一区域经由调和网络401“连接”到矢量寄存器vr0的第一区域。虚拟调和寄存器svr0的第二区域经由调和网络401“连接”到矢量寄存器vr0的第一区域。以类似的方式,虚拟调和寄存器svr0的第三区域和第四区域连接到矢量寄存器vr0的第二区域。因此,当使矢量寄存器vr0能够以a3、a2、a1和a0的顺序存储数据集时,实质上同时数据集以一种顺序(例如,a3、a3、a2和a2)由虚拟调和寄存器svr0来存储,从而创建针对存储在矢量寄存器vr0中的数据集{a3,a2,a1,a0}的调和模式“a3、a3、a2和a2”。
    此外,虚拟调和寄存器svr1“存储”与通过组合来自矢量寄存器vr0的数据元素和来自矢量寄存器vr1的数据元素而获得的结果相应的调和模式。例如,虚拟调和寄存器svr1的第一区域经由调和网络401“连接”到矢量寄存器vr0的第一区域。虚拟调和寄存器svr1的第二区域经由调和网络401“连接”到矢量寄存器vr0的第二区域。以类似的方式,虚拟调和寄存器svr1的第三区域和第四区域分别“连接”到矢量寄存器vr1的第一区域和第三区域。因此,当使矢量寄存器vr0能够以a3、a2、a1和a0的顺序存储数据集并且使矢量寄存器vr1能够以b3、b2、b1和b0的顺序存储数据集时,实质上同时将数据集以一种顺序(例如,a0、a1、b0和b1)“存储”在虚拟调和寄存器svr1中,从而创建针对组合存储在矢量寄存器vr0中的数据集{a3,a2,a1,a0}和存储在矢量寄存器vr1中的数据集{b3,b2,b1,b0}的调和模式“a0、a1、b0和b1”。
    因此,当矢量处理单元要求或需要执行调和指令的结果时,可以使用“存储”在虚拟调和寄存器402a和虚拟调和寄存器402b中的每个中的调和模式 来代替使矢量处理单元执行调和指令。因此,减少或消除由于执行调和指令而造成的开销。
    使用以上作为示例描述的调和模式,可通过由用于先前已定义的调和模式的硬件所提供的逻辑来产生被应用经常使用的调和模式。然而,当处理器执行在各种应用之间经常使用的调和模式相异的一些不同应用时,可以在执行应用之前对每个应用定义调和模式。因此,可重构硬件可被用于为每个应用提供逻辑。下面针对图6来描述这样的一个示例。
    图6示出调和模式产生器的另一示例。图6中示出的调和模式产生器包括可重构的调和网络,所述调和网络包括例如允许开关装置的数据连接的输入和输出的可重构的开关装置,其中,所述开关装置根据从相应的控制器、存储器或其他存储装置接收到的指令或输入被重构。
    例如,参照图6,调和模式产生器500包括可重构的调和网络??芍毓沟牡骱屯绨芍毓沟目刈爸?01和用于开关装置的控制器/存储装置502??刈爸?01包括多条引入线503和引出线504??刈爸?01是控制不同引入线503和引出线504之间的连接的装置??刈爸?01可以用于根据开关装置的连接来产生用于每个应用的任意或特定的调和模式。
    控制器/存储装置502存储用于开关装置501的配置信息以配置开关装置的引入线503和引出线504之间的连接。在假设引入线的数量是m且引出线的数量是n的情况下,开关装置501用mn-1个不同的控制元件来控制m种不同的连接。
    在一个示例中,开关装置501可使用交叉开关来实现,控制器/存储装置502可使用开关表来实现。当开关表的内容被改变时,交叉开关的连接状态(即,引入线和引出线之间的连接)被改变。因此,可以简单地通过改变、存储或加载新的开关表来改变由调和模式产生器产生的调和模式。因此,可使用开关表来存储用于每个应用的经常使用的调和模式,以便当执行相应的应用时产生调和模式。
    由于经常使用的调和模式(以下,称为“调和模式集”)可依据应用而不同,因此如图6中所示的可重构的调和网络可被用于启用与用于不同应用的混合调和模式集相应的调和寄存器。使用相同的调和模式集的应用可以共享相同的调和模式。此外,如果被经常用于应用的一个部分的调和模式不同于被经常用于应用的其他部分的调和模式,则所述应用可以使用两个或更多个 调和模式集?;痪浠八?,在执行应用的过程中,可重构的调和网络被重构为产生新的调和模式集。因此,多个应用可以共享一个调和模式集(共享开关表),并且一个应用可以随时间的推移而使用不同的调和模式集(或开关表)。
    图7示出粗粒度阵列(CGA)的阵列块的示例。在此示例中,阵列块包括600来自多个其他阵列块(例如,a、b、c和d)的输入、调和模式产生器602、多路复用器(MUX)607和多路复用器608、矢量处理单元(VPU)609和输出矢量寄存器610,其中,所述调和模式产生器602包括调和网络和调和寄存器文件606(例如,包括八个调和模式或寄存器)。在此示例中,调和模式产生器602连接到CGA阵列块600的输入。
    参照图7,通过调和模式产生器602以数据元素为单位经由调和网络组合来自多个阵列块(例如,阵列a、b、c和d)的输入以形成各种调和模式(例如,a3、a2、b1、b1)。VPU609选择从各个阵列块和/或调和寄存器接收的输入作为与矢量运算相关的运算对象。在图7中,VPU609接收多个输入以产生输出。一个输入选择多个矢量寄存器和多个调和寄存器中的一个。
    如图7中所示,来自矢量寄存器的输出被输入到在VPU609的输入侧的MUX607和MUX608,并且实质上同时被输入到调和网络604以形成调和寄存器。来自调和寄存器的输出被输入到在VPU609的输入侧的MUX607和MUX608。
    选择矢量寄存器和调和寄存器中的一个作为VPU609的输入。在图7所示的示例中,调和寄存器文件606具有八个调和寄存器。来自所有的八个调和寄存器的输出可用于VPU609的第一输入(左侧)。在图7所示的示例中,所有矢量寄存器和所有调和寄存器的配置可以是VPU609的第一输入。为了简化附图,将来自剩余寄存器的输出表示为点。
    图8示出CGA的另一阵列块。阵列块700包括输入、矢量处理单元702、输出矢量寄存器704和调和模式产生器706,所述调和模式产生器706包括调和网络708和调和寄存器文件710(例如,包括四个调和寄存器)。在此示例中,调和模式产生器设置在矢量寄存器和CGA阵列块的输出之间。
    参照图8,可以理解的是,通过调和模式产生器706以数据元素为单位组合来自矢量处理单元702的输出以形成各种调和模式。矢量寄存器704存储来自矢量处理单元702的输出,并且由矢量寄存器存储的数据元素(例如,x1,x3,x2,x4)可通过调和模式产生器706的调和网络708被组合以形成调和 模式(例如,x1,x3,x2,x4)。调和虚拟寄存器文件710可以用作相应的阵列块的输入,或者可以被发送到相应的阵列块的输出以被用作另一阵列块的输入。以下,与通用处理器的CGA块的运算相比较来描述图7和图8中示出的CGA块的运算。
    图9示出处理两个连续的矢量运算的通用处理器的运算流程图。参照图9,通用处理器需要六个循环来处理两个连续的矢量运算。在循环0中,执行加载指令以将数据集(例如,{x1,x2,x3,x4})从存储器输入到矢量寄存器。在循环1中,通过矢量处理单元执行调和指令来确定用于数据集的调和模式(例如,x1、x2、x3、x4),并且结果被存储在矢量寄存器中。在循环2中,通过矢量处理单元执行矢量运算指令,并且结果(例如,y1,y2,y3,y4)被存储在矢量寄存器中。在循环3中,通过矢量处理单元执行调和指令来确定被存储在矢量寄存器中的调和模式(例如,y4,y3,y2,y1)。在循环4中,通过矢量处理单元来执行矢量运算指令,并且结果(例如,z1,z2,z3,z4)被存储在矢量寄存器中。在循环5中,通过矢量处理单元执行调和指令来确定用于数据集的调和模式(例如,z3,z4,z1,z2),并且结果被存储在矢量寄存器中。在循环6中,执行读取矢量寄存器的存储指令,并且产生的数据集被存储在存储器中。在循环1、3和5的执行中执行调和指令。由于通用处理器为两个矢量运算执行三个调和指令,因此通用处理器不能连续地执行矢量运算。因此,通用处理器的运行效率随着执行矢量运算指令的数量而降低。
    图10示出将图9中示出的示例应用于CGA的处理器运算。参照图10,示出CGA的十二个阵列块。
    阵列块0执行从用于数据集(例如,{x1,x2,x3,x4})的存储器输入到矢量寄存器的加载指令。阵列块1通过矢量处理单元执行调和指令来确定用于数据集的调和模式(例如,x1,x2,x3,x4),并将结果存储在矢量寄存器中。阵列块2通过矢量处理单元执行矢量运算指令,并将结果(例如,y1,y2,y3,y4)存储在矢量寄存器中。阵列块3通过矢量处理单元执行调和指令来确定被存储在矢量寄存器中的调和模式(例如,y4,y3,y2,y1)。阵列块4通过矢量处理单元执行矢量运算指令,并将结果(例如,z1,z2,z3,z4)存储在矢量寄存器中。阵列块5通过矢量处理单元执行调和指令来确定用于数据集的调和模式(例如,z3,z4,z1,z2),并将结果存储在矢量寄存器中。阵列块6执行读取矢量寄存器并将数据集存储在存储器中的存储指令。阵列块7-11分 别存储用于到阵列块1-5的矢量处理单元的输入的标量寄存器。如图10中所示,通过示出的CGA实现的处理器为两个矢量运算使用了五个矢量处理单元。即,阵列的五个矢量处理单元中的三个不能执行矢量运算,其原因是它们在执行调和指令。
    图11示出通过将在关于图9中示出的处理流程的示例中的矢量运算应用到实现包括调和寄存器的调和模式产生器的处理器而获得的结果。
    参照图11,处理器使用四个循环来处理两个连续的矢量运算。在循环0中,加载指令将数据集(例如,x1,x2,x3,x4)从存储器输入到矢量寄存器,通过调和模式产生器创建用于数据集的调和模式(例如,x1,x2,x3,x4)调和模式,并将调和模式存储在调和寄存器中。在循环1中,通过矢量处理单元执行矢量运算指令,结果(例如,y1,y2,y3,y4)被存储在矢量寄存器中,通过调和模式产生器创建调和模式(例如,y4,y3,y2,y1),并且结果被存储在调和寄存器中并被提供为循环2的输入。在循环2中,通过矢量处理单元对输出调和模式执行矢量运算指令,结果(例如,z1,z2,z3,z4)被存储在矢量寄存器中,通过调和模式产生器创建调和模式(例如,z3,z4,z1,z2),并且调和模式被存储在调和寄存器中。在循环3中,存储指令读取调和寄存器并将与调和模式相应的数据集存储在存储器中。
    参照图11,与执行三个调和指令的结果相应的调和模式被存储在调和寄存器中,以使得可在无需执行调和指令的情况下简单地读取出调和寄存器的数据集。
    比较图和图11,在图9的循环2中执行矢量运算之后,为循环3中随后的矢量运算执行调和指令。作为鲜明对比,在图11中,在循环1中执行矢量运算,矢量运算结果被存储在矢量寄存器中,并且,同时,预先定义的调和模式被创建并存储在调和寄存器中以用于输出。因此,循环1的输出适合作为用于在循环2中立即执行随后的矢量运算的输入。因此,处理循环的数量从6减少到4。
    此外,图12示出通过将在关于图10所示的处理流程的示例中的矢量运算应用到使用具有包括调和模式产生器和调和寄存器的阵列块的CGA而实现的处理器所获取的结果。
    参照图12,CGA包括六个阵列块来处理两个连续的矢量运算。阵列块0执行用于将数据集(例如,x1,x2,x3,x4)从存储器输入到矢量寄存器的加载 指令,并且调和模式产生器创建被存储在调和寄存器中的数据集的调和模式(例如,x1,x2,x3,x4)。阵列块1通过矢量处理单元使用从阵列块0的调和寄存器读取的调和模式来执行运算指令。结果(例如,y1,y2,y3,y4)被存储在矢量寄存器中,调和模式产生器创建被存储在调和寄存器中的相应的调和模式(例如,y4,y3,y2,y1)。阵列块2通过矢量处理单元使用从阵列块1的调和寄存器读取的调和模式来执行运算指令。结果(例如,z1,z2,z3,z4)被存储在矢量寄存器中,调和模式产生器创建被存储在调和寄存器中的相应的调和模式(例如,z3,z4,z1,z2)。阵列块3执行读取阵列块2中的调和寄存器的存储指令,并将数据集存储在存储器中。为了矢量运算,阵列块4和阵列块5分别存储用于到阵列块1和阵列块2的矢量处理单元的输入的标量寄存器。
    比较图10和图12,图12中的阵列不需要额外的矢量处理单元来执行如图10所示的调和指令。因此,减少了执行矢量运算所需的阵列块的数量(例如,从13到5)。
    因此,根据本描述,当输入或输出矢量寄存器的相应数据集时,通过执行调和指令产生的相同的调和模式被同时产生,而无需使矢量处理单元执行实际的调和指令。因此,减少由执行调和指令造成的不必要的开销,并增强处理性能。
    以上已描述多个示例。然而,应该理解,可以做出各种修改。例如,如果所描述的技术以不同顺序被执行,和/或如果所描述的系统、体系结构、装置或电路中的组件以不同的方式被组合和/或由其他组件或其等价物替换或补充,则可以实现合适的结果。因此,其他实施方式落在权利要求的范围内。

    关于本文
    本文标题:处理装置和调和模式产生器.pdf
    链接地址://www.4mum.com.cn/p-6185597.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
  • 梦幻宝环赚钱吗 北北京十一选五开奖结果 极速3d技巧规律 中国女子曲棍球队名单 北京pk10高手赌法 长期 菲彩国际怎么进不去了 pk10一码投注技巧大全 ag电子平台 那几款游戏 浙江11选5怎么计算号码 手机飞艇计划App 广西11选5 融资计划表 辽源凌龙棋牌官方下载 微信钱包咋给微信好友赚钱 泰国泰拳比赛 怎样买时时彩稳赚不赔