Interrupt Vector Translation Lookaside Buffer for Low Latency Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional processors experience high interrupt latency due to the time-consuming process of calculating the address of the Interrupt Service Routine, which involves fetching and analyzing processor registers and memory locations, leading to increased cycle counts.

Innovation Solution

The implementation of an Interrupt-Vector Translation Lookaside Buffer (IVTLB) that stores the calculated address of the Interrupt Service Routine for each interrupt, allowing the processor to retrieve it directly from the buffer instead of recalculating it, thereby reducing the number of cycles required to respond to interrupts.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If the processor calculates the address of the Interrupt Service Routine by fetching and analyzing processor registers and memory locations, then the address can be accurately determined, but the interrupt latency increases due to the time-consuming calculation process

Engineering Contradiction:
Improveaddress calculation accuracyVSAvoidinterrupt latency
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent pre-calculates and stores the addresses of Interrupt Service Routines in an interrupt vector table during system initialization or before interrupts occur. When an interrupt occurs, the processor directly retrieves the pre-calculated address from the interrupt vector table using the interrupt vector as an index, eliminating the need for time-consuming runtime calculations while maintaining address accuracy.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If the processor retrieves the Interrupt Service Routine address from memory locations, then the address can be obtained, but the cycle count increases due to multiple memory access operations

Engineering Contradiction:
Improveaddress retrieval capabilityVSAvoidinterrupt response speed
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent segments the address retrieval process by separating the interrupt vector (which identifies the interrupt type) from the Interrupt Service Routine address. The interrupt vector is used as an index to directly access a specific entry in the interrupt vector table, which contains the pre-stored address. This segmentation eliminates the need for sequential memory scanning or complex register analysis, reducing memory access operations to a single direct lookup.

Inventive Principle:
Principle #1Segmentation

3Reliability

If the processor performs repeated address calculations for the same interrupt, then the address can be determined each time, but the cycle count accumulates unnecessarily

Engineering Contradiction:
Improveaddress determination consistencyVSAvoidrepeated calculation overhead
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent creates a copy of the Interrupt Service Routine address and stores it in the interrupt vector table during system initialization or before the interrupt occurs. Instead of performing repeated calculations each time an interrupt is serviced, the processor simply retrieves the pre-copied address from the interrupt vector table using the interrupt vector as an index. This copying approach ensures consistent address determination while eliminating repeated calculation overhead.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10324872B2Interrupt-vector translation lookaside buffer
Publication Date: 2019.06.18 INTEL CORP
  • US10324872B2 patent drawing
  • US10324872B2 patent drawing
  • US10324872B2 patent drawing

AI summary

Systems, Methods and apparatuses relating to processor cores that respond to interrupts are disclosed. In one embodiment, an apparatus includes an interrupt interface, a memory interface; and a processor core to generate an interrupt acknowledge signal in response to a received interrupt; receive data in return; determine whether the received data is an interrupt service routine address, the interrupt service routine address being stored in an interrupt vector translation lookaside buffer; and, if not, use the received data to calculate the interrupt service routine address; wherein the processor core is further to use the interrupt service routine address to issue a request on the memory interface to fetch the interrupt service routine, and to execute the interrupt service routine.