Multi-bank Memory with Dynamic Bank Reassignment for Read-Write Collision Resolution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing multi-port memory systems face challenges in executing read and write commands simultaneously across single-port memory banks within a single clock cycle, as single-port memory banks can only handle one command per cycle, leading to inefficiencies and collisions when accessing the same bank.

Innovation Solution

The implementation of a memory system with control logic that designates redundant entries across memory banks, allowing read and write commands to be executed in different banks within the same cycle by using a logical-to-physical mapping table to manage addresses and reassign redundant entries dynamically, enabling multiple commands per clock cycle.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If single-port memory banks are used to reduce device complexity and cost, then manufacturing cost and device size are reduced, but the ability to execute multiple commands simultaneously is limited

Engineering Contradiction:
Improvememory bank structureVSAvoidcommands per clock cycle
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The memory system is divided into multiple single-port memory banks, each capable of independent operation. This segmentation allows the system to achieve multi-command execution by distributing commands across different banks, rather than requiring each bank to support multiple ports.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Single-port memory banks are made universal by implementing a control logic that can dynamically assign different banks to handle read or write operations. The same bank can serve different functions at different times, and the system as a whole achieves multi-port functionality through coordinated use of multiple single-port banks.

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

2Speed

If read and write commands are executed in the same memory bank simultaneously, then command execution speed is improved, but command collisions occur causing errors

Engineering Contradiction:
Improvecommand execution speedVSAvoidcommand execution accuracy
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

A control logic unit acts as an intermediary between command inputs and memory banks. This mediator receives read and write commands, determines their target banks, and coordinates execution to prevent collisions. The control logic ensures that simultaneous operations target different banks or are sequenced appropriately, maintaining reliability while enabling parallel execution.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If multiple write commands are executed in the same clock cycle in different memory banks, then data storage throughput is improved, but address mapping complexity increases

Engineering Contradiction:
Improvedata storage throughputVSAvoidaddress mapping logic
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system performs preliminary actions by pre-organizing data into stripes that are distributed across multiple memory banks. Write commands operate on entire stripes simultaneously, and the address mapping logic is simplified by using predictable patterns based on stripe assignments rather than requiring complex per-address routing decisions.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11099746B2Multi-bank memory with one read port and one or more write ports per cycle
Publication Date: 2021.08.24 MARVELL ISRAEL (M L S L) LTD
  • US11099746B2 patent drawing
  • US11099746B2 patent drawing
  • US11099746B2 patent drawing

AI summary

A method for data storage includes, in a network element, receiving from packet-processing circuitry at least a read command and a write command, for execution in a memory array that includes multiple single-port memory banks. When the read command and the write command are to access different memory banks in the memory array, the read command and the write command are executed for the packet-processing circuitry in the different memory banks in a same memory-access cycle. When the read command and the write command are both to access a first memory bank, a second memory bank of the memory array is selected. The read command is executed in the first memory bank and the write command is executed in the second memory bank, in the same memory-access cycle.