I/O Steering Engine for Dynamic Resource Allocation on SoC

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computing systems with fixed computing and I/O resources are limited in performance and efficiency, leading to underutilization of I/O resources when subsystems are not functional, resulting in reduced throughput and bandwidth.

Innovation Solution

Implementing an I/O steering engine on a System-on-Chip (SoC) to dynamically steer I/O resources and accelerators between multiple compute subsystems, such as server and network compute subsystems, based on configuration and resource allocation, allowing for flexible allocation of resources to match performance requirements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If fixed computing and I/O resources are allocated to each subsystem, then each subsystem can perform its intended function reliably, but the I/O bandwidth and system throughput are limited and I/O resources are underutilized when subsystems are not functional

Engineering Contradiction:
Improvesubsystem function reliabilityVSAvoidsystem throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements dynamic resource allocation by introducing an I/O steering engine that can reconfigure I/O resource allocation between compute subsystems based on operational status and workload demands. The system transitions from static fixed allocation to dynamic flexible allocation, allowing I/O resources to be redirected to active subsystems when others are inactive, thereby improving both reliability and throughput simultaneously

Inventive Principle:
Principle #15Dynamics

2Reliability

If fixed I/O resources are allocated to each subsystem, then each subsystem has dedicated bandwidth, but the overall I/O utilization efficiency decreases when subsystems are not functional

Engineering Contradiction:
ImproveI/O bandwidth guaranteeVSAvoidI/O resource utilization efficiency
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent makes I/O resources universal by enabling them to serve multiple compute subsystems dynamically. The I/O steering engine allows the same I/O resources to be allocated to different subsystems based on current operational needs, transforming dedicated single-function I/O allocation into multi-functional shared allocation, thus improving utilization efficiency while maintaining bandwidth guarantees for active subsystems

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

3Ease of operation

If dedicated I/O resources are assigned to each compute subsystem, then each subsystem can operate independently, but the system cannot adapt to changing workload demands and resource allocation becomes inefficient

Engineering Contradiction:
Improvesubsystem operational independenceVSAvoidresource allocation flexibility
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent introduces an I/O steering engine as an intermediary component between compute subsystems and I/O resources. This mediator manages the allocation and redirection of I/O resources dynamically, allowing subsystems to maintain operational independence while the steering engine provides system-wide adaptability to changing workload demands, resolving the contradiction between independence and flexibility

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9588921B2System on a chip comprising an I/O steering engine
Publication Date: 2017.03.07 AMAZON TECH INC
  • US9588921B2 patent drawing
  • US9588921B2 patent drawing
  • US9588921B2 patent drawing

AI summary

Embodiments of the technology can provide steering of one or more I/O resources to compute subsystems on a system-on chip (SoC). The SoC may include a first I/O subsystem comprising a plurality of first I/O resources and a second I/O subsystem comprising a plurality of second I/O resources. A steering engine may steer at least one of the first I/O resources to either a network compute subsystem or to a server compute subsystem and may steer at least one of the second I/O resources to either the network compute subsystem or to the server compute subsystem.