# US 12,118,412 B2 · Data processing

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,118,412 B2
- Document ID: US12118412B2
- Status: Granted
- Kind: B2
- Application number: 17/126,217
- Filed: 2020-12-18
- Published: 2021-12-09
- Granted: 2024-10-15
- Earliest claimed: 2020-06-05
- Assignees: IOTech Systems Limited
- Applicants: IOTech Systems Limited
- Inventors: Stephen Osselton
- Web page: https://patentgrep.com/patent/US12118412B2

## CPC

- G06F 9/544: {Buffers; Shared memory; Pipes}
- G06F 9/546: {Message passing systems or structures, e.g. queues}
- G06F 12/1027: using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F 12/1081: for peripheral access to main memory, e.g. direct memory access [DMA]
- G06F 15/167: using a common memory, e.g. mailbox
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A data processing system comprising a processor and memory and on which is running an operating system. A computer program executable for implementing a control application for controlling an embedded system is loaded in the memory which controls the operating system to instantiate in an operating system memory a plurality of data processing components and a communication component. The communication component is configured to facilitate data communication between the data processing components using a publish-subscribe messaging pattern. The communication component and data processing components are instantiated in a single memory address space.

## Claims

### Claim 1

A data processing system comprising:
a processor and memory and on which is running an operating system, wherein a computer program executable for implementing a control application for controlling an embedded system is loaded in the memory which controls the operating system to instantiate in an operating system memory a plurality of data processing components and a communication component, wherein said communication component is a pub/sub databus and is configured to facilitate data communication between the data processing components using a publish-subscribe messaging pattern, and wherein the plurality of data processing components are sensor device services; and
said communication component and data processing components are instantiated and co-located in a single memory address space, wherein the single memory address space is a continuous range of valid addresses in the operating system memory that the operating system allocates to the embedded system control application.

### Claim 2 (depends on 1)

The data processing system according to claim 1, wherein the operating system is a real-time operating system.

### Claim 3 (depends on 2)

The data processing system according to claim 2, wherein the communication component maintains a plurality of topics, and the data processing components are configured to:
transmit data to be processed by other data processing components by publishing data to one of the plurality of topics, and receive data from other data processing components by subscribing to at least one of the plurality of topics.

### Claim 4 (depends on 3)

The data processing system according to claim 3, wherein the data processing components are configured to publish data to a given topic by appending a topic identifier to the data and communicate the data appended by the topic identifier to the communication component.

### Claim 5 (depends on 4)

The data processing system according to claim 4, wherein the data processing components are configured to subscribe to a given topic by virtue of subscribe data maintained by the communication component, the subscribe data linking topics with one or more data processing components.

### Claim 6 (depends on 5)

The data processing system according to claim 5, wherein, the communication component is configured to communicate received data associated with a topic to each data processing component that the subscribe data indicates is linked to that topic.

### Claim 7 (depends on 6)

The data processing system according to claim 6, wherein the communication component is configured to:
allocate a communication priority to each topic, and preferentially communicate data to the data processing components in accordance with the communication priority of the topic with which the data is associated.

### Claim 8 (depends on 3)

The data processing system according to claim 3, wherein the data processing system is a multi-core data processing system and the computer program executable is configured to implement a topic-based processor affinity technique by requesting the operating system bind processing tasks associated with one or more specific topics to one or more specific processor cores.

### Claim 9 (depends on 1)

The data processing system according to claim 1, wherein the data processing components and communication component are microservice components.

### Claim 10 (depends on 9)

The data processing system according to claim 9, wherein the data processing components and communication component are loosely coupled microservice components.

### Claim 11

The method of implementing a control application on a data processing system for controlling an embedded system, said method comprising:
loading a computer executable for implementing the control application into a memory of the data processing system;
instantiating, by an operating system of the data processing system under the control of the computer executable and in a single memory address space of an operating system memory of the operating system, a plurality of data processing components and a communication component co-located in the single memory address space, wherein the plurality of data processing components are sensor device services and the communication component is a pub/sub databus, and wherein the single memory address space is a continuous range of valid addresses in the operating system memory that the operating system allocates to the embedded system control application; and
facilitating, by the communication component, data communication between the data processing components using a publish-subscribe messaging pattern.

### Claim 12 (depends on 11)

The method according to claim 11, wherein the operating system is a real-time operating system.

### Claim 13 (depends on 12)

The method according to claim 12, comprising:
maintaining, by the communication component, a plurality of topics; transmitting, by the data processing components, data to be processed by other data processing components by publishing data to one of the plurality of topics; and
receiving, by the data processing components, data from other data processing components by subscribing to at least one of the plurality of topics.

### Claim 14 (depends on 13)

The method according to claim 13, comprising publishing, by the data processing components data to a given topic by:
appending a topic identifier to the data, and communicating the data appended by the topic identifier to the communication component.

### Claim 15 (depends on 14)

The method according to claim 14, comprising subscribing, by the data processing components, to a given topic by virtue of subscribe data maintained by the communication component, the subscribe data linking topics with one or more data processing components.

### Claim 16 (depends on 15)

The method according to claim 15, comprising communicating, by the communication component, received data associated with a topic to each data processing component that the subscribe data indicates is linked to that topic.

### Claim 17 (depends on 16)

The method according to claim 16, comprising, by the communication component:
allocating a communication priority to each topic, and preferentially communicating data to the data processing components in accordance with the communication priority of the topic with which the data is associated.

### Claim 18 (depends on 13)

The method according to claim 13, wherein the data processing system is a multi-core data processing system, said method comprising:
implementing, by the computer program executable a topic-based processor affinity technique by requesting the operating system bind processing tasks associated with one or more specific topics to one or more specific processor cores.

### Claim 19 (depends on 11)

The method according to claim 11, wherein the data processing components and communication component are loosely coupled microservice components.

### Claim 20

A computer executable for implementing a control application for controlling an embedded system, said computer executable comprising:
computer readable code configured such that when loaded onto a computing device, the computing device is controlled to:
control an operating system of the data processing system to instantiate, in a single memory address space of an operating system memory, a plurality of data processing components and a communication component co-located in the single memory address space, wherein the plurality of data processing components are sensor device services and the communication component is a pub/sub databus, and wherein the single memory address space is a continuous range of valid addresses in the operating system memory that the operating system allocates to the embedded system control application and
facilitate, using the communication component, data communication between the data processing components using a publish-subscribe messaging pattern.
