Doorbell Flag Scan Controller for Low Latency Interrupt Handling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current system status and error reporting methods, such as interrupt-based and message-based schemes, lead to high latency and increased processor utilization, particularly detrimental in real-time systems, as they require significant processing power for polling and context switching, limiting system performance.

Innovation Solution

A doorbell system is introduced, utilizing flag registers and a flag scan controller to generate doorbell commands that include flag register addresses and flags, allowing the system processor to efficiently identify and service multiple activated flags simultaneously, with the ability to clear flags via software write operations, thereby reducing processor utilization and eliminating race conditions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If interrupt-based schemes are used for status and error reporting, then system devices can notify the processor of status changes, but the processor must poll devices one by one to identify the interrupt source, increasing processor utilization and latency

Engineering Contradiction:
Improvestatus reporting reliabilityVSAvoidinterrupt latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent introduces an intermediary mechanism (doorbell command with flag register address) that directly identifies the source of status changes. Instead of polling multiple devices to find the interrupt source, the system uses a flag register address field in the doorbell command to directly point to the specific device and register that generated the interrupt, eliminating the time-consuming polling process while maintaining reliable status reporting

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent implements preliminary action by pre-organizing status information in flag registers before interrupts are generated. Each device has predetermined flag registers that contain status flags, and the doorbell command includes the address of the flag register that generated the interrupt. This preliminary organization allows the processor to immediately identify the interrupt source without sequential polling, reducing interrupt latency while ensuring reliable status reporting

Inventive Principle:
Principle #10Preliminary action

2Loss of time

If message-based schemes with interrupt vectors are used, then the processor can identify the message source without polling, but the processor must still poll to determine the specific status or error, increasing processor utilization

Engineering Contradiction:
Improveinterrupt identification timeVSAvoidprocessor power consumption
Core Design Contradiction:
Loss of timeVSUse of energy by moving object

Solution Approach 1:

The patent merges the identification of the message source and the determination of the specific status into a single operation. The doorbell command combines the flag register address (identifying the source) with the actual flag values (indicating the specific status or error) in one unified message structure. This allows the processor to simultaneously identify both the device and the specific condition without requiring separate polling operations, reducing processor power consumption while maintaining fast interrupt identification

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The doorbell command structure serves multiple functions simultaneously: it identifies the interrupt source through the flag register address, communicates the specific status or error through the flag values, and enables the processor to take immediate action. This multi-functional design eliminates the need for separate polling operations to determine the specific status, reducing processor utilization and power consumption while maintaining efficient interrupt handling

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

3Measurement precision

If traditional polling methods are used to determine system status, then the processor can identify activated flags, but significant processing power is consumed for polling operations

Engineering Contradiction:
Improvestatus detection accuracyVSAvoidprocessor power for polling
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The patent implements self-service by having the system device automatically prepare and transmit the flag register address and flag values in the doorbell command. Instead of requiring the processor to poll and read multiple registers to determine status, the device itself services the status reporting function by providing all necessary information (which register and what flags are activated) in a single doorbell command. This eliminates the need for processor-powered polling operations while maintaining precise status detection accuracy

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS7617346B2Rapid input/output doorbell coalescing to minimize CPU utilization and reduce system interrupt latency
Publication Date: 2009.11.10 AXIRO SEMICONDUCTOR INC
  • US7617346B2 patent drawing
  • US7617346B2 patent drawing
  • US7617346B2 patent drawing

AI summary

Status/error reporting is implemented using a doorbell system. A plurality of flag registers are included on a system device, such as a serial buffer. Each flag register has a corresponding address, and stores a plurality of flags. A flag scan controller accesses the flag registers in a predetermined priority order, using the flag register addresses. Upon detecting that one or more of the flags of a flag register are activated, the flag scan controller causes a doorbell command to be generated. The doorbell command includes the flag register address and the corresponding flags. A system processor receives the doorbell command and services the activated flags. Once the activated flags are serviced, the system processor performs one or more software write operations to clear the flags within the system device. The system processor can simultaneously service multiple flags. The system processor can also simultaneously clear multiple flags.