IP Library Granted Patent US 8,595,396
Granted Patent B2
US 8,595,396 · App. 11/334,070 · Granted Nov 26, 2013

System and process for acquiring a software code, corresponding host computer and software transmission process and associated products

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,595,396
App. No.
11/334,070
Granted
Nov 26, 2013
Kind
B2
Abstract

The present invention concerns a system and a process for acquiring a software code (SW) in a device from a host computer, a host computer and a software transmission process. The system comprises receiving means of at least one code portion of the software code, at least two competing available code portions (Sik) being proposed simultaneously to the device for being downloaded, delaying means sending to the computer for each competing portion, successive negative acknowledgements (NAK), and selecting means of the code portion to be received among the competing available ones, the delaying means stopping sending the negative acknowledgements for the selected portion, so that the receiving means receive only the selected portion.

Claims (30)

1. In a device coupled to a host computer, a method for dynamically acquiring program software code from the host computer for execution in the device, the method comprising:

receiving, from the host computer, proposals for at least two competing portions of the program software code for downloading to said device from the host computer,

sending, to the host computer, for each of said proposals for the at least two competing portions of the program software code, successive negative acknowledgements, so that as long as a negative acknowledgement is sent for a code portion of the program software code, said code portion of the program software code is not received at said device,

selecting one of the proposals for the at least two competing portions of the program software code as a selected portion of the program software code to be received among said at least two competing portions of the program software code, wherein said negative acknowledgements are stopped being sent for the selected portion of the program software code, so that only said selected portion of the program software code is received, while reception of any other available code portion of the program software code competing with said selected portion of the program software code is prevented, and

storing the selected and received portion of the program software code at said device on a computer readable storage medium for subsequent execution in the device.

2. In the device according to claim 1 , the method further comprising:

sending from said device to the host computer at least one transmission request before stopping sending said negative acknowledgements for said selected portion of the program software code and before receiving said selected portion of the program software code, when none of said other available code portions of the program software code competing with said selected portion of the program software code is appropriate for being selected.

3. In the device according to claim 1 , the method comprising wherein said receiving, sending and selecting are provided for at least two successively received code portions of the program software code.

4. In the device according to claim 3 , the method comprising wherein:

said receiving further comprises receiving at least two of said competing portions of the program software code on at least two end points,

and said sending further comprises sending to the host computer said successive negative acknowledgements for each of said end points.

5. In the device according to claim 1 , the method comprising wherein said sending further comprises continuously sending said negative acknowledgements for each non-selected one of the at least two competing portions of the program software code, when said negative acknowledgements are stopped being sent for said selected portion of the program software code.

6. In the device according to claim 1 , the method comprising wherein said storing further comprises temporarily storing said selected code portion of the program software code on Static Random Access Memory.

7. In the device according to claim 1 , the method comprising wherein said receiving and sending further comprises communicating with the host computer via a USB bus.

8. In the device according to claim 1 , the method comprising wherein said sending further comprises sending from said device to the host computer for said selected portion of the program software code, at least one positive acknowledgement before receiving said selected portion of the program software code.

9. In the device according to claim 1 , the method comprising wherein the device is a DSL modem.

10. In the device according to claim 9 , the method comprising wherein said device executes the received portion of the program software code in real time.

11. A non-transitory computer program product stored on a non-transitory computer-readable storage medium, wherein the non-transitory computer program product comprises program code for carrying out the method of claim 1 when said program code is executed on said device coupled to said host computer.

12. In a host computer coupled to a device, a method for software transmission to the device, comprising:

storing program software code in the form of at least two code portions,

transmitting proposals-to-transmit for said at least two code portions of the program software code to the device,

delaying the transmission of any of said at least two code portions of the program software code to said device upon receiving negative acknowledgements from said device for said at least two code portions of the program software code, until the receiving of said negative acknowledgements is stopped, so that as long as a negative acknowledgement is received for a particular code portion of the program software code, said particular code portion of the program software code is not transmitted, and

wherein said method further comprises:

simultaneously proposing to said device at least two of said at least two code portions of the program software code competing in time for transmission, the transmission of each of said at least two competing code portions of the program software code being liable to be delayed, and

cancelling proposals-to-transmit for non-selected code portions of the program software code and storing proposals-to-transmit for code portions of the program software code where said negative acknowledgements is stopped for subsequent execution in the device.

13. In the host computer according to claim 12 , the method comprising wherein said-simultaneously proposing of said at least two competing code portions of the program software code to said device is performed via at least two different end points of said device.

14. In the host computer according to claim 13 , the method comprising providing at least two branches to be proposed successively to said device for transmission, each of said at least two branches comprising at least one of said at least two competing code portions of the program software code competing in time with at least one of another of said at least two competing code portions of the program software code of another of said at least two branches.

15. In the host computer according to claim 14 , the method comprising wherein at least one of said at least two branches comprises at least two of said at least two competing code portions of the program software code.

16. In the host computer according to claim 15 , the method comprising canceling any of said at least two branches after receiving negative acknowledgements for the currently proposed one of said at least two competing code portions of the program software code of said at least two branches while ceasing to receive negative acknowledgements for another currently proposed one of said at least two competing code portions of the program software code of another of said at least two branches.

17. A non-transitory computer program product stored on a non-transitory computer-readable storage medium, wherein the non-transitory computer program product comprises program code for carrying out the method of claim 12 when said program code is executed on the host computer.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY NAME FROM INTERDIGITAL CE PATENT HOLDINGS TO INTERDIGITAL CE PATENT HOLDINGS, SAS. PREVIOUSLY RECORDED AT REEL: 47332 FRAME: 511. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Feb 28, 2024
From: THOMSON LICENSING
To: INTERDIGITAL CE PATENT HOLDINGS, SAS
Reel/Frame 066703/0509 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2018
From: THOMSON LICENSING
To: INTERDIGITAL CE PATENT HOLDINGS
Reel/Frame 047332/0511 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2006
From: VILLERS, DENIS; ROSSEEL, JZN
To: THOMSON LICENSING
Reel/Frame 017493/0314 →