IP Library Granted Patent US 8,688,799
Granted Patent B2
US 8,688,799 · App. 13/173,744 · Granted Apr 1, 2014

Methods, apparatuses and computer program products for reducing memory copy overhead by indicating a location of requested data for direct access

Inventor: Keun-young Park (Mountain View, CA)
Assignee: Nokia Corporation
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,688,799
App. No.
13/173,744
Granted
Apr 1, 2014
Kind
B2
Abstract

An apparatus for providing an efficient and reliable manner for transferring data via a network may include a processor and memory storing executable computer code causing the apparatus to at least perform operations including receiving a request for data from a device and enabling provision of information to a network stack. The information may include content indicating a location of the requested data for direct access by the network stack or a network driver, in response to receipt of the request. The computer program code may further cause the apparatus to enable provision of the requested data to the network driver, or enabling the network driver to retrieve the requested data, based at least in part on the indicated location of the requested data. Corresponding methods and computer program products are also provided.

Claims (54)

1. A method comprising:

receiving a request for data from a device;

enabling provision of information to a network stack, the information comprising content indicating a location of the requested data for direct access by the network stack, in response to receipt of the request; and

enabling, via a processor, provision of the requested data to a network driver, or enabling the network driver to retrieve the requested data, based at least in part on the indicated location of the requested data.

2. The method of claim 1 , further comprising:

facilitating sending of the requested data to the device via the network driver.

3. The method of claim 1 , wherein the content indicating the location comprises data denoting that the location corresponds to at least one of a frame buffer associated with a device driver, a memory of a file system or a hard disk of a media driver.

4. The method of claim 1 , wherein enabling provision of the requested data comprises generating a copy of the requested data and facilitating sending of the copy of the requested data to the network stack.

5. The method of claim 4 , wherein generating the copy comprises generating a first copy of the requested data at the location, wherein the method further comprises:

enabling the network stack to obtain the first copy of the requested data;

generating a second copy of the requested data via the network stack; and

facilitating sending of the second copy of the requested data to the network driver to enable the network driver to facilitate provision of the second copy of the requested data to the device.

6. The method of claim 1 , wherein enabling the network driver to retrieve the requested data comprises enabling a direct access memory of the network driver to retrieve the requested data at the location from a memory associated with a driver or a file system.

7. The method of claim 1 , wherein enabling the network device to retrieve the requested data comprises enabling the network device to directly access and obtain the requested data at the location and the method further comprises:

facilitating sending of the requested data to the device via the network driver.

8. The method of claim 1 , wherein prior to enabling provision of the information, the method further comprises:

generating at least one packet comprising the information;

enabling the network stack to restructure the information of the packet to obtain another packet in response to receipt of the packet, the restructure of the information is based in part on reconfiguring the information indicating the direct access corresponding to the location specified in the packet; and

enabling provision of the another packet to the network driver to enable the network driver to facilitate sending of the requested data to the device.

9. An apparatus comprising:

at least one processor; and

at least one memory including computer program code configured to, with the at least one processor, cause the apparatus to perform at least the following:

receive a request for data from a device;

enable provision of information to a network stack, the information comprising content indicating a location of the requested data for direct access by the network stack, in response to receipt of the request; and

enable provision of the requested data to a network driver, or enable the network driver to retrieve the requested data, based at least in part on the indicated location of the requested data.

10. The apparatus of claim 9 , wherein the memory and computer program code are configured to, with the processor, cause the apparatus to:

facilitate sending of the requested data to the device via the network driver.

11. The apparatus of claim 9 , wherein the content indicating the location comprises data denoting that the location corresponds to at least one of a frame buffer associated with a device driver, a memory of a file system or a hard disk of a media driver.

12. The apparatus of claim 9 , wherein the memory and computer program code are configured to, with the processor, cause the apparatus to:

enable provision of the requested data by generating a copy of the requested data; and

facilitate sending of the copy of the requested data to the network stack.

13. The apparatus of claim 12 , wherein generating the copy comprises generating a first copy of the requested data at the location, and wherein the memory and computer program code are configured to, with the processor, cause the apparatus to:

enable the network stack to obtain the first copy of the requested data;

generate a second copy of the requested data via the network stack; and

facilitate sending of the second copy of the requested data to the network driver to enable the network driver to facilitate provision of the second copy of the requested data to the device.

14. The apparatus of claim 9 , wherein the memory and computer program code are configured to, with the processor, cause the apparatus to:

enable the network driver to retrieve the requested data by enabling a direct access memory of the network driver to retrieve the requested data at the location from a memory associated with a driver or a file system.

15. The apparatus of claim 9 , wherein the memory and computer program code are configured to, with the processor, cause the apparatus to:

enable the network device to retrieve the requested data by enabling the network device to directly access and obtain the requested data at the location; and

facilitate sending of the requested data to the device via the network driver.

16. The apparatus of claim 9 , wherein prior to enable provision of the information, the memory and computer program code are configured to, with the processor, cause the apparatus to:

generate at least one packet comprising the information;

enable the network stack to restructure the information of the packet to obtain another packet in response to receipt of the packet, the restructure of the information is based in part on reconfiguring the information indicating the direct access corresponding to the specified location in the packet; and

enable provision of the another packet to the network driver to enable the network driver to facilitate sending of the requested data to the device.

17. A computer program product comprising at least one non-transitory computer-readable storage medium having computer-readable program code portions stored therein, the computer-readable program code portions comprising:

program code instructions configured to facilitate receipt of a request for data from a device;

program code instructions configured to enable provision of information to a network stack, the information comprising content indicating a location of the requested data for direct access by the network stack, in response to receipt of the request; and

program code instructions configured to enable provision of the requested data to a network driver, or enabling the network driver to retrieve the requested data, based at least in part on the indicated location of the requested data.

18. The computer program product of claim 17 , further comprising:

program code instructions configured to facilitate sending of the requested data to the device via the network driver.

19. The computer program product of claim 17 , wherein the content indicating the location comprises data denoting that the location corresponds to at least one of a frame buffer associated with a device driver, a memory of a file system or a hard disk of a media driver.

20. The computer program product of claim 17 , further comprising:

program code instructions configured to enable provision of the requested data to the network driver by generating a copy of the requested data; and

program code instructions configured to facilitate sending of the copy of the requested data to the network stack.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2015
From: NOKIA CORPORATION
To: NOKIA TECHNOLOGIES OY
Reel/Frame 035398/0933 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2011
From: PARK, KEUN-YOUNG
To: NOKIA CORPORATION
Reel/Frame 026530/0778 →
Continuity (1)
Related Publication 20130007197A1 · Jan 3, 2013