Liste des Groupes | Revenir à c arch |
On Wed, 08 May 2024 01:46:41 -0600, John Savard
<quadibloc@servername.invalid> wrote:
Why are my various iterations of Concertina II _all_, consistently,
"full to the brim"?
I can always add one new type of header which specifies alternate
instructions with fairly low overhead... and then, at a modest cost,
even the most enormous new feature can have its own 32-bit
instructions!
That only answersl a part of that question - why I feel I can _get
away_ with having an ISA that is "full to the brim". But why did I let
it get that way in the first place?
Well, the reason for that is actually quite simple. Because a majorMay I suggest that sacrificing 16-bit instructions may give you the room
design goal of Concertina II is to offer as much as possible of the
basic operations required of a computer in instructions of the
shortest possible length.
16-bit displacements are the norm in microprocessor instruction sets,So, you are getting eaten alive by the extra bit of register specifier !!
so I offer them. I offer base-index addressing - which microprocessors
usually don't - because I feel it's needed for using arrays. And I
have register banks of 32 registers because that's what today's RISC
machines do.
All of that means that the load and store instructions - particularlyDo not put into ISA that which compiler CANNOT use !!
when integer load and store also include load unsigned and insert -
take up 3/4 of all 32-bit instructions (approximately; one doesn't
need unsigned load and insert for the 64-bit integer type, because it
fills the register). And that's with using only 8 of the 32 registers
for the base register and the index register each.
Some parts of the instruction set do have slack. Two-address
register-to-register operate instructions have a large opcode field,
so there is some room for future expansion in parts of the instruction
set.
But, basically, it takes all the available bits to offer the level ofTisk.
functionality I am trying to provide with the basic 32-bit instruction
set. Since that covers the traditional functionality of a CPU -
floating-point and integer types - nothing basic is missing.
John Savard
Les messages affichés proviennent d'usenet.