Interrupt-Controlled Prefetch Buffer for Peripheral Data Transfer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The increasing difference in processing speed between central processing units and peripheral devices leads to significant performance impact due to longer access times for peripherals, which existing solutions attempt to address with dedicated input/output processors but require substantial software overhead, making them difficult for customers to implement effectively.

Innovation Solution

A prefetching and caching mechanism that uses an interrupt controlled peripheral interface to delay signaling of interrupts and store prefetched peripheral data in a cache with faster access times, maintaining cache coherency through write-through policies and user-selectable configuration for non-latency sensitive peripherals.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If a dedicated input/output processor core is implemented to match peripheral performance, then peripheral access performance is improved, but software overhead increases substantially

Engineering Contradiction:
Improveperipheral access speedVSAvoidsoftware overhead
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent implements a prefetch buffer that pre-loads peripheral data into high-speed memory before the CPU needs it. This preliminary action eliminates the need for complex software I/O processing by having data ready in advance, thus improving access speed without increasing software overhead.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces a prefetch buffer as an intermediary layer between the slow peripheral and the fast CPU. This buffer mediates the speed mismatch by caching data in high-speed memory, allowing the CPU to access data quickly without requiring complex I/O processor software.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If the CPU waits for peripheral data during access, then data accuracy is maintained, but actual CPU throughput decreases

Engineering Contradiction:
Improvedata accuracyVSAvoidCPU throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The prefetch buffer pre-loads data before the CPU needs it, so the CPU does not need to wait during data access. This maintains data accuracy while eliminating wait states, thereby preserving CPU throughput and improving overall productivity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

By maintaining a prefetch buffer that continuously loads data in the background, the CPU can maintain continuous productive action without interruption. The buffer ensures data is always ready when needed, eliminating idle wait cycles while preserving data integrity.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10002089B2Interrupt-controlled direct memory access peripheral data transfer
Publication Date: 2018.06.19 NXP USA INC
  • US10002089B2 patent drawing
  • US10002089B2 patent drawing
  • US10002089B2 patent drawing

AI summary

An interrupt controlled prefetching and caching technique includes transferring peripheral data from a peripheral to a peripheral cache via direct memory access in response to receiving an interrupt request from the peripheral. The technique includes executing an interrupt service routine prologue in response to completion of transferring of peripheral data. The technique may include providing a base address and a transfer trigger to initiate the transferring of the peripheral data. The technique may include executing a peripheral interrupt service routine after executing the interrupt service routine prologue. The technique may include executing an interrupt service routine epilogue after executing the peripheral interrupt service routine, the interrupt service routine epilogue including resetting an interrupt status flag associated with the interrupt request. Executing the interrupt service routine may include executing instructions using the peripheral data at a rate at least an order of magnitude faster than an access time of the peripheral.