IP Library › Granted Patent US 8,880,790
Granted Patent B2
US 8,880,790 · App. 13/619,692 · Granted Nov 4, 2014

Methods and apparatus for transferring data between memory modules

Inventor: Christopher Haywood (Thousand Oaks, CA)
Assignee: Inphi Corporation
G06F13/40G06F13/00G06F13/36G06F3/00G06F13/28
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 8,880,790
App. No.
13/619,692
Granted
Nov 4, 2014
Kind
B2
Abstract

A computer-implemented method for transferring data from a computer system programmed to perform the method includes receiving in a memory buffer in a first memory module hosted by the computer system, a request for data stored in RAM of the first memory module from a host controller of the computer system, retrieving with the memory buffer, the data from the RAM, in response to the request, formatting with the memory buffer, the data from the RAM into formatted data in response to a defined software transport protocol, and initiating with the memory buffer, transfer of the formatted data to a storage destination external to the first memory module via an auxiliary interface of the memory buffer, bypassing the host controller of the computer system.

Claims (68)

1. A computer-implemented method for transferring data from a computer system programmed to perform the method comprising:

receiving in a memory buffer in a first memory module hosted by the computer system, a request for data stored in RAM of the first memory module from a host controller of the computer system;

retrieving with the memory buffer, the data from the RAM, in response to the request;

formatting with the memory buffer, the data from the RAM into formatted data in response to a defined software transport protocol; and

initiating with the memory buffer, transfer of the formatted data to a storage destination external to the first memory module via an auxiliary interface of the memory buffer, bypassing the host controller of the computer system;

wherein formatting with the memory buffer, the data from the RAM into formatted data comprises adding with the memory buffer, protocol data to the data from the RAM selected from a group consisting of: framing protocols, interframe signals, start of frame delimiters, error detecting protocols, CRC protocols;

receiving in another memory buffer in a second memory module hosted by another computer system, a request to store data in RAM of the second memory module from the host controller of the other computer system;

receiving via an auxiliary interface of the other memory buffer, the formatted data from the first memory module, bypassing the host controller of the other computer system;

deformatting with the other memory buffer, the formatted data into unformatted data in response to the request and to the defined software transport protocol; and

storing with the memory buffer, the unformatted data into the RAM of the second memory module.

2. The method of claim 1 wherein

deformatting with the other memory buffer, the formatted data into unformatted data comprises removing with the other memory buffer, protocol data from the formatted data selected from a group consisting of: framing protocols, interframe signals, start of frame delimiters, error detecting protocols, CRC protocols.

3. The method of claim 1 further comprising:

receiving in a switch separate from the first memory module and the second memory module, the formatted data;

determining in the switch, routing information in response to the formatted data; and

initiating in the switch, transfer of the formatted data to the second memory module in response to the routing information.

4. The method of claim 3 further comprising:

storing in the switch, at least a portion of the formatted data.

5. The method of claim 3 further comprising:

determining in the switch, traffic data associated with the other computer system; and

wherein initiating transfer of the formatted data is also in response to the traffic data.

6. The method of claim 5 wherein the traffic data comprises a quality of service indicator.

7. A computer-implemented method for transferring data from a computer system programmed to perform the method comprising:

receiving in a memory buffer in a first memory module hosted by the computer system, a request for data stored in RAM of the first memory module from a host controller of the computer system;

retrieving with the memory buffer, the data from the RAM, in response to the request;

formatting with the memory buffer, the data from the RAM into formatted data in response to a defined software transport protocol; and

initiating with the memory buffer, transfer of the formatted data to a storage destination external to the first memory module via an auxiliary interface of the memory buffer, bypassing the host controller of the computer system;

receiving in a switch separate from the first memory module, the formatted data;

determining in the switch, routing information in response to the formatted data;

modifying in the switch, the formatted data to form modified formatted data; and

routing in the switch, the modified formatted data to a second memory module in response to the routing information.

8. The method of claim 7

wherein modifying the formatted data comprises modifying in the switch, protocol signals to form the modified formatted data;

wherein the protocol signals are selected from a group consisting of: framing protocols, interframe signals, start of frame delimiters, error detecting protocols, CRC protocols.

9. A computer system configured to transferring data to a remote computer system comprises:

a host controller configured to output instructions;

a processor coupled to the host controller, wherein the processor is configured to provide the instructions to the host controller;

