What do you mean R800 is 16-bit processor?

Page 1/5
| 2 | 3 | 4 | 5

By MSX Resource Center

Paladin (984)

MSX Resource Center's picture

17-04-2003, 08:50

Hi,
I'm not good at software or hardware but I want to ask how come R800 is 16-bit processor where LD A,5000, for example, is not allowed for it?
And is it really as fast as 28Mhz? Why can't I feel the speed?

Thanks

Login or register to post comments

By sjoerd

Hero (593)

sjoerd's picture

17-04-2003, 10:16

it's 16 bit because 'ld hl,50000' is possible. register A is just 8 bits wide. The R800 is supposed to be as fast as a 28MHz Z80. Just put your hand on it while it's running, you'll feel how fast it really is.

By anonymous

incognito ergo sum (109)

anonymous's picture

17-04-2003, 22:18

Z80 is called a 8 bit processor even though its registers can hold 16 bit. Why? Because the Z80 has 8 bit internal data pathways, it can operate on 8 bits at a time. R800 is called a 16 bit processor because its internal data pathways are 16 bit so it can operate on 16 bits at a time.

The speed of the R800 is really 7.16MHz, but due to its RISC-like design most instructions take only 1 cycle. For a Z80, this is 4 cycles. Thus, at the 7.16MHz speed it's ~8 times faster than a Z80 at 3.58MHz, which is why the marketing folks put 28.64MHz on the R800. Also, the clock crystal of a turboR is actually 28.64MHz, but it is divided by 4 to get the 7.16MHz.

Calling it 28.64MHz is a bit too much, because in real-world situations, the actual speed of a R800 is closer to 6 times the speed of the Z80. Still 3 times faster than a 7.16MHz Z80!

About the 'feel' of speed; I've always felt my turboR is comparable to a 40MHz 486 PC.

By sjoerd

Hero (593)

sjoerd's picture

18-04-2003, 00:10

The R800 is just 8 bits ofcourse 8)

If it would have been 16 bit, it would have been more like a Z380. (which is 16 bit).

By anonymous

incognito ergo sum (109)

anonymous's picture

18-04-2003, 00:48

Z80 is 8 bit: 16 bit registers, 8 bit ALU, 16 bit addressing space, 8 bit external databus
R800 is 16 bit: 16 bit registers, 16 bit ALU, 16 bit addressing space, 8 bit external databus
Z380 is 32 bit: 32 bit registers, 32 bit ALU, 32 bit addressing space, 16 bit external databus

The 'bitness' of a CPU's has been under discussion for eons. Some people take the external databus size, some people take the register size, some people take the internal databus size, some people take the ALU size, and others take an imaginary number. (Like those calling a Neogeo 24 bit because it has a 68000 (16 bit) and Z80 (8 bit).)

FYI, R800 is faster than Z380. The R800 just doesn't have the extended registers and extra opcodes the Z380 has, that doesn't say anything about bitsize. Furthermore, Z380 is very much a CISC processor, while R800's design is mainly RISC based.

By sjoerd

Hero (593)

sjoerd's picture

19-04-2003, 06:02

The z30 is faster than a r800. the extra opcodes and extra registers make a huge difference. And I don't see why a r800 would be more risc-like than a z380. Remember risc just means reduced instruction set computer or whatever.
I would not say a turbo r is 16 bit because it has a z80 (=8 bit) and a r800 (=8 bit).

And FYI: I don't care about bitsize. A Z380 is faster than a R800. The R800 is CISC. Can you tell me what you think risc means?

The R800 is Risc-based. A Intel Pentium is Risc-based. Sure. Have fun. Tongue

By snout

Ascended (15187)

snout's picture

19-04-2003, 09:48

Well, I'm not sure about you, but I know that GuyveR has experience in both Z380 and R800 optimized ASM coding.

It is a fact that the R800 is - relatively spoken - a lot faster than the 7.16MHz it runs. Whether the methods it uses to accomplish this are RISC (hence the R in R800?) or not, I don't know. As GuyveR said, the R800 has 16 bit registers, 16 bit ALU, 16 bit addressing space, 8 bit external databus. No reason not to call it 16bit Wink

The Z380 offers interesting opcodes and high speed, but - so I heard - some opcodes don't work the way you'd expect or want them to. On MSX, the good old Z80 still takes charge for several tasks, which is also quite a slowdown.

Just because a processor wipes the floor with other models on paper doesn't mean it does that in real life. I guess Wink

By anonymous

incognito ergo sum (109)

