IP Library › Granted Patent US 10,152,370
Granted Patent B2
US 10,152,370 · App. 14/967,210 · Granted Dec 11, 2018

Method and apparatus for determining a timing adjustment of output to a host memory controller

Inventor: Bill Nale (Livermore, CA)
Assignee: INTEL CORPORATION
G06F11/0793G06F3/061G06F3/0604G06F3/0629G06F3/0638G06F3/0673G06F3/0683G06F11/079G06F11/0727G06F11/0751G06F11/0772G06F12/023G06F12/0802G06F12/0813G06F13/1663G06F13/1678G06F13/1689G06F13/1694G06F13/4234G06F13/4243G06F13/4282G11C5/148G11C7/1003G11C7/1072G11C7/222G11C11/40618G11C29/023G11C29/028H04L9/0869G06F2212/1044G06F2212/2532G06F2212/60G11C5/04G11C7/1063
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 10,152,370
App. No.
14/967,210
Granted
Dec 11, 2018
Kind
B2
Abstract

Provided are a method and apparatus for determining a timing adjustment of output to a host memory controller in a first memory module coupled to a host memory controller and a second memory module over a bus. A determination is made of a timing adjustment based on at least one component in at least one of the first memory module and the second memory module. A timing of output to the host memory controller is adjusted based on the determined timing adjustment to match a timing of output at the second memory module.

Claims (43)

1. A device implemented in a first memory module coupled to a bus connected to a host memory controller and a second memory module, wherein the second memory module includes memory chips, the first memory module comprising:

memory chips to store data, wherein the first and second memory modules are separately and independently connected to the bus; and

a first memory module controller to:

determine a difference of at least one hardware component between the first memory module and the second memory module that results in a timing difference of output of data between the first memory module and the second memory module;

determine a timing adjustment based on the timing difference of the at least one hardware component to cause output from the first memory module to the host memory controller to match a timing of output of data at the second memory module to the host memory controller to account for the timing difference between the first memory module and the second memory module, wherein the timing adjustment is to:

accelerate the timing in response to the first memory module having at least one hardware component effecting timing of the output of data that is not included in the second memory module; and

add a delay to the timing in response to the second memory module having at least one hardware component effecting the timing of the output of data at the second memory module that is not included in the first memory module; and

adjust a timing of an output of data to the host memory controller based on the timing adjustment to match a timing of output of data at the second memory module, wherein the timing of the output of data to the host memory controller on the bus from both the first and the second memory modules matches before reaching the host memory controller.

2. The device of claim 1 , wherein the timing adjustment comprises both accelerate the timing and add the delay, wherein the timing adjustment comprises a net of the accelerate and the add the delay.

3. The device of claim 1 , wherein the at least one hardware component comprises a data buffer in the first memory module, wherein the timing adjustment comprises delaying the timing of the output of data when the second memory module does not include a data buffer such as included in the first memory module.

4. The device of claim 1 , wherein the at least one hardware component comprises a register in the second memory module, wherein the timing adjustment comprises delaying the timing of the output of data when the second memory module includes the register that is not included in the first memory module.

5. The device of claim 4 , wherein the register in the second memory module is on a command, address and control busses.

6. The device of claim 1 , wherein the output of data having the timing adjusted comprises output from a data buffer of the first memory module.

7. The device of claim 1 , wherein the first and second memory modules comprise different types of dual in-line memory modules (DIMMs).

8. The device of claim 7 , wherein the second memory module comprises one of an unbufferred DIMM (UDIMM), registered DIMM (RDIMM), and a load reduced DIMM (LRDIMM).

9. The device of claim 8 , wherein the timing adjustment comprises accelerating the timing of the output of data when the first memory module includes a data buffer and the second memory module comprises a UDIMM.

10. The device of claim 8 , wherein the timing adjustment comprises delaying the timing of the output of data when the second memory module comprises the RDIMM and the first memory module does not include a register and accelerating the timing of the output of data when the first memory module includes a data buffer on the output of data.

11. The device of claim 8 , wherein the timing adjustment comprises delaying the timing of the output of data when the second memory module comprises the LRDIMM and the first memory module does not include a data buffer.

