IP Library Granted Patent US 12,255,656
Granted Patent B2
US 12,255,656 · App. 17/555,178 · Granted Mar 18, 2025

Split pulse width modulation to reduce crossbar array integration time

Inventors: Geoffrey Burr (Cupertino, CA); Masatoshi Ishii (Yokohama, JP); Pritish Narayanan (San Jose, CA)
Assignee: International Business Machines Corporation
H03K7/08G06N3/04H03M3/424G11C2013/0052G11C2013/0092
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,255,656
App. No.
17/555,178
Granted
Mar 18, 2025
Kind
B2
Abstract

A computer-implemented method, according to one embodiment, includes: causing a multi-bit input to be split into two or more chunks, where each of the two or more chunks include at least one individual bit. Each of the two or more chunks are also converted into a respective pulse width modulated signal, and a partial result is generated in digital form for each of the respective pulse width modulated signals. Each of the partial results are scaled by a respective significance factor corresponding to each of the two or more chunks, and the scaled partial results are also accumulated.

Claims (48)

1. A computer-implemented method, comprising:

causing a multi-bit input to be split into two or more chunks, wherein each of the two or more chunks include at least one individual bit;

causing each of the two or more chunks to be converted into a respective pulse width modulated signal;

causing a partial result to be generated in digital form for each of the respective pulse width modulated signals;

scaling each of the partial results by a respective significance factor corresponding to each of the two or more chunks; and

accumulating the scaled partial results.

2. The computer-implemented method of claim 1 , comprising:

causing the digital form of the partial results to be applied to a crossbar array of memory cells by:

causing a pulse width modulator to apply a first set of pulses to the crossbar array in a first phase, the first set of pulses corresponding to a first subset of the partial results; and

causing the pulse width modulator to apply a second set of pulses to the crossbar array in a second phase, the second set of pulses corresponding to a second subset of the partial results.

3. The computer-implemented method of claim 2 , wherein the pulses applied to the crossbar array in the first phase correspond to a higher significance than the pulses applied to the crossbar array in the second phase.

4. The computer-implemented method of claim 3 , wherein causing the pulse width modulator to apply a second set of pulses to the crossbar array in a second phase includes:

ignoring a final pulse in the second set of pulses.

5. The computer-implemented method of claim 2 , wherein the crossbar array is an analog crossbar array in resistive memory.

6. The computer-implemented method of claim 5 , wherein the resistive memory is Phase Change Memory (PCM).

7. The computer-implemented method of claim 5 , wherein the resistive memory is Resistive Random Access Memory (RRAM).

8. The computer-implemented method of claim 1 , wherein the partial results are generated in digital form by a multiply-accumulate engine.

9. The computer-implemented method of claim 1 , wherein each of the two or more chunks include two or more individual bits.

10. A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions readable and/or executable by a processor to cause the processor to:

cause, by the processor, a multi-bit input to be split into two or more chunks, wherein each of the two or more chunks include at least one individual bit;

cause, by the processor, each of the two or more chunks to be converted into a respective pulse width modulated signal;

cause, by the processor, a partial result to be generated in digital form for each of the respective pulse width modulated signals;

scale, by the processor, each of the partial results by a respective significance factor corresponding to each of the two or more chunks; and

accumulate, by the processor, the scaled partial results.

11. The computer program product of claim 10 , wherein the program instructions are readable and/or executable by the processor to cause the processor to:

cause, by the processor, the digital form of the partial results to be applied to a crossbar array of memory cells by:

causing a pulse width modulator to apply a first set of pulses to the crossbar array in a first phase, the first set of pulses corresponding to a first subset of the partial results; and

causing the pulse width modulator to apply a second set of pulses to the crossbar array in a second phase, the second set of pulses corresponding to a second subset of the partial results.

12. The computer program product of claim 11 , wherein the pulses applied to the crossbar array in the first phase correspond to a higher significance than the pulses applied to the crossbar array in the second phase.

13. The computer program product of claim 12 , wherein causing the pulse width modulator to apply a second set of pulses to the crossbar array in a second phase includes:

ignoring a final pulse in the second set of pulses.

14. The computer program product of claim 11 , wherein the crossbar array is an analog crossbar array in resistive memory.

15. The computer program product of claim 14 , wherein the resistive memory is Phase Change Memory (PCM).

16. The computer program product of claim 14 , wherein the resistive memory is Resistive Random Access Memory (RRAM).

17. The computer program product of claim 10 , wherein the partial results are generated in digital form by a multiply-accumulate engine.

18. A system, comprising:

a processor; and

logic integrated with the processor, executable by the processor, or integrated with and executable by the processor, the logic being configured to:

cause, by the processor, a multi-bit input to be split into two or more chunks, wherein each of the two or more chunks include at least one individual bit;

cause, by the processor, each of the two or more chunks to be converted into a respective pulse width modulated signal;

cause, by the processor, a partial result to be generated in digital form for each of the respective pulse width modulated signals;

scale, by the processor, each of the partial results by a respective significance factor corresponding to each of the two or more chunks; and

accumulate, by the processor, the scaled partial results.

19. The system of claim 18 , wherein the logic is configured to:

cause, by the processor, the digital form of the partial results to be applied to a crossbar array of memory cells by:

causing a pulse width modulator to apply a first set of pulses to the crossbar array in a first phase, the first set of pulses corresponding to a first subset of the partial results; and

causing the pulse width modulator to apply a second set of pulses to the crossbar array in a second phase, the second set of pulses corresponding to a second subset of the partial results.

20. The system of claim 19 , wherein the pulses applied to the crossbar array in the first phase correspond to a higher significance than the pulses applied to the crossbar array in the second phase, wherein causing the pulse width modulator to apply a second set of pulses to the crossbar array in a second phase includes: ignoring a final pulse in the second set of pulses.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 11, 2022
From: BURR, GEOFFREY; ISHII, MASATOSHI; NARAYANAN, PRITISH
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 058623/0405 →
Continuity (1)
Related Publication 20230198511A1 · Jun 22, 2023
References Cited (11)
US 10007517B2 · Buchanan et al. · 2018 [cited by applicant]
US 10367480B1 · Kreider · 2019 [cited by examiner]
US 10694597B2 · Watsuda · 2020 [cited by examiner]
US 20160232951A1 · Shanbhag · 2016 [cited by examiner]
US 20190044506A1 · Naumann · 2019 [cited by examiner]
Chen et al., “Multiply accumulate operations in memristor crossbar arrays for analog computing,” Journal of Semiconductors, vol. 42, 2021, pp. 1-22. [cited by applicant]
Yamaguchi et al., An Energy-Efficient Time-Domain Analog CMOS BinaryConnect Neural Network Processor Based on a Pulse-Width Modulation Approach, IEEE Access, Dec. 28, 2020, pp. 2644-2654. [cited by applicant]
Ali et al., “IMAC: In-memory multi-bit Multiplication and ACcumulation in 6T SRAM Array,” IEEE Transactions on Circuits and Systems-I Journal, 2020, pp. 1-11. [cited by applicant]
Paliy et al., “Analog Vector-Matrix Multiplier Based on Programmable Current Mirrors for Neural Network Integrated Circuits,” IEEE Access, vol. 8, Nov. 19, 2020, pp. 203525-203537. [cited by applicant]
Mileiko et al., “Neural network design for energy-autonomous artificial intelligence applications using temporal encoding,” Philosophical Transactions of the Royal Society A, vol. 378, 2019, pp. 1-29. [cited by applicant]
Sayal et al., “COMPAC: Compressed Time-Domain, Pooling-Aware Convolution CNN Engine With Reduced Data Movement for Energy-Efficient AI Computing,” IEEE Journal of Solid-State Circuits, 2020, pp. 1-16. [cited by applicant]