Multi-port Register File with Pipelined Write and Asynchronous Read

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multi-port register files face challenges in reducing write time and area efficiency due to buffering and pipelining requirements, which can lead to increased area and power consumption, especially when data forwarding is involved during asynchronous reads.

Innovation Solution

Implementing a dual-port or four-port register file architecture with synchronous and pipelined write ports and asynchronous read ports, where data is written to pipelined registers first and then transferred to memory array registers, allowing for data forwarding when read and write addresses match, thereby reducing write time and area requirements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If pipelining is implemented to reduce write time, then write speed is improved, but area increases

Engineering Contradiction:
Improvewrite speedVSAvoidregister file area
Core Design Contradiction:
SpeedVSArea of stationary object

Solution Approach 1:

The register file is segmented into two distinct parts: pipelined registers for write operations and memory array registers for storage. This segmentation allows the pipelined registers to handle write operations efficiently without requiring the entire register file to be pipelined, thus improving write speed while controlling area increase.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Pipelined registers act as an intermediary between the write input and the memory array registers. Data is first written to the pipelined registers and then transferred to the memory array registers, enabling faster write operations while the pipelined registers serve as a buffer that doesn't significantly increase the overall area.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If multiple ports are added to increase functionality, then adaptability is improved, but area increases quadratically

Engineering Contradiction:
Improveport functionalityVSAvoidregister file area
Core Design Contradiction:
Adaptability or versatilityVSArea of stationary object

Solution Approach 1:

The register file architecture is designed to support multiple ports with different functions (read ports and write ports) sharing the same memory array structure. The pipelined registers provide universal buffering capability for both read and write operations, allowing the system to achieve multi-functionality without requiring separate dedicated structures for each port type, thus controlling area growth.

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

3Speed

If data forwarding is implemented during asynchronous reads, then read speed is improved, but complexity increases

Engineering Contradiction:
Improveread speedVSAvoiddata forwarding logic
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

Data is prepared in advance in the pipelined registers before the actual read operation completes. When an asynchronous read occurs and the read address matches the write address, the data is already available in the pipelined registers, allowing immediate forwarding without requiring complex real-time detection and preparation logic.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The pipelined registers automatically provide data forwarding capability when read and write addresses match, without requiring external control logic. The system self-determines when data forwarding is applicable and handles the data transfer autonomously, reducing the complexity of additional control mechanisms.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8862835B2Multi-port register file with an input pipelined architecture and asynchronous read data forwarding
Publication Date: 2014.10.14 TEXAS INSTRUMENTS INC
  • US8862835B2 patent drawing
  • US8862835B2 patent drawing
  • US8862835B2 patent drawing

AI summary

In an embodiment of the invention, a multi-port register file includes write port inputs (e.g. write address, write enable, data input) that are pipelined and synchronous and read port inputs (e.g. read address) that are asynchronous and are not pipelined. Because the write port inputs are pipelined, they are stored in pipelined registers. When data is written to the multi-port register file, data is first written to the pipelined registers during a first clock cycle. On the next clock cycle, data is read from the pipelined registers and written into memory array registers. When the read address is identical to the write address stored in the pipelined memory, the result of a bit-wise ANDing of data stored in pipelined synchronous data registers and data stored in pipelined synchronous bit-wise registers is presented at the output of the multi-port register file.