avatar_TFM

The Future-CPC# - CPC reborn - this is dedicated to the new CPC computer series.

Started by TFM, 18:01, 29 March 12

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

steve

Quote from: TFM/FS on 17:46, 11 April 12

About DMA:
IMHO I wouldn't use a Z180 for DMA. Too slow, and it suxx as co-cpu, since it lacks a fair amount of undocumented opcodes (and all illlegals). IMHO a pure DMA chip would be better.

I don't understand this, how can the Z180 DMA controller be any slower than a "pure" DMA chip, aren't they the same?
The advantage of the Z180 is it has its own cpu to program the DMA controller whereas a "pure" DMA chip would interrupt the Z80 to be reprogrammed, if the DMA is running many different DMA operations, the impact on the Z80 speed could be significant.

steve

Quote from: TotO on 09:55, 11 April 12
Don't forget that a CPU runing with high frequency, can run more as low one...
A eZ80@200MHz will never work if clocked at 4MHz, for compatibility. Wou will have to "emulate" the old CPU.

The maximum clock speed of the eZ80 is 50Mhz, but because it is a pipelined processor it has a similar performance to a Z80 clocked at 200Mhz, but the Z80 cannot run that fast.

TFM

Quote from: steve on 21:04, 11 April 12
The maximum clock speed of the eZ80 is 50Mhz, but because it is a pipelined processor it has a similar performance to a Z80 clocked at 200Mhz, but the Z80 cannot run that fast.

Right, the most quick real Z80 I know (not FPGA or something else!) does run with 20 MHz. However, at the moment IIRC they are sold only up to 16 MHz. Still nice, but way slower that a eZ80. Speed is not everything, but if doing things new - it really should be considered.
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

TotO

Stupid Wikipedia content...  :P
But, I don't know 50MHz CPU who are able to run at 4MHz too. :D
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

Badstarr

Just a thought but could we not just simply send the halt command to a eZ80 at a certain rate to bring it to an effective 4MHz speed? Or would this derail a running program?
Proud owner of 464 GTM64 6128 GTM65, GX4128 and a 464/6128 Plus Hybrid a 20 year long ambition realised! :-)

Badstarr

While having a look about on my usual staple of hacking sites, I found this... Veronica – CPU Board . I guess this could give us an idea how to make a new CPC feasible in terms of build. The project in the link is obviously based on a different CPU but I think it makes very relevant reading. We could have PCB designs available for home fabrication for the DIYer and if there is enough demand, we could maybe do some production runs, the latter requiring enough commitment from people to make it less of a financial risk.
Proud owner of 464 GTM64 6128 GTM65, GX4128 and a 464/6128 Plus Hybrid a 20 year long ambition realised! :-)

TFM

Quote from: Badstarr on 23:05, 11 April 12
Just a thought but could we not just simply send the halt command to a eZ80 at a certain rate to bring it to an effective 4MHz speed? Or would this derail a running program?

The HALT command is ended only by an interrupt, so after a HALT instruction you will have the complete interrupt-handler to be done. This will take too much time, and it would be a pain to calculate time.
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

arnoldemu

Quote from: Badstarr on 23:05, 11 April 12
Just a thought but could we not just simply send the halt command to a eZ80 at a certain rate to bring it to an effective 4MHz speed? Or would this derail a running program?
The READY input to the Z80 is for this purpose. It holds the Z80 and stretches it's timings to make it slower.

When a faster z80 is used, then slow timing should be done less often, only when display needs to be updated.. perhaps when i/o read/write is done if i/o is "slow".

So, if only z80 was clocked faster, then there is the possibility for more instructions to be executed in the same time.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Badstarr

So there is a way of slowing it down, and it's possible to be selective with it? If that's the case we could have faster execution of code under appropriate circumstances, I was thinking faster loading but I guess floppy access would be a bottle neck. Im sure there would be a way to take advantage of the extra performance without messing things up. I think once there is a clear consensus on the design of this machine these sorts of things will be ironed out.
Proud owner of 464 GTM64 6128 GTM65, GX4128 and a 464/6128 Plus Hybrid a 20 year long ambition realised! :-)

Bryce

I was delibrately trying NOT to join this conversation (and I still intend not getting involved), but I just have to ask:

Why would an eZ80 or any other processor not be able to run at 4Mhz if it is designed to run at up to 50Mhz?

Bryce.

TotO

Just watch CPU specs. Underclocking don't work to infinite.
For exemple, a 16MHz 68000 don't work under 8MHz, a 50MHz 68060 don't work at 25MHz, A 133MHz PPC603 don't work at 66MHz, etc.
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

