IP Library Granted Patent US 7,937,508
Granted Patent B2
US 7,937,508 · App. 12/116,054 · Granted May 3, 2011

Method and apparatus for transferring data from a memory subsystem to a network adapter by extending data lengths to improve the memory subsystem and PCI bus efficiency

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 7,937,508
App. No.
12/116,054
Granted
May 3, 2011
Kind
B2
Abstract

A method, apparatus, and computer instructions for transferring data from a memory to a network adapter in a data processing system. The frame size for a transfer of the data from the memory to the network adapter is identified. If the frame size is divisible by a cache line size without a remainder, a valid data length is set equal to the length field. However, if the frame size divided by the cache line size results in a remainder, the length field is set to align the data with the cache line size. The data transfer is then initiated using these fields.

Claims (28)

1. A computer program product in a computer readable recordable medium for transferring data from a memory to a network adapter, the computer program product comprising:

first instructions for receiving a request to transfer data in the memory to a network adapter;

second instructions for setting a transfer size to align the data with a cache line size if the amount of data to be transferred is unequal to the cache line size, wherein an amount of data is less than or equal to the transfer size, wherein dummy data is included with the amount of data to be transferred to align the data with the cache line size if the amount of data is less than the transfer size, and wherein the amount of data to be transferred is in a frame and has a frame size;

third instructions for setting a valid length indicator, wherein the valid length indicator is set to the amount of data and wherein the network adapter outputs only the amount of data set by the valid length indicator after the data has been transferred to the network adapter; and

fourth instructions for, responsive to receiving the request, transferring to the network adapter the transfer size and the valid length indicator and an amount of data equal to the transfer size, wherein the network adapter, upon receiving the amount of data equal to the transfer size, identifies the transfer size and the valid length indicator, discards the dummy data based on the transfer size and the valid length indicator, and outputs the amount of data set by the valid length indicator.

2. A computer program product in a computer readable recordable medium for transferring data from a memory to a network adapter, the computer program product comprising:

first instructions for identifying frame size for a transfer of the data from the memory to the network adapter;

second instructions for setting a length equal to a cache line size;

if the frame size is divisible by a cache line size without a remainder, setting a valid data length equal to the length field;

if the frame size divided by the cache line size results in a remainder, setting the length field to align the data with the cache line size, wherein the length field is computed as

length field =(FLOOR(frame size/CLS)+1)*CLS,

wherein CLS is the cache line size,

wherein dummy data is included with the data to align the data with the cache line size; and third instructions for initiating a transfer of the data from the memory to the network adapter and sending the valid data length and the length field to the network adapter, wherein the network adapter, upon receiving the amount of data equal to the transfer size, identifies the transfer size and the valid length indicator, discards the dummy data based on the transfer size and the valid length indicator, and only outputs data identified by the valid data length.

3. A server data processing system for obtaining cultural context information from a client, the server data processing system comprising:

a bus system;

a network adapter connected to the bus system;

a memory connected to the bus system, wherein the memory includes a set of instructions; and

a processing unit connected to the bus system, wherein the processing unit executes the set of instructions to receive a request to transfer data in the memory to the network adapter and set the transfer size to align the data with the cache line size if the amount of data to be transferred is unequal to the cache line size, wherein the amount of data is less than or equal to the transfer size, wherein dummy data is included with the amount of data to be transferred to align the data with the cache line size if the amount of data is less than the transfer size, wherein the amount of data to be transferred is in a frame and has a frame size, wherein a valid length indicator is set to the amount of data and wherein the network adapter outputs only the amount of data set by the valid length indicator after the data has been transferred to the network adapter, and responsive to receiving the request, the transfer size, the valid length indicator, and an amount of data equal to the transfer size is transferred to the network adapter, wherein the network adapter, upon receiving the amount of data equal to the transfer size, identifies the transfer size and the valid length indicator, discards the dummy data based on the transfer size and the valid length indicator, and outputs the amount of data set by the valid length indicator.

4. The data processing system of claim 3 , wherein the cache line size is 2 n , wherein n is a positive integer.

5. The data processing system of claim 3 , wherein the data is transferred from the memory to the network adapter through a bridge chip.

6. A server data processing system for obtaining cultural context information from a client, the server data processing system comprising:

a bus system;

a network adapter connected to the bus system;

a memory connected to the bus system, wherein the memory includes a set of instructions; and

a processing unit connected to the bus system, wherein the processing unit executes the set of instructions to identify the frame size for a transfer of the data from the memory to the network adapter, set the length equal to a cache line size, set the valid data length equal to the length field if the frame size is divisible by a cache line size without a remainder, and set the length field to align the data with the cache line size if the frame size divided by the cache line size results in a remainder, wherein the length field is computed as

length field =(FLOOR(frame size/CLS)+1)*CLS,

wherein CLS is the cache line size,

wherein dummy data is included with the data to align the data with the cache line size, and initiate a transfer of the data from the memory to the network adapter and sending the valid data length and the length field to the network adapter, wherein the network adapter, upon receiving the amount of data equal to the transfer size, identifies the transfer size and the valid length indicator, discards the dummy data based on the transfer size and the valid length indicator, and only outputs data identified by the valid data length.

Assignments (2)
CHANGE OF NAME Recorded Dec 20, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058553/0802 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2012
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: FACEBOOK, INC.
Reel/Frame 027988/0806 →