IP Library Granted Patent US 11,403,067
Granted Patent B2
US 11,403,067 · App. 16/358,971 · Granted Aug 2, 2022

Memory array data structure for posit operations

Inventor: Vijay S. Ramesh (Boise, ID)
Assignee: Micron Technology, Inc.
G06F7/483G06F7/57G11C11/409H03M7/24
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,403,067
App. No.
16/358,971
Granted
Aug 2, 2022
Kind
B2
Abstract

Systems, apparatuses, and methods related to a memory array data structure for posit operations are described. Universal number (unum) bit strings, such as posit bit string operands and posit bit strings representing results of arithmetic and/or logical operations performed using the posit bit string operands may be stored in a memory array. Circuitry deployed in a memory device may access the memory array to retrieve the unum bit string operands and/or the results of the arithmetic and/or logical operations performed using the unum bit string operands from the memory array. For instance, an arithmetic operation and/or a logical operation may be performed using a first unum bit string stored in the memory array and a second unum bit string stored in the memory array. The result of the arithmetic operation and/or the logical operation may be stored in the memory array and subsequently retrieved.

Claims (29)

1. A method, comprising:

determining a bit size for a first universal number (unum) bit string and a bit size for a second unum bit string stored in a memory array and to be used as operands in performance of an arithmetic operation or a logical operation, or both, wherein, prior to being stored in the memory array, the first unum bit string and the second unum bit string are transferred to the memory array in a plurality of respective equally-sized chunks in parallel via a plurality of shared input/output (I/O) lines coupled to the memory array, wherein the respective equally-sized chunks each comprise a portion of the first unum bit string or the second unum bit string;

responsive to determining that performance of the arithmetic operation or the logical operation, or both, requires that the bit size of the first unum bit string and the second unum bit string is less than a predetermined bit size, performing the arithmetic operation or the logical operation, or both using the first unum and the second unum bit string without transferring the first unum bit string or the second unum bit string to circuitry external to the memory array;

responsive to determining that performance of the arithmetic operation or the logical operation, or both, requires that the bit size of the first unum bit string and the second unum bit string is greater than the predetermined bit size, transferring the first unum bit string and the second unum bit string to a memory resource associated with acceleration circuitry coupled to the memory array; and

performing the arithmetic operation or the logical operation, or both, using the acceleration circuitry while the first unum bit string and the second unum bit string are stored in the memory resource.

2. The method of claim 1 , further comprising:

performing, using a processing device coupled to the memory array, a first conversion operation to generate the first unum bit string from a first floating-point bit string;

performing, using the processing device coupled to the memory array, a second conversion operation to generate the second unum bit string from a second floating-point bit string; and

causing the first unum bit string and the second unum bit string to be stored in the memory array prior to performance of the arithmetic operation or the logical operation, or both, using the first unum bit string and the second unum bit string.

3. The method of claim 2 , wherein causing the first unum bit string and the second unum bit string to be stored in the memory array further comprises transferring, via the plurality of shared input/output lines coupled to the memory array, the first unum bit string and the second unum bit string from the processing device to the memory array.

4. The method of claim 1 , further comprising:

determining that the arithmetic operation or the logical operation, or both requires a third unum bit string that has a bit length greater than a bit length of the first unum bit string and the second unum bit string;

generating the third unum bit string; and

performing the arithmetic operation or the logical operation, or both using the third unum bit string and at least one of the first unum bit string and the second unum bit string.

5. The method of claim 1 , wherein the memory array comprises a three transistor (3T) memory array, and wherein the method further comprises performing the arithmetic operation or the logical operation, or both on the first unum bit string stored in the 3T memory array and the second unum bit string stored in the 3T memory array.

6. The method of claim 1 , wherein the memory array comprises a dynamic random-access (DRAM) memory array, and wherein the method further comprises performing the arithmetic operation or the logical operation, or both, on the first unum bit string stored in the DRAM memory array and the second unum bit string stored in the DRAM memory array.

7. An apparatus, comprising:

acceleration circuitry comprising logic circuitry and a memory resource; and

a memory array coupled to a controller and the acceleration circuitry, wherein the memory array is configured to store a plurality of bit strings to be used as operands in performance of an arithmetic operation or a logical operation, or both, wherein, prior to being stored in the memory array, the plurality of bit string are transferred to the memory array in a plurality of respective equally-sized chunks in parallel via a plurality of shared input/output (I/O) lines coupled to the memory array, wherein the respective equally-sized chunks each comprise a portion of respective bit strings among the plurality of bit strings, and wherein the controller is configured to:

receive a request for the arithmetic operation or the logical operation, or both, to be performed using one or more bit strings;

determine a bit size of the one or more bit strings to be used in performance of the arithmetic operation or the logical operation, or both;

responsive to a determination that performance of the arithmetic operation or the logical operation, or both, requires that the bit size of the one or more bit strings is less than a predetermined bit size, control performance of the arithmetic operation or the logical operation, or both, using bit strings among the plurality of bit strings stored in the memory array; and

responsive to a determination that performance of the arithmetic operation or the logical operation, or both, requires that the bit size of the one or more bit strings is greater than the predetermined bit size, send a command to the acceleration circuitry to perform the arithmetic operation or the logical operation, or both using the acceleration circuitry.

8. The apparatus of claim 7 , wherein the predetermined bit size is 16-bits or less.

9. The apparatus of claim 7 , wherein the memory array is a three transistor (3T) memory array, a one transistor two capacitor (1T2C) memory array, or a two transistor two capacitor (2T2C) memory array.

10. The apparatus of claim 7 , wherein each bit string among the plurality of bit strings is a Type III universal number bit string or a posit bit string.

11. The apparatus of claim 7 , wherein the acceleration circuitry is configured to convert a bit string representing a result of the arithmetic operation or the logical operation, or both, to a format different than the format of the plurality of bit strings stored in the memory array.

12. The apparatus of claim 7 , wherein the plurality of bit strings to be used as operands in performance of the arithmetic operation or the logical operation, or both, are stored in a data structure in the memory array.

13. The apparatus of claim 12 , wherein the data structure has a size between 16 megabytes and 1 gigabyte.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Nov 15, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 051041/0317 →
RELEASE OF SECURITY INTEREST Recorded Oct 14, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050724/0392 →
SUPPLEMENT NO. 12 TO PATENT SECURITY AGREEMENT Recorded Apr 19, 2019
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 048948/0677 →
SUPPLEMENT NO. 3 TO PATENT SECURITY AGREEMENT Recorded Apr 19, 2019
From: MICRON TECHNOLOGY, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 048951/0902 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2019
From: RAMESH, VIJAY S.
To: MICRON TECHNOLOGY, INC.
Reel/Frame 048645/0980 →