chipsalliance / chipsalliance/rocket-chip

AXIToTL component can‘t support axi outstanding?

Open
#3,715 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Scala
Stars
3.9k
Forks
1.3k
Avg merge
5d 13m
Merged PRs (30d)
1

Description

Hello @terpstra @aswaterman , we conducted secondary development based on Rocket and developed a coprocessor that supports the RVV instruction set. We will convert AXI interface to Tile link interface by AXIToTL component, because its external memory access interface is AXI4 interface.
However,we found that if an outstanding transmission is initiated (multiple consecutive ar commands with the same ID), AXIToTL will only issue one tilelink read request until the data is returned, and then issue the next tilelink read request, which will seriously affect the memory access performance of RVV.
How can I fix this performance point? Have you encountered similar problems before?I tried to modify the FIFO type of TLFIFOFixer module and found that allFIFO and allVolatile types can issue multiple tilelink commands, but there will be an assertion failure which is "channel re-used a source ID(connected at myrocc.scala)".

Contributor guide

Open the contributing guide

Research direction

Start by tracing the AXIToTL component and the TLFIFOFixer configuration involved in outstanding reads, then inspect the source-ID assertion connected at myrocc.scala. Reproduce multiple consecutive AXI read commands with the same ID and compare the FIFO modes; done means outstanding requests improve without triggering the source-ID reuse assertion.

Written by the indexing model from the issue text.

Assessment

Tech stack
scala
Domain
embedded-iot
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.