# US 2020/0393984 A1 · Channel architecture for memory devices

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2020/0393984 A1
- Document ID: US20200393984A1
- Status: Published application
- Kind: A1
- Application number: 16/442,902
- Filed: 2019-06-17
- Published: 2020-12-17
- Earliest claimed: 2019-06-17
- Assignees: Micron Technology, Inc.
- Applicants: Micron Technology, Inc.
- Inventors: Reshmi Basu
- Web page: https://patentgrep.com/patent/US20200393984A1

## CPC

- G06F 3/0632: {by initialisation or re-initialisation of storage systems}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/0625: {Power saving in storage systems}
- G06F 3/0635: {by changing the path, e.g. traffic rerouting, path reconfiguration}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0673: {Single storage device}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06N 20/00: Machine learning
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

Systems, apparatuses, and methods related to channel architecture for memory devices are described. Various applications can access data from a memory device via a plurality of channels. The channels can be selectively enabled or disabled based on the behavior of the applications. For instance, an apparatus in the form of a memory system can include an interface coupled to a controller and a plurality of channels. The controller can be configured to determine an aggregate amount of bandwidth used by a plurality of applications accessing data from a memory device coupled to the controller via the plurality of channels and disable one or more channels of the plurality of channels based, at least in part, on the aggregate amount of bandwidth used by the plurality of applications.

## Claims

### Claim 1

An apparatus, comprising:
an interface; and
a controller coupled to the interface and a plurality of channels, wherein the controller is configured to:
determine an aggregate amount of bandwidth used by a plurality of applications accessing data from a memory device coupled to the controller via the plurality of channels; and
disable one or more channels of the plurality of channels based, at least in part, on the aggregate amount of bandwidth used by the plurality of applications.

### Claim 2 (depends on 1)

The apparatus of claim 1, wherein the plurality of channels comprise a plurality of back end channels of the controller.

### Claim 3 (depends on 1)

The apparatus of claim 1, wherein the controller is further configured to cause the plurality of applications to access the data from channels among the plurality that remain enabled subsequent to disabling the one or more channels of the plurality of channels.

### Claim 4 (depends on 1)

The apparatus of claim 1, wherein the controller is further configured to:
determine a front end bandwidth demand for the plurality of applications;
select a sub-set of channels from the portion of disabled channels responsive to the front end bandwidth demand; and
enable the sub-set of channels to fulfil the front end bandwidth demand.

### Claim 5 (depends on 4)

The apparatus of claim 4, wherein the controller is further to:
determine that a portion of the plurality of applications are inactive, wherein the portion of the plurality of applications correspond to the sub-set of channels; and
disable the sub-set of channels responsive to the determination that the portion of the plurality of applications are inactive.

### Claim 6 (depends on 1)

The apparatus of claim 1, wherein the controller is further configured to determine an amount of bandwidth used by each application based, at least in part, on the aggregate amount of bandwidth used by the plurality of applications.

### Claim 7 (depends on 1)

The apparatus of claim 1, wherein the one or more channels of the plurality of channels are disabled responsive to an indication from a machine learning component coupled to the controller.

### Claim 8 (depends on 7)

The apparatus of claim 7, wherein the indication comprises information corresponding to an application of the plurality of applications being removed from communication with the interface.

### Claim 9 (depends on 7)

The apparatus of claim 7, wherein the indication comprises information corresponding to a reduction in an amount of bandwidth used by the application of the plurality of applications.

### Claim 10

An apparatus, comprising:
an interface; and
a controller coupled to the interface and a plurality of channels, wherein the controller is configured to:
determine an aggregate bandwidth usage of a plurality of applications accessing data from a memory device coupled to the controller via the plurality of channels;
identify one or more channels of the plurality of channels used to access the data; and
disable a sub-set of the one or more channels of the plurality of channels based, at least in part, on the aggregate bandwidth usage of the plurality of applications.

### Claim 11 (depends on 10)

The apparatus of claim 10, wherein the controller receives a signal that indicates that at least one application has ceased to receive data from the memory device.

### Claim 12 (depends on 10)

The apparatus of claim 10, wherein the controller includes a machine learning component configured to anticipate an amount of bandwidth consumed in execution of at least one of the plurality of applications.

### Claim 13 (depends on 12)

The apparatus if claim 12, wherein the machine learning component is further configured to identify the sub-set of the one or more channels based, at least in part, on the anticipated amount of bandwidth of the at least one of the plurality of applications.

