IP Library Granted Patent US 10,564,847
Granted Patent B1
US 10,564,847 · App. 15/461,350 · Granted Feb 18, 2020

Data movement bulk copy operation

Inventors: Alan L. Taylor (Cart, NC); Karl M. Owen (Chapel Hill, NC); H. Austin Spang, IV (Hopkinton, MA)
Assignee: EMC IP Holding Company LLC
G06F3/0604G06F3/065G06F3/067G06F12/0862G06F2212/602
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,564,847
App. No.
15/461,350
Granted
Feb 18, 2020
Kind
B1
Abstract

Techniques are described for performing a copy operation. A first request is received to perform a copy operation to copy source data from a source area to a target area. The first request is partitioned into a plurality of other requests. Each of the plurality of other requests being a request to copy a portion of source data located in the source area to a corresponding location in the target area. A first number of the other requests is issued. Responsive to the issued requests, a copy operation is performed to copy a portion of the source data from the source area to the target area. Completion of a second number of the issued other requests is detected. The second number corresponds to a fraction of the first number such that the second number is greater than one and less than the first number. Upon detecting completion of the second number, a third number of the other requests is issued to copy another portion of the source data from the source area to the target area. The third number corresponding to the second number of the issued other requests detected as complete.

Claims (40)

1. A method, comprising:

receiving a request to copy source data from a source area to a target area; in response to receiving the request, partitioning the request into a plurality of first sub-requests for facilitating the copying of respective portions of the source data from the source area to the target area;

selecting a second number of sub-requests from the plurality of first sub-requests to enable sequential issuance of the sub-requests, wherein the second number is greater than three and less than the first number;

issuing the second number of sub-requests such that each processing resource of a first number of processing resources issues one of the second number of subrequests;

detecting that a predetermined third number of the issued second number of sub-requests has completed copying of respective portions of the source data from the source area to the target area, wherein the predetermined third number is greater than one and less than the second number, wherein the said detecting comprises detecting the processing resources that have completed the predetermined third number of the issued second number of sub-requests;

upon detecting the predetermined third number, and based on the selection of the second number of sub-requests, selecting a fourth number of sub-requests from the plurality of first sub-requests to enable sequential issuance of the first sub-requests, wherein the fourth number is equivalent to the predetermined third number; and

issuing the fourth number of sub-requests such that each of the respective fourth number of sub-requests is issued by one of the detected processing resources.

2. The method as claimed in claim 1 , further comprising:

based on the issued second number of sub-requests, performing a pre-fetch operation to pre-fetch data from the source area for a cache; and

responsive to the issued fourth number of sub-requests, retrieving the pre-fetched data from the cache to service the copying of the another portion of the source data from the source area to the target area.

3. The method as claimed in claim 1 , wherein the second and the fourth number of sub-requests are issued by cores of a multi-core processor.

4. The method as claimed in claim 1 , wherein the third number corresponds to one of a half or a quarter or an eighth of the second number.

5. An apparatus, comprising:

a memory; and

processing circuitry coupled to the memory, the memory storing instructions which, when executed by the processing circuitry, cause the processing circuitry to:

receive a request to copy source data from a source area to a target area;

in response to receiving the request, partition the request into a plurality of first sub-requests for facilitating the copying of respective portions of the source data from the source area to the target area;

select a second number of sub-requests from the plurality of first sub-requests to enable sequential issuance of the sub-requests, wherein the second number is greater than three and less than the first number;

issue the second number of sub-requests such that each processing resource of a first number of processing resources issues one of the second number of subrequests;

detect that a predetermined third number of the issued second number of sub-requests has completed copying of respective portions of the source data from the source area to the target area, wherein the predetermined third number is greater than one and less than the second number, wherein the said detecting comprises detecting the processing resources that have completed the predetermined third number of the issued second number of sub-requests;

upon detecting the predetermined third number, and based on the selection of the second number of sub-requests, select a fourth number of sub-requests from the plurality of first sub-requests to enable sequential issuance of the first sub-requests, wherein the fourth number is equivalent to the predetermined third number; and

issue the fourth number of sub-requests such that each of the respective fourth number of sub-requests is issued by one of the detected processing resources.

6. The apparatus as claimed in claim 5 , wherein the memory stores instructions which, when executed by the processing circuitry, cause the processing circuitry to:

based on the issued second number of sub-requests, performing a pre-fetch operation to pre-fetch data from the source area for a cache; and

responsive to the issued fourth number of sub-requests, retrieving the pre-fetched data from the cache to service the copying of the another portion of the source data from the source area to the target area.

7. The apparatus as claimed in claim 5 , wherein the second and the fourth number of sub-requests are issued by cores of a multi-core processor.

8. The apparatus as claimed in claim 5 , wherein the third number corresponds to one of a half or a quarter or an eighth of the second number.

9. A computer program product including a set of non-transitory, computer-readable media having instructions which, when executed by processing circuitry, cause the processing circuitry to perform a method, the method comprising:

receiving a request to copy source data from a source area to a target area;

in response to receiving the request, partitioning the request into a plurality of first sub-requests for facilitating the copying of respective portions of the source data from the source area to the target area;

selecting a second number of sub-requests from the plurality of first sub-requests to enable sequential issuance of the sub-requests, wherein the second number is greater than three and less than the first number;

issuing the second number of sub-requests such that each processing resource of a first number of processing resources issues one of the second number of subrequests;

detecting that a predetermined third number of the issued second number of sub-requests has completed copying of respective portions of the source data from the source area to the target area, wherein the predetermined third number is greater than one and less than the second number, wherein the said detecting comprises detecting the processing resources that have completed the predetermined third number of the issued second number of sub-requests:

upon detecting the predetermined third number, and based on the selection of the second number of sub-requests, selecting a fourth number of sub-requests from the plurality of first sub-requests to enable sequential issuance of the first sub-requests, wherein the fourth number is equivalent to the predetermined third number; and

issuing the fourth number of sub-requests such that each of the respective fourth number of sub-requests is issued by one of the detected processing resources.

10. The computer program product as claimed in claim 9 , further comprising:

based on the issued second number of sub-requests, performing a pre-fetch operation to pre-fetch data from the source area for a cache; and

responsive to the issued fourth number of sub-requests, retrieving the pre-fetched data from the cache to service the copying of the another portion of the source data from the source area to the target area.

11. The computer program product as claimed in claim 9 , wherein the second and the fourth number of sub-requests are issued by cores of a multi-core processor.

12. The computer program product as claimed in claim 9 , wherein the third number corresponds to one of a half or a quarter or an eighth of the second number.

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 (042769/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 059803/0802 →
RELEASE OF SECURITY INTEREST AT REEL 042768 FRAME 0585 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058297/0536 →
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 →
PATENT SECURITY INTEREST (CREDIT) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 042768/0585 →
PATENT SECURITY INTEREST (NOTES) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 042769/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 11, 2017
From: TAYLOR, ALAN L.; OWEN, KARL M.; SPANG, H. AUSTIN, IV
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 041952/0488 →
Continuity (1)
Continuation In Part 14501518 · Sep 30, 2014
Cited By (2)
US 12,367,151 US 12,474,854