On Thu, 25 Jan 2024 01:47:07 +0000, Quadibloc wrote:
> On Wed, 24 Jan 2024 20:05:23 +0000, MitchAlsup1 wrote:
>
>> Block structure is only applicable to 1-width of execution
>> and fails for all other widths.....
>>
>> So the question becomes:: is your architecture designed for exactly
>> one width of execution ???
>
> Well, the VLIW mode is designed for eight-wide execution. But it
> can also work well with four-wide or two-wide, I would think, since
> it could still specify more efficient execution for those.
With Concertina II in its various incarnations, if a header left
seven instructions in a block, I provided _six_ break bits with
them, as there was always a break before the first one because the
instructions needed to be fetched.
With Concertina IV, on the other hand, the break bit happens to be
the first bit of every instruction. So, while the block length of
eight instructions controls the format of the header that provides
predication, there actually would be nothing stopping an implementation
from treating that as simply a notational convention for predication...
and fetching and executing twelve instructions at a time.
Although presumably the compiler would take the issue width of the
target machine into account. So Concertina IV isn't necessarily
block structured in a way that limits the issue widths it can
work with, although that's just a happy accident, not something I
intended. And, of course, memory is simpler if powers of two are
fetched and executed.
Remember: now the only header is for predication. No longer is
decoding profoundly changed by some possible header values.
John Savard