Reducing Inter-Task Latency via RPC Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing multiprocessor systems face significant inter-task latency due to the synchronous nature of remote procedure calls (RPCs), which hinders performance while asynchronous RPCs are difficult for programmers to use effectively, leading to issues like race conditions and deadlocks.

Innovation Solution

A method that replaces synchronous RPCs with initiation and wait instructions, allowing for reordering of instructions based on runtime resource descriptions and dependencies to reduce inter-task latency, while maintaining the simplicity of synchronous RPC programming.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If synchronous RPCs are used, then programming simplicity is improved, but inter-task latency increases

Engineering Contradiction:
Improveprogramming simplicityVSAvoidinter-task latency
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent segments the synchronous RPC call into two separate instructions: an initiation instruction that starts the remote procedure execution, and a wait instruction that pauses execution until completion. This segmentation allows the processor to issue multiple initiation instructions in sequence without waiting for each to complete, thereby reducing inter-task latency while maintaining the synchronous programming model through the wait instruction.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The initiation instruction performs the action of starting the remote procedure execution in advance, before the actual completion and return of results. By issuing initiation instructions ahead of time and using wait instructions to synchronize at appropriate points, the system reduces the overall latency of task execution sequences while preserving the synchronous programming interface.

Inventive Principle:
Principle #10Preliminary action

2Loss of time

If asynchronous RPCs are used, then inter-task latency is reduced, but programming complexity increases

Engineering Contradiction:
Improveinter-task latencyVSAvoidprogramming simplicity
Core Design Contradiction:
Loss of timeVSEase of operation

Solution Approach 1:

The patent introduces wait instructions as intermediaries between the initiation instructions and the actual synchronous operations. These wait instructions act as mediators that restore the synchronous programming model by pausing execution until remote procedures complete, thereby hiding the asynchronous execution mechanism from the programmer and maintaining programming simplicity while achieving reduced latency through parallel initiation of multiple RPCs.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If multiple synchronous RPCs are executed sequentially, then programming simplicity is maintained, but signaling overhead increases

Engineering Contradiction:
Improveprogramming simplicityVSAvoidsignaling overhead
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

By segmenting synchronous RPC calls into initiation and wait instructions, the patent enables the processor to issue multiple initiation instructions without immediate waiting, thereby reducing the frequency of signaling operations between the control processor and remote processors. The signaling overhead is reduced because the wait instructions can be batched or optimized, and the initiation instructions can be processed in parallel.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8359588B2Reducing inter-task latency in a multiprocessor system
Publication Date: 2013.01.22 ARM LTD
  • US8359588B2 patent drawing
  • US8359588B2 patent drawing
  • US8359588B2 patent drawing

AI summary

A method of reducing inter-task latency for software comprising a sequence of instructions including a synchronous remote procedure call to be executed on a multiprocessor system comprising a calling processor and at least one remote engine. The method comprises the steps of: inputting the software; inputting a runtime resource description describing a runtime environment of the multiprocessor system; identifying the synchronous remote procedure call in the sequence of instructions; replacing the synchronous remote procedure call in the sequence of instructions with an initiation instruction and a wait instruction to generate a substitute sequence of instructions; reordering the substitute sequence of instructions with reference to the runtime resource description and the dependencies to generate a reordered sequence of instructions; and outputting the reordered sequence of instructions.