IP Library Granted Patent US 11,482,260
Granted Patent B2
US 11,482,260 · App. 17/215,581 · Granted Oct 25, 2022

Apparatuses and methods for scatter and gather

Inventors: Jason T. Zawodny (Grand Rapids, MI); Kelley D. Dobelstein (Seattle, WA); Timothy P. Finkbeiner (Boise, ID); Richard C. Murphy (Boise, ID)
Assignee: Micron Technology, Inc.
G11C7/1006G06F3/061G06F3/0659G06F3/0685G11C7/06G11C7/065G11C7/1036G11C8/12G11C11/4087G11C11/4091G11C11/4096
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,482,260
App. No.
17/215,581
Filed
Mar 29, 2021
Granted
Oct 25, 2022
Kind
B2
Art Unit
2138
USPC
711/105
Abstract

The present disclosure includes apparatuses and methods related to scatter/gather in a memory device. An example apparatus comprises a memory device that includes an array of memory cells, sensing circuitry, and a memory controller coupled to one another. The sensing circuitry includes a sense amplifier and a compute component configured to implement logical operations. A channel controller is configured to receive a block of instructions, the block of instructions including individual instructions for at least one of a gather operation and a scatter operation. The channel controller is configured to send individual instructions to the memory device and to control the memory controller such that the at least one of the gather operation and the scatter operation is executed on the memory device based on a corresponding one of the individual instructions.

Claims (39)

1. A system, comprising:

a host configured to generate instructions; and

a memory device coupled to the host, wherein the memory device comprises:

an array of memory cells;

and a controller coupled to the array and configured to:

receive a block of instructions from the host, the block of instructions including a set of instructions for a gather operation and/or a scatter operation;

change vector references in the received block of instructions by reading an index (idx) vector array block by block, the idx vector array stored in the memory device; and

subdivide the block of instructions so that the gather operation and/or the scatter operation can be executed locally on the memory device based on the subdivided block of instructions.

2. The system of claim 1 , wherein the host comprises a processor.

3. The system of claim 2 , wherein the host is coupled to the memory device via a bus.

4. The system of claim 3 , wherein the bus comprises a data bus, a control bus, an address bus, and an out-of-band bus.

5. The system of claim 1 , wherein the host comprises a channel controller.

6. The system of claim 1 , wherein the memory device is coupled to the host through a channel controller.

7. The system of claim 6 , wherein the memory device is one of a plurality of memory devices integrated on a module, and wherein the channel controller is located on the module.

8. The system of claim 1 , wherein the memory device comprises sensing circuitry coupled to the array and configured to perform logical operations in association with performing the gather operation and/or the scatter operation.

9. A system, comprising:

a host configured to generate instructions for performing a gather operation and/or a scatter operation;

a plurality of memory devices coupled to the host; and

a channel controller coupled to the plurality of memory devices;

wherein at least one of the plurality of memory devices is configured to receive individual instructions associated with the gather operation and/or the scatter operation at respective banks of a plurality of banks on the at least one memory device;

wherein the channel controller is configured to control execution of the individual instructions associated with the gather operation and/or the scatter operation on the at least one memory device;

wherein a memory controller on the at least one memory device is used to:

execute the individual instructions on the at least one memory device to perform the gather operation and/or the scatter operation on the respective banks; and

bin indices from a vector to a plurality of bank command buffers local to the channel controller.

10. The system of claim 9 , wherein the vector is an index vector.

11. The system of claim 9 , wherein the channel controller comprises bank command buffers for each of the plurality of memory devices.

12. The system of claim 9 , wherein the channel controller is integrated with the host.

13. The system of claim 9 , further comprising an out-of-band bus coupling the plurality of memory devices to the channel controller.

14. The system of claim 9 , wherein the channel controller is configured to group write requests by locality for respective banks among the plurality of memory devices.

15. The system of claim 9 , wherein the channel controller is configured to provide individual instructions associated with the scatter operation to respective banks of the plurality of memory devices such that the individual instructions can be executed locally by respective banks using a memory controller of the bank.

16. The system of claim 15 , wherein the memory controller of the bank is configured to communicate completion of write requests associated with the scatter operation to the channel controller using an out-of-band bus.

17. The system of claim 9 , wherein the at least one memory device comprises sensing circuitry coupled to an array of the at least one memory device, the sensing circuitry operable as an execution unit to perform logical operations in association with performing the gather operation and/or the scatter operation.

18. A method, comprising:

generating a block of instructions via a host; and

providing the block of instructions, including a set of instructions for performing a gather operation and/or a scatter operation, to a memory device coupled to the host, wherein the memory device comprises an array of memory cells and a controller;

changing, via the controller, vector references in the block of instructions by reading an index vector array block by block, the index vector array stored in the memory device; and

subdividing the block of instructions so that the gather operation and/or the scatter operation can be executed locally on the memory device based on the subdivided block of instructions.

19. The method of claim 18 , wherein the method includes providing the block of instructions to the controller of the memory device via a channel controller.

20. The method of claim 19 , wherein the method includes storing indices corresponding to the index vector locally to the channel controller.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2024
From: MICRON TECHNOLOGY, INC.
To: LODESTAR LICENSING GROUP LLC
Reel/Frame 068517/0109 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2021
From: ZAWODNY, JASON T.; DOBELSTEIN, KELLEY D.; FINKBEINER, TIMOTHY P.; MURPHY, RICHARD C.
To: MICRON TECHNOLOGY, INC.
Reel/Frame 055753/0693 →
Continuity (5)
Continuation 16536941 · Aug 9, 2019
Continuation 15669300 · Aug 4, 2017
Continuation PCTUS2016015027 · Jan 27, 2016
Provisional Application 62112843 · Feb 6, 2015
Related Publication 20210217449A1 · Jul 15, 2021