Outer Product Engine
    31.
    发明申请

    公开(公告)号:US20180074824A1

    公开(公告)日:2018-03-15

    申请号:US15264002

    申请日:2016-09-13

    Applicant: Apple Inc.

    Abstract: In an embodiment, an outer product engine is configured to perform outer product operations. The outer product engine may perform numerous multiplication operations in parallel on input vectors, in an embodiment, generating a resulting outer product matrix. In an embodiment, the outer product engine may be configured to accumulate results in a result matrix, performing fused multiply add (FMA) operations to produce the outer product elements (multiply) and to accumulate the outer product elements with previous elements from the result matrix memory (add). A processor may fetch outer product instructions, and may transmit the instructions to the outer product engine when the instructions become non-speculative in an embodiment. The processor may be configured to retire the outer product instructions responsive to transmitting them to the outer product engine.

    COMPRESSION OF IMAGE ASSETS
    32.
    发明申请

    公开(公告)号:US20180054630A1

    公开(公告)日:2018-02-22

    申请号:US15242276

    申请日:2016-08-19

    Applicant: Apple Inc.

    Abstract: A hybrid compression method for compressing images is provided. The method identifies a first set of image components to be compressed by a lossy compression format and a second set of image components to be compressed by a lossless compression format. The method then encodes the first set of image components according to the lossy compression format and encodes the second set of image components according to the lossless compression format. The method then generates a compressed structure that includes the lossy-compressed first set of image components and the lossless-compressed second set of image components.

    Zero coder compression
    33.
    发明授权

    公开(公告)号:US12105953B2

    公开(公告)日:2024-10-01

    申请号:US17585479

    申请日:2022-01-26

    Applicant: Apple Inc.

    CPC classification number: G06F3/0608 G06F3/064 G06F3/0679

    Abstract: The subject technology groups received data in data blocks having a predetermined number of bytes. For each received data block, a compressed data block is written to an output buffer. The compressed data block includes a mask block having a same number of bits as the predetermined number, and a subsequent block. The mask block includes in a same order as bytes within the corresponding data block, a zero corresponding to a zero-byte within the data block, and a one corresponding to each non-zero byte within the data block. The subsequent block includes non-zero bytes within the corresponding data block in a same order as the non-zero bytes within the data block.

    Compression assist instructions
    34.
    发明授权

    公开(公告)号:US11537399B2

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

    申请号:US17373144

    申请日:2021-07-12

    Applicant: Apple Inc.

    Abstract: In an embodiment, a processor supports one or more compression assist instructions which may be employed in compression software to improve the performance of the processor when performing compression/decompression. That is, the compression/decompression task may be performed more rapidly and consume less power when the compression assist instructions are employed then when they are not. In some cases, the cost of a more effective, more complex compression algorithm may be reduced to the cost of a less effective, less complex compression algorithm.

    AUTHENTICATED AND ENCRYPTED ARCHIVES

    公开(公告)号:US20220092208A1

    公开(公告)日:2022-03-24

    申请号:US17242105

    申请日:2021-04-27

    Applicant: Apple Inc.

    Abstract: Embodiments described herein provide a compressed container format that enables the container to be decrypted and decompressed in a streaming manner. One embodiment provides a container format for encrypted archives in which data is compressed and encrypted in a segmented manner. A segment of the archive can be decompressed, decrypted, and checked for integrity before the entire archive is received. Metadata for the encrypted archive is also encrypted to secure details of data stored within the archive.

    Computation engine with upsize/interleave and downsize/deinterleave options

    公开(公告)号:US10970078B2

    公开(公告)日:2021-04-06

    申请号:US15946719

    申请日:2018-04-05

    Applicant: Apple Inc.

    Abstract: In an embodiment, a computation engine may perform computations on input vectors having vector elements of a first precision and data type. The computation engine may convert the vector elements from the first precision to a second precision and may also interleave the vector elements as specified by an instruction issued by the processor to the computation engine. The interleave may be based on a ratio of a result precision and the second precision. An extract instruction may be supported to extract results from the computations and convert and deinterleave the vector elements to provide a compact result in a desired order.

    Software updating
    37.
    发明授权

    公开(公告)号:US10860310B2

    公开(公告)日:2020-12-08

    申请号:US14941229

    申请日:2015-11-13

    Applicant: Apple Inc.

    Abstract: A novel software updating method is provided. A target file is divided into segments, where some segments are updated by patching, while other segments are updated by archiving. The segmentation of the update allows very large files such as DYLD shared caches to be patched in-place, i.e., by using free space available within the file to perform patching rather than requiring enough free space on disk to store both the new version and the old version of the file. The segmentation of the update also allows each segment to be updated individually by the most optimal update method (copy, patch, or archive) so that the size of the update file can be minimized.

    Computation engine with extract instructions to minimize memory access

    公开(公告)号:US10831488B1

    公开(公告)日:2020-11-10

    申请号:US16105783

    申请日:2018-08-20

    Applicant: Apple Inc.

    Abstract: In an embodiment, a computation engine may offload work from a processor (e.g. a CPU) and efficiently perform computations such as those used in LSTM and other workloads at high performance. In an embodiment, the computation engine may perform computations on input vectors from input memories in the computation engine, and may accumulate results in an output memory within the computation engine. The input memories may be loaded with initial vector data from memory, incurring the memory latency that may be associated with reading the operands. Compute instructions may be performed on the operands, generating results in an output memory. One or more extract instructions may be supported to move data from the output memory to the input memory, permitting additional computation on the data in the output memory without moving the results to main memory.

    Computation Engine that Operates in Matrix and Vector Modes

    公开(公告)号:US20200348934A1

    公开(公告)日:2020-11-05

    申请号:US16928752

    申请日:2020-07-14

    Applicant: Apple Inc.

    Abstract: In an embodiment, a computation engine is configured to perform vector multiplications, producing either vector results or outer product (matrix) results. The instructions provided to the computation engine specify a matrix mode or a vector mode for the instructions. The computation engine performs the specified operation. The computation engine may perform numerous computations in parallel, in an embodiment. In an embodiment, the instructions may also specify an offset with the input memories, providing additional flexibility in the location of operands. More particularly, the computation engine may be configured to perform numerous multiplication operations in parallel and to accumulate results in a result memory, performing multiply-accumulate operations for each matrix/vector element in the targeted locations of the output memory.

    Compression of image assets
    40.
    发明授权

    公开(公告)号:US10652583B2

    公开(公告)日:2020-05-12

    申请号:US15242276

    申请日:2016-08-19

    Applicant: Apple Inc.

    Abstract: A hybrid compression method for compressing images is provided. The method identifies a first set of image components to be compressed by a lossy compression format and a second set of image components to be compressed by a lossless compression format. The method then encodes the first set of image components according to the lossy compression format and encodes the second set of image components according to the lossless compression format. The method then generates a compressed structure that includes the lossy-compressed first set of image components and the lossless-compressed second set of image components.

Patent Agency Ranking