Virtualized SHA Computational Engine for Concurrent Workloads

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Managing heterogeneous workloads in computer systems is challenging due to varying computational requirements, such as different data sizes and processing times, which complicates efficient execution using traditional software-managed architectures.

Innovation Solution

A computational engine with fixed-function engines (FFEs) that can switch between multiple hash functions like SHA-1, SHA-224, SHA-256, and HMAC, processing data streams concurrently using internal context memory to maintain intermediate values across data segments, allowing for efficient processing of multiple data streams without external supervision.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If software management is used to execute multiple workloads sequentially using a single or multiple hardware engines, then the system can handle heterogeneous workloads with different computational requirements, but the execution time and processing efficiency deteriorate due to sequential processing

Engineering Contradiction:
Improveability to handle heterogeneous workloadsVSAvoidprocessing efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments the heterogeneous workload into multiple independent data streams, each processed by dedicated fixed-function engines. Each engine handles a specific stream concurrently, eliminating the sequential bottleneck while maintaining adaptability to different computational requirements through independent engine configurations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically allocates fixed-function engines to different data streams based on workload characteristics. Each engine can be configured for specific computational tasks (e.g., SHA-1, SHA-256, AES), allowing the system to adapt to heterogeneous requirements while processing multiple streams simultaneously, thus improving both versatility and productivity.

Inventive Principle:
Principle #15Dynamics

2Productivity

If multiple fixed-function engines are used to process multiple data streams concurrently, then processing efficiency improves, but device complexity increases due to the need for multiple specialized engines

Engineering Contradiction:
Improveconcurrent processing capabilityVSAvoidnumber of fixed-function engines
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Each fixed-function engine is designed as a multi-functional unit capable of performing multiple cryptographic operations (SHA-1, SHA-224, SHA-256, HMAC, AES). This universality allows a smaller number of engines to handle diverse workload types concurrently, reducing overall device complexity while maintaining high productivity through parallel processing.

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

3Device complexity

If a single hardware engine processes multiple workload types sequentially, then device complexity is reduced, but processing time increases due to context switching and sequential execution

Engineering Contradiction:
Improvenumber of hardware enginesVSAvoidexecution time
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The patent divides the processing workload into separate data streams, each assigned to a dedicated fixed-function engine. This segmentation eliminates context switching overhead between different workload types, as each engine continuously processes its assigned stream without interruption, significantly reducing execution time while maintaining manageable device complexity through targeted engine allocation.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9438414B2Virtualized SHA computational engine
Publication Date: 2016.09.06 ADVANCED MICRO DEVICES INC
  • US9438414B2 patent drawing
  • US9438414B2 patent drawing
  • US9438414B2 patent drawing

AI summary

A computational engine may comprise a working memory configured to receive a first input message and a second input message, a context memory coupled with the working memory, wherein the context memory is configured to simultaneously store a first context corresponding to the first input message and a second context corresponding to the second input message, and a set of computational elements coupled with the working memory and coupled with the context memory, wherein the set of computational elements is configured to finish generating a first output digest based on the first input message and a first context after starting generation of a second output digest based the second input message and a second context and before finishing the generation of the second output digest.