Personal computing discussed
Moderators: renee, mac_h8r1, Nemesis
UberGerbil wrote:The 6800 later grew more directly into the 68000
The Egg wrote:Well hey...decent thread topic WHM (and a couple informative responses already). I've probably used 6502 and Z80-based devices countless times, but this was before I had any real understanding of the internals (and it was mostly to play games). As has been mentioned, most of the newly released CPUs were 16-bit or better by the 80's, so limiting it to a decade doesn't work well.
A better phrasing might be: What were the most powerful 8-bit CPUs to see meaningful usage?
I'd ask the same thing of 16-bit, but it seems there were many more players by that time, and quantifying how powerful they were might be difficult in some cases.
JustAnEngineer wrote:The 80s also included some pretty decent 32-bit CPUs like the Motorola 68030.
whm1974 wrote:JustAnEngineer wrote:The 80s also included some pretty decent 32-bit CPUs like the Motorola 68030.
True, but I am wondering just how far you could push an CPU with a 8-bit ISA. Is possible to design and produced a multi-core 8-bit processor with the same performance as a Goldmont Atom or even better?
just brew it! wrote:You could certainly get the same (or better) IPC. Problem is, each of those instructions does a lot less because data needs to be operated on 8 bits at a time. Just multiplying a pair of 32-bit numbers together would take many instructions. The 8-bit memory bus would also be a major bottleneck.
To get equivalent overall performance on similar applications the CPU would probably need to be clocked at 50+ GHz, with the memory operating at the speed of (hypothetical) DDR7.
I remember someone predicting (back around 1978 or so) that in 10 years we'd have Z80s running at 500 Mhz, using gallium arsenide instead of silicon.
notfred wrote:I had a Commodore 64 and did some assembly language programming on it. The biggest problem I had was the lack of registers A, X and Y. To hinder things even more, the X and Y registers were really for indexing the A register's access to memory.
The Commodore 64 actually had a 6510 which was a 6502 with an I/O port. The I/O port was used for memory bank switching so if you were writing in assembly language then you could drop the BASIC ROM out of memory and replace it with RAM. If you were doing graphics you could similarly drop the character bank out and gain RAM there. It actually had a full 64k of RAM but a large chunk of it was covered with ROMs and interface chips (VIC for video, SID for sound).
whm1974 wrote:OK put 32 8-bit registers in the CPU design I'm thinking of.
whm1974 wrote:just brew it! wrote:You could certainly get the same (or better) IPC. Problem is, each of those instructions does a lot less because data needs to be operated on 8 bits at a time. Just multiplying a pair of 32-bit numbers together would take many instructions. The 8-bit memory bus would also be a major bottleneck.
To get equivalent overall performance on similar applications the CPU would probably need to be clocked at 50+ GHz, with the memory operating at the speed of (hypothetical) DDR7.
I remember someone predicting (back around 1978 or so) that in 10 years we'd have Z80s running at 500 Mhz, using gallium arsenide instead of silicon.
Use PCIe and 64-bit address space maybe? At least be able to use PCIe 1x slots anyway and DDR3 memory anyway. I have no idea if a 8-bit CPU can even make full use of 2 to 4 GB of memory however. Maybe something with 32 cores at 1 to 3 Ghz perhaps?
just brew it! wrote:whm1974 wrote:just brew it! wrote:You could certainly get the same (or better) IPC. Problem is, each of those instructions does a lot less because data needs to be operated on 8 bits at a time. Just multiplying a pair of 32-bit numbers together would take many instructions. The 8-bit memory bus would also be a major bottleneck.
To get equivalent overall performance on similar applications the CPU would probably need to be clocked at 50+ GHz, with the memory operating at the speed of (hypothetical) DDR7.
I remember someone predicting (back around 1978 or so) that in 10 years we'd have Z80s running at 500 Mhz, using gallium arsenide instead of silicon.
Use PCIe and 64-bit address space maybe? At least be able to use PCIe 1x slots anyway and DDR3 memory anyway. I have no idea if a 8-bit CPU can even make full use of 2 to 4 GB of memory however. Maybe something with 32 cores at 1 to 3 Ghz perhaps?
You can do something screwy like the 8086/8088 segment registers to address more memory. But that hurts performance too since you're constantly reloading the segment registers to access the extra address space.
Unless you've got wider ALUs to do the address calculations and wider address and data buses, dealing with lots of RAM is going to be messy and/or inefficient, pretty much by definition. And once you've got the wider ALUs and buses, you're not an 8-bit ISA any more.
srg86 wrote:Out of curiosity, do you consider the 68000 a 16-bit or 32-bit CPU. A lot of people think of it as a 32-bit CPU because of its 32-bit registers. But its ALU internally was only 16-bit and so was the data bus. Address bus was 24-bit.
The 68k line first received a 32-bit ALU with the 68020.
The Egg wrote:A better phrasing might be: What were the most powerful 8-bit CPUs to see meaningful usage?
I'd ask the same thing of 16-bit, but it seems there were many more players by that time, and quantifying how powerful they were might be difficult in some cases.
defaultluser wrote:I'm sure there are better 8-bit micro-controllers released since then, but this really was the Swan's Song for powerful 8-bit computing.
just brew it! wrote:srg86 wrote:Out of curiosity, do you consider the 68000 a 16-bit or 32-bit CPU. A lot of people think of it as a 32-bit CPU because of its 32-bit registers. But its ALU internally was only 16-bit and so was the data bus. Address bus was 24-bit.
The 68k line first received a 32-bit ALU with the 68020.
I would consider the 68000 to be a hybrid 16/32 bit CPU, in much the same way that the 8088 was a hybrid of 8- and 16-bit.
just brew it! wrote:whm1974 wrote:just brew it! wrote:You could certainly get the same (or better) IPC. Problem is, each of those instructions does a lot less because data needs to be operated on 8 bits at a time. Just multiplying a pair of 32-bit numbers together would take many instructions. The 8-bit memory bus would also be a major bottleneck.
To get equivalent overall performance on similar applications the CPU would probably need to be clocked at 50+ GHz, with the memory operating at the speed of (hypothetical) DDR7.
I remember someone predicting (back around 1978 or so) that in 10 years we'd have Z80s running at 500 Mhz, using gallium arsenide instead of silicon.
Use PCIe and 64-bit address space maybe? At least be able to use PCIe 1x slots anyway and DDR3 memory anyway. I have no idea if a 8-bit CPU can even make full use of 2 to 4 GB of memory however. Maybe something with 32 cores at 1 to 3 Ghz perhaps?
You can do something screwy like the 8086/8088 segment registers to address more memory. But that hurts performance too since you're constantly reloading the segment registers to access the extra address space.
Unless you've got wider ALUs to do the address calculations and wider address and data buses, dealing with lots of RAM is going to be messy and/or inefficient, pretty much by definition. And once you've got the wider ALUs and buses, you're not an 8-bit ISA any more.
whm1974 wrote:Just wondering, but could anybody even put a full blown 32-bit CPU on a Microcomputer board in the late 70's?
whm1974 wrote:As messy as having to use bank switching? As I recall some of the 8-bit machines by the late 80's could have up to 2MB of total memory. Surly a large flat address space has to be better then resorting to bank switching?
just brew it! wrote:whm1974 wrote:Just wondering, but could anybody even put a full blown 32-bit CPU on a Microcomputer board in the late 70's?
The AM-100 (16-bit) was a pair of S-100 cards connected to each other via a ribbon cable, occupying 2 adjacent slots of an S-100 backplane. So I'd say the answer is "no". (The 5 large chips on the right side of the second board are the Western Digital WD16 CPU; so really a CPU chipset as opposed to a single CPU chip.)
To give you a sense of scale, S-100 cards were 5x10 inches.whm1974 wrote:As messy as having to use bank switching? As I recall some of the 8-bit machines by the late 80's could have up to 2MB of total memory. Surly a large flat address space has to be better then resorting to bank switching?
To handle a flat address space efficiently you need to be able to quickly perform address calculations on the full address range -- i.e., you need machine registers which are at least as wide as your addresses, and (ideally) ALUs of that width as well. So you're either doing something that resembles bank switching, or your CPU starts to have a lot of wider registers and data paths in it.