Patents by Inventor Michael G. Perkins

Michael G. Perkins has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 10241793
    Abstract: In one particular example, this disclosure provides an efficient mechanism to determine the degree of parallelization possible for a loop in the presence of possible memory aliases that cannot be resolved at compile-time. Hardware instructions are provided that test memory addresses at run-time and set a mode or register that enables a single instance of a loop to run the maximum number of SIMD (Single Instruction, Multiple Data) lanes to run in parallel that obey the semantics of the original scalar loop. Other hardware features that extend applicability or performance of such instructions are enumerated.
    Type: Grant
    Filed: March 7, 2014
    Date of Patent: March 26, 2019
    Assignee: ANALOG DEVICES GLOBAL
    Inventors: Michael G. Perkins, John L. Redford, Kaushal Sanghai
  • Patent number: 9557993
    Abstract: The present disclosure provides a processor, and associated method, for performing parallel processing within a register. An exemplary processor may include a processing element having a compute unit and a register file. The register file includes a register that is divisible into lanes for parallel processing. The processor may further include a mask register and a predicate register. The mask register and the predicate register respective include a number of mask bits and predicate bits equal to a maximum number of divisible lanes of the register. A state of the mask bits and predicate bits is set to respectively achieve enabling/disabling of the lanes from executing an instruction and conditional performance of an operation defined by the instruction. Further, the processor is operable to perform a reduction operation across the lanes of the processing element and/or generate an address for each of the lanes of the processing element.
    Type: Grant
    Filed: January 10, 2013
    Date of Patent: January 31, 2017
    Assignee: Analog Devices Global
    Inventors: Kaushal Sanghai, Michael G. Perkins, Andrew J. Higham
  • Patent number: 9460016
    Abstract: In an example, a system and method are provided for predicting in which way a requested memory address is most likely to be held in a multi-way cache, based on the last way accessed by the specified address register if available. If not available, then the system may determine that no best prediction is available. In that case, each way is read, and the superfluous values are disregarded, or a cache fill is performed as necessary. In certain embodiments, only a portion of the least significant bits of an add operation are used for way prediction in base-plus-offset addressing modes. This enables the decision to be made before the full-width add is complete, so that the clock cycle length is not unnecessarily lengthened by the prediction operation.
    Type: Grant
    Filed: June 16, 2014
    Date of Patent: October 4, 2016
    Assignee: ANALOG DEVICES GLOBAL HAMILTON
    Inventors: John L. Redford, Michael G. Perkins
  • Patent number: 9342306
    Abstract: According to an example embodiment, a processor such as a digital signal processor (DSP), is provided with a register acting as a predicate counter. The predicate counter may include more than two useful values, and in addition to acting as a condition for executing an instruction, may also keep track of nesting levels within a loop or conditional branch. In some cases, the predicate counter may be configured to operate in single-instruction, multiple data (SIMD) mode, or SIMD-within-a-register (SWAR) mode.
    Type: Grant
    Filed: August 9, 2013
    Date of Patent: May 17, 2016
    Assignee: ANALOG DEVICES GLOBAL
    Inventors: Andrew J. Higham, Boris Lerner, Kaushal Sanghai, Michael G. Perkins, John L. Redford, Michael S. Allen
  • Publication number: 20150363318
    Abstract: In an example, a system and method are provided for predicting in which way a requested memory address is most likely to be held in a multi-way cache, based on the last way accessed by the specified address register if available. If not available, then the system may determine that no best prediction is available. In that case, each way is read, and the superfluous values are disregarded, or a cache fill is performed as necessary. In certain embodiments, only a portion of the least significant bits of an add operation are used for way prediction in base-plus-offset addressing modes. This enables the decision to be made before the full-width add is complete, so that the clock cycle length is not unnecessarily lengthened by the prediction operation.
    Type: Application
    Filed: June 16, 2014
    Publication date: December 17, 2015
    Applicant: ANALOG DEVICES TECHNOLOGY
    Inventors: JOHN L. REDFORD, MICHAEL G. PERKINS
  • Patent number: 9201828
    Abstract: The present disclosure provides a memory interconnection architecture for a processor, such as a vector processor, that performs parallel operations. An example processor may include a compute array that includes processing elements; a memory that includes memory banks; and a memory interconnect network architecture that interconnects the compute array to the memory. In an example, the memory interconnect network architecture includes a switch-based interconnect network and a non-switch based interconnect network. The processor is configured to synchronously load a first data operand to each of the processing elements via the switch-based interconnect network and a second data operand to each of the processing elements via the non-switch-based interconnect network.
    Type: Grant
    Filed: December 19, 2012
    Date of Patent: December 1, 2015
    Assignee: Analog Devices, Inc.
    Inventors: Kaushal Sanghai, Boris Lerner, Michael G. Perkins, John L. Redford
  • Patent number: 9038042
    Abstract: Loop instructions are analyzed and assigned stage numbers based on dependencies between them and machine resources available. The loop instructions are selectively executed based on their stage numbers, thereby eliminating the need for explicit loop set-up and tear-down instructions. On a Single Instruction, Multiple Data machine, the final instance of each instruction may be executed on a subset of the processing elements or vector elements, dependent on the number of iterations of the original loop.
    Type: Grant
    Filed: June 29, 2012
    Date of Patent: May 19, 2015
    Assignee: ANALOG DEVICES, INC.
    Inventors: Michael G. Perkins, Andrew J. Higham
  • Publication number: 20140281435
    Abstract: In one particular example, this disclosure provides an efficient mechanism to determine the degree of parallelization possible for a loop in the presence of possible memory aliases that cannot be resolved at compile-time. Hardware instructions are provided that test memory addresses at run-time and set a mode or register that enables a single instance of a loop to run the maximum number of SIMD (Single Instruction, Multiple Data) lanes to run in parallel that obey the semantics of the original scalar loop. Other hardware features that extend applicability or performance of such instructions are enumerated.
    Type: Application
    Filed: March 7, 2014
    Publication date: September 18, 2014
    Applicant: ANALOG DEVICES TECHNOLOGY
    Inventors: Michael G. Perkins, John L. Redford, Kaushal Sanghai
  • Publication number: 20140115302
    Abstract: According to an example embodiment, a processor such as a digital signal processor (DSP), is provided with a register acting as a predicate counter. The predicate counter may include more than two useful values, and in addition to acting as a condition for executing an instruction, may also keep track of nesting levels within a loop or conditional branch. In some cases, the predicate counter may be configured to operate in single-instruction, multiple data (SIMD) mode, or SIMD-within-a-register (SWAR) mode.
    Type: Application
    Filed: August 9, 2013
    Publication date: April 24, 2014
    Applicant: ANALOG DEVICES TECHNOLOGY
    Inventors: Andrew J. Higham, Boris Lemer, Kaushal Sanghai, Michael G. Perkins, John L. Redford, Michael S. Allen
  • Publication number: 20140115301
    Abstract: The present disclosure provides a processor, and associated method, for performing parallel processing within a register. An exemplary processor may include a processing element having a compute unit and a register file. The register file includes a register that is divisible into lanes for parallel processing. The processor may further include a mask register and a predicate register. The mask register and the predicate register respective include a number of mask bits and predicate bits equal to a maximum number of divisible lanes of the register. A state of the mask bits and predicate bits is set to respectively achieve enabling/disabling of the lanes from executing an instruction and conditional performance of an operation defined by the instruction. Further, the processor is operable to perform a reduction operation across the lanes of the processing element and/or generate an address for each of the lanes of the processing element.
    Type: Application
    Filed: January 10, 2013
    Publication date: April 24, 2014
    Applicant: Analog Devices Technology
    Inventors: Kaushal Sanghai, Michael G. Perkins, Andrew J. Higham
  • Publication number: 20140115224
    Abstract: The present disclosure provides a memory interconnection architecture for a processor, such as a vector processor, that performs parallel operations. An example processor may include a compute array that includes processing elements; a memory that includes memory banks; and a memory interconnect network architecture that interconnects the compute array to the memory. In an example, the memory interconnect network architecture includes a switch-based interconnect network and a non-switch based interconnect network. The processor is configured to synchronously load a first data operand to each of the processing elements via the switch-based interconnect network and a second data operand to each of the processing elements via the non-switch-based interconnect network.
    Type: Application
    Filed: December 19, 2012
    Publication date: April 24, 2014
    Applicant: Analog Devices, Inc.
    Inventors: Kaushal Sanghai, Boris Lerner, Michael G. Perkins, John L. Redford
  • Publication number: 20140007061
    Abstract: Loop instructions are analyzed and assigned stage numbers based on dependencies between them and machine resources available. The loop instructions are selectively executed based on their stage numbers, thereby eliminating the need for explicit loop set-up and tear-down instructions. On a Single Instruction, Multiple Data machine, the final instance of each instruction may be executed on a subset of the processing elements or vector elements, dependent on the number of iterations of the original loop.
    Type: Application
    Filed: June 29, 2012
    Publication date: January 2, 2014
    Applicant: Analog Devices, Inc.
    Inventors: Michael G. Perkins, Andrew J. Higham
  • Patent number: 6188729
    Abstract: A video compression system comprises a control computer 52; a plurality of encoders 54, 56, 58; a plurality of encoder buffers 60, 62, 64; a multiplexor 66; a data channel 70; a demultiplexor 80; a decoder buffer 82; a decoder 84; and display 86. The control computer controls the encoders and the multiplexor 66 to avoid overflows and underflows of data provided to the decoder buffer 82.
    Type: Grant
    Filed: April 1, 1993
    Date of Patent: February 13, 2001
    Assignee: Scientific-Atlanta, Inc.
    Inventor: Michael G. Perkins
  • Patent number: 5859660
    Abstract: A method and apparatus for non-seamless splicing of audio-video transport streams configured in accordance with MPEG-2 or other suitable techniques. A first transport stream is to be spliced with a second transport stream at a splice point. The first stream is configured such that the final first stream frame to be displayed will be a black frame or will have another suitable characteristic. Null packets are then delivered in place of the first stream transport packets for a predetermined period of time after the splice point. The predetermined time is generally greater than the sum of the splice decoding delay associated with the splice point and the maximum frame duration in the first stream. The transport packets of the second stream are then delivered. Null packets may be again delivered for a period of time sufficient to allow the final frame of the second stream to be displayed.
    Type: Grant
    Filed: February 29, 1996
    Date of Patent: January 12, 1999
    Inventors: Michael G. Perkins, William L. Helms
  • Patent number: 5828414
    Abstract: A method and apparatus for reducing program clock reference (PCR) jitter in transport packets of a transport stream compliant with MPEG-2 or another suitable audio-video encoding standard. The PCRs from a given single program transport stream (SPTS) of a multi-program transport stream are processed in a phase-locked loop (PLL) to generate dejittered PCRs for that SPTS. The PLL for a given SPTS receives as inputs the PCRs from that SPTS and a cycle count for each PCR indicative of the number of asynchronous clock cycles counted since the previous PCR. The PLL generates a given dejittered PCR as a function of the previous dejittered PCR, the cycle count for the given PCR, and a clock frequency mismatch estimate for the given program clock. The clock frequency mismatch estimate is generated by filtering a sequence of jitter estimates, each corresponding to the difference between a previous PCR and its corresponding dejittered PCR.
    Type: Grant
    Filed: February 23, 1996
    Date of Patent: October 27, 1998
    Assignee: Divicom, Inc.
    Inventors: Michael G. Perkins, Thomas Lookabaugh
  • Patent number: 5420639
    Abstract: Methods for compressing data in a system employing vector quantization (VQ) and Huffman coding comprise: First, quantizing an input vector by representing the input vector with a VQ codevector selected from a VQ codebook partitioned into subsets, wherein each subset comprises codevectors and each codevector is stored at a corresponding address in the VQ codebook. Next, generating a rate dependent Huffman codeword for the selected codevector, wherein the rate dependent Huffman codeword identifies the subset of the VQ codebook in which the selected codevector is stored. And finally, generating a substantially rate independent Huffman codeword for the selected codevector, wherein the substantially rate independent Huffman codeword identifies a particular VQ codevector within the subset identified by the rate dependent Huffman codeword.
    Type: Grant
    Filed: April 1, 1993
    Date of Patent: May 30, 1995
    Assignee: Scientific-Atlanta, Inc.
    Inventor: Michael G. Perkins