Microprocessor Execution Units for Embedded System Instruction Prioritization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current microprocessor architectures for embedded systems, particularly those in IoT devices, are inadequate for handling multiple simultaneous computational tasks due to limited resources and inefficient prioritization mechanisms, leading to poor performance and high power consumption when processing asynchronous streams of physical events.

Innovation Solution

The integration of priority and atomicity information with instructions allows for unified microarchitectural support for prioritized execution, enabling simultaneous execution of multiple instructions and optimized resource allocation, reducing power consumption and increasing resource utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional microprocessor architectures are used for embedded systems, then device complexity is kept low, but productivity and performance deteriorate when handling multiple simultaneous computational tasks

Engineering Contradiction:
ImproveperformanceVSAvoiddevice complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The processor is divided into multiple independent execution units (EU0, EU1, EU2, EU3) that can simultaneously execute different instructions. Each execution unit has its own instruction queue and control logic, enabling parallel processing of multiple tasks without increasing overall system complexity through modular design

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The execution units are designed with universal functionality to handle various instruction types (arithmetic, logical, memory operations) through a common operational framework. The same execution units can process different instruction formats by interpreting operation codes, reducing the need for specialized hardware for each task type

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

2Productivity

If priority and atomicity information is integrated with instructions, then productivity improves through simultaneous execution, but device complexity increases due to additional control mechanisms

Engineering Contradiction:
Improveresource utilizationVSAvoidcontrol mechanisms
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Priority and atomicity information is merged directly into the instruction structure itself rather than being stored separately. Each instruction contains embedded priority fields and atomicity flags that are processed by the execution units during normal instruction fetch and decode operations, eliminating the need for separate control structures

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The execution units automatically extract and process priority and atomicity information from the instruction fields during normal operation. The control logic within each execution unit self-manages the prioritization and atomicity enforcement without requiring external control mechanisms or additional hardware components

Inventive Principle:
Principle #25Self-service

3Productivity

If multiple simultaneous threads of execution are implemented, then productivity increases, but use of energy increases due to additional processing units

Engineering Contradiction:
ImprovethroughputVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The execution units are activated based on the availability of ready-to-execute instructions rather than continuous operation. Instructions are fetched and prepared in cycles, and execution units are enabled only when valid instruction-operand tuples are available, creating a periodic activation pattern that reduces average power consumption while maintaining high throughput during active periods

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The processor dynamically adjusts the number of active execution units based on workload characteristics and instruction readiness. Execution units can be enabled or disabled on-the-fly depending on whether there are sufficient ready instructions to keep them busy, optimizing the balance between throughput and power consumption in real-time

Inventive Principle:
Principle #15Dynamics

4Productivity

If resource allocation is optimized for simultaneous execution, then productivity improves, but loss of time increases due to resource contention and prioritization overhead

Engineering Contradiction:
Improveresource utilizationVSAvoidlatency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

Instructions are pre-fetched and prepared in advance with their operand requirements identified before execution. The instruction queues maintain ready-to-execute instruction-operand tuples, and priority information is pre-processed and embedded in the instruction structure, eliminating the need for time-consuming resource arbitration during actual execution

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Instruction queues serve as intermediary buffers between instruction fetch and execution units. These queues hold prepared instruction-operand tuples and manage the flow to execution units based on priority and readiness, acting as a mediator that smooths resource allocation without introducing significant latency penalties

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10496409B2Method and system for managing control of instruction and process execution in a programmable computing system
Publication Date: 2019.12.03 THE ARIZONA BOARD OF REGENTS ON BEHALF OF THE UNIV OF ARIZONA
  • US10496409B2 patent drawing
  • US10496409B2 patent drawing
  • US10496409B2 patent drawing

AI summary

Systems and methods for prioritizing executions of a plurality of instructions in a computer system (such as an embedded system) are disclosed. An instruction can be associated with a priority and an atomicity. When an instruction is fetched, the computer system can access the priority and atomicity information together with the accessing the operand and decoding the instruction. The instruction may be executed in accordance with the fetched priority and atomicity. In some situations, the plurality of instructions may be executed in parallel by multiple functional units. Some of the functional units may be the same type, and therefore allowing multiple instructions to use the same type of functional unit at the same time, without waiting for another instruction to finish.