BGB wrote:
On 12/9/2023 4:03 PM, MitchAlsup wrote:
BGB wrote:
On 12/9/2023 6:35 AM, Quadibloc wrote:
In designing Concertina II, which might well be described
as a half-breed architecture from Hell that hasn't made
up its mind whether to be RISC, CISC, or VLIW, even I have
been affected by that concern.
Yeah...
Your stuff tends to come off as horridly over complicated, and not
particularly RISC-like either.
As for some things in my 66000:
Registers: 32-registers 64-bit each
Instruction lengths (bits): {32, 64, 96, 128, 160}
Don't have 128 or 160, would require more expensive fetch and decode.
Minimum fetch width is 4 which means by the time you need the constants of
3-5 word instructions, they have arrived.
My 6-wide machine looks like it will fetch 4×¼ cache lines per cycle
(16 words in blocks of 4) while also fetching 1×40-bit word that provides
the 5-indexes used in the subsequent fetch cycle. eXcel analysis of this organization indicates it should cover ~97% of all patterns that contain 6-instructions.
VLE uses the same 4-bits when inst<31..29> == 00x
Major OpCodes have 16-bit constant
Load/Store
Pipelined for most ops.
FPU exists in GPR space.
Integer ops, FPU, and SIMD all exist within the same registers.
Addressing modes:
[Base+disp16]
[Base+index<<scale]
[Base+index<<scale+disp32]
[base+index<<scale+disp64]
Base = R0 -> IP
index = R0 -> 0x0
Current number of defined instruction encodings:
2218
Currently number of mnemonics:
61
Hmm, so more encodings possible for fewer mnemonics...
I have the issue that for SIMD or converter ops, often they are closer
to 1:1 between mnemonic and encoding.
Maximum number of instruction encodings:
~5000
Depends mostly on how the space was allocated.
2218 and 61 are exact counts, accepting a constraint that adding more instruction groups can only remove terms from the current length and
position decoders {0->x or 1->x}m is what constrains me to ~5000.
Relaxing this rule would allow for millions.
But it is entirely against my "reduced" mantra.
I have 23 major OpCodes unallocated and 6 more that are permanently
reserved {these guard against jumping into random data when E=1}
I got 2192 instructions from 6 major OpCodes.
Major instruction blocks I have:
000110 XON6 Predicate
000111 XON7 Shifts Imm12
001001 XOP1 2-Operand
001010 XOP2 Memory
001100 XOP4 3-Operand
001101 XOP5 1-Operand
011xxx .... Branches
10xxxx .... Memory Disp16
11xxxx .... Int Imm16
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)