12. An apparatus comprising:

a host memory controller;

a bus;

a first memory module and a second memory module coupled to the host memory controller over the bus, wherein the first and the second memory modules each include memory chips to store data, wherein the second memory module includes a second memory module controller, and wherein the first and second memory modules are separately and independently connected to the bus;

a first memory module controller implemented in the first memory module to:

determine a difference of at least one hardware component between the first memory module and the second memory module that results in a timing difference of output of data between the first memory module and the second memory module;

determine a timing adjustment based on the timing difference of the at least one hardware component to cause output from the first memory module to the host memory controller to match a timing of output of data at the second memory module to the host memory controller to account for the timing difference between the first memory module and the second memory module, wherein the determined timing adjustment is to:

accelerate the timing in response to the first memory module having at least one hardware component effecting timing of the output of data that is not included in the second memory module; and

add a delay to the timing in response to the second memory module having at least one hardware component effecting the timing of the output of data at the second memory module that is not included in the first memory module; and

adjust a timing of an output of data to the host memory controller based on the timing adjustment to match a timing of output of data at the second memory module, wherein the timing of the output of data to the host memory controller on the bus from both the first and the second memory modules matches before reaching the host memory controller.

13. The apparatus of claim 12 , wherein the timing adjustment comprises both accelerate the timing and add the delay, wherein the determined timing adjustment comprises a net of the accelerate and the add the delay.

14. The apparatus of claim 12 , wherein the at least one hardware component comprises a data buffer in the first memory module, wherein the timing adjustment comprises delaying the timing of the output of data when the second memory module does not include a data buffer such as included in the first memory module.

15. The apparatus of claim 12 , wherein the at least one hardware component comprises a register in the second memory module, wherein the timing adjustment comprises delaying the timing of the output of data when the second memory module includes the register that is not included in the first memory module.

16. The apparatus of claim 12 , wherein the first and second memory modules comprise different types of dual in-line memory modules (DIMMs).

17. A method for determining a timing adjustment for a first memory module coupled to a bus connected to a host memory controller and a second memory module, wherein the first and second memory module each include memory chips and controllers, comprising:

determining a difference of at least one hardware component between the first memory module and the second memory module that results in a timing difference of output of data between the first memory module and the second memory module, and wherein the first and second memory modules are separately and independently connected to the bus;

determining a timing adjustment based on the timing difference of the at least one hardware component to cause output from the first memory module to the host memory controller to match a timing of output of data at the second memory module to the host memory controller to account for the timing difference between the first memory module and the second memory module, wherein the determined timing adjustment is to:

accelerate the timing in response to the first memory module having at least one hardware component effecting timing of the output of data that is not included in the second memory module; and

add a delay to the timing in response to the second memory module having at least one hardware component effecting the timing of the output of data at the second memory module that is not included in the first memory module; and

adjusting a timing of an output of data to the host memory controller based on the timing adjustment to match a timing of output of data at the second memory module, wherein the timing of the output of data to the host memory controller on the bus from both the first and the second memory modules matches before reaching the host memory controller.

18. The method of claim 17 , wherein the timing adjustment comprises both accelerating the timing and adding the delay, wherein the timing adjustment comprises a net of the accelerating and the adding the delay.

19. The method of claim 17 , wherein the at least one hardware component comprises a data buffer in the first memory module, wherein the timing adjustment comprises delaying the timing of the output of data when the second memory module does not include a data buffer such as included in the first memory module.

20. The method of claim 17 , wherein the at least one hardware component comprises a register in the second memory module, wherein the timing adjustment comprises delaying the timing of the output of data when the second memory module includes the register that is not included in the first memory module.

21. The method of claim 17 , wherein the output of data having the timing adjusted comprises output of data from a data buffer of the first memory module.

22. The method of claim 17 , wherein the first and second memory modules comprise different types of dual in-line memory modules (DIMMs).

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 11, 2016
From: NALE, BILL
To: INTEL CORPORATION
Reel/Frame 038245/0377 →
Continuity (2)
Continuation 13977653
Related Publication 20160098195A1 · Apr 7, 2016
Cited By (2)
US 12,189,546 US 12,468,445