Software Code Acquisition via Negative Acknowledgement Selection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

USB bus-powered ADSL modem products face high cost pressures and require flexible software storage, but using only on-chip SRAM is challenging due to limited memory, and existing code swap mechanisms introduce time dependencies and transmission delays.

Innovation Solution

A system that receives software code portions from a host computer, using negative acknowledgements to select and download only the necessary code portions, allowing for precise synchronization and real-time exploitation of SRAM resources, independent of host computer status and performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If code swap mechanism is used to download software pieces from PC to modem, then memory cost is reduced by using only on-chip SRAM, but transmission delay and time dependency on host reaction increase

Engineering Contradiction:
Improvememory capacityVSAvoidtransmission delay
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The host computer prepares and queues multiple code portions in advance before the modem actually needs them. The modem sends a request for a code portion, and the host already has subsequent portions ready to transmit, eliminating waiting time caused by host processing delays during the critical transmission window.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The software is divided into multiple small code portions that can be transmitted independently. This allows the host to prepare and queue multiple segments in advance, and the modem to receive them in a pipelined fashion, reducing the impact of host reaction delays on overall transmission time.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If multiple code portions are transmitted simultaneously from host to device, then download flexibility is improved, but synchronization control becomes difficult

Engineering Contradiction:
Improvedownload flexibilityVSAvoidsynchronization accuracy
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The modem sends negative acknowledgements (NAKs) for competing code portions to the host, providing feedback that allows the host to control which portions are transmitted. When the modem selects a code portion, it stops sending NAKs for that portion, signaling the host to transmit it while delaying others, thus maintaining synchronization control.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system dynamically controls the transmission of multiple code portions by using NAKs to delay non-selected portions and allowing only the selected portion to be transmitted. This dynamic control mechanism maintains synchronization while preserving download flexibility.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8595396B2System and process for acquiring a software code, corresponding host computer and software transmission process and associated products
Publication Date: 2013.11.26 INTERDIGITAL CE PATENT HOLDINGS SAS
  • US8595396B2 patent drawing
  • US8595396B2 patent drawing
  • US8595396B2 patent drawing

AI summary

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.