You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This branch contains updates in memfy and dcache to support concurrent read/write access if no address collision can occur. The updates are the following:
memfy: AXI_ORDERING parameter set to 1 generate another circuit to detect the r/w collisions. Look-up tables (LUT) for read and write channels are instantiated to track ongoing requests. AXI_ORDERING=0 follows the previous behaviour, read and write requests can't be issued in parallel. Outstanding read blocks write requests, and vice & versa.
dcache pusher: cache write is slightly different, all write needing to update the blocks are packed into a FIFO, emptied once no new write request are issued by memfy. Before this update, read and write were fully parallel.
cache blocks: architecture evolved, now having two fully independent port, once for read data path (fetcher), once for write data path (pusher). A port makes write passing before read. Before this update, port 1 was read-only, port 2 write-only.
The branch is not yet merged because two problems encountered during debug, that can't be identified clearly neither understood for the moment:
wba-testsuite / core configuration: at some point, memfy generates a log indicating too many write completions have been issued by the dcache. True for both icarus and verilator
apps/repl: the benchmark command issued a load_misaligned exception.
The text was updated successfully, but these errors were encountered:
merge_memfy_opt is a temp branch, merging all but new cache blocks, to debug the current problems, without success for the moment.
Pusher update, stacking write request to update the cache lower by 4% the performance. The dCache architecture needs to be better study/planned to avoid that and permit concurrent accesses
This branch contains updates in memfy and dcache to support concurrent read/write access if no address collision can occur. The updates are the following:
AXI_ORDERING
parameter set to 1 generate another circuit to detect the r/w collisions. Look-up tables (LUT) for read and write channels are instantiated to track ongoing requests.AXI_ORDERING=0
follows the previous behaviour, read and write requests can't be issued in parallel. Outstanding read blocks write requests, and vice & versa.The branch is not yet merged because two problems encountered during debug, that can't be identified clearly neither understood for the moment:
The text was updated successfully, but these errors were encountered: