Program Rewriting Thread Reallocation for Multi-Bus Updates

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing program rewriting devices face limitations in transferring data to multiple buses in a vehicle on-board network system due to insufficient threads when the number of buses is large, leading to inefficient and prolonged program update times.

Innovation Solution

A program rewriting device that adjusts the transfer order of update data by creating queues based on data amounts and reallocates threads to buses with the largest remaining data, ensuring parallel transfer is maintained across all buses.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If multiple threads are used to transfer data to multiple buses in parallel, then data transfer speed is improved, but the system becomes limited by the insufficient number of threads when the number of buses is large

Engineering Contradiction:
Improvedata transfer speedVSAvoidadaptability to large number of buses
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic thread assignment where threads are not permanently bound to specific buses but are dynamically allocated to transfer queues based on real-time data amounts. The processing circuitry continuously monitors transfer progress and reassigns threads from completed transfers to queues with larger remaining data amounts, enabling the system to adapt to varying data volumes across multiple buses without being constrained by a fixed thread-to-bus mapping.

Inventive Principle:
Principle #15Dynamics

2Loss of time

If threads are assigned to each bus for parallel transfer, then program rewriting time is reduced, but thread resources are insufficient when the number of buses is relatively large

Engineering Contradiction:
Improveprogram rewriting timeVSAvoidnumber of available threads
Core Design Contradiction:
Loss of timeVSQuantity of substance

Solution Approach 1:

The patent applies partial action by having threads work on transfer queues in a round-robin fashion rather than dedicating one thread per bus. When a thread completes a transfer, it moves to the next queue with the largest remaining data amount. This allows the system to process multiple buses sequentially with fewer threads than the number of buses, accepting that not all buses are actively transferred to simultaneously, thereby reducing the required thread count while still achieving efficient overall transfer.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent ensures continuous useful action by implementing a mechanism where threads are continuously reassigned to transfer queues based on real-time monitoring of transfer progress. When a thread becomes available (after completing a transfer), it is immediately assigned to the next most demanding queue, eliminating idle time and ensuring that thread resources are constantly productive. This continuous reallocation maximizes the utilization of limited thread resources across all buses.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS12362961B2Program rewriting device and program rewriting method
Publication Date: 2025.07.15 TOYOTA JIDOSHA KK
  • US12362961B2 patent drawing
  • US12362961B2 patent drawing
  • US12362961B2 patent drawing

AI summary

Processing circuitry of a program rewriting device is configured to create a transfer queue for each bus by grouping update data for each electronic control unit, assign threads to transfer queues one by one, starting with a transfer queue with a relatively large transfer data amount, perform parallel transfer of the update data of the transfer queues to the gateway device by using the assigned threads, each time transfer of a piece of the update data is completed, select a transfer queue having a largest transfer data amount from among the transfer queue in which the transfer of the update data is completed and transfer queues to which the threads have not been assigned and in which transfer of the update data is suspended, and continue the parallel transfer by assigning, to the selected transfer queue, the thread assigned to the transfer queue for which the transfer has been completed.