-
Notifications
You must be signed in to change notification settings - Fork 52
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support sync
without std_sync_reg
#1333
Comments
This is a pretty interesting idea. To state a couple of probably-obvious observations:
|
Hm, I think that could be interesting but I'm not sure if it needs to be language-level , that is, if you want to do this kind of synchronization, you probably want to put a FIFO between the two components and perform fine-grained synchronization |
Yeah, I had the exact same thought–is there some way to implement this separately from the TDCC code itself? In this case, it'd require exposing the FSM transitions in some structured manner. |
Fair enough! This kind of facility is purely hypothetical and doesn't really have a use case. 😃 Just food for thought. |
Could there be a possible case where we could have problem resetting the barrier for the mechanism proposed? |
I think there are a couple of things we should pay attention to before doing this:
Assuming that the FSM we generate looks like below (just using the notation in the PDF): In this case , what would happen could be: The problem is, if my understanding is somewhat accurate, as we design the FSM, F1.out is always set to 1 while
|
Hey @paili0628, you can edit the comments by clicking three dots on the top right. The code is really hard to read so can you try reformatting it a bit and explaining what you're expecting will happen event-by-event? |
@rachitnigam I updated my comment, plz take a look. |
I cleaned up the comment a bit more. Usually, you can use the code block syntax (three backticks) and click on the preview link to see what the final comment is going to look like. Take a look at the raw markdown by clicking on the edit button and try to use code blocks with indenting in the future Couple of things:
One way to proceed would be to sketch out exactly what a compiled group and corresponding hardware should look like. Once we have some concrete code to stare at, we can decide if it will work or not |
I realized that the FSMs generated by TDCC are probably sufficient to implement the synchronization that we implement using
std_sync_reg
. The high-level idea is that each thread in apar
block gets its own FSM. A@sync
in multiple different threads means that the FSMs of the corresponding threads must synchronize before continuing execution. This can be done by generating a transition condition that waits for all FSMs to reach the corresponding state before allowing any one of them to move forward.@paili0628 I think this would be a good thing to implement before we write up a paper on this stuff
The PDF document summarizes this idea visually: Sync using FSMs.pdf
The text was updated successfully, but these errors were encountered: