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: 11029949Abstract: 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: GrantFiled: April 10, 2018Date of Patent: June 8, 2021Assignee: SHANGHAI ZHAOXIN SEMICONDUCTOR CO., LTD.Inventors: G. Glenn Henry, Douglas R. Reed, Kim C Houck, Parviz Palangpour
-
Patent number: 10586148Abstract: 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: GrantFiled: December 31, 2016Date of Patent: March 10, 2020Assignee: VIA ALLIANCE SEMICONDUCTOR CO., LTD.Inventors: G. Glenn Henry, Kim C. Houck, Parviz Palangpour
-
Patent number: 10565492Abstract: 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: GrantFiled: December 31, 2016Date of Patent: February 18, 2020Assignee: VIA ALLIANCE SEMICONDUCTOR CO., LTD.Inventors: G. Glenn Henry, Kim C. Houck, Parviz Palangpour
-
Patent number: 10565494Abstract: 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: GrantFiled: December 31, 2016Date of Patent: February 18, 2020Assignee: VIA ALLIANCE SEMICONDUCTOR CO., LTD.Inventors: G. Glenn Henry, Kim C. Houck, Parviz Palangpour
-
Patent number: 10140574Abstract: 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: GrantFiled: December 31, 2016Date of Patent: November 27, 2018Assignee: VIA ALLIANCE SEMICONDUCTOR CO., LTDInventors: G. Glenn Henry, Kim C. Houck, Parviz Palangpour
-
Publication number: 20180225116Abstract: 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: ApplicationFiled: April 10, 2018Publication date: August 9, 2018Inventors: G. Glenn HENRY, Douglas R. Reed, Kim C. Houck, Parviz Palangpour
-
Publication number: 20180189633Abstract: 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: ApplicationFiled: December 31, 2016Publication date: July 5, 2018Inventors: G. GLENN HENRY, KIM C. HOUCK, PARVIZ PALANGPOUR
-
Publication number: 20180189640Abstract: 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: ApplicationFiled: December 31, 2016Publication date: July 5, 2018Inventors: G. GLENN HENRY, KIM C. HOUCK, PARVIZ PALANGPOUR
-
Publication number: 20180189639Abstract: 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: ApplicationFiled: December 31, 2016Publication date: July 5, 2018Inventors: G. GLENN HENRY, KIM C. HOUCK, PARVIZ PALANGPOUR
-
Publication number: 20180189651Abstract: 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: ApplicationFiled: December 31, 2016Publication date: July 5, 2018Inventors: G. GLENN HENRY, KIM C. HOUCK, PARVIZ PALANGPOUR
-
Publication number: 20170041540Abstract: 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: ApplicationFiled: August 3, 2016Publication date: February 9, 2017Inventors: Ronald B Foster, Scott Gardner, Parviz Palangpour