Bryce

?? Can you please send me some of those specs? My Datasheets for the eZ80, 68000 don't mention these limitations.

I can assure you that any processor I've ever used can be underclocked right down to Khz speeds without any issues. The only exceptions I know of are µP that use the main clock for UART controls that are no longer fast enough when the main clock is too slow. I have used many processors including the ez80 at speeds as low as 1Mhz, especially when debugging hardware.

Bryce.

TotO

If fact, I have foud thoses informations some years ago, because I don't understand why my Megadrive with a 16MHz 68000 no more work at 7,67Mhz. (switch)
And I read on the spec, that it may got troubles under 8MHz.
So, I replaced them with a 12MHz version (overclocked) and all worked fine for both frequencies. :D


Then, I decide to underclock a Blizzard PPC to get it "cold" inside my A1200 computer.
And I get the same problem when I try to get 68060@50MHz + PPC@200Mhz running at half frenquency.


That all. :)



If the eZ80 always work at 4MHz, then I'm verry sorry.
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

Bryce

Ah, ok. you can't underclock a CPU like that, it definitely will fail to run, but not because the Clock is too slow, but probably because the rising edge of your clock signal is not steep enough. ie: The clock transition from 0 to 1 too slow. Another problem you'll have is that the clock skew between CLK and BCLK might not be correct and will mess up the external chip timings. And depending on how your RAM is being refreshed, it might cause problems there too.

The 68060 actually has a standard method to slow the CPU to CLK/2 or even CLK/4. This is done by leaving the CLK at the normal speed, and using CLKEN to enable/disable the CLK signal periodically. You can even stop the clock completely on a 68060 and halt the CPU completely, but the clock may only be halted when it is in the 0 phase, not the 1 phase.

If the clock and the rest of the ez80 system is properly designed with the intention of being able to run at 4Mhz, then it will.

Bryce.

steve

I read about one 8-bit processor (I forget which one), that its internal design was "static" so its clock speed could be slowed down to 0Hz without losing the data in its registers, so in contrast others may need to run at a minimum speed to maintain their register contents.

TFM

Timing seems to be the hardest problem here.

But do we need complete compatibility with all CRTC timings and so on? For most games it would be alright to be compatible in some of the disciplines only. f.e. interrupts.

Another thing are the Plus features. Would be good to come close to them.
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

ralferoo

Quote from: steve on 16:55, 12 April 12
I read about one 8-bit processor (I forget which one), that its internal design was "static" so its clock speed could be slowed down to 0Hz without losing the data in its registers, so in contrast others may need to run at a minimum speed to maintain their register contents.
This is in fact the Z80... :)

And an example of one that does lose data if not clocked is the 6502.

TFM

Another example that shows the superiority of the CPC abouve the c64  :laugh:
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

steve

Quote from: ralferoo on 08:43, 14 April 12
This is in fact the Z80... :)


This suggests that the eZ80 may be able to clock down to 1Mhz, which should be close to the speed of a 4Mhz Z80, but would dynamic ram refresh be affected?

TFM

Independent of this... or if it is possible... The eZ80 has different times for opcodes compared to the Z80.

In case Z80 timing shall be exactly emulated, we would need a real Z80 (or FPGA simulation). However, do we really need that? IMHO, no. The CPC# may not be able to show few demos exactly, but it's not needed, because we all have a CPC.

The CPC# is really thought as a step beyond, the really improoved CPC, while retaining all the good ideas of the CPC (and timing was not one of them IMHO).

TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Badstarr

With the extra horse power of the eZ80 would it not be possible to emulate a Z80? I read an article recently, unfortunately I cant find a link, but basically it was about a guy had emulated an ARM CPU on an old micro processor, its effective performance was in the kHz range if memory serves so not very useful but a Z80 is much less complicated than an ARM CPU. Just a thought  ;D 
Proud owner of 464 GTM64 6128 GTM65, GX4128 and a 464/6128 Plus Hybrid a 20 year long ambition realised! :-)

TFM

upon some 97% it's possible for sure. The question is how much effort you want to put in.
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Badstarr

Well I'm hopefully going to be doing an MSc Degree in computing towards the end of the year, so maybe there might be some scope to attempt a Z80 emulation project. I suppose it will all depend on the amount of free reign they will allow me but from past experience as long as I can justify it academically and I can show that I will learn something useful from doing it there shouldn't be a problem.
Proud owner of 464 GTM64 6128 GTM65, GX4128 and a 464/6128 Plus Hybrid a 20 year long ambition realised! :-)

ralferoo


Powered by SMFPacks Menu Editor Mod