[libre-riscv-dev] vliw idea naming
Luke Kenneth Casson Leighton
lkcl at lkcl.net
Mon Jun 24 12:08:39 BST 2019
On Mon, Jun 24, 2019 at 11:27 AM Jacob Lifshay <programmerjake at gmail.com> wrote:
> I want to read over all your svprefix changes a little more before I answer
> your questions.
they'll keep accumulating (at the end of each document). i'm on this
full-time, got to get it done.
> the vliw idea sounds like a good idea, though I would call it a vector
> block or something like that
yeah i like that. VBLOCK, VBL, VBLK for short. i already use the
word "Block" to describe the "Register Block".
> -- it's much more similar to arm's thumb2 IT
> instruction (adds predicates for up to 4 following instructions) than
> traditional vliw, since the operations still appear to execute sequentially
> and the processor can internally reorder them.
yes it's... hang on..
"Addition of a 16-bit IT instruction that enables 1 - 4 following
Thumb instructions to be conditional".
yyyeahh kiiinda, except it also adds, at the very beginning of the sequence:
* the option of setting VL, MVL and SUBVL (as if they were actual
instructions, right there, right then)
* the option of setting up Register "redirection" that was formerly
and the predicates do not *always* apply "conditionally", there are up
to 4 *registers* marked as "predicated", which, if used anywhere in
the next (80 + 16*0bNNN) bits, will be conditional.
so... kinda like thumb2 IT, but not exactly. much longer (up to a
maximum of 11 RVC opcodes if no optional blocks are used, which is
kinda pointless but possible).
yes, the sequence of opcodes within the block *must* be sequential
just like any other RISC-V instructions.
all the prefixing is, is: an excuse to get the (full-format)
predication and register table entries into a compact "context".
if it was possible for branches to recover the context without
desperately searching backwards through the I-Cache, looking for where
the VBLOCK format started, it could be allowed to advance PC instead
of having to create a VLIWPC and advance that.
More information about the libre-riscv-dev