US 11,909,422 B2
Neural network processor using compression and decompression of activation data to reduce memory bandwidth utilization
Joseph Leon Corkery, Burlingame, CA (US); Benjamin Eliot Lundell, Seattle, WA (US); Larry Marvin Wall, Seattle, WA (US); Chad Balling McBride, North Bend, WA (US); Amol Ashok Ambardekar, Redmond, WA (US); George Petre, Redmond, WA (US); Kent D. Cedola, Bellevue, WA (US); and Boris Bobrov, Kirkland, WA (US)
Assigned to Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed by MICROSOFT TECHNOLOGY LICENSING, LLC, Redmond, WA (US)
Filed on Nov. 11, 2022, as Appl. No. 18/054,851.
Application 18/054,851 is a continuation of application No. 15/953,356, filed on Apr. 13, 2018, granted, now 11,528,033.
Claims priority of provisional application 62/486,432, filed on Apr. 17, 2017.
Prior Publication US 2023/0071352 A1, Mar. 9, 2023
Int. Cl. H03M 7/30 (2006.01); G06N 3/04 (2023.01); G06N 3/063 (2023.01); G06F 12/0862 (2016.01); G06F 9/46 (2006.01); G06F 1/324 (2019.01); G06F 3/06 (2006.01); G06F 9/38 (2018.01); G06F 12/08 (2016.01); G06F 12/10 (2016.01); G06F 15/80 (2006.01); G06F 17/15 (2006.01); G06N 3/049 (2023.01); G06N 3/06 (2006.01); G06N 3/08 (2023.01); G06N 3/10 (2006.01); H04L 45/02 (2022.01); G06F 9/30 (2018.01); H04L 67/1001 (2022.01); H04L 67/02 (2022.01); G06F 9/48 (2006.01); G06F 12/02 (2006.01); G06N 3/045 (2023.01); G06N 3/065 (2023.01); G06F 13/16 (2006.01); G06F 1/3234 (2019.01); G06F 13/28 (2006.01); H04L 7/02 (2006.01); H03M 7/46 (2006.01); H04L 45/50 (2022.01)
CPC H03M 7/3059 (2013.01) [G06F 1/324 (2013.01); G06F 1/3275 (2013.01); G06F 3/0604 (2013.01); G06F 3/067 (2013.01); G06F 3/0631 (2013.01); G06F 9/30087 (2013.01); G06F 9/3836 (2013.01); G06F 9/3887 (2013.01); G06F 9/46 (2013.01); G06F 9/4881 (2013.01); G06F 12/0207 (2013.01); G06F 12/0238 (2013.01); G06F 12/08 (2013.01); G06F 12/0862 (2013.01); G06F 12/10 (2013.01); G06F 13/1673 (2013.01); G06F 13/1689 (2013.01); G06F 13/28 (2013.01); G06F 15/8007 (2013.01); G06F 17/15 (2013.01); G06N 3/04 (2013.01); G06N 3/045 (2023.01); G06N 3/049 (2013.01); G06N 3/06 (2013.01); G06N 3/063 (2013.01); G06N 3/065 (2023.01); G06N 3/08 (2013.01); G06N 3/10 (2013.01); H03M 7/6005 (2013.01); H03M 7/6011 (2013.01); H03M 7/70 (2013.01); H04L 45/04 (2013.01); H04L 67/02 (2013.01); H04L 67/1001 (2022.05); G06F 2209/484 (2013.01); G06F 2209/485 (2013.01); G06F 2212/657 (2013.01); H03M 7/46 (2013.01); H04L 45/50 (2013.01); Y02D 10/00 (2018.01)] 5 Claims
OG exemplary drawing
 
1. A computer-implemented method, comprising:
receiving a compressed chunk of data comprising a mask portion and a data portion;
determining a number of non-zero bytes in a decompressed chunk of data based upon bits in the mask portion of the compressed chunk of data;
determining, based at least in part on the number of non-zero bytes in the decompressed chunk of data, a number of bits used to store truncated non-zero bytes in the data portion of the compressed chunk of data;
for each bit position in the mask portion of the compressed chunk of data that is a logical zero, inserting a zero byte into a corresponding position of the decompressed chunk of data; and
for each position in the mask portion of the compressed chunk of data that is a logical one, inserting a truncated non-zero byte from the corresponding position in the data portion of the compressed chunk of data into a corresponding position in the decompressed chunk of data and a number of zero bits equivalent to a number of bits truncated during compression of the compressed chunk of data.