### Claim 14 (depends on 12)

The apparatus of claim 12, wherein the machine learning component is further configured to cause the sub-set of the one or more channels to be re-enabled based, at least in part, on the anticipated amount of bandwidth of the at least one of the plurality of applications.

### Claim 15

A method, comprising:
determining, by a controller, an aggregate amount of bandwidth used in execution of a plurality of applications;
determining, by the controller, channels between the controller and one or more memory devices used to access data as part of execution of the plurality of applications; and
disabling one or more of the channels based, at least in part, on the aggregate amount of bandwidth used in execution of the plurality of applications.

### Claim 16 (depends on 15)

The method of claim 15, comprising:
determining, by the controller, that an additional application is executed;
determining, by the controller, a new aggregate amount of bandwidth used by the plurality of applications, wherein the new aggregate amount of bandwidth includes the bandwidth required to execute the additional application; and
managing the channels between the controller and the one or more memory devices based at least in part on the new aggregate amount of bandwidth.

### Claim 17 (depends on 16)

The method of claim 16, comprising re-enabling at least one of the channels, by the controller, to accommodate the new aggregated amount of bandwidth.

### Claim 18 (depends on 15)

The method of claim 15, comprising:
receiving, by the controller, signaling that indicates a temperature increase in a memory device coupled to the controller corresponding to the execution of the additional application; and
determining, by the controller, a new aggregate amount of bandwidth used to execute the plurality of applications based at least in part on the signaling.

### Claim 19 (depends on 18)

The method of claim 18, comprising disabling another channels, by the controller, responsive to the signaling that indicates the temperature increase.

### Claim 20

A method, comprising:
determining, by a controller, that a channel of a plurality of channels coupling the controller to a memory device is disabled;
identifying, by the controller, a plurality of applications using the plurality of channels to access data stored by the memory device;
determining, by the controller, an aggregate amount of bandwidth used in execution of the plurality of applications;
comparing, by the controller, the aggregate amount of bandwidth used in execution of the plurality of applications and a quantity of channels coupling the controller to the memory device; and
enabling, by the controller, the disabled channel based, at least in part, on the comparison, wherein enabling the disabled channel provides an additional connection to the memory device for the plurality of applications to access data stored by the memory device.

### Claim 21 (depends on 20)

The method of claim 20, comprising determining an increase in the aggregate amount of bandwidth used in execution of the plurality applications, wherein the increase in aggregate bandwidth corresponds to at least one application of the plurality of applications exhibiting an increased bandwidth requirement.

### Claim 22 (depends on 20)

The method of claim 20, comprising:
determining a decrease in the aggregate amount of bandwidth used in execution of the plurality of applications;
associating each of the plurality of applications to respective channels of the plurality of channels; and
disabling a one or more channels of the plurality of channels based, at least in part, on a bandwidth requirement of respective application of the plurality of applications.

### Claim 23 (depends on 22)

The method of claim 22, wherein disabling the one or more channels of the plurality channels further comprises refraining from altering the operation of remaining enabled channels of the plurality of channels.

### Claim 24

A system, comprising:
a host;
a storage device comprising a controller, a multiplexer, and a memory device, wherein the storage device is coupled to the host and wherein the controller is configured to:
determine an amount of bandwidth consumed in execution of respective applications executed by the host; and
assert a signal to a plurality of selection pins coupled to the multiplexer to disable one or more channels utilized by the applications to access data from the memory device during execution of the applications based, at least in part, on the amount of bandwidth consumed in execution of the respective applications.

### Claim 25 (depends on 24)

The system of claim 24, wherein the controller is further configured to de-assert the signal to a first selection pin of the plurality of selection pins, wherein the first selection pin corresponds to a first channel utilized by a first application based at least in part on the on the amount of bandwidth consumed in the execution of the respective applications.

### Claim 26 (depends on 25)

The system of claim 25, wherein the controller is configured to transfer the execution operation for the first application corresponding to the first channel to a second channel, wherein the first channel is disabled responsive to de-assertion of the signal to the first selection pin.

### Claim 27 (depends on 24)

The system of claim 24, wherein the controller is further configured to cause independent operation of the selection pins coupled to the multiplexer.

### Claim 28 (depends on 24)

The system of claim 24, wherein the controller is further configured to disable a first channel by de-asserting the signal to a first selection pin, wherein assertion of a different signal to a second section pin refrains from altering its operation responsive to the de-asserted first selection pin.