a memory module coupled to the host controller, wherein the memory module includes:

RAM configured to store and provide data;

a memory buffer coupled to the RAM and to the host controller, wherein the memory buffer is configured to receive the instructions from the host controller, wherein the memory buffer is configured to retrieve the data from in the RAM in response to the instructions, and wherein the memory buffer is configured to format the data from the RAM into formatted data in response to a defined software transport protocol and to the instructions, and

an auxiliary interface coupled to the memory buffer and to the remote computer system, wherein the auxiliary interface is configured to output the formatted data to the remote computer system, bypassing the host controller of the computer system;

a remote computer system, wherein the remote computer system comprising:

a host controller configured to output receiving instructions;

a processor coupled to the host controller, wherein the processor is configured to provide the receiving instructions to the host controller;

a memory module coupled to the host controller, wherein the memory module includes:

an auxiliary interface coupled to the memory buffer and to the computer system, wherein the auxiliary interface is configured to receive the formatted data from the computer system, bypassing the host controller of the remote computer system;

RAM configured to store unformatted data; and

a memory buffer coupled to the RAM and to the host controller, wherein the memory buffer is configured to receive the receiving instructions from the host controller, wherein the memory buffer is configured to deformat the formatted data from the auxiliary interface into the unformatted data in response to the defined software transport protocol and to the receiving instructions, and wherein the memory buffer is configured to store the unformatted data into the RAM.

10. The computer system of claim 9 wherein

wherein the defined software transport protocol includes protocol data selected from a group consisting of: framing protocols, interframe signals, start of frame delimiters, error detecting protocols, CRC protocols.

11. The computer system of claim 10 further comprising:

a switch coupled to the computer system and to the remote computer system, wherein the switch is configured to receive the formatted data from the first computer system, wherein the switch is configured to determine routing information in response to the formatted data, and wherein the switch is configured to transfer the formatted data to the remote computer system in response to the routing information.

12. The computer system of claim 11 wherein the switch is configured to store at least a portion of the formatted data.

13. The computer system of claim 11

wherein the switch is configured to determine traffic data associated with the remote computer system, and wherein the switch is configured to initiate transfer of the formatted data to the remote computer system in response to the traffic data.

14. The computer system of claim 13 wherein the traffic data comprises a quality of service indicator.

15. A computer system configured to transferring data to a remote computer system comprises:

a host controller configured to output instructions;

a processor coupled to the host controller, wherein the processor is configured to provide the instructions to the host controller;

a memory module coupled to the host controller, wherein the memory module includes:

RAM configured to store and provide data;

a memory buffer coupled to the RAM and to the host controller, wherein the memory buffer is configured to receive the instructions from the host controller, wherein the memory buffer is configured to retrieve the data from in the RAM in response to the instructions, and wherein the memory buffer is configured to format the data from the RAM into formatted data in response to a defined software transport protocol and to the instructions, and

an auxiliary interface coupled to the memory buffer and to the remote computer system, wherein the auxiliary interface is configured to output the formatted data to the remote computer system, bypassing the host controller of the computer system;

a switch coupled to the computer system and to the remote computer system, wherein the switch is configured to receive the formatted data from the first computer system, wherein the switch is configured to determine routing information in response to the formatted data, wherein the switch is configured to modify the formatted data into modified formatted data, and wherein the switch is configured to transfer the modified formatted data to the remote computer system in response to the routing information.

16. The computer system of claim 15

wherein the defined software transport protocol includes protocol data selected from a group consisting of: framing protocols, interframe signals, start of frame delimiters, error detecting protocols, CRC protocols.

17. The computer system of claim 15

wherein the switch is configured to modify protocol signals of the formatted data, wherein the protocol signals are selected from a group consisting of: framing protocols, interframe signals, start of frame delimiters, error detecting protocols, CRC protocols.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2016
From: INPHI CORPORATION
To: RAMBUS INC.
Reel/Frame 040038/0898 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2012
From: HAYWOOD, CHRISTOPHER
To: INPHI CORPORATION
Reel/Frame 029421/0161 →
Continuity (4)
Continuation In Part 13359877 · Jan 27, 2012
Provisional Application 61691736 · Aug 21, 2012
Provisional Application 61473889 · Apr 11, 2011
Related Publication 20130073802A1 · Mar 21, 2013