IP Library Granted Patent US 9,728,236
Granted Patent B1
US 9,728,236 · App. 15/331,064 · Granted Aug 8, 2017

System and method of training optimization for dual channel memory modules

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 9,728,236
App. No.
15/331,064
Granted
Aug 8, 2017
Kind
B1
Abstract

A memory channel includes a dual channel double data rate (DDR) memory device having a first bank of memory accessed by a first data bus and a first command/address (C/A) bus, and a second bank of memory accessed by a second data bus and a second C/A bus, and a memory controller configured to train the first and second C/A busses with both the first and second C/A busses active, and to train one of the first and second C/A busses with the other of the first and second C/A busses idle.

Claims (64)

1. A memory channel comprising:

a dual channel double data rate (DDR) memory device including a first bank of memory and a second bank of memory, the first memory bank being accessed by a first data bus and a first command/address (C/A) bus, and the second bank of memory being accessed by a second data bus and a second C/A bus; and

a memory controller configured to:

train the first and second C/A busses with both the first and second C/A busses active; and

train one of the first and second C/A busses with the other of the first and second C/A busses idle.

2. The memory channel of claim 1 , wherein the memory controller is further configured to:

determine a first C/A training parameter based on the training of the first and second C/A busses with both the first and second C/A busses active;

determine a second C/A training parameter based on the training of the one of the first and second C/A busses with the other of the first and second C/A busses idle; and

select one of the first and second C/A training parameters for use on the memory channel during memory transactions.

3. The memory channel of claim 1 , wherein the memory controller is further configured to:

train the first and second data busses for write transactions with both first and second data busses configured to write data; and

train one of the first and second data busses for write transactions with the other of the first and second data busses configured to read data.

4. The memory channel of claim 3 , wherein the memory controller is further configured to:

determine a first data write training parameter based on the training of the first and second data busses for write transactions with both first and second data busses configured to write data;

determine a second data write training parameter based on the training of the one of the first and second data busses for write transactions with the other of the first and second data busses configured to read data; and

select one of the first and second data write training parameters for use on the memory channel during memory transactions.

5. The memory channel of claim 3 , wherein the memory controller is further configured to:

train one of the first and second data busses for write transactions with the other of the first and second data busses idle.

6. The memory channel of claim 3 , wherein the memory controller is further configured to:

train the first and second data busses for read transactions with both first and second data busses configured to read data; and

train one of the first and second data busses for read transactions with the other of the first and second data busses configured to write data.

7. The memory channel of claim 6 , wherein the memory controller is further configured to:

determine a first data read training parameter based on the training of the first and second data busses for read transactions with both first and second data busses configured to read data;

determine a second data read training parameter based on the training of the one of the first and second data busses for read transactions with the other of the first and second data busses configured to write data; and

select one of the first and second data read training parameters for use on the memory channel during memory transactions.

8. The memory channel of claim 6 , wherein the memory controller is further configured to:

train one of the first and second data busses for read transactions with the other of the first and second data busses idle.

9. A method comprising:

training, by a memory controller of a memory channel, a first command/address (C/A) bus and a second C/A bus of a dual channel double data rate (DDR) memory device of the memory channel with both the first and second C/A busses active, the first C/A bus to access a first bank of memory of the dual channel DDR memory device and the second C/A bus to access a second bank of memory of the dual channel DDR memory device; and

training, by the memory controller, one of the first and second C/A busses with the other of the first and second C/A busses idle.

10. The method of claim 9 , further comprising:

determining, by the memory controller, a first C/A training parameter based on the training of the first and second C/A busses with both the first and second C/A busses active;

determining, by the memory controller, a second C/A training parameter based on the training of the one of the first and second C/A busses with the other of the first and second C/A busses idle; and

selecting one of the first and second C/A training parameters for use on the memory channel during memory transactions.

11. The method of claim 9 , further comprising:

training, by the memory controller, a first data bus of the dual channel DDR memory device and a second data bus of the dual channel DDR memory device for write transactions with both first and second data busses configured to write data, the first data bus to access the first bank of memory and the second data bus to access the second bank of memory; and

training, by the memory controller, one of the first and second data busses for write transactions with the other of the first and second data busses configured to read data.

12. The method of claim 11 , further comprising:

determining, by the memory controller, a first data write training parameter based on the training of the first and second data busses for write transactions with both first and second data busses configured to write data;

determining, by the memory controller, a second data write training parameter based on the training of the one of the first and second data busses for write transactions with the other of the first and second data busses configured to read data; and

selecting one of the first and second data write training parameters for use on the memory channel during memory transactions.

13. The method of claim 11 , further comprising:

training, by the memory controller, one of the first and second data busses for write transactions with the other of the first and second data busses idle.

14. The method of claim 11 , further comprising:

training, by the memory controller, the first and second data busses for read transactions with both first and second data busses configured to read data; and

training, by the memory controller, one of the first and second data busses for read transactions with the other of the first and second data busses configured to write data.

15. The method of claim 14 , further comprising:

determining, by the memory controller, a first data read training parameter based on the training of the first and second data busses for read transactions with both first and second data busses configured to read data;

determine, by the memory controller, a second data read training parameter based on the training of the one of the first and second data busses for read transactions with the other of the first and second data busses configured to write data; and

selecting one of the first and second data read training parameters for use on the memory channel during memory transactions.

16. The method of claim 14 , further comprising:

training, by the memory controller, one of the first and second data busses for read transactions with the other of the first and second data busses idle.

17. A non-transitory computer-readable medium including code for performing a method, the method comprising:

training a first command/address (C/A) bus and a second C/A bus of a dual channel double data rate (DDR) memory device of a memory channel with both the first and second C/A busses active, the first C/A bus to access a first bank of memory of the dual channel DDR memory device and the second C/A bus to access a second bank of memory of the dual channel DDR memory device; and

training one of the first and second C/A busses with the other of the first and second C/A busses idle.

18. The computer-readable medium of claim 17 , the method further comprising:

training, by a memory controller of the memory channel, a first data bus of the dual channel DDR memory device and a second data bus of the dual channel DDR memory device for write transactions with both first and second data busses configured to write data, the first data bus to access the first bank of memory and the second data bus to access the second bank of memory; and

training, by the memory controller, one of the first and second data busses for write transactions with the other of the first and second data busses configured to read data.

19. The computer-readable medium of claim 18 , the method further comprising:

training, by the memory controller, one of the first and second data busses for write transactions with the other of the first and second data busses idle.

20. The computer-readable medium of claim 18 , the method further comprising:

training, by the memory controller, the first and second data busses for read transactions with both first and second data busses configured to read data;

training, by the memory controller, one of the first and second data busses for read transactions with the other of the first and second data busses configured to write data; and

training, by the memory controller, one of the first and second data busses for read transactions with the other of the first and second data busses idle.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040679/0386) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 059803/0666 →
RELEASE OF SECURITY INTEREST AT REEL 040633 FRAME 0799 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL INTERNATIONAL, L.L.C.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.; EMC CORPORATION
Reel/Frame 058297/0427 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2016
From: SANKARANARAYANAN, VADHIRAJ; MUTNURY, BHYRAV M.; BERKE, STUART ALLEN
To: DELL PRODUCTS, LP
Reel/Frame 040670/0772 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Nov 23, 2016
From: DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.; EMC CORPORATION
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 040679/0386 →
SECURITY INTEREST Recorded Nov 16, 2016
From: DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.; EMC CORPORATION
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040633/0799 →