On-Chip Shared Memory Switch for RAID-on-a-Chip Scalability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current RAID on a Chip (ROC) architectures face limitations in scaling performance due to lack of multi-processor support, fabric contention, bus contention, and reliance on off-chip memory, leading to bottlenecks in CPU processing speed, data movement efficiency, and DMA management complexity.

Innovation Solution

A novel system-on-a-chip architecture featuring a global shared memory switch (GSM) with on-chip shared memory resources, prioritized low-latency paths, and unified addressing schemes to enable concurrent access and processing across multiple processors and hardware engines, minimizing off-chip memory access and optimizing DMA operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a single CPU is used in traditional ROC architecture, then device complexity is reduced, but CPU processing speed becomes a bottleneck limiting system performance

Engineering Contradiction:
ImproveCPU processing speedVSAvoidmulti-processor support
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system is divided into multiple independent processor complexes, each capable of autonomous operation. Each processor complex includes its own CPU, instruction cache, and access to shared memory resources, allowing parallel processing of RAID operations and eliminating the single CPU bottleneck while maintaining manageable complexity through modular design

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The shared memory resources and interconnect fabric are designed to be universally accessible by all processor complexes and hardware engines. The same memory structures serve multiple functions: caching data for different processors, storing DMA buffers, and providing shared workspace for various hardware engines, thereby supporting multi-processor operation without proportionally increasing overall system complexity

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

2Loss of time

If off-chip memory is used for data storage, then memory capacity is increased, but access latency and power consumption increase

Engineering Contradiction:
Improvememory access latencyVSAvoidon-chip memory capacity
Core Design Contradiction:
Loss of timeVSQuantity of substance

Solution Approach 1:

Multiple levels of memory caching are implemented in a hierarchical structure. L1 and L2 data caches are nested within each processor complex for fast local access, while additional shared memory structures provide extended caching capacity. This nested approach provides frequently accessed data close to the processors, dramatically reducing access latency compared to off-chip memory while utilizing on-chip memory resources efficiently

Inventive Principle:
Principle #7Nested doll (Nesting)

Solution Approach 2:

Data is pre-loaded into on-chip cache memory structures before being needed by the processors. The system anticipates data access patterns and maintains relevant data in fast on-chip memory, eliminating the need for frequent off-chip memory accesses and thereby reducing both latency and power consumption during actual processing operations

Inventive Principle:
Principle #10Preliminary action

3Productivity

If fabric contention is eliminated through dedicated paths, then data movement efficiency is improved, but device complexity increases

Engineering Contradiction:
Improvedata movement efficiencyVSAvoidinterconnect structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Different interconnect paths are optimized for different types of traffic based on local requirements. Critical time-sensitive communications between processor complexes use low-latency direct paths, while less time-critical data transfers use the shared fabric. This localized optimization of path characteristics improves overall data movement efficiency without requiring complete dedication of all paths, thereby controlling complexity

Inventive Principle:
Principle #3Local quality

4Ease of operation

If DMA operations are simplified, then ease of operation is improved, but DMA management complexity increases

Engineering Contradiction:
ImproveDMA operation simplicityVSAvoidDMA management
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The DMA engine is designed with automatic buffer management capabilities. It autonomously allocates and manages DMA buffers in shared memory, performs address translation, and handles data transfer operations without requiring complex software intervention. This self-service approach simplifies the interface for software while the underlying DMA management complexity is handled automatically by the hardware engine itself

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS7743191B1On-chip shared memory based device architecture
Publication Date: 2010.06.22 MICROSEMI STORAGE SOLUTIONS INC
  • US7743191B1 patent drawing
  • US7743191B1 patent drawing
  • US7743191B1 patent drawing

AI summary

A method and architecture are provided for SOC (System on a Chip) devices for RAID processing, which is commonly referred as RAID-on-a-Chip (ROC). The architecture utilizes a shared memory structure as interconnect mechanism among hardware components, CPUs and software entities. The shared memory structure provides a common scratchpad buffer space for holding data that is processed by the various entities, provides interconnection for process/engine communications, and provides a queue for message passing using a common communication method that is agnostic to whether the engines are implemented in hardware or software. A plurality of hardware engines are supported as masters of the shared memory. The architectures provide superior throughput performance, flexibility in software/hardware co-design, scalability of both functionality and performance, and support a very simple abstracted parallel programming model for parallel processing.