Round Robin Memory Controller Slicing for Request Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems for processing memory access requests from multiple host devices waste processor time due to the round robin process serving all devices equally, regardless of whether a request is made, and face inefficiencies with large numbers of host devices.

Innovation Solution

A method where a master request is divided into slices, and a bitwise OR operation determines if each slice contains a memory access request, allowing the system to skip processing slices with no requests and directly move to slices with requests, optimizing the round robin process by identifying and processing only non-empty slices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a traditional round robin process serves each host device in turn, then each host device receives equal processing attention, but processor time is wasted on host devices that have not made any request

Engineering Contradiction:
Improvefairness of request processingVSAvoidprocessor time wasted
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The master request is divided into multiple slices, where each slice contains a subset of host device request bits. This segmentation allows the system to process only relevant portions of the request set, skipping slices that contain no active requests, thereby reducing wasted processor time while maintaining fair service across all requesting hosts.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Instead of processing all host devices equally in the traditional round robin manner, the system performs partial processing by identifying and servicing only those slices containing actual requests. The bitwise OR operation detects active requests, and processing is applied only to non-empty slices, avoiding excessive action on empty slices.

Inventive Principle:
Principle #16Partial or excessive action

2Reliability

If the system processes all host devices in a round robin manner, then comprehensive request handling is achieved, but processing time increases with large numbers of host devices

Engineering Contradiction:
Improvecompleteness of request handlingVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

Before actual request processing begins, the system performs preliminary action by using bitwise OR operations to identify which slices contain active requests. This preliminary detection step enables the system to skip empty slices and directly process only non-empty slices, significantly reducing processing time for systems with large numbers of host devices while ensuring all requests are handled.

Inventive Principle:
Principle #10Preliminary action

3Measurement precision

If the system reads signals from each individual host device, then all potential requests are detected, but processor time is wasted on devices with no requests

Engineering Contradiction:
Improverequest detection accuracyVSAvoidtime spent on empty devices
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system extracts only the relevant information from the master request by using bitwise OR operations to identify non-empty slices. Instead of processing every host device signal individually, the system extracts and processes only those slices containing actual requests, maintaining accurate request detection while eliminating time waste on empty devices.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS11500790B1Systems and methods for fast round robin for wide masters
Publication Date: 2022.11.15 MARVELL ASIA PTE LTD
  • US11500790B1 patent drawing
  • US11500790B1 patent drawing
  • US11500790B1 patent drawing

AI summary

A master request comprising a plurality of bits is received, each bit representing whether a host device of a plurality of host devices has issued a memory access request. The master request is divided into a plurality of slices, each respective slice containing a subset of the plurality of bits corresponding a subset of host devices. Based on the respective subsets of the plurality of bits, it is determined whether each respective slice contains at least one memory access request. A first round robin process then begins in which it is determined whether each respective slice contains a memory access request. If so, any memory access request contained in the respective slice are processed via a second round robin process before proceeding to process memory access requests of another slice. If the respective slice contains no memory access requests, processing skips to a next slice without processing the respective slice.