kuznia-rdzeni / coreblocks

RISC-V out-of-order core for education and research purposes
https://kuznia-rdzeni.github.io/coreblocks/
BSD 3-Clause "New" or "Revised" License
33 stars 13 forks source link

Ordered collections #707

Open lekcyjna123 opened 1 month ago

lekcyjna123 commented 1 month ago

In LSU we are planing to use shift register to keep age order of instructions. Shift registers are linear. Maybe we should consider using the binary trees to keep elements in order? I am not sure if there will be any benefits of such solution.

The only one which come to my mind is the complexity of the random access in trees we have O(log(depth)) critical path. In shift register we have implementation defined critical path -- we don't know how access to the element in the array will be synthesised by yosys.

tilk commented 1 month ago

Shift registers are linear.

A shift register is linear in size, but constant in critical path. I fail to understand the point.