IP Library › Granted Patent US 11,561,795
Granted Patent B2
US 11,561,795 · App. 16/834,833 · Granted Jan 24, 2023

Accumulating data values and storing in first and second storage devices

Inventors: Jens Olson (San Jose, CA); John Wakefield Brothers, III (Calistoga, CA); Jared Corey Smolens (Santa Clara, CA); Chi-wen Cheng (San Jose, CA); Daren Croxford (Swaffham Prior, GB); Sharjeel Saeed (Cambridge, GB); Dominic Hugo Symes (Cambridge, GB)
Assignee: Arm Limited
G06F9/345G06F7/49915G06F7/57G06F9/30043G06F9/30098G06F9/3893
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 11,561,795
App. No.
16/834,833
Granted
Jan 24, 2023
Kind
B2
Abstract

Herein described is a method of operating an accumulation process in a data processing apparatus. The accumulation process comprises a plurality of accumulations which output a respective plurality of accumulated values, each based on a stored value and a computed value generated by a data processing operation. The method comprises storing a first accumulated value, the first accumulated value being one of said plurality of accumulated values, into a first storage device comprising a plurality of single-bit storage elements; determining that a predetermined trigger has been satisfied with respect to the accumulation process; and in response to the determining, storing at least a portion of a second accumulated value, the second accumulated value being one of said plurality of accumulated values, into a second storage device.

Claims (39)

1. A method of operating an accumulation process in a data processing apparatus, the accumulation process comprising a plurality of accumulations which output a respective plurality of accumulated values, each based on a stored value and a computed value generated by a data processing operation, the method comprising:

storing a first accumulated value, the first accumulated value being one of said plurality of accumulated values, into a first storage device comprising a plurality of single-bit storage elements;

determining that a first predetermined trigger has been satisfied with respect to the accumulation process, wherein the first predetermined trigger is based on a maximum value that the first storage device can store; and

in response to the determining, storing at least a portion of a second accumulated value, the second accumulated value being one of said plurality of accumulated values, into a second storage device;

determining that a second predetermined trigger has been satisfied with respect to the second storage device; and

in response to determining that the second predetermined trigger with respect to the second storage device, has been satisfied, outputting the second accumulated value for use in a data processing operation.

2. The method of claim 1 , wherein the first predetermined trigger is based on at least one of a maximum value and a minimum value that the first storage device can store or a number of cycles, N, of accumulation.

3. The method of claim 1 , wherein the first predetermined trigger is based on an expected result of the data processing operation determined prior to the expected result being generated by the data processing operation.

4. The method of claim 1 , wherein the first storage device is in a primary memory level and the second storage device is in a secondary memory level, the primary memory level being quicker to access than the secondary memory level.

5. The method of claim 1 , comprising accumulating the first accumulated value, wherein accumulating the first accumulated value comprises performing N cycles of accumulation of a value stored in the first storage device and a computed value generated by the data processing operation.

6. The method of claim 5 , wherein storing into the second storage device occurs at a rate of 1/N relative to the rate of storing into the first storage device.

7. The method of claim 1 , wherein the first storage device comprises a plurality of registers and the method further comprises:

accumulating the first accumulated value in a first register of the plurality of registers;

in response to the determining:

reading the first accumulated value into an intermediate storage device; and

storing a third accumulated value into a second register of the plurality of registers based on a computer value generated by the data processing operation.

8. The method of claim 1 , wherein storing at least a portion of the second accumulated value into the second storage device comprises:

converting the second accumulated value from an integer value to a floating-point value.

9. The method of claim 8 , where the floating-point value is in the format of: one sign bit, five exponents bits and 10 mantissa bits.

10. The method of claim 8 , wherein the first storage device is configured to store binary values and the second storage device is configured to store Gray coded values.

11. A data processing apparatus comprising:

an arithmetic logic unit (ALU) configured to perform a data processing operation;

a first storage device comprising a plurality of single-bit storage elements arranged to receive a value output by the data processing operation;

a second storage device; and

control logic configured to perform a method of operating an accumulation process in a data processing apparatus, the accumulation process comprising a plurality of accumulations which output a respective plurality of accumulated values, each based on a stored value and a computed value generated by a data processing operation, the method comprising:

storing a first accumulated value, the first accumulated value being one of said plurality of accumulated values, into a first storage device comprising a plurality of single-bit storage elements;

determining that a first predetermined trigger has been satisfied with respect to the accumulation process, wherein the first predetermined trigger is based on a maximum value that the first storage device can store; and

in response to the determining, storing at least a portion of a second accumulated value, the second accumulated value being one of said plurality of accumulated values, into a second storage device;

determining that a second predetermined trigger has been satisfied with respect to the second storage device; and

in response to determining that the second predetermined trigger with respect to the second storage device, has been satisfied, outputting the second accumulated value for use in a data processing operation.

12. The data processing apparatus of claim 11 , wherein the first predetermined trigger is based on a maximum value that the first storage device can store or a number of cycles, N, of accumulation.

13. The data processing apparatus of claim 12 , wherein the first predetermined trigger is based on an expected result of the data processing operation determined prior to the expected result being generated by the data processing operation.

14. The data processing apparatus of claim 11 , wherein the first storage device is in a primary memory unit and the second storage device is in a secondary memory unit, the primary memory unit being quicker to access than the secondary memory unit.

15. A non-transitory computer readable storage medium comprising instructions that, when executed by a processor, cause the processor to perform a method of operating an accumulation process in a data processing apparatus, the accumulation process comprising a plurality of accumulations which output a respective plurality of accumulated values, each based on a stored value and a computed value generated by a data processing operation, the method comprising:

storing a first accumulated value, the first accumulated value being one of said plurality of accumulated values, into a first storage device comprising a plurality of single-bit storage elements;

determining that a first predetermined trigger has been satisfied with respect to the accumulation process, wherein the first predetermined trigger is based on a maximum value that the first storage device can store; and

in response to the determining, storing at least a portion of a second accumulated value, the second accumulated value being one of said plurality of accumulated values, into a second storage device;

determining that a second predetermined trigger has been satisfied with respect to the second storage device; and

in response to determining that the second predetermined trigger with respect to the second storage device, has been satisfied, outputting the second accumulated value for use in a data processing operation.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 19, 2020
From: OLSON, JENS; BROTHERS, JOHN WAKEFIELD, III; SMOLENS, JARED COREY; CHENG, CHI-WEN; CROXFORD, DAREN; SAEED, SHARJEEL; SYMES, DOMINIC HUGO
To: ARM LIMITED
Reel/Frame 054482/0122 →
Continuity (1)
Related Publication 20210303307A1 · Sep 30, 2021