
Hand-Optimizing VLIW Assembly Language as a Game - luu
http://silverspaceship.com/hovalaag/
======
Quequau
Something I've thought about a few times is how a fair number of smart folks
who are in the know view VLIW as something that was tried and failed, so
they're dismissive of new designs which use VLIW.

For example Linus Torvalds has made this assertion a few times that I've seen.
However, it seems to me (at least by their own telling) that their focus was
almost entirely on trying to do x86 better than x86 and doesn't really seem
like a straight forward or easy task.

What I wonder about is VLIW doing its own thing (e.g. not trying to run
Windows games) but running applications intentionally developed for it.
Perhaps there are use cases where VLIW works very well... or at least well
enough to a reasonable alternative value proposition.

~~~
celrod
I think this was a great comment and discussion thread on OOO vs VLIW:
[https://news.ycombinator.com/item?id=24466593](https://news.ycombinator.com/item?id=24466593)

The biggest takeaway for me was the importance of scalability. As OOO CPUs get
better, they can become increasingly parallel when running the exact same
assembly. While VLIW like Itanium was limited to 3 ops/instruction, which is
already behind today's OOO CPUs. (Although Mill's 33 ops/instruction sounds
like it'd take much longer to beat.)

My takeaway was that NVidea's Volta looked on the right track, where it added
6-bit dependency bitmasks to instructions to make building the dependency
graphs (primary cost to OOO) more efficient.

~~~
xscott
> While VLIW like Itanium was limited to 3 ops/instruction, which is already
> behind today's OOO CPUs

Itanium could group 3 instructions per 128 bit "bundle", but multiple bundles
could be run in parallel, and the compiler had to insert explicit "stops" when
that wasn't allowed. The architecture was designed specifically so that future
processors could run old code with more parallelism.

[https://en.wikipedia.org/wiki/Explicitly_parallel_instructio...](https://en.wikipedia.org/wiki/Explicitly_parallel_instruction_computing#Moving_beyond_VLIW)

------
bitwize
Instruction Tetris!

