CN111742296A - 数据处理 - Google Patents

数据处理 Download PDF

Info

Publication number
CN111742296A
CN111742296A CN201980014746.9A CN201980014746A CN111742296A CN 111742296 A CN111742296 A CN 111742296A CN 201980014746 A CN201980014746 A CN 201980014746A CN 111742296 A CN111742296 A CN 111742296A
Authority
CN
China
Prior art keywords
vector
instruction
data
processing
predicate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201980014746.9A
Other languages
English (en)
Inventor
迈克尔·约翰·威廉姆斯
奈杰尔·约翰·斯蒂芬斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Ltd
Original Assignee
ARM Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ARM Ltd filed Critical ARM Ltd
Publication of CN111742296A publication Critical patent/CN111742296A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)

Abstract

数据处理装置包括:向量处理电路,用于根据与数据向量的位置相关联的相应的谓词标志的状态,选择性地应用由向量处理指令限定的向量处理操作以生成数据向量的一个或多个数据元素,该数据向量包括位于数据向量的相应的数据元素位置处的多个数据元素;以及生成器电路,用于生成指示向量处理电路针对所选向量处理指令的处理活动的指令采样数据,所述指令采样数据至少指示在执行所选向量处理指令时的谓词标志的状态。

Description

数据处理
技术领域
本公开涉及数据处理装置和方法。
背景技术
一些数据处理布置允许向量处理操作,涉及将单个向量处理指令应用于数据向量的数据项,该数据向量具有位于数据向量的各个位置处的多个数据项。相比之下,标量处理实际上对单个数据项进行操作,而不是对数据向量进行操作。
在其中对要处理的数据的许多不同实例执行处理操作的情况下,向量处理可能很有用。在向量处理布置中,单个指令可以同时应用于(数据向量的)多个数据项。与标量处理相比,这可以提高数据处理的效率和吞吐量。
发明内容
在示例布置中,提供了一种数据处理装置,包括:
向量处理电路,用于根据与数据向量的位置相关联的相应的谓词标志(predicateflag)的状态,选择性地应用由向量处理指令限定的向量处理操作以生成数据向量的一个或多个数据元素,该数据向量包括位于数据向量的相应的数据元素位置处的多个数据元素;以及
生成器电路,用于生成指示向量处理电路针对所选向量处理指令的处理活动的指令采样数据,所述指令采样数据至少指示在执行所选向量处理指令时的谓词标志的状态。
在另一示例布置中,提供了一种向量处理方法,包括:
根据与数据向量的位置相关联的相应的谓词标志的状态,选择性地应用由向量处理指令限定的向量处理操作以生成数据向量的一个或多个数据元素,该数据向量包括位于数据向量的相应的数据元素位置处的多个数据元素;以及
生成指示针对所选向量处理指令的向量处理活动的指令采样数据,所述指令采样数据至少指示在执行所选向量处理指令时的谓词标志的状态。
在另一示例布置中,提供了一种用于控制主机数据处理装置以提供向量指令执行环境的计算机程序,该计算机程序包括:
向量处理程序逻辑,用于根据与数据向量的位置相关联的相应的谓词标志的状态,选择性地应用由向量处理指令限定的向量处理操作以生成数据向量的一个或多个数据元素,该数据向量包括位于数据向量的相应的数据元素位置处的多个数据元素;以及
生成器程序逻辑,用于生成指示向量处理电路针对所选向量处理指令的处理活动的指令采样数据,所述指令采样数据至少指示在执行所选向量处理指令时的谓词标志的状态。
本公开的其他各个方面和特征由所附权利要求限定。
附图说明
将仅通过示例的方式参考在附图中示出的本技术的实施例来进一步描述本技术,其中:
图1示意性地示出了数据处理装置;
图2示意性地示出了将数据作为多个数据向量来处理。
图3示意性地示出了谓词标志的使用。
图4示意性地示出了生成器的操作的一部分。
图5示意性地示出了选择操作。
图6和图7示意性地示出了采样操作的一部分。
图8示意性地说明了对修改逻辑的使用。
图9至图22提供了生成指令采样数据的示意性示例。
图23示意性地示出了对可变向量长度的使用。
图24是示出向量长度的变化的示意性流程图。
图25是示出指令解码和调度的示意图。
图26示意性地示出了在可变向量长度的情况下的对修改逻辑的使用。
图27提供了生成指令采样数据的示意性示例。
图28是示出方法的示意性流程图;以及
图29示意性地示出了适用于本公开的虚拟化技术。
具体实现方式
现在参考附图,图1示意性地示出了数据处理系统10,该数据处理系统10包括处理器20,该处理器20耦合至存储数据值32和程序指令34的存储器30。处理器20包括指令提取单元40,该指令提取单元40用于从存储器30获取程序指令34,并将获取程序指令提供给解码器电路50。向量处理电路52包括解码器电路50和指令处理电路60。解码器电路50对所提取的程序指令进行解码,并生成控制信号以控制指令处理电路60来对存储在向量寄存器电路70中的向量寄存器执行如由经解码的向量指令所指定的向量处理操作。
处理器20还包括与标量寄存器90相关联的标量处理电路80。
标量处理和向量处理之间的一般区别如下。向量处理涉及将单个向量处理指令应用于数据向量的数据项,该数据向量具有位于数据向量的相应位置处的多个数据项。标量处理实际上对单个数据项进行操作,而不是对数据向量进行操作。
在其中对要处理的数据的许多不同实例执行处理操作的情况下,向量处理可能很有用。在向量处理布置中,单个指令可以同时应用于(数据向量的)多个数据项。与标量处理相比,这可以提高数据处理的效率和吞吐量。
下面的讨论涉及示例程序指令34。本公开的实施例包括一种装置,例如图1所示类型的装置,其可操作或配置为解码和执行这样的程序指令。因此,图1提供了向量处理电路的示例,该向量处理电路用于根据与数据向量的位置相关联的相应的谓词标志的状态,选择性地应用由向量处理指令限定的向量处理操作以生成数据向量的一个或多个数据元素,该数据向量包括位于数据向量的相应的数据元素位置处的多个数据元素。谓词标志被存储在寄存器文件72中,从而形成向量寄存器70的集合之一。
生成器55与解码器电路50和指令处理电路60相关联。生成器55执行采样处理,以生成指示至少指令处理电路60的操作的指令采样数据65。术语采样涉及以下事实:并非针对由指令处理电路60执行的每条指令都生成数据65(如生成所谓的跟踪数据的情况),而是由生成器55选择指令的采样,以及关于所选指令的指令采样数据所需的可能的详细信息。
采样指令与执行的总指令的比率是设计选择的问题,但是通常该比率可以约为被采样的指令的千分之一到数十万分之一。该比率可能是有用的,这样可以在对下一指令进行采样时完成为特定执行指令生成指令采样数据的过程,从而无需处理正在进行的采样数据流水线。采样可以是规则的,例如每第n条指令(其中n可能是10000),这可以称为所谓的系统指令采样。然而,为了减轻可能的共振效应,借此所执行的代码中的规则性(例如,循环)可能意味着对每n条指令进行采样不会给出被采样的一系列不同情况,可以使用对采样间隔的随机或伪随机贡献。下面将进一步讨论实现此目的的技术。
生成器55将指令采样数据写入主存储器,例如写入存储器的被保留的或以其他方式分配的区域36。在写入时,生成器55维持被写入区域36的数据量的计数(例如使用计数器57)。当区域的指令采样数据达到占用阈值水平(如95%或甚至100%)时,生成器向处理器20发出中断75,以使处理器执行以下操作:(i)将指令采样数据从区域36输出到分析处理器95,例如运行适当分析软件的通用计算机,以及(ii)重置计数器57。
指令采样数据可涉及处理器20的操作的许多不同方面。在本示例中,它至少部分涉及在执行采样指令时谓词标志的状态。此特征将在下面更详细地讨论。因此,生成器55提供了生成器电路的示例,该生成器电路用于生成指示向量处理电路针对所选向量处理指令的处理活动的指令采样数据,该指令采样数据至少指示在执行所选向量处理指令时的谓词标志的状态。
存储与谓词标志的状态相关联的指令采样数据可用于向量处理电路的性能监测、调试和其他分析。为了实现优于标量处理的有用效率增益,适当地利用处理的向量化或并行性质。如果关于采样指令有大量的谓词标志被设置为无效,则这可能表明系统未高效地使用对其可用的并行向量处理和/或可能由于运行了未适当利用的向量化系统而浪费功率,因此这可能促使进一步的调查或诊断,或潜在地转换为针对正在考虑的处理任务使用标量处理。
因此,在这些示例中,向量处理电路包括:指令解码器电路50,用于解码程序指令;以及指令处理电路60,用于根据谓词标志来执行由指令解码器电路解码的指令。
图2示意性地示出了将数据作为多个数据向量来处理。在这种布置中,旨在以处理顺序110处理一组数据项100。数据项100实际上被当作连续数据向量120来处理,因此在向量处理操作中,单个向量处理指令被同时应用于数据向量中的所有数据项(例如4个数据项、8个数据项或与特定系统的主向量长度VL无关)。
尽管如此,每个数据向量120可以保持数据项处理顺序130,并且从向量到向量可以有向量处理顺序140,使得如果在处理期间需要对原始处理顺序110进行任何参考,则这可以通过按照向量处理顺序140考虑数据向量并按照数据项处理顺序130考虑每个数据向量内的数据项来实现。
图3示意性地示出了使用谓词标志来控制向量处理操作。
可能存在单个向量处理操作应被不同地应用于数据向量内的不同数据项的情况。指令处理电路60通过使用谓词标志来提供这一点。谓词标志包括为数据向量内的每个数据项位置提供的标志信息,以指示是否应针对该数据项位置执行处理操作。在示例中,指令处理电路60可以访问多组谓词标志,使得任何特定的向量处理操作可以将一组或多组谓词标志称为该向量处理操作的参数。
参考图3,示例布置使用包括四个数据项(VL=4)的数据向量,但将理解,这些布置可以应用于不同的向量长度。示例输入数据向量250(向量A)为向量处理操作260的主题,使得在没有谓词标志的任何控制的情况下,向量处理操作260将被应用于每个数据项位置。然而,还提供了一组谓词标志270(每个数据项位置或“通道(lane)”一个谓词标志)来控制向量处理操作。
根据向量处理操作260来处理输入向量(向量A)的数据项252,以生成输出数据向量280(向量B)的数据项282。如果与输出数据向量280中的数据项位置相对应的谓词标志272被设置为“有效”(例如,值1)的话。如果输出向量位置的相应谓词标志被设置为“无效”(例如,值0),则将不执行针对该输出向量位置的向量处理操作260。
如上所述,在本示例中,谓词标志控制是否执行针对相对于输出数据向量280的特定输出位置或“通道”的向量处理操作。然而,在其他示例中,谓词标志可用于控制是否使用输入向量(或一个或多个输入向量)250中的数据项位置。然而,在本示例中,谓词标志指示在每个数据元素位置处处理为有效还是无效,由处理为有效的数据元素位置处的向量处理操作生成数据元素。
因此,这提供了具有有效状态的谓词标志的示例,该有效状态指示向量处理指令应被应用于与处于有效状态的与谓词标志相对应的数据向量的那些位置。无效状态指示不应如此应用向量处理操作。
如果由于无效谓词标志而未针对特定输出向量位置282执行向量处理操作,则在一些示例中,可以将固定值(例如0)插入该输出位置。在其他示例中,该输出位置的先前内容(无论它们是什么)可以保留不变。
因此,以这种方式使用谓词标志提供了一个示例,该示例根据与位置相关联的相应谓词标志的状态,将向量处理指令应用于数据向量的一个或多个数据项,该数据向量包括位于数据向量中的相应位置的多个数据项。
图4是示出生成器55的一些功能的示意图。选择器400选择应对其执行采样处理以生成指令采样数据410的指令。在下面将更详细讨论的一些示例中,选择器400通过对来自解码器50的解码指令进行计数并对例如每第n条指令进行采样来实现此目的,其中n可能约为1000或10000。
结合采样指令,选择器400指示采样器420来生成指示该指令的执行的指令采样数据410。采样器420可以被提供下列项作为输入:解码指令430本身(例如为了检测指令类型以及可选地与该指令相关联的字长,将在下面结合图7讨论的特征)、在执行采样指令时可应用的谓词标志440、以及可选地与指令的执行有关的其他数据(例如处理器寄存器中的值等)。
因此,在这些示例中,生成器电路响应于指令解码器电路50对所选指令的解码而发起生成指令采样数据,并且响应于指令处理电路生成指示在执行所选指令时的谓词标志的状态的指令采样数据。
根据这些数据,采样器420准备与采样指令相关联的指令采样数据410。
指令采样数据的示意性示例包括以下示例字段:
·对指令类型的指示
·对由指令设置的词或元素长度的指示
·对在执行指令时适用的向量长度的指示
·对在执行指令时各种处理器寄存器的内容的指示
·对在执行指令时适用的谓词标志的指示(例如,下面要讨论的计数值和/或事件数据,和/或谓词标志集的副本)
图5示意性地示出了选择器400的操作的示例。计数器500对从解码器50接收的连续指令进行计数。该计数可以是例如递增计数(例如从零开始)或递减计数(例如到零)。更一般地,该计数是从起始计数值到最终计数值。作为涉及递增计数的示例,比较器510将当前计数值与阈值520(代表最终计数值)进行比较,并且当计数值达到阈值时,选择该计数位置处的相关联指令(例如,指令530)以进行采样。
可选地,阈值520可以从通过加法器或其他组合器550与修饰符值560(例如适用于基值的特定数量的最低有效位(LSB)的随机或伪随机值)相加的基值540导出。根据进行计数的方式,可以将随机或伪随机阈值用作起始计数值或最终计数值。
因此,在这些示例中,用于选择所选(采样)指令的指令选择电路(由选择器400实现)包括计数器电路,该计数器电路被配置为在起始计数值和最终计数值之间对指令进行计数,并且选择计数器达到最终计数值的指令来作为所选指令。可选地,指令选择电路可被配置为将起始计数值和最终计数值中的一者或两者与诸如随机或伪随机数之类的修饰符值组合。
图6示意性地示出了采样器420的操作的一个方面,涉及计数器操作600,该计数器操作600对指示相应向量通道中的有效处理的谓词标志的数量进行计数。计数器610的输出可以是例如诸如8、12、14...之类的计数,以指示表示处理为有效和/或所谓的事件数据的谓词标志的数量,例如,指示无谓词标志被设置的标志、或者指示所有可用谓词标志被设置的标志,或者换句话说,选择性地指示下列项中的至少一项:所有谓词标志指示处理为有效;至少一些谓词标志指示处理为无效;以及所有谓词标志指示处理为无效。以这种方式使用事件数据允许将可能较少的数据量用于指令采样数据,同时仍提供有关谓词标志的状态的潜在有用信息。
图7示意性地示出了采样器420的操作的另一潜在方面,其中对于将数据元素或字长710指定为操作码的一部分的指令操作码700,检测器720生成指示适用于当前采样指令的字长的数据730来作为指令采样数据410的至少一部分。
因此,在这些实例中,至少一些向量处理指令被配置为从候选数据元素大小的集合中限定数据元素大小,并且其中给定向量处理指令的指令采样数据指示适用于执行该给定向量处理指令的数据元素大小。例如,尽管指令可以为后续指令设置数据元素大小,但是对于至少一些向量处理指令,适用于执行该指令的数据元素大小是由该向量处理指令的至少一部分限定的。
图8示意性地示出了可以在具有可变字长的系统的上下文中应用的谓词标志的特征。
例如,在可变字长的范围内,至少为最小字长的每个可能实例提供单个谓词标志是适当的。例如,在图8中,谓词标志800适用于最短可用字长的实例。然而,如果使用了较长字长,则对于特定向量长度,谓词标志与向量处理通道的比率可能大于1:1。具体地,在较长字长的情况下,同一向量长度将提供较小数量的向量处理通道,使得例如谓词标志的对810可以应用于较长字长的各个向量处理通道。在其他示例中,一组四个或更多个谓词标志可以应用于单个通道。
有时提供这样的约定(convention),通过该约定,在与数据元素相关联的一组谓词标志(例如组810)中,该组的子集(例如,谓词标志800(例如,适用于该通道的最低有效位的谓词标志))被用于指示该数据元素位置处的处理是有效还是无效。在图8的示例中,组810的另一谓词标志820是冗余的,并且可具有未指定的值。
换句话说,对于候选数据元素大小集合中的至少一些数据元素大小,每个数据元素与和数据元素相关联的一组谓词标志相关联,其中该组谓词标志的子集指示该数据元素位置处的有效或无效处理。例如,谓词标志的子集可以包括谓词标志的每个组810中的一个谓词标志800。
本公开认识到,在例如如上所述对谓词标志的数量进行计数的采样系统中,具有谓词标志(例如具有未定义值和冗余函数的谓词标志820)可能潜在地导致生成误导性指令采样数据。
为了解决这个问题,生成器55可选地包括所谓的修改逻辑830,对于给定的一组谓词标志(例如组810),该修改逻辑830用于将除谓词标志800的子集之外的谓词标志(例如冗余标志820)设置为与谓词标志的子集的状态相同的状态。然后,使用上述技术通过采样电路840进行采样,例如计数,以生成指令采样数据850。
因此,例如如果组810的谓词标志800被设置为“有效”,则修改逻辑830将谓词标志820设置为“有效”。
重要地,注意到修改逻辑830不需要(并且在这些示例中也没有)修改处理器20所引用的实际谓词标志,而仅修改由采样电路840处理的标志。
现在将参考图9至图22讨论这些布置的一些具体示例,分别表示从图的左侧的最高有效位到图的右侧的最低有效位布置的256位向量(作为示例)。标记为“V”的上部行表示使用中的向量,并且标记为“P”的下部行表示谓词标志。符号“1”表示“有效”,并且“0”表示“无效”。值“X”表示冗余谓词标志位置中的未定义或不确定的值。
参考图9,提供了4×64位元素或字的示例。此处,位置0、8、16、24处的谓词标志表示与图8的谓词标志800相对应的子集。注意,为256位向量提供了32个谓词标志,因为在此示例中最小字长为8位。位置1...7、9...15、17...23和25...31处的谓词标志是未定义的,因为它们与指令处理电路60关于向量通道是有效还是无效的确定无关。
在图10中,提供了8×32位元素的示例。此处,位置0、4、8、12、16、20、24、28处的谓词标志表示与指令处理电路60关于该向量处理通道是有效还是无效的确定有关的子集,并且其余的谓词标志未定义。
在图9和图10的示例中,所有元素都位于向量中的有效通道位置。
图11示出了与图10的布置类似的布置,除了所有向量通道都是无效的,如位置子集处的谓词标志“0”所示。
图12示出了另一类似布置,其中偶数32位元素为有效,并且奇数32位元素为无效。
图13返回图9的4×64位示例,但是使用了与图12相同的谓词标志集,但在这种情况下,由于仅位置0、8、16、24在指示有效或无效状态的子集中,因此所有64位元素都被视为有效。
现在将参考图14至图22进一步描述修改逻辑的操作。在此,标记为“S”的另一行值表示采样电路840所采样的、由修改逻辑830修改的采样值835。如上所述,修改逻辑不需要修改处理器20所引用的实际谓词值,而是修改对值进行计数的方式。
注意,图14至图18示出了与图9至图13相同的向量和谓词值。还注意,图19至图23示出了相同的谓词值。
在图14的示例中,修改逻辑830已经将除了64位元素系统中的谓词标志的子集(0、8、16、24)之外的谓词标志设置为与谓词标志的子集相同的状态,以用于计数。因此,对于每个元素位置或通道,指示该通道的有效或无效状态的谓词标志的状态在与该通道相关联的其他谓词标志之间复制。适用于该布置的计数值为32,其指示所有谓词值被设置。
图15示出了与8×32位元素系统有关的类似布置,其中所有通道有效,再次使得计数为32。
在图16中,8×32位通道全部无效,并且在修改逻辑830输出的数据835中,除子集(0、4、8、12、16、20、24、28)之外的谓词标志被设置为谓词标志的相应子集的相同状态,使得计数为零。
图17是8×32位元素的示例,其中偶数通道有效并且奇数通道无效。通过应用上述技术,计数值为16,这正确指示了一半通道为有效并且一半通道为无效。
图18是全部有效的4×64位元素的示例,其中修改逻辑830的处理产生32个有效谓词标志的计数。
在另一个极端,图19示出了32×8位元素的示例,使得每个谓词标志位置代表单独的处理通道。在所示的示例中,计数为15。
在另一可选字长,图20示出了16×16位元素的示例,其中一些为有效并且一些为无效,但是通过应用修改逻辑830的处理,得到计数14,正确地指示了14/32比例的元素为有效。
图21涉及8×32位布置,其中修改逻辑830的处理再次产生计数16,正确地指示了50%的通道为有效。
最后,图22是4×64位元素示例,其中修改逻辑830的处理再次产生计数32,正确地指示了所有通道均为有效。
图23示意性地示出了控制电路以及向量处理器的一部分。
对于数据项的集合或向量,通常通过并行执行同一处理操作来应用向量处理。这种布置可能依赖于用于每个处理通道(与应用于数据向量中的一个数据项的处理相对应的一个处理通道)的各种计算组件和寄存器存储装置。在图23中,一组寄存器2300以及一组计算和控制元件2310提供了向量处理器所使用的处理布置的简化表示。针对每个处理通道存在一个寄存器2300和一个处理元件2310(但将理解,在处理通道的实际实现方式中可能涉及多得多的组件)。还注意,对于一些向量指令可能存在比处理通道更少的处理元件,并且这些向量指令例如使用以下所述的技术而被“破解”或拆分为多个较小指令,和/或对于一些向量指令可能存在比处理通道更多的处理元件,允许对这些向量指令进行超标量执行。图23所示的处理通道的总数对应于系统的最大可能数据向量长度(“最大(Max)VL”)。这是数据向量宽度的物理上限,并且表示如果所有处理通道都被控制电路2360启用(即如果禁用通道的当前子集为零),则可用于向量处理器的处理通道的数量。然而,在本实施例中,在控制电路2360的控制下,可以选择性地使用较小数据向量宽度来代替最大数据向量宽度最大VL。
将理解,在典型系统中,最大VL可能比图23示意性所示的大得多。例如,最大VL可以是256位、512位、1024位、或其他值。在此,例如“256位”表示最多32个8位元素、或最多16个16位元素、或最多4个64位元素。图23中最大VL的示例值仅出于解释目的。
控制电路2360被配置为响应于存储在寄存器2390中的、由控制电路2360维护(响应于执行改变VL的指令,这将在下面讨论)的VL的当前值,禁用处理通道的子集的操作而使得被禁用的处理通道的子集不可用于向量处理电路。因此,对寄存器2390的使用提供了由处理器寄存器定义的当前向量长度的示例,该处理器寄存器具有响应于向量长度定义指令的执行的寄存器状态。
该选择性禁用可以通过各种方式来实现。
在一个示例中,控制电路2360控制电源单元(PSU)2320的操作,该电源单元(PSU)232向每个相应的处理通道的至少一些部分(或全部)提供电力,以便选择性地从(禁用的)处理通道的子集移除电力,例如通过禁用对处理通道的子集的电源。
在另一示例中,控制电路2360将控制信号提供给处理通道的子集,以禁用相应的处理元件2310的操作。处理元件可以包括例如算术逻辑单元、乘法器等,其可以通过从其余电路、电源门控、或时钟门控断开而被选择性地禁用(参见下文)。
另一示例中,控制对寄存器元件2300的读取和写入的读取/写入逻辑2330在控制电路2360的控制下起作用,以禁止对与(禁用的)处理通道的子集相对应的寄存器元件2300的读取或写入。在该示例中,每个处理通道包括一个或多个数据寄存器,例如寄存器元件2300,向量处理电路被配置为将数据从存储器(图23中未示出,但在图1中示为存储器30)加载到数据寄存器中,以及将数据从寄存器写入存储器;并且控制电路2360被配置为禁止向量处理电路将数据从与处理通道的子集相对应的数据寄存器写入存储器。
在示例中,与当前禁用的处理通道相对应的寄存器可以被完全禁用或掉电,或者它们的内容可以保留(通过向它们供电或者通过针对寄存器2300使用非易失性存储器元件),但对与当前禁用的处理通道相对应的那些寄存器的访问被防止或禁止。这是控制电路2360的示例,其被配置为禁止向量处理电路改变由与处理通道的子集相对应的数据寄存器所保持的数据值,例如,涉及维持由与处理通道的子集相对应的数据寄存器所保持的数据值。
在其他示例中,代替如上所述改变对各种组件的电力供应(或在此之外),控制电路2360可以应用所谓的时钟门控过程。在图23中示意性地示出了关于读取/写入逻辑2330的示例,但是相同的布置可以应用于处理通道的其他方面,例如寄存器2300和/或处理元件2310。时钟信号CK在被提供给读取/写入逻辑(或读取/写入逻辑的适用于禁用处理通道的部分)之前由时钟门2332处理。在来自控制电路2360的信号的控制下,时钟门2332传递或阻止时钟信号CK。因此,作为禁用一个或多个处理通道的至少一部分,可以从与那些处理通道有关的一个或多个组件阻止时钟信号CK。
禁用处理通道的子集还可以(或替代地)涉及禁用(例如通过时钟门控或电源门控)通信电路,例如与禁用通道有关的总线驱动器。
在另外的示例中,处理元件和寄存器的集合可以包括所谓的置换逻辑,被布置为进行跨通道操作(其中寄存器的内容可以取决于相对于一个或多个其他寄存器的内容而执行的操作)。在示例中,置换逻辑在控制电路2360的控制下操作,从而被禁止执行以下操作中的一者或两者:(a)从一个或多个当前禁用的通道的内容中导出当前有效通道的内容,以及(b)导出当前禁用通道的内容。
将理解,可以使用这些方法和其他类似方法的组合以便执行禁用处理通道的子集的操作的功能。还将理解,该改变不同于有时被称为使用谓词标志的布置。谓词标志提供了与向量处理器的各个处理通道有关的条件执行。在这种情况下,通道保持可用于向量处理器。在本布置中,相比之下,处理通道的子集被禁用以便不可用于向量处理器,向量处理器就像它仅具有比对应于最大数据向量长度的数量更小数量的处理通道来操作。在本申请的上下文中,禁用的通道未被写回到存储器。
可以将预定通道保留为寄存器写回的一部分。具体地,合并向量加载可仅加载元件的子集,同时保留最初由指定寄存器保持的剩余值。在OoO(乱序)处理器中,重命名可能需要将那些剩余值从目标寄存器中移出,然后重命名到新重命名的寄存器。本系统的示例可能无法保证禁用通道的内容。
在另一示例中,为了在主向量长度VL小于最大VL的情况下通过不向不必要的结构供电、或不启用不必要的结构的操作来节省电力,控制电路2360被配置为根据由控制电路设置的数据向量长度来选择性地禁用指令队列2364中(一个或多个)数据结构的一部分的操作,例如通过控制对那些数据结构的电力供应和/或通过如上对这些数据结构进行时钟门控。
在示例实施例中,用于给定向量处理指令的指令采样数据指示适用于执行该给定向量处理指令的向量长度。这可以通过包括VL数据生成器2380的生成器来实现,该VL数据生成器2380被配置为生成指令采样数据2385,其指示如存储在寄存器2390中的适用于执行采样指令的当前VL。
图24是示意性流程图,示出了由控制电路2360设置寄存器2390中的向量长度的示例。在此示例中,由较低安全模式使用的向量长度只能由在较高安全模式下运行的程序代码设置。在其他示例中,可以使用任何指令来更改VL。
处理器20被配置为在两个或更多个安全模式下执行处理活动。安全模式可以被布置为禁止在一种安全模式下执行的处理活动访问与在另一安全模式下执行的处理活动相关联的至少一些信息。例如,可以提供包括较高安全等级模式和较低安全等级模式的两个或更多个安全模式,使得处理器20在较低安全等级模式下的操作不能访问(或至少被禁止访问)与处理元件在较高安全等级模式下的操作相关联的至少一些信息(例如寄存器内容或地址空间的部分)。在其他示例中,可以提供两个或更多个互斥安全模式,以便当处理器20在该两个或更多个互补安全模式之一中操作时,它无法访问与该两个或更多个互补安全模式中的另一个中的操作相关联的至少一些信息。这些布置可以组合。
对处理器的不同安全模式的一种使用是在虚拟化的上下文中,其中多个操作系统作为所谓的虚拟机共存于单个处理器上,每个操作系统在所谓的管理程序的控制或监督之下。可以采取各种步骤来避免不同虚拟机之间的不适当干扰。例如,应用可以最低安全等级运行;操作系统可以在下一更高安全等级运行,并且管理程序可以又更高的安全等级运行。这样,可以将保护内置到系统中,以避免(例如)在一个操作系统下运行的应用破坏由在另一个操作系统下运行的应用所使用的信息。
安全模式的临时更改可被实现为从在一种安全模式下运行的程序指令到不同安全模式下的功能或子例程的分支。为了允许与处理器相关联的寄存器在第二(新)安全模式下使用,而不必公开或允许破坏如由第一(原始)安全模式所使用的那些寄存器的内容,适当的是处理器20将这些寄存器存储在诸如处理器堆栈之类的存储装置中。这还允许在第一安全模式下的处理活动以与分支到功能或子例程时所应用的相同的寄存器参数进行恢复。
参考图24,在步骤2400,根据数据向量长度VL1在较低安全模式下执行程序代码。在步骤2410,较低安全模式下的程序代码调用较高安全模式。控制被转移到较高安全模式,并且在步骤2420,通过执行向量长度改变指令,在较高安全模式下运行的程序代码将适用于较低安全模式的向量长度设置为新向量长度VL2,该向量长度改变指令是作为被配置为限定数据向量的向量长度的向量长度限定指令的至少一些向量处理指令的示例。这改变寄存器2390中的主VL值。在步骤2430,执行回到较低安全模式的返回。在步骤2440,较低安全模式执行向量长度VL2处的程序代码。
因此,这提供了装置的示例,该装置可在多种安全模式下操作,使得在较低安全模式下执行的指令无法访问由在较高安全模式下执行的指令可访问的数据项,控制电路2360响应于对当前安全模式下的设置长度指令的解码,设置适用于较低安全模式的数据向量长度。
然而请注意,不需要在较高安全模式下设置或指定向量长度。无需任何改变安全模式来进行此更改。本技术与检测错误地或不良地选择的向量长度有关,而与用于设置向量长度的机制无关。
由控制电路2360设置向量长度VL的过程可以允许在1(或2,以便术语“向量”以有用的方式应用)与高达最大VL之间的任何VL值。然而在一些示例中,可选VL值限于所有此类可用值的子集。例如,最大VL和可选VL值二者都可以限制于特定值的倍数,例如128的倍数。作为示例,如果最大VL是1024,则VL可以由控制电路62设置为128、256、384、512、640、768、896或1024位中的任一者(参见以上讨论)。在示例中,由向量处理器使用的至少一些组件(例如寄存器400、处理元件410等)可以布置在(例如)128位宽的单元的库(bank)中,使得可以在逐个库的基础上应用时钟门控、电源门控、或其他技术,而无需单独关注每个此类元件。
注意,设置(Set)VL指令可以实现对向量长度的绝对值的改变,例如“设置VL为64”。然而,为了提供设置VL指令本身是向量长度不可知的(也就是说它将在具有不同物理限制或最大VL的不同数据处理装置上正常工作),另一选择是设置VL指令被定义和执行以将向量长度设置为最大VL的特定比例,而不管该特定数据处理装置上的最大VL为何。例如,指令可以为“设置VL为最大VL/4”的形式。因此在本讨论中,向量长度VL1、VL2应被解释为绝对向量长度、或参考特定执行装置的最大VL表示的相对向量长度。注意在该上下文中,使用作为2的幂的最大VL值、以及相对于最大VL以2的幂改变VL的设置VL指令是有用的。因此,可以考虑设置VL的不同版本或“种类(flavour)”。设置VL可以根据定义固定大小(例如128位)的倍数的立即操作数或寄存器相关操作数来动作。这可以上限为最大VL。替代地,设置VL可以根据描述主VL最大值的分数(例如1、1/2、1/4、1/8等)的立即操作数或寄存器相关操作数来动作。
尽管对改变VL的频率不一定有结构限制,但对于系统(例如在程序控制下)来说适当的是不比每100或1000条指令更频繁地进行改变。这可以有助于避免或减少由于VL改变时发生的操作和管理(例如改变安全等级或停止解码,如下所述)而导致的低效率。
图25示意性地示出了诸如图1的解码器电路50之类的解码器电路的操作。为了说明与本讨论有关的技术要点而简化了图25的流程图。将理解,可以执行进一步的操作来作为解码电路50的操作的一部分。
解码器电路50(可选地)可操作来将向量处理指令解码成操作的集合,其中集合的数量等于数据向量长度,在本实施例中,该数据向量长度是由控制电路2360设置的。例如这对于多阶段指令(例如分散、聚集等)可能会发生。其他操作作为单个向量处理指令被执行。
步骤2500涉及解码向量处理指令。在步骤2510,经解码的指令被拆分或“破解”为应用于连续数据向量120的数据项100的操作集合,如参考图2所讨论的。步骤2510处的操作响应于由控制电路2360建立并存储在寄存器2390中的当前向量长度(VL)。在步骤2520,调度操作集合以由向量处理器执行。解码器电路50在步骤2500、2510处的操作提供了将向量处理指令解码为操作集合的指令解码器的示例,集合的数量等于控制电路所设置的数据向量长度。
因此适用于特定指令的向量长度可以产生自有效VL设置(例如通过如上所述的VL设置指令、和/或如上所述的VL寄存器的内容)、和/或作为参考图25所讨论的类型的破解操作的结果。在这些实例中的任何一者或多者中,给定向量处理指令的指令采样数据可以指示适用于执行给定向量处理指令的向量长度。
此外,所讨论的任何情况下的另一选择是给定向量处理指令的指令采样数据指示(以及适用于该给定指令的向量长度):适用于该给定指令的数据元素大小、以及指示适用于执行该给定指令的每个谓词标志的状态的数据。
图26示意性地示出了最大向量长度最大VL 2600的示例,其中上述处理施加了减小的向量长度VL1 2610,使得处理通道的子集2620至少被暂时禁用。
关于谓词标志,修改逻辑830被配置为将与禁用子集2620相对应的谓词标志2630设置为诸如“无效”之类的预定状态,使得采样电路840可以基于谓词标志的计数来生成指令采样数据850,包括与禁用子集2620相对应的标志2630的无效状态。
在图27中示意性地示出了一个示例,其示出了具有256位的最大向量长度,但是被设置为128位的当前向量长度的系统。这意味着向量的位128...255当前被禁用。然而,可能的情况是有效谓词标志与禁用的向量位置相关联。修改逻辑830生成用于采样(“S”)的数据,其中与禁用的通道128...255相关联的向量位置16...31被设置为“无效”。这意味着对有效位置的计数仅基于当前启用的通道,并给出正确值8。
这种布置提供了一个示例,其中,生成器电路被配置为针对给定的一组谓词标志生成指令采样数据,该指令采样数据指示与未包括在当前向量长度的向量中的数据元素有关的谓词标志被设置为预定状态。
图28是示出向量处理方法的示意性流程图,该向量处理方法包括:
根据与数据向量的位置相关联的相应的谓词标志的状态,选择性地应用(在步骤2800)由向量处理指令限定的向量处理操作以生成数据向量的一个或多个数据元素,该数据向量包括位于数据向量的相应的数据元素位置处的多个数据元素;以及
生成(在步骤2810)指示针对所选向量处理指令的向量处理活动的指令采样数据,所述指令采样数据至少指示在执行所选向量处理指令时的谓词标志的状态。
图29示出了可使用的模拟器实现方式。虽然较早描述的实施例在用于操作支持所考虑的技术的特定处理硬件的设备及方法方面实施本发明,但还可以根据通过使用计算机程序实现的本文所描述的实施例来提供指令执行环境。在此类计算机程序提供硬件架构的基于软件的实现方式的范围内,这些计算机程序通常称为模拟器。各种模拟器计算机程序包括模拟器、虚拟机、模型、以及二进制转换器,包括动态二进制转换器。通常,模拟器实现方式可在主机处理器2930上运行,该主机处理器可选地运行主机操作系统2920,支持模拟器程序2910。在一些配置中,可存在介于硬件与所提供的指令执行环境之间的多层模拟,和/或提供在同一主机处理器上的多个不同的指令执行环境。历史上,已需要强大的处理器来提供以合理速度执行的模拟器实现方式,但此方法可在某些环境中被调整,例如当出于兼容性或重新使用原因需要运行对于另一处理器为本机的代码时。例如,模拟器实现方式可提供具有主机处理器硬件所不支持的额外功能的指令执行环境,或提供通常与不同的硬件架构相关联的指令执行环境。对模拟的概述在“一些高效架构模拟技术(Some EfficientArchitecture Simulation Techniques)”,Robert Bedichek,Winter 1990USENIXConference,第53–63页中给出,其内容通过参考结合于此。
在先前已参考特定硬件构造或特征描述所实施例的方面,在模拟实施例中,等效功能可由适当的软件构造或特征来提供。例如,特定电路可在模拟实施例中实施为计算机程序逻辑。类似地,存储器硬件(例如,寄存器或缓存)可在模拟实施例中实施为软件数据结构。在先前描述的实施例中引用的一个或多个硬件组件存在于主机硬件(例如,主机处理器2930)上的配置中,一些模拟实施例可在适合的情况下利用主机硬件。
模拟器程序2910可存储在计算机可读存储介质(可为非暂态介质)上,并且提供到目标代码2900(可包括应用、操作系统及管理程序)的程序接口(指令执行环境),该程序接口与由模拟器程序2910模型化的硬件架构的应用编程接口相同。因此,目标代码2900的程序指令(包括用于生成指示向量处理电路针对所选向量处理指令的处理活动的指令采样数据的指令,所述指令采样数据至少指示在执行所选向量处理指令时的谓词标志的状态,如上所述)可以使用模拟器程序2910从指令执行环境内执行,使得实际上不具有上述装置的硬件特征的主机计算机2930可以模拟这些特征。
因此,图29的模拟器布置在被配置为模拟上述装置时,提供了用于控制主机数据处理装置以提供向量指令执行环境的计算机程序,该计算机程序包括:向量处理程序逻辑,用于根据与数据向量的位置相关联的相应的谓词标志的状态,选择性地应用由向量处理指令限定的向量处理操作以生成数据向量的一个或多个数据元素,该数据向量包括位于数据向量的相应的数据元素位置处的多个数据元素;以及生成器程序逻辑,用于生成指示向量处理电路针对所选向量处理指令的处理活动的指令采样数据,所述指令采样数据至少指示在执行所选向量处理指令时的谓词标志的状态。
在本申请中,词语“被配置为……”用来表示装置的组件具有能够实施所定义的操作的配置。在此上下文中,“配置”表示硬件或软件的互连的配置或方式。例如,装置可具有提供所定义的操作的专用硬件,或可被程序化为执行功能的处理器或其他处理装置。“被配置为”并不暗示装置组件需要以任何方式改变以便提供所定义操作。
尽管本文已参考附图详细描述了本技术的说明性实施例,但将理解,本技术不限于这些确切的实施例,且各种变化、添加以及修改可在不脱离如所附权利要求限定的本发明的范围及精神的情况下由本领域技术人员实现。例如,在不脱离本技术的范围的情况下,可以将从属权利要求的特征与独立权利要求的特征进行各种组合。

