3 ms·
> I found that to multiply two words, you'd need 30 nanoseconds -- the multiply instruction implements one step of a multiply, so you need to run it in a loop.
by daniel-cussen 5y ago
> I found that to multiply two words, you'd need 30 nanoseconds -- the multiply instruction implements one step of a multiply, so you need to run it in a loop. Anyway, that limits me to 1/(30 ns) = 33 MSPS of data ingestion, and almost surely it's less due to overhead.
What? While it actually takes about 100 nanoseconds, not 30 nanoseconds, for an 18-by-18-bit multiply, you can do hundreds in parallel, so it should be fine for your purposes. Am I missing something with how your numbers square up?
- gaze 5y agoIt’s 18 bits and 1.5 nanoseconds per +* plus overhead using a micronext. What did I miss? Also you’re assuming what I want to do is trivially parallelizable.
- daniel-cussen 5y agoRoughly 1.5 nanoseconds, right, plus 2.4 for the micronext. So that's 3.8 ns * 18 is 68.4 ns, plus the time to set up the multiplication, which is about 30 ns.
- gaze 5y agoOh maybe it was that I had just unrolled it. I suppose there’s some setup involved though that I hadn’t accounted for. Either way, it’s a bit slow when it comes to DSP stuff unless you can avoid multiplications.