Patents by Inventor Parviz Palangpour

Parviz Palangpour 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: 11029949
    Abstract: A hardware processing unit is provided. The hardware processing unit includes: an accumulator; a multiplier-adder receives first and second factors and receives an addend, the multiplier-adder generates a sum of the addend and a product of the first and second factors and provides the sum; a first multiplexer receives a first operand, a positive one, and a negative one and selects one of them for provision as the first factor to the multiplier-adder; a second multiplexer receives a second operand, a positive one, and a negative one and selects one of them for provision as the second factor to the multiplier-adder; a third multiplexer, having an output, that receives the first operand and the second operand and selects one of them for provision on its output; and a fourth multiplexer receives the third multiplexer output and the sum and selects one of them for provision to the accumulator.
    Type: Grant
    Filed: April 10, 2018
    Date of Patent: June 8, 2021
    Assignee: SHANGHAI ZHAOXIN SEMICONDUCTOR CO., LTD.
    Inventors: G. Glenn Henry, Douglas R. Reed, Kim C Houck, Parviz Palangpour
  • Patent number: 10586148
    Abstract: A memory holds D rows of N words and receives an address having log2 D bits and an extra bit. Each of N processing units (PU) of index J has first and second registers, an accumulator, an arithmetic unit that performs an operation thereon to accumulate a result, and multiplexing logic receiving memory word J, and for PUs 0 to (N/2)?1 also memory word J+(N/2). In a first mode, the multiplexing logic of PUs 0 to N?1 selects word J to output to the first register. In a second mode: when the extra bit is a zero, the multiplexing logic of PUs 0 to (N/2)?1 selects word J to output to the first register, and when the extra bit is a one, the multiplexing logic of PUs 0 through (N/2)?1 selects word J+(N/2) to output to the first register.
    Type: Grant
    Filed: December 31, 2016
    Date of Patent: March 10, 2020
    Assignee: VIA ALLIANCE SEMICONDUCTOR CO., LTD.
    Inventors: G. Glenn Henry, Kim C. Houck, Parviz Palangpour
  • Patent number: 10565492
    Abstract: First/second memories hold rows of N weight/data words. Each of N processing units (PU) of index J have a register, an accumulator having an output, an arithmetic unit that performs an operation thereon to accumulate a result, the first input receives the output of the accumulator, the second input receives a respective first memory weight word, the third input receives a respective data word output by the register, and multiplexing logic receives a respective second memory data word and a data word output by the register of PU J?1 and outputs a selected data word to the register. PU J?1 for PU 0 is PU N?1. The multiplexing logic of PU N/4 also receives the data word output by the register of PU (3N/4)?1. The multiplexing logic of PU 3N/4 also receives the data word output by the register of PU (N/4)?1.
    Type: Grant
    Filed: December 31, 2016
    Date of Patent: February 18, 2020
    Assignee: VIA ALLIANCE SEMICONDUCTOR CO., LTD.
    Inventors: G. Glenn Henry, Kim C. Houck, Parviz Palangpour
  • Patent number: 10565494
    Abstract: First/second memories hold rows of N weight/data words. Each of N processing units (PU) of index J have a register, an accumulator having an output, an arithmetic unit that performs an operation thereon to accumulate a result, the first input receives the output of the accumulator, the second input receives a respective first memory weight word, the third input receives a respective data word output by the register, and multiplexing logic receives a respective second memory data word and a data word output by the register of PU J?1 and outputs a selected data word to the register. PU J?1 for PU 0 is PU N?1. The multiplexing logic of PU 0 also receives the data word output by the register of PU (N/2)?1. The multiplexing logic of PU N/2 also receives the data word output by the register of PU N?1.
    Type: Grant
    Filed: December 31, 2016
    Date of Patent: February 18, 2020
    Assignee: VIA ALLIANCE SEMICONDUCTOR CO., LTD.
    Inventors: G. Glenn Henry, Kim C. Houck, Parviz Palangpour
  • Patent number: 10140574
    Abstract: First/second memories hold rows of N weight/data words. The first memory address has log2 W bits and an extra bit. Each of N processing units (PU) of index J has first and second registers, an accumulator, an arithmetic unit performs an operation thereon to accumulate a result, first multiplexing logic for PUs 0 through (N/2)?1 receives first memory weight words J and J+(N/2) and for PUs N/2 through N?1 receives first memory weight words J and J?(N/2) and outputs a selected weight word to the first register, and second multiplexing logic receives second memory data word J and data word output by the second register of PU J?1 and outputs a selected data word to the second register. PU 0 second multiplexing logic also receives PU (N/2)?1 second register data word, and PU N/2 second multiplexing logic also receives PU N?1 second register data word.
    Type: Grant
    Filed: December 31, 2016
    Date of Patent: November 27, 2018
    Assignee: VIA ALLIANCE SEMICONDUCTOR CO., LTD
    Inventors: G. Glenn Henry, Kim C. Houck, Parviz Palangpour
  • Publication number: 20180225116
    Abstract: A hardware processing unit is provided. The hardware processing unit includes: an accumulator; a multiplier-adder receives first and second factors and receives an addend, the multiplier-adder generates a sum of the addend and a product of the first and second factors and provides the sum; a first multiplexer receives a first operand, a positive one, and a negative one and selects one of them for provision as the first factor to the multiplier-adder; a second multiplexer receives a second operand, a positive one, and a negative one and selects one of them for provision as the second factor to the multiplier-adder; a third multiplexer, having an output, that receives the first operand and the second operand and selects one of them for provision on its output; and a fourth multiplexer receives the third multiplexer output and the sum and selects one of them for provision to the accumulator.
    Type: Application
    Filed: April 10, 2018
    Publication date: August 9, 2018
    Inventors: G. Glenn HENRY, Douglas R. Reed, Kim C. Houck, Parviz Palangpour
  • Publication number: 20180189633
    Abstract: First/second memories hold rows of N weight/data words. Each of N processing units (PU) of index J have a register, an accumulator having an output, an arithmetic unit that performs an operation thereon to accumulate a result, the first input receives the output of the accumulator, the second input receives a respective first memory weight word, the third input receives a respective data word output by the register, and multiplexing logic receives a respective second memory data word and a data word output by the register of PU J?1 and outputs a selected data word to the register. PU J?1 for PU 0 is PU N?1. The multiplexing logic of PU N/4 also receives the data word output by the register of PU (3N/4)?1. The multiplexing logic of PU 3N/4 also receives the data word output by the register of PU (N/4)?1.
    Type: Application
    Filed: December 31, 2016
    Publication date: July 5, 2018
    Inventors: G. GLENN HENRY, KIM C. HOUCK, PARVIZ PALANGPOUR
  • Publication number: 20180189640
    Abstract: First/second memories hold rows of N weight/data words. Each of N processing units (PU) of index J have a register, an accumulator having an output, an arithmetic unit that performs an operation thereon to accumulate a result, the first input receives the output of the accumulator, the second input receives a respective first memory weight word, the third input receives a respective data word output by the register, and multiplexing logic receives a respective second memory data word and a data word output by the register of PU J?1 and outputs a selected data word to the register. PU J?1 for PU 0 is PU N?1. The multiplexing logic of PU 0 also receives the data word output by the register of PU (N/2)?1. The multiplexing logic of PU N/2 also receives the data word output by the register of PU N?1.
    Type: Application
    Filed: December 31, 2016
    Publication date: July 5, 2018
    Inventors: G. GLENN HENRY, KIM C. HOUCK, PARVIZ PALANGPOUR
  • Publication number: 20180189639
    Abstract: A memory holds D rows of N words and receives an address having log2D bits and an extra bit. Each of N processing units (PU) of index J has first and second registers, an accumulator, an arithmetic unit that performs an operation thereon to accumulate a result, and multiplexing logic receiving memory word J, and for PUs 0 to (N/2)?1 also memory word J+(N/2). In a first mode, the multiplexing logic of PUs 0 to N?1 selects word J to output to the first register. In a second mode: when the extra bit is a zero, the multiplexing logic of PUs 0 to (N/2)?1 selects word J to output to the first register, and when the extra bit is a one, the multiplexing logic of PUs 0 through (N/2)?1 selects word J+(N/2) to output to the first register.
    Type: Application
    Filed: December 31, 2016
    Publication date: July 5, 2018
    Inventors: G. GLENN HENRY, KIM C. HOUCK, PARVIZ PALANGPOUR
  • Publication number: 20180189651
    Abstract: First/second memories hold rows of N weight/data words. The first memory address has log2W bits and an extra bit. Each of N processing units (PU) of index J has first and second registers, an accumulator, an arithmetic unit performs an operation thereon to accumulate a result, first multiplexing logic for PUs 0 through (N/2)?1 receives first memory weight words J and J+(N/2) and for PUs N/2 through N?1 receives first memory weight words J and J?(N/2) and outputs a selected weight word to the first register, and second multiplexing logic receives second memory data word J and data word output by the second register of PU J?1 and outputs a selected data word to the second register. PU 0 second multiplexing logic also receives PU (N/2)?1 second register data word, and PU N/2 second multiplexing logic also receives PU N?1 second register data word.
    Type: Application
    Filed: December 31, 2016
    Publication date: July 5, 2018
    Inventors: G. GLENN HENRY, KIM C. HOUCK, PARVIZ PALANGPOUR
  • Publication number: 20170041540
    Abstract: Energy is optimized in a battery-powered camera system by co-locating a low-power vision processor with a camera. The vision processor executes algorithms to determine whether the image contains one or more objects of interest. Convolutional neural network is one example of an object detection algorithm. Energy is saved by making local decisions to turn off the camera for one or more subsequent frames, and by avoiding energy expenditure for compression and transmission. Security is optimized by transmitting only information about the images, as opposed to images themselves. Alternatively, security may be enhanced by completing a first portion of an object detection algorithm on a local processor, then transmitting interim data to a remote computer where a second portion of the algorithm is completed. It is challenging to obtain original image data from transmitted interim data.
    Type: Application
    Filed: August 3, 2016
    Publication date: February 9, 2017
    Inventors: Ronald B Foster, Scott Gardner, Parviz Palangpour