Favourite article I've read in a while, what a delight. I wonder what kind of performance you could get if someone hand wrote a dedicated, modern C compiler for it.
Favourite article I've read in a while, what a delight. I wonder what kind of performance you could get if someone hand wrote a dedicated, modern C compiler for it.
According to the article, it takes 40 univac instructions to run a single risc-v instruction, so potentially up to 40x the current performance. Though you'd probably need more instructions to do things than a single one, so probably less than that, say 10-20x? Especially if you made a custom compiler that made the best use of the hardware you could, since it's weird
> it takes 40 univac instructions to run a single risc-v instruction
Which is wild, given:
> The computer’s original purpose was to be used by the Navy to read in radar signals and direct artillery
I'd really be fascinated to see how that was done on such a primitive machine, shame that's probably been lost.
The radar "reading" was done by first plotting analog radar signals to the antique rotary radar displays. Then there would be human operators with a light pen, marking each radar signature on each radar turn.
So the Univac would receive input coordinates for each target and track those in memory each turn.
RISCV is a VEEEEERY poor emulation target - the piecemeal scattering of immediates all over the instr makes it very slow to assemble them (lots of ANDs, shifts, and ORs) . Re-encoding them is one solution, yeah, but then this is a mandatory messy post-compilation step that also needs to know what is code and what is data. It is almost a pessimal setup. MIPS is much simpler to emulate
Hey, wait a minute, you're the guy who got Linux to run on a 4004 by writing a MIPS emulator[1]! If there's anyone who's been down a similar path before it'd have to be you.
[1] - https://dmitry.gr/?r=05.Projects&proj=35.%20Linux4004
Yup. And that one of the reasons why not RISCV