Auto multi-threading in macroscalar compilers
    11.
    发明授权
    Auto multi-threading in macroscalar compilers 有权
    宏数据编译器中的自动多线程

    公开(公告)号:US09529574B2

    公开(公告)日:2016-12-27

    申请号:US14532846

    申请日:2014-11-04

    Applicant: Apple Inc.

    Inventor: Jeffry E. Gonion

    CPC classification number: G06F8/433 G06F8/445 G06F8/447

    Abstract: System and methods for the parallelization of software applications are described. In some embodiments, a compiler may automatically identify within source code dependencies of a function called by another function. A persistent database may be generated to store identified dependencies. When calls the function are encountered within the source code, the persistent database may be checked, and a parallelized implementation of the function may be employed dependent upon the dependency indicated in the persistent database.

    Abstract translation: 描述了软件应用并行化的系统和方法。 在一些实施例中,编译器可以自动识别由另一功能调用的函数的源代码依赖性。 可以生成持久数据库以存储所识别的依赖性。 当在源代码中遇到调用函数时,可以检查持久性数据库,并且可以依赖于持久性数据库中指示的依赖性来采用该函数的并行实现。

    Running shift for divide instructions for processing vectors
    13.
    发明授权
    Running shift for divide instructions for processing vectors 有权
    运行移位用于处理向量的除法指令

    公开(公告)号:US09317283B2

    公开(公告)日:2016-04-19

    申请号:US13717480

    申请日:2012-12-17

    Applicant: Apple Inc.

    Inventor: Jeffry E. Gonion

    CPC classification number: G06F9/30032 G06F8/4441 G06F9/3001 G06F9/30036

    Abstract: A processor may generate a result vector when executing a RunningShiftForDivide1P or RunningShiftForDivide2P instruction. For example, upon executing a RunningShiftForDivide1P/2P instruction, the processor may receive a first input vector and a second input vector. The processor then may record a base value from an element at a key element position in the first input vector. Next, when generating the result vector, for each active element in the result vector to the right of the key element position, the processor may generate a shifted base value using shift values from the second input vector. The processor then may correct the shifted base value when a predetermined condition is met. Next, the processor may set the element of the result vector equal to the shifted base value.

    Abstract translation: 执行RunningShiftForDivide1P或RunningShiftForDivide2P指令时,处理器可能会生成结果向量。 例如,在执行RunningShiftForDivide1P / 2P指令时,处理器可以接收第一输入向量和第二输入向量。 然后,处理器可以从第一输入向量中的键元素位置处的元素记录基值。 接下来,当生成结果向量时,对于结果向量中的关键元素位置右侧的每个活动元素,处理器可以使用来自第二输入向量的移位值来生成移位的基值。 然后,当满足预定条件时,处理器可以校正偏移的基值。 接下来,处理器可以将结果向量的元素设置为移位的基本值。

    Conditional Termination and Conditional Termination Predicate Instructions
    14.
    发明申请
    Conditional Termination and Conditional Termination Predicate Instructions 审中-公开
    条件终止和条件终止谓词说明

    公开(公告)号:US20160092398A1

    公开(公告)日:2016-03-31

    申请号:US14704421

    申请日:2015-05-05

    Applicant: Apple Inc.

    Abstract: In an embodiment, a processor may implement a vector instruction set including a conditional termination instruction (CTerm). The CTerm instruction may take two source operands and compare them according to a specified condition, updating flags as a result of the instruction. The flags may be used to affect predicate vector generation to control vectorized loop execution. In an embodiment, the vector instruction set may also include a conditional termination predicate instruction (CTPred). The CTPred instruction may take a pair of predicate vectors and a set of flags as operands, and may generate: a predicate vector to control parallel processing of vector elements, and a set of flags to control further loop processing. Either instruction may be used to efficiently manage vector loops in various embodiments, or the instructions may be used together.

    Abstract translation: 在一个实施例中,处理器可以实现包括条件终止指令(CTerm)的向量指令集。 CTerm指令可以采用两个源操作数,并根据指定的条件进行比较,作为指令的结果更新标志。 标志可用于影响谓词向量生成以控制向量化循环执行。 在一个实施例中,向量指令集还可以包括条件终止谓词指令(CTPred)。 CTPred指令可以采用一对谓词向量和一组标志作为操作数,并且可以生成:用于控制向量元素的并行处理的谓词向量,以及用于控制进一步的循环处理的一组标志。 在各种实施例中可以使用任一指令来有效地管理向量循环,或者可以一起使用指令。

    Conditional Stop Instruction with Accurate Dependency Detection
    15.
    发明申请
    Conditional Stop Instruction with Accurate Dependency Detection 有权
    具有精确依赖关系检测的条件停止指令

    公开(公告)号:US20160092218A1

    公开(公告)日:2016-03-31

    申请号:US14688043

    申请日:2015-04-16

    Applicant: Apple Inc.

    Inventor: Jeffry E. Gonion

    Abstract: In an embodiment, a processor may implement a conditional stop instruction that includes a first predicate vector identifying the active elements of the instruction, a second predicate vector indicating true and false results for a conditional expression within a loop that is being vectorized, and a source operand specifying which combinations in the true and false results may indicate a dependency. The conditional stop instruction may generate a vector result indicating vector elements that have a dependency on a prior vector element, as well as an identification of which element position the dependency is on. More particularly, dependencies may be detected only on active elements as indicated by the first predicate vector. False dependencies that may occur due to inactive elements may be avoided, which may improve performance and/or provide for correct functional operation.

    Abstract translation: 在一个实施例中,处理器可以实现条件停止指令,该条件停止指令包括标识指令的有效元素的第一谓词向量,指示正向量化的循环内的条件表达式的真实和错误结果的第二谓词向量,以及源 指定真和假结果中的哪些组合可以指示依赖性的操作数。 条件停止指令可以生成指示对先前向量元素具有依赖性的向量元素的向量结果,以及依赖性所依赖的元素位置的标识。 更具体地,可以仅在由第一谓词向量指示的活动元素上检测依赖性。 可能会避免可能由于非活动元素而发生的虚假依赖性,这可能会改善性能和/或提供正确的功能操作。

    Vector Hazard Check Instruction with Reduced Source Operands
    16.
    发明申请
    Vector Hazard Check Instruction with Reduced Source Operands 有权
    带有减少源操作数的矢量危险检查指令

    公开(公告)号:US20150089188A1

    公开(公告)日:2015-03-26

    申请号:US14034658

    申请日:2013-09-24

    Applicant: Apple Inc.

    CPC classification number: G06F9/30036 G06F9/30021 G06F9/3004 G06F9/3838

    Abstract: In an embodiment, a processor may implement a vector hazard check instruction to detect dependencies between vector memory operations based on the addresses of the vectors accessed by the vector memory operations. The addresses may be specified via a base address and a vector of indexes for each vector. In an embodiment, one of the base addresses may be an implied (or assumed) zero address, reducing the number of operands of the hazard check instruction.

    Abstract translation: 在一个实施例中,处理器可以实施向量危险检查指令,以基于由向量存储器操作所访问的向量的地址来检测向量存储器操作之间的依赖性。 可以通过基地址和每个向量的索引向量来指定地址。 在一个实施例中,基地址之一可以是隐含(或假设的)零地址,减少了危险检查指令的操作数。

    INCREASING MACROSCALAR INSTRUCTION LEVEL PARALLELISM
    17.
    发明申请
    INCREASING MACROSCALAR INSTRUCTION LEVEL PARALLELISM 有权
    增加宏观指标水平并行

    公开(公告)号:US20140359253A1

    公开(公告)日:2014-12-04

    申请号:US13904660

    申请日:2013-05-29

    Applicant: Apple Inc.

    Inventor: Jeffry E. Gonion

    Abstract: A processor may include a vector functional unit that supports concurrent operations on multiple data elements of a maximum element size. The functional unit may also support concurrent execution of multiple distinct vector program instructions, where the multiple vector instructions each operate on multiple data elements of less than the maximum element size.

    Abstract translation: 处理器可以包括支持对最大元素大小的多个数据元素的并行操作的向量功能单元。 功能单元还可以支持并行执行多个不同向量程序指令,其中多个向量指令各自对小于最大元素大小的多个数据元素进行操作。

    MEMORY CONTROLLER MAPPING ON-THE-FLY
    18.
    发明申请
    MEMORY CONTROLLER MAPPING ON-THE-FLY 审中-公开
    内存控制器映射

    公开(公告)号:US20140325173A1

    公开(公告)日:2014-10-30

    申请号:US14331336

    申请日:2014-07-15

    Applicant: Apple Inc.

    Abstract: Systems, methods, and devices for dynamically mapping and remapping memory when a portion of memory is activated or deactivated are provided. In accordance with an embodiment, an electronic device may include several memory banks, one or more processors, and a memory controller. The memory banks may store data in hardware memory locations and may be independently deactivated. The processors may request the data using physical memory addresses, and the memory controller may translate the physical addresses to hardware memory locations. The memory controller may use a first memory mapping function when a first number of memory banks is active and a second memory mapping function when a second number is active. When one of the memory banks is to be deactivated, the memory controller may copy data from only the memory bank that is to be deactivated to the active remainder of memory banks.

    Abstract translation: 提供了当存储器的一部分被激活或去激活时用于动态地映射和重映射存储器的系统,方法和设备。 根据实施例,电子设备可以包括几个存储器组,一个或多个处理器和存储器控制器。 存储体可以将数据存储在硬件存储器位置中,并且可以被独立地去激活。 处理器可以使用物理存储器地址请求数据,并且存储器控制器可以将物理地址转换为硬件存储器位置。 当第二数量有效时,存储器控制器可以使用第一存储器组的第一存储器映射功能和第二存储器映射功能。 当存储器组中的一个被禁用时,存储器控制器可以将数据仅从要被去激活的存储器组复制到存储体的有效剩余部分。

    ENHANCED PREDICATE REGISTERS
    19.
    发明申请
    ENHANCED PREDICATE REGISTERS 有权
    增强预测登记

    公开(公告)号:US20140289495A1

    公开(公告)日:2014-09-25

    申请号:US14218419

    申请日:2014-03-18

    Applicant: Apple Inc.

    Inventor: Jeffry E. Gonion

    Abstract: Systems, apparatuses and methods for utilizing enhanced predicate registers which specify the element width and which elements are to be processed. The predicate size is dynamic, depending on the contents of the enhanced predicate register used for an instruction rather than being a static quality of a specific instruction. Specifying the element size in the enhanced predicate registers results in fewer instructions in an instruction set.

    Abstract translation: 用于使用增强谓词寄存器的系统,装置和方法,其指定元素宽度和要处理的元素。 谓词大小是动态的,这取决于用于指令的增强谓词寄存器的内容,而不是特定指令的静态质量。 在增强谓词寄存器中指定元素大小导致指令集中的指令更少。

    PREDICTION OPTIMIZATIONS FOR MACROSCALAR VECTOR PARTITIONING LOOPS
    20.
    发明申请
    PREDICTION OPTIMIZATIONS FOR MACROSCALAR VECTOR PARTITIONING LOOPS 有权
    宏观矢量分类器的预测优化

    公开(公告)号:US20140025938A1

    公开(公告)日:2014-01-23

    申请号:US14035467

    申请日:2013-09-24

    Applicant: Apple Inc.

    Inventor: Jeffry E. Gonion

    CPC classification number: G06F9/30058 G06F9/30072 G06F9/3842 G06F9/3848

    Abstract: A method of predicting a backward conditional branch instruction used in a vector partitioning loop includes detecting the first conditional branch instruction that occurs after consumption of a dependency index vector by a predicate generating instruction. The dependency index vector includes information indicative of a number of iterations of the vector partitioning loop, and the conditional branch instruction may branch backwards when taken. The conditional branch instruction may then be predicted to be taken a number of times that is determined by the dependency index vector.

    Abstract translation: 一种预测在向量分割循环中使用的反向条件分支指令的方法包括:通过谓词生成指令检测消耗依赖性索引向量后出现的第一条件分支指令。 依赖性索引向量包括指示向量分割循环的迭代次数的信息,并且条件分支指令可以在采取时向后分支。 然后可以将条件分支指令预测为由依赖性索引向量确定的次数。

Patent Agency Ranking