Virtual GPIO Controller Emulation for Pin Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computing devices require a large number of physical GPIO pins to support various functionalities, which can be costly and difficult to customize, and existing solutions do not efficiently reduce the number of physical pins needed while maintaining functionality.

Innovation Solution

A virtual GPIO controller is established, which emulates physical GPIO pins through software, reducing the need for physical pins by using a standard interface for GPIO controller drivers and firmware, allowing the operating system to interact with virtual GPIO pins as if they were physical, and utilizing embedded controllers or peripheral devices to implement required functionality.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a large number of physical GPIO pins are used to support various functionalities, then the device can provide comprehensive I/O support, but the cost increases and customization becomes difficult

Engineering Contradiction:
Improvefunctional supportVSAvoidcost and customization
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The patent creates virtual GPIO pins that copy the functionality of physical GPIO pins through software emulation. The virtual GPIO controller driver and firmware emulate the behavior of physical GPIO pins, allowing the operating system to interact with them as if they were physical, while actually using embedded controllers or peripheral devices to implement the functionality. This copying approach maintains functional versatility while reducing the need for expensive physical pins.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent makes a single physical GPIO pin serve multiple functions by using it to control different embedded controllers or peripheral devices through firmware. The same physical pin can be configured to work with various devices depending on the firmware implementation, replacing the need for dedicated pins for each function. This multi-functionality approach reduces the total number of physical pins required while maintaining comprehensive I/O support.

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

2Reliability

If dedicated physical GPIO pins are used for each function, then reliable hardware control is achieved, but the device complexity and cost increase

Engineering Contradiction:
Improvehardware controlVSAvoidnumber of physical pins
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces an embedded controller or peripheral device as an intermediary between the physical GPIO pin and the actual I/O function. The physical pin communicates with the embedded controller, which then controls the peripheral device. This intermediary layer allows reliable hardware control to be achieved with fewer physical pins, as the embedded controller handles the complexity of controlling multiple devices through a single pin interface.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces the mechanical system of multiple physical GPIO pins with a software-based virtual GPIO controller. Instead of having separate physical connections for each I/O function, the system uses software emulation to create virtual pins that interface with embedded controllers. This substitution reduces physical complexity while maintaining reliable control through the software-hardware interface.

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

Data Source

PatentUS9417801B2Virtual general-purpose I/O controller
Publication Date: 2016.08.16 INTEL CORP
  • US9417801B2 patent drawing
  • US9417801B2 patent drawing
  • US9417801B2 patent drawing

AI summary

Technologies for virtual general purpose I/O (GPIO) include a computing device having a virtual GPIO controller driver, a virtual GPIO controller firmware interface, and a virtual GPIO controller. The driver receives a GPIO command from an operating system of the computing device. The GPIO command specifies an operation to be performed by a GPIO pin. The driver sends the GPIO command to the firmware interface. In response to the firmware interface receiving the command, the virtual GPIO controller emulates a virtual GPIO pin to implement the GPIO command. The firmware interface may trigger an interrupt that can be received by the operating system. The virtual GPIO controller may emulate the virtual GPIO pin using firmware-reserved backing memory, an embedded controller, or an interface to a peripheral device of the computing device. The firmware interface may be an ACPI control method. Other embodiments are described and claimed.