IP Library Granted Patent US 9,058,191
Granted Patent B2
US 9,058,191 · App. 13/310,928 · Granted Jun 16, 2015

Direct transfer of executable software image to memory allocated by target processor based on transferred image header

Inventors: Nitin Gupta (San Diego, CA); Daniel H. Kim (San Diego, CA); Igor Malamant (San Diego, CA); Steve Haehnichen (San Diego, CA)
Assignee: QUALCOMM Incorporated
G06F9/445G06F9/06G06F9/4405
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 9,058,191
App. No.
13/310,928
Granted
Jun 16, 2015
Kind
B2
Abstract

In a multiprocessor system, a primary processor may store an executable image for a secondary processor. A communication protocol assists the transfer of an image header and data segment(s) of the executable image from the primary processor to the secondary processor. Messages between the primary processor and secondary processor indicate successful receipt of transferred data, termination of a transfer process, and acknowledgement of same.

Claims (65)

1. A communication method between two processors in a multi-processor system, the method comprising:

initiating, by a secondary processor, communications with a primary processor;

instructing, by the secondary processor, the primary processor to transfer an image header for an executable software image, said executable software image comprising said image header and at least one data segment;

receiving, by the secondary processor, the image header and at least one data segment from the primary processor;

indicating, by the secondary processor, to the primary processor, successful receipt of the image header and at least one data segment;

directly storing, by the secondary processor, the at least one data segment of the executable software image within a target location of a system memory of the secondary processor, the target location allocated by the secondary processor according to the image header; and

acknowledging, by the secondary processor, to the primary processor receipt of an indication of termination of transfer.

2. The method of claim 1 in which the image header comprises an image size and location in memory in which image data is located.

3. The method of claim 1 further comprising sending, by the secondary processor, a transfer request to the primary processor for each of the at least one data segment.

4. The method of claim 1 in which the instructing comprises sending, by the secondary processor, the primary processor a message comprising an image identification, data offset, and data length.

5. The method of claim 1 further comprising setting, by the secondary processor, a receive buffer for an incoming data segment to be a destination address in the system memory of the secondary processor.

6. A multi-processor device comprising:

means for initiating, by a secondary processor, communications with a primary processor;

means for instructing, by the secondary processor, the primary processor to transfer an image header for an executable software image, said executable software image comprising said image header and at least one data segment;

means for receiving, by the secondary processor, the image header and at least one data segment from the primary processor;

means for indicating, by the secondary processor, to the primary processor, successful receipt of the image header and at least one data segment;

means for directly storing, by the secondary processor, the at least one data segment of the executable software image within a target location of a system memory of the secondary processor, the target location allocated by the secondary processor according to the image header; and

means for acknowledging, by the secondary processor, to the primary processor receipt of an indication of termination of transfer.

7. The multi-processor device of claim 6 in which the image header comprises an image size and location in memory in which image data is located.

8. The multi-processor device of claim 6 further comprising means for sending, by the secondary processor, a transfer request to the primary processor for each of the at least one data segment.

9. The multi-processor device of claim 6 in which the means for instructing comprises means for sending, by the secondary processor, the primary processor a message comprising an image identification, data offset, and data length.

10. The multi-processor device of claim 6 further comprising means for setting, by the secondary processor, a receive buffer for an incoming data segment to be a destination address in the system memory of the secondary processor.

11. A computer program product comprising:

a non-transitory computer-readable medium having non-transitory program code recorded thereon, the non-transitory program code comprising:

program code to initiate, by a secondary processor, communications with a primary processor;

program code to instruct, by the secondary processor, the primary processor to transfer an image header for an executable software image, said executable software image comprising said image header and at least one data segment;

program code to receive, by the secondary processor, the image header and at least one data segment from the primary processor;

program code to indicate, by the secondary processor, to the primary processor, successful receipt of the image header and at least one data segment;

program code to directly store, by the secondary processor, the at least one data segment of the executable software image within a system memory of the secondary processor, the target location allocated by the secondary processor according to the image header; and

program code to acknowledge, by the secondary processor, to the primary processor receipt of an indication of termination of transfer.

12. The computer program product of claim 11 in which the image header comprises an image size and location in memory in which image data is located.

13. The computer program product of claim 11 in which the non-transitory program code further comprises program code to send, by the secondary processor, a transfer request to the primary processor for each of the at least one data segment.

14. The computer program product of claim 11 in which the program code to instruct comprises program code to send, by the secondary processor, the primary processor a message comprising an image identification, data offset, and data length.