Claims (21)

1.一种数据处理的装置,包括:
向量处理电路,用于根据与数据向量的位置相关联的相应的谓词标志的状态,选择性地应用由向量处理指令限定的向量处理操作以生成所述数据向量的一个或多个数据元素,所述数据向量包括位于所述数据向量的相应的数据元素位置处的多个数据元素;以及
生成器电路,用于生成指示所述向量处理电路针对所述向量处理指令中的所选向量处理指令的处理活动的指令采样数据,所述指令采样数据至少指示在执行所选向量处理指令时的所述谓词标志的状态。
2.根据权利要求1所述的装置,其中,所述谓词标志指示在每个数据元素位置处处理为有效还是无效,数据元素是由处理为有效的数据元素位置处的向量处理操作生成的。
3.根据权利要求1所述的装置,其中,所述指令采样数据指示表示处理为有效的所述谓词标志的数量。
4.根据权利要求3所述的装置,其中,指令采样数据包括事件数据,以选择性地指示下列项中的至少一者:
所有谓词标志指示处理为有效;
至少一些谓词标志指示处理为无效;以及
所有谓词标志指示处理为无效。
5.根据权利要求1所述的装置,其中,至少一些所述向量处理指令被配置为从候选数据元素大小集合中限定数据元素大小,并且其中,用于给定向量处理指令的所述指令采样数据指示适用于执行所述给定向量处理指令的数据元素大小。
6.根据权利要求5所述的装置,其中,对于至少一些所述向量处理指令,适用于执行该指令的数据元素大小是由该向量处理指令的至少一部分来限定的。
7.根据权利要求5所述的装置,其中,对于所述候选数据元素大小集合中的至少一些数据元素大小,每个数据元素与和数据元素相关联的一组谓词标志相关联,其中,该组谓词标志的子集指示在该数据元素位置处的有效或无效处理。
8.根据权利要求7所述的装置,其中,所述谓词标志的子集包括每组谓词标志中的一个谓词标志。
9.根据权利要求7所述的装置,其中,所述生成器电路被配置为针对给定的一组谓词标志生成指令采样数据,所述指令采样数据指示除所述谓词标志的子集之外的谓词标志具有与所述谓词标志的子集的状态相同的状态。
10.根据权利要求1所述的装置,其中,至少一些所述向量处理指令是被配置为限定所述数据向量的向量长度的向量长度限定指令,并且其中,当前向量长度是由具有响应于执行向量长度限定指令的寄存器状态的处理器寄存器限定的。
11.根据权利要求1所述的装置,其中,用于给定向量处理指令的所述指令采样数据指示适用于执行所述给定向量处理指令的向量长度。
12.根据权利要求11所述的装置,其中,用于所述给定向量处理指令的所述指令采样数据指示以下各项:适用于所述给定指令的数据元素大小,以及指示适用于执行所述给定指令的每个所述谓词标志的状态的数据。
13.根据权利要求12所述的装置,其中,所述生成器电路被配置为针对给定的一组谓词标志生成指令采样数据,所述指令采样数据指示与未包括在所述当前向量长度的向量中的数据元素有关的谓词标志被设置为预定状态。
14.根据权利要求1所述的装置,其中,所述向量处理电路包括:
指令解码器电路,用于解码程序指令;以及
指令处理电路,用于根据所述谓词标志来执行由所述指令解码器电路解码的指令。
15.根据权利要求14所述的装置,其中,所述生成器电路响应于由所述指令解码器电路对所选指令进行解码而发起生成所述指令采样数据,并且响应于所述指令处理电路而生成指示执行所述所选指令时的谓词标志的状态的所述指令采样数据。
16.根据权利要求1所述的装置,包括指令选择电路,用于选择所述向量处理指令中的所选向量处理指令。
17.根据权利要求16所述的装置,其中,所述指令选择电路包括计数器电路,所述计数器电路被配置为在起始计数值和最终计数值之间对指令进行计数,并且选择所述计数器达到所述最终计数值的指令作为所选指令。
18.根据权利要求17所述的装置,其中,所述指令选择电路被配置为将所述起始计数值和所述最终计数值中的一者或两者与修饰符值进行组合。
19.根据权利要求18所述的装置,其中,所述修饰符值是随机数或伪随机数。
20.一种向量处理方法,包括:
根据与数据向量的位置相关联的相应的谓词标志的状态,选择性地应用由向量处理指令限定的向量处理操作以生成所述数据向量的一个或多个数据元素,所述数据向量包括位于所述数据向量的相应的数据元素位置处的多个数据元素;以及
生成指示针对所述向量处理指令中的所选向量处理指令的向量处理活动的指令采样数据,所述指令采样数据至少指示在执行所选向量处理指令时的所述谓词标志的状态。
21.一种用于控制主机数据处理装置以提供向量指令执行环境的计算机程序,该计算机程序包括:
向量处理程序逻辑,用于根据与数据向量的位置相关联的相应的谓词标志的状态,选择性地应用由向量处理指令限定的向量处理操作以生成所述数据向量的一个或多个数据元素,所述数据向量包括位于所述数据向量的相应的数据元素位置处的多个数据元素;以及
生成器程序逻辑,用于生成指示所述向量处理电路针对所述向量处理指令中的所选向量处理指令的处理活动的指令采样数据,所述指令采样数据至少指示在执行所选向量处理指令时的所述谓词标志的状态。
CN201980014746.9A 2018-02-28 2019-02-15 数据处理 Pending CN111742296A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1803250.8A GB2571527B (en) 2018-02-28 2018-02-28 Data processing
GB1803250.8 2018-02-28
PCT/GB2019/050408 WO2019166772A1 (en) 2018-02-28 2019-02-15 Data processing

