SAS Expander Routing Memory Tag Encoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The high cost and complexity of implementing Content-Addressable Memory (CAM) and Random Access Memory (RAM) structures in SAS expanders for efficient routing, which increases the size and cost of the devices as the number of ports increases.

Innovation Solution

Representing ports in routing memory using start and length tags, or start and stop tags, to reduce memory usage, allowing for more efficient storage and processing of routing information in SAS expanders.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If CAM and RAM structures are used for routing in SAS expanders, then routing performance is improved, but device size and cost increase

Engineering Contradiction:
Improverouting performanceVSAvoiddevice size
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent changes the parameter representation from individual bit per PHY to start tag and length tag format. This parameter encoding change reduces the memory entry size from N bits to approximately log2(N) + log2(log2(N)) bits, significantly decreasing the total memory required while maintaining routing functionality

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent extracts only the essential routing information (start PHY and length/stop PHY) from the complete port configuration, eliminating redundant detail storage. This extraction approach keeps the routing memory compact while preserving the necessary connectivity information for performance routing

Inventive Principle:
Principle #2Taking out (Extraction)

2Adaptability or versatility

If the number of ports in SAS expander increases, then connectivity and bandwidth are improved, but routing memory size increases

Engineering Contradiction:
ImproveconnectivityVSAvoidrouting memory size
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent implements parameter change by using variable-length encoding for port representations. Instead of fixed N bits per port, the system uses start tags (log2(N) bits) and length tags (log2(log2(N)) bits), making the memory requirement grow much slower as the number of ports increases

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent transitions from a flat bit-array representation to a structured tag-based representation with semantic dimensions (start position, length). This dimensional reorganization allows efficient encoding of port ranges and significantly reduces the quantity of memory bits needed

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Power

If wide ports with multiple PHYs are supported, then bandwidth is improved, but memory entry complexity increases

Engineering Contradiction:
ImprovebandwidthVSAvoidmemory entry complexity
Core Design Contradiction:
PowerVSDevice complexity

Solution Approach 1:

The patent merges multiple PHY entries into a single memory entry using start and length tags. Instead of storing separate bit flags for each PHY in a wide port, the system stores one consolidated entry that represents the entire port range, reducing memory entry complexity while supporting high bandwidth

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9032143B2Enhanced memory savings in routing memory structures of serial attached SCSI expanders
Publication Date: 2015.05.12 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
  • US9032143B2 patent drawing
  • US9032143B2 patent drawing
  • US9032143B2 patent drawing

AI summary

Methods and structure are provided for representing ports of a Serial Attached SCSI (SAS) expander circuit within routing memory. The SAS expander includes a plurality of PHYs and a routing memory. The routing memory includes entries that each indicate a set of PHYs available for initiating a connection with a SAS address, and also includes an entry that represents a SAS port with a start tag indicating a first PHY of the port and a length tag indicating a number of PHYs in the port. The SAS expander also includes a Content Addressable Memory (CAM) including entries that each associate a SAS address with an entry in the routing memory. Further, the SAS expander includes a controller that receives a request for a SAS address, uses the CAM to determine a corresponding routing memory entry for the requested SAS address, and selects the port indicated by the corresponding routing memory entry.