Liste des Groupes | Revenir à c arch |
On Sun, 9 Mar 2025 1:15:14 +0000, Robert Finch wrote:Yeah, I was sure I wanted to support 23-bit immediates (in the 48-bit format) and 64-bit immediates (96-bit format). But had not decided on supporting other sizes perhaps 128-bit immediates.A 72-bit format would allow over 40 bits for immediates.
Recently started Q+2 development.Ok, go all Quadriblock on me .... see if I care !
>
Trying to get code density closer to something like the 68k or VAX.
Sounds like My66000 also has good code density using 32-bit parcels. If
32-bit parcels work well, I have thought to try 24-bit parcels.
Decided to stay away from other odd sized parcels which createYou might find 72-bit instructions useful in carrying a 32-bit
addressing issues. Currently 3 sizes of instructions: 24 / 48 and
96-bit. The 96-bit instructions are usually for encoding a 64-bit
immediate. The first two opcode bits determine the size. 00=24 bit,
01=48 bit, 10=96 bit, 11 (reserved)
immediate.
Yeah, I have been scratching my head over how to free up another opcode bit. But the decode is simple. ooooooo always refers to the same opcode even if longer/shorter forms do not make sense.ADD, AND, OR, EOR, CMP have 24-bit instruction forms:A 6-bit OpCode might let 1 more bit into immediate, or similar
iiiii-aaaaa-ttttt-ooooooo-00 <- immediate
bbbbb-aaaaa-ttttt-ooooooo-00 <- register
24-bit instruction forms allow using only the first 32 registers.
sign control over register operand. Remember, this is the highly
used OpCode category. So, we have 32 Imm5(6) OpCodes.
It is almost two instructions, but there is only a single target register. That way in some cases up to 8 ops per clock can be processed instead of just 4. The compiler does not do a good job of making use of the dual ops yet.ADD, AND, OR, EOR, CMP 48-bit instruction forms:It really looks like you are forming 2×24-bit instructions into
fffffff-oooo-ccccccc-bbbbbbb-aaaaaaa-ttttttt-ooooooo-01
48-bit instruction forms support a sign control bit on the register
spec, along with 64 registers.
(wait for it) 2×24-bit containers. Sign control on operands is
useful 5-register operands may not be so. I am not against this
format, but I think you are wasting a lot of entropy here.
ddddd is the displacement which is multiplied by 8 (word size).LOAD / STORE word size have 24-bit formsWhere do you get stack and structure displacements ?? This is one
ddddd-aaaaa-ttttt-ooooooo-00
place My 66000 ISA is significantly better than RISC-V.
There is a whole row (8 opcodes) in the opcode table dedicated to the branch data type. The data type could be integer, unsigned integer, float, decimal float, posit or capability.Conditional Branches (compare and branch) are 48-bitCareful choice of oooooo may allow it to contain the condition
pp-R-TTTTTTTTTTTTTTTTTTT-aaaaaa-bbbbbb-A-ffff-ooooooo-01
in the ffff field expanding the displacement to 25-effective
bits.
iiiiiiiiiiiiiiiiiiiiiii-pp-saaaaaa-stttttt-ooooooo-01 <- immediateWith load / store / basic arithmetic as 24-bit and 48-bitQuestions remain wrt floating point constants and large integer
compare-and-branch a good portion of instructions should occupy the same
or less storage space than a 32-bit ISA.
constants.
I have not written the assembler yet, so nothing to measure.The data will be interesting.
Les messages affichés proviennent d'usenet.