Quadibloc
2024-01-24 16:14:46 UTC
A very common comment I have receieved from several people on my Concertina II
ISA is that making the instruction stream vlock structured is a mistake.
However, computers having a VLIW architecture do normally have a block
structured instruction scheme, with the block being the very long instruction
word. While I've included VLIW functionality in Concertina II and Concertina
III, this has been to increase performance in some implementations, and, thus,
is a relatively minor part of the ISA.
What I've come up with now has the following characteristics:
The normal instruction set no longer has block structure, it's been squeezed
enough to go without that, and provide variable-length instructions.
But one can also choose to run in VLIW mode; then, the instruction stream
is divided into blocks of eight 32-bit instructions, with one block header
to indicate instruction predication.
So block structure is only present where it belongs. VLIW code can't be
distinguished from normal code by using the block header because
instructions in normal code can cross block boundaries, so the second
half of a 32-bit instruction could look like the start of a block header.
Is this worthwhile, I wonder...
John Savard
ISA is that making the instruction stream vlock structured is a mistake.
However, computers having a VLIW architecture do normally have a block
structured instruction scheme, with the block being the very long instruction
word. While I've included VLIW functionality in Concertina II and Concertina
III, this has been to increase performance in some implementations, and, thus,
is a relatively minor part of the ISA.
What I've come up with now has the following characteristics:
The normal instruction set no longer has block structure, it's been squeezed
enough to go without that, and provide variable-length instructions.
But one can also choose to run in VLIW mode; then, the instruction stream
is divided into blocks of eight 32-bit instructions, with one block header
to indicate instruction predication.
So block structure is only present where it belongs. VLIW code can't be
distinguished from normal code by using the block header because
instructions in normal code can cross block boundaries, so the second
half of a 32-bit instruction could look like the start of a block header.
Is this worthwhile, I wonder...
John Savard