Bug 114 - reservation station "feedback" for further processing (FP64)
Summary: reservation station "feedback" for further processing (FP64)
Status: CONFIRMED
Alias: None
Product: Libre-SOC's first SoC
Classification: Unclassified
Component: ALU (including IEEE754 16/32/64-bit FPU) (show other bugs)
Version: unspecified
Hardware: PC Linux
: --- enhancement
Assignee: Luke Kenneth Casson Leighton
URL:
Depends on: 106
Blocks: 48 116
  Show dependency treegraph
 
Reported: 2019-07-25 15:35 BST by Luke Kenneth Casson Leighton
Modified: 2020-09-21 17:12 BST (History)
1 user (show)

See Also:
NLnet milestone: NLnet.2019.02
total budget (EUR) for completion of task and all subtasks: 0
budget (EUR) for this task, excluding subtasks' budget: 0
parent task for budget allocation: 48
child tasks for budget allocation:
The table of payments (in EUR) for this task; TOML format:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Luke Kenneth Casson Leighton 2019-07-25 15:35:14 BST
a way to use pipelines to do further work is needed.  using the "ctx.op" field is probably the best place to hold the context.  it's a variation on "operand forwarding" combined with "early-in/out" issue #106
Comment 1 Luke Kenneth Casson Leighton 2019-08-16 19:44:04 BST
Investigating for several days, the combinatorial MultiIn/Out code was being used, and is not working.

The reason it turns out is because when used for ReservationStations, the multi in/out code only needs to send a single value.

Unfortunately, for pipelines, the "valid" signal travels with the data, but the "ready" signal is sent on the PREVIOUS cycle.

Therefore if the ready is sent to one multi-in sender but on the next cycle the "in" is flipped to a higher priority input, the data from the sender to which the "ready" was sent is irretrievably lost.

The solution therefore is to have latches on every input, and to have the multiplexer read first from those then go back to combinatorial routing.

It *might* be possible to buffer just the one data set, because only one input will have been told that it was ok to send data.