# US 12,602,181 B2 · Memory training for power state changes

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

- Number: US 12,602,181 B2
- Document ID: US12602181B2
- Status: Granted
- Kind: B2
- Application number: 18/380,761
- Filed: 2023-10-17
- Published: 2025-04-17
- Granted: 2026-04-14
- Earliest claimed: 2023-10-17
- Assignees: Advanced Micro Devices, Inc.
- Applicants: Advanced Micro Devices, Inc.
- Inventors: Xianglong Du; Kai-Chieh Chan; Haibin Niu
- Web page: https://patentgrep.com/patent/US12602181B2

## CPC

- G06F 3/0634: {by changing the state or mode of one or more devices}
- G06F 3/0611: {in relation to response time}
- G06F 3/0658: {Controller construction arrangements}
- G06F 3/0673: {Single storage device}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A data processor includes a memory controller and a physical interface circuit coupled to the memory controller. In response to a system startup, the memory controller controls the physical interface circuit to selectively train a memory based on whether a first memory clock frequency of a plurality of power states equals any other memory clock frequency of the plurality of power states.

## Claims

### Claim 1

A data processor, comprising:
a memory controller; and
a physical interface circuit coupled to the memory controller,
wherein in response to a system startup, the memory controller controls the physical interface circuit to selectively train a memory at each of a plurality of power states, wherein the memory controller trains the memory at a first power state of the plurality of power states if a memory clock frequency of the first power state of the plurality of power states does not equal the memory clock frequency of any previously trained power state of the plurality of power states, and bypasses training of the memory at the first power state of the plurality of power states if the memory clock frequency of the first power state of the plurality of power states equals the memory clock frequency of at least one previously trained power state of the plurality of power states.

### Claim 2 (depends on 1)

The data processor of claim 1, wherein:
if the memory clock frequency of the first power state equals the memory clock frequency of at least one previously trained power state of the plurality of power states, the data processor copies training results of the other memory clock frequency into shadow registers; and
if the memory clock frequency of the first power state does not equal the memory clock frequency of any other previously trained power state, the memory controller causes the physical interface circuit to train the memory at the memory clock frequency of the first power state, and stores training results at the memory clock frequency of the first power state into the shadow registers.

### Claim 3 (depends on 1)

The data processor of claim 1, wherein:
the memory comprises a plurality of memory channels.

### Claim 4 (depends on 1)

The data processor of claim 1, wherein:
the memory comprises a plurality of ranks each comprising a plurality of memory chips.

### Claim 5 (depends on 1)

The data processor of claim 1, further comprising:
a plurality of data processor cores; and
a data fabric for routing accesses between the plurality of data processor cores and the memory controller and operating at a data fabric clock frequency,
wherein the memory controller operates at a memory controller clock frequency,
wherein the physical interface circuit operates at the memory clock frequency, and
wherein each of the plurality of power states comprises a respective data fabric clock frequency, a respective memory controller clock frequency, and a respective memory clock frequency.

### Claim 6 (depends on 5)

The data processor of claim 5, wherein the plurality of power states comprises:
a first power state having a first memory clock frequency;
a second power state having the first memory clock frequency; and
a third power state having a second memory clock frequency different from the first memory clock frequency.

### Claim 7 (depends on 6)

The data processor of claim 6, wherein:
the first power state further comprises a first data fabric clock frequency and a first memory controller clock frequency; and
the second power state further comprises a second data fabric clock frequency and a second memory controller clock frequency, wherein either the second data fabric clock frequency is not equal to the first data fabric clock frequency, or the second memory controller clock frequency is not equal to the first memory controller clock frequency, or both.

### Claim 8

A data processing system, comprising:
a data processor; and
a memory having a plurality of mode registers for storing a configuration state,
wherein in response to a system startup, the data processor selectively trains the memory at each of a plurality of power states, wherein the data processor trains the memory at a first power state of the plurality of power states if a memory clock frequency of the first power state of the plurality of power states does not equal the memory clock frequency of any previously trained power state of the plurality of power states, and bypasses training of the memory at the first power state of the plurality of power states if the memory clock frequency of the first power state of the plurality of power states equals the memory clock frequency of at least one previously trained power state of the plurality of power states.

### Claim 9 (depends on 8)

The data processing system of claim 8, wherein:
the memory uses the plurality of mode registers to operate at a corresponding memory clock frequency.

### Claim 10 (depends on 9)

The data processing system of claim 9, wherein:
the data processor copies training values to the mode registers of the memory in response to a power state change from a current power state to another power state having a different memory clock frequency.

### Claim 11 (depends on 9)

The data processing system of claim 9, wherein:
the memory comprises a plurality of memory channels.

### Claim 12 (depends on 9)

The data processing system of claim 9, wherein:
the memory comprises a plurality of ranks each comprising a plurality of memory chips.

### Claim 13 (depends on 8)

The data processing system of claim 8, wherein:
if the memory clock frequency of the first power state equals the memory clock frequency of at least one previously trained power state of the plurality of power states, the data processor copies training results of the other memory clock frequency into shadow registers; and
if the memory clock frequency of the first power state does not equal the memory clock frequency of any previously trained power state, the data processor causes a physical interface circuit to train the memory at the memory clock frequency of the first power state, and stores training results at the memory clock frequency of the first power state into the shadow registers.

### Claim 14 (depends on 8)

The data processing system of claim 8, wherein the data processor comprises:
a plurality of data processor cores; and
a data fabric for routing accesses between the plurality of data processor cores and a memory controller and operating at a data fabric clock frequency,
wherein the memory controller operates at a memory controller clock frequency,
wherein the data processor includes a physical interface circuit that operates at the memory clock frequency, and
wherein the data processing system operates at a selected one of the plurality of power states, each power state comprising a respective data fabric clock frequency, a respective memory controller clock frequency, and a respective memory clock frequency.

### Claim 15 (depends on 14)

The data processing system of claim 14, wherein the plurality of power states comprises:
a first power state having a first memory clock frequency;
a second power state having the first memory clock frequency; and
a third power state having a second memory clock frequency different from the first memory clock frequency.

### Claim 16 (depends on 15)

The data processing system of claim 15, wherein:
the first power state further comprises a first data fabric clock frequency and a first memory controller clock frequency; and
the second power state further comprises a second data fabric clock frequency and a second memory controller clock frequency, wherein either the second data fabric clock frequency is not equal to the first data fabric clock frequency, or the second memory controller clock frequency is not equal to the first memory controller clock frequency, or both.

### Claim 17

A method for use in a data processing system, comprising:
for each of a plurality of power states including a memory clock frequency:
if the memory clock frequency of a given power state is different from the memory clock frequency of each previously trained power state, training a memory at the memory clock frequency of the given power state and storing training values in shadow registers; and
if the memory clock frequency of the given power state is the same as the memory clock frequency of any previously trained power state, bypassing the training and copying values of a previously trained power state having the same memory clock frequency in the shadow registers for the given power state.

### Claim 18 (depends on 17)

The method of claim 17 wherein training the memory further comprises:
training the memory in response to a system startup.

### Claim 19 (depends on 17)

The method of claim 17, further comprising:
subsequently operating the memory at a selected one of the plurality of power states.

### Claim 20 (depends on 17)

The method of claim 17, wherein:
the plurality of power states is in a descending order of power consumption, wherein the descending order is monotonic with respect to the memory clock frequency.
