Inter-manycore Communication via Service Manager Shared Memory

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In a manycore architecture of a microkernel operating system, communication between a user process and a system service process requires multiple context switches, leading to low efficiency.

Innovation Solution

The implementation of an inter-manycore communications method using a Service Manager process that maps shared memory to virtual address spaces, allowing direct communication between user and system service processes by sharing memory addresses, thereby reducing the need for context switches.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If IPC inter-manycore communication mechanism is used for communication between user process and system service process on different microkernels, then communication between processes on different microkernels is enabled, but multiple context switches are required leading to low communication efficiency

Engineering Contradiction:
Improvecommunication capability between microkernelsVSAvoidcommunication efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent introduces a Monitor as an intermediary component running on each microkernel to manage inter-manycore communication. The Monitor handles message routing and coordination between user processes and system services across different microkernels, reducing the need for multiple context switches by providing a centralized communication management layer that can operate efficiently across microkernel boundaries.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The Monitor is designed as a universal component that handles multiple functions including message routing, service registration, and inter-manycore coordination. This multi-functional approach allows a single component to manage various aspects of inter-microkernel communication, reducing overall system complexity and improving efficiency by eliminating the need for separate dedicated mechanisms for each communication function.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Reliability

If multiple context switches are performed for inter-manycore communication, then complete communication protocol is maintained, but communication time increases

Engineering Contradiction:
Improvecommunication protocol complianceVSAvoidcommunication time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements service registration in advance where system services register themselves with the Monitor before actual communication occurs. This preliminary action allows the Monitor to have pre-established knowledge of service locations and communication paths, enabling faster message routing without requiring multiple context switches during actual communication operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The Monitor maintains copies of service registration information and communication metadata in memory on each microkernel. These copies allow the system to quickly retrieve communication information without requiring repeated context switches to access centralized storage, thus maintaining protocol compliance while reducing communication time.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9990306B2Inter-manycore communications method and system
Publication Date: 2018.06.05 HUAWEI TECH CO LTD
  • US9990306B2 patent drawing
  • US9990306B2 patent drawing
  • US9990306B2 patent drawing

AI summary

An inter-manycore communications method includes applying, by a service manager process, to a microkernel operating system for shared memory, and mapping shared memory, which is allocated by the microkernel operating system, to virtual address space of the service manager process; receiving and recording a service identifier of a system service process and a second shared memory address that corresponds to the service identifier; searching, according to a service identifier carried by a system service request, for the second shared memory address that corresponds to the service identifier carried by the system service request; and sending the service identifier carried by the system service request, a first shared memory address, and the second shared memory address that corresponds to the service identifier to a user process. According to the method, a problem that communication between a user process and a system service process needs multiple context switches can be solved.