Publications (1)

Publication Number Publication Date
CN111742296A true CN111742296A (zh) 2020-10-02

Family

ID=61903155

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980014746.9A Pending CN111742296A (zh) 2018-02-28 2019-02-15 数据处理

Country Status (7)

Country Link
US (1) US11354126B2 (zh)
EP (1) EP3759592B1 (zh)
JP (1) JP7377208B2 (zh)
KR (1) KR20200124251A (zh)
CN (1) CN111742296A (zh)
GB (1) GB2571527B (zh)
WO (1) WO2019166772A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117093268A (zh) * 2023-10-19 2023-11-21 超睿科技(长沙)有限公司 一种向量处理方法、系统、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020199086A1 (en) * 2001-06-11 2002-12-26 Broadcom Corporation Setting execution conditions
CN103383640A (zh) * 2012-04-02 2013-11-06 苹果公司 提高向量分解循环的性能
WO2014147446A1 (en) * 2013-03-21 2014-09-25 Freescale Semiconductor, Inc. Data processing device, method of reporting predicate values, and data carrier
US20160188334A1 (en) * 2014-12-24 2016-06-30 Intel Corporation Hardware apparatuses and methods relating to elemental register accesses
WO2017021269A1 (en) * 2015-07-31 2017-02-09 Arm Limited Vector processing using loops of dynamic vector length

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040064685A1 (en) * 2002-09-27 2004-04-01 Hung Nguyen System and method for real-time tracing and profiling of a superscalar processor implementing conditional execution
US9495169B2 (en) * 2012-04-18 2016-11-15 Freescale Semiconductor, Inc. Predicate trace compression
US9367309B2 (en) * 2013-09-24 2016-06-14 Apple Inc. Predicate attribute tracker
US9323525B2 (en) * 2014-02-26 2016-04-26 Intel Corporation Monitoring vector lane duty cycle for dynamic optimization
US9348595B1 (en) * 2014-12-22 2016-05-24 Centipede Semi Ltd. Run-time code parallelization with continuous monitoring of repetitive instruction sequences
GB2540941B (en) 2015-07-31 2017-11-15 Advanced Risc Mach Ltd Data processing

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020199086A1 (en) * 2001-06-11 2002-12-26 Broadcom Corporation Setting execution conditions
CN103383640A (zh) * 2012-04-02 2013-11-06 苹果公司 提高向量分解循环的性能
WO2014147446A1 (en) * 2013-03-21 2014-09-25 Freescale Semiconductor, Inc. Data processing device, method of reporting predicate values, and data carrier
US20160196140A1 (en) * 2013-03-21 2016-07-07 Freescale Semiconductor, Inc. Data processing device, method of reporting predicate values, and data carrier
US20160188334A1 (en) * 2014-12-24 2016-06-30 Intel Corporation Hardware apparatuses and methods relating to elemental register accesses
WO2017021269A1 (en) * 2015-07-31 2017-02-09 Arm Limited Vector processing using loops of dynamic vector length

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117093268A (zh) * 2023-10-19 2023-11-21 超睿科技(长沙)有限公司 一种向量处理方法、系统、设备及存储介质
CN117093268B (zh) * 2023-10-19 2024-01-30 超睿科技(长沙)有限公司 一种向量处理方法、系统、设备及存储介质