15. The computer program product of claim 11 in which the non-transitory program code further comprises program code to set, by the secondary processor, a receive buffer for an incoming data segment to be a destination address in the system memory of the secondary processor.

16. A communication method between two processors in a multi-processor system, the method comprising:

receiving, by a primary processor, an instruction to transfer an image header for an executable software image, said executable software image comprising said image header and at least one data segment;

sending, by the primary processor, the image header and at least one data segment to a secondary processor, the at least one data segment of the executable software image being directly stored within a target location of a system memory of the secondary processor, the target location allocated according to the image header;

receiving, by the primary processor, an indication from the secondary processor of successful receipt of the image header and at least one data segment;

sending, by the primary processor, an indication of termination of the executable image transfer; and

receiving, by the primary processor, an acknowledgment from the secondary processor of receipt of the indication of termination of transfer.

17. The method of claim 16 in which the image header comprises an image size and location in memory in which image data is located.

18. The method of claim 16 further comprising receiving, by the primary processor, a transfer request to the primary processor for each of the at least one data segment.

19. The method of claim 16 further comprising receiving, by the primary processor, a message from the secondary processor comprising an image identification, data offset, and data length.

20. The method of claim 19 further comprising sending data based on the message.

21. A multi-processor device comprising:

means for receiving, by a primary processor, an instruction to transfer an image header for an executable software image, said executable software image comprising said image header and at least one data segment;

means for sending, by the primary processor, the image header and at least one data segment to a secondary processor, the at least one data segment of the executable software image received being directly stored within a target location of a system memory of the secondary processor, the target location allocated according to the image header;

means for receiving, by the primary processor, an indication from the secondary processor of successful receipt of the image header and at least one data segment;

means for sending, by the primary processor, an indication of termination of the executable image transfer; and

means for receiving, by the primary processor, an acknowledgment from the secondary processor of receipt of the indication of termination of transfer.

22. The multi-processor device of claim 21 in which the image header comprises an image size and location in memory in which image data is located.

23. The multi-processor device of claim 21 further comprising means for receiving, by the primary processor, a transfer request to the primary processor for each of the at least one data segment.

24. The multi-processor device of claim 21 further comprising means for receiving, by the primary processor, a message from the secondary processor comprising an image identification, data offset, and data length.

25. The method of claim 24 further comprising means for sending data based on the message.

26. A computer program product comprising:

a non-transitory computer-readable medium having non-transitory program code recorded thereon, the non-transitory program code comprising:

program code to receive, by a primary processor, an instruction to transfer an image header for an executable software image, said executable software image comprising said image header and at least one data segment;

program code to send, by the primary processor, the image header and at least one data segment to a secondary processor, the at least one data segment of the executable software image being directly stored within a target location of a system memory of the secondary processor, the target location allocated according to the image header;

program code to receive, by the primary processor, an indication from the secondary processor of successful receipt of the image header and at least one data segment;

program code to send, by the primary processor, an indication of termination of the executable image transfer; and

program code to receive, by the primary processor, an acknowledgment from the secondary processor of receipt of the indication of termination of transfer.

27. The computer program product of claim 26 in which the image header comprises an image size and location in memory in which image data is located.

28. The computer program product of claim 26 in which the non-transitory program code further comprises program code to receive, by the primary processor, a transfer request to the primary processor for each of the at least one data segment.

29. The computer program product of claim 26 in which the non-transitory program code further comprises program code to receive, by the primary processor, a message from the secondary processor comprising an image identification, data offset, and data length.

30. The computer program product of claim 29 in which the non-transitory program code further comprises program code to send data based on the message.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 31, 2017
From: GUPTA, NITIN; KIM, DANIEL H; MALAMANT, IGOR; HAENICHEN, STEVE
To: QUALCOMM INCORPORATED
Reel/Frame 042544/0799 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2011
From: GUPTA, NITIN; KIM, DANIEL H.; MALAMANT, IGOR; HAEHNICHEN, STEVE
To: QUALCOMM INCORPORATED
Reel/Frame 027327/0535 →
Continuity (6)
Continuation In Part 13052516 · Mar 21, 2011
Provisional Application 61316369 · Mar 22, 2010
Provisional Application 61324035 · Apr 14, 2010
Provisional Application 61324122 · Apr 14, 2010
Provisional Application 61325519 · Apr 19, 2010
Related Publication 20120089814A1 · Apr 12, 2012