anonymous's picture

19-04-2003, 11:10

I think what makes a processor 8, 16 or 32 bit processor is the data bus. Z80 has 8 data bus, so it is 8-bit processor, whereas Motorolla 68000 has 16 data bus, therefore it is 16-bit processor. R3000 of Playstation has 32 data bus so it's 32-bit processor.
So, I think R800 is only 8-bit processor since it only has 8 data bus.

By anonymous

incognito ergo sum (109)

anonymous's picture

19-04-2003, 11:39

Sjoerd, you contradict my statements with claims that have no reasoning behind them.

RISC is not so much a technology than it is a design strategy that went against the norms of CPU design at that time (early 80's). CISC was invented retroactively to describe anything non-RISC.

To make it simple: The time per program equals the number of instructions in the program times the number of cycles per instruction times the time per cycle. Or: Tp/P = I/P x C/I x Ti/C
RISC optimizes the 2nd term, cycles per instruction. CISC optimizes the 1st term, instructions per program. The 3rd term, time per cycle, is affected by the clockrate.

You should be able to deduce from this (and ofcourse all other evidence), R800 is RISC-based while Z80 and Z380 are CISC. BTW, there have been several other RISC-based Z80 implementations, R800 is not unique in that respect.

Sure, at 18MHz a Z380 is faster than a 7MHz R800. But clock-for-clock the R800 beats the hell out of Z380! Only in some specially Z380 optimized programs with multiplies and/or divides will it be faster.
In the time it takes a Z380 to do LD HL,DE the R800 can execute LD L,E and LD H,D so there. Want to load A with L'? The R800 can do that almost 3 times faster!

Really, I love Z380. Linear memory, lots and lots of registers, yeah, this baby rules. But @ 14MHz (standard speed in LPE-Z380, for 18MHz you need a really fast SIMM), it runs comparable to a R800 at 8-bit intensive applications. 32 bits addressing space does add some complexity to a program...

One has to realize however, R800 can only run this fast in internal memory. Sure, Z380 can probably only run this fast in internal memory too, but with 16MB's of that, who can complain? Tongue
Z380 opens up a whole new world for MSX, that's for sure... Even if for 8-bit applications the speed is 'only' comparable to a R800, when is the last time you plugged a R800-cartridge in your MSX1 or 2? Smile

By k0ga

Expert (77)

k0ga's picture

20-04-2003, 21:49

I think what makes a processor 8, 16 or 32 bit processor is the data bus. Z80 has 8 data bus, so it is 8-bit processor, whereas Motorolla 68000 has 16 data bus, therefore it is 16-bit processor. R3000 of Playstation has 32 data bus so it's 32-bit processor.
So, I think R800 is only 8-bit processor since it only has 8 data bus.

Then 8088 is a 8 bit processor to ...

On all sites I have read that 8088 is a 16 bit processor, and PC was considered 16 bit computer, althought his processor had 8 bit data bus ...

By sjoerd

Hero (593)

sjoerd's picture

21-04-2003, 13:46

Well, I'm not sure about you, but I know that GuyveR has experience in both Z380 and R800 optimized ASM coding.

Then he should know I'm right Big smile
I only have experience with Z80. I did some 80x86 coding, and some ARM (should come in handy when the newMSX arrives Smile ) And very little Sparc-stuff.

It is a fact that the R800 is - relatively spoken - a lot faster than the 7.16MHz it runs. Whether the methods it uses to accomplish this are RISC (hence the R in R800?) or not, I don't know. As GuyveR said, the R800 has 16 bit registers, 16 bit ALU, 16 bit addressing space, 8 bit external databus. No reason not to call it 16bit Wink

A cpu is as fast as it is. You can't compare cpu's by just looking at the clockspeed. The reason I call it a 8 bit processor is that most ALU instructions work on 8 bit. Only some adressing calculations are 16 bit.

The Z380 offers interesting opcodes and high speed, but - so I heard - some opcodes don't work the way you'd expect or want them to. On MSX, the good old Z80 still takes charge for several tasks, which is also quite a slowdown.

You should not expect te instructions to be 32 bit. The Z380 is 16 bit because the ALU instructions are at most 16 bit, with te exception of some adresscalculate instructions which are 32 bit. And the fact that on MSX a lot is still done by the Z80 should just speed things up, I guess.

Just because a processor wipes the floor with other models on paper doesn't mean it does that in real life. I guess Wink

Of course.

Page 1/5
| 2 | 3 | 4 | 5
My MSX profile