Also Published As

Publication number Publication date
JP2021515929A (ja) 2021-06-24
GB2571527B (en) 2020-09-16
KR20200124251A (ko) 2020-11-02
WO2019166772A1 (en) 2019-09-06
JP7377208B2 (ja) 2023-11-09
EP3759592B1 (en) 2022-04-13
GB201803250D0 (en) 2018-04-11
US11354126B2 (en) 2022-06-07
US20210034362A1 (en) 2021-02-04
EP3759592A1 (en) 2021-01-06
GB2571527A (en) 2019-09-04

Similar Documents

Publication Publication Date Title
EP3362889B1 (en) Move prefix instruction
US9740486B2 (en) Register files for storing data operated on by instructions of multiple widths
US9804851B2 (en) Operand size control
US10514919B2 (en) Data processing apparatus and method for processing vector operands
US10599428B2 (en) Relaxed execution of overlapping mixed-scalar-vector instructions
US11307855B2 (en) Register-provided-opcode instruction
KR20180035211A (ko) 벡터 산술 명령
CN111742296A (zh) 数据处理
KR100974401B1 (ko) 주소 레지스터의 내용을 스와핑하기 위한 방법 및 장치
US10409602B2 (en) Vector operand bitsize control
JP2020530151A (ja) データ処理装置における連続値の照合
US11269649B2 (en) Resuming beats of processing of a suspended vector instruction based on beat status information indicating completed beats
CN108633308B (zh) 用于将客户指令转换为至少一个主机指令的系统和方法
CN116848506A (zh) 存储器复制大小确定指令和数据传送指令

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination