Dual Data Pointer Context Switching in 8051 Microcontrollers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The 8051 microcontroller's single data pointer configuration leads to bottlenecks when accessing data memory, requiring additional instructions for context switching between dual data pointers, which increases program code size and complexity, resulting in slower processor performance.

Innovation Solution

Implementing a dual data pointer configuration with extended instructions that allow fast context switching by using a configuration register to select between data pointers and prefixing existing instructions with an escape code (A5h), reducing the need for additional increment instructions and optimizing instruction execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a single data pointer register is used in the 8051 microcontroller, then the device complexity is reduced, but the processor performance deteriorates due to bottlenecks when accessing data memory

Engineering Contradiction:
Improvedata pointer configurationVSAvoidprocessor performance
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent divides the single data pointer register into multiple separate data pointer registers (DPTR0 and DPTR1). Each data pointer register can independently hold a 16-bit address, allowing simultaneous access to different memory locations without conflict. This segmentation eliminates the bottleneck caused by a single shared data pointer, thereby improving processor performance while maintaining manageable device complexity through systematic organization.

Inventive Principle:
Principle #1Segmentation

2Productivity

If dual data pointer registers are implemented with a control bit for selection, then the processor performance is improved, but the program code size increases due to additional increment instructions required for context switching

Engineering Contradiction:
Improveprocessor performanceVSAvoidprogram code size
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent incorporates a data pointer select (DPS) control bit in the auxiliary register 1 (AUXR1) that automatically selects between DPTR0 and DPTR1 based on the current context. This preliminary setup of the selection mechanism eliminates the need for software-based increment instructions to switch between data pointers. The context switching is handled automatically by the hardware, reducing program code size while maintaining improved processor performance.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If frequent context switching between dual data pointers is performed using increment instructions, then the data access flexibility is improved, but the execution cycles increase resulting in slower processor performance

Engineering Contradiction:
Improvedata access flexibilityVSAvoidexecution cycles
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent implements a mechanism where the DPS control bit automatically manages data pointer selection without requiring explicit software intervention. When a data pointer instruction is executed, the system self-services by automatically toggling the DPS bit and selecting the appropriate data pointer register. This eliminates the need for manual increment instructions to switch contexts, reducing execution cycles and time loss while maintaining data access flexibility.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces the mechanical/software-based approach of using increment instructions for context switching with a hardware-based automatic selection mechanism. The DPS control bit and associated logic circuitry automatically manage the switching between DPTR0 and DPTR1, substituting the manual software manipulation with an automated hardware process. This substitution reduces execution cycles and eliminates the time overhead associated with frequent context switching operations.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS8370606B2Switching data pointers based on context
Publication Date: 2013.02.05 ATMEL CORP
  • US8370606B2 patent drawing
  • US8370606B2 patent drawing
  • US8370606B2 patent drawing

AI summary

Apparatus and methods for quickly switching active context between data pointer registers are disclosed. The apparatus can include a first register operable for storing a first data pointer and a second register operable for storing a second data pointer. A configuration register can provide a first signal specifying either the first or the second data pointer as an active data pointer. An instruction decoder can receive a data pointer instruction and output a second signal. The first and second signals can be independent from one another. Decoding logic coupled to the logic devices can output one of the first or second data pointers as the active data pointer in response to the first and second signals.