Barrel processor, I had considered this too, but there are two downsides to this concept:
One would need multiple status registers, and it won't speed up legacy 6502 code.
;---
More info about the CDC 6600 is on
Whygee's homepage.
Spent some more thoughts on "going superscalar".
It became obvious, that a truely superscalar TTL 6502 would be going to be huge, and from the logic design of view it would be very complicated.
Long lines (long PCB traces) and big lumps of conventional logic in the design would be killing speed.
We are only a team of three self-educated hobbyists (none of us did study computer science at a university, that is).
Feels like a project of that sort would require 12 engineers, 4 coders and a janitor.
So we better forget the thought of building a superscalar TTL 6502.
;---
For running legacy 6502 code in a cycle compatible way, we could expect the CPU to have a MIPS rating similar to a 100MHz i486DX2.
When running 6502 code with an instruction buffer and a 16Bit (or 24 Bit) address adder, I think we could expect a performance boost of 25% or such,
that's a conservative estimation, somebody better check.
My advice here is to give the TTL CPU a "native mode", in which it has a RISC\VLIW instruction set,and then to have something like "an optimizing compiler" that makes a static translation of 6502 code to RISC\VLIW.
Checking dependencies and making efficient use of the functional blocks within the CPU then is done by software
instead of hardware, and this will save us a lot of grey hairs.
When taking this path, there are two different approaches: to swim with the sharks, or to walk with the dinosaurs.0) A VLIW instruction set, that resembles vertical microcode.In fact, it _would_ be a form of "compressed" vertical microcode.
We would have some circuitry that just takes the longword (or long long word) from the Instruction Buffer
and translates it into
horizontal microcode while bypassing the CPU microcode RAM, and then to be done with.
SHARC DSPs from Analog Devices have a neat VLIW instruction set,
and back in 2000 I did a little bit of ADSP21065L assembly coding for a living.
1) An instruction set where a bunch of simple, atomic RISC instructions is packed into a longword (long long word).That would be something like
EPIC or
IA-64.
Reminds me to the ill fated TREX project. //32 Bit
TTL
RISC
Experiment
"A lumbering mostrosity, supposed to be extinct, but still able to give people the creeps."
TREX had a 32 Bit instruction word, and 13 instructions in total.
If Bit 31 was 0, the 32 Bit word triggered a JMP\JSR... while being loaded into PC.
If Bit 31 was 1, there were three atomic RISC instructions in the 32 Bit word.
The TREX instruction set is explained
here.
Getting CISC features by creatively grouping atomic RISC instructions is described
there.
Funny thing is, that the TREX ISA is screaming "build me superscalar".
TREX only supported 32 Bit data types.
When emulating a 6502\K24\65816, maybe we are going to need 8, 16 ,24 Bit data types, too.