▲ | PaulHoule 4 days ago | |||||||||||||
If you were interested in co-designing a CPU with software the TTA is an attractive way to do it, particularly in that it is easy to design it so you can do more than one MOV at the same time and thus have explicit parallelism. The tough part though is that memory is usually slow and you have to wait an undetermined number of cycles for data to get back from DRAM and while one operation is blocked all the other operations are blocked. I guess you could have something like this with a fancy memory controller that could be programming explicitly to start fetching ahead of time so data is available when it is needed, at least most of the time. | ||||||||||||||
▲ | cmrdporcupine 4 days ago | parent | next [-] | |||||||||||||
I played around making a TTA-ish thing as part of learning Verilog some years ago. It's a neat idea: https://github.com/rdaum/simple_tta | ||||||||||||||
| ||||||||||||||
▲ | mrob 4 days ago | parent | prev [-] | |||||||||||||
How would you handle context switching? You've got a whole lot of exposed state scattered throughout the whole CPU. | ||||||||||||||
|